From 04193e2013fcacbf3204d5fe8e010d0e02162dcd Mon Sep 17 00:00:00 2001 From: gauvainboiche Date: Sun, 25 Oct 2026 17:34:44 +0100 Subject: [PATCH] First commit, done on M6 from the PLAN.MD --- Dockerfile | 11 + docker-compose.yml | 12 + docs/CARD-WRITING.md | 116 ++++++++ docs/PLAN.md | 247 ++++++++++++++++ go.mod | 3 + server/cards_test.go | 287 +++++++++++++++++++ server/content_test.go | 134 +++++++++ server/endgame_test.go | 143 ++++++++++ server/main.go | 48 ++++ server/ui_content_test.go | 77 +++++ tools/add-cards.mjs | 61 ++++ tools/card-stats.mjs | 76 +++++ tools/cardfmt.mjs | 15 + tools/engine-check.mjs | 435 +++++++++++++++++++++++++++++ web/css/decision.css | 147 ++++++++++ web/css/desk.css | 112 ++++++++ web/css/endgame.css | 161 +++++++++++ web/css/ledger.css | 145 ++++++++++ web/css/menu.css | 126 +++++++++ web/css/papers.css | 257 +++++++++++++++++ web/css/ui.css | 32 +++ web/data/README.txt | 1 + web/data/balance.json | 177 ++++++++++++ web/data/cards/crises.json | 137 +++++++++ web/data/cards/culture.json | 65 +++++ web/data/cards/defense.json | 112 ++++++++ web/data/cards/economy.json | 193 +++++++++++++ web/data/cards/education.json | 88 ++++++ web/data/cards/environment.json | 100 +++++++ web/data/cards/foreign.json | 115 ++++++++ web/data/cards/health.json | 87 ++++++ web/data/cards/housing.json | 69 +++++ web/data/cards/index.json | 7 + web/data/cards/industry.json | 119 ++++++++ web/data/cards/justice.json | 94 +++++++ web/data/cards/security.json | 118 ++++++++ web/data/cards/social.json | 114 ++++++++ web/data/cards/transport.json | 83 ++++++ web/data/characters.json | 22 ++ web/data/endgame.json | 175 ++++++++++++ web/data/newspaper.json | 214 ++++++++++++++ web/data/scenarios/default.json | 46 +++ web/data/scenarios/index.json | 5 + web/dev/sim-core.js | 94 +++++++ web/dev/sim.html | 78 ++++++ web/embed.go | 8 + web/fonts/CourierPrime-Bold.ttf | Bin 0 -> 72856 bytes web/fonts/CourierPrime-Regular.ttf | Bin 0 -> 71188 bytes web/fonts/IMFeENit28P.ttf | Bin 0 -> 202368 bytes web/fonts/IMFeENrm28P.ttf | Bin 0 -> 194992 bytes web/fonts/LICENSE-SpecialElite.txt | 202 ++++++++++++++ web/fonts/OFL-CourierPrime.txt | 93 ++++++ web/fonts/OFL-IMFellEnglish.txt | 93 ++++++ web/fonts/SpecialElite-Regular.ttf | Bin 0 -> 166180 bytes web/img/README.txt | 1 + web/index.html | 32 +++ web/js/engine/cards.js | 104 +++++++ web/js/engine/economy.js | 88 ++++++ web/js/engine/game.js | 161 +++++++++++ web/js/engine/gameover.js | 63 +++++ web/js/engine/index.js | 14 + web/js/engine/indicators.js | 47 ++++ web/js/engine/modifiers.js | 84 ++++++ web/js/engine/projection.js | 44 +++ web/js/engine/rng.js | 31 ++ web/js/engine/score.js | 93 ++++++ web/js/engine/sectors.js | 16 ++ web/js/engine/state.js | 17 ++ web/js/engine/time.js | 31 ++ web/js/engine/validate.js | 96 +++++++ web/js/i18n/en.json | 189 +++++++++++++ web/js/i18n/fr.json | 189 +++++++++++++ web/js/i18n/i18n.js | 72 +++++ web/js/main.js | 282 +++++++++++++++++++ web/js/save/codec.js | 81 ++++++ web/js/save/storage.js | 107 +++++++ web/js/ui/calendar.js | 60 ++++ web/js/ui/charts.js | 45 +++ web/js/ui/dashboard.js | 127 +++++++++ web/js/ui/decision.js | 113 ++++++++ web/js/ui/desk.js | 18 ++ web/js/ui/endgame.js | 118 ++++++++ web/js/ui/ledger.js | 213 ++++++++++++++ web/js/ui/menu.js | 369 ++++++++++++++++++++++++ web/js/ui/newspaper.js | 96 +++++++ web/js/ui/telegram.js | 41 +++ 86 files changed, 8396 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 docs/CARD-WRITING.md create mode 100644 docs/PLAN.md create mode 100644 go.mod create mode 100644 server/cards_test.go create mode 100644 server/content_test.go create mode 100644 server/endgame_test.go create mode 100644 server/main.go create mode 100644 server/ui_content_test.go create mode 100644 tools/add-cards.mjs create mode 100644 tools/card-stats.mjs create mode 100644 tools/cardfmt.mjs create mode 100644 tools/engine-check.mjs create mode 100644 web/css/decision.css create mode 100644 web/css/desk.css create mode 100644 web/css/endgame.css create mode 100644 web/css/ledger.css create mode 100644 web/css/menu.css create mode 100644 web/css/papers.css create mode 100644 web/css/ui.css create mode 100644 web/data/README.txt create mode 100644 web/data/balance.json create mode 100644 web/data/cards/crises.json create mode 100644 web/data/cards/culture.json create mode 100644 web/data/cards/defense.json create mode 100644 web/data/cards/economy.json create mode 100644 web/data/cards/education.json create mode 100644 web/data/cards/environment.json create mode 100644 web/data/cards/foreign.json create mode 100644 web/data/cards/health.json create mode 100644 web/data/cards/housing.json create mode 100644 web/data/cards/index.json create mode 100644 web/data/cards/industry.json create mode 100644 web/data/cards/justice.json create mode 100644 web/data/cards/security.json create mode 100644 web/data/cards/social.json create mode 100644 web/data/cards/transport.json create mode 100644 web/data/characters.json create mode 100644 web/data/endgame.json create mode 100644 web/data/newspaper.json create mode 100644 web/data/scenarios/default.json create mode 100644 web/data/scenarios/index.json create mode 100644 web/dev/sim-core.js create mode 100644 web/dev/sim.html create mode 100644 web/embed.go create mode 100644 web/fonts/CourierPrime-Bold.ttf create mode 100644 web/fonts/CourierPrime-Regular.ttf create mode 100644 web/fonts/IMFeENit28P.ttf create mode 100644 web/fonts/IMFeENrm28P.ttf create mode 100644 web/fonts/LICENSE-SpecialElite.txt create mode 100644 web/fonts/OFL-CourierPrime.txt create mode 100644 web/fonts/OFL-IMFellEnglish.txt create mode 100644 web/fonts/SpecialElite-Regular.ttf create mode 100644 web/img/README.txt create mode 100644 web/index.html create mode 100644 web/js/engine/cards.js create mode 100644 web/js/engine/economy.js create mode 100644 web/js/engine/game.js create mode 100644 web/js/engine/gameover.js create mode 100644 web/js/engine/index.js create mode 100644 web/js/engine/indicators.js create mode 100644 web/js/engine/modifiers.js create mode 100644 web/js/engine/projection.js create mode 100644 web/js/engine/rng.js create mode 100644 web/js/engine/score.js create mode 100644 web/js/engine/sectors.js create mode 100644 web/js/engine/state.js create mode 100644 web/js/engine/time.js create mode 100644 web/js/engine/validate.js create mode 100644 web/js/i18n/en.json create mode 100644 web/js/i18n/fr.json create mode 100644 web/js/i18n/i18n.js create mode 100644 web/js/main.js create mode 100644 web/js/save/codec.js create mode 100644 web/js/save/storage.js create mode 100644 web/js/ui/calendar.js create mode 100644 web/js/ui/charts.js create mode 100644 web/js/ui/dashboard.js create mode 100644 web/js/ui/decision.js create mode 100644 web/js/ui/desk.js create mode 100644 web/js/ui/endgame.js create mode 100644 web/js/ui/ledger.js create mode 100644 web/js/ui/menu.js create mode 100644 web/js/ui/newspaper.js create mode 100644 web/js/ui/telegram.js diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..8abdd59 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM golang:1.23-alpine AS build +WORKDIR /src +COPY go.mod ./ +COPY server ./server +COPY web ./web +RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/game ./server + +FROM gcr.io/distroless/static +COPY --from=build /out/game /game +EXPOSE 8080 +ENTRYPOINT ["/game"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..58c5898 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,12 @@ +services: + game: + build: . + ports: + - "8080:8080" + restart: unless-stopped + healthcheck: + # distroless has no shell or curl, so the binary probes itself + test: ["CMD", "/game", "-healthcheck"] + interval: 30s + timeout: 3s + retries: 3 diff --git a/docs/CARD-WRITING.md b/docs/CARD-WRITING.md new file mode 100644 index 0000000..6ea9fd1 --- /dev/null +++ b/docs/CARD-WRITING.md @@ -0,0 +1,116 @@ +# Writing decision cards + +Guide for anyone (human or model) adding cards to `web/data/cards/`. Every card is one weekly yes/no decision +for the ruler of the fictional Republic of Valdoria. A run has 260 of them, in English and French. + +## Workflow + +1. Read the existing file for your category (`web/data/cards/.json`) to catch the voice and format, + and `web/data/characters.json` for the senders. +2. Write new cards in **batches of at most 25** as a JSON array in a scratch file outside the repo. +3. Merge the batch: `node tools/add-cards.mjs `. It rejects duplicate ids and wrong + categories, appends the cards, and reformats the file. +4. Validate: `go test ./server`. It checks every field, both languages, effects, conditions, senders, flags and + follow-up links, and says which card is wrong. +5. Review the balance: `node tools/card-stats.mjs `. +6. Edit the category file directly to fix whatever the tests or the stats show. + +Only edit your own category files. Never touch `balance.json`, the code or the tests while adding content. + +## The card + +```json +{ + "id": "eco_example_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "weight": 1, + "conditions": { "min": { "debt": 70 }, "max": {}, "flags": [], "notFlags": [], "dayMin": 90, "dayMax": 1500 }, + "title": { "en": "…", "fr": "…" }, + "body": { "en": "…", "fr": "…" }, + "yes": { "label": { "en": "…", "fr": "…" }, "effects": [ … ], "setFlags": [], "followUp": { "id": "eco_next_01", "inDays": 45 } }, + "no": { "label": { "en": "…", "fr": "…" }, "effects": [ … ] } +} +``` + +- `doc`: `memo`, `letter`, `petition`, `report` or `telegram`. Telegrams are for urgent news only. +- `sender`: an id from `characters.json`. Pick the one who would really write it. +- `once` is true by default. `once: false` plus `cooldownDays` makes a card repeatable (only for crises and + recurring situations). `followUpOnly: true` keeps a card out of random draws; it appears only through a `followUp`. +- `weight` defaults to 1. Use 0.5 for niche cards and 1.5 for central ones, sparingly. +- Ids: `__`, unique across all files. Prefixes: `eco soc hlt edu sec def for ind trn hou env jus cul cri`. + +### Effects (each option has a list) + +| Shape | Meaning | +|---|---| +| `{ "stat": "opinion", "delta": 4 }` | instant shift | +| `{ "stat": "opinion", "delta": 4, "days": 30 }` | spread over the days, then fades back | +| `{ "stat": "economy", "delta": -2, "bias": true, "days": 365 }` | moves the stat's target for that many days (omit `days` for permanent) | +| `{ "sector": "health", "delta": 5, "days": 120 }` | sector quality (also instant or `bias`) | +| `{ "oneOff": 0.5 }` | one-time cost in % of GDP (negative = windfall) | +| `{ "extraSpending": 0.3 }` | permanent extra spending in % of GDP (negative = savings) | +| `{ "revenue": "income", "delta": 3 }` | tax rate in points (`income`, `corporate`, `vat`) | +| `{ "revenue": "other", "delta": 0.3 }` | permanent other revenue in % of GDP | + +Stats: `order stability civilRights opinion economy hardPower softPower unrest armyLoyalty` (0 to 100), plus +`growth unemployment inflation` (percent). Sectors: `education health social police army justice industry +transport infrastructure housing research culture foreignAffairs environment administration`. + +**Size guide.** Instant or spread shifts 1 to 6 points. Lasting `bias` effects 1 to 5 points for 180 to 730 days. +Sector quality 2 to 6 over 60 to 365 days. `oneOff` 0.1 to 1.5. `extraSpending` 0.1 to 1.0. Tax rates 1 to 4 points. +`growth` bias 0.1 to 0.6, `unemployment` 0.1 to 0.5, `inflation` 0.2 to 1.5. Use 2 to 4 effects per option, and mix +instant, spread, bias, sector and budget effects. The effects must fit the story: repression raises order and +lowers civil rights. + +**Every option has a real cost and a real benefit.** Saying no is never a free "nothing happens": the status quo +has consequences too. + +### Conditions and scheduling + +Spread the cards over the whole term so each year brings new material: + +- about 30 % available from the start (no `dayMin`), 25 % from day 90 to 400, 25 % from day 400 to 900, + 20 % from day 900 to 1500; +- 30 to 40 % gated on the state of the country: `min`/`max` on any stat, on `debt` or `deficit` (% of GDP), or on + `q:` (sector quality, for "this sector is in trouble" cards); +- a few early-only cards with `dayMax`. + +Flags: `setFlags` on an option records the decision; `conditions.flags` / `notFlags` read it. Every flag a card +reads must be set by some card (the tests check). Use flags prefixed with your category. The flags that already +exist are `wealth_tax austerity airline_sold crackdown energy_privatised trade_pact emergency_austerity concessions`. + +### Follow-up chains + +About one chain per eight cards: an option has `"followUp": { "id": "...", "inDays": 30 }` pointing at a +`followUpOnly` card that continues the story. Branch the story: set a flag in one option and let the follow-up +(or a second follow-up card) differ depending on the flag. Chains are 2 to 3 cards long. + +## Voice + +- **Tone**: dry, specific, politically grounded, a little satirical, like a briefing that has seen everything. + Concrete places, numbers and institutions in Valdoria. Both sides of every dilemma have a respectable argument. +- **Fiction only**: no real countries, people, parties or brands. No slurs. No cartoon villains. +- **Length**: body of 2 to 3 sentences (English up to 300 characters, French up to 340): the situation first, then + the tension. Title up to 50 characters. Option labels up to 32 characters, led by a verb, clearly different from + each other (never "Yes" / "No", never two "Approve"). +- **No pronouns for people**: name ministries and organisations, not individuals, and never use a pronoun for the + player or anyone else. Address the player as "you" / "vous" sparingly, and in French never with an adjective + that agrees with the player. +- **Variety**: vary senders, document types and sentence shapes. Do not start every card with "The ministry + proposes". No two cards about the same dilemma. +- **French**: natural, idiomatic French rather than a translation word for word. Correct accents, « guillemets » + with spaces, a space before `? ! : ;`, typographic apostrophe `'` as in the existing cards. Telegram bodies are + UPPERCASE without accents and end with `STOP.` in both languages. Keep institution names consistent with the + existing cards ("ministère des Finances", "Banque centrale"). + +## Balance checks before you finish + +`node tools/card-stats.mjs ` prints, per answer and for a coin flip (50/50): + +- one-off cost and extra spending: the coin-flip rows should stay close to zero (about as many windfalls and savings + as costs), because a player who answers at random should not bankrupt or enrich the country; +- opinion, stability, economy: the coin-flip rows should stay within ±0.5 per card; +- the spread of availability and the share of gated cards, per the targets above; +- warnings for long bodies, duplicate titles and identical labels. diff --git a/docs/PLAN.md b/docs/PLAN.md new file mode 100644 index 0000000..b183981 --- /dev/null +++ b/docs/PLAN.md @@ -0,0 +1,247 @@ +# Country Game: "The Desk" — Plan + +> Shared plan for both of us. The first coding step copies this file to `docs/PLAN.md` in the repo. From then on, that copy is the one to follow: tick the checkboxes, edit the numbers, and add entries to the decisions log at the bottom. + +## Context + +The goal is a single-player browser game in the style of Suzerain, delivered as a docker-compose service. You rule a fictional country for 5 in-game years. You set the sector budgets (in % of GDP) every quarter and answer a yes/no policy card every week. The country's indicators change a little every in-game day. Debt, unrest and repression feed into each other and can end the run early (revolution, coup or default). If you survive, the game ends on a 5-year review ("bilan"). Everything on screen is shown as paper documents on a wooden desk with a leather pad. + +The project folder is empty, so everything below is new code. + +## Decisions taken + +| Topic | Decision | +|---|---| +| Backend | **Go, standard library only** (`net/http` + `embed`). It serves static files and has a `/healthz` endpoint. No game logic runs on the server. | +| Frontend | **Vanilla JS ES modules + CSS, no bundler and no npm.** The only runtime dependency is zero: no framework, no chart library (charts are hand-drawn SVG). | +| Fonts | Special Elite (typewriter text, **Apache-2.0**, not OFL), IM Fell English (headings, OFL) and Courier Prime (figures, OFL), stored with their licence files in `web/fonts/` so the game works offline. | +| Time | **1 day = 10 s at 1× speed** (a full run is about 5 h). Speed controls: pause, 1×, 2×, 4×, plus a "slow" setting (60 s/day) in Settings. **The game pauses automatically** when the weekly card arrives, at the quarterly budget review, and on crisis telegrams. | +| Saves | Auto-save to `localStorage` every in-game day. 3 manual save slots. Export/import as a **plain base64 string** (and as a downloadable `.sav` file). | +| Language | **English and French.** Every text field is `{ "en": "...", "fr": "..." }`, and there's a language switch in the menu. | +| Randomness | A seeded PRNG (mulberry32) whose state is stored in the save, so reloading a save doesn't re-roll the cards. | + +About "AppData": a web page can't write to AppData or the macOS/Linux equivalents directly. However, `localStorage` is already stored on disk inside the browser profile (which on Windows lives under AppData). The `.sav` file export covers the case of keeping a save file you can see. + +## Repository layout + +``` +country_game/ +├─ docker-compose.yml # one service "game", port 8080 +├─ Dockerfile # golang:1.23-alpine build stage → gcr.io/distroless/static +├─ go.mod # module countrygame, no require block +├─ server/ +│ ├─ main.go # embed ../web, FileServer, cache headers, /healthz, PORT env +│ └─ content_test.go # `go test` validates every card/scenario JSON (schema, ids, en+fr present, refs exist) +├─ web/ +│ ├─ index.html +│ ├─ css/ desk.css papers.css ledger.css ui.css +│ ├─ fonts/ img/ (small noise/stamp SVGs only) +│ ├─ data/ +│ │ ├─ balance.json # every tunable coefficient (no magic numbers in code) +│ │ ├─ scenarios/default.json (+ index.json listing the scenarios) +│ │ ├─ newspaper.json # headline templates (EN/FR), done in M2 +│ │ ├─ endgame.json # game-over banners, urgent telegrams, historian titles and verdicts, done in M5 +│ │ ├─ characters.json # ministers / senders (name, seal initials, role), done in M4 +│ │ └─ cards/.json # card pools, one file per category, plus cards/index.json (the manifest) +│ └─ js/ +│ ├─ main.js # boot, load data, main loop (requestAnimationFrame + accumulator) +│ ├─ engine/ # PURE: no DOM, no fetch, so it can run headless +│ │ rng.js state.js time.js economy.js sectors.js indicators.js modifiers.js game.js index.js (done, M1) +│ │ projection.js (done, M3) +│ │ validate.js (done, M6) +│ │ cards.js (done, M4) +│ │ gameover.js score.js (done, M5) +│ ├─ ui/ # DOM only, reads state, dispatches actions +│ │ desk.js dashboard.js newspaper.js calendar.js charts.js inbox.js (stub) (done, M2) +│ │ ledger.js (done, M3) +│ │ decision.js (done, M4; replaces the inbox stub) +│ │ telegram.js endgame.js (done, M5) +│ │ menu.js (done, M6) +│ ├─ save/ storage.js codec.js (done, M6) +│ └─ i18n/ i18n.js en.json fr.json # UI strings only; card text lives in cards (done, M2) +├─ tools/ +│ └─ engine-check.mjs # `node tools/engine-check.mjs`: engine regression checks (determinism, pause gating, effects) +└─ docs/PLAN.md +``` + +`web/dev/sim.html` + `sim-core.js` (the balance runner) live under `web/` instead of `tools/`, because the page needs the Go server to load the engine as ES modules (`file://` blocks them). Open http://localhost:8080/dev/sim.html. + +Rule: `engine/` never touches the DOM. `ui/` never changes the state directly; it calls `engine` actions (`answerCard`, `setBudget`, `tick`). This keeps the balance tools and any later server-side validation possible. + +## Simulation model + +### State (one JSON object, this is also the save) +`version, seed, rngState, day (0…1825), speed, lang, countryName, scenarioId, economy{}, sectors{}, indicators{}, modifiers[], flags{}, cardHistory[], pendingCard, followUps[], history{t[], series{}} (one sample per week), pending{weeklyCard, review}, over, ref{}, log[]` + +`pending` holds the pauses waiting on the player; `advanceDay` refuses to run while either is set, so a reload mid-decision comes back to the same decision. `ref` freezes the scenario's start values: every indicator target is `start value + weighted deviations from the start state`, so the starting country is an exact equilibrium and a hands-off run stays flat apart from noise. + +### Economy (in % of GDP unless stated) +- `gdp` (absolute value, in a fictional currency) and `growth` (annual %, applied daily). +- **Revenue**: three tax levers, adjustable at the quarterly review: income tax, corporate tax and VAT. Each one turns into revenue in % of GDP, with diminishing returns, and pushes growth or opinion in the opposite direction. +- **Spending** = the sum of sector allocations + debt interest. +- `deficit = spending − revenue`, which is added to `debt` every day (1/365 per day). +- **Interest rate** = base rate + a risk premium that rises with debt/GDP (convex curve). +- Debt bands (thresholds tunable in `balance.json`): + - < 60 %: no effect. + - 60–90 %: small stability drain, interest starts to climb. + - 90–150 %: industry quality decays, growth −, unrest +. + - > 150 %: daily chance of a "bond market panic" event. + - > 200 %: game over by sovereign default. +- Also tracked: `unemployment` and `inflation` (simple functions of growth, industry and deficit). + +### Sectors (budget % of GDP, set every quarter) +Education, Health, Social welfare & pensions, Police, Army, Justice, Industry & energy, Public transport, Infrastructure, Housing, Research, Culture & media, Foreign affairs, Environment, Administration (15 sectors). + +Each sector has: +- `alloc`: the % of GDP the player gave it. +- `need`: the baseline % from the scenario. +- `quality` (0–100), which moves toward a target every day: `target = f(alloc/need)`, a saturating curve, so overspending gives diminishing returns. + +The **time constant differs per sector**. Police reacts in about 2 weeks, Health in about 3 months, Education in about 1 year, Infrastructure in about 2 years. This is what makes the game strategic: you pay now and see the effect later. + +### Indicators (0–100) +Order, Stability, Civil Rights, Public Opinion (0 = angry, 100 = ecstatic), Economy, Hard Power, Soft Power. Two hidden or semi-visible gauges also exist: **Unrest** and **Army Loyalty**. + +Every day, each indicator moves toward `target = Σ(weight × sector quality) + economy terms + active modifiers`. It moves by a fraction of the gap, plus small noise. The weight matrix lives in `balance.json`. Some examples: +- Police raises Order and lowers Civil Rights (strongly if over-funded). +- Army raises Hard Power and Army Loyalty. +- Culture and Foreign affairs raise Soft Power. +- Social welfare, Health and Housing raise Opinion and Stability. +- High unemployment or inflation lowers Opinion. + +**Unrest** goes up when Opinion and Stability are low, when unemployment is high and when debt is above 90 %. It goes down with Order, but heavy police use lowers Civil Rights and Soft Power and feeds future unrest. This is the debt → unrest → police → instability spiral you described. + +### Card effects (seen after each day) +An effect can be: +- **instant**: `{stat, delta}` (stat is an indicator or `growth`/`unemployment`/`inflation`); +- **spread over time**: `{stat, delta, days}`, applied as delta/days every day. The value then drifts back toward its target, so this is a temporary bump; +- **bias**: `{stat, delta, bias: true, days?}` offsets the stat's *target* for `days` days (permanent if omitted). Use it for lasting policy effects; +- **budget**: `{revenue: "income"|"corporate"|"vat", delta}` changes a tax rate in rate points; `{revenue: "other", delta}` and `{extraSpending: delta}` are permanent changes in % of GDP; `{oneOff: pct}` is a one-time cost in % of GDP (negative = windfall); +- **sector quality**: `{sector, delta[, days][, bias]}`; +- **flags** set or cleared; +- **follow-up**: `{cardId, inDays}`. + +The daily tick applies every active modifier, so the consequences of a choice unfold day after day on the dashboard. + +### Game over (checked daily, risk-based rather than hard cut-offs) +- **Revolution**: Unrest > 70 and Opinion < 20 → a daily chance of 2 % × days spent in the zone (the days fade by 1 per day outside it). +- **Military coup**: Army Loyalty < 35 and Stability < 35 → a daily chance of 1.5 % × days in the zone. The army only turns on a failing government: neglecting it alone is not enough. +- **Sovereign default**: debt > 200 % of GDP, immediately. +- **Impeachment / no-confidence**: Civil Rights < 10 and Opinion < 25 for 60 days in a row. +- **Warnings**: entering any of these zones (or debt reaching 160 %) queues an urgent telegram that stops time until the player acknowledges it. Thresholds live in `balance.json` under `gameOver`; the first four were lowered from the original draft (85/15 and 20/30) because the model never got close to them. +- The dashboard's "Hold on power" line shows Secure, Shaky (close to a zone) or Critical (inside one). + +Each game over has its own illustrated final document, for example a newspaper front page announcing "GOVERNMENT FALLS". + +### End-of-term review (day 1826) +A weighted score over the indicators averaged across the whole term (not just final values), plus bonuses or penalties for final debt, average growth and average unemployment (`balance.score`). Grades: S 75, A 66, B 58, C 50, D 40, F below. A game that ends early scores at most 35 and always gets an F. The historian's title is the first entry of `endgame.json` whose conditions match the term's averages (order of the list is the priority; the last entry has no conditions), or the one title tied to the way the player lost. The final screen is a newspaper front page with the grade, title and verdict, charts of opinion, stability, economy and debt over the term, and the five decisions with the greatest effect (`optionImpact` in `engine/score.js`). A hands-off term scores 57 (C, "The Caretaker"). + +**Pronouns.** The game opens by asking how the press should refer to the player: He/Him, She/Her, They/Them (Il/Lui, Elle/Elle, Iel/Ielle in French). It only changes text that refers to the player, which is the historian's verdict and title. Texts use tokens: `{sub} {Sub} {obj} {pos} {is} {has} {was}` in English, `{sub} {Sub} {tonic} {e}` in French (`{e}` is the agreement ending: nothing, e, ·e). French titles come in three forms (masculine, feminine, inclusive with a middle dot). Everywhere else (cards, newspaper, telegrams) text avoids pronouns for the player. `tp()` and `tt()` in `i18n.js` fill the tokens, and `server/endgame_test.go` rejects unknown tokens. + +## Time and the quarterly cycle +- The main loop uses `requestAnimationFrame` with a time accumulator. A new day starts when the accumulator reaches `msPerDay / speed`. +- **Every Monday** a card is drawn and the game pauses. You can't resume until you answer it (stamp APPROVED or REJECTED). +- **Every 13 weeks** the budget ledger opens and the game pauses. You can change the sector allocations and the three tax levers, with a live projection of the deficit and of debt over the next 4 quarters. The rest of the time the ledger is read-only. +- Crisis events can arrive in the middle of a week as telegrams. They either need an answer or are information only. + +## Card system +- **How many**: 5 years × 52 weeks = 260 weekly draws. The goal is a pool of **at least 800 base cards**, plus follow-up and crisis cards, so that each run sees less than a third of the pool. +- **Schema** (`web/data/cards/.json`): +```json +{ + "id": "eco_tax_wealthy_01", + "category": "economy", + "doc": "memo", // memo | telegram | petition | report | letter + "sender": "min_finance", + "weight": 1.0, + "once": true, + "conditions": { "min": {"debt": 60}, "max": {}, "flags": [], "notFlags": [], "dayMin": 0, "dayMax": 1825 }, + "title": { "en": "Tax the wealthy?", "fr": "Taxer les plus riches ?" }, + "body": { "en": "...", "fr": "..." }, + "yes": { "label": {"en":"Sign the decree","fr":"Signer le décret"}, + "effects": [ {"revenue":"income","delta":3}, + {"stat":"opinion","delta":4,"days":30}, + {"stat":"economy","delta":-3,"days":90} ], + "setFlags": ["wealth_tax"], "followUp": {"id":"eco_capital_flight_01","inDays":45} }, + "no": { "label": {"en":"Shelve it","fr":"Classer le dossier"}, "effects": [ ... ] } +} +``` +- **How a card is drawn** (`engine/cards.js`): start from all cards whose conditions are met and that haven't been used. Weight each one by `weight` × a category boost (a sector below quality 40 makes its category up to 2× likelier) × a novelty factor (0.4 per card of the same category among the last 3). Follow-ups that are due take priority over random draws. With no eligible card the week is simply empty and the game is not blocked. +- **Fields beyond the schema above**: `once` defaults to true; `once: false` makes a card repeatable with `cooldownDays` (default 180); `followUpOnly: true` keeps a card out of random draws so it only appears through a `followUp`. Condition stats are any indicator, `growth`/`unemployment`/`inflation`, `debt` and `deficit` (% of GDP) and `q:` (sector quality). Options can also `clearFlags`. Every pending card is saved in `state.pendingCard`, so a reload shows the same card. +- **Effect size guide** used for the first 64 cards: instant or spread shifts of 1–6 points on indicators, lasting `bias` effects of 1–5 over 180–730 days, sector quality shifts of 2–6 over 60–365 days, one-off costs of 0.1–1.5 % of GDP (negative = windfall), `extraSpending` of 0.1–1.0 % of GDP, tax rate changes of 2–4 points. Every option has a cost; there is no free choice. +- **Target count per category** (about 920 in total): economy 100, social 70, health 60, education 60, police/security 70, army/defense 60, foreign/diplomacy 70, industry/energy 70, transport/infrastructure 60, housing 40, environment 50, justice/civil rights 60, culture/media 40, crises 50. +- **How the content gets written**: Sonnet writes it in batches of about 40 cards per category file, in English and French. After each batch, `go test ./server` checks the schema, that ids are unique, that both languages are present, that follow-up ids exist, and that effect stats are valid. + +## Desk UI (Suzerain-like) +- **Background**: a wood texture made in CSS (layered `repeating-linear-gradient` plus an inline SVG `feTurbulence` grain), with a darker vignette. +- **Leather pad**: a rounded rectangle with a stitched border (`dashed` outline), its own grain and an inner shadow. +- **Everything is a paper on the desk**, each with a slight random rotation, a drop shadow and a paper texture: + - *Ministerial dashboard* (top left): a typed report with the 7 indicators as ink gauges and SVG sparklines drawn on graph paper. + - *Calendar / clock* (top right): a desk calendar with the date and the speed buttons as brass toggles. + - *Daily newspaper* (side): 1–3 generated headlines driven by state changes and events. + - *Decision folder* (centre): the weekly card as a memo, telegram or petition with a sender seal. You answer with two rubber stamps (APPROVED / REJECTED) and a stamp animation. + - *Budget ledger*: a green-ruled accounting book with one row per sector, a slider and an ink figure. It opens as a two-page spread. + - *Telegrams*: crisis alerts that slide in on yellow strips. +- **Main menu**: a closed folder labelled "TOP SECRET". It has New game (country name + scenario), Continue, Load slot, Import, Settings (language, slow mode, sound off) and Credits. +- **Accessibility**: real ` +

+

Final state per strategy

+
+

Timeline

+
+ + + diff --git a/web/embed.go b/web/embed.go new file mode 100644 index 0000000..abdce80 --- /dev/null +++ b/web/embed.go @@ -0,0 +1,8 @@ +// Package web embeds the static frontend so the server ships as one binary. +// It lives next to the files because go:embed cannot reference parent directories. +package web + +import "embed" + +//go:embed index.html css js data dev fonts img +var Files embed.FS diff --git a/web/fonts/CourierPrime-Bold.ttf b/web/fonts/CourierPrime-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d27ce71916d55b584c51854e9d57a303de6af9f0 GIT binary patch literal 72856 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 literal 0 HcmV?d00001 diff --git a/web/fonts/CourierPrime-Regular.ttf b/web/fonts/CourierPrime-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2a0f8bde9778bb8c7b3a0ca5d4b4fb041737ef1a GIT binary patch literal 71188 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 literal 0 HcmV?d00001 diff --git a/web/fonts/IMFeENit28P.ttf b/web/fonts/IMFeENit28P.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d9afa7e097d525cefa294f2575efc4bef66e1dda GIT binary patch literal 202368 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

dxRGFozDHQYOK%2Jlg^ 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 literal 0 HcmV?d00001 diff --git a/web/fonts/IMFeENrm28P.ttf b/web/fonts/IMFeENrm28P.ttf new file mode 100644 index 0000000000000000000000000000000000000000..275d754ed6be5d26e37c6ccdb4934a0930dcbe3f GIT binary patch literal 194992 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 z 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

${t("ledger.sumRevenue")}
${fmt(f.revenue, 1)} %
+
${t("ledger.sumSectors")}
${fmt(f.allocTotal, 1)} %
+
${t("ledger.sumInterest")}
${fmt(f.interest, 1)} %
+
${t("ledger.sumSpending")}
${fmt(f.spending, 1)} %
+
${t(balance >= 0 ? "ledger.sumSurplus" : "ledger.sumDeficit")}
+
${fmt(Math.abs(balance), 1)} % + ${t("ledger.perYear", { n: bn(balance), currency: scenario.currency })}
`; + + const months = (i) => (i === 0 ? t("ledger.now") : t("ledger.months", { n: i * 3 })); + $(root, ".proj thead").innerHTML = `${pv.points.map((_, i) => `${months(i)}`).join("")}`; + $(root, ".proj tbody").innerHTML = PROJ_ROWS.map(([label, get, digits, suffix]) => + `${t(label)}${pv.points.map((p) => `${fmt(get(p), digits)}${suffix}`).join("")}`).join(""); + } + + function syncSliders() { + for (const id of sectorIds(ctx.state)) $(root, `#alloc-${id}`).value = draft.alloc[id]; + for (const id of TAX_IDS) $(root, `#tax-${id}`).value = draft.taxes[id]; + } + + root.addEventListener("input", (e) => { + const input = e.target; + if (!ctx || input.type !== "range") return; + const v = Number(input.value); + if (input.id.startsWith("alloc-")) draft.alloc[input.id.slice(6)] = v; + else if (input.id.startsWith("tax-")) draft.taxes[input.id.slice(4)] = v; + refresh(); + }); + + root.addEventListener("click", (e) => { + const b = e.target.closest("button[data-act]"); + if (!b || !ctx) return; + if (b.dataset.act === "reset") { + draft = structuredClone(base); + syncSliders(); + refresh(); + } else { + const { state, bal } = ctx; + const res = setBudget(state, bal, draft); + if (!res.ok) { + $(root, "[data-error]").hidden = false; + return; + } + confirmBudget(state); + close(); + onConfirm(); + } + }); + + function update(state, bal) { + if (!(state.pending.review && !state.pending.profile && !state.over)) { + if (openKey !== null) close(); + return; + } + const key = `${state.day}:${getLang()}`; + if (key !== openKey) { + openKey = key; + open(state, bal); + } + } + + return { update }; +} diff --git a/web/js/ui/menu.js b/web/js/ui/menu.js new file mode 100644 index 0000000..53ffbaf --- /dev/null +++ b/web/js/ui/menu.js @@ -0,0 +1,369 @@ +// Main menu and in-game pause menu: a "Top secret" folder with one screen at a time. +// Modes: "main" (before a game) and "game" (pause menu while a game is running). +// The menu never changes the game itself; it hands results to main.js through `handlers`. + +import { t, tx, getLang, dateParts } from "../i18n/i18n.js"; +import { dateOfDay, restoreState, PRONOUNS } from "../engine/index.js"; +import { encodeSave, decodeSave, migrate } from "../save/codec.js"; +import { KEYS, SLOT_COUNT, readSave, writeSave } from "../save/storage.js"; +import { $, esc } from "./desk.js"; + +const ARM_MS = 4000; // how long a "Sure?" button stays armed + +export function createMenu(root, { content, storage, getState, getSettings, handlers }) { + let mode = "main"; + let screen = "home"; + let message = null; // { text, kind: "ok" | "error" } + let armed = null; // "action:arg" waiting for a second click + let armTimer = 0; + let exportText = ""; + + const say = (text, kind = "ok") => { message = { text, kind }; }; + const go = (next) => { screen = next; message = null; disarm(); render(); }; + + function disarm() { + armed = null; + clearTimeout(armTimer); + } + + function arm(key) { + armed = key; + clearTimeout(armTimer); + armTimer = setTimeout(() => { armed = null; render(); }, ARM_MS); + render(); + } + + // ---- Reading saves ---- + + const autosave = () => readSave(storage, KEYS.auto); + + function describe(entry) { + const scenario = content.scenarios[entry.meta.scenarioId]; + let date = ""; + if (scenario) { + const p = dateParts(dateOfDay(scenario.startDate, entry.meta.day).iso); + date = ` · ${p.day} ${p.month} ${p.year}`; + } + const saved = new Intl.DateTimeFormat(getLang(), { dateStyle: "medium", timeStyle: "short" }).format(new Date(entry.meta.savedAt)); + const info = t("load.info", { country: entry.meta.countryName, day: entry.meta.day, date }); + return `${esc(info)}${entry.meta.over ? ` · ${t("load.finished")}` : ""}${esc(saved)}`; + } + + // Turns a stored or imported state into a playable one, or explains why not. + function restore(rawState) { + const migrated = migrate(rawState); + if (!migrated.ok) return migrated; + return restoreState(migrated.state, content); + } + + function loadEntry(entry) { + const r = entry ? restore(entry.state) : { ok: false, error: "invalid" }; + if (!r.ok) { + say(t("load.unreadable"), "error"); + render(); + return; + } + handlers.onLoadState(r.state); + } + + // ---- Screens ---- + + const button = (action, label, extra = "", cls = "") => + ``; + const back = () => `
${button("back", t("menu.back"))}
`; + const notice = () => (message ? `` : ""); + + function home() { + const state = getState(); + if (mode === "game") { + return ` +

${t("menu.paused")}

+ + `; + } + const auto = autosave(); + const canContinue = auto && !auto.meta.over; + return ` +

${t("app.title")}

+ + ${notice()} + `; + } + + function newGame() { + const ids = Object.keys(content.scenarios); + const first = content.scenarios[ids[0]]; + return ` +

${t("new.title")}

+ + ${ids.length > 1 + ? `` + : ``} + + + ${back()}`; + } + + function slotRow(label, entry, actions) { + return ` + `; + } + + const confirmable = (action, arg, label, enabled = true) => { + const isArmed = armed === `${action}:${arg}`; + return ``; + }; + + function load() { + const rows = []; + const auto = autosave(); + rows.push(slotRow(t("load.auto"), auto, auto ? confirmable("loadEntry", "auto", t("load.load")) : "")); + for (let n = 1; n <= SLOT_COUNT; n++) { + const entry = readSave(storage, KEYS.slot(n)); + rows.push(slotRow(t("load.slot", { n }), entry, + entry ? `${confirmable("loadEntry", String(n), t("load.load"))}${confirmable("deleteSlot", String(n), t("load.delete"))}` : "")); + } + return ` +

${t("load.title")}

+ ${mode === "game" ? `` : ""} + ${notice()} + + ${back()}`; + } + + function save() { + const rows = []; + for (let n = 1; n <= SLOT_COUNT; n++) { + const entry = readSave(storage, KEYS.slot(n)); + rows.push(slotRow(t("load.slot", { n }), entry, + confirmable("saveSlot", String(n), entry ? t("save.overwrite") : t("save.here")))); + } + return ` +

${t("save.title")}

+ ${notice()} + + ${back()}`; + } + + function exportScreen() { + return ` +

${t("export.title")}

+ + + ${notice()} + + ${back()}`; + } + + function importScreen() { + return ` +

${t("import.title")}

+ + + ${notice()} + + ${back()}`; + } + + function settings() { + const s = getSettings(); + const lang = getLang(); + return ` +

${t("settings.title")}

+ + + ${storage.persistent ? "" : ``} + ${back()}`; + } + + function credits() { + return ` +

${t("credits.title")}

+

${t("credits.fiction")}

+

${t("credits.tech")}

+

${t("credits.fonts")}

+ ${back()}`; + } + + const SCREENS = { home, new: newGame, load, save, export: exportScreen, import: importScreen, settings, credits }; + + function render() { + root.innerHTML = ` + `; + } + + // ---- Actions ---- + + async function copyExport() { + const box = $(root, "#export-text"); + try { + await navigator.clipboard.writeText(exportText); + say(t("export.copied")); + } catch { + box.select(); + say(document.execCommand?.("copy") ? t("export.copied") : t("export.copyFailed"), "ok"); + } + render(); + } + + function download() { + const state = getState(); + const slug = state.countryName.toLowerCase().normalize("NFD").replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "") || "game"; + const url = URL.createObjectURL(new Blob([exportText], { type: "text/plain" })); + const a = document.createElement("a"); + a.href = url; + a.download = `${slug}-day${state.day}.sav`; + a.click(); + setTimeout(() => URL.revokeObjectURL(url), 1000); + } + + function doImport() { + const text = $(root, "#import-text").value; + if (!text.trim()) { + say(t("import.error.empty"), "error"); + render(); + return; + } + const decoded = decodeSave(text); + const r = decoded.ok ? restoreState(decoded.state, content) : decoded; + if (!r.ok) { + say(t("import.error." + r.error), "error"); + const keep = text; + render(); + $(root, "#import-text").value = keep; + return; + } + handlers.onLoadState(r.state); + } + + function start() { + const id = $(root, "#new-scenario").value; + const pronouns = root.querySelector('input[name="pronouns"]:checked')?.value ?? "they"; + const name = $(root, "#new-name").value.trim(); + handlers.onStart({ countryName: name || tx(content.scenarios[id].name), scenarioId: id, pronouns }); + } + + const ACTIONS = { + continue: () => loadEntry(autosave()), + new: () => go("new"), + load: () => go("load"), + save: () => go("save"), + export: () => { exportText = encodeSave(getState()); go("export"); }, + import: () => go("import"), + settings: () => go("settings"), + credits: () => go("credits"), + back: () => go("home"), + resume: () => handlers.onResume(), + quit: () => handlers.onQuit(), + start, + copy: copyExport, + download, + doImport, + lang: (arg) => { handlers.onSettings({ lang: arg }); render(); }, + loadEntry: (arg) => loadEntry(readSave(storage, arg === "auto" ? KEYS.auto : KEYS.slot(arg))), + deleteSlot: (arg) => { storage.remove(KEYS.slot(arg)); disarm(); render(); }, + saveSlot: (arg) => { + const ok = writeSave(storage, KEYS.slot(arg), getState()); + disarm(); + say(ok ? t("save.done", { n: arg }) : t("save.failed"), ok ? "ok" : "error"); + render(); + }, + }; + // Destructive actions need a second click on the same button. + const NEEDS_CONFIRM = { + loadEntry: () => mode === "game", + deleteSlot: () => true, + saveSlot: (arg) => readSave(storage, KEYS.slot(arg)) !== null, + }; + + root.addEventListener("click", (e) => { + const el = e.target.closest("[data-action]"); + if (!el || el.disabled) return; + const { action, arg } = el.dataset; + const key = `${action}:${arg}`; + if (NEEDS_CONFIRM[action]?.(arg) && armed !== key) { + arm(key); + return; + } + disarm(); + ACTIONS[action](arg); + }); + + root.addEventListener("change", async (e) => { + if (e.target.id === "setting-slow") handlers.onSettings({ slow: e.target.checked }); + if (e.target.id === "import-file" && e.target.files[0]) { + $(root, "#import-text").value = await e.target.files[0].text(); + } + }); + + document.addEventListener("keydown", (e) => { + if (root.hidden || e.key !== "Escape") return; + if (screen !== "home") go("home"); + else if (mode === "game") handlers.onResume(); + }); + + return { + show(nextMode, nextScreen = "home") { + mode = nextMode; + screen = nextScreen; + message = null; + disarm(); + render(); + root.hidden = false; + }, + hide() { + root.hidden = true; + root.innerHTML = ""; + disarm(); + }, + // Re-render after the language changed. + refresh() { + if (!root.hidden) render(); + }, + }; +} diff --git a/web/js/ui/newspaper.js b/web/js/ui/newspaper.js new file mode 100644 index 0000000..ec4af6c --- /dev/null +++ b/web/js/ui/newspaper.js @@ -0,0 +1,96 @@ +// Daily newspaper: headlines picked from templates by how much the indicators +// moved over the last few weeks. Selection is deterministic (hash of week + key) +// and never touches the game RNG, so reading the paper can't change the game. + +import { t, tx, getLang, dateParts } from "../i18n/i18n.js"; +import { IND_IDS, dateOfDay } from "../engine/index.js"; +import { hash, $ } from "./desk.js"; + +const IND_THRESHOLD = 4; // points moved over the window to make news +const VAR_THRESHOLD = { growth: 0.4, unemployment: 0.4, inflation: 0.5, debtRatio: 3 }; + +// Each entry: [template key, test on the live state, severity score] +const LEVELS = [ + ["unrest.high", (s, f) => s.indicators.unrest >= 50, 1.7], + ["opinion.low", (s, f) => s.indicators.opinion <= 30, 1.6], + ["debt.high", (s, f) => f.debtRatio >= 100, 1.6], + ["stability.low", (s, f) => s.indicators.stability <= 35, 1.6], + ["civilRights.low", (s, f) => s.indicators.civilRights <= 25, 1.5], + ["army.low", (s, f) => s.indicators.armyLoyalty <= 35, 1.7], + ["inflation.high", (s, f) => s.economy.inflation >= 6, 1.5], + ["deficit.high", (s, f) => f.deficit >= 8, 1.5], +]; + +function candidates(state, tpl) { + const out = []; + const h = state.history; + const n = h.t.length; + if (n >= 2) { + const back = Math.min(4, n - 1); + const consider = (group, id, threshold) => { + const s = h.series[id]; + const d = s[n - 1] - s[n - 1 - back]; + const dir = d > 0 ? "up" : "down"; + const tpls = tpl[group][id]?.[dir]; + if (tpls && Math.abs(d) / threshold >= 1) out.push({ score: Math.abs(d) / threshold, key: `${group}.${id}.${dir}`, tpls }); + }; + for (const id of IND_IDS) consider("ind", id, IND_THRESHOLD); + for (const [id, thr] of Object.entries(VAR_THRESHOLD)) consider("var", id, thr); + } + const debtRatio = h.series.debtRatio?.[n - 1] ?? 0; + const deficit = h.series.deficit?.[n - 1] ?? 0; + for (const [key, test, score] of LEVELS) { + if (tpl.level[key] && test(state, { debtRatio, deficit })) out.push({ score, key: `level.${key}`, tpls: tpl.level[key] }); + } + return out.sort((a, b) => b.score - a.score); +} + +export function computeHeadlines(state, tpl) { + const week = Math.floor(state.day / 7); + const pick = (tpls, key) => tpls[hash(`${key}:${week}`) % tpls.length]; + + if (state.history.t.length < 2 && state.day === 0) return [pick(tpl.intro, "intro")]; + const found = candidates(state, tpl); + if (!found.length) return [pick(tpl.quiet, "quiet")]; + return found.slice(0, 3).map((c) => pick(c.tpls, c.key)); +} + +export function createNewspaper(root, tpl) { + root.innerHTML = ` +
+

${tx(tpl.name)}

+
+
+

+
`; + + let shown = ""; + + function update(state) { + // The date line follows the calendar; headlines only change with the weekly history sample. + $(root, ".news__edition").textContent = t("news.edition", { date: dateParts(dateOfDay(state.startDate, state.day).iso).full }); + + const week = Math.floor(state.day / 7); + const key = `${week}|${getLang()}|${state.history.t.length}`; + if (key === shown) return; + shown = key; + + const fill = (s) => s.replaceAll("{country}", state.countryName); + const [lead, ...rest] = computeHeadlines(state, tpl); + $(root, ".news__lead h3").textContent = fill(tx(lead.h)); + $(root, ".news__lead p").textContent = fill(tx(lead.d)); + + const side = $(root, ".news__side"); + side.replaceChildren(...rest.map((item) => { + const a = document.createElement("article"); + const h = document.createElement("h4"); + const p = document.createElement("p"); + h.textContent = fill(tx(item.h)); + p.textContent = fill(tx(item.d)); + a.append(h, p); + return a; + })); + } + + return { update }; +} diff --git a/web/js/ui/telegram.js b/web/js/ui/telegram.js new file mode 100644 index 0000000..1bb6e35 --- /dev/null +++ b/web/js/ui/telegram.js @@ -0,0 +1,41 @@ +// Urgent telegrams: the game warns that a way of losing power is getting close. +// They slide in over the desk and time stays stopped until the player acknowledges. + +import { t, tx } from "../i18n/i18n.js"; +import { $, esc } from "./desk.js"; + +export function createTelegram(root, { alerts, onDismiss }) { + root.addEventListener("click", (e) => { + if (e.target.closest("button[data-dismiss]")) onDismiss(); + }); + + let shown = ""; + + function update(state) { + const alert = state.pending.alert && !state.over ? state.alerts[0] : null; + const key = alert ? `${alert.kind}:${alert.day}` : ""; + if (key === shown) return; + shown = key; + + if (!alert) { + root.hidden = true; + root.innerHTML = ""; + return; + } + const text = alerts[alert.kind]; + root.innerHTML = ` +
+
+ ${t("alert.urgent")} + ${state.alerts.length > 1 ? `+${state.alerts.length - 1}` : ""} +
+

${esc(tx(text.title))}

+

${esc(tx(text.body))}

+ +
`; + root.hidden = false; + $(root, "button").focus(); + } + + return { update }; +}
&PLY>mF6Pi31nkv}6w;+=Z&Z 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≷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�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�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
f?XpE5v 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
K0qs0s;?!{iqc+NDZ^HJby#y2oQn6EI8L4A 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 E3w7g^!vFvP literal 0 HcmV?d00001 diff --git a/web/img/README.txt b/web/img/README.txt new file mode 100644 index 0000000..fd476c0 --- /dev/null +++ b/web/img/README.txt @@ -0,0 +1 @@ +Placeholder so go:embed accepts this folder. Delete once real files exist. diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..020bed4 --- /dev/null +++ b/web/index.html @@ -0,0 +1,32 @@ + + + + + + The Desk + + + + + + + + + +
+
+
+
+ + + + +
+
+
+
+
+
+ + + diff --git a/web/js/engine/cards.js b/web/js/engine/cards.js new file mode 100644 index 0000000..c40fa38 --- /dev/null +++ b/web/js/engine/cards.js @@ -0,0 +1,104 @@ +// Weekly decision cards: drawing, eligibility and applying the player's answer. +// +// Card: { id, category, doc, sender, weight?, once?, cooldownDays?, followUpOnly?, +// conditions?: { min:{stat:n}, max:{stat:n}, flags:[], notFlags:[], dayMin, dayMax }, +// title, body, yes: Option, no: Option } +// Option: { label, effects: [...see modifiers.js], setFlags?, clearFlags?, followUp?: { id, inDays } } +// Condition stats: any indicator, growth/unemployment/inflation, "debt" (% of GDP), +// "deficit" (% of GDP) and "q:" (sector quality). + +import { IND_IDS, VAR_IDS, clamp } from "./state.js"; +import { computeFiscal } from "./economy.js"; +import { applyEffect } from "./modifiers.js"; +import { pickWeighted } from "./rng.js"; + +export const indexCards = (cards) => new Map(cards.map((c) => [c.id, c])); + +function statValue(state, key, fiscal) { + if (IND_IDS.includes(key)) return state.indicators[key]; + if (VAR_IDS.includes(key)) return state.economy[key]; + if (key === "debt") return fiscal.debtRatio; + if (key === "deficit") return fiscal.deficit; + if (key.startsWith("q:")) return state.sectors[key.slice(2)]?.quality ?? NaN; + return NaN; // unknown key: never eligible (content tests catch typos) +} + +function meetsConditions(card, state, fiscal) { + const c = card.conditions; + if (!c) return true; + if (c.dayMin !== undefined && state.day < c.dayMin) return false; + if (c.dayMax !== undefined && state.day > c.dayMax) return false; + for (const [k, v] of Object.entries(c.min ?? {})) if (!(statValue(state, k, fiscal) >= v)) return false; + for (const [k, v] of Object.entries(c.max ?? {})) if (!(statValue(state, k, fiscal) <= v)) return false; + for (const f of c.flags ?? []) if (!state.flags[f]) return false; + for (const f of c.notFlags ?? []) if (state.flags[f]) return false; + return true; +} + +// A sector (or indicator) in trouble makes cards about it more likely. +function boostFor(card, state, bal) { + const b = bal.cards.boost[card.category]; + if (!b) return 1; + const v = b.sector ? state.sectors[b.sector].quality : state.indicators[b.indicator]; + const below = bal.cards.boostBelow; + return 1 + bal.cards.boostMax * clamp((below - v) / below, 0, 1); +} + +export function drawCard(state, bal, cards) { + const fiscal = computeFiscal(state, bal); + const lastAnswered = new Map(); + for (const h of state.cardHistory) lastAnswered.set(h.id, h.day); + const recent = state.cardHistory.slice(-bal.cards.recentWindow).map((h) => h.category); + + const pool = []; + const weights = []; + for (const card of cards) { + if (card.followUpOnly) continue; + const last = lastAnswered.get(card.id); + if (last !== undefined) { + if (card.once !== false) continue; + if (state.day - last < (card.cooldownDays ?? bal.cards.defaultCooldown)) continue; + } + if (!meetsConditions(card, state, fiscal)) continue; + const seen = recent.filter((c) => c === card.category).length; + pool.push(card); + weights.push((card.weight ?? 1) * boostFor(card, state, bal) * Math.pow(bal.cards.recentPenalty, seen)); + } + return pickWeighted(state, pool, weights); +} + +// Called once a weekly pause is pending: puts the card to answer in state.pendingCard. +// A due follow-up always comes first. With no eligible card the week is simply empty. +export function ensureCard(state, bal, cards) { + if (!state.pending.weeklyCard || state.pendingCard) return null; + const byId = indexCards(cards); + + let card = null; + const due = state.followUps.findIndex((f) => f.due <= state.day); + if (due >= 0) card = byId.get(state.followUps.splice(due, 1)[0].id) ?? null; + card ??= drawCard(state, bal, cards); + + if (!card) { + state.pending.weeklyCard = false; + return null; + } + state.pendingCard = { id: card.id, day: state.day }; + return card; +} + +export function answerCard(state, bal, cards, choice) { + if (!state.pendingCard || (choice !== "yes" && choice !== "no")) return { ok: false }; + const card = indexCards(cards).get(state.pendingCard.id); + if (!card) return { ok: false }; + + const option = card[choice]; + for (const effect of option.effects ?? []) applyEffect(state, bal, effect); + for (const f of option.setFlags ?? []) state.flags[f] = state.day; + for (const f of option.clearFlags ?? []) delete state.flags[f]; + if (option.followUp) state.followUps.push({ id: option.followUp.id, due: state.day + option.followUp.inDays }); + + state.cardHistory.push({ id: card.id, category: card.category, day: state.day, choice }); + state.pendingCard = null; + state.pending.weeklyCard = false; + return { ok: true, card }; +} diff --git a/web/js/engine/economy.js b/web/js/engine/economy.js new file mode 100644 index 0000000..34b0741 --- /dev/null +++ b/web/js/engine/economy.js @@ -0,0 +1,88 @@ +// Public finances: revenue, spending, interest, debt and GDP. All flows are in +// % of GDP per year; debt and gdp are absolute (billions of the scenario currency). + +import { TAX_IDS, clamp } from "./state.js"; + +// Laffer-style curve: revenue peaks at rate == peak, then falls. +export function taxRevenue(id, rate, bal) { + const t = bal.tax[id]; + return t.coef * rate * (1 - rate / (2 * t.peak)); +} + +export function interestRate(debtRatio, bal) { + const d = bal.debt; + const excess = Math.max(0, debtRatio - d.premiumFrom); + return d.baseRate + d.premiumCoef * excess * excess; +} + +export function computeFiscal(state, bal) { + const e = state.economy; + let revenue = e.otherRevenue; + for (const id of TAX_IDS) revenue += taxRevenue(id, e.taxes[id], bal); + + const debtRatio = (e.debt / e.gdp) * 100; + const rate = interestRate(debtRatio, bal); + const interest = (debtRatio * rate) / 100; + + let allocTotal = 0; + for (const s of Object.values(state.sectors)) allocTotal += s.alloc; + const spending = allocTotal + interest + e.extraSpending; + + return { revenue, allocTotal, interest, spending, deficit: spending - revenue, debtRatio, rate }; +} + +// Derived quantities that indicator/variable targets are written against. +// ref values are captured at game creation so the start is an equilibrium. +export function computeDevs(state, bal, fiscal) { + const e = state.economy; + let taxPressure = 0; + let taxGrowthDrag = 0; + for (const id of TAX_IDS) { + const d = e.taxes[id] - state.ref.taxes[id]; + taxPressure += bal.tax[id].opinion * d; + taxGrowthDrag += bal.tax[id].growth * d; + } + const start = bal.crackdown.unrestStart; + return { + growth: e.growth, + unemployment: e.unemployment, + inflation: e.inflation, + debt: Math.max(0, fiscal.debtRatio - bal.debt.freeBelow), + deficit: fiscal.deficit, + taxPressure, + taxGrowthDrag, + // police sent in when unrest is high: 0..1 + crackdown: clamp((state.indicators.unrest - start) / (100 - start), 0, 1), + }; +} + +export function advanceEconomy(state, fiscal) { + const e = state.economy; + e.debt = Math.max(0, e.debt + ((fiscal.deficit / 100) * e.gdp) / 365); + e.gdp *= Math.pow(1 + e.growth / 100, 1 / 365); +} + +// Player action, only allowed while the quarterly review is open. +export function setBudget(state, bal, { alloc = {}, taxes = {} } = {}) { + if (!state.pending.review) return { ok: false, errors: ["budget_locked"] }; + + const errors = []; + for (const [id, v] of Object.entries(alloc)) { + const s = state.sectors[id]; + if (!s) errors.push(`unknown_sector:${id}`); + else if (!(v >= 0 && v <= s.need * bal.limits.allocMaxRatio)) errors.push(`alloc_out_of_range:${id}`); + } + for (const [id, v] of Object.entries(taxes)) { + if (!TAX_IDS.includes(id)) errors.push(`unknown_tax:${id}`); + else if (!(v >= 0 && v <= bal.tax[id].peak * bal.limits.taxMaxFactorOfPeak)) errors.push(`tax_out_of_range:${id}`); + } + if (errors.length) return { ok: false, errors }; + + for (const [id, v] of Object.entries(alloc)) state.sectors[id].alloc = v; + for (const [id, v] of Object.entries(taxes)) state.economy.taxes[id] = v; + return { ok: true, errors: [] }; +} + +export function confirmBudget(state) { + state.pending.review = false; +} diff --git a/web/js/engine/game.js b/web/js/engine/game.js new file mode 100644 index 0000000..a42b9a4 --- /dev/null +++ b/web/js/engine/game.js @@ -0,0 +1,161 @@ +// Game creation and the daily tick. Pure: data (balance, scenario) is passed in. + +import { STATE_VERSION, IND_IDS, VAR_IDS, qualityFromRatio } from "./state.js"; +import { computeFiscal, computeDevs, advanceEconomy } from "./economy.js"; +import { applyShifts, ageBias } from "./modifiers.js"; +import { stepSectors } from "./sectors.js"; +import { stepIndicators, stepVars } from "./indicators.js"; +import { checkGameOver } from "./gameover.js"; + +export const PRONOUNS = ["he", "she", "they"]; + +// pronouns: omit it and the game opens with the "who are you" question (pending.profile). +export function createGame({ scenario, balance, seed = Date.now(), countryName, lang = "en", pronouns }) { + const se = scenario.economy; + const gdp = se.gdp; + + const sectors = {}; + for (const [id, s] of Object.entries(scenario.sectors)) { + sectors[id] = { need: s.need, alloc: s.alloc, quality: qualityFromRatio(s.alloc / s.need, balance) }; + } + + const state = { + version: STATE_VERSION, + seed: seed >>> 0, + rngState: seed >>> 0, + day: 0, + speed: 1, // 0 = paused, otherwise one of balance.time.speeds + startDate: scenario.startDate, + lang, + pronouns: PRONOUNS.includes(pronouns) ? pronouns : "they", + countryName: countryName ?? scenario.name[lang] ?? scenario.name.en, + scenarioId: scenario.id, + economy: { + gdp, + debt: (gdp * se.debtRatio) / 100, + growth: se.growth, + unemployment: se.unemployment, + inflation: se.inflation, + taxes: { ...se.taxes }, + otherRevenue: se.otherRevenue, + extraSpending: 0, + }, + sectors, + indicators: { ...scenario.indicators }, + modifiers: [], + flags: {}, + cardHistory: [], + pendingCard: null, + followUps: [], + // Day 0 opens with the pronoun question, the initial budget review and a first card. + // Any true flag here pauses time (see advanceDay). + pending: { profile: !PRONOUNS.includes(pronouns), weeklyCard: true, review: true, alert: false }, + over: null, + risk: { revolution: 0, coup: 0, impeachment: 0, defaultZone: false }, // days in each danger zone + alerts: [], // urgent telegrams waiting to be read, oldest first + history: { t: [], series: {} }, + log: [], + ref: null, + }; + + state.ref = { + taxes: { ...se.taxes }, + ind: { ...scenario.indicators }, + vars: { growth: se.growth, unemployment: se.unemployment, inflation: se.inflation }, + sectors: Object.fromEntries(Object.entries(sectors).map(([id, s]) => [id, s.quality])), + ratio: Object.fromEntries(Object.entries(sectors).map(([id, s]) => [id, s.alloc / s.need])), + dev: null, + }; + state.ref.dev = computeDevs(state, balance, computeFiscal(state, balance)); + + recordHistory(state, balance); + return state; +} + +function recordHistory(state, bal) { + const f = computeFiscal(state, bal); + const h = state.history; + h.t.push(state.day); + const sample = { debtRatio: f.debtRatio, deficit: f.deficit }; + for (const id of IND_IDS) sample[id] = state.indicators[id]; + for (const id of VAR_IDS) sample[id] = state.economy[id]; + for (const [k, v] of Object.entries(sample)) (h.series[k] ??= []).push(round(v)); +} + +const round = (v) => Math.round(v * 100) / 100; + +export function setSpeed(state, bal, speed) { + if (speed !== 0 && !bal.time.speeds.includes(speed)) return false; + state.speed = speed; + return true; +} + +// Clears a pause condition once the player has dealt with it. +export function clearPending(state, kind) { + state.pending[kind] = false; +} + +export function setPronouns(state, pronouns) { + if (!PRONOUNS.includes(pronouns)) return false; + state.pronouns = pronouns; + state.pending.profile = false; + return true; +} + +// True while the game is waiting on the player (profile, budget review, weekly card, alert). +export const isWaiting = (state) => Object.values(state.pending).some(Boolean); + +// Advances one in-game day unless the game is over or waiting on the player. +export function advanceDay(state, bal) { + if (state.over) return { advanced: false, blocked: "over", events: null }; + if (isWaiting(state)) return { advanced: false, blocked: "pending", events: null }; + + applyShifts(state, bal); + const fiscal = computeFiscal(state, bal); + const devs = computeDevs(state, bal, fiscal); + + advanceEconomy(state, fiscal); + stepVars(state, bal, devs); + stepIndicators(state, bal, devs); + stepSectors(state, bal, fiscal); + ageBias(state); + + state.day += 1; + + const events = { weeklyCard: false, review: false, termEnd: false, gameOver: null }; + const fallen = checkGameOver(state, bal); + if (fallen) { + state.over = { type: fallen, day: state.day }; + events.gameOver = fallen; + recordHistory(state, bal); + } else if (state.day >= bal.time.termDays) { + state.over = { type: "term", day: state.day }; + events.termEnd = true; + recordHistory(state, bal); + } else { + if (state.day % bal.time.historyEvery === 0) recordHistory(state, bal); + if (state.day % bal.time.daysPerWeek === 0) state.pending.weeklyCard = events.weeklyCard = true; + if (state.day % bal.time.daysPerQuarter === 0) state.pending.review = events.review = true; + } + return { advanced: true, blocked: null, events }; +} + +// Read-only snapshot for the UI and the sim. +export function summarize(state, bal) { + const f = computeFiscal(state, bal); + return { + day: state.day, + gdp: state.economy.gdp, + debt: state.economy.debt, + debtRatio: f.debtRatio, + interestRate: f.rate, + revenue: f.revenue, + spending: f.spending, + interest: f.interest, + deficit: f.deficit, + growth: state.economy.growth, + unemployment: state.economy.unemployment, + inflation: state.economy.inflation, + indicators: { ...state.indicators }, + }; +} diff --git a/web/js/engine/gameover.js b/web/js/engine/gameover.js new file mode 100644 index 0000000..3d61869 --- /dev/null +++ b/web/js/engine/gameover.js @@ -0,0 +1,63 @@ +// Ways the term can end early. Checked once per day after the economy has moved. +// +// default debt above the limit: immediate +// impeachment civil rights and opinion both very low for N days in a row: certain +// coup army loyalty and stability both very low: a daily chance that grows each day in the zone +// revolution unrest very high and opinion very low: same growing daily chance +// +// Entering a danger zone queues an urgent telegram (state.alerts) and pauses the game +// until the player acknowledges it. state.risk counts the days spent in each zone. + +import { nextFloat } from "./rng.js"; + +function alert(state, kind) { + state.alerts.push({ kind, day: state.day }); + state.pending.alert = true; +} + +// Returns the game-over type or null. Mutates state.risk, state.alerts and the RNG. +export function checkGameOver(state, bal) { + const g = bal.gameOver; + const ind = state.indicators; + const risk = state.risk; + const debtRatio = (state.economy.debt / state.economy.gdp) * 100; + + // Zone bookkeeping: count consecutive days inside, fade (or reset) outside. + const track = (name, inZone, fade) => { + if (inZone) { + risk[name] += 1; + if (risk[name] === 1) alert(state, name); + } else { + risk[name] = fade === "reset" ? 0 : Math.max(0, risk[name] - fade); + } + }; + const chance = (name, perDay) => risk[name] > 0 && nextFloat(state) < Math.min(1, perDay * risk[name]); + + if (debtRatio >= g.default.warnAbove) { + if (!risk.defaultZone) { + risk.defaultZone = true; + alert(state, "default"); + } + } else if (debtRatio < g.default.warnAbove - 10) { + risk.defaultZone = false; + } + + const inImpeachment = ind.civilRights < g.impeachment.civilRightsBelow && ind.opinion < g.impeachment.opinionBelow; + const inCoup = ind.armyLoyalty < g.coup.armyBelow && ind.stability < g.coup.stabilityBelow; + const inRevolution = ind.unrest > g.revolution.unrestAbove && ind.opinion < g.revolution.opinionBelow; + track("impeachment", inImpeachment, "reset"); + track("coup", inCoup, 1); + track("revolution", inRevolution, 1); + + if (debtRatio > g.default.debtAbove) return "default"; + if (risk.impeachment >= g.impeachment.days) return "impeachment"; + if (inCoup && chance("coup", g.coup.chancePerDay)) return "coup"; + if (inRevolution && chance("revolution", g.revolution.chancePerDay)) return "revolution"; + return null; +} + +// The player has read the telegram at the front of the queue. +export function dismissAlert(state) { + state.alerts.shift(); + state.pending.alert = state.alerts.length > 0; +} diff --git a/web/js/engine/index.js b/web/js/engine/index.js new file mode 100644 index 0000000..6d74450 --- /dev/null +++ b/web/js/engine/index.js @@ -0,0 +1,14 @@ +// Public engine API. The UI and tools import from here only. + +export { createGame, advanceDay, clearPending, setSpeed, setPronouns, isWaiting, summarize, PRONOUNS } from "./game.js"; +export { dismissAlert } from "./gameover.js"; +export { buildReview, optionImpact, METRIC_IDS } from "./score.js"; +export { restoreState } from "./validate.js"; +export { setBudget, confirmBudget, computeFiscal, taxRevenue } from "./economy.js"; +export { previewBudget } from "./projection.js"; +export { qualityFromRatio } from "./state.js"; +export { applyEffect } from "./modifiers.js"; +export { ensureCard, answerCard, drawCard, indexCards } from "./cards.js"; +export { createClock, consumeClock, dateOfDay, weekOfDay, quarterOfDay } from "./time.js"; +export { nextFloat, nextInt, pickWeighted } from "./rng.js"; +export { IND_IDS, VAR_IDS, TAX_IDS } from "./state.js"; diff --git a/web/js/engine/indicators.js b/web/js/engine/indicators.js new file mode 100644 index 0000000..909f93e --- /dev/null +++ b/web/js/engine/indicators.js @@ -0,0 +1,47 @@ +// Indicators and economy variables move toward a target each day: +// target = start value + sum of weighted deviations from the start state + active biases +// Because every term is a deviation from the scenario start, the start is an equilibrium. + +import { IND_IDS, VAR_IDS, clamp } from "./state.js"; +import { biasFor } from "./modifiers.js"; +import { nextNoise } from "./rng.js"; + +function computeTarget(def, base, group, key, state, devs) { + let t = base; + for (const [id, w] of Object.entries(def.sectors ?? {})) { + t += w * (state.sectors[id].quality - state.ref.sectors[id]); + } + for (const [id, w] of Object.entries(def.alloc ?? {})) { + const s = state.sectors[id]; + t += w * (s.alloc / s.need - state.ref.ratio[id]); + } + for (const [k, w] of Object.entries(def.econ ?? {})) { + t += w * (devs[k] - state.ref.dev[k]); + } + for (const [k, w] of Object.entries(def.ind ?? {})) { + t += w * (state.indicators[k] - state.ref.ind[k]); + } + return t + biasFor(state, group, key); +} + +export function stepVars(state, bal, devs) { + const next = {}; + for (const id of VAR_IDS) { + const def = bal.vars[id]; + const target = computeTarget(def, state.ref.vars[id], "var", id, state, devs); + const v = state.economy[id]; + next[id] = clamp(v + (target - v) / def.tau + nextNoise(state, def.noise), def.min, def.max); + } + Object.assign(state.economy, next); +} + +export function stepIndicators(state, bal, devs) { + const next = {}; + for (const id of IND_IDS) { + const def = bal.indicators[id]; + const target = computeTarget(def, state.ref.ind[id], "ind", id, state, devs); + const v = state.indicators[id]; + next[id] = clamp(v + (target - v) / def.tau + nextNoise(state, def.noise ?? bal.noise.indicator), 0, 100); + } + Object.assign(state.indicators, next); +} diff --git a/web/js/engine/modifiers.js b/web/js/engine/modifiers.js new file mode 100644 index 0000000..46ef48b --- /dev/null +++ b/web/js/engine/modifiers.js @@ -0,0 +1,84 @@ +// Effects and timed modifiers. Card choices end up here. +// +// Effect shapes: +// { stat, delta } instant shift of an indicator or economy variable +// { stat, delta, days } shift spread evenly over `days` (then the value mean-reverts) +// { stat, delta, bias: true, days? } offset on the stat's *target* for `days` (permanent if omitted) +// { sector, delta[, days][, bias] } same, on a sector's quality +// { revenue: "income"|"corporate"|"vat", delta } change tax rate (rate points), permanent +// { revenue: "other", delta } change other revenue (% of GDP), permanent +// { oneOff: pct } one-time cost in % of GDP (negative = windfall) +// { extraSpending: delta } permanent extra spending in % of GDP + +import { IND_IDS, VAR_IDS, TAX_IDS, clamp } from "./state.js"; + +function groupOf(effect, state) { + if (effect.sector !== undefined) return state.sectors[effect.sector] ? ["sector", effect.sector] : null; + if (IND_IDS.includes(effect.stat)) return ["ind", effect.stat]; + if (VAR_IDS.includes(effect.stat)) return ["var", effect.stat]; + return null; +} + +function shift(state, bal, group, key, delta) { + if (group === "ind") state.indicators[key] = clamp(state.indicators[key] + delta, 0, 100); + else if (group === "sector") state.sectors[key].quality = clamp(state.sectors[key].quality + delta, 0, 100); + else { + const v = bal.vars[key]; + state.economy[key] = clamp(state.economy[key] + delta, v.min, v.max); + } +} + +export function applyEffect(state, bal, effect) { + if (effect.stat !== undefined || effect.sector !== undefined) { + const found = groupOf(effect, state); + if (!found) return false; + const [group, key] = found; + if (effect.bias) { + state.modifiers.push({ type: "bias", group, key, value: effect.delta, remaining: effect.days ?? null }); + } else if (effect.days > 0) { + state.modifiers.push({ type: "shift", group, key, perDay: effect.delta / effect.days, remaining: effect.days }); + } else { + shift(state, bal, group, key, effect.delta); + } + return true; + } + const e = state.economy; + if (effect.revenue !== undefined) { + if (TAX_IDS.includes(effect.revenue)) e.taxes[effect.revenue] = Math.max(0, e.taxes[effect.revenue] + effect.delta); + else if (effect.revenue === "other") e.otherRevenue = Math.max(0, e.otherRevenue + effect.delta); + else return false; + return true; + } + if (effect.oneOff !== undefined) { + e.debt = Math.max(0, e.debt + (effect.oneOff / 100) * e.gdp); + return true; + } + if (effect.extraSpending !== undefined) { + e.extraSpending += effect.extraSpending; + return true; + } + return false; +} + +// Start of each day: apply the spread-out shifts. +export function applyShifts(state, bal) { + for (const m of state.modifiers) { + if (m.type !== "shift") continue; + shift(state, bal, m.group, m.key, m.perDay); + m.remaining -= 1; + } + state.modifiers = state.modifiers.filter((m) => m.type !== "shift" || m.remaining > 0); +} + +// Sum of active target offsets for one stat. +export function biasFor(state, group, key) { + let sum = 0; + for (const m of state.modifiers) if (m.type === "bias" && m.group === group && m.key === key) sum += m.value; + return sum; +} + +// End of each day: age timed biases. +export function ageBias(state) { + for (const m of state.modifiers) if (m.type === "bias" && m.remaining !== null) m.remaining -= 1; + state.modifiers = state.modifiers.filter((m) => m.type !== "bias" || m.remaining === null || m.remaining > 0); +} diff --git a/web/js/engine/projection.js b/web/js/engine/projection.js new file mode 100644 index 0000000..59178b0 --- /dev/null +++ b/web/js/engine/projection.js @@ -0,0 +1,44 @@ +// Budget preview for the quarterly ledger: applies a draft budget to a copy of +// the game and runs the real daily tick forward, without noise, so the player +// sees where debt, deficit and the main indicators are heading. +// It assumes no new policies (future cards are unknown). + +import { advanceDay, summarize } from "./game.js"; +import { computeFiscal, setBudget } from "./economy.js"; + +const quietCache = new WeakMap(); + +// Same balance with all daily noise switched off. +function quietBalance(bal) { + let q = quietCache.get(bal); + if (!q) { + q = structuredClone(bal); + q.noise.indicator = 0; + for (const def of Object.values(q.vars)) def.noise = 0; + for (const def of Object.values(q.indicators)) if ("noise" in def) def.noise = 0; + quietCache.set(bal, q); + } + return q; +} + +// Returns { ok, errors, fiscal, points }. points[0] is "now with the draft applied"; +// points[i] is the state i quarters later (fewer if the term ends first). +export function previewBudget(state, bal, draft, { quarters = 4 } = {}) { + const sim = structuredClone(state); + sim.pending.review = true; // the preview may edit the budget even outside a review + const res = setBudget(sim, bal, draft); + if (!res.ok) return { ok: false, errors: res.errors, fiscal: null, points: [] }; + + const quiet = quietBalance(bal); + const fiscal = computeFiscal(sim, quiet); + const points = [summarize(sim, quiet)]; + + for (let q = 0; q < quarters && !sim.over; q++) { + for (let d = 0; d < bal.time.daysPerQuarter && !sim.over; d++) { + for (const k of Object.keys(sim.pending)) sim.pending[k] = false; + advanceDay(sim, quiet); + } + points.push(summarize(sim, quiet)); + } + return { ok: true, errors: [], fiscal, points }; +} diff --git a/web/js/engine/rng.js b/web/js/engine/rng.js new file mode 100644 index 0000000..4ab1f97 --- /dev/null +++ b/web/js/engine/rng.js @@ -0,0 +1,31 @@ +// mulberry32 PRNG. The generator state lives in state.rngState (a uint32) so a +// saved game resumes with the exact same sequence. + +export function nextFloat(state) { + state.rngState = (state.rngState + 0x6d2b79f5) >>> 0; + let t = state.rngState; + t = Math.imul(t ^ (t >>> 15), t | 1); + t ^= t + Math.imul(t ^ (t >>> 7), t | 61); + return ((t ^ (t >>> 14)) >>> 0) / 4294967296; +} + +// Uniform in [-amp, amp]. +export function nextNoise(state, amp) { + return (nextFloat(state) * 2 - 1) * amp; +} + +export function nextInt(state, maxExclusive) { + return Math.floor(nextFloat(state) * maxExclusive); +} + +export function pickWeighted(state, items, weights) { + let total = 0; + for (const w of weights) total += w; + if (total <= 0) return null; + let r = nextFloat(state) * total; + for (let i = 0; i < items.length; i++) { + r -= weights[i]; + if (r < 0) return items[i]; + } + return items[items.length - 1]; +} diff --git a/web/js/engine/score.js b/web/js/engine/score.js new file mode 100644 index 0000000..c710665 --- /dev/null +++ b/web/js/engine/score.js @@ -0,0 +1,93 @@ +// End-of-term review: a score from the whole term (not just the last day), a letter +// grade, the historian's title and the decisions that mattered most. +// Pure: works for a finished term and for a game that ended early. + +import { clamp } from "./state.js"; +import { indexCards } from "./cards.js"; + +// Names usable in the `min` / `max` conditions of endgame.json titles. +export const METRIC_IDS = [ + "order", "stability", "civilRights", "opinion", "economy", "hardPower", "softPower", "unrest", "armyLoyalty", + "growth", "unemployment", "inflation", "debt", "score", "years", +]; + +const mean = (xs) => (xs.length ? xs.reduce((a, b) => a + b, 0) / xs.length : 0); + +// Averages over the whole term, plus the final debt ratio. +function termAverages(state) { + const s = state.history.series; + const m = {}; + for (const id of ["order", "stability", "civilRights", "opinion", "economy", "hardPower", "softPower", "unrest", "armyLoyalty", "growth", "unemployment", "inflation"]) { + m[id] = mean(s[id] ?? []); + } + m.debt = s.debtRatio?.at(-1) ?? 0; + m.years = state.day / 365; + return m; +} + +function computeScore(m, bal) { + const sc = bal.score; + let base = 0; + for (const [id, w] of Object.entries(sc.weights)) base += w * (id === "calm" ? 100 - m.unrest : m[id]); + const bonus = (cfg, value) => clamp((cfg.ref - value) * cfg.per, cfg.min, cfg.max); + const total = base + + bonus(sc.debt, m.debt) + + clamp((m.growth - sc.growth.ref) * sc.growth.per, sc.growth.min, sc.growth.max) + + bonus(sc.unemployment, m.unemployment); + return clamp(total, 0, 100); +} + +const gradeOf = (score, bal) => bal.score.grades.find(([min]) => score >= min)?.[1] ?? "F"; + +// How strongly one effect moves the country, in rough "points". Used to rank decisions. +export function effectImpact(e) { + const d = Math.abs(e.delta ?? 0); + if (e.stat !== undefined || e.sector !== undefined) { + if (e.bias) return d * clamp((e.days ?? 365) / 90, 1, 8); + return d; + } + if (e.revenue !== undefined) return d * (e.revenue === "other" ? 8 : 2); + if (e.oneOff !== undefined) return Math.abs(e.oneOff) * 5; + if (e.extraSpending !== undefined) return Math.abs(e.extraSpending) * 8; + return 0; +} + +export const optionImpact = (option) => (option.effects ?? []).reduce((sum, e) => sum + effectImpact(e), 0); + +function topDecisions(state, cards, count) { + const byId = indexCards(cards); + return state.cardHistory + .map((h) => { + const card = byId.get(h.id); + return card ? { id: h.id, day: h.day, choice: h.choice, impact: optionImpact(card[h.choice]) } : null; + }) + .filter(Boolean) + .sort((a, b) => b.impact - a.impact || a.day - b.day) + .slice(0, count); +} + +function meets(entry, m) { + const c = entry.conditions ?? {}; + for (const [k, v] of Object.entries(c.min ?? {})) if (!(m[k] >= v)) return false; + for (const [k, v] of Object.entries(c.max ?? {})) if (!(m[k] <= v)) return false; + return true; +} + +// endgame: the parsed data/endgame.json (its `titles` list is in priority order). +export function buildReview(state, bal, cards, endgame) { + const metrics = termAverages(state); + let score = computeScore(metrics, bal); + if (state.over && state.over.type !== "term") score = Math.min(score, bal.score.overCap); + metrics.score = score; + + const earlyEnd = state.over && state.over.type !== "term" ? state.over.type : null; + const title = endgame.titles.find((t) => (t.over ?? null) === earlyEnd && (earlyEnd || meets(t, metrics))); + return { + over: state.over, + metrics, + score, + grade: earlyEnd ? "F" : gradeOf(score, bal), + titleId: title?.id ?? null, + topDecisions: topDecisions(state, cards, bal.score.topDecisions), + }; +} diff --git a/web/js/engine/sectors.js b/web/js/engine/sectors.js new file mode 100644 index 0000000..be7f5a8 --- /dev/null +++ b/web/js/engine/sectors.js @@ -0,0 +1,16 @@ +// Sector quality drifts toward a target set by the budget ratio (alloc / need). +// Each sector has its own time constant: police reacts in weeks, infrastructure in years. + +import { clamp, qualityFromRatio } from "./state.js"; +import { biasFor } from "./modifiers.js"; + +export function stepSectors(state, bal, fiscal) { + const s = bal.sector; + for (const [id, sec] of Object.entries(state.sectors)) { + let target = qualityFromRatio(sec.alloc / sec.need, bal) + biasFor(state, "sector", id); + if (id === "industry" && fiscal.debtRatio > s.industryDebtPenaltyFrom) { + target -= s.industryDebtPenaltyPerPoint * (fiscal.debtRatio - s.industryDebtPenaltyFrom); + } + sec.quality = clamp(sec.quality + (clamp(target, 0, 100) - sec.quality) / bal.sectorTau[id], 0, 100); + } +} diff --git a/web/js/engine/state.js b/web/js/engine/state.js new file mode 100644 index 0000000..c47a382 --- /dev/null +++ b/web/js/engine/state.js @@ -0,0 +1,17 @@ +// Shared constants and tiny helpers. No game logic here. + +export const STATE_VERSION = 1; + +export const IND_IDS = [ + "order", "stability", "civilRights", "opinion", "economy", + "hardPower", "softPower", "unrest", "armyLoyalty", +]; +export const VAR_IDS = ["growth", "unemployment", "inflation"]; +export const TAX_IDS = ["income", "corporate", "vat"]; + +export const clamp = (v, lo, hi) => Math.min(hi, Math.max(lo, v)); + +// Saturating curve: overspending has diminishing returns, ratio 0 gives 0. +export function qualityFromRatio(ratio, bal) { + return 100 * (1 - Math.exp(-bal.sector.qualityCurve * Math.max(0, ratio))); +} diff --git a/web/js/engine/time.js b/web/js/engine/time.js new file mode 100644 index 0000000..6616a38 --- /dev/null +++ b/web/js/engine/time.js @@ -0,0 +1,31 @@ +// Real-time clock accumulator and in-game calendar helpers. + +export function createClock() { + return { acc: 0 }; +} + +// Feed it the real elapsed ms; it returns how many in-game days are due. +// dt is capped so a background tab doesn't fast-forward the game on return, and +// floored at 0: the first animation frame can carry a timestamp slightly before +// the one the caller recorded, and a negative step would pre-load a whole day. +export function consumeClock(clock, dtMs, msPerDay, speed) { + clock.acc += Math.max(0, Math.min(dtMs, 1000)) * speed; + const days = Math.floor(clock.acc / msPerDay); + clock.acc -= days * msPerDay; + return days; +} + +export function dateOfDay(startDate, day) { + const [y, m, d] = startDate.split("-").map(Number); + const date = new Date(Date.UTC(y, m - 1, d + day)); + return { + year: date.getUTCFullYear(), + month: date.getUTCMonth() + 1, + day: date.getUTCDate(), + weekday: date.getUTCDay(), // 0 = Sunday + iso: date.toISOString().slice(0, 10), + }; +} + +export const weekOfDay = (day, bal) => Math.floor(day / bal.time.daysPerWeek); +export const quarterOfDay = (day, bal) => Math.floor(day / bal.time.daysPerQuarter); diff --git a/web/js/engine/validate.js b/web/js/engine/validate.js new file mode 100644 index 0000000..7549130 --- /dev/null +++ b/web/js/engine/validate.js @@ -0,0 +1,96 @@ +// Checks a game loaded from a save (autosave, slot or imported string) before the game +// resumes from it, and repairs what can be repaired. A hostile or damaged save must never +// get as far as the UI: every number is finite and in range, every id is known. + +import { STATE_VERSION, IND_IDS, VAR_IDS, TAX_IDS } from "./state.js"; +import { PRONOUNS } from "./game.js"; + +const DEV_KEYS = ["growth", "unemployment", "inflation", "debt", "deficit", "taxPressure", "taxGrowthDrag", "crackdown"]; +const HISTORY_SERIES = ["debtRatio", "deficit", ...IND_IDS, ...VAR_IDS]; +const OVER_TYPES = ["term", "revolution", "coup", "default", "impeachment"]; +const ALERT_KINDS = ["revolution", "coup", "impeachment", "default"]; +const PENDING_KINDS = ["profile", "weeklyCard", "review", "alert"]; + +const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v); +const isNum = (v, lo = -Infinity, hi = Infinity) => typeof v === "number" && Number.isFinite(v) && v >= lo && v <= hi; +const isInt = (v, lo, hi) => Number.isInteger(v) && v >= lo && v <= hi; +const sameKeys = (obj, keys) => isObj(obj) && Object.keys(obj).length === keys.length && keys.every((k) => k in obj); +const allNums = (obj, keys, lo, hi) => sameKeys(obj, keys) && keys.every((k) => isNum(obj[k], lo, hi)); + +// Returns { ok: true, state } (repaired in place) or { ok: false, error: "invalid" | "scenario" | "version" }. +export function restoreState(s, { scenarios, balance, cards }) { + const fail = (error = "invalid") => ({ ok: false, error }); + if (!isObj(s) || s.version !== STATE_VERSION) return fail("version"); + const scenario = scenarios[s.scenarioId]; + if (!scenario) return fail("scenario"); + + const lim = balance.limits; + const cardIds = new Set(cards.map((c) => c.id)); + const sectorIds = Object.keys(scenario.sectors); + const modGroups = { ind: IND_IDS, var: VAR_IDS, sector: sectorIds }; + + // Scalars + if (!isInt(s.day, 0, balance.time.termDays)) return fail(); + if (!isInt(s.rngState, 0, 0xffffffff) || !isInt(s.seed, 0, 0xffffffff)) return fail(); + if (s.speed !== 0 && !balance.time.speeds.includes(s.speed)) return fail(); + if (s.startDate !== scenario.startDate) return fail(); + if (!PRONOUNS.includes(s.pronouns)) return fail(); + if (typeof s.countryName !== "string" || s.countryName.length < 1 || s.countryName.length > 60) return fail(); + if (s.lang !== "en" && s.lang !== "fr") s.lang = "en"; + + // Economy, sectors, indicators + const e = s.economy; + if (!isObj(e) || !isNum(e.gdp, 1e-6) || !isNum(e.debt, 0) || !isNum(e.otherRevenue) || !isNum(e.extraSpending)) return fail(); + if (!isNum(e.growth, -100, 100) || !isNum(e.unemployment, 0, 100) || !isNum(e.inflation, -100, 1000)) return fail(); + if (!allNums(e.taxes, TAX_IDS, 0, 500)) return fail(); + + if (!sameKeys(s.sectors, sectorIds)) return fail(); + for (const id of sectorIds) { + const x = s.sectors[id]; + if (!isObj(x) || !isNum(x.need, 1e-6) || !isNum(x.alloc, 0, x.need * lim.allocMaxRatio + 1e-9) || !isNum(x.quality, 0, 100)) return fail(); + } + if (!allNums(s.indicators, IND_IDS, 0, 100)) return fail(); + + // Reference values captured at the start of the game + const r = s.ref; + if (!isObj(r) || !allNums(r.taxes, TAX_IDS, 0, 500) || !allNums(r.ind, IND_IDS, 0, 100)) return fail(); + if (!allNums(r.vars, VAR_IDS) || !allNums(r.sectors, sectorIds) || !allNums(r.ratio, sectorIds) || !allNums(r.dev, DEV_KEYS)) return fail(); + + // Timed modifiers + if (!Array.isArray(s.modifiers)) return fail(); + for (const m of s.modifiers) { + if (!isObj(m) || !(m.group in modGroups) || !modGroups[m.group].includes(m.key)) return fail(); + if (m.type === "shift" ? !(isNum(m.perDay) && isNum(m.remaining, 1)) : !(m.type === "bias" && isNum(m.value) && (m.remaining === null || isNum(m.remaining, 1)))) return fail(); + } + + // Decisions and flags + if (!isObj(s.flags) || !Object.values(s.flags).every((v) => isNum(v))) return fail(); + if (!Array.isArray(s.cardHistory)) return fail(); + for (const h of s.cardHistory) { + if (!isObj(h) || typeof h.id !== "string" || typeof h.category !== "string" || !isInt(h.day, 0, balance.time.termDays) || (h.choice !== "yes" && h.choice !== "no")) return fail(); + } + if (!Array.isArray(s.followUps) || !s.followUps.every((f) => isObj(f) && typeof f.id === "string" && isNum(f.due))) return fail(); + if (s.pendingCard !== null && !(isObj(s.pendingCard) && typeof s.pendingCard.id === "string" && isInt(s.pendingCard.day, 0, balance.time.termDays))) return fail(); + + // Pauses, alerts and endings + if (!isObj(s.pending)) return fail(); + for (const k of PENDING_KINDS) s.pending[k] = s.pending[k] === true; + if (!Array.isArray(s.alerts) || !s.alerts.every((a) => isObj(a) && ALERT_KINDS.includes(a.kind) && isInt(a.day, 0, balance.time.termDays))) return fail(); + if (!isObj(s.risk) || ![s.risk.revolution, s.risk.coup, s.risk.impeachment].every((v) => isNum(v, 0)) || typeof s.risk.defaultZone !== "boolean") return fail(); + if (s.over !== null && !(isObj(s.over) && OVER_TYPES.includes(s.over.type) && isInt(s.over.day, 0, balance.time.termDays))) return fail(); + + // History for the charts: one equal-length series per tracked value + const h = s.history; + if (!isObj(h) || !Array.isArray(h.t) || !isObj(h.series) || !h.t.every((d) => isInt(d, 0, balance.time.termDays))) return fail(); + for (const id of HISTORY_SERIES) { + const series = h.series[id]; + if (!Array.isArray(series) || series.length !== h.t.length || !series.every((v) => isNum(v))) return fail(); + } + if (!Array.isArray(s.log)) return fail(); + + // Repairs: content that changed since the save was made + s.followUps = s.followUps.filter((f) => cardIds.has(f.id)); + if (s.pendingCard && !cardIds.has(s.pendingCard.id)) s.pendingCard = null; + s.pending.alert = s.alerts.length > 0; + return { ok: true, state: s }; +} diff --git a/web/js/i18n/en.json b/web/js/i18n/en.json new file mode 100644 index 0000000..59b18d7 --- /dev/null +++ b/web/js/i18n/en.json @@ -0,0 +1,189 @@ +{ + "app.title": "The Desk", + "dash.title": "Ministerial Briefing", + "dash.confidential": "Strictly confidential", + "dash.econ": "Economic figures", + "dash.intel": "Intelligence summary", + "dash.classified": "Classified", + "ind.order": "Order", + "ind.stability": "Stability", + "ind.civilRights": "Civil rights", + "ind.opinion": "Public opinion", + "ind.economy": "Economy", + "ind.hardPower": "Hard power", + "ind.softPower": "Soft power", + "ind.unrest": "Unrest", + "ind.armyLoyalty": "Army loyalty", + "opinion.0": "Angry", + "opinion.1": "Hostile", + "opinion.2": "Uneasy", + "opinion.3": "Neutral", + "opinion.4": "Content", + "opinion.5": "Happy", + "opinion.6": "Ecstatic", + "unrest.0": "Calm", + "unrest.1": "Restless", + "unrest.2": "Tense", + "unrest.3": "Volatile", + "unrest.4": "Explosive", + "army.0": "Mutinous", + "army.1": "Wavering", + "army.2": "Steady", + "army.3": "Loyal", + "econ.gdp": "GDP", + "econ.growth": "Growth", + "econ.unemployment": "Unemployment", + "econ.inflation": "Inflation", + "econ.debt": "Debt / GDP", + "econ.deficit": "Deficit / GDP", + "econ.rate": "Interest rate", + "econ.gdpUnit": "bn {currency}", + "cal.dayCount": "Day {day} of {total}", + "cal.briefing": "Next briefing", + "cal.review": "Budget review", + "cal.inDays": "in {n} days", + "cal.today": "today", + "cal.tomorrow": "tomorrow", + "cal.pause": "Pause", + "cal.speed": "Speed {n}×", + "inbox.title": "In-tray", + "inbox.idle": "Nothing awaits your signature. The country carries on.", + "inbox.overTitle": "End of term", + "inbox.overBody": "Your term has ended. (The final review arrives in a later build.)", + "news.edition": "Edition of {date}", + "sector.education": "Education", + "sector.health": "Health", + "sector.social": "Social & pensions", + "sector.police": "Police", + "sector.army": "Army", + "sector.justice": "Justice", + "sector.industry": "Industry & energy", + "sector.transport": "Public transport", + "sector.infrastructure": "Infrastructure", + "sector.housing": "Housing", + "sector.research": "Research", + "sector.culture": "Culture & media", + "sector.foreignAffairs": "Foreign affairs", + "sector.environment": "Environment", + "sector.administration": "Administration", + "tax.income": "Income tax", + "tax.corporate": "Corporate tax", + "tax.vat": "VAT", + "ledger.title": "Treasury ledger", + "ledger.spending": "Spending, % of GDP", + "ledger.spendingHint": "The tick on each line marks what the sector needs.", + "ledger.totalAlloc": "Allocated to sectors", + "ledger.revenue": "Revenue: tax rates", + "ledger.revenueHint": "The tick marks the rate where revenue peaks. Beyond it, you collect less.", + "ledger.yield": "{n} % of GDP", + "ledger.quality": "Quality {now} → {target}", + "ledger.summary": "Treasury summary", + "ledger.sumRevenue": "Revenue", + "ledger.sumSectors": "Sector spending", + "ledger.sumInterest": "Debt interest", + "ledger.sumSpending": "Total spending", + "ledger.sumSurplus": "Surplus", + "ledger.sumDeficit": "Deficit", + "ledger.perYear": "{n} bn {currency} per year", + "ledger.projection": "Next four quarters, if nothing else changes", + "ledger.now": "Now", + "ledger.months": "+{n} mo", + "ledger.reset": "Reset", + "ledger.confirm": "Sign and file", + "ledger.error": "The Treasury rejected this budget.", + "kind.memo": "Memorandum", + "kind.telegram": "Telegram", + "kind.petition": "Petition", + "kind.report": "Report", + "kind.letter": "Letter", + "card.approved": "Approved", + "card.rejected": "Rejected", + "card.keys": "Keys: Y approve · N reject", + "card.from": "From", + "profile.title": "Sworn in", + "profile.lead": "Before you take office, the Press Office needs one thing for the official records.", + "profile.body": "How should the press refer to you?", + "profile.he": "He / Him", + "profile.she": "She / Her", + "profile.they": "They / Them", + "profile.note": "This only changes how you are named in the history books.", + "alert.urgent": "Urgent telegram", + "alert.ack": "Understood", + "ind.regime": "Hold on power", + "regime.0": "Secure", + "regime.1": "Shaky", + "regime.2": "Critical", + "end.verdict": "The historians' verdict", + "end.score": "Score {n} / 100", + "end.grade": "Grade", + "end.served": "Served {days} days", + "end.decisions": "Decisions that defined the term", + "end.noDecisions": "No decision was signed.", + "end.chose": "You chose: {label}", + "end.again": "Play again", + "end.averages": "avg", + "end.final": "end", + "cal.menu": "Menu", + "menu.secret": "Top secret", + "menu.tagline": "A country. Five years. Every decision carries your signature.", + "menu.paused": "Game paused", + "menu.continue": "Continue", + "menu.resume": "Resume", + "menu.new": "New game", + "menu.load": "Load game", + "menu.save": "Save game", + "menu.export": "Export", + "menu.import": "Import", + "menu.settings": "Settings", + "menu.credits": "Credits", + "menu.quit": "Main menu", + "menu.back": "Back", + "menu.info": "{country} · day {day}", + "new.title": "New game", + "new.name": "Name of the country", + "new.scenario": "Scenario", + "new.pronouns": "How should the press refer to you?", + "new.start": "Take office", + "load.title": "Load game", + "load.auto": "Autosave", + "load.slot": "Slot {n}", + "load.empty": "Empty", + "load.info": "{country} · day {day}{date}", + "load.finished": "finished", + "load.unreadable": "Unreadable save", + "load.load": "Load", + "load.delete": "Delete", + "load.sure": "Sure?", + "load.replace": "Loading replaces the game in progress.", + "save.title": "Save game", + "save.here": "Save here", + "save.overwrite": "Overwrite", + "save.done": "Saved to slot {n}.", + "save.failed": "The browser refused the save. Use Export to keep your game.", + "export.title": "Export", + "export.hint": "Copy this text or download the file. You can import it later, on any device.", + "export.copy": "Copy", + "export.copied": "Copied.", + "export.copyFailed": "Select the text and copy it by hand.", + "export.download": "Download .sav", + "import.title": "Import", + "import.hint": "Paste a save string, or choose a .sav file.", + "import.file": "Choose a file", + "import.go": "Import", + "import.error.format": "That does not look like a save string.", + "import.error.checksum": "The save is damaged or incomplete (checksum mismatch).", + "import.error.tooNew": "This save comes from a newer version of the game.", + "import.error.version": "This save is from a version that cannot be converted.", + "import.error.invalid": "The contents of this save are not valid.", + "import.error.scenario": "This save uses a scenario that is not installed.", + "import.error.empty": "Nothing to import yet.", + "settings.title": "Settings", + "settings.language": "Language", + "settings.slow": "Slow time", + "settings.slowHint": "One in-game day takes 60 seconds instead of 10.", + "settings.storage": "This browser is not keeping saves between visits (private window or blocked storage). Use Export to keep your game.", + "credits.title": "Credits", + "credits.fiction": "Valdoria and everyone in it are fictional.", + "credits.tech": "Built with Go and plain JavaScript, with no third-party libraries.", + "credits.fonts": "Fonts: Special Elite (Apache License 2.0), IM Fell English and Courier Prime (SIL Open Font License). The licence files are shipped with the game." +} diff --git a/web/js/i18n/fr.json b/web/js/i18n/fr.json new file mode 100644 index 0000000..bff4dab --- /dev/null +++ b/web/js/i18n/fr.json @@ -0,0 +1,189 @@ +{ + "app.title": "Le Bureau", + "dash.title": "Note ministérielle", + "dash.confidential": "Strictement confidentiel", + "dash.econ": "Chiffres économiques", + "dash.intel": "Synthèse du renseignement", + "dash.classified": "Classifié", + "ind.order": "Ordre public", + "ind.stability": "Stabilité", + "ind.civilRights": "Droits civiques", + "ind.opinion": "Opinion publique", + "ind.economy": "Économie", + "ind.hardPower": "Puissance militaire", + "ind.softPower": "Influence", + "ind.unrest": "Agitation", + "ind.armyLoyalty": "Loyauté de l'armée", + "opinion.0": "En colère", + "opinion.1": "Hostile", + "opinion.2": "Inquiète", + "opinion.3": "Neutre", + "opinion.4": "Satisfaite", + "opinion.5": "Heureuse", + "opinion.6": "Extatique", + "unrest.0": "Calme", + "unrest.1": "Agité", + "unrest.2": "Tendu", + "unrest.3": "Volatil", + "unrest.4": "Explosif", + "army.0": "Mutinée", + "army.1": "Hésitante", + "army.2": "Stable", + "army.3": "Loyale", + "econ.gdp": "PIB", + "econ.growth": "Croissance", + "econ.unemployment": "Chômage", + "econ.inflation": "Inflation", + "econ.debt": "Dette / PIB", + "econ.deficit": "Déficit / PIB", + "econ.rate": "Taux d'intérêt", + "econ.gdpUnit": "Md {currency}", + "cal.dayCount": "Jour {day} sur {total}", + "cal.briefing": "Prochain dossier", + "cal.review": "Revue budgétaire", + "cal.inDays": "dans {n} jours", + "cal.today": "aujourd'hui", + "cal.tomorrow": "demain", + "cal.pause": "Pause", + "cal.speed": "Vitesse {n}×", + "inbox.title": "Corbeille d'arrivée", + "inbox.idle": "Rien n'attend votre signature. Le pays poursuit sa route.", + "inbox.overTitle": "Fin de mandat", + "inbox.overBody": "Votre mandat est terminé. (Le bilan final arrive dans une prochaine version.)", + "news.edition": "Édition du {date}", + "sector.education": "Éducation", + "sector.health": "Santé", + "sector.social": "Social, retraites", + "sector.police": "Police", + "sector.army": "Armée", + "sector.justice": "Justice", + "sector.industry": "Industrie, énergie", + "sector.transport": "Transports publics", + "sector.infrastructure": "Infrastructures", + "sector.housing": "Logement", + "sector.research": "Recherche", + "sector.culture": "Culture, médias", + "sector.foreignAffairs": "Diplomatie", + "sector.environment": "Environnement", + "sector.administration": "Administration", + "tax.income": "Impôt revenu", + "tax.corporate": "Impôt sociétés", + "tax.vat": "TVA", + "ledger.title": "Registre du Trésor", + "ledger.spending": "Dépenses, % du PIB", + "ledger.spendingHint": "Le repère sur chaque ligne marque le besoin du secteur.", + "ledger.totalAlloc": "Alloué aux secteurs", + "ledger.revenue": "Recettes : taux d'imposition", + "ledger.revenueHint": "Le repère marque le taux où les recettes sont maximales. Au-delà, vous collectez moins.", + "ledger.yield": "{n} % du PIB", + "ledger.quality": "Qualité {now} → {target}", + "ledger.summary": "Synthèse du Trésor", + "ledger.sumRevenue": "Recettes", + "ledger.sumSectors": "Dépenses sectorielles", + "ledger.sumInterest": "Intérêts de la dette", + "ledger.sumSpending": "Dépenses totales", + "ledger.sumSurplus": "Excédent", + "ledger.sumDeficit": "Déficit", + "ledger.perYear": "{n} Md {currency} par an", + "ledger.projection": "Quatre prochains trimestres, sans autre changement", + "ledger.now": "Auj.", + "ledger.months": "+{n} m", + "ledger.reset": "Réinitialiser", + "ledger.confirm": "Signer et classer", + "ledger.error": "Le Trésor a rejeté ce budget.", + "kind.memo": "Mémorandum", + "kind.telegram": "Télégramme", + "kind.petition": "Pétition", + "kind.report": "Rapport", + "kind.letter": "Lettre", + "card.approved": "Approuvé", + "card.rejected": "Rejeté", + "card.keys": "Touches : Y approuver · N rejeter", + "card.from": "De la part de", + "profile.title": "Prestation de serment", + "profile.lead": "Avant votre entrée en fonction, le service de presse a besoin d'une précision pour les registres officiels.", + "profile.body": "Comment la presse doit-elle s'adresser à vous ?", + "profile.he": "Il / Lui", + "profile.she": "Elle / Elle", + "profile.they": "Iel / Ielle", + "profile.note": "Cela ne change que la manière dont vous serez nommé dans les livres d'histoire.", + "alert.urgent": "Télégramme urgent", + "alert.ack": "Compris", + "ind.regime": "Emprise sur le pouvoir", + "regime.0": "Solide", + "regime.1": "Fragile", + "regime.2": "Critique", + "end.verdict": "Le verdict des historiens", + "end.score": "Score {n} / 100", + "end.grade": "Note", + "end.served": "{days} jours au pouvoir", + "end.decisions": "Les décisions qui ont marqué le mandat", + "end.noDecisions": "Aucune décision n'a été signée.", + "end.chose": "Votre choix : {label}", + "end.again": "Rejouer", + "end.averages": "moy.", + "end.final": "fin", + "cal.menu": "Menu", + "menu.secret": "Secret défense", + "menu.tagline": "Un pays. Cinq ans. Chaque décision porte votre signature.", + "menu.paused": "Partie en pause", + "menu.continue": "Continuer", + "menu.resume": "Reprendre", + "menu.new": "Nouvelle partie", + "menu.load": "Charger une partie", + "menu.save": "Sauvegarder", + "menu.export": "Exporter", + "menu.import": "Importer", + "menu.settings": "Réglages", + "menu.credits": "Crédits", + "menu.quit": "Menu principal", + "menu.back": "Retour", + "menu.info": "{country} · jour {day}", + "new.title": "Nouvelle partie", + "new.name": "Nom du pays", + "new.scenario": "Scénario", + "new.pronouns": "Comment la presse doit-elle s'adresser à vous ?", + "new.start": "Prendre ses fonctions", + "load.title": "Charger une partie", + "load.auto": "Sauvegarde auto", + "load.slot": "Emplacement {n}", + "load.empty": "Vide", + "load.info": "{country} · jour {day}{date}", + "load.finished": "terminée", + "load.unreadable": "Sauvegarde illisible", + "load.load": "Charger", + "load.delete": "Supprimer", + "load.sure": "Sûr ?", + "load.replace": "Charger remplace la partie en cours.", + "save.title": "Sauvegarder", + "save.here": "Sauvegarder ici", + "save.overwrite": "Écraser", + "save.done": "Sauvegardé dans l'emplacement {n}.", + "save.failed": "Le navigateur a refusé la sauvegarde. Utilisez Exporter pour garder votre partie.", + "export.title": "Exporter", + "export.hint": "Copiez ce texte ou téléchargez le fichier. Vous pourrez l'importer plus tard, sur n'importe quel appareil.", + "export.copy": "Copier", + "export.copied": "Copié.", + "export.copyFailed": "Sélectionnez le texte et copiez-le à la main.", + "export.download": "Télécharger le .sav", + "import.title": "Importer", + "import.hint": "Collez une chaîne de sauvegarde, ou choisissez un fichier .sav.", + "import.file": "Choisir un fichier", + "import.go": "Importer", + "import.error.format": "Cela ne ressemble pas à une chaîne de sauvegarde.", + "import.error.checksum": "La sauvegarde est endommagée ou incomplète (somme de contrôle invalide).", + "import.error.tooNew": "Cette sauvegarde vient d'une version plus récente du jeu.", + "import.error.version": "Cette sauvegarde vient d'une version qui ne peut pas être convertie.", + "import.error.invalid": "Le contenu de cette sauvegarde n'est pas valide.", + "import.error.scenario": "Cette sauvegarde utilise un scénario qui n'est pas installé.", + "import.error.empty": "Rien à importer pour l'instant.", + "settings.title": "Réglages", + "settings.language": "Langue", + "settings.slow": "Temps ralenti", + "settings.slowHint": "Un jour en jeu dure 60 secondes au lieu de 10.", + "settings.storage": "Ce navigateur ne conserve pas les sauvegardes entre deux visites (fenêtre privée ou stockage bloqué). Utilisez Exporter pour garder votre partie.", + "credits.title": "Crédits", + "credits.fiction": "La Valdorie et tous ses habitants sont fictifs.", + "credits.tech": "Réalisé avec Go et du JavaScript pur, sans bibliothèque tierce.", + "credits.fonts": "Polices : Special Elite (licence Apache 2.0), IM Fell English et Courier Prime (licence SIL Open Font). Les fichiers de licence sont fournis avec le jeu." +} diff --git a/web/js/i18n/i18n.js b/web/js/i18n/i18n.js new file mode 100644 index 0000000..ac2c8b0 --- /dev/null +++ b/web/js/i18n/i18n.js @@ -0,0 +1,72 @@ +// UI strings live in en.json / fr.json. Content fields (cards, newspaper) are +// { en, fr } objects read through tx(). + +const dict = {}; +let lang = "en"; + +export async function initI18n(initial = "en") { + for (const l of ["en", "fr"]) { + dict[l] = await (await fetch(`js/i18n/${l}.json`)).json(); + } + setLang(initial); +} + +export function setLang(l) { + lang = dict[l] ? l : "en"; + document.documentElement.lang = lang; +} + +export const getLang = () => lang; + +export function t(key, vars) { + let s = dict[lang]?.[key] ?? dict.en?.[key] ?? key; + if (vars) for (const [k, v] of Object.entries(vars)) s = s.replaceAll(`{${k}}`, v); + return s; +} + +// Pick the current language from a { en, fr } content field. +export const tx = (obj) => obj?.[lang] ?? obj?.en ?? ""; + +// Pronoun tokens for text that refers to the player: {sub} {Sub} {obj} {pos} {is} {has} {was} +// in English, {sub} {Sub} {tonic} {e} (agreement ending) in French. Text that needs none of +// them should avoid pronouns altogether. +const PRONOUN_FORMS = { + en: { + he: { sub: "he", Sub: "He", obj: "him", pos: "his", is: "is", has: "has", was: "was" }, + she: { sub: "she", Sub: "She", obj: "her", pos: "her", is: "is", has: "has", was: "was" }, + they: { sub: "they", Sub: "They", obj: "them", pos: "their", is: "are", has: "have", was: "were" }, + }, + fr: { + he: { sub: "il", Sub: "Il", tonic: "lui", e: "" }, + she: { sub: "elle", Sub: "Elle", tonic: "elle", e: "e" }, + they: { sub: "iel", Sub: "Iel", tonic: "ielle", e: "·e" }, + }, +}; + +export function tp(text, pronouns = "they") { + const forms = PRONOUN_FORMS[lang]?.[pronouns] ?? PRONOUN_FORMS[lang]?.they ?? {}; + return text.replace(/\{(\w+)\}/g, (match, key) => forms[key] ?? match); +} + +// A historian's title: English is one string, French has a form per pronoun set. +export function tt(title, pronouns = "they") { + const v = title?.[lang] ?? title?.en ?? ""; + return typeof v === "string" ? v : (v[pronouns] ?? v.they); +} + +export function fmt(n, digits = 1) { + return new Intl.NumberFormat(lang, { minimumFractionDigits: digits, maximumFractionDigits: digits }).format(n); +} + +// ISO date (YYYY-MM-DD, treated as UTC) → long localized parts. +export function dateParts(iso) { + const d = new Date(`${iso}T00:00:00Z`); + const f = (opts) => new Intl.DateTimeFormat(lang, { timeZone: "UTC", ...opts }).format(d); + return { + weekday: f({ weekday: "long" }), + day: f({ day: "numeric" }), + month: f({ month: "long" }), + year: f({ year: "numeric" }), + full: f({ dateStyle: "full" }), + }; +} diff --git a/web/js/main.js b/web/js/main.js new file mode 100644 index 0000000..91c0521 --- /dev/null +++ b/web/js/main.js @@ -0,0 +1,282 @@ +// Boot, game lifecycle (menu, new game, load, autosave), panel wiring and the real-time loop. +// +// Dev URL params skip the menu and start a new game at once (and never touch the real autosave): +// ?lang=fr ?seed=N ?pronouns=he|she|they ?alloc=K (scale every sector budget by K) +// ?skip=DAYS (fast-forward, answering cards at random) ?card=ID (show that card first) +// ?dev (exposes window.__game) ?new (just start a game) ?menu (force the menu) + +import { + createGame, advanceDay, setBudget, setSpeed, setPronouns, dismissAlert, isWaiting, + createClock, consumeClock, ensureCard, answerCard, indexCards, nextFloat, +} from "./engine/index.js"; +import { initI18n, setLang, getLang, t } from "./i18n/i18n.js"; +import { createStorage, writeSave, loadSettings, saveSettings, KEYS } from "./save/storage.js"; +import { tilt } from "./ui/desk.js"; +import { createDashboard } from "./ui/dashboard.js"; +import { createCalendar } from "./ui/calendar.js"; +import { createNewspaper } from "./ui/newspaper.js"; +import { createDecision } from "./ui/decision.js"; +import { createLedger } from "./ui/ledger.js"; +import { createTelegram } from "./ui/telegram.js"; +import { createEndgame } from "./ui/endgame.js"; +import { createMenu } from "./ui/menu.js"; + +const params = new URLSearchParams(location.search); +const getJson = (url) => fetch(url).then((r) => r.json()); + +// ---- Content ---- + +const [balance, newsTpl, endgame, characters, cardIndex, scenarioIndex] = await Promise.all([ + getJson("data/balance.json"), + getJson("data/newspaper.json"), + getJson("data/endgame.json"), + getJson("data/characters.json"), + getJson("data/cards/index.json"), + getJson("data/scenarios/index.json"), +]); +const cards = (await Promise.all(cardIndex.files.map((f) => getJson(`data/cards/${f}`)))).flat(); +const scenarios = Object.fromEntries( + await Promise.all(scenarioIndex.scenarios.map(async (id) => [id, await getJson(`data/scenarios/${id}.json`)])), +); +const cardsById = indexCards(cards); +const content = { scenarios, balance, cards }; + +// ---- Settings and storage ---- + +const storage = createStorage(); +let settings = loadSettings(storage); +const browserLang = navigator.language?.startsWith("fr") ? "fr" : "en"; +await initI18n(params.get("lang") ?? settings.lang ?? browserLang); + +const DEV_PARAMS = ["seed", "pronouns", "alloc", "skip", "card", "dev", "new"]; +const devRun = DEV_PARAMS.some((k) => params.has(k)) && !params.has("menu"); + +// ---- Game and screen state ---- + +let state = null; // the running game, or null in the main menu +let scenario = null; +let panels = null; +let menuOpen = true; +let lastSpeed = 1; + +const el = { + dash: document.getElementById("dashboard"), + folder: document.getElementById("folder"), + ledger: document.getElementById("ledger"), + alerts: document.getElementById("alerts"), + endgame: document.getElementById("endgame"), + cal: document.getElementById("calendar"), + news: document.getElementById("newspaper"), + menu: document.getElementById("menu"), +}; +const pad = document.getElementById("pad"); +for (const id of ["dash", "folder", "cal", "news"]) tilt(el[id], id); + +// A weekly pause needs a card; with none eligible the week is simply empty. +function prepareWeek() { + ensureCard(state, balance, cards); +} + +function autosave() { + if (!state || devRun) return; + if (state.over) storage.remove(KEYS.auto); // a finished game has nothing to continue + else writeSave(storage, KEYS.auto, state); +} + +// ---- Panels ---- + +function build() { + panels?.decision.destroy(); + document.title = t("app.title"); + state.lang = getLang(); + panels = { + dash: createDashboard(el.dash, scenario), + decision: createDecision(el.folder, { cardsById, characters, onAnswer, onProfile, keysEnabled: () => !menuOpen }), + ledger: createLedger(el.ledger, scenario, { onConfirm: render }), + cal: createCalendar(el.cal, balance, { onSpeed, onMenu: openMenu }), + news: createNewspaper(el.news, newsTpl), + alerts: createTelegram(el.alerts, { alerts: endgame.alerts, onDismiss }), + endgame: createEndgame(el.endgame, { newsName: newsTpl.name, endgame, cards, onAgain: quitToMenu }), + }; + render(); +} + +function render() { + if (!state) return; + for (const p of Object.values(panels)) p.update(state, balance); + // The ledger covers the folder and the side column; the end screen covers everything. + pad.classList.toggle("is-ledger", Boolean(state.pending.review && !state.pending.profile && !state.over)); + pad.classList.toggle("is-endgame", Boolean(state.over)); + autosave(); +} + +// ---- Game lifecycle ---- + +function newGame({ countryName, scenarioId = scenarioIndex.scenarios[0], pronouns }) { + return createGame({ + scenario: scenarios[scenarioId], + balance, + seed: params.has("seed") ? Number(params.get("seed")) : crypto.getRandomValues(new Uint32Array(1))[0], + lang: getLang(), + countryName, + pronouns, + }); +} + +function enterGame(next) { + state = next; + scenario = scenarios[state.scenarioId]; + if (params.has("dev")) window.__game = state; + lastSpeed = state.speed || 1; + prepareWeek(); + closeMenu(); + build(); +} + +function openMenu() { + if (!state) return; + menuOpen = true; + pad.classList.add("is-menu"); + menu.show("game"); +} + +function closeMenu() { + menuOpen = false; + pad.classList.remove("is-menu"); + menu.hide(); + clock.acc = 0; +} + +function quitToMenu() { + autosave(); + panels?.decision.destroy(); + state = null; + panels = null; + for (const id of ["dash", "folder", "ledger", "alerts", "endgame", "cal", "news"]) el[id].innerHTML = ""; + el.ledger.hidden = true; + el.alerts.hidden = true; + el.endgame.hidden = true; + pad.classList.remove("is-ledger", "is-endgame"); + pad.classList.add("is-menu"); + menuOpen = true; + menu.show("main"); +} + +function applySettings(patch) { + const langChanged = patch.lang && patch.lang !== getLang(); + settings = { ...settings, ...patch }; + saveSettings(storage, settings); + if (!langChanged) return; + setLang(patch.lang); + document.title = t("app.title"); + if (state) build(); + menu.refresh(); +} + +const menu = createMenu(el.menu, { + content, + storage, + getState: () => state, + getSettings: () => settings, + handlers: { + onStart: (options) => enterGame(newGame(options)), + onLoadState: enterGame, + onResume: closeMenu, + onQuit: quitToMenu, + onSettings: applySettings, + }, +}); + +// ---- Player actions ---- + +function onSpeed(speed) { + if (speed > 0) lastSpeed = speed; + setSpeed(state, balance, speed); + render(); +} + +function onAnswer(choice) { + answerCard(state, balance, cards, choice); + render(); +} + +function onProfile(pronouns) { + setPronouns(state, pronouns); + render(); +} + +function onDismiss() { + dismissAlert(state); + render(); +} + +document.addEventListener("keydown", (e) => { + if (!state || e.target.closest?.("input, textarea, select") || e.ctrlKey || e.metaKey || e.altKey) return; + if (menuOpen) return; // the menu handles its own keys + if (e.key === "Escape" && !state.over) { + openMenu(); + } else if (e.code === "Space") { + e.preventDefault(); + onSpeed(state.speed > 0 ? 0 : lastSpeed); + } else if (/^[1-9]$/.test(e.key) && balance.time.speeds[Number(e.key) - 1]) { + onSpeed(balance.time.speeds[Number(e.key) - 1]); + } +}); + +addEventListener("pagehide", autosave); +document.addEventListener("visibilitychange", () => { if (document.hidden) autosave(); }); + +// ---- Dev shortcuts ---- + +function devGame() { + const s = newGame({ pronouns: params.get("pronouns") ?? undefined }); + state = s; // the helpers below act on `state` + if (params.has("alloc")) { + const k = Number(params.get("alloc")); + setBudget(s, balance, { alloc: Object.fromEntries(Object.entries(s.sectors).map(([id, x]) => [id, x.alloc * k])) }); + } + for (let i = 0, n = Number(params.get("skip") ?? 0); i < n && !s.over; i++) { + if (s.pending.profile) setPronouns(s, "they"); + s.pending.review = false; + while (s.pending.alert) dismissAlert(s); + prepareWeek(); + if (s.pendingCard) answerCard(s, balance, cards, nextFloat(s) < 0.5 ? "yes" : "no"); + advanceDay(s, balance); + } + if (cardsById.has(params.get("card"))) { + s.pendingCard = { id: params.get("card"), day: s.day }; + s.pending.weeklyCard = true; + } + return s; +} + +// ---- Start ---- + +const clock = createClock(); +let last = performance.now(); + +if (devRun) enterGame(devGame()); +else quitToMenu(); + +function frame(now) { + const dt = now - last; + last = now; + if (state && !menuOpen && state.speed > 0 && !state.over && !isWaiting(state)) { + const msPerDay = settings.slow ? balance.time.slowMsPerDay : balance.time.msPerDay; + let days = consumeClock(clock, dt, msPerDay, state.speed); + while (days-- > 0) { + const r = advanceDay(state, balance); + if (!r.advanced) break; + if (r.events.weeklyCard) prepareWeek(); + render(); + if (isWaiting(state) || state.over) { + clock.acc = 0; + break; + } + } + } else { + clock.acc = 0; + } + requestAnimationFrame(frame); +} +requestAnimationFrame(frame); diff --git a/web/js/save/codec.js b/web/js/save/codec.js new file mode 100644 index 0000000..a427241 --- /dev/null +++ b/web/js/save/codec.js @@ -0,0 +1,81 @@ +// Save strings for export and import: "CG1:" + CRC32 of the JSON (8 hex digits) + ":" + base64(UTF-8 JSON). +// The checksum only catches corrupted or truncated strings. It is not protection against editing: +// anyone can decode, change and re-encode a save, and a single-player game does not need more. + +import { STATE_VERSION } from "../engine/state.js"; + +const PREFIX = "CG1:"; +const FORMAT = /^CG1:([0-9a-f]{8}):([A-Za-z0-9+/]+={0,2})$/; + +const CRC_TABLE = (() => { + const table = new Uint32Array(256); + for (let n = 0; n < 256; n++) { + let c = n; + for (let k = 0; k < 8; k++) c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1; + table[n] = c >>> 0; + } + return table; +})(); + +export function crc32(bytes) { + let c = 0xffffffff; + for (const b of bytes) c = CRC_TABLE[(c ^ b) & 0xff] ^ (c >>> 8); + return (c ^ 0xffffffff) >>> 0; +} + +function toBase64(bytes) { + let binary = ""; + for (let i = 0; i < bytes.length; i += 0x8000) binary += String.fromCharCode(...bytes.subarray(i, i + 0x8000)); + return btoa(binary); +} + +function fromBase64(text) { + const binary = atob(text); + const bytes = new Uint8Array(binary.length); + for (let i = 0; i < binary.length; i++) bytes[i] = binary.charCodeAt(i); + return bytes; +} + +export function encodeSave(state) { + const bytes = new TextEncoder().encode(JSON.stringify(state)); + return `${PREFIX}${crc32(bytes).toString(16).padStart(8, "0")}:${toBase64(bytes)}`; +} + +// Upgrades older saves one version at a time. Add an entry here whenever STATE_VERSION +// changes: MIGRATIONS[n] turns a version n state into a version n+1 state. +export const MIGRATIONS = {}; + +export function migrate(state) { + if (!Number.isInteger(state?.version)) return { ok: false, error: "format" }; + if (state.version > STATE_VERSION) return { ok: false, error: "tooNew" }; + let s = state; + while (s.version < STATE_VERSION) { + const step = MIGRATIONS[s.version]; + if (!step) return { ok: false, error: "version" }; + s = step(s); + } + return { ok: true, state: s }; +} + +// Returns { ok: true, state } or { ok: false, error: "format" | "checksum" | "tooNew" | "version" }. +// Whitespace is ignored, so strings that were wrapped when pasted still work. +export function decodeSave(text) { + const match = FORMAT.exec(String(text).replace(/\s+/g, "")); + if (!match) return { ok: false, error: "format" }; + + let bytes; + try { + bytes = fromBase64(match[2]); + } catch { + return { ok: false, error: "format" }; + } + if (crc32(bytes).toString(16).padStart(8, "0") !== match[1]) return { ok: false, error: "checksum" }; + + let state; + try { + state = JSON.parse(new TextDecoder().decode(bytes)); + } catch { + return { ok: false, error: "format" }; + } + return migrate(state); +} diff --git a/web/js/save/storage.js b/web/js/save/storage.js new file mode 100644 index 0000000..74e9f9f --- /dev/null +++ b/web/js/save/storage.js @@ -0,0 +1,107 @@ +// Browser storage for the autosave, the manual slots and the settings. +// Every access is wrapped: if localStorage is missing or throws (private window, blocked +// site data, full quota) the game keeps working and uses memory for the rest of the session. + +export const SLOT_COUNT = 3; +export const KEYS = { + auto: "cg.autosave", + slot: (n) => `cg.slot.${n}`, + settings: "cg.settings", +}; + +function browserStorage() { + try { + const probe = "cg.probe"; + globalThis.localStorage.setItem(probe, "1"); + globalThis.localStorage.removeItem(probe); + return globalThis.localStorage; + } catch { + return null; + } +} + +// backend: anything with getItem/setItem/removeItem, for tests. Default: localStorage. +export function createStorage(backend = browserStorage()) { + const memory = new Map(); + const store = { persistent: backend !== null }; + + store.get = (key) => { + try { + if (backend) return backend.getItem(key); + } catch { + store.persistent = false; + } + return memory.get(key) ?? null; + }; + + // Returns false when the write could not be made durable. + store.set = (key, value) => { + try { + if (backend) { + backend.setItem(key, value); + return true; + } + } catch { + store.persistent = false; + } + memory.set(key, value); + return false; + }; + + store.remove = (key) => { + memory.delete(key); + try { + backend?.removeItem(key); + } catch { + store.persistent = false; + } + }; + + return store; +} + +// ---- Saved games: { meta, state } under one key ---- + +export function writeSave(store, key, state) { + const meta = { + savedAt: Date.now(), + day: state.day, + countryName: state.countryName, + pronouns: state.pronouns, + scenarioId: state.scenarioId, + over: state.over?.type ?? null, + }; + return store.set(key, JSON.stringify({ meta, state })); +} + +// Returns { meta, state } or null when the slot is empty or unreadable. +export function readSave(store, key) { + const raw = store.get(key); + if (!raw) return null; + try { + const parsed = JSON.parse(raw); + return parsed?.state && parsed?.meta ? parsed : null; + } catch { + return null; + } +} + +// ---- Settings ---- + +const DEFAULT_SETTINGS = { lang: null, slow: false }; + +export function loadSettings(store) { + try { + const s = JSON.parse(store.get(KEYS.settings) ?? "{}"); + return { + lang: s.lang === "en" || s.lang === "fr" ? s.lang : DEFAULT_SETTINGS.lang, + slow: s.slow === true, + }; + } catch { + return { ...DEFAULT_SETTINGS }; + } +} + +export function saveSettings(store, settings) { + return store.set(KEYS.settings, JSON.stringify(settings)); +} diff --git a/web/js/ui/calendar.js b/web/js/ui/calendar.js new file mode 100644 index 0000000..f033d87 --- /dev/null +++ b/web/js/ui/calendar.js @@ -0,0 +1,60 @@ +// Desk calendar: in-game date, term progress, next decision dates, the brass speed +// controls and the way into the menu. + +import { t, dateParts } from "../i18n/i18n.js"; +import { dateOfDay } from "../engine/index.js"; +import { $ } from "./desk.js"; + +export function createCalendar(root, bal, { onSpeed, onMenu }) { + const speeds = bal.time.speeds; + root.innerHTML = ` +
+
+
+
+
+
+
+
${t("cal.briefing")}
+
${t("cal.review")}
+
+
+ + ${speeds.map((s) => ``).join("")} +
+ +
`; + + root.addEventListener("click", (e) => { + const b = e.target.closest("button"); + if (!b) return; + if (b.dataset.menu !== undefined) onMenu(); + else onSpeed(Number(b.dataset.speed)); + }); + + const until = (day, every) => (every - (day % every)) % every; + const when = (n) => { + if (n === 0) return t("cal.today"); + return n === 1 ? t("cal.tomorrow") : t("cal.inDays", { n }); + }; + + function update(state) { + const p = dateParts(dateOfDay(state.startDate, state.day).iso); + $(root, ".cal__weekday").textContent = p.weekday; + $(root, ".cal__day").textContent = p.day; + $(root, ".cal__month").textContent = `${p.month} ${p.year}`; + const shown = Math.min(state.day + 1, bal.time.termDays); + $(root, ".cal__count").textContent = t("cal.dayCount", { day: shown, total: bal.time.termDays }); + $(root, ".cal__term span").style.width = `${(state.day / bal.time.termDays) * 100}%`; + + const over = Boolean(state.over); + $(root, '[data-next="briefing"]').textContent = over ? "–" : when(state.pending.weeklyCard ? 0 : until(state.day, bal.time.daysPerWeek)); + $(root, '[data-next="review"]').textContent = over ? "–" : when(state.pending.review ? 0 : until(state.day, bal.time.daysPerQuarter)); + + for (const b of root.querySelectorAll("button[data-speed]")) { + b.setAttribute("aria-pressed", String(Number(b.dataset.speed) === state.speed)); + } + } + + return { update }; +} diff --git a/web/js/ui/charts.js b/web/js/ui/charts.js new file mode 100644 index 0000000..ffe6571 --- /dev/null +++ b/web/js/ui/charts.js @@ -0,0 +1,45 @@ +// Hand-drawn SVG helpers. Output is built from numbers only, so it is safe as innerHTML. + +// Bigger chart for the end-of-term review: weekly samples over the whole term, +// a gridline per year and per quarter of the value range. +export function lineChart(values, { w = 260, h = 96, min = 0, max = 100, yearEvery = 52 } = {}) { + const pad = 3; + const n = values.length; + const span = max - min || 1; + const x = (i) => pad + (n > 1 ? (i / (n - 1)) * (w - 2 * pad) : 0); + const y = (v) => h - pad - Math.min(1, Math.max(0, (v - min) / span)) * (h - 2 * pad); + + const grid = []; + for (let i = yearEvery; i < n; i += yearEvery) grid.push(``); + for (const f of [0.25, 0.5, 0.75]) grid.push(``); + + const pts = values.map((v, i) => `${x(i).toFixed(1)},${y(v).toFixed(1)}`).join(" "); + return ``; +} + +// Small line chart on graph paper. `values` are plotted evenly left to right. +export function sparkline(values, { w = 84, h = 24, min = 0, max = 100 } = {}) { + const grid = []; + for (let x = 12; x < w; x += 12) grid.push(``); + for (const f of [0.25, 0.5, 0.75]) grid.push(``); + + let line = ""; + const n = values.length; + if (n > 1) { + const span = max - min || 1; + const pts = values.map((v, i) => { + const x = 2 + (i / (n - 1)) * (w - 4); + const y = h - 2 - Math.min(1, Math.max(0, (v - min) / span)) * (h - 4); + return [x.toFixed(1), y.toFixed(1)]; + }); + const last = pts[n - 1]; + line = + `` + + ``; + } + return ``; +} diff --git a/web/js/ui/dashboard.js b/web/js/ui/dashboard.js new file mode 100644 index 0000000..8d113a1 --- /dev/null +++ b/web/js/ui/dashboard.js @@ -0,0 +1,127 @@ +// Ministerial briefing: seven indicator gauges with sparklines, economic figures +// with trend arrows, and a classified intelligence summary for the hidden gauges. + +import { t, fmt } from "../i18n/i18n.js"; +import { sparkline } from "./charts.js"; +import { $ } from "./desk.js"; +import { summarize } from "../engine/index.js"; + +const MAIN = ["order", "stability", "civilRights", "opinion", "economy", "hardPower", "softPower"]; + +// key, label, digits, suffix, summary field, history series, noise floor for the arrow, good when rising +const ECON = [ + ["gdp", "econ.gdp", 0, "", "gdp", null, 0, true], + ["growth", "econ.growth", 1, " %", "growth", "growth", 0.15, true], + ["unemployment", "econ.unemployment", 1, " %", "unemployment", "unemployment", 0.15, false], + ["inflation", "econ.inflation", 1, " %", "inflation", "inflation", 0.2, false], + ["debt", "econ.debt", 0, " %", "debtRatio", "debtRatio", 1, false], + ["deficit", "econ.deficit", 1, " %", "deficit", "deficit", 0.3, false], + ["rate", "econ.rate", 2, " %", "interestRate", null, 0, false], +]; + +const bandIndex = (v, cuts) => cuts.filter((c) => v >= c).length; +const OPINION_CUTS = [15, 30, 45, 60, 75, 90]; +const UNREST_CUTS = [20, 35, 50, 65]; +const ARMY_CUTS = [25, 45, 65]; + +const SPARK_WEEKS = 26; +const SPARK_W = 76; +const MIN_SPAN = 16; + +export function createDashboard(root, scenario) { + root.innerHTML = ` +
+

${t("dash.title")}

+ ${t("dash.confidential")} +
+
+ ${MAIN.map((id) => ` +
+ ${t("ind." + id)} + + + +
`).join("")} +
+

${t("dash.econ")}

+ + ${ECON.map(([key, label]) => ` + `).join("")} +
${t(label)}
+

${t("dash.intel")} ${t("dash.classified")}

+
    +
  • ${t("ind.unrest")}
  • +
  • ${t("ind.armyLoyalty")}
  • +
  • ${t("ind.regime")}
  • +
`; + + const gauges = Object.fromEntries(MAIN.map((id) => [id, { + el: $(root, `.gauge[data-ind="${id}"]`), + fill: $(root, `.gauge[data-ind="${id}"] .gauge__fill`), + value: $(root, `.gauge[data-ind="${id}"] .gauge__value`), + band: $(root, `.gauge[data-ind="${id}"] .gauge__band`), + spark: $(root, `.gauge[data-ind="${id}"] .gauge__spark`), + }])); + const sparkLen = {}; + + function trend(series, eps, goodUp) { + if (!series || series.length < 2) return ["", ""]; + const cur = series[series.length - 1]; + const prev = series[Math.max(0, series.length - 5)]; + const d = cur - prev; + if (Math.abs(d) < eps) return ["▬", "flat"]; + return [d > 0 ? "▲" : "▼", d > 0 === goodUp ? "good" : "bad"]; + } + + function update(state, bal) { + const sum = summarize(state, bal); + + for (const id of MAIN) { + const g = gauges[id]; + const v = state.indicators[id]; + g.fill.style.width = `${v}%`; + g.el.classList.toggle("is-low", v < 30); + g.el.classList.toggle("is-high", v >= 70); + g.value.textContent = Math.round(v); + if (id === "opinion") g.band.textContent = t("opinion." + bandIndex(v, OPINION_CUTS)); + + const series = state.history.series[id] ?? []; + if (sparkLen[id] !== series.length) { + sparkLen[id] = series.length; + const win = series.slice(-SPARK_WEEKS); + // Zoom on the data (at least MIN_SPAN points tall) so small trends stay visible. + const mid = (Math.min(...win) + Math.max(...win)) / 2; + const span = Math.max(Math.max(...win) - Math.min(...win), MIN_SPAN); + g.spark.innerHTML = sparkline(win, { w: SPARK_W, min: mid - span / 2, max: mid + span / 2 }); + } + } + + for (const [key, , digits, suffix, field, seriesId, eps, goodUp] of ECON) { + const row = $(root, `[data-econ="${key}"]`); + const val = sum[field]; + $(row, ".econ__val").textContent = key === "gdp" + ? `${fmt(val, 0)} ${t("econ.gdpUnit", { currency: scenario.currency })}` + : `${fmt(val, digits)}${suffix}`; + const [arrow, cls] = trend(seriesId && state.history.series[seriesId], eps, goodUp); + const cell = $(row, ".econ__trend"); + cell.textContent = arrow; + cell.className = `econ__trend ${cls}`; + } + + $(root, '[data-intel="unrest"] b').textContent = t("unrest." + bandIndex(state.indicators.unrest, UNREST_CUTS)); + $(root, '[data-intel="armyLoyalty"] b').textContent = t("army." + bandIndex(state.indicators.armyLoyalty, ARMY_CUTS)); + // Hold on power: Critical once any danger zone has been entered, Shaky when close to one. + const i = state.indicators; + const inZone = state.risk.revolution > 0 || state.risk.coup > 0 || state.risk.impeachment > 0 || state.risk.defaultZone; + const close = i.unrest >= 55 || i.armyLoyalty <= 45 || i.opinion <= 30 || i.stability <= 40 + || i.civilRights <= 20 || sum.debtRatio >= 130; + const regime = inZone ? 2 : close ? 1 : 0; + $(root, '[data-intel="regime"] b').textContent = t("regime." + regime); + $(root, '[data-intel="regime"]').dataset.level = [0, 2, 3][regime]; + + $(root, '[data-intel="unrest"]').dataset.level = bandIndex(state.indicators.unrest, UNREST_CUTS); + $(root, '[data-intel="armyLoyalty"]').dataset.level = 3 - bandIndex(state.indicators.armyLoyalty, ARMY_CUTS); + } + + return { update }; +} diff --git a/web/js/ui/decision.js b/web/js/ui/decision.js new file mode 100644 index 0000000..2a48432 --- /dev/null +++ b/web/js/ui/decision.js @@ -0,0 +1,113 @@ +// Centre folder: the weekly decision card as a paper document with two rubber +// stamps. Also shows the idle and end-of-term messages. + +import { t, tx, dateParts } from "../i18n/i18n.js"; +import { dateOfDay } from "../engine/index.js"; +import { $, esc } from "./desk.js"; + +const STAMP_MS = 750; // how long the stamp animation plays before the answer is applied + +export function createDecision(root, { cardsById, characters, onAnswer, onProfile, keysEnabled = () => true }) { + root.innerHTML = ` +

${t("inbox.title")}

+
`; + const body = $(root, ".inbox__body"); + + let shown = ""; + let locked = false; + let latest = null; + + function choose(choice) { + if (locked) return; + const card = $(body, ".card"); + if (!card) return; + locked = true; + card.dataset.stamped = choice; + for (const b of card.querySelectorAll("button")) b.disabled = true; + const stamp = document.createElement("div"); + stamp.className = `card__stamp card__stamp--${choice}`; + stamp.textContent = t(choice === "yes" ? "card.approved" : "card.rejected"); + card.append(stamp); + setTimeout(() => onAnswer(choice), STAMP_MS); + } + + body.addEventListener("click", (e) => { + const b = e.target.closest("button[data-choice]"); + if (b) choose(b.dataset.choice); + const p = e.target.closest("button[data-pronouns]"); + if (p) onProfile(p.dataset.pronouns); + }); + + // The panel is rebuilt on language changes and new games, so its key listener must be removable. + const onKey = (e) => { + if (!keysEnabled() || !latest?.pendingCard) return; + if (latest.pending.review || latest.pending.profile || latest.pending.alert) return; + if (e.ctrlKey || e.metaKey || e.altKey) return; + if (e.target.closest?.("input, textarea, select")) return; + const k = e.key.toLowerCase(); + if (k === "y") choose("yes"); + else if (k === "n") choose("no"); + }; + document.addEventListener("keydown", onKey); + + function option(card, side) { + const label = side === "yes" ? t("card.approved") : t("card.rejected"); + return ` + `; + } + + function cardHtml(card, state) { + const from = characters[card.sender]; + const date = dateParts(dateOfDay(state.startDate, state.pendingCard.day).iso); + const paragraphs = tx(card.body).split("\n\n").map((p) => `

${esc(p)}

`).join(""); + return ` +
+
+ ${t("kind." + card.doc)} + ${esc(date.day)} ${esc(date.month)} ${esc(date.year)} +
+
+ ${esc(from.seal)} + ${esc(tx(from.name))}${esc(tx(from.role))} +
+

${esc(tx(card.title))}

+
${paragraphs}
+
${option(card, "yes")}${option(card, "no")}
+

${t("card.keys")}

+
`; + } + + function update(state) { + latest = state; + let kind = "idle"; + if (state.over) kind = "over"; + else if (state.pending.profile) kind = "profile"; + else if (state.pendingCard) kind = `card:${state.pendingCard.id}`; + if (kind === shown) return; + shown = kind; + locked = false; + body.classList.toggle("is-card", kind.startsWith("card:")); + + if (kind === "profile") { + body.innerHTML = ` +

${t("profile.title")}

+

${t("profile.lead")}

+

${t("profile.body")}

+
+ ${["he", "she", "they"].map((p) => ``).join("")} +
+

${t("profile.note")}

`; + } else if (kind === "idle") { + body.innerHTML = `

${t("inbox.idle")}

`; + } else if (kind === "over") { + body.innerHTML = `

${t("inbox.overTitle")}

${t("inbox.overBody")}

`; + } else { + body.innerHTML = cardHtml(cardsById.get(state.pendingCard.id), state); + } + } + + return { update, destroy: () => document.removeEventListener("keydown", onKey) }; +} diff --git a/web/js/ui/desk.js b/web/js/ui/desk.js new file mode 100644 index 0000000..147aef1 --- /dev/null +++ b/web/js/ui/desk.js @@ -0,0 +1,18 @@ +// Desk-level helpers shared by the paper panels. + +export function hash(str) { + let h = 2166136261; + for (let i = 0; i < str.length; i++) h = Math.imul(h ^ str.charCodeAt(i), 16777619); + return h >>> 0; +} + +// Give a paper a stable slight rotation derived from its id. +export function tilt(el, id, amp = 0.8) { + const r = ((hash(id) % 1000) / 1000 - 0.5) * 2 * amp; + el.style.setProperty("--rot", `${r.toFixed(2)}deg`); +} + +export const $ = (root, sel) => root.querySelector(sel); + +// Escape text for use inside innerHTML templates. +export const esc = (s) => String(s).replace(/[&<>"']/g, (c) => ({ "&": "&", "<": "<", ">": ">", '"': """, "'": "'" })[c]); diff --git a/web/js/ui/endgame.js b/web/js/ui/endgame.js new file mode 100644 index 0000000..1c6166c --- /dev/null +++ b/web/js/ui/endgame.js @@ -0,0 +1,118 @@ +// End of the game: a retrospective front page. It covers both the normal end of +// the term and each way of losing power early. + +import { t, tx, tp, tt, getLang, dateParts, fmt } from "../i18n/i18n.js"; +import { buildReview, dateOfDay, indexCards } from "../engine/index.js"; +import { lineChart } from "./charts.js"; +import { $, esc } from "./desk.js"; + +const MIN_SPAN = 30; + +// series id in state.history, label key, show the term average or the final value +const CHARTS = [ + ["opinion", "ind.opinion", "avg"], + ["stability", "ind.stability", "avg"], + ["economy", "ind.economy", "avg"], + ["debtRatio", "econ.debt", "final"], +]; + +export function createEndgame(root, { newsName, endgame, cards, onAgain }) { + const cardsById = indexCards(cards); + + root.addEventListener("click", (e) => { + if (e.target.closest("button[data-again]")) onAgain(); + }); + + let shown = ""; + + function chart(state, [id, label, mode], review) { + const series = state.history.series[id] ?? []; + const value = mode === "avg" ? review.metrics[id] : series.at(-1); + const tag = mode === "avg" ? t("end.averages") : t("end.final"); + + // Zoom on the data (at least MIN_SPAN points tall) so trends are visible; stay within 0-100 + // for indicators, and above 0 for debt. + const lo = Math.min(...series); + const hi = Math.max(...series); + const span = Math.max(hi - lo, MIN_SPAN); + let min = Math.max(0, (lo + hi) / 2 - span / 2); + let max = min + span; + if (id !== "debtRatio" && max > 100) { + max = 100; + min = 100 - span; + } + return ` +
+
${t(label)}${esc(fmt(value, 0))}${tag}
+ ${lineChart(series, { min, max })} +
`; + } + + function decision(d) { + const card = cardsById.get(d.id); + const date = dateParts(dateOfDay(root.dataset.startDate, d.day).iso); + return ` +
  • + ${esc(date.day)} ${esc(date.month)} ${esc(date.year)} + ${esc(tx(card.title))} + ${esc(t("end.chose", { label: tx(card[d.choice].label) }))} +
  • `; + } + + function update(state, bal) { + if (!state.over) { + if (shown) { + root.hidden = true; + root.innerHTML = ""; + shown = ""; + } + return; + } + const key = `${state.over.type}:${state.over.day}:${getLang()}`; + if (key === shown) return; + shown = key; + root.dataset.startDate = state.startDate; + + const review = buildReview(state, bal, cards, endgame); + const banner = endgame.over[state.over.type]; + const entry = endgame.titles.find((x) => x.id === review.titleId); + const date = dateParts(dateOfDay(state.startDate, state.over.day).iso); + const lost = state.over.type !== "term"; + + root.innerHTML = ` +
    +
    +

    ${esc(tx(newsName))}

    +
    ${esc(t("news.edition", { date: date.full }))}
    +
    +
    +

    ${esc(tx(banner.h))}

    +

    ${esc(tx(banner.d))}

    +
    +
    +
    +

    ${t("end.verdict")}

    +
    + ${esc(review.grade)} + ${t("end.grade")} +
    +

    ${entry ? esc(tt(entry.title, state.pronouns)) : ""}

    +

    ${entry ? esc(tp(tx(entry.verdict), state.pronouns)) : ""}

    +

    ${t("end.score", { n: Math.round(review.score) })}
    ${t("end.served", { days: state.over.day })}

    +
    +
    ${CHARTS.map((c) => chart(state, c, review)).join("")}
    +
    +

    ${t("end.decisions")}

    + ${review.topDecisions.length + ? `
      ${review.topDecisions.map(decision).join("")}
    ` + : `

    ${t("end.noDecisions")}

    `} +
    +
    +
    +
    `; + root.hidden = false; + $(root, "button[data-again]").focus(); + } + + return { update }; +} diff --git a/web/js/ui/ledger.js b/web/js/ui/ledger.js new file mode 100644 index 0000000..e13d2c9 --- /dev/null +++ b/web/js/ui/ledger.js @@ -0,0 +1,213 @@ +// Quarterly budget ledger: a two-page accounting book. The left page sets sector +// budgets, the right page sets tax rates and shows the Treasury summary and a +// four-quarter projection. Nothing is applied until the player signs. + +import { t, fmt, getLang } from "../i18n/i18n.js"; +import { + previewBudget, setBudget, confirmBudget, qualityFromRatio, taxRevenue, TAX_IDS, +} from "../engine/index.js"; +import { $ } from "./desk.js"; + +const ALLOC_STEP = 0.05; +const TAX_STEP = 0.5; + +// Projection rows: label key, field on the summary, digits, suffix +const PROJ_ROWS = [ + ["econ.debt", (p) => p.debtRatio, 1, ""], + ["econ.deficit", (p) => p.deficit, 1, ""], + ["econ.growth", (p) => p.growth, 1, ""], + ["econ.unemployment", (p) => p.unemployment, 1, ""], + ["ind.opinion", (p) => p.indicators.opinion, 0, ""], + ["ind.stability", (p) => p.indicators.stability, 0, ""], + ["ind.economy", (p) => p.indicators.economy, 0, ""], +]; + +export function createLedger(root, scenario, { onConfirm }) { + let openKey = null; + let ctx = null; // { state, bal } + let draft = null; + let base = null; + let queued = false; + + const sectorIds = (state) => Object.keys(state.sectors); + + function open(state, bal) { + ctx = { state, bal }; + base = { + alloc: Object.fromEntries(Object.entries(state.sectors).map(([id, s]) => [id, s.alloc])), + taxes: { ...state.economy.taxes }, + }; + draft = structuredClone(base); + + const allocMax = Math.min(bal.limits.allocMaxRatio, bal.limits.sliderMaxRatio); + const sectorRows = sectorIds(state).map((id) => { + const s = state.sectors[id]; + const max = Math.max(s.need * allocMax, s.alloc); + return ` +
    + + + + + + + +
    `; + }).join(""); + + const taxRows = TAX_IDS.map((id) => { + const max = bal.tax[id].peak * bal.limits.taxMaxFactorOfPeak; + return ` +
    + + + + + + + +
    `; + }).join(""); + + root.innerHTML = ` +
    +
    +

    ${t("ledger.title")}

    +

    ${t("ledger.spending")}. ${t("ledger.spendingHint")}

    +
    ${sectorRows}
    +
    ${t("ledger.totalAlloc")}
    +
    +
    +

    ${t("ledger.revenue")}

    +

    ${t("ledger.revenueHint")}

    +
    ${taxRows}
    +

    ${t("ledger.summary")}

    +
    +

    ${t("ledger.projection")}

    +
    +
    + + +
    + +
    +
    `; + root.hidden = false; + refresh(); + } + + function close() { + root.hidden = true; + root.innerHTML = ""; + openKey = null; + ctx = null; + } + + // Cheap parts (values next to sliders) run immediately; the preview is coalesced per frame. + function refresh() { + const { state, bal } = ctx; + let total = 0; + for (const id of sectorIds(state)) { + const s = state.sectors[id]; + const v = draft.alloc[id]; + total += v; + const row = $(root, `[data-sector="${id}"]`); + $(row, ".lrow__val").textContent = fmt(v, 2); + const target = qualityFromRatio(v / s.need, bal); + const diff = target - s.quality; + const q = $(row, ".lrow__q"); + q.textContent = diff > 1 ? "▲" : diff < -1 ? "▼" : "="; + q.className = `lrow__q ${diff > 1 ? "up" : diff < -1 ? "down" : "flat"}`; + q.title = t("ledger.quality", { now: Math.round(s.quality), target: Math.round(target) }); + row.classList.toggle("is-changed", Math.abs(v - base.alloc[id]) > 1e-9); + } + $(root, "[data-total]").textContent = `${fmt(total, 2)} %`; + + for (const id of TAX_IDS) { + const row = $(root, `[data-tax="${id}"]`); + $(row, ".lrow__val").textContent = `${fmt(draft.taxes[id], 1)} %`; + $(row, ".lrow__yield").textContent = t("ledger.yield", { n: fmt(taxRevenue(id, draft.taxes[id], bal), 1) }); + row.classList.toggle("is-changed", Math.abs(draft.taxes[id] - base.taxes[id]) > 1e-9); + } + + if (!queued) { + queued = true; + requestAnimationFrame(() => { + queued = false; + if (ctx) renderPreview(); + }); + } + } + + function renderPreview() { + const { state, bal } = ctx; + const pv = previewBudget(state, bal, draft); + if (!pv.ok) return; + const f = pv.fiscal; + const gdp = state.economy.gdp; + const bn = (pct) => fmt(Math.abs((pct / 100) * gdp), 1); + const balance = -f.deficit; // positive = surplus + + $(root, "[data-summary]").innerHTML = ` +