X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fgamestate.py;h=d00c7fc182b8af7887b4f1fab472b38f25ebf35f;hb=9f380d76b4ed0c8aaef84fc783e91003ad485c93;hp=d5c624c4882513ba7cf27201bf8ec29c263429f8;hpb=89e77ffa7dc2f2485049763b780fd5519541daa7;p=naja.git diff --git a/naja/gamestate.py b/naja/gamestate.py index d5c624c..d00c7fc 100644 --- a/naja/gamestate.py +++ b/naja/gamestate.py @@ -2,15 +2,15 @@ The current game state. """ -import yaml - from naja.gameboard import GameBoard -from naja.resources import resources +from naja.resources import resources, ResourceNotFound def load_location_deck(name): - with resources.get_file('location_decks', '%s.yaml' % (name,)) as deck_fp: - return yaml.safe_load(deck_fp) + try: + return resources.get_yaml('location_decks', '%s.yaml' % name) + except ResourceNotFound: + return resources.get_json('location_decks', '%s.json' % name) class GameState(object): @@ -18,12 +18,17 @@ class GameState(object): Naja game state. """ - def __init__(self, data=None): - locations_deck = load_location_deck('standard') - if data is None: - self.gameboard = GameBoard.new_game(locations_deck['cards']) - else: - self.gameboard = GameBoard.import_game(data) + 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):