46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
|
package engine
|
||
|
|
||
|
// Effect is an effect a triggered/activated ability can trigger
|
||
|
type Effect struct {
|
||
|
Type EffectType
|
||
|
TargetType TargetingType
|
||
|
|
||
|
// Targets, if not implicit
|
||
|
TargetCard *CardInstance
|
||
|
TargetPlayer *Player
|
||
|
}
|
||
|
|
||
|
// EffectType is the type of an effect
|
||
|
type EffectType string
|
||
|
|
||
|
// All effect types
|
||
|
const (
|
||
|
EfDraw EffectType = "draw card"
|
||
|
EfTurn EffectType = "turn card over"
|
||
|
EfFrighten EffectType = "frighten card"
|
||
|
EfRally EffectType = "rally card"
|
||
|
EfExhaust EffectType = "exhaust card"
|
||
|
EfReady EffectType = "ready card"
|
||
|
)
|
||
|
|
||
|
// TargetingType is how an ability is targeted
|
||
|
type TargetingType string
|
||
|
|
||
|
// All targeting types
|
||
|
const (
|
||
|
TargetThisCard TargetingType = "this card"
|
||
|
TargetThisProblem TargetingType = "this card's problem"
|
||
|
TargetCard TargetingType = "card"
|
||
|
TargetFriend TargetingType = "friend"
|
||
|
TargetPlayer TargetingType = "player"
|
||
|
TargetOpponent TargetingType = "opponent"
|
||
|
TargetOwnCard TargetingType = "own card"
|
||
|
TargetOwnFriend TargetingType = "own friend"
|
||
|
)
|
||
|
|
||
|
// Apply tries to apply an effect
|
||
|
func (e *Effect) Apply() error {
|
||
|
//TODO
|
||
|
return nil
|
||
|
}
|