From 488f6377e6f6fd3099bb927a986d548fbc1eb63f Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Fri, 15 Aug 2025 20:52:55 +0200 Subject: implement mace and add damage dealt events/triggers --- go/game/cardImplementations_test.go | 42 +++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'go/game/cardImplementations_test.go') diff --git a/go/game/cardImplementations_test.go b/go/game/cardImplementations_test.go index 5160816e..14339df7 100644 --- a/go/game/cardImplementations_test.go +++ b/go/game/cardImplementations_test.go @@ -190,3 +190,45 @@ symbols: // TODO: test return to owner } + +func TestMace(t *testing.T) { + s := NewLocalState() + m := newEmpty2x2Map() + s.SetMap(m) + + player := s.AddNewPlayer("p", NewDeck()) + ctrl := newMockPlayerControl(player) + ctrl.actionToSend = NewPassPriority(player) + player.Ctrl = ctrl + + opo := s.AddNewPlayer("o", NewDeck()) + ctrl = newMockPlayerControl(opo) + ctrl.actionToSend = NewPassPriority(opo) + opo.Ctrl = ctrl + + k := s.addNewUnit(NewCard("base/knight"), Position{0, 0}, player) + p := s.addNewUnit(NewCard("base/pioneer"), Position{0, 1}, opo) + mace := newEquipment(NewCard("equipments/mace"), k, player) + s.addPermanent(mace) + + if len(s.triggers) == 0 { + t.Fatal("mace trigger not registered") + } + + s.fight(k, p) + s.stateBasedActions() + if len(s.stack.Actions) == 0 { + t.Fatal("mace not triggered") + } + s.stack.resolve() + + if p.Marks(UnitStates.Paralysis) != 1 { + t.Fatal("pioneer not paralysed") + } + + s.destroyPermanent(mace) + + if len(s.triggers) != 0 { + t.Fatal("mace trigger not removed") + } +} -- cgit v1.2.3