X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fgamestate.py;h=d00c7fc182b8af7887b4f1fab472b38f25ebf35f;hb=a6de62bab3beb608b3fd9f975947f4a46ec5d1c9;hp=dabf34a9c23311c6302d06242dc2688dce5d50b8;hpb=a7257f7008fb5e2a8203c996dd2545b737228594;p=naja.git diff --git a/naja/gamestate.py b/naja/gamestate.py index dabf34a..d00c7fc 100644 --- a/naja/gamestate.py +++ b/naja/gamestate.py @@ -2,8 +2,15 @@ The current game state. """ -from naja.constants import BITS from naja.gameboard import GameBoard +from naja.resources import resources, ResourceNotFound + + +def load_location_deck(name): + try: + return resources.get_yaml('location_decks', '%s.yaml' % name) + except ResourceNotFound: + return resources.get_json('location_decks', '%s.json' % name) class GameState(object): @@ -11,21 +18,22 @@ class GameState(object): Naja game state. """ - INITIAL_BITS = ( - BITS.NORTH | BITS.SOUTH | - BITS.EAST | BITS.WEST - ) - MAX_HEALTH = 4 - WINS_REQUIRED = 4 - - def __init__(self): - self.gameboard = GameBoard.new_game( - initial_bits=self.INITIAL_BITS, - initial_pos=(2, 2), - max_health=self.MAX_HEALTH, - wins_required=self.WINS_REQUIRED, - locations_definition=[]) # TODO: we will need some of these :) + def __init__(self, gameboard): + self.gameboard = gameboard + + @classmethod + def new(cls, deck='standard', **kw): + deck = load_location_deck(deck) + return cls(GameBoard.new_game(deck, **kw)) + + @classmethod + def load(cls, data): + return cls(GameBoard.import_game(data)) @property def player(self): return self.gameboard.player + + @property + def board_locations(self): + return self.gameboard.board_locations