X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fworld.py;h=d13b07c10ea5c8e3c81289c0ad33792639136e13;hb=bbb8912588e99e4e7131cc733427563e2c41b95f;hp=28f98b3da91ccad0365c2eb45ef0c12b3373ac23;hpb=caff26b2bd7a76141bd9ebd3258b1941eb30064b;p=koperkapel.git diff --git a/koperkapel/world.py b/koperkapel/world.py index 28f98b3..d13b07c 100644 --- a/koperkapel/world.py +++ b/koperkapel/world.py @@ -20,27 +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", + } 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(): @@ -112,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): @@ -123,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)