Gauntlet UI fixes and cleanser improvements
This commit is contained in:
@@ -1,13 +1,78 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://ddy2r7xto80gq"]
|
||||
[gd_scene load_steps=10 format=3 uid="uid://ddy2r7xto80gq"]
|
||||
|
||||
[ext_resource type="Script" path="res://scripts/controllers/candy_cannon_controller.gd" id="1_canon"]
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_canon"]
|
||||
size = Vector3(1.5, 3, 1.5)
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_base"]
|
||||
albedo_color = Color(0.15, 0.15, 0.2, 1)
|
||||
metallic = 0.8
|
||||
roughness = 0.2
|
||||
|
||||
[sub_resource type="CylinderMesh" id="CylinderMesh_base"]
|
||||
material = SubResource("StandardMaterial3D_base")
|
||||
top_radius = 0.8
|
||||
bottom_radius = 1.2
|
||||
height = 0.5
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_tank"]
|
||||
albedo_color = Color(1, 0.4, 0.8, 1)
|
||||
metallic = 0.2
|
||||
roughness = 0.1
|
||||
emission_enabled = true
|
||||
emission = Color(1, 0.4, 0.8, 1)
|
||||
emission_energy_multiplier = 2.0
|
||||
|
||||
[sub_resource type="SphereMesh" id="SphereMesh_tank"]
|
||||
material = SubResource("StandardMaterial3D_tank")
|
||||
radius = 0.9
|
||||
height = 1.8
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pipe"]
|
||||
albedo_color = Color(0.7, 0.7, 0.8, 1)
|
||||
metallic = 1.0
|
||||
roughness = 0.2
|
||||
|
||||
[sub_resource type="CylinderMesh" id="CylinderMesh_pipe"]
|
||||
material = SubResource("StandardMaterial3D_pipe")
|
||||
top_radius = 0.25
|
||||
bottom_radius = 0.4
|
||||
height = 1.5
|
||||
|
||||
[sub_resource type="TorusMesh" id="TorusMesh_ring"]
|
||||
material = SubResource("StandardMaterial3D_pipe")
|
||||
inner_radius = 0.95
|
||||
outer_radius = 1.15
|
||||
rings = 32
|
||||
tube_segments = 12
|
||||
|
||||
[node name="CandyCannon" type="Node3D"]
|
||||
script = ExtResource("1_canon")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)
|
||||
mesh = SubResource("BoxMesh_canon")
|
||||
[node name="Base" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.25, 0)
|
||||
mesh = SubResource("CylinderMesh_base")
|
||||
|
||||
[node name="Tank" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.4, 0)
|
||||
mesh = SubResource("SphereMesh_tank")
|
||||
|
||||
[node name="Pipe" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.7, 0)
|
||||
mesh = SubResource("CylinderMesh_pipe")
|
||||
|
||||
[node name="Ring1" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.4, 0)
|
||||
mesh = SubResource("TorusMesh_ring")
|
||||
|
||||
[node name="Ring2" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0, 0, 1, 0, 1.4, 0)
|
||||
mesh = SubResource("TorusMesh_ring")
|
||||
|
||||
[node name="Ring3" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0.707107, -0.707107, 0, 0.707107, 0.707107, 0, 0, 0, 1, 0, 1.4, 0)
|
||||
mesh = SubResource("TorusMesh_ring")
|
||||
|
||||
[node name="OmniLight3D" type="OmniLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.8, 0)
|
||||
light_color = Color(1, 0.4, 0.8, 1)
|
||||
light_energy = 3.0
|
||||
omni_range = 8.0
|
||||
|
||||
+43
-38
@@ -13,44 +13,6 @@ anchor_right = 0.5
|
||||
offset_top = 70.0
|
||||
grow_horizontal = 2
|
||||
|
||||
[node name="PhaseLabel" type="Label" parent="TopContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 24
|
||||
theme_override_colors/font_color = Color(1, 0.6, 0.8, 1)
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 6
|
||||
theme_override_fonts/font = ExtResource("1_font")
|
||||
text = "🍬 OPEN ARENA"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="BottomContainer" type="CenterContainer" parent="."]
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -90.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="CleanserHBox" type="HBoxContainer" parent="BottomContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 6
|
||||
|
||||
[node name="CleanserIcon" type="TextureRect" parent="BottomContainer/CleanserHBox"]
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(20, 20)
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="CleanserLabel" type="Label" parent="BottomContainer/CleanserHBox"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 20
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 6
|
||||
theme_override_fonts/font = ExtResource("1_font")
|
||||
text = "Cleanser: 0"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="SlowMoLabel" type="Label" parent="TopContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 18
|
||||
@@ -61,3 +23,46 @@ theme_override_fonts/font = ExtResource("1_font")
|
||||
text = "SLOW-MO"
|
||||
horizontal_alignment = 1
|
||||
visible = false
|
||||
|
||||
[node name="BottomContainer" type="CenterContainer" parent="."]
|
||||
anchors_preset = 7
|
||||
anchor_left = 0.5
|
||||
anchor_top = 1.0
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -120.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="BottomContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 4
|
||||
|
||||
[node name="PhaseLabel" type="Label" parent="BottomContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 24
|
||||
theme_override_colors/font_color = Color(1, 0.6, 0.8, 1)
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 6
|
||||
theme_override_fonts/font = ExtResource("1_font")
|
||||
text = "🍬 OPEN ARENA"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="CleanserHBox" type="HBoxContainer" parent="BottomContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 6
|
||||
alignment = 1
|
||||
|
||||
[node name="CleanserIcon" type="TextureRect" parent="BottomContainer/VBoxContainer/CleanserHBox"]
|
||||
layout_mode = 2
|
||||
custom_minimum_size = Vector2(20, 20)
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="CleanserLabel" type="Label" parent="BottomContainer/VBoxContainer/CleanserHBox"]
|
||||
layout_mode = 2
|
||||
theme_override_font_sizes/font_size = 20
|
||||
theme_override_colors/font_outline_color = Color(0, 0, 0, 1)
|
||||
theme_override_constants/outline_size = 6
|
||||
theme_override_fonts/font = ExtResource("1_font")
|
||||
text = "[E] Cleanser (0)"
|
||||
horizontal_alignment = 1
|
||||
|
||||
@@ -1054,6 +1054,16 @@ func apply_slow_effect(duration: float = 3.0):
|
||||
|
||||
print("Player %s is slowed for %.1f seconds" % [name, duration])
|
||||
|
||||
@rpc("any_peer", "call_local")
|
||||
@rpc("any_peer", "call_local")
|
||||
func remove_slow_effect():
|
||||
slow_timer = 0.0
|
||||
self.is_slowed = false
|
||||
if movement_manager:
|
||||
# INSTANT response: restore speed multiplier to 1.0 immediately
|
||||
movement_manager.set_speed_multiplier(1.0)
|
||||
print("Player %s slow effect removed early" % name)
|
||||
|
||||
func playerboard_is_empty() -> bool:
|
||||
for item in playerboard:
|
||||
if item != -1:
|
||||
@@ -1131,6 +1141,16 @@ func _find_valid_drop_position() -> Vector2i:
|
||||
var item_cell = Vector3i(pos.x, 1, pos.y)
|
||||
if enhanced_gridmap.get_cell_item(item_cell) == -1:
|
||||
if not is_position_occupied(pos):
|
||||
# Gauntlet Mode explicit overrides
|
||||
var gm = null
|
||||
var main_gauntlet = get_tree().root.get_node_or_null("Main")
|
||||
if main_gauntlet and main_gauntlet.get("gauntlet_manager"):
|
||||
gm = main_gauntlet.gauntlet_manager
|
||||
if gm and gm.is_active:
|
||||
if pos.x == 0 or pos.x == gm.ARENA_COLUMNS - 1 or pos.y == 0 or pos.y == gm.ARENA_ROWS - 1:
|
||||
continue
|
||||
if gm._is_npc_zone(pos):
|
||||
continue
|
||||
return pos
|
||||
|
||||
return Vector2i(-1, -1)
|
||||
|
||||
Reference in New Issue
Block a user