Write down what game this actually is, and correct the docs that disagreed - #198
Merged
Conversation
…greed The owner's question was "why would anyone open this tomorrow", and the honest answer read out of the code is: nothing makes them. A raid is fun, the Vault pays once a week, and between those two there is no reason to come back. Energy caps five runs a day, but a cap is a limiter, not a reason — you limit what people want more of, and once the week's Vault is claimed there is nothing they want more of. Underneath that sits a structural mismatch. A campaign that ends and a payout that repeats forever are two different genres, and the seam is exactly where players got stuck: campaignActIndex only ever increments, so a cleared bunker is gone, while the world map draws a ✓ on it and implies you can go back. WorldMapHub already said so in a comment. docs/GAME-DESIGN.md is the missing layer above every other doc here: what the game is, what each existing system is FOR, and how the daily, weekly and seasonal loops are supposed to connect. Four owner decisions are recorded in it — campaign becomes the tutorial and the map becomes the game; Paper and the Golden Key become reachable by effort with luck kept as a shortcut; raiding a cleared bunker costs energy; daily play pays progress while money stays weekly. Two things it corrects in my own earlier reasoning. Re-entering a cleared bunker needs no serialization at all — a farmed bunker should regenerate, which is why LDOE ships respawn timers — so it is a new mount() startMode, not surgery. And the floor cache that already works within a visit is correct as it stands and must not be "fixed". It also records a real defect found while tracing this: getSaveSnapshot() persists fourteen fields but not G.floors, and applyRestoredState() does not restore it, so Save & Exit rebuilds the floor from scratch — different layout, monsters alive again, containers lootable again. The weekly Paper and Golden Key are safe behind the server's per-wallet weekly cap. The rest is correcting docs that had drifted into claiming things the code never did. game-mechanics.md offered three character classes where the engine has had exactly one since v80; described 6 bunkers of 3 floors against the real 5 and 5; published a rarity table taken from a config block nothing reads, where the true weights give ~59% common and ~0.6% legendary; said container loot goes straight to the inventory when it is taken from a two-panel window; and promised players they would "return exactly where you left off", which is the one claim the Save & Exit defect makes false. That last one is now stated as the limitation it is.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Docs only — no code changes.
The owner's question was "why would anyone open this tomorrow?" The honest answer, read out of the code, is: nothing makes them. A raid is fun, the Vault pays once a week, and between those two there is no reason to return. Energy caps five runs a day, but a cap is a limiter, not a reason — you limit what people want more of, and once the week's Vault is claimed there is nothing they want more of.
The structural finding
A campaign that ends and a payout that repeats forever are two different genres, and the seam is exactly where players got stuck.
campaignActIndexonly ever increments (game.js:5244), so a cleared bunker is gone — while the world map draws a ✓ on it and implies you can go back.WorldMapHub.tsx:234already admitted this in a comment.docs/GAME-DESIGN.md(new)The missing layer above every other doc in that folder: what the game is, what each existing system is for, and how the daily / weekly / seasonal loops are supposed to connect. Four owner decisions are recorded:
GROWTH-BLUEPRINT.md§1AEvery claim in the doc is tagged
[TODAY]/[TARGET]/[CHANGE], with a rule that implementing a[TARGET]flips it in the same PR. A design doc that drifts from the code is worse than none — which is the exact failure being corrected here.Two corrections to my own earlier reasoning, recorded in the doc:
mount({ startMode })value, not surgery.game.js:5442-5452already accepts four modes.G.floors,game.js:463) is already correct and must not be "fixed".A real defect found while tracing this (§8)
getSaveSnapshot()(game.js:5581-5621) persists fourteen fields but notG.floors, andapplyRestoredState()(game.js:305-343) does not restore it. Both verified line by line. So Save & Exit → Continue rebuilds the floor from scratch: different layout (dungeon.jsuses bareMath.random(), no seed), monsters alive again, containers lootable again.The weekly Paper and Golden Key are safe — guarded twice, by the saved run-caps and by the server's per-wallet-per-week cap. XP, ordinary items and Glitch Shards are not. Flagged as read-from-source, not reproduced in a running game.
Docs corrected
game-mechanics.mdhad drifted into claiming things the code never did:assets.js:19-29)CAMPAIGN,depth%5===0)leaderboard/{addr}has no season partition; they are cumulativeThe rarity table and the 6-bunker figure both traced back to
game-config.tsblocks (bunkers,specialItems,loot,seasonRewards) that no source file reads — the engine is a static<script>and cannot import fromlib/. Deleting them is queued in the build order; this PR documents the trap so nothing builds on them in the meantime.index.mdgains the link and loses the stale class line.Verification
tsc --noEmitcleannpm run check:copy— no banned MiniPay copyGenerated by Claude Code