diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2023-02-25 23:08:47 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-08-20 15:57:06 +0200 |
| commit | 3d36d1d0254b8aeecc889a2a49cbcced458cbe9c (patch) | |
| tree | 38dd0851d8eaa6535d05b97f29f65fc35655a5ef /go/game/targets_test.go | |
| parent | 19fb1a7e5c5883f49e944b6499fa1ced207a3e39 (diff) | |
| download | muhqs-game-3d36d1d0254b8aeecc889a2a49cbcced458cbe9c.tar.gz muhqs-game-3d36d1d0254b8aeecc889a2a49cbcced458cbe9c.zip | |
intermediate commit
* Implement move artifact action
* Fix widget update memory leak
* update the highlights not during on each frame
* do not update the unchanged label of a button
* Allow to exit the game by pressing 'q'
* Implement some cards from the magic set
* Improve permanent formatting
* Some tweaks to UnitAI code
Diffstat (limited to 'go/game/targets_test.go')
| -rw-r--r-- | go/game/targets_test.go | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/go/game/targets_test.go b/go/game/targets_test.go new file mode 100644 index 00000000..be1cdad9 --- /dev/null +++ b/go/game/targets_test.go @@ -0,0 +1,52 @@ +package game + +import ( + "strings" + "testing" +) + +func TestDisjunction(t *testing.T) { + mapDef := `map: |1- + HST + HSF + TSW +symbols: + T: tower + H: house + F: farm + S: street + W: deep water +` + s := NewState() + r := strings.NewReader(mapDef) + s.Map, _ = readMap(r) + + s.AddNewPlayer("player", NewDeck()) + p := s.Players[0] + + pioneer := NewUnit(NewCard("base/pioneer"), s.Map.TileAt(Position{1, 1}), p) + s.AddPermanent(pioneer) + + sword := newEquipmentFromPath("base/sword", s.Map.TileAt(Position{0, 1}), p) + s.AddPermanent(sword) + + fa := pioneer.FullActions[0] + targets := fa.Targets() + if err := targets.AddSelection(s.Map.TileAt(Position{1, 1})); err != nil { + t.Fatalf("TileAt(1,1) not a valid target for %v", fa) + } + + if err := targets.CheckTargets(s); err != nil { + t.Fatalf("TileAt(1,1) not a valid target for %v", fa) + } + + targets.ClearSelections() + + if err := targets.AddSelection(sword); err != nil { + t.Fatalf("%v not a valid target for %v", sword, fa) + } + + if err := targets.CheckTargets(s); err != nil { + t.Fatalf("%v not a valid target for %v", sword, fa) + } +} |
