diff options
Diffstat (limited to 'go/game/action_test.go')
| -rw-r--r-- | go/game/action_test.go | 32 |
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") + } } |
