spaceship/CarrierVesselDefinition.tres
Loïc Wisniewski bbb1d4b0c5 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.
2026-08-16 16:20:39 +02:00

25 lines
1.1 KiB
Text

[gd_resource type="Resource" script_class="VesselDefinition" load_steps=4 format=3]
[ext_resource type="Script" path="res://VesselDefinition.gd" id="1"]
[ext_resource type="PackedScene" path="res://VesselCargoComponent.tscn" id="2"]
[ext_resource type="Resource" path="res://CarrierCapacityUpgrade.tres" id="3"]
[resource]
script = ExtResource("1")
definition_id = "carrier"
display_name = "Carrier"
description = "Unarmed hauler with a much larger hold than any combat vessel. Cannot fire."
build_cost = 24
build_time = 20.0
icon = 34
glow_color = Color(1, 0.78, 0.3, 1)
hull_points = PackedVector2Array(-32, -10, -18, -18, 18, -18, 32, -10, 32, 14, -32, 14)
fleet_eligible = true
capabilities = PackedStringArray("cargo")
component_scenes = Array[PackedScene]([ExtResource("2")])
base_stats = {"max_speed": 380.0, "acceleration": 360.0, "delivery_speed": 180.0, "cargo_capacity": 120.0}
upgrades = Array[Resource]([ExtResource("3")])
unlock_id = "unlock_carrier"
unlock_name = "Unlock Carrier"
unlock_description = "Research a dedicated hauler hull that trades weapons for a much larger cargo hold."
unlock_cost = 0
unlock_resource_costs = {"ore": 60}
unlock_icon = -1