X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=tabakrolletjie%2Flights.py;h=27365095fe1d745f0817f89406bc71f4f67bfc3e;hb=4b40709e4dcc9c9924a93f6c4b5cfd8217c4d2af;hp=bae4df333482aac86024710984bda873fcbc5231;hpb=686cf81109e5dad17af9526c34d82b3bb598c14f;p=tabakrolletjie.git diff --git a/tabakrolletjie/lights.py b/tabakrolletjie/lights.py index bae4df3..2736509 100644 --- a/tabakrolletjie/lights.py +++ b/tabakrolletjie/lights.py @@ -11,7 +11,9 @@ import pygame.locals as pgl import pygame.rect import pygame.transform -from .constants import LIGHT_CATEGORY, FITTINGS_CATEGORY, COLOURS +from .constants import ( + LIGHT_CATEGORY, FITTINGS_CATEGORY, OBSTACLE_CATEGORY, TURNIP_CATEGORY, + COLOURS) from .rays import RayPolyManager from .utils import DetailedTimer from .loader import loader @@ -29,6 +31,16 @@ FITTINGS_FILTER = pymunk.ShapeFilter( # Just match lights, nothing else LIT_BY_FILTER = pymunk.ShapeFilter(mask=LIGHT_CATEGORY) +SPACE_FOR_LIGHT_FILTER = pymunk.ShapeFilter( + mask=FITTINGS_CATEGORY | OBSTACLE_CATEGORY | TURNIP_CATEGORY) + + +def check_space_for_light(space, pos, max_distance): + point_info = space.point_query_nearest( + pos, max_distance, SPACE_FOR_LIGHT_FILTER) + if point_info is not None: + return True + return False class LightManager(object): @@ -245,7 +257,7 @@ 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