Refactors dialogue box into a scrolling conversation log. All dialogue (player-NPC and overheard NPC-NPC) flows chronologically, oldest at top. Player response options at the bottom during active conversations. - Entries expire after configurable timeout (equal for all message types) - Walk-away clears options but preserves log entries (fair information) - Per-character name colors from dialogue-theme.yaml (hash-indexed palette) - Overheard lines render at 90% opacity (D-078) - Protocol decode for conversation_events + conversation_ended - GameState fields for conversation_events, conversation_ended, dialogue_response - Mock Mira/Soren NPC-NPC conversation in test snapshot - Also wires #511 debug overlay into main.gd and main.tscn Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
52 lines
1.4 KiB
Plaintext
52 lines
1.4 KiB
Plaintext
[gd_scene load_steps=2 format=3 uid="uid://d4k7g2nxp1h8j"]
|
|
|
|
[ext_resource type="Script" path="res://ui/dialogue_box.gd" id="1_dialogue"]
|
|
|
|
[node name="DialogueBox" type="Control"]
|
|
layout_mode = 3
|
|
anchors_preset = 12
|
|
anchor_top = 1.0
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
grow_horizontal = 2
|
|
grow_vertical = 0
|
|
mouse_filter = 2
|
|
script = ExtResource("1_dialogue")
|
|
|
|
[node name="PanelContainer" type="PanelContainer" parent="."]
|
|
layout_mode = 1
|
|
anchors_preset = 7
|
|
anchor_left = 0.5
|
|
anchor_top = 1.0
|
|
anchor_right = 0.5
|
|
anchor_bottom = 1.0
|
|
offset_left = -320.0
|
|
offset_top = -200.0
|
|
offset_right = 320.0
|
|
grow_horizontal = 2
|
|
grow_vertical = 0
|
|
|
|
[node name="MarginContainer" type="MarginContainer" parent="PanelContainer"]
|
|
layout_mode = 2
|
|
theme_override_constants/margin_left = 20
|
|
theme_override_constants/margin_top = 14
|
|
theme_override_constants/margin_right = 20
|
|
theme_override_constants/margin_bottom = 14
|
|
|
|
[node name="VBoxContainer" type="VBoxContainer" parent="PanelContainer/MarginContainer"]
|
|
layout_mode = 2
|
|
theme_override_constants/separation = 10
|
|
|
|
[node name="DialogueLog" type="RichTextLabel" parent="PanelContainer/MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
size_flags_vertical = 3
|
|
bbcode_enabled = true
|
|
text = ""
|
|
fit_content = false
|
|
scroll_active = true
|
|
scroll_following = true
|
|
|
|
[node name="OptionsContainer" type="VBoxContainer" parent="PanelContainer/MarginContainer/VBoxContainer"]
|
|
layout_mode = 2
|
|
theme_override_constants/separation = 4
|