diff --git a/docs/BALANCE.md b/docs/BALANCE.md new file mode 100644 index 0000000..7150a05 --- /dev/null +++ b/docs/BALANCE.md @@ -0,0 +1,71 @@ +# Balance guide (M8) + +How hard the game is, what makes it hard, and how to retune it without breaking the shape. + +## Intended difficulty + +Hard, but a competent player wins; bold play is rewarded up to a point; extremes end in a fall. + +| Player | What it does | Expected result | +|---|---|---| +| `random` | never touches the budget, coin-flips every card | about 80 % reach the end, grade D | +| `randomRescue` | same, but reacts when a danger warning opens the emergency session | about 95 % survive | +| `plannerHuman` | balanced plan: growth sectors up, order up late, taxes up a few points; answers cards with 30 % mistakes | survives, grade B (A in about 1 run in 6) | +| `plannerOracle` | same plan, reads the real card effects | survives, grade A, S about 1 run in 12 | +| `planner05` / `15` / `2` / `3` | the same plan, 0.5x / 1.5x / 2x / 3x as bold | 100 % / 100 % (more A grades) / about 60 % / default every time | +| `spendthrift`, `ruin`, `welfare` | borrow to spend | default in most runs | +| `starve`, `deepCuts`, `austerity` | cut everything | revolution | +| `tyrant`, `policeState`, `militarist` | repression and arms | impeachment, revolution or a bad grade | +| `neglectArmy` | army at 10 % | coup | +| `austerityMild`, `taxMild`, `policeMild`, `spendMild`, `welfareMild` | milder versions of the above | playable (75 to 100 % survive) | + +The same table, with numeric bands, lives in `TARGETS` in `tools/balance-check.mjs`. + +## Tools + +- `node tools/balance-check.mjs [seeds] [player,...]` plays full terms and prints survival, score, grades, endings and final + averages. `--check` runs every band in `TARGETS` and exits with an error when one is out of band (24 seeds, about 30 s). + `--set path=value` overrides a `balance.json` value in memory: `--set gain=3.4 --set debt.premiumCoef=0.0006`. +- `node tools/balance-search.mjs [iterations] [seeds]` hill-climbs the best two-phase budget (early and late multipliers per + sector group and per tax). It shows the ceiling: about 63 to 65 with human-like card answers. Its output was the basis for the + `planner` player. +- `node tools/bal-edit.mjs path=value ...` edits `balance.json` and keeps its compact layout. +- `node tools/card-stats.mjs` for the card pool; `node tools/engine-check.mjs` for the engine rules. + +Workflow for a change: edit with `--set` first, read the table, commit the value with `bal-edit`, run `--check`, then +`go test ./server` and `node tools/engine-check.mjs`. + +## What makes the game hard (all values in `balance.json`) + +- **Drift** (`indicators.*.drift`, scaled by `driftScale`): each indicator's target slides every year (opinion fades, order and + stability erode, unrest creeps up). Standing still loses ground, so passive play slides toward a revolution. +- **Needs grow** (`needGrowth`, per sector per year): the tick in the ledger moves; a frozen budget buys less quality. +- **World cycle** (`world`): a slow global business cycle plus shocks. It moves growth and inflation, and + `fiscal.growthSens` makes receipts follow growth, so a slump becomes a deficit. Newspaper headlines announce it. +- **Debt** (`debt.premiumCoef`, `gameOver.default`): the interest premium is steep above 100 % of GDP. Default at 165 %, warning + at 135 %. Bond-panic and rating cards fire on the way. +- **Gain** (`gain`): how strongly sector quality moves the indicators. High enough that the budget visibly matters. +- **Score** (`score.lastYearShare`): the last year counts for half of the average, so a boom bought on credit does not pay. + +## What rewards audacity + +- **Excellence terms** (`indicators.*.excess`, `vars.growth.excess`): extra payoff above a sector quality of 70 to 75 (research, + education, infrastructure, industry for growth; health and social for opinion; culture and foreign affairs for soft power). + Quality 75 needs a budget of about 1.6x the need, so it is a real commitment. Neglect terms (`short`) punish the opposite. +- **Windfall cards** (`cri_wf_*`): fire only when a sector quality is high for long enough. + +## What punishes extremes + +- **Backlash cards** (`cri_bk_*`): fire on the player's own choices, through the condition keys `ratio:` (budget over need) + and `tax:` (rate): police state, arms race, tax strikes, capital flight, rating downgrades, hospital wards closing. +- **Game overs**: revolution (unrest above 62 and opinion below 28), coup (army loyalty under 35 with stability under 50, or + under 18 alone), impeachment, default. The chance grows each day in the zone (0.004 per day of presence). +- **Emergency session**: a new danger warning opens the budget ledger at once (at most once per 45 days) so the player can react + before the next quarter. + +## Known soft spots + +- `S` is rare by design (score 73). The best human-like runs reach about 71. +- Unrest runs about +0.25 in the card pool because "no" answers lean toward unrest. +- Blanket austerity (x0.75 everywhere) is fatal; targeted austerity (cut culture, foreign affairs, administration, research + and raise VAT) is survivable but scores poorly (grade D or F). That is deliberate: austerity costs political capital. diff --git a/docs/CARD-WRITING.md b/docs/CARD-WRITING.md index 6ea9fd1..1fe7934 100644 --- a/docs/CARD-WRITING.md +++ b/docs/CARD-WRITING.md @@ -75,6 +75,10 @@ Spread the cards over the whole term so each year brings new material: 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); +- two more keys read the player's choices rather than the results: `ratio:` (the budget divided by the + sector's need, 1 = as needed, 2 = double) and `tax:income` / `tax:corporate` / `tax:vat` (the rate; the start values are 30, 25 + and 20). They are for cards that answer extreme choices (`ratio:police` >= 2, `tax:income` >= 42) in the "backlash" + or "windfall" families of M8; - a few early-only cards with `dayMax`. Flags: `setFlags` on an option records the decision; `conditions.flags` / `notFlags` read it. Every flag a card diff --git a/docs/PLAN.md b/docs/PLAN.md index b183981..53f4f7d 100644 --- a/docs/PLAN.md +++ b/docs/PLAN.md @@ -169,7 +169,7 @@ A weighted score over the indicators averaged across the whole term (not just fi - **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. +- **Target count per category** (about 860 in total; the figures below add up to 860, not 920): 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) @@ -205,8 +205,9 @@ A weighted score over the indicators averaged across the whole term (not just fi - [x] **M4 Cards**: draw engine, decision folder and stamps, follow-ups; first 60 cards (EN/FR) across all categories; `content_test.go`. 64 cards written (62 draw at random, 2 follow-up only), 14 categories, 20 senders. - [x] **M5 Crises and endings**: unrest and army loyalty, crisis telegrams, the 4 game overs, the 5-year review with historian titles. Also the pronoun question at the start of a game. - [x] **M6 Saves and menu**: auto-save, slots, export/import string and file, main menu, settings, language switch. Sound is not in the settings yet because the game has no sounds (M8, optional). -- [ ] **M7 Content production**: grow the card pool to at least 800 cards in batches by category, plus 50 crisis cards and the follow-up chains. -- [ ] **M8 Balance and polish**: sim.html runs 200 games per strategy (random, austerity, spendthrift, police state, balanced). Targets: random play fails about 40–60 % of runs, balanced play survives. Then animations, optional sounds, and a second scenario. +- [x] **M7 Content production**: grow the card pool to at least 800 cards in batches by category, plus 50 crisis cards and the follow-up chains. Done: 864 cards, 117 of them follow-up-only, about 100 chains. Tools: `tools/add-cards.mjs`, `tools/card-stats.mjs`, `tools/cardfmt.mjs`, guide in `docs/CARD-WRITING.md`. +- [x] **M8 Balance**: the difficulty is now measured and gated. Passive play is risky, a balanced plan wins, bold play pays up to a point and extremes end in a fall. Tools `tools/balance-check.mjs` (with `--check`), `balance-search.mjs`, `bal-edit.mjs`; guide in `docs/BALANCE.md`. +- [ ] **M8b Polish (optional)**: animations, sounds (typewriter, stamp, telegraph; off by default), a second scenario, a repo README. ## Verification - `docker compose up --build` → open http://localhost:8080. Check that the menu loads, a new game starts, days advance at 10 s, and 4× speed works. @@ -245,3 +246,11 @@ A weighted score over the indicators averaged across the whole term (not just fi - 2026-10-25 (M6): The language button left the calendar (replaced by a Menu button); language lives in Settings, in the main menu and the pause menu, and is remembered. With no saved choice the browser language decides (French if it starts with fr). Time does not run while the menu is open. Space, 1-3 and Escape work in game; the menu has its own Escape (back, or resume). - 2026-10-25 (M6): The decision panel's keyboard listener leaked every time the panels were rebuilt (language change since M4); it is now removed when the panels are rebuilt. On load, `restoreState` also keeps the alert pause flag consistent with the alert queue. - 2026-10-25 (M6): New tests. `tools/engine-check.mjs` covers the codec (round trip, whitespace, CRC reference value, UTF-8, every kind of damage, versions and migrations), 23 kinds of invalid or tampered saves, repair of stale references, a restored game continuing identically, and storage (slots, settings, missing, throwing and full storage). `server/ui_content_test.go` checks that en.json and fr.json have identical keys and placeholders and that the scenario index matches the files. The menu was exercised in a real browser: new game, continue after reload with the same waiting card, slot save and overwrite, export, import (valid, tampered, garbage, empty), settings, load and delete with confirmation, and the game-over cleanup. +- 2026-10-25 (M7): Pool is 864 cards: economy 100, social 73, health 60, education 60, security 70, defense 60, foreign 70, industry 70, transport 60, housing 41, environment 50, justice 60, culture 40, crises 50. 117 cards are follow-up-only (119 links, about one chain per 7 cards, several branch on yes/no), 29 are repeatable (mostly crises), 353 have a stat or quality condition. Availability by year: start 286, year 1 202, year 2 189, year 3 127, year 4+ 60. The plan's old "about 920" was an addition error; the per-category targets add up to 860. Seven writers worked in parallel from `docs/CARD-WRITING.md`; defense and foreign cards only use invented countries (Torvania, Marenia, Belmora, Kessaly, Draveth). Coin-flip averages (yes/no averaged) are near zero for opinion, stability, economy and cost; unrest runs about +0.24 because "no" answers lean toward unrest, which is fine for now (M8). Seven duplicate English titles were retitled. +- 2026-10-25 (M7): Pool check, 120 random-answer runs (20 seeds x 6 strategies): no empty week, a run sees 205 distinct cards on average (min 39 on the early-ending starve runs, max 261), draws are spread over categories and years, and the endings match M5 (baseline, spendthrift, austerity and police-state random play reach the end; ruin ends in default; starve in revolution or coup). 9 cards were never drawn because of narrow conditions (coup attempt and its two follow-ups, police strike, strike wave, regional fund loan, industry rescue, drought pipeline, guildhall roof); they are rare-situation cards and are kept. `server/cards_test.go` now requires at least 800 cards and a minimum per category. +- 2026-10-25 (M8): Starting point, measured with the new harness: every strategy except ruin, starve and tyrant survived 100 % of runs, random play scored 58 and a card-reading bot only 61, so decisions barely mattered. Causes: the start state was an equilibrium with nothing pushing back, sector effects were weak, and debt cost only about 10 score points at 150 % of GDP. +- 2026-10-25 (M8): Engine changes (all tunable in balance.json). Indicator drift (opinion fades, order and stability erode, unrest creeps up, scaled by `driftScale` 1.1); sector needs grow yearly (`needGrowth`); a world business cycle with shocks (`world`, state version 2 with a migration that adds `world: {cycle: 0}`), receipts follow growth (`fiscal.growthSens`); `gain` 3.0 multiplies how much sector quality moves indicators; `excess` and `short` terms reward quality above 70 to 75 and punish neglect; interest premium coefficient 0.0008 (was 0.0003); default at 165 % (was 200, warning at 135); the score leans 50 % on the last year (`score.lastYearShare`); grades S 73, A 64, B 56, C 47, D 38; revolution zone is unrest above 62 and opinion below 28; coup also triggers from army loyalty under 18 alone, and from loyalty under 35 with stability under 50; zone chances grow 0.004 per day (was 0.015 and 0.02), so a warning leaves about a month. +- 2026-10-25 (M8): Emergency session. A new danger warning (revolution, coup, impeachment, default) opens the budget ledger at once, at most once per `gameOver.emergencyCooldown` (45) days, with a stamped banner. Passive play with a sensible reaction survives about 95 % of runs against 79 % without it, and extremes still fall. `state.risk` gained `emergency` and `lastEmergency`; `restoreState` repairs saves without them. +- 2026-10-25 (M8): Cards react to the player's choices. New condition keys `ratio:` and `tax:` (engine, Go validator, guide). 50 new crisis cards: 34 backlash (`cri_bk_*`: police state, army excess or neglect, high and low taxes, debt and rating, starved services, waste) and 16 windfall (`cri_wf_*`: sustained high sector quality). The pool is 914 cards. Windfalls fire about 1.1 times per run for the balanced plan and 2.6 for the 1.5x plan; backlash fires 2 to 3 times per run for police state, tax hike and spendthrift and almost never for the milder versions. +- 2026-10-25 (M8): Result, 24 seeds each, human-like card answers: random 79 % survive (grade D); planner 100 % and score 61 (A in 17 % of runs); the same plan at 1.5x boldness 100 % with A in 29 %; at 2x 63 % survive; at 3x default every time; ruin, starve, deep cuts, tyrant 0 %; spendthrift 33 %; mild versions of each idea 75 to 100 %. The best budget the search found scores about 63 to 65. `balance-check --check` encodes these bands. Soft spots: S is rare, unrest runs slightly positive in the card pool, blanket austerity is fatal. +- 2026-10-25 (M8): Newspaper headlines for a global slump or boom. The ledger hint says needs grow yearly. Dev parameter `?untilAlert` stops a fast-forward at the first danger warning. Engine checks cover the world cycle, growing needs, the new condition keys, coup from neglect, the emergency session with its cooldown and the version 1 migration. diff --git a/server/balance_test.go b/server/balance_test.go new file mode 100644 index 0000000..eaa907e --- /dev/null +++ b/server/balance_test.go @@ -0,0 +1,102 @@ +package main + +import ( + "testing" +) + +// The M8 balance sections are read by the engine without defensive checks: a typo in a sector id +// would crash the game at runtime, so every reference is checked here. +func TestBalanceSections(t *testing.T) { + bal := load(t, "data/balance.json") + scn := load(t, "data/scenarios/default.json") + sectors := set(keys(scn["sectors"].(obj))) + + for id, v := range bal["needGrowth"].(obj) { + if !sectors[id] { + t.Errorf("needGrowth: unknown sector %q", id) + } + if g, ok := v.(float64); !ok || g < 0 || g > 0.2 { + t.Errorf("needGrowth.%s must be a yearly rate between 0 and 0.2", id) + } + } + for id := range sectors { + if _, ok := bal["needGrowth"].(obj)[id]; !ok { + t.Errorf("needGrowth: missing sector %q", id) + } + } + + w := bal["world"].(obj) + sameKeys(t, "balance.world", w, []string{"tau", "noise", "max", "shockChancePerDay", "shock", "boomShare"}) + for k, v := range w { + if f, ok := v.(float64); !ok || f <= 0 { + t.Errorf("world.%s must be a positive number", k) + } + } + if g, ok := bal["gain"].(float64); !ok || g <= 0 { + t.Error("gain must be positive") + } + if g, ok := bal["driftScale"].(float64); !ok || g < 0 { + t.Error("driftScale must be a number >= 0") + } + if f, ok := bal["fiscal"].(obj)["growthSens"].(float64); !ok || f < 0 { + t.Error("fiscal.growthSens must be a number >= 0") + } + if c, ok := bal["gameOver"].(obj)["emergencyCooldown"].(float64); !ok || c < 1 { + t.Error("gameOver.emergencyCooldown must be at least 1 day") + } + + // every indicator and economy variable definition + known := set([]string{"tau", "noise", "min", "max", "sectors", "alloc", "econ", "ind", "world", "excess", "short", "drift"}) + check := func(group string, defs obj) { + for id, raw := range defs { + def := raw.(obj) + for k := range def { + if !known[k] { + t.Errorf("%s.%s: unknown field %q", group, id, k) + } + } + for _, field := range []string{"sectors", "alloc"} { + if m, ok := def[field].(obj); ok { + for sid := range m { + if !sectors[sid] { + t.Errorf("%s.%s.%s: unknown sector %q", group, id, field, sid) + } + } + } + } + for _, field := range []string{"excess", "short"} { + m, ok := def[field].(obj) + if !ok { + continue + } + for sid, pair := range m { + if !sectors[sid] { + t.Errorf("%s.%s.%s: unknown sector %q", group, id, field, sid) + } + p, ok := pair.([]any) + if !ok || len(p) != 2 { + t.Errorf("%s.%s.%s.%s must be [from, weight]", group, id, field, sid) + continue + } + from, ok1 := p[0].(float64) + weight, ok2 := p[1].(float64) + if !ok1 || !ok2 || from < 0 || from > 100 || weight < 0 { + t.Errorf("%s.%s.%s.%s: from must be 0..100 and weight >= 0", group, id, field, sid) + } + } + } + if m, ok := def["world"].(obj); ok { + for k := range m { + if k != "cycle" { + t.Errorf("%s.%s.world: unknown key %q", group, id, k) + } + } + } + if _, ok := def["drift"].(float64); def["drift"] != nil && !ok { + t.Errorf("%s.%s.drift must be a number", group, id) + } + } + } + check("indicators", bal["indicators"].(obj)) + check("vars", bal["vars"].(obj)) +} diff --git a/server/cards_test.go b/server/cards_test.go index 5e96917..3876833 100644 --- a/server/cards_test.go +++ b/server/cards_test.go @@ -114,7 +114,10 @@ func (c *cardChecker) conditions(id string, cond obj) { for _, bound := range []string{"min", "max"} { m, _ := cond[bound].(obj) for k, v := range m { - okKey := c.condStats[k] || (strings.HasPrefix(k, "q:") && c.sectors[strings.TrimPrefix(k, "q:")]) + okKey := c.condStats[k] || + (strings.HasPrefix(k, "q:") && c.sectors[strings.TrimPrefix(k, "q:")]) || + (strings.HasPrefix(k, "ratio:") && c.sectors[strings.TrimPrefix(k, "ratio:")]) || + (strings.HasPrefix(k, "tax:") && c.revenues[strings.TrimPrefix(k, "tax:")] && k != "tax:other") if !okKey { t.Errorf("%s.conditions.%s: unknown stat %q", id, bound, k) } @@ -200,6 +203,7 @@ func TestCards(t *testing.T) { followOnly := map[string]bool{} total := 0 + perCategory := map[string]int{} for _, f := range index["files"].([]any) { file := f.(string) raw, err := web.Files.ReadFile("data/cards/" + file) @@ -220,6 +224,7 @@ func TestCards(t *testing.T) { continue } total++ + perCategory[stem]++ if c.ids[id] { t.Errorf("duplicate card id %s", id) } @@ -281,7 +286,17 @@ func TestCards(t *testing.T) { t.Errorf("%s: flag %q is used in conditions but never set by any card", by, fl) } } - if total < 60 { - t.Errorf("only %d cards; M4 expects at least 60", total) + if total < 800 { + t.Errorf("only %d cards; M7 expects at least 800", total) + } + minPerCategory := map[string]int{ + "economy": 90, "social": 60, "health": 55, "education": 55, "security": 60, "defense": 55, + "foreign": 60, "industry": 60, "transport": 55, "housing": 35, "environment": 45, + "justice": 55, "culture": 35, "crises": 45, + } + for cat, min := range minPerCategory { + if perCategory[cat] < min { + t.Errorf("category %s has %d cards; M7 expects at least %d", cat, perCategory[cat], min) + } } } diff --git a/server/endgame_test.go b/server/endgame_test.go index b7357fd..6b26240 100644 --- a/server/endgame_test.go +++ b/server/endgame_test.go @@ -119,7 +119,7 @@ func TestEndgame(t *testing.T) { // Balance sections the review and the game-over rules rely on. g := bal["gameOver"].(obj) - sameKeys(t, "balance.gameOver", g, []string{"default", "impeachment", "coup", "revolution"}) + sameKeys(t, "balance.gameOver", g, []string{"default", "impeachment", "coup", "revolution", "emergencyCooldown"}) sc := bal["score"].(obj) valid := set(append(append([]string{}, indIDs...), "calm")) for k := range sc["weights"].(obj) { diff --git a/tools/bal-edit.mjs b/tools/bal-edit.mjs new file mode 100644 index 0000000..e9183f4 --- /dev/null +++ b/tools/bal-edit.mjs @@ -0,0 +1,15 @@ +// Edits balance.json from the command line and keeps its compact layout. +// node tools/bal-edit.mjs path=value [path=value ...] e.g. gain=2.8 debt.premiumCoef=0.0008 +import fs from "node:fs"; +import { format } from "./cardfmt.mjs"; + +const p = new URL("../web/data/balance.json", import.meta.url); +const j = JSON.parse(fs.readFileSync(p, "utf8")); +for (const a of process.argv.slice(2)) { + const [path, val] = a.split("="); + const keys = path.split("."); + let o = j; + for (const k of keys.slice(0, -1)) o = o[k] ??= {}; + o[keys.at(-1)] = JSON.parse(val); +} +fs.writeFileSync(p, `${format(j)}\n`); diff --git a/tools/balance-check.mjs b/tools/balance-check.mjs new file mode 100644 index 0000000..5ae9ab5 --- /dev/null +++ b/tools/balance-check.mjs @@ -0,0 +1,358 @@ +// Balance harness (M8): plays full terms with different "players" and reports how hard the game is. +// node tools/balance-check.mjs [seeds] [players] [--json] +// A player = a budget policy (decided at each quarterly review) + a card policy (yes/no each week). +// Card policies: random (coin flip), oracle (reads the real effects), intuitive (oracle that gets +// 30 % of the answers wrong, closer to a human reading the text). + +import fs from "node:fs"; +import * as E from "../web/js/engine/index.js"; +import { STRATEGIES } from "../web/dev/sim-core.js"; + +const root = new URL("../web/data/", import.meta.url); +const read = (p) => JSON.parse(fs.readFileSync(new URL(p, root), "utf8")); +export const bal = read("balance.json"); +export const scn = read("scenarios/default.json"); +export const endgame = read("endgame.json"); + +// --set path=value (repeatable) overrides balance.json in memory, e.g. --set gain=2 --set indicators.opinion.drift=-1 +for (let i = 2; i < process.argv.length; i++) { + if (process.argv[i] !== "--set") continue; + const [path, val] = process.argv[i + 1].split("="); + const keys = path.split("."); + let o = bal; + for (const k of keys.slice(0, -1)) o = o[k]; + o[keys.at(-1)] = JSON.parse(val); +} +export const cards = read("cards/index.json").files.flatMap((f) => read("cards/" + f)); + +// ---------- card policies ---------- + +// Rough worth of an option in "points". Stats the player cares about weigh more when they are low. +function optionValue(state, opt, fiscal) { + const ind = state.indicators; + const need = (v) => 1 + Math.max(0, (50 - v) / 25); // low stat => more valuable + let v = 0; + for (const e of opt.effects ?? []) { + const d = e.delta ?? 0; + const horizon = e.bias ? Math.min(6, (e.days ?? 540) / 90) : 1; // permanent offsets count more + if (e.stat !== undefined) { + const w = { opinion: 1.0, stability: 1.0, economy: 1.0, order: 0.6, civilRights: 0.6, hardPower: 0.5, softPower: 0.5 }[e.stat]; + if (w !== undefined) v += w * need(ind[e.stat]) * d * horizon * (e.bias ? 0.4 : 1); + else if (e.stat === "unrest") v -= 1.0 * (1 + Math.max(0, (ind.unrest - 30) / 20)) * d * horizon * (e.bias ? 0.4 : 1); + else if (e.stat === "armyLoyalty") v += 0.5 * need(ind.armyLoyalty) * d * horizon * (e.bias ? 0.4 : 1); + else if (e.stat === "growth") v += 3 * d * horizon * (e.bias ? 0.4 : 1); + else if (e.stat === "unemployment" || e.stat === "inflation") v -= 1.2 * d * horizon * (e.bias ? 0.4 : 1); + } else if (e.sector !== undefined) { + v += 0.35 * d * horizon * (e.bias ? 0.4 : 1); + } else if (e.revenue !== undefined) { + v += (e.revenue === "other" ? 8 : e.revenue === "corporate" ? 2 : 2.5) * d * (1 + Math.max(0, (fiscal.debtRatio - 60) / 40)); + } else if (e.oneOff !== undefined) { + v -= 4 * e.oneOff * (1 + Math.max(0, (fiscal.debtRatio - 60) / 40)); + } else if (e.extraSpending !== undefined) { + v -= 14 * e.extraSpending * (1 + Math.max(0, (fiscal.debtRatio - 60) / 40)); + } + } + return v; +} + +const POLICIES = { + random: () => (state) => (E.nextFloat(state) < 0.5 ? "yes" : "no"), + oracle: () => (state, card) => { + const f = E.computeFiscal(state, bal); + return optionValue(state, card.yes, f) >= optionValue(state, card.no, f) ? "yes" : "no"; + }, + intuitive: () => (state, card) => { + const f = E.computeFiscal(state, bal); + const best = optionValue(state, card.yes, f) >= optionValue(state, card.no, f) ? "yes" : "no"; + return E.nextFloat(state) < 0.3 ? (best === "yes" ? "no" : "yes") : best; + }, +}; + +// ---------- budget policies ---------- + +const scaled = (state, k) => { + const out = {}; + for (const [id, s] of Object.entries(state.sectors)) out[id] = s.need * state.ref.ratio[id] * k; + return out; +}; + +// Per-sector multipliers on the scenario's starting ratio. `by` overrides single sectors. +const withMult = (state, base, by = {}) => { + const out = {}; + for (const [id, s] of Object.entries(state.sectors)) { + const m = by[id] ?? base; + out[id] = Math.min(s.need * bal.limits.allocMaxRatio, s.need * state.ref.ratio[id] * m); + } + return out; +}; + +const GROWTH = ["education", "research", "infrastructure", "industry", "transport"]; + +// A prudent manager: keeps the core services at their starting level, nudges taxes to hold the debt +// ratio near a target and puts a little extra into the growth sectors when the books allow it. +function steward({ invest = 1.1, target = 65, tight = 0.9 } = {}) { + return (state) => { + const f = E.computeFiscal(state, bal); + const taxes = {}; + const by = {}; + if (f.debtRatio > target + 15 || f.deficit > 3) { + for (const id of GROWTH) by[id] = 1.0; + for (const id of ["culture", "foreignAffairs", "administration"]) by[id] = tight; + taxes.vat = Math.min(bal.tax.vat.peak, state.economy.taxes.vat + 1); + taxes.income = Math.min(bal.tax.income.peak, state.economy.taxes.income + 0.5); + } else if (f.debtRatio < target - 10 && f.deficit < 0.5) { + for (const id of GROWTH) by[id] = invest; + taxes.vat = Math.max(state.ref.taxes.vat, state.economy.taxes.vat - 0.5); + taxes.income = Math.max(state.ref.taxes.income, state.economy.taxes.income - 0.5); + } else { + for (const id of GROWTH) by[id] = 1.0; + } + return { alloc: withMult(state, 1.0, by), taxes }; + }; +} + +// Bold: borrow heavily at the start to lift education, research, infrastructure and industry, +// then pull the brake in the last year. +function investor({ mult = 1.8, until = 1100, brake = 0.85 } = {}) { + return (state) => { + const by = {}; + const late = state.day >= until; + for (const id of GROWTH) by[id] = late ? 1.0 : mult; + const rest = late ? brake : 1.0; + return { alloc: withMult(state, rest, by) }; + }; +} + +// What the hill-climbing search found (tools/balance-search.mjs): invest hard in growth, cut corporate tax. +const grower = () => (state) => { + const by = { education: 1.7, research: 1.7, infrastructure: 1.7, industry: 1.7, transport: 1.7, health: 0.9, social: 0.9, housing: 0.9, army: 1.2 }; + return { alloc: withMult(state, 1.0, by), taxes: { corporate: state.ref.taxes.corporate - 7 } }; +}; + +// Best policy of the two-phase search (balance-search.mjs, 2nd run): steady core services, more for growth, +// soft power and (late) order, financed by income tax and VAT in the second half. +// k scales every deviation from "normal" (k=1 is the searched policy, 0 = baseline, 2 = twice as bold). +const planner = (k = 1) => (state) => { + const late = state.day >= 730; + const by = late + ? { police: 1.7, justice: 1.7, administration: 1.7, army: 1.17, education: 1.7, research: 1.7, infrastructure: 1.7, industry: 1.7, transport: 1.7, culture: 1.3, foreignAffairs: 1.3, environment: 1.3 } + : { education: 1.3, research: 1.3, infrastructure: 1.3, industry: 1.3, transport: 1.3, culture: 1.38, foreignAffairs: 1.38, environment: 1.38 }; + const t = state.ref.taxes; + for (const id of Object.keys(by)) by[id] = 1 + (by[id] - 1) * k; + return { alloc: withMult(state, 1.0, by), taxes: late ? { income: t.income + 4.3 * k, vat: t.vat + 2.5 * k } : { income: t.income + 1.5 * k } }; +}; + +// What a sensible player does in an emergency session (opened by a danger alert). +function emergencyBudget(state) { + const kind = state.alerts[0]?.kind; + const t = state.economy.taxes; + if (kind === "default") return { alloc: withMult(state, 0.8), taxes: { vat: t.vat + 3, income: t.income + 3 } }; + if (kind === "coup") return { alloc: withMult(state, 1.0, { army: 1.8 }) }; + return { alloc: withMult(state, 1.0, { social: 1.4, housing: 1.5, health: 1.3, justice: 1.4, police: 1.3 }), taxes: { income: Math.max(state.ref.taxes.income - 2, t.income - 2), vat: Math.max(state.ref.taxes.vat - 2, t.vat - 2) } }; +} +const rescued = (make) => (o) => { const f = make(o); return (state) => (state.risk.emergency ? emergencyBudget(state) : f(state)); }; + +const BUDGETS = { + starveRescue: rescued(() => BUDGETS.starve()), + austerityRescue: rescued(() => BUDGETS.austerity()), + tyrantRescue: rescued(() => BUDGETS.tyrant()), + neglectArmyRescue: rescued(() => BUDGETS.neglectArmy()), + spendthriftRescue: rescued(() => BUDGETS.spendthrift()), + baselineRescue: rescued(() => BUDGETS.baseline()), + plannerRescue: rescued(() => planner(1)), + planner: () => planner(1), + planner05: () => planner(0.5), + planner15: () => planner(1.5), + planner2: () => planner(2), + planner3: () => planner(3), + grower, + baseline: () => () => ({}), + steward: (o) => steward(o), + investor: (o) => investor(o), + bold: () => investor({ mult: 2.2, until: 1000, brake: 0.8 }), + spendthrift: () => (s) => ({ alloc: scaled(s, 1.4) }), + austerity: () => (s) => ({ alloc: scaled(s, 0.75) }), + austerityMild: () => (s) => ({ alloc: withMult(s, 0.92, { culture: 0.6, foreignAffairs: 0.6, administration: 0.7, research: 0.8, environment: 0.7 }), taxes: { vat: s.ref.taxes.vat + 1.5 } }), + taxMild: () => (s) => ({ taxes: { income: s.ref.taxes.income + 3, vat: s.ref.taxes.vat + 2 } }), + policeMild: () => (s) => ({ alloc: { ...withMult(s, 1.0), police: s.sectors.police.need * 1.6 } }), + armyMild: () => (s) => ({ alloc: { ...withMult(s, 1.0), army: s.sectors.army.need * 1.5 } }), + spendMild: () => (s) => ({ alloc: scaled(s, 1.15) }), + welfareMild: () => (s) => ({ alloc: { ...withMult(s, 1.0), social: s.sectors.social.need * 1.2, health: s.sectors.health.need * 1.2, housing: s.sectors.housing.need * 1.3 }, taxes: { income: s.ref.taxes.income + 2, vat: s.ref.taxes.vat + 1.5 } }), + deepCuts: () => (s) => ({ alloc: scaled(s, 0.5), taxes: { income: s.ref.taxes.income + 5, vat: s.ref.taxes.vat + 3 } }), + taxHike: () => (s) => ({ taxes: { income: s.ref.taxes.income + 12, corporate: s.ref.taxes.corporate + 10, vat: s.ref.taxes.vat + 8 } }), + taxCut: () => (s) => ({ taxes: { income: s.ref.taxes.income - 12, corporate: s.ref.taxes.corporate - 10, vat: s.ref.taxes.vat - 6 } }), + policeState: () => (s) => ({ alloc: { ...withMult(s, 1.0), police: s.sectors.police.need * 3, army: s.sectors.army.need * 1.5 } }), + tyrant: () => (s) => ({ alloc: { ...withMult(s, 0.7), police: s.sectors.police.need * 3, army: s.sectors.army.need * 2, justice: s.sectors.justice.need * 0.3, social: s.sectors.social.need * 0.3 } }), + ruin: () => (s) => ({ alloc: scaled(s, 2), taxes: { income: 15, corporate: 12, vat: 10 } }), + starve: () => (s) => ({ alloc: scaled(s, 0.25), taxes: { income: s.ref.taxes.income + 15, corporate: s.ref.taxes.corporate + 10, vat: s.ref.taxes.vat + 10 } }), + neglectArmy: () => (s) => ({ alloc: { ...withMult(s, 1.1), army: s.sectors.army.need * 0.1 } }), + militarist: () => (s) => ({ alloc: { ...withMult(s, 0.9), army: s.sectors.army.need * 3 } }), + welfare: () => (s) => ({ alloc: { ...withMult(s, 1.0), social: s.sectors.social.need * 1.6, health: s.sectors.health.need * 1.5, housing: s.sectors.housing.need * 1.8 } }), +}; + +// name -> [budget, cards] +export const PLAYERS = { + random: ["baseline", "random"], + randomSteward: ["steward", "random"], + plannerHuman: ["planner", "intuitive"], + starveRescue: ["starveRescue", "intuitive"], + austerityRescue: ["austerityRescue", "intuitive"], + tyrantRescue: ["tyrantRescue", "intuitive"], + neglectArmyRescue: ["neglectArmyRescue", "intuitive"], + spendthriftRescue: ["spendthriftRescue", "intuitive"], + randomRescue: ["baselineRescue", "random"], + plannerRescue: ["plannerRescue", "intuitive"], + planner05: ["planner05", "intuitive"], + planner15: ["planner15", "intuitive"], + planner2: ["planner2", "intuitive"], + planner3: ["planner3", "intuitive"], + plannerOracle: ["planner", "oracle"], + plannerRandom: ["planner", "random"], + growerHuman: ["grower", "intuitive"], + growerOracle: ["grower", "oracle"], + stewardOracle: ["steward", "oracle"], + stewardHuman: ["steward", "intuitive"], + investorOracle: ["investor", "oracle"], + investorHuman: ["investor", "intuitive"], + boldOracle: ["bold", "oracle"], + boldHuman: ["bold", "intuitive"], + baselineOracle: ["baseline", "oracle"], + spendthrift: ["spendthrift", "intuitive"], + austerity: ["austerity", "intuitive"], + deepCuts: ["deepCuts", "intuitive"], + austerityMild: ["austerityMild", "intuitive"], + taxMild: ["taxMild", "intuitive"], + policeMild: ["policeMild", "intuitive"], + armyMild: ["armyMild", "intuitive"], + spendMild: ["spendMild", "intuitive"], + welfareMild: ["welfareMild", "intuitive"], + taxHike: ["taxHike", "intuitive"], + taxCut: ["taxCut", "intuitive"], + policeState: ["policeState", "intuitive"], + tyrant: ["tyrant", "intuitive"], + ruin: ["ruin", "intuitive"], + starve: ["starve", "intuitive"], + neglectArmy: ["neglectArmy", "intuitive"], + militarist: ["militarist", "intuitive"], + welfare: ["welfare", "intuitive"], +}; + +export const playOne = (budgetName, policyName, seed, opts = {}) => playWith(BUDGETS[budgetName](opts.budget), policyName, seed); + +// budget: (state) => { alloc?, taxes? } called at every quarterly review. +export function playWith(budget, policyName, seed) { + const state = E.createGame({ scenario: scn, balance: bal, seed, pronouns: "they" }); + const answer = POLICIES[policyName](); + const alerts = {}; + for (let guard = 0; guard < 9000 && !state.over; guard++) { + if (state.pending.review) { + const res = E.setBudget(state, bal, budget(state)); + if (!res.ok) throw new Error(`${budgetName}: ${res.errors.join(",")}`); + E.confirmBudget(state); + } + while (state.pending.alert) { alerts[state.alerts[0].kind] = (alerts[state.alerts[0].kind] ?? 0) + 1; E.dismissAlert(state); } + if (state.pending.weeklyCard) { + const card = E.ensureCard(state, bal, cards); + if (card) E.answerCard(state, bal, cards, answer(state, card)); + } + E.advanceDay(state, bal); + } + const review = E.buildReview(state, bal, cards, endgame); + const f = E.summarize(state, bal); + return { + seed, end: state.over?.type ?? "term", day: state.day, score: review.score, grade: review.grade, title: review.titleId, + debt: f.debtRatio, ind: f.indicators, alerts, crises: state.cardHistory.filter((h) => h.category === "crises").length, + metrics: review.metrics, cardIds: state.cardHistory.map((h) => h.id), + }; +} + +const mean = (xs) => (xs.length ? xs.reduce((a, b) => a + b, 0) / xs.length : 0); + +function report(name, runs) { + const n = runs.length; + const ends = {}; + for (const r of runs) ends[r.end] = (ends[r.end] ?? 0) + 1; + const survived = runs.filter((r) => r.end === "term"); + const grades = {}; + for (const r of survived) grades[r.grade] = (grades[r.grade] ?? 0) + 1; + const scoreAll = mean(runs.map((r) => r.score)); + const scoreSurv = mean(survived.map((r) => r.score)); + const dayFail = mean(runs.filter((r) => r.end !== "term").map((r) => r.day)); + const endTxt = Object.entries(ends).map(([k, v]) => `${k} ${v}`).join(" "); + const gradeTxt = ["S", "A", "B", "C", "D", "F"].filter((g) => grades[g]).map((g) => `${g}${grades[g]}`).join(" "); + const last = (k) => mean(runs.map((r) => r.ind[k])); + console.log( + `${name.padEnd(15)} survive ${String(Math.round((100 * survived.length) / n)).padStart(3)}% score ${scoreSurv.toFixed(1).padStart(5)} (all ${scoreAll.toFixed(1)}) ` + + `grades ${gradeTxt.padEnd(14)} fall@day ${Number.isFinite(dayFail) ? dayFail.toFixed(0).padStart(4) : " -"} debt ${mean(runs.map((r) => r.debt)).toFixed(0).padStart(3)} ` + + `opin ${last("opinion").toFixed(0)} stab ${last("stability").toFixed(0)} econ ${last("economy").toFixed(0)} unrest ${last("unrest").toFixed(0)} crises ${mean(runs.map((r) => r.crises)).toFixed(1)} | ${endTxt}`, + ); +} + +// Intended shape of the difficulty (M8). `node tools/balance-check.mjs --check` fails when a player type leaves its band. +// survive: % of runs that reach the end of the term; score: mean score of the survivors; top: % of survivors graded A or S. +const TARGETS = { + // hard for passive play, forgiving once the cabinet reacts to a warning + random: { survive: [55, 92], score: [36, 52] }, + randomRescue: { survive: [85, 100] }, + stewardHuman: { survive: [80, 100], score: [38, 54] }, + // a competent, balanced plan works; audacity pays up to a point, then it is punished + planner05: { survive: [96, 100], score: [50, 62] }, + plannerHuman: { survive: [96, 100], score: [57, 67], top: [5, 60] }, + plannerOracle: { survive: [100, 100], score: [62, 72], top: [30, 100] }, + planner15: { survive: [85, 100], score: [54, 67], top: [10, 70] }, + planner2: { survive: [40, 90] }, + planner3: { survive: [0, 8] }, + // extremes end in a fall + ruin: { survive: [0, 0] }, + starve: { survive: [0, 0] }, + deepCuts: { survive: [0, 0] }, + tyrant: { survive: [0, 0] }, + neglectArmy: { survive: [0, 15] }, + militarist: { survive: [0, 25] }, + austerity: { survive: [0, 20] }, + spendthrift: { survive: [0, 55] }, + taxHike: { survive: [40, 100], score: [0, 48] }, + policeState: { score: [0, 46] }, + // milder versions of the same ideas stay playable + austerityMild: { survive: [75, 100] }, + taxMild: { survive: [85, 100] }, + policeMild: { survive: [90, 100] }, + spendMild: { survive: [95, 100] }, + welfareMild: { survive: [95, 100] }, +}; + +function check(seeds) { + let failures = 0; + for (const [name, want] of Object.entries(TARGETS)) { + const [b, p] = PLAYERS[name]; + const runs = []; + for (let s = 1; s <= seeds; s++) runs.push(playOne(b, p, s)); + const surv = runs.filter((r) => r.end === "term"); + const got = { + survive: (100 * surv.length) / runs.length, + score: mean(surv.map((r) => r.score)), + top: surv.length ? (100 * surv.filter((r) => r.grade === "A" || r.grade === "S").length) / surv.length : 0, + }; + const bad = Object.entries(want).filter(([k, [lo, hi]]) => !(got[k] >= lo && got[k] <= hi) && !(k !== "survive" && !surv.length && lo === 0)); + if (bad.length) failures++; + console.log(`${bad.length ? "FAIL" : "ok "} ${name.padEnd(15)} ` + Object.entries(want).map(([k, [lo, hi]]) => `${k} ${got[k].toFixed(0)} (want ${lo}-${hi})`).join(" ")); + } + console.log(failures ? `${failures} player type(s) out of band` : "balance targets met"); + process.exitCode = failures ? 1 : 0; +} + +if (process.argv[1] && import.meta.url.endsWith(process.argv[1].replaceAll("\\", "/").split("/").pop())) { + const raw = process.argv.slice(2); + const args = raw.filter((a, i) => !a.startsWith("--") && raw[i - 1] !== "--set"); + const seeds = Number(args[0] ?? 12); + const names = args[1] ? args[1].split(",") : Object.keys(PLAYERS); + const t0 = Date.now(); + if (raw.includes("--check")) { check(Number(args[0] ?? 24)); process.exit(); } + for (const name of names) { + const [b, p] = PLAYERS[name]; + const runs = []; + for (let s = 1; s <= seeds; s++) runs.push(playOne(b, p, s)); + report(name, runs); + } + console.log(`(${((Date.now() - t0) / 1000).toFixed(0)} s, ${seeds} seeds each)`); +} diff --git a/tools/balance-search.mjs b/tools/balance-search.mjs new file mode 100644 index 0000000..c4d3cf6 --- /dev/null +++ b/tools/balance-search.mjs @@ -0,0 +1,91 @@ +// Hill-climbing search for the best budget policy (M8): shows what the ceiling of the game is and +// how a strong player would play, so the balance can be tuned against it. +// node tools/balance-search.mjs [iterations] [seeds] [cardPolicy] +// Prints the best parameters found and re-checks them on fresh seeds. + +import * as E from "../web/js/engine/index.js"; +import { bal, playWith } from "./balance-check.mjs"; + +const GROUPS = { + core: ["health", "social", "housing"], + order: ["police", "justice", "administration"], + army: ["army"], + growth: ["education", "research", "infrastructure", "industry", "transport"], + soft: ["culture", "foreignAffairs", "environment"], +}; +const GKEYS = Object.keys(GROUPS); +const TAXES = ["income", "corporate", "vat"]; +// every group multiplier and every tax shift has an early value (first two years) and a late one +const START = { brake: 0 }; +const RANGE = { brake: [0, 1] }; +for (const g of GKEYS) for (const ph of ["E", "L"]) { START[g + ph] = 1; RANGE[g + ph] = g === "army" ? [0.3, 2.5] : [0.4, 2.6]; } +for (const t of TAXES) for (const ph of ["E", "L"]) { START[t + ph] = 0; RANGE[t + ph] = [-10, 12]; } + +export function policyFrom(p) { + return (state) => { + const ph = state.day < 730 ? "E" : "L"; + const alloc = {}; + for (const [g, ids] of Object.entries(GROUPS)) { + for (const id of ids) { + const s = state.sectors[id]; + alloc[id] = Math.min(s.need * bal.limits.allocMaxRatio, s.need * state.ref.ratio[id] * p[g + ph]); + } + } + const taxes = {}; + for (const id of TAXES) taxes[id] = Math.max(0, state.ref.taxes[id] + p[id + ph]); + // debt brake: above 90 % of GDP, trim every sector toward the baseline and add a point of VAT + if (p.brake > 0) { + const f = E.computeFiscal(state, bal); + if (f.debtRatio > 90) { + const k = 1 - 0.25 * p.brake; + for (const id of Object.keys(alloc)) alloc[id] *= k; + taxes.vat += 2 * p.brake; + } + } + return { alloc, taxes }; + }; +} + +function score(p, seeds, policy) { + let total = 0; + let survived = 0; + for (const seed of seeds) { + const r = playWith(policyFrom(p), policy, seed); + total += r.end === "term" ? r.score : r.score * 0.5; + if (r.end === "term") survived++; + } + return { mean: total / seeds.length, survival: survived / seeds.length }; +} + +const iterations = Number(process.argv[2] ?? 120); +const nSeeds = Number(process.argv[3] ?? 8); +const policy = process.argv[4] ?? "intuitive"; +const seeds = Array.from({ length: nSeeds }, (_, i) => 100 + i); + +let best = { ...START }; +let bestScore = score(best, seeds, policy); +console.log("start", JSON.stringify(best), bestScore); +let seedState = 12345; +const rnd = () => (seedState = (seedState * 1664525 + 1013904223) % 4294967296) / 4294967296; + +for (let it = 0; it < iterations; it++) { + const cand = { ...best }; + const keys = Object.keys(RANGE); + const nChange = 1 + Math.floor(rnd() * 3); + for (let c = 0; c < nChange; c++) { + const k = keys[Math.floor(rnd() * keys.length)]; + const [lo, hi] = RANGE[k]; + const step = (hi - lo) * 0.18 * (rnd() * 2 - 1); + cand[k] = Math.min(hi, Math.max(lo, cand[k] + step)); + } + const sc = score(cand, seeds, policy); + if (sc.mean > bestScore.mean) { + best = cand; + bestScore = sc; + console.log(`it ${it}`, JSON.stringify(Object.fromEntries(Object.entries(best).map(([k, v]) => [k, +v.toFixed(2)]))), JSON.stringify({ mean: +sc.mean.toFixed(1), survival: sc.survival })); + } +} + +const fresh = Array.from({ length: 24 }, (_, i) => 500 + i); +const check = score(best, fresh, policy); +console.log("fresh seeds:", JSON.stringify({ mean: +check.mean.toFixed(1), survival: check.survival })); diff --git a/tools/engine-check.mjs b/tools/engine-check.mjs index 53723e7..8eb7718 100644 --- a/tools/engine-check.mjs +++ b/tools/engine-check.mjs @@ -170,6 +170,7 @@ assert.equal(E.advanceDay(s, bal).blocked, "over"); const drawn = new Set(); for (let guard = 0; guard < 6000 && !gg.over; guard++) { if (gg.pending.review) E.confirmBudget(gg); + while (gg.pending.alert) E.dismissAlert(gg); if (gg.pending.weeklyCard) { const card = E.ensureCard(gg, bal, real); if (card) { drawn.add(card.id); E.answerCard(gg, bal, real, E.nextFloat(gg) < 0.5 ? "yes" : "no"); } @@ -179,7 +180,7 @@ assert.equal(E.advanceDay(s, bal).blocked, "over"); return { gg, drawn }; }; const a = play(11), b = play(11); - assert.ok(a.gg.over && a.gg.over.type === "term", "random play reaches the end of the term"); + assert.ok(a.gg.over, "random play ends one way or another (the term, or a fall: passive play is risky since M8)"); assert.deepEqual(a.gg, b.gg, "same seed and answers give the same game"); assert.ok(a.drawn.size >= 40, "most of the pool is seen in a run: " + a.drawn.size); assert.equal(a.gg.cardHistory.length, a.gg.cardHistory.filter((h) => real.some((c) => c.id === h.id)).length); @@ -274,7 +275,7 @@ assert.equal(E.advanceDay(s, bal).blocked, "over"); const calm = run(21); assert.equal(calm.over.type, "term"); const rv = E.buildReview(calm, bal, real, endgame); - assert.ok(rv.score > 40 && rv.score < 80, "a hands-off term scores mid-range: " + rv.score); + assert.ok(rv.score > 20 && rv.score < 80, "a hands-off term scores in range (low since M8): " + rv.score); assert.ok(["S", "A", "B", "C", "D", "F"].includes(rv.grade)); assert.ok(endgame.titles.some((x) => x.id === rv.titleId && !x.over), "a term title"); assert.ok(rv.topDecisions.length > 0 && rv.topDecisions.length <= 5); @@ -432,4 +433,63 @@ assert.equal(E.advanceDay(s, bal).blocked, "over"); assert.deepEqual(readSave(angry, KEYS.auto).state, clone(g)); } +// M8: world cycle, growing needs, card conditions on choices, coup from neglect, v1 saves +{ + // the world cycle moves, stays within bounds and is part of the saved state + let w = fresh(); open(w); + let lo = 0, hi = 0; + for (let i = 0; i < 1500; i++) { run(w, 1); lo = Math.min(lo, w.world.cycle); hi = Math.max(hi, w.world.cycle); } + assert.ok(hi - lo > 1, "the cycle moves: " + (hi - lo)); + assert.ok(lo >= -bal.world.max && hi <= bal.world.max); + + // needs grow, so a frozen budget buys less quality + const n0 = fresh().sectors.health.need; + const g1 = fresh(); run(g1, 365); + assert.ok(Math.abs(g1.sectors.health.need / n0 - (1 + bal.needGrowth.health)) < 1e-6, "health need grows by its yearly rate"); + + // conditions can read the player's choices: budget ratio and tax rate + const c = fresh(); open(c); + const cond = (conditions) => E.drawCard(c, bal, [{ id: "x", category: "crises", conditions, yes: {}, no: {} }]); + assert.equal(cond({ min: { "ratio:police": 1.5 } }), null, "police at its starting ratio is below 1.5"); + assert.equal(cond({ max: { "ratio:police": 1.5 } })?.id, "x"); + c.sectors.police.alloc = c.sectors.police.need * 2; + assert.equal(cond({ min: { "ratio:police": 1.5 } })?.id, "x"); + assert.equal(cond({ min: { "tax:income": 31 } }), null); + c.economy.taxes.income = 45; + assert.equal(cond({ min: { "tax:income": 31 } })?.id, "x"); + assert.equal(cond({ min: { "ratio:nope": 0 } }), null, "unknown sector is never eligible"); + + // severe army neglect alone is enough for a coup (stability fine) + const k = fresh(); open(k); + for (let i = 0; i < 400 && !k.over; i++) { k.indicators.armyLoyalty = bal.gameOver.coup.armyAlone - 1; k.indicators.stability = 90; while (k.pending.alert) E.dismissAlert(k); run(k, 1); } + assert.equal(k.over?.type, "coup"); + + // a new danger warning opens an emergency budget session, at most once per cooldown + const em = fresh(); open(em); + em.indicators.unrest = 95; em.indicators.opinion = 2; + E.advanceDay(em, bal); + assert.equal(em.alerts.length, 1); + assert.equal(em.pending.review, true, "the warning opens the budget"); + assert.equal(em.risk.emergency, true); + E.confirmBudget(em); + assert.equal(em.risk.emergency, false, "signing closes the emergency session"); + while (em.pending.alert) E.dismissAlert(em); + // leave the zone, re-enter it inside the cooldown: a second alert but no second session + em.indicators.unrest = 20; em.indicators.opinion = 60; + for (let i = 0; i < 3; i++) { if (em.pending.weeklyCard) E.clearPending(em, "weeklyCard"); E.advanceDay(em, bal); } + em.indicators.unrest = 95; em.indicators.opinion = 2; + if (em.pending.weeklyCard) E.clearPending(em, "weeklyCard"); + E.advanceDay(em, bal); + assert.equal(em.alerts.length, 1, "a second warning"); + assert.equal(em.pending.review, false, "no second session inside the cooldown"); + + // a version-1 save is upgraded with a neutral world and then resumes + const clone = (x) => JSON.parse(JSON.stringify(x)); + const content = { scenarios: { default: scn }, balance: bal, cards: [] }; + const v1 = clone(fresh()); delete v1.world; v1.version = 1; + const up = decodeSave(encodeSave(v1)); + assert.equal(up.ok, true); assert.equal(up.state.version, 2); assert.deepEqual(up.state.world, { cycle: 0 }); + assert.equal(E.restoreState(up.state, content).ok, true); +} + console.log("all engine checks passed"); diff --git a/web/css/ledger.css b/web/css/ledger.css index 8a46bd9..22ccad1 100644 --- a/web/css/ledger.css +++ b/web/css/ledger.css @@ -143,3 +143,16 @@ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); } .ledger input[type="range"]:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; } + +.ledger__emergency { + margin: 0 0 6px; + padding: 3px 6px; + font-size: 11px; + line-height: 1.3; + color: #8a1c14; + border: 1.5px solid #8a1c14; + border-radius: 2px; + transform: rotate(-0.6deg); + text-transform: uppercase; + letter-spacing: 0.02em; +} diff --git a/web/data/balance.json b/web/data/balance.json index 7650efc..fd4c0c5 100644 --- a/web/data/balance.json +++ b/web/data/balance.json @@ -1,6 +1,5 @@ { "version": 1, - "time": { "daysPerWeek": 7, "daysPerQuarter": 91, @@ -10,16 +9,33 @@ "speeds": [1, 2, 4], "historyEvery": 7 }, - "limits": { "allocMaxRatio": 3, "sliderMaxRatio": 2, "taxMaxFactorOfPeak": 2 }, - "noise": { "indicator": 0.35 }, - + "gain": 3, + "world": { "tau": 220, "noise": 0.22, "max": 4, "shockChancePerDay": 0.0012, "shock": 2.5, "boomShare": 0.3 }, + "fiscal": { "growthSens": 0.25 }, + "needGrowth": { + "education": 0.015, + "health": 0.035, + "social": 0.025, + "police": 0.02, + "army": 0.015, + "justice": 0.02, + "industry": 0.01, + "transport": 0.02, + "infrastructure": 0.03, + "housing": 0.025, + "research": 0.01, + "culture": 0.01, + "foreignAffairs": 0.01, + "environment": 0.02, + "administration": 0.015 + }, "cards": { "recentWindow": 3, "recentPenalty": 0.4, "boostBelow": 40, - "boostMax": 1.0, + "boostMax": 1, "defaultCooldown": 180, "boost": { "economy": { "indicator": "economy" }, @@ -37,13 +53,7 @@ "culture": { "sector": "culture" } } }, - - "sector": { - "qualityCurve": 0.9, - "industryDebtPenaltyFrom": 90, - "industryDebtPenaltyPerPoint": 0.25 - }, - + "sector": { "qualityCurve": 0.9, "industryDebtPenaltyFrom": 90, "industryDebtPenaltyPerPoint": 0.25 }, "sectorTau": { "education": 365, "health": 90, @@ -61,117 +71,152 @@ "environment": 365, "administration": 90 }, - - "debt": { - "freeBelow": 60, - "baseRate": 3.0, - "premiumFrom": 40, - "premiumCoef": 0.0003 - }, - + "debt": { "freeBelow": 60, "baseRate": 3, "premiumFrom": 40, "premiumCoef": 0.0008 }, "crackdown": { "unrestStart": 45 }, - "gameOver": { - "default": { "debtAbove": 200, "warnAbove": 160 }, + "default": { "debtAbove": 165, "warnAbove": 135 }, "impeachment": { "civilRightsBelow": 10, "opinionBelow": 25, "days": 60 }, - "coup": { "armyBelow": 35, "stabilityBelow": 35, "chancePerDay": 0.015 }, - "revolution": { "unrestAbove": 70, "opinionBelow": 20, "chancePerDay": 0.02 } + "coup": { "armyBelow": 35, "stabilityBelow": 50, "armyAlone": 18, "chancePerDay": 0.004 }, + "revolution": { "unrestAbove": 62, "opinionBelow": 28, "chancePerDay": 0.004 }, + "emergencyCooldown": 45 }, - "score": { "weights": { - "opinion": 0.20, "stability": 0.15, "economy": 0.15, "order": 0.10, - "civilRights": 0.10, "softPower": 0.10, "hardPower": 0.10, "calm": 0.10 + "opinion": 0.2, + "stability": 0.15, + "economy": 0.15, + "order": 0.1, + "civilRights": 0.1, + "softPower": 0.1, + "hardPower": 0.1, + "calm": 0.1 }, - "debt": { "ref": 60, "per": 0.12, "min": -10, "max": 6 }, + "debt": { "ref": 60, "per": 0.2, "min": -16, "max": 6 }, "growth": { "ref": 2, "per": 2.5, "min": -5, "max": 7.5 }, "unemployment": { "ref": 6.5, "per": 1, "min": -5, "max": 3 }, "overCap": 35, - "grades": [[75, "S"], [66, "A"], [58, "B"], [50, "C"], [40, "D"], [0, "F"]], - "topDecisions": 5 + "grades": [[73, "S"], [64, "A"], [56, "B"], [47, "C"], [38, "D"], [0, "F"]], + "topDecisions": 5, + "lastYearShare": 0.5 }, - "tax": { - "income": { "coef": 0.50, "peak": 60, "opinion": 0.50, "growth": 0.030 }, - "corporate": { "coef": 0.25, "peak": 50, "opinion": 0.15, "growth": 0.060 }, - "vat": { "coef": 0.55, "peak": 40, "opinion": 0.60, "growth": 0.025 } + "income": { "coef": 0.5, "peak": 60, "opinion": 0.5, "growth": 0.03 }, + "corporate": { "coef": 0.25, "peak": 50, "opinion": 0.15, "growth": 0.06 }, + "vat": { "coef": 0.55, "peak": 40, "opinion": 0.6, "growth": 0.025 } }, - "vars": { "growth": { - "tau": 60, "min": -15, "max": 12, "noise": 0.02, - "sectors": { "industry": 0.02, "infrastructure": 0.012, "research": 0.015, "education": 0.010, "transport": 0.006 }, + "tau": 60, + "min": -15, + "max": 12, + "noise": 0.02, + "sectors": { "industry": 0.02, "infrastructure": 0.012, "research": 0.015, "education": 0.01, "transport": 0.006 }, "econ": { "debt": -0.03, "taxGrowthDrag": -1 }, - "ind": { "unrest": -0.02 } + "world": { "cycle": 0.8 }, + "ind": { "unrest": -0.02 }, + "excess": { "research": [70, 0.012], "education": [70, 0.01], "infrastructure": [70, 0.012], "industry": [70, 0.012] }, + "short": { "infrastructure": [40, 0.01], "industry": [40, 0.012] } }, "unemployment": { - "tau": 120, "min": 1, "max": 40, "noise": 0.01, + "tau": 120, + "min": 1, + "max": 40, + "noise": 0.01, "sectors": { "industry": -0.03, "education": -0.015, "infrastructure": -0.01 }, "econ": { "growth": -0.6 } }, "inflation": { - "tau": 90, "min": -2, "max": 40, "noise": 0.015, - "econ": { "deficit": 0.35, "growth": 0.15, "debt": 0.02 } + "tau": 90, + "min": -2, + "max": 40, + "noise": 0.015, + "econ": { "deficit": 0.35, "growth": 0.15, "debt": 0.02 }, + "world": { "cycle": 0.3 } } }, - "indicators": { "order": { "tau": 30, - "sectors": { "police": 0.35, "justice": 0.20, "administration": 0.08 }, + "sectors": { "police": 0.35, "justice": 0.2, "administration": 0.08 }, "econ": { "unemployment": -0.6, "crackdown": 25 }, - "ind": { "unrest": -0.30 } + "ind": { "unrest": -0.3 }, + "drift": -0.8, + "excess": { "police": [75, 0.15], "justice": [70, 0.2] } }, "stability": { "tau": 45, - "sectors": { "social": 0.15, "health": 0.08, "housing": 0.08, "justice": 0.08, "administration": 0.10 }, + "sectors": { "social": 0.15, "health": 0.08, "housing": 0.08, "justice": 0.08, "administration": 0.1 }, "econ": { "debt": -0.15, "unemployment": -0.7, "inflation": -0.4 }, - "ind": { "unrest": -0.25, "opinion": 0.15, "order": 0.10, "economy": 0.08 } - }, - "civilRights": { - "tau": 40, - "sectors": { "justice": 0.30 }, - "alloc": { "police": -20, "army": -4 }, - "econ": { "crackdown": -35 } + "ind": { "unrest": -0.25, "opinion": 0.15, "order": 0.1, "economy": 0.08 }, + "drift": -0.8 }, + "civilRights": { "tau": 40, "sectors": { "justice": 0.3 }, "alloc": { "police": -20, "army": -4 }, "econ": { "crackdown": -35 } }, "opinion": { "tau": 30, - "sectors": { "health": 0.22, "education": 0.08, "social": 0.28, "housing": 0.18, "transport": 0.10, "infrastructure": 0.08, "culture": 0.05, "environment": 0.04 }, + "sectors": { + "health": 0.22, + "education": 0.08, + "social": 0.28, + "housing": 0.18, + "transport": 0.1, + "infrastructure": 0.08, + "culture": 0.05, + "environment": 0.04 + }, "econ": { "unemployment": -1.4, "inflation": -1.1, "growth": 1.8, "taxPressure": -1.2, "crackdown": -4 }, - "ind": { "civilRights": 0.08, "order": 0.08, "stability": 0.10 } + "ind": { "civilRights": 0.08, "order": 0.08, "stability": 0.1 }, + "drift": -1.4, + "excess": { "health": [70, 0.25], "social": [70, 0.2], "housing": [70, 0.15] }, + "short": { "health": [40, 0.25], "social": [40, 0.2] } }, "economy": { "tau": 30, - "sectors": { "industry": 0.30, "infrastructure": 0.15, "research": 0.12, "transport": 0.10, "education": 0.10, "administration": 0.05 }, + "sectors": { + "industry": 0.3, + "infrastructure": 0.15, + "research": 0.12, + "transport": 0.1, + "education": 0.1, + "administration": 0.05 + }, "econ": { "growth": 6, "unemployment": -1.2, "inflation": -0.8, "debt": -0.12 }, - "ind": { "stability": 0.10 } + "ind": { "stability": 0.1 }, + "excess": { "education": [70, 0.2], "research": [70, 0.25], "infrastructure": [70, 0.2], "industry": [70, 0.25] }, + "short": { "infrastructure": [40, 0.2], "industry": [40, 0.2] } }, "hardPower": { "tau": 60, - "sectors": { "army": 0.50, "research": 0.10, "industry": 0.08 }, + "sectors": { "army": 0.5, "research": 0.1, "industry": 0.08 }, "alloc": { "army": 8 }, "econ": { "debt": -0.05 }, - "ind": { "economy": 0.08 } + "ind": { "economy": 0.08 }, + "drift": -0.8, + "excess": { "army": [75, 0.3], "research": [70, 0.15] } }, "softPower": { "tau": 60, - "sectors": { "culture": 0.30, "foreignAffairs": 0.35, "education": 0.08, "research": 0.08, "environment": 0.05 }, + "sectors": { "culture": 0.3, "foreignAffairs": 0.35, "education": 0.08, "research": 0.08, "environment": 0.05 }, "alloc": { "police": -4 }, "econ": { "crackdown": -15 }, - "ind": { "civilRights": 0.15, "economy": 0.05 } + "ind": { "civilRights": 0.15, "economy": 0.05 }, + "drift": -0.55, + "excess": { "culture": [70, 0.3], "foreignAffairs": [70, 0.3] } }, "unrest": { "tau": 20, - "sectors": { "social": -0.15, "housing": -0.10 }, - "econ": { "unemployment": 2.5, "inflation": 1.0, "debt": 0.20, "crackdown": -10 }, - "ind": { "opinion": -0.50, "stability": -0.25, "order": -0.15, "civilRights": -0.12 } + "sectors": { "social": -0.15, "housing": -0.1 }, + "econ": { "unemployment": 2.5, "inflation": 1, "debt": 0.2, "crackdown": -10 }, + "ind": { "opinion": -0.5, "stability": -0.25, "order": -0.15, "civilRights": -0.12 }, + "drift": 1.1 }, "armyLoyalty": { "tau": 60, - "sectors": { "army": 0.40 }, + "sectors": { "army": 0.4 }, "alloc": { "army": 15 }, - "econ": { "debt": -0.10, "inflation": -0.3 }, - "ind": { "opinion": 0.05, "stability": 0.10 } + "econ": { "debt": -0.1, "inflation": -0.3 }, + "ind": { "opinion": 0.05, "stability": 0.1 }, + "drift": -1.1 } - } + }, + "driftScale": 1.1 } diff --git a/web/data/cards/crises.json b/web/data/cards/crises.json index dbad706..5d76585 100644 --- a/web/data/cards/crises.json +++ b/web/data/cards/crises.json @@ -1,7 +1,11 @@ [ { - "id": "cri_bond_panic_01", "category": "crises", "doc": "telegram", "sender": "rating_agency", - "once": false, "cooldownDays": 180, + "id": "cri_bond_panic_01", + "category": "crises", + "doc": "telegram", + "sender": "rating_agency", + "once": false, + "cooldownDays": 180, "conditions": { "min": { "debt": 100 }, "dayMin": 60 }, "title": { "en": "Bond markets in panic", "fr": "Panique sur le marché obligataire" }, "body": { @@ -11,7 +15,7 @@ "yes": { "label": { "en": "Emergency austerity", "fr": "Austérité d'urgence" }, "effects": [ - { "extraSpending": -1.0 }, + { "extraSpending": -1 }, { "stat": "opinion", "delta": -6, "days": 60 }, { "stat": "unrest", "delta": 4, "days": 60 } ], @@ -27,8 +31,12 @@ } }, { - "id": "cri_epidemic_01", "category": "crises", "doc": "telegram", "sender": "min_health", - "once": false, "cooldownDays": 365, + "id": "cri_epidemic_01", + "category": "crises", + "doc": "telegram", + "sender": "min_health", + "once": false, + "cooldownDays": 365, "conditions": { "dayMin": 100 }, "title": { "en": "Outbreak in the north", "fr": "Épidémie dans le nord" }, "body": { @@ -54,8 +62,12 @@ } }, { - "id": "cri_earthquake_01", "category": "crises", "doc": "telegram", "sender": "min_interior", - "once": false, "cooldownDays": 540, + "id": "cri_earthquake_01", + "category": "crises", + "doc": "telegram", + "sender": "min_interior", + "once": false, + "cooldownDays": 540, "conditions": { "dayMin": 150 }, "title": { "en": "Earthquake on the coast", "fr": "Séisme sur la côte" }, "body": { @@ -65,7 +77,7 @@ "yes": { "label": { "en": "Declare a national emergency", "fr": "Déclarer l'urgence nationale" }, "effects": [ - { "oneOff": 1.0 }, + { "oneOff": 1 }, { "stat": "opinion", "delta": 4, "days": 45 }, { "stat": "order", "delta": 2, "days": 30 }, { "sector": "infrastructure", "delta": -3, "days": 30 } @@ -81,8 +93,12 @@ } }, { - "id": "cri_general_strike_01", "category": "crises", "doc": "telegram", "sender": "union", - "once": false, "cooldownDays": 270, + "id": "cri_general_strike_01", + "category": "crises", + "doc": "telegram", + "sender": "union", + "once": false, + "cooldownDays": 270, "conditions": { "min": { "unrest": 50 } }, "title": { "en": "General strike called", "fr": "Grève générale décrétée" }, "body": { @@ -109,8 +125,12 @@ } }, { - "id": "cri_coup_whispers_01", "category": "crises", "doc": "telegram", "sender": "intelligence", - "once": false, "cooldownDays": 270, + "id": "cri_coup_whispers_01", + "category": "crises", + "doc": "telegram", + "sender": "intelligence", + "once": false, + "cooldownDays": 270, "conditions": { "max": { "armyLoyalty": 45 }, "dayMin": 60 }, "title": { "en": "Officers are plotting", "fr": "Des officiers complotent" }, "body": { @@ -128,9 +148,2963 @@ }, "no": { "label": { "en": "Raise the officers' pay", "fr": "Augmenter la solde des officiers" }, + "effects": [{ "extraSpending": 0.4 }, { "stat": "armyLoyalty", "delta": 8, "days": 90 }] + } + }, + { + "id": "cri_flood_01", + "category": "crises", + "doc": "telegram", + "sender": "min_interior", + "once": false, + "cooldownDays": 540, + "conditions": { "max": { "q:infrastructure": 60 }, "dayMin": 80 }, + "title": { "en": "River towns under water", "fr": "Villes riveraines sous les eaux" }, + "body": { + "en": "THE ALDANE BURST ITS BANKS OVERNIGHT. FOUR RIVER TOWNS UNDER TWO METRES OF WATER. TWENTY THOUSAND HOMELESS. AWAIT YOUR ORDERS. STOP.", + "fr": "L'ALDANE A ROMPU SES DIGUES CETTE NUIT. QUATRE VILLES RIVERAINES SOUS DEUX METRES D'EAU. VINGT MILLE SANS-ABRI. ATTENDONS VOS ORDRES. STOP." + }, + "yes": { + "label": { "en": "Release emergency aid", "fr": "Débloquer l'aide d'urgence" }, + "effects": [ + { "oneOff": 0.6 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "order", "delta": 1, "days": 30 }, + { "sector": "infrastructure", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Appeal for donations", "fr": "Lancer un appel aux dons" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "order", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "cri_blackout_01", + "category": "crises", + "doc": "telegram", + "sender": "min_industry", + "once": false, + "cooldownDays": 365, + "conditions": { "max": { "q:infrastructure": 52 }, "dayMin": 130 }, + "title": { "en": "Heat wave blackout", "fr": "Canicule et panne géante" }, + "body": { + "en": "HEAT WAVE OVERLOADS THE GRID. BLACKOUT ACROSS THE CAPITAL AND THREE PROVINCES. HOSPITALS ON GENERATORS. ENERGY COMPANY ASKS FOR EMERGENCY POWERS. STOP.", + "fr": "LA CANICULE SURCHARGE LE RESEAU. COUPURE GENERALE DANS LA CAPITALE ET TROIS PROVINCES. HOPITAUX SUR GROUPES ELECTROGENES. L'ENERGETICIEN DEMANDE DES POUVOIRS D'URGENCE. STOP." + }, + "yes": { + "label": { "en": "Import emergency power", "fr": "Importer du courant" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "softPower", "delta": -1, "days": 45 }, + { "sector": "infrastructure", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Ration power by region", "fr": "Rationner le courant par région" }, + "effects": [ + { "stat": "economy", "delta": -2, "days": 40 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "sector": "infrastructure", "delta": 1, "days": 90 } + ] + } + }, + { + "id": "cri_wildfire_01", + "category": "crises", + "doc": "telegram", + "sender": "min_interior", + "once": false, + "cooldownDays": 540, + "conditions": { "max": { "q:environment": 52 }, "dayMin": 240 }, + "title": { "en": "Fire above the capital", "fr": "Le feu aux portes de la capitale" }, + "body": { + "en": "WILDFIRE CROSSES THE KARST HILLS AND REACHES THE OUTSKIRTS OF THE CAPITAL. TWELVE VILLAGES EVACUATED. FIREFIGHTERS SHORT OF AIRCRAFT. STOP.", + "fr": "L'INCENDIE TRAVERSE LES COLLINES DU KARST ET ATTEINT LES FAUBOURGS DE LA CAPITALE. DOUZE VILLAGES EVACUES. POMPIERS A COURT D'AVIONS. STOP." + }, + "yes": { + "label": { "en": "Hire foreign water bombers", "fr": "Louer des bombardiers d'eau" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "environment", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "softPower", "delta": 1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Mobilise the army", "fr": "Mobiliser l'armée" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -2, "days": 60 }, + { "sector": "army", "delta": -2, "days": 60 }, + { "sector": "environment", "delta": -2, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "cri_typhoid_01", + "category": "crises", + "doc": "telegram", + "sender": "min_health", + "once": false, + "cooldownDays": 365, + "conditions": { "max": { "q:health": 52 }, "dayMin": 70 }, + "title": { "en": "Typhoid in the southern quarters", "fr": "Typhoïde dans les quartiers sud" }, + "body": { + "en": "TYPHOID OUTBREAK IN THE SOUTHERN QUARTERS OF THE CAPITAL. CLINICS OUT OF BEDS AND ANTIBIOTICS. WATER SUPPLY SUSPECTED. STOP.", + "fr": "EPIDEMIE DE TYPHOIDE DANS LES QUARTIERS SUD DE LA CAPITALE. CLINIQUES SANS LITS NI ANTIBIOTIQUES. RESEAU D'EAU SOUPCONNE. STOP." + }, + "yes": { + "label": { "en": "Release emergency health funds", "fr": "Débloquer des fonds sanitaires" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "health", "delta": 4, "days": 120 }, + { "sector": "infrastructure", "delta": 1, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Boil-water advice only", "fr": "Un simple avis d'ébullition" }, + "effects": [ + { "sector": "health", "delta": -4, "days": 120 }, + { "stat": "opinion", "delta": -4, "days": 45 }, + { "stat": "stability", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "cri_livestock_01", + "category": "crises", + "doc": "telegram", + "sender": "min_health", + "conditions": { "dayMin": 220 }, + "title": { "en": "Foot-and-mouth in the east", "fr": "Fièvre aphteuse dans l'est" }, + "body": { + "en": "FOOT-AND-MOUTH DISEASE CONFIRMED ON NINE EASTERN FARMS. NEIGHBOURS BAN OUR MEAT AND DAIRY. VETERINARIANS ASK FOR A CULL. STOP.", + "fr": "FIEVRE APHTEUSE CONFIRMEE DANS NEUF FERMES DE L'EST. LES VOISINS INTERDISENT NOTRE VIANDE ET NOS LAITAGES. LES VETERINAIRES DEMANDENT UN ABATTAGE. STOP." + }, + "yes": { + "label": { "en": "Order the cull", "fr": "Ordonner l'abattage" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "economy", "delta": -2, "days": 90 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "sector": "health", "delta": 1, "days": 90 } + ], + "followUp": { "id": "cri_farmers_protest_01", "inDays": 40 } + }, + "no": { + "label": { "en": "Vaccinate and monitor", "fr": "Vacciner et surveiller" }, + "effects": [ + { "stat": "economy", "delta": -3, "days": 120 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "cri_farmers_protest_01", + "category": "crises", + "doc": "letter", + "sender": "min_industry", + "followUpOnly": true, + "title": { "en": "Tractors at the ministry", "fr": "Des tracteurs devant le ministère" }, + "body": { + "en": "Farmers whose herds were culled are still waiting for compensation. A convoy of tractors is parked outside the ministry, and the grain silos next door have been blockaded.", + "fr": "Les éleveurs dont les troupeaux ont été abattus attendent toujours leur indemnisation. Un convoi de tracteurs est garé devant le ministère, et les silos à grain voisins sont bloqués." + }, + "yes": { + "label": { "en": "Pay full compensation", "fr": "Indemniser intégralement" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "unrest", "delta": -3, "days": 45 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Offer loans instead", "fr": "Proposer des prêts à la place" }, + "effects": [ + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "cri_bank_run_01", + "category": "crises", + "doc": "telegram", + "sender": "central_bank", + "conditions": { "max": { "economy": 42 }, "dayMin": 280 }, + "title": { "en": "A run on the second bank", "fr": "Panique à la deuxième banque" }, + "body": { + "en": "DEPOSITORS QUEUE OUTSIDE THE COUNTRY'S SECOND BANK. A FIFTH OF DEPOSITS WITHDRAWN IN THREE DAYS. THE BANK ASKS FOR A STATE GUARANTEE. STOP.", + "fr": "LES EPARGNANTS FONT LA QUEUE DEVANT LA DEUXIEME BANQUE DU PAYS. UN CINQUIEME DES DEPOTS RETIRE EN TROIS JOURS. LA BANQUE DEMANDE UNE GARANTIE DE L'ETAT. STOP." + }, + "yes": { + "label": { "en": "Guarantee the deposits", "fr": "Garantir les dépôts" }, + "effects": [ + { "oneOff": 0.8 }, + { "stat": "economy", "delta": 2, "days": 60 }, + { "stat": "stability", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ], + "followUp": { "id": "cri_bank_bonus_01", "inDays": 120 } + }, + "no": { + "label": { "en": "Let the bank fail", "fr": "Laisser la banque tomber" }, + "effects": [ + { "stat": "economy", "delta": -5, "days": 90 }, + { "stat": "unemployment", "delta": 0.3, "bias": true, "days": 270 }, + { "stat": "stability", "delta": -3, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "cri_bank_bonus_01", + "category": "crises", + "doc": "letter", + "sender": "press_office", + "followUpOnly": true, + "title": { "en": "Executives paid after the bailout", "fr": "Dirigeants primés après le sauvetage" }, + "body": { + "en": "The rescued bank has announced executive bonuses for the year, and \"reward for failure\" leads every front page. The bank threatens to cut credit lines if the bonuses are taxed.", + "fr": "La banque sauvée a annoncé des primes pour ses dirigeants, et « récompense de l'échec » fait la une de tous les journaux. La banque menace de réduire ses lignes de crédit si les primes sont taxées." + }, + "yes": { + "label": { "en": "Tax the bonuses", "fr": "Taxer les primes" }, + "effects": [ + { "oneOff": -0.2 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "softPower", "delta": -1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Let the bonuses stand", "fr": "Laisser passer les primes" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 45 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "cri_currency_01", + "category": "crises", + "doc": "telegram", + "sender": "central_bank", + "once": false, + "cooldownDays": 540, + "conditions": { "min": { "inflation": 5 }, "dayMin": 170 }, + "title": { "en": "The currency under attack", "fr": "La monnaie attaquée" }, + "body": { + "en": "SPECULATORS SELL THE VLD IN SIZE. RESERVES FALLING BY THE DAY. THE BANK ASKS FOR A DECISION ON INTEREST RATES. STOP.", + "fr": "DES SPECULATEURS VENDENT LE VLD A GRANDE ECHELLE. LES RESERVES FONDENT CHAQUE JOUR. LA BANQUE DEMANDE UNE DECISION SUR LES TAUX. STOP." + }, + "yes": { + "label": { "en": "Raise interest rates", "fr": "Relever les taux" }, + "effects": [ + { "stat": "economy", "delta": -3, "days": 90 }, + { "stat": "unemployment", "delta": 0.3, "bias": true, "days": 180 }, + { "stat": "inflation", "delta": -0.8, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Spend the reserves", "fr": "Dépenser les réserves" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "inflation", "delta": 0.6, "bias": true, "days": 180 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "cri_oil_spike_01", + "category": "crises", + "doc": "telegram", + "sender": "min_industry", + "once": false, + "cooldownDays": 540, + "conditions": { "min": { "inflation": 3 }, "dayMin": 400 }, + "title": { "en": "Oil at a record price", "fr": "Le pétrole à un prix record" }, + "body": { + "en": "OIL PRICE JUMPS FORTY PERCENT AFTER A PRODUCER CUTS OUTPUT. FUEL QUEUES IN THE CAPITAL. HAULIERS THREATEN TO BLOCK THE ROADS. STOP.", + "fr": "LE PRIX DU PETROLE BONDIT DE QUARANTE POUR CENT APRES UNE COUPE DE PRODUCTION. FILES D'ATTENTE AUX STATIONS DE LA CAPITALE. LES TRANSPORTEURS MENACENT DE BLOQUER LES ROUTES. STOP." + }, + "yes": { + "label": { "en": "Cap fuel prices", "fr": "Plafonner le prix du carburant" }, + "effects": [ + { "extraSpending": 0.3 }, + { "stat": "inflation", "delta": -0.3, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": -2, "days": 45 }, + { "stat": "opinion", "delta": 2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Let prices float", "fr": "Laisser les prix flotter" }, + "effects": [ + { "stat": "inflation", "delta": 0.8, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": 3, "days": 45 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "sector": "environment", "delta": 1, "days": 90 } + ] + } + }, + { + "id": "cri_riot_capital_01", + "category": "crises", + "doc": "telegram", + "sender": "min_interior", + "once": false, + "cooldownDays": 360, + "conditions": { "min": { "unrest": 50 }, "dayMin": 120 }, + "title": { "en": "Riots in the suburbs", "fr": "Émeutes en banlieue" }, + "body": { + "en": "NIGHT OF RIOTS IN THE NORTHERN SUBURBS. BARRICADES, BURNT BUSES, SHOPS LOOTED. POLICE REQUEST AUTHORITY TO USE FORCE. STOP.", + "fr": "NUIT D'EMEUTES DANS LES BANLIEUES NORD. BARRICADES, BUS INCENDIES, COMMERCES PILLES. LA POLICE DEMANDE L'AUTORISATION D'USER DE LA FORCE. STOP." + }, + "yes": { + "label": { "en": "Send in the riot police", "fr": "Envoyer les forces antiémeutes" }, + "effects": [ + { "stat": "order", "delta": 4, "days": 30 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "unrest", "delta": -2, "days": 30 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Open talks with the districts", "fr": "Ouvrir le dialogue" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "unrest", "delta": -3, "days": 60 }, + { "sector": "social", "delta": 2, "days": 120 }, + { "stat": "order", "delta": -2, "days": 30 } + ] + } + }, + { + "id": "cri_rail_strike_01", + "category": "crises", + "doc": "telegram", + "sender": "union", + "once": false, + "cooldownDays": 300, + "conditions": { "min": { "unrest": 40 }, "dayMin": 80 }, + "title": { "en": "Railways at a standstill", "fr": "Les chemins de fer à l'arrêt" }, + "body": { + "en": "RAILWAYMEN WALK OUT OVER PAY AND ROSTERS. NO TRAINS TO THE PORT OR THE NORTH. FREIGHT STRANDED. STOP.", + "fr": "LES CHEMINOTS DEBRAYENT POUR LES SALAIRES ET LES HORAIRES. AUCUN TRAIN VERS LE PORT NI LE NORD. FRET IMMOBILISE. STOP." + }, + "yes": { + "label": { "en": "Grant a pay rise", "fr": "Accorder une hausse" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "unrest", "delta": -4, "days": 45 }, + { "sector": "transport", "delta": 2, "days": 120 }, + { "stat": "inflation", "delta": 0.1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Requisition the trains", "fr": "Réquisitionner les trains" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 30 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "economy", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "cri_food_riots_01", + "category": "crises", + "doc": "telegram", + "sender": "min_labour", + "once": false, + "cooldownDays": 400, + "conditions": { "min": { "inflation": 5 }, "dayMin": 380 }, + "title": { "en": "Bread riots", "fr": "Émeutes du pain" }, + "body": { + "en": "BREAD AND OIL PRICES DOUBLE IN A YEAR. MARKET RIOTS IN SIX CITIES. BAKERIES CLOSED OR GUARDED. STOP.", + "fr": "LES PRIX DU PAIN ET DE L'HUILE ONT DOUBLE EN UN AN. EMEUTES DE MARCHE DANS SIX VILLES. BOULANGERIES FERMEES OU GARDEES. STOP." + }, + "yes": { + "label": { "en": "Subsidise staple foods", "fr": "Subventionner les vivres de base" }, "effects": [ { "extraSpending": 0.4 }, - { "stat": "armyLoyalty", "delta": 8, "days": 90 } + { "stat": "unrest", "delta": -4, "days": 45 }, + { "stat": "inflation", "delta": -0.3, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 3, "days": 45 } + ] + }, + "no": { + "label": { "en": "Send in the police", "fr": "Envoyer la police" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 30 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "opinion", "delta": -3, "days": 45 } + ] + } + }, + { + "id": "cri_dock_strike_01", + "category": "crises", + "doc": "telegram", + "sender": "union", + "conditions": { "min": { "unrest": 35 }, "dayMin": 540 }, + "title": { "en": "The port is blockaded", "fr": "Le port est bloqué" }, + "body": { + "en": "DOCKERS BLOCKADE THE PORT OF CALDER AGAINST AUTOMATION PLANS. SHIPS ANCHORED OFFSHORE. EXPORTERS COUNT THEIR DAILY LOSSES. STOP.", + "fr": "LES DOCKERS BLOQUENT LE PORT DE CALDER CONTRE LES PLANS D'AUTOMATISATION. NAVIRES AU MOUILLAGE. LES EXPORTATEURS COMPTENT LEURS PERTES. STOP." + }, + "yes": { + "label": { "en": "Shelve the automation", "fr": "Suspendre l'automatisation" }, + "effects": [ + { "stat": "unrest", "delta": -3, "days": 45 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 365 }, + { "sector": "transport", "delta": -1, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Order the port reopened", "fr": "Ordonner la réouverture" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 30 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "economy", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "cri_minister_scandal_01", + "category": "crises", + "doc": "telegram", + "sender": "press_office", + "conditions": { "max": { "stability": 55 }, "dayMin": 480 }, + "title": { "en": "A minister under fire", "fr": "Un ministre dans la tourmente" }, + "body": { + "en": "NEWSPAPER REVEALS THAT A MINISTER'S FAMILY FIRM WON THREE ROAD CONTRACTS. OPPOSITION DEMANDS A RESIGNATION. THE PRESS OFFICE AWAITS A LINE. STOP.", + "fr": "UN JOURNAL REVELE QUE L'ENTREPRISE FAMILIALE D'UN MINISTRE A DECROCHE TROIS MARCHES ROUTIERS. L'OPPOSITION EXIGE UNE DEMISSION. LE PORTE-PAROLE ATTEND UNE LIGNE. STOP." + }, + "yes": { + "label": { "en": "Demand the resignation", "fr": "Exiger la démission" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "stability", "delta": -2, "days": 40 }, + { "sector": "administration", "delta": -2, "days": 90 }, + { "sector": "justice", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Defend the minister", "fr": "Défendre le ministre" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 45 }, + { "stat": "stability", "delta": 1, "days": 30 }, + { "sector": "justice", "delta": -2, "days": 90 }, + { "stat": "softPower", "delta": -1, "days": 45 } + ] + } + }, + { + "id": "cri_police_brutality_01", + "category": "crises", + "doc": "telegram", + "sender": "press_office", + "conditions": { "max": { "q:police": 55 }, "dayMin": 130 }, + "title": { "en": "The video from the university", "fr": "La vidéo de l'université" }, + "body": { + "en": "VIDEO OF POLICE BEATING A STUDENT SPREADS ACROSS THE COUNTRY. DEMONSTRATIONS IN FIVE CITIES. THE POLICE UNION DEFENDS ITS MEMBERS. STOP.", + "fr": "UNE VIDEO MONTRANT DES POLICIERS FRAPPANT UN ETUDIANT CIRCULE DANS TOUT LE PAYS. MANIFESTATIONS DANS CINQ VILLES. LE SYNDICAT DE POLICE DEFEND SES MEMBRES. STOP." + }, + "yes": { + "label": { "en": "Open an independent inquiry", "fr": "Ouvrir une enquête indépendante" }, + "effects": [ + { "stat": "civilRights", "delta": 3 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "sector": "police", "delta": -2, "days": 120 }, + { "stat": "order", "delta": -1, "days": 45 } + ], + "followUp": { "id": "cri_police_inquiry_01", "inDays": 90 } + }, + "no": { + "label": { "en": "Back the police", "fr": "Soutenir la police" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 45 }, + { "stat": "unrest", "delta": 4, "days": 60 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "opinion", "delta": -3, "days": 45 } + ] + } + }, + { + "id": "cri_police_inquiry_01", + "category": "crises", + "doc": "report", + "sender": "min_justice", + "followUpOnly": true, + "title": { "en": "The inquiry reports", "fr": "Les conclusions de l'enquête" }, + "body": { + "en": "The inquiry finds excessive force and a pattern of unrecorded incidents in two precincts. Its recommendations include body cameras and eleven dismissals, and police unions threaten a work-to-rule.", + "fr": "L'enquête conclut à un usage excessif de la force et à une série d'incidents non consignés dans deux commissariats. Elle recommande des caméras-piétons et onze révocations, et les syndicats de police menacent de faire la grève du zèle." + }, + "yes": { + "label": { "en": "Apply every recommendation", "fr": "Appliquer toutes les mesures" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "justice", "delta": 3, "days": 150 }, + { "stat": "civilRights", "delta": 2 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "order", "delta": -1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Apply them in part", "fr": "Les appliquer en partie" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "order", "delta": 1, "days": 30 }, + { "sector": "police", "delta": 1, "days": 90 } + ] + } + }, + { + "id": "cri_border_shots_01", + "category": "crises", + "doc": "telegram", + "sender": "general", + "once": false, + "cooldownDays": 400, + "conditions": { "max": { "hardPower": 50 }, "dayMin": 100 }, + "title": { "en": "Shots at the northern border", "fr": "Des coups de feu à la frontière nord" }, + "body": { + "en": "BORDER PATROL FIRED ON FROM THE FAR BANK OF THE NORTHERN RIVER. TWO SOLDIERS WOUNDED. THE GENERAL STAFF ASKS PERMISSION TO RETURN FIRE. STOP.", + "fr": "LA PATROUILLE FRONTALIERE PRISE POUR CIBLE DEPUIS L'AUTRE RIVE DU FLEUVE NORD. DEUX SOLDATS BLESSES. L'ETAT-MAJOR DEMANDE L'AUTORISATION DE RIPOSTER. STOP." + }, + "yes": { + "label": { "en": "Return fire", "fr": "Riposter" }, + "effects": [ + { "stat": "hardPower", "delta": 3, "days": 60 }, + { "stat": "armyLoyalty", "delta": 2, "days": 45 }, + { "stat": "softPower", "delta": -3, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Protest through diplomats", "fr": "Protester par la diplomatie" }, + "effects": [ + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "armyLoyalty", "delta": -3, "days": 60 }, + { "stat": "hardPower", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "cri_refugees_01", + "category": "crises", + "doc": "telegram", + "sender": "min_interior", + "conditions": { "dayMin": 330 }, + "title": { "en": "Refugees at the southern border", "fr": "Des réfugiés à la frontière sud" }, + "body": { + "en": "CIVIL WAR ACROSS THE SOUTHERN BORDER. FORTY THOUSAND REFUGEES AT THE CROSSINGS AND MORE ARRIVING EACH DAY. LOCAL AUTHORITIES OVERWHELMED. STOP.", + "fr": "GUERRE CIVILE DE L'AUTRE COTE DE LA FRONTIERE SUD. QUARANTE MILLE REFUGIES AUX POINTS DE PASSAGE ET DAVANTAGE CHAQUE JOUR. AUTORITES LOCALES DEBORDEES. STOP." + }, + "yes": { + "label": { "en": "Open the border", "fr": "Ouvrir la frontière" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "stat": "unrest", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 45 } + ], + "followUp": { "id": "cri_refugee_camp_01", "inDays": 60 } + }, + "no": { + "label": { "en": "Close the border", "fr": "Fermer la frontière" }, + "effects": [ + { "stat": "order", "delta": 1, "days": 30 }, + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "cri_refugee_camp_01", + "category": "crises", + "doc": "letter", + "sender": "min_interior", + "followUpOnly": true, + "title": { "en": "The camp at the crossing", "fr": "Le camp du poste frontière" }, + "body": { + "en": "The camp at the southern crossing now holds sixty thousand people. The nearest town warns of disease and tension, while foreign donors offer money if the camp is run jointly.", + "fr": "Le camp du poste frontière sud abrite désormais soixante mille personnes. La ville voisine redoute les épidémies et les tensions, tandis que des bailleurs étrangers offrent des fonds si le camp est géré conjointement." + }, + "yes": { + "label": { "en": "Accept the joint camp", "fr": "Accepter le camp commun" }, + "effects": [ + { "oneOff": -0.3 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "unrest", "delta": 1, "days": 45 }, + { "stat": "stability", "delta": -1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Resettle across provinces", "fr": "Répartir entre les provinces" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "unrest", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "housing", "delta": -2, "days": 90 } + ] + } + }, + { + "id": "cri_fishing_dispute_01", + "category": "crises", + "doc": "telegram", + "sender": "min_foreign", + "conditions": { "dayMin": 420 }, + "title": { "en": "Foreign trawlers in our waters", "fr": "Chalutiers étrangers dans nos eaux" }, + "body": { + "en": "FOREIGN TRAWLERS FISH INSIDE OUR WATERS UNDER NAVAL ESCORT. OUR COASTGUARD HAS BEEN WARNED OFF. FISHERMEN DEMAND ACTION. STOP.", + "fr": "DES CHALUTIERS ETRANGERS PECHENT DANS NOS EAUX SOUS ESCORTE NAVALE. NOS GARDE-COTES ONT ETE SOMMES DE S'ECARTER. LES PECHEURS EXIGENT UNE REACTION. STOP." + }, + "yes": { + "label": { "en": "Send the navy", "fr": "Envoyer la marine" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "armyLoyalty", "delta": 2, "days": 45 }, + { "stat": "hardPower", "delta": 2, "days": 60 }, + { "stat": "softPower", "delta": -3, "days": 60 } + ] + }, + "no": { + "label": { "en": "Seek a fishing treaty", "fr": "Négocier un traité de pêche" }, + "effects": [ + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "sector": "environment", "delta": 1, "days": 120 } + ] + } + }, + { + "id": "cri_cyber_tax_01", + "category": "crises", + "doc": "telegram", + "sender": "intelligence", + "once": false, + "cooldownDays": 540, + "conditions": { "max": { "q:administration": 55 }, "dayMin": 450 }, + "title": { "en": "Ransomware at the tax office", "fr": "Rançongiciel au fisc" }, + "body": { + "en": "RANSOMWARE FREEZES THE TAX AND PENSION SYSTEMS. SALARIES AND PAYMENTS DELAYED. ATTACKERS DEMAND PAYMENT IN CRYPTOCURRENCY. STOP.", + "fr": "UN RANCONGICIEL PARALYSE LES SYSTEMES FISCAL ET DES RETRAITES. SALAIRES ET PAIEMENTS EN RETARD. LES PIRATES EXIGENT UN PAIEMENT EN CRYPTOMONNAIE. STOP." + }, + "yes": { + "label": { "en": "Pay the ransom", "fr": "Payer la rançon" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "stability", "delta": 1, "days": 30 }, + { "sector": "administration", "delta": -2, "days": 120 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Rebuild from backups", "fr": "Restaurer les sauvegardes" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "economy", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "sector": "administration", "delta": 3, "days": 200 } + ] + } + }, + { + "id": "cri_cyber_grid_01", + "category": "crises", + "doc": "telegram", + "sender": "intelligence", + "conditions": { "max": { "q:infrastructure": 55 }, "dayMin": 830 }, + "title": { "en": "Hackers in the power grid", "fr": "Des pirates dans le réseau électrique" }, + "body": { + "en": "UNKNOWN HACKERS SWITCH OFF THE SUBSTATIONS OF THE NORTH. SIX HOURS IN THE DARK. A FOREIGN SERVICE IS SUSPECTED. STOP.", + "fr": "DES PIRATES INCONNUS COUPENT LES POSTES ELECTRIQUES DU NORD. SIX HEURES DANS LE NOIR. UN SERVICE ETRANGER EST SOUPCONNE. STOP." + }, + "yes": { + "label": { "en": "Name the foreign state", "fr": "Désigner l'État étranger" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "hardPower", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "order", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the attribution quiet", "fr": "Taire l'attribution" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "infrastructure", "delta": 3, "days": 180 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "cri_barracks_01", + "category": "crises", + "doc": "telegram", + "sender": "general", + "once": false, + "cooldownDays": 400, + "conditions": { "max": { "armyLoyalty": 55 }, "dayMin": 260 }, + "title": { "en": "A brigade refuses orders", "fr": "Une brigade refuse d'obéir" }, + "body": { + "en": "THE SECOND BRIGADE REFUSES ORDERS AFTER THREE MONTHS OF LATE PAY. BARRACKS GATES CLOSED. OFFICERS ASK FOR INSTRUCTIONS. STOP.", + "fr": "LA DEUXIEME BRIGADE REFUSE D'OBEIR APRES TROIS MOIS DE SOLDE EN RETARD. PORTES DES CASERNES FERMEES. LES OFFICIERS DEMANDENT DES INSTRUCTIONS. STOP." + }, + "yes": { + "label": { "en": "Pay the arrears", "fr": "Verser les arriérés" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "armyLoyalty", "delta": 6, "days": 90 }, + { "sector": "army", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Court-martial the leaders", "fr": "Traduire les meneurs en justice" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -4, "days": 90 }, + { "stat": "order", "delta": 2, "days": 30 }, + { "stat": "hardPower", "delta": -2, "days": 60 }, + { "stat": "civilRights", "delta": -1 } + ] + } + }, + { + "id": "cri_crime_wave_01", + "category": "crises", + "doc": "telegram", + "sender": "min_interior", + "once": false, + "cooldownDays": 400, + "conditions": { "max": { "q:police": 52 }, "dayMin": 60 }, + "title": { "en": "A crime wave in the capital", "fr": "Une vague de délinquance" }, + "body": { + "en": "ROBBERIES UP SIXTY PERCENT IN THE CAPITAL IN THREE MONTHS. SHOPKEEPERS HIRE PRIVATE GUARDS. THE MAYOR DEMANDS MORE PATROLS. STOP.", + "fr": "LES CAMBRIOLAGES ONT BONDI DE SOIXANTE POUR CENT EN TROIS MOIS DANS LA CAPITALE. LES COMMERCANTS ENGAGENT DES GARDES PRIVES. LE MAIRE EXIGE PLUS DE PATROUILLES. STOP." + }, + "yes": { + "label": { "en": "Fund extra patrols", "fr": "Financer des patrouilles" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "police", "delta": 3, "days": 120 }, + { "stat": "order", "delta": 3, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Rely on private guards", "fr": "S'en remettre aux gardes privés" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "order", "delta": -2, "days": 45 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "cri_coup_attempt_01", + "category": "crises", + "doc": "telegram", + "sender": "general", + "conditions": { "max": { "armyLoyalty": 38 }, "dayMin": 750 }, + "title": { "en": "Armour on the capital road", "fr": "Des blindés sur la route de la capitale" }, + "body": { + "en": "ARMOURED COLUMN MOVES ON THE CAPITAL. STATE RADIO SEIZED. THE GENERAL STAFF ASKS WHICH UNITS CAN BE TRUSTED. STOP.", + "fr": "UNE COLONNE BLINDEE MARCHE SUR LA CAPITALE. LA RADIO D'ETAT EST OCCUPEE. L'ETAT-MAJOR DEMANDE SUR QUELLES UNITES COMPTER. STOP." + }, + "yes": { + "label": { "en": "Order loyal units to fight", "fr": "Ordonner aux loyalistes de tirer" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 30 }, + { "stat": "stability", "delta": -3, "days": 45 }, + { "stat": "hardPower", "delta": -3, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ], + "followUp": { "id": "cri_coup_trials_01", "inDays": 30 } + }, + "no": { + "label": { "en": "Negotiate with the colonels", "fr": "Négocier avec les colonels" }, + "effects": [ + { "stat": "armyLoyalty", "delta": 4, "days": 60 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "stability", "delta": -4, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ], + "followUp": { "id": "cri_colonels_price_01", "inDays": 30 } + } + }, + { + "id": "cri_coup_trials_01", + "category": "crises", + "doc": "report", + "sender": "min_justice", + "followUpOnly": true, + "title": { "en": "The coup officers in the dock", "fr": "Les officiers putschistes devant les juges" }, + "body": { + "en": "Forty officers face a tribunal. The army asks for discretion, the press for open hearings, and the Ministry of Justice for a decision on who sits in judgment.", + "fr": "Quarante officiers vont comparaître. L'armée demande de la discrétion, la presse des audiences publiques, et le ministère de la Justice une décision sur la juridiction compétente." + }, + "yes": { + "label": { "en": "Open trials", "fr": "Procès publics" }, + "effects": [ + { "sector": "justice", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "armyLoyalty", "delta": -4, "days": 60 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Closed tribunal", "fr": "Tribunal à huis clos" }, + "effects": [ + { "stat": "armyLoyalty", "delta": 2, "days": 60 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "softPower", "delta": -2, "days": 60 } + ] + } + }, + { + "id": "cri_colonels_price_01", + "category": "crises", + "doc": "letter", + "sender": "general", + "followUpOnly": true, + "title": { "en": "The colonels name their price", "fr": "Les colonels fixent leur prix" }, + "body": { + "en": "The colonels' price for standing down is a seat on the National Security Council and a larger defence budget. Civilians are split between relief and unease.", + "fr": "Le prix du retrait des colonels est un siège au Conseil de sécurité nationale et un budget de défense plus large. Les civils hésitent entre soulagement et malaise." + }, + "yes": { + "label": { "en": "Grant the council seats", "fr": "Accorder les sièges au Conseil" }, + "effects": [ + { "extraSpending": 0.3 }, + { "stat": "armyLoyalty", "delta": 4, "days": 90 }, + { "stat": "hardPower", "delta": 2, "days": 90 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "stability", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Retire the colonels quietly", "fr": "Retraiter les colonels" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "armyLoyalty", "delta": -4, "days": 60 }, + { "stat": "stability", "delta": 2, "days": 45 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": 1 } + ] + } + }, + { + "id": "cri_police_strike_01", + "category": "crises", + "doc": "telegram", + "sender": "min_interior", + "once": false, + "cooldownDays": 540, + "conditions": { "max": { "q:police": 48 }, "dayMin": 500 }, + "title": { "en": "The police walk out", "fr": "La police débraye" }, + "body": { + "en": "POLICE UNIONS CALL A WORK STOPPAGE OVER PAY AND EQUIPMENT. PATROLS REDUCED TO A QUARTER. LOOTING REPORTED IN TWO TOWNS. STOP.", + "fr": "LES SYNDICATS DE POLICE APPELLENT AU DEBRAYAGE POUR LES SALAIRES ET L'EQUIPEMENT. PATROUILLES REDUITES AU QUART. PILLAGES SIGNALES DANS DEUX VILLES. STOP." + }, + "yes": { + "label": { "en": "Meet the demands", "fr": "Satisfaire les revendications" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "police", "delta": 4, "days": 150 }, + { "stat": "order", "delta": 2, "days": 45 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Call in the army", "fr": "Appeler l'armée en renfort" }, + "effects": [ + { "stat": "order", "delta": 1, "days": 30 }, + { "stat": "armyLoyalty", "delta": -3, "days": 60 }, + { "sector": "police", "delta": -3, "days": 150 }, + { "stat": "civilRights", "delta": -2 } + ] + } + }, + { + "id": "cri_secession_01", + "category": "crises", + "doc": "telegram", + "sender": "min_interior", + "conditions": { "max": { "stability": 42 }, "dayMin": 800 }, + "title": { "en": "The north speaks of leaving", "fr": "Le nord parle de partir" }, + "body": { + "en": "PROVINCIAL ASSEMBLY OF THE NORTH VOTES FOR A REFERENDUM ON SECESSION. LOCAL POLICE SWEAR LOYALTY TO THE ASSEMBLY. STOP.", + "fr": "L'ASSEMBLEE PROVINCIALE DU NORD VOTE LA TENUE D'UN REFERENDUM SUR LA SECESSION. LA POLICE LOCALE JURE FIDELITE A L'ASSEMBLEE. STOP." + }, + "yes": { + "label": { "en": "Offer wide autonomy", "fr": "Offrir une large autonomie" }, + "effects": [ + { "revenue": "other", "delta": -0.2 }, + { "stat": "stability", "delta": 4, "days": 90 }, + { "stat": "hardPower", "delta": -2, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Declare the vote illegal", "fr": "Déclarer le vote illégal" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 30 }, + { "stat": "armyLoyalty", "delta": 2, "days": 45 }, + { "stat": "unrest", "delta": 4, "days": 60 }, + { "stat": "stability", "delta": -4, "days": 60 } + ] + } + }, + { + "id": "cri_bridge_01", + "category": "crises", + "doc": "telegram", + "sender": "min_transport", + "once": false, + "cooldownDays": 540, + "conditions": { "max": { "q:infrastructure": 48 }, "dayMin": 200 }, + "title": { "en": "A bridge collapses", "fr": "Un pont s'effondre" }, + "body": { + "en": "THE KRAIL BRIDGE COLLAPSES AT RUSH HOUR. DOZENS MISSING. INSPECTORS HAD FLAGGED THE STRUCTURE TWICE. STOP.", + "fr": "LE PONT DE KRAIL S'EFFONDRE A L'HEURE DE POINTE. DES DIZAINES DE DISPARUS. LES INSPECTEURS AVAIENT SIGNALE L'OUVRAGE A DEUX REPRISES. STOP." + }, + "yes": { + "label": { "en": "Inspect every bridge", "fr": "Inspecter tous les ponts" }, + "effects": [ + { "oneOff": 0.6 }, + { "sector": "infrastructure", "delta": 4, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Blame the contractor", "fr": "Accuser l'entrepreneur" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 45 }, + { "sector": "infrastructure", "delta": -3, "days": 120 }, + { "stat": "stability", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 45 } + ] + } + }, + { + "id": "cri_train_crash_01", + "category": "crises", + "doc": "telegram", + "sender": "min_transport", + "once": false, + "cooldownDays": 500, + "conditions": { "max": { "q:transport": 52 }, "dayMin": 560 }, + "title": { "en": "The northern express derails", "fr": "L'express du nord déraille" }, + "body": { + "en": "THE NORTHERN EXPRESS DERAILS NEAR HALM. FORTY DEAD. SIGNALLING FAULT SUSPECTED ON LINES UNCHANGED SINCE THE LAST CENTURY. STOP.", + "fr": "L'EXPRESS DU NORD DERAILLE PRES DE HALM. QUARANTE MORTS. DEFAUT DE SIGNALISATION SOUPCONNE SUR DES LIGNES INCHANGEES DEPUIS LE SIECLE DERNIER. STOP." + }, + "yes": { + "label": { "en": "Fund new signalling", "fr": "Moderniser la signalisation" }, + "effects": [ + { "oneOff": 0.5 }, + { "sector": "transport", "delta": 4, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Cut train speeds", "fr": "Limiter la vitesse des trains" }, + "effects": [ + { "sector": "transport", "delta": -2, "days": 120 }, + { "stat": "economy", "delta": -1, "days": 90 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "cri_water_main_01", + "category": "crises", + "doc": "telegram", + "sender": "mayor", + "once": false, + "cooldownDays": 540, + "conditions": { "max": { "q:infrastructure": 50 }, "dayMin": 640 }, + "title": { "en": "No water in the capital", "fr": "Plus d'eau dans la capitale" }, + "body": { + "en": "TWO MAIN PIPES BURST UNDER THE CAPITAL. EIGHT HUNDRED THOUSAND WITHOUT WATER. ARMY TANKER TRUCKS ARE ON THE WAY. STOP.", + "fr": "DEUX CONDUITES PRINCIPALES ECLATENT SOUS LA CAPITALE. HUIT CENT MILLE PERSONNES SANS EAU. LES CAMIONS-CITERNES DE L'ARMEE SONT EN ROUTE. STOP." + }, + "yes": { + "label": { "en": "Fund pipe replacement", "fr": "Financer le remplacement" }, + "effects": [ + { "oneOff": 0.5 }, + { "sector": "infrastructure", "delta": 4, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Patch and ration", "fr": "Rafistoler et rationner" }, + "effects": [ + { "sector": "infrastructure", "delta": -3, "days": 120 }, + { "stat": "opinion", "delta": -4, "days": 45 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "sector": "health", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "cri_gas_shortage_01", + "category": "crises", + "doc": "telegram", + "sender": "min_industry", + "once": false, + "cooldownDays": 600, + "conditions": { "min": { "inflation": 4 }, "dayMin": 780 }, + "title": { "en": "A winter without gas", "fr": "Un hiver sans gaz" }, + "body": { + "en": "THE SUPPLIER CUTS GAS DELIVERIES BY HALF FOR THE WINTER. FACTORIES AND HOMES COMPETE FOR WHAT REMAINS. STOP.", + "fr": "LE FOURNISSEUR REDUIT DE MOITIE LES LIVRAISONS DE GAZ POUR L'HIVER. USINES ET FOYERS SE DISPUTENT CE QUI RESTE. STOP." + }, + "yes": { + "label": { "en": "Protect homes first", "fr": "Priorité aux foyers" }, + "effects": [ + { "stat": "economy", "delta": -3, "days": 90 }, + { "sector": "industry", "delta": -3, "days": 90 }, + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 3, "days": 45 } + ] + }, + "no": { + "label": { "en": "Protect the factories", "fr": "Priorité aux usines" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 45 }, + { "sector": "health", "delta": -2, "days": 90 }, + { "stat": "unrest", "delta": 3, "days": 45 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "cri_prison_riot_01", + "category": "crises", + "doc": "telegram", + "sender": "min_justice", + "once": false, + "cooldownDays": 540, + "conditions": { "max": { "q:justice": 50 }, "dayMin": 600 }, + "title": { "en": "Revolt in the central prison", "fr": "Révolte à la prison centrale" }, + "body": { + "en": "INMATES TAKE CONTROL OF TWO WINGS OF THE CENTRAL PRISON. GUARDS HELD. DEMANDS: FOOD, SPACE, TRIALS. STOP.", + "fr": "DES DETENUS PRENNENT LE CONTROLE DE DEUX AILES DE LA PRISON CENTRALE. GARDIENS RETENUS. REVENDICATIONS : NOURRITURE, PLACE, PROCES. STOP." + }, + "yes": { + "label": { "en": "Negotiate and reform", "fr": "Négocier et réformer" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "justice", "delta": 3, "days": 150 }, + { "stat": "order", "delta": -1, "days": 30 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Storm the wings", "fr": "Donner l'assaut" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 30 }, + { "stat": "civilRights", "delta": -3 }, + { "sector": "justice", "delta": -2, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "cri_gas_find_01", + "category": "crises", + "doc": "telegram", + "sender": "min_industry", + "conditions": { "dayMin": 30 }, + "title": { "en": "Gas off the eastern coast", "fr": "Du gaz au large de la côte est" }, + "body": { + "en": "SURVEY SHIP CONFIRMS A GAS FIELD OFF THE EASTERN COAST. ESTIMATED VALUE EQUAL TO HALF A YEAR OF TAX REVENUE. FOREIGN FIRMS ALREADY CALLING. STOP.", + "fr": "LE NAVIRE DE PROSPECTION CONFIRME UN GISEMENT DE GAZ AU LARGE DE LA COTE EST. VALEUR ESTIMEE A SIX MOIS DE RECETTES FISCALES. DES FIRMES ETRANGERES APPELLENT DEJA. STOP." + }, + "yes": { + "label": { "en": "Develop it as a state venture", "fr": "L'exploiter en régie publique" }, + "effects": [ + { "oneOff": 0.6 }, + { "revenue": "other", "delta": 0.4 }, + { "sector": "industry", "delta": 3, "days": 240 }, + { "sector": "environment", "delta": -2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Sell the licences abroad", "fr": "Vendre les licences" }, + "effects": [ + { "oneOff": -1 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 45 } + ] + } + }, + { + "id": "cri_tourism_boom_01", + "category": "crises", + "doc": "letter", + "sender": "min_culture", + "once": false, + "cooldownDays": 540, + "conditions": { "min": { "softPower": 50 }, "dayMin": 420 }, + "title": { "en": "A film puts the Karst on the map", "fr": "Un film fait connaître le Karst" }, + "body": { + "en": "A foreign film shot in the Karst hills has made them fashionable overnight. Hotel bookings triple, the villages are overrun, and nobody has budgeted for the roads and the rubbish.", + "fr": "Un film étranger tourné dans les collines du Karst les a rendues à la mode du jour au lendemain. Les réservations d'hôtel triplent, les villages sont envahis, et personne n'a budgété les routes ni les poubelles." + }, + "yes": { + "label": { "en": "Invest in the tourist trail", "fr": "Investir dans les sentiers" }, + "effects": [ + { "oneOff": 0.3 }, + { "revenue": "other", "delta": 0.1 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "sector": "culture", "delta": 2, "days": 120 }, + { "sector": "environment", "delta": -2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Cap the visitors", "fr": "Plafonner les visiteurs" }, + "effects": [ + { "sector": "environment", "delta": 2, "days": 120 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "culture", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "cri_foreign_loan_01", + "category": "crises", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "min": { "debt": 70 }, "dayMin": 380 }, + "title": { "en": "A friendly loan", "fr": "Un prêt amical" }, + "body": { + "en": "A distant great power offers a low-rate loan covering a year of deficits. In return it asks for first call on Valdorian ore and a courteous word at the next summit.", + "fr": "Une grande puissance lointaine propose un prêt à faible taux couvrant une année de déficits. En échange, elle demande la priorité sur le minerai valdorien et un mot aimable au prochain sommet." + }, + "yes": { + "label": { "en": "Accept the loan", "fr": "Accepter le prêt" }, + "effects": [ + { "oneOff": -1.2 }, + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "hardPower", "delta": -1, "days": 90 }, + { "stat": "economy", "delta": 1, "days": 60 } + ], + "setFlags": ["cri_loan_taken"], + "followUp": { "id": "cri_loan_strings_01", "inDays": 300 } + }, + "no": { + "label": { "en": "Decline politely", "fr": "Décliner poliment" }, + "effects": [ + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "cri_loan_strings_01", + "category": "crises", + "doc": "letter", + "sender": "min_foreign", + "followUpOnly": true, + "conditions": { "flags": ["cri_loan_taken"] }, + "title": { "en": "The loan comes with strings", "fr": "Le prêt a des conditions" }, + "body": { + "en": "The lender now asks to inspect Port Calder and reminds the Ministry of Finance that repayments start next spring. Nationalists in the assembly call the loan a leash.", + "fr": "Le prêteur demande désormais à inspecter le port de Calder et rappelle au ministère des Finances que les remboursements commencent au printemps. Les nationalistes de l'assemblée parlent de laisse." + }, + "yes": { + "label": { "en": "Lease the port", "fr": "Louer le port" }, + "effects": [ + { "oneOff": -0.5 }, + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "hardPower", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Repay early", "fr": "Rembourser par anticipation" }, + "effects": [ + { "oneOff": 0.8 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "stability", "delta": 1, "days": 45 } + ] + } + }, + { + "id": "cri_sports_victory_01", + "category": "crises", + "doc": "telegram", + "sender": "press_office", + "once": false, + "cooldownDays": 720, + "conditions": { "dayMin": 900 }, + "title": { "en": "The national team wins the cup", "fr": "L'équipe nationale gagne la coupe" }, + "body": { + "en": "VALDORIA WINS THE CONTINENTAL FOOTBALL CUP. CROWDS FILL EVERY SQUARE. THE FEDERATION ASKS FOR A PUBLIC HOLIDAY AND A NEW STADIUM. STOP.", + "fr": "LA VALDORIE REMPORTE LA COUPE CONTINENTALE DE FOOTBALL. LA FOULE ENVAHIT TOUTES LES PLACES. LA FEDERATION DEMANDE UN JOUR FERIE ET UN NOUVEAU STADE. STOP." + }, + "yes": { + "label": { "en": "Holiday and a new stadium", "fr": "Jour férié et nouveau stade" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "opinion", "delta": 5, "days": 45 }, + { "stat": "stability", "delta": 2, "days": 45 }, + { "sector": "culture", "delta": 2, "days": 120 }, + { "stat": "economy", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Send a congratulatory note", "fr": "Envoyer un mot de félicitations" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": 1, "days": 30 }, + { "sector": "culture", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "cri_export_boom_01", + "category": "crises", + "doc": "letter", + "sender": "min_industry", + "conditions": { "min": { "economy": 50 }, "dayMin": 780 }, + "title": { "en": "A foreign harvest fails", "fr": "Mauvaise récolte à l'étranger" }, + "body": { + "en": "A harvest failure abroad has sent grain prices soaring, and Valdorian farmers see a fortune in exports. Bakers warn that free export would empty the silos and lift bread prices at home.", + "fr": "Une mauvaise récolte à l'étranger fait flamber le prix des céréales, et les agriculteurs valdoriens entrevoient une fortune à l'export. Les boulangers préviennent qu'exporter sans limite viderait les silos et ferait monter le prix du pain." + }, + "yes": { + "label": { "en": "Allow free exports", "fr": "Autoriser les exportations" }, + "effects": [ + { "oneOff": -0.5 }, + { "stat": "economy", "delta": 2, "days": 90 }, + { "stat": "inflation", "delta": 0.5, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Keep a domestic reserve", "fr": "Garder une réserve nationale" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "stat": "inflation", "delta": -0.2, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "cri_vaccine_01", + "category": "crises", + "doc": "report", + "sender": "min_health", + "conditions": { "min": { "q:research": 48 }, "dayMin": 850 }, + "title": { "en": "A cure from the university lab", "fr": "Un traitement né au laboratoire" }, + "body": { + "en": "A university laboratory has developed an affordable treatment for a tropical fever. A foreign pharmaceutical giant offers a large sum for the patent, while health groups want it freely available.", + "fr": "Un laboratoire universitaire a mis au point un traitement abordable contre une fièvre tropicale. Un géant pharmaceutique étranger offre une forte somme pour le brevet, tandis que les associations de santé le veulent en accès libre." + }, + "yes": { + "label": { "en": "Sell the patent", "fr": "Vendre le brevet" }, + "effects": [ + { "oneOff": -0.6 }, + { "sector": "research", "delta": -2, "days": 120 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Publish it openly", "fr": "Le publier librement" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "softPower", "delta": 4, "days": 90 }, + { "sector": "research", "delta": 3, "days": 150 }, + { "sector": "health", "delta": 2, "days": 150 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + } + }, + { + "id": "cri_hoard_01", + "category": "crises", + "doc": "letter", + "sender": "min_culture", + "conditions": { "dayMin": 900 }, + "title": { "en": "Gold under the vineyard", "fr": "De l'or sous la vigne" }, + "body": { + "en": "Archaeologists have unearthed a hoard of Bronze Age gold in a vineyard near Karst. The museum wants it displayed at home, while an auction house offers a sum equal to the culture budget for a decade.", + "fr": "Des archéologues ont exhumé un trésor d'or de l'âge du bronze dans une vigne près de Karst. Le musée veut l'exposer dans le pays, tandis qu'une maison de ventes offre l'équivalent de dix ans de budget de la culture." + }, + "yes": { + "label": { "en": "Keep it in the national museum", "fr": "Le garder au musée national" }, + "effects": [ + { "oneOff": 0.1 }, + { "sector": "culture", "delta": 3, "days": 150 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Sell it at auction", "fr": "Le vendre aux enchères" }, + "effects": [ + { "oneOff": -0.5 }, + { "sector": "culture", "delta": -3, "days": 150 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "softPower", "delta": -1, "days": 45 } + ] + } + }, + { + "id": "cri_factory_offer_01", + "category": "crises", + "doc": "telegram", + "sender": "min_industry", + "conditions": { "min": { "unemployment": 7 }, "dayMin": 440 }, + "title": { "en": "A carmaker wants the east", "fr": "Un constructeur veut l'est du pays" }, + "body": { + "en": "A FOREIGN CARMAKER OFFERS A PLANT AND FOUR THOUSAND JOBS IN THE EAST. IT DEMANDS TEN YEARS OF TAX BREAKS AND A NEW ROAD. ANSWER REQUESTED THIS WEEK. STOP.", + "fr": "UN CONSTRUCTEUR AUTOMOBILE ETRANGER OFFRE UNE USINE ET QUATRE MILLE EMPLOIS DANS L'EST. IL EXIGE DIX ANS D'EXONERATIONS FISCALES ET UNE NOUVELLE ROUTE. REPONSE ATTENDUE CETTE SEMAINE. STOP." + }, + "yes": { + "label": { "en": "Grant the tax breaks", "fr": "Accorder les exonérations" }, + "effects": [ + { "oneOff": 0.3 }, + { "revenue": "other", "delta": -0.1 }, + { "stat": "unemployment", "delta": -0.4, "bias": true, "days": 540 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 540 }, + { "sector": "industry", "delta": 3, "days": 240 } + ] + }, + "no": { + "label": { "en": "Bargain for a smaller plant", "fr": "Négocier une usine plus petite" }, + "effects": [ + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 365 }, + { "stat": "economy", "delta": 1, "days": 90 }, + { "sector": "industry", "delta": 1, "days": 150 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "cri_startup_sale_01", + "category": "crises", + "doc": "telegram", + "sender": "min_finance", + "conditions": { "min": { "economy": 55 }, "dayMin": 1000 }, + "title": { "en": "A start-up sold for a record", "fr": "Une start-up vendue à prix record" }, + "body": { + "en": "THE CAPITAL'S LEADING SOFTWARE START-UP IS SOLD TO A FOREIGN GIANT FOR A RECORD PRICE. FOUNDERS BECOME MILLIONAIRES. THE TAX OFFICE ASKS HOW TO TREAT THE GAIN. STOP.", + "fr": "LA PRINCIPALE START-UP DE LOGICIEL DE LA CAPITALE EST RACHETEE PAR UN GEANT ETRANGER A UN PRIX RECORD. LES FONDATEURS DEVIENNENT MILLIONNAIRES. LE FISC DEMANDE COMMENT TRAITER LA PLUS-VALUE. STOP." + }, + "yes": { + "label": { "en": "Tax the gain in full", "fr": "Taxer la plus-value à plein" }, + "effects": [ + { "oneOff": -0.5 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "softPower", "delta": -1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Offer a founders' tax holiday", "fr": "Exonérer les fondateurs" }, + "effects": [ + { "stat": "economy", "delta": 2, "days": 90 }, + { "sector": "research", "delta": 2, "days": 150 }, + { "stat": "opinion", "delta": -2, "days": 45 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "cri_bk_custody_death_01", + "category": "crises", + "doc": "telegram", + "sender": "min_interior", + "once": false, + "cooldownDays": 360, + "conditions": { "min": { "ratio:police": 1.8 }, "dayMin": 200 }, + "title": { "en": "A printer dies in custody", "fr": "Un imprimeur meurt en garde à vue" }, + "body": { + "en": "A DISSIDENT PRINTER DIED IN POLICE CUSTODY IN THE CAPITAL. THE FAMILY REJECTS THE CARDIAC ARREST ACCOUNT. CROWDS GATHERING OUTSIDE THE PRECINCT. STOP.", + "fr": "UN IMPRIMEUR DISSIDENT EST MORT EN GARDE A VUE DANS LA CAPITALE. LA FAMILLE REJETTE LA THESE DE L'ARRET CARDIAQUE. FOULE MASSEE DEVANT LE COMMISSARIAT. STOP." + }, + "yes": { + "label": { "en": "Open an independent inquiry", "fr": "Ouvrir une enquête indépendante" }, + "effects": [ + { "sector": "police", "delta": -4, "days": 180 }, + { "stat": "order", "delta": -3, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -3, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Stand behind the precinct", "fr": "Couvrir le commissariat" }, + "effects": [ + { "stat": "civilRights", "delta": -4 }, + { "stat": "unrest", "delta": 5, "days": 90 }, + { "stat": "opinion", "delta": -5, "days": 90 }, + { "stat": "stability", "delta": -2, "bias": true, "days": 180 } + ] + } + }, + { + "id": "cri_bk_file_leak_01", + "category": "crises", + "doc": "report", + "sender": "intelligence", + "once": false, + "cooldownDays": 450, + "conditions": { "min": { "q:police": 80 }, "max": { "civilRights": 45 }, "dayMin": 300 }, + "title": { "en": "The informant files leak", "fr": "Les fichiers d'indicateurs fuitent" }, + "body": { + "en": "A foreign newspaper has published 40,000 index cards from the security service. Neighbours, colleagues and two sitting deputies appear as informants of one another. Half the country is reading its own file.", + "fr": "Un journal étranger publie 40 000 fiches du service de sécurité. Voisins, collègues et deux députés y figurent comme informateurs les uns des autres. La moitié du pays lit son propre dossier." + }, + "yes": { + "label": { "en": "Open the whole archive", "fr": "Ouvrir toutes les archives" }, + "effects": [ + { "stat": "civilRights", "delta": 3 }, + { "stat": "stability", "delta": -4, "days": 90 }, + { "stat": "opinion", "delta": -3, "days": 60 }, + { "sector": "police", "delta": -4, "days": 180 } + ] + }, + "no": { + "label": { "en": "Prosecute the leakers", "fr": "Poursuivre les auteurs de la fuite" }, + "effects": [ + { "stat": "civilRights", "delta": -4 }, + { "stat": "softPower", "delta": -4, "bias": true, "days": 240 }, + { "stat": "unrest", "delta": 3, "days": 90 }, + { "stat": "opinion", "delta": -3, "days": 60 } + ] + } + }, + { + "id": "cri_bk_sanctions_01", + "category": "crises", + "doc": "letter", + "sender": "min_foreign", + "once": false, + "cooldownDays": 540, + "conditions": { "min": { "ratio:police": 2.2 }, "dayMin": 400 }, + "title": { "en": "Sanctions on the security chiefs", "fr": "Sanctions contre les chefs de la sécurité" }, + "body": { + "en": "Three partner parliaments have frozen the foreign accounts and visas of eleven Valdorian security officials. Their holiday villas are the first casualties. The list will lengthen unless something changes.", + "fr": "Trois parlements partenaires gèlent les comptes et les visas de onze responsables valdoriens de la sécurité. Leurs villas de vacances sont les premières touchées. La liste s'allongera si rien ne change." + }, + "yes": { + "label": { "en": "Dismiss the named chiefs", "fr": "Limoger les chefs visés" }, + "effects": [ + { "sector": "police", "delta": -5, "days": 180 }, + { "stat": "order", "delta": -3, "bias": true, "days": 180 }, + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Defy the sanctions", "fr": "Braver les sanctions" }, + "effects": [ + { "stat": "softPower", "delta": -4, "bias": true, "days": 365 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 270 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": -2, "days": 60 } + ] + } + }, + { + "id": "cri_bk_informants_01", + "category": "crises", + "doc": "report", + "sender": "min_labour", + "once": false, + "cooldownDays": 360, + "conditions": { "min": { "ratio:police": 1.8 }, "max": { "civilRights": 50 }, "dayMin": 250 }, + "title": { "en": "Nobody signs anything", "fr": "Plus personne ne signe rien" }, + "body": { + "en": "Informant networks have reached every ministry floor. Civil servants now refuse to sign any decision that could be reported, and files circulate for weeks without an owner. Permits and pensions are stuck.", + "fr": "Les réseaux d'indicateurs ont gagné tous les étages des ministères. Les fonctionnaires refusent de signer toute décision susceptible d'être rapportée, et les dossiers circulent des semaines sans responsable. Permis et retraites sont bloqués." + }, + "yes": { + "label": { "en": "Dissolve the informant units", "fr": "Dissoudre les unités d'indicateurs" }, + "effects": [ + { "sector": "police", "delta": -3, "days": 120 }, + { "stat": "order", "delta": -2, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": 2, "days": 60 }, + { "stat": "stability", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Wait for the fear to ease", "fr": "Attendre que la peur retombe" }, + "effects": [ + { "sector": "administration", "delta": -5, "days": 240 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -3, "days": 90 } + ] + } + }, + { + "id": "cri_bk_exile_01", + "category": "crises", + "doc": "letter", + "sender": "min_foreign", + "once": false, + "cooldownDays": 540, + "conditions": { "min": { "ratio:police": 2 }, "max": { "civilRights": 40 }, "dayMin": 500 }, + "title": { "en": "A government in exile", "fr": "Un gouvernement en exil" }, + "body": { + "en": "Opposition leaders who fled the surveillance have set up a government in exile abroad, with a radio station and a flag. Two embassies have received their delegates. The broadcasts reach every kitchen in the north.", + "fr": "Des opposants ayant fui la surveillance ont formé à l'étranger un gouvernement en exil, avec une radio et un drapeau. Deux ambassades ont reçu leurs délégués. Les émissions arrivent dans toutes les cuisines du nord." + }, + "yes": { + "label": { "en": "Open talks through envoys", "fr": "Ouvrir le dialogue par des émissaires" }, + "effects": [ + { "stat": "stability", "delta": -3, "bias": true, "days": 240 }, + { "stat": "softPower", "delta": -2, "days": 120 }, + { "stat": "order", "delta": -3, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Strip the exiles of citizenship", "fr": "Déchoir les exilés de leur nationalité" }, + "effects": [ + { "stat": "civilRights", "delta": -4 }, + { "stat": "softPower", "delta": -4, "bias": true, "days": 270 }, + { "stat": "unrest", "delta": 3, "bias": true, "days": 180 } + ] + } + }, + { + "id": "cri_bk_police_union_01", + "category": "crises", + "doc": "petition", + "sender": "union", + "once": false, + "cooldownDays": 450, + "conditions": { "min": { "ratio:police": 1.8, "q:police": 75 }, "dayMin": 350 }, + "title": { "en": "The police want a seat at the table", "fr": "La police veut sa place à la table" }, + "body": { + "en": "The Police Federation, now the best-funded body in the state, demands a permanent seat on the Security Council and a veto over interior appointments. Its leaders note that nobody else can enforce the decisions.", + "fr": "La Fédération de la police, devenue l'organisme le mieux doté de l'État, exige un siège permanent au Conseil de sécurité et un droit de veto sur les nominations à l'Intérieur. Ses dirigeants font remarquer que personne d'autre ne fait appliquer les décisions." + }, + "yes": { + "label": { "en": "Grant the seat", "fr": "Accorder le siège" }, + "effects": [ + { "stat": "stability", "delta": -4, "bias": true, "days": 240 }, + { "stat": "civilRights", "delta": -3 }, + { "extraSpending": 0.3 }, + { "stat": "opinion", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Refuse and discipline the union", "fr": "Refuser et sanctionner le syndicat" }, + "effects": [ + { "stat": "order", "delta": -3, "bias": true, "days": 180 }, + { "sector": "police", "delta": -4, "days": 180 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "stability", "delta": -2, "days": 45 } + ] + } + }, + { + "id": "cri_bk_generals_more_01", + "category": "crises", + "doc": "memo", + "sender": "general", + "once": false, + "cooldownDays": 360, + "conditions": { "min": { "ratio:army": 1.8 }, "dayMin": 250 }, + "title": { "en": "The generals want more", "fr": "Les généraux en veulent plus" }, + "body": { + "en": "The General Staff submits a new wish list: a second armoured division, a naval air wing and a parade ground rebuilt in marble. Having tasted the budget, the staff has found its appetite and says that the neighbours' maps look hungry.", + "fr": "L'état-major dépose une nouvelle liste de souhaits : une seconde division blindée, une aviation navale et un champ de manœuvres reconstruit en marbre. Ayant goûté au budget, l'état-major a pris de l'appétit et juge les cartes des voisins affamées." + }, + "yes": { + "label": { "en": "Fund the wish list", "fr": "Financer la liste" }, + "effects": [ + { "extraSpending": 0.7 }, + { "stat": "softPower", "delta": -2, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -3, "days": 90 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Trim it to the bone", "fr": "Réduire la liste au strict minimum" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -5, "days": 180 }, + { "stat": "stability", "delta": -3, "bias": true, "days": 180 }, + { "stat": "hardPower", "delta": -2, "days": 120 } + ] + } + }, + { + "id": "cri_bk_arms_race_01", + "category": "crises", + "doc": "telegram", + "sender": "min_foreign", + "once": false, + "cooldownDays": 450, + "conditions": { "min": { "ratio:army": 2 }, "dayMin": 350 }, + "title": { "en": "The neighbours rearm", "fr": "Les voisins se réarment" }, + "body": { + "en": "BOTH NEIGHBOURS HAVE ANNOUNCED EMERGENCY TANK AND MISSILE ORDERS, CITING VALDORIAN MILITARY BUILD-UP. THEIR AMBASSADORS REQUEST AN URGENT MEETING. STOP.", + "fr": "LES DEUX VOISINS ANNONCENT DES COMMANDES D'URGENCE DE CHARS ET DE MISSILES EN INVOQUANT LE RENFORCEMENT MILITAIRE VALDORIEN. LEURS AMBASSADEURS DEMANDENT UNE RENCONTRE URGENTE. STOP." + }, + "yes": { + "label": { "en": "Offer a joint ceiling", "fr": "Proposer un plafond commun" }, + "effects": [ + { "stat": "hardPower", "delta": -3, "bias": true, "days": 240 }, + { "stat": "armyLoyalty", "delta": -3, "days": 120 }, + { "stat": "opinion", "delta": -3, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Match their orders", "fr": "Répondre commande pour commande" }, + "effects": [ + { "oneOff": 0.8 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 270 }, + { "stat": "softPower", "delta": -3, "bias": true, "days": 240 } + ] + } + }, + { + "id": "cri_bk_war_scare_01", + "category": "crises", + "doc": "telegram", + "sender": "min_defense", + "once": false, + "cooldownDays": 540, + "conditions": { "min": { "ratio:army": 1.8 }, "dayMin": 450 }, + "title": { "en": "A war scare on the border", "fr": "Une psychose de guerre à la frontière" }, + "body": { + "en": "A LIVE-FIRE EXERCISE NEAR THE NORTHERN BORDER HAS BEEN READ AS INVASION PREPARATION. THE NEIGHBOUR CALLS UP RESERVISTS. BOND PRICES FALLING. STOP.", + "fr": "UN EXERCICE A TIR REEL PRES DE LA FRONTIERE NORD EST PRIS POUR UNE PREPARATION D'INVASION. LE VOISIN RAPPELLE SES RESERVISTES. LES OBLIGATIONS CHUTENT. STOP." + }, + "yes": { + "label": { "en": "Cancel the manoeuvres", "fr": "Annuler les manœuvres" }, + "effects": [ + { "stat": "hardPower", "delta": -4, "days": 180 }, + { "stat": "armyLoyalty", "delta": -3, "days": 120 }, + { "stat": "opinion", "delta": -3, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Hold the line", "fr": "Tenir bon" }, + "effects": [ + { "stat": "economy", "delta": -3, "days": 120 }, + { "stat": "softPower", "delta": -3, "bias": true, "days": 240 }, + { "oneOff": 0.4 }, + { "stat": "stability", "delta": -2, "days": 60 } + ] + } + }, + { + "id": "cri_bk_procurement_01", + "category": "crises", + "doc": "report", + "sender": "min_finance", + "once": false, + "cooldownDays": 450, + "conditions": { "min": { "ratio:army": 1.8 }, "dayMin": 300 }, + "title": { "en": "Frigates at triple the price", "fr": "Des frégates au triple du prix" }, + "body": { + "en": "The audit court finds that the new frigates were bought through a broker who is the cousin of a procurement colonel, at three times the market price. One of them has no engine yet. The navy calls it a work in progress.", + "fr": "La Cour des comptes constate que les nouvelles frégates ont été achetées à trois fois le prix du marché par un courtier cousin d'un colonel des achats. L'une n'a pas encore de moteur. La marine parle d'un chantier en cours." + }, + "yes": { + "label": { "en": "Prosecute the officers", "fr": "Poursuivre les officiers" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -6, "days": 180 }, + { "stat": "hardPower", "delta": -2, "days": 120 }, + { "stat": "stability", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Bury the audit", "fr": "Enterrer l'audit" }, + "effects": [ + { "stat": "opinion", "delta": -5, "days": 120 }, + { "stat": "stability", "delta": -3, "bias": true, "days": 240 }, + { "stat": "softPower", "delta": -2, "days": 120 } + ] + } + }, + { + "id": "cri_bk_deserters_01", + "category": "crises", + "doc": "telegram", + "sender": "general", + "once": false, + "cooldownDays": 360, + "conditions": { "max": { "ratio:army": 0.55, "armyLoyalty": 50 }, "dayMin": 150 }, + "title": { "en": "The conscripts walk home", "fr": "Les conscrits rentrent chez eux" }, + "body": { + "en": "THREE GARRISON BATTALIONS UNPAID FOR TWO MONTHS. HUNDREDS OF CONSCRIPTS HAVE LEFT BARRACKS ON FOOT. SOME SELL THEIR BOOTS AT THE STATION. STOP.", + "fr": "TROIS BATAILLONS DE GARNISON SANS SOLDE DEPUIS DEUX MOIS. DES CENTAINES DE CONSCRITS ONT QUITTE LES CASERNES A PIED. CERTAINS VENDENT LEURS BOTTES A LA GARE. STOP." + }, + "yes": { + "label": { "en": "Pay the arrears at once", "fr": "Payer les arriérés sans délai" }, + "effects": [ + { "oneOff": 0.6 }, + { "stat": "armyLoyalty", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 45 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Court-martial the deserters", "fr": "Traduire les déserteurs en conseil de guerre" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -5, "days": 180 }, + { "stat": "order", "delta": -2, "days": 90 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "civilRights", "delta": -2 } + ] + } + }, + { + "id": "cri_bk_officers_letter_01", + "category": "crises", + "doc": "letter", + "sender": "general", + "once": false, + "cooldownDays": 450, + "conditions": { "max": { "ratio:army": 0.6, "armyLoyalty": 55 }, "dayMin": 300 }, + "title": { "en": "Forty officers sign a letter", "fr": "Quarante officiers signent une lettre" }, + "body": { + "en": "Forty officers, from captains to a brigadier, have signed an open letter saying that the army could not hold the northern pass for a week. A newspaper printed it with a map of the pass. The neighbours have bought the newspaper.", + "fr": "Quarante officiers, du capitaine au général de brigade, signent une lettre ouverte affirmant que l'armée ne tiendrait pas le col du nord une semaine. Un journal l'a publiée avec une carte du col. Les voisins ont acheté le journal." + }, + "yes": { + "label": { "en": "Promise a rearmament plan", "fr": "Promettre un plan de réarmement" }, + "effects": [ + { "extraSpending": 0.5 }, + { "stat": "opinion", "delta": -2, "days": 60 }, + { "stat": "hardPower", "delta": -2, "days": 120 }, + { "stat": "stability", "delta": -1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Reprimand the signatories", "fr": "Sanctionner les signataires" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -5, "days": 240 }, + { "stat": "hardPower", "delta": -3, "bias": true, "days": 240 }, + { "stat": "stability", "delta": -3, "days": 90 } + ] + } + }, + { + "id": "cri_bk_tax_strike_01", + "category": "crises", + "doc": "telegram", + "sender": "min_finance", + "once": false, + "cooldownDays": 360, + "conditions": { "min": { "tax:income": 40 }, "dayMin": 200 }, + "title": { "en": "Three districts stop paying", "fr": "Trois districts cessent de payer" }, + "body": { + "en": "THREE DISTRICTS HAVE STOPPED PAYING INCOME TAX. THE SHOPKEEPERS' ASSOCIATION CALLS IT CIVIC DISOBEDIENCE AND PUBLISHES A TEMPLATE LETTER. REVENUE DOWN SHARPLY. STOP.", + "fr": "TROIS DISTRICTS ONT CESSE DE PAYER L'IMPOT SUR LE REVENU. L'ASSOCIATION DES COMMERCANTS PARLE DE DESOBEISSANCE CIVIQUE ET DIFFUSE UNE LETTRE TYPE. RECETTES EN FORTE BAISSE. STOP." + }, + "yes": { + "label": { "en": "Cut the income tax", "fr": "Baisser l'impôt sur le revenu" }, + "effects": [ + { "revenue": "income", "delta": -3 }, + { "oneOff": 0.5 }, + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Seize assets and enforce", "fr": "Saisir les biens et faire payer" }, + "effects": [ + { "stat": "civilRights", "delta": -3 }, + { "stat": "unrest", "delta": 5, "days": 90 }, + { "stat": "economy", "delta": -3, "days": 120 }, + { "stat": "opinion", "delta": -3, "days": 60 } + ] + } + }, + { + "id": "cri_bk_d2_rating_01", + "category": "crises", + "doc": "telegram", + "sender": "rating_agency", + "once": false, + "cooldownDays": 450, + "conditions": { "min": { "debt": 85 }, "dayMin": 200 }, + "title": { "en": "Agency cuts the rating a notch", "fr": "L'agence abaisse la note d'un cran" }, + "body": { + "en": "THE AGENCY CUTS VALDORIA ONE NOTCH. BORROWING COSTS RISE ON ALL NEW ISSUES. PENSION FUNDS MUST SELL HOLDINGS BY MONTH END. STOP.", + "fr": "L'AGENCE ABAISSE LA NOTE DE LA VALDORIE D'UN CRAN. LE COUT DE L'EMPRUNT AUGMENTE SUR TOUTES LES EMISSIONS. LES FONDS DE PENSION DOIVENT VENDRE LEURS TITRES D'ICI FIN DE MOIS. STOP." + }, + "yes": { + "label": { "en": "Pledge a deficit ceiling", "fr": "S'engager sur un plafond" }, + "effects": [ + { "extraSpending": -0.3 }, + { "stat": "opinion", "delta": -4, "days": 60 }, + { "stat": "unrest", "delta": 3, "days": 90 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Dismiss the downgrade", "fr": "Balayer la dégradation" }, + "effects": [ + { "extraSpending": 0.4 }, + { "oneOff": 0.3 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 270 }, + { "stat": "stability", "delta": -3, "days": 60 } + ] + } + }, + { + "id": "cri_bk_d2_lenders_01", + "category": "crises", + "doc": "letter", + "sender": "min_finance", + "once": false, + "cooldownDays": 540, + "conditions": { "min": { "debt": 105 }, "dayMin": 300 }, + "title": { "en": "Lenders' mission lands in the capital", "fr": "Une mission des bailleurs débarque" }, + "body": { + "en": "A mission from the international lenders has moved into the third floor of the Finance Ministry, coffee machine included. A rescue line is on offer against cuts and a tax rise. Refusing means paying market rates.", + "fr": "Une mission des bailleurs internationaux s'est installée au troisième étage du ministère des Finances, cafetière comprise. Une ligne de secours est proposée contre des coupes et une hausse d'impôt. La refuser, c'est payer les taux du marché." + }, + "yes": { + "label": { "en": "Sign the programme", "fr": "Signer le programme" }, + "effects": [ + { "oneOff": -0.4 }, + { "revenue": "vat", "delta": 2 }, + { "extraSpending": -0.5 }, + { "stat": "opinion", "delta": -5, "days": 90 }, + { "stat": "unrest", "delta": 4, "days": 120 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Pay market rates", "fr": "Payer les taux du marché" }, + "effects": [ + { "extraSpending": 0.7 }, + { "stat": "economy", "delta": -3, "bias": true, "days": 365 }, + { "stat": "stability", "delta": -3, "days": 90 }, + { "stat": "softPower", "delta": -3, "bias": true, "days": 240 } + ] + } + }, + { + "id": "cri_bk_d2_auction_01", + "category": "crises", + "doc": "telegram", + "sender": "central_bank", + "once": false, + "cooldownDays": 540, + "conditions": { "min": { "debt": 125 }, "dayMin": 450 }, + "title": { "en": "Bond auction fails", "fr": "Adjudication obligataire ratée" }, + "body": { + "en": "TREASURY BOND AUCTION COVERED ONLY 60 PERCENT. BANKS REFUSE THE REST. CENTRAL BANK CAN BUY THE GAP, AT A PRICE. STOP.", + "fr": "ADJUDICATION D'OBLIGATIONS COUVERTE A 60 POUR CENT SEULEMENT. LES BANQUES REFUSENT LE RESTE. LA BANQUE CENTRALE PEUT RACHETER LE SOLDE, MOYENNANT CONTREPARTIE. STOP." + }, + "yes": { + "label": { "en": "Let the bank buy the gap", "fr": "Laisser la banque racheter" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "inflation", "delta": 1.2, "bias": true, "days": 270 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 180 }, + { "stat": "stability", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Pay what investors ask", "fr": "Payer ce que les marchés exigent" }, + "effects": [ + { "extraSpending": 0.8 }, + { "stat": "opinion", "delta": -3, "days": 60 }, + { "stat": "economy", "delta": -3, "days": 90 }, + { "stat": "stability", "delta": -3, "days": 60 } + ] + } + }, + { + "id": "cri_bk_d2_payroll_01", + "category": "crises", + "doc": "memo", + "sender": "min_finance", + "once": false, + "cooldownDays": 360, + "conditions": { "min": { "deficit": 6 }, "dayMin": 150 }, + "title": { "en": "Payday slips by three weeks", "fr": "La paie glisse de trois semaines" }, + "body": { + "en": "The Treasury cannot cover this month's salaries and supplier invoices together. Teachers and nurses can wait a little; the road contractors and the army's caterer will not. Someone goes unpaid on time.", + "fr": "Le Trésor ne peut régler à la fois les salaires et les factures des fournisseurs du mois. Enseignants et infirmiers peuvent patienter un peu, pas les entrepreneurs routiers ni le traiteur de l'armée. Quelqu'un sera payé en retard." + }, + "yes": { + "label": { "en": "Delay civil service pay", "fr": "Retarder la paie publique" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 45 }, + { "stat": "unrest", "delta": 4, "days": 60 }, + { "stat": "stability", "delta": -2, "days": 60 }, + { "sector": "administration", "delta": -3, "days": 120 } + ] + }, + "no": { + "label": { "en": "Delay supplier invoices", "fr": "Retarder les fournisseurs" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "economy", "delta": -3, "days": 90 }, + { "stat": "unemployment", "delta": 0.3, "bias": true, "days": 180 }, + { "sector": "infrastructure", "delta": -3, "days": 120 } + ] + } + }, + { + "id": "cri_bk_d2_printing_01", + "category": "crises", + "doc": "letter", + "sender": "central_bank", + "once": false, + "cooldownDays": 450, + "conditions": { "min": { "deficit": 9, "inflation": 6 }, "dayMin": 250 }, + "title": { "en": "The presses hum at night", "fr": "Les presses tournent la nuit" }, + "body": { + "en": "Prices are racing ahead of wages and the state is short again. The Central Bank can monetise the gap, or the government can tell shopkeepers what to charge. Both routes have a way of ending badly.", + "fr": "Les prix filent plus vite que les salaires et l'État est encore à court. La Banque centrale peut monétiser le trou, ou le gouvernement peut dicter ses prix aux commerçants. Dans les deux cas, cela finit rarement bien." + }, + "yes": { + "label": { "en": "Monetise the deficit", "fr": "Monétiser le déficit" }, + "effects": [ + { "oneOff": -0.6 }, + { "stat": "inflation", "delta": 1.5, "bias": true, "days": 240 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 240 }, + { "stat": "opinion", "delta": -3, "days": 90 } + ] + }, + "no": { + "label": { "en": "Freeze prices by decree", "fr": "Bloquer les prix par décret" }, + "effects": [ + { "extraSpending": 0.3 }, + { "stat": "economy", "delta": -3, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": 3, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 60 } + ] + } + }, + { + "id": "cri_bk_d2_wards_01", + "category": "crises", + "doc": "report", + "sender": "min_health", + "once": false, + "cooldownDays": 360, + "conditions": { "max": { "ratio:health": 0.65 }, "dayMin": 150 }, + "title": { "en": "Hospital wards close for lack of nurses", "fr": "Des services ferment faute d'infirmiers" }, + "body": { + "en": "Three regional hospitals have locked their maternity and surgical wards. Waiting lists now run past a year and a private clinic chain is circling. Reopening costs money; letting the clinics in costs fairness.", + "fr": "Trois hôpitaux régionaux ont fermé maternité et chirurgie. Les listes d'attente dépassent un an et une chaîne de cliniques privées rôde. Rouvrir coûte cher ; laisser entrer les cliniques coûte en équité." + }, + "yes": { + "label": { "en": "Fund an emergency reopening", "fr": "Financer une réouverture" }, + "effects": [ + { "oneOff": 0.7 }, + { "extraSpending": 0.2 }, + { "sector": "health", "delta": 4, "days": 120 }, + { "stat": "opinion", "delta": -2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Let private clinics in", "fr": "Ouvrir aux cliniques privées" }, + "effects": [ + { "stat": "opinion", "delta": -5, "days": 90 }, + { "stat": "unrest", "delta": 3, "days": 90 }, + { "stat": "stability", "delta": -2, "days": 90 }, + { "sector": "health", "delta": -3, "days": 180 } + ] + } + }, + { + "id": "cri_bk_d2_teachers_01", + "category": "crises", + "doc": "petition", + "sender": "union", + "once": false, + "cooldownDays": 360, + "conditions": { "max": { "ratio:education": 0.65 }, "dayMin": 150 }, + "title": { "en": "Teachers walk out, classrooms empty", "fr": "Grève des enseignants, classes vides" }, + "body": { + "en": "The teachers' federation has walked out over frozen salaries and classes of 45 pupils. Parents keep children at home or pay tutors by the hour. The federation wants a proper pay scale, posted in writing.", + "fr": "La fédération des enseignants a quitté les classes pour protester contre des salaires gelés et des classes de 45 élèves. Les parents gardent les enfants à la maison ou paient des répétiteurs à l'heure. La fédération réclame une vraie grille salariale, par écrit." + }, + "yes": { + "label": { "en": "Grant the pay scale", "fr": "Accorder la grille salariale" }, + "effects": [ + { "extraSpending": 0.5 }, + { "sector": "education", "delta": 3, "days": 150 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Requisition the teachers", "fr": "Réquisitionner les enseignants" }, + "effects": [ + { "stat": "civilRights", "delta": -3 }, + { "stat": "unrest", "delta": 4, "days": 90 }, + { "stat": "opinion", "delta": -4, "days": 60 }, + { "sector": "education", "delta": -4, "days": 180 } + ] + } + }, + { + "id": "cri_bk_d2_kitchens_01", + "category": "crises", + "doc": "letter", + "sender": "mayor", + "once": false, + "cooldownDays": 360, + "conditions": { "max": { "ratio:social": 0.65 }, "dayMin": 150 }, + "title": { "en": "Charity kitchens run out of soup", "fr": "Les soupes populaires manquent de soupe" }, + "body": { + "en": "The capital's charity kitchens feed twice as many people as last winter and have run out of ladles, never mind soup. Hunger marches gather each Friday outside the town hall, which asks for food vouchers or for police.", + "fr": "Les soupes populaires de la capitale servent deux fois plus de monde que l'hiver dernier et manquent de louches, sans parler de soupe. Des marches de la faim se forment chaque vendredi devant la mairie, qui demande des bons alimentaires ou des policiers." + }, + "yes": { + "label": { "en": "Fund emergency food vouchers", "fr": "Financer des bons alimentaires" }, + "effects": [ + { "oneOff": 0.3 }, + { "extraSpending": 0.4 }, + { "stat": "unrest", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Send police to the marches", "fr": "Envoyer la police aux marches" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 30 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "unrest", "delta": 5, "days": 120 }, + { "stat": "opinion", "delta": -5, "days": 90 } + ] + } + }, + { + "id": "cri_bk_d2_trials_01", + "category": "crises", + "doc": "report", + "sender": "min_justice", + "once": false, + "cooldownDays": 450, + "conditions": { "max": { "ratio:justice": 0.55 }, "dayMin": 250 }, + "title": { "en": "Detainees freed for lack of trials", "fr": "Des détenus libérés faute de procès" }, + "body": { + "en": "With too few judges and clerks, pre-trial limits expired for 400 detainees this month and the courts must release them. They include two smugglers and a notary. The press has printed the list.", + "fr": "Faute de juges et de greffiers, les délais de détention provisoire ont expiré pour 400 détenus ce mois-ci et les tribunaux doivent les libérer. On compte parmi eux deux trafiquants et un notaire. La presse a publié la liste." + }, + "yes": { + "label": { "en": "Hire judges at once", "fr": "Recruter des juges d'urgence" }, + "effects": [ + { "oneOff": 0.5 }, + { "extraSpending": 0.2 }, + { "sector": "justice", "delta": 3, "days": 150 }, + { "stat": "opinion", "delta": -3, "days": 45 } + ] + }, + "no": { + "label": { "en": "Extend detention by decree", "fr": "Prolonger la détention par décret" }, + "effects": [ + { "stat": "civilRights", "delta": -5 }, + { "stat": "order", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": -3, "days": 90 }, + { "sector": "justice", "delta": -3, "days": 180 } + ] + } + }, + { + "id": "cri_bk_d2_dam_01", + "category": "crises", + "doc": "telegram", + "sender": "min_interior", + "once": false, + "cooldownDays": 540, + "conditions": { "max": { "ratio:infrastructure": 0.55 }, "dayMin": 300 }, + "title": { "en": "The northern dam cracks", "fr": "Le barrage du nord se fissure" }, + "body": { + "en": "SPILLWAY OF THE NORTHERN DAM CRACKED AFTER YEARS WITHOUT MAINTENANCE. THREE VILLAGES DOWNSTREAM MAY NEED EVACUATION. STOP.", + "fr": "LE DEVERSOIR DU BARRAGE NORD S'EST FISSURE APRES DES ANNEES SANS ENTRETIEN. TROIS VILLAGES EN AVAL POURRAIENT ETRE EVACUES. STOP." + }, + "yes": { + "label": { "en": "Evacuate and rebuild", "fr": "Évacuer et reconstruire" }, + "effects": [ + { "oneOff": 0.9 }, + { "stat": "economy", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "sector": "infrastructure", "delta": 4, "days": 150 } + ] + }, + "no": { + "label": { "en": "Lower the water, hope", "fr": "Baisser le niveau et espérer" }, + "effects": [ + { "stat": "stability", "delta": -4, "days": 60 }, + { "stat": "opinion", "delta": -5, "days": 60 }, + { "stat": "economy", "delta": -3, "days": 90 }, + { "sector": "infrastructure", "delta": -4, "days": 180 } + ] + } + }, + { + "id": "cri_bk_d2_permits_01", + "category": "crises", + "doc": "memo", + "sender": "min_industry", + "once": false, + "cooldownDays": 360, + "conditions": { "max": { "ratio:administration": 0.6 }, "dayMin": 150 }, + "title": { "en": "Ministries stop issuing permits", "fr": "Les ministères cessent de délivrer des permis" }, + "body": { + "en": "With half the desks empty, building and export permits take eleven months. Entrepreneurs queue at dawn and a cottage industry of fixers has opened across the street. A paid fast-track desk, or a tolerated grey market.", + "fr": "La moitié des bureaux étant vides, les permis de construire et d'exportation prennent onze mois. Les entrepreneurs font la queue dès l'aube et des rabatteurs se sont installés en face. Un guichet express payant, ou un marché gris toléré." + }, + "yes": { + "label": { "en": "Open a paid fast-track desk", "fr": "Ouvrir un guichet express payant" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "administration", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": -3, "days": 90 }, + { "stat": "stability", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Tolerate the fixers", "fr": "Tolérer les rabatteurs" }, + "effects": [ + { "stat": "economy", "delta": -3, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -2, "days": 60 }, + { "stat": "stability", "delta": -2, "days": 90 }, + { "sector": "administration", "delta": -3, "days": 180 } + ] + } + }, + { + "id": "cri_bk_d2_ghosts_01", + "category": "crises", + "doc": "report", + "sender": "min_finance", + "once": false, + "cooldownDays": 450, + "conditions": { "min": { "ratio:administration": 1.8 }, "dayMin": 250 }, + "title": { "en": "Audit finds ghost civil servants", "fr": "Un audit révèle des fonctionnaires fantômes" }, + "body": { + "en": "The audit office counts 6,000 salaries paid to desks nobody can locate, and a ministry car park built for twice the staff. The press calls the civil service a jobs programme. Prosecute, or amnesty the stragglers.", + "fr": "L'office d'audit recense 6 000 salaires versés à des bureaux introuvables, et un parking ministériel prévu pour deux fois les effectifs. La presse parle d'un programme d'emploi déguisé. Poursuivre, ou amnistier les derniers fautifs." + }, + "yes": { + "label": { "en": "Prosecute and purge", "fr": "Poursuivre et purger" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "stability", "delta": -3, "days": 60 }, + { "sector": "administration", "delta": -3, "days": 90 } + ] + }, + "no": { + "label": { "en": "Offer an amnesty", "fr": "Proposer une amnistie" }, + "effects": [ + { "extraSpending": 0.3 }, + { "stat": "opinion", "delta": -6, "days": 90 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 180 }, + { "stat": "stability", "delta": -2, "days": 60 } + ] + } + }, + { + "id": "cri_bk_d2_pavilion_01", + "category": "crises", + "doc": "letter", + "sender": "min_culture", + "once": false, + "cooldownDays": 450, + "conditions": { "min": { "ratio:culture": 2.2 }, "dayMin": 200 }, + "title": { "en": "An opera house nobody asked for", "fr": "Un opéra dont personne ne voulait" }, + "body": { + "en": "The new Grand Pavilion of the Republic seats 4,000 in a town of 9,000 and sold 300 tickets in its first season. Cartoonists are delighted. The budget can bail out the pavilion or close it.", + "fr": "Le nouveau Grand Pavillon de la République compte 4 000 places dans une ville de 9 000 habitants et a vendu 300 billets en première saison. Les caricaturistes sont ravis. Le budget peut renflouer le pavillon ou le fermer." + }, + "yes": { + "label": { "en": "Bail out the pavilion", "fr": "Renflouer le pavillon" }, + "effects": [ + { "oneOff": 0.4 }, + { "extraSpending": 0.2 }, + { "stat": "opinion", "delta": -3, "days": 90 }, + { "stat": "softPower", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Close it and sell the seats", "fr": "Fermer et vendre les fauteuils" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 60 }, + { "stat": "softPower", "delta": -3, "bias": true, "days": 180 }, + { "sector": "culture", "delta": -4, "days": 180 } + ] + } + }, + { + "id": "cri_bk_capital_flight_01", + "category": "crises", + "doc": "report", + "sender": "central_bank", + "once": false, + "cooldownDays": 360, + "conditions": { "min": { "tax:corporate": 35 }, "dayMin": 250 }, + "title": { "en": "Capital leaves by night", "fr": "Les capitaux partent de nuit" }, + "body": { + "en": "Reserves are falling by a hundred million a week. Holding companies have moved their brass plates across the border, and three exporters have shifted their invoicing to a neighbour's bank. The tax rate is cited in every farewell letter.", + "fr": "Les réserves fondent de cent millions par semaine. Des sociétés holding ont déménagé leurs plaques de cuivre de l'autre côté de la frontière, et trois exportateurs facturent désormais par une banque voisine. Le taux d'imposition figure dans chaque lettre d'adieu." + }, + "yes": { + "label": { "en": "Offer a tax amnesty", "fr": "Proposer une amnistie fiscale" }, + "effects": [ + { "revenue": "corporate", "delta": -3 }, + { "oneOff": 0.3 }, + { "stat": "opinion", "delta": -4, "days": 90 }, + { "stat": "stability", "delta": -1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Impose capital controls", "fr": "Instaurer un contrôle des capitaux" }, + "effects": [ + { "stat": "economy", "delta": -4, "bias": true, "days": 270 }, + { "stat": "inflation", "delta": 0.5, "bias": true, "days": 180 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "softPower", "delta": -2, "days": 120 } + ] + } + }, + { + "id": "cri_bk_smugglers_01", + "category": "crises", + "doc": "telegram", + "sender": "min_interior", + "once": false, + "cooldownDays": 360, + "conditions": { "min": { "tax:vat": 28 }, "dayMin": 200 }, + "title": { "en": "Smugglers at the eastern border", "fr": "Contrebandiers à la frontière est" }, + "body": { + "en": "CONVOYS OF CHEAP FUEL, TOBACCO AND FLOUR CROSS THE EASTERN BORDER EVERY NIGHT. BORDER SHOPS EMPTY. CUSTOMS OUTGUNNED AND OUTNUMBERED. VAT REVENUE FALLING. STOP.", + "fr": "DES CONVOIS DE CARBURANT, DE TABAC ET DE FARINE A BAS PRIX FRANCHISSENT LA FRONTIERE EST CHAQUE NUIT. COMMERCES FRONTALIERS VIDES. DOUANES DEBORDEES. RECETTES DE TVA EN BAISSE. STOP." + }, + "yes": { + "label": { "en": "Send in the border guard", "fr": "Envoyer les gardes-frontières" }, + "effects": [ + { "extraSpending": 0.3 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Let the trade run", "fr": "Laisser le trafic prospérer" }, + "effects": [ + { "stat": "economy", "delta": -2, "bias": true, "days": 270 }, + { "stat": "order", "delta": -3, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -3, "days": 90 } + ] + } + }, + { + "id": "cri_bk_brain_drain_01", + "category": "crises", + "doc": "petition", + "sender": "min_health", + "once": false, + "cooldownDays": 450, + "conditions": { "min": { "tax:income": 44 }, "dayMin": 450 }, + "title": { "en": "Doctors pack their bags", "fr": "Les médecins font leurs valises" }, + "body": { + "en": "A petition signed by 1,200 doctors, engineers and teachers says that their net pay now buys more across the border, where recruiters wait at the station with contracts. Two regional hospitals have closed their night wards.", + "fr": "Une pétition de 1 200 médecins, ingénieurs et enseignants affirme que leur salaire net achète davantage de l'autre côté de la frontière, où des recruteurs les attendent à la gare avec des contrats. Deux hôpitaux régionaux ont fermé leurs services de nuit." + }, + "yes": { + "label": { "en": "Give professionals tax relief", "fr": "Alléger l'impôt des professionnels" }, + "effects": [ + { "revenue": "income", "delta": -2 }, + { "stat": "opinion", "delta": -4, "days": 120 }, + { "sector": "health", "delta": -2, "days": 120 }, + { "stat": "unrest", "delta": 2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Impose exit bonds", "fr": "Imposer une caution de départ" }, + "effects": [ + { "stat": "civilRights", "delta": -4 }, + { "sector": "health", "delta": -4, "days": 240 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -2, "days": 60 } + ] + } + }, + { + "id": "cri_bk_tax_haven_01", + "category": "crises", + "doc": "letter", + "sender": "min_foreign", + "once": false, + "cooldownDays": 450, + "conditions": { "max": { "tax:corporate": 15 }, "dayMin": 300 }, + "title": { "en": "Welcome to the grey list", "fr": "Bienvenue sur la liste grise" }, + "body": { + "en": "An international body has added Valdoria to its list of low-tax jurisdictions. Correspondent banks now ask for extra paperwork, inspectors are booking hotels in the capital, and two partners suspend their tax treaties.", + "fr": "Un organisme international inscrit la Valdoria sur sa liste des juridictions à faible fiscalité. Les banques correspondantes réclament des justificatifs supplémentaires, des inspecteurs réservent des hôtels dans la capitale et deux partenaires suspendent leurs conventions fiscales." + }, + "yes": { + "label": { "en": "Raise the corporate tax", "fr": "Relever l'impôt sur les sociétés" }, + "effects": [ + { "revenue": "corporate", "delta": 3 }, + { "stat": "economy", "delta": -3, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -2, "days": 60 }, + { "stat": "softPower", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Fight the listing", "fr": "Contester l'inscription" }, + "effects": [ + { "stat": "softPower", "delta": -4, "bias": true, "days": 300 }, + { "stat": "economy", "delta": -3, "days": 180 }, + { "oneOff": 0.3 }, + { "stat": "stability", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "cri_wf_nobel_01", + "category": "crises", + "doc": "letter", + "sender": "min_education", + "conditions": { "min": { "q:research": 72 }, "dayMin": 700 }, + "title": { "en": "A laureate in the laboratory", "fr": "Un lauréat dans le laboratoire" }, + "body": { + "en": "A team at the national university has won the highest international prize in materials science. The prize comes with a large grant, and everyone wants it: the laboratory, the ministry and the treasury.", + "fr": "Une équipe de l'université nationale remporte la plus haute distinction internationale en science des matériaux. Elle est assortie d'une dotation importante, que le laboratoire, le ministère et le Trésor convoitent tous." + }, + "yes": { + "label": { "en": "Build a national institute", "fr": "Bâtir un institut national" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "research", "delta": 4, "days": 240 }, + { "stat": "softPower", "delta": 4, "days": 180 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 3, "days": 60 } + ] + }, + "no": { + "label": { "en": "Put the grant in the treasury", "fr": "Verser la dotation au Trésor" }, + "effects": [ + { "oneOff": -0.5 }, + { "stat": "softPower", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": -3, "days": 60 }, + { "sector": "research", "delta": -2, "days": 180 } + ] + } + }, + { + "id": "cri_wf_campus_01", + "category": "crises", + "doc": "letter", + "sender": "min_industry", + "conditions": { "min": { "q:education": 70, "q:research": 62 }, "dayMin": 900 }, + "title": { "en": "A tech campus picks Valdoria", "fr": "Un campus technologique choisit la Valdoria" }, + "body": { + "en": "A foreign technology group will build its European research campus in Valdoria, citing the graduates and the labs. It asks for a ten-year tax holiday and a rezoned hillside. Local residents are asking where they will live.", + "fr": "Un groupe technologique étranger veut installer son campus européen de recherche en Valdoria, séduit par les diplômés et les laboratoires. Il réclame dix ans d'exonération fiscale et une colline reclassée. Les riverains demandent où ils habiteront." + }, + "yes": { + "label": { "en": "Grant the tax holiday", "fr": "Accorder l'exonération" }, + "effects": [ + { "stat": "economy", "delta": 3, "bias": true, "days": 365 }, + { "stat": "growth", "delta": 0.3, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": -0.3, "bias": true, "days": 365 }, + { "revenue": "other", "delta": -0.2 }, + { "stat": "opinion", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Insist on a joint venture", "fr": "Exiger une coentreprise" }, + "effects": [ + { "stat": "economy", "delta": 1.5, "bias": true, "days": 270 }, + { "sector": "research", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 60 } + ] + } + }, + { + "id": "cri_wf_investors_01", + "category": "crises", + "doc": "report", + "sender": "min_transport", + "conditions": { "min": { "q:infrastructure": 70, "economy": 60 }, "dayMin": 600 }, + "title": { "en": "Investors follow the motorway", "fr": "Les investisseurs suivent l'autoroute" }, + "body": { + "en": "Since the motorway programme opened, logistics firms and assembly plants have been queuing at the Investment Agency. Three funds want to build depots along the corridor, and one offers to buy the tolls outright.", + "fr": "Depuis l'ouverture du programme autoroutier, logisticiens et usines d'assemblage font la queue à l'Agence des investissements. Trois fonds veulent bâtir des entrepôts le long du corridor, et l'un propose de racheter les péages." + }, + "yes": { + "label": { "en": "Fast-track the permits", "fr": "Accélérer les permis" }, + "effects": [ + { "stat": "economy", "delta": 3, "bias": true, "days": 300 }, + { "stat": "growth", "delta": 0.4, "bias": true, "days": 300 }, + { "stat": "unemployment", "delta": -0.3, "bias": true, "days": 300 }, + { "sector": "environment", "delta": -3, "days": 240 }, + { "stat": "opinion", "delta": -1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Auction the toll rights", "fr": "Vendre les droits de péage" }, + "effects": [ + { "oneOff": -0.8 }, + { "sector": "infrastructure", "delta": -3, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 90 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "cri_wf_med_tourism_01", + "category": "crises", + "doc": "report", + "sender": "min_health", + "conditions": { "min": { "q:health": 78 }, "dayMin": 900 }, + "title": { "en": "Patients from abroad", "fr": "Des patients venus d'ailleurs" }, + "body": { + "en": "Valdorian hospitals now rank among the region's best, and foreign patients are arriving with insurance cards and suitcases. Clinic managers propose paying wards for them. Waiting lists at home would grow by a few weeks.", + "fr": "Les hôpitaux valdoriens figurent désormais parmi les meilleurs de la région, et des patients étrangers arrivent avec cartes d'assurance et valises. Les directeurs de clinique proposent des services payants pour eux. Les listes d'attente locales s'allongeraient de quelques semaines." + }, + "yes": { + "label": { "en": "Open wards to paying patients", "fr": "Ouvrir des services payants" }, + "effects": [ + { "oneOff": -0.6 }, + { "extraSpending": -0.2 }, + { "stat": "softPower", "delta": 2, "days": 180 }, + { "sector": "health", "delta": -3, "days": 240 }, + { "stat": "opinion", "delta": -3, "days": 90 } + ] + }, + "no": { + "label": { "en": "Keep the beds for citizens", "fr": "Réserver les lits aux citoyens" }, + "effects": [ + { "stat": "opinion", "delta": 4, "days": 90 }, + { "stat": "softPower", "delta": 3, "days": 180 }, + { "extraSpending": 0.2 } + ] + } + }, + { + "id": "cri_wf_culture_capital_01", + "category": "crises", + "doc": "letter", + "sender": "min_culture", + "conditions": { "min": { "q:culture": 72 }, "dayMin": 600 }, + "title": { "en": "Capital of Culture", "fr": "Capitale de la culture" }, + "body": { + "en": "The regional jury awards the capital its Cultural Capital title for the coming year, praising the theatres, the festivals and the unexpectedly full museums. The title is free, but a full programme is not.", + "fr": "Le jury régional décerne à la capitale le titre de Capitale de la culture pour l'année à venir, saluant théâtres, festivals et musées étonnamment remplis. Le titre est gratuit, un programme complet ne l'est pas." + }, + "yes": { + "label": { "en": "Stage the full programme", "fr": "Monter le programme complet" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "softPower", "delta": 5, "days": 365 }, + { "stat": "opinion", "delta": 3, "days": 90 }, + { "stat": "economy", "delta": 2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Accept the title, keep it modest", "fr": "Accepter le titre, rester sobre" }, + "effects": [ + { "stat": "softPower", "delta": 3, "days": 240 }, + { "stat": "opinion", "delta": 1, "days": 60 }, + { "stat": "economy", "delta": 1, "days": 120 } + ] + } + }, + { + "id": "cri_wf_peace_talks_01", + "category": "crises", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "min": { "q:foreignAffairs": 72 }, "dayMin": 1000 }, + "title": { "en": "Asked to host a peace conference", "fr": "Invitée à accueillir une conférence de paix" }, + "body": { + "en": "Two feuding states and three mediators ask Valdoria to host their peace conference, since only the Valdorian diplomatic service is trusted by all sides. The security bill is large, and the delegations arrive with their own bodyguards.", + "fr": "Deux États rivaux et trois médiateurs demandent à la Valdoria d'accueillir leur conférence de paix, car seule la diplomatie valdorienne a la confiance de tous. La facture de sécurité est lourde, et les délégations arrivent avec leurs gardes du corps." + }, + "yes": { + "label": { "en": "Host the conference", "fr": "Accueillir la conférence" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "softPower", "delta": 5, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 3, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Offer a neutral venue abroad", "fr": "Proposer un lieu neutre à l'étranger" }, + "effects": [ + { "stat": "softPower", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 60 }, + { "extraSpending": 0.1 } + ] + } + }, + { + "id": "cri_wf_arms_export_01", + "category": "crises", + "doc": "report", + "sender": "min_defense", + "conditions": { "min": { "q:army": 75, "armyLoyalty": 60 }, "dayMin": 1000 }, + "title": { "en": "A buyer for our guns", "fr": "Un acheteur pour nos canons" }, + "body": { + "en": "A distant government wants to buy Valdorian armoured vehicles and training, with cash on delivery. The Defence Ministry says the army's reputation has earned it. The buyer's human rights record is described as 'in progress'.", + "fr": "Un gouvernement lointain veut acheter blindés et formation valdoriens, payables à la livraison. Le ministère de la Défense estime que la réputation de l'armée l'a mérité. Le bilan du client en matière de droits humains est qualifié d'« en cours »." + }, + "yes": { + "label": { "en": "Sign the export deal", "fr": "Signer le contrat d'exportation" }, + "effects": [ + { "oneOff": -1 }, + { "stat": "economy", "delta": 2, "days": 180 }, + { "stat": "armyLoyalty", "delta": 3, "days": 90 }, + { "stat": "softPower", "delta": -3, "days": 240 }, + { "stat": "opinion", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Refuse the buyer", "fr": "Refuser le client" }, + "effects": [ + { "stat": "softPower", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 60 }, + { "stat": "armyLoyalty", "delta": -2, "days": 90 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "cri_wf_green_prize_01", + "category": "crises", + "doc": "letter", + "sender": "min_environment", + "conditions": { "min": { "q:environment": 70 }, "dayMin": 700 }, + "title": { "en": "A prize for green finance", "fr": "Un prix pour la finance verte" }, + "body": { + "en": "An international body names Valdoria its green-finance leader of the year. Bond buyers now ask about a sovereign green issue at a lower rate, but it would require the Industry Ministry to certify its heaviest polluters.", + "fr": "Un organisme international sacre la Valdoria championne de la finance verte de l'année. Des investisseurs demandent une émission souveraine verte à taux réduit, mais l'Industrie devrait alors certifier ses plus gros pollueurs." + }, + "yes": { + "label": { "en": "Issue green bonds", "fr": "Émettre des obligations vertes" }, + "effects": [ + { "oneOff": -0.6 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 270 }, + { "sector": "industry", "delta": -2, "days": 180 }, + { "extraSpending": 0.2 }, + { "stat": "softPower", "delta": 2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Take the prize and move on", "fr": "Prendre le prix et passer à autre chose" }, + "effects": [ + { "stat": "softPower", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 60 }, + { "sector": "environment", "delta": -2, "days": 180 } + ] + } + }, + { + "id": "cri_bk_d2_embassies_01", + "category": "crises", + "doc": "memo", + "sender": "min_foreign", + "once": false, + "cooldownDays": 450, + "conditions": { "min": { "ratio:foreignAffairs": 2.4 }, "dayMin": 250 }, + "title": { "en": "Embassies with swimming pools", "fr": "Des ambassades avec piscine" }, + "body": { + "en": "A leaked inventory lists 31 embassies, a ski chalet for a consul in a country without snow, and a gold-plated residence. The opposition asks what the foreign affairs budget actually buys.", + "fr": "Un inventaire fuité recense 31 ambassades, un chalet de ski pour un consul dans un pays sans neige et une résidence dorée à l'or fin. L'opposition demande ce que le budget des Affaires étrangères achète vraiment." + }, + "yes": { + "label": { "en": "Recall staff, sell the villas", "fr": "Rappeler le personnel, vendre" }, + "effects": [ + { "oneOff": -0.2 }, + { "stat": "softPower", "delta": -3, "days": 120 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Defend the network", "fr": "Défendre le réseau" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "opinion", "delta": -5, "days": 90 }, + { "stat": "stability", "delta": -3, "days": 60 }, + { "stat": "softPower", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "cri_bk_d2_exodus_01", + "category": "crises", + "doc": "letter", + "sender": "min_finance", + "once": false, + "cooldownDays": 450, + "conditions": { "min": { "tax:income": 48 }, "dayMin": 250 }, + "title": { "en": "Surgeons and coders cross the border", "fr": "Chirurgiens et informaticiens passent la frontière" }, + "body": { + "en": "Income tax is so steep that surgeons, engineers and the best coders are moving abroad, where the same job pays a third more after tax. The Finance Ministry proposes a cut in the rate or a patient shrug.", + "fr": "L'impôt sur le revenu est si lourd que chirurgiens, ingénieurs et meilleurs informaticiens partent là où le même poste rapporte un tiers de plus après impôt. Le ministère des Finances propose une baisse du taux ou un haussement d'épaules patient." + }, + "yes": { + "label": { "en": "Cut the income tax rate", "fr": "Baisser l'impôt sur le revenu" }, + "effects": [ + { "revenue": "income", "delta": -3 }, + { "stat": "opinion", "delta": -2, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 90 }, + { "stat": "economy", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Hold the line", "fr": "Tenir bon" }, + "effects": [ + { "stat": "economy", "delta": -3, "bias": true, "days": 270 }, + { "stat": "growth", "delta": -0.2, "bias": true, "days": 270 }, + { "sector": "research", "delta": -3, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 60 } + ] + } + }, + { + "id": "cri_bk_d2_smugglers_01", + "category": "crises", + "doc": "report", + "sender": "min_interior", + "once": false, + "cooldownDays": 450, + "conditions": { "min": { "tax:vat": 34 }, "dayMin": 200 }, + "title": { "en": "Smugglers beat the VAT", "fr": "La contrebande bat la TVA" }, + "body": { + "en": "With VAT this high, a thriving border trade in fuel, cigarettes and washing machines has appeared, and shop receipts lag. Customs asks for more patrols, or for a lower VAT on the contested goods.", + "fr": "Avec une TVA si élevée, un commerce frontalier florissant de carburant, de cigarettes et de lave-linge est apparu, et les recettes des commerces fléchissent. Les douanes demandent plus de patrouilles, ou une TVA réduite sur les produits visés." + }, + "yes": { + "label": { "en": "Add border patrols", "fr": "Renforcer les patrouilles" }, + "effects": [ + { "extraSpending": 0.3 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": -2, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Cut VAT on contested goods", "fr": "Baisser la TVA sur ces produits" }, + "effects": [ + { "revenue": "other", "delta": -0.4 }, + { "stat": "economy", "delta": -2, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 60 } + ] + } + }, + { + "id": "cri_bk_d2_brewery_01", + "category": "crises", + "doc": "letter", + "sender": "min_industry", + "once": false, + "cooldownDays": 450, + "conditions": { "min": { "tax:corporate": 42 }, "dayMin": 250 }, + "title": { "en": "The oldest brewery moves abroad", "fr": "La plus vieille brasserie part à l'étranger" }, + "body": { + "en": "The Republic's oldest brewery and two parts makers announce a move abroad, citing a corporate tax that eats half their margins. Two thousand jobs go with them. Industry suggests a tax holiday; the alternative is a farewell speech.", + "fr": "La plus ancienne brasserie de la République et deux équipementiers annoncent leur départ à l'étranger, invoquant un impôt sur les sociétés qui avale la moitié des marges. Deux mille emplois partent avec eux. L'Industrie propose une exonération ; l'alternative est un discours d'adieu." + }, + "yes": { + "label": { "en": "Grant a tax holiday", "fr": "Accorder une exonération" }, + "effects": [ + { "revenue": "other", "delta": -0.3 }, + { "stat": "opinion", "delta": -3, "days": 90 }, + { "stat": "economy", "delta": 1, "days": 90 }, + { "stat": "unrest", "delta": 2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Let them go", "fr": "Les laisser partir" }, + "effects": [ + { "stat": "unemployment", "delta": 0.4, "bias": true, "days": 270 }, + { "stat": "economy", "delta": -3, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -3, "days": 90 }, + { "stat": "unrest", "delta": 2, "days": 60 } + ] + } + }, + { + "id": "cri_wf_d2_carplant_01", + "category": "crises", + "doc": "letter", + "sender": "min_industry", + "conditions": { "min": { "q:transport": 72, "q:infrastructure": 65 }, "dayMin": 650 }, + "title": { "en": "A carmaker picks Valdoria", "fr": "Un constructeur choisit la Valdorie" }, + "body": { + "en": "A foreign carmaker has chosen Valdoria for its next assembly plant, citing the rail and port programme. It asks for free land, a tax holiday and a private rail siding. Without them, the plant goes abroad.", + "fr": "Un constructeur étranger a choisi la Valdorie pour sa prochaine usine d'assemblage, en citant le programme ferroviaire et portuaire. Il réclame un terrain gratuit, une exonération fiscale et une voie ferrée privée. Sans cela, l'usine ira ailleurs." + }, + "yes": { + "label": { "en": "Grant the incentive package", "fr": "Accorder le paquet d'aides" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "economy", "delta": 3, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": -0.4, "bias": true, "days": 365 }, + { "sector": "industry", "delta": 4, "days": 240 }, + { "stat": "opinion", "delta": 3, "days": 60 } + ] + }, + "no": { + "label": { "en": "Offer a standard deal", "fr": "Proposer des conditions normales" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 180 }, + { "stat": "unemployment", "delta": -0.15, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "cri_wf_d2_healthmodel_01", + "category": "crises", + "doc": "report", + "sender": "min_health", + "conditions": { "min": { "q:health": 80 }, "dayMin": 800 }, + "title": { "en": "Neighbours copy the health model", "fr": "Les voisins copient le modèle de santé" }, + "body": { + "en": "A neighbouring republic's delegation spent a month in Valdorian clinics and wants to license the national health-service model, training included. Fees are real, but Valdorian doctors would be seconded abroad for two years.", + "fr": "La délégation d'une république voisine a passé un mois dans les cliniques valdoriennes et veut une licence du modèle de service national de santé, formation comprise. Les redevances sont réelles, mais des médecins valdoriens seraient détachés deux ans à l'étranger." + }, + "yes": { + "label": { "en": "License the model", "fr": "Concéder la licence" }, + "effects": [ + { "revenue": "other", "delta": 0.2 }, + { "stat": "softPower", "delta": 4, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 60 }, + { "sector": "health", "delta": -2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep the model at home", "fr": "Garder le modèle chez nous" }, + "effects": [ + { "sector": "health", "delta": 2, "days": 150 }, + { "stat": "opinion", "delta": 2, "days": 60 }, + { "stat": "softPower", "delta": 1, "days": 90 } + ] + } + }, + { + "id": "cri_wf_d2_housingaward_01", + "category": "crises", + "doc": "letter", + "sender": "min_housing", + "conditions": { "min": { "q:housing": 72 }, "dayMin": 600 }, + "title": { "en": "Social housing programme wins an award", "fr": "Le logement social remporte un prix" }, + "body": { + "en": "An international jury names Valdoria's social housing programme the year's best, and a cooperative bank offers a credit line at half the market rate. The condition: one new unit in five must be sold at market price.", + "fr": "Un jury international désigne le programme de logement social de la Valdorie comme le meilleur de l'année, et une banque coopérative offre une ligne de crédit à moitié prix. La condition : un logement neuf sur cinq doit être vendu au prix du marché." + }, + "yes": { + "label": { "en": "Take the cheap credit", "fr": "Prendre le crédit bon marché" }, + "effects": [ + { "oneOff": -0.7 }, + { "stat": "economy", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": 2, "days": 60 }, + { "sector": "housing", "delta": -2, "days": 150 } + ] + }, + "no": { + "label": { "en": "Keep every unit social", "fr": "Garder tout en logement social" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 90 }, + { "stat": "stability", "delta": 1, "days": 60 }, + { "sector": "housing", "delta": 2, "days": 150 } + ] + } + }, + { + "id": "cri_wf_d2_cleancluster_01", + "category": "crises", + "doc": "memo", + "sender": "min_industry", + "conditions": { "min": { "q:industry": 72, "q:environment": 60 }, "dayMin": 850 }, + "title": { "en": "A clean-industry cluster takes root", "fr": "Une grappe d'industries propres s'installe" }, + "body": { + "en": "Strict emission rules and a skilled industrial base have drawn a hydrogen maker, a battery recycler and two suppliers into one valley. The cluster wants a dedicated power line and fast permits; the valley's residents want a say.", + "fr": "Des règles d'émission strictes et un tissu industriel qualifié ont attiré un fabricant d'hydrogène, un recycleur de batteries et deux sous-traitants dans une même vallée. La grappe réclame une ligne électrique dédiée et des permis rapides ; les riverains veulent leur mot à dire." + }, + "yes": { + "label": { "en": "Build the line, fast-track", "fr": "Bâtir la ligne, accélérer" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "economy", "delta": 3, "bias": true, "days": 365 }, + { "stat": "growth", "delta": 0.2, "bias": true, "days": 365 }, + { "sector": "industry", "delta": 3, "days": 240 }, + { "sector": "environment", "delta": -2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Keep the normal procedure", "fr": "Garder la procédure normale" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 180 }, + { "sector": "environment", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "cri_wf_d2_upgrade_01", + "category": "crises", + "doc": "telegram", + "sender": "rating_agency", + "conditions": { "min": { "q:administration": 72 }, "max": { "debt": 90 }, "dayMin": 600 }, + "title": { "en": "Agency upgrades Valdoria", "fr": "L'agence relève la note de la Valdorie" }, + "body": { + "en": "THE AGENCY UPGRADES VALDORIA, CITING AN EFFICIENT ADMINISTRATION AND A CREDIBLE BUDGET. SPREADS TIGHTEN. BOND DESKS ASK WHETHER A NEW ISSUE IS PLANNED. STOP.", + "fr": "L'AGENCE RELEVE LA NOTE DE LA VALDORIE, SALUANT UNE ADMINISTRATION EFFICACE ET UN BUDGET CREDIBLE. LES ECARTS DE TAUX SE RESSERRENT. LES SALLES DE MARCHE DEMANDENT SI UNE EMISSION EST PREVUE. STOP." + }, + "yes": { + "label": { "en": "Issue bonds while cheap", "fr": "Émettre tant que c'est bon marché" }, + "effects": [ + { "oneOff": -0.8 }, + { "extraSpending": 0.2 }, + { "stat": "economy", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Bank the upgrade", "fr": "Encaisser la bonne note" }, + "effects": [ + { "extraSpending": -0.2 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 270 }, + { "stat": "stability", "delta": 2, "days": 90 } + ] + } + }, + { + "id": "cri_wf_d2_welfare_01", + "category": "crises", + "doc": "report", + "sender": "min_labour", + "conditions": { "min": { "q:social": 78 }, "dayMin": 900 }, + "title": { "en": "Neighbours study the welfare system", "fr": "Les voisins étudient la protection sociale" }, + "body": { + "en": "Poverty has fallen faster in Valdoria than anywhere in the region, and three governments want to see why. A summit in the capital would bring prestige and a bill. Staying home keeps the money for the programme.", + "fr": "La pauvreté a reculé plus vite en Valdorie que nulle part dans la région, et trois gouvernements veulent comprendre pourquoi. Un sommet dans la capitale apporterait du prestige et une facture. Rester chez soi préserve les crédits du programme." + }, + "yes": { + "label": { "en": "Host a welfare summit", "fr": "Accueillir un sommet social" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "softPower", "delta": 4, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 3, "days": 60 }, + { "stat": "economy", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Send a policy paper", "fr": "Envoyer une note de synthèse" }, + "effects": [ + { "sector": "social", "delta": 2, "days": 150 }, + { "stat": "softPower", "delta": 1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "cri_wf_d2_powergrid_01", + "category": "crises", + "doc": "letter", + "sender": "min_industry", + "conditions": { "min": { "q:infrastructure": 78, "q:industry": 65 }, "dayMin": 1000 }, + "title": { "en": "The grid has power to spare", "fr": "Le réseau a de l'électricité en trop" }, + "body": { + "en": "The modernised grid and the new plants now produce a surplus in every season. A neighbouring utility offers a ten-year export contract. It brings steady income, but exports tighten domestic supply when the cold comes.", + "fr": "Le réseau modernisé et les nouvelles centrales dégagent désormais un surplus en toute saison. Un électricien voisin propose un contrat d'exportation de dix ans. Les revenus seraient réguliers, mais les exportations tendent l'approvisionnement intérieur quand le froid arrive." + }, + "yes": { + "label": { "en": "Sign the export contract", "fr": "Signer le contrat d'export" }, + "effects": [ + { "revenue": "other", "delta": 0.4 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": 2, "days": 180 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Cut domestic power bills", "fr": "Baisser les factures d'électricité" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "opinion", "delta": 4, "days": 90 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 }, + { "stat": "inflation", "delta": -0.2, "bias": true, "days": 180 } + ] + } + }, + { + "id": "cri_wf_d2_greenbond_01", + "category": "crises", + "doc": "letter", + "sender": "min_environment", + "conditions": { "min": { "q:environment": 75 }, "dayMin": 700 }, + "title": { "en": "Investors line up for a green bond", "fr": "Les investisseurs veulent une obligation verte" }, + "body": { + "en": "Clean rivers, restored wetlands and a credible carbon record make Valdoria a favourite of green investors. A ten-year green bond would raise cash cheaply, tied to audited targets that bind the next budgets.", + "fr": "Cours d'eau propres, zones humides restaurées et bilan carbone crédible : la Valdorie séduit les investisseurs verts. Une obligation verte à dix ans lèverait des fonds à bon prix, mais liée à des objectifs audités qui engagent les budgets suivants." + }, + "yes": { + "label": { "en": "Issue the green bond", "fr": "Émettre l'obligation verte" }, + "effects": [ + { "oneOff": -0.7 }, + { "extraSpending": 0.2 }, + { "sector": "environment", "delta": 3, "days": 240 }, + { "stat": "softPower", "delta": 3, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Decline the bond", "fr": "Décliner l'obligation" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "opinion", "delta": 2, "days": 60 }, + { "sector": "environment", "delta": 1, "days": 120 } ] } } diff --git a/web/data/cards/culture.json b/web/data/cards/culture.json index 72ddd20..843136f 100644 --- a/web/data/cards/culture.json +++ b/web/data/cards/culture.json @@ -1,7 +1,13 @@ [ { - "id": "cul_state_broadcaster_01", "category": "culture", "doc": "memo", "sender": "min_culture", - "title": { "en": "Put the national broadcaster under ministry control?", "fr": "Placer l'audiovisuel public sous tutelle ministérielle ?" }, + "id": "cul_state_broadcaster_01", + "category": "culture", + "doc": "memo", + "sender": "min_culture", + "title": { + "en": "Put the national broadcaster under ministry control?", + "fr": "Placer l'audiovisuel public sous tutelle ministérielle ?" + }, "body": { "en": "The national broadcaster airs criticism of the government every evening. Placing it under ministerial control would give you a calmer press.", "fr": "L'audiovisuel public diffuse chaque soir des critiques contre le gouvernement. Le placer sous tutelle ministérielle vous offrirait une presse plus calme." @@ -16,14 +22,14 @@ }, "no": { "label": { "en": "Leave it independent", "fr": "Le laisser indépendant" }, - "effects": [ - { "stat": "stability", "delta": -1, "days": 30 }, - { "stat": "opinion", "delta": 1, "days": 30 } - ] + "effects": [{ "stat": "stability", "delta": -1, "days": 30 }, { "stat": "opinion", "delta": 1, "days": 30 }] } }, { - "id": "cul_film_fund_01", "category": "culture", "doc": "letter", "sender": "min_culture", + "id": "cul_film_fund_01", + "category": "culture", + "doc": "letter", + "sender": "min_culture", "title": { "en": "A national film fund", "fr": "Un fonds national pour le cinéma" }, "body": { "en": "Local directors ask for a fund to finance films. A single festival prize abroad could do more for our image than a year of speeches.", @@ -37,13 +43,13 @@ { "stat": "softPower", "delta": 3, "days": 90 } ] }, - "no": { - "label": { "en": "Decline", "fr": "Décliner" }, - "effects": [{ "sector": "culture", "delta": -2, "days": 120 }] - } + "no": { "label": { "en": "Decline", "fr": "Décliner" }, "effects": [{ "sector": "culture", "delta": -2, "days": 120 }] } }, { - "id": "cul_football_holiday_01", "category": "culture", "doc": "memo", "sender": "press_office", + "id": "cul_football_holiday_01", + "category": "culture", + "doc": "memo", + "sender": "press_office", "title": { "en": "A holiday for the football victory", "fr": "Un jour férié pour la victoire au football" }, "body": { "en": "The national team won the continental final. The streets are full and everyone is asking for a day off. Employers are not.", @@ -61,5 +67,1027 @@ "label": { "en": "Business as usual", "fr": "Travail comme d'habitude" }, "effects": [{ "stat": "opinion", "delta": -2, "days": 20 }] } + }, + { + "id": "cul_museum_free_days_01", + "category": "culture", + "doc": "memo", + "sender": "min_culture", + "title": { "en": "Free Sundays at the national museum", "fr": "Dimanches gratuits au musée national" }, + "body": { + "en": "The national museum charges an entrance fee that keeps out most families. Free Sundays would fill the halls and empty a small part of the ticket revenue; the director worries about the cleaning budget.", + "fr": "Le musée national fait payer un droit d'entrée qui tient la plupart des familles à distance. Des dimanches gratuits rempliraient les salles et videraient une petite partie de la billetterie ; la direction s'inquiète pour le budget du nettoyage." + }, + "yes": { + "label": { "en": "Open the doors", "fr": "Ouvrir les portes" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "culture", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep the fee", "fr": "Garder le tarif" }, + "effects": [ + { "revenue": "other", "delta": 0.05 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "culture", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "cul_fortress_01", + "category": "culture", + "doc": "report", + "sender": "min_culture", + "title": { "en": "The old fortress is falling down", "fr": "La vieille forteresse s'écroule" }, + "body": { + "en": "The hilltop fortress, symbol of the independence war, loses stones in every storm. A hotel group offers to restore it at its own cost, in exchange for turning it into a luxury resort.", + "fr": "La forteresse du sommet, symbole de la guerre d'indépendance, perd des pierres à chaque tempête. Un groupe hôtelier offre de la restaurer à ses frais, à condition d'en faire un hôtel de luxe." + }, + "yes": { + "label": { "en": "Accept the hotel deal", "fr": "Accepter l'offre hôtelière" }, + "effects": [ + { "sector": "culture", "delta": 3, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "softPower", "delta": 1, "days": 90 } + ], + "setFlags": ["cul_fortress_hotel"], + "followUp": { "id": "cul_fortress_protest_01", "inDays": 120 } + }, + "no": { + "label": { "en": "Restore it publicly", "fr": "Restaurer sur fonds publics" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "culture", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + } + }, + { + "id": "cul_fortress_protest_01", + "category": "culture", + "doc": "letter", + "sender": "general", + "followUpOnly": true, + "title": { "en": "Veterans protest at the fortress gate", "fr": "Des anciens combattants devant la forteresse" }, + "body": { + "en": "Veterans' associations protest that the fortress, where a hundred volunteers fell, now has a champagne bar. They ask for public access to the ramparts and the memorial hall.", + "fr": "Les associations d'anciens combattants protestent : la forteresse, où cent volontaires sont tombés, abrite désormais un bar à champagne. Elles demandent l'accès du public aux remparts et à la salle du souvenir." + }, + "yes": { + "label": { "en": "Impose public access", "fr": "Imposer l'accès au public" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "sector": "culture", "delta": 2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Back the hotel", "fr": "Soutenir l'hôtel" }, + "effects": [{ "stat": "opinion", "delta": -3, "days": 40 }, { "stat": "unrest", "delta": 2, "days": 40 }] + } + }, + { + "id": "cul_minority_language_01", + "category": "culture", + "doc": "letter", + "sender": "min_education", + "title": { "en": "A minority language in schools", "fr": "Une langue minoritaire à l'école" }, + "body": { + "en": "The Ostmark valley asks for its own language to be taught in primary schools. Supporters call it justice; critics fear a country that speaks to itself in several voices.", + "fr": "La vallée d'Ostmark demande que sa langue soit enseignée à l'école primaire. Ses partisans parlent de justice ; ses détracteurs craignent un pays qui se parle en plusieurs voix." + }, + "yes": { + "label": { "en": "Fund bilingual classes", "fr": "Financer des classes bilingues" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep one language", "fr": "Garder une seule langue" }, + "effects": [ + { "stat": "unrest", "delta": 2, "days": 60 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "stability", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "cul_anthem_verse_01", + "category": "culture", + "doc": "memo", + "sender": "press_office", + "title": { "en": "The anthem's second verse", "fr": "Le deuxième couplet de l'hymne" }, + "body": { + "en": "The anthem's second verse praises a king deposed a century ago. A parliamentary petition wants it cut; traditionalists say a country does not edit its memory.", + "fr": "Le deuxième couplet de l'hymne célèbre un roi déposé il y a un siècle. Une pétition parlementaire veut le supprimer ; les traditionalistes répondent qu'un pays ne retouche pas sa mémoire." + }, + "yes": { + "label": { "en": "Cut the verse", "fr": "Supprimer le couplet" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep every verse", "fr": "Garder tous les couplets" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 60 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "cul_small_libraries_01", + "category": "culture", + "doc": "memo", + "sender": "min_culture", + "title": { "en": "Close the smallest libraries?", "fr": "Fermer les plus petites bibliothèques ?" }, + "body": { + "en": "Visits to village libraries have halved in ten years, and each costs more than the books on its shelves. Closing eighty would save money; librarians note that pensioners meet there too.", + "fr": "La fréquentation des bibliothèques de village a diminué de moitié en dix ans, et chacune coûte plus cher que les livres de ses rayons. En fermer quatre-vingts ferait des économies ; les bibliothécaires rappellent que les retraités s'y retrouvent aussi." + }, + "yes": { + "label": { "en": "Close the smallest", "fr": "Fermer les plus petites" }, + "effects": [ + { "extraSpending": -0.1 }, + { "sector": "culture", "delta": -3, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "education", "delta": -1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Keep them open", "fr": "Les garder ouvertes" }, + "effects": [{ "extraSpending": 0.1 }, { "sector": "culture", "delta": 2, "days": 120 }] + }, + "conditions": { "min": { "deficit": 0.2 } } + }, + { + "id": "cul_summer_festival_01", + "category": "culture", + "doc": "letter", + "sender": "mayor", + "title": { "en": "The summer festival wants a bigger grant", "fr": "Le festival d'été veut une subvention plus large" }, + "body": { + "en": "The capital's summer festival draws a million visitors and loses money every year. The mayor asks the state to underwrite the next edition; the Treasury asks who else goes to the festival.", + "fr": "Le festival d'été de la capitale attire un million de visiteurs et perd de l'argent chaque année. La mairie demande à l'État de garantir la prochaine édition ; le Trésor demande qui d'autre va au festival." + }, + "yes": { + "label": { "en": "Underwrite the festival", "fr": "Garantir le festival" }, + "effects": [ + { "oneOff": 0.15 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "sector": "culture", "delta": 3, "days": 120 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Let it find sponsors", "fr": "Laisser chercher des sponsors" }, + "effects": [ + { "sector": "culture", "delta": -2, "days": 120 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "cul_satire_play_01", + "category": "culture", + "doc": "memo", + "sender": "min_interior", + "title": { "en": "A satirical play mocks the cabinet", "fr": "Une pièce satirique se moque du gouvernement" }, + "body": { + "en": "A theatre in the old town stages a satire in which the cabinet is a troupe of sleepwalking clowns. Evenings are sold out, and the Interior Ministry asks whether to close it.", + "fr": "Un théâtre de la vieille ville monte une satire où le gouvernement est une troupe de clowns somnambules. Les soirées sont complètes, et le ministère de l'Intérieur demande s'il faut fermer la salle." + }, + "yes": { + "label": { "en": "Close the theatre", "fr": "Fermer le théâtre" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 60 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "softPower", "delta": -2, "days": 90 } + ], + "followUp": { "id": "cul_play_viral_01", "inDays": 30 } + }, + "no": { + "label": { "en": "Let the play run", "fr": "Laisser jouer" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 60 }, + { "stat": "civilRights", "delta": 1 } + ] + }, + "conditions": { "min": { "civilRights": 45 } } + }, + { + "id": "cul_play_viral_01", + "category": "culture", + "doc": "memo", + "sender": "press_office", + "followUpOnly": true, + "title": { "en": "The banned play goes viral", "fr": "La pièce interdite devient virale" }, + "body": { + "en": "Recordings of the banned play have been viewed two million times, and the cast has been invited to a foreign festival. The ban has done what no poster campaign could.", + "fr": "Les enregistrements de la pièce interdite ont été vus deux millions de fois, et la troupe est invitée dans un festival étranger. L'interdiction a réussi là où aucune campagne d'affichage n'aurait pu." + }, + "yes": { + "label": { "en": "Lift the ban", "fr": "Lever l'interdiction" }, + "effects": [ + { "stat": "civilRights", "delta": 2 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "order", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Block the recordings", "fr": "Bloquer les enregistrements" }, + "effects": [ + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "softPower", "delta": -2, "days": 90 }, + { "stat": "order", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "cul_worship_repairs_01", + "category": "culture", + "doc": "letter", + "sender": "min_culture", + "title": { "en": "Repair money for places of worship", "fr": "Des fonds pour réparer les lieux de culte" }, + "body": { + "en": "The main cathedral and two other places of worship ask for repair money as heritage buildings. Secularists say public money should go to no altar; others say the roofs belong to the nation.", + "fr": "La cathédrale et deux autres lieux de culte demandent des fonds de réparation au titre du patrimoine. Les laïcs estiment qu'aucun autel ne doit recevoir d'argent public ; d'autres répondent que les toitures appartiennent à la nation." + }, + "yes": { + "label": { "en": "Fund the repairs", "fr": "Financer les réparations" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "culture", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 40 }, + { "stat": "stability", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Refuse public money", "fr": "Refuser l'argent public" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 60 }, + { "stat": "civilRights", "delta": 1 } + ] + } + }, + { + "id": "cul_licence_fee_01", + "category": "culture", + "doc": "memo", + "sender": "min_culture", + "title": { "en": "Fund the broadcaster with a licence fee", "fr": "Financer l'audiovisuel public par une redevance" }, + "body": { + "en": "The public broadcaster lives on a budget line that ministers can cut at will. A dedicated licence fee would make it independent, and add a charge to every household bill.", + "fr": "L'audiovisuel public vit d'une ligne budgétaire que les ministres peuvent couper à volonté. Une redevance dédiée le rendrait indépendant, et ajouterait une charge à chaque foyer." + }, + "yes": { + "label": { "en": "Create the licence fee", "fr": "Créer la redevance" }, + "effects": [ + { "revenue": "other", "delta": 0.15 }, + { "stat": "civilRights", "delta": 2 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "culture", "delta": 2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep the budget line", "fr": "Garder la ligne budgétaire" }, + "effects": [ + { "stat": "civilRights", "delta": -1 }, + { "stat": "stability", "delta": 1, "bias": true, "days": 180 }, + { "sector": "culture", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "cul_games_bid_01", + "category": "culture", + "doc": "memo", + "sender": "min_culture", + "conditions": { "dayMin": 120 }, + "title": { "en": "Bid for the Regional Games?", "fr": "Candidater aux Jeux régionaux ?" }, + "body": { + "en": "The Regional Games would bring stadiums, tourists and a month of national pride, and a bill that has never once come in under budget.", + "fr": "Les Jeux régionaux apporteraient des stades, des touristes et un mois de fierté nationale, ainsi qu'une facture qui n'a jamais été inférieure au budget." + }, + "yes": { + "label": { "en": "Submit the bid", "fr": "Déposer la candidature" }, + "effects": [ + { "oneOff": 0.6 }, + { "stat": "opinion", "delta": 3, "days": 60 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "sector": "infrastructure", "delta": 2, "days": 180 } + ], + "setFlags": ["cul_games_bid"], + "followUp": { "id": "cul_games_overrun_01", "inDays": 365 } + }, + "no": { + "label": { "en": "Pass", "fr": "Passer son tour" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "stat": "softPower", "delta": -1, "days": 60 }] + } + }, + { + "id": "cul_games_overrun_01", + "category": "culture", + "doc": "report", + "sender": "min_finance", + "followUpOnly": true, + "conditions": { "dayMin": 120 }, + "title": { "en": "The Games budget overruns", "fr": "Le budget des Jeux dérape" }, + "body": { + "en": "Construction costs for the Games are forty per cent over budget, and two stadiums are behind schedule. Cutting the programme would shame the country; paying means cutting elsewhere.", + "fr": "Les coûts de construction des Jeux dépassent le budget de quarante pour cent, et deux stades sont en retard. Réduire le programme humilierait le pays ; payer obligera à couper ailleurs." + }, + "yes": { + "label": { "en": "Pay the overrun", "fr": "Payer le dépassement" }, + "effects": [ + { "oneOff": 0.7 }, + { "stat": "softPower", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Scale back the Games", "fr": "Réduire les Jeux" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "sector": "infrastructure", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "cul_hooligans_01", + "category": "culture", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 150 }, + "title": { "en": "Violence after the football derby", "fr": "Violences après le derby de football" }, + "body": { + "en": "Supporters of two clubs fought in the capital after the derby, leaving thirty injured. The Interior Ministry proposes banning away fans for a season; the clubs object.", + "fr": "Les supporters de deux clubs se sont battus dans la capitale après le derby, faisant trente blessés. Le ministère de l'Intérieur propose d'interdire les supporters visiteurs pendant une saison ; les clubs s'y opposent." + }, + "yes": { + "label": { "en": "Ban away fans", "fr": "Interdire les supporters visiteurs" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "civilRights", "delta": -1 } + ] + }, + "no": { + "label": { "en": "Add police instead", "fr": "Renforcer plutôt la police" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "order", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "cul_general_statue_01", + "category": "culture", + "doc": "letter", + "sender": "mayor", + "conditions": { "dayMin": 180 }, + "title": { "en": "A general's statue on the main square", "fr": "La statue d'un général sur la grande place" }, + "body": { + "en": "The statue of General Hallen dominates the main square, and historians say the general ordered a massacre in the northern wars. The mayor asks whether to remove it.", + "fr": "La statue du général Hallen domine la grande place, et les historiens disent que ce général a ordonné un massacre pendant les guerres du Nord. La mairie demande s'il faut la retirer." + }, + "yes": { + "label": { "en": "Remove the statue", "fr": "Retirer la statue" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Leave it in place", "fr": "La laisser en place" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "stat": "unrest", "delta": 2, "days": 40 }] + } + }, + { + "id": "cul_book_vat_01", + "category": "culture", + "doc": "memo", + "sender": "min_culture", + "conditions": { "max": { "q:culture": 60 }, "dayMin": 210 }, + "title": { "en": "Zero VAT on books", "fr": "TVA à taux zéro sur les livres" }, + "body": { + "en": "Bookshops are closing at a rate of one a week. Booksellers ask for a zero VAT rate on books; the Treasury notes that most books sold are thrillers.", + "fr": "Les librairies ferment au rythme d'une par semaine. Les libraires demandent un taux de TVA nul sur les livres ; le Trésor note que la plupart des livres vendus sont des romans policiers." + }, + "yes": { + "label": { "en": "Zero-rate books", "fr": "Taux zéro sur les livres" }, + "effects": [ + { "revenue": "other", "delta": -0.1 }, + { "sector": "culture", "delta": 3, "days": 180 }, + { "sector": "education", "delta": 1, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep the standard rate", "fr": "Garder le taux normal" }, + "effects": [{ "sector": "culture", "delta": -2, "days": 120 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "cul_valdorian_week_01", + "category": "culture", + "doc": "memo", + "sender": "min_foreign", + "conditions": { "dayMin": 240 }, + "title": { "en": "A Valdorian week abroad", "fr": "Une semaine valdorienne à l'étranger" }, + "body": { + "en": "Embassies propose concerts, film screenings and food stalls in six foreign capitals. It would cost little and might win more friends than a diplomatic note.", + "fr": "Les ambassades proposent concerts, projections et stands gastronomiques dans six capitales étrangères. Cela coûterait peu et pourrait se faire plus d'amis qu'une note diplomatique." + }, + "yes": { + "label": { "en": "Fund the tour", "fr": "Financer la tournée" }, + "effects": [ + { "oneOff": 0.15 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "sector": "culture", "delta": 2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Save the money", "fr": "Économiser" }, + "effects": [{ "sector": "foreignAffairs", "delta": -1, "days": 120 }, { "stat": "softPower", "delta": -1, "days": 60 }] + } + }, + { + "id": "cul_golden_crown_01", + "category": "culture", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "dayMin": 270 }, + "title": { "en": "A neighbour wants its crown back", "fr": "Un voisin réclame sa couronne" }, + "body": { + "en": "A neighbouring republic asks for the return of a golden crown held in the national museum since the war. The museum calls it the star attraction; the neighbour calls it theft.", + "fr": "Une république voisine demande la restitution d'une couronne d'or conservée au musée national depuis la guerre. Le musée en fait sa pièce maîtresse ; le voisin parle de vol." + }, + "yes": { + "label": { "en": "Return the crown", "fr": "Restituer la couronne" }, + "effects": [ + { "stat": "softPower", "delta": 4, "days": 90 }, + { "sector": "culture", "delta": -2, "days": 120 }, + { "stat": "opinion", "delta": -3, "days": 40 } + ] + }, + "no": { + "label": { "en": "Refuse the request", "fr": "Refuser la demande" }, + "effects": [{ "stat": "softPower", "delta": -3, "days": 90 }, { "stat": "opinion", "delta": 2, "days": 40 }] + } + }, + { + "id": "cul_school_dress_01", + "category": "culture", + "doc": "memo", + "sender": "min_education", + "conditions": { "min": { "unrest": 15 }, "dayMin": 300 }, + "title": { "en": "Religious dress in public schools", "fr": "Tenues religieuses dans les écoles publiques" }, + "body": { + "en": "Schools report arguments over religious dress, from veils to crosses. A national rule would end local disputes; it would also tell some families their faith has no place in a classroom.", + "fr": "Les écoles signalent des querelles sur les tenues religieuses, des voiles aux croix. Une règle nationale mettrait fin aux conflits locaux ; elle dirait aussi à certaines familles que leur foi n'a pas sa place en classe." + }, + "yes": { + "label": { "en": "Ban it in schools", "fr": "L'interdire à l'école" }, + "effects": [ + { "stat": "order", "delta": 1, "days": 60 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "sector": "education", "delta": 1, "days": 120 }, + { "stat": "unrest", "delta": 2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Leave it to schools", "fr": "Laisser les écoles décider" }, + "effects": [ + { "stat": "civilRights", "delta": 1 }, + { "stat": "stability", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "cul_prison_film_01", + "category": "culture", + "doc": "memo", + "sender": "press_office", + "conditions": { "dayMin": 330 }, + "title": { + "en": "A foreign documentary on Valdorian prisons", + "fr": "Un documentaire étranger sur les prisons valdoriennes" + }, + "body": { + "en": "A foreign documentary on prison conditions in Valdoria has won an award and will be shown on a streaming service. The Press Office asks whether to have it blocked.", + "fr": "Un documentaire étranger sur les conditions de détention en Valdorie a remporté un prix et sera diffusé en ligne. Le porte-parole demande s'il faut le faire bloquer." + }, + "yes": { + "label": { "en": "Block the film", "fr": "Bloquer le film" }, + "effects": [ + { "stat": "civilRights", "delta": -3 }, + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "stat": "stability", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Let it be seen", "fr": "Laisser diffuser" }, + "effects": [ + { "sector": "justice", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 60 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "cul_radio_quota_01", + "category": "culture", + "doc": "memo", + "sender": "min_culture", + "conditions": { "dayMin": 420 }, + "title": { "en": "A quota for national music on radio", "fr": "Un quota de musique nationale à la radio" }, + "body": { + "en": "Radio stations play eight foreign songs for every Valdorian one. A quota would help local musicians; stations say listeners would switch to streaming.", + "fr": "Les radios passent huit chansons étrangères pour une chanson valdorienne. Un quota aiderait les musiciens locaux ; les stations disent que les auditeurs passeraient au streaming." + }, + "yes": { + "label": { "en": "Impose the quota", "fr": "Imposer le quota" }, + "effects": [ + { "sector": "culture", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "stat": "softPower", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Leave the airwaves free", "fr": "Laisser les ondes libres" }, + "effects": [{ "sector": "culture", "delta": -2, "days": 120 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "cul_church_property_01", + "category": "culture", + "doc": "letter", + "sender": "min_culture", + "conditions": { "max": { "stability": 65 }, "dayMin": 450 }, + "title": { + "en": "Return church property seized by the old regime?", + "fr": "Restituer les biens d'Église saisis par l'ancien régime ?" + }, + "body": { + "en": "Churches and monasteries seized by the old regime now serve as offices, schools and a police barracks. The clergy asks for their return; the tenants ask where they will go.", + "fr": "Églises et monastères saisis par l'ancien régime servent aujourd'hui de bureaux, d'écoles et de caserne. Le clergé en demande la restitution ; les occupants demandent où ils iront." + }, + "yes": { + "label": { "en": "Return the properties", "fr": "Restituer les biens" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "opinion", "delta": 1, "days": 40 }, + { "stat": "stability", "delta": 2, "days": 60 } + ], + "setFlags": ["cul_church_restitution"], + "followUp": { "id": "cul_church_politics_01", "inDays": 150 } + }, + "no": { + "label": { "en": "Keep them public", "fr": "Les garder publics" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 40 }, { "stat": "stability", "delta": -2, "days": 60 }] + } + }, + { + "id": "cul_church_politics_01", + "category": "culture", + "doc": "memo", + "sender": "press_office", + "followUpOnly": true, + "conditions": { "dayMin": 450 }, + "title": { + "en": "The bishops weigh in on family law", + "fr": "Les évêques s'invitent dans le débat sur le droit de la famille" + }, + "body": { + "en": "Emboldened by the return of its properties, the church hierarchy publicly opposes a reform of family law. Secular groups ask the government to remind it of the separation of church and state.", + "fr": "Forte de la restitution de ses biens, la hiérarchie de l'Église s'oppose publiquement à une réforme du droit de la famille. Les associations laïques demandent au gouvernement de lui rappeler la séparation de l'Église et de l'État." + }, + "yes": { + "label": { "en": "Defend secular rule", "fr": "Défendre la laïcité" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "civilRights", "delta": 2 } + ] + }, + "no": { + "label": { "en": "Seek its support", "fr": "Rechercher son soutien" }, + "effects": [ + { "stat": "stability", "delta": 2, "days": 60 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "cul_artist_income_01", + "category": "culture", + "doc": "petition", + "sender": "union", + "conditions": { "max": { "q:culture": 60 }, "dayMin": 500 }, + "title": { "en": "Income support for freelance artists", "fr": "Un revenu de soutien pour les artistes indépendants" }, + "body": { + "en": "Actors, musicians and stage crews work in bursts, with months between contracts. They ask for an income scheme between jobs; the Treasury asks how to tell an artist from someone who simply says so.", + "fr": "Acteurs, musiciens et techniciens de scène travaillent par à-coups, avec des mois entre deux contrats. Ils demandent un revenu entre les missions ; le Trésor demande comment distinguer un artiste de quelqu'un qui le dit simplement." + }, + "yes": { + "label": { "en": "Create the scheme", "fr": "Créer le dispositif" }, + "effects": [ + { "extraSpending": 0.15 }, + { "sector": "culture", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Decline", "fr": "Décliner" }, + "effects": [{ "sector": "culture", "delta": -2, "days": 120 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "cul_national_day_parade_01", + "category": "culture", + "doc": "letter", + "sender": "general", + "conditions": { "max": { "armyLoyalty": 70 }, "dayMin": 550 }, + "title": { "en": "A military parade for National Day", "fr": "Un défilé militaire pour la fête nationale" }, + "body": { + "en": "The General Staff proposes the first full military parade in twenty years. It would be a show of strength, and a reminder of what a parade costs per minute.", + "fr": "L'état-major propose le premier grand défilé militaire en vingt ans. Ce serait une démonstration de force, et un rappel de ce que coûte un défilé à la minute." + }, + "yes": { + "label": { "en": "Hold the parade", "fr": "Organiser le défilé" }, + "effects": [ + { "oneOff": 0.15 }, + { "stat": "hardPower", "delta": 2, "days": 60 }, + { "stat": "armyLoyalty", "delta": 3, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Hold a people's fair", "fr": "Organiser une fête populaire" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "armyLoyalty", "delta": -2, "days": 60 }, + { "sector": "culture", "delta": 1, "days": 120 } + ] + } + }, + { + "id": "cul_street_art_01", + "category": "culture", + "doc": "letter", + "sender": "mayor", + "conditions": { "dayMin": 600 }, + "title": { "en": "Murals or fines for graffiti?", "fr": "Fresques ou amendes pour les graffitis ?" }, + "body": { + "en": "Young artists have covered half the old town in murals, some brilliant and some not. City Hall must choose between fining the painters and giving them walls.", + "fr": "De jeunes artistes ont couvert la moitié de la vieille ville de fresques, certaines brillantes, d'autres moins. La mairie doit choisir entre verbaliser les peintres et leur offrir des murs." + }, + "yes": { + "label": { "en": "Designate legal walls", "fr": "Désigner des murs légaux" }, + "effects": [ + { "sector": "culture", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "order", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Fine the painters", "fr": "Verbaliser les peintres" }, + "effects": [ + { "stat": "order", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "culture", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "cul_cultural_capital_01", + "category": "culture", + "doc": "letter", + "sender": "mayor", + "conditions": { "dayMin": 650 }, + "title": { "en": "Bid for regional cultural capital", "fr": "Candidater au titre de capitale culturelle régionale" }, + "body": { + "en": "The mayor wants the capital to apply for the title of regional cultural capital, with a year of events, visitors and funding from neighbours. A programme and a budget are due by spring.", + "fr": "La mairie souhaite que la capitale brigue le titre de capitale culturelle régionale, avec un an d'événements, des visiteurs et des financements voisins. Un programme et un budget sont attendus au printemps." + }, + "yes": { + "label": { "en": "Back the application", "fr": "Soutenir la candidature" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "softPower", "delta": 2, "days": 90 }, + { "sector": "culture", "delta": 3, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Withdraw support", "fr": "Retirer son soutien" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "sector": "culture", "delta": -1, "days": 120 }] + } + }, + { + "id": "cul_dubbing_01", + "category": "culture", + "doc": "memo", + "sender": "min_culture", + "conditions": { "dayMin": 700 }, + "title": { "en": "Dub foreign films or keep subtitles?", "fr": "Doubler les films étrangers ou garder les sous-titres ?" }, + "body": { + "en": "Cinemas show foreign films with subtitles that half the country cannot read fast enough. Dubbing would fill seats and employ voice actors; purists say it kills the original.", + "fr": "Les cinémas projettent les films étrangers sous-titrés, et la moitié du pays lit trop lentement. Le doublage remplirait les salles et ferait travailler des comédiens ; les puristes disent qu'il tue l'original." + }, + "yes": { + "label": { "en": "Fund dubbing", "fr": "Financer le doublage" }, + "effects": [ + { "oneOff": 0.1 }, + { "sector": "culture", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "sector": "education", "delta": -1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Keep subtitles", "fr": "Garder les sous-titres" }, + "effects": [{ "sector": "education", "delta": 1, "days": 120 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "cul_security_archives_01", + "category": "culture", + "doc": "letter", + "sender": "intelligence", + "conditions": { "min": { "stability": 45 }, "dayMin": 750 }, + "title": { "en": "Open the security archives?", "fr": "Ouvrir les archives de la sécurité ?" }, + "body": { + "en": "The Intelligence Directorate holds files on thousands of citizens from the old regime. Opening them would reveal informers among today's elders, and some in this very building.", + "fr": "La Direction du renseignement détient des dossiers sur des milliers de citoyens de l'ancien régime. Les ouvrir révélerait des informateurs parmi les notables d'aujourd'hui, et certains dans ce bâtiment même." + }, + "yes": { + "label": { "en": "Open the archives", "fr": "Ouvrir les archives" }, + "effects": [ + { "sector": "justice", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": -3, "days": 60 }, + { "stat": "softPower", "delta": 2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Keep them sealed", "fr": "Garder les archives scellées" }, + "effects": [ + { "stat": "stability", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "civilRights", "delta": -1 } + ] + } + }, + { + "id": "cul_tapestry_loan_01", + "category": "culture", + "doc": "memo", + "sender": "min_culture", + "conditions": { "dayMin": 800 }, + "title": { "en": "Lend the national tapestry for cash", "fr": "Prêter la tapisserie nationale contre de l'argent" }, + "body": { + "en": "A wealthy foreign museum offers a large sum to display the Hallen Tapestry, the national treasure, for two years. Curators fear damage and a gap on the wall.", + "fr": "Un riche musée étranger offre une forte somme pour exposer pendant deux ans la tapisserie de Hallen, trésor national. Les conservateurs craignent des dégâts et un vide sur le mur." + }, + "yes": { + "label": { "en": "Lend the tapestry", "fr": "Prêter la tapisserie" }, + "effects": [ + { "oneOff": -0.3 }, + { "stat": "softPower", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "culture", "delta": 1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Keep it at home", "fr": "La garder au pays" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 40 }, { "sector": "culture", "delta": -1, "days": 120 }] + } + }, + { + "id": "cul_doping_01", + "category": "culture", + "doc": "memo", + "sender": "press_office", + "conditions": { "dayMin": 900 }, + "title": { "en": "A national champion tests positive", "fr": "Une championne nationale contrôlée positive" }, + "body": { + "en": "The national athletics champion, hero of last year's games, has tested positive for banned drugs. The federation suggests an internal inquiry; the international body demands an independent one.", + "fr": "La championne nationale d'athlétisme, héroïne des derniers Jeux, a été contrôlée positive à des produits interdits. La fédération propose une enquête interne ; l'instance internationale en exige une indépendante." + }, + "yes": { + "label": { "en": "Order an independent inquiry", "fr": "Ordonner une enquête indépendante" }, + "effects": [ + { "stat": "softPower", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "culture", "delta": 1, "days": 120 } + ], + "setFlags": ["cul_doping_probe"], + "followUp": { "id": "cul_doping_system_01", "inDays": 60 } + }, + "no": { + "label": { "en": "Back the federation", "fr": "Soutenir la fédération" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 40 }, { "stat": "softPower", "delta": -3, "days": 90 }] + } + }, + { + "id": "cul_doping_system_01", + "category": "culture", + "doc": "memo", + "sender": "press_office", + "followUpOnly": true, + "conditions": { "dayMin": 900 }, + "title": { "en": "The inquiry finds a doping system", "fr": "L'enquête met au jour un système de dopage" }, + "body": { + "en": "The inquiry found a system, not one athlete. Medals are being withdrawn, and the federation's board offers to resign if the government asks.", + "fr": "L'enquête a mis au jour un système, et non une seule athlète. Des médailles sont retirées, et le conseil de la fédération propose de démissionner si le gouvernement le demande." + }, + "yes": { + "label": { "en": "Dissolve the board", "fr": "Dissoudre le conseil" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "softPower", "delta": 1, "days": 90 }, + { "stat": "stability", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Protect the athletes", "fr": "Protéger les athlètes" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "softPower", "delta": -2, "days": 90 }, + { "stat": "stability", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "cul_new_flag_01", + "category": "culture", + "doc": "memo", + "sender": "press_office", + "conditions": { "dayMin": 1000 }, + "title": { "en": "A new flag for a new decade?", "fr": "Un nouveau drapeau pour une nouvelle décennie ?" }, + "body": { + "en": "A design competition has produced a modern flag that thousands prefer to the old one. Veterans say the old flag was carried in battle; designers say it looks like a tea towel.", + "fr": "Un concours de création a produit un drapeau moderne que des milliers de personnes préfèrent à l'ancien. Les anciens combattants rappellent que l'ancien a été porté au combat ; les graphistes disent qu'il ressemble à un torchon." + }, + "yes": { + "label": { "en": "Adopt the new flag", "fr": "Adopter le nouveau drapeau" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep the old flag", "fr": "Garder l'ancien drapeau" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 40 }, + { "stat": "armyLoyalty", "delta": 2, "days": 60 }, + { "sector": "culture", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "cul_dissident_prize_01", + "category": "culture", + "doc": "memo", + "sender": "press_office", + "conditions": { "max": { "civilRights": 60 }, "dayMin": 1100 }, + "title": { + "en": "A critical novelist wins an international prize", + "fr": "Un romancier critique remporte un prix international" + }, + "body": { + "en": "A Valdorian novelist who has criticised the government is awarded a major international literary prize. The ceremony is in a month, and the writer asks for permission to travel.", + "fr": "Un romancier valdorien critique envers le gouvernement reçoit un grand prix littéraire international. La cérémonie a lieu dans un mois, et l'écrivain demande l'autorisation de voyager." + }, + "yes": { + "label": { "en": "Let the writer travel", "fr": "Autoriser le voyage" }, + "effects": [ + { "stat": "softPower", "delta": 3, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Refuse the exit permit", "fr": "Refuser l'autorisation de sortie" }, + "effects": [ + { "stat": "softPower", "delta": -4, "days": 90 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "order", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "cul_guildhall_roof_01", + "category": "culture", + "doc": "report", + "sender": "min_culture", + "conditions": { "max": { "q:culture": 40 }, "dayMin": 1200 }, + "title": { "en": "A heritage roof collapses", "fr": "La toiture d'un monument s'effondre" }, + "body": { + "en": "The roof of the fourteenth-century guildhall collapsed after years of deferred maintenance. Nobody was hurt, but the press is counting the other monuments waiting their turn.", + "fr": "La toiture de la halle des corporations, datant du quatorzième siècle, s'est effondrée après des années d'entretien repoussé. Personne n'a été blessé, mais la presse recense les autres monuments qui attendent leur tour." + }, + "yes": { + "label": { "en": "Launch a heritage plan", "fr": "Lancer un plan patrimoine" }, + "effects": [ + { "oneOff": 0.5 }, + { "sector": "culture", "delta": 4, "days": 240 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Repair only this roof", "fr": "Réparer seulement ce toit" }, + "effects": [ + { "oneOff": 0.1 }, + { "sector": "culture", "delta": -1, "days": 120 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "cul_elite_sport_01", + "category": "culture", + "doc": "memo", + "sender": "min_culture", + "conditions": { "max": { "softPower": 60 }, "dayMin": 1300 }, + "title": { "en": "Fund elite athletes or school sport?", "fr": "Financer les athlètes d'élite ou le sport scolaire ?" }, + "body": { + "en": "The sports office wants its money in a few elite academies. Teachers argue that school sport reaches a thousand times more children.", + "fr": "Le bureau des sports veut concentrer ses fonds sur quelques académies d'élite. Les enseignants soutiennent que le sport scolaire touche mille fois plus d'enfants." + }, + "yes": { + "label": { "en": "Fund the academies", "fr": "Financer les académies" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "softPower", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 40 }, + { "sector": "health", "delta": -1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Fund school sport", "fr": "Financer le sport scolaire" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "health", "delta": 2, "days": 180 }, + { "sector": "education", "delta": 1, "days": 120 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "cul_pop_star_tour_01", + "category": "culture", + "doc": "memo", + "sender": "press_office", + "conditions": { "max": { "opinion": 55 }, "dayMin": 1400 }, + "title": { "en": "The pop star tours for the opposition", "fr": "La chanteuse pop part en tournée pour l'opposition" }, + "body": { + "en": "The country's most-streamed singer has announced a concert tour for the opposition, with a slogan borrowed from a lullaby. Radio stations await instructions.", + "fr": "La chanteuse la plus écoutée du pays annonce une tournée de concerts pour l'opposition, avec un slogan emprunté à une berceuse. Les radios attendent des consignes." + }, + "yes": { + "label": { "en": "Welcome the tour", "fr": "Accueillir la tournée" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "stability", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Pressure the venues", "fr": "Faire pression sur les salles" }, + "effects": [ + { "stat": "order", "delta": 1, "days": 60 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + } } ] diff --git a/web/data/cards/defense.json b/web/data/cards/defense.json index b63c866..bcd74bd 100644 --- a/web/data/cards/defense.json +++ b/web/data/cards/defense.json @@ -1,6 +1,9 @@ [ { - "id": "def_fighter_jets_01", "category": "defense", "doc": "memo", "sender": "min_defense", + "id": "def_fighter_jets_01", + "category": "defense", + "doc": "memo", + "sender": "min_defense", "title": { "en": "Buy new fighter jets", "fr": "Acheter de nouveaux avions de chasse" }, "body": { "en": "The air force's fleet is ageing. The Defence Ministry has a deal for a squadron of modern fighters, at a price that will be remembered in the next budget.", @@ -9,7 +12,7 @@ "yes": { "label": { "en": "Sign the contract", "fr": "Signer le contrat" }, "effects": [ - { "oneOff": 1.0 }, + { "oneOff": 1 }, { "stat": "hardPower", "delta": 4, "bias": true, "days": 730 }, { "stat": "armyLoyalty", "delta": 4, "days": 60 }, { "stat": "opinion", "delta": -2, "days": 30 } @@ -24,7 +27,10 @@ } }, { - "id": "def_conscription_01", "category": "defense", "doc": "memo", "sender": "general", + "id": "def_conscription_01", + "category": "defense", + "doc": "memo", + "sender": "general", "title": { "en": "Reintroduce conscription", "fr": "Rétablir le service militaire" }, "body": { "en": "The General Staff argues that a professional army is too small. Conscription would fill the barracks and trim the youth unemployment figures. Parents will not be pleased.", @@ -39,13 +45,13 @@ { "stat": "unrest", "delta": 2, "days": 60 } ] }, - "no": { - "label": { "en": "Refuse", "fr": "Refuser" }, - "effects": [{ "stat": "armyLoyalty", "delta": -2, "days": 30 }] - } + "no": { "label": { "en": "Refuse", "fr": "Refuser" }, "effects": [{ "stat": "armyLoyalty", "delta": -2, "days": 30 }] } }, { - "id": "def_exercises_01", "category": "defense", "doc": "letter", "sender": "general", + "id": "def_exercises_01", + "category": "defense", + "doc": "letter", + "sender": "general", "title": { "en": "Joint exercises with an ally", "fr": "Exercices conjoints avec un allié" }, "body": { "en": "A friendly army proposes joint manoeuvres along the shared border. Neighbours will read the signal in their own way.", @@ -65,7 +71,10 @@ } }, { - "id": "def_parade_01", "category": "defense", "doc": "memo", "sender": "general", + "id": "def_parade_01", + "category": "defense", + "doc": "memo", + "sender": "general", "title": { "en": "Military parade on national day", "fr": "Défilé militaire pour la fête nationale" }, "body": { "en": "The General Staff proposes a full parade through the capital. It costs money and closes the main avenue, but flags and drums have a way of lifting spirits.", @@ -82,14 +91,14 @@ }, "no": { "label": { "en": "Cancel it", "fr": "L'annuler" }, - "effects": [ - { "stat": "armyLoyalty", "delta": -2, "days": 30 }, - { "stat": "opinion", "delta": -1, "days": 20 } - ] + "effects": [{ "stat": "armyLoyalty", "delta": -2, "days": 30 }, { "stat": "opinion", "delta": -1, "days": 20 }] } }, { - "id": "def_garrison_closure_01", "category": "defense", "doc": "memo", "sender": "min_defense", + "id": "def_garrison_closure_01", + "category": "defense", + "doc": "memo", + "sender": "min_defense", "conditions": { "min": { "debt": 50 } }, "title": { "en": "Close an unprofitable garrison", "fr": "Fermer une garnison peu rentable" }, "body": { @@ -104,9 +113,1613 @@ { "stat": "hardPower", "delta": -2, "bias": true, "days": 365 } ] }, + "no": { "label": { "en": "Keep it open", "fr": "La maintenir" }, "effects": [{ "extraSpending": 0.15 }] } + }, + { + "id": "def_border_patrols_01", + "category": "defense", + "doc": "memo", + "sender": "general", + "title": { "en": "Reinforce the Ashgate patrols", "fr": "Renforcer les patrouilles d'Ashgate" }, + "body": { + "en": "Smugglers cross from Belmora through the Ashgate pass every night, and the border posts are staffed for a quieter decade. More patrols mean more soldiers away from home, and more incidents.", + "fr": "Des contrebandiers passent de Belmora par le col d'Ashgate chaque nuit, et les postes-frontières sont dimensionnés pour une décennie plus calme. Plus de patrouilles, c'est plus de soldats loin de chez eux, et plus d'incidents." + }, + "yes": { + "label": { "en": "Send more patrols", "fr": "Envoyer plus de patrouilles" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "order", "delta": 3, "days": 60 }, + { "stat": "armyLoyalty", "delta": 1, "days": 30 }, + { "stat": "softPower", "delta": -1, "days": 40 } + ] + }, "no": { - "label": { "en": "Keep it open", "fr": "La maintenir" }, - "effects": [{ "extraSpending": 0.15 }] + "label": { "en": "Keep the posts as they are", "fr": "Laisser les postes en l'état" }, + "effects": [ + { "stat": "order", "delta": -2, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "extraSpending": -0.1 } + ] + } + }, + { + "id": "def_recruit_campaign_01", + "category": "defense", + "doc": "memo", + "sender": "min_defense", + "conditions": { "max": { "hardPower": 52 } }, + "title": { "en": "Recruitment drive for the army", "fr": "Campagne de recrutement pour l'armée" }, + "body": { + "en": "Enlistment is 800 short of the authorised strength, and the barracks hold more empty bunks than soldiers. Signing bonuses and television spots would fill some of them, at a price per head the Treasury will notice.", + "fr": "Il manque 800 engagés à l'effectif autorisé, et les casernes comptent plus de lits vides que de soldats. Primes de signature et spots télévisés en combleraient une partie, à un prix par recrue que le Trésor remarquera." + }, + "yes": { + "label": { "en": "Fund the campaign", "fr": "Financer la campagne" }, + "effects": [ + { "oneOff": 0.15 }, + { "sector": "army", "delta": 3, "days": 120 }, + { "stat": "hardPower", "delta": 2, "days": 90 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Live with the shortfall", "fr": "Vivre avec le déficit" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -2, "days": 40 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 180 }, + { "extraSpending": -0.1 } + ] + } + }, + { + "id": "def_barracks_repair_01", + "category": "defense", + "doc": "report", + "sender": "general", + "conditions": { "max": { "q:army": 48 } }, + "title": { "en": "Barracks falling apart", "fr": "Des casernes qui tombent en ruine" }, + "body": { + "en": "An inspection found leaking roofs, broken boilers and a mess hall closed by the health service. The General Staff wants a repair programme before the winter, and recalls that bad barracks make bad soldiers.", + "fr": "Une inspection a relevé des toits qui fuient, des chaudières en panne et un mess fermé par les services sanitaires. L'état-major réclame un programme de réfection avant l'hiver et rappelle que de mauvaises casernes font de mauvais soldats." + }, + "yes": { + "label": { "en": "Fund the repairs", "fr": "Financer les réfections" }, + "effects": [ + { "oneOff": 0.5 }, + { "sector": "army", "delta": 6, "days": 180 }, + { "stat": "armyLoyalty", "delta": 3, "days": 60 } + ] + }, + "no": { + "label": { "en": "Defer the works", "fr": "Différer les travaux" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -4, "days": 60 }, + { "sector": "army", "delta": -2, "days": 90 }, + { "extraSpending": -0.15 } + ] + } + }, + { + "id": "def_pay_rise_01", + "category": "defense", + "doc": "memo", + "sender": "min_defense", + "conditions": { "max": { "armyLoyalty": 60 } }, + "title": { "en": "Pay rise for the rank and file", "fr": "Revalorisation de la solde" }, + "body": { + "en": "A corporal earns less than a bus driver, and the sergeants are starting to say so in public. A pay rise would settle the barracks; it would also be asked for again next year by every other uniformed service.", + "fr": "Un caporal gagne moins qu'un chauffeur de bus, et les sergents commencent à le dire publiquement. Une hausse de la solde apaiserait les casernes ; chaque autre corps en uniforme la réclamerait aussi l'an prochain." + }, + "yes": { + "label": { "en": "Raise military pay", "fr": "Augmenter la solde" }, + "effects": [ + { "extraSpending": 0.4 }, + { "stat": "armyLoyalty", "delta": 6, "days": 90 }, + { "sector": "army", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Hold pay steady", "fr": "Geler la solde" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -3, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 30 }, + { "extraSpending": -0.1 } + ] + } + }, + { + "id": "def_officer_merit_01", + "category": "defense", + "doc": "report", + "sender": "general", + "conditions": { "dayMin": 100 }, + "title": { "en": "Promotions by merit or by seniority", "fr": "Promotions au mérite ou à l'ancienneté" }, + "body": { + "en": "The promotion board still follows the order of seniority, so the most capable captains wait behind the most patient. A merit list would reshape the officer corps, and quite a few colonels have friends.", + "fr": "Le conseil d'avancement suit toujours l'ordre d'ancienneté, si bien que les capitaines les plus capables attendent derrière les plus patients. Une liste au mérite remodèlerait le corps des officiers, et plusieurs colonels ont des amis." + }, + "yes": { + "label": { "en": "Promote on merit", "fr": "Promouvoir au mérite" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -3, "days": 60 }, + { "sector": "army", "delta": 3, "days": 180 }, + { "stat": "hardPower", "delta": 2, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Keep seniority", "fr": "Garder l'ancienneté" }, + "effects": [ + { "stat": "armyLoyalty", "delta": 2, "days": 60 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 365 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "def_veterans_pension_01", + "category": "defense", + "doc": "petition", + "sender": "min_defense", + "conditions": { "dayMin": 130 }, + "title": { "en": "Veterans ask for indexed pensions", "fr": "Les anciens combattants veulent l'indexation" }, + "body": { + "en": "Associations of veterans from the border campaigns have gathered 60,000 signatures. Their pensions have lost a fifth of their value, and they march well.", + "fr": "Les associations d'anciens des campagnes frontalières ont réuni 60 000 signatures. Leurs pensions ont perdu un cinquième de leur valeur, et ils défilent bien." + }, + "yes": { + "label": { "en": "Index the pensions", "fr": "Indexer les pensions" }, + "effects": [ + { "extraSpending": 0.25 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "armyLoyalty", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Offer a one-off bonus", "fr": "Offrir une prime unique" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "armyLoyalty", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "def_cyber_unit_01", + "category": "defense", + "doc": "report", + "sender": "intelligence", + "conditions": { "dayMin": 90 }, + "title": { "en": "A cyber defence command", "fr": "Un commandement de cyberdéfense" }, + "body": { + "en": "Last month's attack on the railway timetables was a rehearsal, according to Intelligence. A small cyber command would cost little, but it would also need engineers the army cannot yet pay.", + "fr": "L'attaque contre les horaires de chemin de fer le mois dernier était une répétition, selon le renseignement. Un petit commandement cyber coûterait peu, mais il lui faudrait des ingénieurs que l'armée ne sait pas encore payer." + }, + "yes": { + "label": { "en": "Create the command", "fr": "Créer le commandement" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "army", "delta": 2, "days": 120 }, + { "stat": "hardPower", "delta": 2, "bias": true, "days": 365 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Rely on private firms", "fr": "S'en remettre aux entreprises" }, + "effects": [ + { "stat": "hardPower", "delta": -1, "bias": true, "days": 365 }, + { "stat": "stability", "delta": -1, "days": 40 }, + { "extraSpending": -0.05 } + ] + } + }, + { + "id": "def_league_drill_01", + "category": "defense", + "doc": "letter", + "sender": "general", + "conditions": { "dayMin": 110 }, + "title": { "en": "Place a brigade under League command", "fr": "Placer une brigade sous commandement de la Ligue" }, + "body": { + "en": "The Northern League invites Valdoria to put a brigade under its joint command for the winter drills in Torvania. It would sharpen the troops and tie our hands, and the officers abroad would not report to us.", + "fr": "La Ligue du Nord invite la Valdorie à placer une brigade sous son commandement conjoint pour les manœuvres d'hiver en Torvanie. Cela aguerrirait la troupe tout en nous liant les mains, et les officiers à l'étranger ne nous rendraient pas compte." + }, + "yes": { + "label": { "en": "Send the brigade", "fr": "Envoyer la brigade" }, + "effects": [ + { "oneOff": 0.15 }, + { "stat": "softPower", "delta": 3, "days": 60 }, + { "stat": "hardPower", "delta": 2, "days": 90 }, + { "stat": "armyLoyalty", "delta": -1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep the troops home", "fr": "Garder les troupes au pays" }, + "effects": [ + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "extraSpending": -0.05 } + ] + } + }, + { + "id": "def_cadets_01", + "category": "defense", + "doc": "letter", + "sender": "min_education", + "conditions": { "dayMin": 140 }, + "title": { "en": "Cadet corps in secondary schools", "fr": "Des corps de cadets au lycée" }, + "body": { + "en": "The Defence Ministry offers uniforms, drill instructors and weekend camps to any secondary school that asks. Parents are split between those who want discipline and those who have seen the instructors.", + "fr": "Le ministère de la Défense propose uniformes, instructeurs et camps de week-end à tout lycée qui en fait la demande. Les parents se partagent entre ceux qui veulent de la discipline et ceux qui ont vu les instructeurs." + }, + "yes": { + "label": { "en": "Open the cadet corps", "fr": "Ouvrir les corps de cadets" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "armyLoyalty", "delta": 2, "days": 60 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep schools civilian", "fr": "Garder des écoles civiles" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "armyLoyalty", "delta": -1, "days": 30 }, + { "sector": "education", "delta": 1, "days": 90 } + ] + } + }, + { + "id": "def_frigates_01", + "category": "defense", + "doc": "memo", + "sender": "min_defense", + "conditions": { "dayMin": 120 }, + "title": { "en": "Frigates from Draveth", "fr": "Des frégates de Draveth" }, + "body": { + "en": "The Draveth shipyards offer two used frigates at a price that would never survive an audit of the new ones. The coast guard would finally have something to show at sea, and a supplier to depend on for the next twenty years.", + "fr": "Les chantiers de Draveth proposent deux frégates d'occasion à un prix que ne supporterait aucun audit sur du neuf. Les garde-côtes auraient enfin quelque chose à montrer en mer, et un fournisseur dont dépendre pour vingt ans." + }, + "yes": { + "label": { "en": "Buy the frigates", "fr": "Acheter les frégates" }, + "effects": [ + { "oneOff": 0.8 }, + { "stat": "hardPower", "delta": 3, "bias": true, "days": 730 }, + { "stat": "armyLoyalty", "delta": 2, "days": 60 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ], + "setFlags": ["def_frigates"], + "followUp": { "id": "def_frigate_parts_01", "inDays": 120 } + }, + "no": { + "label": { "en": "Walk away from the deal", "fr": "Renoncer à l'achat" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -2, "days": 40 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 365 }, + { "oneOff": -0.1 } + ] + } + }, + { + "id": "def_frigate_parts_01", + "category": "defense", + "doc": "letter", + "sender": "min_finance", + "followUpOnly": true, + "title": { "en": "The frigates need parts", "fr": "Les frégates réclament des pièces" }, + "body": { + "en": "Draveth has quoted the spare parts for the frigates at three times the catalogue price, and reminds us the warranty depends on buying them from its yards. The navy says one frigate is already waiting at the quay.", + "fr": "Draveth a facturé les pièces détachées des frégates trois fois le prix du catalogue et nous rappelle que la garantie dépend d'un achat dans ses chantiers. La marine indique qu'une frégate attend déjà à quai." + }, + "yes": { + "label": { "en": "Pay the price", "fr": "Payer le prix" }, + "effects": [ + { "extraSpending": 0.25 }, + { "sector": "army", "delta": 2, "days": 90 }, + { "stat": "armyLoyalty", "delta": 1, "days": 30 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Cannibalise one frigate", "fr": "Cannibaliser une frégate" }, + "effects": [ + { "stat": "hardPower", "delta": -2, "bias": true, "days": 365 }, + { "stat": "armyLoyalty", "delta": -2, "days": 60 }, + { "extraSpending": -0.1 } + ] + } + }, + { + "id": "def_domestic_arms_01", + "category": "defense", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 300, "max": { "q:industry": 55 } }, + "title": { "en": "Subsidise the Karsholm arms works", "fr": "Subventionner l'usine d'armes de Karsholm" }, + "body": { + "en": "The state-owned Karsholm works makes rifles of fair quality and loses money doing it. A subsidy would keep 3,000 jobs and a domestic supplier, and the finance ministry would rather it learned to sell abroad.", + "fr": "L'usine publique de Karsholm fabrique des fusils de qualité correcte et perd de l'argent en le faisant. Une subvention sauverait 3 000 emplois et un fournisseur national, et le ministère des Finances préférerait qu'elle apprenne à exporter." + }, + "yes": { + "label": { "en": "Subsidise the works", "fr": "Subventionner l'usine" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "industry", "delta": 3, "days": 180 }, + { "stat": "hardPower", "delta": 2, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Let it compete", "fr": "La laisser affronter le marché" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "extraSpending": -0.1 } + ] + } + }, + { + "id": "def_arms_fair_01", + "category": "defense", + "doc": "letter", + "sender": "min_industry", + "conditions": { "dayMin": 330 }, + "title": { "en": "Host an international arms fair", "fr": "Accueillir un salon international de l'armement" }, + "body": { + "en": "A trade association wants to hold its yearly arms fair in the capital. Hotels would fill and the order books of our small manufacturers with them; activists are already printing banners.", + "fr": "Une association professionnelle veut tenir son salon annuel de l'armement dans la capitale. Les hôtels se rempliraient, et avec eux les carnets de commandes de nos petits fabricants ; des militants impriment déjà leurs banderoles." + }, + "yes": { + "label": { "en": "Host the fair", "fr": "Accueillir le salon" }, + "effects": [ + { "oneOff": -0.2 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Decline the fair", "fr": "Refuser le salon" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "industry", "delta": -2, "days": 120 }, + { "extraSpending": 0.05 } + ] + } + }, + { + "id": "def_intel_share_01", + "category": "defense", + "doc": "memo", + "sender": "intelligence", + "conditions": { "dayMin": 370 }, + "title": { "en": "Share raw intelligence with the League", "fr": "Partager le renseignement brut avec la Ligue" }, + "body": { + "en": "The Northern League wants direct access to our signals intelligence, including some traffic that concerns Valdorian citizens. In return, we would see what the League sees. Torvania, in particular, sees a lot.", + "fr": "La Ligue du Nord veut un accès direct à nos interceptions, y compris des échanges qui concernent des citoyens valdoriens. En retour, nous verrions ce que voit la Ligue. La Torvanie, en particulier, voit beaucoup de choses." + }, + "yes": { + "label": { "en": "Open the data link", "fr": "Ouvrir la liaison de données" }, + "effects": [ + { "stat": "softPower", "delta": 3, "days": 90 }, + { "stat": "hardPower", "delta": 2, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Share only finished reports", "fr": "Ne partager que des synthèses" }, + "effects": [ + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "def_military_court_01", + "category": "defense", + "doc": "report", + "sender": "min_justice", + "conditions": { "dayMin": 380 }, + "title": { "en": "Military crimes to civilian courts", "fr": "Les crimes militaires devant les tribunaux civils" }, + "body": { + "en": "After a string of acquittals in closed courts-martial, the Justice Ministry proposes sending serious offences by soldiers to ordinary courts. The army calls it distrust, and the families of the victims call it overdue.", + "fr": "Après une série d'acquittements devant des tribunaux militaires à huis clos, le ministère de la Justice propose de renvoyer les infractions graves des militaires devant les juridictions ordinaires. L'armée y voit de la défiance, les familles des victimes un retard." + }, + "yes": { + "label": { "en": "Move them to civilian courts", "fr": "Les confier aux tribunaux civils" }, + "effects": [ + { "stat": "civilRights", "delta": 2 }, + { "sector": "justice", "delta": 2, "days": 120 }, + { "stat": "armyLoyalty", "delta": -4, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep courts-martial", "fr": "Garder les cours martiales" }, + "effects": [ + { "stat": "armyLoyalty", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "def_peacekeepers_01", + "category": "defense", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "dayMin": 250 }, + "title": { "en": "A battalion for the Concord mission", "fr": "Un bataillon pour la mission du Concord" }, + "body": { + "en": "The Concord of Nations asks Valdoria for a battalion in a distant peacekeeping mission. It would put our flag among serious countries and our soldiers in a place few voters can find on a map.", + "fr": "Le Concord des nations demande à la Valdorie un bataillon pour une mission de paix lointaine. Notre drapeau figurerait parmi ceux des pays sérieux, et nos soldats dans un endroit que peu d'électeurs savent situer sur une carte." + }, + "yes": { + "label": { "en": "Send the battalion", "fr": "Envoyer le bataillon" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "softPower", "delta": 5, "days": 90 }, + { "stat": "hardPower", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ], + "setFlags": ["def_peace_mission"], + "followUp": { "id": "def_peace_casualties_01", "inDays": 120 } + }, + "no": { + "label": { "en": "Decline the mission", "fr": "Décliner la mission" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 60 }, + { "stat": "armyLoyalty", "delta": -1, "days": 30 }, + { "oneOff": -0.05 } + ] + } + }, + { + "id": "def_peace_casualties_01", + "category": "defense", + "doc": "telegram", + "sender": "general", + "followUpOnly": true, + "title": { "en": "Peacekeepers killed in an ambush", "fr": "Des Casques du Concord tués dans une embuscade" }, + "body": { + "en": "TWO VALDORIAN SOLDIERS KILLED IN AMBUSH ON CONCORD CONVOY. FAMILIES NOTIFIED. CONCORD ASKS WHETHER BATTALION REMAINS. NEWSPAPERS ASK WHY WE ARE THERE. STOP.", + "fr": "DEUX SOLDATS VALDORIENS TUES DANS UNE EMBUSCADE CONTRE CONVOI DU CONCORD. FAMILLES PREVENUES. LE CONCORD DEMANDE SI LE BATAILLON RESTE. LA PRESSE DEMANDE POURQUOI NOUS Y SOMMES. STOP." + }, + "yes": { + "label": { "en": "Keep the battalion in place", "fr": "Maintenir le bataillon" }, + "effects": [ + { "stat": "softPower", "delta": 3, "days": 90 }, + { "stat": "armyLoyalty", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Bring the battalion home", "fr": "Rapatrier le bataillon" }, + "effects": [ + { "stat": "softPower", "delta": -4, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "armyLoyalty", "delta": -1, "days": 30 }, + { "oneOff": -0.1 } + ] + } + }, + { + "id": "def_army_floods_01", + "category": "defense", + "doc": "telegram", + "sender": "general", + "conditions": { "dayMin": 200 }, + "title": { "en": "Floods on the Sorn: deploy the army", "fr": "Crue de la Sorn : déployer l'armée" }, + "body": { + "en": "THE SORN HAS BURST ITS BANKS IN THREE DISTRICTS. 4,000 SOLDIERS AVAILABLE FOR SANDBAGGING AND EVACUATION. SPRING ROTATION WOULD BE DELAYED. CIVIL PROTECTION ASKS FOR AN ANSWER BY EVENING. STOP.", + "fr": "LA SORN A DEBORDE DANS TROIS DISTRICTS. 4 000 SOLDATS DISPONIBLES POUR SACS DE SABLE ET EVACUATION. LA ROTATION DE PRINTEMPS SERAIT RETARDEE. LA PROTECTION CIVILE ATTEND UNE REPONSE CE SOIR. STOP." + }, + "yes": { + "label": { "en": "Deploy the troops", "fr": "Déployer les troupes" }, + "effects": [ + { "oneOff": 0.15 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "order", "delta": 1, "days": 30 }, + { "sector": "army", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Leave it to civil protection", "fr": "Laisser la protection civile" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 30 }, + { "stat": "armyLoyalty", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "def_counterintel_01", + "category": "defense", + "doc": "memo", + "sender": "intelligence", + "conditions": { "dayMin": 600 }, + "title": { "en": "Leaks inside the General Staff", "fr": "Fuites au sein de l'état-major" }, + "body": { + "en": "Documents from a closed briefing have reached a foreign embassy. Intelligence can name fourteen officers who had access and would like to move them out of sensitive posts while it investigates. The officers' mess has already noticed.", + "fr": "Des documents d'un briefing confidentiel sont parvenus à une ambassade étrangère. Le renseignement peut citer quatorze officiers qui y avaient accès et voudrait les écarter des postes sensibles le temps de l'enquête. Le mess l'a déjà remarqué." + }, + "yes": { + "label": { "en": "Move the officers out", "fr": "Écarter les officiers" }, + "effects": [ + { "stat": "order", "delta": 1, "days": 30 }, + { "stat": "armyLoyalty", "delta": -5, "days": 90 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 180 }, + { "stat": "civilRights", "delta": -2 } + ], + "setFlags": ["def_purge"], + "followUp": { "id": "def_purge_resign_01", "inDays": 60 } + }, + "no": { + "label": { "en": "Trust the officer corps", "fr": "Faire confiance aux officiers" }, + "effects": [ + { "stat": "stability", "delta": -2, "days": 40 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "armyLoyalty", "delta": 2, "days": 40 } + ] + } + }, + { + "id": "def_purge_resign_01", + "category": "defense", + "doc": "letter", + "sender": "general", + "followUpOnly": true, + "title": { "en": "Colonels threaten to resign", "fr": "Des colonels menacent de démissionner" }, + "body": { + "en": "Thirty senior officers say the transfers amount to a purge and have placed their resignations on the Chief of Staff's desk, unsigned for now. Intelligence still has not named a culprit.", + "fr": "Trente officiers supérieurs jugent ces mutations assimilables à une purge et ont déposé leur démission sur le bureau du chef d'état-major, pas encore signée. Le renseignement n'a toujours pas désigné de coupable." + }, + "yes": { + "label": { "en": "Reinstate most of them", "fr": "Réintégrer la plupart" }, + "effects": [ + { "stat": "armyLoyalty", "delta": 4, "days": 60 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 180 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Accept the resignations", "fr": "Accepter les démissions" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -4, "days": 60 }, + { "stat": "hardPower", "delta": -2, "bias": true, "days": 365 }, + { "sector": "army", "delta": -3, "days": 180 }, + { "extraSpending": -0.15 } + ] + } + }, + { + "id": "def_missile_shield_01", + "category": "defense", + "doc": "memo", + "sender": "min_defense", + "conditions": { "dayMin": 480, "max": { "hardPower": 55 } }, + "title": { "en": "An air defence system for the capital", "fr": "Une défense antiaérienne pour la capitale" }, + "body": { + "en": "The ministry has found an air defence system that would cover the capital and the main port. It costs as much as the school building budget for three years, and works best when no one has to use it.", + "fr": "Le ministère a trouvé un système de défense antiaérienne qui couvrirait la capitale et le port principal. Il coûte l'équivalent de trois ans du budget des constructions scolaires, et fonctionne mieux quand personne n'a à s'en servir." + }, + "yes": { + "label": { "en": "Buy the system", "fr": "Acheter le système" }, + "effects": [ + { "oneOff": 1.2 }, + { "stat": "hardPower", "delta": 4, "bias": true, "days": 900 }, + { "stat": "armyLoyalty", "delta": 2, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Postpone the purchase", "fr": "Reporter l'achat" }, + "effects": [ + { "stat": "hardPower", "delta": -1, "bias": true, "days": 365 }, + { "stat": "armyLoyalty", "delta": -2, "days": 40 }, + { "oneOff": -0.15 } + ] + } + }, + { + "id": "def_village_guard_01", + "category": "defense", + "doc": "petition", + "sender": "min_interior", + "conditions": { "dayMin": 520, "min": { "unrest": 28 } }, + "title": { "en": "Border villages ask for arms", "fr": "Les villages frontaliers demandent des armes" }, + "body": { + "en": "Villages along the Belmora frontier want licensed hunting rifles and a night watch of their own, since the patrols come late. The Interior Ministry fears more rifles than watchmen.", + "fr": "Des villages le long de la frontière avec Belmora réclament des fusils de chasse autorisés et une garde de nuit, les patrouilles arrivant trop tard. Le ministère de l'Intérieur craint plus de fusils que de veilleurs." + }, + "yes": { + "label": { "en": "Allow village guards", "fr": "Autoriser les gardes locales" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "stability", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Refuse to arm villages", "fr": "Refuser d'armer les villages" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "order", "delta": -1, "days": 30 }, + { "extraSpending": -0.05 } + ] + } + }, + { + "id": "def_reserve_force_01", + "category": "defense", + "doc": "memo", + "sender": "general", + "conditions": { "dayMin": 450 }, + "title": { "en": "A weekend reserve force", "fr": "Une réserve de volontaires du week-end" }, + "body": { + "en": "The General Staff proposes a territorial reserve of 12,000 volunteers, drilled twelve weekends a year. It is cheap, popular in the provinces and a little too close to a militia for the ministry of the Interior.", + "fr": "L'état-major propose une réserve territoriale de 12 000 volontaires, entraînés douze week-ends par an. C'est bon marché, populaire en province et un peu trop proche d'une milice au goût du ministère de l'Intérieur." + }, + "yes": { + "label": { "en": "Create the reserve", "fr": "Créer la réserve" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "hardPower", "delta": 2, "bias": true, "days": 730 }, + { "sector": "army", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the army regular", "fr": "Garder une armée d'active" }, + "effects": [ + { "stat": "hardPower", "delta": -1, "bias": true, "days": 365 }, + { "stat": "armyLoyalty", "delta": -1, "days": 30 }, + { "extraSpending": -0.05 } + ] + } + }, + { + "id": "def_ammo_stockpile_01", + "category": "defense", + "doc": "report", + "sender": "general", + "conditions": { "max": { "q:army": 60 } }, + "title": { "en": "Ammunition for three weeks", "fr": "Des munitions pour trois semaines" }, + "body": { + "en": "The depots hold enough ammunition for three weeks of serious fighting, and half of it is older than the soldiers who would fire it. Restocking is dull, expensive and invisible, which is why it keeps being postponed.", + "fr": "Les dépôts contiennent de quoi tenir trois semaines de combats sérieux, et la moitié des munitions est plus vieille que les soldats qui les tireraient. Réapprovisionner est ennuyeux, cher et invisible, ce qui explique les reports successifs." + }, + "yes": { + "label": { "en": "Restock the depots", "fr": "Reconstituer les stocks" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "army", "delta": 3, "days": 120 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 365 }, + { "stat": "armyLoyalty", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Postpone again", "fr": "Reporter encore" }, + "effects": [ + { "stat": "hardPower", "delta": -2, "bias": true, "days": 365 }, + { "stat": "armyLoyalty", "delta": -1, "days": 30 }, + { "extraSpending": -0.1 } + ] + } + }, + { + "id": "def_wargame_01", + "category": "defense", + "doc": "report", + "sender": "general", + "conditions": { "max": { "hardPower": 50 } }, + "title": { "en": "The war game ends in nine days", "fr": "Le wargame s'achève au bout de neuf jours" }, + "body": { + "en": "The staff college simulated an attack from the north, and the capital fell on the ninth day. The exercise assumed the reserves were mobilised on time, which the exercise's authors describe as generous.", + "fr": "L'école de guerre a simulé une attaque venue du nord, et la capitale est tombée le neuvième jour. L'exercice supposait une mobilisation des réserves à temps, ce que ses auteurs qualifient de généreux." + }, + "yes": { + "label": { "en": "Fund a reform plan", "fr": "Financer un plan de réforme" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "army", "delta": 4, "days": 240 }, + { "stat": "hardPower", "delta": 3, "bias": true, "days": 730 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Classify the findings", "fr": "Classer le rapport" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -2, "days": 30 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 1, "days": 20 } + ] + } + }, + { + "id": "def_soldier_council_01", + "category": "defense", + "doc": "petition", + "sender": "union", + "conditions": { "max": { "armyLoyalty": 62 } }, + "title": { "en": "Soldiers ask for a representative council", "fr": "Les soldats demandent un conseil de représentants" }, + "body": { + "en": "The National Labour Confederation forwards a petition from 4,000 rank-and-file soldiers asking for an elected council to speak on pay and conditions. The General Staff calls it the first step towards a barracks soviet.", + "fr": "La Confédération nationale du travail transmet une pétition de 4 000 militaires du rang réclamant un conseil élu pour parler solde et conditions de vie. L'état-major y voit le premier pas vers un soviet de caserne." + }, + "yes": { + "label": { "en": "Allow the council", "fr": "Autoriser le conseil" }, + "effects": [ + { "stat": "armyLoyalty", "delta": 4, "days": 90 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Refuse the council", "fr": "Refuser le conseil" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -3, "days": 60 }, + { "stat": "unrest", "delta": 1, "days": 30 }, + { "stat": "order", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "def_army_businesses_01", + "category": "defense", + "doc": "report", + "sender": "min_finance", + "conditions": { "dayMin": 350 }, + "title": { "en": "The army's side businesses", "fr": "Les affaires annexes de l'armée" }, + "body": { + "en": "The army runs farms, two bakeries and a bus company, with income that appears in no budget. Finance wants them sold or folded into the accounts, and the General Staff says the bus company pays for the officers' holidays and the bakeries for the rest.", + "fr": "L'armée exploite des fermes, deux boulangeries et une compagnie d'autobus, pour des revenus qui ne figurent dans aucun budget. Les Finances veulent les vendre ou les intégrer aux comptes, et l'état-major répond que les bus paient les vacances des officiers et les boulangeries le reste." + }, + "yes": { + "label": { "en": "Sell or absorb them", "fr": "Les céder ou les intégrer" }, + "effects": [ + { "oneOff": -0.3 }, + { "stat": "armyLoyalty", "delta": -4, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave things as they are", "fr": "Laisser les choses en l'état" }, + "effects": [ + { "stat": "armyLoyalty", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "extraSpending": 0.05 } + ] + } + }, + { + "id": "def_nonprolif_01", + "category": "defense", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "dayMin": 420 }, + "title": { "en": "Open the isotope reactor to inspectors", "fr": "Ouvrir le réacteur à isotopes aux inspecteurs" }, + "body": { + "en": "The Concord of Nations wants to inspect the small isotope reactor at Karst, which makes medicine and could, in theory, make other things. Accepting reassures the neighbours and tells the General Staff that the file is closed.", + "fr": "Le Concord des nations veut inspecter le petit réacteur à isotopes de Karst, qui produit des médicaments et pourrait, en théorie, produire autre chose. Accepter rassure les voisins et signifie à l'état-major que le dossier est clos." + }, + "yes": { + "label": { "en": "Accept the inspections", "fr": "Accepter les inspections" }, + "effects": [ + { "stat": "softPower", "delta": 4, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Refuse the inspectors", "fr": "Refuser les inspecteurs" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 60 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 365 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "def_drones_01", + "category": "defense", + "doc": "memo", + "sender": "min_defense", + "conditions": { "dayMin": 440 }, + "title": { "en": "Armed drones: buy or build", "fr": "Drones armés : acheter ou fabriquer" }, + "body": { + "en": "Draveth sells armed drones at once, but each flight would need its clearance. A Valdorian prototype would take five years and might never fly straight. The General Staff wants drones, and prefers to answer to nobody else.", + "fr": "Draveth vend des drones armés immédiatement, mais chaque vol exigerait son autorisation. Un prototype valdorien prendrait cinq ans et ne volerait peut-être jamais droit. L'état-major veut des drones, et préfère ne répondre à personne d'autre." + }, + "yes": { + "label": { "en": "Buy from Draveth", "fr": "Acheter à Draveth" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "hardPower", "delta": 3, "bias": true, "days": 730 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "armyLoyalty", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Build our own", "fr": "Fabriquer les nôtres" }, + "effects": [ + { "extraSpending": 0.15 }, + { "sector": "research", "delta": 3, "days": 180 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 365 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "def_base_draveth_01", + "category": "defense", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "dayMin": 470 }, + "title": { "en": "Draveth asks for a berth at Port Halden", "fr": "Draveth demande un quai à Port Halden" }, + "body": { + "en": "The Draveth navy would like a ten-year lease on a berth at Port Halden, with a large payment upfront and an officer's mess of its own. Neighbours will count the flags on the pier, and so will the opposition.", + "fr": "La marine de Draveth souhaiterait un bail de dix ans sur un quai de Port Halden, avec un gros versement à la signature et un mess d'officiers pour elle seule. Les voisins compteront les pavillons sur la jetée, et l'opposition aussi." + }, + "yes": { + "label": { "en": "Grant the lease", "fr": "Accorder le bail" }, + "effects": [ + { "oneOff": -0.5 }, + { "stat": "hardPower", "delta": 2, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": -2, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ], + "setFlags": ["def_draveth_base"], + "followUp": { "id": "def_base_extension_01", "inDays": 150 } + }, + "no": { + "label": { "en": "Refuse the lease", "fr": "Refuser le bail" }, + "effects": [ + { "stat": "softPower", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "def_base_extension_01", + "category": "defense", + "doc": "letter", + "sender": "min_foreign", + "followUpOnly": true, + "title": { "en": "Draveth wants a second ship at the pier", "fr": "Draveth veut un second navire à quai" }, + "body": { + "en": "Draveth asks to station a second ship at Port Halden and to extend the lease. Kessaly, whose coast is visible from the harbour mouth, has sent a note calling the presence provocative.", + "fr": "Draveth demande de stationner un second navire à Port Halden et de prolonger le bail. Kessaly, dont la côte est visible de l'entrée du port, a envoyé une note qualifiant cette présence de provocante." + }, + "yes": { + "label": { "en": "Allow the extension", "fr": "Autoriser l'extension" }, + "effects": [ + { "oneOff": -0.3 }, + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Refuse the extension", "fr": "Refuser l'extension" }, + "effects": [ + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 180 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "def_hazing_01", + "category": "defense", + "doc": "report", + "sender": "min_defense", + "conditions": { "dayMin": 500 }, + "title": { "en": "A recruit dies after a night drill", "fr": "Un appelé meurt après une marche de nuit" }, + "body": { + "en": "A nineteen-year-old recruit collapsed and died after a night march organised as a punishment. The platoon's account and the officers' account do not match, and the family wants more than a letter of condolence.", + "fr": "Un appelé de dix-neuf ans s'est effondré et est mort après une marche de nuit infligée en guise de punition. Le récit de sa section et celui des officiers ne concordent pas, et la famille attend davantage qu'une lettre de condoléances." + }, + "yes": { + "label": { "en": "Order an independent inquiry", "fr": "Ouvrir une enquête externe" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "armyLoyalty", "delta": -3, "days": 60 }, + { "stat": "civilRights", "delta": 1 }, + { "sector": "justice", "delta": 1, "days": 90 } + ], + "followUp": { "id": "def_hazing_report_01", "inDays": 90 } + }, + "no": { + "label": { "en": "Leave it to an internal review", "fr": "S'en tenir à une revue interne" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "armyLoyalty", "delta": 2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "def_hazing_report_01", + "category": "defense", + "doc": "report", + "sender": "general", + "followUpOnly": true, + "title": { "en": "The inquiry names eleven sergeants", "fr": "L'enquête met en cause onze sous-officiers" }, + "body": { + "en": "The inquiry has concluded: eleven sergeants, a lieutenant and a battalion commander who looked away. The General Staff asks that the report be published only in summary, to spare the institution and the ongoing training programmes.", + "fr": "L'enquête a rendu ses conclusions : onze sous-officiers, un lieutenant et un chef de bataillon qui a détourné les yeux. L'état-major demande que le rapport ne soit publié qu'en résumé, pour ménager l'institution et les formations en cours." + }, + "yes": { + "label": { "en": "Publish it in full", "fr": "Publier le rapport en entier" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "armyLoyalty", "delta": -3, "days": 60 }, + { "sector": "justice", "delta": 2, "days": 90 }, + { "stat": "civilRights", "delta": 1 } + ] + }, + "no": { + "label": { "en": "Publish a summary only", "fr": "Ne publier qu'un résumé" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "armyLoyalty", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": -1 } + ] + } + }, + { + "id": "def_ashgate_incident_01", + "category": "defense", + "doc": "telegram", + "sender": "general", + "conditions": { "dayMin": 550 }, + "title": { "en": "Shots exchanged at Ashgate", "fr": "Coups de feu échangés à Ashgate" }, + "body": { + "en": "BELMORAN PATROL FIRED ON VALDORIAN POST AT ASHGATE PASS. ONE SOLDIER WOUNDED, NOT CRITICAL. RETURN FIRE SILENCED THE POSITION. BELMORA CLAIMS WE CROSSED THE LINE. STOP.", + "fr": "PATROUILLE BELMORANE A OUVERT LE FEU SUR POSTE VALDORIEN AU COL D'ASHGATE. UN SOLDAT BLESSE, PAS GRAVEMENT. NOTRE RIPOSTE A REDUIT LA POSITION AU SILENCE. BELMORA DIT QUE NOUS AVONS FRANCHI LA LIGNE. STOP." + }, + "yes": { + "label": { "en": "Protest and reinforce", "fr": "Protester et renforcer" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "hardPower", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": 3, "days": 30 }, + { "stat": "softPower", "delta": -2, "days": 60 } + ], + "followUp": { "id": "def_ashgate_talks_01", "inDays": 60 } + }, + "no": { + "label": { "en": "Hold fire, ask for talks", "fr": "Cesser le feu, discuter" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "armyLoyalty", "delta": -2, "days": 40 }, + { "stat": "softPower", "delta": 2, "days": 60 } + ] + } + }, + { + "id": "def_ashgate_talks_01", + "category": "defense", + "doc": "letter", + "sender": "min_foreign", + "followUpOnly": true, + "title": { "en": "Belmora proposes talks on the pass", "fr": "Belmora propose des pourparlers sur le col" }, + "body": { + "en": "After the exchange of fire, Belmora offers to meet at the pass to discuss a joint patrol protocol. The General Staff warns that a table is also a place where lines get redrawn.", + "fr": "Après l'échange de tirs, Belmora propose de se rencontrer au col pour discuter d'un protocole de patrouille conjointe. L'état-major prévient qu'une table de négociation est aussi un endroit où l'on redessine les lignes." + }, + "yes": { + "label": { "en": "Meet at the pass", "fr": "Se rencontrer au col" }, + "effects": [ + { "oneOff": 0.05 }, + { "stat": "softPower", "delta": 3, "days": 60 }, + { "stat": "hardPower", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Refuse to meet", "fr": "Refuser la rencontre" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "hardPower", "delta": 1, "days": 90 }, + { "stat": "softPower", "delta": -3, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "def_firing_range_01", + "category": "defense", + "doc": "petition", + "sender": "min_environment", + "conditions": { "dayMin": 580 }, + "title": { "en": "Neighbours of the Karst Heath range protest", "fr": "Les riverains du camp de Karst Heath protestent" }, + "body": { + "en": "Residents near the Karst Heath firing range complain of daily noise, cracked walls and a heath fire that burned for four days. The army says there is nowhere else to train a brigade that does not already have a village on it.", + "fr": "Les riverains du champ de tir de Karst Heath se plaignent du bruit quotidien, de murs fissurés et d'un incendie de lande qui a duré quatre jours. L'armée répond qu'il n'existe aucun autre endroit pour entraîner une brigade où il n'y ait pas déjà un village." + }, + "yes": { + "label": { "en": "Close the range", "fr": "Fermer le champ de tir" }, + "effects": [ + { "extraSpending": -0.05 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "armyLoyalty", "delta": -3, "days": 60 }, + { "sector": "army", "delta": -2, "days": 120 }, + { "sector": "environment", "delta": 2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Keep it open", "fr": "Le maintenir" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 30 }, + { "sector": "environment", "delta": -1, "days": 90 }, + { "stat": "armyLoyalty", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "def_coup_rumour_01", + "category": "defense", + "doc": "telegram", + "sender": "intelligence", + "conditions": { "dayMin": 650, "max": { "armyLoyalty": 55 } }, + "title": { "en": "Generals dining in private", "fr": "Des généraux dînent en privé" }, + "body": { + "en": "INTELLIGENCE REPORTS REPEATED PRIVATE DINNERS OF SEVEN GENERALS AT THE OLD CAVALRY CLUB. TOPIC UNKNOWN. NO EVIDENCE OF PLOT. NO EVIDENCE OF ANYTHING ELSE. STOP.", + "fr": "LE RENSEIGNEMENT SIGNALE DES DINERS PRIVES REPETES DE SEPT GENERAUX AU VIEUX CERCLE DE LA CAVALERIE. SUJET INCONNU. AUCUNE PREUVE DE COMPLOT. AUCUNE PREUVE D'AUTRE CHOSE. STOP." + }, + "yes": { + "label": { "en": "Summon the generals", "fr": "Convoquer les généraux" }, + "effects": [ + { "stat": "stability", "delta": 2, "days": 40 }, + { "stat": "order", "delta": 1, "days": 30 }, + { "stat": "armyLoyalty", "delta": -2, "days": 40 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 90 } + ] + }, + "no": { + "label": { "en": "Do nothing", "fr": "Ne rien faire" }, + "effects": [ + { "stat": "armyLoyalty", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": -2, "days": 40 }, + { "stat": "opinion", "delta": -1, "days": 20 } + ] + } + }, + { + "id": "def_generals_retire_01", + "category": "defense", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 620, "min": { "debt": 60 } }, + "title": { "en": "Forty generals for a small army", "fr": "Quarante généraux pour une petite armée" }, + "body": { + "en": "The army has forty generals and twelve thousand soldiers in the field. Finance proposes to retire half of them early on full pension, which saves money in the long run and creates a small brotherhood of the aggrieved.", + "fr": "L'armée compte quarante généraux pour douze mille soldats sur le terrain. Les Finances proposent d'en mettre la moitié à la retraite anticipée à taux plein, ce qui économise à long terme et crée une petite confrérie de mécontents." + }, + "yes": { + "label": { "en": "Retire twenty generals", "fr": "Vingt généraux à la retraite" }, + "effects": [ + { "oneOff": 0.15 }, + { "extraSpending": -0.25 }, + { "stat": "armyLoyalty", "delta": -3, "days": 60 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep the general staff", "fr": "Conserver l'état-major tel quel" }, + "effects": [ + { "stat": "armyLoyalty", "delta": 1, "days": 30 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "extraSpending": 0.05 } + ] + } + }, + { + "id": "def_pension_age_01", + "category": "defense", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 680, "min": { "debt": 62 } }, + "title": { "en": "Raise the military retirement age", "fr": "Reculer l'âge de départ des militaires" }, + "body": { + "en": "Soldiers retire on a full pension after twenty-five years of service, often at forty-five. Finance would raise the minimum by five years; the barracks note that nobody joins a army to work until fifty.", + "fr": "Les militaires partent avec une pension à taux plein après vingt-cinq ans de service, souvent à quarante-cinq ans. Les Finances relèveraient le minimum de cinq ans ; les casernes font remarquer que personne ne s'engage pour travailler jusqu'à cinquante." + }, + "yes": { + "label": { "en": "Raise the minimum age", "fr": "Relever l'âge minimum" }, + "effects": [ + { "extraSpending": -0.3 }, + { "stat": "armyLoyalty", "delta": -5, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "army", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Keep early retirement", "fr": "Maintenir le départ anticipé" }, + "effects": [ + { "stat": "armyLoyalty", "delta": 2, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "extraSpending": 0.05 } + ] + } + }, + { + "id": "def_satellite_01", + "category": "defense", + "doc": "report", + "sender": "min_defense", + "conditions": { "dayMin": 720 }, + "title": { "en": "A satellite of our own", "fr": "Un satellite bien à nous" }, + "body": { + "en": "Valdoria buys its satellite imagery from Draveth, which sees what we see and sometimes a little more. A national satellite would give independence, a research programme and a bill that would build 40 kilometres of rail.", + "fr": "La Valdorie achète ses images satellite à Draveth, qui voit ce que nous voyons et parfois un peu plus. Un satellite national donnerait de l'indépendance, un programme de recherche et une facture équivalente à 40 kilomètres de voie ferrée." + }, + "yes": { + "label": { "en": "Build a national satellite", "fr": "Construire un satellite national" }, + "effects": [ + { "oneOff": 0.7 }, + { "stat": "hardPower", "delta": 2, "bias": true, "days": 730 }, + { "sector": "research", "delta": 2, "days": 180 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep buying imagery", "fr": "Continuer à acheter des images" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "def_coastguard_01", + "category": "defense", + "doc": "memo", + "sender": "min_defense", + "conditions": { "dayMin": 760 }, + "title": { "en": "Marenian trawlers in our waters", "fr": "Chalutiers marenais dans nos eaux" }, + "body": { + "en": "Trawlers from Marenia fish inside our waters every night, and the navy has begun to follow them rather than stop them. Arresting one would delight the fishing ports and would make the Southern Union say a few words.", + "fr": "Des chalutiers marenais pêchent chaque nuit dans nos eaux, et la marine a pris l'habitude de les suivre plutôt que de les arrêter. En arraisonner un ravirait les ports de pêche et amènerait l'Union du Sud à dire quelques mots." + }, + "yes": { + "label": { "en": "Escort and arrest", "fr": "Escorter et arraisonner" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "hardPower", "delta": 1, "days": 60 }, + { "stat": "softPower", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Negotiate a fishing quota", "fr": "Négocier un quota de pêche" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "def_loyalty_oath_01", + "category": "defense", + "doc": "memo", + "sender": "general", + "conditions": { "dayMin": 800, "max": { "armyLoyalty": 62 } }, + "title": { "en": "Political education for the officer corps", "fr": "Éducation civique pour le corps des officiers" }, + "body": { + "en": "Younger officers are reading the wrong pamphlets, according to a colonel who read them first. The General Staff proposes a course on the duties of the Republic, run by instructors answerable to the Defence Ministry.", + "fr": "De jeunes officiers lisent les mauvaises brochures, selon un colonel qui les a lues le premier. L'état-major propose un stage sur les devoirs de la République, animé par des instructeurs relevant du ministère de la Défense." + }, + "yes": { + "label": { "en": "Run the course", "fr": "Lancer le stage" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "armyLoyalty", "delta": 3, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Cancel the course", "fr": "Annuler le stage" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -2, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 30 }, + { "stat": "civilRights", "delta": 1 } + ] + } + }, + { + "id": "def_procurement_audit_01", + "category": "defense", + "doc": "report", + "sender": "min_finance", + "conditions": { "dayMin": 900 }, + "title": { "en": "Kickbacks in military procurement", "fr": "Pots-de-vin dans les marchés militaires" }, + "body": { + "en": "An audit finds that uniforms, trucks and field kitchens were bought at prices 18 percent above market, through three intermediaries with the same address. The prosecutor's office is waiting for a signal.", + "fr": "Un audit révèle que uniformes, camions et cuisines de campagne ont été achetés 18 % au-dessus du marché, via trois intermédiaires partageant la même adresse. Le parquet attend un signal." + }, + "yes": { + "label": { "en": "Open prosecutions", "fr": "Ouvrir des poursuites" }, + "effects": [ + { "oneOff": -0.2 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "sector": "justice", "delta": 1, "days": 90 }, + { "stat": "armyLoyalty", "delta": -3, "days": 60 } + ], + "followUp": { "id": "def_audit_fallout_01", "inDays": 90 } + }, + "no": { + "label": { "en": "Bury the audit", "fr": "Enterrer l'audit" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "armyLoyalty", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "def_audit_fallout_01", + "category": "defense", + "doc": "letter", + "sender": "general", + "followUpOnly": true, + "title": { "en": "Suppliers freeze deliveries", "fr": "Les fournisseurs gèlent les livraisons" }, + "body": { + "en": "Since the prosecutions began, the three suppliers have stopped delivering boots, fuel and spare parts, citing legal uncertainty. The General Staff asks whether to rebid everything or resume deliveries with the same firms under supervision.", + "fr": "Depuis l'ouverture des poursuites, les trois fournisseurs ont cessé de livrer bottes, carburant et pièces détachées, invoquant l'incertitude juridique. L'état-major demande s'il faut tout remettre en concurrence ou reprendre les livraisons avec les mêmes sociétés sous surveillance." + }, + "yes": { + "label": { "en": "Rebid the contracts", "fr": "Relancer les appels d'offres" }, + "effects": [ + { "extraSpending": -0.2 }, + { "sector": "army", "delta": -2, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "armyLoyalty", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Resume under supervision", "fr": "Reprendre sous surveillance" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "armyLoyalty", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -2, "days": 30 } + ] + } + }, + { + "id": "def_tanks_01", + "category": "defense", + "doc": "memo", + "sender": "min_defense", + "conditions": { "dayMin": 910 }, + "title": { "en": "Overhaul sixty old tanks", "fr": "Remettre à niveau soixante vieux chars" }, + "body": { + "en": "Sixty tanks from the last border war sit in a depot, rusting at a respectable pace. Overhauling them is cheaper than buying new ones and employs a factory town; scrapping them funds a few other things, none of them tanks.", + "fr": "Soixante chars de la dernière guerre frontalière dorment dans un dépôt, rouillant à une cadence respectable. Les remettre à niveau coûte moins cher que d'en acheter de nouveaux et fait travailler une ville-usine ; les ferrailler finance d'autres choses, dont aucune n'est un char." + }, + "yes": { + "label": { "en": "Overhaul the tanks", "fr": "Remettre les chars à niveau" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "army", "delta": 3, "days": 150 }, + { "stat": "hardPower", "delta": 2, "bias": true, "days": 365 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Scrap and sell them", "fr": "Les ferrailler et les vendre" }, + "effects": [ + { "oneOff": -0.2 }, + { "stat": "hardPower", "delta": -2, "bias": true, "days": 365 }, + { "stat": "armyLoyalty", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "def_contractors_01", + "category": "defense", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 980, "min": { "deficit": 2.5 } }, + "title": { "en": "Private guards for the border posts", "fr": "Des gardes privés pour les postes-frontières" }, + "body": { + "en": "A security firm offers to staff the quietest border posts for two thirds of what soldiers cost. The army would keep the loud ones; the firm would keep a contract, a uniform of its own and few questions.", + "fr": "Une société de sécurité propose de tenir les postes-frontières les plus calmes pour les deux tiers du coût des soldats. L'armée garderait les bruyants ; la société garderait un contrat, un uniforme à elle et peu de questions." + }, + "yes": { + "label": { "en": "Hire the firm", "fr": "Engager la société" }, + "effects": [ + { "extraSpending": -0.2 }, + { "stat": "armyLoyalty", "delta": -3, "days": 60 }, + { "stat": "order", "delta": -1, "days": 30 }, + { "stat": "civilRights", "delta": -1 } + ] + }, + "no": { + "label": { "en": "Keep soldiers on the posts", "fr": "Garder des soldats aux postes" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "armyLoyalty", "delta": 1, "days": 30 }, + { "stat": "order", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "def_war_memorial_01", + "category": "defense", + "doc": "letter", + "sender": "min_culture", + "conditions": { "dayMin": 1000 }, + "title": { "en": "A memorial for the border campaigns", "fr": "Un mémorial des campagnes frontalières" }, + "body": { + "en": "Veterans and the families of the fallen ask for a national memorial on the central square, with the names of every soldier killed since independence. The architects' competition alone would cost more than the plaque the army offers instead.", + "fr": "Anciens combattants et familles de disparus demandent un mémorial national sur la place centrale, portant le nom de chaque soldat tué depuis l'indépendance. Le seul concours d'architectes coûterait plus cher que la plaque que propose l'armée à la place." + }, + "yes": { + "label": { "en": "Commission the memorial", "fr": "Commander le mémorial" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "armyLoyalty", "delta": 2, "days": 40 }, + { "sector": "culture", "delta": 2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Put up a plaque", "fr": "Poser une plaque" }, + "effects": [ + { "oneOff": -0.05 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "armyLoyalty", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "def_desertion_amnesty_01", + "category": "defense", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 1050 }, + "title": { "en": "Amnesty for six hundred deserters", "fr": "Amnistie pour six cents déserteurs" }, + "body": { + "en": "Six hundred soldiers left their units over the past three years, mostly over unpaid leave and bad food. An amnesty would bring some back and close the files; the General Staff says the others will take notice.", + "fr": "Six cents militaires ont quitté leur unité au cours des trois dernières années, surtout pour des permissions impayées et une mauvaise cantine. Une amnistie en ramènerait certains et clôturerait les dossiers ; l'état-major assure que les autres en prendront note." + }, + "yes": { + "label": { "en": "Grant the amnesty", "fr": "Accorder l'amnistie" }, + "effects": [ + { "stat": "hardPower", "delta": 1, "bias": true, "days": 180 }, + { "stat": "armyLoyalty", "delta": -3, "days": 60 }, + { "stat": "civilRights", "delta": 2 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Prosecute the deserters", "fr": "Poursuivre les déserteurs" }, + "effects": [ + { "stat": "armyLoyalty", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": -1 }, + { "sector": "justice", "delta": -1, "days": 90 }, + { "extraSpending": 0.05 } + ] + } + }, + { + "id": "def_service_year_01", + "category": "defense", + "doc": "memo", + "sender": "min_labour", + "conditions": { "dayMin": 1150, "min": { "unemployment": 6.8 } }, + "title": { "en": "A voluntary national service year", "fr": "Une année de service national volontaire" }, + "body": { + "en": "Labour proposes a paid year of civil or military service for school leavers, with a stipend, a certificate and a place in line for public jobs. Critics call it conscription with a better brochure.", + "fr": "Le Travail propose une année rémunérée de service civil ou militaire pour les jeunes sortis du lycée, avec indemnité, certificat et priorité dans les emplois publics. Les critiques y voient un service militaire avec une meilleure brochure." + }, + "yes": { + "label": { "en": "Launch the service year", "fr": "Lancer l'année de service" }, + "effects": [ + { "extraSpending": 0.25 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Shelve the idea", "fr": "Remiser le projet" }, + "effects": [ + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 180 }, + { "extraSpending": -0.05 } + ] + } + }, + { + "id": "def_training_crash_01", + "category": "defense", + "doc": "telegram", + "sender": "general", + "conditions": { "dayMin": 1000 }, + "title": { "en": "Trainer jets collide over the heath", "fr": "Deux avions-écoles entrent en collision" }, + "body": { + "en": "TWO TRAINER JETS COLLIDED OVER KARST HEATH. THREE PILOTS KILLED. FLEET IS FORTY YEARS OLD. AIR FORCE ASKS FOR PERMISSION TO GROUND ALL TRAINERS PENDING INSPECTION. STOP.", + "fr": "DEUX AVIONS ECOLES SE SONT HEURTES AU-DESSUS DE KARST HEATH. TROIS PILOTES TUES. FLOTTE AGEE DE QUARANTE ANS. L'ARMEE DE L'AIR DEMANDE L'AUTORISATION DE CLOUER AU SOL TOUS LES APPAREILS EN ATTENTE D'INSPECTION. STOP." + }, + "yes": { + "label": { "en": "Ground the fleet", "fr": "Clouer la flotte au sol" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "sector": "army", "delta": -2, "days": 90 }, + { "stat": "armyLoyalty", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the trainers flying", "fr": "Maintenir les vols" }, + "effects": [ + { "stat": "armyLoyalty", "delta": -3, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 90 } + ] + } + }, + { + "id": "def_military_hospital_01", + "category": "defense", + "doc": "letter", + "sender": "min_health", + "conditions": { "dayMin": 1200, "max": { "q:health": 55 } }, + "title": { "en": "Open the garrison hospital to civilians", "fr": "Ouvrir l'hôpital militaire aux civils" }, + "body": { + "en": "The garrison hospital has two hundred beds, modern scanners and an empty ward. Public hospitals have waiting lists of five months. The army would rather keep its reserve capacity, and the surgeons could hardly say no.", + "fr": "L'hôpital militaire dispose de deux cents lits, de scanners récents et d'un service vide. Les hôpitaux publics ont des listes d'attente de cinq mois. L'armée préférerait garder sa capacité de réserve, et les chirurgiens auraient du mal à refuser." + }, + "yes": { + "label": { "en": "Open it to civilians", "fr": "L'ouvrir aux civils" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "health", "delta": 3, "days": 150 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "armyLoyalty", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep it military only", "fr": "Le réserver aux militaires" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "armyLoyalty", "delta": 1, "days": 30 }, + { "sector": "health", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "def_defence_floor_01", + "category": "defense", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "dayMin": 1250 }, + "title": { "en": "The League asks for a spending pledge", "fr": "La Ligue réclame un engagement budgétaire" }, + "body": { + "en": "At its summit, the Northern League asked every member to pledge 2.5 percent of national income for defence within five years. Torvania will sign at once; Valdoria is asked to do the same or explain at length.", + "fr": "Lors de son sommet, la Ligue du Nord a demandé à chaque membre de s'engager à consacrer 2,5 % du revenu national à la défense d'ici cinq ans. La Torvanie signera aussitôt ; la Valdorie est priée d'en faire autant ou de s'expliquer longuement." + }, + "yes": { + "label": { "en": "Sign the pledge", "fr": "Signer l'engagement" }, + "effects": [ + { "extraSpending": 0.5 }, + { "stat": "hardPower", "delta": 3, "bias": true, "days": 730 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Refuse to commit", "fr": "Refuser de s'engager" }, + "effects": [ + { "extraSpending": -0.15 }, + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "armyLoyalty", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "def_white_paper_01", + "category": "defense", + "doc": "report", + "sender": "general", + "conditions": { "dayMin": 1300, "max": { "hardPower": 60 } }, + "title": { "en": "A new defence doctrine", "fr": "Une nouvelle doctrine de défense" }, + "body": { + "en": "The strategic review lays out two options: a territorial army built to hold the mountains and the capital, or a smaller expeditionary force that can be sent abroad to earn seats at the League's table. Each needs different generals.", + "fr": "La revue stratégique expose deux options : une armée territoriale conçue pour tenir les montagnes et la capitale, ou une force expéditionnaire plus réduite, envoyée à l'étranger pour gagner des sièges à la table de la Ligue. Chacune exige des généraux différents." + }, + "yes": { + "label": { "en": "Choose territorial defence", "fr": "Choisir la défense du territoire" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "hardPower", "delta": 2, "bias": true, "days": 730 }, + { "stat": "armyLoyalty", "delta": 1, "days": 30 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Go expeditionary", "fr": "Opter pour l'expéditionnaire" }, + "effects": [ + { "extraSpending": 0.25 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "def_memoir_01", + "category": "defense", + "doc": "memo", + "sender": "press_office", + "conditions": { "dayMin": 1350 }, + "title": { "en": "A retired general's memoir", "fr": "Les mémoires d'un général à la retraite" }, + "body": { + "en": "A retired general's memoir calls the current government amateurs and quotes closed meetings at length. The Defence Ministry wants to invoke the secrets act, and booksellers have already moved the title to the front window.", + "fr": "Les mémoires d'un général à la retraite traitent le gouvernement actuel d'amateur et citent longuement des réunions à huis clos. Le ministère de la Défense veut invoquer le secret défense, et les libraires ont déjà mis le titre en vitrine." + }, + "yes": { + "label": { "en": "Invoke the secrets act", "fr": "Invoquer le secret défense" }, + "effects": [ + { "stat": "civilRights", "delta": -3 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "armyLoyalty", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Let it be sold", "fr": "Laisser le livre en vente" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "armyLoyalty", "delta": -2, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "def_strike_troops_01", + "category": "defense", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 1100, "min": { "unrest": 38 } }, + "title": { "en": "Soldiers to run the docks", "fr": "Des soldats pour faire tourner le port" }, + "body": { + "en": "The dockers' strike has stopped the main port for nine days, and the General Staff offers soldiers to operate cranes and trucks. Exports would move; the union will remember who loaded them, and so will the barracks.", + "fr": "La grève des dockers paralyse le port principal depuis neuf jours, et l'état-major propose des soldats pour conduire grues et camions. Les exportations repartiraient ; le syndicat se souviendra de qui les a chargées, et les casernes aussi." + }, + "yes": { + "label": { "en": "Send in the troops", "fr": "Envoyer les soldats" }, + "effects": [ + { "stat": "economy", "delta": 1, "days": 30 }, + { "stat": "order", "delta": 2, "days": 30 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "armyLoyalty", "delta": -2, "days": 40 }, + { "stat": "civilRights", "delta": -1 } + ] + }, + "no": { + "label": { "en": "Let the strike run", "fr": "Laisser la grève courir" }, + "effects": [ + { "stat": "economy", "delta": -2, "days": 40 }, + { "stat": "order", "delta": -2, "days": 30 }, + { "stat": "armyLoyalty", "delta": 1, "days": 30 } + ] } } ] diff --git a/web/data/cards/economy.json b/web/data/cards/economy.json index 8cbe5c7..a007760 100644 --- a/web/data/cards/economy.json +++ b/web/data/cards/economy.json @@ -189,5 +189,2524 @@ "label": { "en": "Refuse", "fr": "Refuser" }, "effects": [{ "stat": "unrest", "delta": 3, "days": 45 }, { "stat": "opinion", "delta": -3, "days": 45 }] } + }, + { + "id": "eco_corp_tax_cut_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "title": { "en": "Cut the corporate tax rate?", "fr": "Baisser l'impôt sur les sociétés ?" }, + "body": { + "en": "Business groups say a lower corporate rate would pull investment away from the neighbouring republics. The Treasury notes that it would also cut revenue, and that the gain goes mostly to a few large firms.", + "fr": "Le patronat assure qu'un impôt sur les sociétés plus bas détournerait les investisseurs des républiques voisines. Le Trésor note que les recettes baisseraient aussi, au profit surtout de quelques grandes entreprises." + }, + "yes": { + "label": { "en": "Cut the rate", "fr": "Baisser le taux" }, + "effects": [ + { "revenue": "corporate", "delta": -3 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "growth", "delta": 0.2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the rate", "fr": "Maintenir le taux" }, + "effects": [{ "stat": "economy", "delta": -1, "bias": true, "days": 180 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "eco_tax_inspectors_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "title": { "en": "Hire more tax inspectors", "fr": "Recruter des inspecteurs des impôts" }, + "body": { + "en": "The tax office says each inspector hired recovers several times their salary, but only if the posts are funded now. Associations of small shopkeepers already call the plan a witch hunt.", + "fr": "L'administration fiscale affirme que chaque inspecteur recruté rapporte plusieurs fois son salaire, à condition de financer les postes dès maintenant. Les associations de petits commerçants dénoncent déjà une chasse aux sorcières." + }, + "yes": { + "label": { "en": "Fund the posts", "fr": "Financer les postes" }, + "effects": [ + { "extraSpending": 0.1 }, + { "revenue": "other", "delta": 0.4 }, + { "stat": "unrest", "delta": 1, "days": 30 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave staffing as is", "fr": "Laisser les effectifs" }, + "effects": [ + { "sector": "administration", "delta": -2, "days": 120 }, + { "revenue": "other", "delta": -0.1 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "eco_bank_bailout_01", + "category": "economy", + "doc": "letter", + "sender": "central_bank", + "title": { "en": "A regional bank is failing", "fr": "Une banque régionale en difficulté" }, + "body": { + "en": "Caisse Provinciale, which holds the savings of three provinces, has run out of capital. The Central Bank asks the state to step in. Letting it fall would ruin thousands of depositors; a rescue would reward the managers who got it here.", + "fr": "La Caisse provinciale, qui détient l'épargne de trois provinces, n'a plus de fonds propres. La Banque centrale demande à l'État d'intervenir. La laisser tomber ruinerait des milliers de déposants ; la sauver récompenserait ceux qui l'ont menée là." + }, + "yes": { + "label": { "en": "Bail it out", "fr": "Renflouer la banque" }, + "effects": [ + { "oneOff": 0.8 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "stability", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ], + "setFlags": ["eco_bank_bailed"], + "followUp": { "id": "eco_bonus_scandal_01", "inDays": 60 } + }, + "no": { + "label": { "en": "Let it fail", "fr": "La laisser tomber" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "economy", "delta": -3, "days": 60 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ], + "followUp": { "id": "eco_bank_run_01", "inDays": 30 } + } + }, + { + "id": "eco_bonus_scandal_01", + "category": "economy", + "doc": "memo", + "sender": "press_office", + "followUpOnly": true, + "title": { "en": "Bonuses at the rescued bank", "fr": "Des primes dans la banque sauvée" }, + "body": { + "en": "Newspapers report that Caisse Provinciale paid executive bonuses three weeks after the rescue. Public anger is rising, and the opposition wants a law to claw the money back.", + "fr": "Les journaux révèlent que la Caisse provinciale a versé des primes à ses dirigeants trois semaines après son sauvetage. La colère monte, et l'opposition réclame une loi pour récupérer l'argent." + }, + "yes": { + "label": { "en": "Claw the bonuses back", "fr": "Récupérer les primes" }, + "effects": [ + { "oneOff": -0.1 }, + { "stat": "opinion", "delta": 3, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Stay out of it", "fr": "Ne pas s'en mêler" }, + "effects": [{ "stat": "opinion", "delta": -4, "days": 40 }, { "stat": "unrest", "delta": 2, "days": 30 }] + } + }, + { + "id": "eco_bank_run_01", + "category": "economy", + "doc": "telegram", + "sender": "central_bank", + "followUpOnly": true, + "title": { "en": "Queues at the banks", "fr": "Files d'attente devant les banques" }, + "body": { + "en": "AFTER THE COLLAPSE OF CAISSE PROVINCIALE QUEUES FORM AT OTHER LENDERS. WITHDRAWALS TRIPLE SINCE MONDAY. BLANKET DEPOSIT GUARANTEE REQUESTED STOP.", + "fr": "APRES LA CHUTE DE LA CAISSE PROVINCIALE DES FILES SE FORMENT DEVANT LES AUTRES BANQUES. RETRAITS TRIPLES DEPUIS LUNDI. GARANTIE GENERALE DES DEPOTS DEMANDEE STOP." + }, + "yes": { + "label": { "en": "Guarantee all deposits", "fr": "Garantir tous les dépôts" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "stability", "delta": 3, "days": 30 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Let the banks cope", "fr": "Laisser les banques gérer" }, + "effects": [ + { "stat": "economy", "delta": -4, "days": 90 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "stat": "stability", "delta": -3, "days": 40 } + ] + } + }, + { + "id": "eco_sin_tax_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "title": { "en": "Raise tobacco and alcohol duties", "fr": "Relever les taxes sur le tabac et l'alcool" }, + "body": { + "en": "Duties on tobacco and spirits have not moved in a decade. A rise would bring revenue and a few fewer smokers, and push some buyers toward the border markets.", + "fr": "Les droits sur le tabac et les alcools forts n'ont pas bougé depuis dix ans. Une hausse rapporterait des recettes et ferait reculer un peu le tabagisme, mais renverrait certains acheteurs vers les marchés frontaliers." + }, + "yes": { + "label": { "en": "Raise the duties", "fr": "Relever les droits" }, + "effects": [ + { "revenue": "other", "delta": 0.3 }, + { "sector": "health", "delta": 2, "days": 200 }, + { "stat": "opinion", "delta": -2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave them", "fr": "Les laisser" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "revenue": "other", "delta": -0.1 }] + } + }, + { + "id": "eco_price_cap_basics_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "inflation": 4 } }, + "title": { "en": "Cap the price of basic foods", "fr": "Plafonner le prix des denrées de base" }, + "body": { + "en": "Bread, oil and sugar cost a fifth more than a year ago and shoppers are angry. A price cap would be popular at once; shopkeepers warn of empty shelves within weeks.", + "fr": "Le pain, l'huile et le sucre coûtent un cinquième de plus qu'il y a un an, et les clients s'énervent. Un plafonnement plairait aussitôt ; les commerçants préviennent que les rayons seront vides dans quelques semaines." + }, + "yes": { + "label": { "en": "Impose the caps", "fr": "Imposer les plafonds" }, + "effects": [ + { "stat": "inflation", "delta": -0.4, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 4, "days": 40 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Let prices float", "fr": "Laisser jouer les prix" }, + "effects": [{ "stat": "opinion", "delta": -3, "days": 40 }, { "stat": "unrest", "delta": 3, "days": 40 }] + } + }, + { + "id": "eco_fuel_subsidy_01", + "category": "economy", + "doc": "memo", + "sender": "min_industry", + "conditions": { "min": { "inflation": 3 } }, + "title": { "en": "Subsidise fuel prices?", "fr": "Subventionner le carburant ?" }, + "body": { + "en": "World oil prices are up and pump prices follow. A subsidy at the pump would calm drivers and truckers this winter, but it is paid for from the same budget as the schools.", + "fr": "Les cours du pétrole montent et les prix à la pompe suivent. Une subvention calmerait automobilistes et routiers cet hiver, mais elle est payée sur le même budget que les écoles." + }, + "yes": { + "label": { "en": "Subsidise the pump", "fr": "Subventionner la pompe" }, + "effects": [ + { "extraSpending": 0.3 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "inflation", "delta": -0.3, "bias": true, "days": 180 } + ], + "setFlags": ["eco_fuel_subsidy"], + "followUp": { "id": "eco_subsidy_bill_01", "inDays": 120 } + }, + "no": { + "label": { "en": "Let the price rise", "fr": "Laisser les prix monter" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "eco_subsidy_bill_01", + "category": "economy", + "doc": "report", + "sender": "min_finance", + "followUpOnly": true, + "title": { "en": "The fuel subsidy costs double", "fr": "La subvention carburant coûte le double" }, + "body": { + "en": "Consumption rose with the subsidy, and so did the bill, now twice the forecast. Smugglers also buy cheap fuel at the pump and resell it across the border.", + "fr": "La consommation a grimpé avec la subvention, et la facture avec elle : le double des prévisions. Des contrebandiers achètent aussi du carburant bon marché à la pompe pour le revendre de l'autre côté de la frontière." + }, + "yes": { + "label": { "en": "End the subsidy", "fr": "Mettre fin à la subvention" }, + "effects": [ + { "extraSpending": -0.3 }, + { "stat": "opinion", "delta": -4, "days": 40 }, + { "stat": "unrest", "delta": 3, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep paying", "fr": "Continuer à payer" }, + "effects": [{ "oneOff": 0.4 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "eco_street_vendors_01", + "category": "economy", + "doc": "letter", + "sender": "mayor", + "title": { "en": "Street vendors: licence or clear?", "fr": "Marchands ambulants : licence ou évacuation ?" }, + "body": { + "en": "Thousands of street vendors fill the capital's boulevards, pay no tax and feed their families. City Hall asks you to choose between a cheap licence scheme and clearing the pavements before the tourist season.", + "fr": "Des milliers de marchands ambulants occupent les boulevards de la capitale, sans payer d'impôt, et font vivre leurs familles. La mairie demande de choisir entre une licence bon marché et l'évacuation des trottoirs avant la saison touristique." + }, + "yes": { + "label": { "en": "Offer cheap licences", "fr": "Offrir des licences" }, + "effects": [ + { "revenue": "other", "delta": 0.1 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 200 }, + { "stat": "order", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Clear the pavements", "fr": "Évacuer les trottoirs" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 60 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "civilRights", "delta": -1 } + ] + } + }, + { + "id": "eco_cash_limit_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "title": { "en": "Ban large cash payments", "fr": "Interdire les gros paiements en espèces" }, + "body": { + "en": "Cash purchases above a fixed sum would be forbidden, which makes tax evasion and bribes harder to hide. Small traders and pensioners who trust no bank are alarmed.", + "fr": "Les paiements en espèces au-delà d'un certain montant seraient interdits, ce qui compliquerait la fraude fiscale et les pots-de-vin. Les petits commerçants et les retraités qui se méfient des banques s'inquiètent." + }, + "yes": { + "label": { "en": "Cap cash payments", "fr": "Plafonner les espèces" }, + "effects": [ + { "revenue": "other", "delta": 0.3 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Leave cash alone", "fr": "Laisser les espèces" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "revenue": "other", "delta": -0.1 }] + } + }, + { + "id": "eco_startup_tax_01", + "category": "economy", + "doc": "memo", + "sender": "min_industry", + "title": { "en": "Tax holiday for new companies", "fr": "Exonération fiscale pour les jeunes entreprises" }, + "body": { + "en": "Founders ask for three tax-free years for new firms, arguing that start-ups employ more people than the old state giants. The Treasury fears old firms will simply be reborn under new names.", + "fr": "Des créateurs d'entreprise réclament trois ans sans impôt pour les sociétés nouvelles, arguant que les jeunes pousses emploient plus que les anciens géants publics. Le Trésor craint que les vieilles sociétés ne renaissent sous d'autres noms." + }, + "yes": { + "label": { "en": "Grant the holiday", "fr": "Accorder l'exonération" }, + "effects": [ + { "revenue": "other", "delta": -0.2 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 365 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "growth", "delta": 0.2, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Keep the regime", "fr": "Maintenir le régime" }, + "effects": [{ "stat": "economy", "delta": -1, "bias": true, "days": 180 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "eco_hidden_fees_01", + "category": "economy", + "doc": "letter", + "sender": "min_finance", + "title": { + "en": "Ban hidden fees on accounts and phone plans", + "fr": "Interdire les frais cachés des comptes et forfaits" + }, + "body": { + "en": "Consumer groups document account fees that nobody explains and phone plans that renew in silence. A ban would please households and cost banks and operators an easy source of income.", + "fr": "Des associations de consommateurs documentent des frais bancaires que personne n'explique et des forfaits téléphoniques reconduits en silence. Une interdiction plairait aux ménages et priverait banques et opérateurs d'une rente facile." + }, + "yes": { + "label": { "en": "Ban the fees", "fr": "Interdire ces frais" }, + "effects": [{ "stat": "opinion", "delta": 3, "days": 40 }, { "stat": "economy", "delta": -1, "bias": true, "days": 180 }] + }, + "no": { + "label": { "en": "Trust self-regulation", "fr": "Miser sur l'autorégulation" }, + "effects": [{ "stat": "opinion", "delta": -2, "days": 30 }, { "stat": "economy", "delta": 1, "bias": true, "days": 180 }] + } + }, + { + "id": "eco_public_pay_freeze_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "deficit": 1 } }, + "title": { "en": "Freeze civil service pay", "fr": "Geler les salaires des fonctionnaires" }, + "body": { + "en": "With the deficit above target, the Finance Ministry proposes freezing public sector pay for two years. Teachers, nurses and clerks would lose ground to prices; the saving is substantial.", + "fr": "Le déficit dépassant l'objectif, le ministère des Finances propose de geler les salaires du secteur public pendant deux ans. Enseignants, infirmiers et employés perdraient du terrain face aux prix ; l'économie est substantielle." + }, + "yes": { + "label": { "en": "Freeze pay", "fr": "Geler les salaires" }, + "effects": [ + { "extraSpending": -0.4 }, + { "stat": "opinion", "delta": -3, "days": 60 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "sector": "administration", "delta": -3, "days": 180 } + ] + }, + "no": { + "label": { "en": "Honour the pay scales", "fr": "Respecter les grilles" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "eco_tourist_tax_01", + "category": "economy", + "doc": "letter", + "sender": "mayor", + "title": { "en": "A tax on visitors to the capital", "fr": "Une taxe sur les visiteurs de la capitale" }, + "body": { + "en": "The capital hosts six million visitors a year and the city pays for their litter and crowds. The mayor wants a nightly visitor tax; hoteliers warn that cheaper neighbours will take the guests.", + "fr": "La capitale accueille six millions de visiteurs par an et la ville paie leurs déchets et leurs foules. La mairie veut une taxe de séjour ; les hôteliers préviennent que des voisins moins chers récupéreront la clientèle." + }, + "yes": { + "label": { "en": "Allow the tax", "fr": "Autoriser la taxe" }, + "effects": [ + { "revenue": "other", "delta": 0.1 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "sector": "infrastructure", "delta": 2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [{ "stat": "opinion", "delta": -2, "days": 30 }, { "stat": "stability", "delta": -1, "days": 30 }] + } + }, + { + "id": "eco_visa_waiver_01", + "category": "economy", + "doc": "memo", + "sender": "min_foreign", + "title": { "en": "Visa-free entry for tourists", "fr": "Entrée sans visa pour les touristes" }, + "body": { + "en": "A large neighbouring market would send many more visitors if its citizens no longer needed a visa. The Interior Ministry points to the border posts, which already struggle.", + "fr": "Un grand marché voisin enverrait bien plus de visiteurs si ses citoyens n'avaient plus besoin de visa. Le ministère de l'Intérieur pointe les postes frontières, déjà débordés." + }, + "yes": { + "label": { "en": "Waive the visas", "fr": "Supprimer les visas" }, + "effects": [ + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "order", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Keep the visas", "fr": "Garder les visas" }, + "effects": [{ "stat": "order", "delta": 1, "days": 60 }, { "stat": "economy", "delta": -1, "bias": true, "days": 180 }] + } + }, + { + "id": "eco_farm_aid_reform_01", + "category": "economy", + "doc": "memo", + "sender": "min_industry", + "title": { "en": "Overhaul farm subsidies", "fr": "Réformer les aides agricoles" }, + "body": { + "en": "Farm aid goes mostly by acreage, which favours big estates over small family plots. Rebalancing it toward small holdings would anger the landowners who vote and donate.", + "fr": "L'aide agricole est versée à l'hectare, ce qui avantage les grands domaines sur les petites exploitations familiales. La rééquilibrer en faveur des petits exploitants fâcherait les propriétaires qui votent et financent." + }, + "yes": { + "label": { "en": "Favour small farms", "fr": "Favoriser les petites fermes" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "unrest", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep the acreage rule", "fr": "Garder la règle à l'hectare" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "unrest", "delta": 2, "days": 60 } + ] + } + }, + { + "id": "eco_drought_aid_01", + "category": "economy", + "doc": "report", + "sender": "min_environment", + "title": { "en": "Drought hits the grain belt", "fr": "Sécheresse sur la ceinture céréalière" }, + "body": { + "en": "A third summer of low rain has cut the harvest by a quarter. Farmers ask for emergency aid, while the Finance Ministry points out that aid costs less than the bread riots that follow shortages.", + "fr": "Un troisième été de faibles pluies a réduit la récolte d'un quart. Les agriculteurs réclament une aide d'urgence ; les Finances font valoir qu'elle coûte moins cher que les émeutes du pain qui suivent les pénuries." + }, + "yes": { + "label": { "en": "Pay emergency aid", "fr": "Verser l'aide d'urgence" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "unrest", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Offer loans only", "fr": "Proposer seulement des prêts" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": 2, "days": 60 } + ] + } + }, + { + "id": "eco_telecom_sale_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "title": { "en": "Sell the state telecom operator?", "fr": "Vendre l'opérateur télécom public ?" }, + "body": { + "en": "A foreign operator offers a large sum for the state's controlling stake in Valtel, plus a promise of new masts. Critics fear higher bills and a strategic network in foreign hands.", + "fr": "Un opérateur étranger offre une somme élevée pour la participation majoritaire de l'État dans Valtel, avec la promesse de nouveaux pylônes. Les critiques craignent des factures plus lourdes et un réseau stratégique en mains étrangères." + }, + "yes": { + "label": { "en": "Sell the stake", "fr": "Vendre la participation" }, + "effects": [ + { "oneOff": -1 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "sector": "infrastructure", "delta": 3, "days": 180 } + ], + "setFlags": ["eco_telecom_sold"], + "followUp": { "id": "eco_telecom_prices_01", "inDays": 150 } + }, + "no": { + "label": { "en": "Keep control", "fr": "Garder le contrôle" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "sector": "infrastructure", "delta": -2, "days": 120 }] + } + }, + { + "id": "eco_telecom_prices_01", + "category": "economy", + "doc": "petition", + "sender": "union", + "followUpOnly": true, + "title": { "en": "Valtel prices jump after the sale", "fr": "Les tarifs de Valtel bondissent après la vente" }, + "body": { + "en": "The new owner of Valtel has raised mobile and broadband prices by a fifth, citing the cost of the new masts. The Labour Confederation says customers have paid for the sale.", + "fr": "Le nouveau propriétaire de Valtel a relevé de vingt pour cent ses prix mobiles et internet, invoquant le coût des nouveaux pylônes. La Confédération du travail estime que les clients ont payé la vente." + }, + "yes": { + "label": { "en": "Impose a price cap", "fr": "Imposer un plafond tarifaire" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "softPower", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Respect the contract", "fr": "Respecter le contrat" }, + "effects": [{ "stat": "opinion", "delta": -3, "days": 40 }, { "stat": "unrest", "delta": 2, "days": 40 }] + } + }, + { + "id": "eco_procurement_portal_01", + "category": "economy", + "doc": "memo", + "sender": "min_justice", + "title": { "en": "Put every public tender online", "fr": "Publier tous les marchés publics en ligne" }, + "body": { + "en": "An online portal would publish every tender, bid and winner. Auditors expect savings, but local officials and the contractors who live off discretionary awards are lobbying against it.", + "fr": "Un portail en ligne publierait chaque appel d'offres, chaque offre et chaque attributaire. Les auditeurs en attendent des économies, mais les élus locaux et les entrepreneurs qui vivent de marchés discrétionnaires font pression contre le projet." + }, + "yes": { + "label": { "en": "Publish every tender", "fr": "Publier tous les marchés" }, + "effects": [ + { "extraSpending": -0.2 }, + { "sector": "justice", "delta": 2, "days": 120 }, + { "stat": "stability", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep current rules", "fr": "Garder les règles actuelles" }, + "effects": [{ "stat": "stability", "delta": 1, "days": 60 }, { "stat": "opinion", "delta": -2, "days": 40 }] + } + }, + { + "id": "eco_revolving_door_01", + "category": "economy", + "doc": "letter", + "sender": "min_justice", + "title": { "en": "Ban ministers from lobbying after office", "fr": "Interdire le lobbying aux anciens ministres" }, + "body": { + "en": "Three former ministers now work for firms that once sought their signature. A three-year cooling-off period would end the habit, though some say it will keep capable people out of public life.", + "fr": "Trois anciens ministres travaillent désormais pour des entreprises qui sollicitaient jadis leur signature. Un délai de viduité de trois ans mettrait fin à l'usage, mais certains craignent qu'il n'éloigne les personnes compétentes de la vie publique." + }, + "yes": { + "label": { "en": "Impose the cooling-off", "fr": "Imposer le délai" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "sector": "justice", "delta": 2, "days": 120 }, + { "stat": "stability", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Rely on ethics codes", "fr": "Se fier aux codes éthiques" }, + "effects": [{ "stat": "opinion", "delta": -3, "days": 40 }, { "sector": "justice", "delta": -1, "days": 120 }] + } + }, + { + "id": "eco_rate_hike_01", + "category": "economy", + "doc": "letter", + "sender": "central_bank", + "conditions": { "min": { "inflation": 4.5 } }, + "title": { "en": "Raise interest rates?", "fr": "Relever les taux d'intérêt ?" }, + "body": { + "en": "With prices rising faster than the target, the Central Bank asks for the government's backing to raise rates. Mortgage holders and indebted firms will pay for the cure.", + "fr": "Les prix montant plus vite que l'objectif, la Banque centrale demande le soutien du gouvernement pour relever ses taux. Les ménages endettés et les entreprises paieront le remède." + }, + "yes": { + "label": { "en": "Back the hike", "fr": "Soutenir la hausse" }, + "effects": [ + { "stat": "inflation", "delta": -0.8, "bias": true, "days": 180 }, + { "stat": "growth", "delta": -0.3, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Hold rates", "fr": "Maintenir les taux" }, + "effects": [ + { "stat": "growth", "delta": 0.2, "bias": true, "days": 180 }, + { "stat": "inflation", "delta": 0.7, "bias": true, "days": 180 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 270 } + ] + } + }, + { + "id": "eco_cb_independence_01", + "category": "economy", + "doc": "letter", + "sender": "central_bank", + "conditions": { "dayMin": 90 }, + "title": { "en": "A statute for central bank independence", "fr": "Un statut d'indépendance pour la Banque centrale" }, + "body": { + "en": "The Central Bank asks for a law that bars the government from dismissing its governor or dictating rate decisions. Investors would applaud; ministers would lose their favourite lever before every election.", + "fr": "La Banque centrale demande une loi interdisant au gouvernement de révoquer son gouverneur ou de dicter ses décisions de taux. Les investisseurs applaudiraient ; les ministres perdraient leur levier favori avant chaque élection." + }, + "yes": { + "label": { "en": "Grant independence", "fr": "Garantir l'indépendance" }, + "effects": [ + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": 2, "days": 90 }, + { "stat": "inflation", "delta": -0.3, "bias": true, "days": 365 } + ], + "setFlags": ["eco_cb_independent"] + }, + "no": { + "label": { "en": "Keep the leash", "fr": "Garder la main" }, + "effects": [ + { "stat": "growth", "delta": 0.2, "bias": true, "days": 180 }, + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": -2, "days": 90 } + ] + } + }, + { + "id": "eco_currency_peg_01", + "category": "economy", + "doc": "memo", + "sender": "central_bank", + "conditions": { "dayMin": 120 }, + "title": { "en": "Peg the currency to a foreign anchor", "fr": "Arrimer la monnaie à une devise étrangère" }, + "body": { + "en": "Fixing the national currency to a major foreign one would calm importers and tame prices. The Central Bank would lose its freedom on rates and need reserves to defend the peg.", + "fr": "Fixer la monnaie nationale à une grande devise étrangère rassurerait les importateurs et calmerait les prix. La Banque centrale perdrait sa liberté sur les taux et devrait mobiliser des réserves pour défendre la parité." + }, + "yes": { + "label": { "en": "Adopt the peg", "fr": "Adopter l'ancrage" }, + "effects": [ + { "stat": "inflation", "delta": -0.5, "bias": true, "days": 365 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "growth", "delta": -0.2, "bias": true, "days": 365 }, + { "oneOff": 0.2 } + ] + }, + "no": { + "label": { "en": "Keep it floating", "fr": "Laisser flotter" }, + "effects": [ + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "eco_steel_tariff_01", + "category": "economy", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 150 }, + "title": { "en": "A tariff on imported steel", "fr": "Un droit de douane sur l'acier importé" }, + "body": { + "en": "The Kessel steelworks, main employer of its valley, says foreign steel is sold below cost. A tariff would save jobs and raise the price of everything built from steel.", + "fr": "L'aciérie de Kessel, premier employeur de sa vallée, affirme que l'acier étranger est vendu à perte. Un droit de douane sauverait des emplois et renchérirait tout ce qui est fabriqué en acier." + }, + "yes": { + "label": { "en": "Impose the tariff", "fr": "Imposer le droit" }, + "effects": [ + { "revenue": "other", "delta": 0.2 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 365 }, + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 270 }, + { "stat": "softPower", "delta": -2, "days": 90 }, + { "sector": "industry", "delta": 3, "days": 180 } + ] + }, + "no": { + "label": { "en": "Stay open", "fr": "Rester ouvert" }, + "effects": [ + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + } + }, + { + "id": "eco_free_zone_01", + "category": "economy", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 180 }, + "title": { "en": "A free zone around the port", "fr": "Une zone franche autour du port" }, + "body": { + "en": "A tax-free zone around the main port would attract warehouses and assembly plants. Customs officials warn it could also attract smugglers, and the city would lose local taxes.", + "fr": "Une zone franche autour du grand port attirerait entrepôts et usines d'assemblage. Les douaniers préviennent qu'elle attirerait aussi les contrebandiers, et la ville perdrait des recettes locales." + }, + "yes": { + "label": { "en": "Open the zone", "fr": "Ouvrir la zone" }, + "effects": [ + { "revenue": "other", "delta": -0.2 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 365 }, + { "sector": "industry", "delta": 2, "days": 180 }, + { "stat": "order", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Decline", "fr": "Décliner" }, + "effects": [{ "stat": "economy", "delta": -1, "bias": true, "days": 180 }, { "stat": "order", "delta": 1, "days": 60 }] + } + }, + { + "id": "eco_water_concession_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 200 }, + "title": { "en": "Concede the water utility?", "fr": "Concéder le service des eaux ?" }, + "body": { + "en": "A private operator offers to run the capital's leaking water network and fund its repair in return for a thirty-year concession. The utility loses a fortune; residents fear the day the bills change.", + "fr": "Un opérateur privé propose d'exploiter le réseau d'eau fuyard de la capitale et de financer sa réparation, contre trente ans de concession. Le service public perd une fortune ; les habitants redoutent le jour où les factures changeront." + }, + "yes": { + "label": { "en": "Grant the concession", "fr": "Accorder la concession" }, + "effects": [ + { "oneOff": -0.6 }, + { "extraSpending": -0.1 }, + { "sector": "infrastructure", "delta": 3, "days": 240 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ], + "setFlags": ["eco_water_private"], + "followUp": { "id": "eco_water_tariffs_01", "inDays": 200 } + }, + "no": { + "label": { "en": "Keep it public", "fr": "Garder le service public" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "infrastructure", "delta": -1, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "eco_water_tariffs_01", + "category": "economy", + "doc": "letter", + "sender": "mayor", + "followUpOnly": true, + "conditions": { "dayMin": 200 }, + "title": { "en": "Water bills rise by a third", "fr": "Les factures d'eau augmentent d'un tiers" }, + "body": { + "en": "The concession operator has raised the water tariff by a third, as the contract allows. Neighbourhood committees threaten to stop paying, and City Hall asks the government to step in.", + "fr": "L'exploitant a relevé le tarif de l'eau d'un tiers, comme le contrat l'y autorise. Des comités de quartier menacent de cesser de payer, et la mairie demande au gouvernement d'intervenir." + }, + "yes": { + "label": { "en": "Renegotiate the contract", "fr": "Renégocier le contrat" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "softPower", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Honour the contract", "fr": "Honorer le contrat" }, + "effects": [{ "stat": "opinion", "delta": -3, "days": 40 }, { "stat": "unrest", "delta": 3, "days": 60 }] + } + }, + { + "id": "eco_coast_resort_01", + "category": "economy", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 240 }, + "title": { "en": "A mega-resort on the unspoiled coast", "fr": "Un méga-complexe sur le littoral sauvage" }, + "body": { + "en": "An investor wants to build five hotels and a golf course on the last wild stretch of coast. It promises four thousand jobs; fishermen and biologists promise a fight.", + "fr": "Un investisseur veut bâtir cinq hôtels et un golf sur le dernier tronçon sauvage du littoral. Il promet quatre mille emplois ; pêcheurs et biologistes promettent un combat." + }, + "yes": { + "label": { "en": "Approve the resort", "fr": "Approuver le complexe" }, + "effects": [ + { "oneOff": -0.2 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": -0.3, "bias": true, "days": 365 }, + { "sector": "environment", "delta": -3, "days": 240 } + ], + "setFlags": ["eco_coast_resort"], + "followUp": { "id": "eco_resort_protest_01", "inDays": 120 } + }, + "no": { + "label": { "en": "Protect the coast", "fr": "Protéger le littoral" }, + "effects": [ + { "sector": "environment", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "eco_resort_protest_01", + "category": "economy", + "doc": "report", + "sender": "min_environment", + "followUpOnly": true, + "conditions": { "dayMin": 240 }, + "title": { "en": "Fishing villages blockade the resort", "fr": "Les villages de pêcheurs bloquent le chantier" }, + "body": { + "en": "Fishing communities have blockaded the resort site after earthworks damaged the nesting beach. The investor threatens to leave and sue the state.", + "fr": "Les communautés de pêcheurs bloquent le chantier du complexe après que les terrassements ont abîmé la plage de ponte. L'investisseur menace de partir et de poursuivre l'État." + }, + "yes": { + "label": { "en": "Halt the works", "fr": "Suspendre les travaux" }, + "effects": [ + { "stat": "economy", "delta": -2, "days": 60 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "sector": "environment", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Clear the blockade", "fr": "Lever le blocus" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 60 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "eco_fiscal_rule_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 150 }, + "title": { "en": "A constitutional debt brake", "fr": "Un frein constitutionnel à la dette" }, + "body": { + "en": "A rule capping the deficit by law would reassure lenders and bind every future government, this one included. The first crisis will show how much freedom it takes away.", + "fr": "Une règle plafonnant le déficit par la loi rassurerait les prêteurs et lierait tous les gouvernements futurs, celui-ci compris. La première crise montrera combien de liberté elle retire." + }, + "yes": { + "label": { "en": "Adopt the rule", "fr": "Adopter la règle" }, + "effects": [ + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": 2, "days": 90 }, + { "extraSpending": -0.2 } + ], + "setFlags": ["eco_fiscal_rule"], + "followUp": { "id": "eco_fiscal_rule_test_01", "inDays": 540 } + }, + "no": { + "label": { "en": "Keep discretion", "fr": "Garder sa liberté d'action" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "softPower", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "eco_fiscal_rule_test_01", + "category": "economy", + "doc": "report", + "sender": "min_finance", + "followUpOnly": true, + "conditions": { "dayMin": 150 }, + "title": { "en": "The debt brake meets its first test", "fr": "Le frein à la dette passe son premier test" }, + "body": { + "en": "A downturn has pushed the deficit past the legal ceiling. Hospitals and jobless funds need money, and the rule says cut. Breaking it once will cost credibility; keeping it will cost votes.", + "fr": "Un ralentissement a poussé le déficit au-delà du plafond légal. Hôpitaux et caisses de chômage ont besoin d'argent, et la règle impose de couper. L'enfreindre une fois coûtera en crédibilité ; la respecter coûtera des voix." + }, + "yes": { + "label": { "en": "Respect the rule", "fr": "Respecter la règle" }, + "effects": [ + { "extraSpending": -0.4 }, + { "stat": "opinion", "delta": -3, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 60 }, + { "sector": "social", "delta": -2, "days": 120 }, + { "stat": "softPower", "delta": 2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Suspend the rule", "fr": "Suspendre la règle" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "eco_interest_cap_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 270 }, + "title": { "en": "Cap interest on consumer loans", "fr": "Plafonner les taux des crédits à la consommation" }, + "body": { + "en": "Payday lenders charge annual rates above two hundred per cent in the poorest districts. A legal cap would end the worst abuses and push some borrowers toward unlicensed lenders.", + "fr": "Des prêteurs sur gages facturent plus de deux cents pour cent par an dans les quartiers les plus pauvres. Un plafond légal mettrait fin aux pires abus et pousserait certains emprunteurs vers des prêteurs clandestins." + }, + "yes": { + "label": { "en": "Cap the rates", "fr": "Plafonner les taux" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "order", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Leave the market free", "fr": "Laisser faire le marché" }, + "effects": [{ "stat": "opinion", "delta": -3, "days": 40 }, { "stat": "unrest", "delta": 2, "days": 60 }] + } + }, + { + "id": "eco_dev_bank_01", + "category": "economy", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 300 }, + "title": { "en": "A state development bank for small firms", "fr": "Une banque publique pour les petites entreprises" }, + "body": { + "en": "Small firms say commercial banks only lend against property. A state development bank would fund them at low rates, as long as it is not used to reward friends.", + "fr": "Les petites entreprises disent que les banques commerciales ne prêtent que contre des biens immobiliers. Une banque publique les financerait à bas taux, à condition de ne pas servir à récompenser des amis." + }, + "yes": { + "label": { "en": "Create the bank", "fr": "Créer la banque" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 365 }, + { "sector": "industry", "delta": 2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Leave it to the market", "fr": "Laisser faire le marché" }, + "effects": [{ "stat": "economy", "delta": -1, "bias": true, "days": 180 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "eco_mortgage_cap_01", + "category": "economy", + "doc": "memo", + "sender": "central_bank", + "conditions": { "dayMin": 330 }, + "title": { "en": "Cap mortgages at 80 per cent of value", "fr": "Plafonner les prêts immobiliers à 80 % de la valeur" }, + "body": { + "en": "House prices in the capital have doubled in six years. The Central Bank proposes a limit on loans relative to value, which would cool the market and lock many young couples out of it.", + "fr": "Les prix de l'immobilier ont doublé en six ans dans la capitale. La Banque centrale propose de limiter les prêts à une part de la valeur du bien, ce qui refroidirait le marché et en exclurait de nombreux jeunes couples." + }, + "yes": { + "label": { "en": "Cap the loans", "fr": "Plafonner les prêts" }, + "effects": [ + { "stat": "stability", "delta": 2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "growth", "delta": -0.1, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Let credit flow", "fr": "Laisser le crédit couler" }, + "effects": [ + { "stat": "growth", "delta": 0.2, "bias": true, "days": 270 }, + { "stat": "stability", "delta": -2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "eco_spending_review_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 120 }, + "title": { "en": "An outside audit of ministry spending", "fr": "Un audit externe des dépenses des ministères" }, + "body": { + "en": "Outside accountants would list every programme that has missed its goals for five years. The ministries are not enthusiastic, and some of the programmes are very popular.", + "fr": "Des experts-comptables extérieurs recenseraient tous les programmes qui n'ont pas atteint leurs objectifs depuis cinq ans. Les ministères sont peu enthousiastes, et certains programmes sont très populaires." + }, + "yes": { + "label": { "en": "Order the audit", "fr": "Ordonner l'audit" }, + "effects": [ + { "extraSpending": -0.3 }, + { "sector": "administration", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Skip the audit", "fr": "Renoncer à l'audit" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "administration", "delta": -1, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "eco_export_credit_01", + "category": "economy", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 210 }, + "title": { "en": "State insurance for exporters", "fr": "Une assurance publique pour les exportateurs" }, + "body": { + "en": "Exporters struggle to get paid by distant customers, and banks will not take the risk. A state-backed insurer would let them sell more, and hand the Treasury the unpaid bills.", + "fr": "Les exportateurs peinent à se faire payer par des clients lointains, et les banques refusent le risque. Un assureur adossé à l'État leur permettrait de vendre plus, et enverrait les impayés au Trésor." + }, + "yes": { + "label": { "en": "Create the insurer", "fr": "Créer l'assureur" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "growth", "delta": 0.2, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Decline", "fr": "Décliner" }, + "effects": [{ "stat": "economy", "delta": -1, "bias": true, "days": 180 }] + } + }, + { + "id": "eco_working_week_01", + "category": "economy", + "doc": "petition", + "sender": "union", + "conditions": { "dayMin": 360 }, + "title": { "en": "Shorten the working week", "fr": "Raccourcir la semaine de travail" }, + "body": { + "en": "The Labour Confederation asks for a 38-hour week with no loss of pay. Workers would gain their evenings; employers would pay for the same output with fewer hours.", + "fr": "La Confédération du travail réclame la semaine de 38 heures sans perte de salaire. Les salariés gagneraient leurs soirées ; les employeurs paieraient la même production avec moins d'heures." + }, + "yes": { + "label": { "en": "Cut the hours", "fr": "Réduire la durée" }, + "effects": [ + { "stat": "opinion", "delta": 4, "days": 40 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 365 }, + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Keep the 40 hours", "fr": "Garder les 40 heures" }, + "effects": [ + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "eco_youth_wage_01", + "category": "economy", + "doc": "memo", + "sender": "min_labour", + "conditions": { "min": { "unemployment": 7 }, "dayMin": 180 }, + "title": { "en": "A starter wage for first jobs", "fr": "Un salaire d'entrée pour les premiers emplois" }, + "body": { + "en": "Joblessness among the young is twice the national rate. A lower starter wage for under-25s would make hiring them cheaper, and the union would call it a pay cut for the young.", + "fr": "Le chômage des jeunes est deux fois supérieur à la moyenne nationale. Un salaire d'entrée réduit pour les moins de 25 ans rendrait leur embauche moins chère, et le syndicat y verrait une baisse de salaire pour les jeunes." + }, + "yes": { + "label": { "en": "Create the starter wage", "fr": "Créer le salaire d'entrée" }, + "effects": [ + { "stat": "unemployment", "delta": -0.4, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Keep one minimum", "fr": "Garder un seul minimum" }, + "effects": [ + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "eco_port_strike_01", + "category": "economy", + "doc": "report", + "sender": "min_transport", + "conditions": { "dayMin": 300 }, + "title": { "en": "Dockers stop work at the port", "fr": "Les dockers arrêtent le travail" }, + "body": { + "en": "Dockers have stopped work to protest a plan to automate the cranes. Ships queue offshore and exporters lose money each day.", + "fr": "Les dockers ont cessé le travail pour protester contre un projet d'automatisation des grues. Les navires font la queue au large et les exportateurs perdent de l'argent chaque jour." + }, + "yes": { + "label": { "en": "Negotiate with the dockers", "fr": "Négocier avec les dockers" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "unrest", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 30 } + ], + "followUp": { "id": "eco_port_deal_01", "inDays": 60 } + }, + "no": { + "label": { "en": "Order them back", "fr": "Les contraindre à reprendre" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 60 }, + { "stat": "unrest", "delta": 4, "days": 60 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "economy", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "eco_port_deal_01", + "category": "economy", + "doc": "memo", + "sender": "min_transport", + "followUpOnly": true, + "conditions": { "dayMin": 300 }, + "title": { "en": "The port automation deal", "fr": "L'accord sur l'automatisation du port" }, + "body": { + "en": "Talks have produced a plan: automation goes ahead over six years, with retraining. Employers want a shorter transition; the union wants a written job guarantee.", + "fr": "Les négociations ont abouti à un plan : l'automatisation se fera sur six ans, avec reconversion. Les armateurs veulent une transition plus courte ; le syndicat exige une garantie d'emploi écrite." + }, + "yes": { + "label": { "en": "Guarantee the jobs", "fr": "Garantir les emplois" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "unrest", "delta": -2, "days": 60 }, + { "sector": "transport", "delta": 2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Speed up automation", "fr": "Accélérer l'automatisation" }, + "effects": [ + { "sector": "transport", "delta": 3, "days": 180 }, + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 270 }, + { "stat": "unrest", "delta": 3, "days": 60 } + ] + } + }, + { + "id": "eco_kickback_probe_01", + "category": "economy", + "doc": "report", + "sender": "min_justice", + "conditions": { "dayMin": 240 }, + "title": { + "en": "Audit finds kickbacks in road contracts", + "fr": "Un audit révèle des pots-de-vin dans les marchés routiers" + }, + "body": { + "en": "The audit court found that a quarter of road repair contracts went to firms tied to provincial officials, at prices well above market. The officials belong to the governing coalition.", + "fr": "La Cour des comptes a constaté qu'un quart des marchés de réfection des routes allait à des entreprises liées à des élus provinciaux, à des prix bien supérieurs à ceux du marché. Ces élus font partie de la coalition au pouvoir." + }, + "yes": { + "label": { "en": "Prosecute them", "fr": "Engager des poursuites" }, + "effects": [ + { "sector": "justice", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "stability", "delta": -3, "days": 60 }, + { "extraSpending": -0.1 } + ], + "followUp": { "id": "eco_coalition_revolt_01", "inDays": 45 } + }, + "no": { + "label": { "en": "Bury the report", "fr": "Enterrer le rapport" }, + "effects": [ + { "stat": "stability", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -4, "days": 60 }, + { "sector": "justice", "delta": -3, "days": 180 }, + { "stat": "softPower", "delta": -2, "days": 90 } + ] + } + }, + { + "id": "eco_coalition_revolt_01", + "category": "economy", + "doc": "memo", + "sender": "press_office", + "followUpOnly": true, + "conditions": { "dayMin": 240 }, + "title": { "en": "The coalition threatens to walk out", "fr": "La coalition menace de rompre" }, + "body": { + "en": "Coalition parties call the prosecutions a vendetta and threaten to block the budget unless the cases are dropped.", + "fr": "Les partis de la coalition dénoncent une vendetta et menacent de bloquer le budget si les poursuites ne sont pas abandonnées." + }, + "yes": { + "label": { "en": "Hold the line", "fr": "Tenir bon" }, + "effects": [ + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "sector": "justice", "delta": 2, "days": 120 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Drop the cases", "fr": "Abandonner les poursuites" }, + "effects": [ + { "stat": "stability", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "sector": "justice", "delta": -3, "days": 180 } + ] + } + }, + { + "id": "eco_asset_declaration_01", + "category": "economy", + "doc": "letter", + "sender": "min_justice", + "conditions": { "dayMin": 330 }, + "title": { "en": "Publish officials' wealth declarations", "fr": "Publier le patrimoine des responsables publics" }, + "body": { + "en": "Senior officials and elected members would publish their assets every year. Reporters are eager; many officials are not, and some wonder how a salary can buy a villa.", + "fr": "Les hauts fonctionnaires et les élus publieraient leur patrimoine chaque année. Les journalistes sont impatients ; beaucoup de responsables le sont moins, et certains se demandent comment un salaire peut payer une villa." + }, + "yes": { + "label": { "en": "Require disclosure", "fr": "Imposer la transparence" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "sector": "justice", "delta": 2, "days": 120 }, + { "stat": "stability", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep it confidential", "fr": "Garder le secret" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "justice", "delta": -1, "days": 120 }, + { "stat": "stability", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "eco_year_end_windfall_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "max": { "deficit": 0.3 }, "dayMin": 360 }, + "title": { "en": "Tax receipts beat the forecast", "fr": "Des recettes fiscales supérieures aux prévisions" }, + "body": { + "en": "Receipts ended the year well above forecast. The Finance Ministry suggests using the surplus to retire debt; ministries and voters have other ideas.", + "fr": "Les recettes ont terminé l'année bien au-dessus des prévisions. Le ministère des Finances suggère de réduire la dette ; les ministères et les électeurs ont d'autres idées." + }, + "yes": { + "label": { "en": "Return it as tax relief", "fr": "Le rendre en baisse d'impôts" }, + "effects": [ + { "revenue": "vat", "delta": -1 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Pay down debt", "fr": "Réduire la dette" }, + "effects": [ + { "oneOff": -0.5 }, + { "stat": "softPower", "delta": 1, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "eco_consumer_agency_01", + "category": "economy", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 270 }, + "title": { "en": "Create a consumer protection agency", "fr": "Créer une agence de protection des consommateurs" }, + "body": { + "en": "Faulty goods, rigged scales and fake discounts are common in the markets. An agency with inspectors and powers to fine would help shoppers, and irritate every shopkeeper.", + "fr": "Produits défectueux, balances truquées et fausses promotions sont courants sur les marchés. Une agence dotée d'inspecteurs et du pouvoir de sanction aiderait les clients et agacerait tous les commerçants." + }, + "yes": { + "label": { "en": "Create the agency", "fr": "Créer l'agence" }, + "effects": [ + { "extraSpending": 0.1 }, + { "revenue": "other", "delta": 0.1 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Rely on the courts", "fr": "Se reposer sur les tribunaux" }, + "effects": [{ "stat": "opinion", "delta": -2, "days": 40 }, { "sector": "justice", "delta": -1, "days": 120 }] + } + }, + { + "id": "eco_pension_reserve_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "deficit": 1.5 }, "dayMin": 200 }, + "title": { "en": "Borrow from the pension reserve fund", "fr": "Emprunter à la réserve des retraites" }, + "body": { + "en": "The pension reserve fund holds a decade of surplus contributions. Using part of it would close this year's gap without raising a tax, and leave future retirees with the bill.", + "fr": "Le fonds de réserve des retraites contient dix ans d'excédents de cotisations. En utiliser une partie comblerait le déficit de l'année sans relever d'impôt, et laisserait la facture aux futurs retraités." + }, + "yes": { + "label": { "en": "Tap the reserve", "fr": "Puiser dans la réserve" }, + "effects": [ + { "oneOff": -0.8 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "stability", "delta": -2, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Leave it untouched", "fr": "Ne pas y toucher" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "stat": "economy", "delta": -1, "bias": true, "days": 180 }] + } + }, + { + "id": "eco_flat_tax_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 500 }, + "title": { "en": "A flat income tax", "fr": "Un impôt sur le revenu à taux unique" }, + "body": { + "en": "A single income tax rate would simplify the code and shrink the room for avoidance. It would also cut taxes on the highest earners and raise them for the lowest.", + "fr": "Un taux unique d'impôt sur le revenu simplifierait le code et réduirait les possibilités d'évitement. Il baisserait aussi l'impôt des plus hauts revenus et relèverait celui des plus bas." + }, + "yes": { + "label": { "en": "Adopt the flat tax", "fr": "Adopter le taux unique" }, + "effects": [ + { "revenue": "income", "delta": -1 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep the brackets", "fr": "Garder les tranches" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "stat": "economy", "delta": -1, "bias": true, "days": 180 }] + } + }, + { + "id": "eco_digital_levy_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 700 }, + "title": { + "en": "Tax foreign streaming and ad platforms", + "fr": "Taxer les plateformes étrangères de vidéo et de publicité" + }, + "body": { + "en": "Foreign platforms earn large sums from Valdorian users and pay almost nothing here. A levy would raise money; their home governments would raise objections.", + "fr": "Des plateformes étrangères tirent de fortes recettes des utilisateurs valdoriens et ne paient presque rien ici. Une taxe rapporterait de l'argent ; les gouvernements de leurs pays d'origine protesteraient." + }, + "yes": { + "label": { "en": "Impose the levy", "fr": "Instaurer la taxe" }, + "effects": [ + { "revenue": "other", "delta": 0.3 }, + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Stay out of it", "fr": "S'abstenir" }, + "effects": [{ "stat": "economy", "delta": 1, "bias": true, "days": 180 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "eco_inheritance_tax_01", + "category": "economy", + "doc": "letter", + "sender": "min_finance", + "conditions": { "dayMin": 420 }, + "title": { + "en": "Exempt family farms from inheritance tax", + "fr": "Exonérer les fermes familiales des droits de succession" + }, + "body": { + "en": "Families sell farms and workshops to pay inheritance tax when the owner dies. An exemption would keep them intact; the Treasury says it would also shelter a few large fortunes.", + "fr": "Des familles vendent fermes et ateliers pour payer les droits de succession au décès du propriétaire. Une exonération les préserverait ; le Trésor dit qu'elle protégerait aussi quelques grosses fortunes." + }, + "yes": { + "label": { "en": "Grant the exemption", "fr": "Accorder l'exonération" }, + "effects": [ + { "revenue": "other", "delta": -0.2 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep the tax", "fr": "Maintenir l'impôt" }, + "effects": [{ "stat": "opinion", "delta": -2, "days": 40 }, { "stat": "unrest", "delta": 1, "days": 40 }] + } + }, + { + "id": "eco_property_tax_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 450 }, + "title": { "en": "A yearly tax on property value", "fr": "Une taxe annuelle sur la valeur des biens" }, + "body": { + "en": "Local budgets depend on transfers from the capital. A recurring property tax would fund them, and hit homeowners and landlords who have never paid one.", + "fr": "Les budgets locaux dépendent des transferts de la capitale. Une taxe foncière annuelle les financerait, et frapperait propriétaires et bailleurs qui n'en ont jamais payé." + }, + "yes": { + "label": { "en": "Introduce the tax", "fr": "Instaurer la taxe" }, + "effects": [ + { "revenue": "other", "delta": 0.5 }, + { "stat": "opinion", "delta": -4, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Shelve it", "fr": "Y renoncer" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "administration", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "eco_devaluation_01", + "category": "economy", + "doc": "memo", + "sender": "central_bank", + "conditions": { "max": { "economy": 48 }, "dayMin": 450 }, + "title": { "en": "Devalue the currency?", "fr": "Dévaluer la monnaie ?" }, + "body": { + "en": "Exporters beg for a cheaper currency to win back markets. A devaluation would help them at once, raise the price of every import and eat into household savings.", + "fr": "Les exportateurs réclament une monnaie moins chère pour reconquérir des marchés. Une dévaluation les aiderait aussitôt, renchérirait toutes les importations et rognerait l'épargne des ménages." + }, + "yes": { + "label": { "en": "Devalue", "fr": "Dévaluer" }, + "effects": [ + { "stat": "economy", "delta": 2, "bias": true, "days": 270 }, + { "stat": "growth", "delta": 0.4, "bias": true, "days": 270 }, + { "stat": "inflation", "delta": 1, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "softPower", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Hold the parity", "fr": "Maintenir la parité" }, + "effects": [ + { "stat": "economy", "delta": -2, "bias": true, "days": 180 }, + { "stat": "unemployment", "delta": 0.3, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "eco_money_printing_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "deficit": 2.5 }, "dayMin": 600, "notFlags": ["eco_cb_independent"] }, + "title": { "en": "Finance the deficit with new money?", "fr": "Financer le déficit par la création monétaire ?" }, + "body": { + "en": "The Finance Ministry asks the Central Bank to buy new bonds directly, avoiding the market and its rates. It works until prices start to move.", + "fr": "Le ministère des Finances demande à la Banque centrale d'acheter directement de nouvelles obligations, pour éviter le marché et ses taux. Cela fonctionne jusqu'à ce que les prix s'envolent." + }, + "yes": { + "label": { "en": "Print the money", "fr": "Faire tourner la planche à billets" }, + "effects": [ + { "oneOff": -0.8 }, + { "stat": "inflation", "delta": 1, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "extraSpending": -0.3 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "eco_gold_reserve_01", + "category": "economy", + "doc": "memo", + "sender": "central_bank", + "conditions": { "dayMin": 550 }, + "title": { "en": "Sell part of the gold reserve", "fr": "Vendre une partie des réserves d'or" }, + "body": { + "en": "Gold bought decades ago is worth many times its price. Selling a tenth would fund the budget for months and weaken the Central Bank's shield against a currency attack.", + "fr": "L'or acheté il y a des décennies vaut bien plus que son prix. En vendre un dixième financerait le budget pendant des mois et affaiblirait le bouclier de la Banque centrale contre une attaque sur la monnaie." + }, + "yes": { + "label": { "en": "Sell the gold", "fr": "Vendre l'or" }, + "effects": [ + { "oneOff": -0.7 }, + { "stat": "softPower", "delta": -1, "days": 90 }, + { "stat": "stability", "delta": -1, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Keep the reserve", "fr": "Garder les réserves" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "stat": "economy", "delta": 1, "bias": true, "days": 180 }] + } + }, + { + "id": "eco_bank_capital_01", + "category": "economy", + "doc": "letter", + "sender": "central_bank", + "conditions": { "dayMin": 500 }, + "title": { "en": "Raise bank capital requirements", "fr": "Relever les exigences de fonds propres" }, + "body": { + "en": "After a decade of cheap credit, banks lend far more than they hold in capital. Higher requirements would make them safer and slow lending for a few years.", + "fr": "Après dix ans de crédit bon marché, les banques prêtent bien plus que leurs fonds propres ne le permettent. Des exigences plus élevées les rendraient plus solides et ralentiraient le crédit pendant quelques années." + }, + "yes": { + "label": { "en": "Raise the requirements", "fr": "Relever les exigences" }, + "effects": [ + { "stat": "stability", "delta": 2, "bias": true, "days": 365 }, + { "stat": "growth", "delta": -0.2, "bias": true, "days": 270 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Leave the rules", "fr": "Laisser les règles" }, + "effects": [ + { "stat": "growth", "delta": 0.2, "bias": true, "days": 270 }, + { "stat": "stability", "delta": -2, "bias": true, "days": 365 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "eco_deposit_guarantee_01", + "category": "economy", + "doc": "report", + "sender": "central_bank", + "conditions": { "dayMin": 650 }, + "title": { "en": "Raise the deposit guarantee", "fr": "Relever la garantie des dépôts" }, + "body": { + "en": "Savers remember small banks that failed and ask for a higher guarantee on their deposits. It would calm them, and encourage banks to take more risk.", + "fr": "Les épargnants se souviennent de petites banques en faillite et réclament une garantie plus élevée sur leurs dépôts. Cela les rassurerait, et encouragerait les banques à prendre plus de risques." + }, + "yes": { + "label": { "en": "Raise the guarantee", "fr": "Relever la garantie" }, + "effects": [ + { "stat": "stability", "delta": 2, "bias": true, "days": 365 }, + { "oneOff": 0.1 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep the ceiling", "fr": "Garder le plafond" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "stability", "delta": -1, "bias": true, "days": 270 } + ] + } + }, + { + "id": "eco_undeclared_work_01", + "category": "economy", + "doc": "memo", + "sender": "min_labour", + "conditions": { "dayMin": 520 }, + "title": { "en": "Fine employers of undeclared workers", "fr": "Sanctionner l'emploi non déclaré" }, + "body": { + "en": "Building sites and farms hire thousands of people without contracts. Heavy fines would pull them into the open and push some firms out of business.", + "fr": "Chantiers et exploitations agricoles embauchent des milliers de personnes sans contrat. De lourdes amendes les feraient sortir de l'ombre et pousseraient certaines entreprises à fermer." + }, + "yes": { + "label": { "en": "Impose heavy fines", "fr": "Imposer de lourdes amendes" }, + "effects": [ + { "revenue": "other", "delta": 0.3 }, + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 270 }, + { "sector": "social", "delta": 1, "days": 120 }, + { "stat": "opinion", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Tolerate it", "fr": "Tolérer" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "revenue": "other", "delta": -0.1 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "eco_shipyard_rescue_01", + "category": "economy", + "doc": "memo", + "sender": "min_industry", + "conditions": { "max": { "q:industry": 50 }, "dayMin": 600 }, + "title": { "en": "Rescue the failing shipyard", "fr": "Sauver le chantier naval en faillite" }, + "body": { + "en": "The Saltmarsh shipyard has no orders and four thousand workers. A state rescue would buy time; the Treasury says time is all it would buy.", + "fr": "Le chantier naval de Saltmarsh n'a plus de commandes et emploie quatre mille personnes. Un sauvetage public gagnerait du temps ; le Trésor dit que c'est tout ce qu'il achèterait." + }, + "yes": { + "label": { "en": "Rescue the yard", "fr": "Sauver le chantier" }, + "effects": [ + { "oneOff": 0.6 }, + { "sector": "industry", "delta": 3, "days": 180 }, + { "stat": "unrest", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Let it close", "fr": "Le laisser fermer" }, + "effects": [ + { "stat": "unemployment", "delta": 0.3, "bias": true, "days": 270 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "opinion", "delta": -3, "days": 40 } + ] + } + }, + { + "id": "eco_winter_cheque_01", + "category": "economy", + "doc": "memo", + "sender": "min_labour", + "conditions": { "dayMin": 700 }, + "title": { "en": "A heating cheque for poor households", "fr": "Un chèque chauffage pour les foyers modestes" }, + "body": { + "en": "Winter heating costs have climbed and thousands of poor households ration warmth. A one-off cheque would help them and cost the Treasury a tidy sum.", + "fr": "Les coûts de chauffage ont grimpé et des milliers de foyers modestes se rationnent. Un chèque exceptionnel les aiderait et coûterait au Trésor une somme rondelette." + }, + "yes": { + "label": { "en": "Pay the cheque", "fr": "Verser le chèque" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "unrest", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "sector": "social", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "eco_wage_indexation_01", + "category": "economy", + "doc": "petition", + "sender": "union", + "conditions": { "min": { "inflation": 4 }, "dayMin": 800 }, + "title": { "en": "Index wages to inflation", "fr": "Indexer les salaires sur l'inflation" }, + "body": { + "en": "The Labour Confederation demands automatic pay rises tied to prices. Workers would be protected, and inflation would be harder to stop.", + "fr": "La Confédération du travail exige des hausses de salaire automatiques liées aux prix. Les salariés seraient protégés, et l'inflation serait plus difficile à arrêter." + }, + "yes": { + "label": { "en": "Index wages", "fr": "Indexer les salaires" }, + "effects": [ + { "stat": "opinion", "delta": 4, "days": 40 }, + { "stat": "inflation", "delta": 0.6, "bias": true, "days": 270 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 270 }, + { "stat": "unrest", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "inflation", "delta": -0.3, "bias": true, "days": 180 } + ] + } + }, + { + "id": "eco_retail_margins_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 750 }, + "title": { "en": "Limit supermarket margins", "fr": "Encadrer les marges des supermarchés" }, + "body": { + "en": "Three chains control most food retail, and their profits rose while household budgets shrank. Margin limits would please shoppers and might leave shelves less well stocked.", + "fr": "Trois enseignes dominent la distribution alimentaire, et leurs profits ont augmenté pendant que le budget des ménages diminuait. Un encadrement des marges plairait aux clients et pourrait appauvrir les rayons." + }, + "yes": { + "label": { "en": "Limit the margins", "fr": "Encadrer les marges" }, + "effects": [ + { "stat": "inflation", "delta": -0.3, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Trust competition", "fr": "Faire confiance à la concurrence" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 } + ] + } + }, + { + "id": "eco_tourism_cap_01", + "category": "economy", + "doc": "letter", + "sender": "mayor", + "conditions": { "dayMin": 850 }, + "title": { "en": "Cap visitors in the old town", "fr": "Limiter les visiteurs dans la vieille ville" }, + "body": { + "en": "Old town residents say the cruise crowds have made life unbearable. The mayor wants daily limits; tourism operators warn of lost income.", + "fr": "Les habitants de la vieille ville disent que les foules des paquebots rendent la vie impossible. La mairie veut des quotas quotidiens ; les opérateurs touristiques redoutent des pertes de revenus." + }, + "yes": { + "label": { "en": "Set daily limits", "fr": "Fixer des quotas" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 270 }, + { "sector": "culture", "delta": 1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Welcome every visitor", "fr": "Accueillir tous les visiteurs" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "eco_toll_bridge_01", + "category": "economy", + "doc": "letter", + "sender": "min_transport", + "conditions": { "dayMin": 560 }, + "title": { "en": "A toll bridge built with private money", "fr": "Un pont à péage financé par le privé" }, + "body": { + "en": "A consortium offers to build the third bridge over the river and run it for thirty years. The state pays nothing now, and drivers pay for decades.", + "fr": "Un consortium propose de construire le troisième pont sur le fleuve et de l'exploiter pendant trente ans. L'État ne paie rien aujourd'hui, et les automobilistes paieront pendant des décennies." + }, + "yes": { + "label": { "en": "Sign the partnership", "fr": "Signer le partenariat" }, + "effects": [ + { "sector": "transport", "delta": 3, "days": 240 }, + { "extraSpending": -0.1 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Fund it publicly", "fr": "Financer sur fonds publics" }, + "effects": [ + { "oneOff": 0.7 }, + { "sector": "transport", "delta": 3, "days": 240 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "eco_hard_bond_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 500 }, + "title": { "en": "Borrow abroad in foreign currency", "fr": "Emprunter à l'étranger en devises" }, + "body": { + "en": "Foreign investors would buy a large bond at a lower rate if it is paid in a hard currency. The saving is real; so is the risk if the national currency ever falls.", + "fr": "Des investisseurs étrangers achèteraient une grosse émission à un taux plus bas si elle est remboursée en devise forte. L'économie est réelle ; le risque aussi si la monnaie nationale venait à chuter." + }, + "yes": { + "label": { "en": "Issue the bond", "fr": "Émettre l'emprunt" }, + "effects": [{ "oneOff": -0.6 }, { "extraSpending": -0.1 }, { "stat": "softPower", "delta": 1, "days": 90 }], + "setFlags": ["eco_hard_bond"], + "followUp": { "id": "eco_bond_currency_01", "inDays": 360 } + }, + "no": { + "label": { "en": "Borrow at home", "fr": "Emprunter localement" }, + "effects": [{ "extraSpending": 0.1 }, { "stat": "economy", "delta": -1, "bias": true, "days": 180 }] + } + }, + { + "id": "eco_bond_currency_01", + "category": "economy", + "doc": "report", + "sender": "central_bank", + "followUpOnly": true, + "conditions": { "dayMin": 500 }, + "title": { "en": "The currency slips and the bond bites", "fr": "La monnaie glisse et l'emprunt pèse" }, + "body": { + "en": "The national currency has lost a tenth of its value, and the foreign-currency bond now costs far more to service. Reserves can cover the gap for a while.", + "fr": "La monnaie nationale a perdu un dixième de sa valeur, et l'emprunt en devises coûte désormais bien plus cher à servir. Les réserves peuvent combler l'écart un moment." + }, + "yes": { + "label": { "en": "Draw on reserves", "fr": "Puiser dans les réserves" }, + "effects": [{ "oneOff": 0.4 }, { "stat": "softPower", "delta": -1, "days": 60 }] + }, + "no": { + "label": { "en": "Cut spending elsewhere", "fr": "Couper ailleurs" }, + "effects": [ + { "extraSpending": -0.3 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "administration", "delta": -2, "days": 120 } + ] + } + }, + { + "id": "eco_gig_workers_01", + "category": "economy", + "doc": "memo", + "sender": "min_labour", + "conditions": { "dayMin": 550 }, + "title": { "en": "Couriers and the delivery apps", "fr": "Livreurs et applications de livraison" }, + "body": { + "en": "Delivery couriers work for apps as self-employed, with no sick pay. A law making the platforms employers would give couriers security, and probably cost many of them their work.", + "fr": "Les livreurs travaillent pour des applications comme indépendants, sans congé maladie. Une loi faisant des plateformes des employeurs les protégerait, et en priverait sans doute beaucoup de travail." + }, + "yes": { + "label": { "en": "Make them employees", "fr": "Imposer le salariat" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 270 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ], + "setFlags": ["eco_gig_regulated"], + "followUp": { "id": "eco_platform_exit_01", "inDays": 90 } + }, + "no": { + "label": { "en": "Keep them self-employed", "fr": "Garder l'indépendance" }, + "effects": [ + { "stat": "unrest", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "eco_platform_exit_01", + "category": "economy", + "doc": "memo", + "sender": "press_office", + "followUpOnly": true, + "conditions": { "dayMin": 550 }, + "title": { + "en": "The biggest delivery app threatens to leave", + "fr": "La première application de livraison menace de partir" + }, + "body": { + "en": "The biggest delivery app says it will leave the country unless the employee rule is eased. Fifteen thousand couriers depend on it.", + "fr": "La première application de livraison dit qu'elle quittera le pays si la règle du salariat n'est pas assouplie. Quinze mille livreurs en dépendent." + }, + "yes": { + "label": { "en": "Ease the rule", "fr": "Assouplir la règle" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Let it go", "fr": "La laisser partir" }, + "effects": [ + { "stat": "unemployment", "delta": 0.3, "bias": true, "days": 180 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "eco_bread_reform_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 450 }, + "title": { "en": "Swap the bread subsidy for cash", "fr": "Remplacer la subvention du pain par des transferts" }, + "body": { + "en": "The bread subsidy costs a great deal and also feeds livestock and bakers' margins. Cash payments to poor households would target help better, if the payments reach them.", + "fr": "La subvention du pain coûte très cher et nourrit aussi le bétail et les marges des boulangers. Des versements en espèces aux foyers pauvres cibleraient mieux l'aide, à condition qu'ils parviennent à destination." + }, + "yes": { + "label": { "en": "Switch to cash", "fr": "Passer aux transferts" }, + "effects": [ + { "extraSpending": -0.2 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "social", "delta": 2, "days": 180 } + ], + "followUp": { "id": "eco_cash_glitch_01", "inDays": 90 } + }, + "no": { + "label": { "en": "Keep the subsidy", "fr": "Garder la subvention" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "social", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "eco_cash_glitch_01", + "category": "economy", + "doc": "report", + "sender": "min_labour", + "followUpOnly": true, + "conditions": { "dayMin": 450 }, + "title": { "en": "Cash transfers miss thousands of households", "fr": "Des milliers de foyers privés de transferts" }, + "body": { + "en": "Registry errors left tens of thousands of poor households without their payment in the first month, while the price of bread has risen. Queues form at the district offices.", + "fr": "Des erreurs de registre ont privé des dizaines de milliers de foyers pauvres de leur versement le premier mois, alors que le prix du pain a augmenté. Des files se forment devant les mairies d'arrondissement." + }, + "yes": { + "label": { "en": "Fund emergency payments", "fr": "Financer des paiements d'urgence" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "unrest", "delta": -2, "days": 40 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Wait for the registry fix", "fr": "Attendre la correction du registre" }, + "effects": [ + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "sector": "administration", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "eco_crypto_exchanges_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 600 }, + "title": { + "en": "License the crypto exchanges, or ban them?", + "fr": "Autoriser ou interdire les plateformes de cryptomonnaies ?" + }, + "body": { + "en": "Several unregulated exchanges move money for thousands of citizens, and for some criminals. A licence regime would bring them under supervision and give them respectability.", + "fr": "Plusieurs plateformes non régulées font circuler l'argent de milliers de citoyens, et de quelques criminels. Un régime de licences les placerait sous contrôle et leur donnerait une respectabilité." + }, + "yes": { + "label": { "en": "License the exchanges", "fr": "Autoriser sous licence" }, + "effects": [ + { "revenue": "other", "delta": 0.1 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 270 }, + { "stat": "softPower", "delta": 1, "days": 90 } + ], + "setFlags": ["eco_crypto_licensed"], + "followUp": { "id": "eco_exchange_collapse_01", "inDays": 240 } + }, + "no": { + "label": { "en": "Ban them", "fr": "Les interdire" }, + "effects": [ + { "stat": "order", "delta": 1, "days": 60 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "eco_exchange_collapse_01", + "category": "economy", + "doc": "telegram", + "sender": "central_bank", + "followUpOnly": true, + "conditions": { "dayMin": 600 }, + "title": { "en": "A licensed exchange halts withdrawals", "fr": "Une plateforme agréée bloque les retraits" }, + "body": { + "en": "LICENSED EXCHANGE HALTS WITHDRAWALS. FORTY THOUSAND SAVERS LOCKED OUT. PUBLIC ASKS WHETHER LICENCE MEANT STATE GUARANTEE STOP.", + "fr": "PLATEFORME AGREEE BLOQUE LES RETRAITS. QUARANTE MILLE EPARGNANTS PRIVES DE LEURS FONDS. LE PUBLIC DEMANDE SI LA LICENCE VALAIT GARANTIE DE L'ETAT STOP." + }, + "yes": { + "label": { "en": "Compensate savers", "fr": "Indemniser les épargnants" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Refuse compensation", "fr": "Refuser l'indemnisation" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 40 }, + { "sector": "justice", "delta": -1, "days": 120 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + } + }, + { + "id": "eco_rating_warning_01", + "category": "economy", + "doc": "letter", + "sender": "rating_agency", + "conditions": { "min": { "debt": 62 }, "dayMin": 900 }, + "title": { "en": "Negative outlook from the rating agency", "fr": "Perspective négative de l'agence de notation" }, + "body": { + "en": "Hallam & Pryce has moved Valdoria to negative outlook and wants a credible plan to stabilise debt within a year. A downgrade would raise every borrowing cost in the country.", + "fr": "Hallam & Pryce a placé la Valdorie sous perspective négative et réclame un plan crédible de stabilisation de la dette d'ici un an. Une dégradation renchérirait tous les emprunts du pays." + }, + "yes": { + "label": { "en": "Pledge consolidation", "fr": "S'engager à assainir" }, + "effects": [ + { "extraSpending": -0.3 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ], + "followUp": { "id": "eco_rating_relief_01", "inDays": 60 } + }, + "no": { + "label": { "en": "Dismiss the warning", "fr": "Ignorer l'avertissement" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "stat": "economy", "delta": 1, "bias": true, "days": 180 }], + "followUp": { "id": "eco_rating_cut_01", "inDays": 60 } + } + }, + { + "id": "eco_rating_relief_01", + "category": "economy", + "doc": "report", + "sender": "rating_agency", + "followUpOnly": true, + "conditions": { "dayMin": 900 }, + "title": { "en": "The outlook returns to stable", "fr": "La perspective redevient stable" }, + "body": { + "en": "Hallam & Pryce welcomes the consolidation pledge and restores a stable outlook, adding that it will check the figures next year. The Treasury sees room for manoeuvre; the agency does not.", + "fr": "Hallam & Pryce salue l'engagement d'assainissement et rétablit une perspective stable, en précisant qu'elle vérifiera les chiffres l'an prochain. Le Trésor voit une marge de manœuvre ; l'agence non." + }, + "yes": { + "label": { "en": "Keep to the plan", "fr": "Tenir le cap" }, + "effects": [ + { "extraSpending": -0.2 }, + { "stat": "softPower", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Spend the room", "fr": "Profiter de la marge" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "eco_rating_cut_01", + "category": "economy", + "doc": "report", + "sender": "rating_agency", + "followUpOnly": true, + "conditions": { "dayMin": 900 }, + "title": { "en": "Valdoria is downgraded", "fr": "La Valdorie est dégradée" }, + "body": { + "en": "Hallam & Pryce downgrades Valdoria by one notch. Borrowing costs rise, and some pension funds must sell Valdorian bonds under their mandates.", + "fr": "Hallam & Pryce abaisse la note de la Valdorie d'un cran. Les coûts d'emprunt augmentent, et certains fonds de pension doivent vendre des obligations valdoriennes en vertu de leur mandat." + }, + "yes": { + "label": { "en": "Announce emergency savings", "fr": "Annoncer des économies d'urgence" }, + "effects": [ + { "extraSpending": -0.4 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Attack the agency", "fr": "Dénoncer l'agence" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 270 }, + { "oneOff": 0.3 } + ] + } + }, + { + "id": "eco_rating_upgrade_01", + "category": "economy", + "doc": "letter", + "sender": "rating_agency", + "conditions": { "max": { "debt": 56 }, "dayMin": 1000 }, + "title": { "en": "A rating upgrade", "fr": "Une note relevée" }, + "body": { + "en": "Hallam & Pryce upgrades Valdoria, praising stable finances. Markets expect the government to bank the gain; voters expect a dividend.", + "fr": "Hallam & Pryce relève la note de la Valdorie et salue la stabilité des finances. Les marchés attendent que le gouvernement consolide ce gain ; les électeurs attendent un dividende." + }, + "yes": { + "label": { "en": "Cut taxes", "fr": "Baisser les impôts" }, + "effects": [ + { "revenue": "vat", "delta": -1 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Bank the gain", "fr": "Mettre le gain de côté" }, + "effects": [ + { "oneOff": -0.4 }, + { "stat": "softPower", "delta": 1, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "eco_debt_swap_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "debt": 65 }, "dayMin": 950 }, + "title": { "en": "Swap short debt for long bonds", "fr": "Échanger la dette courte contre des obligations longues" }, + "body": { + "en": "Much of the debt falls due within three years. The Treasury can swap it for thirty-year bonds at a higher rate, and spare the next government a crunch.", + "fr": "Une bonne partie de la dette arrive à échéance dans trois ans. Le Trésor peut l'échanger contre des obligations à trente ans, à un taux plus élevé, et épargner un mur de remboursement au prochain gouvernement." + }, + "yes": { + "label": { "en": "Lengthen the debt", "fr": "Allonger la dette" }, + "effects": [ + { "extraSpending": 0.15 }, + { "stat": "stability", "delta": 2, "bias": true, "days": 365 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep the cheap short debt", "fr": "Garder la dette courte" }, + "effects": [{ "extraSpending": -0.15 }, { "stat": "stability", "delta": -2, "bias": true, "days": 365 }] + } + }, + { + "id": "eco_debt_restructuring_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "debt": 85 }, "dayMin": 1200 }, + "title": { "en": "Ask creditors to restructure the debt", "fr": "Demander aux créanciers de restructurer la dette" }, + "body": { + "en": "Interest now swallows a large share of revenue. Creditors might accept longer terms and a haircut, if the government accepts being shut out of the markets for a while.", + "fr": "Les intérêts engloutissent désormais une grande part des recettes. Les créanciers accepteraient peut-être des délais plus longs et une décote, si le gouvernement consent à être écarté des marchés pendant un temps." + }, + "yes": { + "label": { "en": "Open the talks", "fr": "Ouvrir les négociations" }, + "effects": [ + { "oneOff": -1 }, + { "stat": "softPower", "delta": -4, "days": 180 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Pay in full", "fr": "Payer en totalité" }, + "effects": [ + { "extraSpending": -0.4 }, + { "stat": "opinion", "delta": -3, "days": 60 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "sector": "social", "delta": -2, "days": 180 } + ] + } + }, + { + "id": "eco_regional_fund_loan_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "debt": 90 }, "dayMin": 1100 }, + "title": { "en": "A loan from the Regional Monetary Fund", "fr": "Un prêt du Fonds monétaire régional" }, + "body": { + "en": "The Regional Monetary Fund offers a loan with conditions: spending cuts, a tax reform and an audit of the Central Bank. The money is cheap; the conditions are not.", + "fr": "Le Fonds monétaire régional propose un prêt assorti de conditions : coupes budgétaires, réforme fiscale et audit de la Banque centrale. L'argent est bon marché ; les conditions, beaucoup moins." + }, + "yes": { + "label": { "en": "Accept the programme", "fr": "Accepter le programme" }, + "effects": [ + { "oneOff": -1.2 }, + { "extraSpending": -0.4 }, + { "stat": "opinion", "delta": -3, "days": 60 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "softPower", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Refuse the loan", "fr": "Refuser le prêt" }, + "effects": [ + { "stat": "economy", "delta": -3, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "stability", "delta": -2, "days": 90 } + ] + } + }, + { + "id": "eco_savings_bond_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 1000 }, + "title": { "en": "A savings bond for citizens", "fr": "Un livret d'épargne d'État pour les citoyens" }, + "body": { + "en": "A bond sold to households would reduce reliance on foreign lenders and give savers a better rate than the banks. It also commits the state to pay a premium.", + "fr": "Un emprunt vendu aux ménages réduirait la dépendance envers les prêteurs étrangers et offrirait aux épargnants un meilleur taux que les banques. Il engage aussi l'État à payer une prime." + }, + "yes": { + "label": { "en": "Launch the bond", "fr": "Lancer l'emprunt" }, + "effects": [ + { "oneOff": -0.4 }, + { "extraSpending": 0.1 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": 1, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Rely on markets", "fr": "Compter sur les marchés" }, + "effects": [{ "stat": "economy", "delta": -1, "bias": true, "days": 180 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "eco_redenomination_01", + "category": "economy", + "doc": "letter", + "sender": "central_bank", + "conditions": { "dayMin": 1100 }, + "title": { "en": "Knock three zeros off the currency", "fr": "Retirer trois zéros à la monnaie" }, + "body": { + "en": "Prices in the thousands make accounts clumsy and tourists suspicious. A new currency unit would be a symbol of renewal, and cost a fortune in reprinting and software.", + "fr": "Des prix en milliers compliquent les comptes et méfient les touristes. Une nouvelle unité monétaire serait un symbole de renouveau, et coûterait une fortune en impression et en logiciels." + }, + "yes": { + "label": { "en": "Redenominate", "fr": "Redénominer" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "softPower", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 40 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Leave it as it is", "fr": "Ne rien changer" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "eco_digital_currency_01", + "category": "economy", + "doc": "report", + "sender": "central_bank", + "conditions": { "dayMin": 1000 }, + "title": { "en": "A digital currency for citizens", "fr": "Une monnaie numérique pour les citoyens" }, + "body": { + "en": "The Central Bank can offer a digital currency usable on any phone. It would bring the unbanked into the system, and give the state a view of every payment.", + "fr": "La Banque centrale peut proposer une monnaie numérique utilisable sur n'importe quel téléphone. Elle intégrerait les personnes sans compte bancaire, et donnerait à l'État une vue sur chaque paiement." + }, + "yes": { + "label": { "en": "Launch it", "fr": "La lancer" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 270 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Decline", "fr": "Décliner" }, + "effects": [{ "stat": "civilRights", "delta": 1 }, { "stat": "economy", "delta": -1, "bias": true, "days": 180 }] + } + }, + { + "id": "eco_pension_bond_quota_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "deficit": 1.5 }, "dayMin": 1300 }, + "title": { + "en": "Require pension funds to buy state bonds", + "fr": "Imposer des obligations d'État aux fonds de pension" + }, + "body": { + "en": "Pension funds could be required to hold more government bonds, which lowers borrowing costs today. Their members' returns would suffer for decades.", + "fr": "Les fonds de pension pourraient être tenus de détenir davantage d'obligations d'État, ce qui réduirait les coûts d'emprunt dès aujourd'hui. Le rendement de leurs adhérents en souffrirait pendant des décennies." + }, + "yes": { + "label": { "en": "Impose the quota", "fr": "Imposer le quota" }, + "effects": [ + { "oneOff": -0.6 }, + { "stat": "stability", "delta": -1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Leave the funds free", "fr": "Laisser les fonds libres" }, + "effects": [{ "extraSpending": 0.2 }, { "stat": "economy", "delta": 1, "bias": true, "days": 180 }] + } + }, + { + "id": "eco_pre_election_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 1350 }, + "title": { "en": "Pre-election giveaways", "fr": "Cadeaux avant les élections" }, + "body": { + "en": "Ministries have lined up tax cuts, pay rises and ribbon-cuttings for the months before the vote. The Treasury says the money is not there; pollsters say it will matter.", + "fr": "Les ministères ont aligné baisses d'impôts, hausses de salaires et inaugurations pour les mois précédant le scrutin. Le Trésor dit que l'argent n'est pas là ; les sondeurs disent que cela comptera." + }, + "yes": { + "label": { "en": "Open the purse", "fr": "Ouvrir les cordons de la bourse" }, + "effects": [ + { "oneOff": 0.8 }, + { "stat": "opinion", "delta": 5, "days": 60 }, + { "stat": "stability", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Hold the line", "fr": "Tenir la ligne" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 60 }, + { "stat": "softPower", "delta": 1, "days": 90 }, + { "extraSpending": -0.1 } + ] + } + }, + { + "id": "eco_sovereign_fund_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 1000 }, + "title": { "en": "A sovereign fund for mineral revenue", "fr": "Un fonds souverain pour les revenus miniers" }, + "body": { + "en": "Mine royalties are spent as fast as they arrive. A sovereign fund would save part of them for the years when prices fall, and ministries would see less of the money.", + "fr": "Les redevances minières sont dépensées dès qu'elles arrivent. Un fonds souverain en mettrait une partie de côté pour les années de prix bas, et les ministères verraient moins d'argent." + }, + "yes": { + "label": { "en": "Create the fund", "fr": "Créer le fonds" }, + "effects": [ + { "extraSpending": -0.2 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "stability", "delta": 2, "bias": true, "days": 365 }, + { "sector": "administration", "delta": -1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Spend as it comes", "fr": "Dépenser au fil de l'eau" }, + "effects": [{ "stat": "opinion", "delta": 2, "days": 40 }, { "extraSpending": 0.2 }] + } + }, + { + "id": "eco_border_smuggling_01", + "category": "economy", + "doc": "report", + "sender": "min_interior", + "conditions": { "dayMin": 950 }, + "title": { "en": "Smuggling in the border towns", "fr": "La contrebande dans les villes frontalières" }, + "body": { + "en": "Border towns live off fuel and cigarette smuggling that everyone tolerates. A crackdown would raise revenue and ruin entire streets overnight.", + "fr": "Les villes frontalières vivent d'une contrebande de carburant et de cigarettes que tout le monde tolère. Une répression rapporterait des recettes et ruinerait des rues entières du jour au lendemain." + }, + "yes": { + "label": { "en": "Crack down", "fr": "Réprimer" }, + "effects": [ + { "revenue": "other", "delta": 0.3 }, + { "stat": "order", "delta": 2, "days": 60 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Look away", "fr": "Fermer les yeux" }, + "effects": [ + { "sector": "justice", "delta": -1, "days": 120 }, + { "revenue": "other", "delta": -0.1 }, + { "stat": "stability", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "eco_land_consolidation_01", + "category": "economy", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 1050 }, + "title": { "en": "Allow farmland to be consolidated", "fr": "Autoriser le remembrement des terres" }, + "body": { + "en": "Plots are too small for modern machinery, and many owners have left for the city. A law easing land sales would create larger farms and push out small tenants.", + "fr": "Les parcelles sont trop petites pour les machines modernes, et beaucoup de propriétaires sont partis en ville. Une loi facilitant les ventes de terres créerait de plus grandes exploitations et chasserait les petits fermiers." + }, + "yes": { + "label": { "en": "Ease land sales", "fr": "Faciliter les ventes de terres" }, + "effects": [ + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "unrest", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Protect small holdings", "fr": "Protéger les petites exploitations" }, + "effects": [ + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "unrest", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "eco_state_boards_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 1150 }, + "title": { "en": "Take politics out of state company boards", "fr": "Dépolitiser les conseils des entreprises publiques" }, + "body": { + "en": "Boards of state companies are filled with party loyalists and retired generals. Merit-based appointments would improve results and deprive the coalition of its favours.", + "fr": "Les conseils des entreprises publiques sont remplis de fidèles des partis et de généraux à la retraite. Des nominations au mérite amélioreraient les résultats et priveraient la coalition de ses faveurs." + }, + "yes": { + "label": { "en": "Appoint by merit", "fr": "Nommer au mérite" }, + "effects": [ + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "stability", "delta": -2, "days": 60 }, + { "sector": "administration", "delta": 2, "days": 120 }, + { "extraSpending": -0.1 } + ] + }, + "no": { + "label": { "en": "Keep the appointments", "fr": "Garder les nominations" }, + "effects": [{ "stat": "stability", "delta": 1, "days": 60 }, { "stat": "economy", "delta": -1, "bias": true, "days": 180 }] + } + }, + { + "id": "eco_grain_export_ban_01", + "category": "economy", + "doc": "memo", + "sender": "min_industry", + "conditions": { "min": { "inflation": 4 }, "dayMin": 1200 }, + "title": { "en": "Ban grain exports", "fr": "Interdire les exportations de céréales" }, + "body": { + "en": "With bread prices rising, grain traders are selling abroad at better prices. An export ban would protect shoppers and punish farmers who have just had a good year.", + "fr": "Alors que le prix du pain monte, les négociants vendent leurs céréales à l'étranger à meilleur prix. Une interdiction d'exporter protégerait les consommateurs et pénaliserait des agriculteurs qui viennent de faire une bonne année." + }, + "yes": { + "label": { "en": "Ban the exports", "fr": "Interdire les exportations" }, + "effects": [ + { "stat": "inflation", "delta": -0.4, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 270 }, + { "stat": "softPower", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Allow exports", "fr": "Autoriser les exportations" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 270 }, + { "stat": "inflation", "delta": 0.4, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": 2, "days": 60 } + ] + } + }, + { + "id": "eco_rural_post_01", + "category": "economy", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 1250 }, + "title": { "en": "Close rural post offices?", "fr": "Fermer des bureaux de poste ruraux ?" }, + "body": { + "en": "The post office loses money on every rural branch. Closing two hundred of them would save money and remove the last public service from many villages.", + "fr": "La Poste perd de l'argent sur chaque agence rurale. En fermer deux cents ferait des économies et retirerait à de nombreux villages leur dernier service public." + }, + "yes": { + "label": { "en": "Close the branches", "fr": "Fermer les agences" }, + "effects": [ + { "extraSpending": -0.2 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep them open", "fr": "Les maintenir ouvertes" }, + "effects": [{ "extraSpending": 0.1 }, { "stat": "opinion", "delta": 2, "days": 40 }] + } + }, + { + "id": "eco_seasonal_visas_01", + "category": "economy", + "doc": "memo", + "sender": "min_labour", + "conditions": { "dayMin": 1100 }, + "title": { "en": "Seasonal visas for farm labour", "fr": "Visas saisonniers pour la main-d'œuvre agricole" }, + "body": { + "en": "Orchards and vineyards cannot find pickers at the going wage. Seasonal visas for foreign workers would save the harvest, and unions say wages would stay low.", + "fr": "Vergers et vignobles ne trouvent pas de cueilleurs au salaire en vigueur. Des visas saisonniers pour des travailleurs étrangers sauveraient la récolte, et les syndicats disent qu'ils maintiendraient les salaires bas." + }, + "yes": { + "label": { "en": "Issue the visas", "fr": "Délivrer les visas" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 270 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "stat": "order", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Raise wages instead", "fr": "Relever les salaires plutôt" }, + "effects": [ + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 40 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "eco_short_time_work_01", + "category": "economy", + "doc": "memo", + "sender": "min_labour", + "conditions": { "max": { "economy": 45 }, "dayMin": 1000 }, + "title": { "en": "Subsidise short-time work", "fr": "Financer le chômage partiel" }, + "body": { + "en": "Factories are cutting hours instead of staff, and ask the state to cover part of the lost pay. It would keep workers employed through the downturn, and keep some weak firms alive.", + "fr": "Les usines réduisent les heures plutôt que les effectifs, et demandent à l'État de couvrir une partie du salaire perdu. Les salariés resteraient en emploi pendant le ralentissement, et quelques entreprises fragiles survivraient." + }, + "yes": { + "label": { "en": "Fund short-time work", "fr": "Financer le chômage partiel" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "unemployment", "delta": -0.3, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Let firms adjust", "fr": "Laisser les entreprises s'ajuster" }, + "effects": [ + { "stat": "unemployment", "delta": 0.4, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": 2, "days": 60 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 270 } + ] + } } ] diff --git a/web/data/cards/education.json b/web/data/cards/education.json index e448ad7..2ae2131 100644 --- a/web/data/cards/education.json +++ b/web/data/cards/education.json @@ -1,6 +1,9 @@ [ { - "id": "edu_free_university_01", "category": "education", "doc": "memo", "sender": "min_education", + "id": "edu_free_university_01", + "category": "education", + "doc": "memo", + "sender": "min_education", "title": { "en": "Free university tuition", "fr": "Université gratuite" }, "body": { "en": "Student groups demand an end to tuition fees. The Education Ministry says it would widen access but add a lasting cost.", @@ -16,14 +19,14 @@ }, "no": { "label": { "en": "Keep the fees", "fr": "Garder les frais" }, - "effects": [ - { "stat": "opinion", "delta": -2, "days": 30 }, - { "stat": "unrest", "delta": 2, "days": 30 } - ] + "effects": [{ "stat": "opinion", "delta": -2, "days": 30 }, { "stat": "unrest", "delta": 2, "days": 30 }] } }, { - "id": "edu_curriculum_01", "category": "education", "doc": "memo", "sender": "min_education", + "id": "edu_curriculum_01", + "category": "education", + "doc": "memo", + "sender": "min_education", "title": { "en": "Rewrite the history curriculum", "fr": "Réécrire le programme d'histoire" }, "body": { "en": "A new national curriculum would give pupils a single, patriotic account of the country's past. Historians call it propaganda.", @@ -43,7 +46,10 @@ } }, { - "id": "edu_teacher_pay_01", "category": "education", "doc": "petition", "sender": "union", + "id": "edu_teacher_pay_01", + "category": "education", + "doc": "petition", + "sender": "union", "title": { "en": "Teachers ask for a pay rise", "fr": "Les enseignants réclament une revalorisation" }, "body": { "en": "Teachers' unions say salaries no longer keep pace with living costs and warn that classrooms will empty by autumn.", @@ -59,14 +65,14 @@ }, "no": { "label": { "en": "Refuse", "fr": "Refuser" }, - "effects": [ - { "sector": "education", "delta": -4, "days": 180 }, - { "stat": "unrest", "delta": 2, "days": 30 } - ] + "effects": [{ "sector": "education", "delta": -4, "days": 180 }, { "stat": "unrest", "delta": 2, "days": 30 }] } }, { - "id": "edu_school_meals_01", "category": "education", "doc": "memo", "sender": "min_education", + "id": "edu_school_meals_01", + "category": "education", + "doc": "memo", + "sender": "min_education", "title": { "en": "Free school meals", "fr": "Repas scolaires gratuits" }, "body": { "en": "Many children arrive at school hungry. Free meals would help them learn, and help stretched families too.", @@ -80,9 +86,1483 @@ { "sector": "education", "delta": 2, "days": 180 } ] }, + "no": { "label": { "en": "Decline", "fr": "Décliner" }, "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }] } + }, + { + "id": "edu_class_size_01", + "category": "education", + "doc": "report", + "sender": "min_education", + "conditions": { "min": { }, "max": { "q:education": 55 }, "flags": [], "notFlags": [] }, + "title": { "en": "Thirty-eight pupils in one classroom", "fr": "Trente-huit élèves par classe" }, + "body": { + "en": "Primary classes in the capital's outer districts now average thirty-eight pupils, and teachers say the back rows are not learning. A cap of thirty means hiring about four thousand teachers.", + "fr": "Les classes de primaire des quartiers périphériques de la capitale comptent en moyenne trente-huit élèves, et les enseignants affirment que les derniers rangs n'apprennent plus rien. Un plafond de trente suppose d'embaucher environ quatre mille enseignants." + }, + "yes": { + "label": { "en": "Cap classes at thirty", "fr": "Plafonner à trente élèves" }, + "effects": [ + { "extraSpending": 0.4 }, + { "sector": "education", "delta": 5, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + }, "no": { - "label": { "en": "Decline", "fr": "Décliner" }, + "label": { "en": "Keep the current limits", "fr": "Garder les seuils actuels" }, + "effects": [{ "sector": "education", "delta": -3, "days": 120 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "edu_textbooks_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "title": { "en": "Free textbooks for every pupil", "fr": "Des manuels gratuits pour tous les élèves" }, + "body": { + "en": "Families in the poorest districts buy textbooks second-hand or share them between three children. A free set for every pupil would level the start of term and enrich three publishing houses.", + "fr": "Dans les quartiers pauvres, les familles achètent les manuels d'occasion ou les partagent entre trois enfants. Un jeu gratuit par élève égaliserait la rentrée et enrichirait trois maisons d'édition." + }, + "yes": { + "label": { "en": "Provide the textbooks", "fr": "Fournir les manuels" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "education", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": 3, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep the loan scheme", "fr": "Garder le système de prêt" }, "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }] } + }, + { + "id": "edu_school_buses_01", + "category": "education", + "doc": "letter", + "sender": "mayor", + "title": { "en": "Buses for children of remote villages", "fr": "Des bus pour les enfants des villages isolés" }, + "body": { + "en": "Some children in the northern valleys walk two hours to school, in snow, along roads without lighting. The mayor of the capital passes on a plea from village councils for a yellow-bus network.", + "fr": "Des enfants des vallées du Nord marchent deux heures jusqu'à l'école, dans la neige, sur des routes sans éclairage. Le maire de la capitale relaie la demande des conseils de village : un réseau de bus scolaires." + }, + "yes": { + "label": { "en": "Fund the school buses", "fr": "Financer les bus scolaires" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Refuse the network", "fr": "Refuser le réseau" }, + "effects": [ + { "sector": "education", "delta": -2, "days": 120 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "edu_adult_literacy_01", + "category": "education", + "doc": "memo", + "sender": "min_labour", + "title": { "en": "Evening classes in adult literacy", "fr": "Cours du soir d'alphabétisation" }, + "body": { + "en": "One adult in nine cannot read a payslip or a pharmacy label with confidence. Evening classes in village halls would be cheap, and the Labour Ministry expects better jobs to follow slowly.", + "fr": "Un adulte sur neuf ne lit pas sans peine une fiche de paie ou une notice de pharmacie. Des cours du soir dans les salles de village coûteraient peu, et le ministère du Travail attend de meilleurs emplois, mais lentement." + }, + "yes": { + "label": { "en": "Open the classes", "fr": "Ouvrir les cours" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave it to charities", "fr": "Laisser aux associations" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "stat": "economy", "delta": -1, "bias": true, "days": 365 }] + } + }, + { + "id": "edu_media_literacy_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "title": { "en": "Teach pupils to spot fake news", "fr": "Apprendre aux élèves à repérer les infox" }, + "body": { + "en": "Rumours spread faster than corrections on pupils' phones, and teachers report children quoting invented statistics. A media-literacy hour would help; critics suspect it will teach which sources to trust.", + "fr": "Les rumeurs circulent plus vite que les démentis sur les téléphones des élèves, et les enseignants entendent des enfants citer des statistiques inventées. Une heure d'éducation aux médias aiderait ; les critiques craignent qu'on y enseigne quelles sources croire." + }, + "yes": { + "label": { "en": "Add the weekly hour", "fr": "Ajouter l'heure hebdomadaire" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "stability", "delta": 1, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Leave the timetable alone", "fr": "Ne pas toucher aux horaires" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "stat": "stability", "delta": -1, "days": 60 }] + } + }, + { + "id": "edu_english_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "title": { "en": "A foreign language from age six", "fr": "Une langue étrangère dès six ans" }, + "body": { + "en": "Exporters complain that graduates cannot hold a meeting in English, and tourist-board surveys agree. Teaching a foreign language from first grade needs trained teachers the country does not yet have.", + "fr": "Les exportateurs se plaignent que les diplômés ne savent pas tenir une réunion en anglais, et les enquêtes de l'office du tourisme leur donnent raison. Enseigner une langue étrangère dès le CP exige des professeurs formés que le pays n'a pas encore." + }, + "yes": { + "label": { "en": "Start it in first grade", "fr": "L'enseigner dès le CP" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "education", "delta": 3, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Protect the national tongue", "fr": "Préserver la langue nationale" }, + "effects": [{ "sector": "education", "delta": -1, "days": 90 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "edu_apprentice_01", + "category": "education", + "doc": "letter", + "sender": "min_industry", + "conditions": { "min": { "unemployment": 6 }, "max": { }, "flags": [], "notFlags": [] }, + "title": { "en": "Dual apprenticeships with employers", "fr": "L'alternance avec les entreprises" }, + "body": { + "en": "Employers offer ten thousand apprenticeships if the state pays half the first-year wage. Pupils would learn on the shop floor; teachers fear the academic track will become a second choice for the poor.", + "fr": "Les employeurs offrent dix mille places d'apprentissage si l'État prend en charge la moitié du salaire de première année. Les élèves apprendraient en atelier ; les enseignants craignent que la voie générale devienne le second choix des pauvres." + }, + "yes": { + "label": { "en": "Subsidise apprenticeships", "fr": "Subventionner l'apprentissage" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 365 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Keep schools academic", "fr": "Garder des écoles généralistes" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "stat": "economy", "delta": -1, "bias": true, "days": 180 }] + } + }, + { + "id": "edu_four_day_week_01", + "category": "education", + "doc": "report", + "sender": "min_finance", + "conditions": { "min": { "deficit": 2 }, "max": { }, "flags": [], "notFlags": [] }, + "title": { "en": "A four-day school week", "fr": "Une semaine scolaire de quatre jours" }, + "body": { + "en": "Closing schools on Fridays would save heating, transport and supply teachers, and the Treasury has costed it at a respectable sum. Working parents ask who will look after children on the fifth day.", + "fr": "Fermer les écoles le vendredi économiserait chauffage, transport et remplaçants, et le Trésor a chiffré le gain. Les parents qui travaillent demandent qui gardera les enfants le cinquième jour." + }, + "yes": { + "label": { "en": "Adopt the four-day week", "fr": "Passer à quatre jours" }, + "effects": [ + { "extraSpending": -0.3 }, + { "sector": "education", "delta": -3, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep five days", "fr": "Garder cinq jours" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "oneOff": 0.1 }] + } + }, + { + "id": "edu_teacher_college_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "title": { "en": "Overhaul teacher training", "fr": "Refondre la formation des enseignants" }, + "body": { + "en": "New teachers spend three years on theory and six weeks in a classroom, and half say they were unprepared. Longer placements and a mentor in the first year would cost money and delay the arrival of graduates.", + "fr": "Les nouveaux enseignants passent trois ans en théorie et six semaines en classe, et la moitié se disent mal préparés. Des stages plus longs et un tuteur la première année coûteraient de l'argent et retarderaient l'arrivée des diplômés." + }, + "yes": { + "label": { "en": "Reform the training", "fr": "Réformer la formation" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "education", "delta": 2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the current course", "fr": "Garder le cursus actuel" }, + "effects": [{ "sector": "education", "delta": -1, "bias": true, "days": 365 }] + } + }, + { + "id": "edu_preschool_01", + "category": "education", + "doc": "memo", + "sender": "min_labour", + "title": { "en": "Free kindergarten from age three", "fr": "Maternelle gratuite dès trois ans" }, + "body": { + "en": "Mothers leave work because nurseries cost a third of a salary, and children who skip preschool start behind. Free places from age three would be the single biggest new line in the school budget.", + "fr": "Des mères quittent leur emploi parce que la crèche coûte un tiers d'un salaire, et les enfants privés de maternelle démarrent en retard. Des places gratuites dès trois ans seraient la plus grosse ligne nouvelle du budget scolaire." + }, + "yes": { + "label": { "en": "Make it free", "fr": "La rendre gratuite" }, + "effects": [ + { "extraSpending": 0.5 }, + { "sector": "education", "delta": 3, "days": 365 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "unrest", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep the fees", "fr": "Garder les frais" }, + "effects": [{ "stat": "opinion", "delta": -2, "days": 30 }, { "sector": "education", "delta": -1, "days": 90 }] + } + }, + { + "id": "edu_repairs_01", + "category": "education", + "doc": "letter", + "sender": "mayor", + "conditions": { "min": { }, "max": { "q:education": 52 }, "flags": [], "notFlags": [] }, + "title": { "en": "Leaking roofs in forty schools", "fr": "Des toits qui fuient dans quarante écoles" }, + "body": { + "en": "Buckets stand in classrooms across forty schools, and a ceiling fell in the capital's Eastern Primary last month, fortunately during break. The mayor wants the state to share the repair bill.", + "fr": "Des seaux trônent dans les classes de quarante écoles, et un plafond s'est effondré le mois dernier à l'école primaire de l'Est, heureusement pendant la récréation. Le maire veut que l'État partage la facture des réparations." + }, + "yes": { + "label": { "en": "Share the repair bill", "fr": "Partager la facture" }, + "effects": [ + { "oneOff": 0.5 }, + { "sector": "education", "delta": 4, "days": 120 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Tell cities to pay", "fr": "Renvoyer aux villes" }, + "effects": [ + { "sector": "education", "delta": -3, "days": 120 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "edu_exam_scandal_01", + "category": "education", + "doc": "report", + "sender": "min_education", + "title": { "en": "Final exam papers sold online", "fr": "Sujets du bac vendus en ligne" }, + "body": { + "en": "Photographs of the national mathematics paper circulated on messaging apps two days before the exam. Ministry inspectors can cancel the paper nationally or investigate and annul only the affected schools.", + "fr": "Des photos du sujet national de mathématiques circulaient sur les messageries deux jours avant l'épreuve. Les inspecteurs du ministère peuvent annuler l'épreuve partout ou enquêter et n'annuler que dans les établissements concernés." + }, + "yes": { + "label": { "en": "Hold a national re-sit", "fr": "Organiser un rattrapage national" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "stability", "delta": 1, "bias": true, "days": 180 } + ], + "followUp": { "id": "edu_exam_scandal_02", "inDays": 90 } + }, + "no": { + "label": { "en": "Annul affected schools only", "fr": "Annuler les lycées visés" }, + "effects": [ + { "sector": "education", "delta": -2, "days": 90 }, + { "stat": "stability", "delta": -1, "days": 60 }, + { "stat": "unrest", "delta": 1, "days": 30 } + ], + "followUp": { "id": "edu_exam_scandal_02", "inDays": 90 } + } + }, + { + "id": "edu_exam_scandal_02", + "category": "education", + "doc": "letter", + "sender": "min_justice", + "followUpOnly": true, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 90 }, + "title": { "en": "The leak traced to a ministry printer", "fr": "La fuite remonte à un imprimeur du ministère" }, + "body": { + "en": "Prosecutors have traced the leak to a clerk in the ministry's printing office, paid by a private tutoring company. The press asks how far up the knowledge went and whether any official will be named.", + "fr": "Le parquet a remonté la fuite jusqu'à un employé de l'imprimerie du ministère, payé par une société de cours particuliers. La presse demande jusqu'où l'information est montée et si des responsables seront nommés." + }, + "yes": { + "label": { "en": "Publish the report in full", "fr": "Publier le rapport en entier" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "civilRights", "delta": 1, "bias": true, "days": 180 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Limit it to the clerk", "fr": "Se limiter à l'employé" }, + "effects": [{ "stat": "opinion", "delta": -3, "days": 40 }, { "stat": "stability", "delta": -1, "days": 60 }] + } + }, + { + "id": "edu_school_closure_01", + "category": "education", + "doc": "report", + "sender": "min_education", + "title": { "en": "Close the tiny village schools", "fr": "Fermer les écoles de village trop petites" }, + "body": { + "en": "Three hundred village schools have fewer than fifteen pupils, and each costs twice the national average per child. Closing them frees teachers for the towns; mayors say a village without a school is a village without a future.", + "fr": "Trois cents écoles de village comptent moins de quinze élèves et coûtent chacune le double de la moyenne nationale par enfant. Les fermer libérerait des enseignants pour les villes ; les maires répondent qu'un village sans école n'a pas d'avenir." + }, + "yes": { + "label": { "en": "Close the smallest schools", "fr": "Fermer les plus petites écoles" }, + "effects": [ + { "extraSpending": -0.4 }, + { "sector": "education", "delta": -3, "days": 180 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ], + "followUp": { "id": "edu_school_closure_02", "inDays": 200 } + }, + "no": { + "label": { "en": "Keep them open", "fr": "Les maintenir ouvertes" }, + "effects": [{ "extraSpending": 0.1 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "edu_school_closure_02", + "category": "education", + "doc": "letter", + "sender": "mayor", + "followUpOnly": true, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 200 }, + "title": { "en": "Villages without schools are emptying", "fr": "Les villages sans école se vident" }, + "body": { + "en": "A year on, young families have left the villages whose school closed, and the remaining shopkeepers are following. The mayor suggests two-teacher micro-schools, taught half by video link.", + "fr": "Un an plus tard, les jeunes familles ont quitté les villages dont l'école a fermé, et les derniers commerçants suivent. Le maire suggère des micro-écoles à deux enseignants, dont une partie des cours serait donnée par visioconférence." + }, + "yes": { + "label": { "en": "Open micro-schools", "fr": "Ouvrir des micro-écoles" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Hold to the closures", "fr": "Maintenir les fermetures" }, + "effects": [ + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 365 } + ] + } + }, + { + "id": "edu_tablets_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "conditions": { "min": { "economy": 48 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 100 }, + "title": { "en": "A tablet for every pupil", "fr": "Une tablette pour chaque élève" }, + "body": { + "en": "A hardware supplier offers tablets and learning software for all pupils from age ten. Parents applaud the modernity; teachers ask who will repair them, and whether the screens will teach anything.", + "fr": "Un fournisseur propose des tablettes et des logiciels pédagogiques pour tous les élèves dès dix ans. Les parents applaudissent la modernité ; les enseignants demandent qui les réparera et si les écrans enseigneront quoi que ce soit." + }, + "yes": { + "label": { "en": "Buy the tablets", "fr": "Acheter les tablettes" }, + "effects": [ + { "oneOff": 0.6 }, + { "sector": "education", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ], + "followUp": { "id": "edu_tablets_02", "inDays": 240 } + }, + "no": { + "label": { "en": "Keep books and blackboards", "fr": "Garder livres et tableaux" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "sector": "education", "delta": -1, "days": 90 }] + } + }, + { + "id": "edu_tablets_02", + "category": "education", + "doc": "report", + "sender": "min_education", + "followUpOnly": true, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 340 }, + "title": { "en": "The tablets: half broken, gains unclear", "fr": "Les tablettes : moitié cassées, gains incertains" }, + "body": { + "en": "After a year, forty percent of the tablets are cracked or locked, and test scores have barely moved. The supplier proposes a service contract and teacher training; the Treasury suggests going back to paper.", + "fr": "Un an après, quarante pour cent des tablettes sont fêlées ou verrouillées et les résultats aux tests ont à peine bougé. Le fournisseur propose un contrat d'entretien et une formation des enseignants ; le Trésor suggère un retour au papier." + }, + "yes": { + "label": { "en": "Renew and train teachers", "fr": "Renouveler et former" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "education", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Return to paper", "fr": "Revenir au papier" }, + "effects": [ + { "oneOff": -0.1 }, + { "sector": "education", "delta": -2, "days": 120 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "edu_phones_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 150 }, + "title": { "en": "Ban phones in classrooms", "fr": "Interdire le téléphone en classe" }, + "body": { + "en": "Teachers say half of every lesson is spent fighting over screens, and pupils sleep less. A national ban would be popular in staff rooms and unpopular in the playground, and in some homes.", + "fr": "Les enseignants disent perdre la moitié de chaque cours à lutter contre les écrans, et les élèves dorment moins. Une interdiction nationale serait populaire en salle des professeurs, moins dans la cour et dans certains foyers." + }, + "yes": { + "label": { "en": "Ban phones in class", "fr": "Interdire en classe" }, + "effects": [ + { "sector": "education", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 30 } + ], + "followUp": { "id": "edu_phones_02", "inDays": 120 } + }, + "no": { + "label": { "en": "Let schools decide", "fr": "Laisser les écoles décider" }, + "effects": [{ "sector": "education", "delta": -1, "days": 90 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "edu_phones_02", + "category": "education", + "doc": "letter", + "sender": "union", + "followUpOnly": true, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 270 }, + "title": { "en": "Fights over confiscated phones", "fr": "Des querelles autour des téléphones confisqués" }, + "body": { + "en": "Teachers now spend their breaks taking and storing phones, and two schools have been sued over lost devices. The union wants head teachers to set their own rules; parents want the national ban kept.", + "fr": "Les enseignants passent leurs pauses à récupérer et ranger des téléphones, et deux écoles ont été poursuivies pour des appareils perdus. Le syndicat veut que chaque directeur fixe ses règles ; les parents veulent garder l'interdiction nationale." + }, + "yes": { + "label": { "en": "Keep the national ban", "fr": "Garder l'interdiction nationale" }, + "effects": [ + { "sector": "education", "delta": 2, "days": 120 }, + { "stat": "unrest", "delta": 1, "days": 40 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Let schools set the rules", "fr": "Laisser chaque école décider" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "education", "delta": -1, "days": 90 }, + { "stat": "unrest", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "edu_uniform_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 90 }, + "title": { "en": "School uniforms for everyone", "fr": "L'uniforme pour tous les élèves" }, + "body": { + "en": "Head teachers say uniforms end the contest over brands and make outsiders easy to spot at the gate. Parents of three say it is one more bill, and pupils say it is a dress code for people who dislike colour.", + "fr": "Les directeurs disent que l'uniforme met fin à la course aux marques et repère les intrus à la grille. Les parents de trois enfants y voient une facture de plus, les élèves un code vestimentaire pour gens qui n'aiment pas la couleur." + }, + "yes": { + "label": { "en": "Introduce the uniform", "fr": "Instaurer l'uniforme" }, + "effects": [ + { "stat": "order", "delta": 1, "days": 60 }, + { "sector": "education", "delta": 1, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Leave dress to families", "fr": "Laisser les familles décider" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "stat": "order", "delta": -1, "days": 40 }] + } + }, + { + "id": "edu_homework_01", + "category": "education", + "doc": "petition", + "sender": "union", + "weight": 0.5, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 120 }, + "title": { "en": "No homework in primary school", "fr": "Pas de devoirs à l'école primaire" }, + "body": { + "en": "A parents' petition asks for homework to be abolished before age eleven, saying evenings are a battlefield. Teachers are split between relief and a worry that the gap between families who read at home and those who do not will widen.", + "fr": "Une pétition de parents demande la suppression des devoirs avant onze ans, jugeant les soirées transformées en champ de bataille. Les enseignants hésitent entre soulagement et crainte de voir se creuser l'écart entre familles qui lisent à la maison et les autres." + }, + "yes": { + "label": { "en": "Abolish homework", "fr": "Supprimer les devoirs" }, + "effects": [{ "sector": "education", "delta": -1, "days": 90 }, { "stat": "opinion", "delta": 3, "days": 40 }] + }, + "no": { + "label": { "en": "Keep homework", "fr": "Garder les devoirs" }, + "effects": [{ "sector": "education", "delta": 1, "days": 90 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "edu_scholarships_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "conditions": { "min": { }, "max": { "deficit": 4 }, "flags": [], "notFlags": [], "dayMin": 150 }, + "title": { "en": "Grants for students from poor families", "fr": "Des bourses pour les étudiants modestes" }, + "body": { + "en": "Only one student in twelve from the poorest fifth of households reaches university. Means-tested grants would change that, and the Finance Ministry points out that the other eleven will vote on the bill.", + "fr": "Un seul étudiant sur douze issu du cinquième le plus pauvre des ménages atteint l'université. Des bourses sur critères sociaux changeraient la donne, et le ministère des Finances fait remarquer que les onze autres voteront sur la facture." + }, + "yes": { + "label": { "en": "Create the grants", "fr": "Créer les bourses" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "education", "delta": 3, "days": 365 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep access as it is", "fr": "Laisser l'accès en l'état" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "sector": "education", "delta": -1, "days": 120 }] + } + }, + { + "id": "edu_special_needs_01", + "category": "education", + "doc": "letter", + "sender": "min_education", + "conditions": { "min": { }, "max": { "q:education": 58 }, "flags": [], "notFlags": [], "dayMin": 180 }, + "title": { "en": "Inclusion of pupils with disabilities", "fr": "L'inclusion des élèves handicapés" }, + "body": { + "en": "Pupils with disabilities are still sent to special schools an hour away, or stay home. Mainstream schools would need aides and ramps; teachers say they cannot manage with thirty children and no extra hands.", + "fr": "Les élèves handicapés sont encore envoyés dans des écoles spécialisées à une heure de route, ou restent chez eux. Les écoles ordinaires auraient besoin d'accompagnants et de rampes ; les enseignants disent ne pas pouvoir gérer trente enfants sans renfort." + }, + "yes": { + "label": { "en": "Fund inclusion in schools", "fr": "Financer l'inclusion scolaire" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "stat": "civilRights", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep special schools", "fr": "Garder les écoles spécialisées" }, + "effects": [{ "stat": "civilRights", "delta": -2, "days": 60 }, { "stat": "opinion", "delta": -2, "days": 30 }] + } + }, + { + "id": "edu_gifted_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 220 }, + "title": { "en": "Selective schools for gifted pupils", "fr": "Des lycées sélectifs pour élèves surdoués" }, + "body": { + "en": "Employers and some parents want state schools for the most able pupils, to keep the future engineers at home. Critics say the new schools will fill with children whose parents bought coaching.", + "fr": "Employeurs et quelques parents veulent des lycées publics pour les élèves les plus doués, afin de garder les futurs ingénieurs au pays. Les critiques disent que ces écoles se rempliront d'enfants dont les parents ont payé des cours." + }, + "yes": { + "label": { "en": "Open the selective schools", "fr": "Ouvrir les lycées sélectifs" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "research", "delta": 1, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep one school for all", "fr": "Garder une école pour tous" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "sector": "education", "delta": -1, "days": 90 }] + } + }, + { + "id": "edu_teacher_evals_01", + "category": "education", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 260 }, + "title": { "en": "Link teachers' pay to results", "fr": "Lier le salaire des enseignants aux résultats" }, + "body": { + "en": "The Treasury would swap automatic seniority raises for bonuses tied to pupil progress, at no net cost. Unions warn that teachers will drift to easy schools, and that nobody has yet found a fair way to measure progress.", + "fr": "Le Trésor remplacerait les augmentations à l'ancienneté par des primes liées aux progrès des élèves, à coût net nul. Les syndicats préviennent que les enseignants fuiront les écoles difficiles, et que personne n'a encore trouvé de mesure équitable." + }, + "yes": { + "label": { "en": "Introduce performance pay", "fr": "Instaurer la prime au mérite" }, + "effects": [ + { "extraSpending": -0.2 }, + { "sector": "education", "delta": 1, "bias": true, "days": 365 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep seniority raises", "fr": "Garder l'ancienneté" }, + "effects": [{ "sector": "education", "delta": -1, "days": 90 }, { "oneOff": 0.1 }] + } + }, + { + "id": "edu_uni_research_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "conditions": { "min": { "economy": 50 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 300 }, + "title": { "en": "Competitive research grants", "fr": "Des subventions de recherche sur concours" }, + "body": { + "en": "University labs now share funds by seniority, and young researchers wait ten years for a budget. A competitive grant system would reward results; established professors fear for their laboratories.", + "fr": "Les laboratoires universitaires se partagent les crédits à l'ancienneté, et les jeunes chercheurs attendent dix ans un budget. Un système de subventions sur concours récompenserait les résultats ; les professeurs établis craignent pour leurs laboratoires." + }, + "yes": { + "label": { "en": "Create the grant council", "fr": "Créer le conseil des subventions" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "research", "delta": 3, "days": 365 }, + { "sector": "education", "delta": 1, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep seniority funding", "fr": "Garder le financement actuel" }, + "effects": [{ "sector": "research", "delta": -2, "days": 120 }, { "stat": "softPower", "delta": -1, "days": 60 }] + } + }, + { + "id": "edu_dropouts_01", + "category": "education", + "doc": "report", + "sender": "min_labour", + "conditions": { "min": { "unrest": 28 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 140 }, + "title": { "en": "Pupils leaving school at fifteen", "fr": "Des élèves qui quittent l'école à quinze ans" }, + "body": { + "en": "One pupil in eight leaves school at fifteen with no qualification, and a large share of them appear in the police files within three years. A mentoring programme would cost a fraction of what it saves later.", + "fr": "Un élève sur huit quitte l'école à quinze ans sans diplôme, et beaucoup figurent dans les dossiers de police trois ans plus tard. Un programme de tutorat coûterait une fraction de ce qu'il économiserait ensuite." + }, + "yes": { + "label": { "en": "Fund mentors", "fr": "Financer des tuteurs" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "stat": "unrest", "delta": -2, "days": 40 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Raise the school-leaving age", "fr": "Relever l'âge de scolarité" }, + "effects": [ + { "sector": "education", "delta": 1, "days": 90 }, + { "stat": "unrest", "delta": 1, "days": 40 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "edu_sports_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "weight": 0.5, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 330 }, + "title": { "en": "A daily hour of physical education", "fr": "Une heure de sport par jour" }, + "body": { + "en": "Pupils sit for seven hours a day and the national fitness test shows it. Daily physical education would help their health and their concentration, at the cost of an hour taken from other subjects.", + "fr": "Les élèves restent assis sept heures par jour et le test national de forme physique le montre. Une heure de sport quotidienne aiderait leur santé et leur concentration, au prix d'une heure prise aux autres matières." + }, + "yes": { + "label": { "en": "Add the daily hour", "fr": "Ajouter l'heure quotidienne" }, + "effects": [ + { "oneOff": 0.1 }, + { "sector": "health", "delta": 1, "days": 180 }, + { "sector": "education", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the timetable", "fr": "Garder l'emploi du temps" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "edu_student_debt_01", + "category": "education", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "debt": 56 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 450 }, + "title": { "en": "Defaulted student loans", "fr": "Les prêts étudiants en défaut" }, + "body": { + "en": "One loan in four is now in default and the debt collectors have become more visible than the lecturers. Forgiving the oldest balances would calm the campuses and cost the Treasury a large sum.", + "fr": "Un prêt sur quatre est désormais en défaut et les huissiers sont plus visibles que les professeurs. Effacer les plus anciens soldes apaiserait les campus et coûterait cher au Trésor." + }, + "yes": { + "label": { "en": "Forgive the oldest loans", "fr": "Effacer les plus anciens prêts" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "opinion", "delta": 4, "days": 40 }, + { "stat": "unrest", "delta": -2, "days": 40 } + ], + "setFlags": ["edu_debt_forgiven"], + "followUp": { "id": "edu_student_debt_02", "inDays": 160 } + }, + "no": { + "label": { "en": "Enforce repayment", "fr": "Faire appliquer le remboursement" }, + "effects": [ + { "revenue": "other", "delta": 0.1 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "unrest", "delta": 2, "days": 30 } + ] + } + }, + { + "id": "edu_student_debt_02", + "category": "education", + "doc": "report", + "sender": "min_finance", + "followUpOnly": true, + "conditions": { "min": { }, "max": { }, "flags": ["edu_debt_forgiven"], "notFlags": [], "dayMin": 610 }, + "title": { "en": "Students expect another jubilee", "fr": "Les étudiants attendent un nouvel effacement" }, + "body": { + "en": "Since the write-off, new borrowers have stopped repaying and banks are tightening credit for poor students. The Treasury proposes income-linked repayment, which students call a debt for life.", + "fr": "Depuis l'effacement, les nouveaux emprunteurs ont cessé de rembourser et les banques resserrent le crédit pour les étudiants pauvres. Le Trésor propose un remboursement lié aux revenus, que les étudiants appellent une dette à vie." + }, + "yes": { + "label": { "en": "Link loans to income", "fr": "Lier le prêt aux revenus" }, + "effects": [ + { "oneOff": 0.2 }, + { "extraSpending": -0.1 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Let banks tighten credit", "fr": "Laisser les banques durcir" }, + "effects": [ + { "sector": "education", "delta": -2, "days": 180 }, + { "stat": "unrest", "delta": 1, "days": 40 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "edu_brain_drain_01", + "category": "education", + "doc": "letter", + "sender": "min_education", + "conditions": { "min": { }, "max": { "economy": 60 }, "flags": [], "notFlags": [], "dayMin": 500 }, + "title": { "en": "Top graduates are emigrating", "fr": "Les meilleurs diplômés émigrent" }, + "body": { + "en": "A third of the best engineering and medical graduates leave within two years of qualifying, trained at the state's expense. A return bond would keep some; higher research salaries would keep others, at greater cost.", + "fr": "Un tiers des meilleurs diplômés en ingénierie et en médecine partent dans les deux ans suivant leur titre, formés aux frais de l'État. Une caution de retour en retiendrait certains ; des salaires de recherche plus élevés en retiendraient d'autres, à plus grand coût." + }, + "yes": { + "label": { "en": "Require a return bond", "fr": "Exiger une caution de retour" }, + "effects": [ + { "extraSpending": -0.1 }, + { "sector": "research", "delta": 1, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 40 } + ], + "followUp": { "id": "edu_brain_drain_02", "inDays": 180 } + }, + "no": { + "label": { "en": "Raise research salaries", "fr": "Revaloriser les chercheurs" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "research", "delta": 3, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 } + ] + } + }, + { + "id": "edu_brain_drain_02", + "category": "education", + "doc": "letter", + "sender": "min_justice", + "followUpOnly": true, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 680 }, + "title": { "en": "Graduates challenge the bond in court", "fr": "Des diplômés contestent la caution" }, + "body": { + "en": "A group of graduates has taken the return bond to the constitutional court, arguing that a debt cannot restrict where a citizen lives. The Justice Ministry says the state's chances are even.", + "fr": "Un groupe de diplômés a porté la caution de retour devant la cour constitutionnelle, soutenant qu'une dette ne peut limiter le lieu de vie d'un citoyen. Le ministère de la Justice estime les chances de l'État équilibrées." + }, + "yes": { + "label": { "en": "Defend the bond", "fr": "Défendre la caution" }, + "effects": [ + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "stat": "stability", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Drop it, offer scholarships", "fr": "Renoncer, offrir des bourses" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "civilRights", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "edu_exam_reform_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 560 }, + "title": { "en": "Replace the final exam", "fr": "Remplacer l'examen final" }, + "body": { + "en": "The national exam decides at sixteen what pupils may do at twenty, and teachers say the last term is spent on drilling. Continuous assessment would be fairer for the nervous, and harder to compare between schools.", + "fr": "L'examen national décide à seize ans de ce que les élèves pourront faire à vingt, et les enseignants disent que le dernier trimestre est consacré au bachotage. Le contrôle continu serait plus juste pour les anxieux, et plus difficile à comparer d'une école à l'autre." + }, + "yes": { + "label": { "en": "Switch to continuous assessment", "fr": "Passer au contrôle continu" }, + "effects": [ + { "sector": "education", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the final exam", "fr": "Garder l'examen final" }, + "effects": [{ "sector": "education", "delta": -1, "days": 90 }, { "stat": "stability", "delta": 1, "days": 40 }] + } + }, + { + "id": "edu_minority_lang_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 620 }, + "title": { "en": "Lessons in the highland language", "fr": "Des cours dans la langue des hauts plateaux" }, + "body": { + "en": "Pupils in the Karst highlands speak a language at home that they do not learn to read at school. Teaching it alongside the national tongue would calm a quiet grievance, and worry those who see a first step towards autonomy.", + "fr": "Les élèves des hauts plateaux du Karst parlent à la maison une langue qu'ils n'apprennent pas à lire à l'école. L'enseigner à côté de la langue nationale apaiserait un grief discret, et inquiéterait ceux qui y voient un premier pas vers l'autonomie." + }, + "yes": { + "label": { "en": "Teach it in the highlands", "fr": "L'enseigner au Karst" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "education", "delta": 1, "days": 120 }, + { "stat": "unrest", "delta": -2, "days": 60 }, + { "stat": "stability", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep one national language", "fr": "Garder une seule langue" }, + "effects": [ + { "stat": "unrest", "delta": 2, "days": 60 }, + { "stat": "stability", "delta": -1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "edu_foreign_students_01", + "category": "education", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "deficit": 1 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 700 }, + "title": { "en": "Full fees for international students", "fr": "Frais complets pour les étudiants étrangers" }, + "body": { + "en": "Universities could recruit students from abroad at several times the domestic fee, and would use the income to hold their own prices. Local students worry about places, and rectors about the reputation of a market in diplomas.", + "fr": "Les universités pourraient recruter des étudiants étrangers à plusieurs fois le tarif national et s'en serviraient pour contenir leurs propres frais. Les étudiants locaux s'inquiètent pour les places, les recteurs pour la réputation d'un marché des diplômes." + }, + "yes": { + "label": { "en": "Recruit them at full fees", "fr": "Les recruter à plein tarif" }, + "effects": [ + { "revenue": "other", "delta": 0.3 }, + { "stat": "softPower", "delta": 2, "days": 90 }, + { "sector": "research", "delta": 1, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Reserve places for locals", "fr": "Réserver les places aux locaux" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "stat": "softPower", "delta": -1, "days": 60 }] + } + }, + { + "id": "edu_ai_homework_01", + "category": "education", + "doc": "report", + "sender": "min_education", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 760 }, + "title": { "en": "Essays written by machines", "fr": "Des dissertations écrites par des machines" }, + "body": { + "en": "A quarter of secondary essays are now produced by text generators, and teachers cannot tell which. The ministry can move assessment into supervised classrooms or teach pupils to work with the tools.", + "fr": "Un quart des dissertations du secondaire sont désormais produites par des générateurs de texte, sans que les enseignants sachent lesquelles. Le ministère peut déplacer l'évaluation vers des salles surveillées ou apprendre aux élèves à travailler avec ces outils." + }, + "yes": { + "label": { "en": "Assess in supervised rooms", "fr": "Évaluer en salle surveillée" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Teach pupils to use the tools", "fr": "Enseigner l'usage des outils" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "sector": "education", "delta": -1, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "edu_strike_01", + "category": "education", + "doc": "petition", + "sender": "union", + "conditions": { "min": { "unrest": 30 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 480 }, + "title": { "en": "Teachers vote to strike", "fr": "Les enseignants votent la grève" }, + "body": { + "en": "Marking, forms and meetings now take more hours than teaching, and teachers have voted to strike from Monday. The union asks for a lighter load and a fixed number of working hours.", + "fr": "Correction, formulaires et réunions prennent désormais plus d'heures que l'enseignement, et les enseignants ont voté la grève dès lundi. Le syndicat réclame une charge allégée et un temps de travail encadré." + }, + "yes": { + "label": { "en": "Lighten the workload", "fr": "Alléger la charge de travail" }, + "effects": [ + { "extraSpending": 0.4 }, + { "sector": "education", "delta": 4, "days": 180 }, + { "stat": "unrest", "delta": -3, "days": 40 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Face the strike", "fr": "Affronter la grève" }, + "effects": [ + { "sector": "education", "delta": -4, "days": 120 }, + { "stat": "unrest", "delta": 3, "days": 30 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "edu_technical_institutes_01", + "category": "education", + "doc": "letter", + "sender": "min_industry", + "conditions": { "min": { "economy": 50 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 540 }, + "title": { "en": "Technical institutes for the new industries", "fr": "Des instituts techniques pour l'industrie" }, + "body": { + "en": "Factories in the south cannot fill skilled posts while graduates in the capital drive taxis. Three technical institutes, built with employers, would train welders, technicians and coders for local firms.", + "fr": "Les usines du Sud n'arrivent pas à pourvoir leurs postes qualifiés tandis que des diplômés de la capitale conduisent des taxis. Trois instituts techniques, bâtis avec les employeurs, formeraient soudeurs, techniciens et développeurs pour les entreprises locales." + }, + "yes": { + "label": { "en": "Build the institutes", "fr": "Bâtir les instituts" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "education", "delta": 3, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Rely on private training", "fr": "S'en remettre au privé" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "stat": "economy", "delta": -1, "bias": true, "days": 180 }] + } + }, + { + "id": "edu_campus_protest_01", + "category": "education", + "doc": "memo", + "sender": "min_interior", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 640 }, + "title": { "en": "Occupation at the main university", "fr": "Occupation de la grande université" }, + "body": { + "en": "Students have occupied the main lecture hall for nine days to protest cuts and a rector appointed from above. The Interior Ministry offers to clear it by Friday; the senate begs for a week of talks.", + "fr": "Des étudiants occupent l'amphithéâtre principal depuis neuf jours pour protester contre des coupes et un recteur nommé d'en haut. Le ministère de l'Intérieur propose de l'évacuer d'ici vendredi ; le sénat académique supplie qu'on lui laisse une semaine de négociations." + }, + "yes": { + "label": { "en": "Clear the hall", "fr": "Faire évacuer l'amphithéâtre" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 60 }, + { "stat": "civilRights", "delta": -3, "days": 90 }, + { "stat": "unrest", "delta": 2, "days": 30 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Open negotiations", "fr": "Ouvrir des négociations" }, + "effects": [ + { "stat": "unrest", "delta": -1, "days": 40 }, + { "stat": "order", "delta": -1, "days": 40 }, + { "stat": "civilRights", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "edu_teacher_housing_01", + "category": "education", + "doc": "letter", + "sender": "min_housing", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 580 }, + "title": { "en": "Housing for teachers in remote districts", "fr": "Des logements pour les enseignants isolés" }, + "body": { + "en": "Posts in the northern valleys stay empty because no one will rent a room there for a teacher's salary. The Housing Ministry offers to convert disused barracks into staff flats, if Education shares the cost.", + "fr": "Les postes des vallées du Nord restent vacants, car personne n'y loue une chambre au salaire d'un enseignant. Le ministère du Logement propose de transformer des casernes désaffectées en logements de fonction, si l'Éducation partage les frais." + }, + "yes": { + "label": { "en": "Convert the barracks", "fr": "Transformer les casernes" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "education", "delta": 3, "days": 180 }, + { "sector": "housing", "delta": 1, "days": 180 } + ] + }, + "no": { + "label": { "en": "Offer a mobility bonus", "fr": "Offrir une prime de mobilité" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "education", "delta": 1, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "edu_science_labs_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 700 }, + "title": { "en": "Science laboratories in every secondary school", "fr": "Des laboratoires dans chaque lycée" }, + "body": { + "en": "Two secondary schools in three have no working laboratory, so pupils learn chemistry from the board. Equipping them would cost real money, and would raise the number of pupils choosing science at university.", + "fr": "Deux lycées sur trois n'ont pas de laboratoire en état, si bien que les élèves apprennent la chimie au tableau. Les équiper coûterait cher et ferait monter le nombre d'élèves qui choisissent les sciences à l'université." + }, + "yes": { + "label": { "en": "Equip the laboratories", "fr": "Équiper les laboratoires" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "sector": "research", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Keep teaching from the board", "fr": "Continuer au tableau" }, + "effects": [{ "sector": "research", "delta": -1, "days": 90 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "edu_league_tables_01", + "category": "education", + "doc": "report", + "sender": "min_education", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 800 }, + "title": { "en": "Publish school league tables", "fr": "Publier le classement des écoles" }, + "body": { + "en": "The inspectorate holds ten years of results for every school and has never published them. Parents want to choose with the facts; head teachers say the tables will punish schools that take the hardest pupils.", + "fr": "L'inspection détient dix ans de résultats pour chaque école et ne les a jamais publiés. Les parents veulent choisir en connaissance de cause ; les directeurs disent que le classement punira les écoles qui accueillent les élèves les plus difficiles." + }, + "yes": { + "label": { "en": "Publish the tables", "fr": "Publier le classement" }, + "effects": [ + { "sector": "education", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep results confidential", "fr": "Garder les résultats secrets" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "sector": "education", "delta": -1, "days": 90 }] + } + }, + { + "id": "edu_university_fees_01", + "category": "education", + "doc": "report", + "sender": "min_finance", + "conditions": { "min": { "debt": 60 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 850 }, + "title": { "en": "Let universities set their own fees", "fr": "Laisser les universités fixer leurs frais" }, + "body": { + "en": "The state pays most of the universities' bill and the debt is rising. Giving rectors the freedom to set fees would cut the state's share sharply, and make the best universities for the rich, students say.", + "fr": "L'État paie l'essentiel de la facture des universités et la dette monte. Laisser les recteurs fixer les frais réduirait nettement la part publique et réserverait, disent les étudiants, les meilleures universités aux riches." + }, + "yes": { + "label": { "en": "Let universities set fees", "fr": "Libérer les frais" }, + "effects": [ + { "extraSpending": -0.5 }, + { "sector": "education", "delta": -2, "days": 365 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep the fees regulated", "fr": "Garder les frais encadrés" }, + "effects": [{ "oneOff": 0.2 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "edu_rankings_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "conditions": { "min": { }, "max": { "softPower": 55 }, "flags": [], "notFlags": [], "dayMin": 920 }, + "title": { "en": "Merge universities to climb the rankings", "fr": "Fusionner pour monter au classement" }, + "body": { + "en": "Valdoria's twelve universities each rank below the top five hundred, while one merged institution would enter the top two hundred. Rectors resist, and two campus towns would lose their identities.", + "fr": "Les douze universités valdoriennes sont toutes au-delà du cinq centième rang, alors qu'un établissement fusionné entrerait dans les deux cents premiers. Les recteurs résistent, et deux villes universitaires perdraient leur identité." + }, + "yes": { + "label": { "en": "Merge into one flagship", "fr": "Fusionner en un pôle phare" }, + "effects": [ + { "extraSpending": -0.2 }, + { "sector": "research", "delta": 2, "days": 180 }, + { "stat": "softPower", "delta": 2, "days": 90 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep twelve universities", "fr": "Garder douze universités" }, + "effects": [{ "stat": "softPower", "delta": -1, "days": 60 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "edu_climate_lessons_01", + "category": "education", + "doc": "memo", + "sender": "min_environment", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 950 }, + "title": { "en": "Climate lessons in every year", "fr": "Des cours sur le climat à chaque niveau" }, + "body": { + "en": "The Environment Ministry wants climate and ecology taught in every year, from the school garden upwards. Parents in the coal districts ask that their children be taught who pays their parents' wages first.", + "fr": "Le ministère de l'Environnement veut que le climat et l'écologie soient enseignés à chaque niveau, du potager scolaire jusqu'au lycée. Les parents des bassins charbonniers demandent d'abord qu'on explique à leurs enfants qui paie le salaire de leurs parents." + }, + "yes": { + "label": { "en": "Add climate to the curriculum", "fr": "Inscrire le climat au programme" }, + "effects": [ + { "oneOff": 0.1 }, + { "sector": "environment", "delta": 1, "days": 180 }, + { "sector": "education", "delta": 1, "days": 90 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave the curriculum alone", "fr": "Laisser le programme en l'état" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "sector": "environment", "delta": -1, "days": 90 }] + } + }, + { + "id": "edu_teacher_pension_01", + "category": "education", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "debt": 62 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 980 }, + "title": { "en": "Raise the teachers' retirement age", "fr": "Reculer l'âge de départ des enseignants" }, + "body": { + "en": "Teachers retire at fifty-seven on pensions that weigh heavily on the budget. Raising the age by three years would save a large sum, and the unions have already printed the banners.", + "fr": "Les enseignants partent à cinquante-sept ans avec des pensions qui pèsent lourd sur le budget. Reculer l'âge de trois ans économiserait une somme importante, et les syndicats ont déjà imprimé leurs banderoles." + }, + "yes": { + "label": { "en": "Raise the age", "fr": "Reculer l'âge de départ" }, + "effects": [ + { "extraSpending": -0.4 }, + { "sector": "education", "delta": -3, "days": 180 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "stat": "opinion", "delta": -3, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep the pension age", "fr": "Garder l'âge de départ" }, + "effects": [{ "oneOff": 0.2 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "edu_school_security_01", + "category": "education", + "doc": "memo", + "sender": "min_interior", + "conditions": { "min": { }, "max": { "order": 55 }, "flags": [], "notFlags": [], "dayMin": 1000 }, + "title": { "en": "Guards at school gates", "fr": "Des gardiens aux portes des écoles" }, + "body": { + "en": "After a knife was found in a classroom in the port district, the Interior Ministry proposes guards at school gates and bag checks in the secondary schools. Teachers worry about the message it sends to ten-year-olds.", + "fr": "Après la découverte d'un couteau dans une classe du quartier du port, le ministère de l'Intérieur propose des gardiens aux portes des écoles et des fouilles de sacs au lycée. Les enseignants s'inquiètent du message adressé à des enfants de dix ans." + }, + "yes": { + "label": { "en": "Post guards at the gates", "fr": "Poster des gardiens" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "order", "delta": 2, "days": 60 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "sector": "education", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Rely on staff and parents", "fr": "Compter sur les adultes" }, + "effects": [ + { "stat": "order", "delta": -1, "days": 40 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "education", "delta": 1, "days": 90 } + ] + } + }, + { + "id": "edu_exchange_01", + "category": "education", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 850 }, + "title": { "en": "A school exchange programme", "fr": "Un programme d'échanges scolaires" }, + "body": { + "en": "Partner states offer to host ten thousand Valdorian pupils for a term abroad, in exchange for the same number. The Foreign Ministry sees influence, and the Treasury sees a travel bill.", + "fr": "Des États partenaires proposent d'accueillir dix mille élèves valdoriens pour un trimestre à l'étranger, en échange du même nombre. Le ministère des Affaires étrangères y voit de l'influence, le Trésor une note de voyage." + }, + "yes": { + "label": { "en": "Join the exchange", "fr": "Rejoindre l'échange" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "sector": "education", "delta": 1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Decline the offer", "fr": "Décliner l'offre" }, + "effects": [{ "stat": "softPower", "delta": -1, "days": 60 }, { "oneOff": -0.1 }] + } + }, + { + "id": "edu_private_univ_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 1100 }, + "title": { "en": "Licence private universities", "fr": "Autoriser des universités privées" }, + "body": { + "en": "Two foreign groups want to open private universities in the capital and pay the state for the licence. Public rectors fear the loss of lecturers, and applicants without a place elsewhere would at least have somewhere to go.", + "fr": "Deux groupes étrangers veulent ouvrir des universités privées dans la capitale et payer l'État pour la licence. Les recteurs publics craignent de perdre des professeurs ; les candidats sans place ailleurs auraient au moins où aller." + }, + "yes": { + "label": { "en": "Grant the licences", "fr": "Accorder les licences" }, + "effects": [ + { "oneOff": -0.2 }, + { "sector": "education", "delta": -1, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep higher education public", "fr": "Garder le supérieur public" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "education", "delta": -1, "bias": true, "days": 365 } + ] + } + }, + { + "id": "edu_lifelong_learning_01", + "category": "education", + "doc": "memo", + "sender": "min_labour", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 1150 }, + "title": { "en": "Lifelong learning accounts", "fr": "Des comptes de formation tout au long de la vie" }, + "body": { + "en": "Every worker would receive a training account topped up by the state and employers, to be spent on any accredited course. Mid-career workers in declining trades would welcome it; the Treasury would count it.", + "fr": "Chaque salarié recevrait un compte formation abondé par l'État et les employeurs, utilisable pour tout cours agréé. Les travailleurs en milieu de carrière dans des métiers en déclin l'accueilleraient bien ; le Trésor, lui, le compterait." + }, + "yes": { + "label": { "en": "Create the accounts", "fr": "Créer les comptes" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Leave it to employers", "fr": "Laisser aux employeurs" }, + "effects": [{ "stat": "economy", "delta": -1, "bias": true, "days": 180 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "edu_teacher_shortage_01", + "category": "education", + "doc": "report", + "sender": "min_education", + "conditions": { "min": { }, "max": { "q:education": 52 }, "flags": [], "notFlags": [], "dayMin": 1000 }, + "title": { "en": "Eight hundred classes without a teacher", "fr": "Huit cents classes sans enseignant" }, + "body": { + "en": "The new term opens with eight hundred classes lacking a qualified teacher. The ministry can hire graduates on short contracts, which will fill the rooms now and weaken the profession later, or merge classes.", + "fr": "La rentrée s'ouvre avec huit cents classes sans enseignant qualifié. Le ministère peut embaucher des diplômés en contrat court, ce qui remplira les salles aujourd'hui et fragilisera le métier demain, ou fusionner des classes." + }, + "yes": { + "label": { "en": "Hire short-contract staff", "fr": "Recruter des contractuels" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "education", "delta": 3, "days": 90 }, + { "sector": "education", "delta": -1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Merge the classes", "fr": "Fusionner les classes" }, + "effects": [ + { "sector": "education", "delta": -3, "days": 120 }, + { "stat": "unrest", "delta": 1, "days": 30 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "edu_school_libraries_01", + "category": "education", + "doc": "letter", + "sender": "min_culture", + "weight": 0.5, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 880 }, + "title": { "en": "School libraries are closing", "fr": "Les bibliothèques scolaires ferment" }, + "body": { + "en": "Without a librarian budget, one school library in three has closed, and the others stock books older than their pupils' parents. The Culture Ministry offers a joint fund to restock them.", + "fr": "Faute de budget pour des bibliothécaires, une bibliothèque scolaire sur trois a fermé, et les autres conservent des livres plus vieux que les parents des élèves. Le ministère de la Culture propose un fonds commun pour les regarnir." + }, + "yes": { + "label": { "en": "Restock the libraries", "fr": "Regarnir les bibliothèques" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "education", "delta": 1, "days": 120 }, + { "sector": "culture", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Cut the budget further", "fr": "Réduire encore le budget" }, + "effects": [ + { "extraSpending": -0.1 }, + { "sector": "culture", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "edu_national_assessment_01", + "category": "education", + "doc": "report", + "sender": "min_education", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 1250 }, + "title": { "en": "Reading scores have fallen", "fr": "Les résultats de lecture ont chuté" }, + "body": { + "en": "The national assessment shows reading scores at their lowest in twenty years. The ministry can publish the findings with a recovery plan, or file them quietly until the next budget is passed.", + "fr": "L'évaluation nationale montre des résultats de lecture au plus bas depuis vingt ans. Le ministère peut publier les conclusions avec un plan de redressement, ou les ranger discrètement jusqu'au vote du prochain budget." + }, + "yes": { + "label": { "en": "Publish with a plan", "fr": "Publier avec un plan" }, + "effects": [ + { "sector": "education", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "stability", "delta": -1, "days": 30 }, + { "stat": "civilRights", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Withhold the findings", "fr": "Garder les conclusions" }, + "effects": [ + { "sector": "education", "delta": -1, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "stat": "stability", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "edu_summer_school_01", + "category": "education", + "doc": "memo", + "sender": "min_education", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 820 }, + "title": { "en": "Summer catch-up schools", "fr": "Écoles d'été de rattrapage" }, + "body": { + "en": "Pupils who fall behind in the spring lose another two months over the summer. Three weeks of voluntary catch-up classes in August would help them, and would keep some teachers from their only holiday.", + "fr": "Les élèves qui décrochent au printemps perdent encore deux mois pendant l'été. Trois semaines de cours de rattrapage volontaires en août les aideraient, mais priveraient certains enseignants de leurs seules vacances." + }, + "yes": { + "label": { "en": "Fund summer schools", "fr": "Financer les écoles d'été" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "education", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "unrest", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave summers free", "fr": "Laisser l'été libre" }, + "effects": [{ "sector": "education", "delta": -1, "days": 90 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "edu_vouchers_01", + "category": "education", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "deficit": 2 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 950 }, + "title": { "en": "School vouchers for private schools", "fr": "Des chèques éducation pour l'école privée" }, + "body": { + "en": "Giving each family a voucher to spend at any school would force public schools to compete and cost the state less per pupil. Unions foresee a flight of the best pupils and a rump of the poorest.", + "fr": "Donner à chaque famille un chèque à dépenser dans l'école de son choix obligerait les écoles publiques à se concurrencer et coûterait moins cher par élève. Les syndicats prévoient la fuite des meilleurs élèves et un résidu des plus pauvres." + }, + "yes": { + "label": { "en": "Introduce the vouchers", "fr": "Introduire les chèques" }, + "effects": [ + { "extraSpending": -0.3 }, + { "sector": "education", "delta": -1, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -1, "days": 40 } + ], + "setFlags": ["edu_vouchers"], + "followUp": { "id": "edu_vouchers_02", "inDays": 250 } + }, + "no": { + "label": { "en": "Keep public schools funded", "fr": "Garder le financement public" }, + "effects": [{ "oneOff": 0.1 }, { "stat": "unrest", "delta": -1, "days": 30 }] + } + }, + { + "id": "edu_vouchers_02", + "category": "education", + "doc": "report", + "sender": "min_education", + "followUpOnly": true, + "conditions": { "min": { }, "max": { }, "flags": ["edu_vouchers"], "notFlags": [], "dayMin": 1200 }, + "title": { "en": "Voucher schools add top-up fees", "fr": "Les écoles à chèque ajoutent des suppléments" }, + "body": { + "en": "Private schools accepting vouchers have added top-up fees, and the poorest pupils are concentrating in the underfunded public schools. The ministry can ban the top-ups or let the market settle on its own.", + "fr": "Les écoles privées qui acceptent les chèques ont ajouté des frais supplémentaires, et les élèves les plus pauvres se concentrent dans des écoles publiques sous-financées. Le ministère peut interdire ces suppléments ou laisser le marché se stabiliser." + }, + "yes": { + "label": { "en": "Ban the top-up fees", "fr": "Interdire les suppléments" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Let the market settle", "fr": "Laisser faire le marché" }, + "effects": [ + { "sector": "education", "delta": -3, "days": 180 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + } } ] diff --git a/web/data/cards/environment.json b/web/data/cards/environment.json index a4c4e3b..4e387fd 100644 --- a/web/data/cards/environment.json +++ b/web/data/cards/environment.json @@ -1,6 +1,9 @@ [ { - "id": "env_carbon_tax_01", "category": "environment", "doc": "memo", "sender": "min_environment", + "id": "env_carbon_tax_01", + "category": "environment", + "doc": "memo", + "sender": "min_environment", "title": { "en": "A carbon tax", "fr": "Une taxe carbone" }, "body": { "en": "A tax on carbon emissions would pay for cleaner air and impress foreign partners. Factories and commuters would pay for it first.", @@ -18,14 +21,14 @@ }, "no": { "label": { "en": "Refuse", "fr": "Refuser" }, - "effects": [ - { "stat": "softPower", "delta": -2, "days": 60 }, - { "sector": "environment", "delta": -2, "days": 120 } - ] + "effects": [{ "stat": "softPower", "delta": -2, "days": 60 }, { "sector": "environment", "delta": -2, "days": 120 }] } }, { - "id": "env_national_park_01", "category": "environment", "doc": "letter", "sender": "min_environment", + "id": "env_national_park_01", + "category": "environment", + "doc": "letter", + "sender": "min_environment", "title": { "en": "Create a national park", "fr": "Créer un parc national" }, "body": { "en": "A forested valley could be protected for good. The mining lobby has other plans for it.", @@ -42,14 +45,14 @@ }, "no": { "label": { "en": "Open it to mining", "fr": "L'ouvrir aux mines" }, - "effects": [ - { "sector": "environment", "delta": -2, "days": 120 }, - { "stat": "economy", "delta": 1, "days": 90 } - ] + "effects": [{ "sector": "environment", "delta": -2, "days": 120 }, { "stat": "economy", "delta": 1, "days": 90 }] } }, { - "id": "env_coal_phaseout_01", "category": "environment", "doc": "memo", "sender": "min_environment", + "id": "env_coal_phaseout_01", + "category": "environment", + "doc": "memo", + "sender": "min_environment", "title": { "en": "Phase out coal", "fr": "Sortir du charbon" }, "body": { "en": "Closing the coal plants by decade's end would cut emissions sharply. It would also cost jobs in mining regions that have voted for you.", @@ -67,14 +70,14 @@ }, "no": { "label": { "en": "Keep burning", "fr": "Continuer à brûler" }, - "effects": [ - { "sector": "environment", "delta": -3, "days": 180 }, - { "stat": "softPower", "delta": -2, "days": 60 } - ] + "effects": [{ "sector": "environment", "delta": -3, "days": 180 }, { "stat": "softPower", "delta": -2, "days": 60 }] } }, { - "id": "env_flood_defences_01", "category": "environment", "doc": "report", "sender": "min_environment", + "id": "env_flood_defences_01", + "category": "environment", + "doc": "report", + "sender": "min_environment", "title": { "en": "Flood defences for the river towns", "fr": "Digues pour les villes riveraines" }, "body": { "en": "Two floods in three years have drowned the same towns. Engineers say a line of defences would pay for itself within a decade.", @@ -91,9 +94,1366 @@ }, "no": { "label": { "en": "Postpone", "fr": "Reporter" }, + "effects": [{ "stat": "opinion", "delta": -2, "days": 40 }, { "sector": "infrastructure", "delta": -2, "days": 180 }] + } + }, + { + "id": "env_recycling_01", + "category": "environment", + "doc": "memo", + "sender": "min_environment", + "title": { "en": "Compulsory waste sorting", "fr": "Le tri des déchets obligatoire" }, + "body": { + "en": "Valdorian households bury nine tenths of their waste. A compulsory sorting scheme with fines for offenders would change that, once the bins and the collection rounds exist.", + "fr": "Les foyers valdoriens enfouissent neuf dixièmes de leurs déchets. Un tri obligatoire assorti d'amendes y changerait quelque chose, une fois les bacs et les tournées de collecte en place." + }, + "yes": { + "label": { "en": "Make sorting compulsory", "fr": "Rendre le tri obligatoire" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "environment", "delta": 4, "days": 150 }, + { "revenue": "other", "delta": 0.1 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep it voluntary", "fr": "Rester sur le volontariat" }, + "effects": [ + { "sector": "environment", "delta": -2, "days": 120 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "env_plastic_bags_01", + "category": "environment", + "doc": "letter", + "sender": "mayor", + "title": { "en": "Ban the plastic bag", "fr": "Interdire le sac plastique" }, + "body": { + "en": "The capital's mayor asks for a national ban on single-use plastic bags, after another clogged storm drain flooded a market street. Retailers fear the costs, and the packaging makers fear layoffs.", + "fr": "Le maire de la capitale réclame l'interdiction nationale des sacs plastiques à usage unique, après qu'une bouche d'égout bouchée a de nouveau inondé une rue de marché. Les commerçants craignent les coûts, les fabricants d'emballages les licenciements." + }, + "yes": { + "label": { "en": "Ban the bags", "fr": "Interdire les sacs" }, + "effects": [ + { "sector": "environment", "delta": 3, "days": 120 }, + { "sector": "industry", "delta": -2, "days": 90 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave it to the shops", "fr": "Laisser les commerces décider" }, + "effects": [ + { "sector": "environment", "delta": -2, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "env_river_pollution_01", + "category": "environment", + "doc": "report", + "sender": "min_environment", + "conditions": { "max": { "q:environment": 55 } }, + "title": { "en": "Dead fish in the Aldane", "fr": "Poissons morts dans l'Aldane" }, + "body": { + "en": "Fish are dying in the Aldane river below the textile mills. The ministry can enforce discharge limits, which means fines and costly filters, or accept the mills' promise to regulate themselves.", + "fr": "Les poissons meurent dans l'Aldane en aval des filatures. Le ministère peut imposer des plafonds de rejets, donc des amendes et des filtres coûteux, ou s'en remettre à la promesse d'autorégulation des filatures." + }, + "yes": { + "label": { "en": "Enforce discharge limits", "fr": "Imposer des plafonds de rejets" }, + "effects": [ + { "sector": "environment", "delta": 4, "days": 180 }, + { "sector": "industry", "delta": -3, "days": 120 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "revenue": "other", "delta": 0.1 } + ] + }, + "no": { + "label": { "en": "Accept self-regulation", "fr": "Accepter l'autorégulation" }, + "effects": [ + { "sector": "environment", "delta": -3, "days": 150 }, + { "stat": "opinion", "delta": -2, "days": 45 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "env_air_quality_01", + "category": "environment", + "doc": "letter", + "sender": "mayor", + "title": { "en": "A low-emission zone", "fr": "Une zone à faibles émissions" }, + "body": { + "en": "Smog has closed the capital's schools twice this winter. A low-emission zone in the centre would bar the oldest cars and trucks, whose owners have no other way into town.", + "fr": "Le smog a fermé deux fois les écoles de la capitale cet hiver. Une zone à faibles émissions au centre interdirait les plus vieux véhicules, dont les propriétaires n'ont aucun autre moyen de venir en ville." + }, + "yes": { + "label": { "en": "Create the zone", "fr": "Créer la zone" }, + "effects": [ + { "sector": "environment", "delta": 3, "days": 150 }, + { "sector": "health", "delta": 2, "days": 150 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Wait for cleaner cars", "fr": "Attendre des voitures plus propres" }, + "effects": [ + { "sector": "health", "delta": -2, "days": 120 }, + { "sector": "environment", "delta": -2, "days": 120 }, + { "stat": "opinion", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "env_overfishing_01", + "category": "environment", + "doc": "memo", + "sender": "min_environment", + "title": { "en": "Quotas for the cod fleet", "fr": "Des quotas pour la flotte de morue" }, + "body": { + "en": "Cod landings have halved in ten years while the trawler fleet has grown. Catch quotas would let stocks recover, but the fishing ports of the east coast live on those trawlers.", + "fr": "Les débarquements de morue ont diminué de moitié en dix ans alors que la flotte de chalutiers a grossi. Des quotas de pêche permettraient aux stocks de se reconstituer, mais les ports de la côte est vivent de ces chalutiers." + }, + "yes": { + "label": { "en": "Impose catch quotas", "fr": "Imposer des quotas de pêche" }, + "effects": [ + { "sector": "environment", "delta": 4, "days": 240 }, + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "unrest", "delta": 2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Keep the fleet at sea", "fr": "Laisser la flotte en mer" }, + "effects": [ + { "sector": "environment", "delta": -3, "days": 180 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 540 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "env_solar_subsidy_01", + "category": "environment", + "doc": "memo", + "sender": "min_industry", + "title": { "en": "Panels for every roof", "fr": "Des panneaux sur tous les toits" }, + "body": { + "en": "Rooftop solar costs a fraction of what it did, yet few Valdorians can afford the panels. A subsidy would cover the roofs of the south, and the bill would fall on a budget already stretched.", + "fr": "Le solaire en toiture coûte une fraction de son prix d'hier, mais peu de Valdoriens peuvent s'offrir les panneaux. Une subvention couvrirait les toits du sud, et la facture tomberait sur un budget déjà tendu." + }, + "yes": { + "label": { "en": "Subsidise the panels", "fr": "Subventionner les panneaux" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "environment", "delta": 3, "days": 180 }, + { "sector": "industry", "delta": 2, "days": 180 }, + { "stat": "inflation", "delta": -0.2, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Let the market decide", "fr": "Laisser faire le marché" }, + "effects": [ + { "sector": "industry", "delta": -1, "days": 90 }, + { "sector": "environment", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "env_wetlands_01", + "category": "environment", + "doc": "petition", + "sender": "min_environment", + "title": { "en": "Drain the Lower Marsh?", "fr": "Assécher le Bas-Marais ?" }, + "body": { + "en": "Farmers of the Lower Marsh want to drain two thousand hectares for wheat. Ornithologists answer that the marsh shelters half the country's migratory birds and filters the water of three towns.", + "fr": "Des agriculteurs du Bas-Marais veulent assécher deux mille hectares pour y planter du blé. Les ornithologues répondent que le marais abrite la moitié des oiseaux migrateurs du pays et filtre l'eau de trois villes." + }, + "yes": { + "label": { "en": "Protect the marsh", "fr": "Protéger le marais" }, + "effects": [ + { "sector": "environment", "delta": 4, "days": 200 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 365 }, + { "stat": "unrest", "delta": 2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Allow the draining", "fr": "Autoriser l'assèchement" }, + "effects": [ + { "oneOff": -0.1 }, + { "stat": "economy", "delta": 2, "days": 90 }, + { "sector": "environment", "delta": -4, "days": 180 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "env_forest_occupation_01", + "category": "environment", + "doc": "letter", + "sender": "min_interior", + "title": { "en": "A camp in the Brenn forest", "fr": "Un campement dans la forêt de Brenn" }, + "body": { + "en": "Activists have camped in the Brenn forest for three weeks to stop a logging contract. The timber company holds a court order, the police have a plan, and the camp has a following online.", + "fr": "Des militants campent dans la forêt de Brenn depuis trois semaines pour bloquer une concession d'abattage. L'entreprise forestière détient une ordonnance du tribunal, la police un plan, et le campement une audience en ligne." + }, + "yes": { + "label": { "en": "Clear the camp", "fr": "Évacuer le campement" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 30 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "unrest", "delta": 3, "days": 45 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ], + "followUp": { "id": "env_forest_evicted_01", "inDays": 45 } + }, + "no": { + "label": { "en": "Suspend the logging", "fr": "Suspendre l'abattage" }, + "effects": [ + { "sector": "environment", "delta": 3, "days": 150 }, + { "sector": "industry", "delta": -2, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ], + "followUp": { "id": "env_forest_deal_01", "inDays": 60 } + } + }, + { + "id": "env_forest_evicted_01", + "category": "environment", + "doc": "letter", + "sender": "min_justice", + "followUpOnly": true, + "title": { "en": "The Brenn trials", "fr": "Les procès de Brenn" }, + "body": { + "en": "The evicted campers are on trial, and the courthouse steps fill every morning. Prosecutors ask for exemplary sentences, while the defence calls the case a political trial.", + "fr": "Les militants évacués sont jugés, et les marches du tribunal se remplissent chaque matin. Le parquet requiert des peines exemplaires, tandis que la défense dénonce un procès politique." + }, + "yes": { + "label": { "en": "Back exemplary sentences", "fr": "Soutenir des peines exemplaires" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 45 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "unrest", "delta": 2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Drop the charges", "fr": "Abandonner les poursuites" }, + "effects": [ + { "stat": "civilRights", "delta": 3 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "order", "delta": -2, "days": 45 }, + { "sector": "justice", "delta": -2, "days": 90 } + ] + } + }, + { + "id": "env_forest_deal_01", + "category": "environment", + "doc": "memo", + "sender": "min_industry", + "followUpOnly": true, + "title": { "en": "The timber bill", "fr": "La facture du bois" }, + "body": { + "en": "The timber company claims millions in lost contracts and threatens arbitration. Activists ask that the forest be listed as protected before the pause ends.", + "fr": "L'entreprise forestière réclame des millions pour contrats perdus et menace d'arbitrage. Les militants demandent que la forêt soit classée avant la fin de la pause." + }, + "yes": { + "label": { "en": "Pay and protect the forest", "fr": "Indemniser et classer la forêt" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "environment", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Resume the logging", "fr": "Reprendre l'abattage" }, + "effects": [ + { "sector": "environment", "delta": -4, "days": 180 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "env_dam_01", + "category": "environment", + "doc": "report", + "sender": "min_industry", + "conditions": { "dayMin": 120 }, + "title": { "en": "A dam in the Tessa gorge", "fr": "Un barrage dans les gorges de la Tessa" }, + "body": { + "en": "A hydroelectric dam in the Tessa gorge would supply a tenth of national power. It would also drown eleven villages and a salmon spawning ground.", + "fr": "Un barrage hydroélectrique dans les gorges de la Tessa fournirait un dixième de l'électricité nationale. Il noierait aussi onze villages et une frayère à saumons." + }, + "yes": { + "label": { "en": "Build the dam", "fr": "Construire le barrage" }, + "effects": [ + { "oneOff": 0.9 }, + { "sector": "industry", "delta": 4, "days": 240 }, + { "sector": "environment", "delta": -4, "days": 240 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 540 } + ], + "followUp": { "id": "env_dam_displaced_01", "inDays": 120 } + }, + "no": { + "label": { "en": "Shelve the project", "fr": "Enterrer le projet" }, + "effects": [ + { "sector": "environment", "delta": 1, "days": 90 }, + { "sector": "industry", "delta": -1, "days": 120 }, + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 365 } + ] + } + }, + { + "id": "env_dam_displaced_01", + "category": "environment", + "doc": "petition", + "sender": "min_housing", + "followUpOnly": true, + "title": { "en": "The drowned villages", "fr": "Les villages engloutis" }, + "body": { + "en": "Families from the drowned villages have been offered flats in a new town that is half built. Their petition asks for land and homes worth what was lost.", + "fr": "Les familles des villages engloutis se sont vu proposer des appartements dans une ville nouvelle à moitié construite. Leur pétition réclame des terres et des logements à la hauteur de ce qui a été perdu." + }, + "yes": { + "label": { "en": "Pay full replacement cost", "fr": "Verser le coût de remplacement" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "unrest", "delta": -2, "days": 45 }, + { "sector": "housing", "delta": 2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Offer the standard grant", "fr": "Verser l'indemnité standard" }, + "effects": [ + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "env_wolf_01", + "category": "environment", + "doc": "letter", + "sender": "min_environment", + "conditions": { "dayMin": 150 }, + "title": { "en": "Wolves in the Karst hills", "fr": "Des loups dans les collines du Karst" }, + "body": { + "en": "Wolves have been seen again in the Karst hills after a century. The biodiversity charter protects them, and the shepherds' federation asks for permission to shoot.", + "fr": "Des loups ont été revus dans les collines du Karst après un siècle d'absence. La charte de la biodiversité les protège, et la fédération des bergers demande l'autorisation de les abattre." + }, + "yes": { + "label": { "en": "Protect the wolves", "fr": "Protéger les loups" }, + "effects": [ + { "sector": "environment", "delta": 3, "days": 180 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "unrest", "delta": 1, "days": 30 } + ], + "followUp": { "id": "env_wolf_livestock_01", "inDays": 150 } + }, + "no": { + "label": { "en": "Allow culling", "fr": "Autoriser les tirs" }, + "effects": [ + { "sector": "environment", "delta": -3, "days": 150 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "env_wolf_livestock_01", + "category": "environment", + "doc": "letter", + "sender": "min_environment", + "followUpOnly": true, + "title": { "en": "Forty sheep in one night", "fr": "Quarante moutons en une nuit" }, + "body": { + "en": "Forty sheep were killed in a single night in the Karst hills. A compensation fund would calm the shepherds, and its budget line has no ceiling.", + "fr": "Quarante moutons ont été tués en une seule nuit dans les collines du Karst. Un fonds d'indemnisation apaiserait les bergers, et sa ligne budgétaire n'a pas de plafond." + }, + "yes": { + "label": { "en": "Create a compensation fund", "fr": "Créer un fonds d'indemnisation" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "unrest", "delta": -2, "days": 45 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "environment", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Authorise a limited cull", "fr": "Autoriser un abattage limité" }, + "effects": [ + { "sector": "environment", "delta": -3, "days": 150 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "unrest", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "env_green_bonds_01", + "category": "environment", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "debt": 55 }, "dayMin": 200 }, + "title": { "en": "Sovereign green bonds", "fr": "Des obligations vertes souveraines" }, + "body": { + "en": "Investors are hunting for green bonds. A sovereign issue would borrow at a lower rate for clean projects, though the rating agency would still count it as debt.", + "fr": "Les investisseurs s'arrachent les obligations vertes. Une émission souveraine emprunterait à un taux plus bas pour des projets propres, même si l'agence de notation la compterait quand même comme de la dette." + }, + "yes": { + "label": { "en": "Issue green bonds", "fr": "Émettre des obligations vertes" }, + "effects": [ + { "oneOff": -0.4 }, + { "extraSpending": 0.1 }, + { "sector": "environment", "delta": 3, "days": 180 }, + { "stat": "softPower", "delta": 2, "days": 60 } + ], + "followUp": { "id": "env_green_audit_01", "inDays": 240 } + }, + "no": { + "label": { "en": "Borrow as usual", "fr": "Emprunter comme d'habitude" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "sector": "environment", "delta": -1, "days": 90 }, + { "stat": "softPower", "delta": -1, "days": 45 } + ] + } + }, + { + "id": "env_green_audit_01", + "category": "environment", + "doc": "report", + "sender": "min_finance", + "followUpOnly": true, + "title": { "en": "The green asphalt audit", "fr": "L'audit de l'asphalte vert" }, + "body": { + "en": "An independent audit finds that a third of the green bond money went to road widening and a bus depot. Investors ask for a correction, and the press has coined the phrase \"green asphalt\".", + "fr": "Un audit indépendant révèle qu'un tiers des fonds des obligations vertes a servi à élargir des routes et à bâtir un dépôt de bus. Les investisseurs exigent un correctif, et la presse a inventé l'expression « asphalte vert »." + }, + "yes": { + "label": { "en": "Publish the audit", "fr": "Publier l'audit" }, + "effects": [ + { "sector": "environment", "delta": 3, "days": 180 }, + { "sector": "transport", "delta": -2, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 40 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Bury the audit", "fr": "Enterrer l'audit" }, + "effects": [ + { "sector": "transport", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "softPower", "delta": -3, "days": 90 } + ] + } + }, + { + "id": "env_drought_01", + "category": "environment", + "doc": "report", + "sender": "min_environment", + "conditions": { "max": { "q:environment": 55 }, "dayMin": 100 }, + "title": { "en": "The driest spring in forty years", "fr": "Le printemps le plus sec en quarante ans" }, + "body": { + "en": "Reservoirs stand at a third of capacity after the driest spring in forty years. Water restrictions would save the summer in the cities at the cost of the farmers' harvest.", + "fr": "Les réservoirs sont au tiers de leur capacité après le printemps le plus sec depuis quarante ans. Des restrictions d'eau sauveraient l'été des villes au prix de la récolte des agriculteurs." + }, + "yes": { + "label": { "en": "Ration water for farms", "fr": "Rationner l'eau des fermes" }, + "effects": [ + { "stat": "economy", "delta": -2, "days": 90 }, + { "stat": "unrest", "delta": 3, "days": 45 }, + { "sector": "environment", "delta": 2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Ration the cities", "fr": "Rationner les villes" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 45 }, + { "sector": "health", "delta": -2, "days": 90 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "env_pesticide_01", + "category": "environment", + "doc": "letter", + "sender": "min_health", + "conditions": { "dayMin": 180 }, + "title": { "en": "The bees and the pesticide", "fr": "Les abeilles et le pesticide" }, + "body": { + "en": "Beekeepers and a university study link the pesticide Verdane to collapsing hives and traces in drinking water. Growers say that without it, yields would fall by a fifth.", + "fr": "Des apiculteurs et une étude universitaire relient le pesticide Verdane à l'effondrement des ruches et à des traces dans l'eau potable. Les producteurs affirment que sans lui, les rendements chuteraient d'un cinquième." + }, + "yes": { + "label": { "en": "Ban the pesticide", "fr": "Interdire le pesticide" }, + "effects": [ + { "sector": "environment", "delta": 3, "days": 180 }, + { "sector": "health", "delta": 2, "days": 150 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 270 }, + { "stat": "unrest", "delta": 2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Keep it, with limits", "fr": "Le garder, avec des limites" }, + "effects": [ + { "sector": "environment", "delta": -2, "days": 120 }, + { "sector": "health", "delta": -2, "days": 120 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "env_landfill_01", + "category": "environment", + "doc": "letter", + "sender": "mayor", + "conditions": { "dayMin": 240 }, + "title": { "en": "The capital's landfill is full", "fr": "La décharge de la capitale est pleine" }, + "body": { + "en": "The capital's landfill will be full within two years. The only suitable site is next to the town of Halm, whose residents have already blocked the road with tractors.", + "fr": "La décharge de la capitale sera pleine d'ici deux ans. Le seul site adapté jouxte la ville de Halm, dont les habitants ont déjà bloqué la route avec des tracteurs." + }, + "yes": { + "label": { "en": "Open the Halm site", "fr": "Ouvrir le site de Halm" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "infrastructure", "delta": 3, "days": 180 }, + { "sector": "environment", "delta": -2, "days": 150 }, + { "stat": "unrest", "delta": 3, "days": 45 } + ] + }, + "no": { + "label": { "en": "Export the waste", "fr": "Exporter les déchets" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "softPower", "delta": -2, "days": 90 }, + { "sector": "environment", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "env_urban_trees_01", + "category": "environment", + "doc": "memo", + "sender": "mayor", + "conditions": { "dayMin": 300 }, + "title": { "en": "Fifty thousand trees", "fr": "Cinquante mille arbres" }, + "body": { + "en": "A plan to plant fifty thousand trees would cool the capital's streets in summer and soak up flooding. Maintenance is the costly part, and nobody has budgeted for the watering.", + "fr": "Un plan de cinquante mille arbres rafraîchirait les rues de la capitale l'été et absorberait les crues. L'entretien est le point coûteux : personne n'a budgété l'arrosage." + }, + "yes": { + "label": { "en": "Plant the trees", "fr": "Planter les arbres" }, + "effects": [ + { "oneOff": 0.2 }, + { "extraSpending": 0.1 }, + { "sector": "environment", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Trim the greening budget", "fr": "Rogner le budget vert" }, + "effects": [ + { "extraSpending": -0.1 }, + { "sector": "environment", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "env_wind_farm_01", + "category": "environment", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 120 }, + "title": { "en": "A wind farm off the north coast", "fr": "Un parc éolien au large du nord" }, + "body": { + "en": "An offshore wind farm would power the northern coast, on waters where small boats now fish. The fishermen's cooperative wants either compensation or another site.", + "fr": "Un parc éolien en mer alimenterait la côte nord, sur des eaux où naviguent aujourd'hui de petits bateaux de pêche. La coopérative des pêcheurs exige une compensation ou un autre site." + }, + "yes": { + "label": { "en": "Approve the wind farm", "fr": "Autoriser le parc éolien" }, + "effects": [ + { "oneOff": 0.5 }, + { "sector": "industry", "delta": 3, "days": 240 }, + { "sector": "environment", "delta": 3, "days": 240 }, + { "stat": "inflation", "delta": -0.2, "bias": true, "days": 365 }, + { "stat": "unrest", "delta": 1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Look for another site", "fr": "Chercher un autre site" }, + "effects": [ + { "sector": "environment", "delta": -2, "days": 120 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "env_fire_prevention_01", + "category": "environment", + "doc": "report", + "sender": "min_interior", + "conditions": { "max": { "q:environment": 55 }, "dayMin": 330 }, + "title": { "en": "Another fire season ahead", "fr": "Une nouvelle saison de feux" }, + "body": { + "en": "Three summers of wildfire have burned the Karst hills to the stone. Firebreaks and a water-bomber squadron cost money, and a fourth fire season will cost more.", + "fr": "Trois étés d'incendies ont mis à nu les collines du Karst. Des pare-feu et une escadrille de bombardiers d'eau coûtent cher, et une quatrième saison de feux coûtera davantage." + }, + "yes": { + "label": { "en": "Fund the firebreaks", "fr": "Financer les pare-feu" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "environment", "delta": 3, "days": 180 }, + { "stat": "order", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Hope for rain", "fr": "Compter sur la pluie" }, + "effects": [ + { "sector": "environment", "delta": -3, "days": 150 }, + { "stat": "opinion", "delta": -2, "days": 45 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "env_ngo_funding_01", + "category": "environment", + "doc": "letter", + "sender": "intelligence", + "conditions": { "min": { "unrest": 30 }, "dayMin": 270 }, + "title": { "en": "Foreign money for green groups", "fr": "Fonds étrangers pour les écologistes" }, + "body": { + "en": "Several environmental groups receive money from foreign foundations. Intelligence suggests that the donors' interests are not purely green, and a registry law would put the groups under a transparency regime.", + "fr": "Plusieurs associations écologistes reçoivent des fonds de fondations étrangères. Le renseignement estime que les intérêts des donateurs ne sont pas purement verts, et une loi d'enregistrement soumettrait ces associations à un régime de transparence." + }, + "yes": { + "label": { "en": "Pass the registry law", "fr": "Voter la loi d'enregistrement" }, + "effects": [ + { "stat": "stability", "delta": 2, "days": 45 }, + { "stat": "civilRights", "delta": -4 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "sector": "environment", "delta": -2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Leave the groups alone", "fr": "Laisser les associations en paix" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 45 } + ] + } + }, + { + "id": "env_cop_summit_01", + "category": "environment", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "dayMin": 360 }, + "title": { "en": "The Brisca climate summit", "fr": "Le sommet climat de Brisca" }, + "body": { + "en": "The regional climate summit in Brisca asks each government to name an emissions target. A bold figure would earn Valdoria a seat at the table, and any figure must be defended at home.", + "fr": "Le sommet régional sur le climat de Brisca demande à chaque gouvernement de fixer un objectif d'émissions. Un chiffre ambitieux vaudrait à la Valdorie une place à la table, et tout chiffre devra être défendu au pays." + }, + "yes": { + "label": { "en": "Announce a bold target", "fr": "Annoncer un objectif ambitieux" }, + "effects": [ + { "stat": "softPower", "delta": 4, "days": 90 }, + { "sector": "environment", "delta": 3, "days": 180 }, + { "sector": "industry", "delta": -2, "days": 180 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 365 } + ], + "setFlags": ["env_climate_pledge"], + "followUp": { "id": "env_pledge_review_01", "inDays": 365 } + }, + "no": { + "label": { "en": "Offer a vague pledge", "fr": "Offrir un engagement flou" }, + "effects": [ + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "sector": "environment", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "env_pledge_review_01", + "category": "environment", + "doc": "report", + "sender": "min_environment", + "followUpOnly": true, + "conditions": { "flags": ["env_climate_pledge"] }, + "title": { "en": "The pledge review", "fr": "Le bilan de l'engagement" }, + "body": { + "en": "The first annual review shows emissions down by only a third of the promised amount. Foreign observers are watching, and a stricter policy would hurt the industrial regions.", + "fr": "Le premier bilan annuel montre des émissions en baisse d'un tiers seulement de ce qui était promis. Des observateurs étrangers surveillent, et une politique plus stricte pénaliserait les régions industrielles." + }, + "yes": { + "label": { "en": "Tighten the policy", "fr": "Durcir la politique" }, + "effects": [ + { "sector": "environment", "delta": 4, "days": 240 }, + { "sector": "industry", "delta": -3, "days": 180 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Revise the figures", "fr": "Retoucher les chiffres" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 90 }, + { "sector": "environment", "delta": -2, "days": 120 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "env_ewaste_01", + "category": "environment", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 380 }, + "title": { "en": "Dead phones and fridges", "fr": "Téléphones et frigos hors d'usage" }, + "body": { + "en": "Dead phones and fridges pile up in open-air yards near the port, leaking lead into the soil. An extended producer-responsibility rule would make importers pay for recycling and pass the cost on to consumers.", + "fr": "Téléphones et réfrigérateurs hors d'usage s'entassent à l'air libre près du port et laissent fuir du plomb dans le sol. Une responsabilité élargie des producteurs ferait payer le recyclage aux importateurs, qui le répercuteraient sur les consommateurs." + }, + "yes": { + "label": { "en": "Make importers pay", "fr": "Faire payer les importateurs" }, + "effects": [ + { "sector": "environment", "delta": 3, "days": 180 }, + { "sector": "industry", "delta": 1, "days": 120 }, + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Leave the yards as they are", "fr": "Laisser les décharges en l'état" }, + "effects": [ + { "sector": "environment", "delta": -3, "days": 150 }, + { "sector": "health", "delta": -1, "days": 90 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "env_lithium_mine_01", + "category": "environment", + "doc": "report", + "sender": "min_industry", + "conditions": { "dayMin": 450 }, + "title": { "en": "A lithium mine in Orsk", "fr": "Une mine de lithium à Orsk" }, + "body": { + "en": "A foreign consortium offers to open a lithium mine in the Orsk highlands, with royalties and eight hundred jobs. The highlands feed two rivers, and the consortium's environmental study is forty pages long.", + "fr": "Un consortium étranger propose d'ouvrir une mine de lithium dans les hauteurs d'Orsk, avec redevances et huit cents emplois. Ces hauteurs alimentent deux rivières, et l'étude d'impact du consortium tient en quarante pages." + }, + "yes": { + "label": { "en": "Grant the licence", "fr": "Accorder la licence" }, + "effects": [ + { "revenue": "other", "delta": 0.3 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 540 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 365 }, + { "sector": "environment", "delta": -4, "days": 240 } + ], + "followUp": { "id": "env_mine_tailings_01", "inDays": 270 } + }, + "no": { + "label": { "en": "Refuse the licence", "fr": "Refuser la licence" }, + "effects": [ + { "sector": "environment", "delta": 1, "days": 90 }, + { "sector": "industry", "delta": -1, "days": 90 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "softPower", "delta": -1, "days": 45 } + ] + } + }, + { + "id": "env_mine_tailings_01", + "category": "environment", + "doc": "report", + "sender": "min_environment", + "followUpOnly": true, + "title": { "en": "The tailings pond is leaking", "fr": "Le bassin de rétention fuit" }, + "body": { + "en": "The mine's tailings pond has begun to seep toward the Orsk river. The consortium offers a lining at its own cost in exchange for a longer licence, while the ministry could halt the works instead.", + "fr": "Le bassin de rétention de la mine commence à suinter vers la rivière d'Orsk. Le consortium offre un revêtement à ses frais contre une licence plus longue, alors que le ministère pourrait plutôt suspendre les travaux." + }, + "yes": { + "label": { "en": "Halt the works", "fr": "Suspendre les travaux" }, + "effects": [ + { "sector": "environment", "delta": 3, "days": 150 }, + { "stat": "economy", "delta": -2, "days": 90 }, + { "stat": "softPower", "delta": -2, "days": 90 }, + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Extend the licence", "fr": "Prolonger la licence" }, + "effects": [ + { "revenue": "other", "delta": 0.1 }, + { "sector": "environment", "delta": -3, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 45 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "env_coastal_erosion_01", + "category": "environment", + "doc": "report", + "sender": "min_environment", + "conditions": { "max": { "q:infrastructure": 55 }, "dayMin": 480 }, + "title": { "en": "The coast road is falling in", "fr": "La route côtière s'effondre" }, + "body": { + "en": "The sea took eight metres of the southern coast road in one winter. Sea walls would save the tourist towns for a generation, while a managed retreat would cost less now and more votes.", + "fr": "La mer a emporté huit mètres de la route côtière du sud en un seul hiver. Des digues sauveraient les villes touristiques pour une génération, tandis qu'un repli planifié coûterait moins aujourd'hui et plus en voix." + }, + "yes": { + "label": { "en": "Build sea walls", "fr": "Bâtir des digues" }, + "effects": [ + { "oneOff": 0.8 }, + { "sector": "infrastructure", "delta": 3, "days": 180 }, + { "sector": "environment", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Plan a managed retreat", "fr": "Organiser le repli" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "housing", "delta": -2, "days": 120 }, + { "sector": "environment", "delta": 2, "days": 150 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "env_algae_01", + "category": "environment", + "doc": "report", + "sender": "min_health", + "conditions": { "max": { "q:environment": 55 }, "dayMin": 520 }, + "title": { "en": "Algae in the Bay of Marl", "fr": "Des algues dans la baie de Marl" }, + "body": { + "en": "Toxic algae now bloom every summer in the Bay of Marl, fed by fertiliser washing down from the farms. Limits on spreading would cost yields, and the oyster growers want help either way.", + "fr": "Des algues toxiques fleurissent chaque été dans la baie de Marl, nourries par les engrais lessivés des fermes. Limiter l'épandage coûterait des rendements, et les ostréiculteurs réclament de l'aide dans tous les cas." + }, + "yes": { + "label": { "en": "Limit fertiliser use", "fr": "Limiter les engrais" }, + "effects": [ + { "sector": "environment", "delta": 4, "days": 200 }, + { "sector": "health", "delta": 1, "days": 120 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 270 }, + { "stat": "unrest", "delta": 2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Compensate the oyster growers", "fr": "Indemniser les ostréiculteurs" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "environment", "delta": -3, "days": 150 }, + { "stat": "unrest", "delta": -1, "days": 30 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "env_carbon_market_01", + "category": "environment", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "economy": 50 }, "dayMin": 560 }, + "title": { "en": "A national carbon market", "fr": "Un marché national du carbone" }, + "body": { + "en": "A national carbon market would let factories trade emission permits and raise revenue at auction. Heavy industry calls it a tax by another name, and the brokers are already drafting contracts.", + "fr": "Un marché national du carbone permettrait aux usines d'échanger des quotas d'émission et rapporterait des recettes d'enchères. L'industrie lourde y voit une taxe qui ne dit pas son nom, et les courtiers rédigent déjà leurs contrats." + }, + "yes": { + "label": { "en": "Launch the carbon market", "fr": "Lancer le marché du carbone" }, + "effects": [ + { "oneOff": -0.4 }, + { "sector": "environment", "delta": 3, "days": 180 }, + { "sector": "industry", "delta": -2, "days": 150 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Drop the scheme", "fr": "Abandonner le projet" }, + "effects": [ + { "stat": "softPower", "delta": -1, "days": 60 }, + { "sector": "environment", "delta": -2, "days": 120 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "env_heat_wave_01", + "category": "environment", + "doc": "letter", + "sender": "mayor", + "conditions": { "max": { "q:health": 60 }, "dayMin": 600 }, + "title": { "en": "Forty days of heat", "fr": "Quarante jours de canicule" }, + "body": { + "en": "Forty days above thirty-eight degrees have filled the capital's hospitals. City hall asks for cooling centres, shaded squares and a fund that does not vanish when the summer ends.", + "fr": "Quarante jours à plus de trente-huit degrés ont rempli les hôpitaux de la capitale. La mairie demande des centres de fraîcheur, des places ombragées et un fonds qui ne disparaisse pas à la fin de l'été." + }, + "yes": { + "label": { "en": "Fund cooling centres", "fr": "Financer des centres de fraîcheur" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "health", "delta": 3, "days": 120 }, + { "sector": "environment", "delta": 2, "days": 150 }, + { "stat": "opinion", "delta": 3, "days": 45 } + ] + }, + "no": { + "label": { "en": "Issue health advice only", "fr": "Se limiter aux conseils" }, + "effects": [ + { "sector": "health", "delta": -3, "days": 90 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "env_ship_emissions_01", + "category": "environment", + "doc": "memo", + "sender": "min_transport", + "conditions": { "dayMin": 640 }, + "title": { "en": "Soot over the port of Calder", "fr": "De la suie sur le port de Calder" }, + "body": { + "en": "Cruise ships and bulk carriers idle in the port of Calder with engines running, coating the old town in soot. Shore power would end it, at a price the shipping lines say will send them to the neighbouring port.", + "fr": "Paquebots et vraquiers restent au port de Calder moteurs tournants, couvrant la vieille ville de suie. Un branchement à quai y mettrait fin, à un prix qui, selon les armateurs, les enverra dans le port voisin." + }, + "yes": { + "label": { "en": "Install shore power", "fr": "Installer le courant à quai" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "environment", "delta": 3, "days": 180 }, + { "sector": "transport", "delta": 2, "days": 150 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Leave the engines running", "fr": "Laisser tourner les moteurs" }, + "effects": [ + { "sector": "environment", "delta": -2, "days": 120 }, + { "sector": "health", "delta": -2, "days": 120 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "env_gm_maize_01", + "category": "environment", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 700 }, + "title": { "en": "Drought-proof maize", "fr": "Un maïs résistant à la sécheresse" }, + "body": { + "en": "Seed firms offer drought-resistant maize that would raise yields by a quarter. Consumer groups want it kept out until its long-term effects are studied, and farmers want it before the next dry year.", + "fr": "Des semenciers proposent un maïs résistant à la sécheresse qui augmenterait les rendements d'un quart. Les associations de consommateurs veulent l'écarter tant que ses effets à long terme ne sont pas étudiés, et les agriculteurs le veulent avant la prochaine année sèche." + }, + "yes": { + "label": { "en": "Approve the seed", "fr": "Autoriser la semence" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "inflation", "delta": -0.2, "bias": true, "days": 365 }, + { "sector": "environment", "delta": -2, "days": 150 }, + { "stat": "opinion", "delta": -2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Ban the crop", "fr": "Interdire la culture" }, + "effects": [ + { "sector": "environment", "delta": 2, "days": 150 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 45 } + ] + } + }, + { + "id": "env_glacier_01", + "category": "environment", + "doc": "report", + "sender": "min_environment", + "conditions": { "dayMin": 760 }, + "title": { "en": "The Hald glacier is shrinking", "fr": "Le glacier de Hald recule" }, + "body": { + "en": "The Hald glacier feeds the three largest cities and has lost a third of its ice in a decade. A monitoring programme is cheap, while new reservoirs are not.", + "fr": "Le glacier de Hald alimente les trois plus grandes villes et a perdu un tiers de sa glace en dix ans. Un programme de suivi coûte peu, de nouveaux réservoirs beaucoup." + }, + "yes": { + "label": { "en": "Build reservoirs", "fr": "Construire des réservoirs" }, + "effects": [ + { "oneOff": 0.9 }, + { "sector": "infrastructure", "delta": 3, "days": 180 }, + { "sector": "environment", "delta": 2, "days": 150 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 540 } + ] + }, + "no": { + "label": { "en": "Fund monitoring only", "fr": "Financer le seul suivi" }, + "effects": [ + { "oneOff": 0.1 }, + { "sector": "research", "delta": 2, "days": 150 }, + { "sector": "environment", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "env_poaching_01", + "category": "environment", + "doc": "letter", + "sender": "min_interior", + "conditions": { "max": { "q:police": 58 }, "dayMin": 820 }, + "title": { "en": "Poachers in the northern forests", "fr": "Des braconniers dans les forêts du nord" }, + "body": { + "en": "Organised gangs poach the last Valdorian lynx and sell the pelts abroad, protected by village silence and small bribes. The rangers are outgunned and underpaid.", + "fr": "Des bandes organisées braconnent les derniers lynx de Valdorie et vendent les fourrures à l'étranger, protégées par le silence des villages et de petits pots-de-vin. Les gardes sont mal armés et mal payés." + }, + "yes": { + "label": { "en": "Arm and fund the rangers", "fr": "Armer et financer les gardes" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "environment", "delta": 3, "days": 180 }, + { "sector": "police", "delta": 2, "days": 150 }, + { "stat": "order", "delta": 1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Sell hunting permits", "fr": "Vendre des permis de chasse" }, + "effects": [ + { "oneOff": -0.1 }, + { "sector": "environment", "delta": -3, "days": 180 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "env_water_tariff_01", + "category": "environment", + "doc": "memo", + "sender": "min_finance", + "conditions": { "max": { "opinion": 56 }, "dayMin": 540 }, + "title": { "en": "Water below cost", "fr": "L'eau sous son coût" }, + "body": { + "en": "Water in Valdoria is priced below cost, and a third of it leaks from old pipes. A real tariff would fund repairs and curb waste, starting with the first bill that arrives in winter.", + "fr": "L'eau en Valdorie est vendue sous son coût et un tiers fuit des vieux tuyaux. Un vrai tarif financerait les réparations et freinerait le gaspillage, dès la première facture hivernale." + }, + "yes": { + "label": { "en": "Raise the water tariff", "fr": "Relever le tarif de l'eau" }, + "effects": [ + { "revenue": "other", "delta": 0.2 }, + { "sector": "infrastructure", "delta": 3, "days": 180 }, + { "sector": "environment", "delta": 2, "days": 150 }, + { "stat": "opinion", "delta": -4, "days": 45 } + ] + }, + "no": { + "label": { "en": "Freeze the tariff", "fr": "Geler le tarif" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 40 }, + { "sector": "infrastructure", "delta": -2, "days": 150 }, + { "sector": "environment", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "env_insulation_01", + "category": "environment", + "doc": "memo", + "sender": "min_housing", + "conditions": { "min": { "inflation": 3 }, "dayMin": 440 }, + "title": { "en": "Insulating the old housing stock", "fr": "Isoler le parc de logements anciens" }, + "body": { + "en": "With energy bills rising, grants for insulating old housing would pay for themselves in saved heating. Landlords would pocket part of them, and the paperwork is heavy.", + "fr": "Alors que les factures d'énergie grimpent, des aides à l'isolation des logements anciens se rembourseraient en chauffage économisé. Les propriétaires en capteraient une partie, et la paperasse est lourde." + }, + "yes": { + "label": { "en": "Fund home insulation", "fr": "Financer l'isolation" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "housing", "delta": 2, "days": 150 }, + { "sector": "environment", "delta": 3, "days": 180 }, + { "stat": "inflation", "delta": -0.2, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Leave it to the market", "fr": "Laisser faire le marché" }, "effects": [ { "stat": "opinion", "delta": -2, "days": 40 }, - { "sector": "infrastructure", "delta": -2, "days": 180 } + { "sector": "environment", "delta": -1, "days": 90 }, + { "sector": "housing", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "env_dumping_scandal_01", + "category": "environment", + "doc": "report", + "sender": "min_justice", + "conditions": { "max": { "q:justice": 58 }, "dayMin": 600 }, + "title": { "en": "Solvents under the school field", "fr": "Des solvants sous le stade de l'école" }, + "body": { + "en": "A prosecutor's file shows a chemical firm buried drums of solvent under a school playing field, with a signature from the local inspectorate. The firm employs two thousand people in the region.", + "fr": "Un dossier du parquet montre qu'une entreprise chimique a enfoui des fûts de solvants sous un terrain de sport scolaire, avec la signature de l'inspection locale. L'entreprise emploie deux mille personnes dans la région." + }, + "yes": { + "label": { "en": "Prosecute the firm", "fr": "Poursuivre l'entreprise" }, + "effects": [ + { "sector": "justice", "delta": 2, "days": 120 }, + { "sector": "environment", "delta": 3, "days": 150 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 270 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Settle for a fine", "fr": "Régler par une amende" }, + "effects": [ + { "oneOff": -0.1 }, + { "stat": "opinion", "delta": -4, "days": 45 }, + { "sector": "justice", "delta": -2, "days": 120 }, + { "stat": "stability", "delta": -1, "days": 45 } + ] + } + }, + { + "id": "env_nuclear_waste_01", + "category": "environment", + "doc": "report", + "sender": "min_industry", + "conditions": { "dayMin": 900 }, + "title": { "en": "Where to bury the reactor waste", "fr": "Où enterrer les déchets du réacteur" }, + "body": { + "en": "Used fuel from the research reactor sits in a cooled pond that was meant to be temporary. A deep repository under the Grau plateau would be safe for ten thousand years, supposedly, and the local council has not been asked.", + "fr": "Le combustible usé du réacteur de recherche repose dans un bassin refroidi censé être provisoire. Un stockage profond sous le plateau de Grau serait sûr pour dix mille ans, dit-on, et le conseil local n'a pas été consulté." + }, + "yes": { + "label": { "en": "Dig the repository", "fr": "Creuser le stockage" }, + "effects": [ + { "oneOff": 0.8 }, + { "sector": "environment", "delta": 2, "days": 200 }, + { "sector": "research", "delta": 2, "days": 150 }, + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "opinion", "delta": -3, "days": 45 } + ] + }, + "no": { + "label": { "en": "Extend the pond", "fr": "Prolonger le bassin" }, + "effects": [ + { "oneOff": 0.1 }, + { "sector": "environment", "delta": -3, "days": 200 }, + { "stat": "stability", "delta": -1, "days": 45 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "env_green_deal_01", + "category": "environment", + "doc": "memo", + "sender": "min_environment", + "conditions": { "max": { "debt": 80 }, "dayMin": 960 }, + "title": { "en": "A ten-year green plan", "fr": "Un plan vert sur dix ans" }, + "body": { + "en": "A ten-year green investment plan would retrofit buildings, rails and grids, and create jobs at home. The Treasury calls it a second budget, and the opposition calls it a campaign leaflet.", + "fr": "Un plan d'investissement vert sur dix ans rénoverait bâtiments, rails et réseaux, et créerait des emplois dans le pays. Le Trésor y voit un second budget, l'opposition un tract électoral." + }, + "yes": { + "label": { "en": "Launch the green plan", "fr": "Lancer le plan vert" }, + "effects": [ + { "extraSpending": 0.5 }, + { "sector": "environment", "delta": 5, "days": 300 }, + { "sector": "industry", "delta": 3, "days": 240 }, + { "stat": "unemployment", "delta": -0.3, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Stay within the budget", "fr": "S'en tenir au budget" }, + "effects": [ + { "extraSpending": -0.1 }, + { "sector": "environment", "delta": -2, "days": 120 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "env_carbon_border_01", + "category": "environment", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "dayMin": 1000 }, + "title": { "en": "A carbon tax at the border", "fr": "Une taxe carbone aux frontières" }, + "body": { + "en": "A neighbouring trade bloc will tax imports by their carbon content, starting with Valdorian steel and fertiliser. Matching its standards would spare the exporters, while a protest would please the factories and annoy a major customer.", + "fr": "Un bloc commercial voisin taxera les importations selon leur teneur en carbone, à commencer par l'acier et les engrais valdoriens. S'aligner sur ses normes épargnerait les exportateurs, tandis qu'une protestation plairait aux usines et agacerait un client majeur." + }, + "yes": { + "label": { "en": "Match their standards", "fr": "S'aligner sur leurs normes" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "environment", "delta": 3, "days": 180 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "economy", "delta": 1, "days": 90 }, + { "sector": "industry", "delta": -1, "days": 150 } + ] + }, + "no": { + "label": { "en": "File a trade complaint", "fr": "Déposer une plainte commerciale" }, + "effects": [ + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "economy", "delta": -2, "days": 90 }, + { "sector": "industry", "delta": 1, "days": 90 } + ] + } + }, + { + "id": "env_old_growth_01", + "category": "environment", + "doc": "letter", + "sender": "min_environment", + "conditions": { "dayMin": 1050 }, + "title": { "en": "Old-growth forest found", "fr": "Une forêt primaire découverte" }, + "body": { + "en": "Surveyors found six hundred hectares of old-growth forest in the Veld massif, untouched since before the Republic. Loggers hold licences for half of it, and scientists want all of it fenced off.", + "fr": "Des géomètres ont découvert six cents hectares de forêt primaire dans le massif de Veld, intacts depuis avant la République. Des bûcherons détiennent des licences pour la moitié, et les scientifiques veulent tout clôturer." + }, + "yes": { + "label": { "en": "Ban all logging there", "fr": "Interdire toute coupe" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "environment", "delta": 4, "days": 240 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "sector": "industry", "delta": -2, "days": 150 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Honour the licences", "fr": "Honorer les licences" }, + "effects": [ + { "sector": "environment", "delta": -3, "days": 180 }, + { "sector": "industry", "delta": 1, "days": 90 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "softPower", "delta": -1, "days": 45 } + ] + } + }, + { + "id": "env_shale_gas_01", + "category": "environment", + "doc": "memo", + "sender": "min_industry", + "conditions": { "max": { "economy": 50 }, "dayMin": 1100 }, + "title": { "en": "Shale gas under the plains", "fr": "Du gaz de schiste sous les plaines" }, + "body": { + "en": "A shale gas field under the eastern plains could lower energy bills and revive a faltering economy. Hydraulic fracturing would also strain the aquifers that three provinces drink from.", + "fr": "Un gisement de gaz de schiste sous les plaines de l'est pourrait faire baisser les factures d'énergie et relancer une économie hésitante. La fracturation hydraulique solliciterait aussi les nappes où trois provinces puisent leur eau." + }, + "yes": { + "label": { "en": "Licence the drilling", "fr": "Autoriser les forages" }, + "effects": [ + { "oneOff": -0.5 }, + { "stat": "economy", "delta": 3, "days": 180 }, + { "stat": "inflation", "delta": -0.3, "bias": true, "days": 365 }, + { "sector": "environment", "delta": -4, "days": 240 }, + { "stat": "softPower", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Ban fracking", "fr": "Interdire la fracturation" }, + "effects": [ + { "sector": "environment", "delta": 2, "days": 150 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "sector": "industry", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "env_delta_exodus_01", + "category": "environment", + "doc": "report", + "sender": "min_housing", + "conditions": { "max": { "q:housing": 55 }, "dayMin": 1200 }, + "title": { "en": "Salt in the delta wells", "fr": "Du sel dans les puits du delta" }, + "body": { + "en": "Salt has ruined the wells of the delta villages, and families are leaving for the capital's suburbs. A relocation programme would give them homes and land, but the suburbs doubt they have room.", + "fr": "Le sel a ruiné les puits des villages du delta, et des familles gagnent les banlieues de la capitale. Un programme de relogement leur offrirait maisons et terres, mais les banlieues doutent d'avoir la place." + }, + "yes": { + "label": { "en": "Fund the relocation", "fr": "Financer le relogement" }, + "effects": [ + { "oneOff": 0.6 }, + { "sector": "housing", "delta": 3, "days": 180 }, + { "sector": "social", "delta": 2, "days": 150 }, + { "stat": "unrest", "delta": -2, "days": 45 }, + { "stat": "opinion", "delta": 2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Leave it to the councils", "fr": "S'en remettre aux communes" }, + "effects": [ + { "stat": "unrest", "delta": 3, "days": 60 }, + { "sector": "housing", "delta": -3, "days": 150 }, + { "stat": "opinion", "delta": -2, "days": 45 }, + { "stat": "stability", "delta": -1, "days": 45 } + ] + } + }, + { + "id": "env_charter_01", + "category": "environment", + "doc": "letter", + "sender": "min_justice", + "conditions": { "dayMin": 1300 }, + "title": { "en": "An environmental charter", "fr": "Une charte de l'environnement" }, + "body": { + "en": "A proposed environmental charter would write the right to a healthy environment into the constitution and let citizens sue the state over it. Lawyers are delighted, and ministries are not.", + "fr": "Une charte de l'environnement inscrirait le droit à un environnement sain dans la constitution et permettrait aux citoyens d'attaquer l'État en justice. Les avocats sont ravis, les ministères beaucoup moins." + }, + "yes": { + "label": { "en": "Adopt the charter", "fr": "Adopter la charte" }, + "effects": [ + { "sector": "environment", "delta": 4, "days": 365 }, + { "stat": "civilRights", "delta": 3 }, + { "stat": "softPower", "delta": 2, "days": 90 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Keep it a declaration", "fr": "La garder en simple déclaration" }, + "effects": [ + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "environment", "delta": -1, "days": 90 }, + { "stat": "economy", "delta": 1, "days": 60 } ] } } diff --git a/web/data/cards/foreign.json b/web/data/cards/foreign.json index 2d16a14..9332ef3 100644 --- a/web/data/cards/foreign.json +++ b/web/data/cards/foreign.json @@ -1,6 +1,9 @@ [ { - "id": "for_trade_pact_01", "category": "foreign", "doc": "memo", "sender": "min_foreign", + "id": "for_trade_pact_01", + "category": "foreign", + "doc": "memo", + "sender": "min_foreign", "conditions": { "notFlags": ["trade_pact"] }, "title": { "en": "Sign a regional trade pact", "fr": "Signer un pacte commercial régional" }, "body": { @@ -19,14 +22,14 @@ }, "no": { "label": { "en": "Decline", "fr": "Décliner" }, - "effects": [ - { "stat": "softPower", "delta": -2, "days": 60 }, - { "stat": "economy", "delta": -1, "days": 60 } - ] + "effects": [{ "stat": "softPower", "delta": -2, "days": 60 }, { "stat": "economy", "delta": -1, "days": 60 }] } }, { - "id": "for_sanctions_01", "category": "foreign", "doc": "memo", "sender": "min_foreign", + "id": "for_sanctions_01", + "category": "foreign", + "doc": "memo", + "sender": "min_foreign", "title": { "en": "Join sanctions against a neighbour", "fr": "Se joindre aux sanctions contre un voisin" }, "body": { "en": "Our allies ask us to join sanctions against a neighbour accused of violating the border. Trade with that neighbour would suffer.", @@ -46,7 +49,10 @@ } }, { - "id": "for_summit_01", "category": "foreign", "doc": "letter", "sender": "min_foreign", + "id": "for_summit_01", + "category": "foreign", + "doc": "letter", + "sender": "min_foreign", "title": { "en": "Host the regional summit", "fr": "Accueillir le sommet régional" }, "body": { "en": "The capital has been offered the regional summit. Delegations, cameras and security bills will all arrive together.", @@ -61,13 +67,13 @@ { "stat": "order", "delta": -1, "days": 14 } ] }, - "no": { - "label": { "en": "Decline", "fr": "Décliner" }, - "effects": [{ "stat": "softPower", "delta": -2, "days": 60 }] - } + "no": { "label": { "en": "Decline", "fr": "Décliner" }, "effects": [{ "stat": "softPower", "delta": -2, "days": 60 }] } }, { - "id": "for_refugee_corridor_01", "category": "foreign", "doc": "report", "sender": "min_foreign", + "id": "for_refugee_corridor_01", + "category": "foreign", + "doc": "report", + "sender": "min_foreign", "title": { "en": "A corridor for refugees", "fr": "Un corridor pour les réfugiés" }, "body": { "en": "Thousands are fleeing conflict across the border. Aid agencies ask us to open a corridor. Reception centres would be needed, and some voters are wary.", @@ -84,14 +90,14 @@ }, "no": { "label": { "en": "Close the border", "fr": "Fermer la frontière" }, - "effects": [ - { "stat": "softPower", "delta": -5, "days": 90 }, - { "stat": "opinion", "delta": 2, "days": 30 } - ] + "effects": [{ "stat": "softPower", "delta": -5, "days": 90 }, { "stat": "opinion", "delta": 2, "days": 30 }] } }, { - "id": "for_expel_ambassador_01", "category": "foreign", "doc": "memo", "sender": "min_foreign", + "id": "for_expel_ambassador_01", + "category": "foreign", + "doc": "memo", + "sender": "min_foreign", "title": { "en": "Expel a hostile ambassador", "fr": "Expulser un ambassadeur hostile" }, "body": { "en": "A foreign ambassador gave a speech mocking the government. Expelling the ambassador would play well at home and badly in the embassies.", @@ -99,17 +105,1917 @@ }, "yes": { "label": { "en": "Expel", "fr": "Expulser" }, - "effects": [ - { "stat": "opinion", "delta": 3, "days": 30 }, - { "stat": "softPower", "delta": -3, "days": 60 } - ] + "effects": [{ "stat": "opinion", "delta": 3, "days": 30 }, { "stat": "softPower", "delta": -3, "days": 60 }] }, "no": { "label": { "en": "Ignore it", "fr": "Ignorer l'affront" }, + "effects": [{ "stat": "opinion", "delta": -2, "days": 30 }, { "stat": "softPower", "delta": 1, "days": 30 }] + } + }, + { + "id": "for_visa_free_01", + "category": "foreign", + "doc": "letter", + "sender": "min_foreign", + "title": { "en": "Visa-free travel with Marenia", "fr": "Voyages sans visa avec la Marenie" }, + "body": { + "en": "Marenia offers mutual visa-free travel. Our coastal hotels would fill with its tourists and our border police with its overstays; the consular service says it can handle one of the two.", + "fr": "La Marenie propose la suppression réciproque des visas. Nos hôtels du littoral se rempliraient de ses touristes et notre police des frontières de ses dépassements de séjour ; le service consulaire dit pouvoir gérer l'un des deux." + }, + "yes": { + "label": { "en": "Drop the visas", "fr": "Supprimer les visas" }, + "effects": [ + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "growth", "delta": 0.1, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "order", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep the visas", "fr": "Maintenir les visas" }, + "effects": [ + { "stat": "softPower", "delta": -1, "days": 30 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "for_cultural_institutes_01", + "category": "foreign", + "doc": "memo", + "sender": "min_culture", + "title": { "en": "Cultural institutes abroad", "fr": "Des instituts culturels à l'étranger" }, + "body": { + "en": "Three small cultural institutes in neighbouring capitals would teach Valdorian, show our films and host exhibitions. They would cost less than one frigate and are measured only in goodwill, which is hard to audit.", + "fr": "Trois petits instituts culturels dans les capitales voisines enseigneraient le valdorien, projetteraient nos films et accueilleraient des expositions. Ils coûteraient moins qu'une frégate et ne se mesurent qu'en sympathie, ce qui est difficile à auditer." + }, + "yes": { + "label": { "en": "Open the institutes", "fr": "Ouvrir les instituts" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "sector": "culture", "delta": 2, "days": 120 }, + { "sector": "foreignAffairs", "delta": 1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Save the money", "fr": "Garder l'argent" }, + "effects": [ + { "stat": "softPower", "delta": -1, "days": 30 }, + { "sector": "culture", "delta": -2, "days": 90 }, + { "extraSpending": -0.05 } + ] + } + }, + { + "id": "for_embassy_cuts_01", + "category": "foreign", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "debt": 55 } }, + "title": { "en": "Close six small embassies", "fr": "Fermer six petites ambassades" }, + "body": { + "en": "Six embassies handle fewer than forty visa requests a year and house a great many receptions. Closing them saves money; the countries concerned will notice, and so will their ambassadors in the capital.", + "fr": "Six ambassades traitent moins de quarante demandes de visa par an et accueillent beaucoup de réceptions. Les fermer ferait des économies ; les pays concernés le remarqueront, et leurs ambassadeurs dans la capitale aussi." + }, + "yes": { + "label": { "en": "Close the embassies", "fr": "Fermer les ambassades" }, + "effects": [ + { "extraSpending": -0.15 }, + { "stat": "softPower", "delta": -3, "days": 90 }, + { "sector": "foreignAffairs", "delta": -3, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep them open", "fr": "Les garder ouvertes" }, + "effects": [ + { "extraSpending": 0.05 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "for_exchange_students_01", + "category": "foreign", + "doc": "letter", + "sender": "min_education", + "title": { "en": "Scholarships from Torvania", "fr": "Des bourses offertes par la Torvanie" }, + "body": { + "en": "Torvania offers 300 university scholarships a year, on condition that Torvanian becomes the second language in our secondary schools. Students would be delighted; nationalist newspapers would be somewhat less so.", + "fr": "La Torvanie offre 300 bourses universitaires par an, à condition que le torvanien devienne la seconde langue dans nos lycées. Les étudiants seraient ravis ; les journaux nationalistes un peu moins." + }, + "yes": { + "label": { "en": "Accept the offer", "fr": "Accepter l'offre" }, + "effects": [ + { "extraSpending": 0.05 }, + { "sector": "education", "delta": 3, "days": 150 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Decline the scholarships", "fr": "Refuser les bourses" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "softPower", "delta": -1, "days": 30 }, + { "sector": "education", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "for_border_crossing_01", + "category": "foreign", + "doc": "memo", + "sender": "min_transport", + "title": { "en": "A new crossing on the Sorn", "fr": "Un nouveau passage sur la Sorn" }, + "body": { + "en": "A road bridge over the Sorn would link two market towns that have traded across the water by ferry for two centuries. It would need customs sheds, extra border police and a ribbon, and smugglers would also welcome the ribbon.", + "fr": "Un pont routier sur la Sorn relierait deux villes de marché qui commercent par bac depuis deux siècles. Il faudrait des hangars de douane, des policiers supplémentaires et un ruban, que les contrebandiers salueraient aussi." + }, + "yes": { + "label": { "en": "Build the bridge", "fr": "Construire le pont" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "economy", "delta": 1, "days": 90 }, + { "stat": "growth", "delta": 0.15, "bias": true, "days": 365 }, + { "stat": "order", "delta": -1, "days": 40 }, + { "sector": "transport", "delta": 2, "days": 150 } + ] + }, + "no": { + "label": { "en": "Keep the ferry", "fr": "Garder le bac" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 40 }, + { "stat": "order", "delta": 1, "days": 30 }, + { "oneOff": -0.05 } + ] + } + }, + { + "id": "for_state_visit_01", + "category": "foreign", + "doc": "letter", + "sender": "press_office", + "title": { "en": "The Draveth president's state visit", "fr": "La visite d'État du président de Draveth" }, + "body": { + "en": "The president of Draveth arrives in March. Protocol proposes a banquet of nine courses, a ride in the old state carriage and a gala. The alternative is a working lunch, which the visitor will interpret as a message.", + "fr": "Le président de Draveth arrive en mars. Le protocole propose un banquet de neuf services, un trajet dans l'ancien carrosse d'État et une soirée de gala. L'alternative est un déjeuner de travail, que l'invité interprétera comme un message." + }, + "yes": { + "label": { "en": "Hold the full banquet", "fr": "Organiser le grand banquet" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "softPower", "delta": 3, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "economy", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Offer a working lunch", "fr": "Offrir un déjeuner de travail" }, + "effects": [ + { "stat": "softPower", "delta": -1, "days": 30 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "oneOff": -0.03 } + ] + } + }, + { + "id": "for_quake_aid_01", + "category": "foreign", + "doc": "telegram", + "sender": "min_foreign", + "title": { "en": "Earthquake in southern Marenia", "fr": "Séisme dans le sud de la Marenie" }, + "body": { + "en": "EARTHQUAKE IN SOUTHERN MARENIA. SEVERAL TOWNS FLATTENED. MARENIA APPEALS FOR RESCUE TEAMS AND TENTS. OUR TEAMS CAN FLY WITHIN TWELVE HOURS. STOP.", + "fr": "SEISME DANS LE SUD DE LA MARENIE. PLUSIEURS VILLES RASEES. LA MARENIE LANCE UN APPEL POUR DES EQUIPES DE SECOURS ET DES TENTES. NOS EQUIPES PEUVENT PARTIR SOUS DOUZE HEURES. STOP." + }, + "yes": { + "label": { "en": "Send the rescue teams", "fr": "Envoyer les équipes de secours" }, + "effects": [ + { "oneOff": 0.15 }, + { "stat": "softPower", "delta": 4, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "foreignAffairs", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Send a donation only", "fr": "N'envoyer qu'un don" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 20 }, + { "oneOff": -0.05 } + ] + } + }, + { + "id": "for_gas_torvania_01", + "category": "foreign", + "doc": "memo", + "sender": "min_industry", + "title": { "en": "A ten-year gas contract with Torvania", "fr": "Un contrat gazier de dix ans avec la Torvanie" }, + "body": { + "en": "Torvania offers a ten-year gas contract at a fixed price well below the market, with a clause nobody has read to the end. Heating bills would fall at once; so would our room for manoeuvre.", + "fr": "La Torvanie propose un contrat gazier de dix ans à prix fixe très inférieur au marché, avec une clause que personne n'a lue jusqu'au bout. Les factures de chauffage baisseraient aussitôt ; notre marge de manœuvre aussi." + }, + "yes": { + "label": { "en": "Sign the contract", "fr": "Signer le contrat" }, + "effects": [ + { "stat": "inflation", "delta": -0.3, "bias": true, "days": 730 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 730 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 365 } + ], + "setFlags": ["for_torvanian_gas"], + "followUp": { "id": "for_gas_price_01", "inDays": 270 } + }, + "no": { + "label": { "en": "Buy on the open market", "fr": "Acheter sur le marché libre" }, + "effects": [ + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 365 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 365 }, + { "stat": "stability", "delta": -1, "days": 40 }, + { "stat": "softPower", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "for_gas_price_01", + "category": "foreign", + "doc": "letter", + "sender": "min_industry", + "followUpOnly": true, + "title": { "en": "Torvania reopens the gas price", "fr": "La Torvanie rouvre le prix du gaz" }, + "body": { + "en": "Torvania invokes the clause: the price is revised upward by a third, and the revision comes with a request for a favourable vote on the League's tariff on Marenia. The alternative suppliers are farther away and dearer.", + "fr": "La Torvanie invoque la clause : le prix est révisé à la hausse d'un tiers, et cette révision s'accompagne d'une demande de vote favorable sur le tarif de la Ligue contre la Marenie. Les autres fournisseurs sont plus loin et plus chers." + }, + "yes": { + "label": { "en": "Accept the new price", "fr": "Accepter le nouveau prix" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Find other suppliers", "fr": "Chercher d'autres fournisseurs" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "economy", "delta": -2, "days": 60 }, + { "stat": "inflation", "delta": 0.4, "bias": true, "days": 180 }, + { "stat": "softPower", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "for_ambassador_patron_01", + "category": "foreign", + "doc": "memo", + "sender": "press_office", + "conditions": { "dayMin": 110 }, + "title": { "en": "Ambassadorships for party donors", "fr": "Des ambassades pour les donateurs du parti" }, + "body": { + "en": "Three major embassies have fallen vacant, and three loyal donors have suddenly discovered a vocation for diplomacy. The foreign ministry's career staff has noted that they speak neither the language nor the dossiers.", + "fr": "Trois grandes ambassades sont devenues vacantes, et trois généreux donateurs ont soudain découvert une vocation diplomatique. Les diplomates de carrière font remarquer qu'ils ne maîtrisent ni la langue ni les dossiers." + }, + "yes": { + "label": { "en": "Appoint the donors", "fr": "Nommer les donateurs" }, + "effects": [ + { "stat": "stability", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "foreignAffairs", "delta": -3, "days": 120 } + ] + }, + "no": { + "label": { "en": "Appoint career diplomats", "fr": "Nommer des diplomates" }, + "effects": [ + { "sector": "foreignAffairs", "delta": 3, "days": 120 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "for_river_dam_01", + "category": "foreign", + "doc": "report", + "sender": "min_environment", + "conditions": { "dayMin": 120 }, + "title": { "en": "Kessaly plans a dam on the Sorn", "fr": "La Kessalie prévoit un barrage sur la Sorn" }, + "body": { + "en": "Kessaly will build a hydroelectric dam upstream on the Sorn and offers a fifth of the power in return for our blessing. Downstream farmers fear a dry summer, and our engineers admit the arrangement is, on paper, very good.", + "fr": "La Kessalie construira un barrage hydroélectrique en amont de la Sorn et offre un cinquième de l'électricité en échange de notre aval. Les agriculteurs en aval redoutent un été sec, et nos ingénieurs reconnaissent que l'arrangement est, sur le papier, très bon." + }, + "yes": { + "label": { "en": "Accept the dam", "fr": "Accepter le barrage" }, + "effects": [ + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Demand arbitration", "fr": "Exiger un arbitrage" }, + "effects": [ + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "hardPower", "delta": 1, "days": 60 } + ], + "followUp": { "id": "for_river_ruling_01", "inDays": 120 } + } + }, + { + "id": "for_river_ruling_01", + "category": "foreign", + "doc": "report", + "sender": "min_foreign", + "followUpOnly": true, + "title": { "en": "The Court of Lorient rules on the Sorn", "fr": "La Cour de Lorient tranche pour la Sorn" }, + "body": { + "en": "The Court of Lorient has ruled: the dam may be built, but with a minimum flow and a joint inspection. It is half a victory. Kessaly accepts it, and the farmers' union calls it half a defeat.", + "fr": "La Cour de Lorient a tranché : le barrage peut être construit, mais avec un débit minimal et une inspection conjointe. C'est une demi-victoire. La Kessalie l'accepte, et le syndicat agricole y voit une demi-défaite." + }, + "yes": { + "label": { "en": "Accept the ruling", "fr": "Accepter l'arrêt" }, + "effects": [ + { "stat": "softPower", "delta": 3, "days": 90 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Contest the ruling", "fr": "Contester l'arrêt" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "hardPower", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "for_summit_boycott_01", + "category": "foreign", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "dayMin": 150 }, + "title": { "en": "The Southern Union summit in Marenia", "fr": "Le sommet de l'Union du Sud en Marenie" }, + "body": { + "en": "The Southern Union holds its annual summit in Marenia, whose government has just jailed three opposition leaders. Attending means trade talks, and photographs. Boycotting means a speech, and an empty chair.", + "fr": "L'Union du Sud tient son sommet annuel en Marenie, dont le gouvernement vient d'emprisonner trois chefs de l'opposition. Y aller, c'est des discussions commerciales, et des photographies. Boycotter, c'est un discours, et une chaise vide." + }, + "yes": { + "label": { "en": "Attend the summit", "fr": "Se rendre au sommet" }, + "effects": [ + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Boycott it", "fr": "Boycotter le sommet" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "softPower", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "for_diaspora_01", + "category": "foreign", + "doc": "petition", + "sender": "min_foreign", + "conditions": { "dayMin": 180 }, + "title": { "en": "The diaspora asks for a vote", "fr": "La diaspora réclame le droit de vote" }, + "body": { + "en": "Four hundred thousand Valdorians live in Torvania and send money home. They now ask for votes and a few seats in the assembly. Domestic parties are split between gratitude and arithmetic.", + "fr": "Quatre cent mille Valdoriens vivent en Torvanie et envoient de l'argent au pays. Ils réclament désormais le droit de vote et quelques sièges à l'assemblée. Les partis du pays hésitent entre reconnaissance et arithmétique." + }, + "yes": { + "label": { "en": "Grant external votes", "fr": "Accorder le vote à l'étranger" }, + "effects": [ + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "stability", "delta": -2, "days": 60 }, + { "sector": "foreignAffairs", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Refuse the request", "fr": "Refuser la demande" }, + "effects": [ + { "stat": "softPower", "delta": -1, "days": 30 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "for_pact_safeguard_01", + "category": "foreign", + "doc": "letter", + "sender": "min_industry", + "conditions": { "flags": ["trade_pact"], "dayMin": 200 }, + "title": { "en": "Farmers hit by pact imports", "fr": "Les agriculteurs frappés par les importations" }, + "body": { + "en": "Since the regional pact took effect, cheap imports have pushed grain prices down by a fifth. The farmers' federation asks us to trigger the safeguard clause and put tariffs back on the most exposed products.", + "fr": "Depuis l'entrée en vigueur du pacte régional, les importations bon marché ont fait baisser le prix des céréales d'un cinquième. La fédération des agriculteurs demande d'activer la clause de sauvegarde et de rétablir des droits sur les produits les plus exposés." + }, + "yes": { + "label": { "en": "Trigger the safeguard", "fr": "Activer la clause de sauvegarde" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "unrest", "delta": -2, "days": 40 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Stay the course", "fr": "Tenir le cap" }, + "effects": [ + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "for_olympic_bid_01", + "category": "foreign", + "doc": "letter", + "sender": "min_culture", + "conditions": { "dayMin": 200 }, + "title": { "en": "Bid for the Regional Games", "fr": "Candidater aux Jeux régionaux" }, + "body": { + "en": "The capital could host the Regional Games in nine years. A stadium, a village and a metro extension would arrive with them, and a bill that grows with every committee meeting. Nobody has ever declined the opening ceremony.", + "fr": "La capitale pourrait accueillir les Jeux régionaux dans neuf ans. Un stade, un village et un prolongement du métro viendraient avec, ainsi qu'une facture qui grossit à chaque réunion de comité. Personne n'a jamais renoncé à la cérémonie d'ouverture." + }, + "yes": { + "label": { "en": "Submit the bid", "fr": "Déposer la candidature" }, + "effects": [ + { "oneOff": 0.3 }, + { "extraSpending": 0.05 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "sector": "culture", "delta": 2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Stay out of the race", "fr": "Ne pas se présenter" }, + "effects": [ + { "stat": "softPower", "delta": -1, "days": 30 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "oneOff": -0.05 } + ] + } + }, + { + "id": "for_dev_aid_01", + "category": "foreign", + "doc": "memo", + "sender": "min_foreign", + "conditions": { "dayMin": 220, "max": { "debt": 65 } }, + "title": { "en": "Development aid pledge", "fr": "Engagement d'aide au développement" }, + "body": { + "en": "The Concord of Nations asks every middle-income member to pledge a share of national income to poorer states. Valdoria has so far pledged enthusiasm. The finance ministry calls that a sustainable policy.", + "fr": "Le Concord des nations demande à chaque membre à revenu intermédiaire de consacrer une part du revenu national aux États plus pauvres. La Valdorie a jusqu'ici promis de l'enthousiasme. Le ministère des Finances y voit une politique soutenable." + }, + "yes": { + "label": { "en": "Make the pledge", "fr": "Prendre l'engagement" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "softPower", "delta": 4, "days": 120 }, + { "sector": "foreignAffairs", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Offer enthusiasm only", "fr": "Offrir de l'enthousiasme" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "for_seasonal_workers_01", + "category": "foreign", + "doc": "memo", + "sender": "min_labour", + "conditions": { "dayMin": 240, "max": { "unemployment": 7.5 } }, + "title": { "en": "Raise the seasonal worker quota", "fr": "Relever le quota de saisonniers" }, + "body": { + "en": "Orchards and fish-processing plants cannot find hands at harvest time, and Marenian seasonal workers are willing to come. The quota has not changed in twelve years, and the unions reply that wages have not either.", + "fr": "Vergers et conserveries de poisson ne trouvent pas de bras à la récolte, et des saisonniers marenais sont prêts à venir. Le quota n'a pas bougé depuis douze ans, et les syndicats répondent que les salaires non plus." + }, + "yes": { + "label": { "en": "Raise the quota", "fr": "Relever le quota" }, + "effects": [ + { "stat": "growth", "delta": 0.1, "bias": true, "days": 365 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "softPower", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the quota", "fr": "Maintenir le quota" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "for_bank_loan_01", + "category": "foreign", + "doc": "letter", + "sender": "min_finance", + "conditions": { "dayMin": 260, "min": { "debt": 62 } }, + "title": { "en": "A loan from the Meridian Bank", "fr": "Un prêt de la Banque Méridienne" }, + "body": { + "en": "The Meridian Development Bank offers a loan worth nearly one percent of GDP at a rate the markets cannot match. The conditions are in an annex of forty pages that the bank's officials describe as technical.", + "fr": "La Banque méridienne de développement offre un prêt équivalant à près d'un pour cent du PIB, à un taux que les marchés ne peuvent égaler. Les conditions figurent dans une annexe de quarante pages que les responsables de la banque qualifient de techniques." + }, + "yes": { + "label": { "en": "Take the loan", "fr": "Prendre le prêt" }, + "effects": [ + { "oneOff": -0.8 }, + { "extraSpending": 0.1 }, + { "stat": "economy", "delta": 1, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 40 } + ], + "followUp": { "id": "for_bank_conditions_01", "inDays": 120 } + }, + "no": { + "label": { "en": "Borrow on the market", "fr": "Emprunter sur le marché" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "softPower", "delta": -1, "days": 30 }, + { "extraSpending": 0.05 } + ] + } + }, + { + "id": "for_bank_conditions_01", + "category": "foreign", + "doc": "report", + "sender": "min_finance", + "followUpOnly": true, + "title": { "en": "The Meridian Bank wants its reforms", "fr": "La Banque méridienne veut ses réformes" }, + "body": { + "en": "The second tranche of the loan depends on page 31 of the annex: an end to the fuel subsidy and a freeze on civil service hiring. The bank is polite about it. Its tone does not alter the content.", + "fr": "Le versement de la seconde tranche dépend de la page 31 de l'annexe : fin de la subvention aux carburants et gel des embauches dans la fonction publique. La banque reste courtoise. Son ton ne change rien au contenu." + }, + "yes": { + "label": { "en": "Accept the conditions", "fr": "Accepter les conditions" }, + "effects": [ + { "extraSpending": -0.2 }, + { "stat": "opinion", "delta": -3, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 60 }, + { "stat": "economy", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Forgo the second tranche", "fr": "Renoncer à la seconde tranche" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "for_steel_dumping_01", + "category": "foreign", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 280, "max": { "q:industry": 60 } }, + "title": { "en": "Steel dumping from Draveth", "fr": "Du dumping d'acier venu de Draveth" }, + "body": { + "en": "Draveth steel is entering the port at prices below its own production cost, and the two mills at Karsholm are laying off staff. Anti-dumping duties would protect them and raise the price of every bridge, pipe and tractor.", + "fr": "L'acier de Draveth entre au port à des prix inférieurs à son coût de production, et les deux aciéries de Karsholm licencient. Des droits antidumping les protégeraient et renchériraient chaque pont, chaque tuyau et chaque tracteur." + }, + "yes": { + "label": { "en": "Impose duties", "fr": "Imposer des droits" }, + "effects": [ + { "sector": "industry", "delta": 3, "days": 150 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Leave the port open", "fr": "Laisser le port ouvert" }, + "effects": [ + { "sector": "industry", "delta": -3, "days": 150 }, + { "stat": "inflation", "delta": -0.2, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + } + }, + { + "id": "for_embassy_spy_01", + "category": "foreign", + "doc": "report", + "sender": "intelligence", + "conditions": { "dayMin": 300 }, + "title": { "en": "Three diplomats caught photographing archives", "fr": "Des diplomates photographient nos archives" }, + "body": { + "en": "Three attachés from the Marenian embassy were found photographing the defence archives, in a building that has no business with trade. Intelligence has the pictures, and so does the Marenian ambassador, now.", + "fr": "Trois attachés de l'ambassade de Marenie ont été surpris à photographier les archives de la défense, dans un bâtiment qui n'a rien à voir avec le commerce. Le renseignement a les clichés, et l'ambassadeur marenais aussi, désormais." + }, + "yes": { + "label": { "en": "Expel the three diplomats", "fr": "Expulser les trois diplomates" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "order", "delta": 1, "days": 30 }, + { "stat": "softPower", "delta": -2, "days": 60 } + ], + "followUp": { "id": "for_spy_retaliation_01", "inDays": 45 } + }, + "no": { + "label": { "en": "Protest in private", "fr": "Protester discrètement" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "softPower", "delta": 1, "days": 30 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "for_spy_retaliation_01", + "category": "foreign", + "doc": "telegram", + "sender": "min_foreign", + "followUpOnly": true, + "title": { "en": "Marenia expels six of our diplomats", "fr": "La Marenie expulse six de nos diplomates" }, + "body": { + "en": "MARENIA EXPELS SIX VALDORIAN DIPLOMATS WITHIN FORTY-EIGHT HOURS AND SUSPENDS SEASONAL VISAS. NOTE DESCRIBES OUR ACTION AS UNFRIENDLY AND DISPROPORTIONATE. STOP.", + "fr": "LA MARENIE EXPULSE SIX DIPLOMATES VALDORIENS SOUS QUARANTE-HUIT HEURES ET SUSPEND LES VISAS SAISONNIERS. LA NOTE QUALIFIE NOTRE ACTION D'INAMICALE ET DISPROPORTIONNEE. STOP." + }, + "yes": { + "label": { "en": "Expel six of theirs", "fr": "Expulser six des leurs" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Leave it there", "fr": "En rester là" }, "effects": [ { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "hardPower", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "for_court_lorient_01", + "category": "foreign", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "dayMin": 320 }, + "title": { "en": "Accept the Court of Lorient", "fr": "Reconnaître la Cour de Lorient" }, + "body": { + "en": "The Court of Lorient settles disputes between states, and its jurisdiction is binding only on those who accept it. Accepting would make our border cases arguable in law. It would also make them losable in law.", + "fr": "La Cour de Lorient règle les différends entre États, et sa compétence ne lie que ceux qui l'acceptent. L'accepter rendrait nos litiges frontaliers plaidables en droit. Cela les rendrait aussi perdables en droit." + }, + "yes": { + "label": { "en": "Accept its jurisdiction", "fr": "Reconnaître sa compétence" }, + "effects": [ + { "stat": "softPower", "delta": 4, "days": 90 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep our freedom of action", "fr": "Garder notre liberté d'action" }, + "effects": [ + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "for_tv_channel_01", + "category": "foreign", + "doc": "memo", + "sender": "press_office", + "conditions": { "dayMin": 350, "max": { "softPower": 52 } }, + "title": { "en": "An international news channel", "fr": "Une chaîne d'information internationale" }, + "body": { + "en": "The press office proposes a Valdorian news channel in English and French, broadcast to the neighbouring countries. It would give us a voice abroad, and a very long first report on the national bridge programme.", + "fr": "Le service de presse propose une chaîne d'information valdorienne en anglais et en français, diffusée dans les pays voisins. Elle nous donnerait une voix à l'étranger, et un très long premier reportage sur le programme national des ponts." + }, + "yes": { + "label": { "en": "Launch the channel", "fr": "Lancer la chaîne" }, + "effects": [ + { "extraSpending": 0.15 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "sector": "culture", "delta": 1, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Stay off the air", "fr": "Rester hors antenne" }, + "effects": [ + { "stat": "softPower", "delta": -1, "days": 30 }, + { "extraSpending": -0.05 }, + { "stat": "opinion", "delta": -1, "days": 20 } + ] + } + }, + { + "id": "for_mediation_01", + "category": "foreign", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "dayMin": 370, "min": { "softPower": 48 } }, + "title": { "en": "Mediate between Torvania and Marenia", "fr": "Médier entre la Torvanie et la Marenie" }, + "body": { + "en": "Torvania and Marenia are quarrelling over fishing zones in the Gulf, and both have independently asked Valdoria to host talks. Mediation brings prestige if it works and an embarrassment shared by three capitals if it does not.", + "fr": "La Torvanie et la Marenie se disputent des zones de pêche dans le Golfe, et toutes deux ont demandé séparément à la Valdorie d'accueillir des pourparlers. La médiation apporte du prestige en cas de succès et un embarras partagé entre trois capitales en cas d'échec." + }, + "yes": { + "label": { "en": "Host the talks", "fr": "Accueillir les pourparlers" }, + "effects": [ + { "oneOff": 0.05 }, + { "stat": "softPower", "delta": 4, "days": 90 }, + { "sector": "foreignAffairs", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Stay out of it", "fr": "Rester à l'écart" }, + "effects": [{ "stat": "softPower", "delta": -2, "days": 60 }, { "stat": "stability", "delta": 1, "days": 30 }] + } + }, + { + "id": "for_detained_engineers_01", + "category": "foreign", + "doc": "telegram", + "sender": "min_foreign", + "conditions": { "dayMin": 330 }, + "title": { "en": "Two engineers held in Belmora", "fr": "Deux ingénieurs retenus en Belmora" }, + "body": { + "en": "TWO VALDORIAN ENGINEERS ARRESTED BY BELMORAN BORDER POLICE ON A BRIDGE SITE NEAR ASHGATE. CHARGE IS ESPIONAGE. BELMORA OFFERS TO WAIVE TRIAL AGAINST A FINE. STOP.", + "fr": "DEUX INGENIEURS VALDORIENS ARRETES PAR LA POLICE DES FRONTIERES BELMORANE SUR UN CHANTIER DE PONT PRES D'ASHGATE. L'ACCUSATION EST L'ESPIONNAGE. BELMORA PROPOSE D'ABANDONNER LE PROCES CONTRE UNE AMENDE. STOP." + }, + "yes": { + "label": { "en": "Pay the fine quietly", "fr": "Payer l'amende discrètement" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "softPower", "delta": -1, "days": 40 } + ], + "followUp": { "id": "for_engineers_repeat_01", "inDays": 90 } + }, + "no": { + "label": { "en": "Insist on a fair trial", "fr": "Exiger un procès équitable" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "softPower", "delta": 1, "days": 40 }, + { "stat": "hardPower", "delta": 1, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "for_engineers_repeat_01", + "category": "foreign", + "doc": "telegram", + "sender": "min_foreign", + "followUpOnly": true, + "title": { "en": "Belmora detains two more Valdorians", "fr": "Belmora retient deux Valdoriens de plus" }, + "body": { + "en": "BELMORAN POLICE HAVE DETAINED TWO VALDORIAN TEACHERS ON A CULTURAL VISIT. SAME CHARGE, SAME OFFER, HIGHER FINE. THE PRESS ASKS WHETHER THIS IS A PRICE LIST. STOP.", + "fr": "LA POLICE BELMORANE A INTERPELLE DEUX ENSEIGNANTS VALDORIENS EN VISITE CULTURELLE. MEME ACCUSATION, MEME OFFRE, AMENDE PLUS ELEVEE. LA PRESSE DEMANDE S'IL S'AGIT D'UN TARIF. STOP." + }, + "yes": { + "label": { "en": "Close the border to trade", "fr": "Fermer la frontière au commerce" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "economy", "delta": -2, "days": 60 }, + { "stat": "hardPower", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Pay again", "fr": "Payer de nouveau" }, + "effects": [ + { "oneOff": 0.15 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "softPower", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "for_port_stake_01", + "category": "foreign", + "doc": "letter", + "sender": "min_finance", + "conditions": { "dayMin": 390 }, + "title": { "en": "Draveth fund wants a stake in the port", "fr": "Un fonds de Draveth veut une part du port" }, + "body": { + "en": "A state investment fund from Draveth offers a large sum for 40 percent of the Port Halden terminal operator, with a promise of new cranes. The dockers ask who will answer when something breaks.", + "fr": "Un fonds d'investissement d'État de Draveth offre une forte somme pour 40 % de l'exploitant du terminal de Port Halden, avec la promesse de nouvelles grues. Les dockers demandent à qui s'adresser quand quelque chose tombera en panne." + }, + "yes": { + "label": { "en": "Sell the stake", "fr": "Vendre la participation" }, + "effects": [ + { "oneOff": -0.6 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "sector": "infrastructure", "delta": 2, "days": 150 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ], + "setFlags": ["for_port_sold"], + "followUp": { "id": "for_port_dispute_01", "inDays": 180 } + }, + "no": { + "label": { "en": "Keep the port national", "fr": "Garder le port national" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "extraSpending": 0.05 } + ] + } + }, + { + "id": "for_port_dispute_01", + "category": "foreign", + "doc": "petition", + "sender": "union", + "followUpOnly": true, + "title": { "en": "Dockers against the new operator", "fr": "Les dockers contre le nouvel exploitant" }, + "body": { + "en": "The new cranes have arrived, and so has a roster that cuts night shifts and bonuses. The dockers' union has gathered signatures and asks for job guarantees in the operator's concession, which Draveth says is a question of contract.", + "fr": "Les nouvelles grues sont arrivées, et avec elles un planning qui supprime équipes de nuit et primes. Le syndicat des dockers a réuni des signatures et réclame des garanties d'emploi dans la concession, ce que Draveth tient pour une question de contrat." + }, + "yes": { + "label": { "en": "Impose job guarantees", "fr": "Imposer des garanties d'emploi" }, + "effects": [ + { "stat": "unrest", "delta": -3, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Back the operator", "fr": "Soutenir l'exploitant" }, + "effects": [ + { "stat": "unrest", "delta": 3, "days": 60 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 }, + { "stat": "order", "delta": -1, "days": 30 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "for_league_accession_01", + "category": "foreign", + "doc": "memo", + "sender": "min_foreign", + "conditions": { "dayMin": 420, "min": { "softPower": 45 } }, + "title": { "en": "Apply for full League membership", "fr": "Demander l'adhésion pleine à la Ligue" }, + "body": { + "en": "Valdoria has sat at the Northern League's table as an associate for years, never quite with a chair of its own. Full membership would bring markets and protection, along with a fair number of annexes.", + "fr": "La Valdorie siège depuis des années à la table de la Ligue du Nord comme associée, sans jamais avoir tout à fait une chaise à elle. L'adhésion pleine apporterait marchés et protection, avec un bon nombre d'annexes." + }, + "yes": { + "label": { "en": "Submit the application", "fr": "Déposer la demande" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "sector": "foreignAffairs", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ], + "setFlags": ["for_league_applied"], + "followUp": { "id": "for_accession_terms_01", "inDays": 150 } + }, + "no": { + "label": { "en": "Stay an associate", "fr": "Rester associée" }, + "effects": [ + { "stat": "softPower", "delta": -1, "days": 40 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "for_accession_terms_01", + "category": "foreign", + "doc": "report", + "sender": "min_foreign", + "followUpOnly": true, + "title": { "en": "The League's accession terms", "fr": "Les conditions d'adhésion de la Ligue" }, + "body": { + "en": "The League has laid out its terms: a customs union within three years, a seat on the defence council and the harmonisation of three hundred pages of regulation. Torvania describes this as generous. Valdoria's lawyers describe it as exhaustive.", + "fr": "La Ligue a présenté ses conditions : union douanière sous trois ans, siège au conseil de défense et harmonisation de trois cents pages de réglementation. La Torvanie les trouve généreuses. Les juristes de la Valdorie les trouvent exhaustives." + }, + "yes": { + "label": { "en": "Accept the terms", "fr": "Accepter les conditions" }, + "effects": [ + { "stat": "economy", "delta": 2, "bias": true, "days": 730 }, + { "stat": "softPower", "delta": 4, "days": 90 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -3, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Walk away", "fr": "Se retirer des négociations" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "for_exiles_01", + "category": "foreign", + "doc": "letter", + "sender": "intelligence", + "conditions": { "dayMin": 450 }, + "title": { "en": "A Belmoran opposition leader asks for asylum", "fr": "Un opposant belmoran demande l'asile" }, + "body": { + "en": "A Belmoran opposition leader has turned up at the embassy asking for asylum, with a briefcase and a very recognisable face. Granting it will please human rights groups and displease a neighbour with a long frontier.", + "fr": "Un opposant belmoran s'est présenté à l'ambassade pour demander l'asile, avec une mallette et un visage très reconnaissable. L'accorder réjouira les défenseurs des droits humains et déplaira à un voisin dont la frontière est longue." + }, + "yes": { + "label": { "en": "Grant asylum", "fr": "Accorder l'asile" }, + "effects": [ + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 90 } + ], + "followUp": { "id": "for_extradition_01", "inDays": 60 } + }, + "no": { + "label": { "en": "Refuse asylum", "fr": "Refuser l'asile" }, + "effects": [ + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "for_extradition_01", + "category": "foreign", + "doc": "telegram", + "sender": "min_foreign", + "followUpOnly": true, + "title": { "en": "Belmora demands extradition", "fr": "Belmora exige l'extradition" }, + "body": { + "en": "BELMORA DEMANDS EXTRADITION OF THE EXILE AND CLOSES THE ASHGATE PASS TO TRADE UNTIL WE REPLY. TWO HUNDRED TRUCKS ALREADY QUEUED. HUMAN RIGHTS GROUPS WATCH THE SAME ROAD. STOP.", + "fr": "BELMORA EXIGE L'EXTRADITION DE L'EXILE ET FERME LE COL D'ASHGATE AU COMMERCE JUSQU'A NOTRE REPONSE. DEUX CENTS CAMIONS DEJA EN FILE. LES DEFENSEURS DES DROITS HUMAINS SURVEILLENT LA MEME ROUTE. STOP." + }, + "yes": { + "label": { "en": "Extradite the exile", "fr": "Extrader l'exilé" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 60 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "economy", "delta": 1, "days": 40 }, + { "stat": "opinion", "delta": -2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Protect the exile", "fr": "Protéger l'exilé" }, + "effects": [ + { "stat": "economy", "delta": -2, "days": 60 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "for_migrant_quota_01", + "category": "foreign", + "doc": "memo", + "sender": "min_labour", + "conditions": { "dayMin": 470, "max": { "unemployment": 7 } }, + "title": { "en": "Foreign nurses and care workers", "fr": "Infirmiers et aides-soignants étrangers" }, + "body": { + "en": "Hospitals and care homes cannot fill their night shifts, and recruitment agencies abroad have thousands of qualified nurses. A visa quota would fill the wards, and would also fill the opposition's speeches.", + "fr": "Hôpitaux et maisons de retraite n'arrivent pas à pourvoir leurs équipes de nuit, et des agences de recrutement à l'étranger ont des milliers d'infirmiers qualifiés. Un quota de visas remplirait les services et aussi les discours de l'opposition." + }, + "yes": { + "label": { "en": "Open a visa quota", "fr": "Ouvrir un quota de visas" }, + "effects": [ + { "sector": "health", "delta": 3, "days": 150 }, + { "stat": "growth", "delta": 0.1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -1, "days": 30 }, { "stat": "softPower", "delta": 1, "days": 30 } ] + }, + "no": { + "label": { "en": "Train our own instead", "fr": "Former nos propres soignants" }, + "effects": [ + { "sector": "health", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "extraSpending": 0.05 } + ] + } + }, + { + "id": "for_free_zone_01", + "category": "foreign", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 480, "max": { "q:industry": 55 } }, + "title": { "en": "A free zone on the Marenian border", "fr": "Une zone franche à la frontière marenaise" }, + "body": { + "en": "A special zone near the Marenian border would drop customs and corporate tax for exporters. Factories would come, along with a quiet debate on whether the tax the zone forgoes is the cost of the jobs or just the cost.", + "fr": "Une zone spéciale près de la frontière marenaise supprimerait douane et impôt sur les sociétés pour les exportateurs. Des usines viendraient, avec un débat discret pour savoir si l'impôt abandonné est le prix des emplois ou simplement un prix." + }, + "yes": { + "label": { "en": "Create the zone", "fr": "Créer la zone" }, + "effects": [ + { "revenue": "other", "delta": -0.1 }, + { "stat": "growth", "delta": 0.2, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 365 }, + { "sector": "industry", "delta": 2, "days": 150 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep one tax regime", "fr": "Garder un régime fiscal unique" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "for_neutrality_01", + "category": "foreign", + "doc": "memo", + "sender": "min_foreign", + "conditions": { "dayMin": 500 }, + "title": { "en": "Enshrine permanent neutrality", "fr": "Inscrire la neutralité permanente" }, + "body": { + "en": "A constitutional amendment would declare Valdoria permanently neutral, outside every alliance. It would calm the neighbours and cut the army's ambitions, which the army may find persuasive in unexpected ways.", + "fr": "Un amendement constitutionnel déclarerait la Valdorie neutre à titre permanent, hors de toute alliance. Cela calmerait les voisins et réduirait les ambitions de l'armée, que celle-ci pourrait trouver convaincant de manière inattendue." + }, + "yes": { + "label": { "en": "Declare neutrality", "fr": "Proclamer la neutralité" }, + "effects": [ + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "hardPower", "delta": -2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "armyLoyalty", "delta": -2, "days": 60 }, + { "extraSpending": -0.1 } + ] + }, + "no": { + "label": { "en": "Keep our options open", "fr": "Garder toutes nos options" }, + "effects": [ + { "stat": "softPower", "delta": -1, "days": 30 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "for_asylum_backlog_01", + "category": "foreign", + "doc": "report", + "sender": "min_justice", + "conditions": { "dayMin": 520 }, + "title": { "en": "Fourteen thousand pending asylum claims", "fr": "Quatorze mille demandes d'asile en attente" }, + "body": { + "en": "The asylum office is fourteen thousand cases behind, and applicants wait three years in hostels that the budget calls temporary. Hiring judges is slow and costs money. Tightening admissions is quick and costs reputation.", + "fr": "L'office de l'asile a quatorze mille dossiers de retard, et les demandeurs attendent trois ans dans des foyers que le budget qualifie de provisoires. Recruter des juges est lent et coûte de l'argent. Durcir les admissions est rapide et coûte en réputation." + }, + "yes": { + "label": { "en": "Hire judges and fast-track", "fr": "Recruter des juges, accélérer" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "justice", "delta": 2, "days": 120 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Tighten admissions", "fr": "Durcir les admissions" }, + "effects": [ + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "civilRights", "delta": -1 }, + { "extraSpending": -0.05 } + ] + } + }, + { + "id": "for_transit_fee_01", + "category": "foreign", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 540 }, + "title": { "en": "The gas transit fee", "fr": "Le tarif de transit du gaz" }, + "body": { + "en": "Torvanian gas flows through Valdorian pipes on its way to Marenia, at a transit fee set eighteen years ago. Raising it would fill the budget and irritate two customers at once. Leaving it alone would keep the peace and a rotting pipeline.", + "fr": "Le gaz torvanien traverse nos tuyaux en route vers la Marenie, moyennant un tarif de transit fixé il y a dix-huit ans. Le relever remplirait les caisses et irriterait deux clients à la fois. Ne rien changer préserverait la paix et un gazoduc qui rouille." + }, + "yes": { + "label": { "en": "Raise the fee", "fr": "Relever le tarif" }, + "effects": [ + { "revenue": "other", "delta": 0.3 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 40 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave the fee unchanged", "fr": "Laisser le tarif inchangé" }, + "effects": [ + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "infrastructure", "delta": -1, "days": 150 } + ] + } + }, + { + "id": "for_power_cable_01", + "category": "foreign", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 560, "max": { "q:infrastructure": 55 } }, + "title": { "en": "An undersea power cable to Marenia", "fr": "Un câble électrique sous-marin vers la Marenie" }, + "body": { + "en": "A cable across the Gulf would let us import cheap hydro power from Marenia and sell back our surplus in the afternoon. It would also let Marenia cut the supply on a cold night, which its lawyers describe as unlikely.", + "fr": "Un câble à travers le Golfe nous permettrait d'importer de l'hydroélectricité bon marché de la Marenie et de lui revendre nos excédents l'après-midi. Il lui permettrait aussi de couper l'approvisionnement par une nuit froide, ce que ses juristes jugent improbable." + }, + "yes": { + "label": { "en": "Lay the cable", "fr": "Poser le câble" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "inflation", "delta": -0.2, "bias": true, "days": 365 }, + { "sector": "infrastructure", "delta": 3, "days": 200 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Stay self-sufficient", "fr": "Rester autosuffisant" }, + "effects": [ + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 }, + { "stat": "stability", "delta": -1, "days": 40 }, + { "oneOff": -0.05 } + ] + } + }, + { + "id": "for_press_expel_01", + "category": "foreign", + "doc": "memo", + "sender": "press_office", + "conditions": { "dayMin": 580, "max": { "civilRights": 62 } }, + "title": { "en": "A foreign correspondent's accreditation", "fr": "L'accréditation d'un correspondant étranger" }, + "body": { + "en": "A correspondent for a Kessalian daily has published a report on housing contracts in the capital, with names. The Interior Ministry asks to withdraw the accreditation. The report is accurate, which is the difficulty.", + "fr": "Le correspondant d'un quotidien kessalien a publié un reportage sur des marchés de logements dans la capitale, avec des noms. Le ministère de l'Intérieur demande de retirer l'accréditation. Le reportage est exact, et c'est bien là la difficulté." + }, + "yes": { + "label": { "en": "Withdraw the accreditation", "fr": "Retirer l'accréditation" }, + "effects": [ + { "stat": "civilRights", "delta": -3 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave the press alone", "fr": "Laisser la presse tranquille" }, + "effects": [ + { "stat": "civilRights", "delta": 1 }, + { "stat": "softPower", "delta": 1, "days": 40 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "for_film_festival_01", + "category": "foreign", + "doc": "letter", + "sender": "min_culture", + "conditions": { "dayMin": 600 }, + "title": { "en": "A festival with a banned film", "fr": "Un festival et un film interdit" }, + "body": { + "en": "The regional film festival would like to settle in Port Halden, with one condition: it will screen a documentary about the border war, banned here for two years. The army has seen the trailer.", + "fr": "Le festival régional du film voudrait s'installer à Port Halden, avec une condition : projeter un documentaire sur la guerre frontalière, interdit ici depuis deux ans. L'armée a vu la bande-annonce." + }, + "yes": { + "label": { "en": "Host the festival", "fr": "Accueillir le festival" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "softPower", "delta": 3, "days": 60 }, + { "sector": "culture", "delta": 3, "days": 150 }, + { "stat": "armyLoyalty", "delta": -2, "days": 40 }, + { "stat": "civilRights", "delta": 1 } + ] + }, + "no": { + "label": { "en": "Decline, the film stays banned", "fr": "Refuser, le film reste interdit" }, + "effects": [ + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "armyLoyalty", "delta": 1, "days": 30 }, + { "sector": "culture", "delta": -2, "days": 90 }, + { "stat": "civilRights", "delta": -1 } + ] + } + }, + { + "id": "for_border_survey_01", + "category": "foreign", + "doc": "memo", + "sender": "min_foreign", + "conditions": { "dayMin": 620 }, + "title": { "en": "A joint survey of the Ashgate border", "fr": "Un relevé conjoint de la frontière d'Ashgate" }, + "body": { + "en": "Belmora claims a strip of mountain meadow near Ashgate and proposes a joint survey commission. A survey would give us maps and a dialogue, and no promises about what the maps would show.", + "fr": "Belmora revendique une bande de prairie de montagne près d'Ashgate et propose une commission de relevé conjointe. Un relevé nous donnerait des cartes et un dialogue, sans promesse sur ce que montreraient les cartes." + }, + "yes": { + "label": { "en": "Join the survey", "fr": "Participer au relevé" }, + "effects": [ + { "stat": "softPower", "delta": 3, "days": 60 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "foreignAffairs", "delta": 2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Reject the claim", "fr": "Rejeter la revendication" }, + "effects": [ + { "stat": "hardPower", "delta": 1, "bias": true, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "softPower", "delta": -2, "days": 60 } + ] + } + }, + { + "id": "for_farmland_01", + "category": "foreign", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 680, "max": { "growth": 2.5 } }, + "title": { "en": "Foreign funds buying farmland", "fr": "Des fonds étrangers rachètent des terres" }, + "body": { + "en": "Foreign investors have offered to buy 60,000 hectares of farmland at generous prices and promised irrigation, silos and a cooperative with local farmers. The country's maps of who owns what would have to be redrawn.", + "fr": "Des investisseurs étrangers proposent d'acheter 60 000 hectares de terres agricoles à prix généreux et promettent irrigation, silos et coopérative avec les agriculteurs locaux. Les cartes du pays, avec leurs propriétaires, seraient à redessiner." + }, + "yes": { + "label": { "en": "Allow the purchases", "fr": "Autoriser les achats" }, + "effects": [ + { "oneOff": -0.4 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "growth", "delta": 0.15, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -3, "days": 40 } + ] + }, + "no": { + "label": { "en": "Ban sales to foreigners", "fr": "Interdire la vente aux étrangers" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "softPower", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "for_rail_link_01", + "category": "foreign", + "doc": "memo", + "sender": "min_transport", + "conditions": { "dayMin": 700 }, + "title": { "en": "A rail link to Marenia", "fr": "Une liaison ferroviaire vers la Marenie" }, + "body": { + "en": "A railway to Marenia would cut the journey from nine hours to three. Draveth offers to finance it with a loan, provided its contractors build it, its rolling stock runs on it and its engineers write the maintenance manual.", + "fr": "Une ligne vers la Marenie ramènerait le trajet de neuf heures à trois. Draveth propose de la financer par un prêt, à condition que ses entreprises la construisent, que son matériel y circule et que ses ingénieurs rédigent le manuel d'entretien." + }, + "yes": { + "label": { "en": "Build the line", "fr": "Construire la ligne" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "transport", "delta": 4, "days": 200 }, + { "stat": "growth", "delta": 0.2, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Upgrade the old line", "fr": "Moderniser l'ancienne ligne" }, + "effects": [ + { "sector": "transport", "delta": -1, "days": 90 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "oneOff": -0.05 } + ] + } + }, + { + "id": "for_telecom_01", + "category": "foreign", + "doc": "memo", + "sender": "intelligence", + "conditions": { "dayMin": 740 }, + "title": { "en": "Draveth equipment for the 5G network", "fr": "Du matériel de Draveth pour la 5G" }, + "body": { + "en": "A Draveth manufacturer offers to build the national 5G network for half the price of its rivals. Intelligence reports that the cheapest equipment is also the best listened to, and prefers a different supplier.", + "fr": "Un équipementier de Draveth propose de bâtir le réseau 5G national pour moitié moins cher que ses concurrents. Le renseignement note que le matériel le moins cher est aussi le mieux écouté, et préfère un autre fournisseur." + }, + "yes": { + "label": { "en": "Buy the cheap equipment", "fr": "Acheter le matériel bon marché" }, + "effects": [ + { "extraSpending": -0.1 }, + { "sector": "infrastructure", "delta": 3, "days": 150 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "hardPower", "delta": -1, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -1 } + ] + }, + "no": { + "label": { "en": "Choose a trusted supplier", "fr": "Choisir un fournisseur sûr" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "sector": "infrastructure", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "for_consul_scandal_01", + "category": "foreign", + "doc": "memo", + "sender": "min_foreign", + "conditions": { "dayMin": 780 }, + "title": { "en": "An honorary consul sells passports", "fr": "Un consul honoraire vend des passeports" }, + "body": { + "en": "The honorary consul in a distant port has been selling diplomatic passports at three thousand a piece, a sum that proves a certain commercial talent. Two foreign newspapers have the list, and so does the ministry.", + "fr": "Le consul honoraire d'un port lointain a vendu des passeports diplomatiques trois mille pièces, somme qui prouve un certain talent commercial. Deux journaux étrangers détiennent la liste, et le ministère aussi." + }, + "yes": { + "label": { "en": "Recall and prosecute", "fr": "Rappeler et poursuivre" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "softPower", "delta": -1, "days": 40 }, + { "sector": "justice", "delta": 1, "days": 90 }, + { "sector": "foreignAffairs", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Quietly retire the consul", "fr": "Mettre le consul à la retraite" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "softPower", "delta": 1, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "for_emission_pledge_01", + "category": "foreign", + "doc": "letter", + "sender": "min_environment", + "conditions": { "dayMin": 820, "max": { "q:environment": 55 } }, + "title": { "en": "An emission pledge to the Concord", "fr": "Un engagement d'émissions auprès du Concord" }, + "body": { + "en": "The Concord of Nations asks each member to commit to a cut in emissions by the end of the decade. Valdoria could join the leaders for the price of a few coal plants, or join the laggards for the price of its reputation.", + "fr": "Le Concord des nations demande à chaque membre de s'engager à réduire ses émissions d'ici la fin de la décennie. La Valdorie pourrait rejoindre les premiers au prix de quelques centrales à charbon, ou les retardataires au prix de sa réputation." + }, + "yes": { + "label": { "en": "Make the pledge", "fr": "Prendre l'engagement" }, + "effects": [ + { "extraSpending": 0.15 }, + { "sector": "environment", "delta": 3, "days": 200 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Decline to commit", "fr": "Refuser de s'engager" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 90 }, + { "sector": "environment", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "for_refugee_camp_01", + "category": "foreign", + "doc": "report", + "sender": "min_interior", + "conditions": { "dayMin": 860, "min": { "unrest": 30 } }, + "title": { "en": "A camp of twenty thousand at the border", "fr": "Un camp de vingt mille personnes à la frontière" }, + "body": { + "en": "Twenty thousand refugees from Belmora have been living for months in a camp below Ashgate managed by the Concord. Winter is coming, the local town is worn out and the Interior Ministry proposes either moving them inland or leaving the camp where it is.", + "fr": "Vingt mille réfugiés venus de Belmora vivent depuis des mois dans un camp sous Ashgate géré par le Concord. L'hiver approche, la ville voisine est à bout et le ministère de l'Intérieur propose soit de les installer à l'intérieur du pays, soit de laisser le camp où il est." + }, + "yes": { + "label": { "en": "Resettle them inland", "fr": "Les installer dans le pays" }, + "effects": [ + { "oneOff": 0.3 }, + { "extraSpending": 0.05 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "stat": "opinion", "delta": -3, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Leave the camp in place", "fr": "Laisser le camp sur place" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "order", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "for_secondary_sanctions_01", + "category": "foreign", + "doc": "letter", + "sender": "min_finance", + "conditions": { "dayMin": 950, "min": { "economy": 50 } }, + "title": { "en": "Secondary sanctions on three banks", "fr": "Des sanctions secondaires contre trois banques" }, + "body": { + "en": "Three Valdorian banks process payments for trade with a state the Northern League has sanctioned. The Torvanian Treasury has warned of secondary sanctions on them. The banks say the payments are legal, which is the problem.", + "fr": "Trois banques valdoriennes traitent des paiements liés au commerce avec un État sanctionné par la Ligue du Nord. Le Trésor torvanien les a menacées de sanctions secondaires. Les banques disent que ces paiements sont légaux, et c'est bien le problème." + }, + "yes": { + "label": { "en": "Order the payments frozen", "fr": "Faire geler les paiements" }, + "effects": [ + { "stat": "economy", "delta": -2, "days": 60 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Defend the banks", "fr": "Défendre les banques" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 40 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 90 } + ] + } + }, + { + "id": "for_league_vote_01", + "category": "foreign", + "doc": "memo", + "sender": "min_foreign", + "conditions": { "dayMin": 1000 }, + "title": { "en": "The League votes on a tariff", "fr": "La Ligue vote sur un droit de douane" }, + "body": { + "en": "Torvania has put a tariff on Marenian goods to the League's council. Our vote could tip the result. Voting yes would please the League and annoy a trading partner. Abstaining would please the partner and no one else.", + "fr": "La Torvanie a soumis au conseil de la Ligue un droit de douane sur les produits marenais. Notre voix pourrait faire basculer le résultat. Voter oui plairait à la Ligue et fâcherait un partenaire commercial. S'abstenir plairait au partenaire et à personne d'autre." + }, + "yes": { + "label": { "en": "Vote for the tariff", "fr": "Voter pour le droit de douane" }, + "effects": [ + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Abstain", "fr": "S'abstenir" }, + "effects": [ + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "for_info_war_01", + "category": "foreign", + "doc": "report", + "sender": "intelligence", + "conditions": { "dayMin": 1020, "max": { "opinion": 58 } }, + "title": { "en": "Foreign fake accounts push rumours", "fr": "Des faux comptes étrangers répandent des rumeurs" }, + "body": { + "en": "Eleven thousand accounts run from abroad are spreading rumours that the Treasury is about to freeze deposits. Intelligence can take them down and counter the claims, and notes that the same tools could be pointed at domestic critics.", + "fr": "Onze mille comptes pilotés depuis l'étranger répandent la rumeur d'un gel imminent des dépôts par le Trésor. Le renseignement peut les faire fermer et contrer les allégations, et rappelle que les mêmes outils pourraient viser des critiques de l'intérieur." + }, + "yes": { + "label": { "en": "Take them down", "fr": "Faire fermer les comptes" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": 1, "days": 40 }, + { "stat": "civilRights", "delta": -1 } + ] + }, + "no": { + "label": { "en": "Leave it to fact-checkers", "fr": "S'en remettre aux vérificateurs" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 40 }, + { "stat": "civilRights", "delta": 1 } + ] + } + }, + { + "id": "for_marenia_election_01", + "category": "foreign", + "doc": "letter", + "sender": "intelligence", + "conditions": { "dayMin": 1050 }, + "title": { "en": "An election next door", "fr": "Une élection chez le voisin" }, + "body": { + "en": "Marenia votes in six weeks. The incumbent is friendly to our trade and trailing in the polls, and Intelligence knows three ways to help without leaving fingerprints. Intelligence also knows that fingerprints are found afterwards.", + "fr": "La Marenie vote dans six semaines. Le sortant est favorable à nos échanges et distancé dans les sondages, et le renseignement connaît trois façons de l'aider sans laisser d'empreintes. Il sait aussi que les empreintes se retrouvent après coup." + }, + "yes": { + "label": { "en": "Quietly back the incumbent", "fr": "Soutenir discrètement le sortant" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "hardPower", "delta": 1, "bias": true, "days": 90 } + ] + }, + "no": { + "label": { "en": "Stay out of it", "fr": "Rester à l'écart" }, + "effects": [{ "stat": "softPower", "delta": 2, "days": 60 }, { "stat": "economy", "delta": -1, "days": 60 }] + } + }, + { + "id": "for_famine_aid_01", + "category": "foreign", + "doc": "telegram", + "sender": "min_foreign", + "conditions": { "dayMin": 1100 }, + "title": { "en": "Famine in distant Qaren", "fr": "Famine dans le lointain Qaren" }, + "body": { + "en": "FAMINE DECLARED IN QAREN. CONCORD ASKS MEMBERS FOR GRAIN. OUR FARMERS HAVE A SURPLUS AND LOW PRICES. STATE COULD BUY 200,000 TONNES AND SHIP THEM. STOP.", + "fr": "FAMINE DECLAREE AU QAREN. LE CONCORD DEMANDE DU GRAIN AUX MEMBRES. NOS AGRICULTEURS ONT UN EXCEDENT ET DES PRIX BAS. L'ETAT POURRAIT ACHETER 200 000 TONNES ET LES EXPEDIER. STOP." + }, + "yes": { + "label": { "en": "Buy and ship the grain", "fr": "Acheter et expédier le grain" }, + "effects": [ + { "oneOff": 0.25 }, + { "stat": "softPower", "delta": 4, "days": 90 }, + { "stat": "unrest", "delta": -1, "days": 40 }, + { "sector": "foreignAffairs", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Send a token donation", "fr": "Envoyer un don symbolique" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 20 }, + { "oneOff": -0.05 } + ] + } + }, + { + "id": "for_diplomat_immunity_01", + "category": "foreign", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 1120 }, + "title": { "en": "A diplomat's car kills a cyclist", "fr": "Une voiture diplomatique tue un cycliste" }, + "body": { + "en": "A car driven by a Torvanian diplomat has killed a cyclist on the river road. Torvania invokes diplomatic immunity and offers compensation. The widow wants a trial, and the cyclists' association has already announced a ride.", + "fr": "Une voiture conduite par un diplomate torvanien a tué un cycliste sur la route de la rivière. La Torvanie invoque l'immunité diplomatique et propose une indemnisation. La veuve veut un procès, et l'association des cyclistes a déjà annoncé un rassemblement." + }, + "yes": { + "label": { "en": "Demand a waiver of immunity", "fr": "Exiger la levée de l'immunité" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "sector": "justice", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Respect the immunity", "fr": "Respecter l'immunité" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "for_trade_war_01", + "category": "foreign", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 1150 }, + "title": { "en": "Kessaly taxes our steel and cheese", "fr": "La Kessalie taxe notre acier et nos fromages" }, + "body": { + "en": "Kessaly has put a 20 percent tariff on our steel and cheese, citing hygiene. The cheese is excellent. The steel is cheaper than Kessaly's own. Retaliating would hurt both countries, and negotiating would hurt our pride.", + "fr": "La Kessalie a imposé un droit de 20 % sur notre acier et nos fromages, au nom de l'hygiène. Le fromage est excellent. L'acier est moins cher que celui de la Kessalie. Riposter ferait mal aux deux pays, négocier ferait mal à notre amour-propre." + }, + "yes": { + "label": { "en": "Retaliate with tariffs", "fr": "Riposter par des droits" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "hardPower", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Negotiate a settlement", "fr": "Négocier un compromis" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "sector": "industry", "delta": -2, "days": 120 } + ] + } + }, + { + "id": "for_artefacts_01", + "category": "foreign", + "doc": "letter", + "sender": "min_culture", + "conditions": { "dayMin": 1200 }, + "title": { "en": "Return the Belmoran temple artefacts", "fr": "Restituer les objets des temples belmorans" }, + "body": { + "en": "The National Museum holds four hundred artefacts removed from Belmoran temples a century ago. Belmora has asked for their return, and the museum's curators have produced six reasons why the question is complicated.", + "fr": "Le Musée national détient quatre cents objets enlevés aux temples belmorans il y a un siècle. Belmora en demande la restitution, et les conservateurs du musée ont produit six raisons pour lesquelles la question est compliquée." + }, + "yes": { + "label": { "en": "Return the artefacts", "fr": "Restituer les objets" }, + "effects": [ + { "sector": "culture", "delta": -1, "days": 90 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "stat": "hardPower", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep them in the museum", "fr": "Les garder au musée" }, + "effects": [ + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "culture", "delta": 1, "days": 90 } + ] + } + }, + { + "id": "for_open_borders_01", + "category": "foreign", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 1250 }, + "title": { "en": "A passport-free zone with the Southern Union", "fr": "Une zone sans passeport avec l'Union du Sud" }, + "body": { + "en": "The Southern Union offers a common travel area with no passport control between members. Trade and commuting would grow, and so would the work of a border police that has never been generous with staff.", + "fr": "L'Union du Sud propose un espace commun de circulation sans contrôle de passeport entre ses membres. Échanges et trajets quotidiens augmenteraient, et avec eux le travail d'une police des frontières jamais très bien dotée en personnel." + }, + "yes": { + "label": { "en": "Join the travel area", "fr": "Rejoindre l'espace commun" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "growth", "delta": 0.1, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "stat": "order", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep border controls", "fr": "Maintenir les contrôles" }, + "effects": [ + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "order", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "extraSpending": 0.05 } + ] + } + }, + { + "id": "for_golden_visa_01", + "category": "foreign", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 1300 }, + "title": { "en": "Residency for investors", "fr": "Un titre de séjour pour investisseurs" }, + "body": { + "en": "Finance proposes granting residency to foreigners who buy property or bonds worth above a threshold. Money would come in at once. So would the question of why the capital's apartments are always empty.", + "fr": "Les Finances proposent d'accorder un titre de séjour aux étrangers qui achètent immobilier ou obligations au-delà d'un seuil. L'argent entrerait aussitôt. La question aussi : pourquoi les appartements de la capitale sont-ils toujours vides ?" + }, + "yes": { + "label": { "en": "Launch the scheme", "fr": "Lancer le dispositif" }, + "effects": [ + { "oneOff": -0.5 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "sector": "housing", "delta": -1, "days": 150 } + ] + }, + "no": { + "label": { "en": "Refuse the idea", "fr": "Refuser l'idée" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "housing", "delta": 1, "days": 90 } + ] + } + }, + { + "id": "for_diplomats_pay_01", + "category": "foreign", + "doc": "memo", + "sender": "min_foreign", + "conditions": { "dayMin": 1350, "max": { "q:foreignAffairs": 50 } }, + "title": { "en": "The foreign service is bleeding talent", "fr": "La diplomatie perd ses meilleurs éléments" }, + "body": { + "en": "Our best junior diplomats are leaving for consultancies, and the ministry is left with those who love a posting more than a salary. A pay and training plan would cost little and would be noticed first by the other ministries.", + "fr": "Nos meilleurs jeunes diplomates partent pour des cabinets de conseil, et le ministère garde ceux qui aiment les postes plus que les salaires. Un plan de rémunération et de formation coûterait peu et serait remarqué d'abord par les autres ministères." + }, + "yes": { + "label": { "en": "Fund the pay plan", "fr": "Financer le plan de rémunération" }, + "effects": [ + { "extraSpending": 0.15 }, + { "sector": "foreignAffairs", "delta": 5, "days": 200 }, + { "stat": "softPower", "delta": 2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Leave pay as it is", "fr": "Ne rien changer à la paye" }, + "effects": [ + { "sector": "foreignAffairs", "delta": -3, "days": 120 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "extraSpending": -0.05 } + ] + } + }, + { + "id": "for_rare_metals_01", + "category": "foreign", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 1400, "max": { "growth": 2.2 } }, + "title": { "en": "Rare metals under Ashgate", "fr": "Des métaux rares sous Ashgate" }, + "body": { + "en": "A mining company from Draveth wants the right to extract rare metals in the Ashgate range, offering a large signing fee and a few hundred jobs in a poor region. The valleys downstream would receive the tailings.", + "fr": "Une société minière de Draveth veut le droit d'extraire des métaux rares dans le massif d'Ashgate, et propose une grosse prime de signature et quelques centaines d'emplois dans une région pauvre. Les vallées en aval recevraient les résidus." + }, + "yes": { + "label": { "en": "Grant the concession", "fr": "Accorder la concession" }, + "effects": [ + { "oneOff": -0.7 }, + { "stat": "growth", "delta": 0.3, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 365 }, + { "sector": "environment", "delta": -3, "days": 200 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Refuse the mine", "fr": "Refuser la mine" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "sector": "environment", "delta": 1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "softPower", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "for_ngo_law_01", + "category": "foreign", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 1250, "min": { "unrest": 30 } }, + "title": { "en": "Foreign money and the NGOs", "fr": "L'argent étranger et les ONG" }, + "body": { + "en": "The Interior Ministry proposes that any association receiving more than a fifth of its funding from abroad must register as such and print the fact on every leaflet. Transparency, say its authors; stigma, say the associations.", + "fr": "Le ministère de l'Intérieur propose que toute association recevant plus d'un cinquième de ses fonds de l'étranger s'inscrive comme telle et l'imprime sur chaque tract. Transparence, disent ses auteurs ; stigmatisation, disent les associations." + }, + "yes": { + "label": { "en": "Adopt the register", "fr": "Adopter le registre" }, + "effects": [ + { "stat": "civilRights", "delta": -3 }, + { "stat": "order", "delta": 1, "days": 40 }, + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "stability", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Shelve the bill", "fr": "Mettre le projet de côté" }, + "effects": [ + { "stat": "civilRights", "delta": 1 }, + { "stat": "softPower", "delta": 1, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "for_expat_tax_01", + "category": "foreign", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 1300, "min": { "deficit": 2 } }, + "title": { "en": "A levy on remittances", "fr": "Une taxe sur les transferts d'argent" }, + "body": { + "en": "Valdorians abroad send home each year as much as the country spends on education. A small levy on those transfers would bring in real money, paid by people with no vote in the matter and many relatives who do.", + "fr": "Les Valdoriens de l'étranger envoient chaque année au pays autant que ce que celui-ci dépense pour l'éducation. Une petite taxe sur ces transferts rapporterait beaucoup, payée par des gens sans voix au chapitre et de nombreux proches qui en ont une." + }, + "yes": { + "label": { "en": "Levy the transfers", "fr": "Taxer les transferts" }, + "effects": [ + { "revenue": "other", "delta": 0.25 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "softPower", "delta": -1, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Leave remittances untaxed", "fr": "Laisser les transferts intacts" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "for_border_fence_01", + "category": "foreign", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 950 }, + "title": { "en": "A customs fence on the Marenian frontier", "fr": "Une clôture douanière à la frontière marenaise" }, + "body": { + "en": "Fuel smuggled across the Marenian frontier costs the budget more than the fence would, according to Customs. Border farmers argue that the fence would cut their fields in two and their friendships with it.", + "fr": "Le carburant passé en contrebande à la frontière marenaise coûte au budget plus que la clôture, selon les Douanes. Les agriculteurs frontaliers font valoir qu'elle couperait leurs champs en deux, et leurs amitiés avec." + }, + "yes": { + "label": { "en": "Build the fence", "fr": "Construire la clôture" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "order", "delta": 2, "days": 90 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 40 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave the frontier open", "fr": "Laisser la frontière ouverte" }, + "effects": [ + { "stat": "order", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "for_ship_register_01", + "category": "foreign", + "doc": "memo", + "sender": "min_transport", + "conditions": { "dayMin": 1000 }, + "title": { "en": "An open register for foreign ships", "fr": "Un registre ouvert aux navires étrangers" }, + "body": { + "en": "Opening the national ship register to foreign owners would earn registration fees and fill the port offices with shipping lawyers. It would also put our flag on vessels whose inspections happen mostly in other people's ports.", + "fr": "Ouvrir le registre naval national aux armateurs étrangers rapporterait des droits d'immatriculation et remplirait les bureaux du port d'avocats maritimes. Notre pavillon flotterait aussi sur des navires dont les inspections ont lieu surtout dans les ports des autres." + }, + "yes": { + "label": { "en": "Open the register", "fr": "Ouvrir le registre" }, + "effects": [ + { "revenue": "other", "delta": 0.2 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "sector": "transport", "delta": 1, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the register national", "fr": "Garder le registre national" }, + "effects": [ + { "stat": "softPower", "delta": 1, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "sector": "transport", "delta": -1, "days": 90 } + ] } } ] diff --git a/web/data/cards/health.json b/web/data/cards/health.json index 2d9a01d..c17189a 100644 --- a/web/data/cards/health.json +++ b/web/data/cards/health.json @@ -1,6 +1,9 @@ [ { - "id": "hlt_hospital_funds_01", "category": "health", "doc": "memo", "sender": "min_health", + "id": "hlt_hospital_funds_01", + "category": "health", + "doc": "memo", + "sender": "min_health", "title": { "en": "Emergency hospital funding", "fr": "Financement d'urgence des hôpitaux" }, "body": { "en": "Regional hospitals report overflowing wards and unpaid suppliers. The Health Ministry requests an emergency payment to keep them open.", @@ -16,14 +19,14 @@ }, "no": { "label": { "en": "Refuse", "fr": "Refuser" }, - "effects": [ - { "sector": "health", "delta": -3, "days": 120 }, - { "stat": "opinion", "delta": -2, "days": 30 } - ] + "effects": [{ "sector": "health", "delta": -3, "days": 120 }, { "stat": "opinion", "delta": -2, "days": 30 }] } }, { - "id": "hlt_vaccination_01", "category": "health", "doc": "report", "sender": "min_health", + "id": "hlt_vaccination_01", + "category": "health", + "doc": "report", + "sender": "min_health", "title": { "en": "National vaccination drive", "fr": "Campagne nationale de vaccination" }, "body": { "en": "Immunisation rates have fallen below the safe threshold. A national campaign would cost little compared to an outbreak.", @@ -37,13 +40,13 @@ { "stat": "opinion", "delta": 1, "days": 30 } ] }, - "no": { - "label": { "en": "Postpone", "fr": "Reporter" }, - "effects": [{ "sector": "health", "delta": -2, "days": 120 }] - } + "no": { "label": { "en": "Postpone", "fr": "Reporter" }, "effects": [{ "sector": "health", "delta": -2, "days": 120 }] } }, { - "id": "hlt_private_clinics_01", "category": "health", "doc": "memo", "sender": "min_health", + "id": "hlt_private_clinics_01", + "category": "health", + "doc": "memo", + "sender": "min_health", "title": { "en": "Open health care to private clinics?", "fr": "Ouvrir la santé aux cliniques privées ?" }, "body": { "en": "Allowing private clinics into the public system would save money and shorten some queues. Doctors fear a two-tier system.", @@ -64,7 +67,10 @@ } }, { - "id": "hlt_foreign_doctors_01", "category": "health", "doc": "letter", "sender": "min_health", + "id": "hlt_foreign_doctors_01", + "category": "health", + "doc": "letter", + "sender": "min_health", "title": { "en": "Recruit doctors from abroad", "fr": "Recruter des médecins à l'étranger" }, "body": { "en": "Rural clinics have no doctors. The ministry proposes a fast-track visa for foreign physicians. Some will object to the arrivals.", @@ -79,9 +85,1517 @@ { "stat": "opinion", "delta": -1, "days": 30 } ] }, + "no": { "label": { "en": "Decline", "fr": "Décliner" }, "effects": [{ "sector": "health", "delta": -3, "days": 120 }] } + }, + { + "id": "hlt_nurse_pay_01", + "category": "health", + "doc": "petition", + "sender": "union", + "title": { "en": "Nurses ask for a night-shift premium", "fr": "Les infirmières réclament une prime de nuit" }, + "body": { + "en": "Ward nurses are covering double shifts and hundreds have left for private clinics. The union asks for a night premium before the winter rota collapses.", + "fr": "Les infirmières enchaînent les doubles gardes et des centaines sont parties vers le privé. Le syndicat réclame une prime de nuit avant l'effondrement des plannings d'hiver." + }, + "yes": { + "label": { "en": "Grant the premium", "fr": "Accorder la prime" }, + "effects": [ + { "extraSpending": 0.4 }, + { "sector": "health", "delta": 5, "days": 120 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ], + "setFlags": ["hlt_nurse_deal"], + "followUp": { "id": "hlt_nurse_pay_02", "inDays": 100 } + }, "no": { - "label": { "en": "Decline", "fr": "Décliner" }, - "effects": [{ "sector": "health", "delta": -3, "days": 120 }] + "label": { "en": "Hold the line", "fr": "Tenir bon" }, + "effects": [ + { "sector": "health", "delta": -4, "days": 120 }, + { "stat": "unrest", "delta": 3, "days": 30 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "hlt_nurse_pay_02", + "category": "health", + "doc": "memo", + "sender": "min_health", + "followUpOnly": true, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 100 }, + "title": { "en": "Hospital doctors want the same premium", "fr": "Les médecins hospitaliers veulent la même prime" }, + "body": { + "en": "Word of the nurses' premium has reached the doctors' lounge, and the hospital physicians' association now wants parity. The ministry warns of a ladder of claims running through every grade.", + "fr": "La prime des infirmières a gagné la salle de garde, et l'association des médecins hospitaliers exige la parité. Le ministère redoute une escalade de revendications dans tous les grades." + }, + "yes": { + "label": { "en": "Extend the premium", "fr": "Étendre la prime" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "health", "delta": 3, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Limit it to nurses", "fr": "La réserver aux infirmières" }, + "effects": [ + { "sector": "health", "delta": -2, "days": 90 }, + { "stat": "unrest", "delta": 2, "days": 30 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "hlt_generics_01", + "category": "health", + "doc": "memo", + "sender": "min_health", + "title": { "en": "Generic drugs by default", "fr": "Génériques par défaut" }, + "body": { + "en": "Pharmacists could be required to hand out the cheaper generic unless a doctor objects. The drug bill would fall; brand makers and a few patient groups call it a gamble with prescriptions.", + "fr": "Les pharmaciens pourraient être tenus de délivrer le générique, sauf avis contraire du médecin. La facture des médicaments baisserait ; les fabricants de marques et quelques associations de patients y voient un pari sur les ordonnances." + }, + "yes": { + "label": { "en": "Make generics the default", "fr": "Imposer le générique" }, + "effects": [ + { "extraSpending": -0.3 }, + { "sector": "health", "delta": 1, "days": 90 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave prescriptions alone", "fr": "Laisser les ordonnances" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "hlt_tobacco_tax_01", + "category": "health", + "doc": "memo", + "sender": "min_finance", + "title": { "en": "Raise the tobacco tax", "fr": "Relever la taxe sur le tabac" }, + "body": { + "en": "A steep rise in the cigarette excise would bring in revenue and, the Treasury argues, push some smokers to quit. Border towns expect a boom in smuggling and kiosk owners a slump in sales.", + "fr": "Une forte hausse des droits sur les cigarettes rapporterait des recettes et, selon le Trésor, ferait arrêter certains fumeurs. Les villes-frontières craignent la contrebande, les buralistes une chute des ventes." + }, + "yes": { + "label": { "en": "Raise the tax", "fr": "Relever la taxe" }, + "effects": [ + { "revenue": "other", "delta": 0.3 }, + { "sector": "health", "delta": 2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the current rate", "fr": "Garder le taux actuel" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "sector": "health", "delta": -1, "bias": true, "days": 365 }] + } + }, + { + "id": "hlt_ambulances_01", + "category": "health", + "doc": "letter", + "sender": "mayor", + "title": { "en": "The capital's ambulances are failing", "fr": "Les ambulances de la capitale tombent en panne" }, + "body": { + "en": "Nine of the capital's thirty ambulances broke down last month, one with a patient aboard. The mayor asks the state to pay for a new fleet and a proper dispatch centre.", + "fr": "Neuf des trente ambulances de la capitale sont tombées en panne le mois dernier, dont une avec un patient à bord. Le maire demande à l'État de financer une flotte neuve et un vrai centre de régulation." + }, + "yes": { + "label": { "en": "Fund a new fleet", "fr": "Financer une flotte neuve" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "health", "delta": 3, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Tell the city to manage", "fr": "Renvoyer la ville à ses moyens" }, + "effects": [{ "sector": "health", "delta": -2, "days": 120 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "hlt_mobile_clinics_01", + "category": "health", + "doc": "memo", + "sender": "min_health", + "title": { "en": "Mobile clinics for the uplands", "fr": "Des dispensaires mobiles pour les hauteurs" }, + "body": { + "en": "Villages in the eastern uplands are two hours from the nearest doctor. Six converted buses could tour them weekly with a nurse, a dentist and a basic lab.", + "fr": "Les villages des hauts plateaux de l'Est sont à deux heures du premier médecin. Six bus aménagés pourraient les parcourir chaque semaine avec une infirmière, un dentiste et un laboratoire de base." + }, + "yes": { + "label": { "en": "Send the buses", "fr": "Envoyer les bus" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "health", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ], + "followUp": { "id": "hlt_mobile_clinics_02", "inDays": 150 } + }, + "no": { + "label": { "en": "Not a priority", "fr": "Pas une priorité" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "stat": "unrest", "delta": 1, "days": 40 }] + } + }, + { + "id": "hlt_mobile_clinics_02", + "category": "health", + "doc": "report", + "sender": "min_health", + "followUpOnly": true, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 150 }, + "title": { "en": "The mobile clinics: a year in review", "fr": "Les dispensaires mobiles : premier bilan" }, + "body": { + "en": "The buses have treated 40,000 patients, and uplands mayors want permanent health posts. The Treasury notes that each consultation costs three times the capital's average.", + "fr": "Les bus ont soigné 40 000 patients, et les maires des hauteurs réclament des postes de santé fixes. Le Trésor relève que chaque consultation coûte trois fois la moyenne de la capitale." + }, + "yes": { + "label": { "en": "Build permanent posts", "fr": "Bâtir des postes fixes" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "health", "delta": 2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Wind the service down", "fr": "Mettre fin au service" }, + "effects": [ + { "extraSpending": -0.2 }, + { "sector": "health", "delta": -2, "days": 120 }, + { "stat": "opinion", "delta": -3, "days": 40 } + ] + } + }, + { + "id": "hlt_waiting_lists_01", + "category": "health", + "doc": "report", + "sender": "min_health", + "conditions": { "min": { }, "max": { "q:health": 54 }, "flags": [], "notFlags": [] }, + "title": { "en": "Waiting lists keep growing", "fr": "Les listes d'attente s'allongent" }, + "body": { + "en": "The median wait for a hip operation has reached eleven months, and cancer scans are slipping past safe limits. The ministry asks for a one-off budget to buy operating hours in private theatres.", + "fr": "L'attente médiane pour une prothèse de hanche atteint onze mois et les scanners du cancer dépassent les délais de sécurité. Le ministère demande une enveloppe unique pour acheter des heures de bloc au privé." + }, + "yes": { + "label": { "en": "Buy extra operating hours", "fr": "Acheter des heures de bloc" }, + "effects": [ + { "oneOff": 0.5 }, + { "sector": "health", "delta": 4, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Let hospitals cope", "fr": "Laisser les hôpitaux gérer" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 30 }, + { "sector": "health", "delta": -2, "days": 90 } + ] + } + }, + { + "id": "hlt_school_nurses_01", + "category": "health", + "doc": "memo", + "sender": "min_education", + "title": { "en": "A nurse in every school", "fr": "Une infirmière dans chaque école" }, + "body": { + "en": "Teachers hand out plasters, manage allergies and spot neglect with no training. The Education Ministry proposes a school nurse for every cluster of schools, jointly funded with Health.", + "fr": "Les enseignants posent des pansements, gèrent les allergies et repèrent la négligence sans formation. Le ministère de l'Éducation propose une infirmière pour chaque groupe d'écoles, cofinancée avec la Santé." + }, + "yes": { + "label": { "en": "Hire the school nurses", "fr": "Recruter les infirmières" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "health", "delta": 2, "days": 180 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave first aid to teachers", "fr": "Garder le secourisme en classe" }, + "effects": [{ "sector": "education", "delta": -1, "days": 90 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "hlt_mental_health_01", + "category": "health", + "doc": "report", + "sender": "min_health", + "title": { "en": "Mental health helpline", "fr": "Une ligne d'écoute en santé mentale" }, + "body": { + "en": "Referrals for anxiety and depression have doubled in three years while the country has one psychiatrist per 25,000 people. A free helpline and community counsellors would be a modest first step.", + "fr": "Les consultations pour anxiété et dépression ont doublé en trois ans, alors que le pays compte un psychiatre pour 25 000 habitants. Une ligne d'écoute gratuite et des conseillers de proximité seraient un premier pas modeste." + }, + "yes": { + "label": { "en": "Fund the helpline", "fr": "Financer la ligne d'écoute" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "health", "delta": 3, "days": 120 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Leave it to the families", "fr": "S'en remettre aux familles" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "stat": "unrest", "delta": 1, "days": 40 }] + } + }, + { + "id": "hlt_sugar_tax_01", + "category": "health", + "doc": "memo", + "sender": "min_health", + "title": { "en": "A levy on sugary drinks", "fr": "Une taxe sur les boissons sucrées" }, + "body": { + "en": "One child in five is overweight and the soft-drink industry spends more on advertising than the ministry does on prevention. A levy per litre would raise money, and bottlers say it would cost jobs.", + "fr": "Un enfant sur cinq est en surpoids et les fabricants de sodas dépensent en publicité plus que le ministère en prévention. Une taxe au litre rapporterait des recettes ; les embouteilleurs y voient des emplois menacés." + }, + "yes": { + "label": { "en": "Introduce the levy", "fr": "Instaurer la taxe" }, + "effects": [ + { "revenue": "other", "delta": 0.2 }, + { "sector": "health", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Ask for voluntary targets", "fr": "Viser des engagements volontaires" }, + "effects": [{ "sector": "health", "delta": -1, "days": 90 }, { "stat": "economy", "delta": 1, "days": 60 }] + } + }, + { + "id": "hlt_pharma_trials_01", + "category": "health", + "doc": "letter", + "sender": "min_industry", + "title": { "en": "Drug makers offer a research centre", "fr": "Les laboratoires offrent un centre de recherche" }, + "body": { + "en": "Two pharmaceutical groups will build a clinical-trials centre in Valdoria and pay a licence fee, if patents on their top drugs run five years longer. Patient groups see higher prices ahead.", + "fr": "Deux groupes pharmaceutiques bâtiraient un centre d'essais cliniques en Valdorie et verseraient une redevance, si les brevets de leurs principaux médicaments étaient prolongés de cinq ans. Les associations de patients craignent des prix plus élevés." + }, + "yes": { + "label": { "en": "Extend the patents", "fr": "Prolonger les brevets" }, + "effects": [ + { "oneOff": -0.4 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "sector": "research", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Refuse the bargain", "fr": "Refuser le marché" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "sector": "research", "delta": -1, "days": 90 }] + } + }, + { + "id": "hlt_flu_wave_01", + "category": "health", + "doc": "telegram", + "sender": "min_health", + "once": false, + "cooldownDays": 540, + "title": { "en": "Flu wave floods the wards", "fr": "Une vague de grippe submerge les services" }, + "body": { + "en": "FLU WAVE FILLS EMERGENCY WARDS IN EVERY REGION. HOSPITALS ASK FOR TEMPORARY BEDS AND EXTRA STAFF. DECISION NEEDED THIS WEEK. STOP.", + "fr": "VAGUE DE GRIPPE REMPLIT LES URGENCES DANS TOUTES LES REGIONS. LES HOPITAUX DEMANDENT LITS TEMPORAIRES ET RENFORTS. DECISION ATTENDUE CETTE SEMAINE. STOP." + }, + "yes": { + "label": { "en": "Open temporary beds", "fr": "Ouvrir des lits temporaires" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "health", "delta": 4, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Let hospitals triage", "fr": "Laisser les hôpitaux trier" }, + "effects": [ + { "sector": "health", "delta": -4, "days": 90 }, + { "stat": "unrest", "delta": 2, "days": 30 }, + { "stat": "opinion", "delta": -2, "days": 30 } + ] + } + }, + { + "id": "hlt_health_records_01", + "category": "health", + "doc": "memo", + "sender": "min_health", + "title": { "en": "One digital file per patient", "fr": "Un dossier numérique par patient" }, + "body": { + "en": "Patients carry paper folders from clinic to clinic, and tests are repeated for lack of results. A national electronic record would save money in time and raise questions about who can read it.", + "fr": "Les patients trimbalent des dossiers papier d'un cabinet à l'autre et les examens sont refaits faute de résultats. Un dossier électronique national ferait des économies à terme et pose la question de qui peut le lire." + }, + "yes": { + "label": { "en": "Build the national record", "fr": "Bâtir le dossier national" }, + "effects": [ + { "oneOff": 0.4 }, + { "extraSpending": -0.2 }, + { "sector": "health", "delta": 2, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -1, "days": 60 } + ], + "followUp": { "id": "hlt_health_records_02", "inDays": 200 } + }, + "no": { + "label": { "en": "Keep paper files", "fr": "Garder les dossiers papier" }, + "effects": [{ "sector": "health", "delta": -1, "days": 120 }, { "stat": "civilRights", "delta": 1, "days": 60 }] + } + }, + { + "id": "hlt_health_records_02", + "category": "health", + "doc": "report", + "sender": "intelligence", + "followUpOnly": true, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 200 }, + "title": { "en": "The patient database leaked", "fr": "La base de données des patients a fuité" }, + "body": { + "en": "A contractor's server exposed the records of 200,000 patients, some of them officials, for six days. The press has the files; intelligence advises an immediate audit.", + "fr": "Le serveur d'un sous-traitant a laissé les dossiers de 200 000 patients, dont des responsables publics, en accès libre pendant six jours. La presse détient les fichiers ; le renseignement conseille un audit immédiat." + }, + "yes": { + "label": { "en": "Audit and compensate", "fr": "Auditer et indemniser" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "civilRights", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Blame the contractor", "fr": "Accuser le prestataire" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "civilRights", "delta": -2, "days": 90 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "hlt_alcohol_hours_01", + "category": "health", + "doc": "memo", + "sender": "min_interior", + "title": { "en": "Curfew on late alcohol sales", "fr": "Couvre-feu sur la vente d'alcool" }, + "body": { + "en": "Police say a third of weekend assaults and most road accidents involve alcohol bought after midnight. Bar owners and the tourist board say the curfew would hit the capital's nightlife.", + "fr": "La police estime qu'un tiers des agressions du week-end et la plupart des accidents de la route impliquent de l'alcool acheté après minuit. Cafetiers et office du tourisme redoutent un coup porté à la vie nocturne de la capitale." + }, + "yes": { + "label": { "en": "Ban sales after midnight", "fr": "Interdire la vente après minuit" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 90 }, + { "sector": "health", "delta": 1, "days": 120 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep the hours", "fr": "Maintenir les horaires" }, + "effects": [ + { "stat": "order", "delta": -1, "days": 60 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "hlt_organ_donation_01", + "category": "health", + "doc": "letter", + "sender": "min_health", + "title": { "en": "Presumed consent for organ donation", "fr": "Don d'organes : consentement présumé" }, + "body": { + "en": "Over four thousand people wait for a transplant, and most are never offered one. An opt-out register would raise donations; some churches and civil-liberties groups object to presuming consent.", + "fr": "Plus de quatre mille personnes attendent une greffe et la plupart n'en recevront pas. Un registre de refus ferait monter les dons ; certaines Églises et des associations de libertés s'opposent au consentement présumé." + }, + "yes": { + "label": { "en": "Adopt the opt-out register", "fr": "Adopter le registre de refus" }, + "effects": [ + { "sector": "health", "delta": 3, "days": 180 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep donation voluntary", "fr": "Garder le don volontaire" }, + "effects": [{ "sector": "health", "delta": -1, "days": 90 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "hlt_visit_fee_01", + "category": "health", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "deficit": 3 }, "max": { }, "flags": [], "notFlags": [] }, + "title": { "en": "A flat fee for emergency visits", "fr": "Un forfait pour les urgences" }, + "body": { + "en": "With the deficit widening, the Treasury suggests a small flat fee at casualty departments to curb minor visits. Hospitals fear that the poor will wait until their conditions turn serious.", + "fr": "Avec un déficit qui se creuse, le Trésor propose un petit forfait aux urgences pour freiner les passages bénins. Les hôpitaux craignent que les plus pauvres attendent d'être gravement malades." + }, + "yes": { + "label": { "en": "Charge the fee", "fr": "Instaurer le forfait" }, + "effects": [ + { "revenue": "other", "delta": 0.3 }, + { "sector": "health", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": -3, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep casualty free", "fr": "Garder les urgences gratuites" }, + "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }, { "oneOff": 0.1 }] + } + }, + { + "id": "hlt_hospital_merge_01", + "category": "health", + "doc": "report", + "sender": "min_finance", + "conditions": { "min": { "debt": 62 }, "max": { }, "flags": [], "notFlags": [] }, + "title": { "en": "Merge the regional hospitals", "fr": "Fusionner les hôpitaux régionaux" }, + "body": { + "en": "Eleven small hospitals share one specialist each and half-empty wards. Merging them into four centres would save real money; every closed town hall will say it is being abandoned.", + "fr": "Onze petits hôpitaux se partagent chacun un spécialiste et des services à moitié vides. Les regrouper en quatre pôles ferait de vraies économies ; chaque mairie touchée dira qu'on l'abandonne." + }, + "yes": { + "label": { "en": "Merge into four centres", "fr": "Regrouper en quatre pôles" }, + "effects": [ + { "extraSpending": -0.5 }, + { "sector": "health", "delta": -4, "days": 180 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep every hospital open", "fr": "Garder chaque hôpital ouvert" }, + "effects": [{ "oneOff": 0.2 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "hlt_insurance_fund_01", + "category": "health", + "doc": "report", + "sender": "min_finance", + "conditions": { "min": { "deficit": 2 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 200 }, + "title": { "en": "The health insurance fund is in the red", "fr": "La caisse d'assurance maladie est dans le rouge" }, + "body": { + "en": "The public insurance fund will run out of reserves within two years. Raising the payroll contribution closes the gap; employers say it taxes hiring, and employees say it taxes their payslips.", + "fr": "La caisse publique d'assurance maladie aura épuisé ses réserves d'ici deux ans. Relever la cotisation sur les salaires comblerait le trou ; les employeurs y voient une taxe sur l'embauche, les salariés une ponction sur leur fiche de paie." + }, + "yes": { + "label": { "en": "Raise the contribution", "fr": "Relever la cotisation" }, + "effects": [ + { "revenue": "income", "delta": 1 }, + { "sector": "health", "delta": 2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Let the fund draw down", "fr": "Laisser la caisse s'épuiser" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "health", "delta": -3, "days": 120 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "hlt_care_homes_01", + "category": "health", + "doc": "report", + "sender": "min_health", + "conditions": { "min": { }, "max": { "q:health": 58 }, "flags": [], "notFlags": [], "dayMin": 100 }, + "title": { "en": "Neglect found in care homes", "fr": "Négligence dans les maisons de retraite" }, + "body": { + "en": "A television crew filmed residents left unwashed for days in three private care homes. The ministry proposes an inspectorate with the power to close homes, which owners call a witch-hunt.", + "fr": "Une équipe de télévision a filmé des résidents laissés sans toilette pendant des jours dans trois maisons de retraite privées. Le ministère propose un corps d'inspection pouvant fermer les établissements ; les propriétaires parlent de chasse aux sorcières." + }, + "yes": { + "label": { "en": "Create the inspectorate", "fr": "Créer l'inspection" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "health", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ], + "followUp": { "id": "hlt_care_homes_02", "inDays": 130 } + }, + "no": { + "label": { "en": "Trust self-regulation", "fr": "Croire à l'autocontrôle" }, + "effects": [{ "stat": "opinion", "delta": -3, "days": 40 }, { "sector": "health", "delta": -2, "days": 120 }] + } + }, + { + "id": "hlt_care_homes_02", + "category": "health", + "doc": "letter", + "sender": "min_health", + "followUpOnly": true, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 230 }, + "title": { "en": "The inspectors close fourteen homes", "fr": "Les inspecteurs ferment quatorze maisons" }, + "body": { + "en": "The new inspectors have shut fourteen homes, leaving nine hundred residents to be rehoused. The owners' association threatens to withdraw from the sector altogether unless the state shares the transfer costs.", + "fr": "Les nouveaux inspecteurs ont fermé quatorze maisons et neuf cents résidents doivent être relogés. L'association des propriétaires menace de quitter le secteur si l'État ne partage pas les frais de transfert." + }, + "yes": { + "label": { "en": "Pay for the transfers", "fr": "Payer les transferts" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "health", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Let owners bear the cost", "fr": "Faire payer les propriétaires" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 30 }, + { "sector": "health", "delta": -2, "days": 120 } + ] + } + }, + { + "id": "hlt_stockpile_01", + "category": "health", + "doc": "memo", + "sender": "min_health", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 90 }, + "title": { "en": "Stockpile masks and antivirals", "fr": "Constituer un stock de masques et d'antiviraux" }, + "body": { + "en": "The national reserve holds three weeks of protective equipment and most of it is past its date. Renewing it is dull spending that only looks wise on the day an epidemic arrives.", + "fr": "La réserve nationale contient trois semaines d'équipements de protection, presque tous périmés. La renouveler est une dépense sans éclat qui ne paraît judicieuse que le jour où l'épidémie arrive." + }, + "yes": { + "label": { "en": "Restock the reserve", "fr": "Reconstituer la réserve" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "health", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Spend it elsewhere", "fr": "Dépenser ailleurs" }, + "effects": [{ "oneOff": -0.1 }, { "sector": "health", "delta": -1, "bias": true, "days": 365 }] + } + }, + { + "id": "hlt_price_cap_01", + "category": "health", + "doc": "memo", + "sender": "min_health", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 150 }, + "title": { "en": "Cap the price of cancer drugs", "fr": "Plafonner le prix des traitements du cancer" }, + "body": { + "en": "The health insurer pays more for cancer drugs each year than for all its ambulances. A price cap would halve the bill, and the manufacturers have already hinted at what they would do about it.", + "fr": "L'assureur public dépense chaque année plus pour les traitements du cancer que pour toutes ses ambulances. Un plafond de prix réduirait la facture de moitié ; les fabricants ont déjà laissé entendre leur réaction." + }, + "yes": { + "label": { "en": "Impose the cap", "fr": "Imposer le plafond" }, + "effects": [ + { "extraSpending": -0.3 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ], + "setFlags": ["hlt_price_cap"], + "followUp": { "id": "hlt_price_cap_02", "inDays": 120 } + }, + "no": { + "label": { "en": "Keep paying list prices", "fr": "Continuer à payer le prix fort" }, + "effects": [{ "oneOff": 0.3 }, { "stat": "opinion", "delta": -2, "days": 30 }] + } + }, + { + "id": "hlt_price_cap_02", + "category": "health", + "doc": "letter", + "sender": "min_industry", + "followUpOnly": true, + "conditions": { "min": { }, "max": { }, "flags": ["hlt_price_cap"], "notFlags": [], "dayMin": 270 }, + "title": { "en": "Drug makers suspend deliveries", "fr": "Les laboratoires suspendent leurs livraisons" }, + "body": { + "en": "Two manufacturers have stopped shipping twelve capped drugs to Valdoria, calling the prices unsustainable. Hospitals report empty shelves and oncologists are rationing doses.", + "fr": "Deux fabricants ont cessé de livrer douze médicaments plafonnés en Valdorie, jugeant les prix intenables. Les hôpitaux signalent des rayons vides et les oncologues rationnent les doses." + }, + "yes": { + "label": { "en": "Hold the cap, import generics", "fr": "Tenir, importer des génériques" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "health", "delta": -2, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Raise the cap", "fr": "Relever le plafond" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "health", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "hlt_junior_doctors_01", + "category": "health", + "doc": "petition", + "sender": "union", + "conditions": { "min": { "unrest": 28 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 180 }, + "title": { "en": "Junior doctors threaten to walk out", "fr": "Les internes menacent de faire grève" }, + "body": { + "en": "Junior doctors work eighty-hour weeks and report near-misses from exhaustion. They will strike in ten days unless hours are capped, which would force hospitals to hire.", + "fr": "Les internes travaillent quatre-vingts heures par semaine et signalent des erreurs évitées de justesse par épuisement. Ils feront grève dans dix jours si les horaires ne sont pas plafonnés, ce qui obligerait les hôpitaux à recruter." + }, + "yes": { + "label": { "en": "Cap their working hours", "fr": "Plafonner leurs horaires" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "health", "delta": 3, "days": 180 }, + { "stat": "unrest", "delta": -2, "days": 40 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Refuse to negotiate", "fr": "Refuser de négocier" }, + "effects": [ + { "sector": "health", "delta": -4, "days": 120 }, + { "stat": "unrest", "delta": 3, "days": 30 }, + { "stat": "opinion", "delta": -2, "days": 30 } + ] + } + }, + { + "id": "hlt_food_labels_01", + "category": "health", + "doc": "memo", + "sender": "min_health", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 120 }, + "title": { "en": "Colour-coded labels on food", "fr": "Étiquetage alimentaire en couleurs" }, + "body": { + "en": "A red, amber and green label on the front of packaged food would tell shoppers at a glance what is salty or sugary. Food manufacturers argue that national labels would cost them export contracts.", + "fr": "Une pastille rouge, orange ou verte sur le devant des emballages dirait d'un coup d'œil ce qui est trop salé ou trop sucré. Les industriels de l'alimentation estiment qu'un étiquetage national leur coûterait des contrats d'exportation." + }, + "yes": { + "label": { "en": "Make the labels mandatory", "fr": "Étiquetage obligatoire" }, + "effects": [ + { "sector": "health", "delta": 2, "bias": true, "days": 365 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep labelling voluntary", "fr": "Garder l'étiquetage libre" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 180 }, + { "sector": "health", "delta": -1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "hlt_telemedicine_01", + "category": "health", + "doc": "memo", + "sender": "min_health", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 520 }, + "title": { "en": "Video consultations from the pharmacy", "fr": "Consultations vidéo depuis la pharmacie" }, + "body": { + "en": "A booth in each pharmacy would link patients to a doctor by video and cut the three-hour drive to the district hospital. Older patients distrust the screen, and the broadband is patchy.", + "fr": "Une cabine dans chaque pharmacie relierait les patients à un médecin par vidéo et éviterait les trois heures de route jusqu'à l'hôpital du district. Les personnes âgées se méfient de l'écran et le haut débit reste inégal." + }, + "yes": { + "label": { "en": "Install the booths", "fr": "Installer les cabines" }, + "effects": [ + { "oneOff": 0.3 }, + { "extraSpending": -0.1 }, + { "sector": "health", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep face-to-face care", "fr": "Garder le face-à-face" }, + "effects": [{ "sector": "health", "delta": -2, "days": 90 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "hlt_maternity_01", + "category": "health", + "doc": "letter", + "sender": "mayor", + "conditions": { "min": { }, "max": { "q:health": 55 }, "flags": [], "notFlags": [], "dayMin": 200 }, + "title": { "en": "Rural maternity wards are closing", "fr": "Les maternités rurales ferment" }, + "body": { + "en": "Three district maternity wards have shut for lack of midwives, and two women gave birth by the roadside this winter. The mayor of the capital, speaking for the regions, asks for incentives to keep them open.", + "fr": "Trois maternités de district ont fermé faute de sages-femmes et deux femmes ont accouché au bord de la route cet hiver. Le maire de la capitale, porte-voix des régions, demande des primes pour les rouvrir." + }, + "yes": { + "label": { "en": "Fund midwife incentives", "fr": "Primer les sages-femmes" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "health", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 3, "days": 40 } + ] + }, + "no": { + "label": { "en": "Centralise births", "fr": "Centraliser les naissances" }, + "effects": [ + { "extraSpending": -0.1 }, + { "sector": "health", "delta": -3, "days": 120 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "unrest", "delta": 2, "days": 30 } + ] + } + }, + { + "id": "hlt_child_dental_01", + "category": "health", + "doc": "memo", + "sender": "min_health", + "conditions": { "min": { "economy": 48 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 700 }, + "title": { "en": "Free dental care for children", "fr": "Soins dentaires gratuits pour les enfants" }, + "body": { + "en": "Half of the country's eight-year-olds have untreated cavities, and the cost keeps poor families away from the dentist. Free check-ups and fillings would cost less than the later hospital bills.", + "fr": "La moitié des enfants de huit ans ont des caries non soignées, et le coût éloigne les familles pauvres du dentiste. Des contrôles et soins gratuits coûteraient moins que les hospitalisations qui s'ensuivent." + }, + "yes": { + "label": { "en": "Make it free", "fr": "Rendre les soins gratuits" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "health", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 3, "days": 45 } + ] + }, + "no": { + "label": { "en": "Keep the current co-payment", "fr": "Garder le ticket modérateur" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "sector": "health", "delta": -1, "days": 90 }] + } + }, + { + "id": "hlt_screening_01", + "category": "health", + "doc": "report", + "sender": "min_health", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 560 }, + "title": { "en": "National cancer screening", "fr": "Dépistage national du cancer" }, + "body": { + "en": "Invitations for breast and bowel screening would reach every adult over fifty. Detected early, many cancers cost a tenth to treat; detected by the programme, some will be found that would never have harmed.", + "fr": "Une invitation au dépistage du sein et du côlon serait envoyée à chaque adulte de plus de cinquante ans. Détectés tôt, beaucoup de cancers coûtent dix fois moins à traiter ; le programme en trouvera aussi qui n'auraient jamais nui." + }, + "yes": { + "label": { "en": "Launch the programme", "fr": "Lancer le programme" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "health", "delta": 2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Test only on symptoms", "fr": "Dépister sur symptômes" }, + "effects": [{ "sector": "health", "delta": -1, "bias": true, "days": 365 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "hlt_heatwave_01", + "category": "health", + "doc": "telegram", + "sender": "min_health", + "once": false, + "cooldownDays": 700, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 150 }, + "title": { "en": "Heatwave: elderly dying at home", "fr": "Canicule : des personnes âgées meurent chez elles" }, + "body": { + "en": "HEATWAVE ENTERS FIFTH DAY. DEATHS AMONG ELDERLY LIVING ALONE RISING. MINISTRY ASKS FOR COOLING CENTRES AND HOME VISITS. STOP.", + "fr": "CANICULE ENTRE DANS SON CINQUIEME JOUR. DECES EN HAUSSE CHEZ LES PERSONNES AGEES VIVANT SEULES. LE MINISTERE DEMANDE CENTRES DE FRAICHEUR ET VISITES A DOMICILE. STOP." + }, + "yes": { + "label": { "en": "Open cooling centres", "fr": "Ouvrir des centres de fraîcheur" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "health", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Issue a public warning only", "fr": "Se borner à un avertissement" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 30 }, + { "sector": "health", "delta": -3, "days": 60 }, + { "stat": "unrest", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "hlt_pharmacists_01", + "category": "health", + "doc": "letter", + "sender": "min_health", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 1050 }, + "title": { "en": "Let pharmacists prescribe", "fr": "Autoriser les pharmaciens à prescrire" }, + "body": { + "en": "Pharmacists could treat cystitis, ear infections and hay fever without a doctor's note, freeing hundreds of thousands of appointments. The medical council calls it dangerous and the pharmacists call it overdue.", + "fr": "Les pharmaciens pourraient traiter cystites, otites et rhume des foins sans ordonnance, libérant des centaines de milliers de rendez-vous. L'ordre des médecins parle de danger, les pharmaciens d'un retard coupable." + }, + "yes": { + "label": { "en": "Allow minor prescribing", "fr": "Autoriser la prescription" }, + "effects": [ + { "extraSpending": -0.1 }, + { "sector": "health", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep it with doctors", "fr": "Les garder aux médecins" }, + "effects": [{ "sector": "health", "delta": -1, "days": 90 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "hlt_research_institute_01", + "category": "health", + "doc": "report", + "sender": "min_health", + "conditions": { "min": { "economy": 50 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 780 }, + "title": { "en": "A national medical research institute", "fr": "Un institut national de recherche médicale" }, + "body": { + "en": "Valdorian researchers publish good work and then leave for richer laboratories abroad. A national institute with ten-year contracts would keep them and attract grants that pay back part of the cost.", + "fr": "Les chercheurs valdoriens publient de bons travaux puis partent vers des laboratoires plus riches. Un institut national à contrats de dix ans les retiendrait et attirerait des financements qui rembourseraient une partie du coût." + }, + "yes": { + "label": { "en": "Found the institute", "fr": "Fonder l'institut" }, + "effects": [ + { "extraSpending": 0.4 }, + { "sector": "research", "delta": 4, "days": 365 }, + { "sector": "health", "delta": 2, "days": 180 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Leave it to universities", "fr": "Laisser aux universités" }, + "effects": [{ "sector": "research", "delta": -2, "days": 120 }, { "stat": "softPower", "delta": -1, "days": 60 }] + } + }, + { + "id": "hlt_sick_pay_01", + "category": "health", + "doc": "memo", + "sender": "min_labour", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 600 }, + "title": { "en": "Sick pay from the first day", "fr": "Indemnités maladie dès le premier jour" }, + "body": { + "en": "Workers on short contracts come to work with fevers because sick pay starts on day four. Cover from the first day would keep infections out of factories, and add to payrolls that employers say are heavy enough.", + "fr": "Des salariés en contrat court viennent travailler fiévreux, car les indemnités ne commencent qu'au quatrième jour. Une couverture dès le premier jour limiterait les contagions en usine, mais alourdirait des charges que les employeurs jugent déjà lourdes." + }, + "yes": { + "label": { "en": "Pay from day one", "fr": "Indemniser dès le premier jour" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "health", "delta": 1, "days": 120 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep the waiting period", "fr": "Garder le délai de carence" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "hlt_vaccine_mandate_01", + "category": "health", + "doc": "memo", + "sender": "min_health", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 850 }, + "title": { "en": "Make school vaccination compulsory", "fr": "Rendre la vaccination scolaire obligatoire" }, + "body": { + "en": "Measles has returned to two districts where a quarter of parents decline the jab. A mandate for school entry would restore herd immunity at the price of a fight over parental choice.", + "fr": "La rougeole est revenue dans deux districts où un quart des parents refusent le vaccin. Une obligation à l'entrée de l'école rétablirait l'immunité collective, au prix d'une querelle sur le choix des parents." + }, + "yes": { + "label": { "en": "Impose the requirement", "fr": "Imposer l'obligation" }, + "effects": [ + { "sector": "health", "delta": 4, "days": 180 }, + { "stat": "civilRights", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Rely on persuasion", "fr": "Miser sur la persuasion" }, + "effects": [{ "sector": "health", "delta": -3, "days": 180 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "hlt_hospital_catering_01", + "category": "health", + "doc": "memo", + "sender": "min_finance", + "weight": 0.5, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 210 }, + "title": { "en": "Who feeds the hospitals?", "fr": "Qui nourrit les hôpitaux ?" }, + "body": { + "en": "Hospital meals now come from one contractor that heats frozen trays, and patients have started a petition about the lasagne. Tendering the contract again would save money; local kitchens would cost a little more.", + "fr": "Les repas des hôpitaux viennent d'un seul prestataire qui réchauffe des barquettes surgelées, et les patients ont lancé une pétition contre les lasagnes. Un nouvel appel d'offres ferait économiser ; des cuisines locales coûteraient un peu plus." + }, + "yes": { + "label": { "en": "Retender to the cheapest bid", "fr": "Choisir l'offre la moins chère" }, + "effects": [ + { "extraSpending": -0.1 }, + { "sector": "health", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Fund local kitchens", "fr": "Financer des cuisines locales" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "health", "delta": 1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "hlt_fluoride_01", + "category": "health", + "doc": "report", + "sender": "min_health", + "weight": 0.5, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 1000 }, + "title": { "en": "Fluoride in the water supply", "fr": "Du fluor dans l'eau du robinet" }, + "body": { + "en": "Dentists want fluoride added to municipal water to cut cavities at almost no cost. A vocal minority calls it forced medication and has already filled the town halls with protesters.", + "fr": "Les dentistes veulent ajouter du fluor à l'eau municipale pour réduire les caries à presque aucun coût. Une minorité bruyante y voit une médication forcée et a déjà rempli les mairies de manifestants." + }, + "yes": { + "label": { "en": "Add the fluoride", "fr": "Ajouter le fluor" }, + "effects": [ + { "sector": "health", "delta": 2, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Respect the objections", "fr": "Respecter les objections" }, + "effects": [{ "sector": "health", "delta": -1, "bias": true, "days": 365 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "hlt_harm_reduction_01", + "category": "health", + "doc": "report", + "sender": "min_health", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 420 }, + "title": { "en": "Supervised rooms for drug users", "fr": "Des salles de consommation supervisées" }, + "body": { + "en": "Overdose deaths in the port district have doubled in two years. Supervised rooms with nurses on hand would save lives and needles; neighbours and the police union say they would draw dealers to the street.", + "fr": "Les décès par overdose dans le quartier du port ont doublé en deux ans. Des salles supervisées avec infirmiers sauveraient des vies et des seringues ; les riverains et le syndicat de police y voient un aimant à trafiquants." + }, + "yes": { + "label": { "en": "Open the rooms", "fr": "Ouvrir les salles" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "health", "delta": 3, "days": 180 }, + { "stat": "order", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep enforcement first", "fr": "Privilégier la répression" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 60 }, + { "sector": "health", "delta": -2, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "hlt_rural_service_01", + "category": "health", + "doc": "letter", + "sender": "min_health", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 450 }, + "title": { "en": "Two years of rural service for graduates", "fr": "Deux ans de service rural pour les diplômés" }, + "body": { + "en": "State-funded medical graduates would owe two years in an underserved district before opening a private practice. Students call it conscription in a white coat; the districts call it the only plan on the table.", + "fr": "Les diplômés en médecine formés aux frais de l'État devraient deux ans dans un district sous-doté avant d'ouvrir un cabinet. Les étudiants parlent d'enrôlement en blouse blanche ; les districts, de la seule solution sur la table." + }, + "yes": { + "label": { "en": "Impose rural service", "fr": "Imposer le service rural" }, + "effects": [ + { "extraSpending": -0.1 }, + { "sector": "health", "delta": 4, "days": 180 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Offer bonuses instead", "fr": "Offrir des primes plutôt" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "health", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "hlt_health_compact_01", + "category": "health", + "doc": "memo", + "sender": "min_foreign", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 500 }, + "title": { "en": "Join the regional health compact", "fr": "Rejoindre le pacte régional de santé" }, + "body": { + "en": "Neighbouring states offer to pool outbreak data and bulk-buy vaccines, with a regional fund paying part of the cost. Joining means sharing hospital statistics and accepting outside inspectors.", + "fr": "Les États voisins proposent de mutualiser les données d'épidémies et d'acheter les vaccins en gros, avec un fonds régional qui prend en charge une partie du coût. Adhérer suppose de partager les statistiques hospitalières et d'accepter des inspecteurs extérieurs." + }, + "yes": { + "label": { "en": "Join the compact", "fr": "Adhérer au pacte" }, + "effects": [ + { "oneOff": -0.3 }, + { "sector": "health", "delta": 2, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Stay outside it", "fr": "Rester à l'écart" }, + "effects": [ + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "health", "delta": -1, "bias": true, "days": 365 } + ] + } + }, + { + "id": "hlt_cyber_01", + "category": "health", + "doc": "report", + "sender": "intelligence", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 420 }, + "title": { "en": "Ransomware hits three hospitals", "fr": "Un rançongiciel frappe trois hôpitaux" }, + "body": { + "en": "Attackers have locked the patient systems of three hospitals and demand payment in untraceable currency. Staff are back on paper, and intelligence advises building a shared defence centre before the next strike.", + "fr": "Des pirates ont verrouillé les systèmes de trois hôpitaux et exigent un paiement en monnaie intraçable. Le personnel est revenu au papier, et le renseignement conseille de bâtir un centre de défense commun avant la prochaine attaque." + }, + "yes": { + "label": { "en": "Build a defence centre", "fr": "Bâtir un centre de défense" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "health", "delta": 2, "days": 120 }, + { "stat": "stability", "delta": 1, "days": 60 } + ], + "followUp": { "id": "hlt_cyber_02", "inDays": 200 } + }, + "no": { + "label": { "en": "Refuse to pay", "fr": "Refuser de payer" }, + "effects": [{ "sector": "health", "delta": -3, "days": 90 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "hlt_cyber_02", + "category": "health", + "doc": "telegram", + "sender": "intelligence", + "followUpOnly": true, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 620 }, + "title": { "en": "A second attack, repelled", "fr": "Une seconde attaque, repoussée" }, + "body": { + "en": "SECOND ATTACK ON HOSPITAL NETWORKS DETECTED AND BLOCKED IN NINE MINUTES. ATTACKERS TRACED TO A FOREIGN CRIMINAL GROUP. ASK AUTHORISATION TO PUBLISH ATTRIBUTION. STOP.", + "fr": "SECONDE ATTAQUE CONTRE LES RESEAUX HOSPITALIERS DETECTEE ET BLOQUEE EN NEUF MINUTES. ASSAILLANTS RELIES A UN GROUPE CRIMINEL ETRANGER. AUTORISATION DE PUBLIER L'ATTRIBUTION DEMANDEE. STOP." + }, + "yes": { + "label": { "en": "Publish the attribution", "fr": "Publier l'attribution" }, + "effects": [ + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep it confidential", "fr": "Garder le secret" }, + "effects": [{ "stat": "softPower", "delta": -1, "days": 60 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "hlt_junk_ads_01", + "category": "health", + "doc": "memo", + "sender": "min_health", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 520 }, + "title": { "en": "Ban junk-food ads aimed at children", "fr": "Pubs malbouffe : protéger les enfants" }, + "body": { + "en": "Advertisers spend heavily on cartoon mascots for crisps and sweets during children's programmes. A ban before nine in the evening would please parents; broadcasters would lose a sizeable share of their income.", + "fr": "Les annonceurs misent gros sur des mascottes de dessin animé pour chips et bonbons pendant les émissions pour enfants. Une interdiction avant vingt et une heures plairait aux parents ; les chaînes perdraient une part notable de leurs recettes." + }, + "yes": { + "label": { "en": "Ban the advertising", "fr": "Interdire la publicité" }, + "effects": [ + { "sector": "health", "delta": 2, "bias": true, "days": 365 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Trust industry codes", "fr": "Se fier aux codes du secteur" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "health", "delta": -1, "bias": true, "days": 365 } + ] + } + }, + { + "id": "hlt_herbal_01", + "category": "health", + "doc": "petition", + "sender": "union", + "weight": 0.5, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 480 }, + "title": { "en": "Reimburse herbal remedies", "fr": "Rembourser les remèdes à base de plantes" }, + "body": { + "en": "Two hundred thousand signatures ask that herbal remedies be reimbursed like medicines. Doctors say the evidence is thin; the signatories say they have been taking valerian since before there were doctors.", + "fr": "Deux cent mille signatures demandent le remboursement des remèdes à base de plantes comme des médicaments. Les médecins jugent les preuves minces ; les signataires prennent de la valériane depuis avant qu'il y ait des médecins." + }, + "yes": { + "label": { "en": "Reimburse them", "fr": "Les rembourser" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "sector": "health", "delta": -1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Refuse reimbursement", "fr": "Refuser le remboursement" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "sector": "health", "delta": 1, "days": 90 } + ] + } + }, + { + "id": "hlt_nurse_ratio_01", + "category": "health", + "doc": "petition", + "sender": "union", + "conditions": { "min": { }, "max": { "q:health": 55 }, "flags": [], "notFlags": [], "dayMin": 900 }, + "title": { "en": "A legal nurse-to-patient ratio", "fr": "Un ratio légal infirmières-patients" }, + "body": { + "en": "The union wants a law fixing the maximum number of patients per nurse on every ward. Safer care and fewer departures would follow, and hospital directors say they cannot find the staff to meet it.", + "fr": "Le syndicat veut une loi fixant le nombre maximal de patients par infirmière dans chaque service. Les soins seraient plus sûrs et les départs moins nombreux ; les directeurs d'hôpitaux disent ne pas trouver le personnel nécessaire." + }, + "yes": { + "label": { "en": "Legislate the ratio", "fr": "Légiférer sur le ratio" }, + "effects": [ + { "extraSpending": 0.4 }, + { "sector": "health", "delta": 5, "days": 180 }, + { "stat": "unrest", "delta": -2, "days": 40 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave it to hospital boards", "fr": "Laisser aux directions" }, + "effects": [ + { "sector": "health", "delta": -3, "days": 120 }, + { "stat": "unrest", "delta": 2, "days": 30 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "hlt_vapes_01", + "category": "health", + "doc": "memo", + "sender": "min_health", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 600 }, + "title": { "en": "Flavoured vapes in the schoolyard", "fr": "Les vapoteuses aromatisées dans la cour" }, + "body": { + "en": "Candy-flavoured vapes now sell at kiosks next to schools, and teachers report pupils vaping in class. A flavour ban would protect teenagers; adult ex-smokers and importers say it would drive them back to tobacco.", + "fr": "Les vapoteuses aux arômes de bonbon se vendent près des écoles et les enseignants surprennent des élèves en train de vapoter en classe. Une interdiction des arômes protégerait les adolescents ; d'anciens fumeurs et les importateurs craignent un retour au tabac." + }, + "yes": { + "label": { "en": "Ban the flavours", "fr": "Interdire les arômes" }, + "effects": [ + { "sector": "health", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Tax them instead", "fr": "Les taxer plutôt" }, + "effects": [ + { "revenue": "other", "delta": 0.2 }, + { "sector": "health", "delta": -1, "days": 120 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "hlt_ambulance_private_01", + "category": "health", + "doc": "report", + "sender": "min_finance", + "conditions": { "min": { "debt": 60 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 920 }, + "title": { "en": "Outsource the ambulance service", "fr": "Externaliser le service d'ambulances" }, + "body": { + "en": "A private operator offers to run ambulances at a fifth less than the public service, with penalties for slow response. Paramedics fear a race to the bottom, and rural districts fear they will be left off the map.", + "fr": "Un opérateur privé propose d'exploiter les ambulances pour un cinquième de moins que le service public, avec pénalités en cas de retard. Les ambulanciers redoutent un nivellement par le bas, les districts ruraux d'être rayés de la carte." + }, + "yes": { + "label": { "en": "Sign the contract", "fr": "Signer le contrat" }, + "effects": [ + { "extraSpending": -0.4 }, + { "sector": "health", "delta": -3, "days": 180 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep it public", "fr": "Rester public" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "health", "delta": 1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "hlt_chronic_care_01", + "category": "health", + "doc": "report", + "sender": "min_health", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 1100 }, + "title": { "en": "A programme for chronic diseases", "fr": "Un programme pour les maladies chroniques" }, + "body": { + "en": "Diabetes and heart disease take most of the hospital budget, and patients are seen only when they are already in crisis. A coordinated programme of check-ups would cost more now and much less in ten years.", + "fr": "Diabète et maladies cardiaques absorbent l'essentiel du budget hospitalier, et les patients ne sont vus qu'une fois en crise. Un programme coordonné de suivi coûterait plus cher aujourd'hui et bien moins dans dix ans." + }, + "yes": { + "label": { "en": "Fund the programme", "fr": "Financer le programme" }, + "effects": [ + { "extraSpending": 0.4 }, + { "sector": "health", "delta": 3, "bias": true, "days": 730 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Treat only in crisis", "fr": "Soigner seulement en crise" }, + "effects": [ + { "extraSpending": -0.1 }, + { "sector": "health", "delta": -2, "bias": true, "days": 730 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "hlt_blood_supply_01", + "category": "health", + "doc": "telegram", + "sender": "min_health", + "once": false, + "cooldownDays": 800, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 1150 }, + "title": { "en": "Blood reserves critically low", "fr": "Les réserves de sang au plus bas" }, + "body": { + "en": "BLOOD RESERVES BELOW THREE DAYS OF SURGERY. DONATIONS FELL SHARPLY SINCE LAST AUTUMN. MINISTRY ASKS FOR A NATIONAL APPEAL AND PAID LEAVE FOR DONORS. STOP.", + "fr": "RESERVES DE SANG SOUS TROIS JOURS DE CHIRURGIE. LES DONS ONT FORTEMENT BAISSE DEPUIS L'AUTOMNE. LE MINISTERE DEMANDE UN APPEL NATIONAL ET UN CONGE REMUNERE POUR LES DONNEURS. STOP." + }, + "yes": { + "label": { "en": "Launch the appeal", "fr": "Lancer l'appel" }, + "effects": [ + { "oneOff": 0.1 }, + { "sector": "health", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Import blood", "fr": "Importer du sang" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "softPower", "delta": -1, "days": 30 }, + { "sector": "health", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "hlt_single_fund_01", + "category": "health", + "doc": "report", + "sender": "min_finance", + "conditions": { "min": { "deficit": 2 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 950 }, + "title": { "en": "Merge the insurance funds", "fr": "Fusionner les caisses d'assurance" }, + "body": { + "en": "Seven separate insurance funds run seven sets of offices and seven sets of rules. A single national fund would cut overheads by a quarter and abolish dozens of boards, along with their chairs' comfortable posts.", + "fr": "Sept caisses d'assurance distinctes font tourner sept jeux de bureaux et sept règlements. Une caisse nationale unique réduirait les frais de gestion d'un quart et supprimerait des dizaines de conseils, avec leurs présidences confortables." + }, + "yes": { + "label": { "en": "Create a single fund", "fr": "Créer une caisse unique" }, + "effects": [ + { "extraSpending": -0.4 }, + { "sector": "health", "delta": 1, "days": 180 }, + { "stat": "unrest", "delta": 1, "days": 40 }, + { "stat": "opinion", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep the seven funds", "fr": "Garder les sept caisses" }, + "effects": [{ "oneOff": 0.2 }, { "stat": "stability", "delta": 1, "days": 40 }] + } + }, + { + "id": "hlt_outbreak_01", + "category": "health", + "doc": "telegram", + "sender": "min_health", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 950 }, + "title": { "en": "Gastric fever outbreak in the port", "fr": "Fièvre gastrique dans le port" }, + "body": { + "en": "GASTRIC FEVER OUTBREAK IN PORT DISTRICT. 600 CASES IN FOUR DAYS, CONTAMINATED WELLS SUSPECTED. MINISTRY ASKS FOR A QUARANTINE CORDON AND FREE TREATMENT. STOP.", + "fr": "EPIDEMIE DE FIEVRE GASTRIQUE DANS LE QUARTIER DU PORT. 600 CAS EN QUATRE JOURS, PUITS CONTAMINES SUSPECTES. LE MINISTERE DEMANDE UN CORDON SANITAIRE ET LES SOINS GRATUITS. STOP." + }, + "yes": { + "label": { "en": "Cordon off the district", "fr": "Boucler le quartier" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "health", "delta": 3, "days": 60 }, + { "stat": "order", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": -2, "days": 60 } + ], + "setFlags": ["hlt_cordon"], + "followUp": { "id": "hlt_outbreak_02", "inDays": 40 } + }, + "no": { + "label": { "en": "Treat patients, no cordon", "fr": "Soigner sans cordon" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "health", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 40 } + ], + "followUp": { "id": "hlt_outbreak_02", "inDays": 40 } + } + }, + { + "id": "hlt_outbreak_02", + "category": "health", + "doc": "report", + "sender": "min_health", + "followUpOnly": true, + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 990 }, + "title": { "en": "The outbreak: clean water or closed shops", "fr": "L'épidémie : eau propre ou commerces fermés" }, + "body": { + "en": "Cases are falling, but the port's wells remain unsafe and the fish market is under quarantine. Replacing the water mains is expensive; trucking in water leaves traders and residents in limbo for months.", + "fr": "Les cas reculent, mais les puits du port restent dangereux et la criée est en quarantaine. Remplacer les canalisations coûte cher ; livrer l'eau par camion laisse commerçants et habitants dans l'incertitude pendant des mois." + }, + "yes": { + "label": { "en": "Replace the water mains", "fr": "Remplacer les canalisations" }, + "effects": [ + { "oneOff": 0.5 }, + { "sector": "health", "delta": 2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Truck in water for now", "fr": "Livrer l'eau par camion" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "health", "delta": -2, "days": 120 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "hlt_long_term_care_01", + "category": "health", + "doc": "memo", + "sender": "min_labour", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 1000 }, + "title": { "en": "A long-term care levy", "fr": "Une cotisation pour la dépendance" }, + "body": { + "en": "The number of residents over eighty will double within fifteen years, and families already sell homes to pay for care. A small levy on all wages would build a fund; workers will ask why they pay for a risk that is not theirs yet.", + "fr": "Le nombre de personnes de plus de quatre-vingts ans doublera d'ici quinze ans, et des familles vendent déjà leur logement pour payer les soins. Une petite cotisation sur tous les salaires alimenterait un fonds ; les actifs demanderont pourquoi ils paient un risque qui n'est pas encore le leur." + }, + "yes": { + "label": { "en": "Create the care levy", "fr": "Créer la cotisation" }, + "effects": [ + { "revenue": "other", "delta": 0.4 }, + { "sector": "health", "delta": 2, "bias": true, "days": 730 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave it to families", "fr": "Laisser aux familles" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 40 }, + { "sector": "health", "delta": -2, "days": 120 } + ] + } + }, + { + "id": "hlt_vaccine_plant_01", + "category": "health", + "doc": "letter", + "sender": "min_industry", + "conditions": { "min": { "economy": 50 }, "max": { }, "flags": [], "notFlags": [], "dayMin": 1000 }, + "title": { "en": "A national vaccine plant", "fr": "Une usine nationale de vaccins" }, + "body": { + "en": "The last shortage showed how dependent Valdoria is on foreign suppliers. A state-backed plant would secure doses and jobs, but would take six years to pay for itself, if it ever does.", + "fr": "La dernière pénurie a montré la dépendance de la Valdorie envers l'étranger. Une usine soutenue par l'État sécuriserait doses et emplois, mais ne s'amortirait qu'en six ans, si elle s'amortit un jour." + }, + "yes": { + "label": { "en": "Back the plant", "fr": "Soutenir l'usine" }, + "effects": [ + { "oneOff": 0.8 }, + { "sector": "health", "delta": 3, "days": 180 }, + { "sector": "research", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Buy doses on the market", "fr": "Acheter sur le marché" }, + "effects": [ + { "oneOff": -0.2 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "sector": "health", "delta": -1, "bias": true, "days": 365 } + ] + } + }, + { + "id": "hlt_antibiotics_01", + "category": "health", + "doc": "report", + "sender": "min_health", + "conditions": { "min": { }, "max": { }, "flags": [], "notFlags": [], "dayMin": 1050 }, + "title": { "en": "Antibiotics only on prescription", "fr": "Antibiotiques sur ordonnance uniquement" }, + "body": { + "en": "Antibiotics are still sold over the counter in many market pharmacies, and resistant infections are rising in hospitals. Tightening the rule protects everyone later and inconveniences those who just want to feel better now.", + "fr": "Les antibiotiques se vendent encore sans ordonnance dans bien des pharmacies de marché, et les infections résistantes progressent à l'hôpital. Durcir la règle protège tout le monde à terme et contrarie ceux qui veulent seulement aller mieux tout de suite." + }, + "yes": { + "label": { "en": "Enforce prescriptions", "fr": "Imposer l'ordonnance" }, + "effects": [ + { "sector": "health", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "order", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Leave it to pharmacists", "fr": "S'en remettre aux pharmaciens" }, + "effects": [{ "sector": "health", "delta": -2, "days": 180 }, { "stat": "opinion", "delta": 1, "days": 30 }] } } ] diff --git a/web/data/cards/housing.json b/web/data/cards/housing.json index 2b5c190..5597d2c 100644 --- a/web/data/cards/housing.json +++ b/web/data/cards/housing.json @@ -1,6 +1,9 @@ [ { - "id": "hou_rent_cap_01", "category": "housing", "doc": "petition", "sender": "mayor", + "id": "hou_rent_cap_01", + "category": "housing", + "doc": "petition", + "sender": "mayor", "title": { "en": "Cap rents in the cities", "fr": "Plafonner les loyers en ville" }, "body": { "en": "Tenants' groups ask for a cap on rents. Landlords reply that they will stop building and stop repairing.", @@ -16,14 +19,14 @@ }, "no": { "label": { "en": "Leave the market alone", "fr": "Laisser faire le marché" }, - "effects": [ - { "stat": "opinion", "delta": -2, "days": 30 }, - { "stat": "unrest", "delta": 2, "days": 30 } - ] + "effects": [{ "stat": "opinion", "delta": -2, "days": 30 }, { "stat": "unrest", "delta": 2, "days": 30 }] } }, { - "id": "hou_social_housing_01", "category": "housing", "doc": "memo", "sender": "min_housing", + "id": "hou_social_housing_01", + "category": "housing", + "doc": "memo", + "sender": "min_housing", "title": { "en": "A social housing programme", "fr": "Un programme de logements sociaux" }, "body": { "en": "The Housing Ministry proposes ten thousand new social homes over three years. Waiting lists are at record length.", @@ -39,14 +42,14 @@ }, "no": { "label": { "en": "Decline", "fr": "Décliner" }, - "effects": [ - { "sector": "housing", "delta": -2, "days": 180 }, - { "stat": "unrest", "delta": 2, "days": 40 } - ] + "effects": [{ "sector": "housing", "delta": -2, "days": 180 }, { "stat": "unrest", "delta": 2, "days": 40 }] } }, { - "id": "hou_state_land_01", "category": "housing", "doc": "memo", "sender": "min_housing", + "id": "hou_state_land_01", + "category": "housing", + "doc": "memo", + "sender": "min_housing", "title": { "en": "Release state land to developers", "fr": "Céder des terrains de l'État aux promoteurs" }, "body": { "en": "The state owns vacant land in every major city. Selling it to developers would raise cash and homes, and invite accusations of favours.", @@ -65,5 +68,1149 @@ "label": { "en": "Keep the land", "fr": "Garder les terrains" }, "effects": [{ "stat": "opinion", "delta": 1, "days": 30 }] } + }, + { + "id": "hou_eviction_ban_01", + "category": "housing", + "doc": "petition", + "sender": "mayor", + "conditions": { "dayMin": 20 }, + "title": { "en": "Ban evictions in winter", "fr": "Interdire les expulsions en hiver" }, + "body": { + "en": "Tenants' groups ask for a ban on evictions from November to March, after a family of five was put out in a snowstorm. Landlords answer that a ban on collecting rent is a ban on property.", + "fr": "Les associations de locataires demandent d'interdire les expulsions de novembre à mars, après qu'une famille de cinq personnes a été mise dehors en pleine tempête de neige. Les propriétaires répondent qu'interdire d'encaisser un loyer revient à interdire la propriété." + }, + "yes": { + "label": { "en": "Ban winter evictions", "fr": "Interdire les expulsions" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "civilRights", "delta": 2, "days": 90 }, + { "sector": "housing", "delta": -2, "days": 180 }, + { "stat": "economy", "delta": -1, "days": 90 } + ], + "setFlags": ["hou_eviction_ban"], + "followUp": { "id": "hou_eviction_courts_01", "inDays": 100 } + }, + "no": { + "label": { "en": "Leave it to the courts", "fr": "Laisser faire les tribunaux" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "sector": "housing", "delta": 1, "days": 120 } + ] + } + }, + { + "id": "hou_eviction_courts_01", + "category": "housing", + "doc": "letter", + "sender": "min_justice", + "followUpOnly": true, + "title": { "en": "Courts clogged by rent disputes", "fr": "Les tribunaux submergés de litiges locatifs" }, + "body": { + "en": "Since the winter ban, landlords have filed twice as many cases for the spring, and the courts are two years behind. A fast-track tribunal for rent cases would clear them, at a price.", + "fr": "Depuis l'interdiction hivernale, les propriétaires ont déposé deux fois plus de dossiers pour le printemps, et les tribunaux ont deux ans de retard. Une juridiction rapide pour les litiges locatifs les résorberait, moyennant finances." + }, + "yes": { + "label": { "en": "Create a rent tribunal", "fr": "Créer un tribunal des loyers" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "justice", "delta": 2, "days": 180 }, + { "sector": "housing", "delta": 1, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Let the backlog grow", "fr": "Laisser l'arriéré grossir" }, + "effects": [ + { "extraSpending": -0.1 }, + { "sector": "justice", "delta": -2, "days": 180 }, + { "sector": "housing", "delta": -2, "days": 120 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "hou_mortgage_guarantee_01", + "category": "housing", + "doc": "memo", + "sender": "min_finance", + "title": { "en": "A state guarantee for mortgages", "fr": "Une garantie d'État pour les prêts immobiliers" }, + "body": { + "en": "Banks refuse loans to buyers with small deposits. A state guarantee on the missing deposit would open ownership to young families, and leave the state exposed if prices fall.", + "fr": "Les banques refusent de prêter aux acheteurs qui ont peu d'apport. Une garantie d'État sur l'apport manquant ouvrirait la propriété aux jeunes familles, et exposerait l'État si les prix baissent." + }, + "yes": { + "label": { "en": "Guarantee the loans", "fr": "Garantir les prêts" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "housing", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 270 } + ], + "setFlags": ["hou_mortgage_guarantee"], + "followUp": { "id": "hou_mortgage_bubble_01", "inDays": 420 } + }, + "no": { + "label": { "en": "Leave lending to banks", "fr": "Laisser faire les banques" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "housing", "delta": -1, "days": 120 }, + { "stat": "stability", "delta": 1, "days": 45 } + ] + } + }, + { + "id": "hou_mortgage_bubble_01", + "category": "housing", + "doc": "report", + "sender": "central_bank", + "followUpOnly": true, + "title": { "en": "Prices race ahead of wages", "fr": "Les prix s'envolent plus vite que les salaires" }, + "body": { + "en": "Prices have risen by a fifth in two years, helped by the guarantee, and the central bank warns of a bubble. Tightening the guarantee would cool the market and disappoint those still waiting to buy.", + "fr": "Les prix ont grimpé d'un cinquième en deux ans, aidés par la garantie, et la Banque centrale met en garde contre une bulle. Resserrer la garantie refroidirait le marché et décevrait ceux qui attendent encore d'acheter." + }, + "yes": { + "label": { "en": "Tighten the guarantee", "fr": "Resserrer la garantie" }, + "effects": [ + { "extraSpending": -0.1 }, + { "sector": "housing", "delta": -2, "days": 180 }, + { "stat": "economy", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "stability", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Let the market run", "fr": "Laisser courir le marché" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 }, + { "stat": "inflation", "delta": 0.4, "bias": true, "days": 270 }, + { "stat": "stability", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "hou_building_permits_01", + "category": "housing", + "doc": "memo", + "sender": "min_housing", + "conditions": { "dayMin": 100 }, + "title": { "en": "Faster building permits", "fr": "Des permis de construire plus rapides" }, + "body": { + "en": "A building permit takes fourteen months in Valdoria. The ministry proposes a six-month limit, after which projects are approved by default. Planners fear that town halls will be bypassed and quality will slip.", + "fr": "Un permis de construire prend quatorze mois en Valdorie. Le ministère propose un délai de six mois, passé lequel les projets sont acceptés d'office. Les urbanistes craignent que les mairies soient court-circuitées et que la qualité s'en ressente." + }, + "yes": { + "label": { "en": "Cap the delay at six months", "fr": "Plafonner à six mois" }, + "effects": [ + { "sector": "housing", "delta": 3, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "environment", "delta": -1, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep the full review", "fr": "Garder l'examen complet" }, + "effects": [ + { "sector": "environment", "delta": 1, "days": 120 }, + { "sector": "housing", "delta": -1, "days": 120 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "hou_retrofit_01", + "category": "housing", + "doc": "report", + "sender": "min_environment", + "title": { "en": "Insulation grants for old flats", "fr": "Aides à l'isolation des vieux logements" }, + "body": { + "en": "Half of Valdoria's flats leak heat through walls and roofs. A grant programme for insulation would cut bills and emissions and give builders work, but the money has to come from somewhere.", + "fr": "La moitié des logements valdoriens laissent fuir la chaleur par les murs et les toits. Un programme d'aides à l'isolation réduirait factures et émissions et donnerait du travail aux artisans, mais l'argent doit bien venir de quelque part." + }, + "yes": { + "label": { "en": "Fund the retrofit", "fr": "Financer la rénovation" }, + "effects": [ + { "oneOff": 0.5 }, + { "sector": "housing", "delta": 3, "days": 180 }, + { "sector": "environment", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Skip the programme", "fr": "Passer son tour" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "environment", "delta": -1, "days": 120 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 120 }, + { "oneOff": -0.1 } + ] + }, + "conditions": { "dayMin": 150, "min": { "inflation": 3 } } + }, + { + "id": "hou_student_housing_01", + "category": "housing", + "doc": "letter", + "sender": "min_education", + "title": { "en": "Beds for students", "fr": "Des lits pour les étudiants" }, + "body": { + "en": "Students sleep in cars and on cousins' sofas while the halls of the capital house barely one in ten. The ministry proposes converting disused barracks into five thousand rooms.", + "fr": "Des étudiants dorment dans leur voiture ou sur le canapé d'un cousin, alors que les résidences de la capitale n'en logent qu'un sur dix. Le ministère propose de transformer des casernes désaffectées en cinq mille chambres." + }, + "yes": { + "label": { "en": "Convert the barracks", "fr": "Convertir les casernes" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "sector": "housing", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "armyLoyalty", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Leave it to landlords", "fr": "Laisser faire les bailleurs" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "education", "delta": -1, "days": 180 }, + { "stat": "unrest", "delta": 1, "days": 45 } + ] + } + }, + { + "id": "hou_housing_first_01", + "category": "housing", + "doc": "report", + "sender": "min_labour", + "conditions": { "dayMin": 30, "max": { "q:social": 62 } }, + "title": { "en": "Housing First for the homeless", "fr": "« Logement d'abord » pour les sans-abri" }, + "body": { + "en": "Eight thousand people sleep rough. The Housing First model gives them a flat before any treatment or work conditions, and over time costs less in emergency care than shelters do.", + "fr": "Huit mille personnes dorment dehors. Le modèle « Logement d'abord » leur donne un toit avant toute condition de soins ou de travail, et coûte à terme moins cher en urgences que les centres d'hébergement." + }, + "yes": { + "label": { "en": "Adopt Housing First", "fr": "Adopter « Logement d'abord »" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "social", "delta": 2, "days": 180 }, + { "sector": "housing", "delta": 1, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 45 }, + { "stat": "unrest", "delta": -1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Add shelter beds", "fr": "Ajouter des lits d'urgence" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "social", "delta": 1, "days": 120 }, + { "stat": "unrest", "delta": 1, "days": 45 } + ] + } + }, + { + "id": "hou_riverside_01", + "category": "housing", + "doc": "report", + "sender": "min_housing", + "conditions": { "dayMin": 40 }, + "title": { "en": "The riverside settlement", "fr": "Le bidonville du fleuve" }, + "body": { + "en": "Twelve thousand people live in shacks on the flood plain below the capital, without water or title. The ministry can bulldoze and rehouse some of them, or install water and legalise the rest.", + "fr": "Douze mille personnes vivent dans des cabanes sur la plaine inondable en aval de la capitale, sans eau ni titre. Le ministère peut raser et reloger une partie d'entre elles, ou installer l'eau et légaliser le reste." + }, + "yes": { + "label": { "en": "Upgrade in place", "fr": "Aménager sur place" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "housing", "delta": 3, "days": 180 }, + { "stat": "civilRights", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ], + "setFlags": ["hou_slum_upgrade"], + "followUp": { "id": "hou_riverside_titles_01", "inDays": 120 } + }, + "no": { + "label": { "en": "Clear the settlement", "fr": "Évacuer le quartier" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 45 }, + { "sector": "housing", "delta": 1, "days": 120 }, + { "stat": "civilRights", "delta": -3, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 45 } + ], + "setFlags": ["hou_slum_cleared"], + "followUp": { "id": "hou_riverside_fire_01", "inDays": 70 } + } + }, + { + "id": "hou_riverside_titles_01", + "category": "housing", + "doc": "letter", + "sender": "mayor", + "followUpOnly": true, + "title": { "en": "Property titles for the riverside", "fr": "Des titres de propriété pour le bidonville" }, + "body": { + "en": "With water and power installed, residents ask for titles to their plots. Titles would let them borrow and invest, and would also start a land rush as speculators arrive.", + "fr": "Maintenant que l'eau et l'électricité sont installées, les habitants demandent des titres sur leurs parcelles. Les titres leur permettraient d'emprunter et d'investir, mais lanceraient aussi une ruée foncière avec l'arrivée des spéculateurs." + }, + "yes": { + "label": { "en": "Issue the titles", "fr": "Délivrer les titres" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 270 }, + { "stat": "civilRights", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "sector": "housing", "delta": 1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Keep the land public", "fr": "Garder la terre publique" }, + "effects": [ + { "revenue": "other", "delta": 0.1 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 45 } + ] + } + }, + { + "id": "hou_riverside_fire_01", + "category": "housing", + "doc": "telegram", + "sender": "min_interior", + "followUpOnly": true, + "title": { "en": "Fire in the cleared settlement", "fr": "Incendie dans le camp évacué" }, + "body": { + "en": "FIRE IN TEMPORARY CAMP FOR EVICTED RIVERSIDE FAMILIES. TWO DEAD, THREE HUNDRED FAMILIES WITHOUT SHELTER. CITY BLAMES THE EVICTION. STOP.", + "fr": "INCENDIE DANS LE CAMP PROVISOIRE DES FAMILLES EXPULSEES DU FLEUVE. DEUX MORTS, TROIS CENTS FAMILLES SANS ABRI. LA VILLE ACCUSE L'EXPULSION. STOP." + }, + "yes": { + "label": { "en": "Open emergency housing", "fr": "Ouvrir un hébergement d'urgence" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "unrest", "delta": -1, "days": 30 }, + { "sector": "housing", "delta": 1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Blame the residents", "fr": "Rejeter la faute sur eux" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 45 }, + { "stat": "unrest", "delta": 3, "days": 45 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "stat": "softPower", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "hou_vacant_tax_01", + "category": "housing", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 130, "min": { "deficit": 2 } }, + "title": { "en": "A tax on empty flats", "fr": "Une taxe sur les logements vides" }, + "body": { + "en": "Some two hundred thousand flats in the cities stand empty, held as investments. A tax on homes left vacant for over a year would push owners to rent or sell, and raise a little money.", + "fr": "Quelque deux cent mille logements des villes restent vides, gardés comme placements. Une taxe sur les logements inoccupés depuis plus d'un an inciterait à louer ou vendre, et rapporterait un peu d'argent." + }, + "yes": { + "label": { "en": "Tax empty homes", "fr": "Taxer les logements vides" }, + "effects": [ + { "revenue": "other", "delta": 0.15 }, + { "sector": "housing", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Leave owners alone", "fr": "Laisser les propriétaires" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "housing", "delta": -1, "days": 120 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "hou_holiday_lets_01", + "category": "housing", + "doc": "letter", + "sender": "mayor", + "conditions": { "dayMin": 170 }, + "title": { "en": "Holiday lets eat the old town", "fr": "Les locations touristiques dévorent le centre" }, + "body": { + "en": "Tourist rentals have taken a quarter of the flats in the historic quarter, and rents there have doubled. The mayor wants a cap of ninety nights a year. Hotels cheer; owners protest.", + "fr": "Les locations touristiques ont pris un quart des logements du centre historique, et les loyers y ont doublé. Le maire veut un plafond de quatre-vingt-dix nuits par an. Les hôteliers applaudissent ; les propriétaires protestent." + }, + "yes": { + "label": { "en": "Cap holiday lets", "fr": "Plafonner les locations" }, + "effects": [ + { "sector": "housing", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Leave the market alone", "fr": "Laisser faire le marché" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "housing", "delta": -1, "days": 120 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "revenue": "other", "delta": 0.1 } + ] + } + }, + { + "id": "hou_first_buyers_01", + "category": "housing", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 220, "max": { "opinion": 58 } }, + "title": { "en": "Transfer tax relief for first buyers", "fr": "Allègement des droits pour les primo-accédants" }, + "body": { + "en": "First-time buyers pay six percent in transfer tax on top of the price. Waiving it would help young families and, economists warn, mostly raise prices.", + "fr": "Les primo-accédants paient six pour cent de droits de mutation en plus du prix. Les supprimer aiderait les jeunes familles et, préviennent les économistes, ferait surtout monter les prix." + }, + "yes": { + "label": { "en": "Waive the tax", "fr": "Supprimer la taxe" }, + "effects": [ + { "revenue": "other", "delta": -0.2 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "sector": "housing", "delta": 1, "days": 120 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep the tax", "fr": "Garder la taxe" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 45 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 90 } + ] + } + }, + { + "id": "hou_densify_01", + "category": "housing", + "doc": "memo", + "sender": "min_housing", + "conditions": { "dayMin": 60 }, + "title": { "en": "Build dense around the stations", "fr": "Densifier autour des gares" }, + "body": { + "en": "The ministry proposes allowing six-storey blocks within a kilometre of every railway station. Homeowners in the leafy suburbs have already formed committees.", + "fr": "Le ministère propose d'autoriser des immeubles de six étages dans un rayon d'un kilomètre autour de chaque gare. Les propriétaires des banlieues vertes ont déjà formé des comités." + }, + "yes": { + "label": { "en": "Allow dense building", "fr": "Autoriser la densification" }, + "effects": [ + { "sector": "housing", "delta": 3, "days": 180 }, + { "sector": "transport", "delta": 1, "days": 180 }, + { "sector": "environment", "delta": 1, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 45 } + ], + "setFlags": ["hou_densify"], + "followUp": { "id": "hou_densify_protest_01", "inDays": 90 } + }, + "no": { + "label": { "en": "Protect the suburbs", "fr": "Protéger les banlieues" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "housing", "delta": -2, "days": 120 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "hou_densify_protest_01", + "category": "housing", + "doc": "petition", + "sender": "mayor", + "followUpOnly": true, + "title": { "en": "Suburban residents march", "fr": "Les habitants des banlieues manifestent" }, + "body": { + "en": "Ten thousand suburban residents march against the first six-storey blocks, citing shade, traffic and school places. The ministry offers a design code and a levy on developers to fund new schools.", + "fr": "Dix mille habitants des banlieues défilent contre les premiers immeubles de six étages, invoquant l'ombre, la circulation et les places d'école. Le ministère propose un cahier des charges et une taxe sur les promoteurs pour financer des écoles." + }, + "yes": { + "label": { "en": "Add a developer levy", "fr": "Ajouter une taxe aux promoteurs" }, + "effects": [ + { "revenue": "other", "delta": 0.1 }, + { "sector": "education", "delta": 1, "days": 180 }, + { "sector": "housing", "delta": 1, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Pause the scheme", "fr": "Suspendre le programme" }, + "effects": [ + { "sector": "housing", "delta": -2, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "hou_new_town_01", + "category": "housing", + "doc": "memo", + "sender": "min_housing", + "conditions": { "dayMin": 120 }, + "title": { "en": "A new town on the northern plain", "fr": "Une ville nouvelle dans la plaine du nord" }, + "body": { + "en": "The ministry proposes a planned town of eighty thousand people on the northern plain, with a rail link and a business park. It would take a decade, and the first years are all concrete and promises.", + "fr": "Le ministère propose une ville planifiée de quatre-vingt mille habitants dans la plaine du nord, avec une liaison ferroviaire et une zone d'activités. Il faudrait dix ans, et les premières années ne seront que béton et promesses." + }, + "yes": { + "label": { "en": "Build the new town", "fr": "Bâtir la ville nouvelle" }, + "effects": [ + { "oneOff": 0.8 }, + { "sector": "housing", "delta": 4, "days": 365 }, + { "sector": "infrastructure", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ], + "setFlags": ["hou_new_town"], + "followUp": { "id": "hou_new_town_review_01", "inDays": 400 } + }, + "no": { + "label": { "en": "Densify existing cities", "fr": "Densifier les villes" }, + "effects": [ + { "sector": "housing", "delta": 1, "days": 120 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "hou_new_town_review_01", + "category": "housing", + "doc": "report", + "sender": "min_housing", + "followUpOnly": true, + "title": { "en": "The new town is half empty", "fr": "La ville nouvelle est à moitié vide" }, + "body": { + "en": "Two thousand flats are finished but only six hundred households have moved in, because jobs and trains arrive later than the flats. Moving a few government offices there might fill them.", + "fr": "Deux mille logements sont achevés mais six cents foyers seulement s'y sont installés, car emplois et trains arrivent plus tard que les appartements. Y déplacer quelques services de l'État pourrait les remplir." + }, + "yes": { + "label": { "en": "Move offices there", "fr": "Y déplacer des services" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "administration", "delta": -1, "days": 90 }, + { "sector": "housing", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": 1, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Wait for jobs to arrive", "fr": "Attendre l'arrivée des emplois" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "housing", "delta": -1, "days": 120 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "hou_foreign_buyers_01", + "category": "housing", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 450 }, + "title": { "en": "A surtax on foreign buyers", "fr": "Une surtaxe sur les acheteurs étrangers" }, + "body": { + "en": "Foreign investors buy one new flat in six in the capital and leave many of them dark. A twenty percent surtax would calm prices and anger the developers who count on those buyers.", + "fr": "Des investisseurs étrangers achètent un logement neuf sur six dans la capitale et en laissent beaucoup éteints. Une surtaxe de vingt pour cent calmerait les prix et fâcherait les promoteurs qui comptent sur ces acheteurs." + }, + "yes": { + "label": { "en": "Surtax foreign buyers", "fr": "Surtaxer les étrangers" }, + "effects": [ + { "revenue": "other", "delta": 0.2 }, + { "sector": "housing", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 270 }, + { "stat": "softPower", "delta": -1, "days": 90 } + ], + "setFlags": ["hou_foreign_tax"], + "followUp": { "id": "hou_foreign_exit_01", "inDays": 200 } + }, + "no": { + "label": { "en": "Welcome the capital", "fr": "Accueillir les capitaux" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "sector": "housing", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "hou_foreign_exit_01", + "category": "housing", + "doc": "letter", + "sender": "min_industry", + "followUpOnly": true, + "title": { "en": "Developers say projects are stalling", "fr": "Les promoteurs disent que les chantiers calent" }, + "body": { + "en": "Since the surtax, three luxury towers have stopped building and sales have slumped. The developers' federation asks for an exemption for projects that include affordable flats.", + "fr": "Depuis la surtaxe, trois tours de luxe ont arrêté leur chantier et les ventes se sont effondrées. La fédération des promoteurs demande une exemption pour les projets comprenant des logements abordables." + }, + "yes": { + "label": { "en": "Grant the exemption", "fr": "Accorder l'exemption" }, + "effects": [ + { "revenue": "other", "delta": -0.1 }, + { "sector": "housing", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": 1, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the surtax", "fr": "Maintenir la surtaxe" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "hou_rent_arrears_01", + "category": "housing", + "doc": "petition", + "sender": "union", + "conditions": { "min": { "unemployment": 7.5 }, "dayMin": 100 }, + "title": { "en": "Rent arrears pile up", "fr": "Les impayés de loyer s'accumulent" }, + "body": { + "en": "Jobless tenants now owe an average of four months' rent, and landlords have begun filing for eviction. A state arrears fund would pay part of the debt in exchange for a rent freeze.", + "fr": "Les locataires sans emploi doivent en moyenne quatre mois de loyer, et les propriétaires commencent à déposer des demandes d'expulsion. Un fonds d'État couvrirait une partie de la dette en échange d'un gel des loyers." + }, + "yes": { + "label": { "en": "Create an arrears fund", "fr": "Créer un fonds d'impayés" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "unrest", "delta": -2, "days": 45 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "sector": "housing", "delta": 1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Let courts decide", "fr": "Laisser les juges trancher" }, + "effects": [ + { "stat": "unrest", "delta": 3, "days": 45 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "order", "delta": -1, "days": 45 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "hou_cement_cartel_01", + "category": "housing", + "doc": "report", + "sender": "min_justice", + "conditions": { "min": { "inflation": 3 }, "dayMin": 200 }, + "title": { "en": "A cement cartel exposed", "fr": "Un cartel du ciment démasqué" }, + "body": { + "en": "Investigators found that the three cement producers fixed prices for a decade, adding eight percent to every new building. A heavy fine would punish them, and could bankrupt the smallest and raise prices in the short run.", + "fr": "Les enquêteurs ont établi que les trois cimentiers fixent leurs prix depuis dix ans, ajoutant huit pour cent à chaque construction neuve. Une lourde amende les punirait, mais pourrait ruiner le plus petit et faire monter les prix à court terme." + }, + "yes": { + "label": { "en": "Fine the cartel", "fr": "Sanctionner le cartel" }, + "effects": [ + { "oneOff": -0.3 }, + { "sector": "justice", "delta": 1, "days": 180 }, + { "sector": "housing", "delta": 1, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Settle quietly", "fr": "Transiger discrètement" }, + "effects": [ + { "oneOff": -0.1 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "sector": "justice", "delta": -2, "days": 180 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 }, + { "stat": "stability", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "hou_old_town_01", + "category": "housing", + "doc": "letter", + "sender": "min_culture", + "conditions": { "dayMin": 250 }, + "title": { "en": "The historic quarter is crumbling", "fr": "Le quartier historique s'effondre" }, + "body": { + "en": "Two hundred protected buildings in the old town are damp, unsafe and mostly empty because owners cannot afford the work. A restoration fund would save them; developers would rather demolish.", + "fr": "Deux cents bâtiments protégés de la vieille ville sont humides, dangereux et surtout vides, faute de moyens des propriétaires. Un fonds de restauration les sauverait ; les promoteurs préféreraient démolir." + }, + "yes": { + "label": { "en": "Fund the restoration", "fr": "Financer la restauration" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "culture", "delta": 3, "days": 180 }, + { "sector": "housing", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Allow demolition", "fr": "Autoriser les démolitions" }, + "effects": [ + { "oneOff": -0.3 }, + { "sector": "culture", "delta": -3, "days": 180 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "sector": "housing", "delta": 2, "days": 180 } + ] + } + }, + { + "id": "hou_housing_benefit_01", + "category": "housing", + "doc": "memo", + "sender": "min_finance", + "conditions": { "max": { "q:housing": 58 }, "dayMin": 180 }, + "title": { "en": "Reform the housing benefit", "fr": "Réformer l'allocation logement" }, + "body": { + "en": "Housing benefit costs more each year, and economists note that landlords raise rents to capture it. Capping the benefit saves money and pushes tenants to bargain harder.", + "fr": "L'allocation logement coûte plus cher chaque année, et les économistes notent que les bailleurs relèvent les loyers pour la capter. La plafonner fait des économies et pousse les locataires à négocier plus durement." + }, + "yes": { + "label": { "en": "Cap the benefit", "fr": "Plafonner l'allocation" }, + "effects": [ + { "extraSpending": -0.4 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "sector": "housing", "delta": -1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Keep paying in full", "fr": "Continuer à tout verser" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 } + ] + } + }, + { + "id": "hou_tenant_code_01", + "category": "housing", + "doc": "letter", + "sender": "min_justice", + "conditions": { "dayMin": 430 }, + "title": { "en": "A code for tenants", "fr": "Un code des locataires" }, + "body": { + "en": "Tenants wait months for repairs and lose deposits on false pretexts. A tenants' code would set deadlines for repairs and cap deposits at one month. Landlords say small owners will sell up.", + "fr": "Les locataires attendent des mois des réparations et perdent leur caution sous de faux prétextes. Un code des locataires fixerait des délais de réparation et plafonnerait la caution à un mois. Les bailleurs disent que les petits propriétaires vendront." + }, + "yes": { + "label": { "en": "Pass the tenants' code", "fr": "Voter le code des locataires" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "civilRights", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "sector": "housing", "delta": -1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Leave it to contracts", "fr": "S'en tenir aux contrats" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 45 }, + { "sector": "housing", "delta": 1, "days": 120 } + ] + } + }, + { + "id": "hou_rural_homes_01", + "category": "housing", + "doc": "letter", + "sender": "min_housing", + "conditions": { "dayMin": 400 }, + "title": { "en": "Empty farmhouses for city families", "fr": "Des fermes vides pour les familles des villes" }, + "body": { + "en": "Eighty thousand farmhouses stand empty while city rents soar. A scheme to renovate them cheaply for families willing to move would help both, if broadband and buses follow.", + "fr": "Quatre-vingt mille fermes sont vides alors que les loyers urbains s'envolent. Un dispositif de rénovation à bas coût pour les familles prêtes à s'y installer aiderait les deux, si le haut débit et les bus suivent." + }, + "yes": { + "label": { "en": "Fund the scheme", "fr": "Financer le dispositif" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "housing", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "sector": "transport", "delta": -1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Skip it", "fr": "Passer" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "housing", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "hou_cooperatives_01", + "category": "housing", + "doc": "memo", + "sender": "min_housing", + "conditions": { "dayMin": 450 }, + "title": { "en": "Housing cooperatives", "fr": "Coopératives d'habitants" }, + "body": { + "en": "Residents' cooperatives that build and run their own blocks could deliver homes at cost. They need cheap land and loan guarantees; banks say they have no track record.", + "fr": "Des coopératives d'habitants qui construisent et gèrent leurs immeubles pourraient fournir des logements au prix coûtant. Elles ont besoin de terrains bon marché et de garanties de prêt ; les banques leur reprochent de n'avoir pas fait leurs preuves." + }, + "yes": { + "label": { "en": "Back the cooperatives", "fr": "Soutenir les coopératives" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "housing", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Leave it to developers", "fr": "Laisser les promoteurs" }, + "effects": [ + { "sector": "housing", "delta": 1, "days": 120 }, + { "stat": "economy", "delta": 1, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "hou_builders_shortage_01", + "category": "housing", + "doc": "petition", + "sender": "min_industry", + "conditions": { "max": { "unemployment": 6 }, "dayMin": 500 }, + "title": { "en": "No hands left to build", "fr": "Plus de bras pour construire" }, + "body": { + "en": "Building firms report forty thousand unfilled jobs and a three-year order book. They ask to hire foreign crews on short visas. Unions fear wage dumping, but the housing plans depend on them.", + "fr": "Les entreprises du bâtiment signalent quarante mille postes vacants et trois ans de carnet de commandes. Elles demandent à recruter des équipes étrangères sous visa court. Les syndicats craignent le dumping salarial, mais les plans de logement en dépendent." + }, + "yes": { + "label": { "en": "Open short-term visas", "fr": "Ouvrir des visas courts" }, + "effects": [ + { "sector": "housing", "delta": 3, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -2, "days": 45 }, + { "stat": "unrest", "delta": 1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Train locals first", "fr": "Former d'abord les locaux" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "education", "delta": 1, "days": 180 }, + { "sector": "housing", "delta": -1, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "hou_collapse_01", + "category": "housing", + "doc": "telegram", + "sender": "min_interior", + "conditions": { "max": { "q:housing": 56 }, "dayMin": 520 }, + "title": { "en": "Apartment block collapses", "fr": "Un immeuble s'effondre" }, + "body": { + "en": "APARTMENT BLOCK COLLAPSES IN SOUTHERN SUBURB. FORTY DEAD, DOZENS MISSING. BUILT TWENTY YEARS AGO WITHOUT PROPER INSPECTION. STOP.", + "fr": "UN IMMEUBLE S'EFFONDRE DANS LA BANLIEUE SUD. QUARANTE MORTS, DES DIZAINES DE DISPARUS. CONSTRUIT IL Y A VINGT ANS SANS CONTROLE SERIEUX. STOP." + }, + "yes": { + "label": { "en": "Order national inspections", "fr": "Ordonner des inspections" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "housing", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Open an inquiry only", "fr": "Ouvrir seulement une enquête" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "stability", "delta": -1, "days": 45 }, + { "sector": "justice", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "hou_right_to_buy_01", + "category": "housing", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 600 }, + "title": { "en": "Let tenants buy social homes", "fr": "Laisser les locataires acheter leur HLM" }, + "body": { + "en": "Selling social housing to its tenants at a discount would raise cash and create owners. It would also shrink the stock available to the families still waiting.", + "fr": "Vendre les logements sociaux à leurs locataires avec une décote rapporterait de l'argent et créerait des propriétaires. Cela réduirait aussi le parc offert aux familles qui attendent encore." + }, + "yes": { + "label": { "en": "Allow the sales", "fr": "Autoriser les ventes" }, + "effects": [ + { "oneOff": -0.5 }, + { "sector": "housing", "delta": -3, "days": 365 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Keep the stock", "fr": "Conserver le parc" }, + "effects": [ + { "sector": "housing", "delta": 1, "days": 120 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "hou_rent_index_01", + "category": "housing", + "doc": "memo", + "sender": "min_housing", + "conditions": { "min": { "inflation": 3.5 }, "dayMin": 700 }, + "title": { "en": "Link rent rises to inflation", "fr": "Lier les hausses de loyer à l'inflation" }, + "body": { + "en": "Leases let landlords raise rents freely at renewal. The ministry proposes limiting increases to the rate of inflation. Tenants applaud; owners of old buildings say they could not afford repairs.", + "fr": "Les baux permettent aux bailleurs de relever librement les loyers au renouvellement. Le ministère propose de limiter les hausses au taux d'inflation. Les locataires applaudissent ; les propriétaires d'immeubles anciens disent ne plus pouvoir financer les réparations." + }, + "yes": { + "label": { "en": "Limit rent rises", "fr": "Limiter les hausses" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "unrest", "delta": -1, "days": 45 }, + { "sector": "housing", "delta": -2, "days": 180 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Leave rents free", "fr": "Laisser les loyers libres" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "sector": "housing", "delta": 1, "days": 120 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "hou_flood_plain_01", + "category": "housing", + "doc": "report", + "sender": "min_environment", + "conditions": { "dayMin": 800 }, + "title": { "en": "Homes on the flood plain", "fr": "Des logements en zone inondable" }, + "body": { + "en": "After the spring floods, the ministry finds that nine thousand homes stand on the plain under permits that should never have been signed. A buyout would be costly; a ban only covers future building.", + "fr": "Après les crues du printemps, le ministère constate que neuf mille logements se trouvent dans la plaine sous des permis qui n'auraient jamais dû être signés. Un rachat serait coûteux ; une interdiction ne vaut que pour l'avenir." + }, + "yes": { + "label": { "en": "Buy out the worst homes", "fr": "Racheter les pires logements" }, + "effects": [ + { "oneOff": 0.5 }, + { "sector": "environment", "delta": 2, "days": 180 }, + { "sector": "housing", "delta": -1, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Ban new building only", "fr": "Interdire seulement le neuf" }, + "effects": [ + { "sector": "housing", "delta": -1, "days": 120 }, + { "sector": "environment", "delta": 1, "days": 120 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 45 } + ] + } + }, + { + "id": "hou_emergency_plan_01", + "category": "housing", + "doc": "report", + "sender": "min_housing", + "conditions": { "max": { "q:housing": 52 }, "dayMin": 900 }, + "title": { "en": "A national housing emergency", "fr": "Une urgence nationale du logement" }, + "body": { + "en": "Rents have outrun wages for years, and young people live with their parents into their thirties. The ministry asks for an emergency building drive, financed in part by a temporary levy on property sales.", + "fr": "Les loyers devancent les salaires depuis des années, et les jeunes vivent chez leurs parents jusqu'à trente ans passés. Le ministère réclame un plan de construction d'urgence, financé en partie par une taxe temporaire sur les ventes immobilières." + }, + "yes": { + "label": { "en": "Launch the emergency plan", "fr": "Lancer le plan d'urgence" }, + "effects": [ + { "oneOff": 0.8 }, + { "revenue": "other", "delta": 0.1 }, + { "sector": "housing", "delta": 5, "days": 365 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Stay the course", "fr": "Garder le cap" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "opinion", "delta": -4, "days": 45 }, + { "stat": "unrest", "delta": 3, "days": 45 }, + { "sector": "housing", "delta": -2, "days": 180 } + ] + } + }, + { + "id": "hou_requisition_01", + "category": "housing", + "doc": "letter", + "sender": "mayor", + "conditions": { "max": { "q:housing": 56 }, "dayMin": 950 }, + "title": { "en": "Requisition empty buildings", "fr": "Réquisitionner les immeubles vides" }, + "body": { + "en": "The mayor asks for the power to requisition buildings left empty for over three years and let them to the homeless. Owners call it confiscation and promise court action.", + "fr": "Le maire demande le pouvoir de réquisitionner les immeubles vides depuis plus de trois ans pour y loger les sans-abri. Les propriétaires parlent de confiscation et promettent des recours." + }, + "yes": { + "label": { "en": "Grant the power", "fr": "Accorder le pouvoir" }, + "effects": [ + { "sector": "housing", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Refuse requisition", "fr": "Refuser la réquisition" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 45 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "civilRights", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "hou_mortgage_relief_01", + "category": "housing", + "doc": "memo", + "sender": "central_bank", + "conditions": { "min": { "inflation": 4 }, "dayMin": 1000 }, + "title": { "en": "Mortgage rates bite", "fr": "Les taux immobiliers mordent" }, + "body": { + "en": "Rates have climbed with inflation, and a quarter of borrowers now spend half their income on repayments. Banks ask for relief; the central bank warns that cushioning borrowers feeds inflation.", + "fr": "Les taux ont grimpé avec l'inflation, et un quart des emprunteurs consacrent désormais la moitié de leurs revenus aux remboursements. Les banques demandent un soutien ; la Banque centrale prévient qu'amortir le choc nourrit l'inflation." + }, + "yes": { + "label": { "en": "Subsidise mortgage rates", "fr": "Subventionner les taux" }, + "effects": [ + { "extraSpending": 0.4 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 180 }, + { "sector": "housing", "delta": 1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Let rates do their work", "fr": "Laisser les taux agir" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "inflation", "delta": -0.3, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "hou_overcrowding_01", + "category": "housing", + "doc": "report", + "sender": "min_health", + "conditions": { "max": { "q:housing": 56 }, "dayMin": 1050 }, + "title": { "en": "Damp homes, sick children", "fr": "Logements humides, enfants malades" }, + "body": { + "en": "Health visitors report mould and five people to a room in the poorer quarters, with asthma admissions up by a third. A repair fund for landlords, with strings attached, would help slowly.", + "fr": "Les visiteurs de santé signalent de la moisissure et cinq personnes par pièce dans les quartiers pauvres, avec un tiers d'admissions pour asthme en plus. Un fonds de réparation pour les bailleurs, sous conditions, aiderait lentement." + }, + "yes": { + "label": { "en": "Fund repairs with conditions", "fr": "Financer des réparations" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "housing", "delta": 2, "days": 180 }, + { "sector": "health", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Enforce existing law", "fr": "Appliquer la loi existante" }, + "effects": [ + { "revenue": "other", "delta": 0.05 }, + { "sector": "housing", "delta": -1, "days": 120 }, + { "sector": "health", "delta": -1, "days": 120 }, + { "stat": "unrest", "delta": 1, "days": 45 } + ] + } + }, + { + "id": "hou_election_voucher_01", + "category": "housing", + "doc": "memo", + "sender": "press_office", + "conditions": { "dayMin": 1300 }, + "title": { "en": "A promise of a first home", "fr": "La promesse d'un premier logement" }, + "body": { + "en": "With the election in sight, the press office wants a headline: a first-home voucher for every couple under thirty-five. It would cost real money and mostly lift prices.", + "fr": "À l'approche des élections, le porte-parole veut un titre à la une : un chèque premier logement pour tout couple de moins de trente-cinq ans. Il coûterait cher et ferait surtout monter les prix." + }, + "yes": { + "label": { "en": "Announce the voucher", "fr": "Annoncer le chèque" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "opinion", "delta": 4, "days": 45 }, + { "sector": "housing", "delta": 1, "days": 120 }, + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Refuse the gimmick", "fr": "Refuser l'effet d'annonce" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "stability", "delta": 1, "days": 45 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "hou_squatters_01", + "category": "housing", + "doc": "letter", + "sender": "min_interior", + "conditions": { "min": { "unrest": 40 }, "dayMin": 1200 }, + "title": { "en": "Squatters occupy a closed hotel", "fr": "Des squatteurs occupent un hôtel fermé" }, + "body": { + "en": "Three hundred families have occupied a closed hotel in the capital. The owner demands eviction; the mayor asks for a negotiated agreement and a temporary lease.", + "fr": "Trois cents familles ont occupé un hôtel fermé dans la capitale. Le propriétaire exige l'expulsion ; le maire demande un accord négocié et un bail provisoire." + }, + "yes": { + "label": { "en": "Negotiate a temporary lease", "fr": "Négocier un bail provisoire" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "unrest", "delta": -2, "days": 30 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "housing", "delta": 1, "days": 120 }, + { "stat": "order", "delta": -1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Evict at dawn", "fr": "Expulser à l'aube" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 30 }, + { "stat": "civilRights", "delta": -3, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 45 } + ] + } } ] diff --git a/web/data/cards/industry.json b/web/data/cards/industry.json index 9607cfc..e5f7a93 100644 --- a/web/data/cards/industry.json +++ b/web/data/cards/industry.json @@ -1,6 +1,9 @@ [ { - "id": "ind_privatise_energy_01", "category": "industry", "doc": "memo", "sender": "min_industry", + "id": "ind_privatise_energy_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", "conditions": { "notFlags": ["energy_privatised"] }, "title": { "en": "Privatise the energy industry?", "fr": "Privatiser le secteur de l'énergie ?" }, "body": { @@ -20,14 +23,15 @@ }, "no": { "label": { "en": "Keep it public", "fr": "Garder le contrôle public" }, - "effects": [ - { "sector": "industry", "delta": -3, "days": 120 }, - { "stat": "opinion", "delta": 2, "days": 30 } - ] + "effects": [{ "sector": "industry", "delta": -3, "days": 120 }, { "stat": "opinion", "delta": 2, "days": 30 }] } }, { - "id": "ind_energy_strike_01", "category": "industry", "doc": "petition", "sender": "union", "followUpOnly": true, + "id": "ind_energy_strike_01", + "category": "industry", + "doc": "petition", + "sender": "union", + "followUpOnly": true, "title": { "en": "Energy workers walk out", "fr": "Les salariés de l'énergie débrayent" }, "body": { "en": "Since the sale, the energy workers have lost job guarantees. They have walked out, and blackouts are being reported in several districts.", @@ -51,7 +55,10 @@ } }, { - "id": "ind_green_subsidy_01", "category": "industry", "doc": "memo", "sender": "min_industry", + "id": "ind_green_subsidy_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", "title": { "en": "Subsidies for green industry", "fr": "Subventions à l'industrie verte" }, "body": { "en": "Manufacturers of solar panels and batteries ask for state support to get started. The Industry Ministry sees a growth sector; the Treasury sees a bill.", @@ -66,13 +73,13 @@ { "stat": "economy", "delta": 2, "bias": true, "days": 365 } ] }, - "no": { - "label": { "en": "Decline", "fr": "Décliner" }, - "effects": [{ "sector": "industry", "delta": -2, "days": 90 }] - } + "no": { "label": { "en": "Decline", "fr": "Décliner" }, "effects": [{ "sector": "industry", "delta": -2, "days": 90 }] } }, { - "id": "ind_steel_bailout_01", "category": "industry", "doc": "letter", "sender": "min_industry", + "id": "ind_steel_bailout_01", + "category": "industry", + "doc": "letter", + "sender": "min_industry", "title": { "en": "Bail out the steel mill", "fr": "Sauver l'aciérie" }, "body": { "en": "The steel mill in the north is about to close, taking four thousand jobs with it. A rescue loan would keep the furnaces lit for now.", @@ -96,7 +103,10 @@ } }, { - "id": "ind_special_zone_01", "category": "industry", "doc": "memo", "sender": "min_industry", + "id": "ind_special_zone_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", "title": { "en": "A special economic zone", "fr": "Une zone économique spéciale" }, "body": { "en": "Foreign investors would build factories in a tax-free zone with light regulation. Local workers would get jobs, and fewer protections.", @@ -111,9 +121,1849 @@ { "stat": "opinion", "delta": -2, "days": 40 } ] }, + "no": { "label": { "en": "Decline", "fr": "Décliner" }, "effects": [{ "stat": "economy", "delta": -1, "days": 60 }] } + }, + { + "id": "ind_power_tariffs_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", + "title": { "en": "Power tariffs at last", "fr": "Électricité : enfin des tarifs réalistes" }, + "body": { + "en": "The state power utility has not raised its tariffs in six years and now borrows to pay for fuel. A rise would repair its books and land on every household bill the following month.", + "fr": "L'électricien public n'a pas relevé ses tarifs depuis six ans et emprunte pour payer son combustible. Une hausse assainirait ses comptes et figurerait dès le mois suivant sur toutes les factures." + }, + "yes": { + "label": { "en": "Raise the tariffs", "fr": "Relever les tarifs" }, + "effects": [ + { "revenue": "other", "delta": 0.3 }, + { "stat": "inflation", "delta": 0.4, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "sector": "industry", "delta": 2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Freeze prices", "fr": "Geler les prix" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "industry", "delta": -2, "days": 120 } + ] + } + }, + { + "id": "ind_sme_credit_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", + "title": { "en": "A guarantee fund for small firms", "fr": "Un fonds de garantie pour les petites entreprises" }, + "body": { + "en": "Banks lend to large groups and turn away workshops with fewer than fifty staff. A state guarantee fund would absorb most of the default risk, and the losses would reach the budget with the next recession.", + "fr": "Les banques prêtent aux grands groupes et éconduisent les ateliers de moins de cinquante salariés. Un fonds de garantie public absorberait l'essentiel du risque de défaut, et les pertes pèseraient sur le budget à la prochaine récession." + }, + "yes": { + "label": { "en": "Create the fund", "fr": "Créer le fonds" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "growth", "delta": 0.2, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": -0.15, "bias": true, "days": 365 }, + { "sector": "industry", "delta": 3, "days": 180 } + ] + }, + "no": { + "label": { "en": "Leave it to the banks", "fr": "Laisser faire les banques" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 90 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "ind_mining_royalties_01", + "category": "industry", + "doc": "letter", + "sender": "min_finance", + "conditions": { "min": { "debt": 55 } }, + "title": { "en": "Royalties on the Karst mines", "fr": "Redevances sur les mines du Karst" }, + "body": { + "en": "Mining firms pay four percent in royalties on ore that sells at record prices. Finance proposes nine. The firms threaten to freeze investment, and to bring lawyers.", + "fr": "Les compagnies minières versent quatre pour cent de redevances sur un minerai vendu à des prix records. Les Finances proposent neuf. Les compagnies menacent de geler leurs investissements, et d'appeler leurs avocats." + }, + "yes": { + "label": { "en": "Raise royalties", "fr": "Relever les redevances" }, + "effects": [ + { "oneOff": -0.4 }, + { "revenue": "other", "delta": 0.2 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 365 } + ], + "setFlags": ["ind_royalties_up"], + "followUp": { "id": "ind_mine_threat_01", "inDays": 60 } + }, + "no": { + "label": { "en": "Keep four percent", "fr": "Maintenir quatre pour cent" }, + "effects": [ + { "sector": "industry", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "ind_mine_threat_01", + "category": "industry", + "doc": "letter", + "sender": "min_industry", + "followUpOnly": true, + "title": { "en": "The mines freeze their expansion", "fr": "Les mines gèlent leur expansion" }, + "body": { + "en": "The largest mining group has suspended its expansion in the Karst basin and hints at arbitration abroad. Local councils, which count on its payroll, ask for a compromise.", + "fr": "Le premier groupe minier a suspendu son expansion dans le bassin du Karst et évoque un arbitrage à l'étranger. Les communes, qui comptent sur sa masse salariale, réclament un compromis." + }, + "yes": { + "label": { "en": "Offer a tax credit", "fr": "Offrir un crédit d'impôt" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "industry", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Hold the line", "fr": "Tenir bon" }, + "effects": [ + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 180 }, + { "stat": "economy", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + } + }, + { + "id": "ind_textile_closure_01", + "category": "industry", + "doc": "petition", + "sender": "union", + "conditions": { "min": { "unemployment": 6 } }, + "title": { "en": "The last textile mill in Brenne", "fr": "La dernière filature de Brenne" }, + "body": { + "en": "The last textile mill in the Brenne valley will close in spring, and nine hundred jobs with it. The owners found cheaper labour abroad. The workers ask the state to pay part of their wages for two years.", + "fr": "La dernière filature de la vallée de Brenne fermera au printemps, avec neuf cents emplois. Les propriétaires ont trouvé de la main-d'œuvre moins chère à l'étranger. Les salariés demandent à l'État de prendre en charge une partie des salaires pendant deux ans." + }, + "yes": { + "label": { "en": "Subsidise the wages", "fr": "Subventionner les salaires" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "unemployment", "delta": -0.15, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Let the mill close", "fr": "Laisser fermer la filature" }, + "effects": [ + { "stat": "unemployment", "delta": 0.25, "bias": true, "days": 270 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "ind_foreign_carmaker_01", + "category": "industry", + "doc": "letter", + "sender": "min_industry", + "conditions": { "min": { "unemployment": 5 } }, + "title": { "en": "A carmaker wants a plant", "fr": "Un constructeur automobile veut une usine" }, + "body": { + "en": "A foreign carmaker would build an assembly plant for two thousand workers, provided Valdoria offers ten years of tax holiday and free land. Local suppliers would be thrilled; the tax office much less.", + "fr": "Un constructeur étranger bâtirait une usine de montage de deux mille salariés, à condition que la Valdorie offre dix ans d'exonération fiscale et le terrain. Les sous-traitants locaux seraient ravis ; le fisc, beaucoup moins." + }, + "yes": { + "label": { "en": "Grant the holiday", "fr": "Accorder l'exonération" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 540 }, + { "stat": "growth", "delta": 0.2, "bias": true, "days": 540 }, + { "sector": "industry", "delta": 4, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ], + "followUp": { "id": "ind_carmaker_demands_01", "inDays": 150 } + }, + "no": { + "label": { "en": "Refuse the terms", "fr": "Refuser ces conditions" }, + "effects": [{ "sector": "industry", "delta": -2, "days": 120 }, { "stat": "economy", "delta": -1, "days": 60 }] + } + }, + { + "id": "ind_carmaker_demands_01", + "category": "industry", + "doc": "letter", + "sender": "min_industry", + "followUpOnly": true, + "title": { "en": "The carmaker raises its demands", "fr": "Le constructeur durcit ses exigences" }, + "body": { + "en": "The plant is open, and the carmaker now wants a dedicated rail spur and a ceiling on local wage rises. Otherwise, the second production line will go to a neighbouring country.", + "fr": "L'usine est ouverte, et le constructeur exige désormais une voie ferrée dédiée et un plafonnement des hausses de salaires locales. Sinon, la seconde ligne de production partira dans un pays voisin." + }, + "yes": { + "label": { "en": "Meet the demands", "fr": "Céder aux exigences" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -1 } + ] + }, + "no": { + "label": { "en": "Call the bluff", "fr": "Mettre l'entreprise au défi" }, + "effects": [ + { "stat": "economy", "delta": -2, "days": 90 }, + { "stat": "unemployment", "delta": 0.15, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + } + }, + { + "id": "ind_cement_cartel_01", + "category": "industry", + "doc": "report", + "sender": "min_industry", + "title": { "en": "Three cement makers, one price", "fr": "Trois cimentiers, un seul prix" }, + "body": { + "en": "The competition authority finds that three cement makers have shared the market for ten years. Fines would raise building costs for a while; leniency would raise questions about who really runs the market.", + "fr": "L'autorité de la concurrence établit que trois cimentiers se partagent le marché depuis dix ans. Des amendes renchériraient un temps la construction ; la clémence ferait douter de qui dirige vraiment le marché." + }, + "yes": { + "label": { "en": "Impose the fines", "fr": "Infliger les amendes" }, + "effects": [ + { "oneOff": -0.3 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 }, + { "sector": "industry", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Settle quietly", "fr": "Régler discrètement" }, + "effects": [ + { "sector": "industry", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "ind_research_grants_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", + "title": { "en": "Grants for industrial research", "fr": "Des bourses pour la recherche industrielle" }, + "body": { + "en": "Universities and firms propose joint projects on materials and machine tools. A competitive grant scheme would fund the best ones. Results would take years, and the budget line is visible now.", + "fr": "Universités et entreprises proposent des projets communs sur les matériaux et les machines-outils. Un système de subventions sur concours financerait les meilleurs. Les résultats viendront dans des années, et la ligne budgétaire se voit tout de suite." + }, + "yes": { + "label": { "en": "Fund the scheme", "fr": "Financer le dispositif" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "research", "delta": 4, "days": 240 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 540 }, + { "stat": "growth", "delta": 0.1, "bias": true, "days": 540 } + ] + }, + "no": { + "label": { "en": "Spend elsewhere", "fr": "Dépenser ailleurs" }, + "effects": [{ "sector": "research", "delta": -2, "days": 120 }, { "sector": "industry", "delta": -1, "days": 90 }] + }, + "conditions": { "max": { "q:research": 50 } } + }, + { + "id": "ind_chemical_leak_01", + "category": "industry", + "doc": "telegram", + "sender": "min_environment", + "weight": 0.5, + "title": { "en": "Ammonia leak at the chemical works", "fr": "Fuite d'ammoniac à l'usine chimique" }, + "body": { + "en": "AMMONIA LEAK AT THE KARST CHEMICAL WORKS. THREE HUNDRED RESIDENTS EVACUATED. OPERATOR ASKS TO RESTART TOMORROW. STOP.", + "fr": "FUITE D'AMMONIAC A L'USINE CHIMIQUE DU KARST. TROIS CENTS HABITANTS EVACUES. L'EXPLOITANT DEMANDE A REDEMARRER DEMAIN. STOP." + }, + "yes": { + "label": { "en": "Allow the restart", "fr": "Autoriser le redémarrage" }, + "effects": [ + { "stat": "economy", "delta": 1, "days": 30 }, + { "sector": "environment", "delta": -2, "days": 120 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Order an inspection first", "fr": "Exiger d'abord une inspection" }, + "effects": [ + { "sector": "industry", "delta": -2, "days": 90 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "sector": "environment", "delta": 2, "days": 120 } + ] + } + }, + { + "id": "ind_fuel_cap_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", + "conditions": { "min": { "inflation": 3 } }, + "title": { "en": "A cap on pump prices", "fr": "Un plafond sur les prix à la pompe" }, + "body": { + "en": "Pump prices have risen eighteen percent in a month, and drivers have started to blockade a few depots. A price cap would calm the roads. Importers warn that selling below cost means selling less.", + "fr": "Les prix à la pompe ont grimpé de dix-huit pour cent en un mois, et des automobilistes bloquent quelques dépôts. Un plafonnement calmerait les routes. Les importateurs préviennent que vendre à perte, c'est vendre moins." + }, + "yes": { + "label": { "en": "Cap the prices", "fr": "Plafonner les prix" }, + "effects": [ + { "extraSpending": 0.3 }, + { "stat": "inflation", "delta": -0.4, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 4, "days": 45 } + ], + "followUp": { "id": "ind_fuel_shortage_01", "inDays": 75 } + }, + "no": { + "label": { "en": "Let the market clear", "fr": "Laisser jouer le marché" }, + "effects": [ + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + } + }, + { + "id": "ind_fuel_shortage_01", + "category": "industry", + "doc": "report", + "sender": "min_industry", + "followUpOnly": true, + "title": { "en": "Stations run dry under the cap", "fr": "Des stations à sec sous le plafond" }, + "body": { + "en": "Under the cap, importers sell less and some stations have run dry. Queues have formed in three provinces, and the haulage associations speak of paralysis.", + "fr": "Sous le plafond, les importateurs vendent moins et certaines stations sont à sec. Des files se forment dans trois provinces, et les transporteurs parlent de paralysie." + }, + "yes": { + "label": { "en": "Lift the cap", "fr": "Lever le plafond" }, + "effects": [ + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Pay importers a margin", "fr": "Verser une marge aux importeurs" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "ind_coal_phaseout_01", + "category": "industry", + "doc": "memo", + "sender": "min_environment", + "title": { "en": "Close the three coal plants?", "fr": "Fermer les trois centrales à charbon ?" }, + "body": { + "en": "The three coal plants supply a fifth of the electricity and employ six thousand people. The Environment Ministry wants them closed within two years. Cleaner air is on offer, with dearer power attached.", + "fr": "Les trois centrales à charbon fournissent un cinquième de l'électricité et emploient six mille personnes. Le ministère de l'Environnement veut les fermer d'ici deux ans. L'air serait plus pur, et le courant plus cher." + }, + "yes": { + "label": { "en": "Set the closure date", "fr": "Fixer la date de fermeture" }, + "effects": [ + { "sector": "environment", "delta": 4, "days": 240 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 365 }, + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 365 } + ], + "setFlags": ["ind_coal_closing"], + "followUp": { "id": "ind_coal_towns_01", "inDays": 120 } + }, + "no": { + "label": { "en": "Keep the plants running", "fr": "Maintenir les centrales" }, + "effects": [ + { "sector": "environment", "delta": -3, "days": 180 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "ind_coal_towns_01", + "category": "industry", + "doc": "petition", + "sender": "union", + "followUpOnly": true, + "title": { "en": "The coal towns ask for a future", "fr": "Les villes du charbon réclament un avenir" }, + "body": { + "en": "Two coal towns now face closure with no replacement employer in sight. Residents ask for a transition fund, retraining and early retirement for the oldest workers.", + "fr": "Deux villes du charbon voient la fermeture venir sans employeur de remplacement. Les habitants demandent un fonds de transition, des reconversions et des départs anticipés pour les plus âgés." + }, + "yes": { + "label": { "en": "Fund the transition", "fr": "Financer la transition" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "unemployment", "delta": -0.15, "bias": true, "days": 365 }, + { "stat": "stability", "delta": 2, "days": 60 }, + { "stat": "unrest", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Leave it to the market", "fr": "S'en remettre au marché" }, + "effects": [ + { "stat": "unemployment", "delta": 0.3, "bias": true, "days": 365 }, + { "stat": "unrest", "delta": 4, "days": 50 }, + { "stat": "opinion", "delta": -3, "days": 45 } + ] + } + }, + { + "id": "ind_assembly_robots_01", + "category": "industry", + "doc": "petition", + "sender": "union", + "title": { "en": "Robots on the assembly line", "fr": "Des robots sur la chaîne de montage" }, + "body": { + "en": "The biggest electronics plant wants to install robots on two lines, replacing four hundred jobs and doubling output. The union asks for a veto; the owners ask for the right to stay competitive.", + "fr": "La plus grande usine d'électronique veut installer des robots sur deux lignes, supprimant quatre cents postes et doublant la production. Le syndicat réclame un droit de veto ; les propriétaires, le droit de rester compétitifs." + }, + "yes": { + "label": { "en": "Allow the automation", "fr": "Autoriser l'automatisation" }, + "effects": [ + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "growth", "delta": 0.2, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 365 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Protect the jobs", "fr": "Protéger les emplois" }, + "effects": [ + { "sector": "industry", "delta": -2, "days": 120 }, + { "stat": "stability", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "ind_safety_inspectors_01", + "category": "industry", + "doc": "petition", + "sender": "union", + "title": { "en": "Thirty more factory inspectors", "fr": "Trente inspecteurs du travail de plus" }, + "body": { + "en": "Eleven workers died in factories last year, and the labour inspectorate visits each site once every nine years. The union asks for thirty more inspectors. Employers call it harassment with a pension plan.", + "fr": "Onze ouvriers sont morts en usine l'an dernier, et l'inspection du travail passe sur chaque site tous les neuf ans. Le syndicat réclame trente inspecteurs de plus. Le patronat parle de harcèlement avec retraite à la clé." + }, + "yes": { + "label": { "en": "Hire the inspectors", "fr": "Recruter les inspecteurs" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "administration", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "sector": "industry", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Rely on self-checks", "fr": "Se fier aux autocontrôles" }, + "effects": [ + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "ind_export_credit_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", + "title": { "en": "Export credit insurance", "fr": "Une assurance-crédit à l'export" }, + "body": { + "en": "Valdorian machine builders lose contracts because they cannot insure payment from distant buyers. A state export credit agency would take that risk. Some buyers will default, as buyers do.", + "fr": "Les constructeurs de machines valdoriens perdent des marchés faute d'assurer le paiement d'acheteurs lointains. Une agence publique de crédit à l'export prendrait ce risque. Certains acheteurs feront défaut, comme font les acheteurs." + }, + "yes": { + "label": { "en": "Create the agency", "fr": "Créer l'agence" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "growth", "delta": 0.15, "bias": true, "days": 365 }, + { "sector": "industry", "delta": 3, "days": 180 } + ] + }, "no": { "label": { "en": "Decline", "fr": "Décliner" }, - "effects": [{ "stat": "economy", "delta": -1, "days": 60 }] + "effects": [{ "sector": "industry", "delta": -2, "days": 120 }, { "stat": "economy", "delta": -1, "days": 60 }] + }, + "conditions": { "max": { "economy": 58 } } + }, + { + "id": "ind_shipyard_01", + "category": "industry", + "doc": "letter", + "sender": "min_industry", + "title": { "en": "The state shipyard runs out of orders", "fr": "Le chantier naval public n'a plus de commandes" }, + "body": { + "en": "The state shipyard has finished its last hull and has no new order. Eighteen hundred welders and designers wait to learn whether the government wants a navy, a ferry fleet, or a car park.", + "fr": "Le chantier naval public a livré sa dernière coque et n'a aucune commande. Dix-huit cents soudeurs et dessinateurs attendent de savoir si l'État veut une marine, une flotte de ferries ou un parking." + }, + "yes": { + "label": { "en": "Order new vessels", "fr": "Commander de nouveaux navires" }, + "effects": [ + { "oneOff": 0.6 }, + { "stat": "unemployment", "delta": -0.15, "bias": true, "days": 365 }, + { "sector": "industry", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Close the yard", "fr": "Fermer le chantier" }, + "effects": [ + { "stat": "unemployment", "delta": 0.3, "bias": true, "days": 365 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "extraSpending": -0.1 } + ] + }, + "conditions": { "min": { "unemployment": 5.5 } } + }, + { + "id": "ind_gas_deal_01", + "category": "industry", + "doc": "letter", + "sender": "min_industry", + "conditions": { "dayMin": 90 }, + "title": { "en": "A twelve-year gas contract", "fr": "Un contrat de gaz de douze ans" }, + "body": { + "en": "A neighbouring supplier offers a fixed price for gas over twelve years, with take-or-pay clauses. Industry would sleep better; the Finance Ministry would wonder what the price looks like in year nine.", + "fr": "Un fournisseur voisin propose un prix fixe du gaz sur douze ans, avec des clauses d'enlèvement obligatoire. L'industrie dormirait mieux ; le ministère des Finances se demanderait ce que vaut ce prix en neuvième année." + }, + "yes": { + "label": { "en": "Sign for twelve years", "fr": "Signer pour douze ans" }, + "effects": [ + { "stat": "inflation", "delta": -0.3, "bias": true, "days": 540 }, + { "sector": "industry", "delta": 2, "days": 180 }, + { "stat": "stability", "delta": 1, "days": 60 } + ], + "setFlags": ["ind_gas_deal"], + "followUp": { "id": "ind_gas_price_01", "inDays": 240 } + }, + "no": { + "label": { "en": "Buy on the spot market", "fr": "Acheter au comptant" }, + "effects": [ + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 365 }, + { "sector": "industry", "delta": -2, "days": 120 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "ind_gas_price_01", + "category": "industry", + "doc": "letter", + "sender": "min_finance", + "followUpOnly": true, + "title": { "en": "Gas is cheaper than the contract", "fr": "Le gaz coûte moins que le contrat" }, + "body": { + "en": "Spot prices have halved since the signing, and the opposition calls the contract a costly mistake. The supplier insists the contract stands and reminds the cabinet that it was freely signed.", + "fr": "Les prix au comptant ont diminué de moitié depuis la signature, et l'opposition parle d'une erreur coûteuse. Le fournisseur affirme que le contrat tient et rappelle qu'il a été signé librement." + }, + "yes": { + "label": { "en": "Honour the contract", "fr": "Honorer le contrat" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -3, "days": 40 } + ] + }, + "no": { + "label": { "en": "Demand renegotiation", "fr": "Exiger une renégociation" }, + "effects": [ + { "stat": "softPower", "delta": -2, "days": 90 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "oneOff": -0.2 } + ], + "setFlags": ["ind_gas_dispute"], + "followUp": { "id": "ind_gas_cutoff_01", "inDays": 90 } + } + }, + { + "id": "ind_gas_cutoff_01", + "category": "industry", + "doc": "telegram", + "sender": "min_industry", + "followUpOnly": true, + "title": { "en": "The supplier halts deliveries", "fr": "Le fournisseur coupe les livraisons" }, + "body": { + "en": "SUPPLIER HALTS GAS DELIVERIES PENDING ARBITRATION. RESERVES COVER NINE WEEKS. FACTORIES ASK WHAT COMES NEXT. STOP.", + "fr": "LE FOURNISSEUR SUSPEND LES LIVRAISONS DE GAZ DANS L'ATTENTE D'UN ARBITRAGE. LES RESERVES TIENNENT NEUF SEMAINES. LES USINES DEMANDENT LA SUITE. STOP." + }, + "yes": { + "label": { "en": "Pay the old price", "fr": "Payer l'ancien prix" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "stability", "delta": 1, "days": 30 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Ration industrial gas", "fr": "Rationner le gaz industriel" }, + "effects": [ + { "stat": "economy", "delta": -3, "days": 60 }, + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 120 }, + { "sector": "industry", "delta": -4, "days": 120 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + } + }, + { + "id": "ind_solar_tender_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 90 }, + "title": { "en": "A tender for solar farms", "fr": "Un appel d'offres pour des fermes solaires" }, + "body": { + "en": "Developers would build solar farms in the dry south if the state guarantees the purchase price for fifteen years. Electricity would get cheaper, assuming the sun and the Treasury both keep their promises.", + "fr": "Des promoteurs bâtiraient des fermes solaires dans le sud aride si l'État garantit le prix d'achat pendant quinze ans. L'électricité serait moins chère, à condition que le soleil et le Trésor tiennent leurs promesses." + }, + "yes": { + "label": { "en": "Launch the tender", "fr": "Lancer l'appel d'offres" }, + "effects": [ + { "extraSpending": 0.15 }, + { "sector": "environment", "delta": 3, "days": 240 }, + { "sector": "industry", "delta": 2, "days": 180 }, + { "stat": "inflation", "delta": -0.2, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Postpone", "fr": "Reporter" }, + "effects": [ + { "sector": "environment", "delta": -1, "days": 90 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 365 } + ] + } + }, + { + "id": "ind_industrial_park_01", + "category": "industry", + "doc": "petition", + "sender": "mayor", + "conditions": { "dayMin": 90, "min": { "unemployment": 6 } }, + "title": { "en": "An industrial park on old railway land", "fr": "Un parc industriel sur une friche ferroviaire" }, + "body": { + "en": "A provincial town offers its disused railway yards for an industrial park and asks the state to pay for roads and utilities. The town promises jobs; the province next door promises the same, only cheaper.", + "fr": "Une ville de province propose ses anciennes friches ferroviaires pour un parc industriel et demande à l'État de payer routes et réseaux. La ville promet des emplois ; la province voisine promet la même chose, en moins cher." + }, + "yes": { + "label": { "en": "Fund the park", "fr": "Financer le parc" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "industry", "delta": 3, "days": 180 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Decline", "fr": "Décliner" }, + "effects": [{ "stat": "opinion", "delta": -2, "days": 40 }, { "sector": "industry", "delta": -1, "days": 90 }] + } + }, + { + "id": "ind_data_centre_01", + "category": "industry", + "doc": "letter", + "sender": "min_industry", + "conditions": { "dayMin": 120 }, + "title": { "en": "A data centre wants cheap power", "fr": "Un centre de données veut du courant bon marché" }, + "body": { + "en": "A foreign operator would build a data centre outside the capital if it gets guaranteed power at a discount. It would employ sixty people and pay generously for the land. It would also draw as much electricity as a mid-sized town.", + "fr": "Un opérateur étranger bâtirait un centre de données près de la capitale s'il obtient une électricité garantie à prix réduit. Il emploierait soixante personnes et paierait généreusement le terrain. Il consommerait aussi autant qu'une ville moyenne." + }, + "yes": { + "label": { "en": "Guarantee the power", "fr": "Garantir l'électricité" }, + "effects": [ + { "stat": "economy", "delta": 1.5, "bias": true, "days": 365 }, + { "sector": "industry", "delta": 2, "days": 180 }, + { "stat": "inflation", "delta": 0.1, "bias": true, "days": 365 } + ], + "followUp": { "id": "ind_datacentre_grid_01", "inDays": 150 } + }, + "no": { + "label": { "en": "Send the operator away", "fr": "Éconduire l'opérateur" }, + "effects": [{ "stat": "economy", "delta": -1, "days": 60 }, { "sector": "research", "delta": -1, "days": 90 }] + } + }, + { + "id": "ind_datacentre_grid_01", + "category": "industry", + "doc": "report", + "sender": "min_industry", + "followUpOnly": true, + "title": { "en": "Evening outages near the data centre", "fr": "Coupures du soir près du centre de données" }, + "body": { + "en": "The data centre now takes the power of a mid-sized town, and the evening peak has begun to cause outages in two districts. Residents have noticed the connection, and so has the opposition.", + "fr": "Le centre de données absorbe désormais l'électricité d'une ville moyenne, et la pointe du soir provoque des coupures dans deux quartiers. Les habitants ont fait le lien, et l'opposition aussi." + }, + "yes": { + "label": { "en": "Cap its consumption", "fr": "Plafonner sa consommation" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "sector": "industry", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Build a new power line", "fr": "Construire une nouvelle ligne" }, + "effects": [ + { "oneOff": 0.5 }, + { "sector": "infrastructure", "delta": 3, "days": 180 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "ind_training_levy_01", + "category": "industry", + "doc": "memo", + "sender": "min_labour", + "conditions": { "dayMin": 150, "min": { "unemployment": 5 } }, + "title": { "en": "A levy to train welders", "fr": "Une taxe pour former des soudeurs" }, + "body": { + "en": "Employers complain of missing welders and machinists, yet few of them train anyone. A levy of one percent of payroll, refunded to firms that take apprentices, would change habits. Employers would call it a tax with a diploma.", + "fr": "Les employeurs se plaignent de manquer de soudeurs et de mécaniciens, mais peu forment qui que ce soit. Une taxe de un pour cent de la masse salariale, remboursée aux entreprises qui prennent des apprentis, changerait les habitudes. Le patronat y verra un impôt avec diplôme." + }, + "yes": { + "label": { "en": "Introduce the levy", "fr": "Instaurer la taxe" }, + "effects": [ + { "revenue": "other", "delta": 0.15 }, + { "stat": "unemployment", "delta": -0.15, "bias": true, "days": 365 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Leave training to firms", "fr": "Laisser les entreprises former" }, + "effects": [ + { "sector": "industry", "delta": -2, "days": 120 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 365 } + ] + } + }, + { + "id": "ind_hydrogen_pilot_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 150 }, + "title": { "en": "A hydrogen pilot at the steelworks", "fr": "Un pilote hydrogène à l'aciérie" }, + "body": { + "en": "A consortium proposes a pilot plant making hydrogen from surplus solar power, to fire the northern steelworks. The technology works in laboratories. In the budget, it works only with subsidies.", + "fr": "Un consortium propose une usine pilote produisant de l'hydrogène à partir du surplus solaire, pour alimenter l'aciérie du nord. La technologie fonctionne en laboratoire. Dans le budget, elle ne fonctionne qu'avec des subventions." + }, + "yes": { + "label": { "en": "Fund the pilot", "fr": "Financer le pilote" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "industry", "delta": 2, "days": 180 }, + { "sector": "research", "delta": 3, "days": 180 }, + { "sector": "environment", "delta": 2, "days": 180 } + ], + "followUp": { "id": "ind_hydrogen_results_01", "inDays": 300 } + }, + "no": { + "label": { "en": "Let others try first", "fr": "Laisser d'autres essayer d'abord" }, + "effects": [{ "sector": "research", "delta": -1, "days": 90 }, { "sector": "environment", "delta": -1, "days": 90 }] + } + }, + { + "id": "ind_hydrogen_results_01", + "category": "industry", + "doc": "report", + "sender": "min_industry", + "followUpOnly": true, + "title": { "en": "The hydrogen pilot delivers", "fr": "Le pilote hydrogène livre ses résultats" }, + "body": { + "en": "The pilot plant works, at three times the cost of the old method. The consortium asks for a full-scale plant and a guaranteed buyer for twenty years. Steel buyers abroad have started to ask about green labels.", + "fr": "L'usine pilote fonctionne, pour trois fois le coût de l'ancienne méthode. Le consortium demande une usine à pleine échelle et un acheteur garanti pendant vingt ans. Des acheteurs d'acier étrangers s'enquièrent déjà de labels verts." + }, + "yes": { + "label": { "en": "Scale it up", "fr": "Passer à l'échelle" }, + "effects": [ + { "oneOff": 0.7 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 540 }, + { "sector": "environment", "delta": 3, "days": 240 }, + { "stat": "softPower", "delta": 2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Stop at the pilot", "fr": "S'arrêter au pilote" }, + "effects": [ + { "stat": "softPower", "delta": -1, "days": 60 }, + { "sector": "research", "delta": -2, "days": 120 }, + { "extraSpending": -0.1 } + ] + } + }, + { + "id": "ind_four_day_week_01", + "category": "industry", + "doc": "petition", + "sender": "union", + "conditions": { "dayMin": 180, "max": { "unemployment": 7 } }, + "title": { "en": "A four-day week at the car plant", "fr": "La semaine de quatre jours à l'usine" }, + "body": { + "en": "The union asks to trial a four-day week at the car plant, with the same pay. Productivity would have to rise by a quarter to cover it. Employers observe that a trial is how everything starts.", + "fr": "Le syndicat demande l'essai d'une semaine de quatre jours à l'usine automobile, à salaire égal. La productivité devrait augmenter d'un quart pour compenser. Le patronat observe qu'un essai est toujours le début de quelque chose." + }, + "yes": { + "label": { "en": "Allow the trial", "fr": "Autoriser l'essai" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 270 }, + { "stat": "economy", "delta": -1, "days": 90 }, + { "sector": "industry", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "ind_mine_collapse_01", + "category": "industry", + "doc": "telegram", + "sender": "min_industry", + "weight": 0.5, + "conditions": { "dayMin": 200 }, + "title": { "en": "Gallery collapse at the Karst mine", "fr": "Éboulement à la mine du Karst" }, + "body": { + "en": "GALLERY COLLAPSE AT THE KARST MINE. FOURTEEN MINERS TRAPPED. OWNER BLAMES THE INSPECTORS, INSPECTORS BLAME THE OWNER. STOP.", + "fr": "EBOULEMENT DANS UNE GALERIE DE LA MINE DU KARST. QUATORZE MINEURS PIEGES. L'EXPLOITANT ACCUSE LES INSPECTEURS, LES INSPECTEURS ACCUSENT L'EXPLOITANT. STOP." + }, + "yes": { + "label": { "en": "Mobilise state rescue teams", "fr": "Mobiliser les secours d'État" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "armyLoyalty", "delta": 1 }, + { "sector": "industry", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Leave it to the owner", "fr": "Laisser faire l'exploitant" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 40 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "stat": "economy", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "ind_patent_box_01", + "category": "industry", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 200, "max": { "q:research": 55 } }, + "title": { "en": "Half rate for patent income", "fr": "Demi-taux sur les revenus de brevets" }, + "body": { + "en": "Firms that patent their inventions in Valdoria would pay half the corporate rate on the resulting income. Inventors would stay. The Treasury would also forgo revenue from firms that were going to patent here anyway.", + "fr": "Les entreprises qui déposent leurs brevets en Valdorie paieraient la moitié du taux d'impôt sur les sociétés sur les revenus qui en découlent. Les inventeurs resteraient. Le Trésor renoncerait aussi à des recettes d'entreprises qui auraient breveté ici de toute façon." + }, + "yes": { + "label": { "en": "Create the regime", "fr": "Créer le régime" }, + "effects": [ + { "revenue": "other", "delta": -0.2 }, + { "sector": "research", "delta": 3, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Keep the standard rate", "fr": "Maintenir le taux normal" }, + "effects": [{ "sector": "research", "delta": -1, "days": 90 }, { "stat": "economy", "delta": -1, "days": 60 }] + } + }, + { + "id": "ind_one_stop_shop_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 120, "max": { "q:administration": 55 } }, + "title": { "en": "One counter for business licences", "fr": "Un guichet unique pour les licences" }, + "body": { + "en": "Opening a workshop requires eleven licences from seven offices. A single online counter would cut the wait from nine months to six weeks. The seven offices hold seven views on the matter.", + "fr": "Ouvrir un atelier exige onze licences délivrées par sept services. Un guichet unique en ligne ramènerait l'attente de neuf mois à six semaines. Les sept services ont sept avis sur la question." + }, + "yes": { + "label": { "en": "Open the counter", "fr": "Ouvrir le guichet" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "growth", "delta": 0.15, "bias": true, "days": 365 }, + { "sector": "administration", "delta": 3, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep the current system", "fr": "Garder le système actuel" }, + "effects": [{ "stat": "economy", "delta": -1, "days": 60 }, { "sector": "administration", "delta": -1, "days": 90 }] + } + }, + { + "id": "ind_fertiliser_gas_01", + "category": "industry", + "doc": "letter", + "sender": "min_industry", + "conditions": { "dayMin": 250, "min": { "inflation": 3 } }, + "title": { "en": "Gas for the fertiliser plant", "fr": "Du gaz pour l'usine d'engrais" }, + "body": { + "en": "The national fertiliser plant cannot pay current gas prices and will close within the month, leaving farmers to depend on imports. Subsidised gas would keep it running, for as long as the subsidy lasts.", + "fr": "L'usine nationale d'engrais ne peut plus payer le gaz au prix actuel et fermera d'ici un mois, laissant les agriculteurs dépendre des importations. Du gaz subventionné la maintiendrait en activité, tant que dure la subvention." + }, + "yes": { + "label": { "en": "Subsidise the gas", "fr": "Subventionner le gaz" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "industry", "delta": 2, "days": 120 }, + { "stat": "inflation", "delta": -0.1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Let the plant close", "fr": "Laisser l'usine fermer" }, + "effects": [ + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "ind_relocation_threat_01", + "category": "industry", + "doc": "letter", + "sender": "min_industry", + "conditions": { "dayMin": 250, "min": { "unemployment": 6 } }, + "title": { "en": "The biggest employer threatens to leave", "fr": "Le premier employeur menace de partir" }, + "body": { + "en": "An electronics group, the largest private employer, will move to a cheaper neighbour unless its corporate tax drops by two points. The Finance Ministry calls it a negotiation; the group calls it a deadline.", + "fr": "Un groupe d'électronique, premier employeur privé, déménagera chez un voisin moins cher si son impôt sur les sociétés baisse de deux points. Le ministère des Finances parle de négociation ; le groupe, d'échéance." + }, + "yes": { + "label": { "en": "Cut its tax", "fr": "Alléger son impôt" }, + "effects": [ + { "revenue": "corporate", "delta": -2 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Let it leave", "fr": "Le laisser partir" }, + "effects": [ + { "stat": "unemployment", "delta": 0.3, "bias": true, "days": 365 }, + { "stat": "economy", "delta": -2, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "ind_energy_coop_01", + "category": "industry", + "doc": "memo", + "sender": "min_environment", + "conditions": { "dayMin": 300 }, + "title": { "en": "Village energy cooperatives", "fr": "Des coopératives d'énergie villageoises" }, + "body": { + "en": "Hill villages want to form cooperatives that sell solar and small-hydro power to the grid at a fixed price. The utility notes that the grid was not built for a thousand small producers.", + "fr": "Des villages de montagne veulent créer des coopératives vendant leur électricité solaire et hydraulique au réseau à prix fixe. L'électricien fait remarquer que le réseau n'a pas été conçu pour mille petits producteurs." + }, + "yes": { + "label": { "en": "Back the cooperatives", "fr": "Soutenir les coopératives" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "environment", "delta": 3, "days": 240 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "sector": "infrastructure", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Keep the utility's monopoly", "fr": "Garder le monopole public" }, + "effects": [ + { "sector": "environment", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "infrastructure", "delta": 1, "days": 90 } + ] + } + }, + { + "id": "ind_exec_bonuses_01", + "category": "industry", + "doc": "memo", + "sender": "press_office", + "conditions": { "dayMin": 300, "max": { "opinion": 60 } }, + "title": { "en": "Bonuses at the state mining company", "fr": "Primes à la compagnie minière d'État" }, + "body": { + "en": "The state mining company has paid its managers a record bonus in a year of losses, and the press has the figures. The board replies that the contracts were signed years ago, and that contracts are contracts.", + "fr": "La compagnie minière d'État a versé à ses cadres une prime record après une année de pertes, et la presse détient les chiffres. Le conseil répond que les contrats datent de plusieurs années, et qu'un contrat est un contrat." + }, + "yes": { + "label": { "en": "Cap executive pay", "fr": "Plafonner les rémunérations" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "sector": "industry", "delta": -1, "days": 90 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Honour the contracts", "fr": "Honorer les contrats" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 40 }, + { "sector": "industry", "delta": 1, "days": 90 } + ] + } + }, + { + "id": "ind_small_reactor_01", + "category": "industry", + "doc": "report", + "sender": "min_industry", + "conditions": { "dayMin": 350 }, + "title": { "en": "A small reactor in the north", "fr": "Un petit réacteur dans le nord" }, + "body": { + "en": "A consortium proposes a small modular reactor in the northern basin: clean baseload power, they say. Cost overruns on such projects are a matter of public record, and the neighbours are listening.", + "fr": "Un consortium propose un petit réacteur modulaire dans le bassin du nord : une énergie de base propre, assure-t-il. Les dépassements de coûts de tels projets sont de notoriété publique, et les voisins écoutent." + }, + "yes": { + "label": { "en": "Approve the reactor", "fr": "Approuver le réacteur" }, + "effects": [ + { "oneOff": 1 }, + { "sector": "environment", "delta": 2, "days": 365 }, + { "sector": "industry", "delta": 3, "bias": true, "days": 540 }, + { "stat": "inflation", "delta": -0.3, "bias": true, "days": 540 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Shelve the plan", "fr": "Classer le projet" }, + "effects": [ + { "sector": "industry", "delta": -1, "days": 120 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 365 } + ] + } + }, + { + "id": "ind_winter_gas_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 400 }, + "title": { "en": "Winter gas reserves", "fr": "Les réserves de gaz pour l'hiver" }, + "body": { + "en": "Storage tanks hold only sixty percent of the winter target, and the buying window is closing. Filling them now costs a premium. Filling them late may cost more, or not be possible.", + "fr": "Les réservoirs ne contiennent que soixante pour cent de l'objectif hivernal, et la fenêtre d'achat se referme. Les remplir maintenant coûte une prime. Les remplir plus tard coûtera peut-être plus, ou sera impossible." + }, + "yes": { + "label": { "en": "Buy now at a premium", "fr": "Acheter maintenant, plus cher" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "stability", "delta": 1, "days": 40 }, + { "stat": "inflation", "delta": -0.1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Wait for lower prices", "fr": "Attendre une baisse des prix" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "ind_insolvency_pause_01", + "category": "industry", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 420, "max": { "economy": 45 } }, + "title": { "en": "A pause on bankruptcies", "fr": "Une pause sur les faillites" }, + "body": { + "en": "Bankruptcies are up by a third. Firms ask for a six-month moratorium on insolvency proceedings. Creditors, banks included, ask what exactly they are meant to do for six months.", + "fr": "Les faillites ont augmenté d'un tiers. Les entreprises demandent un moratoire de six mois sur les procédures collectives. Les créanciers, banques comprises, demandent ce qu'ils sont censés faire pendant six mois." + }, + "yes": { + "label": { "en": "Declare the moratorium", "fr": "Décréter le moratoire" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 180 }, + { "stat": "stability", "delta": 1, "days": 40 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Let the law run", "fr": "Laisser la loi s'appliquer" }, + "effects": [ + { "stat": "unemployment", "delta": 0.3, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "ind_miners_strike_01", + "category": "industry", + "doc": "petition", + "sender": "union", + "conditions": { "dayMin": 450 }, + "title": { "en": "Miners ask for a twelve percent raise", "fr": "Les mineurs réclament douze pour cent" }, + "body": { + "en": "The Karst miners demand a twelve percent raise after a year of record ore prices. The company calls it unaffordable, the miners call it overdue, and the pit has already stopped for two shifts.", + "fr": "Les mineurs du Karst réclament douze pour cent d'augmentation après une année de prix records du minerai. La compagnie parle d'un coût insoutenable, les mineurs d'un rattrapage, et le puits a déjà cessé deux postes." + }, + "yes": { + "label": { "en": "Back the raise", "fr": "Appuyer l'augmentation" }, + "effects": [ + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": -3, "days": 40 }, + { "sector": "industry", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Call for restraint", "fr": "Appeler à la modération" }, + "effects": [ + { "stat": "unrest", "delta": 4, "days": 40 }, + { "stat": "economy", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "ind_steel_tariffs_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 500 }, + "title": { "en": "Thirty per cent on steel imports", "fr": "Trente pour cent sur l'acier importé" }, + "body": { + "en": "Imported steel now sells below Valdorian production cost. A thirty percent tariff would save the northern steelworks and raise prices for every builder and carmaker. Trading partners will notice.", + "fr": "L'acier importé se vend désormais sous le coût de production valdorien. Un droit de trente pour cent sauverait l'aciérie du nord et renchérirait le matériau pour tous les constructeurs. Les partenaires commerciaux le remarqueront." + }, + "yes": { + "label": { "en": "Impose the tariff", "fr": "Imposer les droits" }, + "effects": [ + { "revenue": "other", "delta": 0.15 }, + { "sector": "industry", "delta": 4, "days": 180 }, + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep trade open", "fr": "Garder le marché ouvert" }, + "effects": [ + { "sector": "industry", "delta": -3, "days": 120 }, + { "stat": "unemployment", "delta": 0.15, "bias": true, "days": 270 }, + { "stat": "inflation", "delta": -0.1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "ind_battery_pact_01", + "category": "industry", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "dayMin": 500 }, + "title": { "en": "A pact against battery subsidies", "fr": "Un pacte contre les aides aux batteries" }, + "body": { + "en": "Two larger states subsidise their battery makers heavily, and Valdorian suppliers are losing contracts. A regional pact would ban such subsidies in exchange for open markets. Valdoria would also give up the subsidies it was about to grant.", + "fr": "Deux États plus grands subventionnent largement leurs fabricants de batteries, et les sous-traitants valdoriens perdent des marchés. Un pacte régional interdirait ces aides contre l'ouverture des marchés. La Valdorie renoncerait aussi aux aides qu'elle s'apprêtait à accorder." + }, + "yes": { + "label": { "en": "Join the pact", "fr": "Rejoindre le pacte" }, + "effects": [ + { "stat": "softPower", "delta": 3, "days": 60 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "sector": "industry", "delta": -2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Stay outside", "fr": "Rester à l'écart" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "industry", "delta": 3, "days": 180 }, + { "stat": "softPower", "delta": -2, "days": 60 } + ] + } + }, + { + "id": "ind_windfall_tax_01", + "category": "industry", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 450, "min": { "inflation": 4 } }, + "title": { "en": "A levy on energy windfalls", "fr": "Une taxe sur les surprofits de l'énergie" }, + "body": { + "en": "Energy producers post record profits while households pay record bills. A temporary windfall levy would fund a relief payment. The producers call it confiscation, and the tax office calls it Tuesday.", + "fr": "Les producteurs d'énergie affichent des profits records alors que les ménages paient des factures records. Une taxe temporaire sur les surprofits financerait une aide. Les producteurs parlent de confiscation, le fisc de routine." + }, + "yes": { + "label": { "en": "Levy the windfall", "fr": "Taxer les surprofits" }, + "effects": [ + { "oneOff": -0.8 }, + { "stat": "opinion", "delta": 4, "days": 40 }, + { "sector": "industry", "delta": -2, "days": 120 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Spare the producers", "fr": "Épargner les producteurs" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "sector": "industry", "delta": 2, "days": 120 } + ] + } + }, + { + "id": "ind_energy_dividends_01", + "category": "industry", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 500, "notFlags": ["energy_privatised"] }, + "title": { "en": "The energy company keeps its dividends", "fr": "L'énergéticien veut garder ses dividendes" }, + "body": { + "en": "The state energy company asks to keep its dividends for three years to modernise its plants and grid. The Treasury had pencilled in those dividends for pensions, in ink.", + "fr": "L'entreprise publique d'énergie demande à conserver ses dividendes pendant trois ans pour moderniser centrales et réseau. Le Trésor avait déjà prévu ces dividendes pour les retraites, et à l'encre." + }, + "yes": { + "label": { "en": "Let it reinvest", "fr": "Lui laisser réinvestir" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "industry", "delta": 3, "days": 180 }, + { "sector": "infrastructure", "delta": 2, "days": 180 }, + { "stat": "inflation", "delta": -0.1, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Take the dividends", "fr": "Prélever les dividendes" }, + "effects": [ + { "oneOff": -0.5 }, + { "sector": "industry", "delta": -2, "days": 120 }, + { "sector": "infrastructure", "delta": -2, "days": 120 } + ] + } + }, + { + "id": "ind_privatised_tariff_01", + "category": "industry", + "doc": "letter", + "sender": "min_industry", + "conditions": { "dayMin": 450, "flags": ["energy_privatised"] }, + "title": { "en": "The new owners want higher tariffs", "fr": "Les nouveaux propriétaires veulent plus" }, + "body": { + "en": "The private owners of the energy company ask for a fifteen percent tariff rise, citing the investments promised at the sale. The regulator is a department of the same ministry that ran the sale.", + "fr": "Les propriétaires privés de l'entreprise d'énergie demandent quinze pour cent de hausse tarifaire, au nom des investissements promis lors de la vente. Le régulateur est un service du ministère qui a conduit la vente." + }, + "yes": { + "label": { "en": "Approve the rise", "fr": "Approuver la hausse" }, + "effects": [ + { "stat": "inflation", "delta": 0.5, "bias": true, "days": 365 }, + { "sector": "infrastructure", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": -3, "days": 40 } + ] + }, + "no": { + "label": { "en": "Refuse the rise", "fr": "Refuser la hausse" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 30 }, + { "sector": "infrastructure", "delta": -2, "days": 180 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "ind_startup_visa_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 550, "max": { "growth": 3 } }, + "title": { "en": "A visa for foreign founders", "fr": "Un visa pour fondateurs étrangers" }, + "body": { + "en": "A visa would let foreign engineers found companies in Valdoria, with a light first-year tax regime. Local graduates ask why the welcome mat is always laid for someone else.", + "fr": "Un visa permettrait à des ingénieurs étrangers de fonder des entreprises en Valdorie, avec une fiscalité allégée la première année. Les diplômés du pays demandent pourquoi le tapis rouge est toujours déroulé pour d'autres." + }, + "yes": { + "label": { "en": "Create the visa", "fr": "Créer le visa" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "sector": "research", "delta": 2, "days": 180 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the current rules", "fr": "Garder les règles actuelles" }, + "effects": [{ "sector": "research", "delta": -1, "days": 90 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "ind_chemical_rules_01", + "category": "industry", + "doc": "memo", + "sender": "min_environment", + "conditions": { "dayMin": 550 }, + "title": { "en": "Storage rules for chemical sites", "fr": "Des règles de stockage pour les sites chimiques" }, + "body": { + "en": "New rules would require double containment and a minimum distance from housing at chemical sites. For small plants, compliance costs about a year of profits. For the neighbours, it costs about a year of sleep, at present.", + "fr": "De nouvelles règles imposeraient double confinement et distance minimale des habitations autour des sites chimiques. Pour les petites usines, la mise aux normes coûte environ un an de bénéfices. Pour les riverains, la situation actuelle coûte un an de sommeil." + }, + "yes": { + "label": { "en": "Adopt the rules", "fr": "Adopter les règles" }, + "effects": [ + { "sector": "environment", "delta": 3, "days": 240 }, + { "sector": "industry", "delta": -2, "days": 120 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Postpone the rules", "fr": "Reporter les règles" }, + "effects": [ + { "stat": "economy", "delta": 1, "days": 60 }, + { "sector": "environment", "delta": -2, "days": 120 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "ind_offshore_licences_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 600 }, + "title": { "en": "Offshore gas licences", "fr": "Des licences gazières offshore" }, + "body": { + "en": "A licensing round for offshore gas blocks would bring signing bonuses at once and royalties later. It would also bring fishing communities to the ministry's door, at once.", + "fr": "Un cycle de licences pour des blocs gaziers offshore rapporterait des primes de signature tout de suite et des redevances plus tard. Il amènerait aussi les communautés de pêcheurs à la porte du ministère, tout de suite." + }, + "yes": { + "label": { "en": "Open the licensing round", "fr": "Ouvrir le cycle de licences" }, + "effects": [ + { "oneOff": -0.6 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 540 }, + { "sector": "environment", "delta": -3, "days": 240 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Leave the seabed alone", "fr": "Laisser les fonds marins en paix" }, + "effects": [ + { "sector": "environment", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "inflation", "delta": 0.1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "ind_worker_buyout_01", + "category": "industry", + "doc": "petition", + "sender": "union", + "conditions": { "dayMin": 650, "min": { "unemployment": 7 } }, + "title": { "en": "Workers offer to buy the factory", "fr": "Les ouvriers proposent de racheter l'usine" }, + "body": { + "en": "Workers of a bankrupt tool factory offer to buy it as a cooperative if the state guarantees the loan. The bank sees a bad bet; the workers say they know the machines better than the bank does.", + "fr": "Les ouvriers d'une usine d'outillage en faillite proposent de la racheter en coopérative si l'État garantit l'emprunt. La banque y voit un mauvais pari ; les ouvriers disent connaître les machines mieux qu'elle." + }, + "yes": { + "label": { "en": "Guarantee the loan", "fr": "Garantir le prêt" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "unrest", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Refuse the guarantee", "fr": "Refuser la garantie" }, + "effects": [ + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 270 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "sector": "industry", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "ind_state_merger_01", + "category": "industry", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 700, "min": { "debt": 55 } }, + "title": { "en": "Merge the two state heavy-industry firms", "fr": "Fusionner les deux groupes industriels d'État" }, + "body": { + "en": "Merging the state steel group and the state engineering group would save on overheads and cut about nine hundred posts. Their unions agree on exactly one thing: opposing it.", + "fr": "Fusionner le groupe sidérurgique d'État et le groupe de mécanique d'État économiserait des frais généraux et supprimerait environ neuf cents postes. Leurs syndicats s'accordent sur un seul point : s'y opposer." + }, + "yes": { + "label": { "en": "Merge the firms", "fr": "Fusionner les groupes" }, + "effects": [ + { "extraSpending": -0.15 }, + { "stat": "unemployment", "delta": 0.15, "bias": true, "days": 270 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "sector": "administration", "delta": 2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep them separate", "fr": "Les garder séparés" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 40 }, + { "sector": "industry", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "ind_ore_export_ban_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 750 }, + "title": { "en": "Stop shipping raw ore", "fr": "Cesser d'exporter le minerai brut" }, + "body": { + "en": "Valdoria ships raw ore abroad and buys back finished metal at four times the price. A ban on raw exports would force local processing, and would anger the buyers, who are also the sellers.", + "fr": "La Valdorie expédie du minerai brut à l'étranger et rachète du métal fini au quadruple du prix. Interdire l'export brut forcerait la transformation locale, et fâcherait les acheteurs, qui sont aussi les vendeurs." + }, + "yes": { + "label": { "en": "Ban raw ore exports", "fr": "Interdire l'export brut" }, + "effects": [ + { "sector": "industry", "delta": 3, "days": 240 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "revenue": "other", "delta": -0.1 } + ] + }, + "no": { + "label": { "en": "Keep exporting ore", "fr": "Continuer d'exporter" }, + "effects": [ + { "oneOff": -0.2 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "sector": "industry", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "ind_industry_rescue_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 400, "max": { "q:industry": 40 } }, + "title": { "en": "Half the plants idle", "fr": "La moitié des usines tournent au ralenti" }, + "body": { + "en": "Industrial output has slipped for three quarters, and the ministry's own surveys show half the plants below capacity. A recovery plan would cost real money. Doing nothing would cost it more slowly.", + "fr": "La production industrielle recule depuis trois trimestres, et les enquêtes du ministère montrent que la moitié des usines sont sous leur capacité. Un plan de relance coûterait de l'argent. Ne rien faire en coûterait davantage, mais plus lentement." + }, + "yes": { + "label": { "en": "Launch the recovery plan", "fr": "Lancer le plan de relance" }, + "effects": [ + { "oneOff": 0.8 }, + { "sector": "industry", "delta": 6, "days": 240 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Wait for the cycle", "fr": "Attendre le cycle" }, + "effects": [ + { "sector": "industry", "delta": -2, "days": 120 }, + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 270 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + } + }, + { + "id": "ind_automation_credit_01", + "category": "industry", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 900, "max": { "growth": 2.5 } }, + "title": { "en": "A tax credit for new machines", "fr": "Un crédit d'impôt pour les machines neuves" }, + "body": { + "en": "A tax credit of twenty percent on machinery purchases would modernise ageing workshops. Productivity would rise, machine makers would celebrate, and the labour force would read the small print.", + "fr": "Un crédit d'impôt de vingt pour cent sur l'achat de machines moderniserait des ateliers vieillissants. La productivité augmenterait, les fabricants de machines se réjouiraient, et les salariés liraient les petites lignes." + }, + "yes": { + "label": { "en": "Grant the credit", "fr": "Accorder le crédit" }, + "effects": [ + { "revenue": "other", "delta": -0.15 }, + { "stat": "growth", "delta": 0.2, "bias": true, "days": 540 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 540 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Keep the tax code", "fr": "Laisser le code fiscal" }, + "effects": [ + { "sector": "industry", "delta": -1, "days": 120 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "unrest", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "ind_hydro_shortfall_01", + "category": "industry", + "doc": "telegram", + "sender": "min_industry", + "weight": 0.5, + "conditions": { "dayMin": 950 }, + "title": { "en": "Drought cuts hydropower", "fr": "La sécheresse réduit l'hydroélectricité" }, + "body": { + "en": "DROUGHT CUTS HYDROPOWER BY FORTY PERCENT. GRID OPERATOR PROPOSES ROTATING CUTS TO FACTORIES OR TO HOUSEHOLDS. STOP.", + "fr": "LA SECHERESSE REDUIT L'HYDROELECTRICITE DE QUARANTE POUR CENT. LE GESTIONNAIRE DU RESEAU PROPOSE DES COUPURES TOURNANTES POUR LES USINES OU POUR LES MENAGES. STOP." + }, + "yes": { + "label": { "en": "Cut the factories first", "fr": "Couper d'abord les usines" }, + "effects": [ + { "stat": "economy", "delta": -3, "days": 60 }, + { "stat": "unemployment", "delta": 0.15, "bias": true, "days": 120 }, + { "sector": "industry", "delta": -3, "days": 120 }, + { "stat": "unrest", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Cut households first", "fr": "Couper d'abord les ménages" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 40 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "ind_champion_takeover_01", + "category": "industry", + "doc": "letter", + "sender": "min_industry", + "conditions": { "dayMin": 1000 }, + "title": { "en": "A foreign bid for the machine-tool champion", "fr": "Une offre étrangère sur le champion de l'outil" }, + "body": { + "en": "A foreign group bids for the national machine-tool maker at twice its market value. Shareholders are delighted. Researchers, and everyone with a flag at home, are not.", + "fr": "Un groupe étranger propose de racheter le fabricant national de machines-outils à deux fois sa valeur boursière. Les actionnaires sont ravis. Les chercheurs, et tous ceux qui ont un drapeau chez eux, beaucoup moins." + }, + "yes": { + "label": { "en": "Approve the takeover", "fr": "Approuver le rachat" }, + "effects": [ + { "oneOff": -0.4 }, + { "stat": "economy", "delta": 2, "days": 60 }, + { "sector": "industry", "delta": -3, "days": 180 }, + { "sector": "research", "delta": -2, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Block the bid", "fr": "Bloquer l'offre" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "sector": "industry", "delta": 1, "days": 90 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "ind_miners_pension_01", + "category": "industry", + "doc": "memo", + "sender": "min_labour", + "conditions": { "dayMin": 950 }, + "title": { "en": "The miners' special pension", "fr": "La retraite spéciale des mineurs" }, + "body": { + "en": "Miners retire early on a special scheme that costs more every year, as the mines close and the retirees remain. A reform would raise the retirement age by three years for new entrants.", + "fr": "Les mineurs partent tôt à la retraite grâce à un régime spécial qui coûte plus chaque année, à mesure que les mines ferment et que les retraités restent. Une réforme relèverait de trois ans l'âge de départ des nouveaux entrants." + }, + "yes": { + "label": { "en": "Reform the scheme", "fr": "Réformer le régime" }, + "effects": [ + { "extraSpending": -0.2 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep the scheme", "fr": "Maintenir le régime" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "stability", "delta": 1, "days": 40 }, + { "stat": "unrest", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "ind_refinery_closure_01", + "category": "industry", + "doc": "report", + "sender": "min_industry", + "conditions": { "dayMin": 1000, "min": { "debt": 55 } }, + "title": { "en": "The old refinery loses money", "fr": "La vieille raffinerie perd de l'argent" }, + "body": { + "en": "The only refinery, forty years old, loses money every month. Closing it would end the subsidies and make Valdoria import every litre of fuel. Modernising it would cost a good deal and a year of closure.", + "fr": "L'unique raffinerie, vieille de quarante ans, perd de l'argent chaque mois. La fermer mettrait fin aux subventions et obligerait la Valdorie à importer chaque litre de carburant. La moderniser coûterait cher et un an d'arrêt." + }, + "yes": { + "label": { "en": "Close the refinery", "fr": "Fermer la raffinerie" }, + "effects": [ + { "extraSpending": -0.15 }, + { "stat": "unemployment", "delta": 0.15, "bias": true, "days": 270 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 365 }, + { "sector": "industry", "delta": -3, "days": 120 } + ] + }, + "no": { + "label": { "en": "Modernise it", "fr": "La moderniser" }, + "effects": [ + { "oneOff": 0.6 }, + { "sector": "industry", "delta": 3, "days": 180 }, + { "sector": "environment", "delta": -1, "days": 90 }, + { "stat": "inflation", "delta": -0.1, "bias": true, "days": 270 } + ] + } + }, + { + "id": "ind_gigafactory_01", + "category": "industry", + "doc": "letter", + "sender": "min_industry", + "conditions": { "dayMin": 1100, "min": { "economy": 50 } }, + "title": { "en": "A battery gigafactory", "fr": "Une gigafactory de batteries" }, + "body": { + "en": "A foreign group will build a battery gigafactory in Valdoria if the state covers part of the investment. Three neighbouring countries have received the same letter, and are reading it with equal attention.", + "fr": "Un groupe étranger bâtira une gigafactory de batteries en Valdorie si l'État prend en charge une partie de l'investissement. Trois pays voisins ont reçu la même lettre, et la lisent avec la même attention." + }, + "yes": { + "label": { "en": "Pay the subsidy", "fr": "Verser la subvention" }, + "effects": [ + { "oneOff": 0.7 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 730 }, + { "stat": "growth", "delta": 0.3, "bias": true, "days": 730 }, + { "sector": "industry", "delta": 4, "days": 240 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 540 } + ] + }, + "no": { + "label": { "en": "Decline to bid", "fr": "Ne pas entrer dans l'enchère" }, + "effects": [ + { "sector": "industry", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "ind_smelter_power_01", + "category": "industry", + "doc": "letter", + "sender": "min_industry", + "conditions": { "dayMin": 1000 }, + "title": { "en": "The aluminium smelter needs half-price power", "fr": "La fonderie veut du courant à moitié prix" }, + "body": { + "en": "The aluminium smelter, two thousand jobs, says it can only stay if its power costs half as much. Other industries would pay the difference on their own bills, and some of them have noticed.", + "fr": "La fonderie d'aluminium, deux mille emplois, affirme ne pouvoir rester que si son électricité coûte moitié moins. Les autres industries paieraient la différence sur leurs factures, et certaines l'ont remarqué." + }, + "yes": { + "label": { "en": "Grant the power deal", "fr": "Accorder le tarif" }, + "effects": [ + { "extraSpending": 0.15 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 365 }, + { "sector": "industry", "delta": 2, "days": 180 }, + { "stat": "inflation", "delta": 0.1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Let the smelter go", "fr": "Laisser partir la fonderie" }, + "effects": [ + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 365 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "ind_sell_mining_01", + "category": "industry", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 900, "min": { "debt": 65 } }, + "title": { "en": "Sell the state mining company?", "fr": "Vendre la compagnie minière d'État ?" }, + "body": { + "en": "Selling the state mining company would bring in one percent of GDP and end its losses. Buyers are queueing up, and that is exactly what worries the unions.", + "fr": "Vendre la compagnie minière d'État rapporterait un pour cent du PIB et mettrait fin à ses pertes. Les acheteurs font la queue, et c'est précisément ce qui inquiète les syndicats." + }, + "yes": { + "label": { "en": "Sell the company", "fr": "Vendre la compagnie" }, + "effects": [ + { "oneOff": -1 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Keep the company", "fr": "Garder la compagnie" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 40 }, + { "sector": "industry", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "ind_buy_local_01", + "category": "industry", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 1100 }, + "title": { "en": "A margin for Valdorian-made goods", "fr": "Une préférence pour les produits valdoriens" }, + "body": { + "en": "Public contracts could prefer Valdorian-made goods by a ten percent margin. Domestic factories would get orders. Foreign partners would get a lawyer, and the lawyer would get a hearing.", + "fr": "Les marchés publics pourraient préférer les produits valdoriens avec une marge de dix pour cent. Les usines nationales auraient des commandes. Les partenaires étrangers auraient un avocat, et l'avocat une audience." + }, + "yes": { + "label": { "en": "Adopt the preference", "fr": "Adopter la préférence" }, + "effects": [ + { "sector": "industry", "delta": 3, "days": 180 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 365 }, + { "extraSpending": 0.1 }, + { "stat": "softPower", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep tenders open", "fr": "Garder l'appel d'offres ouvert" }, + "effects": [ + { "sector": "industry", "delta": -1, "days": 90 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "inflation", "delta": -0.1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "ind_pollution_scandal_01", + "category": "industry", + "doc": "memo", + "sender": "press_office", + "conditions": { "dayMin": 1200 }, + "title": { "en": "The river and the fertiliser plant", "fr": "La rivière et l'usine d'engrais" }, + "body": { + "en": "A newspaper shows that a fertiliser plant has dumped waste in the river for years, with every permit duly stamped. The plant employs eleven hundred people, and the river is where the capital gets its water.", + "fr": "Un journal révèle qu'une usine d'engrais rejette des déchets dans la rivière depuis des années, tous permis dûment tamponnés. L'usine emploie onze cents personnes, et la rivière alimente la capitale en eau." + }, + "yes": { + "label": { "en": "Suspend the plant", "fr": "Suspendre l'usine" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "sector": "environment", "delta": 3, "days": 180 }, + { "stat": "unemployment", "delta": 0.15, "bias": true, "days": 180 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Fine it and set a plan", "fr": "Infliger une amende et un plan" }, + "effects": [ + { "oneOff": -0.1 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "environment", "delta": 1, "days": 120 } + ] + } + }, + { + "id": "ind_skilled_visas_01", + "category": "industry", + "doc": "memo", + "sender": "min_labour", + "conditions": { "dayMin": 1200 }, + "title": { "en": "Three thousand welders short", "fr": "Il manque trois mille soudeurs" }, + "body": { + "en": "Factories lack three thousand skilled welders and technicians. Visas for foreign workers would fill the gap by spring. Unions ask why wages are not raised instead, and employers ask why they are being asked.", + "fr": "Les usines manquent de trois mille soudeurs et techniciens qualifiés. Des visas pour travailleurs étrangers combleraient le vide d'ici le printemps. Les syndicats demandent pourquoi on ne relève pas plutôt les salaires, et le patronat pourquoi on lui demande." + }, + "yes": { + "label": { "en": "Issue the visas", "fr": "Délivrer les visas" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "growth", "delta": 0.15, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Invest in training instead", "fr": "Miser sur la formation" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 365 } + ] + } + }, + { + "id": "ind_efficiency_standards_01", + "category": "industry", + "doc": "memo", + "sender": "min_environment", + "conditions": { "dayMin": 1300 }, + "title": { "en": "Energy efficiency standards for factories", "fr": "Efficacité énergétique des usines : des normes" }, + "body": { + "en": "Efficiency standards would cut factory energy use by a tenth within five years, at the price of new equipment. The ministry calls it an investment; the factory owners call it an invoice.", + "fr": "Des normes d'efficacité réduiraient d'un dixième la consommation d'énergie des usines en cinq ans, au prix d'équipements neufs. Le ministère parle d'investissement ; les industriels, de facture." + }, + "yes": { + "label": { "en": "Adopt the standards", "fr": "Adopter les normes" }, + "effects": [ + { "sector": "environment", "delta": 3, "days": 240 }, + { "stat": "inflation", "delta": -0.2, "bias": true, "days": 540 }, + { "stat": "economy", "delta": -1, "days": 90 }, + { "sector": "industry", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Make them voluntary", "fr": "Les rendre facultatives" }, + "effects": [ + { "sector": "environment", "delta": -1, "days": 90 }, + { "stat": "inflation", "delta": 0.1, "bias": true, "days": 365 } + ] + } + }, + { + "id": "ind_tech_cluster_01", + "category": "industry", + "doc": "report", + "sender": "min_industry", + "conditions": { "dayMin": 1250 }, + "title": { "en": "A research cluster in the north", "fr": "Un pôle de recherche dans le nord" }, + "body": { + "en": "A cluster linking university labs, the steelworks and a dozen workshops would turn research into products faster. It needs a building, a budget and, above all, several departments that agree to share a corridor.", + "fr": "Un pôle réunissant laboratoires universitaires, aciérie et une douzaine d'ateliers transformerait plus vite la recherche en produits. Il lui faut un bâtiment, un budget et, surtout, plusieurs services acceptant de partager un couloir." + }, + "yes": { + "label": { "en": "Build the cluster", "fr": "Bâtir le pôle" }, + "effects": [ + { "oneOff": 0.5 }, + { "sector": "research", "delta": 4, "days": 240 }, + { "stat": "growth", "delta": 0.2, "bias": true, "days": 540 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep research scattered", "fr": "Laisser la recherche éparpillée" }, + "effects": [{ "sector": "research", "delta": -2, "days": 120 }, { "stat": "economy", "delta": -1, "days": 60 }] } } ] diff --git a/web/data/cards/justice.json b/web/data/cards/justice.json index 5d3c943..b218fef 100644 --- a/web/data/cards/justice.json +++ b/web/data/cards/justice.json @@ -1,6 +1,9 @@ [ { - "id": "jus_judicial_independence_01", "category": "justice", "doc": "memo", "sender": "min_justice", + "id": "jus_judicial_independence_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", "title": { "en": "Guarantee judicial independence", "fr": "Garantir l'indépendance de la justice" }, "body": { "en": "A reform would stop the government from appointing or dismissing judges. It would also stop it from correcting a ruling it dislikes.", @@ -20,7 +23,10 @@ } }, { - "id": "jus_fake_news_law_01", "category": "justice", "doc": "memo", "sender": "press_office", + "id": "jus_fake_news_law_01", + "category": "justice", + "doc": "memo", + "sender": "press_office", "title": { "en": "A law against “fake news”", "fr": "Une loi contre les « fausses informations »" }, "body": { "en": "The Press Office wants to criminalise the spread of false reports. Journalists point out that the definition of false will be set by the government.", @@ -36,14 +42,14 @@ }, "no": { "label": { "en": "Drop the idea", "fr": "Abandonner l'idée" }, - "effects": [ - { "stat": "opinion", "delta": -1, "days": 30 }, - { "stat": "stability", "delta": -2, "days": 40 } - ] + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "stat": "stability", "delta": -2, "days": 40 }] } }, { - "id": "jus_prisons_01", "category": "justice", "doc": "report", "sender": "min_justice", + "id": "jus_prisons_01", + "category": "justice", + "doc": "report", + "sender": "min_justice", "title": { "en": "Overcrowded prisons", "fr": "Des prisons surpeuplées" }, "body": { "en": "The prisons hold a third more inmates than they were built for. Releasing non-violent offenders would relieve them. Building new cells would cost money and take years.", @@ -68,7 +74,10 @@ } }, { - "id": "jus_anticorruption_01", "category": "justice", "doc": "memo", "sender": "min_justice", + "id": "jus_anticorruption_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", "title": { "en": "An anti-corruption agency", "fr": "Une agence anticorruption" }, "body": { "en": "An independent agency would investigate bribery in ministries and state contracts. Some of the people it would investigate sit close to you.", @@ -85,10 +94,1613 @@ }, "no": { "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [{ "stat": "opinion", "delta": -3, "days": 40 }, { "stat": "softPower", "delta": -1, "days": 60 }] + } + }, + { + "id": "jus_judges_pay_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "title": { "en": "Judges' pay", "fr": "La rémunération des juges" }, + "body": { + "en": "A first-instance judge earns less than a bank clerk, and thirty seats are vacant. The Justice Ministry warns that underpaid judges are open to offers. The Treasury warns that every other corps will ask too.", + "fr": "Un juge de première instance gagne moins qu'un employé de banque et trente postes sont vacants. Le ministère de la Justice prévient que des juges mal payés sont réceptifs aux offres. Le Trésor prévient que tous les autres corps demanderont la même chose." + }, + "yes": { + "label": { "en": "Raise judges' pay", "fr": "Augmenter les juges" }, + "effects": [ + { "extraSpending": 0.15 }, + { "sector": "justice", "delta": 4, "days": 120 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Refuse the raise", "fr": "Refuser la hausse" }, + "effects": [ + { "sector": "justice", "delta": -3, "days": 90 }, + { "stat": "stability", "delta": -1, "days": 30 }, + { "extraSpending": -0.05 } + ] + }, + "conditions": { "max": { "q:justice": 60 } } + }, + { + "id": "jus_backlog_01", + "category": "justice", + "doc": "report", + "sender": "min_justice", + "conditions": { "dayMin": 90, "max": { "q:justice": 55 } }, + "title": { "en": "Four hundred thousand pending cases", "fr": "Quatre cent mille dossiers en attente" }, + "body": { + "en": "A civil case now takes five years to reach judgment, and a defendant on remand can wait two. The Justice Ministry can hire judges or fast-track simple cases with a single judge and no hearing.", + "fr": "Un procès civil met désormais cinq ans à être jugé et un prévenu en détention provisoire peut attendre deux ans. Le ministère de la Justice peut recruter des juges ou accélérer les affaires simples avec un juge unique et sans audience." + }, + "yes": { + "label": { "en": "Hire three hundred judges", "fr": "Recruter trois cents juges" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "justice", "delta": 6, "days": 240 }, + { "stat": "order", "delta": 1, "bias": true, "days": 300 } + ] + }, + "no": { + "label": { "en": "Fast-track simple cases", "fr": "Accélérer les affaires simples" }, + "effects": [ + { "stat": "civilRights", "delta": -2, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "sector": "justice", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "jus_mandatory_min_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "title": { "en": "Mandatory minimum sentences", "fr": "Peines planchers" }, + "body": { + "en": "After a series of armed robberies, deputies want fixed minimum sentences that judges cannot go below. Judges say that fixed sentences will mean longer trials and fuller prisons.", + "fr": "Après une série de braquages, des députés veulent des peines minimales que les juges ne pourraient pas réduire. Les juges répondent que des peines fixes allongeront les procès et rempliront les prisons." + }, + "yes": { + "label": { "en": "Set the minimums", "fr": "Fixer les peines planchers" }, + "effects": [ + { "stat": "order", "delta": 2, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -2, "bias": true, "days": 365 }, + { "extraSpending": 0.1 }, + { "sector": "justice", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Leave it to judges", "fr": "Laisser les juges décider" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "order", "delta": -1, "days": 40 }, + { "sector": "justice", "delta": 1, "days": 60 } + ] + }, + "conditions": { "max": { "order": 62 } } + }, + { + "id": "jus_plea_bargain_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 200, "max": { "q:justice": 60 } }, + "title": { "en": "Plea bargains", "fr": "Négocier les plaidoyers" }, + "body": { + "en": "Prosecutors want to offer reduced sentences in return for guilty pleas, which would clear thousands of cases. Defence lawyers fear that innocent defendants will plead to avoid the risk.", + "fr": "Les procureurs veulent proposer des peines réduites en échange d'un aveu de culpabilité, ce qui désengorgerait des milliers de dossiers. Les avocats de la défense craignent que des innocents plaident coupable pour éviter le risque." + }, + "yes": { + "label": { "en": "Allow plea bargains", "fr": "Autoriser les plaidoyers" }, + "effects": [ + { "sector": "justice", "delta": 3, "days": 90 }, + { "extraSpending": -0.1 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep full trials", "fr": "Garder les procès complets" }, + "effects": [ + { "sector": "justice", "delta": -1, "days": 60 }, + { "extraSpending": 0.1 }, + { "stat": "civilRights", "delta": 1 } + ] + } + }, + { + "id": "jus_juries_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 300, "max": { "opinion": 60 } }, + "title": { "en": "Bring back jury trials", "fr": "Rétablir les jurys populaires" }, + "body": { + "en": "Serious crimes are now tried by three professional judges. A citizens' jury would give verdicts a legitimacy that they lack, and would take longer and cost more to run.", + "fr": "Les crimes graves sont jugés par trois magistrats professionnels. Un jury de citoyens donnerait aux verdicts une légitimité qui leur manque, mais coûterait plus cher et prendrait plus de temps." + }, + "yes": { + "label": { "en": "Restore the juries", "fr": "Rétablir les jurys" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "civilRights", "delta": 2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "sector": "justice", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Keep professional judges", "fr": "Garder les magistrats" }, + "effects": [ + { "sector": "justice", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "civilRights", "delta": -1 } + ] + } + }, + { + "id": "jus_broadcaster_01", + "category": "justice", + "doc": "memo", + "sender": "press_office", + "title": { "en": "Independence of the public broadcaster", "fr": "Indépendance de l'audiovisuel public" }, + "body": { + "en": "The public broadcaster's board is appointed by the government. A reform would hand the appointments to a committee that includes staff and the opposition. Its evening news would no longer be easy to steer.", + "fr": "Le conseil de l'audiovisuel public est nommé par le gouvernement. Une réforme confierait les nominations à un comité incluant le personnel et l'opposition. Le journal du soir deviendrait plus difficile à orienter." + }, + "yes": { + "label": { "en": "Make it independent", "fr": "Garantir son indépendance" }, + "effects": [ + { "stat": "civilRights", "delta": 3, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep control", "fr": "Garder la main" }, + "effects": [ + { "stat": "stability", "delta": 2, "days": 60 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "jus_press_raid_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 250 }, + "title": { "en": "A search warrant for a newsroom", "fr": "Une perquisition dans une rédaction" }, + "body": { + "en": "A prosecutor asks to search the offices of a daily paper that published leaked procurement contracts. The Justice Ministry can authorise it. The paper says it will fight it in the courts.", + "fr": "Un procureur demande à perquisitionner les bureaux d'un quotidien qui a publié des contrats de marchés publics fuités. Le ministère de la Justice peut l'autoriser. Le journal dit qu'il ira jusqu'au bout devant les tribunaux." + }, + "yes": { + "label": { "en": "Authorise the search", "fr": "Autoriser la perquisition" }, + "effects": [ + { "stat": "stability", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "softPower", "delta": -3, "days": 60 } + ], + "followUp": { "id": "jus_press_raid_ruling_01", "inDays": 60 } + }, + "no": { + "label": { "en": "Refuse the warrant", "fr": "Refuser le mandat" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "stability", "delta": -2, "days": 40 }, + { "sector": "justice", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "jus_press_raid_ruling_01", + "category": "justice", + "doc": "report", + "sender": "min_justice", + "followUpOnly": true, + "title": { "en": "Court rules the newsroom search illegal", "fr": "La justice juge la perquisition illégale" }, + "body": { + "en": "The appeal court has ruled that the search violated the confidentiality of journalists' sources, and ordered the seized files returned. The Interior Ministry says it will not comply until the files have been read.", + "fr": "La cour d'appel a jugé que la perquisition violait le secret des sources des journalistes et ordonné la restitution des fichiers saisis. Le ministère de l'Intérieur dit qu'il n'obéira pas avant de les avoir lus." + }, + "yes": { + "label": { "en": "Return the files", "fr": "Restituer les fichiers" }, + "effects": [ + { "sector": "justice", "delta": 3, "days": 90 }, + { "stat": "civilRights", "delta": 2 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the files", "fr": "Conserver les fichiers" }, + "effects": [ + { "stat": "civilRights", "delta": -3 }, + { "sector": "justice", "delta": -4, "days": 120 }, + { "stat": "opinion", "delta": -3, "days": 40 } + ] + } + }, + { + "id": "jus_asset_declaration_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 150, "max": { "opinion": 58 } }, + "title": { "en": "Ministers' assets made public", "fr": "Patrimoine des ministres rendu public" }, + "body": { + "en": "Ministers currently file asset declarations that are sealed for thirty years. A bill would publish them online each January. It would include yours.", + "fr": "Les ministres déposent actuellement des déclarations de patrimoine scellées pendant trente ans. Un projet de loi les publierait en ligne chaque janvier, y compris la vôtre." + }, + "yes": { + "label": { "en": "Publish the declarations", "fr": "Publier les déclarations" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "stability", "delta": -2, "days": 40 }, + { "stat": "civilRights", "delta": 1 } + ] + }, + "no": { + "label": { "en": "Keep them sealed", "fr": "Les garder scellées" }, "effects": [ { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "jus_blacklist_firms_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 400 }, + "title": { "en": "Blacklist firms convicted of bribery", "fr": "Exclure les entreprises condamnées pour corruption" }, + "body": { + "en": "A bill would bar any firm convicted of bribery from public contracts for ten years. Two of the three biggest road builders would be shut out of the next round of tenders.", + "fr": "Un projet de loi interdirait de marchés publics pour dix ans toute entreprise condamnée pour corruption. Deux des trois plus gros constructeurs de routes seraient exclus du prochain appel d'offres." + }, + "yes": { + "label": { "en": "Adopt the blacklist", "fr": "Adopter la liste noire" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "sector": "justice", "delta": 2, "days": 90 }, + { "revenue": "other", "delta": 0.1 } + ] + }, + "no": { + "label": { "en": "Reject the bill", "fr": "Rejeter le texte" }, + "effects": [ + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 }, { "stat": "softPower", "delta": -1, "days": 60 } ] } + }, + { + "id": "jus_minister_scandal_01", + "category": "justice", + "doc": "report", + "sender": "press_office", + "conditions": { "dayMin": 500, "max": { "opinion": 60 } }, + "title": { "en": "The minister's son and the road contracts", "fr": "Le fils du ministre et les marchés routiers" }, + "body": { + "en": "A paper shows that the son of a minister won road-maintenance contracts worth eight million without a competing bid. The minister says everything was lawful. The prosecutor's office has not opened a case.", + "fr": "Un journal montre que le fils d'un ministre a obtenu des contrats d'entretien routier de huit millions sans mise en concurrence. Le ministre affirme que tout était légal. Le parquet n'a ouvert aucune enquête." + }, + "yes": { + "label": { "en": "Dismiss the minister", "fr": "Limoger le ministre" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "stability", "delta": -3, "days": 40 }, + { "sector": "justice", "delta": 2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Stand by the minister", "fr": "Soutenir le ministre" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 40 }, + { "stat": "stability", "delta": 1, "days": 30 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "jus_prison_workshops_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 90 }, + "title": { "en": "Workshops inside the prisons", "fr": "Des ateliers dans les prisons" }, + "body": { + "en": "Private firms offer to set up assembly workshops in prisons. Inmates would be paid a fraction of the minimum wage. Unions say it undercuts honest workers. Wardens say idle inmates are the real danger.", + "fr": "Des entreprises privées proposent d'installer des ateliers de montage dans les prisons. Les détenus seraient payés une fraction du salaire minimum. Les syndicats y voient une concurrence déloyale. Les directeurs disent que le vrai danger, c'est l'oisiveté." + }, + "yes": { + "label": { "en": "Open the workshops", "fr": "Ouvrir les ateliers" }, + "effects": [ + { "revenue": "other", "delta": 0.1 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "unrest", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep inmates idle", "fr": "Garder les détenus inoccupés" }, + "effects": [ + { "extraSpending": 0.05 }, + { "stat": "unrest", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "jus_legal_aid_01", + "category": "justice", + "doc": "letter", + "sender": "min_justice", + "title": { "en": "The legal aid budget", "fr": "Le budget de l'aide juridictionnelle" }, + "body": { + "en": "The Bar Association says legal aid lawyers earn less than the minimum wage and many refuse the work. Half of the accused now come to court without a lawyer of their own.", + "fr": "Le barreau explique que les avocats commis d'office gagnent moins que le salaire minimum et que beaucoup refusent ces dossiers. La moitié des prévenus se présentent désormais au tribunal sans avocat." + }, + "yes": { + "label": { "en": "Fund legal aid", "fr": "Financer l'aide juridictionnelle" }, + "effects": [ + { "extraSpending": 0.15 }, + { "stat": "civilRights", "delta": 2, "bias": true, "days": 365 }, + { "sector": "justice", "delta": 3, "days": 120 } + ] + }, + "no": { + "label": { "en": "Freeze legal aid", "fr": "Geler l'aide juridictionnelle" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "civilRights", "delta": -2, "bias": true, "days": 365 }, + { "sector": "justice", "delta": -2, "days": 90 } + ] + }, + "conditions": { "max": { "civilRights": 66 } } + }, + { + "id": "jus_referendum_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 950, "min": { "unrest": 25 } }, + "title": { "en": "Citizens' initiative referendums", "fr": "Référendums d'initiative citoyenne" }, + "body": { + "en": "A petition with 300,000 signatures asks that any proposal with 5 percent support be put to a national vote. The opposition backs it. Economists fear a vote on every tax.", + "fr": "Une pétition de 300 000 signatures demande que toute proposition soutenue par 5 % des électeurs soit soumise à un vote national. L'opposition la soutient. Les économistes craignent un vote sur chaque impôt." + }, + "yes": { + "label": { "en": "Create the right", "fr": "Créer ce droit" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Reject the petition", "fr": "Rejeter la pétition" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "stability", "delta": 1, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "jus_voting_age_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 700 }, + "title": { "en": "The vote at sixteen", "fr": "Le droit de vote à seize ans" }, + "body": { + "en": "A bill would lower the voting age to sixteen, adding 450,000 voters. The parties disagree on which of them it would benefit, and the opposition says that it is a trick.", + "fr": "Un projet de loi abaisserait l'âge de vote à seize ans, ce qui ajouterait 450 000 électeurs. Les partis s'opposent sur celui qui en profiterait, et l'opposition parle d'une manœuvre." + }, + "yes": { + "label": { "en": "Lower the voting age", "fr": "Abaisser l'âge de vote" }, + "effects": [ + { "stat": "unrest", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep eighteen", "fr": "Maintenir dix-huit ans" }, + "effects": [ + { "stat": "unrest", "delta": 1, "days": 40 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "jus_districts_01", + "category": "justice", + "doc": "memo", + "sender": "press_office", + "conditions": { "dayMin": 800 }, + "title": { "en": "Redrawing the electoral districts", "fr": "Redécoupage des circonscriptions" }, + "body": { + "en": "The census says the north has lost a fifth of its population, and the districts must be redrawn. A map drawn by the Interior Ministry would also protect forty seats of the governing coalition.", + "fr": "Le recensement indique que le nord a perdu un cinquième de sa population et que les circonscriptions doivent être redessinées. Une carte tracée par le ministère de l'Intérieur protégerait aussi quarante sièges de la coalition au pouvoir." + }, + "yes": { + "label": { "en": "Adopt the ministry's map", "fr": "Adopter la carte du ministère" }, + "effects": [ + { "stat": "stability", "delta": 3, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -3, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": -2, "days": 60 } + ], + "setFlags": ["jus_gerrymander"], + "followUp": { "id": "jus_districts_court_01", "inDays": 75 } + }, + "no": { + "label": { "en": "Appoint an independent panel", "fr": "Nommer une commission neutre" }, + "effects": [ + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "civilRights", "delta": 1 }, + { "sector": "justice", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "jus_districts_court_01", + "category": "justice", + "doc": "report", + "sender": "min_justice", + "followUpOnly": true, + "conditions": { "flags": ["jus_gerrymander"] }, + "title": { "en": "The constitutional court strikes the map", "fr": "La cour constitutionnelle censure la carte" }, + "body": { + "en": "The constitutional court has ruled that the new districts breach the principle of equal votes and ordered a new map within sixty days. Government deputies suggest that the court has overstepped its role.", + "fr": "La cour constitutionnelle a jugé que les nouvelles circonscriptions violent l'égalité du suffrage et ordonné une nouvelle carte sous soixante jours. Des députés de la majorité estiment que la cour a outrepassé son rôle." + }, + "yes": { + "label": { "en": "Comply with the ruling", "fr": "Se conformer à la décision" }, + "effects": [ + { "stat": "civilRights", "delta": 2 }, + { "stat": "stability", "delta": -2, "days": 40 }, + { "sector": "justice", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Ignore the ruling", "fr": "Ignorer la décision" }, + "effects": [ + { "stat": "civilRights", "delta": -4 }, + { "sector": "justice", "delta": -4, "days": 120 }, + { "stat": "softPower", "delta": -3, "days": 60 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "jus_const_court_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 500 }, + "title": { "en": "A seat on the constitutional court", "fr": "Un siège à la cour constitutionnelle" }, + "body": { + "en": "A seat on the constitutional court is vacant for nine years. The shortlist has a former party lawyer who can be relied on and a law professor who cannot.", + "fr": "Un siège de la cour constitutionnelle est vacant pour neuf ans. La liste comprend un ancien avocat du parti sur qui l'on peut compter et une professeure de droit dont ce n'est pas le cas." + }, + "yes": { + "label": { "en": "Appoint the party lawyer", "fr": "Nommer l'avocat du parti" }, + "effects": [ + { "stat": "stability", "delta": 2, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -2, "bias": true, "days": 365 }, + { "sector": "justice", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Appoint the professor", "fr": "Nommer la professeure" }, + "effects": [ + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "civilRights", "delta": 2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "jus_whistleblower_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 250 }, + "title": { "en": "Protection for whistleblowers", "fr": "Protection des lanceurs d'alerte" }, + "body": { + "en": "Civil servants who report fraud are currently sacked and sued for breach of secrecy. A bill would protect them. Some ministries say it will turn every office into a spying ground.", + "fr": "Les fonctionnaires qui dénoncent des fraudes sont aujourd'hui licenciés et poursuivis pour violation du secret. Un projet de loi les protégerait. Certains ministères disent qu'il transformera chaque bureau en lieu d'espionnage." + }, + "yes": { + "label": { "en": "Pass the protection", "fr": "Voter la protection" }, + "effects": [ + { "stat": "civilRights", "delta": 2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 40 }, + { "sector": "justice", "delta": 2, "days": 90 } + ], + "followUp": { "id": "jus_whistleblower_case_01", "inDays": 120 } + }, + "no": { + "label": { "en": "Reject the bill", "fr": "Rejeter le texte" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "jus_whistleblower_case_01", + "category": "justice", + "doc": "letter", + "sender": "min_justice", + "followUpOnly": true, + "title": { "en": "The first official to use the new law", "fr": "Le premier fonctionnaire à invoquer la loi" }, + "body": { + "en": "A customs official has handed documents on a smuggling network that reaches a ministry to a magistrate, and claims the new protection. The ministry concerned wants a prosecution for breach of secrecy.", + "fr": "Un douanier a remis à un magistrat des documents sur un réseau de contrebande qui remonte jusqu'à un ministère, et invoque la nouvelle protection. Le ministère concerné réclame des poursuites pour violation du secret." + }, + "yes": { + "label": { "en": "Shield the official", "fr": "Protéger le fonctionnaire" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "stability", "delta": -2, "days": 40 }, + { "stat": "civilRights", "delta": 1 } + ] + }, + "no": { + "label": { "en": "Allow the prosecution", "fr": "Laisser les poursuites" }, + "effects": [ + { "stat": "civilRights", "delta": -3 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "sector": "justice", "delta": -2, "days": 90 } + ] + } + }, + { + "id": "jus_extradition_01", + "category": "justice", + "doc": "memo", + "sender": "min_foreign", + "conditions": { "dayMin": 300 }, + "title": { "en": "Extradition of an exiled dissident", "fr": "Extradition d'un dissident en exil" }, + "body": { + "en": "A neighbouring government asks Valdoria to extradite an exiled blogger accused of inciting riots. Its gas contract is up for renewal. Its prisons have a poor record.", + "fr": "Un gouvernement voisin demande à la Valdorie d'extrader un blogueur exilé accusé d'incitation à l'émeute. Son contrat gazier arrive à renouvellement. Ses prisons ont mauvaise réputation." + }, + "yes": { + "label": { "en": "Extradite the blogger", "fr": "Extrader le blogueur" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 60 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Refuse the request", "fr": "Refuser la demande" }, + "effects": [ + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "jus_minority_language_01", + "category": "justice", + "doc": "petition", + "sender": "min_justice", + "conditions": { "dayMin": 150, "min": { "unrest": 22 } }, + "title": { "en": "The minority language in courts", "fr": "La langue minoritaire devant les tribunaux" }, + "body": { + "en": "Residents of the eastern valleys ask to be tried and to read official forms in their own language. Interpreters would be needed in forty courts. Opponents say that the country has one language.", + "fr": "Des habitants des vallées de l'est demandent à être jugés et à lire les formulaires officiels dans leur langue. Il faudrait des interprètes dans quarante tribunaux. Les opposants rappellent que le pays n'a qu'une langue." + }, + "yes": { + "label": { "en": "Grant the right", "fr": "Accorder ce droit" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "civilRights", "delta": 3, "bias": true, "days": 365 }, + { "stat": "unrest", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "stat": "unrest", "delta": 2, "days": 60 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "jus_citizenship_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 1000 }, + "title": { "en": "Citizenship for the children of residents", "fr": "La nationalité pour les enfants de résidents" }, + "body": { + "en": "About 90,000 young people were born here to foreign parents and are not citizens. A bill would give them citizenship at eighteen. Critics say that it rewards illegal stays.", + "fr": "Quelque 90 000 jeunes sont nés ici de parents étrangers sans être citoyens. Un projet de loi leur donnerait la nationalité à dix-huit ans. Les détracteurs y voient une prime au séjour irrégulier." + }, + "yes": { + "label": { "en": "Grant citizenship", "fr": "Accorder la nationalité" }, + "effects": [ + { "stat": "civilRights", "delta": 2 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "jus_death_penalty_01", + "category": "justice", + "doc": "petition", + "sender": "min_justice", + "conditions": { "dayMin": 950, "max": { "order": 62 } }, + "title": { "en": "A petition to restore the death penalty", "fr": "Une pétition pour rétablir la peine de mort" }, + "body": { + "en": "After a child murder, 600,000 people have signed a petition for the death penalty, which Valdoria abolished forty years ago. The Justice Ministry reminds you that errors cannot be undone.", + "fr": "Après le meurtre d'un enfant, 600 000 personnes ont signé une pétition pour rétablir la peine de mort, que la Valdorie a abolie il y a quarante ans. Le ministère de la Justice rappelle qu'une erreur est irréversible." + }, + "yes": { + "label": { "en": "Put it to a vote", "fr": "La soumettre au vote" }, + "effects": [ + { "stat": "opinion", "delta": 4, "days": 40 }, + { "stat": "civilRights", "delta": -4 }, + { "stat": "softPower", "delta": -4, "days": 90 }, + { "sector": "justice", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Reject the petition", "fr": "Rejeter la pétition" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "jus_juvenile_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 900, "max": { "order": 60 } }, + "title": { "en": "Criminal age at twelve", "fr": "Majorité pénale à douze ans" }, + "body": { + "en": "Gangs now use twelve-year-olds as couriers and lookouts because they cannot be prosecuted. A bill would lower the age of criminal responsibility from fourteen to twelve.", + "fr": "Les gangs utilisent désormais des enfants de douze ans comme coursiers et guetteurs parce qu'ils ne peuvent pas être poursuivis. Un projet de loi abaisserait la majorité pénale de quatorze à douze ans." + }, + "yes": { + "label": { "en": "Lower the age to twelve", "fr": "Abaisser l'âge à douze ans" }, + "effects": [ + { "stat": "order", "delta": 2, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "justice", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep it at fourteen", "fr": "Maintenir quatorze ans" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "order", "delta": -1, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "jus_parole_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 100 }, + "title": { "en": "Early release for good behaviour", "fr": "Libération anticipée pour bonne conduite" }, + "body": { + "en": "The Justice Ministry wants to release inmates after two thirds of their sentence if they have behaved, in every case but murder. It would free three thousand cells. Victims' associations are against it.", + "fr": "Le ministère de la Justice veut libérer les détenus aux deux tiers de leur peine s'ils ont bien vécu, sauf pour meurtre. Cela libérerait trois mille cellules. Les associations de victimes s'y opposent." + }, + "yes": { + "label": { "en": "Extend early release", "fr": "Étendre les libérations" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "civilRights", "delta": 2 }, + { "stat": "order", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ], + "followUp": { "id": "jus_parole_crime_01", "inDays": 90 } + }, + "no": { + "label": { "en": "Keep full sentences", "fr": "Maintenir les peines entières" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "justice", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "jus_parole_crime_01", + "category": "justice", + "doc": "report", + "sender": "press_office", + "followUpOnly": true, + "title": { "en": "Released early, then a killing", "fr": "Libéré plus tôt, puis un meurtre" }, + "body": { + "en": "A man released under the new early-release rule has killed a shopkeeper during a robbery. Tabloids print the photograph beside the minister's. Deputies demand a suspension of the scheme.", + "fr": "Un homme libéré par la nouvelle règle de libération anticipée a tué un commerçant lors d'un vol. Les tabloïds publient la photo à côté de celle du ministre. Des députés exigent la suspension du dispositif." + }, + "yes": { + "label": { "en": "Suspend the scheme", "fr": "Suspendre le dispositif" }, + "effects": [ + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "extraSpending": 0.1 }, + { "sector": "justice", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Defend the scheme", "fr": "Défendre le dispositif" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 40 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "jus_judge_bribed_01", + "category": "justice", + "doc": "report", + "sender": "min_justice", + "conditions": { "dayMin": 350 }, + "title": { "en": "A judge on camera taking cash", "fr": "Un juge filmé en train d'empocher des billets" }, + "body": { + "en": "A judge was filmed accepting 200,000 from a developer in a land dispute. The Justice Ministry can refer the case to the judicial council, which has never dismissed a judge, or to the criminal courts.", + "fr": "Un juge a été filmé en train d'accepter 200 000 d'un promoteur dans un litige foncier. Le ministère de la Justice peut saisir le conseil de la magistrature, qui n'a jamais révoqué un juge, ou les tribunaux pénaux." + }, + "yes": { + "label": { "en": "Refer to the judicial council", "fr": "Saisir le conseil judiciaire" }, + "effects": [ + { "sector": "justice", "delta": 1, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 30 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ], + "followUp": { "id": "jus_council_acquits_01", "inDays": 60 } + }, + "no": { + "label": { "en": "Send to a criminal court", "fr": "Saisir un tribunal pénal" }, + "effects": [ + { "sector": "justice", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "stability", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "jus_council_acquits_01", + "category": "justice", + "doc": "telegram", + "sender": "press_office", + "followUpOnly": true, + "title": { "en": "The judicial council acquits", "fr": "Le conseil de la magistrature acquitte" }, + "body": { + "en": "JUDICIAL COUNCIL ACQUITS JUDGE FILMED TAKING CASH, NINE VOTES TO THREE, CITING INSUFFICIENT PROOF OF INTENT. VIDEO ON EVERY PHONE. STOP.", + "fr": "LE CONSEIL DE LA MAGISTRATURE ACQUITTE LE JUGE FILME EN TRAIN D'EMPOCHER DES BILLETS, NEUF VOIX CONTRE TROIS, FAUTE DE PREUVE D'INTENTION. VIDEO SUR TOUS LES TELEPHONES. STOP." + }, + "yes": { + "label": { "en": "Overrule by decree", "fr": "Annuler par décret" }, + "effects": [ + { "sector": "justice", "delta": -4, "days": 120 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": 3, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Accept the verdict", "fr": "Accepter le verdict" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 40 }, + { "sector": "justice", "delta": 1, "days": 60 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "jus_prison_conditions_01", + "category": "justice", + "doc": "report", + "sender": "min_justice", + "conditions": { "dayMin": 200, "max": { "q:justice": 60 } }, + "title": { "en": "Inspectors in the central prison", "fr": "Les inspecteurs à la prison centrale" }, + "body": { + "en": "Rights inspectors found eight men in cells meant for three, broken heating and a month's wait to see a doctor. A refit of the central prison would cost 0.4 percent of GDP.", + "fr": "Des inspecteurs des droits ont trouvé huit hommes dans des cellules prévues pour trois, un chauffage en panne et un mois d'attente pour voir un médecin. La remise à niveau de la prison centrale coûterait 0,4 % du PIB." + }, + "yes": { + "label": { "en": "Refit the prison", "fr": "Rénover la prison" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "justice", "delta": 4, "days": 120 }, + { "stat": "civilRights", "delta": 2 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Defer the refit", "fr": "Reporter la rénovation" }, + "effects": [ + { "extraSpending": -0.05 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ], + "followUp": { "id": "jus_prison_riot_01", "inDays": 80 } + } + }, + { + "id": "jus_prison_riot_01", + "category": "justice", + "doc": "telegram", + "sender": "min_interior", + "followUpOnly": true, + "title": { "en": "Riot in the central prison", "fr": "Émeute à la prison centrale" }, + "body": { + "en": "FOUR HUNDRED INMATES HOLD TWO WINGS OF CENTRAL PRISON. THREE GUARDS HELD. DEMANDS: HEATING, DOCTORS, CELL SPACE. SPECIAL UNITS ON STANDBY. STOP.", + "fr": "QUATRE CENTS DETENUS TIENNENT DEUX AILES DE LA PRISON CENTRALE. TROIS GARDIENS RETENUS. REVENDICATIONS : CHAUFFAGE, MEDECINS, PLACE. UNITES SPECIALES EN ALERTE. STOP." + }, + "yes": { + "label": { "en": "Send in special units", "fr": "Envoyer les unités spéciales" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 30 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "sector": "justice", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Negotiate with the inmates", "fr": "Négocier avec les détenus" }, + "effects": [ + { "stat": "order", "delta": -2, "days": 30 }, + { "oneOff": 0.2 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "jus_term_limit_01", + "category": "justice", + "doc": "letter", + "sender": "press_office", + "conditions": { "dayMin": 1000 }, + "title": { "en": "Lifting the term limit", "fr": "Lever la limite des mandats" }, + "body": { + "en": "Allies of the governing coalition propose a referendum to abolish the one-term limit in the Constitution. They say continuity is what the country needs. The opposition says that is what they all say.", + "fr": "Des alliés de la coalition proposent un référendum pour supprimer la limite à un mandat inscrite dans la Constitution. Ils disent que le pays a besoin de continuité. L'opposition répond que c'est toujours ce qu'on dit." + }, + "yes": { + "label": { "en": "Call the referendum", "fr": "Convoquer le référendum" }, + "effects": [ + { "stat": "stability", "delta": 3, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -3, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": -3, "days": 60 } + ], + "followUp": { "id": "jus_term_boycott_01", "inDays": 45 } + }, + "no": { + "label": { "en": "Keep the limit", "fr": "Garder la limite" }, + "effects": [ + { "stat": "stability", "delta": -3, "days": 60 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "jus_term_boycott_01", + "category": "justice", + "doc": "report", + "sender": "press_office", + "followUpOnly": true, + "title": { "en": "The opposition will boycott the vote", "fr": "L'opposition boycottera le scrutin" }, + "body": { + "en": "The opposition has announced a boycott of the term-limit referendum, and pollsters expect a turnout under forty percent. A yes would carry, and it would be quoted for years as proof of something.", + "fr": "L'opposition a annoncé qu'elle boycotterait le référendum sur la limite des mandats et les instituts prévoient une participation inférieure à quarante pour cent. Un oui l'emporterait et serait cité pendant des années comme preuve de quelque chose." + }, + "yes": { + "label": { "en": "Hold the vote anyway", "fr": "Tenir le scrutin quand même" }, + "effects": [ + { "stat": "stability", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "softPower", "delta": -3, "days": 60 }, + { "stat": "opinion", "delta": -3, "days": 40 } + ] + }, + "no": { + "label": { "en": "Postpone and talk", "fr": "Reporter et discuter" }, + "effects": [ + { "stat": "stability", "delta": -2, "days": 40 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "jus_defamation_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 450 }, + "title": { "en": "Take defamation out of the criminal code", "fr": "Sortir la diffamation du code pénal" }, + "body": { + "en": "Journalists can still be jailed for defamation. A bill would limit penalties to civil damages. Ministers say the press will be able to say anything about anyone for the price of a fine.", + "fr": "Les journalistes peuvent encore être emprisonnés pour diffamation. Un projet de loi limiterait les sanctions aux dommages civils. Des ministres craignent que la presse puisse tout dire de tout le monde au prix d'une amende." + }, + "yes": { + "label": { "en": "Decriminalise defamation", "fr": "Dépénaliser la diffamation" }, + "effects": [ + { "stat": "civilRights", "delta": 3, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep the criminal penalty", "fr": "Garder la sanction pénale" }, + "effects": [ + { "stat": "stability", "delta": 1, "days": 40 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "jus_ngo_register_01", + "category": "justice", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 550, "min": { "unrest": 25 } }, + "title": { "en": "A register for foreign-funded NGOs", "fr": "Un registre des ONG financées de l'étranger" }, + "body": { + "en": "The Interior Ministry wants every NGO that receives foreign funds to register as a foreign agent and publish its donors. Several have worked in prisons and hospitals for twenty years.", + "fr": "Le ministère de l'Intérieur veut que toute ONG recevant des fonds étrangers s'inscrive comme agent étranger et publie ses donateurs. Plusieurs travaillent dans les prisons et les hôpitaux depuis vingt ans." + }, + "yes": { + "label": { "en": "Create the register", "fr": "Créer le registre" }, + "effects": [ + { "stat": "stability", "delta": 2, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -3, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": -3, "days": 60 } + ] + }, + "no": { + "label": { "en": "Reject the register", "fr": "Rejeter le registre" }, + "effects": [ + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "jus_political_prisoner_01", + "category": "justice", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "dayMin": 900, "max": { "civilRights": 60 } }, + "title": { "en": "A jailed journalist and foreign pressure", "fr": "Un journaliste emprisonné et la pression étrangère" }, + "body": { + "en": "An opposition journalist serves four years for insulting the courts. Three allied governments ask for a pardon and mention the next trade round. The prosecutor's office calls this interference.", + "fr": "Un journaliste d'opposition purge quatre ans pour outrage à la justice. Trois gouvernements alliés demandent une grâce et évoquent le prochain cycle commercial. Le parquet y voit une ingérence." + }, + "yes": { + "label": { "en": "Grant the pardon", "fr": "Accorder la grâce" }, + "effects": [ + { "stat": "softPower", "delta": 3, "days": 60 }, + { "stat": "civilRights", "delta": 2 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "stability", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Refuse the pardon", "fr": "Refuser la grâce" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "stability", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "jus_police_complaints_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 250, "max": { "civilRights": 66 } }, + "title": { "en": "An independent police complaints body", "fr": "Un organe indépendant contre les abus policiers" }, + "body": { + "en": "Complaints against the police are investigated by the police, and one in forty is upheld. A new body with its own investigators would take them over. The police union says that officers will be afraid to act.", + "fr": "Les plaintes contre la police sont instruites par la police et une sur quarante est retenue. Un nouvel organe doté de ses propres enquêteurs les reprendrait. Le syndicat de police dit que les agents n'oseront plus agir." + }, + "yes": { + "label": { "en": "Create the body", "fr": "Créer l'organe" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "civilRights", "delta": 3, "bias": true, "days": 365 }, + { "sector": "police", "delta": -1, "days": 60 }, + { "stat": "order", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep internal inquiries", "fr": "Garder les enquêtes internes" }, + "effects": [ + { "stat": "civilRights", "delta": -1 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "order", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "jus_televised_trials_01", + "category": "justice", + "doc": "memo", + "sender": "press_office", + "conditions": { "dayMin": 800 }, + "title": { "en": "Cameras in the courtroom", "fr": "Des caméras dans les salles d'audience" }, + "body": { + "en": "Trials are closed to cameras, and the public learns of them through leaks. A reform would broadcast hearings live except in cases involving minors. Lawyers fear performing witnesses and judges.", + "fr": "Les procès sont fermés aux caméras et le public en apprend le contenu par des fuites. Une réforme diffuserait les audiences en direct, sauf pour les mineurs. Les avocats craignent des témoins et des juges qui jouent la comédie." + }, + "yes": { + "label": { "en": "Allow cameras", "fr": "Autoriser les caméras" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "civilRights", "delta": 1 }, + { "sector": "justice", "delta": 1, "days": 90 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep trials closed", "fr": "Garder les procès fermés" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "stat": "stability", "delta": 1, "days": 30 }] + } + }, + { + "id": "jus_labour_tribunals_01", + "category": "justice", + "doc": "letter", + "sender": "union", + "conditions": { "dayMin": 400 }, + "title": { "en": "Fast labour tribunals", "fr": "Des prud'hommes accélérés" }, + "body": { + "en": "Dismissed workers wait three years for a hearing, and most settle for a fraction of what they are owed. The Confederation asks for fast labour tribunals with a six-month limit. Employers call it a gift to the unions.", + "fr": "Les salariés licenciés attendent trois ans une audience et la plupart acceptent une fraction de ce qui leur est dû. La Confédération demande des prud'hommes rapides avec un délai de six mois. Le patronat y voit un cadeau aux syndicats." + }, + "yes": { + "label": { "en": "Create the tribunals", "fr": "Créer les tribunaux" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "justice", "delta": 2, "days": 90 }, + { "stat": "unrest", "delta": -2, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "stat": "unrest", "delta": 2, "days": 60 }, + { "stat": "economy", "delta": 1, "days": 40 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "jus_corporate_crime_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 600 }, + "title": { "en": "Prison for directors after fatal accidents", "fr": "Dirigeants responsables des accidents mortels" }, + "body": { + "en": "After a factory fire killed nineteen, only a foreman was convicted. A bill would make directors criminally liable for safety failures. Industry groups warn that nobody will run a risky plant here.", + "fr": "Après l'incendie d'une usine qui a fait dix-neuf morts, seul un contremaître a été condamné. Un projet de loi rendrait les dirigeants pénalement responsables des manquements à la sécurité. Le patronat prévient que personne ne dirigera plus d'usine à risque ici." + }, + "yes": { + "label": { "en": "Make directors liable", "fr": "Responsabiliser les dirigeants" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "sector": "justice", "delta": 2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Leave the law alone", "fr": "Ne pas toucher à la loi" }, + "effects": [ + { "stat": "economy", "delta": 1, "days": 40 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "jus_pardon_pensioner_01", + "category": "justice", + "doc": "letter", + "sender": "min_justice", + "conditions": { "dayMin": 500 }, + "title": { "en": "Pardon for the pensioner who fired", "fr": "Grâce pour le retraité qui a tiré" }, + "body": { + "en": "A 71-year-old shopkeeper shot a burglar dead and got eight years. A hundred thousand people have signed for a pardon. Prosecutors say the burglar was running away.", + "fr": "Un commerçant de 71 ans a tué un cambrioleur d'un coup de fusil et a écopé de huit ans. Cent mille personnes ont signé pour sa grâce. Le parquet affirme que le cambrioleur fuyait." + }, + "yes": { + "label": { "en": "Grant the pardon", "fr": "Accorder la grâce" }, + "effects": [ + { "stat": "opinion", "delta": 4, "days": 40 }, + { "sector": "justice", "delta": -2, "days": 90 }, + { "stat": "order", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Refuse the pardon", "fr": "Refuser la grâce" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "sector": "justice", "delta": 1, "days": 60 }, + { "stat": "order", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "jus_dna_database_01", + "category": "justice", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 1050, "max": { "order": 62 } }, + "title": { "en": "DNA samples on every arrest", "fr": "Un prélèvement d'ADN à chaque arrestation" }, + "body": { + "en": "Police want a DNA sample from everyone arrested, kept for life even if the person is never charged. It would solve cases others cannot. A third of those arrested are released without charge.", + "fr": "La police veut un prélèvement d'ADN de toute personne arrêtée, conservé à vie même sans poursuites. Cela résoudrait des affaires restées sans solution. Un tiers des personnes arrêtées sont libérées sans inculpation." + }, + "yes": { + "label": { "en": "Create the database", "fr": "Créer le fichier" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "order", "delta": 2, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -3, "bias": true, "days": 365 }, + { "sector": "justice", "delta": 2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Limit it to convictions", "fr": "Le limiter aux condamnés" }, + "effects": [{ "stat": "order", "delta": -1, "days": 40 }, { "stat": "civilRights", "delta": 1 }] + } + }, + { + "id": "jus_tax_evasion_01", + "category": "justice", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 300, "min": { "deficit": 3 } }, + "title": { "en": "An amnesty for hidden funds", "fr": "Une amnistie pour les capitaux cachés" }, + "body": { + "en": "Valdorians are thought to hold the equivalent of 9 percent of GDP in foreign accounts. An amnesty at a low rate would bring some home. Honest taxpayers will ask why they paid in full.", + "fr": "Les Valdoriens détiendraient l'équivalent de 9 % du PIB sur des comptes étrangers. Une amnistie à taux réduit en ferait rentrer une partie. Les contribuables honnêtes demanderont pourquoi ils ont tout payé." + }, + "yes": { + "label": { "en": "Offer the amnesty", "fr": "Proposer l'amnistie" }, + "effects": [ + { "oneOff": -0.4 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "sector": "justice", "delta": -2, "days": 90 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Prosecute the evaders", "fr": "Poursuivre les fraudeurs" }, + "effects": [ + { "extraSpending": 0.05 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "justice", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "jus_asylum_courts_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 450 }, + "title": { "en": "Fast-track asylum tribunals", "fr": "Des tribunaux d'asile accélérés" }, + "body": { + "en": "Asylum seekers wait three years for a decision, in reception centres built for six months. A fast track would decide in eight weeks with one appeal. Lawyers warn of rushed refusals.", + "fr": "Les demandeurs d'asile attendent trois ans une décision dans des centres d'accueil prévus pour six mois. Une procédure accélérée trancherait en huit semaines avec un seul recours. Les avocats redoutent des refus expédiés." + }, + "yes": { + "label": { "en": "Create the fast track", "fr": "Créer la procédure accélérée" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "justice", "delta": 2, "days": 90 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the full procedure", "fr": "Garder la procédure complète" }, + "effects": [ + { "sector": "justice", "delta": -2, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "jus_ombudsman_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "title": { "en": "An ombudsman with subpoena powers", "fr": "Un médiateur doté de pouvoirs d'enquête" }, + "body": { + "en": "The ombudsman may now only ask ministries for documents. A bill would let the office summon officials and inspect any file. Ministries say the office would become a second government.", + "fr": "Le médiateur ne peut aujourd'hui que demander des documents aux ministères. Un projet de loi lui permettrait de convoquer des fonctionnaires et de consulter tout dossier. Les ministères disent que l'office deviendrait un second gouvernement." + }, + "yes": { + "label": { "en": "Grant the powers", "fr": "Accorder les pouvoirs" }, + "effects": [ + { "extraSpending": 0.05 }, + { "stat": "civilRights", "delta": 2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep it advisory", "fr": "Le garder consultatif" }, + "effects": [ + { "stat": "civilRights", "delta": -1 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "jus_restitution_01", + "category": "justice", + "doc": "petition", + "sender": "min_justice", + "conditions": { "dayMin": 750 }, + "title": { "en": "Land taken seventy years ago", "fr": "Des terres confisquées il y a soixante-dix ans" }, + "body": { + "en": "Descendants of landowners dispossessed after the war ask for restitution or compensation. The claims cover a tenth of the country, including some of its newest housing. Current residents have deeds too.", + "fr": "Des descendants de propriétaires expropriés après la guerre demandent restitution ou indemnisation. Les demandes portent sur un dixième du pays, dont des logements récents. Les occupants actuels ont aussi des titres." + }, + "yes": { + "label": { "en": "Open compensation", "fr": "Ouvrir l'indemnisation" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": 1 }, + { "sector": "housing", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Close the files", "fr": "Clore les dossiers" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 60 }, + { "sector": "justice", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "jus_voter_id_01", + "category": "justice", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 1000 }, + "title": { "en": "Photo ID to vote", "fr": "Une pièce d'identité avec photo pour voter" }, + "body": { + "en": "The Interior Ministry cites a handful of cases of double voting and wants photo ID required at every polling station. About 600,000 older and poorer voters do not hold one.", + "fr": "Le ministère de l'Intérieur cite quelques cas de double vote et veut exiger une pièce d'identité avec photo dans chaque bureau. Environ 600 000 électeurs âgés ou pauvres n'en possèdent pas." + }, + "yes": { + "label": { "en": "Require photo ID", "fr": "Exiger la pièce d'identité" }, + "effects": [ + { "stat": "stability", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": -2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep current rules", "fr": "Garder les règles actuelles" }, + "effects": [{ "stat": "stability", "delta": -1, "days": 40 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "jus_party_ban_01", + "category": "justice", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 1100, "min": { "unrest": 30 } }, + "title": { "en": "Banning a radical party", "fr": "Interdire un parti radical" }, + "body": { + "en": "A radical party that calls for 'cleansing the institutions' polls at nine percent and fills stadiums. The Interior Ministry asks the constitutional court to dissolve it. Lawyers say its voters will find another home.", + "fr": "Un parti radical qui appelle à « purger les institutions » pèse neuf pour cent dans les sondages et remplit des stades. Le ministère de l'Intérieur demande à la cour constitutionnelle de le dissoudre. Les juristes disent que ses électeurs iront ailleurs." + }, + "yes": { + "label": { "en": "Seek the ban", "fr": "Demander l'interdiction" }, + "effects": [ + { "stat": "stability", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": -3, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Let voters decide", "fr": "Laisser les électeurs trancher" }, + "effects": [ + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "order", "delta": -1, "days": 40 }, + { "stat": "civilRights", "delta": 1 } + ] + } + }, + { + "id": "jus_observers_01", + "category": "justice", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "dayMin": 1200 }, + "title": { "en": "Foreign observers for the elections", "fr": "Des observateurs étrangers pour les élections" }, + "body": { + "en": "An international body offers to send three hundred observers to the coming elections. They would publish a report on the campaign, the media and the count. The Interior Ministry fears a report.", + "fr": "Un organisme international propose d'envoyer trois cents observateurs aux prochaines élections. Ils publieraient un rapport sur la campagne, les médias et le dépouillement. Le ministère de l'Intérieur redoute ce rapport." + }, + "yes": { + "label": { "en": "Invite the observers", "fr": "Inviter les observateurs" }, + "effects": [ + { "stat": "softPower", "delta": 3, "days": 60 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "stability", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Decline the offer", "fr": "Décliner l'offre" }, + "effects": [ + { "stat": "softPower", "delta": -3, "days": 60 }, + { "stat": "stability", "delta": 1, "days": 30 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "jus_truth_commission_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 600 }, + "title": { "en": "A commission on the old regime's crimes", "fr": "Une commission sur les crimes de l'ancien régime" }, + "body": { + "en": "Families of those who disappeared under the old regime ask for a truth commission with access to the secret police archives. Several current officials appear in them as young recruits.", + "fr": "Les familles de disparus de l'ancien régime demandent une commission de vérité avec accès aux archives de la police secrète. Plusieurs responsables actuels y figurent comme jeunes recrues." + }, + "yes": { + "label": { "en": "Create the commission", "fr": "Créer la commission" }, + "effects": [ + { "extraSpending": 0.05 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": -3, "days": 60 }, + { "stat": "civilRights", "delta": 2 }, + { "stat": "softPower", "delta": 2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Seal the archives", "fr": "Sceller les archives" }, + "effects": [ + { "stat": "stability", "delta": 1, "days": 30 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "civilRights", "delta": -1 } + ] + } + }, + { + "id": "jus_wrongful_conviction_01", + "category": "justice", + "doc": "report", + "sender": "min_justice", + "conditions": { "dayMin": 350 }, + "title": { "en": "Compensation after wrongful convictions", "fr": "Indemnisation après des erreurs judiciaires" }, + "body": { + "en": "Eleven people have been cleared after years in prison. The law pays a month's wages per year served and requires them to prove the state was at fault. A bill would pay a fixed sum and drop the proof.", + "fr": "Onze personnes ont été innocentées après des années de prison. La loi verse un mois de salaire par année purgée et exige de prouver la faute de l'État. Un projet de loi verserait une somme fixe sans cette preuve." + }, + "yes": { + "label": { "en": "Raise the compensation", "fr": "Relever l'indemnisation" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "civilRights", "delta": 2 }, + { "sector": "justice", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the current law", "fr": "Garder la loi actuelle" }, + "effects": [ + { "stat": "civilRights", "delta": -2 }, + { "stat": "softPower", "delta": -1, "days": 60 }, + { "sector": "justice", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "jus_fines_by_post_01", + "category": "justice", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 450 }, + "title": { "en": "Automatic fines for speeding and parking", "fr": "Amendes automatiques pour vitesse et stationnement" }, + "body": { + "en": "Traffic cases fill a third of the courts' time. Cameras and fines by post would clear them and bring in revenue. Motorists' groups call it a tax disguised as a safety measure.", + "fr": "Les infractions routières occupent un tiers du temps des tribunaux. Radars et amendes par courrier les désengorgeraient et rapporteraient des recettes. Les automobilistes y voient un impôt déguisé en mesure de sécurité." + }, + "yes": { + "label": { "en": "Automate the fines", "fr": "Automatiser les amendes" }, + "effects": [ + { "revenue": "other", "delta": 0.15 }, + { "sector": "justice", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep traffic courts", "fr": "Garder les tribunaux de police" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "justice", "delta": -1, "days": 60 }, + { "revenue": "other", "delta": -0.05 } + ] + } + }, + { + "id": "jus_courts_merger_01", + "category": "justice", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 1300, "min": { "deficit": 3 } }, + "title": { "en": "Merge the smallest courts", "fr": "Fusionner les plus petits tribunaux" }, + "body": { + "en": "Forty district courts sit fewer than fifty days a year. Merging them would save on buildings and clerks. Litigants in remote valleys would travel two hours to reach a judge.", + "fr": "Quarante tribunaux d'instance siègent moins de cinquante jours par an. Les fusionner économiserait bâtiments et greffiers. Les justiciables des vallées reculées feraient deux heures de route pour voir un juge." + }, + "yes": { + "label": { "en": "Merge the courts", "fr": "Fusionner les tribunaux" }, + "effects": [ + { "extraSpending": -0.15 }, + { "sector": "justice", "delta": -3, "days": 120 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep every court", "fr": "Garder tous les tribunaux" }, + "effects": [ + { "extraSpending": 0.05 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "justice", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "jus_final_amnesty_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 1400 }, + "title": { "en": "An amnesty for minor offences", "fr": "Une amnistie pour les petits délits" }, + "body": { + "en": "Before the term ends, the Justice Ministry proposes pardoning minor offences, from unpaid fines to first-time thefts. It would empty prisons of 2,000 people. Critics call it a gift to voters.", + "fr": "Avant la fin du mandat, le ministère de la Justice propose d'amnistier les petits délits, des amendes impayées aux premiers vols. Cela viderait les prisons de 2 000 détenus. Les critiques y voient un cadeau aux électeurs." + }, + "yes": { + "label": { "en": "Grant the amnesty", "fr": "Accorder l'amnistie" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": 2 }, + { "stat": "order", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Refuse the amnesty", "fr": "Refuser l'amnistie" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "order", "delta": 1, "days": 30 }, + { "stat": "civilRights", "delta": -1 } + ] + } + }, + { + "id": "jus_military_courts_01", + "category": "justice", + "doc": "telegram", + "sender": "min_interior", + "conditions": { "dayMin": 600, "min": { "unrest": 40 } }, + "title": { "en": "Military courts for rioters", "fr": "Des tribunaux militaires pour les émeutiers" }, + "body": { + "en": "NINE HUNDRED ARRESTED AFTER RIOTS. ORDINARY COURTS CANNOT PROCESS THEM FOR MONTHS. INTERIOR MINISTRY PROPOSES MILITARY COURTS FOR ARSON AND ASSAULT. STOP.", + "fr": "NEUF CENTS ARRESTATIONS APRES LES EMEUTES. LES TRIBUNAUX ORDINAIRES NE PEUVENT LES TRAITER AVANT DES MOIS. LE MINISTERE DE L'INTERIEUR PROPOSE DES TRIBUNAUX MILITAIRES POUR INCENDIES ET VIOLENCES. STOP." + }, + "yes": { + "label": { "en": "Set up military courts", "fr": "Créer des tribunaux militaires" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 40 }, + { "stat": "civilRights", "delta": -4 }, + { "stat": "softPower", "delta": -3, "days": 60 }, + { "sector": "justice", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Keep ordinary courts", "fr": "Garder les tribunaux ordinaires" }, + "effects": [ + { "stat": "order", "delta": -2, "days": 30 }, + { "stat": "unrest", "delta": 2, "days": 30 }, + { "sector": "justice", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "jus_cash_bail_01", + "category": "justice", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 300 }, + "title": { "en": "Cash bail for minor offences", "fr": "Caution financière pour les petits délits" }, + "body": { + "en": "Defendants who cannot post bail stay in pre-trial detention for weeks, even for minor offences, and lose their jobs. The ministry proposes to scrap cash bail. Judges worry that some will not return.", + "fr": "Les prévenus qui ne peuvent pas payer la caution restent des semaines en détention provisoire, même pour des délits mineurs, et perdent leur emploi. Le ministère propose de supprimer la caution financière. Des juges craignent que certains ne reviennent pas." + }, + "yes": { + "label": { "en": "Scrap cash bail", "fr": "Supprimer la caution" }, + "effects": [ + { "stat": "civilRights", "delta": 2 }, + { "stat": "order", "delta": -1, "days": 40 }, + { "sector": "justice", "delta": 1, "days": 60 }, + { "extraSpending": -0.05 } + ] + }, + "no": { + "label": { "en": "Keep cash bail", "fr": "Garder la caution" }, + "effects": [ + { "stat": "civilRights", "delta": -2 }, + { "revenue": "other", "delta": 0.05 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } } ] diff --git a/web/data/cards/security.json b/web/data/cards/security.json index ecc9585..f528899 100644 --- a/web/data/cards/security.json +++ b/web/data/cards/security.json @@ -1,6 +1,9 @@ [ { - "id": "sec_crackdown_01", "category": "security", "doc": "memo", "sender": "min_interior", + "id": "sec_crackdown_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", "conditions": { "min": { "unrest": 35 } }, "title": { "en": "Send police to the protesters?", "fr": "Envoyer la police contre les manifestants ?" }, "body": { @@ -28,7 +31,11 @@ } }, { - "id": "sec_backlash_01", "category": "security", "doc": "report", "sender": "press_office", "followUpOnly": true, + "id": "sec_backlash_01", + "category": "security", + "doc": "report", + "sender": "press_office", + "followUpOnly": true, "title": { "en": "Rights report condemns the crackdown", "fr": "Un rapport condamne la répression" }, "body": { "en": "An international rights group has published testimonies from the night the square was cleared. Foreign editors are asking for a response.", @@ -45,14 +52,14 @@ }, "no": { "label": { "en": "Dismiss the report", "fr": "Rejeter le rapport" }, - "effects": [ - { "stat": "softPower", "delta": -4, "days": 60 }, - { "stat": "opinion", "delta": -2, "days": 30 } - ] + "effects": [{ "stat": "softPower", "delta": -4, "days": 60 }, { "stat": "opinion", "delta": -2, "days": 30 }] } }, { - "id": "sec_cctv_01", "category": "security", "doc": "memo", "sender": "min_interior", + "id": "sec_cctv_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", "title": { "en": "Nationwide CCTV network", "fr": "Un réseau national de vidéosurveillance" }, "body": { "en": "A camera network covering every major street would deter crime and help solve it. Privacy lawyers are already preparing their case.", @@ -66,13 +73,14 @@ { "stat": "civilRights", "delta": -3, "bias": true, "days": 365 } ] }, - "no": { - "label": { "en": "Refuse", "fr": "Refuser" }, - "effects": [{ "stat": "order", "delta": -1, "days": 30 }] - } + "no": { "label": { "en": "Refuse", "fr": "Refuser" }, "effects": [{ "stat": "order", "delta": -1, "days": 30 }] }, + "conditions": { "dayMin": 160 } }, { - "id": "sec_riot_gear_01", "category": "security", "doc": "memo", "sender": "min_interior", + "id": "sec_riot_gear_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", "title": { "en": "Armoured vehicles for riot police", "fr": "Véhicules blindés pour les forces anti-émeute" }, "body": { "en": "The riot police ask for armoured vehicles and new equipment. The images of them on the streets may unsettle the public.", @@ -87,13 +95,14 @@ { "stat": "softPower", "delta": -2, "days": 60 } ] }, - "no": { - "label": { "en": "Refuse", "fr": "Refuser" }, - "effects": [{ "sector": "police", "delta": -2, "days": 60 }] - } + "no": { "label": { "en": "Refuse", "fr": "Refuser" }, "effects": [{ "sector": "police", "delta": -2, "days": 60 }] }, + "conditions": { "dayMin": 420, "min": { "unrest": 28 } } }, { - "id": "sec_gang_amnesty_01", "category": "security", "doc": "letter", "sender": "mayor", + "id": "sec_gang_amnesty_01", + "category": "security", + "doc": "letter", + "sender": "mayor", "title": { "en": "Offer the street gangs an amnesty", "fr": "Proposer une amnistie aux gangs de rue" }, "body": { "en": "The mayor has brokered talks with gang leaders: weapons handed in against a pardon for minor offences. Many will see it as surrender.", @@ -109,9 +118,1902 @@ }, "no": { "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [{ "stat": "order", "delta": -2, "days": 60 }, { "stat": "opinion", "delta": 2, "days": 30 }] + } + }, + { + "id": "sec_police_pay_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "title": { "en": "Police pay claim", "fr": "Revendication salariale de la police" }, + "body": { + "en": "Officers have had no raise in four years and the police unions talk of a work-to-rule. The Interior Ministry says a settlement costs less than a month of lost patrols.", + "fr": "Les policiers n'ont pas été augmentés depuis quatre ans et leurs syndicats évoquent une grève du zèle. Le ministère de l'Intérieur estime qu'un accord coûte moins cher qu'un mois de patrouilles perdues." + }, + "yes": { + "label": { "en": "Grant the raise", "fr": "Accorder la hausse" }, "effects": [ + { "extraSpending": 0.3 }, + { "sector": "police", "delta": 5, "days": 120 }, + { "stat": "order", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Hold the line", "fr": "Tenir bon" }, + "effects": [ + { "stat": "order", "delta": -3, "days": 40 }, + { "sector": "police", "delta": -3, "days": 90 }, + { "stat": "unrest", "delta": 1, "days": 30 } + ], + "followUp": { "id": "sec_police_strike_01", "inDays": 40 } + } + }, + { + "id": "sec_police_strike_01", + "category": "security", + "doc": "telegram", + "sender": "min_interior", + "followUpOnly": true, + "title": { "en": "Patrols halved by work-to-rule", "fr": "Patrouilles réduites de moitié" }, + "body": { + "en": "POLICE UNIONS BEGIN WORK-TO-RULE. NIGHT PATROLS AT HALF STRENGTH IN THE CAPITAL. BURGLARIES RISING. AWAIT INSTRUCTIONS. STOP.", + "fr": "LES SYNDICATS DE POLICE DEBUTENT LA GREVE DU ZELE. PATROUILLES DE NUIT REDUITES DE MOITIE DANS LA CAPITALE. CAMBRIOLAGES EN HAUSSE. ATTENDONS VOS INSTRUCTIONS. STOP." + }, + "yes": { + "label": { "en": "Pay the raise now", "fr": "Payer la hausse maintenant" }, + "effects": [ + { "extraSpending": 0.4 }, + { "stat": "order", "delta": 2, "days": 30 }, + { "sector": "police", "delta": 3, "days": 90 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Order officers back", "fr": "Ordonner la reprise du service" }, + "effects": [ + { "stat": "order", "delta": -4, "days": 30 }, + { "sector": "police", "delta": -4, "days": 120 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": -1 } + ] + } + }, + { + "id": "sec_facial_recog_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 120 }, + "title": { "en": "Facial recognition at the stations", "fr": "Reconnaissance faciale dans les gares" }, + "body": { + "en": "Cameras linked to a face database would flag wanted suspects in the main railway stations. The Data Protection Office warns that every commuter would be scanned.", + "fr": "Des caméras reliées à un fichier de visages signaleraient les suspects recherchés dans les grandes gares. Le Bureau de protection des données prévient que chaque voyageur serait scanné." + }, + "yes": { + "label": { "en": "Roll it out", "fr": "Déployer le système" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "order", "delta": 3, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -3, "bias": true, "days": 365 } + ], + "setFlags": ["sec_facial"], + "followUp": { "id": "sec_facial_leak_01", "inDays": 120 } + }, + "no": { + "label": { "en": "Keep the cameras dumb", "fr": "Garder des caméras simples" }, + "effects": [ + { "stat": "order", "delta": -1, "days": 40 }, + { "stat": "civilRights", "delta": 1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "sec_facial_leak_01", + "category": "security", + "doc": "report", + "sender": "intelligence", + "followUpOnly": true, + "conditions": { "flags": ["sec_facial"] }, + "title": { "en": "Face database found open online", "fr": "Le fichier de visages retrouvé en ligne" }, + "body": { + "en": "A contractor left the station face database unprotected for six weeks. Journalists have already downloaded a sample of it.", + "fr": "Un sous-traitant a laissé le fichier de visages des gares sans protection pendant six semaines. Des journalistes en ont déjà téléchargé un échantillon." + }, + "yes": { + "label": { "en": "Order a full audit", "fr": "Ordonner un audit complet" }, + "effects": [ + { "oneOff": 0.15 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": 2 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Patch it quietly", "fr": "Colmater discrètement" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "softPower", "delta": -2, "days": 60 } + ] + } + }, + { + "id": "sec_border_scanners_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "title": { "en": "Container scanners at the port", "fr": "Scanners à conteneurs au port" }, + "body": { + "en": "Customs wants scanners at the main port to catch smuggled weapons and cash. Importers warn that queues of trucks will lengthen.", + "fr": "Les douanes réclament des scanners au grand port pour intercepter armes et liquidités de contrebande. Les importateurs préviennent que les files de camions s'allongeront." + }, + "yes": { + "label": { "en": "Buy the scanners", "fr": "Acheter les scanners" }, + "effects": [ + { "oneOff": 0.5 }, + { "revenue": "other", "delta": 0.1 }, + { "stat": "order", "delta": 2, "bias": true, "days": 300 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep spot checks", "fr": "Garder les contrôles aléatoires" }, + "effects": [{ "stat": "economy", "delta": 1, "days": 60 }, { "stat": "order", "delta": -2, "days": 90 }] + }, + "conditions": { "dayMin": 200 } + }, + { + "id": "sec_border_fence_01", + "category": "security", + "doc": "memo", + "sender": "general", + "conditions": { "dayMin": 100, "max": { "order": 62 } }, + "title": { "en": "A fence on the eastern border", "fr": "Une clôture à la frontière est" }, + "body": { + "en": "Smugglers and irregular crossings are rising along the eastern passes. The General Staff proposes a fence and sensors, which neighbouring governments will take as a message.", + "fr": "Contrebandiers et passages irréguliers se multiplient dans les cols de l'est. L'état-major propose une clôture et des capteurs, que les gouvernements voisins prendront comme un message." + }, + "yes": { + "label": { "en": "Build the fence", "fr": "Construire la clôture" }, + "effects": [ + { "oneOff": 0.6 }, + { "stat": "order", "delta": 3, "bias": true, "days": 365 }, + { "stat": "hardPower", "delta": 1 }, + { "stat": "softPower", "delta": -3, "days": 90 } + ] + }, + "no": { + "label": { "en": "Add patrols instead", "fr": "Renforcer les patrouilles" }, + "effects": [ + { "extraSpending": 0.15 }, + { "sector": "police", "delta": 2, "days": 90 }, + { "stat": "order", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "sec_taskforce_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "title": { "en": "A task force against organised crime", "fr": "Une cellule contre le crime organisé" }, + "body": { + "en": "Three syndicates now control the docks, the nightclubs and part of the haulage trade. A joint task force with its own prosecutors could break them, but it would answer to few people.", + "fr": "Trois syndicats contrôlent désormais les docks, les boîtes de nuit et une partie du transport routier. Une cellule mixte dotée de ses propres procureurs pourrait les démanteler, mais elle rendrait peu de comptes." + }, + "yes": { + "label": { "en": "Create the task force", "fr": "Créer la cellule" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "order", "delta": 3, "bias": true, "days": 365 }, + { "sector": "police", "delta": 3, "days": 120 } + ], + "setFlags": ["sec_taskforce"], + "followUp": { "id": "sec_taskforce_result_01", "inDays": 90 } + }, + "no": { + "label": { "en": "Leave it to local police", "fr": "Laisser faire la police locale" }, + "effects": [{ "stat": "order", "delta": -2, "days": 90 }, { "stat": "economy", "delta": -1, "days": 90 }] + }, + "conditions": { "max": { "order": 60 } } + }, + { + "id": "sec_taskforce_result_01", + "category": "security", + "doc": "report", + "sender": "min_justice", + "followUpOnly": true, + "conditions": { "flags": ["sec_taskforce"] }, + "title": { "en": "Task force raids the docks", "fr": "La cellule frappe les docks" }, + "body": { + "en": "Forty arrests at dawn, and a warehouse of seized weapons. Defence lawyers say the evidence came from wiretaps nobody authorised.", + "fr": "Quarante arrestations à l'aube et un entrepôt d'armes saisies. Les avocats de la défense affirment que les preuves viennent d'écoutes que personne n'a autorisées." + }, + "yes": { + "label": { "en": "Publicise the arrests", "fr": "Médiatiser les arrestations" }, + "effects": [ + { "stat": "opinion", "delta": 4, "days": 40 }, + { "stat": "order", "delta": 2, "days": 60 }, + { "stat": "civilRights", "delta": -1 } + ] + }, + "no": { + "label": { "en": "Let the courts decide", "fr": "Laisser les tribunaux trancher" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "civilRights", "delta": 1 }, + { "sector": "justice", "delta": 2, "days": 90 } + ] + } + }, + { + "id": "sec_drug_decrim_01", + "category": "security", + "doc": "memo", + "sender": "min_health", + "title": { "en": "Decriminalise small-scale drug use", "fr": "Dépénaliser la consommation de drogues" }, + "body": { + "en": "Prisons and courts are clogged with people caught with a few grams. The Health Ministry would rather treat them than jail them, and parents' associations would rather not.", + "fr": "Prisons et tribunaux sont encombrés de personnes arrêtées avec quelques grammes. Le ministère de la Santé préfère les soigner que les emprisonner, ce que les associations de parents refusent." + }, + "yes": { + "label": { "en": "Decriminalise", "fr": "Dépénaliser" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "civilRights", "delta": 3, "bias": true, "days": 365 }, + { "sector": "health", "delta": 3, "days": 120 }, + { "stat": "order", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -3, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep prosecuting", "fr": "Continuer les poursuites" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "health", "delta": -2, "days": 90 } + ] + }, + "conditions": { "dayMin": 250 } + }, + { + "id": "sec_protest_permit_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 100, "min": { "unrest": 25 } }, + "title": { "en": "Permits for large demonstrations", "fr": "Autorisation des grandes manifestations" }, + "body": { + "en": "The Interior Ministry wants prior authorisation for any gathering above 500 people, with a refusal power. Organisers call it a licence to silence.", + "fr": "Le ministère de l'Intérieur veut une autorisation préalable pour tout rassemblement de plus de 500 personnes, avec un pouvoir de refus. Les organisateurs y voient un permis de réduire au silence." + }, + "yes": { + "label": { "en": "Require permits", "fr": "Exiger une autorisation" }, + "effects": [ + { "stat": "order", "delta": 3, "bias": true, "days": 365 }, + { "stat": "unrest", "delta": -2, "days": 60 }, + { "stat": "civilRights", "delta": -3, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Keep the right to assemble", "fr": "Maintenir la liberté de réunion" }, + "effects": [ + { "stat": "unrest", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "order", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "sec_stadium_01", + "category": "security", + "doc": "letter", + "sender": "mayor", + "title": { "en": "Derby night at the stadium", "fr": "Soir de derby au stade" }, + "body": { + "en": "The capital derby is on Saturday. After last season's brawl, the police ask to bar away fans and close the bars around the stadium. Club owners are furious.", + "fr": "Le derby de la capitale a lieu samedi. Après la bagarre de la saison dernière, la police demande d'interdire les supporters visiteurs et de fermer les bars autour du stade. Les clubs sont furieux." + }, + "yes": { + "label": { "en": "Ban away fans", "fr": "Interdire les visiteurs" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 30 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Let both ends in", "fr": "Ouvrir les deux tribunes" }, + "effects": [ + { "stat": "order", "delta": -2, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 30 }, + { "stat": "opinion", "delta": 1, "days": 20 } + ], + "followUp": { "id": "sec_stadium_riot_01", "inDays": 10 } + } + }, + { + "id": "sec_stadium_riot_01", + "category": "security", + "doc": "telegram", + "sender": "mayor", + "followUpOnly": true, + "title": { "en": "Fighting after the derby", "fr": "Affrontements après le derby" }, + "body": { + "en": "RIOT AFTER DERBY. SIXTY INJURED, TWELVE POLICE AMONG THEM. SHOP FRONTS SMASHED NEAR THE STADIUM. STOP.", + "fr": "EMEUTE APRES LE DERBY. SOIXANTE BLESSES DONT DOUZE POLICIERS. VITRINES BRISEES PRES DU STADE. STOP." + }, + "yes": { + "label": { "en": "Close the stadium a month", "fr": "Fermer le stade un mois" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 40 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Fine clubs, ID tickets", "fr": "Amender et ficher les billets" }, + "effects": [ + { "oneOff": -0.05 }, + { "stat": "order", "delta": 1, "days": 60 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "sec_private_security_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "title": { "en": "Private firms for night patrols", "fr": "Des sociétés privées pour les rondes de nuit" }, + "body": { + "en": "A security firm offers to patrol the business district at night for less than the police overtime bill. The police union calls it the first step to a privatised force.", + "fr": "Une société de sécurité propose de patrouiller la nuit dans le quartier d'affaires pour moins cher que les heures supplémentaires de la police. Le syndicat de police y voit le début d'une privatisation." + }, + "yes": { + "label": { "en": "Hire the firm", "fr": "Engager la société" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "order", "delta": 2, "days": 90 }, + { "stat": "civilRights", "delta": -1 }, + { "sector": "police", "delta": -2, "days": 120 } + ], + "setFlags": ["sec_private_sec"], + "followUp": { "id": "sec_private_scandal_01", "inDays": 150 } + }, + "no": { + "label": { "en": "Keep patrols public", "fr": "Garder des patrouilles publiques" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "sector": "police", "delta": 1, "days": 60 } + ] + }, + "conditions": { "dayMin": 500 } + }, + { + "id": "sec_private_scandal_01", + "category": "security", + "doc": "report", + "sender": "press_office", + "followUpOnly": true, + "conditions": { "flags": ["sec_private_sec"] }, + "title": { "en": "Guards accused of beating a shoplifter", "fr": "Des vigiles accusés d'avoir frappé un voleur" }, + "body": { + "en": "A video shows contracted guards beating a teenager in a shopping arcade. The firm says its staff followed procedure. Its contract renews next month.", + "fr": "Une vidéo montre des vigiles sous contrat frappant un adolescent dans une galerie marchande. La société affirme avoir suivi la procédure. Son contrat est renouvelé le mois prochain." + }, + "yes": { + "label": { "en": "Revoke the licence", "fr": "Retirer la licence" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": 2 }, { "stat": "order", "delta": -2, "days": 60 }, - { "stat": "opinion", "delta": 2, "days": 30 } + { "oneOff": 0.1 } + ] + }, + "no": { + "label": { "en": "Issue a warning", "fr": "Adresser un avertissement" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + } + }, + { + "id": "sec_wiretap_01", + "category": "security", + "doc": "memo", + "sender": "intelligence", + "conditions": { "dayMin": 90, "max": { "order": 62 } }, + "title": { "en": "Wiretaps without a warrant", "fr": "Écoutes sans mandat" }, + "body": { + "en": "The Intelligence Directorate asks to listen to terror suspects for 30 days before a judge is told. It says warrants take too long. Judges say that is the point of them.", + "fr": "Le renseignement demande à écouter des suspects de terrorisme pendant 30 jours avant d'en informer un juge. Il juge les mandats trop lents. Les juges répondent que c'est leur raison d'être." + }, + "yes": { + "label": { "en": "Authorise the wiretaps", "fr": "Autoriser les écoutes" }, + "effects": [ + { "stat": "order", "delta": 2, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -4, "bias": true, "days": 365 } + ], + "setFlags": ["sec_wiretap"], + "followUp": { "id": "sec_wiretap_leak_01", "inDays": 100 } + }, + "no": { + "label": { "en": "Insist on warrants", "fr": "Maintenir les mandats" }, + "effects": [ + { "stat": "order", "delta": -2, "days": 90 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "sec_wiretap_leak_01", + "category": "security", + "doc": "report", + "sender": "press_office", + "followUpOnly": true, + "conditions": { "flags": ["sec_wiretap"] }, + "title": { "en": "Opposition MP found in the files", "fr": "Un député d'opposition dans les dossiers" }, + "body": { + "en": "A newspaper reveals that an opposition deputy's calls were logged under the new wiretap rules. The Intelligence Directorate calls it an error of filing.", + "fr": "Un journal révèle que les appels d'un député d'opposition ont été enregistrés en vertu des nouvelles règles d'écoute. Le renseignement parle d'une erreur de classement." + }, + "yes": { + "label": { "en": "Open a parliamentary inquiry", "fr": "Ouvrir une enquête parlementaire" }, + "effects": [ + { "stat": "civilRights", "delta": 3 }, + { "stat": "stability", "delta": -2, "days": 40 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "sector": "justice", "delta": 2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Classify the file", "fr": "Classer le dossier secret" }, + "effects": [ + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "order", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "sec_terror_threat_01", + "category": "security", + "doc": "telegram", + "sender": "intelligence", + "conditions": { "dayMin": 150 }, + "title": { "en": "Plot against the rail network", "fr": "Complot contre le réseau ferré" }, + "body": { + "en": "INTERCEPTS POINT TO A BOMB PLOT ON THE CAPITAL RAIL NETWORK WITHIN DAYS. CELL NOT LOCATED. RECOMMEND HIGHEST ALERT. STOP.", + "fr": "DES ECOUTES REVELENT UN PROJET D'ATTENTAT SUR LE RESEAU FERRE DE LA CAPITALE DANS LES JOURS A VENIR. CELLULE NON LOCALISEE. ALERTE MAXIMALE RECOMMANDEE. STOP." + }, + "yes": { + "label": { "en": "Raise the alert level", "fr": "Relever le niveau d'alerte" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "order", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 30 } + ], + "followUp": { "id": "sec_plot_trial_01", "inDays": 35 } + }, + "no": { + "label": { "en": "Keep normal service", "fr": "Maintenir le service normal" }, + "effects": [ + { "stat": "order", "delta": -3, "days": 60 }, + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 20 } + ] + } + }, + { + "id": "sec_plot_trial_01", + "category": "security", + "doc": "report", + "sender": "min_justice", + "followUpOnly": true, + "title": { "en": "Plot suspects ready for trial", "fr": "Les suspects du complot prêts à être jugés" }, + "body": { + "en": "Nine suspects were arrested at a rented flat with detonators. The Interior Ministry wants a special tribunal with closed hearings. The Justice Ministry prefers an ordinary court.", + "fr": "Neuf suspects ont été arrêtés dans un appartement loué avec des détonateurs. Le ministère de l'Intérieur veut un tribunal spécial à huis clos. Le ministère de la Justice préfère un tribunal ordinaire." + }, + "yes": { + "label": { "en": "Use a special tribunal", "fr": "Recourir à un tribunal spécial" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 60 }, + { "stat": "civilRights", "delta": -4 }, + { "stat": "softPower", "delta": -3, "days": 60 }, + { "sector": "justice", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Use an ordinary court", "fr": "Recourir à un tribunal ordinaire" }, + "effects": [ + { "sector": "justice", "delta": 3, "days": 90 }, + { "stat": "civilRights", "delta": 2 }, + { "stat": "order", "delta": -1, "days": 40 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "sec_cyber_ransom_01", + "category": "security", + "doc": "report", + "sender": "intelligence", + "conditions": { "dayMin": 200 }, + "title": { "en": "Hospital network held to ransom", "fr": "Le réseau hospitalier pris en otage" }, + "body": { + "en": "Hackers have locked the records of eleven hospitals and demand payment in untraceable coins. Surgeons are working from paper. The Treasury could pay quietly.", + "fr": "Des pirates ont verrouillé les dossiers de onze hôpitaux et exigent un paiement en monnaie intraçable. Les chirurgiens travaillent sur papier. Le Trésor pourrait payer discrètement." + }, + "yes": { + "label": { "en": "Pay the ransom", "fr": "Payer la rançon" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "health", "delta": 2, "days": 30 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "order", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Refuse and rebuild", "fr": "Refuser et reconstruire" }, + "effects": [ + { "sector": "health", "delta": -4, "days": 60 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "sec_bodycams_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "title": { "en": "Body cameras for every officer", "fr": "Des caméras-piétons pour chaque policier" }, + "body": { + "en": "Rights groups have asked for body cameras for months. Officers fear that out-of-context footage will end careers. The cameras cost less than the compensation paid each year.", + "fr": "Les associations de défense des droits réclament depuis des mois des caméras-piétons. Les policiers craignent que des images sorties de leur contexte ruinent des carrières. Les caméras coûtent moins que les indemnisations versées chaque année." + }, + "yes": { + "label": { "en": "Equip the force", "fr": "Équiper les policiers" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "civilRights", "delta": 3, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "order", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "stat": "civilRights", "delta": -1 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 40 }, + { "sector": "police", "delta": 1, "days": 60 } + ] + }, + "conditions": { "dayMin": 350, "max": { "civilRights": 62 } } + }, + { + "id": "sec_corrupt_cops_01", + "category": "security", + "doc": "report", + "sender": "min_interior", + "conditions": { "dayMin": 130 }, + "title": { "en": "Officers on the nightclub payroll", "fr": "Des policiers à la solde des boîtes de nuit" }, + "body": { + "en": "Internal affairs has found a dozen officers taking cash from nightclub owners in exchange for warnings before raids. Prosecuting them would hollow out one district's station.", + "fr": "L'inspection interne a trouvé une douzaine de policiers qui touchaient de l'argent de gérants de boîtes de nuit contre des avertissements avant les descentes. Les poursuivre viderait un commissariat de quartier." + }, + "yes": { + "label": { "en": "Dismiss and prosecute", "fr": "Révoquer et poursuivre" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "order", "delta": -1, "days": 40 }, + { "sector": "police", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Transfer them quietly", "fr": "Les muter discrètement" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 60 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "order", "delta": 1, "days": 30 }, + { "sector": "justice", "delta": -2, "days": 90 } + ] + } + }, + { + "id": "sec_community_police_01", + "category": "security", + "doc": "letter", + "sender": "mayor", + "title": { "en": "Community officers in the suburbs", "fr": "Des îlotiers dans les banlieues" }, + "body": { + "en": "The mayor asks for officers who walk the same suburban streets every day instead of arriving by van after the fact. It means more posts and slower arrest numbers.", + "fr": "Le maire demande des policiers qui arpentent chaque jour les mêmes rues de banlieue plutôt que d'arriver en fourgon après coup. Cela suppose plus de postes et des chiffres d'arrestation plus lents." + }, + "yes": { + "label": { "en": "Fund the patrols", "fr": "Financer les patrouilles" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "unrest", "delta": -2, "days": 60 }, + { "sector": "police", "delta": 3, "days": 120 }, + { "stat": "order", "delta": 2, "bias": true, "days": 300 } + ] + }, + "no": { + "label": { "en": "Keep the vans", "fr": "Garder les fourgons" }, + "effects": [ + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "order", "delta": 1, "days": 30 } + ] + }, + "conditions": { "dayMin": 250 } + }, + { + "id": "sec_curfew_01", + "category": "security", + "doc": "telegram", + "sender": "min_interior", + "conditions": { "min": { "unrest": 45 } }, + "title": { "en": "Night curfew in the suburbs", "fr": "Couvre-feu dans les banlieues" }, + "body": { + "en": "THIRD NIGHT OF CAR BURNINGS IN THE OUTER DISTRICTS. POLICE ASK FOR A CURFEW FROM 22:00 TO 05:00. STOP.", + "fr": "TROISIEME NUIT DE VOITURES INCENDIEES DANS LES QUARTIERS PERIPHERIQUES. LA POLICE DEMANDE UN COUVRE-FEU DE 22H A 5H. STOP." + }, + "yes": { + "label": { "en": "Impose the curfew", "fr": "Imposer le couvre-feu" }, + "effects": [ + { "stat": "order", "delta": 4, "days": 30 }, + { "stat": "unrest", "delta": -3, "days": 30 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "economy", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "stat": "order", "delta": -2, "days": 30 }, + { "stat": "unrest", "delta": 2, "days": 30 }, + { "stat": "opinion", "delta": 1, "days": 20 } + ] + } + }, + { + "id": "sec_firearms_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "weight": 0.5, + "conditions": { "dayMin": 60 }, + "title": { "en": "A register for hunting rifles", "fr": "Un fichier des armes de chasse" }, + "body": { + "en": "Every hunting rifle in the country would be registered, with storage checks. Rural deputies call it a tax on tradition. Domestic-violence shelters call it overdue.", + "fr": "Chaque fusil de chasse du pays serait enregistré, avec des contrôles de stockage. Les députés ruraux y voient une taxe sur la tradition. Les refuges pour femmes battues le jugent attendu depuis longtemps." + }, + "yes": { + "label": { "en": "Create the register", "fr": "Créer le fichier" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "order", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -2, "days": 60 }, + { "stat": "civilRights", "delta": -1 } + ] + }, + "no": { + "label": { "en": "Drop the idea", "fr": "Abandonner l'idée" }, + "effects": [ + { "stat": "order", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "sec_prison_smuggling_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "title": { "en": "Drones drop phones into prisons", "fr": "Des drones livrent des téléphones aux prisons" }, + "body": { + "en": "Drones are dropping phones and drugs over prison walls, and gang bosses run their business from their cells. The Interior Ministry proposes a month-long visit ban while it reviews procedures.", + "fr": "Des drones larguent téléphones et drogue par-dessus les murs et des chefs de gangs dirigent leurs affaires depuis leur cellule. Le ministère de l'Intérieur propose de suspendre les parloirs un mois le temps de revoir les procédures." + }, + "yes": { + "label": { "en": "Ban visits for a month", "fr": "Suspendre les parloirs un mois" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "unrest", "delta": 2, "days": 30 } + ] + }, + "no": { + "label": { "en": "Fund scanners and jammers", "fr": "Financer scanners et brouilleurs" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "order", "delta": 1, "days": 60 }, + { "sector": "justice", "delta": 2, "days": 90 } + ] + }, + "conditions": { "dayMin": 450 } + }, + { + "id": "sec_informants_01", + "category": "security", + "doc": "memo", + "sender": "intelligence", + "conditions": { "dayMin": 200, "max": { "order": 62 } }, + "title": { "en": "Paid informants inside extremist groups", "fr": "Des indicateurs payés dans les groupes extrémistes" }, + "body": { + "en": "The Directorate wants a fund to pay informants inside three extremist movements. Past experience shows that some informants end up leading the cells they were meant to watch.", + "fr": "Le renseignement veut un fonds pour rémunérer des indicateurs au sein de trois mouvements extrémistes. L'expérience montre que certains finissent par diriger les cellules qu'ils devaient surveiller." + }, + "yes": { + "label": { "en": "Fund the informants", "fr": "Financer les indicateurs" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "order", "delta": 2, "bias": true, "days": 300 }, + { "stat": "civilRights", "delta": -1 } + ], + "setFlags": ["sec_informant"], + "followUp": { "id": "sec_informant_exposed_01", "inDays": 150 } + }, + "no": { + "label": { "en": "Refuse the fund", "fr": "Refuser le fonds" }, + "effects": [ + { "extraSpending": -0.05 }, + { "stat": "order", "delta": -2, "days": 90 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "sec_informant_exposed_01", + "category": "security", + "doc": "report", + "sender": "intelligence", + "followUpOnly": true, + "conditions": { "flags": ["sec_informant"] }, + "title": { "en": "The informant who set a fire", "fr": "L'indicateur qui avait allumé un incendie" }, + "body": { + "en": "A paid informant helped set fire to a mosque annex and an immigration office, and the Directorate knew in advance. A magistrate has asked for the file.", + "fr": "Un indicateur rémunéré a participé à l'incendie d'une annexe de mosquée et d'un bureau d'immigration, et le renseignement le savait. Un magistrat a demandé le dossier." + }, + "yes": { + "label": { "en": "Hand over the file", "fr": "Transmettre le dossier" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "sector": "justice", "delta": 3, "days": 90 }, + { "stat": "order", "delta": -2, "days": 60 }, + { "stat": "hardPower", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Invoke state secrecy", "fr": "Invoquer le secret d'État" }, + "effects": [ + { "stat": "order", "delta": 1, "days": 40 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "softPower", "delta": -2, "days": 60 } + ] + } + }, + { + "id": "sec_police_academy_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 90, "max": { "q:police": 55 } }, + "title": { "en": "A longer police academy course", "fr": "Une formation plus longue à l'école de police" }, + "body": { + "en": "Recruits now leave the academy after 14 weeks and arrive on the street without knowing the use-of-force rules. The Interior Ministry wants the course extended to a year.", + "fr": "Les recrues quittent l'école après quatorze semaines et arrivent dans la rue sans connaître les règles d'usage de la force. Le ministère de l'Intérieur veut porter la formation à un an." + }, + "yes": { + "label": { "en": "Extend the course", "fr": "Allonger la formation" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "police", "delta": 5, "days": 240 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "order", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep it short", "fr": "Garder la formation courte" }, + "effects": [ + { "sector": "police", "delta": -2, "days": 90 }, + { "stat": "order", "delta": 1, "days": 40 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "sec_riot_rubber_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 950, "min": { "unrest": 35 } }, + "title": { "en": "Rubber bullets for riot units", "fr": "Des balles en caoutchouc pour les anti-émeutes" }, + "body": { + "en": "Riot units say that without a longer-range weapon they must wade into crowds with batons. Medical associations remind the ministry what rubber bullets do to an eye.", + "fr": "Les unités anti-émeute disent que sans arme à plus longue portée elles doivent s'enfoncer dans la foule à coups de matraque. Les associations médicales rappellent ce que fait une balle en caoutchouc à un œil." + }, + "yes": { + "label": { "en": "Authorise them", "fr": "Les autoriser" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 30 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "softPower", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "stat": "unrest", "delta": 2, "days": 30 }, + { "stat": "order", "delta": -2, "days": 30 }, + { "sector": "police", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "sec_masks_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 150, "min": { "unrest": 24 } }, + "title": { "en": "Mask ban at demonstrations", "fr": "Interdiction du masque en manifestation" }, + "body": { + "en": "Hooded groups smash windows at the end of each march, then vanish. A ban on masks would help identify them. Organisers note that protesters also hide their faces from their employers.", + "fr": "Des groupes cagoulés brisent des vitrines en fin de cortège puis disparaissent. Interdire le masque aiderait à les identifier. Les organisateurs notent que des manifestants se cachent aussi de leur employeur." + }, + "yes": { + "label": { "en": "Ban masks", "fr": "Interdire le masque" }, + "effects": [ + { "stat": "order", "delta": 2, "bias": true, "days": 300 }, + { "stat": "civilRights", "delta": -2, "bias": true, "days": 300 }, + { "stat": "unrest", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave things as they are", "fr": "Ne rien changer" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 40 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "order", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "sec_metro_gates_01", + "category": "security", + "doc": "letter", + "sender": "mayor", + "conditions": { "dayMin": 300 }, + "title": { "en": "Pickpockets in the metro", "fr": "Pickpockets dans le métro" }, + "body": { + "en": "Tourist complaints about the metro have tripled. The mayor proposes ticket gates with guards at every station, and warns that queues at rush hour will not be popular.", + "fr": "Les plaintes des touristes sur le métro ont triplé. Le maire propose des portiques avec agents à chaque station et prévient que les files aux heures de pointe seront impopulaires." + }, + "yes": { + "label": { "en": "Fund the gates", "fr": "Financer les portiques" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "order", "delta": 2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Refuse the gates", "fr": "Refuser les portiques" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "order", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "sec_customs_bribes_01", + "category": "security", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 250 }, + "title": { "en": "Bribes at the customs posts", "fr": "Pots-de-vin aux postes de douane" }, + "body": { + "en": "Audits show customs officers at three crossings waving trucks through for cash, costing the Treasury revenue. Rotating all staff every year would end the arrangements and the experience.", + "fr": "Les audits montrent que des douaniers de trois postes laissent passer des camions contre de l'argent, ce qui prive le Trésor de recettes. Une rotation annuelle du personnel casserait ces arrangements, mais aussi l'expérience accumulée." + }, + "yes": { + "label": { "en": "Rotate customs staff", "fr": "Faire tourner les douaniers" }, + "effects": [ + { "extraSpending": 0.1 }, + { "revenue": "other", "delta": 0.2 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "order", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave customs alone", "fr": "Ne pas toucher aux douanes" }, + "effects": [ + { "revenue": "other", "delta": -0.1 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "sec_intel_budget_01", + "category": "security", + "doc": "memo", + "sender": "intelligence", + "conditions": { "dayMin": 350 }, + "title": { "en": "The intelligence budget", "fr": "Le budget du renseignement" }, + "body": { + "en": "The Directorate wants its budget doubled to hire analysts and linguists. Parliament's oversight committee notes that it cannot say what the current budget buys.", + "fr": "Le renseignement veut doubler son budget pour recruter analystes et linguistes. La commission parlementaire de contrôle note qu'elle ne sait pas dire ce que le budget actuel achète." + }, + "yes": { + "label": { "en": "Double the budget", "fr": "Doubler le budget" }, + "effects": [ + { "extraSpending": 0.4 }, + { "stat": "order", "delta": 2, "bias": true, "days": 365 }, + { "stat": "hardPower", "delta": 2, "days": 90 }, + { "stat": "civilRights", "delta": -1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Cut the budget", "fr": "Réduire le budget" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "hardPower", "delta": -2, "days": 90 }, + { "stat": "order", "delta": -1, "days": 60 }, + { "stat": "civilRights", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "sec_journalists_spy_01", + "category": "security", + "doc": "memo", + "sender": "intelligence", + "conditions": { "dayMin": 450, "max": { "stability": 62 } }, + "title": { "en": "Monitoring journalists' sources", "fr": "Surveiller les sources des journalistes" }, + "body": { + "en": "Classified briefings keep appearing in print. The Directorate asks to read the phone logs of three reporters to find the leaker. Editors call it the end of confidential sources.", + "fr": "Des notes classifiées paraissent régulièrement dans la presse. Le renseignement demande à consulter les relevés téléphoniques de trois reporters pour trouver la source. Les rédactions y voient la fin du secret des sources." + }, + "yes": { + "label": { "en": "Authorise the monitoring", "fr": "Autoriser la surveillance" }, + "effects": [ + { "stat": "stability", "delta": 2, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -4, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": -3, "days": 60 } + ] + }, + "no": { + "label": { "en": "Protect the reporters", "fr": "Protéger les reporters" }, + "effects": [ + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "hardPower", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "civilRights", "delta": 1 } + ] + } + }, + { + "id": "sec_emergency_01", + "category": "security", + "doc": "telegram", + "sender": "min_interior", + "conditions": { "dayMin": 500, "min": { "unrest": 40 } }, + "title": { "en": "State of emergency requested", "fr": "L'état d'urgence demandé" }, + "body": { + "en": "RIOTS IN FOUR CITIES FOR A WEEK. POLICE STRETCHED. INTERIOR MINISTRY REQUESTS A SIXTY DAY STATE OF EMERGENCY WITH POWER TO SEARCH WITHOUT WARRANT. STOP.", + "fr": "EMEUTES DANS QUATRE VILLES DEPUIS UNE SEMAINE. POLICE DEBORDEE. LE MINISTERE DE L'INTERIEUR DEMANDE UN ETAT D'URGENCE DE SOIXANTE JOURS AVEC PERQUISITIONS SANS MANDAT. STOP." + }, + "yes": { + "label": { "en": "Declare the emergency", "fr": "Décréter l'état d'urgence" }, + "effects": [ + { "stat": "order", "delta": 5, "days": 60 }, + { "stat": "unrest", "delta": -4, "days": 60 }, + { "stat": "civilRights", "delta": -5 }, + { "stat": "stability", "delta": 1, "days": 30 } + ], + "setFlags": ["sec_emergency"], + "followUp": { "id": "sec_emergency_renew_01", "inDays": 60 } + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "stat": "unrest", "delta": 3, "days": 30 }, + { "stat": "order", "delta": -3, "days": 30 }, + { "stat": "opinion", "delta": 1, "days": 20 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "sec_emergency_renew_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "followUpOnly": true, + "conditions": { "flags": ["sec_emergency"] }, + "title": { "en": "Renew the state of emergency?", "fr": "Prolonger l'état d'urgence ?" }, + "body": { + "en": "The sixty days expire on Friday. Calm has returned to most districts, and the Interior Ministry says the powers are the reason. Opponents say the powers are now being used for ordinary policing.", + "fr": "Les soixante jours expirent vendredi. Le calme est revenu dans la plupart des quartiers et le ministère de l'Intérieur y voit l'effet des pouvoirs spéciaux. Les opposants disent qu'ils servent désormais au maintien de l'ordre ordinaire." + }, + "yes": { + "label": { "en": "Renew for 60 days", "fr": "Prolonger de soixante jours" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 40 }, + { "stat": "civilRights", "delta": -4 }, + { "stat": "opinion", "delta": -3, "days": 60 }, + { "stat": "softPower", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Let it lapse", "fr": "Laisser expirer" }, + "effects": [ + { "stat": "civilRights", "delta": 3 }, + { "stat": "order", "delta": -3, "days": 30 }, + { "stat": "unrest", "delta": 3, "days": 30 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "sec_watch_groups_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 600, "max": { "order": 58 } }, + "title": { "en": "Neighbourhood watch groups with sticks", "fr": "Des milices de quartier armées de bâtons" }, + "body": { + "en": "In several towns residents have formed night patrols after a burglary wave. The Interior Ministry can license them with training, or ban them before one goes too far.", + "fr": "Dans plusieurs villes, des habitants ont formé des patrouilles de nuit après une vague de cambriolages. Le ministère de l'Intérieur peut les encadrer par une licence et une formation, ou les interdire avant qu'une dérive ne survienne." + }, + "yes": { + "label": { "en": "License the groups", "fr": "Encadrer les groupes" }, + "effects": [ + { "stat": "order", "delta": 2, "bias": true, "days": 365 }, + { "extraSpending": -0.05 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "stability", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Ban them", "fr": "Les interdire" }, + "effects": [ + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "order", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "sec_police_drones_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 900, "min": { "unrest": 28 } }, + "title": { "en": "Police drones over demonstrations", "fr": "Des drones de police au-dessus des manifestations" }, + "body": { + "en": "A fleet of camera drones would let commanders watch crowd movements and stop incidents early. Civil liberties groups ask who will keep the footage and for how long.", + "fr": "Une flotte de drones équipés de caméras permettrait aux commandants de suivre les mouvements de foule et de prévenir les incidents. Les défenseurs des libertés demandent qui conservera les images et combien de temps." + }, + "yes": { + "label": { "en": "Buy the drones", "fr": "Acheter les drones" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "order", "delta": 2, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -2, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "stat": "civilRights", "delta": 1 }, + { "stat": "order", "delta": -1, "days": 40 }, + { "sector": "police", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "sec_army_drugs_01", + "category": "security", + "doc": "telegram", + "sender": "general", + "conditions": { "dayMin": 950, "max": { "order": 55 } }, + "title": { "en": "Troops against the traffickers", "fr": "L'armée contre les trafiquants" }, + "body": { + "en": "TRAFFICKER CONVOYS NOW CROSS THE NORTHERN VALLEYS WITH ARMED ESCORTS. POLICE OUTGUNNED. GENERAL STAFF OFFERS TWO BRIGADES. STOP.", + "fr": "DES CONVOIS DE TRAFIQUANTS TRAVERSENT LES VALLEES DU NORD AVEC ESCORTES ARMEES. POLICE DEPASSEE. L'ETAT-MAJOR PROPOSE DEUX BRIGADES. STOP." + }, + "yes": { + "label": { "en": "Deploy the brigades", "fr": "Déployer les brigades" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "order", "delta": 3, "days": 60 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "armyLoyalty", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Keep soldiers in barracks", "fr": "Garder l'armée dans les casernes" }, + "effects": [ + { "stat": "order", "delta": -3, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 90 }, + { "stat": "armyLoyalty", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "sec_deradicalise_01", + "category": "security", + "doc": "report", + "sender": "min_interior", + "conditions": { "dayMin": 950 }, + "title": { "en": "Programme for drifting young men", "fr": "Un programme pour jeunes en dérive" }, + "body": { + "en": "Social workers report young men in the outer districts being recruited by extremist preachers online. The ministry can fund counselling and apprenticeships, or leave it to the intelligence service.", + "fr": "Des travailleurs sociaux signalent que des jeunes des quartiers périphériques sont recrutés en ligne par des prédicateurs extrémistes. Le ministère peut financer accompagnement et apprentissages, ou laisser faire le renseignement." + }, + "yes": { + "label": { "en": "Fund the programme", "fr": "Financer le programme" }, + "effects": [ + { "extraSpending": 0.15 }, + { "stat": "order", "delta": 1, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": 1 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Leave it to intelligence", "fr": "Laisser le renseignement" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "order", "delta": -2, "days": 90 }, + { "stat": "unrest", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "sec_sim_cards_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "title": { "en": "Register every SIM card", "fr": "Enregistrement de toutes les cartes SIM" }, + "body": { + "en": "Anonymous prepaid phones are the tool of choice for scammers and kidnappers. A mandatory registration would end that, and also end the anonymity of every phone in the country.", + "fr": "Les cartes prépayées anonymes sont l'outil favori des escrocs et des ravisseurs. Un enregistrement obligatoire y mettrait fin, ainsi qu'à l'anonymat de tous les téléphones du pays." + }, + "yes": { + "label": { "en": "Require registration", "fr": "Exiger l'enregistrement" }, + "effects": [ + { "stat": "order", "delta": 1, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -2, "bias": true, "days": 365 }, + { "stat": "economy", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep anonymity", "fr": "Garder l'anonymat" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "order", "delta": -1, "days": 60 }, + { "stat": "civilRights", "delta": 1, "bias": true, "days": 180 } + ] + }, + "conditions": { "dayMin": 420 } + }, + { + "id": "sec_cyber_agency_01", + "category": "security", + "doc": "memo", + "sender": "intelligence", + "conditions": { "dayMin": 550 }, + "title": { "en": "A national cyber-defence agency", "fr": "Une agence nationale de cyberdéfense" }, + "body": { + "en": "Ransomware gangs and foreign hackers probe state systems every night. A dedicated agency would protect them, and would also hold keys to a good part of the private internet.", + "fr": "Rançongiciels et pirates étrangers sondent chaque nuit les systèmes de l'État. Une agence dédiée les protégerait, mais détiendrait aussi les clés d'une bonne partie de l'internet privé." + }, + "yes": { + "label": { "en": "Create the agency", "fr": "Créer l'agence" }, + "effects": [ + { "oneOff": 0.3 }, + { "extraSpending": 0.15 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -1 } + ] + }, + "no": { + "label": { "en": "Rely on the ministries", "fr": "S'en remettre aux ministères" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "order", "delta": -1, "days": 60 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "sec_witness_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "title": { "en": "A witness protection scheme", "fr": "Un programme de protection des témoins" }, + "body": { + "en": "Three witnesses in gang trials have changed their story or vanished this year. A protection scheme with new identities would cost little per head and a great deal in total.", + "fr": "Trois témoins de procès de gangs ont changé de version ou disparu cette année. Un programme de protection avec nouvelles identités coûterait peu par personne, mais beaucoup au total." + }, + "yes": { + "label": { "en": "Create the scheme", "fr": "Créer le programme" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "justice", "delta": 3, "days": 120 }, + { "stat": "order", "delta": 1, "bias": true, "days": 300 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "extraSpending": -0.1 }, + { "sector": "justice", "delta": -2, "days": 90 }, + { "stat": "order", "delta": -1, "days": 60 } + ] + }, + "conditions": { "dayMin": 600 } + }, + { + "id": "sec_police_recruit_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "conditions": { "max": { "q:police": 45 } }, + "title": { "en": "Police stations short of staff", "fr": "Des commissariats en sous-effectif" }, + "body": { + "en": "Nine in ten stations report vacancies and response times have doubled. The ministry asks to recruit two thousand officers, which means years of salary bills.", + "fr": "Neuf commissariats sur dix signalent des postes vacants et les délais d'intervention ont doublé. Le ministère demande à recruter deux mille policiers, ce qui engage des années de salaires." + }, + "yes": { + "label": { "en": "Recruit two thousand", "fr": "Recruter deux mille policiers" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "police", "delta": 5, "days": 180 }, + { "stat": "order", "delta": 3, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Freeze recruitment", "fr": "Geler les recrutements" }, + "effects": [ + { "stat": "order", "delta": -2, "days": 90 }, + { "stat": "unrest", "delta": 1, "days": 60 }, + { "sector": "police", "delta": -2, "days": 90 } + ] + } + }, + { + "id": "sec_police_politics_01", + "category": "security", + "doc": "letter", + "sender": "min_interior", + "conditions": { "dayMin": 900 }, + "title": { "en": "The police union picks a side", "fr": "Le syndicat de police prend parti" }, + "body": { + "en": "The main police union has endorsed the opposition and told officers to read out its programme at roll call. The Interior Ministry asks to ban partisan activity in uniform.", + "fr": "Le principal syndicat de police a apporté son soutien à l'opposition et demandé aux agents de lire son programme à la prise de service. Le ministère de l'Intérieur demande d'interdire l'activité partisane en uniforme." + }, + "yes": { + "label": { "en": "Ban partisan activity", "fr": "Interdire l'activité partisane" }, + "effects": [ + { "stat": "civilRights", "delta": -2 }, + { "sector": "police", "delta": -3, "days": 90 }, + { "stat": "order", "delta": -1, "days": 40 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Let the union speak", "fr": "Laisser le syndicat s'exprimer" }, + "effects": [ + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "police", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "sec_border_camp_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 400 }, + "title": { "en": "An informal camp at the northern border", "fr": "Un campement informel à la frontière nord" }, + "body": { + "en": "Two thousand people from a neighbouring conflict have set up tents outside a border town. The mayor wants them moved. Aid agencies say there is nowhere else for them to go.", + "fr": "Deux mille personnes fuyant un conflit voisin ont installé des tentes devant une ville frontalière. Le maire veut qu'elles partent. Les agences humanitaires disent qu'elles n'ont nulle part où aller." + }, + "yes": { + "label": { "en": "Clear the camp", "fr": "Évacuer le campement" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 30 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "softPower", "delta": -3, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Provide services", "fr": "Fournir des services" }, + "effects": [ + { "extraSpending": 0.15 }, + { "stat": "order", "delta": -1, "days": 40 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "sec_seized_assets_01", + "category": "security", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 400 }, + "title": { "en": "What to do with the mobsters' villas", "fr": "Que faire des villas des mafieux" }, + "body": { + "en": "Courts have seized forty villas, yachts and car dealerships from the docks syndicates. The Treasury wants to auction them. Mayors want to turn them into clinics and youth clubs.", + "fr": "Les tribunaux ont saisi quarante villas, yachts et concessions automobiles aux syndicats des docks. Le Trésor veut les vendre aux enchères. Les maires veulent en faire des dispensaires et des clubs de jeunes." + }, + "yes": { + "label": { "en": "Auction the assets", "fr": "Vendre aux enchères" }, + "effects": [ + { "oneOff": -0.3 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Hand them to communities", "fr": "Les confier aux communes" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "unrest", "delta": -1, "days": 60 }, + { "stat": "order", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "sec_protest_fines_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 450, "min": { "unrest": 30 } }, + "title": { "en": "Heavy fines for road blockades", "fr": "De lourdes amendes pour les blocages de routes" }, + "body": { + "en": "Farmers, truckers and students have all blocked main roads this year. The ministry proposes fines of a month's wages. Organisers say it targets those who can least afford it.", + "fr": "Agriculteurs, routiers et étudiants ont tous bloqué des axes cette année. Le ministère propose des amendes d'un mois de salaire. Les organisateurs jugent que cela frappe ceux qui en ont le moins les moyens." + }, + "yes": { + "label": { "en": "Impose the fines", "fr": "Imposer les amendes" }, + "effects": [ + { "revenue": "other", "delta": 0.1 }, + { "stat": "order", "delta": 2, "bias": true, "days": 300 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "unrest", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the law as it is", "fr": "Maintenir la loi actuelle" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "order", "delta": -1, "days": 40 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "sec_hostages_01", + "category": "security", + "doc": "telegram", + "sender": "min_foreign", + "conditions": { "dayMin": 600 }, + "title": { "en": "Engineers taken hostage abroad", "fr": "Des ingénieurs pris en otage à l'étranger" }, + "body": { + "en": "THREE VALDORIAN ENGINEERS KIDNAPPED BY ARMED GROUP ABROAD. DEMAND TWO MILLION. SPECIAL UNIT READY TO ACT ON YOUR ORDER. STOP.", + "fr": "TROIS INGENIEURS VALDORIENS ENLEVES A L'ETRANGER PAR UN GROUPE ARME. RANCON DE DEUX MILLIONS. UNITE SPECIALE PRETE A AGIR SUR VOTRE ORDRE. STOP." + }, + "yes": { + "label": { "en": "Negotiate and pay", "fr": "Négocier et payer" }, + "effects": [ + { "oneOff": 0.15 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "order", "delta": -1, "days": 90 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Order the rescue raid", "fr": "Ordonner l'assaut" }, + "effects": [ + { "stat": "hardPower", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "softPower", "delta": -2, "days": 60 }, + { "stat": "armyLoyalty", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "sec_harbour_war_01", + "category": "security", + "doc": "telegram", + "sender": "mayor", + "conditions": { "dayMin": 500, "max": { "order": 55 } }, + "title": { "en": "Gang war in the harbour district", "fr": "Guerre des gangs dans le quartier du port" }, + "body": { + "en": "SIX SHOOTINGS IN FOUR NIGHTS IN THE HARBOUR DISTRICT. SCHOOLS CLOSED. RESIDENTS STAY INDOORS. POLICE ASK FOR A SURGE OF OFFICERS. STOP.", + "fr": "SIX FUSILLADES EN QUATRE NUITS DANS LE QUARTIER DU PORT. ECOLES FERMEES. HABITANTS CONFINES. LA POLICE DEMANDE DES RENFORTS. STOP." + }, + "yes": { + "label": { "en": "Surge police into the district", "fr": "Envoyer des renforts de police" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "order", "delta": 4, "days": 40 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "unrest", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Fund youth centres instead", "fr": "Financer des centres de jeunes" }, + "effects": [ + { "extraSpending": 0.15 }, + { "stat": "order", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": -2, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + } + }, + { + "id": "sec_sunset_law_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 1000 }, + "title": { "en": "Renewing the anti-terror law", "fr": "Reconduire la loi antiterroriste" }, + "body": { + "en": "The emergency anti-terror powers expire at the end of the month: detention without charge, house arrest by decree, wider search powers. No attack has happened since. The ministry says that is because of the law.", + "fr": "Les pouvoirs antiterroristes d'exception expirent à la fin du mois : détention sans inculpation, assignation à résidence par décret, perquisitions élargies. Aucun attentat n'a eu lieu depuis. Le ministère y voit l'effet de la loi." + }, + "yes": { + "label": { "en": "Renew the law", "fr": "Reconduire la loi" }, + "effects": [ + { "stat": "order", "delta": 2, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -3, "bias": true, "days": 365 }, + { "stat": "stability", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Let it lapse", "fr": "La laisser expirer" }, + "effects": [ + { "stat": "civilRights", "delta": 3, "bias": true, "days": 365 }, + { "stat": "order", "delta": -2, "days": 90 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "sec_custody_death_01", + "category": "security", + "doc": "report", + "sender": "min_interior", + "conditions": { "dayMin": 650, "max": { "civilRights": 66 } }, + "title": { "en": "A death in police custody", "fr": "Un décès en garde à vue" }, + "body": { + "en": "A young man died in a cell at a district station. The officers' report says he fell. The autopsy shows otherwise. The police union warns that any suspension will empty the station.", + "fr": "Un jeune homme est mort dans une cellule d'un commissariat de quartier. Le rapport des agents parle d'une chute. L'autopsie dit le contraire. Le syndicat de police prévient que toute suspension videra le commissariat." + }, + "yes": { + "label": { "en": "Suspend and investigate", "fr": "Suspendre et enquêter" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "stat": "civilRights", "delta": 2 }, + { "stat": "order", "delta": -2, "days": 40 }, + { "sector": "police", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Defend the officers", "fr": "Défendre les policiers" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 30 }, + { "stat": "opinion", "delta": -4, "days": 40 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "unrest", "delta": 3, "days": 40 } + ] + } + }, + { + "id": "sec_crackdown_pardon_01", + "category": "security", + "doc": "letter", + "sender": "union", + "conditions": { "dayMin": 300, "flags": ["crackdown"] }, + "title": { "en": "Charges against the square's protesters", "fr": "Poursuites contre les manifestants de la place" }, + "body": { + "en": "The Labour Confederation asks you to drop charges against 140 people arrested when the central square was cleared. Prosecutors say that dropping them would tell the next crowd that nothing is risked.", + "fr": "La Confédération du travail vous demande d'abandonner les poursuites contre 140 personnes arrêtées lors de l'évacuation de la place centrale. Le parquet estime que cela dirait à la prochaine foule qu'elle ne risque rien." + }, + "yes": { + "label": { "en": "Drop the charges", "fr": "Abandonner les poursuites" }, + "effects": [ + { "stat": "civilRights", "delta": 3 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "unrest", "delta": -2, "days": 60 }, + { "stat": "order", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Let prosecutors proceed", "fr": "Laisser le parquet poursuivre" }, + "effects": [ + { "stat": "order", "delta": 1, "days": 40 }, + { "stat": "civilRights", "delta": -1 }, + { "stat": "unrest", "delta": 2, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "sec_oversight_01", + "category": "security", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 800, "flags": ["sec_wiretap"] }, + "title": { "en": "A court to oversee the wiretaps", "fr": "Un tribunal pour contrôler les écoutes" }, + "body": { + "en": "Since the warrantless wiretaps began, judges have asked for a standing court with cleared staff to review them afterwards. The Intelligence Directorate calls it a brake on operations.", + "fr": "Depuis le début des écoutes sans mandat, des juges demandent un tribunal permanent, doté de personnel habilité, pour les contrôler a posteriori. Le renseignement y voit un frein aux opérations." + }, + "yes": { + "label": { "en": "Create the court", "fr": "Créer le tribunal" }, + "effects": [ + { "sector": "justice", "delta": 3, "days": 120 }, + { "stat": "civilRights", "delta": 3, "bias": true, "days": 365 }, + { "stat": "order", "delta": -1, "days": 60 }, + { "stat": "hardPower", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep self-oversight", "fr": "Garder l'autocontrôle" }, + "effects": [ + { "stat": "civilRights", "delta": -1 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "order", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "sec_predictive_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 1000 }, + "title": { "en": "Predictive policing software", "fr": "Un logiciel de police prédictive" }, + "body": { + "en": "A vendor promises software that ranks districts by expected crime and sends patrols there. Past data shows more arrests in poor districts, so the software would send patrols there again.", + "fr": "Un éditeur promet un logiciel qui classe les quartiers par risque de délinquance et y envoie les patrouilles. Les données passées montrent plus d'arrestations dans les quartiers pauvres, où le logiciel renverrait donc les patrouilles." + }, + "yes": { + "label": { "en": "Buy the software", "fr": "Acheter le logiciel" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "order", "delta": 2, "bias": true, "days": 365 }, + { "stat": "civilRights", "delta": -2, "bias": true, "days": 365 }, + { "sector": "police", "delta": 2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "stat": "civilRights", "delta": 1 }, + { "stat": "order", "delta": -1, "days": 40 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "sec_paramilitary_01", + "category": "security", + "doc": "report", + "sender": "intelligence", + "conditions": { "dayMin": 950 }, + "title": { "en": "A youth group drilling in the forest", "fr": "Un groupe de jeunes s'entraîne en forêt" }, + "body": { + "en": "Weekend camps run by a nationalist youth league teach drill, knife fighting and the history of grievances. It has fifteen thousand members. Banning it may push it underground.", + "fr": "Les camps de week-end d'une ligue de jeunesse nationaliste enseignent l'ordre serré, le combat au couteau et l'histoire des rancunes. Elle compte quinze mille membres. L'interdire pourrait la pousser dans la clandestinité." + }, + "yes": { + "label": { "en": "Dissolve the league", "fr": "Dissoudre la ligue" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 40 }, + { "stat": "civilRights", "delta": -2 }, + { "stat": "stability", "delta": 1, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Watch but do not ban", "fr": "Surveiller sans interdire" }, + "effects": [ + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "order", "delta": -1, "days": 40 }, + { "stat": "civilRights", "delta": 1 } + ] + } + }, + { + "id": "sec_overtime_cap_01", + "category": "security", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 700, "min": { "deficit": 3 } }, + "title": { "en": "Cap police overtime", "fr": "Plafonner les heures supplémentaires de la police" }, + "body": { + "en": "Police overtime costs more than the force's entire equipment budget, and the audit office says half of it is padded. A cap would cut the bill and lengthen response times.", + "fr": "Les heures supplémentaires de la police coûtent plus que tout le budget d'équipement, et la Cour des comptes estime que la moitié est gonflée. Un plafond réduirait la facture et allongerait les délais d'intervention." + }, + "yes": { + "label": { "en": "Impose the cap", "fr": "Imposer le plafond" }, + "effects": [ + { "extraSpending": -0.15 }, + { "sector": "police", "delta": -3, "days": 120 }, + { "stat": "order", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep paying", "fr": "Continuer à payer" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "order", "delta": 1, "days": 40 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "sec_joint_border_01", + "category": "security", + "doc": "memo", + "sender": "min_foreign", + "conditions": { "dayMin": 1100 }, + "title": { "en": "Joint patrols with the neighbours", "fr": "Patrouilles conjointes avec les voisins" }, + "body": { + "en": "Two neighbouring governments offer joint patrols and shared intelligence on smuggling routes. They ask to station liaison officers in Valdoria and to see the files of the border police.", + "fr": "Deux gouvernements voisins proposent des patrouilles conjointes et le partage du renseignement sur les routes de contrebande. Ils demandent à poster des officiers de liaison en Valdorie et à consulter les dossiers de la police aux frontières." + }, + "yes": { + "label": { "en": "Sign the accord", "fr": "Signer l'accord" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "order", "delta": 1, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": 2, "days": 60 }, + { "stat": "hardPower", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Decline", "fr": "Décliner" }, + "effects": [ + { "stat": "softPower", "delta": -1, "days": 60 }, + { "stat": "order", "delta": -1, "days": 60 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "sec_festival_crowd_01", + "category": "security", + "doc": "letter", + "sender": "mayor", + "conditions": { "dayMin": 1200 }, + "title": { "en": "Midsummer concert crowd limit", "fr": "Jauge du concert de la Saint-Jean" }, + "body": { + "en": "The capital's midsummer concert drew 50,000 people last year into a space built for 30,000. The fire brigade wants a hard cap. The organisers say the cap cuts the stalls' takings.", + "fr": "Le concert de la Saint-Jean a attiré l'an dernier 50 000 personnes dans un espace prévu pour 30 000. Les pompiers veulent une jauge stricte. Les organisateurs disent qu'elle réduit les recettes des commerçants." + }, + "yes": { + "label": { "en": "Cap at 30,000", "fr": "Limiter à 30 000" }, + "effects": [ + { "stat": "order", "delta": 1, "days": 30 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Let the crowd come", "fr": "Laisser venir la foule" }, + "effects": [ + { "stat": "economy", "delta": 1, "days": 30 }, + { "stat": "order", "delta": -2, "days": 30 }, + { "stat": "opinion", "delta": 1, "days": 20 } + ] + } + }, + { + "id": "sec_id_checks_01", + "category": "security", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 1000, "min": { "unrest": 28 } }, + "title": { "en": "Random identity checks in the street", "fr": "Contrôles d'identité aléatoires dans la rue" }, + "body": { + "en": "After a market stabbing, the police ask for the power to stop and check anyone's papers without a reason. Community groups note that the people stopped will not be a random sample.", + "fr": "Après une attaque au couteau sur un marché, la police demande le droit de contrôler les papiers de n'importe qui sans motif. Des associations de quartier notent que les personnes contrôlées ne seront pas un échantillon aléatoire." + }, + "yes": { + "label": { "en": "Grant the power", "fr": "Accorder ce pouvoir" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 60 }, + { "stat": "civilRights", "delta": -3, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "stat": "order", "delta": -1, "days": 40 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "unrest", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "sec_opposition_file_01", + "category": "security", + "doc": "letter", + "sender": "intelligence", + "conditions": { "dayMin": 1100, "max": { "opinion": 55 } }, + "title": { "en": "A file on the opposition leader", "fr": "Un dossier sur le chef de l'opposition" }, + "body": { + "en": "The Directorate offers a file on the opposition leader's finances, gathered over three years. It is real, it is legal to hold, and it is not legal to use. The elections are in a few months.", + "fr": "Le renseignement offre un dossier sur les finances du chef de l'opposition, constitué sur trois ans. Il est réel, sa détention est légale, son usage ne l'est pas. Les élections ont lieu dans quelques mois." + }, + "yes": { + "label": { "en": "Use the file", "fr": "Utiliser le dossier" }, + "effects": [ + { "stat": "stability", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "softPower", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Burn it", "fr": "Le détruire" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "civilRights", "delta": 2 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "sec_cash_limit_01", + "category": "security", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 350 }, + "title": { "en": "A ceiling on cash payments", "fr": "Un plafond pour les paiements en espèces" }, + "body": { + "en": "Gangs launder money through used-car dealers, scrap yards and restaurants. A ceiling on cash payments would make it harder, and shopkeepers who deal mostly in cash say they will pay for it.", + "fr": "Les gangs blanchissent de l'argent via les garagistes, les ferrailleurs et les restaurants. Un plafond de paiement en espèces compliquerait la tâche, et les commerçants qui travaillent surtout en liquide disent qu'ils en feront les frais." + }, + "yes": { + "label": { "en": "Set the ceiling", "fr": "Fixer le plafond" }, + "effects": [ + { "stat": "order", "delta": 1, "bias": true, "days": 365 }, + { "revenue": "other", "delta": 0.1 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Leave cash alone", "fr": "Laisser les espèces tranquilles" }, + "effects": [ + { "stat": "order", "delta": -1, "days": 60 }, + { "stat": "economy", "delta": 1, "days": 40 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "sec_rural_stations_01", + "category": "security", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 500, "min": { "deficit": 3 } }, + "title": { "en": "Close the smallest police stations", "fr": "Fermer les plus petits commissariats" }, + "body": { + "en": "Sixty rural stations see fewer than ten cases a month. Closing them frees officers for the cities and cuts the rent bill. Villages say they will be left with a phone number.", + "fr": "Soixante commissariats ruraux traitent moins de dix affaires par mois. Les fermer libérerait des agents pour les villes et réduirait les loyers. Les villages disent qu'il ne leur restera qu'un numéro de téléphone." + }, + "yes": { + "label": { "en": "Close the stations", "fr": "Fermer les commissariats" }, + "effects": [ + { "extraSpending": -0.15 }, + { "sector": "police", "delta": -2, "days": 120 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "order", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep them open", "fr": "Les garder ouverts" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "order", "delta": 1, "days": 40 }, + { "extraSpending": 0.05 } + ] + } + }, + { + "id": "sec_campus_01", + "category": "security", + "doc": "telegram", + "sender": "min_education", + "conditions": { "dayMin": 130, "min": { "unrest": 28 } }, + "title": { "en": "Students occupy the university", "fr": "Des étudiants occupent l'université" }, + "body": { + "en": "STUDENTS OCCUPY MAIN UNIVERSITY BUILDING OVER TUITION FEES. RECTOR ASKS FOR POLICE. LECTURES CANCELLED SINCE MONDAY. STOP.", + "fr": "DES ETUDIANTS OCCUPENT LE BATIMENT PRINCIPAL DE L'UNIVERSITE CONTRE LES FRAIS D'INSCRIPTION. LE RECTEUR DEMANDE LA POLICE. COURS ANNULES DEPUIS LUNDI. STOP." + }, + "yes": { + "label": { "en": "Send in the police", "fr": "Envoyer la police" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 30 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "sector": "education", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Open negotiations", "fr": "Ouvrir des négociations" }, + "effects": [ + { "stat": "unrest", "delta": 1, "days": 30 }, + { "stat": "order", "delta": -1, "days": 30 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "extraSpending": 0.1 } + ] + } + }, + { + "id": "sec_spyware_01", + "category": "security", + "doc": "memo", + "sender": "intelligence", + "conditions": { "dayMin": 1050, "max": { "order": 62 } }, + "title": { "en": "Spyware from a foreign vendor", "fr": "Un logiciel espion d'un fournisseur étranger" }, + "body": { + "en": "A foreign vendor sells software that reads any phone remotely. Three other governments have already bought it. Two of them were later found to have used it on their own ministers.", + "fr": "Un fournisseur étranger vend un logiciel qui lit n'importe quel téléphone à distance. Trois autres gouvernements l'ont déjà acheté. Deux d'entre eux l'ont ensuite utilisé contre leurs propres ministres." + }, + "yes": { + "label": { "en": "Buy the spyware", "fr": "Acheter le logiciel" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "order", "delta": 2, "bias": true, "days": 365 }, + { "stat": "hardPower", "delta": 2, "days": 90 }, + { "stat": "civilRights", "delta": -2, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Decline", "fr": "Décliner" }, + "effects": [ + { "stat": "hardPower", "delta": -1, "days": 60 }, + { "stat": "order", "delta": -1, "days": 60 }, + { "stat": "softPower", "delta": 1, "days": 60 } ] } } diff --git a/web/data/cards/social.json b/web/data/cards/social.json index 334e99f..60e4f30 100644 --- a/web/data/cards/social.json +++ b/web/data/cards/social.json @@ -1,6 +1,9 @@ [ { - "id": "soc_pension_age_01", "category": "social", "doc": "memo", "sender": "min_labour", + "id": "soc_pension_age_01", + "category": "social", + "doc": "memo", + "sender": "min_labour", "conditions": { "dayMin": 60 }, "title": { "en": "Raise the retirement age?", "fr": "Reculer l'âge de la retraite ?" }, "body": { @@ -15,13 +18,13 @@ { "stat": "unrest", "delta": 4, "days": 60 } ] }, - "no": { - "label": { "en": "Leave it as is", "fr": "Ne rien changer" }, - "effects": [{ "extraSpending": 0.3 }] - } + "no": { "label": { "en": "Leave it as is", "fr": "Ne rien changer" }, "effects": [{ "extraSpending": 0.3 }] } }, { - "id": "soc_childcare_01", "category": "social", "doc": "memo", "sender": "min_labour", + "id": "soc_childcare_01", + "category": "social", + "doc": "memo", + "sender": "min_labour", "title": { "en": "Universal childcare", "fr": "Garde d'enfants universelle" }, "body": { "en": "Free public childcare would let thousands of parents return to work. It would also add a permanent line to the budget.", @@ -35,13 +38,13 @@ { "stat": "unemployment", "delta": -0.3, "bias": true, "days": 365 } ] }, - "no": { - "label": { "en": "Decline", "fr": "Décliner" }, - "effects": [{ "stat": "opinion", "delta": -2, "days": 30 }] - } + "no": { "label": { "en": "Decline", "fr": "Décliner" }, "effects": [{ "stat": "opinion", "delta": -2, "days": 30 }] } }, { - "id": "soc_port_strike_01", "category": "social", "doc": "petition", "sender": "union", + "id": "soc_port_strike_01", + "category": "social", + "doc": "petition", + "sender": "union", "conditions": { "dayMin": 30 }, "title": { "en": "Port workers demand a raise", "fr": "Les dockers réclament une augmentation" }, "body": { @@ -50,10 +53,7 @@ }, "yes": { "label": { "en": "Grant the raise", "fr": "Accorder la hausse" }, - "effects": [ - { "oneOff": 0.2 }, - { "stat": "stability", "delta": 2, "days": 30 } - ] + "effects": [{ "oneOff": 0.2 }, { "stat": "stability", "delta": 2, "days": 30 }] }, "no": { "label": { "en": "Hold the line", "fr": "Tenir bon" }, @@ -65,7 +65,10 @@ } }, { - "id": "soc_food_subsidy_01", "category": "social", "doc": "memo", "sender": "min_labour", + "id": "soc_food_subsidy_01", + "category": "social", + "doc": "memo", + "sender": "min_labour", "conditions": { "min": { "inflation": 4 } }, "title": { "en": "Subsidise bread and fuel", "fr": "Subventionner le pain et le carburant" }, "body": { @@ -82,14 +85,14 @@ }, "no": { "label": { "en": "Let prices run", "fr": "Laisser les prix filer" }, - "effects": [ - { "stat": "opinion", "delta": -4, "days": 40 }, - { "stat": "unrest", "delta": 3, "days": 40 } - ] + "effects": [{ "stat": "opinion", "delta": -4, "days": 40 }, { "stat": "unrest", "delta": 3, "days": 40 }] } }, { - "id": "soc_shelters_01", "category": "social", "doc": "letter", "sender": "mayor", + "id": "soc_shelters_01", + "category": "social", + "doc": "letter", + "sender": "mayor", "title": { "en": "Winter shelters for the homeless", "fr": "Des abris d'hiver pour les sans-abri" }, "body": { "en": "The mayor of the capital asks for emergency funds to open heated shelters before the first frost. Without them, the city expects a hard winter.", @@ -97,18 +100,2027 @@ }, "yes": { "label": { "en": "Release the funds", "fr": "Débloquer les fonds" }, - "effects": [ - { "oneOff": 0.3 }, - { "stat": "opinion", "delta": 2, "days": 30 }, - { "stat": "order", "delta": 1, "days": 30 } - ] + "effects": [{ "oneOff": 0.3 }, { "stat": "opinion", "delta": 2, "days": 30 }, { "stat": "order", "delta": 1, "days": 30 }] }, "no": { "label": { "en": "Not now", "fr": "Pas maintenant" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "stat": "unrest", "delta": 1, "days": 30 }] + } + }, + { + "id": "soc_min_income_01", + "category": "social", + "doc": "memo", + "sender": "min_labour", + "title": { "en": "A minimum income for every household", "fr": "Un revenu minimum pour chaque foyer" }, + "body": { + "en": "The Labour Ministry proposes a guaranteed minimum income for any household under the poverty line. Economists are split on whether it frees people to work or keeps them away from it.", + "fr": "Le ministère du Travail propose un revenu minimum garanti pour tout foyer sous le seuil de pauvreté. Les économistes se divisent : il libérerait les gens pour le travail, ou les en éloignerait." + }, + "yes": { + "label": { "en": "Create the income", "fr": "Créer le revenu" }, + "effects": [ + { "extraSpending": 0.7 }, + { "stat": "opinion", "delta": 4, "days": 45 }, + { "stat": "unrest", "delta": -3, "days": 60 }, + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 365 } + ], + "setFlags": ["soc_min_income"], + "followUp": { "id": "soc_min_income_fraud_01", "inDays": 150 } + }, + "no": { + "label": { "en": "Keep current aid", "fr": "Garder les aides actuelles" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "sector": "social", "delta": -2, "days": 180 } + ] + } + }, + { + "id": "soc_min_income_fraud_01", + "category": "social", + "doc": "report", + "sender": "press_office", + "followUpOnly": true, + "title": { "en": "Fraud claims hit the minimum income", "fr": "La fraude fait scandale au revenu minimum" }, + "body": { + "en": "A newspaper reports minimum income paid to households with undeclared earnings. Audits would cost money and anger recipients, while ignoring the story feeds every critic of the scheme.", + "fr": "Un journal révèle du revenu minimum versé à des foyers aux gains non déclarés. Des contrôles coûteraient cher et braqueraient les bénéficiaires, mais ignorer l'affaire nourrit tous les détracteurs du dispositif." + }, + "yes": { + "label": { "en": "Order audits", "fr": "Ordonner des contrôles" }, + "effects": [ + { "extraSpending": -0.2 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 30 }, + { "stat": "civilRights", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Defend the scheme", "fr": "Défendre le dispositif" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "soc_unemp_benefit_01", + "category": "social", + "doc": "memo", + "sender": "min_finance", + "title": { "en": "How long should jobless pay last?", "fr": "Combien de temps indemniser le chômage ?" }, + "body": { + "en": "Unemployment benefit runs for twenty-four months. Finance wants eighteen, arguing that long claims discourage the search for work. The unions answer that there are no jobs to search for.", + "fr": "L'allocation chômage court sur vingt-quatre mois. Les Finances en veulent dix-huit, estimant que les longues indemnisations découragent la recherche d'emploi. Les syndicats répondent qu'il n'y a pas d'emploi à chercher." + }, + "yes": { + "label": { "en": "Cut to 18 months", "fr": "Passer à 18 mois" }, + "effects": [ + { "extraSpending": -0.4 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -4, "days": 45 }, + { "stat": "unrest", "delta": 3, "days": 45 } + ] + }, + "no": { + "label": { "en": "Keep 24 months", "fr": "Garder 24 mois" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 270 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "conditions": { "dayMin": 40, "min": { "debt": 55 } } + }, + { + "id": "soc_minwage_01", + "category": "social", + "doc": "petition", + "sender": "union", + "conditions": { "dayMin": 20 }, + "title": { "en": "Raise the minimum wage by 8 %", "fr": "Relever le salaire minimum de 8 %" }, + "body": { + "en": "The Confederation asks for an eight percent rise in the minimum wage, the first in three years. Employers in the south predict closures and a return to cash-in-hand hiring.", + "fr": "La Confédération réclame une hausse de huit pour cent du salaire minimum, la première en trois ans. Les patrons du sud annoncent des fermetures et un retour à l'embauche au noir." + }, + "yes": { + "label": { "en": "Raise it by 8 %", "fr": "Le relever de 8 %" }, + "effects": [ + { "stat": "opinion", "delta": 4, "days": 45 }, + { "stat": "unrest", "delta": -3, "days": 45 }, + { "extraSpending": 0.2 }, + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 365 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Freeze it", "fr": "Le geler" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "soc_parental_leave_01", + "category": "social", + "doc": "memo", + "sender": "min_labour", + "title": { "en": "Paid leave for new fathers", "fr": "Un congé payé pour les nouveaux pères" }, + "body": { + "en": "Fathers get three days of leave at a birth. The Labour Ministry proposes eight weeks paid by the social fund, to share childcare and help mothers keep their careers. Small firms dread the gaps in their rosters.", + "fr": "Les pères obtiennent trois jours de congé à la naissance. Le ministère du Travail propose huit semaines payées par la caisse sociale, pour partager la garde et préserver la carrière des mères. Les petites entreprises redoutent les trous dans leurs plannings." + }, + "yes": { + "label": { "en": "Grant eight weeks", "fr": "Accorder huit semaines" }, + "effects": [ + { "extraSpending": 0.3 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "civilRights", "delta": 2, "days": 90 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Keep three days", "fr": "Garder trois jours" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 30 }, + { "sector": "social", "delta": -1, "days": 120 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + }, + "conditions": { "dayMin": 200 } + }, + { + "id": "soc_disability_allow_01", + "category": "social", + "doc": "report", + "sender": "min_labour", + "conditions": { "dayMin": 15, "max": { "q:social": 62 } }, + "title": { "en": "The disability allowance has not moved", "fr": "L'allocation d'invalidité n'a pas bougé" }, + "body": { + "en": "The disability allowance has been frozen for six years, though rents and food have not. Advocacy groups call it a quiet impoverishment. A fifteen percent rise would reach one hundred forty thousand people.", + "fr": "L'allocation d'invalidité est gelée depuis six ans, contrairement aux loyers et à l'alimentation. Les associations parlent d'appauvrissement silencieux. Une hausse de quinze pour cent toucherait cent quarante mille personnes." + }, + "yes": { + "label": { "en": "Raise it by 15 %", "fr": "La relever de 15 %" }, + "effects": [ + { "extraSpending": 0.4 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "unrest", "delta": -2, "days": 45 }, + { "sector": "social", "delta": 3, "days": 180 } + ] + }, + "no": { + "label": { "en": "Maintain the freeze", "fr": "Maintenir le gel" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "sector": "social", "delta": -2, "days": 180 } + ] + } + }, + { + "id": "soc_strike_law_01", + "category": "social", + "doc": "memo", + "sender": "min_labour", + "conditions": { "dayMin": 30 }, + "title": { "en": "Seven days' notice before any strike", "fr": "Préavis de sept jours avant toute grève" }, + "body": { + "en": "After three unannounced stoppages at the port and on the metro, employers want a compulsory notice of seven days and a secret ballot. The Confederation calls it a ban dressed up as a rule.", + "fr": "Après trois arrêts de travail sans préavis au port et dans le métro, le patronat veut un préavis obligatoire de sept jours et un vote à bulletin secret. La Confédération y voit une interdiction déguisée en règlement." + }, + "yes": { + "label": { "en": "Impose the notice", "fr": "Imposer le préavis" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 60 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 60 } + ], + "setFlags": ["soc_strike_law"], + "followUp": { "id": "soc_strike_general_01", "inDays": 60 } + }, + "no": { + "label": { "en": "Leave the right intact", "fr": "Laisser le droit intact" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "order", "delta": -2, "days": 45 }, + { "stat": "civilRights", "delta": 1, "days": 60 } + ], + "followUp": { "id": "soc_wildcat_01", "inDays": 45 } + } + }, + { + "id": "soc_strike_general_01", + "category": "social", + "doc": "letter", + "sender": "union", + "followUpOnly": true, + "title": { "en": "The Confederation calls a protest day", "fr": "La Confédération appelle à une journée d'action" }, + "body": { + "en": "Answering the notice law, the Confederation calls a day of stoppages and marches in every city. The Interior Ministry offers extra police; the Labour Ministry offers talks.", + "fr": "En réponse à la loi sur le préavis, la Confédération appelle à une journée d'arrêts de travail et de manifestations dans toutes les villes. L'Intérieur propose des renforts de police ; le Travail propose de négocier." + }, + "yes": { + "label": { "en": "Open talks", "fr": "Ouvrir des négociations" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "unrest", "delta": -2, "days": 45 }, + { "stat": "economy", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Deploy the police", "fr": "Déployer la police" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 30 }, + { "stat": "unrest", "delta": 3, "days": 45 }, + { "stat": "civilRights", "delta": -2, "days": 90 }, + { "stat": "opinion", "delta": -3, "days": 40 } + ] + } + }, + { + "id": "soc_wildcat_01", + "category": "social", + "doc": "telegram", + "sender": "min_labour", + "followUpOnly": true, + "title": { "en": "Wildcat stoppages spread", "fr": "Les grèves sauvages s'étendent" }, + "body": { + "en": "UNANNOUNCED STOPPAGES AT PORT, METRO AND TWO REFINERIES FOR THREE DAYS. EMPLOYERS LOSING MILLIONS. UNION OFFERS TALKS IF NO RULE IS IMPOSED. STOP.", + "fr": "ARRETS DE TRAVAIL SAUVAGES AU PORT, DANS LE METRO ET DANS DEUX RAFFINERIES DEPUIS TROIS JOURS. LE PATRONAT PERD DES MILLIONS. LE SYNDICAT OFFRE DE NEGOCIER SI AUCUNE REGLE N'EST IMPOSEE. STOP." + }, + "yes": { + "label": { "en": "Impose the notice rule", "fr": "Imposer le préavis" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 45 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 }, + { "stat": "civilRights", "delta": -3 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "opinion", "delta": -3, "days": 40 } + ] + }, + "no": { + "label": { "en": "Negotiate a deal", "fr": "Négocier un accord" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "unrest", "delta": -2, "days": 45 }, + { "stat": "economy", "delta": -2, "days": 45 }, + { "stat": "stability", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "soc_food_bank_01", + "category": "social", + "doc": "letter", + "sender": "mayor", + "title": { "en": "Food banks cannot keep up", "fr": "Les banques alimentaires n'y arrivent plus" }, + "body": { + "en": "The mayor of the capital reports that the food bank now feeds twelve thousand people a week, double last year. Volunteers are exhausted and the shelves are empty by Wednesday.", + "fr": "Le maire de la capitale signale que la banque alimentaire nourrit désormais douze mille personnes par semaine, le double d'il y a un an. Les bénévoles sont épuisés et les étagères vides dès le mercredi." + }, + "yes": { + "label": { "en": "Fund the food banks", "fr": "Financer les banques" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "unrest", "delta": -1, "days": 40 }, + { "sector": "social", "delta": 1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Rely on donations", "fr": "Compter sur les dons" }, "effects": [ { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "stability", "delta": -1, "days": 45 } + ] + }, + "conditions": { "dayMin": 110, "max": { "q:social": 60 } } + }, + { + "id": "soc_care_homes_01", + "category": "social", + "doc": "report", + "sender": "min_health", + "title": { "en": "Care homes inspection report", "fr": "Rapport sur les maisons de retraite" }, + "body": { + "en": "An inspection of private care homes found understaffing and unpaid carers in a third of them. Compulsory staffing ratios would raise fees, and some homes would close.", + "fr": "Une inspection des maisons de retraite privées a relevé du sous-effectif et des soignants non payés dans un tiers d'entre elles. Des ratios de personnel obligatoires feraient monter les tarifs, et certaines maisons fermeraient." + }, + "yes": { + "label": { "en": "Impose staffing ratios", "fr": "Imposer des ratios" }, + "effects": [ + { "extraSpending": 0.3 }, + { "sector": "health", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "economy", "delta": -1, "days": 90 } + ], + "setFlags": ["soc_care_rules"], + "followUp": { "id": "soc_care_inspect_01", "inDays": 120 } + }, + "no": { + "label": { "en": "Leave it to the market", "fr": "S'en remettre au marché" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "sector": "health", "delta": -2, "days": 180 }, { "stat": "unrest", "delta": 1, "days": 30 } ] + }, + "conditions": { "dayMin": 70, "max": { "q:health": 62 } } + }, + { + "id": "soc_care_inspect_01", + "category": "social", + "doc": "report", + "sender": "min_health", + "followUpOnly": true, + "title": { "en": "Care homes: the first closures", "fr": "Maisons de retraite : premières fermetures" }, + "body": { + "en": "Under the new ratios, nine care homes must close and nine hundred residents be rehoused. Operators ask for a transition fund; the ministry notes that most of the nine failed their last three inspections.", + "fr": "Avec les nouveaux ratios, neuf maisons de retraite doivent fermer et neuf cents résidents être relogés. Les exploitants demandent un fonds de transition ; le ministère note que la plupart ont échoué aux trois dernières inspections." + }, + "yes": { + "label": { "en": "Fund the transition", "fr": "Financer la transition" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "sector": "health", "delta": 2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Let them close", "fr": "Laisser fermer" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "stability", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "soc_workweek_01", + "category": "social", + "doc": "memo", + "sender": "min_labour", + "conditions": { "dayMin": 45 }, + "title": { "en": "A shorter working week", "fr": "Une semaine de travail plus courte" }, + "body": { + "en": "Valdorians work forty hours. The Labour Ministry proposes thirty-seven with no pay cut, betting that productivity will catch up. Industry replies that the bill lands on exporters first.", + "fr": "Les Valdoriens travaillent quarante heures. Le ministère du Travail propose trente-sept heures sans baisse de salaire, en pariant sur un rattrapage de productivité. L'industrie répond que la facture tombera d'abord sur les exportateurs." + }, + "yes": { + "label": { "en": "Cut to 37 hours", "fr": "Passer à 37 heures" }, + "effects": [ + { "stat": "opinion", "delta": 4, "days": 45 }, + { "stat": "economy", "delta": -2, "bias": true, "days": 270 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 365 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 270 }, + { "sector": "industry", "delta": -2, "days": 180 } + ], + "setFlags": ["soc_short_week"], + "followUp": { "id": "soc_workweek_review_01", "inDays": 240 } + }, + "no": { + "label": { "en": "Keep 40 hours", "fr": "Garder 40 heures" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "economy", "delta": 1, "days": 90 } + ] + } + }, + { + "id": "soc_workweek_review_01", + "category": "social", + "doc": "report", + "sender": "min_industry", + "followUpOnly": true, + "title": { "en": "Exporters want out of the 37-hour week", "fr": "Les exportateurs veulent sortir des 37 heures" }, + "body": { + "en": "A year in, exporters report overtime bills and missed orders, while surveys show happier workers. Industry asks for exemptions in sectors with seasonal peaks.", + "fr": "Un an après, les exportateurs signalent des heures supplémentaires coûteuses et des commandes manquées, tandis que les sondages montrent des salariés plus heureux. L'industrie réclame des dérogations pour les secteurs à pic saisonnier." + }, + "yes": { + "label": { "en": "Grant exemptions", "fr": "Accorder des dérogations" }, + "effects": [ + { "stat": "economy", "delta": 2, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Hold the rule", "fr": "Maintenir la règle" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 60 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "oneOff": 0.2 } + ] + } + }, + { + "id": "soc_gender_pay_01", + "category": "social", + "doc": "report", + "sender": "min_justice", + "title": { "en": "Women earn 19 % less", "fr": "Les femmes gagnent 19 % de moins" }, + "body": { + "en": "A ministry audit finds an unexplained pay gap of nineteen percent between men and women in comparable jobs. A transparency law would force firms with over fifty staff to publish pay bands and answer claims.", + "fr": "Un audit du ministère relève un écart de salaire inexpliqué de dix-neuf pour cent entre hommes et femmes à poste comparable. Une loi de transparence obligerait les entreprises de plus de cinquante salariés à publier leurs grilles et à répondre aux plaintes." + }, + "yes": { + "label": { "en": "Pass the transparency law", "fr": "Voter la transparence" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "civilRights", "delta": 3, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Rely on voluntary reports", "fr": "Miser sur le volontariat" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + }, + "conditions": { "dayMin": 250 } + }, + { + "id": "soc_child_benefit_01", + "category": "social", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 130, "min": { "deficit": 2 } }, + "title": { "en": "Child benefit: for all, or for some?", "fr": "Allocations familiales : pour tous, ou presque ?" }, + "body": { + "en": "Child benefit is paid to every family whatever the income. Finance wants it limited to the lower half of earners, freeing money for school canteens. Middle-class parents already feel squeezed.", + "fr": "Les allocations familiales sont versées à toutes les familles, quel que soit le revenu. Les Finances veulent les réserver à la moitié la plus modeste, pour financer des cantines. Les parents des classes moyennes se sentent déjà à l'étroit." + }, + "yes": { + "label": { "en": "Means-test it", "fr": "Les soumettre à conditions" }, + "effects": [ + { "extraSpending": -0.4 }, + { "stat": "opinion", "delta": -4, "days": 45 }, + { "stat": "unrest", "delta": 1, "days": 45 }, + { "sector": "education", "delta": 2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep it universal", "fr": "Les garder universelles" }, + "effects": [{ "stat": "opinion", "delta": 2, "days": 30 }, { "stat": "economy", "delta": -1, "days": 90 }] + } + }, + { + "id": "soc_garbage_strike_01", + "category": "social", + "doc": "letter", + "sender": "mayor", + "title": { "en": "Rubbish piles up as sanitation strikes", "fr": "Les éboueurs en grève, les ordures s'entassent" }, + "body": { + "en": "Sanitation workers have been out for eight days and the capital's pavements are lined with bags. The mayor asks the state to fund a pay rise the city cannot afford; the workers also ask for hazard pay.", + "fr": "Les éboueurs sont en grève depuis huit jours et les trottoirs de la capitale sont bordés de sacs. Le maire demande à l'État de financer une hausse que la ville ne peut pas payer ; les grévistes réclament aussi une prime de risque." + }, + "yes": { + "label": { "en": "Fund the pay rise", "fr": "Financer la hausse" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "unrest", "delta": -2, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Tell the city to hold", "fr": "Dire à la ville de tenir" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 30 }, + { "stat": "unrest", "delta": 3, "days": 30 }, + { "stat": "order", "delta": -2, "days": 30 }, + { "sector": "health", "delta": -1, "days": 60 } + ] + }, + "conditions": { "dayMin": 60, "min": { "unrest": 30 } } + }, + { + "id": "soc_charity_tax_01", + "category": "social", + "doc": "memo", + "sender": "min_finance", + "title": { "en": "Tax relief for charitable giving", "fr": "Un allègement fiscal pour les dons" }, + "body": { + "en": "Valdorian donors deduct nothing for gifts to charities, while foundations next door thrive on relief. A sixty percent deduction would cost little and sustain food banks and shelters. Critics say it mostly rewards the wealthy.", + "fr": "Les donateurs valdoriens ne déduisent rien de leurs dons, alors que les fondations voisines prospèrent grâce aux allègements. Une déduction de soixante pour cent coûterait peu et soutiendrait banques alimentaires et refuges. Ses détracteurs y voient un cadeau aux riches." + }, + "yes": { + "label": { "en": "Allow the deduction", "fr": "Autoriser la déduction" }, + "effects": [ + { "revenue": "other", "delta": -0.1 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "social", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Refuse the relief", "fr": "Refuser l'allègement" }, + "effects": [ + { "revenue": "other", "delta": 0.1 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "social", "delta": -2, "days": 180 } + ] + }, + "conditions": { "dayMin": 150 } + }, + { + "id": "soc_pension_indexing_01", + "category": "social", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "inflation": 3.5 }, "dayMin": 90 }, + "title": { "en": "Pensions lose ground to prices", "fr": "Les pensions perdent face aux prix" }, + "body": { + "en": "With prices rising, pensions buy less each month. Indexing them to inflation would cost money the budget lacks; a one-off bonus costs less, and pensioners will remember the difference at the polls.", + "fr": "Les prix montent et les pensions achètent moins chaque mois. Les indexer sur l'inflation coûterait ce que le budget n'a pas ; une prime unique coûte moins cher, et les retraités s'en souviendront dans les urnes." + }, + "yes": { + "label": { "en": "Index the pensions", "fr": "Indexer les pensions" }, + "effects": [ + { "extraSpending": 0.5 }, + { "stat": "opinion", "delta": 4, "days": 45 }, + { "stat": "unrest", "delta": -2, "days": 45 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Pay a one-off bonus", "fr": "Verser une prime unique" }, + "effects": [{ "oneOff": 0.3 }, { "stat": "opinion", "delta": 1, "days": 30 }, { "stat": "unrest", "delta": 1, "days": 45 }] + } + }, + { + "id": "soc_zero_hours_01", + "category": "social", + "doc": "report", + "sender": "min_labour", + "conditions": { "min": { "unemployment": 7 }, "dayMin": 60 }, + "title": { "en": "Zero-hour contracts spread", "fr": "Les contrats sans horaires se multiplient" }, + "body": { + "en": "A fifth of new hires in retail and catering are on contracts with no guaranteed hours. A ban would give workers some security and push some employers to hire fewer people.", + "fr": "Un cinquième des embauches dans le commerce et la restauration se fait sans durée de travail garantie. Une interdiction apporterait de la sécurité aux salariés et pousserait certains employeurs à embaucher moins." + }, + "yes": { + "label": { "en": "Ban the contracts", "fr": "Interdire ces contrats" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "unrest", "delta": -2, "days": 45 }, + { "stat": "unemployment", "delta": 0.2, "bias": true, "days": 270 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "civilRights", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Leave the market alone", "fr": "Laisser faire le marché" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "soc_loneliness_01", + "category": "social", + "doc": "letter", + "sender": "min_health", + "weight": 0.5, + "title": { "en": "A unit against loneliness?", "fr": "Une cellule contre la solitude ?" }, + "body": { + "en": "A health survey finds one pensioner in four goes a week without speaking to anyone. The Health Ministry suggests a small unit to fund home visits, clubs and helplines. Opposition papers call it a gimmick.", + "fr": "Une enquête de santé révèle qu'un retraité sur quatre passe une semaine sans parler à personne. Le ministère de la Santé propose une petite cellule pour financer visites, clubs et lignes d'écoute. Les journaux d'opposition parlent de gadget." + }, + "yes": { + "label": { "en": "Create the unit", "fr": "Créer la cellule" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "health", "delta": 2, "days": 180 }, + { "sector": "social", "delta": 2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Drop the idea", "fr": "Abandonner l'idée" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "health", "delta": -1, "days": 120 } + ] + }, + "conditions": { "dayMin": 300, "max": { "opinion": 60 } } + }, + { + "id": "soc_sunday_work_01", + "category": "social", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMax": 500 }, + "title": { "en": "Open the shops on Sundays?", "fr": "Ouvrir les magasins le dimanche ?" }, + "body": { + "en": "The retail federation wants Sunday opening to compete with online sellers. Unions and churches object, and small shopkeepers fear they cannot staff seven days.", + "fr": "La fédération du commerce veut l'ouverture dominicale pour concurrencer la vente en ligne. Syndicats et Églises s'y opposent, et les petits commerçants craignent de ne pas pouvoir tenir sept jours." + }, + "yes": { + "label": { "en": "Allow Sunday opening", "fr": "Autoriser le dimanche" }, + "effects": [ + { "stat": "economy", "delta": 2, "bias": true, "days": 180 }, + { "revenue": "other", "delta": 0.1 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep Sundays closed", "fr": "Garder le repos dominical" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 90 }, + { "revenue": "other", "delta": -0.1 } + ] + } + }, + { + "id": "soc_retraining_01", + "category": "social", + "doc": "memo", + "sender": "min_industry", + "conditions": { "min": { "unemployment": 7.5 }, "dayMin": 60 }, + "title": { "en": "A paid year of retraining", "fr": "Une année de reconversion payée" }, + "body": { + "en": "Factory closures have left thousands of workers with skills nobody wants. A retraining year paid at ninety percent of the old wage would cost real money and might cut long-term unemployment.", + "fr": "Les fermetures d'usines ont laissé des milliers d'ouvriers avec des compétences dont personne ne veut. Une année de reconversion payée à quatre-vingt-dix pour cent de l'ancien salaire coûterait cher et pourrait réduire le chômage de longue durée." + }, + "yes": { + "label": { "en": "Fund retraining", "fr": "Financer la reconversion" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "unemployment", "delta": -0.3, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Offer job-centre advice", "fr": "Se limiter aux conseils" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "soc_poverty_card_01", + "category": "social", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 80 }, + "title": { "en": "A food card for the poorest", "fr": "Une carte alimentaire pour les plus pauvres" }, + "body": { + "en": "Instead of subsidising food for all, the ministry proposes a payment card for the poorest fifth, usable only for food, fuel and medicine. It costs less, but critics call it humiliating.", + "fr": "Plutôt que de subventionner l'alimentation pour tous, le ministère propose une carte de paiement pour le cinquième le plus pauvre, limitée à la nourriture, au carburant et aux médicaments. Elle coûte moins, mais ses détracteurs la jugent humiliante." + }, + "yes": { + "label": { "en": "Issue the card", "fr": "Distribuer la carte" }, + "effects": [ + { "extraSpending": -0.2 }, + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "sector": "social", "delta": 2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep the general aid", "fr": "Garder l'aide générale" }, + "effects": [ + { "extraSpending": 0.3 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "unrest", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "soc_migrants_01", + "category": "social", + "doc": "letter", + "sender": "min_interior", + "conditions": { "dayMin": 120 }, + "title": { "en": "Families at the border crossings", "fr": "Des familles aux postes frontières" }, + "body": { + "en": "Fighting in a neighbouring state has sent forty thousand people towards Valdoria's crossings. The Interior Ministry can open reception centres or close the gates, and each choice will be judged abroad.", + "fr": "Des combats dans un État voisin ont jeté quarante mille personnes vers les postes frontières valdoriens. L'Intérieur peut ouvrir des centres d'accueil ou fermer les barrières, et chaque choix sera jugé à l'étranger." + }, + "yes": { + "label": { "en": "Open reception centres", "fr": "Ouvrir des centres d'accueil" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "civilRights", "delta": 3, "days": 90 }, + { "stat": "softPower", "delta": 3, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 45 }, + { "stat": "unrest", "delta": 1, "days": 60 } + ], + "setFlags": ["soc_refugees"], + "followUp": { "id": "soc_refugee_camp_01", "inDays": 60 } + }, + "no": { + "label": { "en": "Close the crossings", "fr": "Fermer les passages" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 45 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "civilRights", "delta": -3, "days": 90 }, + { "stat": "softPower", "delta": -3, "days": 90 }, + { "stat": "stability", "delta": -1, "days": 45 } + ] + } + }, + { + "id": "soc_refugee_camp_01", + "category": "social", + "doc": "report", + "sender": "min_interior", + "followUpOnly": true, + "title": { "en": "Reception centres overflow", "fr": "Les centres d'accueil débordent" }, + "body": { + "en": "The centres hold twice their capacity and residents on the edge of the capital are protesting. Renting flats for families costs more; dispersing them to villages spreads the burden and the resentment.", + "fr": "Les centres accueillent le double de leur capacité et les habitants de la périphérie de la capitale protestent. Louer des logements aux familles coûte plus cher ; les disperser dans les villages répartit le fardeau, et la rancœur." + }, + "yes": { + "label": { "en": "Rent flats for families", "fr": "Louer des logements" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "housing", "delta": -1, "days": 120 }, + { "stat": "civilRights", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ], + "followUp": { "id": "soc_refugee_work_01", "inDays": 90 } + }, + "no": { + "label": { "en": "Disperse to the villages", "fr": "Disperser dans les villages" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "order", "delta": -1, "days": 45 }, + { "extraSpending": -0.1 } + ] + } + }, + { + "id": "soc_refugee_work_01", + "category": "social", + "doc": "memo", + "sender": "min_labour", + "followUpOnly": true, + "title": { "en": "Work permits for refugees", "fr": "Des permis de travail pour les réfugiés" }, + "body": { + "en": "Several thousand refugees have waited months without the right to work. A permit would let them fill gaps in farming and building; unions fear it will pull wages down.", + "fr": "Plusieurs milliers de réfugiés attendent depuis des mois sans droit de travailler. Un permis leur permettrait de combler des manques dans l'agriculture et le bâtiment ; les syndicats craignent une pression sur les salaires." + }, + "yes": { + "label": { "en": "Grant work permits", "fr": "Accorder les permis" }, + "effects": [ + { "stat": "economy", "delta": 2, "bias": true, "days": 270 }, + { "extraSpending": -0.2 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "civilRights", "delta": 2, "days": 90 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep them waiting", "fr": "Les laisser attendre" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": 1, "days": 45 } + ] + } + }, + { + "id": "soc_youth_guarantee_01", + "category": "social", + "doc": "memo", + "sender": "min_education", + "conditions": { "min": { "unemployment": 6 }, "dayMin": 100 }, + "title": { "en": "A guarantee for the under-25s", "fr": "Une garantie pour les moins de 25 ans" }, + "body": { + "en": "The Education Ministry proposes that every young person out of work receives a job, a course or an apprenticeship within four months. It would cost real money and needs employers who actually cooperate.", + "fr": "Le ministère de l'Éducation propose que chaque jeune sans emploi se voie offrir un poste, une formation ou un apprentissage sous quatre mois. Cela coûterait cher et suppose des employeurs qui jouent réellement le jeu." + }, + "yes": { + "label": { "en": "Launch the guarantee", "fr": "Lancer la garantie" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "unemployment", "delta": -0.3, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "unrest", "delta": -2, "days": 60 } + ], + "setFlags": ["soc_youth_guarantee"], + "followUp": { "id": "soc_youth_review_01", "inDays": 300 } + }, + "no": { + "label": { "en": "Wait for growth", "fr": "Attendre la croissance" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "stability", "delta": -1, "days": 45 } + ] + } + }, + { + "id": "soc_youth_review_01", + "category": "social", + "doc": "report", + "sender": "min_labour", + "followUpOnly": true, + "title": { "en": "The youth guarantee: first results", "fr": "La garantie jeunes : premiers résultats" }, + "body": { + "en": "Half of the young people enrolled found work or a course, but a fifth dropped out, and some employers pocketed training subsidies for jobs that already existed. Tighter rules save money and slow enrolment.", + "fr": "La moitié des jeunes inscrits ont trouvé un emploi ou une formation, mais un cinquième a décroché, et certains employeurs ont encaissé des aides pour des postes qui existaient déjà. Des règles plus strictes font économiser et freinent les inscriptions." + }, + "yes": { + "label": { "en": "Tighten the rules", "fr": "Durcir les règles" }, + "effects": [ + { "extraSpending": -0.2 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Expand the scheme", "fr": "Étendre le dispositif" }, + "effects": [ + { "extraSpending": 0.4 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "stat": "unrest", "delta": -1, "days": 45 } + ] + } + }, + { + "id": "soc_gig_workers_01", + "category": "social", + "doc": "petition", + "sender": "union", + "conditions": { "dayMin": 150 }, + "title": { "en": "Couriers demand employee status", "fr": "Les livreurs réclament le statut de salarié" }, + "body": { + "en": "Couriers on delivery apps earn less than the minimum wage and bear their own accidents. The Confederation wants them reclassified as employees; the platforms threaten to leave the Valdorian market.", + "fr": "Les livreurs des applications gagnent moins que le salaire minimum et supportent leurs propres accidents. La Confédération veut les requalifier en salariés ; les plateformes menacent de quitter le marché valdorien." + }, + "yes": { + "label": { "en": "Reclassify as employees", "fr": "Les requalifier en salariés" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 45 }, + { "stat": "civilRights", "delta": 1, "days": 60 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 180 } + ], + "setFlags": ["soc_gig_employees"], + "followUp": { "id": "soc_gig_exit_01", "inDays": 70 } + }, + "no": { + "label": { "en": "Keep the self-employed status", "fr": "Garder le statut indépendant" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 45 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ], + "followUp": { "id": "soc_gig_strike_01", "inDays": 60 } + } + }, + { + "id": "soc_gig_exit_01", + "category": "social", + "doc": "letter", + "sender": "min_industry", + "followUpOnly": true, + "title": { "en": "A platform pulls out of two cities", "fr": "Une plateforme quitte deux villes" }, + "body": { + "en": "The largest delivery platform halts service in two cities, citing the new status. Restaurants lose a third of their orders. A temporary subsidy could lure it back, while local rivals are waiting to take its place.", + "fr": "La plus grande plateforme de livraison suspend son service dans deux villes, invoquant le nouveau statut. Les restaurants perdent un tiers de leurs commandes. Une aide temporaire pourrait la faire revenir, tandis que des rivaux locaux guettent sa place." + }, + "yes": { + "label": { "en": "Subsidise the return", "fr": "Subventionner le retour" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Let local rivals step in", "fr": "Laisser place aux rivaux" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 45 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 180 }, + { "stat": "stability", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "soc_gig_strike_01", + "category": "social", + "doc": "telegram", + "sender": "min_interior", + "followUpOnly": true, + "title": { "en": "Couriers block three bridges", "fr": "Les livreurs bloquent trois ponts" }, + "body": { + "en": "COURIERS BLOCK THREE BRIDGES IN THE CAPITAL. DELIVERIES HALTED, TRAFFIC AT A STANDSTILL. PLATFORMS REFUSE ALL TALKS. STOP.", + "fr": "LES LIVREURS BLOQUENT TROIS PONTS DE LA CAPITALE. LIVRAISONS ARRETEES, CIRCULATION PARALYSEE. LES PLATEFORMES REFUSENT TOUT DIALOGUE. STOP." + }, + "yes": { + "label": { "en": "Mediate a code of conduct", "fr": "Médier un code de conduite" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "unrest", "delta": -2, "days": 30 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Clear the bridges", "fr": "Dégager les ponts" }, + "effects": [ + { "stat": "order", "delta": 3, "days": 30 }, + { "stat": "civilRights", "delta": -2, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "soc_village_01", + "category": "social", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 180, "max": { "opinion": 55 } }, + "title": { "en": "Villages empty as the young leave", "fr": "Les villages se vident de leurs jeunes" }, + "body": { + "en": "Two hundred villages have lost a third of their residents in ten years, and a school or a shop closes every month. A relocation bonus would pay families to settle there; critics say it buys short stays.", + "fr": "Deux cents villages ont perdu un tiers de leurs habitants en dix ans, et une école ou un commerce ferme chaque mois. Une prime d'installation paierait des familles pour s'y fixer ; les critiques y voient des séjours achetés." + }, + "yes": { + "label": { "en": "Pay a relocation bonus", "fr": "Verser une prime d'installation" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "sector": "housing", "delta": 2, "days": 180 }, + { "stat": "unrest", "delta": -1, "days": 45 } + ], + "setFlags": ["soc_villages"], + "followUp": { "id": "soc_village_review_01", "inDays": 365 } + }, + "no": { + "label": { "en": "Let villages shrink", "fr": "Laisser décliner les villages" }, + "effects": [ + { "extraSpending": -0.2 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 45 } + ] + } + }, + { + "id": "soc_village_review_01", + "category": "social", + "doc": "report", + "sender": "min_labour", + "followUpOnly": true, + "title": { "en": "The relocation bonus: who stayed?", "fr": "La prime d'installation : qui est resté ?" }, + "body": { + "en": "A third of the families who took the bonus have left again, though villages that kept a school are growing. The ministry proposes tying future payments to five years of residence.", + "fr": "Un tiers des familles qui ont touché la prime sont reparties, mais les villages qui ont gardé une école gagnent des habitants. Le ministère propose de lier les prochains versements à cinq ans de résidence." + }, + "yes": { + "label": { "en": "Tie it to five years", "fr": "La lier à cinq ans" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Continue as it is", "fr": "Continuer ainsi" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "housing", "delta": 1, "days": 120 } + ] + } + }, + { + "id": "soc_pension_fund_01", + "category": "social", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 500, "min": { "debt": 50 } }, + "title": { "en": "Let the pension fund buy shares", "fr": "Laisser la caisse de retraite acheter des actions" }, + "body": { + "en": "The pension reserve fund holds only government bonds, at low yields. Finance proposes moving a quarter into shares and property, for higher returns and higher risk.", + "fr": "Le fonds de réserve des retraites ne détient que des obligations d'État, à faible rendement. Les Finances proposent d'en placer un quart en actions et en immobilier, pour plus de rendement et plus de risque." + }, + "yes": { + "label": { "en": "Allow the shift", "fr": "Autoriser le placement" }, + "effects": [ + { "extraSpending": -0.3 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ], + "setFlags": ["soc_pension_equities"], + "followUp": { "id": "soc_pension_crash_01", "inDays": 400 } + }, + "no": { + "label": { "en": "Stay with bonds", "fr": "Rester aux obligations" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 45 } + ] + } + }, + { + "id": "soc_pension_crash_01", + "category": "social", + "doc": "report", + "sender": "central_bank", + "followUpOnly": true, + "title": { "en": "Markets fall, and the pension fund too", "fr": "La Bourse chute, la caisse de retraite aussi" }, + "body": { + "en": "Shares have dropped by a fifth and the pension fund has lost eight months of contributions on paper. The opposition demands a top-up from the budget; Finance advises riding out the slump.", + "fr": "Les actions ont perdu un cinquième et le fonds de retraite a effacé huit mois de cotisations sur le papier. L'opposition exige un abondement budgétaire ; les Finances conseillent d'attendre la remontée." + }, + "yes": { + "label": { "en": "Top up from the budget", "fr": "Abonder par le budget" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Ride out the slump", "fr": "Attendre la remontée" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 45 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "soc_ngo_funding_01", + "category": "social", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 240, "min": { "unrest": 30 } }, + "title": { "en": "Foreign money for local NGOs", "fr": "De l'argent étranger pour des ONG locales" }, + "body": { + "en": "Several Valdorian NGOs are financed from abroad. The Interior Ministry wants them registered as foreign-funded bodies and audited. Advocacy groups call it the first step towards silencing them.", + "fr": "Plusieurs ONG valdoriennes sont financées depuis l'étranger. Le ministère de l'Intérieur veut les faire enregistrer comme organismes à financement étranger et les auditer. Les associations y voient la première étape vers leur mise au silence." + }, + "yes": { + "label": { "en": "Require registration", "fr": "Imposer l'enregistrement" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 60 }, + { "stat": "stability", "delta": 1, "days": 60 }, + { "stat": "civilRights", "delta": -3, "days": 90 }, + { "stat": "softPower", "delta": -2, "days": 90 } + ] + }, + "no": { + "label": { "en": "Leave them free", "fr": "Les laisser libres" }, + "effects": [ + { "stat": "civilRights", "delta": 1, "days": 60 }, + { "stat": "softPower", "delta": 1, "days": 90 }, + { "stat": "stability", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + } + }, + { + "id": "soc_miners_pension_01", + "category": "social", + "doc": "petition", + "sender": "union", + "conditions": { "dayMin": 480, "min": { "unrest": 30 } }, + "title": { "en": "Early retirement for miners", "fr": "Retraite anticipée pour les mineurs" }, + "body": { + "en": "Miners in the northern basin retire at fifty-eight after thirty years underground. The Confederation asks for fifty-five. The pension fund notes that the mines will not last long enough to need it.", + "fr": "Les mineurs du bassin du nord partent à cinquante-huit ans après trente ans de fond. La Confédération demande cinquante-cinq ans. La caisse de retraite note que les mines ne dureront pas assez pour en avoir besoin." + }, + "yes": { + "label": { "en": "Allow retirement at 55", "fr": "Autoriser le départ à 55 ans" }, + "effects": [ + { "extraSpending": 0.3 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "stat": "unrest", "delta": -2, "days": 45 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "unrest", "delta": 3, "days": 45 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "order", "delta": -1, "days": 45 } + ] + } + }, + { + "id": "soc_carer_allowance_01", + "category": "social", + "doc": "report", + "sender": "min_health", + "conditions": { "dayMin": 540, "max": { "q:health": 62 } }, + "title": { "en": "Paying family carers", "fr": "Rémunérer les proches aidants" }, + "body": { + "en": "Half a million Valdorians look after a sick or elderly relative, mostly women and mostly unpaid. A carer's allowance would recognise the work and still cost less than the care homes it spares.", + "fr": "Un demi-million de Valdoriens s'occupent d'un proche malade ou âgé, le plus souvent des femmes et sans rémunération. Une allocation d'aidant reconnaîtrait ce travail et coûterait encore moins que les maisons de retraite évitées." + }, + "yes": { + "label": { "en": "Create the allowance", "fr": "Créer l'allocation" }, + "effects": [ + { "extraSpending": 0.4 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "civilRights", "delta": 1, "days": 60 }, + { "sector": "health", "delta": 1, "days": 180 } + ] + }, + "no": { + "label": { "en": "Fund respite care only", "fr": "Financer seulement du répit" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "social", "delta": 1, "days": 120 } + ] + } + }, + { + "id": "soc_union_dues_01", + "category": "social", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 520 }, + "title": { "en": "Union dues: opt in or opt out?", "fr": "Cotisations syndicales : l'accord ou le refus ?" }, + "body": { + "en": "Business groups want union dues to be paid only on request, instead of being deducted from pay by default. Membership is already falling, and union treasuries would shrink further.", + "fr": "Les organisations patronales veulent que la cotisation syndicale ne soit versée que sur demande, au lieu d'être retenue d'office sur la paie. Les adhésions baissent déjà, et les caisses syndicales fondraient davantage." + }, + "yes": { + "label": { "en": "Make dues opt-in", "fr": "Rendre la cotisation optionnelle" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": -1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the deduction", "fr": "Garder la retenue" }, + "effects": [ + { "stat": "stability", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "soc_summer_camp_01", + "category": "social", + "doc": "letter", + "sender": "mayor", + "conditions": { "dayMin": 450, "min": { "unrest": 30 } }, + "title": { "en": "Holiday vouchers for poor families", "fr": "Des chèques-vacances pour les familles pauvres" }, + "body": { + "en": "The capital funds holiday camps for children who would otherwise spend the summer in tower blocks, and the waiting list is six times the places. The mayor asks the state to extend the vouchers nationwide.", + "fr": "La capitale finance des colonies de vacances pour des enfants qui passeraient sinon l'été dans les tours, et la liste d'attente fait six fois les places. Le maire demande à l'État d'étendre les chèques à tout le pays." + }, + "yes": { + "label": { "en": "Extend the vouchers", "fr": "Étendre les chèques" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "stat": "unrest", "delta": -2, "days": 60 }, + { "sector": "social", "delta": 1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Leave it to the cities", "fr": "Laisser aux villes" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 45 }, + { "extraSpending": -0.1 } + ] + } + }, + { + "id": "soc_pact_01", + "category": "social", + "doc": "memo", + "sender": "press_office", + "conditions": { "min": { "unrest": 40 }, "dayMin": 120 }, + "title": { "en": "A social pact with the unions", "fr": "Un pacte social avec les syndicats" }, + "body": { + "en": "Protests keep growing. The press office suggests a national round table with unions and employers, trading wage talks for a truce. It would take weeks and concede ground on both sides.", + "fr": "Les manifestations ne cessent de croître. Le porte-parole propose une table ronde nationale avec syndicats et patronat, échangeant des négociations salariales contre une trêve. Cela prendrait des semaines et coûterait des concessions de part et d'autre." + }, + "yes": { + "label": { "en": "Convene the round table", "fr": "Convoquer la table ronde" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "unrest", "delta": -4, "days": 60 }, + { "stat": "stability", "delta": 2, "days": 60 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Wait for it to pass", "fr": "Attendre que cela passe" }, + "effects": [ + { "stat": "unrest", "delta": 3, "days": 45 }, + { "stat": "stability", "delta": -2, "days": 45 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 90 } + ] + } + }, + { + "id": "soc_child_poverty_01", + "category": "social", + "doc": "report", + "sender": "min_education", + "conditions": { "max": { "q:social": 55 }, "dayMin": 200 }, + "title": { "en": "One child in six is poor", "fr": "Un enfant sur six est pauvre" }, + "body": { + "en": "Child poverty has risen to sixteen percent. Free school meals and a top-up for single-parent households would reach most of those children at a moderate price.", + "fr": "La pauvreté des enfants atteint seize pour cent. Des repas scolaires gratuits et un complément pour les familles monoparentales toucheraient la plupart d'entre eux pour un prix modéré." + }, + "yes": { + "label": { "en": "Fund meals and a top-up", "fr": "Financer repas et complément" }, + "effects": [ + { "extraSpending": 0.5 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "sector": "social", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "unrest", "delta": -2, "days": 60 } + ] + }, + "no": { + "label": { "en": "Wait for growth", "fr": "Attendre la croissance" }, + "effects": [ + { "sector": "social", "delta": -2, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 45 } + ] + } + }, + { + "id": "soc_domestic_workers_01", + "category": "social", + "doc": "petition", + "sender": "union", + "conditions": { "dayMin": 600 }, + "title": { "en": "Domestic workers without contracts", "fr": "Employés de maison sans contrat" }, + "body": { + "en": "Cleaners, nannies and home carers have no contract, no sick pay and no pension. Regularising them would cost households and bring the state new contributions.", + "fr": "Femmes de ménage, nounous et aides à domicile n'ont ni contrat, ni congé maladie, ni retraite. Les régulariser coûterait aux ménages et rapporterait de nouvelles cotisations à l'État." + }, + "yes": { + "label": { "en": "Regularise them", "fr": "Les régulariser" }, + "effects": [ + { "revenue": "other", "delta": 0.1 }, + { "stat": "civilRights", "delta": 2, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 90 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Leave it informal", "fr": "Laisser dans l'informel" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 45 }, + { "stat": "civilRights", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "soc_widows_pension_01", + "category": "social", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 480 }, + "title": { "en": "Pensions for surviving spouses", "fr": "Pensions de réversion" }, + "body": { + "en": "Surviving spouses receive half of the late partner's pension, and a third of widows live under the poverty line. Raising the share to sixty percent costs less than the opposition claims and more than Finance would like.", + "fr": "Les conjoints survivants touchent la moitié de la pension du défunt, et un tiers des veuves vivent sous le seuil de pauvreté. Passer à soixante pour cent coûte moins que l'opposition ne le prétend, et plus que les Finances ne le voudraient." + }, + "yes": { + "label": { "en": "Raise it to 60 %", "fr": "La porter à 60 %" }, + "effects": [ + { "extraSpending": 0.3 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "unrest", "delta": -1, "days": 45 }, + { "sector": "social", "delta": 2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep it at 50 %", "fr": "La garder à 50 %" }, + "effects": [ + { "extraSpending": -0.2 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "sector": "social", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "soc_night_work_01", + "category": "social", + "doc": "memo", + "sender": "min_health", + "conditions": { "dayMin": 700 }, + "title": { "en": "A better premium for night work", "fr": "Une meilleure prime de travail de nuit" }, + "body": { + "en": "Nurses, bakers and bus drivers work nights for a premium unchanged in twenty years. A higher premium and a guaranteed rest period are proposed. Employers say the bill will reach the prices.", + "fr": "Infirmières, boulangers et conducteurs de bus travaillent de nuit pour une prime inchangée depuis vingt ans. Une prime plus élevée et un repos garanti sont proposés. Les employeurs disent que la facture se retrouvera dans les prix." + }, + "yes": { + "label": { "en": "Raise the premium", "fr": "Relever la prime" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "sector": "health", "delta": 1, "days": 180 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Leave it as it is", "fr": "Ne rien changer" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 45 }, + { "sector": "health", "delta": -1, "days": 180 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "soc_heating_01", + "category": "social", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 150, "min": { "inflation": 3 } }, + "title": { "en": "Heating bills in the cold months", "fr": "Les factures de chauffage en hiver" }, + "body": { + "en": "Two hundred thousand households spend a fifth of their income on heating in winter. A direct allowance would reach them fast; leaving it to the energy suppliers is cheaper and slower.", + "fr": "Deux cent mille foyers consacrent un cinquième de leurs revenus au chauffage en hiver. Une allocation directe les atteindrait vite ; s'en remettre aux fournisseurs d'énergie coûte moins, mais agit plus lentement." + }, + "yes": { + "label": { "en": "Pay a heating allowance", "fr": "Verser une allocation" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "unrest", "delta": -1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Leave it to suppliers", "fr": "S'en remettre aux fournisseurs" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 45 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 120 } + ] + } + }, + { + "id": "soc_basic_pension_01", + "category": "social", + "doc": "memo", + "sender": "min_finance", + "conditions": { "max": { "q:social": 55 }, "dayMin": 400 }, + "title": { "en": "A basic pension for everyone", "fr": "Une pension de base pour tous" }, + "body": { + "en": "One pensioner in five lives on a minimum pension that does not cover the rent. A basic pension paid regardless of contributions would lift them, and reward informal workers who never paid in.", + "fr": "Un retraité sur cinq vit d'un minimum vieillesse qui ne couvre pas le loyer. Une pension de base versée sans condition de cotisation les relèverait, et récompenserait les travailleurs informels qui n'ont jamais cotisé." + }, + "yes": { + "label": { "en": "Introduce a basic pension", "fr": "Créer une pension de base" }, + "effects": [ + { "extraSpending": 0.6 }, + { "sector": "social", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "unrest", "delta": -2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Stay contribution-based", "fr": "Rester sur la cotisation" }, + "effects": [ + { "extraSpending": -0.2 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 45 } + ] + } + }, + { + "id": "soc_phased_retirement_01", + "category": "social", + "doc": "memo", + "sender": "min_labour", + "conditions": { "dayMin": 440 }, + "title": { "en": "Phased retirement", "fr": "La retraite progressive" }, + "body": { + "en": "Workers could taper off, part-time work plus a partial pension, from sixty-one. Employers like keeping experienced staff; unions fear it will become a way to cut full pensions through the back door.", + "fr": "Les salariés pourraient réduire leur activité dès soixante et un ans, temps partiel et pension partielle. Les employeurs apprécient de garder des anciens ; les syndicats craignent un moyen de rogner les pensions complètes par la bande." + }, + "yes": { + "label": { "en": "Allow phased retirement", "fr": "Ouvrir la retraite progressive" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 270 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": 2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Keep the clean break", "fr": "Garder la coupure nette" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "soc_integration_01", + "category": "social", + "doc": "report", + "sender": "min_interior", + "conditions": { "dayMin": 450 }, + "title": { "en": "Language courses for newcomers", "fr": "Des cours de langue pour les nouveaux arrivants" }, + "body": { + "en": "Immigrants who do not speak Valdorian are three times likelier to be jobless. The ministry proposes compulsory language and civics courses, paid by the state, with residence permits tied to attendance.", + "fr": "Les immigrés qui ne parlent pas le valdorien ont trois fois plus de risques d'être sans emploi. Le ministère propose des cours obligatoires de langue et d'instruction civique, financés par l'État, avec des titres de séjour liés à l'assiduité." + }, + "yes": { + "label": { "en": "Fund compulsory courses", "fr": "Financer des cours obligatoires" }, + "effects": [ + { "oneOff": 0.3 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 270 }, + { "sector": "education", "delta": 1, "days": 180 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Make them voluntary", "fr": "Les laisser facultatifs" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 45 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "soc_care_insurance_01", + "category": "social", + "doc": "memo", + "sender": "min_health", + "conditions": { "max": { "q:health": 58 }, "dayMin": 480 }, + "title": { "en": "Insurance for long-term care", "fr": "Une assurance pour la dépendance" }, + "body": { + "en": "An ageing population needs more nursing at home and in care homes. A compulsory long-term care insurance, paid by a payroll levy, would fund it. Employers and employees alike will see a new line on the payslip.", + "fr": "Une population vieillissante a besoin de plus de soins à domicile et en établissement. Une assurance dépendance obligatoire, financée par une cotisation salariale, y pourvoirait. Employeurs et salariés verront une nouvelle ligne sur la fiche de paie." + }, + "yes": { + "label": { "en": "Create the insurance", "fr": "Créer l'assurance" }, + "effects": [ + { "revenue": "other", "delta": 0.4 }, + { "sector": "health", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 45 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Let families pay", "fr": "Laisser les familles payer" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "opinion", "delta": -3, "days": 40 }, + { "sector": "health", "delta": -2, "days": 180 }, + { "stat": "unrest", "delta": 1, "days": 45 } + ] + } + }, + { + "id": "soc_board_quota_01", + "category": "social", + "doc": "memo", + "sender": "min_justice", + "conditions": { "dayMin": 520 }, + "title": { "en": "Women on company boards", "fr": "Des femmes dans les conseils d'administration" }, + "body": { + "en": "Women hold one board seat in eight at Valdoria's largest firms. A forty percent quota backed by fines would force the change; business groups call it tokenism and a burden on boardrooms.", + "fr": "Les femmes occupent un siège sur huit dans les conseils des plus grandes entreprises valdoriennes. Un quota de quarante pour cent assorti d'amendes forcerait le changement ; le patronat y voit du formalisme et une charge." + }, + "yes": { + "label": { "en": "Set a 40 % quota", "fr": "Fixer un quota de 40 %" }, + "effects": [ + { "stat": "civilRights", "delta": 3, "days": 90 }, + { "stat": "softPower", "delta": 1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Issue guidelines only", "fr": "Se limiter à des consignes" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "soc_disability_quota_01", + "category": "social", + "doc": "memo", + "sender": "min_labour", + "conditions": { "max": { "q:social": 60 }, "dayMin": 560 }, + "title": { "en": "Hiring quota for disabled workers", "fr": "Quota d'emploi des travailleurs handicapés" }, + "body": { + "en": "Firms with over fifty staff must employ four percent disabled workers, and most prefer paying the fine. Doubling the fine and adding wage subsidies would make hiring cheaper than refusing.", + "fr": "Les entreprises de plus de cinquante salariés doivent employer quatre pour cent de travailleurs handicapés, et la plupart préfèrent payer l'amende. La doubler et ajouter des aides salariales rendrait l'embauche moins chère que le refus." + }, + "yes": { + "label": { "en": "Raise fines and subsidies", "fr": "Relever amendes et aides" }, + "effects": [ + { "extraSpending": 0.2 }, + { "revenue": "other", "delta": 0.1 }, + { "sector": "social", "delta": 2, "days": 180 }, + { "stat": "civilRights", "delta": 1, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Keep the fines", "fr": "Garder les amendes" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "sector": "social", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "soc_public_pay_01", + "category": "social", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 950, "min": { "deficit": 4 } }, + "title": { "en": "Public sector pay freeze", "fr": "Gel de la paie du secteur public" }, + "body": { + "en": "With the deficit above target, Finance proposes freezing public sector pay for a year. Teachers, nurses and clerks, one worker in five, would take a cut in real terms.", + "fr": "Le déficit dépassant l'objectif, les Finances proposent de geler les salaires du secteur public pendant un an. Enseignants, infirmiers et employés, un salarié sur cinq, subiraient une baisse en termes réels." + }, + "yes": { + "label": { "en": "Freeze public pay", "fr": "Geler les salaires publics" }, + "effects": [ + { "extraSpending": -0.6 }, + { "stat": "opinion", "delta": -4, "days": 45 }, + { "stat": "unrest", "delta": 3, "days": 45 }, + { "sector": "administration", "delta": -2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep indexing pay", "fr": "Maintenir l'indexation" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "soc_extra_holiday_01", + "category": "social", + "doc": "petition", + "sender": "union", + "weight": 0.5, + "conditions": { "dayMin": 640 }, + "title": { "en": "An extra public holiday", "fr": "Un jour férié de plus" }, + "body": { + "en": "The Confederation asks for a new national holiday on the anniversary of the Republic's founding. Shopkeepers and exporters count the lost working day; most Valdorians would happily take it.", + "fr": "La Confédération demande un nouveau jour férié national pour l'anniversaire de la fondation de la République. Commerçants et exportateurs comptent la journée perdue ; la plupart des Valdoriens la prendraient volontiers." + }, + "yes": { + "label": { "en": "Declare the holiday", "fr": "Instaurer le jour férié" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 30 }, + { "sector": "culture", "delta": 1, "days": 90 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 120 } + ] + }, + "no": { + "label": { "en": "Refuse it", "fr": "Refuser" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 30 }, + { "stat": "unrest", "delta": 1, "days": 40 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "soc_charity_audit_01", + "category": "social", + "doc": "report", + "sender": "min_justice", + "conditions": { "dayMin": 680 }, + "title": { "en": "A well-known charity under investigation", "fr": "Une association célèbre sous enquête" }, + "body": { + "en": "Prosecutors found that a well-known children's charity spent a third of its donations on fundraising and salaries. Giving across the sector has fallen. A regulator would restore trust and burden small groups with paperwork.", + "fr": "Le parquet a établi qu'une association d'aide à l'enfance très connue a consacré un tiers des dons à la collecte et aux salaires. Les dons chutent dans tout le secteur. Un régulateur rétablirait la confiance et alourdirait la paperasse des petites structures." + }, + "yes": { + "label": { "en": "Create a charity regulator", "fr": "Créer un régulateur" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "social", "delta": 1, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "civilRights", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Trust self-regulation", "fr": "Faire confiance au secteur" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "social", "delta": -2, "days": 180 }, + { "stat": "civilRights", "delta": 1, "days": 60 } + ] + } + }, + { + "id": "soc_wage_indexation_01", + "category": "social", + "doc": "petition", + "sender": "union", + "conditions": { "min": { "inflation": 5 }, "dayMin": 720 }, + "title": { "en": "Index wages to prices", "fr": "Indexer les salaires sur les prix" }, + "body": { + "en": "With inflation above five percent, the Confederation asks for automatic wage indexation. The central bank warns that it would lock inflation in; workers reply that only their pay seems to keep still.", + "fr": "L'inflation dépassant cinq pour cent, la Confédération réclame l'indexation automatique des salaires. La Banque centrale prévient qu'elle figerait l'inflation ; les salariés répondent que seule leur paie semble rester immobile." + }, + "yes": { + "label": { "en": "Index wages", "fr": "Indexer les salaires" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "unrest", "delta": -3, "days": 45 }, + { "stat": "inflation", "delta": 0.6, "bias": true, "days": 270 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Refuse indexation", "fr": "Refuser l'indexation" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 45 }, + { "stat": "unrest", "delta": 4, "days": 45 }, + { "stat": "inflation", "delta": -0.3, "bias": true, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "soc_older_workers_01", + "category": "social", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "unemployment": 7 }, "dayMin": 760 }, + "title": { "en": "Hiring workers over fifty-five", "fr": "Embaucher les plus de cinquante-cinq ans" }, + "body": { + "en": "Workers over fifty-five make up a third of the long-term jobless. A payroll tax holiday for firms hiring them would cost revenue, and might only shift hiring from the young to the old.", + "fr": "Les plus de cinquante-cinq ans forment un tiers des chômeurs de longue durée. Une exonération de cotisations pour les entreprises qui les embauchent coûterait des recettes, et risque de déplacer l'embauche des jeunes vers les seniors." + }, + "yes": { + "label": { "en": "Offer the tax holiday", "fr": "Offrir l'exonération" }, + "effects": [ + { "revenue": "other", "delta": -0.2 }, + { "stat": "unemployment", "delta": -0.2, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "unrest", "delta": -1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Leave it to the market", "fr": "Laisser faire le marché" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 45 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "soc_senior_pass_01", + "category": "social", + "doc": "letter", + "sender": "mayor", + "conditions": { "dayMin": 1000 }, + "title": { "en": "Free transport for pensioners", "fr": "Transports gratuits pour les retraités" }, + "body": { + "en": "The capital offers free buses to pensioners and asks the state to fund the same nationwide. Operators say the loss will fall on timetables; pensioners say it is the only reason they leave home.", + "fr": "La capitale offre des bus gratuits aux retraités et demande à l'État de financer la même mesure partout. Les exploitants disent que la perte retombera sur les horaires ; les retraités disent que c'est la seule raison de sortir de chez eux." + }, + "yes": { + "label": { "en": "Fund free passes", "fr": "Financer la gratuité" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "sector": "social", "delta": 1, "days": 120 }, + { "sector": "transport", "delta": -1, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep the fares", "fr": "Garder les tarifs" }, + "effects": [ + { "sector": "transport", "delta": 1, "days": 120 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "extraSpending": -0.1 } + ] + } + }, + { + "id": "soc_pension_deficit_01", + "category": "social", + "doc": "report", + "sender": "min_finance", + "conditions": { "min": { "deficit": 5 }, "dayMin": 900 }, + "title": { "en": "The pension fund hits the wall", "fr": "La caisse de retraite touche le fond" }, + "body": { + "en": "The pension fund will run out of reserves within four years unless contributions rise or benefits fall. Finance presents two options: a one-point rise in contributions, or a freeze on pension increases.", + "fr": "La caisse de retraite épuisera ses réserves d'ici quatre ans, sauf hausse des cotisations ou baisse des prestations. Les Finances présentent deux options : un point de cotisation en plus, ou un gel des revalorisations." + }, + "yes": { + "label": { "en": "Raise contributions", "fr": "Relever les cotisations" }, + "effects": [ + { "revenue": "other", "delta": 0.4 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -2, "days": 45 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 270 } + ] + }, + "no": { + "label": { "en": "Freeze pensions", "fr": "Geler les pensions" }, + "effects": [ + { "extraSpending": -0.5 }, + { "stat": "opinion", "delta": -4, "days": 45 }, + { "stat": "unrest", "delta": 3, "days": 45 }, + { "sector": "social", "delta": -2, "days": 180 } + ] + } + }, + { + "id": "soc_work_visa_01", + "category": "social", + "doc": "memo", + "sender": "min_interior", + "conditions": { "dayMin": 950 }, + "title": { "en": "A visa for skilled workers", "fr": "Un visa pour les travailleurs qualifiés" }, + "body": { + "en": "Valdoria will lack two hundred thousand workers by the end of the decade. A skilled-worker visa would fill gaps in care, building and logistics; critics say it undercuts local wages and strains schools.", + "fr": "La Valdorie manquera de deux cent mille travailleurs d'ici la fin de la décennie. Un visa de travail qualifié comblerait les besoins dans les soins, le bâtiment et la logistique ; les critiques y voient une pression sur les salaires et sur les écoles." + }, + "yes": { + "label": { "en": "Open a work visa", "fr": "Ouvrir un visa de travail" }, + "effects": [ + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "extraSpending": -0.2 }, + { "stat": "opinion", "delta": -2, "days": 45 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 180 }, + { "stat": "softPower", "delta": 1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Train local workers", "fr": "Former les travailleurs locaux" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "education", "delta": 1, "days": 180 }, + { "stat": "economy", "delta": -1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "soc_four_day_01", + "category": "social", + "doc": "letter", + "sender": "min_labour", + "weight": 0.5, + "conditions": { "notFlags": ["soc_short_week"], "dayMin": 1000 }, + "title": { "en": "A four-day week trial", "fr": "Un essai de semaine de quatre jours" }, + "body": { + "en": "Two dozen firms offer to try a four-day week on full pay and publish the results. The ministry would waive some paperwork and fund an independent study. The employers' federation wonders who will cover the fifth day.", + "fr": "Deux douzaines d'entreprises proposent d'essayer la semaine de quatre jours à salaire plein et d'en publier les résultats. Le ministère allégerait certaines formalités et financerait une étude indépendante. La fédération patronale se demande qui couvrira le cinquième jour." + }, + "yes": { + "label": { "en": "Back the trial", "fr": "Soutenir l'essai" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "opinion", "delta": 2, "days": 45 }, + { "stat": "unemployment", "delta": -0.1, "bias": true, "days": 180 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Decline the trial", "fr": "Décliner l'essai" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "soc_union_scandal_01", + "category": "social", + "doc": "report", + "sender": "press_office", + "conditions": { "dayMin": 1050 }, + "title": { "en": "A union treasurer caught with the till", "fr": "Un trésorier syndical pris la main dans la caisse" }, + "body": { + "en": "The treasurer of a large union is charged with diverting strike funds into property. Employers call for strict audits of union accounts; the Confederation asks for restraint until the trial.", + "fr": "Le trésorier d'un grand syndicat est inculpé pour avoir détourné des caisses de grève vers l'immobilier. Le patronat réclame un audit strict des comptes syndicaux ; la Confédération demande de la retenue jusqu'au procès." + }, + "yes": { + "label": { "en": "Audit union accounts", "fr": "Auditer les comptes syndicaux" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 45 }, + { "stat": "civilRights", "delta": -1, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Stay out of it", "fr": "Rester à l'écart" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "stability", "delta": -1, "days": 45 }, + { "stat": "unrest", "delta": -1, "days": 45 } + ] + } + }, + { + "id": "soc_disconnect_01", + "category": "social", + "doc": "memo", + "sender": "min_labour", + "weight": 0.5, + "conditions": { "dayMin": 1100 }, + "title": { "en": "A right to disconnect", "fr": "Un droit à la déconnexion" }, + "body": { + "en": "Staff in banks and call centres answer messages at midnight. A right to disconnect, with fines for firms, would protect rest; employers reply that flexible hours are what let parents work at all.", + "fr": "Les employés des banques et des centres d'appels répondent à des messages à minuit. Un droit à la déconnexion, avec amendes pour les entreprises, protégerait le repos ; les employeurs répondent que la souplesse des horaires permet aux parents de travailler." + }, + "yes": { + "label": { "en": "Legislate the right", "fr": "Légiférer" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 45 }, + { "stat": "civilRights", "delta": 1, "days": 60 }, + { "stat": "economy", "delta": -1, "days": 90 }, + { "revenue": "other", "delta": 0.05 } + ] + }, + "no": { + "label": { "en": "Leave it to firms", "fr": "Laisser aux entreprises" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "soc_dividend_01", + "category": "social", + "doc": "memo", + "sender": "min_finance", + "conditions": { "min": { "economy": 58 }, "dayMin": 1150 }, + "title": { "en": "A citizens' dividend", "fr": "Un dividende citoyen" }, + "body": { + "en": "A good year leaves a surplus. Finance suggests sharing part of it as a single payment to every citizen. Orthodox economists would rather repay debt, and say so loudly.", + "fr": "Une bonne année laisse un excédent. Les Finances suggèrent d'en partager une partie sous forme d'un versement unique à chaque citoyen. Les économistes orthodoxes préféreraient rembourser la dette, et le disent bruyamment." + }, + "yes": { + "label": { "en": "Pay the dividend", "fr": "Verser le dividende" }, + "effects": [ + { "oneOff": 0.6 }, + { "stat": "opinion", "delta": 5, "days": 30 }, + { "stat": "unrest", "delta": -2, "days": 45 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 90 } + ] + }, + "no": { + "label": { "en": "Repay debt", "fr": "Rembourser la dette" }, + "effects": [ + { "oneOff": -0.3 }, + { "stat": "opinion", "delta": -1, "days": 30 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 180 } + ] + } + }, + { + "id": "soc_pension_election_01", + "category": "social", + "doc": "memo", + "sender": "press_office", + "conditions": { "dayMin": 1350 }, + "title": { "en": "A pension bonus before the vote", "fr": "Une prime de retraite avant le scrutin" }, + "body": { + "en": "The election approaches, and the press office recommends a pension bonus paid in the autumn. The opposition will call it a bribe; pensioners, a quarter of voters, will call it overdue.", + "fr": "Les élections approchent, et le porte-parole recommande une prime de retraite versée à l'automne. L'opposition parlera de pot-de-vin ; les retraités, un électeur sur quatre, de rattrapage." + }, + "yes": { + "label": { "en": "Pay the bonus", "fr": "Verser la prime" }, + "effects": [ + { "oneOff": 0.5 }, + { "stat": "opinion", "delta": 5, "days": 45 }, + { "stat": "stability", "delta": 1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Refuse the bonus", "fr": "Refuser la prime" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": 1, "days": 60 }, + { "stat": "unrest", "delta": 1, "days": 45 } + ] + } + }, + { + "id": "soc_poverty_report_01", + "category": "social", + "doc": "report", + "sender": "min_labour", + "conditions": { "max": { "opinion": 45 }, "dayMin": 900 }, + "title": { "en": "A damning poverty report", "fr": "Un rapport accablant sur la pauvreté" }, + "body": { + "en": "A national survey, leaked to the press, shows one household in nine cannot afford heating or a meat meal twice a week. The opposition demands a plan. The ministry can answer with a package or with a rebuttal.", + "fr": "Une enquête nationale, fuitée dans la presse, montre qu'un foyer sur neuf ne peut ni se chauffer ni manger de la viande deux fois par semaine. L'opposition exige un plan. Le ministère peut répondre par un train de mesures ou par un démenti." + }, + "yes": { + "label": { "en": "Announce a poverty plan", "fr": "Annoncer un plan pauvreté" }, + "effects": [ + { "extraSpending": 0.5 }, + { "sector": "social", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": 3, "days": 45 }, + { "stat": "unrest", "delta": -2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Dispute the figures", "fr": "Contester les chiffres" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 45 }, + { "stat": "stability", "delta": -1, "days": 45 } + ] + } + }, + { + "id": "soc_strike_wave_01", + "category": "social", + "doc": "telegram", + "sender": "min_interior", + "conditions": { "min": { "unrest": 60 }, "dayMin": 900 }, + "title": { "en": "A general strike is called", "fr": "Une grève générale est annoncée" }, + "body": { + "en": "GENERAL STRIKE CALLED FOR MONDAY. RAIL, PORTS, SCHOOLS AND HOSPITALS EXPECTED TO STOP. UNIONS DEMAND WAGE TALKS BEFORE FRIDAY. STOP.", + "fr": "GREVE GENERALE ANNONCEE POUR LUNDI. RAIL, PORTS, ECOLES ET HOPITAUX DEVRAIENT S'ARRETER. LES SYNDICATS EXIGENT DES NEGOCIATIONS SALARIALES AVANT VENDREDI. STOP." + }, + "yes": { + "label": { "en": "Concede wage talks", "fr": "Concéder des négociations" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "unrest", "delta": -4, "days": 45 }, + { "stat": "stability", "delta": 2, "days": 45 }, + { "stat": "economy", "delta": -1, "days": 45 } + ] + }, + "no": { + "label": { "en": "Hold firm", "fr": "Tenir bon" }, + "effects": [ + { "stat": "order", "delta": 2, "days": 30 }, + { "stat": "economy", "delta": -3, "days": 45 }, + { "stat": "unrest", "delta": 3, "days": 45 }, + { "stat": "opinion", "delta": -3, "days": 40 } + ] } } ] diff --git a/web/data/cards/transport.json b/web/data/cards/transport.json index 881b9de..131e473 100644 --- a/web/data/cards/transport.json +++ b/web/data/cards/transport.json @@ -1,6 +1,9 @@ [ { - "id": "trn_high_speed_rail_01", "category": "transport", "doc": "memo", "sender": "min_transport", + "id": "trn_high_speed_rail_01", + "category": "transport", + "doc": "memo", + "sender": "min_transport", "title": { "en": "A high-speed rail link", "fr": "Une ligne ferroviaire à grande vitesse" }, "body": { "en": "A high-speed line between the capital and the southern port would tie the country together. It is the biggest construction project in a generation, and the bill matches.", @@ -9,7 +12,7 @@ "yes": { "label": { "en": "Build it", "fr": "La construire" }, "effects": [ - { "oneOff": 1.2 }, + { "oneOff": 0.85 }, { "sector": "transport", "delta": 6, "days": 365 }, { "stat": "economy", "delta": 2, "bias": true, "days": 730 }, { "stat": "opinion", "delta": 2, "days": 45 } @@ -21,7 +24,10 @@ } }, { - "id": "trn_free_buses_01", "category": "transport", "doc": "petition", "sender": "mayor", + "id": "trn_free_buses_01", + "category": "transport", + "doc": "petition", + "sender": "mayor", "title": { "en": "Free buses in the capital", "fr": "Bus gratuits dans la capitale" }, "body": { "en": "The city asks the government to cover bus fares for residents. Congestion would ease, and so would household budgets.", @@ -35,13 +41,13 @@ { "sector": "transport", "delta": 3, "days": 120 } ] }, - "no": { - "label": { "en": "Refuse", "fr": "Refuser" }, - "effects": [{ "sector": "transport", "delta": -2, "days": 90 }] - } + "no": { "label": { "en": "Refuse", "fr": "Refuser" }, "effects": [{ "sector": "transport", "delta": -2, "days": 90 }] } }, { - "id": "trn_port_expansion_01", "category": "transport", "doc": "memo", "sender": "min_transport", + "id": "trn_port_expansion_01", + "category": "transport", + "doc": "memo", + "sender": "min_transport", "title": { "en": "Expand the main port", "fr": "Agrandir le grand port" }, "body": { "en": "Cargo volumes are outgrowing the main port. New quays and cranes would cut waiting times and attract shipping lines.", @@ -50,18 +56,18 @@ "yes": { "label": { "en": "Fund the expansion", "fr": "Financer l'extension" }, "effects": [ - { "oneOff": 0.8 }, + { "oneOff": 0.55 }, { "stat": "economy", "delta": 2, "bias": true, "days": 540 }, { "stat": "growth", "delta": 0.2, "bias": true, "days": 540 } ] }, - "no": { - "label": { "en": "Postpone", "fr": "Reporter" }, - "effects": [{ "stat": "economy", "delta": -1, "days": 60 }] - } + "no": { "label": { "en": "Postpone", "fr": "Reporter" }, "effects": [{ "stat": "economy", "delta": -1, "days": 60 }] } }, { - "id": "trn_road_tolls_01", "category": "transport", "doc": "memo", "sender": "min_transport", + "id": "trn_road_tolls_01", + "category": "transport", + "doc": "memo", + "sender": "min_transport", "title": { "en": "Introduce road tolls", "fr": "Instaurer des péages routiers" }, "body": { "en": "Tolls on the main motorways would pay for maintenance and a new revenue line. Drivers will not like it.", @@ -79,5 +85,1579 @@ "label": { "en": "Refuse", "fr": "Refuser" }, "effects": [{ "sector": "infrastructure", "delta": -3, "days": 180 }] } + }, + { + "id": "trn_rail_fares_01", + "category": "transport", + "doc": "memo", + "sender": "min_transport", + "conditions": { "min": { "debt": 55 } }, + "title": { "en": "Raise the rail fares?", "fr": "Relever les tarifs ferroviaires ?" }, + "body": { + "en": "The national railway loses money on every ticket and borrows to cover the gap. A fare rise of twelve percent would close a third of it. Commuters hold season tickets and long memories.", + "fr": "La compagnie ferroviaire perd de l'argent sur chaque billet et emprunte pour combler l'écart. Une hausse de douze pour cent des tarifs en couvrirait un tiers. Les abonnés ont une carte et une longue mémoire." + }, + "yes": { + "label": { "en": "Raise the fares", "fr": "Relever les tarifs" }, + "effects": [ + { "revenue": "other", "delta": 0.25 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "stat": "inflation", "delta": 0.1, "bias": true, "days": 180 }, + { "sector": "transport", "delta": 1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Hold the fares", "fr": "Maintenir les tarifs" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "transport", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "trn_bridge_inspection_01", + "category": "transport", + "doc": "report", + "sender": "min_transport", + "conditions": { "max": { "q:infrastructure": 55 } }, + "title": { "en": "Cracks in the old river bridge", "fr": "Fissures dans le vieux pont sur le fleuve" }, + "body": { + "en": "Engineers find fatigue cracks in the old bridge that carries forty thousand vehicles a day. Closing it for repair means six months of detours. Keeping it open means trusting the cracks.", + "fr": "Les ingénieurs relèvent des fissures de fatigue dans le vieux pont qui supporte quarante mille véhicules par jour. Le fermer pour réparation signifie six mois de déviations. Le laisser ouvert, c'est faire confiance aux fissures." + }, + "yes": { + "label": { "en": "Close it for repairs", "fr": "Le fermer pour réparation" }, + "effects": [ + { "oneOff": 0.35 }, + { "stat": "economy", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "infrastructure", "delta": 4, "days": 240 } + ] + }, + "no": { + "label": { "en": "Keep it open", "fr": "Le laisser ouvert" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": 1, "days": 30 }, + { "sector": "infrastructure", "delta": -2, "days": 120 } + ], + "followUp": { "id": "trn_bridge_cracks_01", "inDays": 120 } + } + }, + { + "id": "trn_bridge_cracks_01", + "category": "transport", + "doc": "telegram", + "sender": "min_transport", + "followUpOnly": true, + "title": { "en": "New cracks on the river bridge", "fr": "De nouvelles fissures sur le pont" }, + "body": { + "en": "NEW CRACKS ON THE RIVER BRIDGE. ENGINEERS ADVISE BANNING HEAVY TRUCKS AT ONCE. HAULIERS THREATEN TO BLOCK THE APPROACH ROADS. STOP.", + "fr": "NOUVELLES FISSURES SUR LE PONT DU FLEUVE. LES INGENIEURS CONSEILLENT D'INTERDIRE LES POIDS LOURDS IMMEDIATEMENT. LES TRANSPORTEURS MENACENT DE BLOQUER LES ACCES. STOP." + }, + "yes": { + "label": { "en": "Ban heavy trucks", "fr": "Interdire les poids lourds" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "economy", "delta": -2, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "sector": "infrastructure", "delta": 2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Wait for the next report", "fr": "Attendre le prochain rapport" }, + "effects": [ + { "sector": "infrastructure", "delta": -3, "days": 120 }, + { "stat": "stability", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": -3, "days": 40 } + ] + } + }, + { + "id": "trn_rural_broadband_01", + "category": "transport", + "doc": "letter", + "sender": "min_transport", + "title": { "en": "A third of villages are offline", "fr": "Un tiers des villages hors connexion" }, + "body": { + "en": "A third of villages have no broadband. Operators will connect them only if a subsidy covers most of the cost. The villages vote, but they do not yield a return.", + "fr": "Un tiers des villages n'ont pas d'internet à haut débit. Les opérateurs ne les raccorderont que si une subvention couvre l'essentiel du coût. Les villages votent, mais ne rapportent rien." + }, + "yes": { + "label": { "en": "Subsidise the rollout", "fr": "Subventionner le déploiement" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "infrastructure", "delta": 3, "days": 240 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Wait for the market", "fr": "Attendre le marché" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "infrastructure", "delta": -1, "days": 90 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + }, + "conditions": { "max": { "q:infrastructure": 60 } } + }, + { + "id": "trn_bus_strike_01", + "category": "transport", + "doc": "petition", + "sender": "union", + "conditions": { "min": { "inflation": 3 } }, + "title": { "en": "The capital's buses stop", "fr": "Les bus de la capitale s'arrêtent" }, + "body": { + "en": "Bus drivers in the capital have stopped work, demanding a raise that follows prices. The city is walking, cycling and complaining, sometimes all at once.", + "fr": "Les conducteurs de bus de la capitale ont cessé le travail et réclament une augmentation indexée sur les prix. La ville marche, pédale et proteste, parfois en même temps." + }, + "yes": { + "label": { "en": "Grant the raise", "fr": "Accorder l'augmentation" }, + "effects": [ + { "extraSpending": 0.15 }, + { "stat": "unrest", "delta": -2, "days": 40 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "inflation", "delta": 0.1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Hold firm", "fr": "Tenir bon" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "sector": "transport", "delta": -2, "days": 120 } + ] + } + }, + { + "id": "trn_speed_cameras_01", + "category": "transport", + "doc": "memo", + "sender": "min_transport", + "title": { "en": "Speed cameras on the main roads", "fr": "Des radars sur les routes principales" }, + "body": { + "en": "Road deaths have risen for a third year. Cameras on the main roads would catch the worst offenders and raise revenue. Drivers will call it a tax, and some of them will be right.", + "fr": "Le nombre de morts sur les routes augmente pour la troisième année. Des radars sur les axes principaux piégeraient les pires fautifs et rapporteraient des recettes. Les automobilistes y verront un impôt, et certains auront raison." + }, + "yes": { + "label": { "en": "Install the cameras", "fr": "Installer les radars" }, + "effects": [ + { "revenue": "other", "delta": 0.15 }, + { "sector": "transport", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 45 } + ] + }, + "no": { + "label": { "en": "Rely on prevention", "fr": "Miser sur la prévention" }, + "effects": [ + { "oneOff": 0.1 }, + { "sector": "transport", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "trn_dirt_roads_01", + "category": "transport", + "doc": "petition", + "sender": "mayor", + "conditions": { "max": { "q:infrastructure": 55 } }, + "title": { "en": "Forty villages cut off by mud", "fr": "Quarante villages coupés par la boue" }, + "body": { + "en": "Forty villages are cut off by mud each spring. District councils ask the state to pave the connecting roads. Each kilometre costs little, and there are a great many kilometres.", + "fr": "Quarante villages sont coupés par la boue chaque printemps. Les conseils de district demandent à l'État de goudronner les routes de liaison. Chaque kilomètre coûte peu, et les kilomètres sont très nombreux." + }, + "yes": { + "label": { "en": "Pave the roads", "fr": "Goudronner les routes" }, + "effects": [ + { "oneOff": 0.35 }, + { "sector": "infrastructure", "delta": 4, "days": 240 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Postpone", "fr": "Reporter" }, + "effects": [ + { "stat": "unrest", "delta": 2, "days": 40 }, + { "sector": "infrastructure", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "trn_regional_airport_01", + "category": "transport", + "doc": "letter", + "sender": "min_transport", + "title": { "en": "A jet-ready regional airport", "fr": "Un aéroport régional pour avions de ligne" }, + "body": { + "en": "A provincial governor wants an airport with a runway long enough for jets, to attract investors. Airlines say they will come when there are passengers. Passengers say they will come when there are flights.", + "fr": "Un gouverneur de province veut un aéroport doté d'une piste assez longue pour les avions de ligne, afin d'attirer les investisseurs. Les compagnies viendront quand il y aura des passagers. Les passagers viendront quand il y aura des vols." + }, + "yes": { + "label": { "en": "Build the airport", "fr": "Construire l'aéroport" }, + "effects": [ + { "oneOff": 0.5 }, + { "sector": "transport", "delta": 3, "days": 240 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 540 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "sector": "transport", "delta": -1, "days": 90 }] + }, + "conditions": { "min": { "economy": 50 } } + }, + { + "id": "trn_water_mains_01", + "category": "transport", + "doc": "memo", + "sender": "min_transport", + "conditions": { "max": { "q:infrastructure": 60 } }, + "title": { "en": "A third of the water leaks away", "fr": "Un tiers de l'eau se perd en fuites" }, + "body": { + "en": "A third of the water entering the capital's mains leaks out before reaching a tap. Replacing the pipes would take six years and, in turn, every street in the city.", + "fr": "Un tiers de l'eau qui entre dans le réseau de la capitale s'échappe avant d'atteindre un robinet. Remplacer les canalisations prendrait six ans et, tour à tour, toutes les rues de la ville." + }, + "yes": { + "label": { "en": "Replace the mains", "fr": "Remplacer les canalisations" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "infrastructure", "delta": 4, "days": 365 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "sector": "environment", "delta": 2, "days": 240 } + ] + }, + "no": { + "label": { "en": "Patch what bursts", "fr": "Réparer au fil des fuites" }, + "effects": [ + { "sector": "infrastructure", "delta": -2, "days": 120 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "sector": "environment", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "trn_island_ferry_01", + "category": "transport", + "doc": "letter", + "sender": "min_transport", + "title": { "en": "The island ferry loses money", "fr": "Le ferry de l'île perd de l'argent" }, + "body": { + "en": "The island ferry runs three times a week at a loss, and the islanders say it is the only road they have. The Treasury suggests a cheaper road might exist; the islanders suggest a cheaper Treasury.", + "fr": "Le ferry de l'île effectue trois traversées par semaine à perte, et les insulaires affirment que c'est leur seule route. Le Trésor suggère qu'une route moins chère existe peut-être ; les insulaires, un Trésor moins cher." + }, + "yes": { + "label": { "en": "Fund the ferry", "fr": "Financer le ferry" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "transport", "delta": 2, "days": 120 }, + { "sector": "infrastructure", "delta": 1, "days": 120 } + ] + }, + "no": { + "label": { "en": "Cut to one sailing a week", "fr": "Réduire à une traversée" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "trn_congestion_charge_01", + "category": "transport", + "doc": "memo", + "sender": "mayor", + "title": { "en": "A charge to enter the city centre", "fr": "Un péage pour entrer dans le centre" }, + "body": { + "en": "The capital would charge cars entering the centre. Traffic would fall by a fifth and the city would fund its buses. Suburban voters would meet city hall at the ballot box.", + "fr": "La capitale ferait payer les voitures qui entrent dans le centre. Le trafic baisserait d'un cinquième et la ville financerait ses bus. Les électeurs de banlieue retrouveraient la mairie dans l'isoloir." + }, + "yes": { + "label": { "en": "Allow the charge", "fr": "Autoriser le péage" }, + "effects": [ + { "revenue": "other", "delta": 0.1 }, + { "sector": "transport", "delta": 3, "days": 180 }, + { "sector": "environment", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": -3, "days": 45 } + ], + "followUp": { "id": "trn_congestion_shops_01", "inDays": 100 } + }, + "no": { + "label": { "en": "Refuse", "fr": "Refuser" }, + "effects": [ + { "sector": "transport", "delta": -2, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "environment", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "trn_congestion_shops_01", + "category": "transport", + "doc": "petition", + "sender": "mayor", + "followUpOnly": true, + "title": { "en": "Shops count the cost of the charge", "fr": "Les commerçants font les comptes du péage" }, + "body": { + "en": "Shopkeepers in the centre report sales down a tenth since the charge began. The buses are fuller and the air is cleaner. Retailers ask for exemptions for deliveries and customers.", + "fr": "Les commerçants du centre font état de ventes en baisse d'un dixième depuis l'entrée en vigueur du péage. Les bus sont plus remplis et l'air plus propre. Ils demandent des exemptions pour les livraisons et les clients." + }, + "yes": { + "label": { "en": "Grant exemptions", "fr": "Accorder des exemptions" }, + "effects": [ + { "stat": "economy", "delta": 1, "days": 60 }, + { "sector": "transport", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the charge as it is", "fr": "Maintenir le péage tel quel" }, + "effects": [ + { "stat": "economy", "delta": -1, "days": 60 }, + { "sector": "environment", "delta": 2, "days": 120 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "trn_freight_rail_01", + "category": "transport", + "doc": "memo", + "sender": "min_transport", + "title": { "en": "Containers on trains, not trucks", "fr": "Des conteneurs sur les rails, pas sur les routes" }, + "body": { + "en": "Trucks carry most of the freight, and most of the potholes. A subsidy for container trains between the port and the factories would move part of the load. The haulage lobby has noticed.", + "fr": "Les camions transportent l'essentiel du fret, et l'essentiel des nids-de-poule. Une subvention aux trains de conteneurs entre le port et les usines déplacerait une partie de la charge. Le lobby du transport routier l'a remarqué." + }, + "yes": { + "label": { "en": "Subsidise freight rail", "fr": "Subventionner le fret ferré" }, + "effects": [ + { "extraSpending": 0.15 }, + { "sector": "transport", "delta": 3, "days": 180 }, + { "sector": "infrastructure", "delta": 2, "days": 180 }, + { "sector": "environment", "delta": 2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Leave freight to trucks", "fr": "Laisser le fret aux camions" }, + "effects": [ + { "sector": "infrastructure", "delta": -2, "days": 120 }, + { "stat": "economy", "delta": 1, "days": 30 }, + { "sector": "environment", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "trn_grid_upgrade_01", + "category": "transport", + "doc": "memo", + "sender": "min_industry", + "conditions": { "max": { "q:infrastructure": 55 } }, + "title": { "en": "A grid built for a smaller country", "fr": "Un réseau conçu pour un pays plus petit" }, + "body": { + "en": "In many districts the power grid dates from the last century, and every summer leaves a few thousand households in the dark. An upgrade would take five years. The summers are shorter than that.", + "fr": "Dans de nombreux quartiers, le réseau électrique date du siècle dernier, et chaque été plonge quelques milliers de foyers dans le noir. La modernisation prendrait cinq ans. Les étés sont plus courts." + }, + "yes": { + "label": { "en": "Fund the upgrade", "fr": "Financer la modernisation" }, + "effects": [ + { "oneOff": 0.55 }, + { "sector": "infrastructure", "delta": 5, "days": 365 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "inflation", "delta": -0.1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Defer the upgrade", "fr": "Différer la modernisation" }, + "effects": [ + { "sector": "infrastructure", "delta": -3, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "trn_mobile_licences_01", + "category": "transport", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 100 }, + "title": { "en": "The mobile licences expire", "fr": "Les licences mobiles arrivent à échéance" }, + "body": { + "en": "The three mobile licences expire next year. Selling a single exclusive licence would raise a fortune, since the winner could set prices at will. Renewing all three would raise less and keep the competition.", + "fr": "Les trois licences mobiles expirent l'an prochain. Vendre une licence exclusive rapporterait une fortune, puisque le gagnant fixerait les prix à sa guise. Renouveler les trois rapporterait moins et préserverait la concurrence." + }, + "yes": { + "label": { "en": "Sell one exclusive licence", "fr": "Vendre une licence exclusive" }, + "effects": [ + { "oneOff": -1 }, + { "sector": "infrastructure", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": 1, "days": 60 } + ], + "followUp": { "id": "trn_mobile_prices_01", "inDays": 200 } + }, + "no": { + "label": { "en": "Renew all three", "fr": "Renouveler les trois" }, + "effects": [ + { "oneOff": -0.3 }, + { "sector": "infrastructure", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "trn_mobile_prices_01", + "category": "transport", + "doc": "report", + "sender": "press_office", + "followUpOnly": true, + "title": { "en": "Mobile prices up by a quarter", "fr": "Les prix du mobile bondissent d'un quart" }, + "body": { + "en": "Since the exclusive licence, mobile prices have risen by a quarter and coverage complaints fill the newspapers. The operator points to its contract; consumers point to their bills.", + "fr": "Depuis la licence exclusive, les prix du mobile ont augmenté d'un quart et les plaintes sur la couverture remplissent les journaux. L'opérateur invoque son contrat ; les consommateurs, leurs factures." + }, + "yes": { + "label": { "en": "Impose a price cap", "fr": "Imposer un plafond de prix" }, + "effects": [ + { "stat": "opinion", "delta": 3, "days": 40 }, + { "sector": "infrastructure", "delta": -1, "days": 90 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Respect the contract", "fr": "Respecter le contrat" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 180 }, + { "sector": "infrastructure", "delta": 1, "days": 120 } + ] + } + }, + { + "id": "trn_cycle_lanes_01", + "category": "transport", + "doc": "petition", + "sender": "mayor", + "conditions": { "dayMin": 120 }, + "title": { "en": "A protected network for cyclists", "fr": "Un réseau protégé pour les cyclistes" }, + "body": { + "en": "Cyclists ask for forty kilometres of protected lanes across the capital, taking one lane from cars on the main avenues. Drivers say avenues are for cars; cyclists say avenues are for people.", + "fr": "Les cyclistes demandent quarante kilomètres de pistes protégées dans la capitale, en retirant une voie aux voitures sur les grandes avenues. Les automobilistes disent que les avenues sont faites pour les voitures ; les cyclistes, pour les gens." + }, + "yes": { + "label": { "en": "Build the network", "fr": "Construire le réseau" }, + "effects": [ + { "oneOff": 0.15 }, + { "sector": "transport", "delta": 2, "days": 180 }, + { "sector": "environment", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep the lanes for cars", "fr": "Garder les voies aux voitures" }, + "effects": [ + { "stat": "opinion", "delta": 1, "days": 30 }, + { "sector": "environment", "delta": -1, "days": 90 }, + { "sector": "transport", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "trn_resurfacing_01", + "category": "transport", + "doc": "memo", + "sender": "min_transport", + "conditions": { "dayMin": 90, "max": { "q:infrastructure": 45 } }, + "title": { "en": "Half the motorways are worn out", "fr": "La moitié des autoroutes est usée" }, + "body": { + "en": "Half the motorway surface is past its life and heavy trucks are wearing out the rest. A resurfacing programme would take three summers and several thousand orange cones.", + "fr": "La moitié du revêtement autoroutier a dépassé sa durée de vie et les poids lourds usent le reste. Un programme de réfection prendrait trois étés et plusieurs milliers de cônes orange." + }, + "yes": { + "label": { "en": "Launch the programme", "fr": "Lancer le programme" }, + "effects": [ + { "oneOff": 0.5 }, + { "sector": "infrastructure", "delta": 5, "days": 365 }, + { "stat": "opinion", "delta": -1, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Patch and wait", "fr": "Rafistoler et attendre" }, + "effects": [ + { "sector": "infrastructure", "delta": -3, "days": 180 }, + { "stat": "economy", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "trn_tunnel_01", + "category": "transport", + "doc": "memo", + "sender": "min_transport", + "conditions": { "dayMin": 150 }, + "title": { "en": "A tunnel through the Karst range", "fr": "Un tunnel sous le massif du Karst" }, + "body": { + "en": "A tunnel through the Karst range would cut the trip from the northern basin to the capital from six hours to ninety minutes. Engineers have given a cost. Experience gives another.", + "fr": "Un tunnel sous le massif du Karst ramènerait le trajet du bassin du nord à la capitale de six heures à quatre-vingt-dix minutes. Les ingénieurs ont donné un coût. L'expérience en donne un autre." + }, + "yes": { + "label": { "en": "Dig the tunnel", "fr": "Percer le tunnel" }, + "effects": [ + { "oneOff": 0.65 }, + { "sector": "transport", "delta": 4, "days": 365 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 730 } + ], + "followUp": { "id": "trn_tunnel_overrun_01", "inDays": 300 } + }, + "no": { + "label": { "en": "Keep the mountain road", "fr": "Garder la route de montagne" }, + "effects": [{ "sector": "transport", "delta": -2, "days": 120 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "trn_tunnel_overrun_01", + "category": "transport", + "doc": "report", + "sender": "min_finance", + "followUpOnly": true, + "title": { "en": "The tunnel runs forty percent over", "fr": "Le tunnel dépasse son budget de quarante pour cent" }, + "body": { + "en": "The tunnel is forty percent over budget after the drills met unexpected rock. The contractor asks for more money; the opposition asks for the contractor.", + "fr": "Le tunnel dépasse son budget de quarante pour cent après que les foreuses ont rencontré une roche imprévue. L'entrepreneur réclame de l'argent ; l'opposition réclame l'entrepreneur." + }, + "yes": { + "label": { "en": "Pay the overrun", "fr": "Payer le dépassement" }, + "effects": [ + { "oneOff": 0.4 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "transport", "delta": 2, "days": 120 } + ] + }, + "no": { + "label": { "en": "Halt the works", "fr": "Arrêter le chantier" }, + "effects": [ + { "sector": "transport", "delta": -4, "days": 180 }, + { "stat": "economy", "delta": -2, "days": 90 }, + { "stat": "opinion", "delta": -3, "days": 40 } + ] + } + }, + { + "id": "trn_taxi_apps_01", + "category": "transport", + "doc": "memo", + "sender": "mayor", + "conditions": { "dayMin": 200 }, + "title": { "en": "Ride-hailing apps want a licence", "fr": "Les applications de VTC veulent une licence" }, + "body": { + "en": "Ride-hailing platforms offer to pay a licence fee in exchange for the right to operate in the capital. Taxi drivers, who paid a good deal for their own licences, have parked their cars outside the ministry.", + "fr": "Des plateformes de VTC proposent de payer une redevance en échange du droit d'opérer dans la capitale. Les chauffeurs de taxi, qui ont payé cher leur propre licence, ont garé leurs voitures devant le ministère." + }, + "yes": { + "label": { "en": "Licence the platforms", "fr": "Autoriser les plateformes" }, + "effects": [ + { "revenue": "other", "delta": 0.1 }, + { "sector": "transport", "delta": 2, "days": 120 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Protect the taxi licences", "fr": "Protéger les licences de taxi" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "transport", "delta": -1, "days": 90 }, + { "stat": "unrest", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "trn_metro_01", + "category": "transport", + "doc": "letter", + "sender": "mayor", + "conditions": { "dayMin": 250, "min": { "economy": 52 } }, + "title": { "en": "A new metro line for the capital", "fr": "Une nouvelle ligne de métro pour la capitale" }, + "body": { + "en": "The capital asks the state to co-fund a metro line to the eastern suburbs. Buses crawl there at nine kilometres an hour, and the property developers have already drawn the stations.", + "fr": "La capitale demande à l'État de cofinancer une ligne de métro vers les faubourgs de l'est. Les bus y avancent à neuf kilomètres à l'heure, et les promoteurs ont déjà dessiné les stations." + }, + "yes": { + "label": { "en": "Co-fund the line", "fr": "Cofinancer la ligne" }, + "effects": [ + { "oneOff": 0.65 }, + { "sector": "transport", "delta": 4, "days": 365 }, + { "sector": "environment", "delta": 2, "days": 240 }, + { "stat": "opinion", "delta": 2, "days": 45 } + ], + "followUp": { "id": "trn_metro_delay_01", "inDays": 330 } + }, + "no": { + "label": { "en": "Buy more buses instead", "fr": "Acheter plutôt des bus" }, + "effects": [{ "oneOff": 0.15 }, { "sector": "transport", "delta": 1, "days": 120 }] + } + }, + { + "id": "trn_metro_delay_01", + "category": "transport", + "doc": "petition", + "sender": "mayor", + "followUpOnly": true, + "title": { "en": "The metro works drag on", "fr": "Les travaux du métro s'éternisent" }, + "body": { + "en": "The metro works have closed three avenues for a year, and the opening has slipped to next spring. Shopkeepers on the dug-up avenues ask for compensation, and a few of them for a refund of their patience.", + "fr": "Les travaux du métro ferment trois avenues depuis un an, et l'ouverture glisse au printemps prochain. Les commerçants des avenues éventrées demandent une indemnisation, et certains le remboursement de leur patience." + }, + "yes": { + "label": { "en": "Compensate the shops", "fr": "Indemniser les commerçants" }, + "effects": [ + { "oneOff": 0.15 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "economy", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Press on, no payments", "fr": "Poursuivre sans indemnités" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + } + }, + { + "id": "trn_truck_toll_01", + "category": "transport", + "doc": "memo", + "sender": "min_transport", + "conditions": { "dayMin": 250 }, + "title": { "en": "A toll by the kilometre for heavy trucks", "fr": "Un péage au kilomètre pour les poids lourds" }, + "body": { + "en": "Heavy trucks cause most of the road wear and pay a small part of the bill. A toll by the kilometre would shift the cost. Hauliers say it will show up in the price of bread, and they are right.", + "fr": "Les poids lourds causent l'essentiel de l'usure des routes et paient une petite part de la facture. Un péage au kilomètre déplacerait le coût. Les transporteurs disent qu'il se retrouvera dans le prix du pain, et ils ont raison." + }, + "yes": { + "label": { "en": "Introduce the toll", "fr": "Instaurer le péage" }, + "effects": [ + { "revenue": "other", "delta": 0.3 }, + { "sector": "infrastructure", "delta": 3, "days": 180 }, + { "stat": "inflation", "delta": 0.2, "bias": true, "days": 270 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep the flat road tax", "fr": "Garder la taxe forfaitaire" }, + "effects": [ + { "sector": "infrastructure", "delta": -2, "days": 120 }, + { "stat": "inflation", "delta": -0.1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "trn_dockers_cranes_01", + "category": "transport", + "doc": "petition", + "sender": "union", + "conditions": { "dayMin": 250 }, + "title": { "en": "Automated cranes at the port", "fr": "Des grues automatisées au port" }, + "body": { + "en": "The port operator wants automated cranes, which would unload ships in half the time and with a third of the dockers. The dockers' union recalls that the port has been run by the same families for three generations.", + "fr": "L'exploitant du port veut des grues automatisées, qui déchargeraient les navires en moitié moins de temps avec un tiers des dockers. Le syndicat rappelle que le port est tenu par les mêmes familles depuis trois générations." + }, + "yes": { + "label": { "en": "Allow the automation", "fr": "Autoriser l'automatisation" }, + "effects": [ + { "stat": "economy", "delta": 2, "bias": true, "days": 365 }, + { "stat": "growth", "delta": 0.2, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": 0.15, "bias": true, "days": 365 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Protect the dockers", "fr": "Protéger les dockers" }, + "effects": [ + { "sector": "transport", "delta": -2, "days": 120 }, + { "stat": "stability", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "trn_drought_pipeline_01", + "category": "transport", + "doc": "memo", + "sender": "min_transport", + "conditions": { "dayMin": 300, "max": { "q:infrastructure": 40 } }, + "title": { "en": "Reservoirs at a third of capacity", "fr": "Des réservoirs à un tiers de leur capacité" }, + "body": { + "en": "The capital's reservoirs stand at a third of capacity before summer. A pipeline from the northern lakes would solve the problem in four years. Rationing would solve it by Thursday.", + "fr": "Les réservoirs de la capitale sont à un tiers de leur capacité avant l'été. Une conduite depuis les lacs du nord résoudrait le problème en quatre ans. Le rationnement le résoudrait d'ici jeudi." + }, + "yes": { + "label": { "en": "Build the pipeline", "fr": "Construire la conduite" }, + "effects": [ + { "oneOff": 0.55 }, + { "sector": "infrastructure", "delta": 4, "days": 365 }, + { "sector": "environment", "delta": -1, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Ration the water", "fr": "Rationner l'eau" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 40 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "trn_electric_buses_01", + "category": "transport", + "doc": "memo", + "sender": "min_environment", + "conditions": { "dayMin": 300 }, + "title": { "en": "Four hundred electric buses", "fr": "Quatre cents bus électriques" }, + "body": { + "en": "The Environment Ministry proposes replacing four hundred diesel buses in the capital with electric ones. The fleet would be quieter and cleaner, and the depot would need a power line it does not yet have.", + "fr": "Le ministère de l'Environnement propose de remplacer quatre cents bus diesel de la capitale par des bus électriques. La flotte serait plus silencieuse et plus propre, et le dépôt aurait besoin d'une ligne électrique qu'il n'a pas encore." + }, + "yes": { + "label": { "en": "Buy the electric buses", "fr": "Acheter les bus électriques" }, + "effects": [ + { "oneOff": 0.35 }, + { "sector": "transport", "delta": 3, "days": 180 }, + { "sector": "environment", "delta": 3, "days": 240 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep the diesel fleet", "fr": "Garder la flotte diesel" }, + "effects": [{ "sector": "environment", "delta": -2, "days": 120 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "trn_crossing_crash_01", + "category": "transport", + "doc": "telegram", + "sender": "min_transport", + "weight": 0.5, + "conditions": { "dayMin": 300 }, + "title": { "en": "Train hits a school bus", "fr": "Un train percute un car scolaire" }, + "body": { + "en": "TRAIN HITS SCHOOL BUS AT UNGUARDED CROSSING. SEVEN DEAD. FOUR HUNDRED CROSSINGS REMAIN WITHOUT BARRIERS. STOP.", + "fr": "UN TRAIN PERCUTE UN CAR SCOLAIRE A UN PASSAGE A NIVEAU SANS BARRIERES. SEPT MORTS. QUATRE CENTS PASSAGES RESTENT SANS BARRIERES. STOP." + }, + "yes": { + "label": { "en": "Fund barriers everywhere", "fr": "Équiper tous les passages" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "transport", "delta": 3, "days": 180 }, + { "sector": "infrastructure", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 3, "days": 40 } + ] + }, + "no": { + "label": { "en": "Fix the worst forty", "fr": "Traiter les quarante pires" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + } + }, + { + "id": "trn_share_ducts_01", + "category": "transport", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 350 }, + "title": { "en": "Make operators share their ducts", "fr": "Obliger les opérateurs à partager leurs fourreaux" }, + "body": { + "en": "Each telecom operator digs its own trench, and the capital's pavements show it. A rule forcing them to share ducts and poles would speed up fibre, and cost the incumbents their favourite moat.", + "fr": "Chaque opérateur télécom creuse sa propre tranchée, et les trottoirs de la capitale en témoignent. Une règle imposant de partager fourreaux et poteaux accélérerait la fibre, et priverait les opérateurs en place de leur douve favorite." + }, + "yes": { + "label": { "en": "Impose the sharing", "fr": "Imposer le partage" }, + "effects": [ + { "oneOff": 0.1 }, + { "sector": "infrastructure", "delta": 3, "days": 240 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "sector": "industry", "delta": -1, "days": 90 } + ] + }, + "no": { + "label": { "en": "Leave it to operators", "fr": "Laisser faire les opérateurs" }, + "effects": [{ "sector": "infrastructure", "delta": -1, "days": 120 }, { "stat": "economy", "delta": -1, "days": 60 }] + } + }, + { + "id": "trn_school_buses_01", + "category": "transport", + "doc": "letter", + "sender": "min_transport", + "conditions": { "dayMin": 350, "max": { "q:education": 55 } }, + "title": { "en": "School buses for the hill districts", "fr": "Des cars scolaires pour les districts de montagne" }, + "body": { + "en": "Children in the hill districts walk up to two hours to school, and some stop. A fleet of school buses would cost less than the lost education, though this is hard to put on a spreadsheet.", + "fr": "Les enfants des districts de montagne marchent jusqu'à deux heures pour aller à l'école, et certains arrêtent. Une flotte de cars scolaires coûterait moins que l'instruction perdue, ce qu'un tableur rend difficile à montrer." + }, + "yes": { + "label": { "en": "Fund the school buses", "fr": "Financer les cars scolaires" }, + "effects": [ + { "extraSpending": 0.15 }, + { "sector": "education", "delta": 2, "days": 180 }, + { "sector": "transport", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Leave families to cope", "fr": "Laisser les familles s'arranger" }, + "effects": [ + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "education", "delta": -2, "days": 120 }, + { "stat": "unrest", "delta": 1, "days": 40 } + ] + } + }, + { + "id": "trn_airport_capacity_01", + "category": "transport", + "doc": "memo", + "sender": "min_transport", + "conditions": { "dayMin": 400, "min": { "economy": 50 } }, + "title": { "en": "The capital airport turns flights away", "fr": "L'aéroport de la capitale refuse des vols" }, + "body": { + "en": "The capital's airport turns away flights at peak hours. A new terminal costs a fortune. A thirty-year concession to a private operator would pay for it, and keep the profits.", + "fr": "L'aéroport de la capitale refuse des vols aux heures de pointe. Un nouveau terminal coûte une fortune. Une concession de trente ans à un exploitant privé le paierait, et en garderait les bénéfices." + }, + "yes": { + "label": { "en": "Concede the terminal", "fr": "Concéder le terminal" }, + "effects": [ + { "oneOff": -0.8 }, + { "sector": "transport", "delta": 3, "days": 240 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Build with public money", "fr": "Construire sur fonds publics" }, + "effects": [ + { "oneOff": 0.55 }, + { "sector": "transport", "delta": 4, "days": 240 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 } + ] + } + }, + { + "id": "trn_rail_strike_01", + "category": "transport", + "doc": "petition", + "sender": "union", + "conditions": { "dayMin": 450 }, + "title": { "en": "The railway unions give notice", "fr": "Les syndicats du rail déposent un préavis" }, + "body": { + "en": "The railway unions give notice of an indefinite strike unless drivers get a pay rise and a retirement age of fifty-five. The railway says the money does not exist, and the unions say neither does the railway, soon.", + "fr": "Les syndicats du rail déposent un préavis de grève illimitée si les conducteurs n'obtiennent pas une augmentation et la retraite à cinquante-cinq ans. La compagnie dit que l'argent n'existe pas, les syndicats que la compagnie non plus, bientôt." + }, + "yes": { + "label": { "en": "Meet the demands", "fr": "Accéder aux revendications" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "unrest", "delta": -3, "days": 40 }, + { "stat": "inflation", "delta": 0.1, "bias": true, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Hold the line", "fr": "Tenir la ligne" }, + "effects": [ + { "stat": "economy", "delta": -2, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 3, "days": 40 } + ], + "setFlags": ["trn_rail_hardline"], + "followUp": { "id": "trn_rail_chaos_01", "inDays": 60 } + } + }, + { + "id": "trn_rail_chaos_01", + "category": "transport", + "doc": "report", + "sender": "min_transport", + "followUpOnly": true, + "title": { "en": "The network runs at a fifth", "fr": "Le réseau tourne au ralenti" }, + "body": { + "en": "Two weeks into the strike, a fifth of the trains run. Factories report missing parts, and commuters have rediscovered hitchhiking. The unions have not moved, and neither has the railway.", + "fr": "Deux semaines après le début de la grève, un train sur cinq circule. Les usines signalent des pièces manquantes, et les navetteurs redécouvrent l'auto-stop. Les syndicats n'ont pas bougé, la compagnie non plus." + }, + "yes": { + "label": { "en": "Requisition the drivers", "fr": "Réquisitionner les conducteurs" }, + "effects": [ + { "stat": "civilRights", "delta": -3 }, + { "stat": "order", "delta": 2, "days": 40 }, + { "stat": "economy", "delta": 2, "days": 60 }, + { "stat": "unrest", "delta": 3, "days": 40 } + ] + }, + "no": { + "label": { "en": "Return to the table", "fr": "Rouvrir la négociation" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "unrest", "delta": -2, "days": 40 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "trn_bridge_toll_01", + "category": "transport", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 450, "min": { "debt": 55 } }, + "title": { "en": "Who pays for the new bridge?", "fr": "Qui paie le nouveau pont ?" }, + "body": { + "en": "A replacement for the old river bridge can be built either from the budget or by a private builder paid through a thirty-year toll. The budget is short. The commuters are not asked either way, they are told.", + "fr": "Le remplacement du vieux pont sur le fleuve peut être financé par le budget ou par un constructeur privé rémunéré par un péage de trente ans. Le budget est serré. Les automobilistes ne sont consultés dans aucun cas, seulement informés." + }, + "yes": { + "label": { "en": "Charge a toll", "fr": "Instaurer un péage" }, + "effects": [ + { "revenue": "other", "delta": 0.1 }, + { "sector": "infrastructure", "delta": 3, "days": 240 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Fund it from the budget", "fr": "Financer sur le budget" }, + "effects": [ + { "oneOff": 0.35 }, + { "sector": "infrastructure", "delta": 3, "days": 240 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "trn_night_trains_01", + "category": "transport", + "doc": "memo", + "sender": "min_environment", + "conditions": { "dayMin": 500 }, + "title": { "en": "Night trains to the coast", "fr": "Des trains de nuit vers la côte" }, + "body": { + "en": "A night train to the southern coast would replace a dozen flights a day and let passengers sleep through the delays. It would also need subsidy, as every pleasant thing does.", + "fr": "Un train de nuit vers la côte sud remplacerait une douzaine de vols par jour et permettrait de dormir pendant les retards. Il lui faudrait aussi une subvention, comme à tout ce qui est agréable." + }, + "yes": { + "label": { "en": "Subsidise the night train", "fr": "Subventionner le train de nuit" }, + "effects": [ + { "extraSpending": 0.15 }, + { "sector": "environment", "delta": 2, "days": 180 }, + { "sector": "transport", "delta": 2, "days": 180 }, + { "stat": "softPower", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Drop the idea", "fr": "Abandonner l'idée" }, + "effects": [{ "stat": "opinion", "delta": -1, "days": 30 }, { "sector": "environment", "delta": -1, "days": 90 }] + } + }, + { + "id": "trn_substation_fire_01", + "category": "transport", + "doc": "telegram", + "sender": "min_industry", + "weight": 0.5, + "conditions": { "dayMin": 500, "max": { "q:infrastructure": 45 } }, + "title": { "en": "The capital goes dark", "fr": "La capitale plongée dans le noir" }, + "body": { + "en": "SUBSTATION FIRE. CAPITAL WITHOUT POWER FOR NINE HOURS. HOSPITALS ON GENERATORS. OPERATOR SAYS WARNINGS WERE IGNORED. STOP.", + "fr": "INCENDIE DANS UN POSTE ELECTRIQUE. LA CAPITALE SANS COURANT PENDANT NEUF HEURES. LES HOPITAUX SUR GROUPES ELECTROGENES. L'EXPLOITANT DIT QUE LES ALERTES ONT ETE IGNOREES. STOP." + }, + "yes": { + "label": { "en": "Order emergency repairs", "fr": "Ordonner des réparations vite" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "infrastructure", "delta": 4, "days": 180 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "stability", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Wait for the inquiry", "fr": "Attendre l'enquête" }, + "effects": [ + { "stat": "opinion", "delta": -4, "days": 40 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "sector": "infrastructure", "delta": -2, "days": 120 }, + { "stat": "stability", "delta": -2, "days": 40 } + ] + } + }, + { + "id": "trn_licence_points_01", + "category": "transport", + "doc": "memo", + "sender": "min_transport", + "conditions": { "dayMin": 550 }, + "title": { "en": "A points system for driving licences", "fr": "Un permis à points" }, + "body": { + "en": "A points system would suspend the licences of repeat offenders. Road deaths would fall. Delivery drivers and salesmen, who live by their licences, would also fall into the habit of driving carefully.", + "fr": "Un permis à points suspendrait les licences des récidivistes. Les morts sur la route diminueraient. Les livreurs et les représentants, qui vivent de leur permis, prendraient aussi l'habitude de conduire prudemment." + }, + "yes": { + "label": { "en": "Introduce the points", "fr": "Instaurer les points" }, + "effects": [ + { "sector": "transport", "delta": 3, "days": 180 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "order", "delta": 1, "days": 60 } + ] + }, + "no": { + "label": { "en": "Keep fines only", "fr": "Garder les amendes seules" }, + "effects": [ + { "sector": "transport", "delta": -1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "revenue": "other", "delta": 0.05 } + ] + } + }, + { + "id": "trn_river_barges_01", + "category": "transport", + "doc": "memo", + "sender": "min_transport", + "conditions": { "dayMin": 550 }, + "title": { "en": "Dredge the river for barges", "fr": "Draguer le fleuve pour les barges" }, + "body": { + "en": "Dredging the river would let barges carry grain and ore to the port at a third of the road cost. It would also stir up decades of silt, and the fishermen's association has opinions about the silt.", + "fr": "Draguer le fleuve permettrait aux barges d'acheminer grain et minerai jusqu'au port pour un tiers du coût routier. Cela remuerait aussi des décennies de vase, sur laquelle l'association des pêcheurs a des avis." + }, + "yes": { + "label": { "en": "Dredge the river", "fr": "Draguer le fleuve" }, + "effects": [ + { "oneOff": 0.35 }, + { "sector": "transport", "delta": 3, "days": 240 }, + { "sector": "environment", "delta": -1, "days": 120 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Leave the river alone", "fr": "Laisser le fleuve tranquille" }, + "effects": [{ "sector": "transport", "delta": -1, "days": 90 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "trn_branch_lines_01", + "category": "transport", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 600, "min": { "debt": 60 } }, + "title": { "en": "Close the loss-making branch lines?", "fr": "Fermer les lignes secondaires déficitaires ?" }, + "body": { + "en": "Nine branch lines carry fewer than a hundred passengers a day and cost more than they earn in a year. Closing them would save real money. They also happen to serve villages that have nothing else.", + "fr": "Neuf lignes secondaires transportent moins de cent voyageurs par jour et coûtent plus qu'elles ne rapportent en un an. Les fermer ferait économiser de l'argent. Elles desservent aussi des villages qui n'ont rien d'autre." + }, + "yes": { + "label": { "en": "Close the lines", "fr": "Fermer les lignes" }, + "effects": [ + { "extraSpending": -0.2 }, + { "sector": "transport", "delta": -2, "days": 120 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ], + "setFlags": ["trn_branch_closed"], + "followUp": { "id": "trn_isolated_villages_01", "inDays": 120 } + }, + "no": { + "label": { "en": "Keep them running", "fr": "Les maintenir" }, + "effects": [ + { "extraSpending": 0.2 }, + { "sector": "transport", "delta": 1, "days": 90 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "trn_isolated_villages_01", + "category": "transport", + "doc": "petition", + "sender": "mayor", + "followUpOnly": true, + "title": { "en": "Villages without a train or a bus", "fr": "Des villages sans train ni bus" }, + "body": { + "en": "With the branch lines gone, some villages have lost their last public transport. The school run is now thirty kilometres by taxi. The councils ask for replacement buses and a timetable that matches life.", + "fr": "Les lignes secondaires disparues, certains villages ont perdu leur dernier transport public. Le trajet scolaire se fait désormais à trente kilomètres en taxi. Les communes demandent des bus de remplacement et un horaire adapté à la vie." + }, + "yes": { + "label": { "en": "Run replacement buses", "fr": "Mettre en place des bus" }, + "effects": [ + { "extraSpending": 0.1 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "sector": "transport", "delta": 2, "days": 120 }, + { "stat": "unrest", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Leave it to the councils", "fr": "S'en remettre aux communes" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "unrest", "delta": 3, "days": 40 }, + { "sector": "transport", "delta": -1, "days": 120 } + ] + } + }, + { + "id": "trn_equipment_vendor_01", + "category": "transport", + "doc": "letter", + "sender": "intelligence", + "conditions": { "dayMin": 600 }, + "title": { "en": "The cheapest telecom vendor has friends", "fr": "Le fournisseur télécom le moins cher a des amis" }, + "body": { + "en": "Intelligence advises that the cheapest telecom equipment vendor has ties to a foreign service. Excluding it raises network costs by a fifth and delays the next mobile generation by two years.", + "fr": "Le renseignement signale que le fournisseur d'équipements télécoms le moins cher a des liens avec un service étranger. L'exclure renchérit le réseau d'un cinquième et retarde de deux ans la prochaine génération mobile." + }, + "yes": { + "label": { "en": "Exclude the vendor", "fr": "Exclure le fournisseur" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "stability", "delta": 1, "days": 60 }, + { "sector": "infrastructure", "delta": -1, "days": 180 }, + { "stat": "inflation", "delta": 0.1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Accept the vendor", "fr": "Accepter le fournisseur" }, + "effects": [ + { "sector": "infrastructure", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "stability", "delta": -2, "days": 60 } + ] + } + }, + { + "id": "trn_smart_traffic_01", + "category": "transport", + "doc": "memo", + "sender": "mayor", + "conditions": { "dayMin": 650 }, + "title": { "en": "Traffic lights that think", "fr": "Des feux de circulation qui réfléchissent" }, + "body": { + "en": "Adaptive traffic lights, linked to sensors and a control room, would cut the capital's jams by a tenth. The present lights run on timers set in a decade when the capital had half as many cars.", + "fr": "Des feux adaptatifs, reliés à des capteurs et à une salle de contrôle, réduiraient les bouchons de la capitale d'un dixième. Les feux actuels suivent des minuteries réglées à une époque où la capitale avait moitié moins de voitures." + }, + "yes": { + "label": { "en": "Install the system", "fr": "Installer le système" }, + "effects": [ + { "oneOff": 0.15 }, + { "sector": "transport", "delta": 3, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep the timers", "fr": "Garder les minuteries" }, + "effects": [{ "sector": "transport", "delta": -1, "days": 90 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "trn_northern_dam_01", + "category": "transport", + "doc": "memo", + "sender": "min_environment", + "conditions": { "dayMin": 700 }, + "title": { "en": "A dam in the northern valley", "fr": "Un barrage dans la vallée du nord" }, + "body": { + "en": "A dam in the northern valley would store water, produce power and flood two villages. The villages have been consulted, in the sense that they have been informed.", + "fr": "Un barrage dans la vallée du nord stockerait l'eau, produirait de l'électricité et noierait deux villages. Les villages ont été consultés, au sens où ils ont été informés." + }, + "yes": { + "label": { "en": "Build the dam", "fr": "Construire le barrage" }, + "effects": [ + { "oneOff": 0.65 }, + { "sector": "infrastructure", "delta": 4, "days": 365 }, + { "sector": "environment", "delta": -2, "days": 240 }, + { "stat": "unrest", "delta": 2, "days": 40 }, + { "stat": "inflation", "delta": -0.1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Drop the dam", "fr": "Renoncer au barrage" }, + "effects": [ + { "sector": "infrastructure", "delta": -1, "days": 120 }, + { "sector": "environment", "delta": 1, "days": 120 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "trn_blizzard_01", + "category": "transport", + "doc": "telegram", + "sender": "min_transport", + "weight": 0.5, + "conditions": { "dayMin": 700 }, + "title": { "en": "Blizzard closes the northern motorway", "fr": "Tempête de neige sur l'autoroute du nord" }, + "body": { + "en": "BLIZZARD CLOSES THE NORTHERN MOTORWAY. TWO THOUSAND VEHICLES STRANDED OVERNIGHT. SNOWPLOUGH FLEET HALF OUT OF SERVICE. STOP.", + "fr": "TEMPETE DE NEIGE SUR L'AUTOROUTE DU NORD. DEUX MILLE VEHICULES BLOQUES TOUTE LA NUIT. LA MOITIE DES CHASSE-NEIGE HORS SERVICE. STOP." + }, + "yes": { + "label": { "en": "Deploy the army", "fr": "Déployer l'armée" }, + "effects": [ + { "oneOff": 0.1 }, + { "stat": "armyLoyalty", "delta": 1 }, + { "stat": "opinion", "delta": 2, "days": 30 }, + { "stat": "order", "delta": 1, "days": 40 } + ] + }, + "no": { + "label": { "en": "Wait for the thaw", "fr": "Attendre le dégel" }, + "effects": [ + { "stat": "opinion", "delta": -3, "days": 40 }, + { "stat": "economy", "delta": -2, "days": 40 }, + { "stat": "unrest", "delta": 2, "days": 40 } + ] + } + }, + { + "id": "trn_transit_pass_01", + "category": "transport", + "doc": "memo", + "sender": "mayor", + "conditions": { "dayMin": 750, "max": { "opinion": 55 } }, + "title": { "en": "One monthly pass for the whole country", "fr": "Un abonnement mensuel pour tout le pays" }, + "body": { + "en": "A single monthly pass, valid on every bus, tram and regional train, would cost less than most people now spend on tickets. The operators ask who pays the difference, and the Treasury asks the same question louder.", + "fr": "Un abonnement mensuel unique, valable sur tous les bus, trams et trains régionaux, coûterait moins que ce que la plupart dépensent en billets. Les opérateurs demandent qui paie la différence, et le Trésor pose la même question plus fort." + }, + "yes": { + "label": { "en": "Launch the pass", "fr": "Lancer l'abonnement" }, + "effects": [ + { "extraSpending": 0.3 }, + { "stat": "opinion", "delta": 3, "days": 40 }, + { "sector": "transport", "delta": 3, "days": 180 }, + { "stat": "inflation", "delta": -0.1, "bias": true, "days": 180 } + ] + }, + "no": { + "label": { "en": "Keep local fares", "fr": "Garder les tarifs locaux" }, + "effects": [{ "sector": "transport", "delta": -1, "days": 90 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "trn_motorway_concession_01", + "category": "transport", + "doc": "letter", + "sender": "min_finance", + "conditions": { "dayMin": 900, "min": { "debt": 60 } }, + "title": { "en": "A private motorway with a guarantee", "fr": "Une autoroute privée avec garantie" }, + "body": { + "en": "A private builder offers to build a two-hundred-kilometre motorway and pay an upfront fee, provided the state guarantees minimum traffic revenue for twenty-five years. Forecasts say traffic will be fine. Forecasts always do.", + "fr": "Un constructeur privé propose de bâtir une autoroute de deux cents kilomètres et de verser un droit d'entrée, si l'État garantit un revenu minimal de trafic pendant vingt-cinq ans. Les prévisions annoncent un trafic suffisant. Les prévisions l'annoncent toujours." + }, + "yes": { + "label": { "en": "Sign the concession", "fr": "Signer la concession" }, + "effects": [ + { "oneOff": -0.3 }, + { "sector": "infrastructure", "delta": 5, "days": 365 }, + { "stat": "economy", "delta": 2, "bias": true, "days": 540 } + ], + "followUp": { "id": "trn_motorway_traffic_01", "inDays": 360 } + }, + "no": { + "label": { "en": "Do not build it", "fr": "Ne pas la construire" }, + "effects": [{ "sector": "infrastructure", "delta": -1, "days": 120 }, { "stat": "economy", "delta": -1, "days": 60 }] + } + }, + { + "id": "trn_motorway_traffic_01", + "category": "transport", + "doc": "report", + "sender": "min_finance", + "followUpOnly": true, + "title": { "en": "The motorway is half empty", "fr": "L'autoroute est à moitié vide" }, + "body": { + "en": "Traffic on the new motorway is at half the forecast, and the guarantee clause now obliges the state to top up the concessionaire's revenue. The contract has twenty-three years left to run.", + "fr": "Le trafic sur la nouvelle autoroute atteint la moitié des prévisions, et la clause de garantie oblige désormais l'État à compléter les recettes du concessionnaire. Le contrat a encore vingt-trois ans à courir." + }, + "yes": { + "label": { "en": "Pay the guarantee", "fr": "Payer la garantie" }, + "effects": [ + { "extraSpending": 0.2 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Dispute the clause", "fr": "Contester la clause" }, + "effects": [ + { "oneOff": 0.2 }, + { "stat": "softPower", "delta": -2, "days": 90 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 2, "days": 30 } + ] + } + }, + { + "id": "trn_old_town_delivery_01", + "category": "transport", + "doc": "petition", + "sender": "mayor", + "conditions": { "dayMin": 950 }, + "title": { "en": "No delivery trucks in the old town", "fr": "Plus de camions de livraison dans la vieille ville" }, + "body": { + "en": "Residents of the old town ask for a daytime ban on delivery trucks in streets built for carts. Shopkeepers say the carts are no longer available, and that their goods are not in the habit of walking.", + "fr": "Les habitants de la vieille ville demandent l'interdiction diurne des camions de livraison dans des rues construites pour des charrettes. Les commerçants répondent que les charrettes n'existent plus, et que leurs marchandises n'ont pas l'habitude de marcher." + }, + "yes": { + "label": { "en": "Ban daytime deliveries", "fr": "Interdire les livraisons de jour" }, + "effects": [ + { "sector": "environment", "delta": 2, "days": 180 }, + { "sector": "transport", "delta": 1, "days": 120 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Keep access open", "fr": "Maintenir l'accès" }, + "effects": [ + { "stat": "opinion", "delta": -1, "days": 30 }, + { "sector": "environment", "delta": -1, "days": 90 }, + { "stat": "economy", "delta": 1, "days": 30 } + ] + } + }, + { + "id": "trn_charging_network_01", + "category": "transport", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 950 }, + "title": { "en": "A national charging network", "fr": "Un réseau national de recharge" }, + "body": { + "en": "Electric cars are arriving faster than the places to charge them. A public charging network along the main roads would remove the last excuse. Private firms would be glad to build it where it pays, which is nowhere near the border.", + "fr": "Les voitures électriques arrivent plus vite que les lieux pour les recharger. Un réseau public de bornes le long des grands axes supprimerait la dernière excuse. Les entreprises privées bâtiraient volontiers là où cela rapporte, c'est-à-dire pas près de la frontière." + }, + "yes": { + "label": { "en": "Fund the network", "fr": "Financer le réseau" }, + "effects": [ + { "oneOff": 0.3 }, + { "sector": "transport", "delta": 2, "days": 180 }, + { "sector": "environment", "delta": 3, "days": 240 }, + { "sector": "industry", "delta": 2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Leave it to private firms", "fr": "Laisser faire le privé" }, + "effects": [{ "sector": "environment", "delta": -1, "days": 90 }, { "sector": "industry", "delta": -1, "days": 90 }] + } + }, + { + "id": "trn_port_terminal_01", + "category": "transport", + "doc": "letter", + "sender": "min_foreign", + "conditions": { "dayMin": 1000 }, + "title": { "en": "A foreign operator wants the container terminal", "fr": "Un opérateur étranger veut le terminal" }, + "body": { + "en": "A foreign shipping group offers a large fee for a thirty-year concession on the main container terminal, and promises new cranes and a regional hub. Port workers remember how the last promise ended.", + "fr": "Un armateur étranger offre une somme considérable pour une concession de trente ans sur le principal terminal à conteneurs, et promet des grues neuves et une plateforme régionale. Les dockers se souviennent de la fin de la dernière promesse." + }, + "yes": { + "label": { "en": "Grant the concession", "fr": "Accorder la concession" }, + "effects": [ + { "oneOff": -0.7 }, + { "sector": "transport", "delta": 3, "days": 240 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "softPower", "delta": 1, "days": 60 }, + { "stat": "opinion", "delta": -2, "days": 40 } + ] + }, + "no": { + "label": { "en": "Keep it national", "fr": "Garder le terminal national" }, + "effects": [ + { "stat": "opinion", "delta": 2, "days": 40 }, + { "sector": "transport", "delta": -1, "days": 90 }, + { "stat": "softPower", "delta": -1, "days": 60 } + ] + } + }, + { + "id": "trn_rail_signalling_01", + "category": "transport", + "doc": "report", + "sender": "min_transport", + "conditions": { "dayMin": 1000 }, + "title": { "en": "A near-miss on the main line", "fr": "Une quasi-collision sur la ligne principale" }, + "body": { + "en": "Two passenger trains stopped four hundred metres apart on the same track, after a signal fault. The investigators recommend replacing the signalling on the main line, an old system that is still, strictly speaking, working.", + "fr": "Deux trains de voyageurs se sont arrêtés à quatre cents mètres l'un de l'autre sur la même voie, après une panne de signalisation. Les enquêteurs recommandent de remplacer la signalisation de la ligne principale, un vieux système qui fonctionne encore, à proprement parler." + }, + "yes": { + "label": { "en": "Replace the signalling", "fr": "Remplacer la signalisation" }, + "effects": [ + { "oneOff": 0.4 }, + { "sector": "transport", "delta": 4, "days": 240 }, + { "sector": "infrastructure", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Tighten procedures only", "fr": "Durcir seulement les procédures" }, + "effects": [ + { "oneOff": 0.1 }, + { "sector": "transport", "delta": -2, "days": 120 }, + { "stat": "stability", "delta": -1, "days": 40 } + ] + } + }, + { + "id": "trn_regional_flights_01", + "category": "transport", + "doc": "memo", + "sender": "min_transport", + "conditions": { "dayMin": 1100 }, + "title": { "en": "Subsidised regional flights", "fr": "Des vols régionaux subventionnés" }, + "body": { + "en": "Two airlines serve the remote provinces only with a subsidy, which the Treasury would like to withdraw. Without the flights, some provinces are a day's drive from a hospital.", + "fr": "Deux compagnies ne desservent les provinces éloignées qu'avec une subvention, que le Trésor voudrait retirer. Sans les vols, certaines provinces se trouvent à une journée de route d'un hôpital." + }, + "yes": { + "label": { "en": "Keep the subsidy", "fr": "Maintenir la subvention" }, + "effects": [ + { "extraSpending": 0.1 }, + { "sector": "transport", "delta": 2, "days": 180 }, + { "stat": "opinion", "delta": 1, "days": 30 }, + { "stat": "unrest", "delta": -1, "days": 40 } + ] + }, + "no": { + "label": { "en": "End the subsidy", "fr": "Supprimer la subvention" }, + "effects": [ + { "extraSpending": -0.1 }, + { "stat": "opinion", "delta": -2, "days": 40 }, + { "sector": "transport", "delta": -1, "days": 90 } + ] + } + }, + { + "id": "trn_satellite_broadband_01", + "category": "transport", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 1100, "max": { "q:infrastructure": 60 } }, + "title": { "en": "Satellite internet for remote areas", "fr": "Internet par satellite pour les zones isolées" }, + "body": { + "en": "Where fibre will not arrive for a decade, satellite terminals could connect farms and mountain clinics next month. The terminals cost less than the trenches, and the monthly fee more than most farmers hoped.", + "fr": "Là où la fibre n'arrivera pas avant dix ans, des terminaux satellite pourraient relier fermes et dispensaires de montagne dès le mois prochain. Les terminaux coûtent moins que les tranchées, et l'abonnement plus que ce que les agriculteurs espéraient." + }, + "yes": { + "label": { "en": "Subsidise the terminals", "fr": "Subventionner les terminaux" }, + "effects": [ + { "oneOff": 0.2 }, + { "sector": "infrastructure", "delta": 2, "days": 180 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "opinion", "delta": 1, "days": 30 } + ] + }, + "no": { + "label": { "en": "Wait for the fibre", "fr": "Attendre la fibre" }, + "effects": [{ "sector": "infrastructure", "delta": -1, "days": 90 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "trn_continental_fair_01", + "category": "transport", + "doc": "letter", + "sender": "mayor", + "conditions": { "dayMin": 1200 }, + "title": { "en": "Host the continental fair?", "fr": "Accueillir l'exposition continentale ?" }, + "body": { + "en": "The capital is invited to host the continental fair, which needs a new station, an access road and a stadium that will be used twice. The national prestige is real, and so is the estimate, for now.", + "fr": "La capitale est invitée à accueillir l'exposition continentale, qui exige une gare nouvelle, une route d'accès et un stade utilisé deux fois. Le prestige national est réel, et l'estimation aussi, pour le moment." + }, + "yes": { + "label": { "en": "Host the fair", "fr": "Accueillir l'exposition" }, + "effects": [ + { "oneOff": 0.7 }, + { "sector": "transport", "delta": 4, "days": 240 }, + { "stat": "softPower", "delta": 4, "days": 90 }, + { "stat": "opinion", "delta": 2, "days": 40 }, + { "stat": "economy", "delta": 1, "bias": true, "days": 365 } + ] + }, + "no": { + "label": { "en": "Decline to host", "fr": "Renoncer à l'accueil" }, + "effects": [{ "stat": "softPower", "delta": -2, "days": 60 }, { "stat": "opinion", "delta": -1, "days": 30 }] + } + }, + { + "id": "trn_fuel_tax_01", + "category": "transport", + "doc": "memo", + "sender": "min_finance", + "conditions": { "dayMin": 950, "min": { "debt": 60 } }, + "title": { "en": "A higher fuel tax to pay for the roads", "fr": "Une taxe carburants pour les routes" }, + "body": { + "en": "Road maintenance is financed from the general budget, and fuel tax has not changed in eight years. A rise earmarked for the roads would link those who use them to those who pay for them, who are not the same people at present.", + "fr": "L'entretien routier est financé par le budget général, et la taxe sur les carburants n'a pas bougé depuis huit ans. Une hausse affectée aux routes relierait ceux qui les utilisent à ceux qui les paient, qui ne sont pas les mêmes aujourd'hui." + }, + "yes": { + "label": { "en": "Raise the fuel tax", "fr": "Relever la taxe" }, + "effects": [ + { "revenue": "other", "delta": 0.3 }, + { "stat": "inflation", "delta": 0.3, "bias": true, "days": 270 }, + { "stat": "opinion", "delta": -3, "days": 45 }, + { "sector": "infrastructure", "delta": 2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Leave the tax unchanged", "fr": "Laisser la taxe inchangée" }, + "effects": [{ "sector": "infrastructure", "delta": -2, "days": 120 }, { "stat": "opinion", "delta": 1, "days": 30 }] + } + }, + { + "id": "trn_driverless_trucks_01", + "category": "transport", + "doc": "memo", + "sender": "min_industry", + "conditions": { "dayMin": 1300 }, + "title": { "en": "Driverless trucks on one corridor", "fr": "Des camions sans conducteur sur un corridor" }, + "body": { + "en": "A manufacturer asks to test driverless trucks on the port-to-factory corridor. Haulage would be cheaper and safer, on average. The drivers' union would like to know the average driver's view.", + "fr": "Un constructeur demande d'essayer des camions sans conducteur sur le corridor du port aux usines. Le transport serait moins cher et plus sûr, en moyenne. Le syndicat des conducteurs aimerait connaître l'avis du conducteur moyen." + }, + "yes": { + "label": { "en": "Allow the test corridor", "fr": "Autoriser le corridor d'essai" }, + "effects": [ + { "stat": "economy", "delta": 1, "bias": true, "days": 365 }, + { "stat": "growth", "delta": 0.2, "bias": true, "days": 365 }, + { "stat": "unemployment", "delta": 0.1, "bias": true, "days": 365 }, + { "sector": "research", "delta": 2, "days": 180 } + ] + }, + "no": { + "label": { "en": "Wait for rules abroad", "fr": "Attendre les règles étrangères" }, + "effects": [ + { "sector": "research", "delta": -1, "days": 90 }, + { "stat": "economy", "delta": -1, "days": 60 }, + { "stat": "unrest", "delta": -1, "days": 40 } + ] + } } ] diff --git a/web/data/newspaper.json b/web/data/newspaper.json index ebd9612..74e4ffc 100644 --- a/web/data/newspaper.json +++ b/web/data/newspaper.json @@ -1,214 +1,403 @@ { "name": { "en": "The Daily Herald", "fr": "Le Courrier du Jour" }, - "intro": [ - { "h": { "en": "A new government takes office", "fr": "Un nouveau gouvernement prend ses fonctions" }, - "d": { "en": "{country} awaits its first decisions.", "fr": "{country} attend ses premières décisions." } } + { + "h": { "en": "A new government takes office", "fr": "Un nouveau gouvernement prend ses fonctions" }, + "d": { "en": "{country} awaits its first decisions.", "fr": "{country} attend ses premières décisions." } + } ], - "quiet": [ - { "h": { "en": "A quiet week in the capital", "fr": "Semaine calme dans la capitale" }, - "d": { "en": "Ministers report nothing of note.", "fr": "Les ministres n'ont rien à signaler." } }, - { "h": { "en": "Markets and streets stay calm", "fr": "Les marchés et les rues restent calmes" }, - "d": { "en": "Analysts expect no change in the weeks ahead.", "fr": "Les analystes n'attendent pas de changement dans les semaines à venir." } } + { + "h": { "en": "A quiet week in the capital", "fr": "Semaine calme dans la capitale" }, + "d": { "en": "Ministers report nothing of note.", "fr": "Les ministres n'ont rien à signaler." } + }, + { + "h": { "en": "Markets and streets stay calm", "fr": "Les marchés et les rues restent calmes" }, + "d": { + "en": "Analysts expect no change in the weeks ahead.", + "fr": "Les analystes n'attendent pas de changement dans les semaines à venir." + } + } ], - "ind": { "order": { "up": [ - { "h": { "en": "Streets calmer as order improves", "fr": "Les rues s'apaisent, l'ordre se rétablit" }, - "d": { "en": "Police report fewer incidents across the country.", "fr": "La police signale moins d'incidents dans tout le pays." } }, - { "h": { "en": "Crime figures fall for a month", "fr": "La criminalité recule depuis un mois" }, - "d": { "en": "The interior ministry credits tighter patrols.", "fr": "Le ministère de l'Intérieur salue des patrouilles renforcées." } } + { + "h": { "en": "Streets calmer as order improves", "fr": "Les rues s'apaisent, l'ordre se rétablit" }, + "d": { + "en": "Police report fewer incidents across the country.", + "fr": "La police signale moins d'incidents dans tout le pays." + } + }, + { + "h": { "en": "Crime figures fall for a month", "fr": "La criminalité recule depuis un mois" }, + "d": { + "en": "The interior ministry credits tighter patrols.", + "fr": "Le ministère de l'Intérieur salue des patrouilles renforcées." + } + } ], "down": [ - { "h": { "en": "Disorder spreads in the cities", "fr": "Le désordre gagne les villes" }, - "d": { "en": "Officials admit control is slipping.", "fr": "Les autorités admettent perdre le contrôle." } }, - { "h": { "en": "Lawlessness on the rise", "fr": "L'insécurité progresse" }, - "d": { "en": "Shopkeepers demand protection.", "fr": "Les commerçants réclament une protection." } } + { + "h": { "en": "Disorder spreads in the cities", "fr": "Le désordre gagne les villes" }, + "d": { "en": "Officials admit control is slipping.", "fr": "Les autorités admettent perdre le contrôle." } + }, + { + "h": { "en": "Lawlessness on the rise", "fr": "L'insécurité progresse" }, + "d": { "en": "Shopkeepers demand protection.", "fr": "Les commerçants réclament une protection." } + } ] }, "stability": { "up": [ - { "h": { "en": "Government steadies after turbulent weeks", "fr": "Le gouvernement se reprend après des semaines agitées" }, - "d": { "en": "Coalition partners close ranks.", "fr": "Les partenaires de la coalition resserrent les rangs." } }, - { "h": { "en": "Political climate cools", "fr": "Le climat politique se détend" }, - "d": { "en": "Analysts note fewer cabinet rifts.", "fr": "Les analystes notent moins de divisions au gouvernement." } } + { + "h": { + "en": "Government steadies after turbulent weeks", + "fr": "Le gouvernement se reprend après des semaines agitées" + }, + "d": { "en": "Coalition partners close ranks.", "fr": "Les partenaires de la coalition resserrent les rangs." } + }, + { + "h": { "en": "Political climate cools", "fr": "Le climat politique se détend" }, + "d": { + "en": "Analysts note fewer cabinet rifts.", + "fr": "Les analystes notent moins de divisions au gouvernement." + } + } ], "down": [ - { "h": { "en": "Cracks show in the ruling circle", "fr": "Des fissures dans le cercle dirigeant" }, - "d": { "en": "Rumours of a reshuffle grow.", "fr": "Les rumeurs de remaniement se multiplient." } }, - { "h": { "en": "Instability worries diplomats", "fr": "L'instabilité inquiète les diplomates" }, - "d": { "en": "Embassies advise caution.", "fr": "Les ambassades recommandent la prudence." } } + { + "h": { "en": "Cracks show in the ruling circle", "fr": "Des fissures dans le cercle dirigeant" }, + "d": { "en": "Rumours of a reshuffle grow.", "fr": "Les rumeurs de remaniement se multiplient." } + }, + { + "h": { "en": "Instability worries diplomats", "fr": "L'instabilité inquiète les diplomates" }, + "d": { "en": "Embassies advise caution.", "fr": "Les ambassades recommandent la prudence." } + } ] }, "civilRights": { "up": [ - { "h": { "en": "Freedoms widen, say rights groups", "fr": "Les libertés s'élargissent, selon les ONG" }, - "d": { "en": "Press and assembly face fewer limits.", "fr": "La presse et les rassemblements sont moins entravés." } }, - { "h": { "en": "Courts restore protections", "fr": "Les tribunaux rétablissent des protections" }, - "d": { "en": "Lawyers hail landmark rulings.", "fr": "Les avocats saluent des décisions historiques." } } + { + "h": { "en": "Freedoms widen, say rights groups", "fr": "Les libertés s'élargissent, selon les ONG" }, + "d": { + "en": "Press and assembly face fewer limits.", + "fr": "La presse et les rassemblements sont moins entravés." + } + }, + { + "h": { "en": "Courts restore protections", "fr": "Les tribunaux rétablissent des protections" }, + "d": { "en": "Lawyers hail landmark rulings.", "fr": "Les avocats saluent des décisions historiques." } + } ], "down": [ - { "h": { "en": "Rights groups sound the alarm", "fr": "Les ONG tirent la sonnette d'alarme" }, - "d": { "en": "Curbs on press and assembly tighten.", "fr": "Les restrictions sur la presse et les rassemblements se durcissent." } }, - { "h": { "en": "Civil liberties under pressure", "fr": "Les libertés civiles sous pression" }, - "d": { "en": "Critics speak of a creeping crackdown.", "fr": "Les critiques dénoncent une répression rampante." } } + { + "h": { "en": "Rights groups sound the alarm", "fr": "Les ONG tirent la sonnette d'alarme" }, + "d": { + "en": "Curbs on press and assembly tighten.", + "fr": "Les restrictions sur la presse et les rassemblements se durcissent." + } + }, + { + "h": { "en": "Civil liberties under pressure", "fr": "Les libertés civiles sous pression" }, + "d": { "en": "Critics speak of a creeping crackdown.", "fr": "Les critiques dénoncent une répression rampante." } + } ] }, "opinion": { "up": [ - { "h": { "en": "Public mood brightens", "fr": "L'humeur du public s'éclaircit" }, - "d": { "en": "Polls show growing approval of the head of state.", "fr": "Les sondages montrent une approbation croissante du chef de l'État." } }, - { "h": { "en": "Approval ratings climb", "fr": "La cote de popularité grimpe" }, - "d": { "en": "Citizens credit recent measures.", "fr": "Les citoyens saluent les dernières mesures." } } + { + "h": { "en": "Public mood brightens", "fr": "L'humeur du public s'éclaircit" }, + "d": { + "en": "Polls show growing approval of the head of state.", + "fr": "Les sondages montrent une approbation croissante du chef de l'État." + } + }, + { + "h": { "en": "Approval ratings climb", "fr": "La cote de popularité grimpe" }, + "d": { "en": "Citizens credit recent measures.", "fr": "Les citoyens saluent les dernières mesures." } + } ], "down": [ - { "h": { "en": "Anger grows among the public", "fr": "La colère monte dans la population" }, - "d": { "en": "Approval slides in the latest polls.", "fr": "La cote de popularité chute dans les derniers sondages." } }, - { "h": { "en": "Discontent in the queues", "fr": "Le mécontentement gagne les files d'attente" }, - "d": { "en": "Citizens blame the government.", "fr": "Les citoyens accusent le gouvernement." } } + { + "h": { "en": "Anger grows among the public", "fr": "La colère monte dans la population" }, + "d": { + "en": "Approval slides in the latest polls.", + "fr": "La cote de popularité chute dans les derniers sondages." + } + }, + { + "h": { "en": "Discontent in the queues", "fr": "Le mécontentement gagne les files d'attente" }, + "d": { "en": "Citizens blame the government.", "fr": "Les citoyens accusent le gouvernement." } + } ] }, "economy": { "up": [ - { "h": { "en": "Business confidence recovers", "fr": "La confiance des entreprises revient" }, - "d": { "en": "Factories report fuller order books.", "fr": "Les usines annoncent des carnets de commandes mieux remplis." } }, - { "h": { "en": "Economy gathers pace", "fr": "L'économie prend de la vitesse" }, - "d": { "en": "Investors return to the capital.", "fr": "Les investisseurs reviennent dans la capitale." } } + { + "h": { "en": "Business confidence recovers", "fr": "La confiance des entreprises revient" }, + "d": { + "en": "Factories report fuller order books.", + "fr": "Les usines annoncent des carnets de commandes mieux remplis." + } + }, + { + "h": { "en": "Economy gathers pace", "fr": "L'économie prend de la vitesse" }, + "d": { "en": "Investors return to the capital.", "fr": "Les investisseurs reviennent dans la capitale." } + } ], "down": [ - { "h": { "en": "Economy loses momentum", "fr": "L'économie perd de son élan" }, - "d": { "en": "Firms cut their hiring plans.", "fr": "Les entreprises réduisent leurs projets d'embauche." } }, - { "h": { "en": "Investors turn cautious", "fr": "Les investisseurs se montrent prudents" }, - "d": { "en": "The stock exchange ends the week lower.", "fr": "La Bourse termine la semaine en baisse." } } + { + "h": { "en": "Economy loses momentum", "fr": "L'économie perd de son élan" }, + "d": { "en": "Firms cut their hiring plans.", "fr": "Les entreprises réduisent leurs projets d'embauche." } + }, + { + "h": { "en": "Investors turn cautious", "fr": "Les investisseurs se montrent prudents" }, + "d": { "en": "The stock exchange ends the week lower.", "fr": "La Bourse termine la semaine en baisse." } + } ] }, "hardPower": { "up": [ - { "h": { "en": "Armed forces strengthened", "fr": "Les forces armées se renforcent" }, - "d": { "en": "Generals welcome new readiness figures.", "fr": "Les généraux se félicitent des nouveaux chiffres de préparation." } }, - { "h": { "en": "Military posture hardens", "fr": "La posture militaire se durcit" }, - "d": { "en": "Neighbours take note.", "fr": "Les voisins en prennent note." } } + { + "h": { "en": "Armed forces strengthened", "fr": "Les forces armées se renforcent" }, + "d": { + "en": "Generals welcome new readiness figures.", + "fr": "Les généraux se félicitent des nouveaux chiffres de préparation." + } + }, + { + "h": { "en": "Military posture hardens", "fr": "La posture militaire se durcit" }, + "d": { "en": "Neighbours take note.", "fr": "Les voisins en prennent note." } + } ], "down": [ - { "h": { "en": "Army readiness questioned", "fr": "La préparation de l'armée en question" }, - "d": { "en": "Equipment shortages reported.", "fr": "Des pénuries d'équipement sont signalées." } }, - { "h": { "en": "Defence capacity slipping", "fr": "Les capacités de défense s'érodent" }, - "d": { "en": "Foreign analysts see a weaker military.", "fr": "Des analystes étrangers voient une armée affaiblie." } } + { + "h": { "en": "Army readiness questioned", "fr": "La préparation de l'armée en question" }, + "d": { "en": "Equipment shortages reported.", "fr": "Des pénuries d'équipement sont signalées." } + }, + { + "h": { "en": "Defence capacity slipping", "fr": "Les capacités de défense s'érodent" }, + "d": { + "en": "Foreign analysts see a weaker military.", + "fr": "Des analystes étrangers voient une armée affaiblie." + } + } ] }, "softPower": { "up": [ - { "h": { "en": "Country's standing grows abroad", "fr": "Le prestige du pays grandit à l'étranger" }, - "d": { "en": "Foreign press praises the national image.", "fr": "La presse étrangère loue l'image du pays." } }, - { "h": { "en": "Cultural influence expands", "fr": "L'influence culturelle s'étend" }, - "d": { "en": "Embassies report warm receptions.", "fr": "Les ambassades signalent un accueil chaleureux." } } + { + "h": { "en": "Country's standing grows abroad", "fr": "Le prestige du pays grandit à l'étranger" }, + "d": { "en": "Foreign press praises the national image.", "fr": "La presse étrangère loue l'image du pays." } + }, + { + "h": { "en": "Cultural influence expands", "fr": "L'influence culturelle s'étend" }, + "d": { "en": "Embassies report warm receptions.", "fr": "Les ambassades signalent un accueil chaleureux." } + } ], "down": [ - { "h": { "en": "Reputation abroad takes a hit", "fr": "La réputation à l'étranger en prend un coup" }, - "d": { "en": "Foreign editorials turn critical.", "fr": "Les éditoriaux étrangers se font critiques." } }, - { "h": { "en": "Diplomatic isolation feared", "fr": "On craint l'isolement diplomatique" }, - "d": { "en": "Partners cool towards the capital.", "fr": "Les partenaires se refroidissent envers la capitale." } } + { + "h": { "en": "Reputation abroad takes a hit", "fr": "La réputation à l'étranger en prend un coup" }, + "d": { "en": "Foreign editorials turn critical.", "fr": "Les éditoriaux étrangers se font critiques." } + }, + { + "h": { "en": "Diplomatic isolation feared", "fr": "On craint l'isolement diplomatique" }, + "d": { "en": "Partners cool towards the capital.", "fr": "Les partenaires se refroidissent envers la capitale." } + } ] }, "unrest": { "up": [ - { "h": { "en": "Protests spread across the country", "fr": "Les manifestations gagnent tout le pays" }, - "d": { "en": "Police on alert as crowds gather.", "fr": "La police en alerte alors que les foules se rassemblent." } } + { + "h": { "en": "Protests spread across the country", "fr": "Les manifestations gagnent tout le pays" }, + "d": { + "en": "Police on alert as crowds gather.", + "fr": "La police en alerte alors que les foules se rassemblent." + } + } ], "down": [ - { "h": { "en": "Tensions ease in the streets", "fr": "Les tensions retombent dans la rue" }, - "d": { "en": "Protest movements lose steam.", "fr": "Les mouvements de protestation s'essoufflent." } } + { + "h": { "en": "Tensions ease in the streets", "fr": "Les tensions retombent dans la rue" }, + "d": { "en": "Protest movements lose steam.", "fr": "Les mouvements de protestation s'essoufflent." } + } ] }, "armyLoyalty": { "up": [ - { "h": { "en": "Barracks reaffirm their loyalty", "fr": "Les casernes réaffirment leur loyauté" }, - "d": { "en": "Officers pledge allegiance.", "fr": "Les officiers prêtent allégeance." } } + { + "h": { "en": "Barracks reaffirm their loyalty", "fr": "Les casernes réaffirment leur loyauté" }, + "d": { "en": "Officers pledge allegiance.", "fr": "Les officiers prêtent allégeance." } + } ], "down": [ - { "h": { "en": "Unease reported in the barracks", "fr": "Malaise signalé dans les casernes" }, - "d": { "en": "Officers whisper about the leadership.", "fr": "Les officiers murmurent à propos de la direction." } } + { + "h": { "en": "Unease reported in the barracks", "fr": "Malaise signalé dans les casernes" }, + "d": { + "en": "Officers whisper about the leadership.", + "fr": "Les officiers murmurent à propos de la direction." + } + } ] } }, - "var": { "growth": { "up": [ - { "h": { "en": "Growth picks up", "fr": "La croissance repart" }, - "d": { "en": "Statisticians revise forecasts upward.", "fr": "Les statisticiens revoient leurs prévisions à la hausse." } } + { + "h": { "en": "Growth picks up", "fr": "La croissance repart" }, + "d": { + "en": "Statisticians revise forecasts upward.", + "fr": "Les statisticiens revoient leurs prévisions à la hausse." + } + } ], "down": [ - { "h": { "en": "Growth slows", "fr": "La croissance ralentit" }, - "d": { "en": "Forecasts are revised downward.", "fr": "Les prévisions sont revues à la baisse." } } + { + "h": { "en": "Growth slows", "fr": "La croissance ralentit" }, + "d": { "en": "Forecasts are revised downward.", "fr": "Les prévisions sont revues à la baisse." } + } ] }, "unemployment": { "up": [ - { "h": { "en": "Jobless queues lengthen", "fr": "Les files de chômeurs s'allongent" }, - "d": { "en": "Unemployment edges higher.", "fr": "Le chômage progresse." } } + { + "h": { "en": "Jobless queues lengthen", "fr": "Les files de chômeurs s'allongent" }, + "d": { "en": "Unemployment edges higher.", "fr": "Le chômage progresse." } + } ], "down": [ - { "h": { "en": "Unemployment falls", "fr": "Le chômage recule" }, - "d": { "en": "Employment offices report more vacancies.", "fr": "Les agences pour l'emploi signalent plus d'offres." } } + { + "h": { "en": "Unemployment falls", "fr": "Le chômage recule" }, + "d": { + "en": "Employment offices report more vacancies.", + "fr": "Les agences pour l'emploi signalent plus d'offres." + } + } ] }, "inflation": { "up": [ - { "h": { "en": "Prices climb faster", "fr": "Les prix s'envolent" }, - "d": { "en": "Households feel the squeeze at the market.", "fr": "Les ménages ressentent la hausse au marché." } } + { + "h": { "en": "Prices climb faster", "fr": "Les prix s'envolent" }, + "d": { "en": "Households feel the squeeze at the market.", "fr": "Les ménages ressentent la hausse au marché." } + } ], "down": [ - { "h": { "en": "Inflation cools", "fr": "L'inflation se calme" }, - "d": { "en": "Prices stabilise in the shops.", "fr": "Les prix se stabilisent en magasin." } } + { + "h": { "en": "Inflation cools", "fr": "L'inflation se calme" }, + "d": { "en": "Prices stabilise in the shops.", "fr": "Les prix se stabilisent en magasin." } + } ] }, "debtRatio": { "up": [ - { "h": { "en": "Public debt keeps growing", "fr": "La dette publique continue d'augmenter" }, - "d": { "en": "Bond traders watch the deficit.", "fr": "Les opérateurs obligataires surveillent le déficit." } } + { + "h": { "en": "Public debt keeps growing", "fr": "La dette publique continue d'augmenter" }, + "d": { "en": "Bond traders watch the deficit.", "fr": "Les opérateurs obligataires surveillent le déficit." } + } ], "down": [ - { "h": { "en": "Debt burden eases", "fr": "Le poids de la dette s'allège" }, - "d": { "en": "The Treasury reports progress on the deficit.", "fr": "Le Trésor annonce des progrès sur le déficit." } } + { + "h": { "en": "Debt burden eases", "fr": "Le poids de la dette s'allège" }, + "d": { + "en": "The Treasury reports progress on the deficit.", + "fr": "Le Trésor annonce des progrès sur le déficit." + } + } ] } }, - "level": { "unrest.high": [ - { "h": { "en": "Capital braces for unrest", "fr": "La capitale se prépare aux troubles" }, - "d": { "en": "Police leave cancelled as crowds swell.", "fr": "Les congés de la police sont annulés alors que les foules grossissent." } } + { + "h": { "en": "Capital braces for unrest", "fr": "La capitale se prépare aux troubles" }, + "d": { + "en": "Police leave cancelled as crowds swell.", + "fr": "Les congés de la police sont annulés alors que les foules grossissent." + } + } ], "opinion.low": [ - { "h": { "en": "A nation out of patience", "fr": "Une nation à bout de patience" }, - "d": { "en": "The opposition calls for the leader to go.", "fr": "L'opposition réclame le départ du dirigeant." } } + { + "h": { "en": "A nation out of patience", "fr": "Une nation à bout de patience" }, + "d": { "en": "The opposition calls for the leader to go.", "fr": "L'opposition réclame le départ du dirigeant." } + } ], "debt.high": [ - { "h": { "en": "Lenders demand a premium", "fr": "Les prêteurs exigent une prime" }, - "d": { "en": "The Treasury warns of a debt crisis.", "fr": "Le Trésor met en garde contre une crise de la dette." } } + { + "h": { "en": "Lenders demand a premium", "fr": "Les prêteurs exigent une prime" }, + "d": { "en": "The Treasury warns of a debt crisis.", "fr": "Le Trésor met en garde contre une crise de la dette." } + } ], "stability.low": [ - { "h": { "en": "Government on the brink", "fr": "Le gouvernement au bord du gouffre" }, - "d": { "en": "Allies quietly count the votes.", "fr": "Les alliés comptent discrètement les voix." } } + { + "h": { "en": "Government on the brink", "fr": "Le gouvernement au bord du gouffre" }, + "d": { "en": "Allies quietly count the votes.", "fr": "Les alliés comptent discrètement les voix." } + } ], "civilRights.low": [ - { "h": { "en": "Dissent muzzled", "fr": "La contestation muselée" }, - "d": { "en": "Prisons fill as freedoms shrink.", "fr": "Les prisons se remplissent alors que les libertés se réduisent." } } + { + "h": { "en": "Dissent muzzled", "fr": "La contestation muselée" }, + "d": { + "en": "Prisons fill as freedoms shrink.", + "fr": "Les prisons se remplissent alors que les libertés se réduisent." + } + } ], "inflation.high": [ - { "h": { "en": "Prices spiral out of control", "fr": "Les prix s'envolent hors de contrôle" }, - "d": { "en": "Shoppers face another round of rises.", "fr": "Les consommateurs subissent une nouvelle vague de hausses." } } + { + "h": { "en": "Prices spiral out of control", "fr": "Les prix s'envolent hors de contrôle" }, + "d": { + "en": "Shoppers face another round of rises.", + "fr": "Les consommateurs subissent une nouvelle vague de hausses." + } + } ], "deficit.high": [ - { "h": { "en": "Treasury bleeds red ink", "fr": "Le Trésor saigne" }, - "d": { "en": "The budget gap widens to alarming levels.", "fr": "Le déficit budgétaire atteint des niveaux alarmants." } } + { + "h": { "en": "Treasury bleeds red ink", "fr": "Le Trésor saigne" }, + "d": { + "en": "The budget gap widens to alarming levels.", + "fr": "Le déficit budgétaire atteint des niveaux alarmants." + } + } ], "army.low": [ - { "h": { "en": "The army grows restless", "fr": "L'armée s'impatiente" }, - "d": { "en": "The generals' loyalty is in doubt.", "fr": "La loyauté des généraux est mise en doute." } } + { + "h": { "en": "The army grows restless", "fr": "L'armée s'impatiente" }, + "d": { "en": "The generals' loyalty is in doubt.", "fr": "La loyauté des généraux est mise en doute." } + } + ], + "world.slump": [ + { + "h": { "en": "Global slump hits export orders", "fr": "La récession mondiale frappe les commandes à l'export" }, + "d": { + "en": "Trading partners cut back; the Treasury sees receipts fall.", + "fr": "Les partenaires commerciaux freinent ; le Trésor voit ses recettes reculer." + } + }, + { + "h": { "en": "Foreign markets sour on the region", "fr": "Les marchés étrangers se détournent de la région" }, + "d": { + "en": "Economists blame a downturn abroad, not policy at home.", + "fr": "Les économistes accusent la conjoncture mondiale, pas la politique intérieure." + } + } + ], + "world.boom": [ + { + "h": { "en": "World demand lifts the economy", "fr": "La demande mondiale tire l'économie" }, + "d": { + "en": "Exporters report full order books.", + "fr": "Les exportateurs affichent des carnets de commandes pleins." + } + }, + { + "h": { "en": "A tailwind from abroad", "fr": "Un vent favorable venu de l'étranger" }, + "d": { "en": "Global growth is good news for the Treasury.", "fr": "La croissance mondiale réjouit le Trésor." } + } ] } } diff --git a/web/js/engine/cards.js b/web/js/engine/cards.js index c40fa38..57aa04c 100644 --- a/web/js/engine/cards.js +++ b/web/js/engine/cards.js @@ -5,7 +5,8 @@ // 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). +// "deficit" (% of GDP), "q:" (sector quality), "ratio:" (budget / need) +// and "tax:" (rate). import { IND_IDS, VAR_IDS, clamp } from "./state.js"; import { computeFiscal } from "./economy.js"; @@ -20,6 +21,8 @@ function statValue(state, key, fiscal) { if (key === "debt") return fiscal.debtRatio; if (key === "deficit") return fiscal.deficit; if (key.startsWith("q:")) return state.sectors[key.slice(2)]?.quality ?? NaN; + if (key.startsWith("ratio:")) { const s = state.sectors[key.slice(6)]; return s ? s.alloc / s.need : NaN; } + if (key.startsWith("tax:")) return state.economy.taxes[key.slice(4)] ?? NaN; return NaN; // unknown key: never eligible (content tests catch typos) } diff --git a/web/js/engine/economy.js b/web/js/engine/economy.js index 34b0741..0d33728 100644 --- a/web/js/engine/economy.js +++ b/web/js/engine/economy.js @@ -19,6 +19,8 @@ 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); + // Receipts follow the cycle: a slump costs revenue, a boom adds some. + revenue += (bal.fiscal?.growthSens ?? 0) * (e.growth - state.ref.vars.growth); const debtRatio = (e.debt / e.gdp) * 100; const rate = interestRate(debtRatio, bal); @@ -85,4 +87,5 @@ export function setBudget(state, bal, { alloc = {}, taxes = {} } = {}) { export function confirmBudget(state) { state.pending.review = false; + state.risk.emergency = false; } diff --git a/web/js/engine/game.js b/web/js/engine/game.js index a42b9a4..3aed85d 100644 --- a/web/js/engine/game.js +++ b/web/js/engine/game.js @@ -4,6 +4,7 @@ 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 { stepWorld } from "./world.js"; import { stepIndicators, stepVars } from "./indicators.js"; import { checkGameOver } from "./gameover.js"; @@ -43,6 +44,7 @@ export function createGame({ scenario, balance, seed = Date.now(), countryName, sectors, indicators: { ...scenario.indicators }, modifiers: [], + world: { cycle: 0 }, // global business cycle, see world.js flags: {}, cardHistory: [], pendingCard: null, @@ -51,7 +53,8 @@ export function createGame({ scenario, balance, seed = Date.now(), countryName, // 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 + // days in each danger zone; emergency = an unscheduled budget session is open (see advanceDay) + risk: { revolution: 0, coup: 0, impeachment: 0, defaultZone: false, emergency: false, lastEmergency: -999 }, alerts: [], // urgent telegrams waiting to be read, oldest first history: { t: [], series: {} }, log: [], @@ -111,6 +114,7 @@ export function advanceDay(state, bal) { if (isWaiting(state)) return { advanced: false, blocked: "pending", events: null }; applyShifts(state, bal); + stepWorld(state, bal); const fiscal = computeFiscal(state, bal); const devs = computeDevs(state, bal, fiscal); @@ -123,6 +127,7 @@ export function advanceDay(state, bal) { state.day += 1; const events = { weeklyCard: false, review: false, termEnd: false, gameOver: null }; + const alertsBefore = state.alerts.length; const fallen = checkGameOver(state, bal); if (fallen) { state.over = { type: fallen, day: state.day }; @@ -135,7 +140,15 @@ export function advanceDay(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; + if (state.day % bal.time.daysPerQuarter === 0) { + state.pending.review = events.review = true; + state.risk.emergency = false; + } else if (state.alerts.length > alertsBefore && state.day - state.risk.lastEmergency >= bal.gameOver.emergencyCooldown) { + // A new danger warning: the cabinet meets at once, so the player can react before the next quarter. + state.pending.review = events.review = true; + state.risk.emergency = true; + state.risk.lastEmergency = state.day; + } } return { advanced: true, blocked: null, events }; } diff --git a/web/js/engine/gameover.js b/web/js/engine/gameover.js index 3d61869..dba31d9 100644 --- a/web/js/engine/gameover.js +++ b/web/js/engine/gameover.js @@ -43,7 +43,7 @@ export function checkGameOver(state, bal) { } 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 inCoup = (ind.armyLoyalty < g.coup.armyBelow && ind.stability < g.coup.stabilityBelow) || ind.armyLoyalty < (g.coup.armyAlone ?? 0); const inRevolution = ind.unrest > g.revolution.unrestAbove && ind.opinion < g.revolution.opinionBelow; track("impeachment", inImpeachment, "reset"); track("coup", inCoup, 1); diff --git a/web/js/engine/indicators.js b/web/js/engine/indicators.js index 909f93e..fd5e41d 100644 --- a/web/js/engine/indicators.js +++ b/web/js/engine/indicators.js @@ -6,11 +6,17 @@ 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) { +function computeTarget(def, base, group, key, state, devs, bal) { let t = base; + const gain = group === "ind" ? bal.gain ?? 1 : 1; for (const [id, w] of Object.entries(def.sectors ?? {})) { - t += w * (state.sectors[id].quality - state.ref.sectors[id]); + t += gain * w * (state.sectors[id].quality - state.ref.sectors[id]); } + // Going big pays off: extra weight for quality above `from` (excess) or below it (short). + for (const [id, [from, w]] of Object.entries(def.excess ?? {})) t += w * Math.max(0, state.sectors[id].quality - from); + for (const [id, [from, w]] of Object.entries(def.short ?? {})) t -= w * Math.max(0, from - state.sectors[id].quality); + for (const [k, w] of Object.entries(def.world ?? {})) t += w * state.world[k]; + if (def.drift) t += ((def.drift * (bal.driftScale ?? 1)) * state.day) / 365; for (const [id, w] of Object.entries(def.alloc ?? {})) { const s = state.sectors[id]; t += w * (s.alloc / s.need - state.ref.ratio[id]); @@ -28,7 +34,7 @@ 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 target = computeTarget(def, state.ref.vars[id], "var", id, state, devs, bal); const v = state.economy[id]; next[id] = clamp(v + (target - v) / def.tau + nextNoise(state, def.noise), def.min, def.max); } @@ -39,7 +45,7 @@ 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 target = computeTarget(def, state.ref.ind[id], "ind", id, state, devs, bal); const v = state.indicators[id]; next[id] = clamp(v + (target - v) / def.tau + nextNoise(state, def.noise ?? bal.noise.indicator), 0, 100); } diff --git a/web/js/engine/score.js b/web/js/engine/score.js index c710665..76c7ce8 100644 --- a/web/js/engine/score.js +++ b/web/js/engine/score.js @@ -13,12 +13,17 @@ export const METRIC_IDS = [ 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 AVERAGED = ["order", "stability", "civilRights", "opinion", "economy", "hardPower", "softPower", "unrest", "armyLoyalty", "growth", "unemployment", "inflation"]; + +// Averages over the whole term, plus the final debt ratio. With `lastYearShare` the average +// leans on the last 52 weekly samples: the historian judges what you leave behind, so a +// boom bought on credit does not pay for itself. +function termAverages(state, lastYearShare = 0) { 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] ?? []); + for (const id of AVERAGED) { + const all = s[id] ?? []; + m[id] = lastYearShare > 0 ? (1 - lastYearShare) * mean(all) + lastYearShare * mean(all.slice(-52)) : mean(all); } m.debt = s.debtRatio?.at(-1) ?? 0; m.years = state.day / 365; @@ -76,7 +81,7 @@ function meets(entry, m) { // 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); + let score = computeScore(termAverages(state, bal.score.lastYearShare ?? 0), bal); if (state.over && state.over.type !== "term") score = Math.min(score, bal.score.overCap); metrics.score = score; diff --git a/web/js/engine/sectors.js b/web/js/engine/sectors.js index be7f5a8..08d9a93 100644 --- a/web/js/engine/sectors.js +++ b/web/js/engine/sectors.js @@ -7,6 +7,8 @@ import { biasFor } from "./modifiers.js"; export function stepSectors(state, bal, fiscal) { const s = bal.sector; for (const [id, sec] of Object.entries(state.sectors)) { + // Needs grow with population, ageing and prices: standing still buys less each year. + sec.need *= Math.pow(1 + (bal.needGrowth?.[id] ?? 0), 1 / 365); 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); diff --git a/web/js/engine/state.js b/web/js/engine/state.js index c47a382..aca7ab3 100644 --- a/web/js/engine/state.js +++ b/web/js/engine/state.js @@ -1,6 +1,6 @@ // Shared constants and tiny helpers. No game logic here. -export const STATE_VERSION = 1; +export const STATE_VERSION = 2; export const IND_IDS = [ "order", "stability", "civilRights", "opinion", "economy", diff --git a/web/js/engine/validate.js b/web/js/engine/validate.js index 7549130..4f1974a 100644 --- a/web/js/engine/validate.js +++ b/web/js/engine/validate.js @@ -63,6 +63,9 @@ export function restoreState(s, { scenarios, balance, cards }) { 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(); } + // World cycle + if (!isObj(s.world) || !isNum(s.world.cycle, -50, 50)) 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(); @@ -77,6 +80,8 @@ export function restoreState(s, { scenarios, balance, cards }) { 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(); + s.risk.emergency = s.risk.emergency === true; + if (!isNum(s.risk.lastEmergency)) s.risk.lastEmergency = -999; 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 diff --git a/web/js/engine/world.js b/web/js/engine/world.js new file mode 100644 index 0000000..3e149f3 --- /dev/null +++ b/web/js/engine/world.js @@ -0,0 +1,18 @@ +// The world outside the country: a slow business cycle with occasional shocks (global +// slumps, rare booms). It moves growth and inflation, so even a perfect budget meets +// good and bad years. state.world.cycle is roughly -4 (deep global recession) to +4. + +import { clamp } from "./state.js"; +import { nextFloat, nextNoise } from "./rng.js"; + +export function stepWorld(state, bal) { + const w = bal.world; + const s = state.world; + s.cycle -= s.cycle / w.tau; + s.cycle += nextNoise(state, w.noise); + if (nextFloat(state) < w.shockChancePerDay) { + const size = w.shock * (0.6 + 0.8 * nextFloat(state)); + s.cycle += nextFloat(state) < w.boomShare ? size * 0.6 : -size; + } + s.cycle = clamp(s.cycle, -w.max, w.max); +} diff --git a/web/js/i18n/en.json b/web/js/i18n/en.json index 59b18d7..a69d0eb 100644 --- a/web/js/i18n/en.json +++ b/web/js/i18n/en.json @@ -70,8 +70,9 @@ "tax.corporate": "Corporate tax", "tax.vat": "VAT", "ledger.title": "Treasury ledger", + "ledger.emergency": "Emergency session: the cabinet has met after the warning. Changes take effect at once.", "ledger.spending": "Spending, % of GDP", - "ledger.spendingHint": "The tick on each line marks what the sector needs.", + "ledger.spendingHint": "The tick on each line marks what the sector needs. Needs grow a little every year.", "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.", diff --git a/web/js/i18n/fr.json b/web/js/i18n/fr.json index bff4dab..a5ead16 100644 --- a/web/js/i18n/fr.json +++ b/web/js/i18n/fr.json @@ -69,9 +69,10 @@ "tax.income": "Impôt revenu", "tax.corporate": "Impôt sociétés", "tax.vat": "TVA", + "ledger.emergency": "Séance d'urgence : le cabinet s'est réuni après l'alerte. Les changements s'appliquent aussitôt.", "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.spendingHint": "Le repère sur chaque ligne marque le besoin du secteur. Les besoins augmentent un peu chaque année.", "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.", diff --git a/web/js/main.js b/web/js/main.js index 91c0521..0d51764 100644 --- a/web/js/main.js +++ b/web/js/main.js @@ -242,6 +242,7 @@ function devGame() { prepareWeek(); if (s.pendingCard) answerCard(s, balance, cards, nextFloat(s) < 0.5 ? "yes" : "no"); advanceDay(s, balance); + if (params.has("untilAlert") && s.pending.alert) break; // stop on the first danger warning } if (cardsById.has(params.get("card"))) { s.pendingCard = { id: params.get("card"), day: s.day }; diff --git a/web/js/save/codec.js b/web/js/save/codec.js index a427241..b59bd78 100644 --- a/web/js/save/codec.js +++ b/web/js/save/codec.js @@ -43,7 +43,10 @@ export function encodeSave(state) { // 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 const MIGRATIONS = { + // v2 added the world cycle: older saves start it at neutral. + 1: (s) => ({ ...s, version: 2, world: { cycle: 0 } }), +}; export function migrate(state) { if (!Number.isInteger(state?.version)) return { ok: false, error: "format" }; diff --git a/web/js/ui/ledger.js b/web/js/ui/ledger.js index e13d2c9..6f07b38 100644 --- a/web/js/ui/ledger.js +++ b/web/js/ui/ledger.js @@ -73,6 +73,7 @@ export function createLedger(root, scenario, { onConfirm }) {

${t("ledger.title")}

+ ${state.risk.emergency ? `

${t("ledger.emergency")}

` : ""}

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

${sectorRows}
diff --git a/web/js/ui/newspaper.js b/web/js/ui/newspaper.js index ec4af6c..2d74261 100644 --- a/web/js/ui/newspaper.js +++ b/web/js/ui/newspaper.js @@ -19,6 +19,8 @@ const LEVELS = [ ["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], + ["world.slump", (s) => (s.world?.cycle ?? 0) <= -1.8, 1.4], + ["world.boom", (s) => (s.world?.cycle ?? 0) >= 1.8, 1.2], ]; function candidates(state, tpl) {