X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fworld.py;h=d13b07c10ea5c8e3c81289c0ad33792639136e13;hb=bbb8912588e99e4e7131cc733427563e2c41b95f;hp=f06d3bcbca1f4063e91dd9f300191c3f1f1639e1;hpb=22ebdb05adf0dac866c249ae0c91605573eb1634;p=koperkapel.git diff --git a/koperkapel/world.py b/koperkapel/world.py index f06d3bc..d13b07c 100644 --- a/koperkapel/world.py +++ b/koperkapel/world.py @@ -20,31 +20,29 @@ 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", - "available": ["walking"], } state["level"] = { "name": "level1", } 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 +114,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 +127,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)