refactor: exclude from fleet when break group

This commit is contained in:
IliaDenisov
2026-02-12 14:32:54 +03:00
parent 87291d2760
commit e8c3411a50
3 changed files with 9 additions and 11 deletions
+8 -9
View File
@@ -18,9 +18,9 @@ func (c *Cache) ShipGroup(groupIndex int) *game.ShipGroup {
return &c.g.ShipGroups[groupIndex]
}
func (c *Cache) internalShipGroupJoinFleet(groupIndex int, fID *uuid.UUID) {
func (c *Cache) internalShipGroupJoinFleet(groupIndex int, fID uuid.UUID) {
c.validateShipGroupIndex(groupIndex)
c.g.ShipGroups[groupIndex].FleetID = fID
c.g.ShipGroups[groupIndex].FleetID = &fID
c.invalidateFleetCache()
}
@@ -377,7 +377,7 @@ func (c *Cache) shipGroupTransfer(ri, riAccept int, groupID uuid.UUID) (err erro
return nil
}
func (c *Cache) ShipGroupBreak(ri int, groupID, newID uuid.UUID, quantity uint) error {
func (c *Cache) ShipGroupBreak(ri int, groupID, newID uuid.UUID, quantity uint) (err error) {
c.validateRaceIndex(ri)
sgi, ok := c.raceShipGroupIndex(ri, groupID)
if !ok {
@@ -397,15 +397,14 @@ func (c *Cache) ShipGroupBreak(ri int, groupID, newID uuid.UUID, quantity uint)
return e.NewBeakGroupNumberNotEnoughError("%d<%d", c.ShipGroup(sgi).Number, quantity)
}
if quantity == 0 || quantity == c.ShipGroup(sgi).Number {
c.internalShipGroupJoinFleet(sgi, nil)
} else {
// TODO: which group stays in fleet?
if _, err := c.breakGroup(ri, groupID, quantity); err != nil {
return err
if quantity > 0 && quantity < c.ShipGroup(sgi).Number {
if sgi, err = c.breakGroup(ri, groupID, quantity); err != nil {
return
}
}
c.ShipGroup(sgi).FleetID = nil
return nil
}