X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fworld.py;h=8a4af23d1407a08c32c02aef57eb9d493deed882;hb=d9184e67cbac8dc27c6858a37df9ebee5195e007;hp=efb64030587c2bdc95aa697a67fb869dcf766112;hpb=4e59ab6a38bba2eccd59cee633dc4fd391c12100;p=koperkapel.git diff --git a/koperkapel/world.py b/koperkapel/world.py index efb6403..8a4af23 100644 --- a/koperkapel/world.py +++ b/koperkapel/world.py @@ -9,7 +9,7 @@ class World: @property def level(self): - return self._level["level"] + return self._state["level"] @property def roaches(self): @@ -23,7 +23,7 @@ class World: self._build_roach("roichard", quickness=3), ] state["level"] = { - "file": "level1.json", + "name": "level1", } return state @@ -40,5 +40,15 @@ class World: "attributes": attributes, } - def apply_event(self, *args, **kw): - pass + def _apply_set(self, updates): + for name, value in updates.items(): + parts = name.split(".") + obj = self._state + for p in parts[:-1]: + obj = obj[p] + obj[parts[-1]] = value + + def apply_event(self, action, *args, **kw): + if action == "set": + return self._apply_set(*args, **kw) + raise ValueError("Unknown world event action: %r" % (action,))