diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2025-08-15 20:52:55 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-08-20 15:57:38 +0200 |
| commit | 488f6377e6f6fd3099bb927a986d548fbc1eb63f (patch) | |
| tree | 6cf6a3daed56b279a1f708cc03e551a387810640 /go/game/cardImplementations_test.go | |
| parent | 139ad01740eba2ff1e0a9d46593d2278b32310ce (diff) | |
| download | muhqs-game-488f6377e6f6fd3099bb927a986d548fbc1eb63f.tar.gz muhqs-game-488f6377e6f6fd3099bb927a986d548fbc1eb63f.zip | |
implement mace and add damage dealt events/triggers
Diffstat (limited to 'go/game/cardImplementations_test.go')
| -rw-r--r-- | go/game/cardImplementations_test.go | 42 |
1 files changed, 42 insertions, 0 deletions
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") + } +} |
