From: Simon Cross Date: Sat, 10 Sep 2016 17:50:23 +0000 (+0200) Subject: Lights off when battery dies. X-Git-Tag: tabakrolletjie-v1.0.0~62 X-Git-Url: https://git.ctpug.org.za/?a=commitdiff_plain;h=686cf81109e5dad17af9526c34d82b3bb598c14f;p=tabakrolletjie.git Lights off when battery dies. --- diff --git a/tabakrolletjie/lights.py b/tabakrolletjie/lights.py index d9f2b2b..bae4df3 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() @@ -239,6 +247,9 @@ class BaseLight(object): def base_damage(self): return 5 * self.intensity + def off(self): + self.on = False + def toggle(self): self.colour_pos += 1 if self.colour_pos >= len(self.colour_cycle): diff --git a/tabakrolletjie/scenes/night.py b/tabakrolletjie/scenes/night.py index 692ecf1..115630a 100644 --- a/tabakrolletjie/scenes/night.py +++ b/tabakrolletjie/scenes/night.py @@ -29,6 +29,7 @@ class NightScene(BaseScene): self._obstacles = ObstacleManager(self._space, gamestate) self._lights = LightManager(self._space, gamestate) self._battery = BatteryManager(gamestate) + self.check_battery() self._infobar = InfoBar("day", battery=self._battery, scene=self) self._mould = Boyd(gamestate, self._space) self._turnips = [] @@ -147,6 +148,10 @@ class NightScene(BaseScene): (shadowed_text("Press any key to continue", FONTS["sans"], 24), (350, 240))) + def check_battery(self): + if self._battery.current == 0: + self._lights.battery_dead() + @debug_timer("night.tick") def tick(self, gamestate): if self._do_ticks and not self._paused: @@ -156,6 +161,7 @@ class NightScene(BaseScene): if self._total_ticks % 60 == 0: self._battery.current -= int( self._lights.total_power_usage()) + self.check_battery() self._total_ticks += 1 else: self._end_night()