added button for skipping to day and documented it
[tabakrolletjie.git] / tabakrolletjie / scenes / help.py
index f9b35e5af35916c3ccac28895aa6e6640531fd7e..c58fea548eb8cc1dbcf77f6d17770ca6c12c140d 100644 (file)
@@ -15,16 +15,19 @@ from ..transforms import Multiply, NullTransform, ColourWedges
 
 class HelpItem(object):
     FONT = loader.load_font(FONTS['sans'], size=14)
-    
+
     def __init__(self, imgparts, label, transform=NullTransform()):
         self._img_size = int(imgparts[0])
-        self._img = loader.load_image(*imgparts, transform=transform).convert_alpha()
+        self._img = loader.load_image(
+            *imgparts, transform=transform).convert_alpha()
 
         maxwidth = SCREEN_SIZE[0] / 2 - self._img_size
-        
+
         wrap_width = int(2.25 * maxwidth / self.FONT.get_height())
 
-        self._text = [self.FONT.render(text, True, COLOURS["white"]) for text in wrap(label, wrap_width)]
+        self._text = [
+            self.FONT.render(text, True, COLOURS["white"])
+            for text in wrap(label, wrap_width)]
 
     def render(self, surface, height, x_offset=0):
         surface.blit(self._img, (x_offset, height), None)
@@ -37,41 +40,79 @@ class HelpScene(BaseScene):
 
     def enter(self, gamestate):
         self._space = pymunk.Space()
-        
+
         font_title = loader.load_font(FONTS['bold'], size=32)
-        self._title = font_title.render("Help! What's going on?!", True, COLOURS["white"])
-        
+        self._title = font_title.render(
+            "Help! What's going on?!", True, COLOURS["white"])
+
         self._tools = self.create_tools(gamestate)
         self._items = self.create_items(gamestate)
 
     def create_tools(self, gamestate):
         tools = []
         tools.append(ImageButton(
-            '32', 'exit.png', name='exit', pos=(SCREEN_SIZE[0] - 50, SCREEN_SIZE[1] - 40)))
+            '32', 'exit.png', name='exit',
+            pos=(SCREEN_SIZE[0] - 50, SCREEN_SIZE[1] - 40)))
         return tools
 
     def create_items(self, gamestate):
         items = [
-            HelpItem(("48", "turnip3.png"), "This is a space turnip, the most valuable vegetable in the universe. A crucial ingredient of longevity serum, space navigator tonic and a pink sweet that everyone loves."),
-            HelpItem(("64", "mouldA.png"), "This is Boyd the space mould. He loves turnips. You've disinfected your ship a thousand times, but somehow he shows up on every planet at night to devour your crop. He is vulnerable to light, but beware -- he builds up a resistance if you overuse the same colour."),
-            HelpItem(("32", "seed.png"), "This is a turnip seed. You get a limited number of these at the start of a level. You can plant them, and you can use them to buy lights to protect your crop. Turnips which survive to harvest yield more seeds."),
-            HelpItem(("48", "lamp.png"), "This is a lamp. It comes in many colours, and has some other varying properties. It is powered by your farm's battery during the night. The battery recharges during the day.", transform=Multiply(colour=COLOURS["yellow"])),
-            HelpItem(("48", "spotlight.png"), "This is a spotlight. Unlike a lamp, it has a rotating beam. Lights can be multicoloured, like this one. You can toggle lights on and off at night to conserve power, and toggle the colour of multicoloured lights.", transform=ColourWedges(colours=("red", "green"))),
-            HelpItem(("32", "night.png"), "When you have finished planting seeds and placing lights, you can prepare for Boyd's night-time onslaught by clicking this button."),
-            HelpItem(("32", "pause.png"), "You can pause the game during the night if you need to make a more detailed analysis of why you're losing horribly."),
-            #HelpItem(("", ""), ""),
-            #HelpItem(("", ""), ""),
+            HelpItem(("48", "turnip3.png"), (
+                "This is a space turnip, the most valuable vegetable in the"
+                " universe. A crucial ingredient of longevity serum, space"
+                " navigator tonic and a pink sweet that everyone loves.")),
+            HelpItem(("64", "mouldA.png"), (
+                "This is Boyd the space mould. He loves turnips. You've"
+                " disinfected your ship a thousand times, but somehow he shows"
+                " up on every planet at night to devour your crop. He is"
+                " vulnerable to light, but beware -- he builds up a resistance"
+                " if you overuse the same colour.")),
+            HelpItem(("32", "seed.png"), (
+                "This is a turnip seed. You get a limited number of these at"
+                " the start of a level. You can plant them, and you can use"
+                " them to buy lights to protect your crop. Turnips which"
+                " survive to harvest yield more seeds.")),
+            HelpItem(("48", "lamp.png"), (
+                "This is a lamp. It comes in many colours, and has some other"
+                " varying properties. It is powered by your farm's battery"
+                " during the night. The battery recharges during the day."),
+                transform=Multiply(colour=COLOURS["yellow"])),
+            HelpItem(("48", "spotlight.png"), (
+                "This is a spotlight. Unlike a lamp, it has a rotating beam."
+                " Lights can be multicoloured, like this one. You can toggle"
+                " lights on and off at night to conserve power, and toggle the"
+                " colour of multicoloured lights."),
+                transform=ColourWedges(colours=("red", "green"))),
+            HelpItem(("32", "night.png"), (
+                "When you have finished planting seeds and placing lights, you"
+                " can prepare for Boyd's night-time onslaught by clicking this"
+                " button.")),
+            HelpItem(("32", "pause.png"), (
+                "You can pause the game during the night if you need to make a"
+                " more detailed analysis of why you're losing horribly.")),
+            HelpItem(("32", "day.png"), (
+                "If you have run out of turnips, you can click this button to"
+                " skip to the next day. Or you can keep playing with your lights."
+                " If you have no power left either, or you are completely"
+                " bankrupt, the night will end automatically.")),
         ]
 
         # Special mould assembly
-        items[1]._img.blit(loader.load_image("32", "mouldB.png").convert_alpha(), (30, 30), None)
-        items[1]._img.blit(loader.load_image("32", "eyeballA.png").convert_alpha(), (10, 10), None)
+        items[1]._img.blit(
+            loader.load_image("32", "mouldB.png").convert_alpha(),
+            (30, 30), None)
+        items[1]._img.blit(
+            loader.load_image("32", "eyeballA.png").convert_alpha(),
+            (10, 10), None)
+        items[1]._img.blit(
+            loader.load_image("32", "eyelid.png").convert_alpha(),
+            (10, 10), None)
 
         return items
 
     def render(self, surface, gamestate):
         surface.fill(COLOURS["blue"])
-        
+
         pos = ((surface.get_width() - self._title.get_width()) / 2, 5)
         surface.blit(self._title, pos, None)
 
@@ -80,7 +121,8 @@ class HelpScene(BaseScene):
 
         for item in self._items:
             item.render(surface, height, x_offset)
-            height += max(item._img_size, item.FONT.get_height() * len(item._text))
+            height += max(
+                item._img_size, item.FONT.get_height() * len(item._text))
             height += 5
             if height > SCREEN_SIZE[1]:
                 height = 50