Sync progression_design.md with implemented action items
Prune completed action items 1-4 and 8 (scrap-from-threat, schematic upgrade and ship level removal, balancing tool cleanup, unlock prerequisites), renumber the remaining three, and update stale cross-references: cite REQ-LOCK-PREREQ and unlock_requires, reflect that REQ-THREAT-SCRAP is now the 1/scrap_per_threat constant, and drop the obsolete level-up wording from the artifact rule. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DyCu8vwChKMbLJQ3xosYEN
This commit is contained in:
@@ -153,7 +153,7 @@ supporting different fleet doctrines feel structurally different to build.
|
||||
- **All time scaling lives in the threat rate** — waves get bigger, ships
|
||||
of a given schematic never get individually stronger. There is no ship
|
||||
level dimension: stat formulas are plain values, and per-ship level
|
||||
scaling (`ship_level_formula`) does not exist (see Action items). Push
|
||||
scaling does not exist. Push
|
||||
scaling on enemy defence stations is the separate, player-triggered
|
||||
difficulty axis and keeps its level formulas.
|
||||
|
||||
@@ -169,9 +169,10 @@ supporting different fleet doctrines feel structurally different to build.
|
||||
its materials need can be unlocked alongside it.
|
||||
- **Schematics can require other schematics.** Beyond the station-level
|
||||
gate, a schematic (ship, module, or assembler recipe) may list
|
||||
prerequisite schematics that must already be unlocked before it enters
|
||||
the drop pool — e.g. the medium laser requires the small laser; a
|
||||
future Mk2 requires its base version. Station level gates the earliest
|
||||
prerequisite schematics (`unlock_requires`, REQ-LOCK-PREREQ) that must
|
||||
already be unlocked before it enters the drop pool — e.g. the medium
|
||||
laser requires the small laser; a future Mk2 requires its base version.
|
||||
Station level gates the earliest
|
||||
*when*; prerequisites gate the *order*, keeping drop offers coherent
|
||||
with what the player already owns.
|
||||
- **No duplicate drops.** Ship and module schematics leave the drop pool
|
||||
@@ -184,8 +185,8 @@ supporting different fleet doctrines feel structurally different to build.
|
||||
tasks), never as free level-ups.
|
||||
- **Artifacts trade power for progress.** Artifact options compete with
|
||||
schematic picks in the same choice dialog; the artifact chance must be
|
||||
tuned so that taking one is a real decision (giving up a level-up or
|
||||
unlock), not automatic in either direction.
|
||||
tuned so that taking one is a real decision (giving up an unlock), not
|
||||
automatic in either direction.
|
||||
|
||||
## Scrap & reprocessing economy
|
||||
|
||||
@@ -206,8 +207,8 @@ supporting different fleet doctrines feel structurally different to build.
|
||||
the exception: they keep authored `scrap_drop_formula`s, because pushing
|
||||
rewards are tuned independently of ship production costs.
|
||||
- Consequence: the threat value of scrap is the constant
|
||||
`1 / scrap_per_threat`. The min-`scrap_drop` schematic derivation
|
||||
(REQ-THREAT-SCRAP) and its potential circularity disappear.
|
||||
`1 / scrap_per_threat` (REQ-THREAT-SCRAP). The former min-`scrap_drop`
|
||||
schematic derivation and its potential circularity are gone.
|
||||
- **Rule:** the late-game input's income rate meaningfully gates capital
|
||||
production — unlocking a capital hull must not mean spamming it; the
|
||||
input trickles in slowly enough that every capital ship is a noticeable
|
||||
@@ -272,47 +273,22 @@ Constraints that every recipe must respect, independent of tuning:
|
||||
## Action items — changes beyond this document
|
||||
|
||||
Agreed changes that require edits to `requirements.md`, the code, and the
|
||||
configs:
|
||||
configs. Completed items are removed from this list (their outcomes live
|
||||
in `requirements.md` and the git history). Still open:
|
||||
|
||||
1. **Derive ship scrap from threat.** Add `scrap_per_threat` to
|
||||
`world.toml`; remove `[ship.loot].scrap_drop` from `ships.toml`; update
|
||||
REQ-RES-SCRAP-DROP; replace REQ-THREAT-SCRAP with the constant
|
||||
`1 / scrap_per_threat`. Station `scrap_drop_formula`s stay.
|
||||
2. **Remove schematic upgrades.** Owned ship/module schematics leave the
|
||||
drop pool (REQ-DEF-SCHEMATIC-DROP); drop the new-unlock/level-up
|
||||
annotation from the choice dialog; remove `player_production_level`
|
||||
from `ships.toml`, `modules.toml`, and the code paths that increment
|
||||
and evaluate it (REQ-BLD-SHIPYARD, REQ-MOD-CONFIG).
|
||||
3. **Remove ship levels entirely.** Delete `ship_level_formula`
|
||||
(REQ-WAV-SHIP-LEVEL); replace all stat formulas in `ships.toml` and
|
||||
`modules.toml` with plain values (REQ-SHP-STATS, REQ-MOD-CONFIG,
|
||||
REQ-MOD-STAT-CALC evaluation rules). Enemy defence stations keep their
|
||||
station-level formulas — push scaling is unaffected.
|
||||
4. **Balancing tool follow-up.** Remove the per-ship-entry `level` from
|
||||
`balancing.toml` and the `L<level>` display format (REQ-BAL-TEAM,
|
||||
REQ-BAL-CONFIG-GAME, REQ-BAL-UI-WIDGET, REQ-BAL-UI-INSPECT-WINDOW);
|
||||
station entries keep their level. Ship stats panels no longer evaluate
|
||||
at a level (REQ-MOD-UI-STATS-PANEL, REQ-UI-SHIP-STATS-PANEL).
|
||||
5. **Fill unfillable schematic slots with artifacts.** With duplicates
|
||||
1. **Fill unfillable schematic slots with artifacts.** With duplicates
|
||||
removed, the schematic drop pool can run dry — previously unreachable.
|
||||
Decision: every slot in the choice dialog that cannot be filled with a
|
||||
schematic because the eligible pool is exhausted is filled with an
|
||||
artifact option instead (in addition to any artifact option granted by
|
||||
the regular artifact roll). A push therefore always awards a full
|
||||
dialog. Update REQ-DEF-SCHEMATIC-DROP.
|
||||
6. **Confirm wave scaling carries alone.** With per-ship level scaling
|
||||
gone, `threat_rate_formula` is the only time-scaling axis; verify the
|
||||
current `world.toml` values still produce the intended difficulty
|
||||
curve (the config reportedly already runs with a flat ship level, so
|
||||
this is likely a review, not a retune).
|
||||
7. **Gate shortcut-recipe drops on their inputs.** Extend the assembler
|
||||
2. **Confirm wave scaling carries alone.** With per-ship level scaling
|
||||
removed, `threat_rate_formula` is the only time-scaling axis; verify
|
||||
the current `world.toml` values still produce the intended difficulty
|
||||
curve (likely a review, not a retune, since the config already ran
|
||||
with a flat ship level before the removal).
|
||||
3. **Gate shortcut-recipe drops on their inputs.** Extend the assembler
|
||||
recipe schematic pool eligibility in REQ-DEF-SCHEMATIC-DROP: in
|
||||
addition to the existing station-level and output-item checks, all of
|
||||
the recipe's input item types must be implicitly unlocked as well.
|
||||
8. **Schematic prerequisites.** Add an optional prerequisite list to
|
||||
ship, module, and assembler recipe schematic entries (e.g.
|
||||
`unlock_requires = ["laser_cannon_s"]`): a schematic enters the drop
|
||||
pool only when every listed schematic is already unlocked, in addition
|
||||
to the station-level check. Update REQ-DEF-SCHEMATIC-DROP and
|
||||
REQ-LOCK-EXPLICIT. This is also the mechanism the future Mk2 design
|
||||
builds on (`*_mk2` requires the base schematic).
|
||||
|
||||
Reference in New Issue
Block a user