feat: Implement initial main game scene with gridmap, player, and core managers.

This commit is contained in:
Yogi Wiguna
2026-03-12 12:30:29 +08:00
parent 412e7bdcdd
commit 3853962e4a
7 changed files with 1892 additions and 248 deletions
-112
View File
@@ -417,7 +417,6 @@ func _process(delta):
if multiplayer.is_server() and GameStateManager.is_game_started():
if TurnManager.turn_based_mode:
rpc("sync_turn_index", TurnManager.current_turn_index)
update_all_players_goals()
_connection_check_timer += delta
if _connection_check_timer >= 5.0:
@@ -493,9 +492,6 @@ func _setup_host_game():
rpc("sync_preset_goals", GoalManager.preset_goals)
# Update the goals UI immediately for the host
var panel = $AllPlayerGoals.get_child(0)
panel.visible = true
_update_player_goals_ui(0, host_goals)
ui_manager.update_playerboard_ui()
# Set goals for lobby client players
@@ -1281,28 +1277,7 @@ func _deferred_set_player_goals(player_id: int, goals: Array):
var player = get_node_or_null(str(player_id))
if player and player.race_manager:
player.goals = goals.duplicate()
# Update the goals UI for all clients
_update_goals_ui_for_player(player_id, goals)
func _update_goals_ui_for_player(player_id: int, goals: Array):
# Find the player index among all players
var all_players = get_tree().get_nodes_in_group("Players")
all_players.sort_custom(func(a, b):
var a_id = int(String(a.name).get_slice("@", 0))
var b_id = int(String(b.name).get_slice("@", 0))
return a_id < b_id
)
var player_idx = -1
for i in range(all_players.size()):
if all_players[i].name == str(player_id):
player_idx = i
break
# Changed >= 0 to include index 0 (host player)
if player_idx != -1 and player_idx < $AllPlayerGoals.get_child_count():
$AllPlayerGoals.get_child(player_idx).visible = true
_update_player_goals_ui(player_idx, goals)
@rpc("any_peer", "call_local")
func sync_playerboard(player_id: int, new_playerboard: Array):
@@ -1314,76 +1289,9 @@ func sync_playerboard(player_id: int, new_playerboard: Array):
# Update UI for local player
if player_id == multiplayer.get_unique_id() and GameStateManager.local_player_character:
ui_manager.update_playerboard_ui()
update_all_players_boards()
# =============================================================================
# UI Update Functions
# =============================================================================
func update_all_players_goals():
if not GameStateManager.is_game_started():
return
var all_players = get_tree().get_nodes_in_group("Players")
all_players.sort_custom(func(a, b):
var a_id = int(String(a.name).get_slice("@", 0))
var b_id = int(String(b.name).get_slice("@", 0))
return a_id < b_id
)
for i in range($AllPlayerGoals.get_child_count()):
$AllPlayerGoals.get_child(i).visible = false
var max_panels = $AllPlayerGoals.get_child_count()
for i in range(min(all_players.size(), max_panels)):
var player = all_players[i]
if player and player.goals.size() > 0:
$AllPlayerGoals.get_child(i).visible = true
_update_player_goals_ui(i, player.goals)
func _update_player_goals_ui(player_idx: int, goals: Array):
if player_idx < 0 or player_idx >= $AllPlayerGoals.get_child_count():
return
var panel = $AllPlayerGoals.get_child(player_idx)
if not panel.has_node("MarginContainer/Playergoals"):
return
var goals_grid = panel.get_node("MarginContainer/Playergoals")
for slot_idx in range(9):
if slot_idx >= goals_grid.get_child_count():
break
var slot = goals_grid.get_child(slot_idx)
var goal_value = goals[slot_idx] if slot_idx < goals.size() else -1
for tile_name in ["TileHeart", "TileDiamond", "TileStar", "TileCoin"]:
if slot.has_node(tile_name):
slot.get_node(tile_name).hide()
match goal_value:
7:
if slot.has_node("TileHeart"):
slot.get_node("TileHeart").show()
8:
if slot.has_node("TileDiamond"):
slot.get_node("TileDiamond").show()
9:
if slot.has_node("TileStar"):
slot.get_node("TileStar").show()
10:
if slot.has_node("TileCoin"):
slot.get_node("TileCoin").show()
func update_all_players_boards():
if not GameStateManager.is_game_started():
return
var all_players = get_tree().get_nodes_in_group("Players")
var all_player_boards = $AllPlayerBoards
# Update boards (simplified version - full implementation would mirror original)
pass
# =============================================================================
# Connection Verification
@@ -1502,26 +1410,6 @@ func create_specific_player(data: Dictionary):
if is_local_player:
ui_manager.update_playerboard_ui()
# Update goals UI for this player - use direct panel update
if goals_to_set.size() > 0:
# Find the correct panel index for this player
var all_players = get_tree().get_nodes_in_group("Players")
all_players.sort_custom(func(a, b):
var a_id = int(String(a.name).get_slice("@", 0))
var b_id = int(String(b.name).get_slice("@", 0))
return a_id < b_id
)
var player_idx = -1
for i in range(all_players.size()):
var player_name_id = int(String(all_players[i].name).get_slice("@", 0))
if player_name_id == peer_id:
player_idx = i
break
if player_idx != -1 and player_idx < $AllPlayerGoals.get_child_count():
$AllPlayerGoals.get_child(player_idx).visible = true
_update_player_goals_ui(player_idx, goals_to_set)
# =============================================================================
# Grid Item Randomization
-100
View File
@@ -89,12 +89,6 @@ end_item = 3
immutable_items = Array[int]([4])
metadata/_editor_floor_ = Vector3(0, 0, 0)
[node name="Camera3D" type="Camera3D" parent="." unique_id=1200003163]
transform = Transform3D(1, 0, 0, 0, 0.422618, 0.906308, 0, -0.906308, 0.422618, 7, 22.925, 18.4489)
environment = ExtResource("4_ky38j")
current = true
fov = 35.5
[node name="Camera3D200" type="Camera3D" parent="." unique_id=1763366951]
transform = Transform3D(1, 0, 0, 0, 0.5077037, 0.86153173, 0, -0.86153173, 0.5077037, 7, 32.3, 25.8)
environment = ExtResource("4_ky38j")
@@ -1781,96 +1775,6 @@ custom_minimum_size = Vector2(0, 40)
layout_mode = 2
text = "Back"
[node name="SettingsPanel" type="CanvasLayer" parent="." unique_id=268064562]
process_mode = 3
layer = 11
visible = false
[node name="Background" type="ColorRect" parent="SettingsPanel" unique_id=1148993432]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.8)
[node name="Panel" type="PanelContainer" parent="SettingsPanel" unique_id=1418717329]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -200.0
offset_top = -200.0
offset_right = 200.0
offset_bottom = 200.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBox" type="VBoxContainer" parent="SettingsPanel/Panel" unique_id=449477630]
layout_mode = 2
theme_override_constants/separation = 12
alignment = 1
[node name="Title" type="Label" parent="SettingsPanel/Panel/VBox" unique_id=1939206128]
layout_mode = 2
theme_override_font_sizes/font_size = 22
text = "Settings"
horizontal_alignment = 1
[node name="Spacer" type="Control" parent="SettingsPanel/Panel/VBox" unique_id=426750898]
custom_minimum_size = Vector2(0, 10)
layout_mode = 2
[node name="TouchHeader" type="Label" parent="SettingsPanel/Panel/VBox" unique_id=1095783125]
layout_mode = 2
theme_override_font_sizes/font_size = 16
text = "Touch Controls"
[node name="ButtonSizeRow" type="HBoxContainer" parent="SettingsPanel/Panel/VBox" unique_id=1573503465]
layout_mode = 2
[node name="Label" type="Label" parent="SettingsPanel/Panel/VBox/ButtonSizeRow" unique_id=1996113172]
layout_mode = 2
size_flags_horizontal = 3
text = "Button Size"
[node name="ButtonSizeSlider" type="HSlider" parent="SettingsPanel/Panel/VBox/ButtonSizeRow" unique_id=1536868944]
custom_minimum_size = Vector2(150, 0)
layout_mode = 2
min_value = 50.0
max_value = 120.0
value = 70.0
[node name="OpacityRow" type="HBoxContainer" parent="SettingsPanel/Panel/VBox" unique_id=494509398]
layout_mode = 2
[node name="Label" type="Label" parent="SettingsPanel/Panel/VBox/OpacityRow" unique_id=252128874]
layout_mode = 2
size_flags_horizontal = 3
text = "Button Opacity"
[node name="OpacitySlider" type="HSlider" parent="SettingsPanel/Panel/VBox/OpacityRow" unique_id=1673848529]
custom_minimum_size = Vector2(150, 0)
layout_mode = 2
max_value = 1.0
step = 0.1
value = 0.7
[node name="JoystickToggle" type="CheckButton" parent="SettingsPanel/Panel/VBox" unique_id=674311321]
layout_mode = 2
button_pressed = true
text = "Enable Virtual Joystick"
[node name="Spacer2" type="Control" parent="SettingsPanel/Panel/VBox" unique_id=166051520]
custom_minimum_size = Vector2(0, 15)
layout_mode = 2
[node name="BackBtn" type="Button" parent="SettingsPanel/Panel/VBox" unique_id=1290117622]
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
text = "Back"
[node name="ArenaBG" type="Sprite3D" parent="." unique_id=2070634860]
transform = Transform3D(4, 0, 0, 0, 1.8291987, 3.557251, 0, -3.557251, 1.8291987, 6.109789, -30, -4)
texture = ExtResource("37_fuf3a")
@@ -1882,7 +1786,3 @@ region_rect = Rect2(0, 0, 1080, 0)
[connection signal="pressed" from="PauseMenu/Panel/VBox/SettingsBtn" to="." method="_on_settings_pressed"]
[connection signal="pressed" from="PauseMenu/Panel/VBox/QuitBtn" to="." method="_on_quit_match_pressed"]
[connection signal="pressed" from="HowToPlayPanel/Panel/VBox/BackBtn" to="." method="_on_how_to_play_back_pressed"]
[connection signal="value_changed" from="SettingsPanel/Panel/VBox/ButtonSizeRow/ButtonSizeSlider" to="." method="_on_button_size_changed"]
[connection signal="value_changed" from="SettingsPanel/Panel/VBox/OpacityRow/OpacitySlider" to="." method="_on_opacity_changed"]
[connection signal="toggled" from="SettingsPanel/Panel/VBox/JoystickToggle" to="." method="_on_joystick_toggled"]
[connection signal="pressed" from="SettingsPanel/Panel/VBox/BackBtn" to="." method="_on_settings_back_pressed"]
+1888
View File
@@ -0,0 +1,1888 @@
[gd_scene format=3 uid="uid://dxn87yj8qnfpp"]
[ext_resource type="MeshLibrary" uid="uid://kcv6ans86ug7" path="res://addons/enhanced_gridmap/meshlibrary/default.tres" id="1_110wo"]
[ext_resource type="Script" uid="uid://co1ads72by6na" path="res://scenes/main.gd" id="1_xcpe3"]
[ext_resource type="Script" uid="uid://bja8ixryvthu0" path="res://addons/enhanced_gridmap/enhanced_gridmap.gd" id="2_hbe1v"]
[ext_resource type="Environment" uid="uid://jbptgqvstei3" path="res://assets/main-environment.tres" id="4_ky38j"]
[ext_resource type="Shader" uid="uid://b4jor2qt7hwxn" path="res://assets/shaders/tilt_shader.gdshader" id="5_dgi5k"]
[ext_resource type="StyleBox" uid="uid://dlw1ogamn741n" path="res://assets/styles/box_flat.tres" id="5_dvx6y"]
[ext_resource type="Texture2D" uid="uid://2yrc6rl4dmd8" path="res://assets/textures/player_board_and_blue_print/tile_null.tres" id="6_2vy7d"]
[ext_resource type="Texture2D" uid="uid://cwxgdi7b4ps40" path="res://assets/textures/Hilight.png" id="7_2nq2l"]
[ext_resource type="Texture2D" uid="uid://c2bj21abtgda1" path="res://assets/models/pboard/HighlightRect.tres" id="7_vv0nt"]
[ext_resource type="Texture2D" uid="uid://0wjk16jlgfq" path="res://assets/models/pboard/SelectRect.tres" id="8_8meci"]
[ext_resource type="Texture2D" uid="uid://dojnv8o6we4ey" path="res://assets/textures/Selected.png" id="8_b18m4"]
[ext_resource type="Texture2D" uid="uid://68x88jj25yxg" path="res://assets/textures/Adjacent.png" id="9_6gcb6"]
[ext_resource type="Texture2D" uid="uid://dasaeaytvhll0" path="res://assets/models/pboard/AdjacentRect.tres" id="9_aspsw"]
[ext_resource type="FontFile" uid="uid://xnjx058n4tsw" path="res://assets/fonts/Nougat-ExtraBlack.ttf" id="13_j8jky"]
[ext_resource type="Texture2D" uid="uid://ba80xnybpixw2" path="res://assets/graphics/touch_control/take_tile.png" id="25_qkpxi"]
[ext_resource type="Texture2D" uid="uid://bsgqrjx2ity4c" path="res://assets/graphics/touch_control/speed.png" id="26_2f3dj"]
[ext_resource type="Texture2D" uid="uid://pwxo4lb87yi" path="res://assets/graphics/touch_control/put_tile.png" id="26_5q0nq"]
[ext_resource type="Texture2D" uid="uid://umw3e8nfe3vr" path="res://assets/graphics/touch_control/attack_mode.png" id="27_dgi5k"]
[ext_resource type="Texture2D" uid="uid://cupfmb5m15kmf" path="res://assets/graphics/touch_control/wall.png" id="27_yq6so"]
[ext_resource type="Texture2D" uid="uid://3up2su2e0lfa" path="res://assets/graphics/touch_control/freeze_area.png" id="28_fv21b"]
[ext_resource type="Texture2D" uid="uid://ckhdyxnho6sjp" path="res://assets/graphics/touch_control/spawn_tile.png" id="28_j8jky"]
[ext_resource type="Texture2D" uid="uid://b2vhatfmufn3d" path="res://assets/graphics/touch_control/ghost.png" id="33_5q0nq"]
[ext_resource type="Texture2D" uid="uid://biun2yvglxgij" path="res://assets/graphics/touch_control/grab_tekton.png" id="36_pibwh"]
[ext_resource type="Texture2D" uid="uid://u6igejwdutv1" path="res://assets/graphics/level_bg/level_bg_colloseum.jpg" id="37_fuf3a"]
[ext_resource type="Script" uid="uid://86ikh0wuqk7v" path="res://scripts/ui/powerup_inventory_ui.gd" id="powerup_ui_script"]
[ext_resource type="Script" uid="uid://b54tfa0n6kogi" path="res://scripts/managers/touch_controls.gd" id="touch_manager"]
[ext_resource type="Script" uid="uid://djiml4sh61dc1" path="res://scripts/ui/virtual_joystick.gd" id="virtual_joystick"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_j8jky"]
shader = ExtResource("5_dgi5k")
shader_parameter/top_left = Vector2(0, 0)
shader_parameter/top_right = Vector2(0, 0)
shader_parameter/bottom_left = Vector2(0, 0)
shader_parameter/bottom_right = Vector2(0, 0)
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_playerboard"]
content_margin_left = 8.0
content_margin_top = 8.0
content_margin_right = 8.0
content_margin_bottom = 8.0
bg_color = Color(0.08, 0.08, 0.12, 0.9)
border_width_left = 1
border_width_top = 1
border_width_right = 1
border_width_bottom = 1
border_color = Color(0.3, 0.3, 0.4, 0.8)
corner_radius_top_left = 8
corner_radius_top_right = 8
corner_radius_bottom_right = 8
corner_radius_bottom_left = 8
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_1cewu"]
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kmb1v"]
content_margin_left = 16.0
content_margin_top = 16.0
content_margin_right = 16.0
content_margin_bottom = 16.0
bg_color = Color(0, 0, 0, 0.49803922)
border_width_left = 2
border_width_top = 2
border_width_right = 2
border_width_bottom = 2
border_color = Color(0.992, 0.796, 0.047, 1)
corner_radius_top_left = 36
corner_radius_top_right = 36
corner_radius_bottom_right = 36
corner_radius_bottom_left = 36
corner_detail = 12
[node name="Main" type="Node3D" unique_id=1566673391]
script = ExtResource("1_xcpe3")
[node name="EnhancedGridMap" type="GridMap" parent="." unique_id=1838552857]
mesh_library = ExtResource("1_110wo")
cell_size = Vector3(1, 0.2, 1)
data = {
"cells": PackedInt32Array(0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, 0, 0, 8, 0, 0, 9, 0, 0, 10, 0, 0, 11, 0, 0, 12, 0, 0, 13, 0, 1, 0, 0, 1, 1, 0, 1, 2, 0, 1, 3, 0, 1, 4, 0, 1, 5, 0, 1, 6, 0, 1, 7, 0, 1, 8, 0, 1, 9, 0, 1, 10, 0, 1, 11, 0, 1, 12, 0, 1, 13, 0, 2, 0, 0, 2, 1, 0, 2, 2, 0, 2, 3, 0, 2, 4, 0, 2, 5, 0, 2, 6, 0, 2, 7, 0, 2, 8, 0, 2, 9, 0, 2, 10, 0, 2, 11, 0, 2, 12, 0, 2, 13, 0, 3, 0, 0, 3, 1, 0, 3, 2, 0, 3, 3, 0, 3, 4, 0, 3, 5, 0, 3, 6, 0, 3, 7, 0, 3, 8, 0, 3, 9, 0, 3, 10, 0, 3, 11, 0, 3, 12, 0, 3, 13, 0, 4, 0, 0, 4, 1, 0, 4, 2, 0, 4, 3, 0, 4, 4, 0, 4, 5, 0, 4, 6, 0, 4, 7, 0, 4, 8, 0, 4, 9, 0, 4, 10, 0, 4, 11, 0, 4, 12, 0, 4, 13, 0, 5, 0, 0, 5, 1, 0, 5, 2, 0, 5, 3, 0, 5, 4, 0, 5, 5, 0, 5, 6, 0, 5, 7, 0, 5, 8, 0, 5, 9, 0, 5, 10, 0, 5, 11, 0, 5, 12, 0, 5, 13, 0, 6, 0, 0, 6, 1, 0, 6, 2, 0, 6, 3, 0, 6, 4, 0, 6, 5, 0, 6, 6, 0, 6, 7, 0, 6, 8, 0, 6, 9, 0, 6, 10, 0, 6, 11, 0, 6, 12, 0, 6, 13, 0, 7, 0, 0, 7, 1, 0, 7, 2, 0, 7, 3, 0, 7, 4, 0, 7, 5, 0, 7, 6, 0, 7, 7, 0, 7, 8, 0, 7, 9, 0, 7, 10, 0, 7, 11, 0, 7, 12, 0, 7, 13, 0, 8, 0, 0, 8, 1, 0, 8, 2, 0, 8, 3, 0, 8, 4, 0, 8, 5, 0, 8, 6, 0, 8, 7, 0, 8, 8, 0, 8, 9, 0, 8, 10, 0, 8, 11, 0, 8, 12, 0, 8, 13, 0, 9, 0, 0, 9, 1, 0, 9, 2, 0, 9, 3, 0, 9, 4, 0, 9, 5, 0, 9, 6, 0, 9, 7, 0, 9, 8, 0, 9, 9, 0, 9, 10, 0, 9, 11, 0, 9, 12, 0, 9, 13, 0, 10, 0, 0, 10, 1, 0, 10, 2, 0, 10, 3, 0, 10, 4, 0, 10, 5, 0, 10, 6, 0, 10, 7, 0, 10, 8, 0, 10, 9, 0, 10, 10, 0, 10, 11, 0, 10, 12, 0, 10, 13, 0, 11, 0, 0, 11, 1, 0, 11, 2, 0, 11, 3, 0, 11, 4, 0, 11, 5, 0, 11, 6, 0, 11, 7, 0, 11, 8, 0, 11, 9, 0, 11, 10, 0, 11, 11, 0, 11, 12, 0, 11, 13, 0, 12, 0, 0, 12, 1, 0, 12, 2, 0, 12, 3, 0, 12, 4, 0, 12, 5, 0, 12, 6, 0, 12, 7, 0, 12, 8, 0, 12, 9, 0, 12, 10, 0, 12, 11, 0, 12, 12, 0, 12, 13, 0, 13, 0, 0, 13, 1, 0, 13, 2, 0, 13, 3, 0, 13, 4, 0, 13, 5, 0, 13, 6, 0, 13, 7, 0, 13, 8, 0, 13, 9, 0, 13, 10, 0, 13, 11, 0, 13, 12, 0, 13, 13, 0, 65537, 0, 10, 65537, 1, 8, 65537, 2, 11, 65537, 3, 8, 65537, 4, 10, 65537, 5, 11, 65537, 6, 9, 65537, 7, 9, 65537, 8, 10, 65537, 9, 8, 65537, 10, 12, 65537, 11, 10, 65537, 12, 10, 65537, 13, 10, 65538, 0, 12, 65538, 1, 11, 65538, 2, 10, 65538, 3, 10, 65538, 4, 11, 65538, 5, 9, 65538, 6, 10, 65538, 7, 12, 65538, 8, 10, 65538, 9, 8, 65538, 10, 12, 65538, 11, 11, 65538, 12, 10, 65538, 13, 10, 65539, 0, 9, 65539, 1, 10, 65539, 2, 10, 65539, 3, 11, 65539, 4, 11, 65539, 5, 8, 65539, 6, 9, 65539, 7, 11, 65539, 8, 12, 65539, 9, 11, 65539, 10, 8, 65539, 11, 10, 65539, 12, 8, 65539, 13, 8, 65540, 0, 12, 65540, 1, 8, 65540, 2, 9, 65540, 3, 8, 65540, 4, 9, 65540, 5, 11, 65540, 6, 9, 65540, 7, 9, 65540, 8, 8, 65540, 9, 9, 65540, 10, 10, 65540, 11, 8, 65540, 12, 12, 65540, 13, 12, 65541, 0, 8, 65541, 1, 8, 65541, 2, 10, 65541, 3, 12, 65541, 4, 8, 65541, 5, 8, 65541, 6, 12, 65541, 7, 8, 65541, 8, 8, 65541, 9, 11, 65541, 10, 12, 65541, 11, 9, 65541, 12, 11, 65541, 13, 11, 65542, 0, 12, 65542, 1, 8, 65542, 2, 10, 65542, 3, 12, 65542, 4, 12, 65542, 5, 11, 65542, 6, 10, 65542, 7, 11, 65542, 8, 9, 65542, 9, 9, 65542, 10, 8, 65542, 11, 11, 65542, 12, 11, 65542, 13, 9, 65543, 0, 8, 65543, 1, 9, 65543, 2, 8, 65543, 3, 8, 65543, 4, 10, 65543, 5, 9, 65543, 6, 12, 65543, 7, 8, 65543, 8, 10, 65543, 9, 8, 65543, 10, 9, 65543, 11, 12, 65543, 12, 9, 65543, 13, 9, 65544, 0, 12, 65544, 1, 8, 65544, 2, 8, 65544, 3, 10, 65544, 4, 10, 65544, 5, 12, 65544, 6, 12, 65544, 7, 10, 65544, 8, 9, 65544, 9, 9, 65544, 10, 10, 65544, 11, 10, 65544, 12, 9, 65544, 13, 11, 65545, 0, 10, 65545, 1, 8, 65545, 2, 10, 65545, 3, 10, 65545, 4, 11, 65545, 5, 11, 65545, 6, 9, 65545, 7, 9, 65545, 8, 10, 65545, 9, 12, 65545, 10, 9, 65545, 11, 8, 65545, 12, 8, 65545, 13, 12, 65546, 0, 10, 65546, 1, 10, 65546, 2, 12, 65546, 3, 12, 65546, 4, 9, 65546, 5, 9, 65546, 6, 10, 65546, 7, 8, 65546, 8, 8, 65546, 9, 10, 65546, 10, 12, 65546, 11, 11, 65546, 12, 12, 65546, 13, 10, 65547, 0, 10, 65547, 1, 9, 65547, 2, 8, 65547, 3, 10, 65547, 4, 8, 65547, 5, 11, 65547, 6, 9, 65547, 7, 8, 65547, 8, 11, 65547, 9, 9, 65547, 10, 8, 65547, 11, 12, 65547, 12, 8, 65547, 13, 10, 65548, 0, 11, 65548, 1, 12, 65548, 2, 8, 65548, 3, 9, 65548, 4, 9, 65548, 5, 9, 65548, 6, 10, 65548, 7, 10, 65548, 8, 12, 65548, 9, 9, 65548, 10, 11, 65548, 11, 11, 65548, 12, 11, 65548, 13, 10, 65536, 0, 2031628, 65536, 1, 2031627, 65536, 2, 2031626, 65536, 3, 2031625, 65536, 4, 2031628, 65536, 5, 2031627, 65536, 6, 2031626, 65536, 7, 2031627, 65536, 8, 2031628, 65536, 9, 2031628, 65536, 10, 2031628, 65536, 11, 2031627, 65536, 12, 2031626, 65536, 13, 2031624, 65549, 0, 2031627, 65549, 1, 2031624, 65549, 2, 2031624, 65549, 3, 2031628, 65549, 4, 2031626, 65549, 5, 2031625, 65549, 6, 2031627, 65549, 7, 2031628, 65549, 8, 2031624, 65549, 9, 2031628, 65549, 10, 2031627, 65549, 11, 2031628, 65549, 12, 2031625, 65549, 13, 2031626)
}
script = ExtResource("2_hbe1v")
columns = 14
rows = 14
floors = 2
auto_randomize = true
start_item = 2
end_item = 3
immutable_items = Array[int]([4])
metadata/_editor_floor_ = Vector3(0, 0, 0)
[node name="Camera3D" type="Camera3D" parent="." unique_id=1200003163]
transform = Transform3D(1, 0, 0, 0, 0.422618, 0.906308, 0, -0.906308, 0.422618, 7, 22.925, 18.4489)
environment = ExtResource("4_ky38j")
current = true
fov = 35.5
[node name="Camera3D200" type="Camera3D" parent="." unique_id=1763366951]
transform = Transform3D(1, 0, 0, 0, 0.5077037, 0.86153173, 0, -0.86153173, 0.5077037, 7, 32.3, 25.8)
environment = ExtResource("4_ky38j")
current = true
fov = 21.0
size = 15.0
[node name="PlayerboardPanel" type="PanelContainer" parent="." unique_id=1098203639]
material = SubResource("ShaderMaterial_j8jky")
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_left = 63.731766
offset_top = -200.62561
offset_right = 214.42894
offset_bottom = -15.877472
grow_vertical = 2
rotation = -0.10297442
theme_override_styles/panel = SubResource("StyleBoxFlat_playerboard")
[node name="PlayerboardUI" type="GridContainer" parent="." unique_id=48093356]
clip_contents = true
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_left = 34.000004
offset_top = -190.23553
offset_right = 250.0
offset_bottom = 25.764465
grow_vertical = 2
rotation = -0.10297442
scale = Vector2(1.08, 1.08)
size_flags_horizontal = 3
columns = 5
[node name="Slot1" type="TextureRect" parent="PlayerboardUI" unique_id=1399081516]
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot1" unique_id=73796370]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_vv0nt")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot1" unique_id=1419479429]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_8meci")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot1" unique_id=280168514]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_aspsw")
[node name="Slot2" type="TextureRect" parent="PlayerboardUI" unique_id=462730820]
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot2" unique_id=1975520133]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot2" unique_id=1608039666]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot2" unique_id=34878910]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot3" type="TextureRect" parent="PlayerboardUI" unique_id=1883039379]
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot3" unique_id=128555296]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot3" unique_id=1985613689]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot3" unique_id=1744577453]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot4" type="TextureRect" parent="PlayerboardUI" unique_id=162585145]
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot4" unique_id=1878819233]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot4" unique_id=1292098113]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot4" unique_id=1504241456]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot5" type="TextureRect" parent="PlayerboardUI" unique_id=1644684927]
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot5" unique_id=64305041]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot5" unique_id=1190668306]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot5" unique_id=222315602]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot6" type="TextureRect" parent="PlayerboardUI" unique_id=481932710]
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot6" unique_id=191595590]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot6" unique_id=928765606]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot6" unique_id=294354992]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot7" type="TextureRect" parent="PlayerboardUI" unique_id=1184367354]
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot7" unique_id=2112625734]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot7" unique_id=1761236766]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot7" unique_id=874391367]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot8" type="TextureRect" parent="PlayerboardUI" unique_id=1244318204]
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot8" unique_id=755408237]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot8" unique_id=640314117]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot8" unique_id=1529176319]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot9" type="TextureRect" parent="PlayerboardUI" unique_id=2073068517]
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot9" unique_id=733008534]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot9" unique_id=288656621]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot9" unique_id=857038803]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot10" type="TextureRect" parent="PlayerboardUI" unique_id=1184621406]
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot10" unique_id=7279465]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot10" unique_id=1097751170]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot10" unique_id=1699961786]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot11" type="TextureRect" parent="PlayerboardUI" unique_id=1688573384]
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot11" unique_id=226280733]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot11" unique_id=1998225844]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot11" unique_id=1180311453]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot12" type="TextureRect" parent="PlayerboardUI" unique_id=644780641]
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot12" unique_id=652930136]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot12" unique_id=1699088104]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot12" unique_id=1072407377]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot13" type="TextureRect" parent="PlayerboardUI" unique_id=591046129]
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot13" unique_id=797546522]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot13" unique_id=1767468123]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot13" unique_id=366226154]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot14" type="TextureRect" parent="PlayerboardUI" unique_id=238780074]
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot14" unique_id=1273869281]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot14" unique_id=1037905262]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot14" unique_id=944771687]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot15" type="TextureRect" parent="PlayerboardUI" unique_id=1663725669]
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot15" unique_id=1891754186]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot15" unique_id=93476819]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot15" unique_id=609689370]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot16" type="TextureRect" parent="PlayerboardUI" unique_id=628611489]
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot16" unique_id=754328744]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot16" unique_id=1152390013]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot16" unique_id=695895201]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot17" type="TextureRect" parent="PlayerboardUI" unique_id=14337200]
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot17" unique_id=1908525374]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot17" unique_id=1938430010]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot17" unique_id=1187550807]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot18" type="TextureRect" parent="PlayerboardUI" unique_id=1450009773]
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot18" unique_id=286299595]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot18" unique_id=166221410]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot18" unique_id=324198818]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot19" type="TextureRect" parent="PlayerboardUI" unique_id=863242693]
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot19" unique_id=739753928]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot19" unique_id=1396505845]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot19" unique_id=233557579]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot20" type="TextureRect" parent="PlayerboardUI" unique_id=2086008463]
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot20" unique_id=1608997623]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot20" unique_id=1826090845]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot20" unique_id=1046262306]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot21" type="TextureRect" parent="PlayerboardUI" unique_id=1451444134]
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot21" unique_id=2136156725]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot21" unique_id=606552769]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot21" unique_id=1120516969]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot22" type="TextureRect" parent="PlayerboardUI" unique_id=141949470]
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot22" unique_id=1138719122]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot22" unique_id=367089612]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot22" unique_id=441881724]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot23" type="TextureRect" parent="PlayerboardUI" unique_id=1345458769]
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot23" unique_id=563959407]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot23" unique_id=948060413]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot23" unique_id=1540856367]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot24" type="TextureRect" parent="PlayerboardUI" unique_id=1840834103]
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot24" unique_id=1036547495]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot24" unique_id=703640093]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot24" unique_id=1249854708]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="Slot25" type="TextureRect" parent="PlayerboardUI" unique_id=1179195394]
modulate = Color(1, 1, 1, 0)
custom_minimum_size = Vector2(36, 36)
layout_mode = 2
texture = ExtResource("6_2vy7d")
[node name="HighlightRect" type="TextureRect" parent="PlayerboardUI/Slot25" unique_id=797763971]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("7_2nq2l")
[node name="SelectRect" type="TextureRect" parent="PlayerboardUI/Slot25" unique_id=125513581]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("8_b18m4")
[node name="AdjacentRect" type="TextureRect" parent="PlayerboardUI/Slot25" unique_id=2054303245]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("9_6gcb6")
[node name="PlayeBoardPanelName" type="PanelContainer" parent="." unique_id=1458381676]
material = SubResource("ShaderMaterial_j8jky")
offset_left = 44.0
offset_top = 113.710526
offset_right = 216.29385
offset_bottom = 153.37068
rotation = -0.10297442
theme_override_styles/panel = SubResource("StyleBoxFlat_playerboard")
[node name="PlayerName" type="Label" parent="." unique_id=254337877]
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_left = 50.718987
offset_top = -244.58023
offset_right = 133.719
offset_bottom = -208.58023
grow_vertical = 2
rotation = -0.10297442
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 32
text = "Guest"
[node name="PlayerBoardLabel" type="Label" parent="." unique_id=341385584]
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_left = 170.71896
offset_top = -258.02036
offset_right = 210.71896
offset_bottom = -222.02036
grow_vertical = 2
rotation = -0.10297442
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 32
text = "X0"
[node name="StopTimer" type="PanelContainer" parent="." unique_id=991540081]
visible = false
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -58.0
offset_top = 80.0
offset_right = 58.0
offset_bottom = 113.00012
grow_horizontal = 2
[node name="HBox" type="HBoxContainer" parent="StopTimer" unique_id=1541315617]
layout_mode = 2
theme_override_constants/separation = 4
[node name="Segment0" type="Panel" parent="StopTimer/HBox" unique_id=307582302]
custom_minimum_size = Vector2(36, 20)
layout_mode = 2
[node name="Segment1" type="Panel" parent="StopTimer/HBox" unique_id=615805583]
custom_minimum_size = Vector2(36, 20)
layout_mode = 2
[node name="Segment2" type="Panel" parent="StopTimer/HBox" unique_id=1041800993]
custom_minimum_size = Vector2(36, 20)
layout_mode = 2
[node name="PowerUpBar" type="PanelContainer" parent="." unique_id=1775378146]
anchors_preset = 4
anchor_top = 0.5
anchor_bottom = 0.5
offset_left = 40.0
offset_top = -1.7106018
offset_right = 224.0
offset_bottom = 31.28952
grow_vertical = 2
rotation = -0.10297442
[node name="HBox" type="HBoxContainer" parent="PowerUpBar" unique_id=334600330]
layout_mode = 2
theme_override_constants/separation = 4
[node name="PowerLabel" type="Label" parent="PowerUpBar/HBox" unique_id=1945535407]
layout_mode = 2
theme_override_font_sizes/font_size = 18
text = "⚡"
[node name="Segment0" type="Panel" parent="PowerUpBar/HBox" unique_id=500774723]
custom_minimum_size = Vector2(36, 20)
layout_mode = 2
[node name="Segment1" type="Panel" parent="PowerUpBar/HBox" unique_id=1042222722]
custom_minimum_size = Vector2(36, 20)
layout_mode = 2
[node name="Segment2" type="Panel" parent="PowerUpBar/HBox" unique_id=272336972]
custom_minimum_size = Vector2(36, 20)
layout_mode = 2
[node name="Segment3" type="Panel" parent="PowerUpBar/HBox" unique_id=293120308]
custom_minimum_size = Vector2(36, 20)
layout_mode = 2
[node name="GoalsTimer" type="PanelContainer" parent="." unique_id=2106663301]
offset_left = 235.8717
offset_top = 338.0481
offset_right = 267.8717
offset_bottom = 371.04816
rotation = -0.10297442
[node name="TimerLabel" type="Label" parent="GoalsTimer" unique_id=466345203]
layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 18
text = "00"
horizontal_alignment = 1
[node name="MessageInput" type="LineEdit" parent="." unique_id=286018566]
visible = false
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -208.0
offset_top = -72.0
offset_right = 212.0
offset_bottom = -41.0
grow_horizontal = 2
grow_vertical = 0
theme_override_styles/normal = ExtResource("5_dvx6y")
theme_override_styles/focus = SubResource("StyleBoxFlat_1cewu")
placeholder_text = "Chat"
alignment = 1
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=12971344]
environment = ExtResource("4_ky38j")
[node name="MessageBar" type="PanelContainer" parent="." unique_id=142729129]
visible = false
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 13.0
offset_top = -52.0
offset_right = 299.0
offset_bottom = -18.0
grow_vertical = 0
theme_override_styles/panel = ExtResource("5_dvx6y")
[node name="MarginContainer" type="MarginContainer" parent="MessageBar" unique_id=444870568]
layout_mode = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 5
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 5
[node name="MessageContainer" type="VBoxContainer" parent="MessageBar/MarginContainer" unique_id=1424970772]
layout_mode = 2
theme_override_constants/separation = 4
[node name="PowerUpInventoryUI" type="Control" parent="." unique_id=1105620089]
layout_mode = 3
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -94.0
offset_top = -432.0
offset_right = -94.0
offset_bottom = -432.0
grow_horizontal = 0
grow_vertical = 0
script = ExtResource("powerup_ui_script")
[node name="Container" type="VBoxContainer" parent="PowerUpInventoryUI" unique_id=1100906843]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -31.999996
offset_right = 41.00098
offset_bottom = 350.0
grow_horizontal = 2
grow_vertical = 2
rotation = 0.10297442
theme_override_constants/separation = 10
[node name="SpeedBtn" type="Button" parent="PowerUpInventoryUI/Container" unique_id=1549270030]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
focus_mode = 0
icon = ExtResource("26_2f3dj")
flat = true
icon_alignment = 1
expand_icon = true
[node name="WallBtn" type="Button" parent="PowerUpInventoryUI/Container" unique_id=863365575]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
focus_mode = 0
icon = ExtResource("27_yq6so")
flat = true
icon_alignment = 1
expand_icon = true
[node name="FreezeAreaBtn" type="Button" parent="PowerUpInventoryUI/Container" unique_id=1087493560]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
focus_mode = 0
icon = ExtResource("28_fv21b")
flat = true
icon_alignment = 1
expand_icon = true
[node name="GhostBtn" type="Button" parent="PowerUpInventoryUI/Container" unique_id=2041811828]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
focus_mode = 0
icon = ExtResource("33_5q0nq")
flat = true
icon_alignment = 1
expand_icon = true
[node name="LeaderboardPanel" type="PanelContainer" parent="." unique_id=364209533]
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -273.64343
offset_top = 84.58379
offset_right = -26.733765
offset_bottom = 253.5838
grow_horizontal = 0
rotation = 0.10297442
size_flags_horizontal = 3
size_flags_vertical = 3
[node name="MarginContainer" type="MarginContainer" parent="LeaderboardPanel" unique_id=1736331167]
layout_mode = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
[node name="VBox" type="VBoxContainer" parent="LeaderboardPanel/MarginContainer" unique_id=635878805]
layout_mode = 2
theme_override_constants/separation = 4
[node name="Title" type="Label" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=1810699363]
layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22
text = "🏆 LEADERBOARD"
horizontal_alignment = 1
[node name="Separator" type="HSeparator" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=1615297005]
layout_mode = 2
[node name="Entry1" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=1372346601]
layout_mode = 2
[node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry1" unique_id=828754165]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22
text = "1st"
[node name="NameLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry1" unique_id=777741978]
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22
text = "Player 1"
clip_text = true
[node name="ScoreLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry1" unique_id=163441394]
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22
text = "0"
horizontal_alignment = 2
[node name="Entry2" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=1213770719]
layout_mode = 2
[node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry2" unique_id=276085006]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22
text = "2nd"
[node name="NameLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry2" unique_id=980063105]
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22
text = "Player 2"
clip_text = true
[node name="ScoreLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry2" unique_id=630589738]
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22
text = "0"
horizontal_alignment = 2
[node name="Entry3" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=988674004]
layout_mode = 2
[node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry3" unique_id=940102589]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22
text = "3rd"
[node name="NameLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry3" unique_id=872999463]
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22
text = "Player 3"
clip_text = true
[node name="ScoreLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry3" unique_id=508325054]
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22
text = "0"
horizontal_alignment = 2
[node name="Entry4" type="HBoxContainer" parent="LeaderboardPanel/MarginContainer/VBox" unique_id=394023021]
layout_mode = 2
[node name="RankLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry4" unique_id=539805932]
custom_minimum_size = Vector2(50, 0)
layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22
text = "4th"
[node name="NameLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry4" unique_id=379355680]
custom_minimum_size = Vector2(100, 0)
layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22
text = "Player 4"
clip_text = true
[node name="ScoreLabel" type="Label" parent="LeaderboardPanel/MarginContainer/VBox/Entry4" unique_id=560418594]
layout_mode = 2
size_flags_horizontal = 3
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 22
text = "0"
horizontal_alignment = 2
[node name="GlobalMatchTimer" type="PanelContainer" parent="." unique_id=1714357974]
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -75.0
offset_top = 8.0
offset_right = 73.0
offset_bottom = 72.0
grow_horizontal = 2
theme_override_styles/panel = SubResource("StyleBoxFlat_kmb1v")
[node name="VBox" type="VBoxContainer" parent="GlobalMatchTimer" unique_id=24429117]
layout_mode = 2
alignment = 1
[node name="TimerLabel" type="Label" parent="GlobalMatchTimer/VBox" unique_id=689385799]
layout_mode = 2
theme_override_fonts/font = ExtResource("13_j8jky")
theme_override_font_sizes/font_size = 28
text = "3:00"
horizontal_alignment = 1
[node name="TouchControls" type="CanvasLayer" parent="." unique_id=1390485948]
script = ExtResource("touch_manager")
[node name="TouchControls" type="Control" parent="TouchControls" unique_id=1539594058]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = 318.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="VirtualJoystick" type="Control" parent="TouchControls/TouchControls" unique_id=1983608919]
visible = false
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_left = 120.0
offset_top = -280.0
offset_right = 280.0
offset_bottom = -120.0
grow_vertical = 0
script = ExtResource("virtual_joystick")
[node name="ActionsBtn" type="VBoxContainer" parent="TouchControls/TouchControls" unique_id=278736451]
layout_mode = 0
offset_left = 48.000004
offset_top = 82.00001
offset_right = 114.71878
offset_bottom = 350.68915
rotation = -0.10297442
theme_override_constants/separation = 15
[node name="PutBtn" type="Button" parent="TouchControls/TouchControls/ActionsBtn" unique_id=1027790362]
visible = false
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
focus_mode = 0
icon = ExtResource("26_5q0nq")
flat = true
icon_alignment = 1
expand_icon = true
[node name="AttackModeBtn" type="Button" parent="TouchControls/TouchControls/ActionsBtn" unique_id=1380511463]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
focus_mode = 0
icon = ExtResource("27_dgi5k")
flat = true
icon_alignment = 1
expand_icon = true
[node name="SpawnBoostBtn" type="Button" parent="TouchControls/TouchControls/ActionsBtn" unique_id=1566173505]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
icon = ExtResource("28_j8jky")
flat = true
icon_alignment = 1
expand_icon = true
[node name="TektonGrabBtn" type="Button" parent="TouchControls/TouchControls/ActionsBtn" unique_id=2097928368]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
icon = ExtResource("36_pibwh")
flat = true
icon_alignment = 1
expand_icon = true
[node name="GrabBtn" type="Button" parent="TouchControls/TouchControls/ActionsBtn" unique_id=914810452]
visible = false
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
focus_mode = 0
icon = ExtResource("25_qkpxi")
flat = true
icon_alignment = 1
expand_icon = true
[node name="SettingsBtn" type="Button" parent="TouchControls/TouchControls" unique_id=1964422444]
layout_mode = 1
anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
offset_left = -78.0
offset_top = -302.0
offset_right = -30.0
offset_bottom = -254.0
grow_horizontal = 0
text = "⚙"
[node name="PauseMenu" type="CanvasLayer" parent="." unique_id=181131829]
process_mode = 3
layer = 10
visible = false
[node name="Background" type="ColorRect" parent="PauseMenu" unique_id=412985431]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.7)
[node name="Panel" type="PanelContainer" parent="PauseMenu" unique_id=407391814]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -150.0
offset_top = -150.0
offset_right = 150.0
offset_bottom = 150.0
grow_horizontal = 2
grow_vertical = 2
[node name="NetworkPanel" type="Panel" parent="PauseMenu/Panel" unique_id=935918250]
layout_mode = 2
theme_override_styles/panel = ExtResource("5_dvx6y")
[node name="NetworkInfo" type="HBoxContainer" parent="PauseMenu/Panel/NetworkPanel" unique_id=1194782604]
visible = false
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -135.0
offset_right = 135.0
offset_bottom = 23.0
grow_horizontal = 2
theme_override_constants/separation = 50
alignment = 1
[node name="NetworkSideDisplay" type="Label" parent="PauseMenu/Panel/NetworkPanel/NetworkInfo" unique_id=1748547015]
layout_mode = 2
text = "Network Side"
horizontal_alignment = 1
vertical_alignment = 1
[node name="UniquePeerID" type="Label" parent="PauseMenu/Panel/NetworkPanel/NetworkInfo" unique_id=1306253581]
layout_mode = 2
text = "Unique Peer ID"
horizontal_alignment = 1
vertical_alignment = 1
[node name="VBox" type="VBoxContainer" parent="PauseMenu/Panel" unique_id=837757440]
layout_mode = 2
theme_override_constants/separation = 15
alignment = 1
[node name="Title" type="Label" parent="PauseMenu/Panel/VBox" unique_id=1740539610]
layout_mode = 2
theme_override_font_sizes/font_size = 24
text = "Menu"
horizontal_alignment = 1
[node name="Spacer" type="Control" parent="PauseMenu/Panel/VBox" unique_id=57341975]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
[node name="ResumeBtn" type="Button" parent="PauseMenu/Panel/VBox" unique_id=79086881]
custom_minimum_size = Vector2(200, 45)
layout_mode = 2
text = "Resume"
[node name="HowToPlayBtn" type="Button" parent="PauseMenu/Panel/VBox" unique_id=987654321]
custom_minimum_size = Vector2(200, 45)
layout_mode = 2
text = "How to Play"
[node name="SettingsBtn" type="Button" parent="PauseMenu/Panel/VBox" unique_id=215865401]
custom_minimum_size = Vector2(200, 45)
layout_mode = 2
text = "Settings"
[node name="QuitBtn" type="Button" parent="PauseMenu/Panel/VBox" unique_id=1771850243]
custom_minimum_size = Vector2(200, 45)
layout_mode = 2
text = "Quit Match"
[node name="HowToPlayPanel" type="CanvasLayer" parent="." unique_id=123456789]
process_mode = 3
layer = 11
visible = false
[node name="Background" type="ColorRect" parent="HowToPlayPanel" unique_id=123456790]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.8)
[node name="Panel" type="PanelContainer" parent="HowToPlayPanel" unique_id=123456791]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -300.0
offset_top = -250.0
offset_right = 300.0
offset_bottom = 250.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBox" type="VBoxContainer" parent="HowToPlayPanel/Panel" unique_id=123456792]
layout_mode = 2
theme_override_constants/separation = 12
alignment = 1
[node name="Title" type="Label" parent="HowToPlayPanel/Panel/VBox" unique_id=123456793]
layout_mode = 2
theme_override_font_sizes/font_size = 22
text = "How to Play"
horizontal_alignment = 1
[node name="TabContainer" type="TabContainer" parent="HowToPlayPanel/Panel/VBox" unique_id=123456794]
layout_mode = 2
size_flags_vertical = 3
current_tab = 0
[node name="Free Mode" type="MarginContainer" parent="HowToPlayPanel/Panel/VBox/TabContainer" unique_id=123456795]
layout_mode = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
metadata/_tab_index = 0
[node name="RichTextLabel" type="RichTextLabel" parent="HowToPlayPanel/Panel/VBox/TabContainer/Free Mode" unique_id=123456796]
layout_mode = 2
bbcode_enabled = true
text = "[b]Free Mode[/b]
- Move around the grid and attack Tektons to spawn tiles.
- Grab tiles and use the [b]ARRANGE[/b] action to slot them into your player board.
- Match a 3x3 pattern shown in your [b]GOALS[/b] to score points and earn powerups.
- The player with the highest score when the global match timer ends wins!"
[node name="Stop n Go" type="MarginContainer" parent="HowToPlayPanel/Panel/VBox/TabContainer" unique_id=123456797]
visible = false
layout_mode = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
metadata/_tab_index = 1
[node name="RichTextLabel" type="RichTextLabel" parent="HowToPlayPanel/Panel/VBox/TabContainer/Stop n Go" unique_id=123456798]
layout_mode = 2
bbcode_enabled = true
text = "[b]Stop n Go[/b]
- The classic red light, green light experience.
- Move forward when the phase is [color=green][b]GO[/b][/color] (Green).
- Stop completely when the phase is [color=red][b]STOP[/b][/color] (Red). Moving during a red phase will reset you to the start!
- Your objective is to reach the mission tiles at the far end of the arena and safely carry them back to your starting zone.
- The first player to complete 8 missions and reach the finish floor wins."
[node name="Tekton Doors" type="MarginContainer" parent="HowToPlayPanel/Panel/VBox/TabContainer" unique_id=123456799]
visible = false
layout_mode = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
metadata/_tab_index = 2
[node name="RichTextLabel" type="RichTextLabel" parent="HowToPlayPanel/Panel/VBox/TabContainer/Tekton Doors" unique_id=123456800]
layout_mode = 2
bbcode_enabled = true
text = "[b]Tekton Doors[/b]
- Navigate a sprawling arena connected by color-coded portal doors.
- Grab tiles and match goal patterns to earn mission completions.
- Use doors to quickly teleport across rooms, but watch out for closures and traps.
- The first player to complete 8 missions and reach the finish room wins."
[node name="Controls" type="MarginContainer" parent="HowToPlayPanel/Panel/VBox/TabContainer" unique_id=123456805]
visible = false
layout_mode = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
metadata/_tab_index = 3
[node name="RichTextLabel" type="RichTextLabel" parent="HowToPlayPanel/Panel/VBox/TabContainer/Controls" unique_id=123456806]
layout_mode = 2
bbcode_enabled = true
text = "[b]Basic Controls[/b]
• [b]Movement:[/b] W/A/S/D, Arrow Keys, or Virtual Joystick.
• [b]Interact:[/b] Click or tap on game elements.
• [b]GRAB TILE:[/b] Spacebar (in some modes) or Click to pick up a tile.
• [b]GRAB TEKTON (G):[/b] Grab a nearby Tekton to carry it.
• [b]SPAWN TILES (E):[/b] While carrying a Tekton, spawn 5 common tiles around you.
• [b]ARRANGE:[/b] Insert a carried tile into your 3x3 Player Board."
[node name="The Grid" type="MarginContainer" parent="HowToPlayPanel/Panel/VBox/TabContainer" unique_id=123456807]
visible = false
layout_mode = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
metadata/_tab_index = 4
[node name="RichTextLabel" type="RichTextLabel" parent="HowToPlayPanel/Panel/VBox/TabContainer/The Grid" unique_id=123456808]
layout_mode = 2
bbcode_enabled = true
text = "[b]The Grid & Tiles[/b]
• The arena is built on a grid. You interact with objects positioned on these grid coordinates.
• [b]Tiles:[/b] Core items shaped like Hearts, Diamonds, Stars, and Coins.
• [b]Player Board:[/b] A 3x3 grid assigned to you.
• [b]Goals:[/b] To score points or progress, you must pick up Tiles and ARRANGE them on your Player Board to match the 3x3 pattern shown in your Goals Window. Matching grants points or mission progression!"
[node name="Tektons" type="MarginContainer" parent="HowToPlayPanel/Panel/VBox/TabContainer" unique_id=123456809]
visible = false
layout_mode = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
metadata/_tab_index = 5
[node name="RichTextLabel" type="RichTextLabel" parent="HowToPlayPanel/Panel/VBox/TabContainer/Tektons" unique_id=123456810]
layout_mode = 2
bbcode_enabled = true
text = "[b]Tektons[/b]
• [b]Dynamic Tektons:[/b] Roaming metallic entities. Grab them to gain special benefits!
• [b]Grab & Hold (G):[/b] While holding a Tekton, you are [color=green][b]IMMUNE[/b][/color] to being knocked or staggered by others.
• [b]Tile Generation (E):[/b] Use your boost to force a carried Tekton to spawn 5 [b]Common Tiles[/b] instantly. The Tekton is released after spawning.
• [b]Static Tektons:[/b] Stationary sentry turrets that occupy a 3x3 space. They periodically throw tiles and obstacles around themselves. Stay alert!"
[node name="Skills" type="MarginContainer" parent="HowToPlayPanel/Panel/VBox/TabContainer" unique_id=123456811]
visible = false
layout_mode = 2
theme_override_constants/margin_left = 10
theme_override_constants/margin_top = 10
theme_override_constants/margin_right = 10
theme_override_constants/margin_bottom = 10
metadata/_tab_index = 6
[node name="RichTextLabel" type="RichTextLabel" parent="HowToPlayPanel/Panel/VBox/TabContainer/Skills" unique_id=123456812]
layout_mode = 2
bbcode_enabled = true
text = "[b]Skills & Power-ups[/b]
Earn powerups by matching Goal tiles or finding them in the arena.
• [color=yellow][b]Speed Boost (Tile 11):[/b][/color] Gain +50% movement speed for 5 seconds.
• [color=gray][b]Wall Build (Tile 13):[/b][/color] Block paths with a temporary wall for 9 seconds.
• [color=aqua][b]Freeze Area (Tile 12):[/b][/color] Create a slow zone that traps opponents for 15 seconds.
• [color=purple][b]Ghost Mode (Tile 14):[/b][/color] Become invisible and phase past blocks for 6 seconds.
*Note: In Stop n Go, power-ups spawn specifically during the STOP transitions!*"
[node name="Spacer" type="Control" parent="HowToPlayPanel/Panel/VBox" unique_id=123456801]
custom_minimum_size = Vector2(0, 10)
layout_mode = 2
[node name="BackBtn" type="Button" parent="HowToPlayPanel/Panel/VBox" unique_id=123456802]
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
text = "Back"
[node name="SettingsPanel" type="CanvasLayer" parent="." unique_id=268064562]
process_mode = 3
layer = 11
visible = false
[node name="Background" type="ColorRect" parent="SettingsPanel" unique_id=1148993432]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 0.8)
[node name="Panel" type="PanelContainer" parent="SettingsPanel" unique_id=1418717329]
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -200.0
offset_top = -200.0
offset_right = 200.0
offset_bottom = 200.0
grow_horizontal = 2
grow_vertical = 2
[node name="VBox" type="VBoxContainer" parent="SettingsPanel/Panel" unique_id=449477630]
layout_mode = 2
theme_override_constants/separation = 12
alignment = 1
[node name="Title" type="Label" parent="SettingsPanel/Panel/VBox" unique_id=1939206128]
layout_mode = 2
theme_override_font_sizes/font_size = 22
text = "Settings"
horizontal_alignment = 1
[node name="Spacer" type="Control" parent="SettingsPanel/Panel/VBox" unique_id=426750898]
custom_minimum_size = Vector2(0, 10)
layout_mode = 2
[node name="TouchHeader" type="Label" parent="SettingsPanel/Panel/VBox" unique_id=1095783125]
layout_mode = 2
theme_override_font_sizes/font_size = 16
text = "Touch Controls"
[node name="ButtonSizeRow" type="HBoxContainer" parent="SettingsPanel/Panel/VBox" unique_id=1573503465]
layout_mode = 2
[node name="Label" type="Label" parent="SettingsPanel/Panel/VBox/ButtonSizeRow" unique_id=1996113172]
layout_mode = 2
size_flags_horizontal = 3
text = "Button Size"
[node name="ButtonSizeSlider" type="HSlider" parent="SettingsPanel/Panel/VBox/ButtonSizeRow" unique_id=1536868944]
custom_minimum_size = Vector2(150, 0)
layout_mode = 2
min_value = 50.0
max_value = 120.0
value = 70.0
[node name="OpacityRow" type="HBoxContainer" parent="SettingsPanel/Panel/VBox" unique_id=494509398]
layout_mode = 2
[node name="Label" type="Label" parent="SettingsPanel/Panel/VBox/OpacityRow" unique_id=252128874]
layout_mode = 2
size_flags_horizontal = 3
text = "Button Opacity"
[node name="OpacitySlider" type="HSlider" parent="SettingsPanel/Panel/VBox/OpacityRow" unique_id=1673848529]
custom_minimum_size = Vector2(150, 0)
layout_mode = 2
max_value = 1.0
step = 0.1
value = 0.7
[node name="JoystickToggle" type="CheckButton" parent="SettingsPanel/Panel/VBox" unique_id=674311321]
layout_mode = 2
button_pressed = true
text = "Enable Virtual Joystick"
[node name="Spacer2" type="Control" parent="SettingsPanel/Panel/VBox" unique_id=166051520]
custom_minimum_size = Vector2(0, 15)
layout_mode = 2
[node name="BackBtn" type="Button" parent="SettingsPanel/Panel/VBox" unique_id=1290117622]
custom_minimum_size = Vector2(0, 40)
layout_mode = 2
text = "Back"
[node name="ArenaBG" type="Sprite3D" parent="." unique_id=2070634860]
transform = Transform3D(4, 0, 0, 0, 1.8291987, 3.557251, 0, -3.557251, 1.8291987, 6.109789, -30, -4)
texture = ExtResource("37_fuf3a")
region_rect = Rect2(0, 0, 1080, 0)
[connection signal="text_submitted" from="MessageInput" to="." method="_on_message_input_text_submitted"]
[connection signal="pressed" from="PauseMenu/Panel/VBox/ResumeBtn" to="." method="_on_resume_pressed"]
[connection signal="pressed" from="PauseMenu/Panel/VBox/HowToPlayBtn" to="." method="_on_how_to_play_pressed"]
[connection signal="pressed" from="PauseMenu/Panel/VBox/SettingsBtn" to="." method="_on_settings_pressed"]
[connection signal="pressed" from="PauseMenu/Panel/VBox/QuitBtn" to="." method="_on_quit_match_pressed"]
[connection signal="pressed" from="HowToPlayPanel/Panel/VBox/BackBtn" to="." method="_on_how_to_play_back_pressed"]
[connection signal="value_changed" from="SettingsPanel/Panel/VBox/ButtonSizeRow/ButtonSizeSlider" to="." method="_on_button_size_changed"]
[connection signal="value_changed" from="SettingsPanel/Panel/VBox/OpacityRow/OpacitySlider" to="." method="_on_opacity_changed"]
[connection signal="toggled" from="SettingsPanel/Panel/VBox/JoystickToggle" to="." method="_on_joystick_toggled"]
[connection signal="pressed" from="SettingsPanel/Panel/VBox/BackBtn" to="." method="_on_settings_back_pressed"]
-5
View File
@@ -1953,11 +1953,6 @@ func sync_goals(new_goals: Array):
# Re-check finish availability with new goals
race_manager.update_finish_availability()
# Update the AllPlayerGoals UI
var main = get_tree().get_root().get_node_or_null("Main")
if main and main.has_method("_update_goals_ui_for_player"):
var player_id = get_multiplayer_authority()
main._update_goals_ui_for_player(player_id, new_goals)
@rpc("any_peer", "call_local")
func sync_second_lap_goals(new_goals: Array):
@@ -50,14 +50,6 @@ func after_action_completed():
# Only update UI if this is the LOCAL HUMAN PLAYER
# Bots are owned by the host (authority match) but shouldn't trigger UI updates
if multiplayer.get_unique_id() == player.get_multiplayer_authority():
if not player.is_bot and not player.is_in_group("Bots"):
var main = player.get_tree().get_root().get_node_or_null("Main")
if main:
main.ui_manager.update_playerboard_ui()
# Add this line to sync all boards
main.update_all_players_boards()
# Sync playerboard (Bots DO need to sync their board logic, just not update local UI)
if player.is_multiplayer_authority() and player.has_method("can_rpc") and player.can_rpc():
var main = player.get_tree().get_root().get_node_or_null("Main")
+4 -6
View File
@@ -260,8 +260,8 @@ func _execute_area_freeze(target_pos: Vector2i = Vector2i.ZERO):
var current_lvl = powerup_levels.get(SpecialEffect.AREA_FREEZE, 1)
if center_pos == Vector2i.ZERO:
# Updated: Always 3 tiles ahead as per user request
var distance = 3
# Updated: Always 4 tiles ahead as per user request
var distance = 4
print("[SpecialTiles] Area Freeze logic executing with distance: %d" % distance)
var movement = player.movement_manager
@@ -272,11 +272,9 @@ func _execute_area_freeze(target_pos: Vector2i = Vector2i.ZERO):
var last_dir = player.movement_manager.last_move_direction if movement else Vector2i(0, 1)
center_pos = player.current_position + last_dir * distance
# Allow spawning Area Freeze even out of bounds (user request)
if not enhanced_gridmap.is_position_valid(center_pos):
# Try a bit closer if out of bounds
center_pos = player.current_position + (center_pos - player.current_position).normalized() * 1.0
if not enhanced_gridmap.is_position_valid(center_pos):
return
print("[SpecialTiles] Spawning Area Freeze at out-of-bounds position: ", center_pos)
# 3. Determine Radius based on Level
var radius = 1
-17
View File
@@ -82,19 +82,6 @@ func _setup_btn(effect_id: int, btn: Button):
btn.size_flags_vertical = Control.SIZE_SHRINK_CENTER
btn.custom_minimum_size.y = 80 # Consistent height
# Add Level Label
if not btn.has_node("LevelLabel"):
var lvl_lbl = Label.new()
lvl_lbl.name = "LevelLabel"
lvl_lbl.mouse_filter = Control.MOUSE_FILTER_IGNORE
lvl_lbl.horizontal_alignment = HORIZONTAL_ALIGNMENT_RIGHT
lvl_lbl.vertical_alignment = VERTICAL_ALIGNMENT_BOTTOM
lvl_lbl.set_anchors_preset(Control.PRESET_FULL_RECT)
lvl_lbl.add_theme_font_size_override("font_size", 16)
lvl_lbl.add_theme_color_override("font_outline_color", Color.BLACK)
lvl_lbl.add_theme_constant_override("outline_size", 4)
lvl_lbl.text = "" # Hidden initially
btn.add_child(lvl_lbl)
# Add Keyboard Shortcut Label
@@ -201,10 +188,6 @@ func _on_powerup_unlocked(effect: int, level: int):
btn.modulate = Color.WHITE # Restore color
btn.visible = true # Ensure visible
# Update Level
var lvl_lbl = btn.get_node_or_null("LevelLabel")
if lvl_lbl:
lvl_lbl.text = "Lvl %d" % level
# Enforce 1-slot rule by hiding others
if special_manager_ref: