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"],
+ "walking": {
+ "seating": [
+ "roachel", None, "roeginald",
+ None, None, None,
+ ]
+ }
}
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():
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):
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)