Scrap-consuming recipes as threat fallback, not excluded
Refine the REQ-THREAT-ITEM fix per review: recipes taking scrap as input participate in an item threat computation only when no scrap-free recipe produces that item, mirroring the existing reprocessing-path rule instead of a blanket exclusion. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DyCu8vwChKMbLJQ3xosYEN
This commit is contained in:
@@ -430,9 +430,10 @@ typical loadouts double as the `default_modules` for enemy waves):
|
|||||||
- *Rule bug discovered:* the scrap→iron_ingot smelter recipe combined
|
- *Rule bug discovered:* the scrap→iron_ingot smelter recipe combined
|
||||||
with REQ-THREAT-ITEM's max-across-recipes rule would set
|
with REQ-THREAT-ITEM's max-across-recipes rule would set
|
||||||
threat(iron_ingot) to the scrap path (1 + 4 = 5, or more at other
|
threat(iron_ingot) to the scrap path (1 + 4 = 5, or more at other
|
||||||
scrap values) instead of 2, inflating every downstream item. Fix
|
scrap values) instead of 2, inflating every downstream item. Fix:
|
||||||
required: exclude scrap-consuming recipes from item threat
|
scrap-consuming recipes count toward an item's threat only when no
|
||||||
computation (see progression_design.md action items).
|
scrap-free recipe produces that item, mirroring the reprocessing-path
|
||||||
|
rule (see progression_design.md action items).
|
||||||
|
|
||||||
## Balancing targets (first pass, July 2026)
|
## Balancing targets (first pass, July 2026)
|
||||||
|
|
||||||
|
|||||||
@@ -373,13 +373,13 @@ in `requirements.md` and the git history). Still open:
|
|||||||
one matching deposit tile). Touches REQ-BLD-MINER ("every asteroid
|
one matching deposit tile). Touches REQ-BLD-MINER ("every asteroid
|
||||||
tile is equivalent" no longer holds), REQ-GW-ASTEROID-EXPAND /
|
tile is equivalent" no longer holds), REQ-GW-ASTEROID-EXPAND /
|
||||||
REQ-EXP-*, `world.toml`, and `visuals.toml`.
|
REQ-EXP-*, `world.toml`, and `visuals.toml`.
|
||||||
6. **Exclude scrap-consuming recipes from item threat.** Amend
|
6. **Scrap-consuming recipes as threat fallback only.** Amend
|
||||||
REQ-THREAT-ITEM: recipes that take scrap as an input do not
|
REQ-THREAT-ITEM: recipes that take scrap as an input participate in
|
||||||
participate in an item's threat computation (neither as its value
|
an item's threat computation only if no scrap-free recipe (miner,
|
||||||
nor in the max-across-recipes rule). Otherwise the scrap→ingot
|
smelter, or assembler) produces that item — mirroring the existing
|
||||||
smelter recipe inflates the basic materials' threat via the max
|
rule for the reprocessing path. Otherwise the scrap→ingot smelter
|
||||||
rule, poisoning every downstream value. Scrap conversion is already
|
recipe would inflate the basic materials' threat via the
|
||||||
accounted for by the REQ-THREAT-SCRAP constant.
|
max-across-recipes rule, poisoning every downstream value.
|
||||||
7. **Threat report tool.** Port the numbers-pass calculator to
|
7. **Threat report tool.** Port the numbers-pass calculator to
|
||||||
`tools/threat_report.py`: per-item threat values, module
|
`tools/threat_report.py`: per-item threat values, module
|
||||||
contributions, fitted ship threats vs. the ladder targets,
|
contributions, fitted ship threats vs. the ladder targets,
|
||||||
|
|||||||
Reference in New Issue
Block a user