Merge branch 'master' of ctpug:tabakrolletjie
[tabakrolletjie.git] / tabakrolletjie / lights.py
index 27f349e65ec5c586738acdcaad946bd020ee6fa7..8ef12655ed5da1958a6187a474c8e9c69ea77cf7 100644 (file)
@@ -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