diff --git a/controllers/game/modes/8_ball.gd b/controllers/game/modes/8_ball.gd index 78df48a..498b98b 100644 --- a/controllers/game/modes/8_ball.gd +++ b/controllers/game/modes/8_ball.gd @@ -21,11 +21,15 @@ func process_ball(ball: Node3D) -> void: func handle_switch_user() -> void: push_warning("Balls reaped: ", balls_reaped.size() ) push_warning("Balls sunk: ", balls_sunk.size() ) + var is_player_1: bool = "Player 1" == get_player() var switch_player: bool = true if not balls_reaped.is_empty(): for ball_name in balls_reaped: - ball_states[ball_name]["points"] = -ball_states[ball_name]["points"] + if is_player_1: + player_1_points -= ball_states[ball_name]["points"] + else: + player_2_points -= ball_states[ball_name]["points"] balls_reaped.clear() @@ -43,9 +47,8 @@ func handle_switch_user() -> void: if switch_player: Globals.game_state.switch_active_player() - turn_count += 1 - else: - turn_count += 1 + + turn_count += 1 func process_win_condition() -> void: pass diff --git a/controllers/game/modes/9_ball.gd b/controllers/game/modes/9_ball.gd index dfe6c3c..5a176b6 100644 --- a/controllers/game/modes/9_ball.gd +++ b/controllers/game/modes/9_ball.gd @@ -21,11 +21,15 @@ func process_ball(ball: Node3D) -> void: func handle_switch_user() -> void: push_warning("Balls reaped: ", balls_reaped.size() ) push_warning("Balls sunk: ", balls_sunk.size() ) + var is_player_1: bool = "Player 1" == get_player() var switch_player: bool = true if not balls_reaped.is_empty(): for ball_name in balls_reaped: - ball_states[ball_name]["points"] = -ball_states[ball_name]["points"] + if is_player_1: + player_1_points -= ball_states[ball_name]["points"] + else: + player_2_points -= ball_states[ball_name]["points"] balls_reaped.clear() @@ -43,9 +47,8 @@ func handle_switch_user() -> void: if switch_player: Globals.game_state.switch_active_player() - turn_count += 1 - else: - turn_count += 1 + + turn_count += 1 func process_win_condition() -> void: pass diff --git a/controllers/game/modes/free_ball.gd b/controllers/game/modes/free_ball.gd index 6ff5d76..540b613 100644 --- a/controllers/game/modes/free_ball.gd +++ b/controllers/game/modes/free_ball.gd @@ -13,16 +13,24 @@ func process_ball(ball: Node3D) -> void: func handle_switch_user() -> void: push_warning("Balls reaped: ", balls_reaped.size() ) push_warning("Balls sunk: ", balls_sunk.size() ) + var is_player_1: bool = "Player 1" == get_player() var switch_player: bool = true if not balls_reaped.is_empty(): for ball_name in balls_reaped: - ball_states[ball_name]["points"] = -ball_states[ball_name]["points"] + if is_player_1: + player_1_points -= ball_states[ball_name]["points"] + else: + player_2_points -= ball_states[ball_name]["points"] balls_reaped.clear() if not balls_sunk.is_empty(): - # TODO: Handle points, etc + for ball_name in balls_sunk: + if is_player_1: + player_1_points += ball_states[ball_name]["points"] + else: + player_2_points += ball_states[ball_name]["points"] switch_player = false balls_sunk.clear() @@ -33,9 +41,8 @@ func handle_switch_user() -> void: if switch_player: Globals.game_state.switch_active_player() - turn_count += 1 - else: - turn_count += 1 + + turn_count += 1 func process_win_condition() -> void: pass diff --git a/controllers/game/modes/snooker.gd b/controllers/game/modes/snooker.gd index 4ffdd44..c90dad4 100644 --- a/controllers/game/modes/snooker.gd +++ b/controllers/game/modes/snooker.gd @@ -25,7 +25,7 @@ func generate_ball_states() -> Dictionary: var ball_name = COLORED_BALLS[i] var points = COLORED_BALLS_POINTS[i] - state[ball_name] = ball_states.duplicate_deep() + state[ball_name] = BALL_STATE.duplicate_deep() state[ball_name]["points"] = points # NOTE: Red balls @@ -60,16 +60,25 @@ func process_ball(ball: Node3D) -> void: func handle_switch_user() -> void: push_warning("Balls reaped: ", balls_reaped.size() ) push_warning("Balls sunk: ", balls_sunk.size() ) + var is_player_1: bool = "Player 1" == get_player() var switch_player: bool = true if not balls_reaped.is_empty(): for ball_name in balls_reaped: - ball_states[ball_name]["points"] = -ball_states[ball_name]["points"] + if is_player_1: + player_1_points -= ball_states[ball_name]["points"] + else: + player_2_points -= ball_states[ball_name]["points"] balls_reaped.clear() if not balls_sunk.is_empty(): - # TODO: Handle points, etc, insure color ball not sunk before red ball + # NOTE: Handle points, etc, insure color ball not sunk before red ball + for ball_name in balls_sunk: + if is_player_1: + player_1_points += ball_states[ball_name]["points"] + else: + player_2_points += ball_states[ball_name]["points"] switch_player = false balls_sunk.clear() @@ -80,9 +89,8 @@ func handle_switch_user() -> void: if switch_player: Globals.game_state.switch_active_player() - turn_count += 1 - else: - turn_count += 1 + + turn_count += 1 func process_win_condition() -> void: pass