diff options
Diffstat (limited to 'go/game/effect.go')
| -rw-r--r-- | go/game/effect.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/go/game/effect.go b/go/game/effect.go index 4d89eea5..184f2013 100644 --- a/go/game/effect.go +++ b/go/game/effect.go @@ -24,6 +24,21 @@ func (e *dynamicEffect) end(s *LocalState) { e._end(s) } +func newCombinedEffect(effects []effect) *dynamicEffect { + return &dynamicEffect{ + _apply: func(s *LocalState) { + for _, e := range effects { + e.apply(s) + } + }, + _end: func(s *LocalState) { + for _, e := range effects { + e.end(s) + } + }, + } +} + func newAdjustmentEffect(adjust func(Permanent, int), u *Unit, delta int) effect { apply := func(*LocalState) { adjust(u, delta) } end := func(*LocalState) { adjust(u, -delta) } |
