AGENTS.md: document Dope Wars wave-1 mechanics

This commit is contained in:
2026-09-17 11:38:42 -04:00
parent bcc2ad490c
commit f98aefb182
+27
View File
@@ -103,6 +103,33 @@ gameplay, run in the simulator and play, or use the Dope Wars debug env vars bel
`DopeWarsSim` also exposes `debug*` mutators (wallet, debt, price, tier, held, forced `DopeWarsSim` also exposes `debug*` mutators (wallet, debt, price, tier, held, forced
RNG rolls) gated behind `#if DEBUG`. RNG rolls) gated behind `#if DEBUG`.
### Dope Wars — wave-1 mechanics (the "make it dynamic" rework)
The classic uniform per-day price roll was replaced with a **momentum +
mean-reversion** model: each day a product carries `momentum` (0.50) of yesterday's
deviation from its **per-borough anchor** (`boroughAnchor`/`methAnchor`/
`chinaWhiteAnchor`) plus a ±`noisePct` (0.15) random walk, with event **shocks**
(decaying at `shockDecay` 0.70) injected on top. Tuning constants live in the
`// MARK: Wave-1 tuning` block — change them there, not inline.
Other wave-1 systems, all in `DopeWarsSim`:
- **Price history / sparkline** — `spark: [[Int]]` (last 7 days per product) feeds the
per-row `SKShapeNode` sparkline on the board.
- **Market impact** — `marketImpact()` nudges today's local price by the share of the
day's volume you traded (buy pushes up, sell pushes down); `buy` charges the
post-impact price.
- **Paid information** — `buyForecast(for:)` (Bronx contact, 70% accurate, 1-day) +
the existing free `Rumor`.
- **Reputation** — hidden `rep` (0…100, starts 50) moved by `changeRep`; drives
`fenceBonus`, `heatMult`, and shark terms.
- **Investments** — `Investment` enum (coat +30, fence auto-sell, shark protection);
`buyInvestment` (Bronx only).
- **Chase bribe** — `chaseBribe()` + `bribeCost` (RUN/FIGHT/BRIBE in the chase sheet).
- **Shark favors** — `Favor` (risky no-profit delivery), `acceptFavor`/`refuseFavor`/
`resolveFavorDelivery`; good-standing cap (`sharkCap`, doubled by protection) sets
`sharkRate` (7% vs 10%).
The Scene mirrors each with a sheet/mode (`.contact`, `.investments`, `.favor`,
`.bronxMenu`, chase BRIBE). Keep the Scene/Sim split — mechanics in the Sim, pixels
in the Scene.
## 4. Git & Gitea ## 4. Git & Gitea
Remote: Gitea `https://git.kwalb.com/kyle/Arcade85` (branch `main`). No git Remote: Gitea `https://git.kwalb.com/kyle/Arcade85` (branch `main`). No git