From 590bca1721a8351294643796be4f67eda91e367f Mon Sep 17 00:00:00 2001 From: Brian Fertig Date: Thu, 13 Aug 2026 15:16:43 -0600 Subject: [PATCH] feat(master-vega): add Galactic Council Session ceremony UI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduce a full-screen, click-advanced ceremony (VegaCouncilSession.js) that replays runCouncil()'s result delegate-by-delegate instead of hiding the tally behind the turn-report. Three fixed stages — Roster, Voting, and Verdict — with a persistent 2:3 portrait anchor video, green-screen ticker, live scoreboard with animated bars, and sting-then-loop audio. Key changes: - VegaLogic.js: expose per-voter `voters` breakdown and `pendingSession` flag so the UI can replay the session before the victory check. - MasterOfVegaGame.js: consume `pendingSession` in `runToHumanTurn()` before `state.over`, ensuring a decisive council still gets its ceremony. - VegaTurnReport.js: remove `council` from NOTABLE_TYPES (ceremony handles it); keep `councilRefused` as a distinct war-declaration row. - assetManifest.js / Sounds.js: register video + sting/loop audio cues. - VegaScreens.js: add `D.council` depth value. - verifyMasterOfVega.js: assert voter breakdown consistency and pending session lifecycle. --- assets/images/vega/techfields.png | Bin 0 -> 31088 bytes assets/images/vega/techfields.psd | Bin 0 -> 98084 bytes data/mastervega-artwork.json | 12 +- data/mastervega-rules.json | 187 +++++++++++++------------- src/games/mastervega/VegaGnn.js | 71 +++++++++- src/games/mastervega/VegaGnnScreen.js | 49 +++++++ src/games/mastervega/VegaLogic.js | 6 +- src/games/mastervega/VegaRules.js | 6 + src/games/mastervega/sprites.md | 36 +++-- tools/verifyMasterOfVega.js | 97 ++++++++++--- 10 files changed, 331 insertions(+), 133 deletions(-) create mode 100644 assets/images/vega/techfields.png create mode 100644 assets/images/vega/techfields.psd diff --git a/assets/images/vega/techfields.png b/assets/images/vega/techfields.png new file mode 100644 index 0000000000000000000000000000000000000000..aac0793694d34b4dc9c0bc3cba988d09501f0c98 GIT binary patch literal 31088 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 z%0D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⁣f8-=DeoHHchc9sL8Nu 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 !ev.gnnAnnounced && isGnnStory(rules, ev)); + return state.events.filter((ev) => !ev.gnnAnnounced && isGnnStory(rules, state, ev)); } // Replay buffer for the on-demand HUD button when there's nothing new to @@ -112,6 +127,34 @@ export function describeGnnStory(rules, state, ev) { headline: `${name(ev.empire)} agents caught red-handed targeting ${name(ev.target)}.`, sub: ev.mission === 'sabotage' ? 'Mission: sabotage.' : 'Mission: technology theft.', }; + // A SUCCESSFUL mission, unlike spyCaught above, never names a culprit — + // `attributed` is only true when the viewing human IS the perpetrator + // (isGnnStory's own contact/attitude gate is what decides whether a true + // third party ever sees this at all; the victim always does, same + // anonymous copy as a bystander since even the victim's own GNN never + // outs the thief — VegaTurnReport.js's ticker log is where the victim's + // *personal* briefing already names them in full). + case 'sabotage': { + const attributed = ev.empire === state.humanIndex; + return { + type: ev.type, kind: 'espionageResult', accent: 'espionage', attributed, + perpetrator: ev.empire, victim: ev.target, + headline: attributed + ? `${name(ev.empire)} agents sabotage ${name(ev.target)}'s colony, destroying ${ev.factoriesLost} factories and ${ev.defenseLost} defense.` + : `${name(ev.target)} report a colony crippled by an unknown saboteur.`, + }; + } + case 'techStolen': { + const attributed = ev.empire === state.humanIndex; + const techName = rules.techs[ev.techId]?.name ?? 'a technology'; + return { + type: ev.type, kind: 'espionageResult', accent: 'espionage', attributed, + perpetrator: ev.empire, victim: ev.target, techId: ev.techId, + headline: attributed + ? `${name(ev.empire)} agents successfully steal ${techName} from ${name(ev.target)}.` + : `${name(ev.target)} believe their technology '${techName}' has been stolen.`, + }; + } default: return { type: ev.type, kind: 'unknown', accent: 'tech', headline: ev.type }; } } @@ -247,6 +290,16 @@ const ESPIONAGE_LINES = [ 'Sources confirm {perp} spies caught attempting {mission} against {victim}.', 'Word from Galactic Security: {perp} agents apprehended mid-{mission} against {victim}.', ]; +const ESPIONAGE_SUCCESS_LINES = [ + 'This just in, {perp} agents strike a covert blow against {victim}.', + 'Breaking: {victim} left reeling after a covert operation by {perp}.', + 'Sources confirm {perp} intelligence services scored a hit against {victim} tonight.', +]; +const ESPIONAGE_RUMOR_LINES = [ + 'Rumors swirl tonight of an unexplained security breach in {victim} space.', + 'Word on the street: {victim} suffered a covert attack of unknown origin.', + 'Sources close to {victim} report foul play, though no culprit has been named.', +]; const RANKING_LINES = { population: [ 'This just in, {leader} population reaches new galactic heights at {value}.', @@ -315,6 +368,10 @@ function anchorLineForStory(rules, state, desc) { const mission = desc.mission === 'sabotage' ? 'sabotage' : 'technology theft'; return pickLine(ESPIONAGE_LINES, { perp: empName(desc.perpetrator), victim: empName(desc.victim), mission }); } + case 'espionageResult': { + const vars = { perp: empName(desc.perpetrator), victim: empName(desc.victim) }; + return pickLine(desc.attributed ? ESPIONAGE_SUCCESS_LINES : ESPIONAGE_RUMOR_LINES, vars); + } default: return desc.headline ?? ''; } } diff --git a/src/games/mastervega/VegaGnnScreen.js b/src/games/mastervega/VegaGnnScreen.js index bf6d3c3..f1124a7 100644 --- a/src/games/mastervega/VegaGnnScreen.js +++ b/src/games/mastervega/VegaGnnScreen.js @@ -250,6 +250,54 @@ function renderEspionageStory(scene, rules, state, art, container, desc) { addHeadline(scene, container, cy + size / 2 + 116, desc.sub, '#ff9fd8', '20px'); } +// A SUCCESSFUL sabotage/theft — unlike renderEspionageStory above (a CAUGHT +// spy, perpetrator named and shamed), the culprit is never shown here except +// when the viewing human IS the culprit (desc.attributed). Anonymous case +// reuses `renderTerritoryStory`'s single-portrait-plus-vignette read but with +// a "?" mark standing in for the unknown hand behind it, rather than an +// attacker portrait. +function renderEspionageResultStory(scene, rules, state, art, container, desc) { + const color = STORY_COLORS.espionage; + const victim = state.empires[desc.victim]; + + if (desc.attributed) { + const perp = state.empires[desc.perpetrator]; + const size = 380; + const cy = 70 + size / 2; + const leftCx = 60 + size / 2; + const rightCx = RIGHT_W - 60 - size / 2; + addPortraitBlock(scene, rules, art, container, leftCx, cy, size, color, perp.speciesId, perp.name, perp.color); + addPortraitBlock(scene, rules, art, container, rightCx, cy, size, color, victim.speciesId, victim.name, victim.color); + const g = scene.add.graphics(); + g.lineStyle(4, color, 0.85); + g.lineBetween(leftCx + size / 2, cy, rightCx - size / 2, cy); + container.add(g); + const verb = scene.add.text((leftCx + rightCx) / 2, cy, desc.type === 'sabotage' ? 'SABOTAGED' : 'STOLEN', { + fontFamily: FONT, fontSize: '24px', color: hex(color), fontStyle: 'bold', + }).setOrigin(0.5); + container.add(verb); + addHeadline(scene, container, cy + size / 2 + 70, desc.headline); + return; + } + + const size = 420; + const cx = RIGHT_W / 2; + const cy = 60 + size / 2; + storyFrame(scene, container, cx - size / 2, cy - size / 2, size, size, color); + const portrait = makeSpeciesPortrait(scene, rules, art, victim.speciesId, cx, cy, size - 20); + container.add(portrait); + container.add(scene.add.rectangle(cx, cy, size - 20, size - 20, 0x000000, 0.35)); + container.add(scene.add.text(cx, cy + size / 2 + 16, victim.name, { + fontFamily: FONT, fontSize: '22px', color: victim.color, + }).setOrigin(0.5, 0)); + // The unknown culprit — a stark "?" in the corner rather than an attacker + // portrait, since there's nobody to name. + container.add(scene.add.text(cx + size / 2 - 34, cy - size / 2 + 34, '?', { + fontFamily: FONT, fontSize: '52px', color: hex(color), fontStyle: 'bold', + }).setOrigin(0.5)); + addHeadline(scene, container, cy + size / 2 + 70, desc.headline, '#c7d3e0'); +} + function renderUnknownStory(scene, rules, state, art, container, desc) { addHeadline(scene, container, RIGHT_H / 2 - 20, desc.headline ?? 'Unknown event.'); } @@ -259,6 +307,7 @@ const STORY_RENDERERS = { tech: renderTechStory, territory: renderTerritoryStory, espionage: renderEspionageStory, + espionageResult: renderEspionageResultStory, unknown: renderUnknownStory, }; diff --git a/src/games/mastervega/VegaLogic.js b/src/games/mastervega/VegaLogic.js index 92bdddc..871849b 100644 --- a/src/games/mastervega/VegaLogic.js +++ b/src/games/mastervega/VegaLogic.js @@ -1016,6 +1016,10 @@ function runEspionage(rules, state, e) { return; } + // A SUCCESSFUL mission carries no attitude penalty (Brian's ask) — nobody + // publicly knows who did it (see VegaGnn.js's `attributed` flag), so there + // is nobody for the victim to be angry AT. Getting CAUGHT above is the one + // espionage outcome that still costs relations, since that one names names. if (mission === 'sabotage') { const targetColonies = empireColonies(state, target.idx); if (!targetColonies.length) return; @@ -1029,7 +1033,6 @@ function runEspionage(rules, state, e) { type: 'sabotage', empire: e, target: target.idx, starIdx: colony.starIdx, factoriesLost, defenseLost, turn: state.turn, }); - target.attitude[e] = Math.max(-100, Math.min(100, (target.attitude[e] ?? 0) - cfg.sabotageAttitudePenalty)); return; } @@ -1038,7 +1041,6 @@ function runEspionage(rules, state, e) { const tech = stealable[randInt(state, stealable.length)]; grantTech(rules, state, e, tech.id, 'espionage'); pushEvent(state, { type: 'techStolen', empire: e, target: target.idx, techId: tech.id, turn: state.turn }); - target.attitude[e] = Math.max(-100, Math.min(100, (target.attitude[e] ?? 0) - 8)); } function recomputeTotals(rules, state) { diff --git a/src/games/mastervega/VegaRules.js b/src/games/mastervega/VegaRules.js index 3d3512b..abb7ee0 100644 --- a/src/games/mastervega/VegaRules.js +++ b/src/games/mastervega/VegaRules.js @@ -33,6 +33,12 @@ export function compileRules(json) { }; const techFields = byId(json.techFields, 'techField'); + // Field icons live on their own sheet (data/mastervega-artwork.json's + // "techfields", split from the individual-tech "techicons" sheet), so + // validated the same way techs' own iconFrame is below. + for (const f of json.techFields) { + need(Number.isInteger(f.iconFrame) && f.iconFrame >= 0, `techField ${f.id} bad iconFrame`); + } const techs = byId(json.techs, 'tech'); const hulls = byId(json.hulls, 'hull'); const buildings = byId(json.buildings, 'building'); diff --git a/src/games/mastervega/sprites.md b/src/games/mastervega/sprites.md index b69f2c0..8f12500 100644 --- a/src/games/mastervega/sprites.md +++ b/src/games/mastervega/sprites.md @@ -295,19 +295,39 @@ Enrichment Facility. --- -## 7. `techicons` — ⬜ `assets/images/vega/techicons.png` +## 7a. `techfields` — ⬜ `assets/images/vega/techfields.png` | | | |---|---| -| Sheet size | **480 × 336** | +| Sheet size | **144 × 96** | | Frame | **48 × 48** | -| Grid | 10 cols × 7 rows = 70 frames | +| Grid | 3 cols × 2 rows = 6 frames | -- Frames **0–5**: the six tech *fields* — Computers, Construction, Force Fields, - Planetology, Propulsion, Weapons. -- Frames **6–65**: the sixty individual techs, in the order they appear in - `data/mastervega-rules.json` (`techs[].iconFrame`). -- Frames 66–69: spare. +One frame per tech *field* (`techFields[].iconFrame`), rules order: Computers, +Construction, Force Fields, Planetology, Propulsion, Weapons. Exact fit, no +spares. + +Split out of the old combined `techicons` sheet (§7b) so the six field icons +— larger, simpler glyphs meant to read at a glance on the research screen — +can be painted and sized independently of the ~90 individual tech icons. +Nothing in the game draws a field icon yet; this sheet exists for whenever +that lands. + +--- + +## 7b. `techicons` — ⬜ `assets/images/vega/techicons.png` + +| | | +|---|---| +| Sheet size | **480 × 480** | +| Frame | **48 × 48** | +| Grid | 10 cols × 10 rows = 100 frames | + +One frame per individual tech (`techs[].iconFrame`), 0–90, in the order techs +appear in `data/mastervega-rules.json` — the original 60 plus two later +MOO1-branching passes. 91–99 spare (the tech list has grown once already; +expect it to again). Drawn today by `VegaGnnScreen.js`'s tech-breakthrough +story page. --- diff --git a/tools/verifyMasterOfVega.js b/tools/verifyMasterOfVega.js index 464b4c2..fd6cefc 100644 --- a/tools/verifyMasterOfVega.js +++ b/tools/verifyMasterOfVega.js @@ -103,6 +103,15 @@ section('1. Rules integrity'); const techCap = techSheet.cols * techSheet.rows; check('tech icon frames fit the sheet', Math.max(...techFrames) < techCap, `max ${Math.max(...techFrames)} of ${techCap}`); + // Field icons split onto their own sheet (data/mastervega-artwork.json's + // "techfields") — same shape checks as the tech icons above. + const fieldFrames = RULES.techFieldList.map((f) => f.iconFrame); + check('tech field icon frames unique', new Set(fieldFrames).size === fieldFrames.length); + const fieldSheet = artJson.sheets.techfields; + const fieldCap = fieldSheet.cols * fieldSheet.rows; + check('tech field icon frames fit their own sheet', Math.max(...fieldFrames) < fieldCap, + `max ${Math.max(...fieldFrames)} of ${fieldCap}`); + check('tech field icons and tech icons are on separate sheets', fieldSheet.key !== techSheet.key); const buildFrames = RULES.buildingList.map((b) => b.frame); check('building frames unique', new Set(buildFrames).size === buildFrames.length); check('building frames fit the sheet', @@ -2736,44 +2745,70 @@ section('7b. Galactic News Network'); { // --- classification: isGnnStory / pendingGnnStories, hand-built events so // every branch (research+headline, espionage-sourced, non-headline, - // silent-sabotage, spyCaught, already-announced) is exercised directly - // rather than waiting for a soak to happen to produce one of each. + // attributed/anonymous sabotage+theft, spyCaught, already-announced) is + // exercised directly rather than waiting for a soak to happen to produce + // one of each. { const headlineTech = 'lasercannon'; // gnnHeadline: true, tier 0 weapons const plainTech = 'battlescanner'; // not flagged check('fixture headline tech is actually flagged', RULES.techs[headlineTech]?.gnnHeadline === true); check('fixture plain tech is not flagged', !RULES.techs[plainTech]?.gnnHeadline); + // humanIndex 0. Empire 3 is a bystander the human knows and likes, 4 a + // bystander the human knows and despises, 5 a bystander never met at + // all — exercises isGnnStory's contact+attitude gate for a successful + // mission that doesn't touch the human directly. + const fakeState = { + humanIndex: 0, + empires: [{ idx: 0, contacted: { 3: true, 4: true }, attitude: { 3: 10, 4: -80 } }], + events: [], + }; + const evResearchHeadline = { type: 'techDone', empire: 0, techId: headlineTech, source: 'research' }; const evEspionageHeadline = { type: 'techDone', empire: 0, techId: headlineTech, source: 'espionage' }; const evResearchPlain = { type: 'techDone', empire: 0, techId: plainTech, source: 'research' }; - const evSabotage = { type: 'sabotage', empire: 0, target: 1, starIdx: 0 }; - const evTechStolen = { type: 'techStolen', empire: 0, target: 1, techId: headlineTech }; + const evSabotageMine = { type: 'sabotage', empire: 0, target: 1, starIdx: 0, factoriesLost: 2, defenseLost: 3 }; + const evTechStolenMine = { type: 'techStolen', empire: 0, target: 1, techId: headlineTech }; + const evTechStolenVictimIsMe = { type: 'techStolen', empire: 1, target: 0, techId: headlineTech }; + const evTechStolenBystanderFriendly = { type: 'techStolen', empire: 1, target: 3, techId: headlineTech }; + const evTechStolenBystanderHostile = { type: 'techStolen', empire: 1, target: 4, techId: headlineTech }; + const evTechStolenBystanderUnknown = { type: 'techStolen', empire: 1, target: 5, techId: headlineTech }; const evSpyCaught = { type: 'spyCaught', empire: 0, target: 1, mission: 'sabotage' }; const evPeace = { type: 'peace', empire: 0, other: 1 }; const evWarAlreadyAnnounced = { type: 'warDeclared', empire: 0, other: 1, gnnAnnounced: true }; - check('research-sourced headline tech is a GNN story', Gnn.isGnnStory(RULES, evResearchHeadline)); + check('research-sourced headline tech is a GNN story', Gnn.isGnnStory(RULES, fakeState, evResearchHeadline)); check('espionage-sourced headline tech is NOT a GNN story (nobody can publicly name the thief\'s target)', - !Gnn.isGnnStory(RULES, evEspionageHeadline)); - check('research-sourced non-headline tech is NOT a GNN story', !Gnn.isGnnStory(RULES, evResearchPlain)); - check('a successful sabotage is never a GNN story (silent theft is unattributable)', - !Gnn.isGnnStory(RULES, evSabotage)); - check('a successful tech theft is never a GNN story', !Gnn.isGnnStory(RULES, evTechStolen)); - check('a caught spy ("exposed") is a GNN story', Gnn.isGnnStory(RULES, evSpyCaught)); - check('peace is a GNN story', Gnn.isGnnStory(RULES, evPeace)); + !Gnn.isGnnStory(RULES, fakeState, evEspionageHeadline)); + check('research-sourced non-headline tech is NOT a GNN story', !Gnn.isGnnStory(RULES, fakeState, evResearchPlain)); + check('the player\'s own successful sabotage IS a GNN story, attributed to them', + Gnn.isGnnStory(RULES, fakeState, evSabotageMine)); + check('the player\'s own successful tech theft IS a GNN story, attributed to them', + Gnn.isGnnStory(RULES, fakeState, evTechStolenMine)); + check('the player being victimized IS a GNN story regardless of contact/attitude', + Gnn.isGnnStory(RULES, fakeState, evTechStolenVictimIsMe)); + check('a bystander in contact and on decent terms with the victim hears the rumor', + Gnn.isGnnStory(RULES, fakeState, evTechStolenBystanderFriendly)); + check('a bystander hostile/cold toward the victim does not hear the rumor', + !Gnn.isGnnStory(RULES, fakeState, evTechStolenBystanderHostile)); + check('a bystander with no contact with the victim does not hear the rumor', + !Gnn.isGnnStory(RULES, fakeState, evTechStolenBystanderUnknown)); + check('a caught spy ("exposed") is a GNN story', Gnn.isGnnStory(RULES, fakeState, evSpyCaught)); + check('peace is a GNN story', Gnn.isGnnStory(RULES, fakeState, evPeace)); - const fakeState = { - events: [ - evResearchHeadline, evEspionageHeadline, evResearchPlain, evSabotage, - evTechStolen, evSpyCaught, evPeace, evWarAlreadyAnnounced, - ], - }; + fakeState.events = [ + evResearchHeadline, evEspionageHeadline, evResearchPlain, evSabotageMine, evTechStolenMine, + evTechStolenVictimIsMe, evTechStolenBystanderFriendly, evTechStolenBystanderHostile, + evTechStolenBystanderUnknown, evSpyCaught, evPeace, evWarAlreadyAnnounced, + ]; const pending = Gnn.pendingGnnStories(RULES, fakeState); check('pendingGnnStories excludes an already-gnnAnnounced event', !pending.includes(evWarAlreadyAnnounced)); + const expectedPending = [ + evResearchHeadline, evSabotageMine, evTechStolenMine, evTechStolenVictimIsMe, + evTechStolenBystanderFriendly, evSpyCaught, evPeace, + ]; check('pendingGnnStories returns exactly the expected set', - pending.length === 3 && pending.includes(evResearchHeadline) - && pending.includes(evSpyCaught) && pending.includes(evPeace), + pending.length === expectedPending.length && expectedPending.every((e) => pending.includes(e)), `got ${pending.length}: ${pending.map((e) => e.type).join(',')}`); } @@ -2819,6 +2854,10 @@ section('7b. Galactic News Network'); { type: 'eliminated', empire: 1, attacker: 0 }, { type: 'eliminated', empire: 1, attacker: -1 }, { type: 'spyCaught', empire: 0, target: 1, mission: 'sabotage' }, + { type: 'sabotage', empire: 0, target: 1, starIdx: 0, factoriesLost: 2, defenseLost: 3 }, + { type: 'sabotage', empire: 1, target: 0, starIdx: 0, factoriesLost: 2, defenseLost: 3 }, + { type: 'techStolen', empire: 0, target: 1, techId: 'lasercannon' }, + { type: 'techStolen', empire: 1, target: 0, techId: 'lasercannon' }, ]; for (const ev of sampleEvents) { const desc = Gnn.describeGnnStory(RULES, stD, ev); @@ -2830,6 +2869,18 @@ section('7b. Galactic News Network'); check('describeGnnStory names the attacker when known', Gnn.describeGnnStory(RULES, stD, { type: 'eliminated', empire: 1, attacker: 0 }) .headline.includes(stD.empires[0].name)); + + // A successful mission's headline names the actor ONLY when it was + // attributed to the viewing human — never the actual perpetrator when it + // wasn't (Brian's ask: "no information on who was responsible"). + const mineTheft = Gnn.describeGnnStory(RULES, stD, { type: 'techStolen', empire: 0, target: 1, techId: 'lasercannon' }); + const othersTheft = Gnn.describeGnnStory(RULES, stD, { type: 'techStolen', empire: 1, target: 0, techId: 'lasercannon' }); + check('a mission the player carried out is marked attributed', mineTheft.attributed === true); + check('a mission the player carried out names the player as the actor', + mineTheft.headline.includes(stD.empires[0].name)); + check('a mission carried out against the player is NOT marked attributed', othersTheft.attributed === false); + check('a mission carried out against the player never names the actual perpetrator', + !othersTheft.headline.includes(stD.empires[1].name)); } // --- anchorLine: the green-screen ticker narration under GNN's anchor @@ -2854,6 +2905,10 @@ section('7b. Galactic News Network'); { type: 'eliminated', empire: 1, attacker: -1 }, { type: 'spyCaught', empire: 0, target: 1, mission: 'sabotage' }, { type: 'spyCaught', empire: 0, target: 1, mission: 'steal' }, + { type: 'sabotage', empire: 0, target: 1, starIdx: 0, factoriesLost: 2, defenseLost: 3 }, + { type: 'sabotage', empire: 1, target: 0, starIdx: 0, factoriesLost: 2, defenseLost: 3 }, + { type: 'techStolen', empire: 0, target: 1, techId: 'lasercannon' }, + { type: 'techStolen', empire: 1, target: 0, techId: 'lasercannon' }, ]; for (const ev of sampleEvents) { const desc = Gnn.describeGnnStory(RULES, stD, ev); @@ -3359,7 +3414,7 @@ section('10. AI self-play soak'); for (const g of games) { for (const ev of g.st.events) { if (ev.type === 'lastColony') lastColonyCount += 1; - if (!Gnn.isGnnStory(RULES, ev)) continue; + if (!Gnn.isGnnStory(RULES, g.st, ev)) continue; storyEventCount += 1; try { const desc = Gnn.describeGnnStory(RULES, g.st, ev);