diff options
Diffstat (limited to 'go/game/cardImplementations_test.go')
| -rw-r--r-- | go/game/cardImplementations_test.go | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/go/game/cardImplementations_test.go b/go/game/cardImplementations_test.go index 43d69b76..ff41a752 100644 --- a/go/game/cardImplementations_test.go +++ b/go/game/cardImplementations_test.go @@ -419,3 +419,40 @@ symbols: t.Fatal("sailor not adding movement to fisher") } } + +func TestPierce(t *testing.T) { + s, _, p, _ := newMockState() + knight := s.addNewUnit(NewCard("base/knight"), Position{0, 0}, p) + archer := s.addNewUnit(NewCard("base/archer"), Position{1, 0}, p) + + pa := NewPlayAction(p, NewCard("magic/pierce!")) + pa.Target().AddSelection(knight) + s.ResolveAction(pa) + + x, err := knight.XEffect("armor") + if err != nil { + t.Fatal("unexpected", err) + } + if x != 0 { + t.Fatal("expected 0 armor") + } + + pa.Target().AddSelection(archer) + s.ResolveAction(pa) + x, err = archer.XEffect("armor") + if err != nil { + t.Fatal("unexpected", err) + } + if x != -1 { + t.Fatal("expected -1 armor") + } + + s.fight(knight, archer) + if knight.Damage() != 1 { + t.Fatal("Knight did not take 1 damage") + } + + if archer.Damage() != 2 { + t.Fatal("Archer did not take 2 damage") + } +} |
