Pawn bodies split out, character select redesigned, and started the dreaded process of correcting the netcode. Players can connect to a shared room, character select, and start a match. They appear correctly differentiated with cameras and map icons that follow them independently. Jankiness with trap ownership is present as is stuff connected to animation. Unit tests for all network functionality required.

This commit is contained in:
2026-03-10 01:41:15 -04:00
parent 984567cf96
commit d128501f7c
52 changed files with 1179 additions and 929 deletions

View File

@@ -0,0 +1,139 @@
[gd_scene load_steps=6 format=3 uid="uid://ck4x56txf676a"]
[ext_resource type="Script" uid="uid://grs3nyom325o" path="res://scripts/character_select.gd" id="1_bow2h"]
[ext_resource type="PackedScene" uid="uid://46rpw0rrd51m" path="res://templates/pawn_display.tscn" id="2_5wdeo"]
[ext_resource type="AudioStream" uid="uid://vcatohtmt8bk" path="res://audio/old-music/16 - Character Select.mp3" id="3_bow2h"]
[ext_resource type="AudioStream" uid="uid://cwmfd8ov3lj1h" path="res://audio/sounds/menu select.wav" id="7_bqp8h"]
[ext_resource type="AudioStream" uid="uid://doelc8yt5snc2" path="res://audio/sounds/Keypad A.wav" id="8_5cdo8"]
[node name="Control" type="Control" groups=["scenes"]]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_bow2h")
[node name="SelectorSpawner" type="MultiplayerSpawner" parent="."]
unique_name_in_owner = true
_spawnable_scenes = PackedStringArray("uid://bvypswoe6diaq")
spawn_path = NodePath("../Panel2/SelectorStart")
[node name="Panel" type="Panel" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="PawnDisplays" type="Control" parent="Panel"]
unique_name_in_owner = true
anchors_preset = 0
offset_left = 94.0
offset_top = 98.0
offset_right = 134.0
offset_bottom = 138.0
[node name="PawnDisplay" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
layout_mode = 0
offset_left = -29.0
offset_top = -65.0
offset_right = 471.0
offset_bottom = 435.0
[node name="PawnDisplay2" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
layout_mode = 0
offset_left = 1258.0
offset_top = -65.0
offset_right = 1758.0
offset_bottom = 435.0
[node name="PawnDisplay3" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
visible = false
layout_mode = 0
offset_left = 36.0
offset_top = 451.0
offset_right = 536.0
offset_bottom = 951.0
[node name="PawnDisplay4" parent="Panel/PawnDisplays" instance=ExtResource("2_5wdeo")]
visible = false
layout_mode = 0
offset_left = 1192.0
offset_top = 456.0
offset_right = 1692.0
offset_bottom = 956.0
[node name="Panel2" type="Control" parent="."]
custom_minimum_size = Vector2(0, 250)
anchors_preset = 0
offset_left = 727.0
offset_top = 98.0
offset_right = 877.0
offset_bottom = 348.0
[node name="PawnPickPortraits" type="GridContainer" parent="Panel2"]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -75.0
offset_top = -114.0
offset_right = 383.0
offset_bottom = 806.0
grow_horizontal = 2
grow_vertical = 2
columns = 3
[node name="SelectorStart" type="Control" parent="Panel2"]
unique_name_in_owner = true
anchors_preset = 0
offset_left = 438.0
offset_top = 40.0
offset_right = 478.0
offset_bottom = 80.0
[node name="Label" type="Label" 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 = -188.5
offset_top = -1060.0
offset_right = 188.5
offset_bottom = -1005.0
grow_horizontal = 2
grow_vertical = 0
theme_override_font_sizes/font_size = 40
text = "CHARACTER SELECT"
horizontal_alignment = 1
[node name="Music" type="AudioStreamPlayer" parent="."]
stream = ExtResource("3_bow2h")
volume_db = -5.0
autoplay = true
bus = &"Music"
[node name="SelectSound" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("7_bqp8h")
[node name="Announcer" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
volume_db = 12.381
bus = &"Voice"
[node name="SwitchSound" type="AudioStreamPlayer" parent="."]
unique_name_in_owner = true
stream = ExtResource("8_5cdo8")
bus = &"SFX"
[connection signal="spawned" from="SelectorSpawner" to="." method="_on_selector_spawner_spawned"]
[connection signal="child_entered_tree" from="Panel2/SelectorStart" to="." method="_on_selector_start_child_entered_tree"]