The current game state.
"""
-import yaml
+try:
+ import yaml
+except ImportError:
+ yaml = None
+ import json
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)
+ if yaml:
+ with resources.get_file('location_decks', '%s.yaml' % name) as deck_fp:
+ return yaml.safe_load(deck_fp)
+ else:
+ with resources.get_file('location_decks', '%s.json' % name) as deck_fp:
+ return json.load(deck_fp)
class GameState(object):
self.gameboard = gameboard
@classmethod
- def new(cls, **kw):
- locations_deck = load_location_deck('standard')
- return cls(GameBoard.new_game(locations_deck['cards'], **kw))
+ def new(cls, deck='standard', **kw):
+ deck = load_location_deck(deck)
+ return cls(GameBoard.new_game(deck, **kw))
@classmethod
def load(cls, data):