X-Git-Url: https://git.ctpug.org.za/?p=tabakrolletjie.git;a=blobdiff_plain;f=tabakrolletjie%2Fgamestate.py;h=0713537208ec63eb27572d634c127cd54f0fea73;hp=c678befb968eb83d6520531698ee78a82c4fabcb;hb=6d2f8b1b22e097df92c515dfcf3baa6074483b97;hpb=7fe679f0d81d81b6bc3b8dc20d4b0a62840144f3 diff --git a/tabakrolletjie/gamestate.py b/tabakrolletjie/gamestate.py index c678bef..0713537 100644 --- a/tabakrolletjie/gamestate.py +++ b/tabakrolletjie/gamestate.py @@ -1,16 +1,17 @@ """ The game state. """ -from .loader import loader - class GameState(object): def __init__(self): self._state = { "station": None, "turnips": [], + "seeds": None, } self.harvested = 0 self.eaten = 0 + self.days = 0 + self.resistances = {} @property def station(self): @@ -26,20 +27,55 @@ class GameState(object): @property def seeds(self): - if 'seeds' in self._state: - return self._state['seeds'] - elif (self._state["station"] and - 'seeds' in self._state["station"]["config"]): - self._state['seeds'] = self._state["station"]["config"]["seeds"] - return self._state['seeds'] - return 0 + if self._state["seeds"] is None: + if (self._state["station"] and + "seeds" in self._state["station"]["config"]): + self._state["seeds"] = ( + self._state["station"]["config"]["seeds"]) + else: + self._state["seeds"] = 0 + return self._state["seeds"] @seeds.setter def seeds(self, value): self._state['seeds'] = value - def load_station(self, station): - self._state["station"] = loader.load_station(station) + def set_station(self, station): + self._state["station"] = station + self._state["turnips"] = [] + self._state["seeds"] = None + self.resistances = {} + self.harvested = 0 + self.eaten = 0 + self.days = 0 def get_spawn_positions(self): return self._state["station"]["config"]["spawn positions"] + + @property + def turnip_target(self): + return self._state["station"]["config"]["turnip target"] + + def update_lights(self, lights): + self._state["station"]["lights"] = lights.serialize_lights() + + def serialize(self): + result = { + "station": self._state["station"], + "turnips": self._state["turnips"], + "seeds": self._state['seeds'], + "harvested": self.harvested, + "eaten": self.eaten, + "days": self.days, + "resistances": self.resistances, + } + return result + + def load_from_json(self, json_data): + self._state["station"] = dict(**json_data["station"]) + self._state["turnips"] = json_data["turnips"] + self._state["seeds"] = json_data["seeds"] + self.harvested = json_data["harvested"] + self.eaten = json_data["harvested"] + self.days = json_data["days"] + self.resistances = dict(**json_data["resistances"])