The current game state.
"""
+import yaml
+
from naja.gameboard import GameBoard
-from naja.constants import BITS
+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):
Naja game state.
"""
- def __init__(self):
- # This is a very simple deck to allow testing more drawing logic
- # on tiles. These will need to be replaced with better stuff.
- self.gameboard = GameBoard.new_game(
- locations_definition=[
- {'actions': []},
- {'actions': [{'required_bits': [BITS.CYAN],
- 'action_class': 'DoNothing'}]},
- {'actions': [{'required_bits': [BITS.YELLOW],
- 'action_class': 'DoNothing'}]},
- {'actions': [{'required_bits': [BITS.YELLOW, BITS.MAGENTA],
- 'action_class': 'DoNothing'}]},
- ])
+ def __init__(self, gameboard):
+ self.gameboard = gameboard
+
+ @classmethod
+ def new(cls, **kw):
+ locations_deck = load_location_deck('standard')
+ return cls(GameBoard.new_game(locations_deck['cards'], **kw))
+
+ @classmethod
+ def load(cls, data):
+ return cls(GameBoard.import_game(data))
@property
def player(self):