From d6f2f0e5c71b7f86e6d655774ba37755cb3c1c37 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 24 Jun 2026 14:48:31 +0200 Subject: [PATCH] feat: mood text per scene + Danish translation of Fabius Bile mission MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Mood text field on scenes shown as amber italic read-aloud block above scene description (gated by revealed flag for players) - Scene editor includes Mood / Read-aloud textarea - Scene editor moved full-width below two-column grid - Mission "The Hunt for Fabius Bile" fully translated to Danish ("Jagten på Fabius Bile") with Danish names, descriptions, objectives, complications, checks and mood text for all 10 scenes Co-Authored-By: Claude Sonnet 4.6 --- src/components/MissionTab.jsx | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/src/components/MissionTab.jsx b/src/components/MissionTab.jsx index 534c952..fc1514e 100644 --- a/src/components/MissionTab.jsx +++ b/src/components/MissionTab.jsx @@ -635,6 +635,7 @@ export default function MissionTab({ authedPlayer }) { setSceneEdit({ title: currentScene.title || currentScene.name || '', type: currentScene.type || 'combat', + mood: currentScene.mood || '', description: currentScene.description || currentScene.briefing || currentScene.summary || '', checks: (Array.isArray(currentScene.checks) ? currentScene.checks : []).map(c => ({ ...c })), enemies: (Array.isArray(currentScene.enemies) ? currentScene.enemies : []).map(e => ({ ...e })), @@ -651,6 +652,7 @@ export default function MissionTab({ authedPlayer }) { title: sceneEdit.title.trim() || undefined, name: sceneEdit.title.trim() || undefined, type: sceneEdit.type, + mood: sceneEdit.mood, description: sceneEdit.description, briefing: sceneEdit.description, checks: sceneEdit.checks, @@ -876,6 +878,11 @@ export default function MissionTab({ authedPlayer }) { {/* #2 — scene text gated by revealed flag */} {isGM || sceneRevealed ? ( <> + {currentScene.mood && ( +
+

{currentScene.mood}

+
+ )}

{textForScene(currentScene) || 'No scene text stored.'}

{sceneObjectives.length > 0 && (
@@ -1675,16 +1682,27 @@ export default function MissionTab({ authedPlayer }) {
- +