Define vessels through data and capability components #35
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Vessel type knowledge is distributed across Ship.gd, VesselDelivery.gd, BuildController.gd, and GameState.gd. Shield initialization, drawing, damage handling, colors, icons, crafting lists, hangar entries, unlocks, and upgrades use hard-coded vessel checks or repeated arrays.
Direction
Introduce VesselDefinition resources for static metadata and base stats, then compose optional behavior nodes such as ShieldComponent, WeaponComponent, CargoComponent, and TransportComponent into vessel scenes. Crafting, hangar, fleet, and lab menus should enumerate the vessel catalog and its research metadata rather than maintain separate type lists.
Acceptance criteria
Implemented and pushed in commit
14081ad. Added VesselDefinition/VesselUpgradeDefinition resources plus a single vessel catalog for names, icons, colors, costs, build times, base stats, unlocks, and lab upgrades. Ship behavior is composed from optional weapon, shield, cargo, and transport component scenes; Ship.gd has no vessel-identifier behavior checks. Production and transporter handling query capabilities, and crafter/lab/hangar/queue/delivery UI resolves the catalog. Added test_vessel_composition. Full in-place suite: 60/60 passed. Rendered and inspected 720x1280 lab and crafter previews.