Add __getitem__ and __setitem__ for WorldDictProxy.
[koperkapel.git] / koperkapel / world.py
index f03bffa1a88e7945e429dc9319c7228096e1dc54..d68294949f46a7d520275a19532737cdc02db7c5 100644 (file)
@@ -25,9 +25,17 @@ class World:
             self._build_roach("roichard", fast=True),
             self._build_roach("roupert"),
         ]
+        state["serums"] = [
+            "smart", "strong", "fast",
+        ]
         state["vehicles"] = {
             "current": "walking",
-            "available": ["walking"],
+            "walking": {
+                "seating": [
+                    "roachel", None, "roeginald",
+                    None, None, None,
+                ]
+            }
         }
         state["level"] = {
             "name": "level1",
@@ -116,6 +124,12 @@ class WorldDictProxy(WorldBaseProxy):
         value = self._state.get(name)
         return _maybe_subproxy(self, name, value)
 
+    def __setitem__(self, name, value):
+        return self.__setattr__(name, value)
+
+    def __getitem__(self, name):
+        return self.__getattr__(name)
+
 
 class WorldListProxy(WorldBaseProxy):
     """ World list proxy that records changes and produces events. """
@@ -125,3 +139,9 @@ class WorldListProxy(WorldBaseProxy):
 
     def __getitem__(self, index):
         return _maybe_subproxy(self, index, self._state[index])
+
+    def __len__(self):
+        return len(self._state)
+
+    def __bool__(self):
+        return bool(self._state)