X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fgamestate.py;h=c3bc0ce96b75c27bd14bbe49b3daad3c20ee0ef9;hb=5dd0651aca74ffdac3c6c069fde62e43dc6960bd;hp=4e892f883ef4cf7ab456a871cda2a13f37c5ca7b;hpb=7ffa20720668ad9e8701d0b5f98a2e3161132423;p=naja.git diff --git a/naja/gamestate.py b/naja/gamestate.py index 4e892f8..c3bc0ce 100644 --- a/naja/gamestate.py +++ b/naja/gamestate.py @@ -2,7 +2,15 @@ The current game state. """ +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): @@ -10,10 +18,22 @@ class GameState(object): Naja game state. """ - def __init__(self): - self.gameboard = GameBoard.new_game( - locations_definition=[]) # TODO: we will need some of these :) + def __init__(self, gameboard): + self.gameboard = gameboard + + @classmethod + def new(cls, deck='standard', **kw): + locations_deck = load_location_deck(deck) + return cls(GameBoard.new_game(locations_deck['cards'], **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