X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fgameboard.py;h=74abc12e5e82d763faf8f7dfb20df36745356fd4;hb=468218cb2f7bda81e38edc7b4777dbb70d6f694a;hp=a2e37796d7972025c077ef88e4b96f0641bb09a5;hpb=aa858388f65344396a7b81a82198e3a6fbc1efca;p=naja.git diff --git a/naja/gameboard.py b/naja/gameboard.py index a2e3779..74abc12 100644 --- a/naja/gameboard.py +++ b/naja/gameboard.py @@ -19,10 +19,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 +55,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 +64,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): @@ -123,6 +128,10 @@ class GameBoard(object): if self.wins >= self.wins_required: self.end_game(win=True) + def card_used(self, position): + if not self.puzzle: + self.replace_card(position) + def replace_card(self, position): location = LocationCard.new_location(choice(self.locations).copy()) self.board_locations[position] = location