aboutsummaryrefslogtreecommitdiff
path: root/go/game/action_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/game/action_test.go')
-rw-r--r--go/game/action_test.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/go/game/action_test.go b/go/game/action_test.go
index 5fa0b64d..b7a92bae 100644
--- a/go/game/action_test.go
+++ b/go/game/action_test.go
@@ -111,6 +111,7 @@ func TestAttackAction(t *testing.T) {
mapDef := `map: |1-
H T
SSS
+
symbols:
T: tower
H: house
@@ -126,6 +127,8 @@ symbols:
t1 := s.addNewUnit(NewCard("base/fighter"), Position{0, 0}, o)
t2 := s.addNewUnit(NewCard("base/fighter"), Position{0, 1}, o)
+ t3 := s.addNewUnit(NewCard("base/fighter"), Position{0, 2}, o)
+
a := s.addNewUnit(NewCard("base/archer"), Position{2, 0}, p)
ca := s.addNewUnit(NewCard("base/cavalry_archer"), Position{2, 1}, p)
@@ -147,4 +150,33 @@ symbols:
if ca.Damage() > 0 {
t.Fatal("cavalry archer took damage in range combat from melee unit")
}
+
+ aa3 := NewAttackAction(a)
+ err = aa3.Target().AddSelection(t2)
+ if err != nil {
+ t.Fatal("unexpected target error:", err)
+ }
+ s.ResolveAction(aa3)
+ if t2.Damage() != 2 {
+ t.Fatal("fighter did not took 1 damage")
+ }
+ if !t2.IsDestroyed() {
+ t.Fatal("fighter is still alive")
+ }
+ if ca.Damage() > 0 {
+ t.Fatal("archer took damage in range combat from melee unit")
+ }
+
+ aa4 := NewAttackAction(a)
+ err = aa4.Target().AddSelection(t3)
+ if err != nil {
+ t.Fatal("unexpected target error:", err)
+ }
+ s.ResolveAction(aa4)
+ if t3.Damage() != 1 {
+ t.Fatal("fighter did not took 1 damage")
+ }
+ if ca.Damage() > 0 {
+ t.Fatal("archer took damage in range combat from melee unit")
+ }
}