Move the three shell scenes (SystemDock, NarrationBook, MainWindowShell) from build-everything-in-_ready() to authored .tscn node trees with the theme + type-variations set in the editor, so the layout previews and can be arranged in the Godot editor. Scripts keep only on-load work: @onready node refs, DM-loop wiring, the dock slide, and binding seed ShellState into the fixed authored turn-order tokens + consumable slots. Fixes the dock offset + over-long buttons (now fixed-width DockButtons in a right-anchored menu). Headless probe: root 1920x1080, world/book split 1180/740, dock at the world's right edge — no collapse. Suite 138/138. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
86 lines
2.5 KiB
Plaintext
86 lines
2.5 KiB
Plaintext
[gd_scene load_steps=3 format=3]
|
|
|
|
[ext_resource type="Script" path="res://scripts/ui/shell/narration_book.gd" id="1"]
|
|
[ext_resource type="Theme" path="res://assets/theme/game_theme.tres" id="2"]
|
|
|
|
[node name="NarrationBook" type="Control"]
|
|
layout_mode = 3
|
|
anchors_preset = 0
|
|
offset_right = 740.0
|
|
offset_bottom = 1080.0
|
|
theme = ExtResource("2")
|
|
script = ExtResource("1")
|
|
|
|
[node name="Margin" type="MarginContainer" parent="."]
|
|
layout_mode = 1
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
theme_override_constants/margin_left = 40
|
|
theme_override_constants/margin_top = 34
|
|
theme_override_constants/margin_right = 40
|
|
theme_override_constants/margin_bottom = 34
|
|
|
|
[node name="Col" type="VBoxContainer" parent="Margin"]
|
|
layout_mode = 2
|
|
theme_override_constants/separation = 18
|
|
|
|
[node name="Header" type="Label" parent="Margin/Col"]
|
|
layout_mode = 2
|
|
theme_type_variation = &"Accent"
|
|
text = "ROUND 4 · THE LOWER WARD"
|
|
|
|
[node name="Prose" type="RichTextLabel" parent="Margin/Col"]
|
|
custom_minimum_size = Vector2(660, 320)
|
|
layout_mode = 2
|
|
size_flags_vertical = 3
|
|
bbcode_enabled = true
|
|
text = "The alley stinks of piss and rot. Rain beads on the cobbles and runs black into the gutter."
|
|
fit_content = true
|
|
|
|
[node name="DegradedTag" type="Label" parent="Margin/Col"]
|
|
visible = false
|
|
layout_mode = 2
|
|
theme_type_variation = &"Mono"
|
|
text = "THE MASTER'S VOICE COMES THIN"
|
|
|
|
[node name="Prompt" type="Label" parent="Margin/Col"]
|
|
layout_mode = 2
|
|
theme_type_variation = &"Accent"
|
|
text = "▸ Your turn. What do you do?"
|
|
|
|
[node name="Choice1" type="Button" parent="Margin/Col"]
|
|
layout_mode = 2
|
|
disabled = true
|
|
theme_type_variation = &"ParchmentButton"
|
|
text = "1 · Pay the fence double and keep your hand where he can see it"
|
|
alignment = 0
|
|
|
|
[node name="Choice2" type="Button" parent="Margin/Col"]
|
|
layout_mode = 2
|
|
disabled = true
|
|
theme_type_variation = &"ParchmentButton"
|
|
text = "2 · Draw your blade — he's closer than his guards"
|
|
alignment = 0
|
|
|
|
[node name="Choice3" type="Button" parent="Margin/Col"]
|
|
layout_mode = 2
|
|
disabled = true
|
|
theme_type_variation = &"ParchmentButton"
|
|
text = "3 · Lie — tell him the rest is coming with your dwarf"
|
|
alignment = 0
|
|
|
|
[node name="FreeText" type="Label" parent="Margin/Col"]
|
|
layout_mode = 2
|
|
theme_type_variation = &"Mono"
|
|
text = "⌨ …or describe your own action"
|
|
|
|
[node name="Refire" type="Button" parent="Margin/Col"]
|
|
layout_mode = 2
|
|
theme_type_variation = &"ParchmentButton"
|
|
text = "▸ The Master continues…"
|
|
|
|
[node name="Status" type="Label" parent="Margin/Col"]
|
|
layout_mode = 2
|
|
theme_type_variation = &"Mono"
|