"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.")),
+ ]
+
+ mould = 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."))
+
+ mould._img.blit(
+ loader.load_image("32", "mouldB.png").convert_alpha(),
+ (30, 30), None)
+ mould._img.blit(
+ loader.load_image("32", "eyeballA.png").convert_alpha(),
+ (10, 10), None)
+ mould._img.blit(
+ loader.load_image("32", "eyelid.png").convert_alpha(),
+ (10, 10), None)
+
+ items.append(mould)
+
+ items.extend([
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.")),
+ " survive to harvest yield more seeds. Click on the icon that"
+ " looks like this to start planting seeds. It takes three nights"
+ " for a turnip to mature.")),
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", "pulsatinglamp.png"), (
+ "This is a pulsating lamp. Its light intensity is variable."),
+ transform=Multiply(colour=COLOURS["cyan"])),
HelpItem(("48", "spotlight.png"), (
- "This is a spotlight. Unlike a lamp, it has a rotating beam."
+ "This is a spotlight. Unlike a lamp, it has a beam which is"
+ " pointed in a particular direction. To change the direction of"
+ " a beam, right-click near the spotlight and drag. You can only"
+ " do this during the day. Some spotlights rotate."),
+ transform=Multiply(colour=COLOURS["red"])),
+ HelpItem(("48", "lamp.png"), (
" 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"))),
+ ])
+
+ soil = HelpItem(("48", "square.png"), (
+ "This is soil. You can plant seeds in it and position lights on"
+ " it. Lights and plants can't overlap with each other."))
+ soil._img.blit(
+ loader.load_image("textures", "soil.png").convert_alpha(),
+ (0, 0), None, pgl.BLEND_RGBA_MULT)
+ items.append(soil)
+
+ stone = HelpItem(("48", "square.png"), (
+ "This is a stone wall. It gets in your way. On the other hand, it"
+ " also gets in Boyd's way."))
+ stone._img.blit(
+ loader.load_image("textures", "stone.png").convert_alpha(),
+ (0, 0), None, pgl.BLEND_RGBA_MULT)
+ items.append(stone)
+
+ shrub = HelpItem(("48", "circle.png"), (
+ "This is a shrub. It works exactly like a wall, except that it's"
+ " round."))
+ shrub._img.blit(
+ loader.load_image("textures", "shrub.png").convert_alpha(),
+ (0, 0), None, pgl.BLEND_RGBA_MULT)
+ items.append(shrub)
+
+ items.extend([
+ HelpItem(("32", "spotlight.png"), (
+ "Click on a light icon like this to get a menu of colour options"
+ " available on your level.")),
+ HelpItem(("32", "spotlight.png"), (
+ "Once you have selected a colour option, you will be able to"
+ " place the light."),
+ transform=Multiply(colour=COLOURS["magenta"])),
+ HelpItem(("32", "remove.png"), (
+ "Buyer's remorse? Use this icon to blow up unwanted lights. You"
+ " don't get your money back. Sorry.")),
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"
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.")),
- ]
-
- # 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)
+ 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.")),
+ HelpItem(("32", "exit.png"), (
+ "Click this icon to quit the level in disgust and return to the"
+ " menu.")),
+ ])
return items
height += max(
item._img_size, item.FONT.get_height() * len(item._text))
height += 5
- if height > SCREEN_SIZE[1]:
+ if height > SCREEN_SIZE[1] - 50:
height = 50
x_offset = SCREEN_SIZE[0] / 2
+ for tool in self._tools:
+ tool.render(surface)
+
def event(self, ev, gamestate):
if ev.type == pgl.KEYDOWN:
if ev.key in (pgl.K_q, pgl.K_ESCAPE):