fix: ship group zero tech levels
This commit is contained in:
@@ -519,16 +519,33 @@ TODO: Точность тех. уровней корабля
|
||||
а не округлённые уровни технологий.
|
||||
*/
|
||||
func (c *Cache) unsafeCreateShips(ri int, classID uuid.UUID, planet uint, quantity uint) {
|
||||
st := c.MustShipType(ri, classID)
|
||||
// TODO: test new group levels
|
||||
level := func(t game.Tech) float64 {
|
||||
if t == game.TechDrive && st.DriveBlockMass() > 0 {
|
||||
return c.g.Race[ri].TechLevel(game.TechDrive)
|
||||
}
|
||||
if t == game.TechWeapons && st.WeaponsBlockMass() > 0 {
|
||||
return c.g.Race[ri].TechLevel(game.TechDrive)
|
||||
}
|
||||
if t == game.TechShields && st.ShieldsBlockMass() > 0 {
|
||||
return c.g.Race[ri].TechLevel(game.TechDrive)
|
||||
}
|
||||
if t == game.TechCargo && st.CargoBlockMass() > 0 {
|
||||
return c.g.Race[ri].TechLevel(game.TechDrive)
|
||||
}
|
||||
return 0
|
||||
}
|
||||
c.appendShipGroup(ri, &game.ShipGroup{
|
||||
OwnerID: c.g.Race[ri].ID,
|
||||
TypeID: classID,
|
||||
Destination: planet,
|
||||
Number: uint(quantity),
|
||||
Tech: map[game.Tech]game.Float{
|
||||
game.TechDrive: game.F(c.g.Race[ri].TechLevel(game.TechDrive)),
|
||||
game.TechWeapons: game.F(c.g.Race[ri].TechLevel(game.TechWeapons)),
|
||||
game.TechShields: game.F(c.g.Race[ri].TechLevel(game.TechShields)),
|
||||
game.TechCargo: game.F(c.g.Race[ri].TechLevel(game.TechCargo)),
|
||||
game.TechDrive: game.F(level(game.TechDrive)),
|
||||
game.TechWeapons: game.F(level(game.TechWeapons)),
|
||||
game.TechShields: game.F(level(game.TechShields)),
|
||||
game.TechCargo: game.F(level(game.TechCargo)),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user