Sprint 24 Signal — three client tickets delivering the player-facing storyteller feedback loop: - #588: Character archetype select screen between New Game and session start. Two-card UI (Smuggler/Detective), keyboard+mouse, ESC cancels. GameState.character_archetype persisted and sent in StartupMessage. PROTOCOL_VERSION bumped to 19. - #590: Triangle crisis event consumer. Decodes triangle_crisis_events from snapshot, fires sfx_monologue_chime_urgent once per triangle per session via AudioManager.CHIME_ACTIVATION. - #592: News ticker HUD element. Scrolling marquee on UILayer, visible only when current_ticker is present in snapshot (Last Shift zone). Zero-arg update_from_state reads from GameState.current_snapshot. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
190 lines
5.4 KiB
Plaintext
190 lines
5.4 KiB
Plaintext
[gd_scene load_steps=2 format=3 uid="uid://char_select_scene_sr"]
|
|
|
|
[ext_resource type="Script" path="res://ui/character_select.gd" id="1_charselect"]
|
|
|
|
; #588: Character archetype select — two-card overlay between New Game and main.tscn.
|
|
; Keyboard: left/right to pick, Enter to confirm, ESC to cancel (no save dir created).
|
|
|
|
[node name="CharacterSelect" type="Control"]
|
|
layout_mode = 3
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
script = ExtResource("1_charselect")
|
|
|
|
[node name="Background" type="ColorRect" parent="."]
|
|
layout_mode = 1
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
color = Color(0.04, 0.04, 0.07, 0.97)
|
|
mouse_filter = 2
|
|
|
|
[node name="TitleLabel" type="Label" parent="."]
|
|
layout_mode = 1
|
|
anchor_left = 0.5
|
|
anchor_right = 0.5
|
|
offset_left = -200.0
|
|
offset_top = 100.0
|
|
offset_right = 200.0
|
|
offset_bottom = 126.0
|
|
grow_horizontal = 2
|
|
text = "Choose your perspective."
|
|
horizontal_alignment = 1
|
|
theme_override_font_sizes/font_size = 16
|
|
theme_override_colors/font_color = Color(0.784, 0.816, 0.878, 1.0)
|
|
|
|
[node name="Cards" type="HBoxContainer" parent="."]
|
|
layout_mode = 1
|
|
anchors_preset = 8
|
|
anchor_left = 0.5
|
|
anchor_top = 0.5
|
|
anchor_right = 0.5
|
|
anchor_bottom = 0.5
|
|
offset_left = -316.0
|
|
offset_top = -110.0
|
|
offset_right = 316.0
|
|
offset_bottom = 140.0
|
|
grow_horizontal = 2
|
|
grow_vertical = 2
|
|
theme_override_constants/separation = 24
|
|
alignment = 1
|
|
|
|
; --- Smuggler card ---
|
|
|
|
[node name="CardSmugglerWrapper" type="Control" parent="Cards"]
|
|
layout_mode = 2
|
|
custom_minimum_size = Vector2(280, 240)
|
|
mouse_filter = 0
|
|
|
|
[node name="CardBorder" type="ColorRect" parent="Cards/CardSmugglerWrapper"]
|
|
layout_mode = 1
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
color = Color(0.18, 0.22, 0.28, 1.0)
|
|
mouse_filter = 2
|
|
|
|
[node name="CardInner" type="ColorRect" parent="Cards/CardSmugglerWrapper"]
|
|
layout_mode = 1
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
offset_left = 2.0
|
|
offset_top = 2.0
|
|
offset_right = -2.0
|
|
offset_bottom = -2.0
|
|
color = Color(0.07, 0.07, 0.10, 1.0)
|
|
mouse_filter = 2
|
|
|
|
[node name="VBox" type="VBoxContainer" parent="Cards/CardSmugglerWrapper/CardInner"]
|
|
layout_mode = 1
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
offset_left = 20.0
|
|
offset_top = 20.0
|
|
offset_right = -20.0
|
|
offset_bottom = -20.0
|
|
theme_override_constants/separation = 10
|
|
|
|
[node name="NameLabel" type="Label" parent="Cards/CardSmugglerWrapper/CardInner/VBox"]
|
|
layout_mode = 2
|
|
text = "Smuggler"
|
|
theme_override_font_sizes/font_size = 26
|
|
theme_override_colors/font_color = Color(0.906, 0.773, 0.278, 1.0)
|
|
|
|
[node name="RoleLabel" type="Label" parent="Cards/CardSmugglerWrapper/CardInner/VBox"]
|
|
layout_mode = 2
|
|
text = "Freight logistics worker — Sova Transit"
|
|
autowrap_mode = 2
|
|
theme_override_font_sizes/font_size = 13
|
|
theme_override_colors/font_color = Color(0.533, 0.565, 0.627, 1.0)
|
|
|
|
[node name="Divider" type="Control" parent="Cards/CardSmugglerWrapper/CardInner/VBox"]
|
|
layout_mode = 2
|
|
custom_minimum_size = Vector2(0, 12)
|
|
|
|
[node name="ToneLabel" type="Label" parent="Cards/CardSmugglerWrapper/CardInner/VBox"]
|
|
layout_mode = 2
|
|
text = "Insider access. Social camouflage. The ring is your daily life."
|
|
autowrap_mode = 2
|
|
theme_override_font_sizes/font_size = 12
|
|
theme_override_colors/font_color = Color(0.416, 0.447, 0.510, 1.0)
|
|
|
|
; --- Detective card ---
|
|
|
|
[node name="CardDetectiveWrapper" type="Control" parent="Cards"]
|
|
layout_mode = 2
|
|
custom_minimum_size = Vector2(280, 240)
|
|
mouse_filter = 0
|
|
|
|
[node name="CardBorder" type="ColorRect" parent="Cards/CardDetectiveWrapper"]
|
|
layout_mode = 1
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
color = Color(0.18, 0.22, 0.28, 1.0)
|
|
mouse_filter = 2
|
|
|
|
[node name="CardInner" type="ColorRect" parent="Cards/CardDetectiveWrapper"]
|
|
layout_mode = 1
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
offset_left = 2.0
|
|
offset_top = 2.0
|
|
offset_right = -2.0
|
|
offset_bottom = -2.0
|
|
color = Color(0.07, 0.07, 0.10, 1.0)
|
|
mouse_filter = 2
|
|
|
|
[node name="VBox" type="VBoxContainer" parent="Cards/CardDetectiveWrapper/CardInner"]
|
|
layout_mode = 1
|
|
anchors_preset = 15
|
|
anchor_right = 1.0
|
|
anchor_bottom = 1.0
|
|
offset_left = 20.0
|
|
offset_top = 20.0
|
|
offset_right = -20.0
|
|
offset_bottom = -20.0
|
|
theme_override_constants/separation = 10
|
|
|
|
[node name="NameLabel" type="Label" parent="Cards/CardDetectiveWrapper/CardInner/VBox"]
|
|
layout_mode = 2
|
|
text = "Detective"
|
|
theme_override_font_sizes/font_size = 26
|
|
theme_override_colors/font_color = Color(0.906, 0.773, 0.278, 1.0)
|
|
|
|
[node name="RoleLabel" type="Label" parent="Cards/CardDetectiveWrapper/CardInner/VBox"]
|
|
layout_mode = 2
|
|
text = "Commission investigator — External assignment"
|
|
autowrap_mode = 2
|
|
theme_override_font_sizes/font_size = 13
|
|
theme_override_colors/font_color = Color(0.533, 0.565, 0.627, 1.0)
|
|
|
|
[node name="Divider" type="Control" parent="Cards/CardDetectiveWrapper/CardInner/VBox"]
|
|
layout_mode = 2
|
|
custom_minimum_size = Vector2(0, 12)
|
|
|
|
[node name="ToneLabel" type="Label" parent="Cards/CardDetectiveWrapper/CardInner/VBox"]
|
|
layout_mode = 2
|
|
text = "Institutional authority. Analytical lattice. You were sent here."
|
|
autowrap_mode = 2
|
|
theme_override_font_sizes/font_size = 12
|
|
theme_override_colors/font_color = Color(0.416, 0.447, 0.510, 1.0)
|
|
|
|
[node name="ConfirmBtn" type="Button" parent="."]
|
|
layout_mode = 1
|
|
anchor_left = 0.5
|
|
anchor_top = 1.0
|
|
anchor_right = 0.5
|
|
anchor_bottom = 1.0
|
|
offset_left = -60.0
|
|
offset_top = -80.0
|
|
offset_right = 60.0
|
|
offset_bottom = -50.0
|
|
grow_horizontal = 2
|
|
grow_vertical = 0
|
|
text = "Begin"
|
|
theme_override_font_sizes/font_size = 15
|
|
theme_override_colors/font_color = Color(0.906, 0.773, 0.278, 1.0)
|