AGENTS.md: document Dope Wars wave-1 mechanics
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user