Gas bombers consume gas from the fleet hold when firing (#60)
Shots cost GAS_PER_SHOT (5) from GameState.fleet_inventory, not the bank - the fleet has to be carrying its own ammunition. The button's enabled rule now also requires affordability, and a press on a ready- but-unaffordable bomber still consumes the touch to explain itself via a new status label (GasBombStatus, IconButton's own "greyed but still pressable" convention) rather than either silently doing nothing or consuming the bomber's cooldown for a shot that never fires. Also documents a real, reproducible GDScript trap hit while writing tests/test_gas_bomber_ammo.gd: a bare `ClassName.SOME_CONST` reference anywhere in a -s entry test script can corrupt method resolution for the WHOLE script, making an unrelated, earlier `some_node._process()` call fail with "Nonexistent function '_process' in base 'Nil'" despite the node being valid and the method existing (confirmed via has_method()). Root cause unconfirmed; fixed by mirroring the constant 's value into a local const instead of referencing the class directly, in all three gas-bomber tests. tests/test_gas_bomber.gd and test_gas_bomber_cooldowns.gd updated to stock fleet gas first, since shots are no longer free.
This commit is contained in:
parent
116e0f97d3
commit
17d0cf7e66
8 changed files with 230 additions and 9 deletions
|
|
@ -104,6 +104,12 @@ func fleet_resource(resource_type: String) -> int:
|
|||
return fleet_inventory.amount(resource_type)
|
||||
|
||||
|
||||
# #60: consumed outright (ammunition), not moved to another inventory like
|
||||
# transfer_resource_to_building/_fleet - returns the amount actually taken.
|
||||
func withdraw_fleet_resource(resource_type: String, amount: int) -> int:
|
||||
return fleet_inventory.withdraw(resource_type, amount)
|
||||
|
||||
|
||||
# #56: total across every resource type in the hold, and the combined cap
|
||||
# that limits it - a HUD readout wants both, not any one resource's amount.
|
||||
func fleet_cargo_used() -> int:
|
||||
|
|
|
|||
Loading…
Reference in a new issue