X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=tabakrolletjie%2Flights.py;h=8ef12655ed5da1958a6187a474c8e9c69ea77cf7;hb=923e068edb27b9b6d35359e496668038a1db6fa4;hp=27f349e65ec5c586738acdcaad946bd020ee6fa7;hpb=693cbe7873f08eaa96ec6a0edd8bba08870307bf;p=tabakrolletjie.git diff --git a/tabakrolletjie/lights.py b/tabakrolletjie/lights.py index 27f349e..8ef1265 100644 --- a/tabakrolletjie/lights.py +++ b/tabakrolletjie/lights.py @@ -36,6 +36,7 @@ class LightManager(object): def __init__(self, space, gamestate): self._space = space + self._battery_dead = False self._lights = [ BaseLight.load(cfg) for cfg in gamestate.station["lights"]] for light in self._lights: @@ -46,7 +47,14 @@ class LightManager(object): self._lights.append(light) light.add(self._space) + def battery_dead(self): + self._battery_dead = True + for light in self._lights: + light.off() + def toggle_nearest(self, *args, **kw): + if self._battery_dead: + return light = self.nearest(*args, **kw) if light: light.toggle() @@ -66,7 +74,7 @@ class LightManager(object): surface = pygame.display.get_surface() pos = pymunk.pygame_util.from_pygame(pos, surface) point_info_list = self._space.point_query( - pos, max_distance, pymunk.ShapeFilter(mask=LIGHT_CATEGORY)) + pos, max_distance, LIT_BY_FILTER) lights = [p.shape.body.light for p in point_info_list] return [ light for light in lights @@ -237,7 +245,10 @@ class BaseLight(object): return 5 * area * self.intensity / 6400 # 80x80 unit area def base_damage(self): - return 5 * self.intensity + return 10 * self.intensity + + def off(self): + self.on = False def toggle(self): self.colour_pos += 1