aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2025-07-21 08:34:52 -0400
committerFlorian Fischer <florian.fischer@muhq.space>2025-08-20 15:57:26 +0200
commit4cfe2d81345bc3807bed3facd9a222dd6e789435 (patch)
tree3487b44756767d8df53e6f17c2564c530bca3f19
parent283f53e3e381fad773457a54bc20bf7f61db2c6e (diff)
downloadmuhqs-game-4cfe2d81345bc3807bed3facd9a222dd6e789435.tar.gz
muhqs-game-4cfe2d81345bc3807bed3facd9a222dd6e789435.zip
add more deck and farm area effect tests
-rw-r--r--go/game/areaEffect_test.go31
-rw-r--r--go/game/deck_test.go36
2 files changed, 65 insertions, 2 deletions
diff --git a/go/game/areaEffect_test.go b/go/game/areaEffect_test.go
index 0da2c8ac..30bcb760 100644
--- a/go/game/areaEffect_test.go
+++ b/go/game/areaEffect_test.go
@@ -16,8 +16,7 @@ symbols:
m, _ := readMap(r)
s.SetMap(m)
- s.AddNewPlayer("player", NewDeck())
- p := s.Players()[0]
+ p := s.AddNewPlayer("player", NewDeck())
t0_0 := s.Map().TileAt(Position{0, 0})
entered0_0, left0_0 := false, false
@@ -68,3 +67,31 @@ symbols:
sword := newEquipmentFromPath("base/sword", t0_1, p)
s.addPermanent(sword)
}
+
+func TestFarmEffect(t *testing.T) {
+ mapDef := `map: |1-
+ FH
+symbols:
+ F: farm
+ H: house
+`
+ s := NewLocalState()
+ r := strings.NewReader(mapDef)
+ m, _ := readMap(r)
+ s.SetMap(m)
+
+ p := s.AddNewPlayer("player", NewDeck())
+ f := s.addNewUnit(NewCard("misc/farmer"), Position{0, 0}, p)
+ if len(f.FullActions) != 1 {
+ t.Fatal("farmer has no farm fullaction")
+ }
+
+ a := NewMoveAction(f)
+ a.Target().AddSelection(m.TileAt(Position{1, 0}))
+
+ a.resolve(s)
+
+ if len(f.FullActions) != 0 {
+ t.Fatal("farmer still has farm fullaction")
+ }
+}
diff --git a/go/game/deck_test.go b/go/game/deck_test.go
new file mode 100644
index 00000000..049f3440
--- /dev/null
+++ b/go/game/deck_test.go
@@ -0,0 +1,36 @@
+package game
+
+import (
+ "math/rand"
+ "testing"
+)
+
+func TestDeckDraw(t *testing.T) {
+ d := NewDeckFromDeckList("1 base/archer")
+ c := d.DrawOne()
+ if c.Name != "Archer" {
+ t.Fatal("Drawn card is not archer")
+ }
+
+ c = d.DrawOne()
+ if c != nil {
+ t.Fatal("Drawed card from empty deck")
+ }
+}
+
+func TestDeckShuffle(*testing.T) {
+ d := NewDeckFromCardPaths([]string{"base/archer", "magic/ritual!"})
+ d.Shuffle(rand.New(rand.NewSource(1)))
+}
+
+func TestDeckDrawX(t *testing.T) {
+ poc := NewPileOfCards()
+ a := NewCard("base/archer")
+ r := NewCard("magic/ritual!")
+ poc.AddCards([]*Card{a, r})
+ d := NewDeckFrom(poc)
+ c := d.Draw(2)
+ if c[0] != a || c[1] != r {
+ t.Fatal("unexpected cards drawn")
+ }
+}