45 lines
1.1 KiB
Go
45 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
|
|
}
|