from .serums import roach_serum_color
+def roach_by_name(world, roach_name):
+ roaches = [r for r in world.roaches if r.name == roach_name]
+ if not roaches:
+ return None
+ return roaches[0]
+
+
class RoachActor(OrientatedSurfActor):
def __init__(self, frames):
self._frames = frames
self.surf = self._frames[self._frame]
+ class WorldRoach(object):
+ """A roach proxy with no properties for display on the game level."""
+
+ def __init__(self):
+ self.smart = False
+ self.strong = False
+ self.fast = False
+
+
class RoachFactory:
def __init__(self, suffix, frames=4):
t32_roaches = RoachFactory("_32")
t21_roaches = RoachFactory("_21")
big_roaches = RoachFactory("_big")
+ roaches_quartet = RoachFactory("_quartet")
+ roaches_nonet = RoachFactory("_nonet")
def __init__(self):
self.seats = self.init_seats()
+ self.game_pos = (0, 0)
def roach_management_overlay(self):
return Actor("vehicles/%s/background" % (self.vehicle_type,))
# line below records new seating on the world proxy
vehicle.seating = seating
+ def roach_at(self, world, seat_pos):
+ roach_seating = world.vehicles[self.vehicle_type].seating
+ if seat_pos >= len(roach_seating):
+ return None
+ return roach_seating[seat_pos]
+
_vehicle_types = {}
@classmethod
from .walking import Walking
cls.register(Walking)
+ def get_avatar(self, world):
+ raise NotImplementedError("Vehicles should know how to create their own avatars.")
+
class Seat:
""" A space in a vehicle for a roach.