diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2023-02-15 16:31:06 +0100 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-08-20 15:50:10 +0200 |
| commit | f369b11bd584c5ec22a4e8e009fbac54101813ce (patch) | |
| tree | dc172ab22aa3ce4986982212b7eb77c785e04328 /go/game/unit.go | |
| parent | b810c024c301fdbe3d0833422bd18449d66d276a (diff) | |
| download | muhqs-game-f369b11bd584c5ec22a4e8e009fbac54101813ce.tar.gz muhqs-game-f369b11bd584c5ec22a4e8e009fbac54101813ce.zip | |
fix ai NPE when selecting a unit where to spawn frost pylon
The NPE is caused by any piled permanent with which TilesInRange is
called.
Diffstat (limited to 'go/game/unit.go')
| -rw-r--r-- | go/game/unit.go | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/go/game/unit.go b/go/game/unit.go index adb608ab..c6c1839a 100644 --- a/go/game/unit.go +++ b/go/game/unit.go @@ -63,11 +63,11 @@ func NewUnit(card *Card, tile *Tile, owner *Player) *Unit { } func (u *Unit) Fmt() string { - return fmt.Sprintf("%s@%v", u.Card().Name, u.TileOrContainingPermTile()) + return fmt.Sprintf("%s@%v", u.Card().Name, TileOrContainingPermTile(u)) } func (u *Unit) FmtWController() string { - return fmt.Sprintf("%s's %s@%v", u.Controller().Name, u.Card().Name, u.TileOrContainingPermTile()) + return fmt.Sprintf("%s's %s@%v", u.Controller().Name, u.Card().Name, TileOrContainingPermTile(u)) } func NewUnitFromPath(cardPath string, tile *Tile, owner *Player) *Unit { @@ -107,20 +107,11 @@ func (u *Unit) move(s *State, tile *Tile) { } } -func (u *Unit) TileOrContainingPermTile() *Tile { - tile := u.tile - if tile == nil { - tile = u.containingPerm.Tile() - } - - return tile -} - func (u *Unit) MoveRangeTiles(m *Map) []*Tile { tiles := []*Tile{} // TODO: build graph only containing possible tile in movement range graph := m.generateMapGraphFor(u) - origin := u.TileOrContainingPermTile().Position + origin := TileOrContainingPermTile(u).Position for _, pos := range PositionsInRange(origin, u.Movement.Range, false) { tile := m.TileAt(pos) if tile == nil || !u.IsAvailableTile(tile) { |
