diff --git a/entities/game/card_template/scripts/CardTemplate.gd b/entities/game/card_template/scripts/CardTemplate.gd index e9faeaf..224ebc4 100644 --- a/entities/game/card_template/scripts/CardTemplate.gd +++ b/entities/game/card_template/scripts/CardTemplate.gd @@ -238,7 +238,7 @@ func signal_repeater_fully_hidden() -> void: fully_hidden.emit() func game_state_changed(new_state: GameEnum.State) -> void: - if new_state == GameEnum.State.TURN_COMPLETED: + if new_state == GameEnum.State.TURN_FREEZE: _valid_game_state = false freeze_card() if new_state == GameEnum.State.TURN_END: diff --git a/entities/game/memory_game/scripts/GameCardGrid.gd b/entities/game/memory_game/scripts/GameCardGrid.gd index 6449b93..5f4170e 100644 --- a/entities/game/memory_game/scripts/GameCardGrid.gd +++ b/entities/game/memory_game/scripts/GameCardGrid.gd @@ -129,6 +129,9 @@ func trigger_card_at_position(grid_position: Point) -> void: func remove_cards_from_board(grid_positions: Array[Point]) -> void: for grid_position: Point in grid_positions: remove_card_from_board(grid_position) + for card: CardTemplate in _get_all_cards(): + if card.is_playing_animation(): + await card.about_to_get_delete all_matching_cards_removed.emit() func remove_card_from_board(grid_position: Point) -> void: diff --git a/entities/game/memory_game/scripts/GameStateMachine.gd b/entities/game/memory_game/scripts/GameStateMachine.gd index 2246337..4d58fe7 100644 --- a/entities/game/memory_game/scripts/GameStateMachine.gd +++ b/entities/game/memory_game/scripts/GameStateMachine.gd @@ -35,17 +35,16 @@ func card_was_clicked() -> void: print("card clicked") _clicked_card_amount += 1 if _clicked_card_amount >= _cards_per_turn: + _change_state(GameEnum.State.TURN_FREEZE) _change_state(GameEnum.State.TURN_COMPLETED) _clicked_card_amount = 0 func matches_found() -> void: print("match found") - _change_state(GameEnum.State.TURN_FREEZE) _change_state(GameEnum.State.TURN_START) func no_matches() -> void: print("no matches") - _change_state(GameEnum.State.TURN_FREEZE) _change_state(GameEnum.State.PREPARE_TURN_END) _show_round_ended_banner() @@ -56,7 +55,6 @@ func board_ready() -> void: func board_empty() -> void: print("board empty") - _change_state(GameEnum.State.TURN_FREEZE) _change_state(GameEnum.State.PREPARE_TURN_END) _change_state(GameEnum.State.GAME_END) diff --git a/shared/entities/game_state/scripts/GameStateEnum.gd b/shared/entities/game_state/scripts/GameStateEnum.gd index c13ebb7..ce525ec 100644 --- a/shared/entities/game_state/scripts/GameStateEnum.gd +++ b/shared/entities/game_state/scripts/GameStateEnum.gd @@ -3,8 +3,8 @@ class_name GameEnum enum State { GAME_INIT = 0, # Can only lead to "start" TURN_START = 10, # Can only go to turn completed - TURN_COMPLETED = 20, # Can only go to freeze - TURN_FREEZE = 30, # Can go to prepare turn end or turn start + TURN_FREEZE = 20, # Can go to turn completed turn completed + TURN_COMPLETED = 30, # Can only go to prepare turn end or turn start PREPARE_TURN_END = 40, # Can go to turn end or end game TURN_END = 50, # Can go to turn start GAME_END = 1000