X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fgamestate.py;h=134fba3bad70649c1ed39b6bc08c1c2b535839d0;hb=75d1f94ef500df4bea81d8988757d37221a310dd;hp=8d00756f8c85c318f7d30a224683f75c6b274f76;hpb=16fa2b0b5ca31576688457d51d917718ccfdac36;p=naja.git diff --git a/naja/gamestate.py b/naja/gamestate.py index 8d00756..134fba3 100644 --- a/naja/gamestate.py +++ b/naja/gamestate.py @@ -2,8 +2,15 @@ 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): @@ -11,19 +18,17 @@ 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):