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
|
|
@ -35,6 +35,9 @@ enum Icon {
|
|||
# inserting there would silently renumber every icon int already
|
||||
# stored in existing scenes (#54).
|
||||
GAS_BURNER,
|
||||
# Same append-only rule (#57): a wide hauler hull, distinct from every
|
||||
# vessel glyph above.
|
||||
CARRIER_VESSEL,
|
||||
}
|
||||
|
||||
# Size the glyphs were originally drawn against. Every glyph dimension is
|
||||
|
|
@ -227,6 +230,8 @@ func _draw() -> void:
|
|||
_draw_gas_bomb(center, pulse, s)
|
||||
Icon.GAS_BURNER:
|
||||
_draw_gas_burner_icon(center, pulse, s)
|
||||
Icon.CARRIER_VESSEL:
|
||||
_draw_carrier(center, pulse, s)
|
||||
|
||||
|
||||
func _draw_close(center: Vector2, pulse: float, s: float) -> void:
|
||||
|
|
@ -251,6 +256,20 @@ func _draw_shield_vessel(center: Vector2, pulse: float, s: float) -> void:
|
|||
NeonDraw.draw_glowing_polygon(self, points, _active_color(), pulse, core_color)
|
||||
|
||||
|
||||
func _draw_carrier(center: Vector2, pulse: float, s: float) -> void:
|
||||
# Wide and flat-bottomed rather than pointed - reads as a hauler, not a
|
||||
# combat silhouette, matching the ship's own hull_points.
|
||||
var hull := PackedVector2Array([
|
||||
center + Vector2(-13, -4) * s,
|
||||
center + Vector2(-7, -8) * s,
|
||||
center + Vector2(7, -8) * s,
|
||||
center + Vector2(13, -4) * s,
|
||||
center + Vector2(13, 6) * s,
|
||||
center + Vector2(-13, 6) * s,
|
||||
])
|
||||
NeonDraw.draw_glowing_polygon(self, hull, _active_color(), pulse, core_color)
|
||||
|
||||
|
||||
func _draw_gas_bomber(center: Vector2, pulse: float, s: float) -> void:
|
||||
var hull := PackedVector2Array([
|
||||
center + Vector2(0, -12) * s,
|
||||
|
|
|
|||
Loading…
Reference in a new issue