orbit/data/research/cargo.json

37 lines
3.3 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"_comment": "CARGO — the player's trade capacity: the ship's hold, bay for bay (the 16-slot grid, data/economy.json → cargo.maxSlots). All three techs are BLUEPRINTS (effects: {}): the node's `unlocks.builds` declares the matching ship-hold build (data/builds.json → cargo-bay-8 / -12 / -16) and the build's `requires: [\"cargo/<node id>\"]` is the authoritative gate (dev/research-builds.test.mjs keeps both sides in lock-step). The hold's life is 0 at the run's start (data/ship.json), 4 by the bar scene (data/vignettes.json → effects.cargoHold), then this chain: 8 → 12 → 16. One node per bay count, a strict chain — cargo_bay_8 is the root; cargo_bay_12 requires it; cargo_bay_16 requires cargo_bay_12 (MAX wins — the biggest hold always supersedes, the build's effect never downgrades). On top of the DAG, the three tiers carry gates in the style of the mining Tier-3 techs (node fields, the scene wires the live predicates via attachQuestGates + attachBuildGates — js/research/ResearchModel.js): cargo_bay_8 waits on `quest: \"special_delivery\"` (the 'Special Delivery' reward must be CLAIMED — you learn to move cargo before you grow the hold), cargo_bay_12 on `build: \"mining-storage-improved\"` (the Improved Mining Storage build must be BUILT), cargo_bay_16 on `build: \"mining-storage-advanced\"` (the Advanced Mining Storage build BUILT). Node contract is the same as data/research/mining.json: `requires` = parents that must be RESEARCHED first (the DAG edges — authoritative); `unlocks` = { builds, research } declaration; `effects` = what the scene applies on completion (empty here — the build carries it); `starting` = already researched on a fresh run (none — everything is researched, never granted). duration is in research.timeUnit (seconds).",
"starting": [],
"nodes": {
"cargo_bay_8": {
"label": "Cargo - 8 Bays",
"description": "The blueprint for the ship's first trade upgrade: the 8-bay hold. Once researched, the 8-bay bay can be built from any planet's console (500 credits + 200 minerals, 20 s) — roughly 2× the goods per run, and the trade income to match.",
"icon": "storage",
"duration": 60,
"requires": [],
"quest": "special_delivery",
"unlocks": { "builds": ["cargo-bay-8"], "research": ["cargo_bay_12"] },
"effects": {}
},
"cargo_bay_12": {
"label": "Cargo - 12 Bays",
"description": "The blueprint for the 12-bay hold. Once researched, the 12-bay bay can be built (800 credits + 350 minerals, 30 s) — three quarters of a full hold in a single run, supersedes the 8-bay bay.",
"icon": "storage",
"duration": 60,
"requires": ["cargo_bay_8"],
"build": "mining-storage-improved",
"unlocks": { "builds": ["cargo-bay-12"], "research": ["cargo_bay_16"] },
"effects": {}
},
"cargo_bay_16": {
"label": "Cargo - 16 Bays",
"description": "The blueprint for the full 16-bay hold — a freighter's worth of goods in one run, the biggest the ship can carry. Once researched, the 16-bay bay can be built (1200 credits + 500 minerals, 40 s), superseding every smaller bay.",
"icon": "storage",
"duration": 60,
"requires": ["cargo_bay_12"],
"build": "mining-storage-advanced",
"unlocks": { "builds": ["cargo-bay-16"], "research": [] },
"effects": {}
}
}
}