aboutsummaryrefslogtreecommitdiff
path: root/go/game/state.go
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2023-01-12 20:58:14 +0100
committerFlorian Fischer <florian.fischer@muhq.space>2025-01-27 16:43:44 +0100
commit9df5cc7b55d8ac9ecd775a14a14f80a6c36c4d74 (patch)
treeb0ed4b509da71d0d6320f979a1eebbd91fdf7321 /go/game/state.go
parent41d16fb4910fc0402b6b081302c953f7dabc8cf9 (diff)
downloadmuhqs-game-9df5cc7b55d8ac9ecd775a14a14f80a6c36c4d74.tar.gz
muhqs-game-9df5cc7b55d8ac9ecd775a14a14f80a6c36c4d74.zip
implement unit movement
Diffstat (limited to 'go/game/state.go')
-rw-r--r--go/game/state.go36
1 files changed, 28 insertions, 8 deletions
diff --git a/go/game/state.go b/go/game/state.go
index 9dcf73c4..caae8106 100644
--- a/go/game/state.go
+++ b/go/game/state.go
@@ -1,12 +1,32 @@
package game
type State struct {
- Decks []Deck
- Stores []Store
- Map Map
- Stack Stack
- Hands []Hand
- DiscardPiles []DiscardPile
- Players []Player
- Permanents []Permanent
+ Decks []*Deck
+ Stores []*Store
+ Map *Map
+ Stack *Stack
+ Hands []*Hand
+ DiscardPiles []*DiscardPile
+ Players []*Player
+ Permanents []*Permanent
+ Units []*Unit
+}
+
+func NewState() *State {
+ return &State{}
+}
+
+func (s *State) AddNewPlayer(name string, deck *Deck) {
+ p := NewPlayer(len(s.Players), name, deck, s)
+ s.Players = append(s.Players, p)
+}
+
+func (s *State) AddNewUnit(card string, pos Position, owner *Player) {
+ unit := NewUnit(card, s.Map.TileAt(pos), owner)
+ s.Permanents = append(s.Permanents, &unit.Permanent)
+ s.Units = append(s.Units, unit)
+}
+
+func (s *State) MoveUnit(u *Unit, t *Tile) {
+ u.move(s, t)
}