Server-driven interaction prompt that displays "E - Talk" when near an interactable NPC. Decodes v4 nearby_interactions from snapshot, stores in GameState, renders via InteractionPrompt UI with fade animation. Extensible interface (get_interaction_target/get_selected_verb) for future radial verb menu (v0.2). - Protocol: decode nearby_interactions array with nested VerbOption structs, entity relationship/observation fields, tick_rate in GameTime - GameState: store/clear nearby_interactions per snapshot - SimBridge: test mode generates v4 format with structured verbs - InteractionPrompt: PanelContainer with fade in/out, polls GameState - Tests: 19 new test cases covering protocol, state, sim bridge, UI, encoding - Fixture assertions updated for v4 protocol version Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
42 lines
1.7 KiB
Plaintext
42 lines
1.7 KiB
Plaintext
[gd_scene load_steps=10 format=3 uid="uid://bswrmh7w8dbgm"]
|
|
|
|
[ext_resource type="Script" path="res://scripts/main.gd" id="1_main"]
|
|
[ext_resource type="Script" path="res://scripts/rendering/world_renderer.gd" id="2_world"]
|
|
[ext_resource type="Script" path="res://scripts/rendering/entity_renderer.gd" id="3_entity"]
|
|
[ext_resource type="Script" path="res://scripts/rendering/fog_renderer.gd" id="4_fog"]
|
|
[ext_resource type="Script" path="res://scripts/rendering/tile_renderer.gd" id="5_tile"]
|
|
[ext_resource type="PackedScene" path="res://ui/hud.tscn" id="6_hud"]
|
|
[ext_resource type="PackedScene" path="res://ui/minimap.tscn" id="7_minimap"]
|
|
[ext_resource type="PackedScene" path="res://ui/monologue_display.tscn" id="8_monologue"]
|
|
[ext_resource type="PackedScene" path="res://ui/interaction_prompt.tscn" id="9_prompt"]
|
|
|
|
[node name="Game" type="Node2D"]
|
|
script = ExtResource("1_main")
|
|
|
|
[node name="World" type="Node2D" parent="."]
|
|
script = ExtResource("2_world")
|
|
|
|
[node name="TileMapLayer" type="TileMapLayer" parent="World"]
|
|
script = ExtResource("5_tile")
|
|
|
|
[node name="FogOverlay" type="TileMapLayer" parent="World"]
|
|
script = ExtResource("4_fog")
|
|
|
|
[node name="Entities" type="Node2D" parent="World"]
|
|
script = ExtResource("3_entity")
|
|
|
|
[node name="Camera2D" type="Camera2D" parent="."]
|
|
position_smoothing_enabled = true
|
|
position_smoothing_speed = 6.0
|
|
zoom = Vector2(2, 2)
|
|
|
|
[node name="UILayer" type="CanvasLayer" parent="."]
|
|
|
|
[node name="HUD" parent="UILayer" instance=ExtResource("6_hud")]
|
|
|
|
[node name="Minimap" parent="UILayer" instance=ExtResource("7_minimap")]
|
|
|
|
[node name="MonologueDisplay" parent="UILayer" instance=ExtResource("8_monologue")]
|
|
|
|
[node name="InteractionPrompt" parent="UILayer" instance=ExtResource("9_prompt")]
|