aboutsummaryrefslogtreecommitdiff
path: root/go/game/cardImplementations_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/game/cardImplementations_test.go')
-rw-r--r--go/game/cardImplementations_test.go37
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")
+ }
+}