Add carrier vessel (#57)
An unarmed hauler with no weapon component - only VesselCargoComponent, so it structurally cannot fire, the same pattern that already made the shield vessel weaponless after #35. Its cargo_capacity (120, six interceptors' worth) makes it the first real payoff for #56's fleet hold cap. Wired into the crafter, hangar and ship lab menus, all of which were already generic over VesselDefinitions.fleet()/.all() - only the per-vessel UI *nodes* are hand-placed (Main.tscn), not the logic, so this repacks those three button rows to 4/4/5 columns and extends BuildController's matching onready arrays. No new signal handlers were needed. Also fixes test_vessel_composition.gd's hardcoded fleet-catalog size (3 -> 4) now that a fourth vessel is fleet-eligible.
This commit is contained in:
parent
f040327523
commit
bbb1d4b0c5
13 changed files with 489 additions and 40 deletions
17
tests/_carrier_crafter_preview.gd
Normal file
17
tests/_carrier_crafter_preview.gd
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
extends Node2D
|
||||
|
||||
# Preview, not a test - #57's crafter menu screenshot with all 4 fleet
|
||||
# vessels researched, carrier included as the new 4th entry.
|
||||
#
|
||||
# bash tests/screenshot.sh res://tests/_carrier_crafter_preview.tscn /tmp/crafter.png 20 720x1280
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
GameState.buildings.clear()
|
||||
GameState.extractors.clear()
|
||||
GameState.rocks = 500
|
||||
GameState.vessel_levels = {"unlock_shield": 1, "unlock_gas_bomber": 1, "unlock_carrier": 1}
|
||||
var main: Node = load("res://Main.tscn").instantiate()
|
||||
add_child(main)
|
||||
main.get_node("UI/CraftMenu").visible = true
|
||||
main.get_node("BuildController")._refresh_craft_status()
|
||||
Loading…
Reference in a new issue