fix: production with free P.I.

This commit is contained in:
Ilia Denisov
2026-02-06 21:43:47 +02:00
parent 3c4968ab8f
commit 43ba5eb07c
7 changed files with 62 additions and 54 deletions
+27
View File
@@ -173,6 +173,33 @@ func TestProduceShips(t *testing.T) {
assert.Equal(t, uint(106), c.ShipGroup(0).Number)
progress = *c.MustPlanet(R0_Planet_0_num).Production.Progress
assert.InDelta(t, 0.0099, progress.F(), 0.00001) // 1.(0099) drones with no CAP on planet
//
// groups is upgrade state
//
assert.NoError(t, g.PlanetProduction(Race_0.Name, int(R0_Planet_0_num), "MAT", ""))
assert.NoError(t, g.PlanetProduction(Race_0.Name, int(R0_Planet_2_num), "CAP", ""))
assert.NoError(t, c.CreateShips(Race_0_idx, "Drone", R0_Planet_2_num, 5))
c.MustPlanet(R0_Planet_2_num).Resources = 5
c.MustPlanet(R0_Planet_2_num).Population = 100
c.MustPlanet(R0_Planet_2_num).Industry = 100
c.RaceTechLevel(Race_0_idx, game.TechDrive, 1.5)
assert.NoError(t, g.UpgradeGroup(Race_0.Name, 2, "Drive", 0, 0))
assert.NoError(t, g.UpgradeGroup(Race_0.Name, 1, "Drive", 0, 0))
assert.Equal(t, game.StateUpgrade, c.ShipGroup(0).State())
assert.Equal(t, game.StateUpgrade, c.ShipGroup(1).State())
c.MustPlanet(R0_Planet_2_num).Free() // wipe planet as battle result
c.TurnPlanetProductions()
assert.Equal(t, game.StateInOrbit, c.ShipGroup(1).State())
assert.Equal(t, 1.1, c.ShipGroup(1).TechLevel(game.TechDrive).F())
assert.Equal(t, game.StateInOrbit, c.ShipGroup(0).State())
assert.Equal(t, 1.5, c.ShipGroup(0).TechLevel(game.TechDrive).F())
assert.Equal(t, 4346.676567656759, c.MustPlanet(R0_Planet_0_num).Material.F())
}
func TestProduceShip(t *testing.T) {