feat: more validators
This commit is contained in:
@@ -83,7 +83,7 @@ func (c *Controller) ShipGroupLoad(actor string, groupID uuid.UUID, cargoType st
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
ct, ok := game.CargoTypeSet[cargoType]
|
||||
ct, ok := game.CargoTypeSet[strings.ToLower(cargoType)]
|
||||
if !ok {
|
||||
return e.NewCargoTypeInvalidError(cargoType)
|
||||
}
|
||||
@@ -151,12 +151,12 @@ func (c *Controller) ShipGroupTransfer(actor, acceptor string, groupID uuid.UUID
|
||||
return c.Cache.shipGroupTransfer(ri, riAccept, groupID, quantity)
|
||||
}
|
||||
|
||||
func (c *Controller) ShipGroupJoinFleet(actor, fleetName string, groupID uuid.UUID, count uint) error {
|
||||
func (c *Controller) ShipGroupJoinFleet(actor, fleetName string, groupID uuid.UUID, quantity uint) error {
|
||||
ri, err := c.Cache.validActor(actor)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return c.Cache.ShipGroupJoinFleet(ri, fleetName, groupID, count)
|
||||
return c.Cache.ShipGroupJoinFleet(ri, fleetName, groupID, quantity)
|
||||
}
|
||||
|
||||
func (c *Controller) FleetMerge(actor, fleetSourceName, fleetTargetName string) error {
|
||||
@@ -195,12 +195,12 @@ func (c *Controller) ScienceRemove(actor, typeName string) error {
|
||||
return c.Cache.ScienceRemove(ri, typeName)
|
||||
}
|
||||
|
||||
func (c *Controller) PlanetRename(actor string, planetNumber int, typeName string) error {
|
||||
func (c *Controller) PlanetRename(actor string, planetNumber int, name string) error {
|
||||
ri, err := c.Cache.validActor(actor)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return c.Cache.PlanetRename(ri, planetNumber, typeName)
|
||||
return c.Cache.PlanetRename(ri, planetNumber, name)
|
||||
}
|
||||
|
||||
func (c *Controller) PlanetProduce(actor string, planetNumber int, prodType, subject string) error {
|
||||
@@ -237,7 +237,7 @@ func (c *Controller) PlanetRouteSet(actor, loadType string, origin, destination
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
rt, ok := game.RouteTypeSet[loadType]
|
||||
rt, ok := game.RouteTypeSet[strings.ToLower(loadType)]
|
||||
if !ok {
|
||||
return e.NewCargoTypeInvalidError(loadType)
|
||||
}
|
||||
@@ -249,7 +249,7 @@ func (c *Controller) PlanetRouteRemove(actor, loadType string, origin uint) erro
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
rt, ok := game.RouteTypeSet[loadType]
|
||||
rt, ok := game.RouteTypeSet[strings.ToLower(loadType)]
|
||||
if !ok {
|
||||
return e.NewCargoTypeInvalidError(loadType)
|
||||
}
|
||||
|
||||
@@ -143,3 +143,7 @@ func (c *Cache) CreateShipsUnsafe_T(ri int, classID uuid.UUID, planet uint, quan
|
||||
func (c *Cache) WipeRace(ri int) {
|
||||
c.wipeRace(ri)
|
||||
}
|
||||
|
||||
func (c *Cache) UnsafeDeleteShipGroup(sgi int) {
|
||||
c.unsafeDeleteShipGroup(sgi)
|
||||
}
|
||||
|
||||
@@ -407,7 +407,6 @@ func (c *Cache) shipGroupTransfer(ri, riAccept int, groupID uuid.UUID, quantity
|
||||
}
|
||||
|
||||
if quantity == 0 || quantity == sg.Number {
|
||||
// FIXME: remove fleet & invalidate cache?
|
||||
c.unsafeDeleteShipGroup(sgi)
|
||||
} else {
|
||||
newGroup.Number = quantity
|
||||
@@ -437,6 +436,7 @@ func (c *Cache) ShipGroupBreak(ri int, groupID uuid.UUID, quantity uint) error {
|
||||
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
|
||||
}
|
||||
|
||||
@@ -572,3 +572,20 @@ func TestShipGroupDestroyItem(t *testing.T) {
|
||||
func TestState(t *testing.T) {
|
||||
assert.Equal(t, "In_Orbit", fmt.Sprintf("%s", game.StateInOrbit))
|
||||
}
|
||||
|
||||
func TestUnsafeDeleteShipGroup(t *testing.T) {
|
||||
c, g := newCache()
|
||||
|
||||
assert.NoError(t, c.CreateShips(Race_0_idx, Race_0_Gunship, R0_Planet_0_num, 3)) // 0
|
||||
assert.NoError(t, c.CreateShips(Race_0_idx, Race_0_Gunship, R0_Planet_2_num, 5)) // 1
|
||||
assert.NoError(t, g.ShipGroupJoinFleet(Race_0.Name, "Fleet", c.ShipGroup(0).ID, 0))
|
||||
assert.NoError(t, c.CreateShips(Race_0_idx, Race_0_Freighter, R0_Planet_2_num, 7)) // 2
|
||||
|
||||
assert.Len(t, slices.Collect(c.RaceShipGroups(Race_0_idx)), 3)
|
||||
|
||||
c.UnsafeDeleteShipGroup(1)
|
||||
|
||||
assert.Len(t, slices.Collect(c.RaceShipGroups(Race_0_idx)), 2)
|
||||
assert.Equal(t, uint(3), c.ShipGroup(0).Number)
|
||||
assert.Equal(t, uint(7), c.ShipGroup(1).Number)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user