Gauntlet UI fixes and cleanser improvements

This commit is contained in:
2026-06-28 18:50:49 +08:00
parent f0ba6c2b54
commit 8b9efa1165
16 changed files with 585 additions and 105 deletions
+20
View File
@@ -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)