1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package game
import (
"errors"
"testing"
)
func TestCloak(t *testing.T) {
s, _, p, _ := newMockState()
a := s.addNewUnit(NewCard("base/archer"), Position{0, 0}, p)
c := s.addNewEquipment(NewCard("equipments/cloak"), Position{1, 0}, p)
die := NewCard("magic/die!")
ea := NewEquipAction(a, c)
ea.costFunc = genBaseActionCost(a, 1, 0)
s.ResolveAction(ea)
if !a.HasEffect("shroud") {
t.Fatal("archer not shrouded")
}
pa := NewPlayAction(p, die)
err := pa.Target().AddSelection(a)
if !errors.Is(err, ErrTargetHasShroud) {
t.Fatal("shrouded archer targeted")
}
}
func TestFighter(t *testing.T) {
s, _, p, _ := newMockState()
f := s.addNewUnit(NewCard("base/fighter"), Position{0, 0}, p)
f.onUpkeep()
if f.AvailAttackActions != 2 {
t.Fatal("fighter does not have two attack actions")
}
}
|