fix the overlapping input

This commit is contained in:
2025-01-31 16:00:32 +08:00
parent 552d32ff70
commit cf389135c0
4 changed files with 220 additions and 82 deletions
+23 -16
View File
@@ -110,21 +110,25 @@ func setup_playerboard_ui():
slot.get_child(2).hide()
func set_action_state(new_state):
if not local_player_character or not local_player_character.is_multiplayer_authority() or current_action_state == new_state or local_player_character.action_points <= 0:
if not local_player_character or not local_player_character.is_multiplayer_authority():
return
if local_player_character.is_bot or local_player_character.is_in_group("Bots"):
current_action_state = new_state
return
if current_action_state == new_state or local_player_character.action_points <= 0:
return
current_action_state = new_state
if local_player_character.is_bot == false:
local_player_character.clear_highlights()
local_player_character.clear_playerboard_highlights()
local_player_character.clear_highlights()
local_player_character.clear_playerboard_highlights()
match new_state:
ActionState.MOVING:
if local_player_character.is_bot == false:
local_player_character.highlight_movement_range()
local_player_character.highlight_movement_range()
ActionState.GRABBING:
if local_player_character.is_bot == false:
local_player_character.highlight_adjacent_cells()
local_player_character.highlight_adjacent_cells()
if local_player_character.has_item_at_current_position():
local_player_character.highlighted_cells.append(local_player_character.current_position)
local_player_character.enhanced_gridmap.set_cell_item(
@@ -132,15 +136,12 @@ func set_action_state(new_state):
local_player_character.enhanced_gridmap.hover_item
)
ActionState.PUTTING:
if local_player_character.is_bot == false:
local_player_character.highlight_occupied_playerboard_slots()
local_player_character.highlight_occupied_playerboard_slots()
ActionState.RANDOMIZING:
if local_player_character.is_bot == false:
local_player_character.highlight_random_valid_cells()
local_player_character.highlight_random_valid_cells()
ActionState.ARRANGING:
show_arrangement_ui()
if local_player_character.is_bot == false:
local_player_character.highlight_occupied_playerboard_slots()
local_player_character.highlight_occupied_playerboard_slots()
func update_button_states():
if not local_player_character or local_player_character.is_in_group("Bots"):
@@ -388,12 +389,18 @@ func set_current_turn(player_id):
return
for player in get_tree().get_nodes_in_group("Players"):
if player.name == str(player_id):
player.is_my_turn = true
var is_current_turn = player.name == str(player_id)
player.is_my_turn = is_current_turn
# Only reset state for human players
if is_current_turn and not (player.is_bot or player.is_in_group("Bots")):
player.action_points = 2
player.has_moved_this_turn = false
player.has_performed_action = false
player.start_turn()
# Clear any existing highlights from other players
player.clear_highlights()
player.clear_playerboard_highlights()
else:
player.is_my_turn = false