from server.Files import save_file import os class GameStorage: def __init__(self, snake:str, path:str): self.snake_type = snake self.folder = path def start_new_game(self, game_type:dict, game_board:dict, snake:dict): self.game_type = game_type self.start_position = snake self.game_board = [game_board] self.moves = [] def add_moves(self, game_board:dict, my_move:str): self.game_board.append(game_board) self.moves.append(my_move) def add_end_state(self, game_board:dict, snake_history_state:list[dict]): self.game_board.append(game_board) self.snake_history = snake_history_state def set_winner_snake_name(self, snakes:list[dict]): if self.start_position["id"] in [ x["id"] for x in snakes]: self.winner_snake_names = "me" else: self.winner_snake_names = [ x["name"] for x in snakes] def save(self, path:str, callback=None, **kwargs): save_file(os.path.join(self.folder, path), { "snake": { "type": self.snake_type, "choices": self.snake_history, }, "game": { "type": self.game_type, "snake_start": self.start_position, "gameboard": self.game_board, "my_moves": self.moves, }, "winner": self.winner_snake_names, }, callback=callback, **kwargs)