Merge branch 'master' of ctpug.org.za:tabakrolletjie
authorSimon Cross <hodgestar@gmail.com>
Sat, 10 Sep 2016 19:06:46 +0000 (21:06 +0200)
committerSimon Cross <hodgestar@gmail.com>
Sat, 10 Sep 2016 19:06:46 +0000 (21:06 +0200)
1  2 
tabakrolletjie/scenes/night.py

index e78ba815c3294219efb0a4a421e0850969a725c9,674d0742c4d1b5826b4e94232057ee3f2a224139..e4cc73384b9c433f61755cfd16fe73a35226770f
@@@ -8,7 -8,7 +8,7 @@@ import pymun
  from .base import BaseScene
  from ..battery import BatteryManager
  from ..lights import LightManager
 -from ..infobar import InfoBar
 +from ..infobar import InfoBar, CountDownBar
  from ..obstacles import ObstacleManager
  from ..enemies import Boyd
  from ..events import SceneChangeEvent
@@@ -17,14 -17,12 +17,14 @@@ from ..loader import loade
  from ..transforms import Overlay
  from ..turnip import Turnip
  from ..widgets import ImageButton
 -from ..constants import NIGHT_LENGTH, DEBUG, FONTS, SCREEN_SIZE, FPS
 +from ..constants import (
 +    NIGHT_LENGTH, NIGHT_LENGTH_HOURS, DEBUG, FONTS, SCREEN_SIZE, FPS)
  
  
  class NightScene(BaseScene):
  
      DARKNESS = Overlay(colour=(0, 0, 0, 150))
 +    HOURS_PER_TICK = float(NIGHT_LENGTH_HOURS) / NIGHT_LENGTH
  
      def enter(self, gamestate):
          self._space = pymunk.Space()
@@@ -33,7 -31,6 +33,7 @@@
          self._battery = BatteryManager(gamestate)
          self.check_battery()
          self._infobar = InfoBar("day", battery=self._battery, scene=self)
 +        self._countdownbar = CountDownBar("h")
          self._mould = Boyd(gamestate, self._space)
          self._turnips = []
          for turnip_data in gamestate.turnips:
              '32', 'exit.png', name='exit', pos=(SCREEN_SIZE[0] - 50, y)))
          return tools
  
+     def add_day_button(self):
+         y = SCREEN_SIZE[1] - 40
+         self._tools.append(ImageButton(
+             '32', 'day.png', name='day', pos=(SCREEN_SIZE[0] - 200, y)))
      @property
      def turnip_count(self):
          return len(self._turnips)
      def power_usage(self):
          return int(self._lights.total_power_usage())
  
 +    def remaining_hours(self):
 +        return int(round(
 +            (NIGHT_LENGTH - self._total_ticks) * self.HOURS_PER_TICK))
 +
      @debug_timer("night.render")
      def render(self, surface, gamestate):
          surface.blit(self._soil, (0, 0))
@@@ -89,7 -87,6 +94,7 @@@
          self._obstacles.render(surface)
          self._lights.render_fittings(surface)
          self._infobar.render(surface, gamestate)
 +        self._countdownbar.render(surface, self.remaining_hours())
  
          for tool in self._tools:
              tool.render(surface)
                          elif tool.name == 'exit':
                              from .menu import MenuScene
                              SceneChangeEvent.post(scene=MenuScene())
+                         elif tool.name == 'day':
+                             self._to_day()
  
      def toggle_pause(self):
          self._paused = not self._paused
                  self._end_night()
              if not self._mould.alive():
                  self._end_night()
+             if not self.turnip_count:
+                 self.add_day_button()
+             if not self.turnip_count and not self._battery.current:
+                 self._end_night()
  
      def exit(self, gamestate):
          turnip_data = [turnip.serialize() for turnip in self._turnips]