mlp-server-tools/rulebot/engine/effect.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
}