X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fgamestate.py;h=19051a42b8c1d450d4f4b43a0662610f4ad56825;hb=9f6988141b3238d693a6c4ee5db3fb1d4af56ce0;hp=96e55056bf862b5243aed0198bd46e8a0ce097a7;hpb=380c2dd6953b2f0cd06de6a4dd6a30f61121c7a9;p=naja.git diff --git a/naja/gamestate.py b/naja/gamestate.py index 96e5505..19051a4 100644 --- a/naja/gamestate.py +++ b/naja/gamestate.py @@ -2,9 +2,15 @@ The current game state. """ -from .constants import BITS -from .gameboard import GameBoard -from .player import Player +import yaml + +from naja.gameboard import GameBoard +from naja.resources import resources + + +def load_location_deck(name): + with resources.get_file('location_decks', '%s.yaml' % (name,)) as deck_fp: + return yaml.safe_load(deck_fp) class GameState(object): @@ -12,14 +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.player = Player(self.INITIAL_BITS, (0, 0)) - self.gameboard = GameBoard( - self.player, self.MAX_HEALTH, self.WINS_REQUIRED) + 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