func _find_valid_drop_position() -> Vector2i: # Try random adjacent cells var neighbors = enhanced_gridmap.get_neighbors(current_position, 0) neighbors.shuffle() for neighbor in neighbors: var pos = neighbor.position # Check item layer 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)