From 3853962e4a67faa973afa3928620b8048fcd5c56 Mon Sep 17 00:00:00 2001 From: Yogi Wiguna Date: Thu, 12 Mar 2026 12:30:29 +0800 Subject: [PATCH] feat: Implement initial main game scene with gridmap, player, and core managers. --- scenes/main.gd | 112 -- scenes/main.tscn | 100 -- scenes/main.tscn9976614706.tmp | 1888 +++++++++++++++++++++ scenes/player.gd | 5 - scripts/managers/player_action_manager.gd | 8 - scripts/managers/special_tiles_manager.gd | 10 +- scripts/ui/powerup_inventory_ui.gd | 17 - 7 files changed, 1892 insertions(+), 248 deletions(-) create mode 100644 scenes/main.tscn9976614706.tmp diff --git a/scenes/main.gd b/scenes/main.gd index c12cd99..c150eae 100644 --- a/scenes/main.gd +++ b/scenes/main.gd @@ -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 diff --git a/scenes/main.tscn b/scenes/main.tscn index 3aaa088..b2c5c69 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -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"] diff --git a/scenes/main.tscn9976614706.tmp b/scenes/main.tscn9976614706.tmp new file mode 100644 index 0000000..3aaa088 --- /dev/null +++ b/scenes/main.tscn9976614706.tmp @@ -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"] diff --git a/scenes/player.gd b/scenes/player.gd index a9bc656..36c23ac 100644 --- a/scenes/player.gd +++ b/scenes/player.gd @@ -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): diff --git a/scripts/managers/player_action_manager.gd b/scripts/managers/player_action_manager.gd index 486c140..6591561 100644 --- a/scripts/managers/player_action_manager.gd +++ b/scripts/managers/player_action_manager.gd @@ -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") diff --git a/scripts/managers/special_tiles_manager.gd b/scripts/managers/special_tiles_manager.gd index b2d2ba3..b04a1d4 100644 --- a/scripts/managers/special_tiles_manager.gd +++ b/scripts/managers/special_tiles_manager.gd @@ -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 diff --git a/scripts/ui/powerup_inventory_ui.gd b/scripts/ui/powerup_inventory_ui.gd index ef64ee0..c4359b5 100644 --- a/scripts/ui/powerup_inventory_ui.gd +++ b/scripts/ui/powerup_inventory_ui.gd @@ -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: