diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2023-01-12 20:58:14 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-01-27 16:43:44 +0100 |
| commit | 9df5cc7b55d8ac9ecd775a14a14f80a6c36c4d74 (patch) | |
| tree | b0ed4b509da71d0d6320f979a1eebbd91fdf7321 /go/game/state.go | |
| parent | 41d16fb4910fc0402b6b081302c953f7dabc8cf9 (diff) | |
| download | muhqs-game-9df5cc7b55d8ac9ecd775a14a14f80a6c36c4d74.tar.gz muhqs-game-9df5cc7b55d8ac9ecd775a14a14f80a6c36c4d74.zip | |
implement unit movement
Diffstat (limited to 'go/game/state.go')
| -rw-r--r-- | go/game/state.go | 36 |
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) } |
