diff --git a/socha/api/plugin/penguins/game_state.py b/socha/api/plugin/penguins/game_state.py index b94a2e9..f255a3d 100644 --- a/socha/api/plugin/penguins/game_state.py +++ b/socha/api/plugin/penguins/game_state.py @@ -1,5 +1,6 @@ import _pickle as pickle import logging +from dataclasses import dataclass from typing import List, Optional from socha.api.plugin.penguins.board import Board @@ -119,12 +120,14 @@ def perform_move(self, move: Move) -> 'GameState': """ if self.is_valid_move(move) and self.current_team.name == move.team_enum: new_board = self.board.move(move) - new_first_team = pickle.loads(pickle.dumps(self.first_team, protocol=-1)) - new_second_team = pickle.loads(pickle.dumps(self.second_team, protocol=-1)) + new_first_team: Team = pickle.loads(pickle.dumps(self.first_team, protocol=-1)) + new_second_team: Team = pickle.loads(pickle.dumps(self.second_team, protocol=-1)) if self.current_team.name == TeamEnum.ONE: self._update_team(new_first_team, move, new_board) else: self._update_team(new_second_team, move, new_board) + new_first_team.opponent = new_second_team + new_second_team.opponent = new_first_team new_turn = self.turn + 1 new_last_move = move return GameState(board=new_board, turn=new_turn, first_team=new_first_team, second_team=new_second_team, diff --git a/tests/test_penguins.py b/tests/test_penguins.py index dc2127e..2948073 100644 --- a/tests/test_penguins.py +++ b/tests/test_penguins.py @@ -460,7 +460,7 @@ def test_other_team(self): move = Move(team_enum=TeamEnum.ONE, from_value=None, to_value=CartesianCoordinate(0, 0).to_hex()) new_game_state = self.game_state.perform_move(move) - self.assertEqual(new_game_state.other_team, self.first_team) + self.assertNotEqual(new_game_state.other_team, self.first_team) move = Move(team_enum=TeamEnum.TWO, from_value=None, to_value=HexCoordinate(2, 2)) new_game_state = new_game_state.perform_move(move)