race quit, transfer state, refactor

This commit is contained in:
Ilia Denisov
2026-02-07 01:59:11 +02:00
parent 43ba5eb07c
commit fc73cbf83a
27 changed files with 520 additions and 341 deletions
+1 -13
View File
@@ -6,25 +6,13 @@ import (
"github.com/iliadenisov/galaxy/internal/util"
)
func (c *Controller) SendFleet(raceName, fleetName string, planetNumber uint) error {
ri, err := c.Cache.raceIndex(raceName)
if err != nil {
return err
}
fi, ok := c.Cache.fleetIndex(ri, fleetName)
if !ok {
return e.NewEntityNotExistsError("fleet %q", fleetName)
}
return c.Cache.SendFleet(ri, fi, planetNumber)
}
func (c *Cache) SendFleet(ri, fi int, planetNumber uint) error {
c.validateRaceIndex(ri)
c.validateFleetIndex(fi)
fleetState := c.FleetState(c.g.Fleets[fi].ID)
sourcePlanet, ok := fleetState.AtPlanet()
if !ok || game.StateInOrbit != fleetState.State && game.StateLaunched != fleetState.State {
return e.NewShipsBusyError()
return e.NewShipsBusyError("state: %s", fleetState.State)
}
p1, ok := c.Planet(sourcePlanet)