X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fgamestate.py;h=d00c7fc182b8af7887b4f1fab472b38f25ebf35f;hb=5cf4ebcfa0ac4f6a947992dc7871a124913b4671;hp=bbe92d362fa47c9a316afd4d4d52b9fd0957c94a;hpb=00d93ae60dcfb960870d29e8e64ad38d62de935d;p=naja.git diff --git a/naja/gamestate.py b/naja/gamestate.py index bbe92d3..d00c7fc 100644 --- a/naja/gamestate.py +++ b/naja/gamestate.py @@ -3,7 +3,14 @@ The current game state. """ from naja.gameboard import GameBoard -from naja.constants import BITS +from naja.resources import resources, ResourceNotFound + + +def load_location_deck(name): + try: + return resources.get_yaml('location_decks', '%s.yaml' % name) + except ResourceNotFound: + return resources.get_json('location_decks', '%s.json' % name) 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, 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):