name recipes after their process, not their product

Recipe display names come from the id, so a recipe that shared its id with
its output item showed the item's name back to the player. Every recipe id
now names the process that runs it: iron_mining, quartz_reduction,
steel_rolling, chip_etching, the *_framing hulls, the *_kit module prefabs,
and the drop-only shortcuts as direct_rolling/-etching/-hardening.

The three shortcut unlock groups are renamed with their recipes, since a
group's name is derived from its id the same way.

Blueprints and replays store recipe ids, so files recorded before this
rename lose their miner and assembler recipe selections.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
This commit is contained in:
2026-08-12 09:16:19 +02:00
parent bd8fe5157e
commit 8d0dd6f454
3 changed files with 61 additions and 56 deletions

View File

@@ -6,6 +6,10 @@
# realized: tier 1 ratios are 1:1, tier 2 ratios are 2:3, tier 3+ ratios # realized: tier 1 ratios are 1:1, tier 2 ratios are 2:3, tier 3+ ratios
# are deliberately strange. # are deliberately strange.
# #
# A recipe id names the process, not the product — the display name shown in
# the UI is derived from it — so an item and the recipe that makes it never
# carry the same name.
#
# Input chain per game phase — each phase transition adds exactly one new # Input chain per game phase — each phase transition adds exactly one new
# base input: # base input:
# #
@@ -27,21 +31,21 @@
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
[[recipe]] [[recipe]]
id = "mine_iron_ore" id = "iron_mining"
building = "miner" building = "miner"
inputs = [] inputs = []
outputs = [{item = "iron_ore", amount = 1}] outputs = [{item = "iron_ore", amount = 1}]
duration_seconds = 1.0 duration_seconds = 1.0
[[recipe]] [[recipe]]
id = "mine_copper_ore" id = "copper_mining"
building = "miner" building = "miner"
inputs = [] inputs = []
outputs = [{item = "copper_ore", amount = 1}] outputs = [{item = "copper_ore", amount = 1}]
duration_seconds = 1.0 duration_seconds = 1.0
[[recipe]] [[recipe]]
id = "mine_quartz" id = "quartz_mining"
building = "miner" building = "miner"
inputs = [] inputs = []
outputs = [{item = "quartz", amount = 1}] outputs = [{item = "quartz", amount = 1}]
@@ -52,21 +56,21 @@ duration_seconds = 2.0
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
[[recipe]] [[recipe]]
id = "iron_ingot" id = "iron_smelting"
building = "smelter" building = "smelter"
inputs = [{item = "iron_ore", amount = 1}] inputs = [{item = "iron_ore", amount = 1}]
outputs = [{item = "iron_ingot", amount = 1}] outputs = [{item = "iron_ingot", amount = 1}]
duration_seconds = 1.0 duration_seconds = 1.0
[[recipe]] [[recipe]]
id = "copper_ingot" id = "copper_smelting"
building = "smelter" building = "smelter"
inputs = [{item = "copper_ore", amount = 1}] inputs = [{item = "copper_ore", amount = 1}]
outputs = [{item = "copper_ingot", amount = 1}] outputs = [{item = "copper_ingot", amount = 1}]
duration_seconds = 1.0 duration_seconds = 1.0
[[recipe]] [[recipe]]
id = "silicon" id = "quartz_reduction"
building = "smelter" building = "smelter"
inputs = [{item = "quartz", amount = 1}] inputs = [{item = "quartz", amount = 1}]
outputs = [{item = "silicon", amount = 1}] outputs = [{item = "silicon", amount = 1}]
@@ -90,7 +94,7 @@ duration_seconds = 1.0
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
[[recipe]] [[recipe]]
id = "reprocessing_cycle" id = "scrap_reprocessing"
building = "reprocessing_plant" building = "reprocessing_plant"
inputs = [{item = "scrap", amount = 4}] inputs = [{item = "scrap", amount = 4}]
duration_seconds = 4.0 duration_seconds = 4.0
@@ -120,21 +124,21 @@ duration_seconds = 4.0
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
[[recipe]] [[recipe]]
id = "steel_plate" id = "steel_rolling"
building = "assembler" building = "assembler"
inputs = [{item = "iron_ingot", amount = 2}] inputs = [{item = "iron_ingot", amount = 2}]
outputs = [{item = "steel_plate", amount = 1}] outputs = [{item = "steel_plate", amount = 1}]
duration_seconds = 3.0 duration_seconds = 3.0
[[recipe]] [[recipe]]
id = "copper_wire" id = "wire_drawing"
building = "assembler" building = "assembler"
inputs = [{item = "copper_ingot", amount = 1}] inputs = [{item = "copper_ingot", amount = 1}]
outputs = [{item = "copper_wire", amount = 2}] outputs = [{item = "copper_wire", amount = 2}]
duration_seconds = 1.0 duration_seconds = 1.0
[[recipe]] [[recipe]]
id = "copper_coil" id = "coil_winding"
building = "assembler" building = "assembler"
inputs = [{item = "copper_wire", amount = 2}] inputs = [{item = "copper_wire", amount = 2}]
outputs = [{item = "copper_coil", amount = 1}] outputs = [{item = "copper_coil", amount = 1}]
@@ -145,7 +149,7 @@ duration_seconds = 1.5
# unlocked_at_start: building blocks appear in no schematic's materials, so the # unlocked_at_start: building blocks appear in no schematic's materials, so the
# implicit item graph can never reach this recipe (REQ-LOCK-IMPLICIT). # implicit item graph can never reach this recipe (REQ-LOCK-IMPLICIT).
[[recipe]] [[recipe]]
id = "building_block" id = "block_pressing"
building = "assembler" building = "assembler"
unlocked_at_start = true unlocked_at_start = true
inputs = [{item = "steel_plate", amount = 2}] inputs = [{item = "steel_plate", amount = 2}]
@@ -157,14 +161,14 @@ duration_seconds = 2.0
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
[[recipe]] [[recipe]]
id = "control_chip" id = "chip_etching"
building = "assembler" building = "assembler"
inputs = [{item = "silicon", amount = 1}, {item = "copper_wire", amount = 2}] inputs = [{item = "silicon", amount = 1}, {item = "copper_wire", amount = 2}]
outputs = [{item = "control_chip", amount = 1}] outputs = [{item = "control_chip", amount = 1}]
duration_seconds = 5.0 duration_seconds = 5.0
[[recipe]] [[recipe]]
id = "capacitor_bank" id = "capacitor_assembly"
building = "assembler" building = "assembler"
inputs = [{item = "copper_coil", amount = 2}, {item = "silicon", amount = 1}] inputs = [{item = "copper_coil", amount = 2}, {item = "silicon", amount = 1}]
outputs = [{item = "capacitor_bank", amount = 1}] outputs = [{item = "capacitor_bank", amount = 1}]
@@ -173,21 +177,21 @@ duration_seconds = 5.0
# The quality gate for m+ hulls: a deliberately long-running recipe # The quality gate for m+ hulls: a deliberately long-running recipe
# (time-heavy archetype). # (time-heavy archetype).
[[recipe]] [[recipe]]
id = "hardened_steel" id = "steel_hardening"
building = "assembler" building = "assembler"
inputs = [{item = "steel_plate", amount = 3}] inputs = [{item = "steel_plate", amount = 3}]
outputs = [{item = "hardened_steel", amount = 1}] outputs = [{item = "hardened_steel", amount = 1}]
duration_seconds = 12.0 duration_seconds = 12.0
[[recipe]] [[recipe]]
id = "ceramic_plate" id = "ceramic_firing"
building = "assembler" building = "assembler"
inputs = [{item = "quartz", amount = 2}] inputs = [{item = "quartz", amount = 2}]
outputs = [{item = "ceramic_plate", amount = 1}] outputs = [{item = "ceramic_plate", amount = 1}]
duration_seconds = 4.0 duration_seconds = 4.0
[[recipe]] [[recipe]]
id = "drive_unit" id = "drive_assembly"
building = "assembler" building = "assembler"
inputs = [ inputs = [
{item = "steel_plate", amount = 2}, {item = "steel_plate", amount = 2},
@@ -202,14 +206,14 @@ duration_seconds = 8.0
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
[[recipe]] [[recipe]]
id = "voidsteel_plate" id = "voidsteel_forging"
building = "assembler" building = "assembler"
inputs = [{item = "voidsteel", amount = 1}, {item = "hardened_steel", amount = 1}] inputs = [{item = "voidsteel", amount = 1}, {item = "hardened_steel", amount = 1}]
outputs = [{item = "voidsteel_plate", amount = 1}] outputs = [{item = "voidsteel_plate", amount = 1}]
duration_seconds = 8.0 duration_seconds = 8.0
[[recipe]] [[recipe]]
id = "capital_core" id = "core_assembly"
building = "assembler" building = "assembler"
inputs = [ inputs = [
{item = "voidsteel", amount = 2}, {item = "voidsteel", amount = 2},
@@ -223,25 +227,26 @@ duration_seconds = 10.0
# Shortcut recipes — drop-only assembler recipes, gated by unlock groups in # Shortcut recipes — drop-only assembler recipes, gated by unlock groups in
# unlocks.toml (REQ-LOCK-EXPLICIT). Pure rewards: item threat stays defined by # unlocks.toml (REQ-LOCK-EXPLICIT). Pure rewards: item threat stays defined by
# the base (expensive) path via the max rule, so shortcuts give real factory # the base (expensive) path via the max rule, so shortcuts give real factory
# efficiency without shifting any balance. # efficiency without shifting any balance. Named "direct_*" after the base
# process they skip a step of, so the reward reads as what it is.
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
[[recipe]] [[recipe]]
id = "shortcut_steel_plate" id = "direct_rolling"
building = "assembler" building = "assembler"
inputs = [{item = "iron_ore", amount = 3}] inputs = [{item = "iron_ore", amount = 3}]
outputs = [{item = "steel_plate", amount = 1}] outputs = [{item = "steel_plate", amount = 1}]
duration_seconds = 2.0 duration_seconds = 2.0
[[recipe]] [[recipe]]
id = "shortcut_control_chip" id = "direct_etching"
building = "assembler" building = "assembler"
inputs = [{item = "quartz", amount = 2}] inputs = [{item = "quartz", amount = 2}]
outputs = [{item = "control_chip", amount = 1}] outputs = [{item = "control_chip", amount = 1}]
duration_seconds = 4.0 duration_seconds = 4.0
[[recipe]] [[recipe]]
id = "shortcut_hardened_steel" id = "direct_hardening"
building = "assembler" building = "assembler"
inputs = [{item = "iron_ingot", amount = 4}] inputs = [{item = "iron_ingot", amount = 4}]
outputs = [{item = "hardened_steel", amount = 1}] outputs = [{item = "hardened_steel", amount = 1}]
@@ -252,35 +257,35 @@ duration_seconds = 8.0
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
[[recipe]] [[recipe]]
id = "drone_hull" id = "drone_framing"
building = "assembler" building = "assembler"
inputs = [{item = "iron_ingot", amount = 1}] inputs = [{item = "iron_ingot", amount = 1}]
outputs = [{item = "drone_hull", amount = 1}] outputs = [{item = "drone_hull", amount = 1}]
duration_seconds = 1.0 duration_seconds = 1.0
[[recipe]] [[recipe]]
id = "frigate_hull" id = "frigate_framing"
building = "assembler" building = "assembler"
inputs = [{item = "steel_plate", amount = 2}, {item = "copper_wire", amount = 1}] inputs = [{item = "steel_plate", amount = 2}, {item = "copper_wire", amount = 1}]
outputs = [{item = "frigate_hull", amount = 1}] outputs = [{item = "frigate_hull", amount = 1}]
duration_seconds = 2.0 duration_seconds = 2.0
[[recipe]] [[recipe]]
id = "destroyer_hull" id = "destroyer_framing"
building = "assembler" building = "assembler"
inputs = [{item = "steel_plate", amount = 3}, {item = "copper_coil", amount = 2}] inputs = [{item = "steel_plate", amount = 3}, {item = "copper_coil", amount = 2}]
outputs = [{item = "destroyer_hull", amount = 1}] outputs = [{item = "destroyer_hull", amount = 1}]
duration_seconds = 4.0 duration_seconds = 4.0
[[recipe]] [[recipe]]
id = "cruiser_hull" id = "cruiser_framing"
building = "assembler" building = "assembler"
inputs = [{item = "hardened_steel", amount = 2}, {item = "control_chip", amount = 2}] inputs = [{item = "hardened_steel", amount = 2}, {item = "control_chip", amount = 2}]
outputs = [{item = "cruiser_hull", amount = 1}] outputs = [{item = "cruiser_hull", amount = 1}]
duration_seconds = 6.0 duration_seconds = 6.0
[[recipe]] [[recipe]]
id = "battlecruiser_hull" id = "battlecruiser_framing"
building = "assembler" building = "assembler"
inputs = [ inputs = [
{item = "hardened_steel", amount = 3}, {item = "hardened_steel", amount = 3},
@@ -291,7 +296,7 @@ outputs = [{item = "battlecruiser_hull", amount = 1}]
duration_seconds = 8.0 duration_seconds = 8.0
[[recipe]] [[recipe]]
id = "battleship_hull" id = "battleship_framing"
building = "assembler" building = "assembler"
inputs = [ inputs = [
{item = "voidsteel_plate", amount = 3}, {item = "voidsteel_plate", amount = 3},
@@ -302,7 +307,7 @@ outputs = [{item = "battleship_hull", amount = 1}]
duration_seconds = 10.0 duration_seconds = 10.0
[[recipe]] [[recipe]]
id = "dreadnought_hull" id = "dreadnought_framing"
building = "assembler" building = "assembler"
inputs = [ inputs = [
{item = "voidsteel_plate", amount = 5}, {item = "voidsteel_plate", amount = 5},
@@ -313,7 +318,7 @@ outputs = [{item = "dreadnought_hull", amount = 1}]
duration_seconds = 12.0 duration_seconds = 12.0
[[recipe]] [[recipe]]
id = "carrier_hull" id = "carrier_framing"
building = "assembler" building = "assembler"
inputs = [ inputs = [
{item = "voidsteel_plate", amount = 5}, {item = "voidsteel_plate", amount = 5},
@@ -328,21 +333,21 @@ duration_seconds = 12.0
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
[[recipe]] [[recipe]]
id = "railgun_s_module" id = "railgun_s_kit"
building = "assembler" building = "assembler"
inputs = [{item = "copper_coil", amount = 1}] inputs = [{item = "copper_coil", amount = 1}]
outputs = [{item = "railgun_s_module", amount = 1}] outputs = [{item = "railgun_s_module", amount = 1}]
duration_seconds = 1.0 duration_seconds = 1.0
[[recipe]] [[recipe]]
id = "salvager_module" id = "salvager_kit"
building = "assembler" building = "assembler"
inputs = [{item = "steel_plate", amount = 1}, {item = "copper_wire", amount = 2}] inputs = [{item = "steel_plate", amount = 1}, {item = "copper_wire", amount = 2}]
outputs = [{item = "salvager_module", amount = 1}] outputs = [{item = "salvager_module", amount = 1}]
duration_seconds = 2.0 duration_seconds = 2.0
[[recipe]] [[recipe]]
id = "repair_tool_module" id = "repair_tool_kit"
building = "assembler" building = "assembler"
inputs = [{item = "steel_plate", amount = 1}, {item = "copper_wire", amount = 2}] inputs = [{item = "steel_plate", amount = 1}, {item = "copper_wire", amount = 2}]
outputs = [{item = "repair_tool_module", amount = 1}] outputs = [{item = "repair_tool_module", amount = 1}]
@@ -350,56 +355,56 @@ duration_seconds = 2.0
# Material-heavy, fast: the armor archetype. # Material-heavy, fast: the armor archetype.
[[recipe]] [[recipe]]
id = "armor_plates_module" id = "armor_plates_kit"
building = "assembler" building = "assembler"
inputs = [{item = "steel_plate", amount = 4}] inputs = [{item = "steel_plate", amount = 4}]
outputs = [{item = "armor_plates_module", amount = 1}] outputs = [{item = "armor_plates_module", amount = 1}]
duration_seconds = 3.0 duration_seconds = 3.0
[[recipe]] [[recipe]]
id = "maneuvering_thrusters_module" id = "maneuvering_thrusters_kit"
building = "assembler" building = "assembler"
inputs = [{item = "steel_plate", amount = 1}, {item = "copper_coil", amount = 1}] inputs = [{item = "steel_plate", amount = 1}, {item = "copper_coil", amount = 1}]
outputs = [{item = "maneuvering_thrusters_module", amount = 1}] outputs = [{item = "maneuvering_thrusters_module", amount = 1}]
duration_seconds = 2.0 duration_seconds = 2.0
[[recipe]] [[recipe]]
id = "sensor_booster_module" id = "sensor_booster_kit"
building = "assembler" building = "assembler"
inputs = [{item = "copper_wire", amount = 2}, {item = "copper_coil", amount = 1}] inputs = [{item = "copper_wire", amount = 2}, {item = "copper_coil", amount = 1}]
outputs = [{item = "sensor_booster_module", amount = 1}] outputs = [{item = "sensor_booster_module", amount = 1}]
duration_seconds = 2.0 duration_seconds = 2.0
[[recipe]] [[recipe]]
id = "afterburner_module" id = "afterburner_kit"
building = "assembler" building = "assembler"
inputs = [{item = "copper_coil", amount = 2}, {item = "steel_plate", amount = 1}] inputs = [{item = "copper_coil", amount = 2}, {item = "steel_plate", amount = 1}]
outputs = [{item = "afterburner_module", amount = 1}] outputs = [{item = "afterburner_module", amount = 1}]
duration_seconds = 3.0 duration_seconds = 3.0
[[recipe]] [[recipe]]
id = "weapon_stabilizer_module" id = "weapon_stabilizer_kit"
building = "assembler" building = "assembler"
inputs = [{item = "steel_plate", amount = 1}, {item = "copper_coil", amount = 1}] inputs = [{item = "steel_plate", amount = 1}, {item = "copper_coil", amount = 1}]
outputs = [{item = "weapon_stabilizer_module", amount = 1}] outputs = [{item = "weapon_stabilizer_module", amount = 1}]
duration_seconds = 2.0 duration_seconds = 2.0
[[recipe]] [[recipe]]
id = "weapon_primer_module" id = "weapon_primer_kit"
building = "assembler" building = "assembler"
inputs = [{item = "capacitor_bank", amount = 1}, {item = "copper_coil", amount = 1}] inputs = [{item = "capacitor_bank", amount = 1}, {item = "copper_coil", amount = 1}]
outputs = [{item = "weapon_primer_module", amount = 1}] outputs = [{item = "weapon_primer_module", amount = 1}]
duration_seconds = 4.0 duration_seconds = 4.0
[[recipe]] [[recipe]]
id = "weapon_upgrade_module" id = "weapon_upgrade_kit"
building = "assembler" building = "assembler"
inputs = [{item = "control_chip", amount = 1}, {item = "copper_coil", amount = 1}] inputs = [{item = "control_chip", amount = 1}, {item = "copper_coil", amount = 1}]
outputs = [{item = "weapon_upgrade_module", amount = 1}] outputs = [{item = "weapon_upgrade_module", amount = 1}]
duration_seconds = 4.0 duration_seconds = 4.0
[[recipe]] [[recipe]]
id = "railgun_m_module" id = "railgun_m_kit"
building = "assembler" building = "assembler"
inputs = [ inputs = [
{item = "capacitor_bank", amount = 1}, {item = "capacitor_bank", amount = 1},
@@ -410,7 +415,7 @@ outputs = [{item = "railgun_m_module", amount = 1}]
duration_seconds = 4.0 duration_seconds = 4.0
[[recipe]] [[recipe]]
id = "drone_bay_module" id = "drone_bay_kit"
building = "assembler" building = "assembler"
inputs = [ inputs = [
{item = "control_chip", amount = 1}, {item = "control_chip", amount = 1},
@@ -421,7 +426,7 @@ outputs = [{item = "drone_bay_module", amount = 1}]
duration_seconds = 4.0 duration_seconds = 4.0
[[recipe]] [[recipe]]
id = "railgun_l_module" id = "railgun_l_kit"
building = "assembler" building = "assembler"
inputs = [ inputs = [
{item = "capacitor_bank", amount = 1}, {item = "capacitor_bank", amount = 1},
@@ -432,7 +437,7 @@ outputs = [{item = "railgun_l_module", amount = 1}]
duration_seconds = 6.0 duration_seconds = 6.0
[[recipe]] [[recipe]]
id = "drone_hangar_module" id = "drone_hangar_kit"
building = "assembler" building = "assembler"
inputs = [ inputs = [
{item = "voidsteel_plate", amount = 1}, {item = "voidsteel_plate", amount = 1},

View File

@@ -125,16 +125,16 @@ modules = ["drone_hangar"]
# --- Assembler recipes ----------------------------------------------------- # --- Assembler recipes -----------------------------------------------------
[[unlock]] [[unlock]]
id = "shortcut_steel_plate" id = "direct_rolling"
station_level = 1 station_level = 1
recipes = ["shortcut_steel_plate"] recipes = ["direct_rolling"]
[[unlock]] [[unlock]]
id = "shortcut_control_chip" id = "direct_etching"
station_level = 2 station_level = 2
recipes = ["shortcut_control_chip"] recipes = ["direct_etching"]
[[unlock]] [[unlock]]
id = "shortcut_hardened_steel" id = "direct_hardening"
station_level = 2 station_level = 2
recipes = ["shortcut_hardened_steel"] recipes = ["direct_hardening"]

View File

@@ -44,9 +44,9 @@ move. Combat stats were tuned empirically against the arena suite in
| capital_core | 2 voidsteel + 1 capacitor_bank + 1 control_chip | 10 | 1 | 240 | | capital_core | 2 voidsteel + 1 capacitor_bank + 1 control_chip | 10 | 1 | 240 |
Shortcut recipes (drop-only; item threat stays defined by the base path Shortcut recipes (drop-only; item threat stays defined by the base path
via the max rule): `shortcut_steel_plate` 3 iron_ore → 1 plate (2 s, via the max rule): `direct_rolling` 3 iron_ore → 1 plate (2 s,
level 1), `shortcut_control_chip` 2 quartz → 1 chip (4 s, level 2), level 1), `direct_etching` 2 quartz → 1 chip (4 s, level 2),
`shortcut_hardened_steel` 4 iron_ingot → 1 hardened (8 s, level 2). `direct_hardening` 4 iron_ingot → 1 hardened (8 s, level 2).
Ratio curve realized: t1 all 1:1 (miner:smelter); t2 clean 2:3 Ratio curve realized: t1 all 1:1 (miner:smelter); t2 clean 2:3
(ingot→plate, wire→coil); t3 strange — 2:5 (silicon→chip), 3:5 (ingot→plate, wire→coil); t3 strange — 2:5 (silicon→chip), 3:5
@@ -122,13 +122,13 @@ range 120, scrap 40. Enemy station: 3000+1500x HP, 25+12x dmg,
## Pacing ## Pacing
**Unlock ladder** (level → unlocks; ← marks `unlock_requires`; starting **Unlock ladder** (level → unlocks; ← marks `unlock_requires`; starting
set at 1: drone, frigate, railgun_s, salvager, building_block recipe): set at 1: drone, frigate, railgun_s, salvager, block_pressing recipe):
| level | ships | modules | recipes | | level | ships | modules | recipes |
|---|---|---|---| |---|---|---|---|
| 0 | destroyer | repair_tool, armor_plates | | | 0 | destroyer | repair_tool, armor_plates | |
| 1 | | maneuvering_thrusters, sensor_booster | shortcut_steel_plate | | 1 | | maneuvering_thrusters, sensor_booster | direct_rolling |
| 2 | cruiser | railgun_m, afterburner | shortcut_control_chip, shortcut_hardened_steel | | 2 | cruiser | railgun_m, afterburner | direct_etching, direct_hardening |
| 3 | | weapon_stabilizer | | | 3 | | weapon_stabilizer | |
| 4 | battlecruiser ← cruiser | weapon_primer, weapon_upgrade | | | 4 | battlecruiser ← cruiser | weapon_primer, weapon_upgrade | |
| 5 | | drone_bay | | | 5 | | drone_bay | |