refactor: FleetState

This commit is contained in:
Ilia Denisov
2026-02-04 20:26:52 +02:00
parent c1d397c993
commit 46b4ab96f0
6 changed files with 77 additions and 43 deletions
+5 -4
View File
@@ -21,12 +21,13 @@ func (c *Controller) SendFleet(raceName, fleetName string, planetNumber uint) er
func (c *Cache) SendFleet(ri, fi int, planetNumber uint) error {
c.validateRaceIndex(ri)
c.validateFleetIndex(fi)
state, sourcePlanet, _ := c.FleetState(c.g.Fleets[fi].ID)
if game.StateInOrbit != state && game.StateLaunched != state {
fleetState := c.FleetState(c.g.Fleets[fi].ID)
sourcePlanet, ok := fleetState.OnPlanet()
if !ok || game.StateInOrbit != fleetState.State && game.StateLaunched != fleetState.State {
return e.NewShipsBusyError()
}
p1, ok := c.Planet(*sourcePlanet)
p1, ok := c.Planet(sourcePlanet)
if !ok {
return e.NewGameStateError("source planet #%d does not exists", sourcePlanet)
}
@@ -46,7 +47,7 @@ func (c *Cache) SendFleet(ri, fi int, planetNumber uint) error {
}
}
if *sourcePlanet == planetNumber {
if sourcePlanet == planetNumber {
c.UnsendFleet(ri, fi)
return nil
}