X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fgameboard.py;h=7d8916ed9d328e0401bc6fff5dd2ed8ed7ad2270;hb=023db05135e4a7b6d3bd4726de475dcdbf386372;hp=18ecaf5c62d369af2f8a3d32a0493b45b0926923;hpb=3db9f3464e6010c0b52d55db9dd9d0472d4e27f0;p=naja.git diff --git a/naja/gameboard.py b/naja/gameboard.py index 18ecaf5..7d8916e 100644 --- a/naja/gameboard.py +++ b/naja/gameboard.py @@ -6,6 +6,7 @@ from naja.constants import( from naja.options import options from naja.player import Player from naja import actions +from naja.sound import sound class GameBoard(object): @@ -19,10 +20,11 @@ class GameBoard(object): self.health = state['health'] self.wins = state['wins'] self.locations = [item.copy() for item in state['locations']] - self.puzzle = state['puzzle'] + self.puzzle = state.get('puzzle', False) self.player = player self.board_locations = board_locations - self.player_mode = EXAMINE + self.player_mode = state.get('player_mode', EXAMINE) + self.has_cheated = state.get('cheater', options.cheat_enabled) @classmethod def new_game(cls, deck, @@ -54,7 +56,7 @@ class GameBoard(object): return cls(state, player, board_locations) def export(self): - return { + data = { 'max_health': self.max_health, 'health': self.health, 'wins_required': self.wins_required, @@ -63,7 +65,11 @@ class GameBoard(object): 'puzzle': self.puzzle, 'player': self.player.export(), 'board_locations': self.export_board_locations(), + 'player_mode': self.player_mode, } + if self.has_cheated: + data['cheater'] = True + return data @classmethod def import_locations(cls, locations_definition): @@ -178,11 +184,10 @@ class GameBoard(object): if ROTATION[direction] == ROTATION.CLOCKWISE: new_positions = locations_to_rotate[1:] + [locations_to_rotate[0]] elif ROTATION[direction] == ROTATION.ANTICLOCKWISE: - new_positions = ( - [locations_to_rotate[-1]] + locations_to_rotate[:-1]) + new_positions = ([locations_to_rotate[-1]] + locations_to_rotate[:-1]) for old, new in zip(locations_to_rotate, new_positions): - rotated_locations[old] = self.board_locations[new] + rotated_locations[new] = self.board_locations[old] self.board_locations.update(rotated_locations) @@ -204,6 +209,7 @@ class GameBoard(object): from naja.events import SceneChangeEvent from naja.scenes.lose import LoseScene from naja.scenes.win import WinScene + sound.stop() if win: SceneChangeEvent.post(WinScene) else: