Files
magic-factorio/tasks/tech-tree-todo.md
T

301 lines
10 KiB
Markdown
Raw 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.
# Full Technology Progression Tasks (superseded)
> Superseded by `tasks/tech-tree-todo-v0.2.md`. Retained only as a record of the rejected factory-reskin direction.
## TT1: Define the progression data contract
**Description:** Create stable IDs and typed records for technologies, research costs, prerequisites, recipes, buildings, unlocks, and postgame formulas. Import the v0.1 catalog without putting unlock conditions in UI code.
**Acceptance criteria:**
- [ ] Every row in `docs/tech-tree-nodes-v0.1.csv` maps to one runtime record.
- [ ] Display names can change without changing save-compatible IDs.
- [ ] Mainline, comfort, optional, and postgame roles are explicit data.
**Verification:**
- [ ] Headless catalog-load test reports 76 records.
- [ ] Unknown pack, technology, recipe, or unlock IDs fail with an actionable message.
- [ ] Existing simulation smoke tests still pass.
**Dependencies:** None
**Files likely touched:**
- `src/data/technology_definition.gd`
- `src/data/technology_catalog.gd`
- `src/data/technology_catalog.tres`
- `tests/technology_catalog_smoke.gd`
**Estimated scope:** Medium
## TT2: Validate the graph and simulate route costs
**Description:** Add tooling that validates the dependency DAG and computes a selected route's tablet totals, lab-seconds, earliest unlocks, and final heart-furnace materials.
**Acceptance criteria:**
- [ ] Validator rejects duplicates, missing prerequisites, cycles, and any M node that transitively depends on O.
- [ ] Mainline totals equal Q 11,220; A 10,920; R 9,990; V 8,400; G 5,300.
- [ ] Simulator can compare mainline, recommended-normal, and custom routes.
**Verification:**
- [ ] Fixture tests cover each invalid-graph class.
- [ ] Golden output records per-era cost and theoretical lab bottlenecks.
- [ ] CI exits nonzero if catalog validation fails.
**Dependencies:** TT1
**Files likely touched:**
- `src/data/technology_graph.gd`
- `tools/progression_calculator.gd`
- `tests/technology_graph_smoke.gd`
- `tests/fixtures/technology_graphs.tres`
**Estimated scope:** Medium
## TT3: Implement the fixed-tick research runtime
**Description:** Add research queues, lab input consumption, partial progress, completion events, and unlock commands while preserving the simulation's event-driven scheduling.
**Acceptance criteria:**
- [ ] Labs consume one exact tablet set per completed unit and never duplicate or lose items.
- [ ] Loss of an input pauses exact progress and input restoration wakes the lab.
- [ ] Completing a technology emits one idempotent unlock event.
**Verification:**
- [ ] Fixed-seed runs produce identical research fingerprints.
- [ ] Disconnect/reconnect tests preserve partial unit progress exactly.
- [ ] Parallel labs complete the same technology without over-consuming the final unit.
**Dependencies:** TT1, TT2
**Files likely touched:**
- `src/simulation/research_system.gd`
- `src/simulation/world_simulation.gd`
- `tests/research_simulation_smoke.gd`
- `tests/simulation_smoke.gd`
**Estimated scope:** Medium
## TT4: Add research UI and persistence
**Description:** Let players inspect the graph, understand missing prerequisites and materials, manage the queue, and resume exact progress after save/load.
**Acceptance criteria:**
- [ ] Locked, available, queued, active, and complete states are visually distinct.
- [ ] Selecting a node shows prerequisites, exact cost, unlocks, and current bottleneck.
- [ ] Save/load preserves completion, queue order, invested tablets, timer, and achievement eligibility.
**Verification:**
- [ ] UI only submits research commands and never grants unlocks directly.
- [ ] Save-then-run and uninterrupted-run fingerprints match.
- [ ] Keyboard/mouse navigation works at 1280×720 and 1920×1080.
**Dependencies:** TT3
**Files likely touched:**
- `src/ui/research_screen.gd`
- `scenes/ui/research_screen.tscn`
- `src/persistence/world_snapshot.gd`
- `tests/research_save_smoke.gd`
**Estimated scope:** Medium
## TT5: Deliver the T0/T1 vertical slice
**Description:** Build the campaign opening from repair milestones through automated mining, refinement, bridge arms, and continuous cyan-tablet production.
**Acceptance criteria:**
- [ ] A fresh player can reach C11 using only produced resources and objective guidance.
- [ ] Existing demo entities map to progression IDs without changing their deterministic behavior.
- [ ] Cyan production at 15/min is achievable with a clearly readable small factory.
**Verification:**
- [ ] Fresh-start headless scenario completes all six milestones and C11.
- [ ] Manual walkthrough needs no developer controls or hidden starter stock.
- [ ] Regression suite for belts, mana, and bridge endpoints passes.
**Dependencies:** TT4
**Files likely touched:**
- `src/data/era_t0_t1_content.tres`
- `src/simulation/objective_system.gd`
- `src/main.gd`
- `tests/era_t1_flow_smoke.gd`
**Estimated scope:** Medium
## TT6: Deliver the T2 mana-logistics slice
**Description:** Add second-tier belts and bridge arms, mana stabilization, spirit-sand glasswork, ether-fluid handling, and the crimson-tablet gate.
**Acceptance criteria:**
- [ ] The first fluid recipe requires pumps and storage but has no unrecoverable deadlock.
- [ ] Disconnecting mana or fluid produces a precise stop reason and resumes safely.
- [ ] The reference build sustains 15 crimson tablets per minute.
**Verification:**
- [ ] Automated flow covers A01 through A12 from a T1-complete save.
- [ ] Fluid and mana conservation tests pass under backpressure.
- [ ] Bridge II range and filters match catalog data.
**Dependencies:** TT5
**Files likely touched:**
- `src/data/era_t2_content.tres`
- `src/simulation/fluid_network.gd`
- `src/simulation/world_simulation.gd`
- `tests/era_t2_flow_smoke.gd`
**Estimated scope:** Medium
## TT7: Deliver the T3 alchemy slice
**Description:** Add elemental separation, alchemical synthesis, thermal mana, precision construction, leyline survey, and violet-tablet production.
**Acceptance criteria:**
- [ ] R13 can be reached without any C or O technology.
- [ ] Byproducts back up visibly and can be routed or voided through an explicit recipe.
- [ ] The reference build sustains 20 violet tablets per minute for normal pacing.
**Verification:**
- [ ] Automated flow covers the mandatory T3 route from a T2-complete save.
- [ ] Conservation and deterministic allocation tests include solid, fluid, and mana networks.
- [ ] Optional construction golems do not appear in the mandatory dependency closure.
**Dependencies:** TT6
**Files likely touched:**
- `src/data/era_t3_content.tres`
- `src/simulation/recipe_system.gd`
- `src/simulation/resource_survey.gd`
- `tests/era_t3_flow_smoke.gd`
**Estimated scope:** Medium
## TT8: Deliver the T4 cross-island slice
**Description:** Add bounded floating-island expansion, bulk shipping, deep leyline mining, phase metallurgy, spirit processors, and emerald-tablet production.
**Acceptance criteria:**
- [ ] A mandatory late resource is obtained from another island and moved by an automated route.
- [ ] Required-resource distances stay inside the achievement-safe generation envelope.
- [ ] The reference build sustains 20 emerald tablets per minute for normal pacing.
**Verification:**
- [ ] Fixed benchmark seeds expose all critical resources in allowed distance bands.
- [ ] Cross-island transport preserves item counts across save/load.
- [ ] Automated flow reaches V13 without comfort or warding nodes.
**Dependencies:** TT7
**Files likely touched:**
- `src/data/era_t4_content.tres`
- `src/simulation/island_logistics.gd`
- `src/world/resource_topology.gd`
- `tests/era_t4_flow_smoke.gd`
**Estimated scope:** Medium
## TT9: Deliver T5 and the heart-furnace victory loop
**Description:** Add source extraction, perpetual mana, warp logistics, heart components, furnace assembly, 300-second ignition, authoritative victory timing, and both limit achievements.
**Acceptance criteria:**
- [ ] G13 unlocks the ignition process but does not itself win the game.
- [ ] The furnace consumes exact structure and component totals and pauses safely on mana loss.
- [ ] Completion at 8 hours grants both achievements; completion after 8 but by 24 grants only the 24-hour achievement.
**Verification:**
- [ ] Accelerated deterministic test runs the entire final sequence without debug item injection.
- [ ] Boundary tests cover 07:59:59, 08:00:00, 23:59:59, and 24:00:00.
- [ ] Save/load during component assembly and ignition preserves exact progress and clock state.
**Dependencies:** TT8
**Files likely touched:**
- `src/data/era_t5_content.tres`
- `src/simulation/victory_system.gd`
- `src/simulation/achievement_clock.gd`
- `tests/victory_flow_smoke.gd`
**Estimated scope:** Medium
## TT10: Add optional and postgame branches
**Description:** Implement comfort automation, modules, construction/logistics golems, warding, sky tablets, and seven repeatable technology lines without altering the mainline closure.
**Acceptance criteria:**
- [ ] Every C technology has a measurable convenience or payback claim.
- [ ] Standard campaign can finish with every O technology locked.
- [ ] Repeatable costs follow catalog formulas and cannot overflow save or UI values.
**Verification:**
- [ ] Dependency validator still reports no M-to-O path.
- [ ] Mainline route totals remain unchanged after optional content loads.
- [ ] Repeatable levels 1, 10, and 50 calculate deterministically.
**Dependencies:** TT9
**Files likely touched:**
- `src/data/optional_technology_content.tres`
- `src/data/postgame_technology_content.tres`
- `src/simulation/research_system.gd`
- `tests/postgame_research_smoke.gd`
**Estimated scope:** Medium
## TT11: Prove and tune 8/24-hour pacing
**Description:** Instrument progression timestamps and bottlenecks, create reference saves/routes, run structured expert and normal playtests, then tune against percentile targets.
**Acceptance criteria:**
- [ ] Telemetry records every metric listed in the design without collecting personal data.
- [ ] Expert P50/P90 and normal P50/P75 meet the agreed limits on standard maps.
- [ ] Each tuning change names the observed bottleneck and preserves route identity.
**Verification:**
- [ ] Benchmark report compares at least three expert runs and eight first-play runs.
- [ ] Automated route simulation agrees with catalog costs and benchmark save inventories.
- [ ] Final release checklist contains no unexplained wait above five minutes.
**Dependencies:** TT9, TT10
**Files likely touched:**
- `src/telemetry/progression_metrics.gd`
- `tools/progression_report.gd`
- `tests/progression_benchmark_smoke.gd`
- `artifacts/progression-benchmark.md`
**Estimated scope:** Medium