From 65d6da05d2a8526f65f5c3e1635202ae40fbf4b0 Mon Sep 17 00:00:00 2001 From: Simon Cross Date: Fri, 4 Mar 2016 23:39:33 +0200 Subject: [PATCH] Color roaches according to their abilities. --- koperkapel/roaches.py | 11 +++++++++-- koperkapel/world.py | 26 ++++++++++++-------------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/koperkapel/roaches.py b/koperkapel/roaches.py index 904b8c7..20220c4 100644 --- a/koperkapel/roaches.py +++ b/koperkapel/roaches.py @@ -10,6 +10,7 @@ ROACH_COLORS = { "blue": (0, 0, 255, 255), "green": (0, 255, 0, 255), "purple": (255, 0, 255, 255), + "brown": (170, 68, 0, 255), } @@ -37,8 +38,14 @@ class RoachFactory: self.suffix = suffix self.frames = 4 - def roach_color(self, roach_data): - return random.choice(list(ROACH_COLORS.values())) + def roach_color(self, roach): + if roach.smart: + return ROACH_COLORS["blue"] + elif roach.fast: + return ROACH_COLORS["green"] + elif roach.strong: + return ROACH_COLORS["purple"] + return ROACH_COLORS["brown"] def assemble_frame(self, i, color, roach_data): roach = images.load("roach%s/roach_%d" % (self.suffix, i + 1)) diff --git a/koperkapel/world.py b/koperkapel/world.py index f06d3bc..f03bffa 100644 --- a/koperkapel/world.py +++ b/koperkapel/world.py @@ -20,9 +20,10 @@ 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["vehicles"] = { "current": "walking", @@ -33,18 +34,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 +112,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): -- 2.34.1