X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fworld.py;h=6a81f4c8a958fff21d419a1ee762c653e14828df;hb=0f2d2e9c4d31d58d0c0cfe1eb7327ce430a61dbd;hp=f06d3bcbca1f4063e91dd9f300191c3f1f1639e1;hpb=22ebdb05adf0dac866c249ae0c91605573eb1634;p=koperkapel.git diff --git a/koperkapel/world.py b/koperkapel/world.py index f06d3bc..6a81f4c 100644 --- a/koperkapel/world.py +++ b/koperkapel/world.py @@ -20,9 +20,13 @@ class World: def _build_initial_state(self): state = {} state["roaches"] = [ - self._build_roach("roachel", intelligence=3), - self._build_roach("roeginald", strength=3), - self._build_roach("roichard", quickness=3), + self._build_roach("roachel", smart=True), + self._build_roach("roeginald", strong=True), + self._build_roach("roichard", fast=True), + self._build_roach("roupert"), + ] + state["serums"] = [ + "smart", "strong", "fast", ] state["vehicles"] = { "current": "walking", @@ -33,18 +37,13 @@ class World: } return state - def _build_roach(self, name, **kw): - attributes = { - "intelligence": 1, - "strength": 1, - "quickness": 1, - "health": 5, - } - attributes.update(kw) - return { + def _build_roach(self, name, health=5, **kw): + roach = { "name": name, - "attributes": attributes, + "health": health, } + roach.update(kw) + return roach def _apply_set(self, updates): for name, value in updates.items(): @@ -116,7 +115,9 @@ class WorldDictProxy(WorldBaseProxy): self._top._record_change("%s%s" % (self._prefix, name), value) def __getattr__(self, name): - return _maybe_subproxy(self, name, self._state[name]) + # return None for attributes that don't exist + value = self._state.get(name) + return _maybe_subproxy(self, name, value) class WorldListProxy(WorldBaseProxy): @@ -127,3 +128,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)