annotate gamelib/helpscreen.py @ 579:0e552e7e06fe

Use constant vertical position for buttons
author Neil Muller <drnlmuller@gmail.com>
date Sat, 28 Nov 2009 20:52:22 +0000
parents ecad90bbdc61
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
1 """Help screen."""
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
2
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
3 from pgu import gui
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
4 import pygame
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
5 import constants
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
6 import imagecache
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
7
465
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
8 HELP = [
574
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
9 """Welcome to %s!
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
10
574
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
11 INTRODUCTION:
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
12
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
13 The aim of the game is to make as much money as possible from your chicken
572
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
14 farm. The problem is that chickens are delicious and foxes want to eat them.
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
15 Since hiring guards is too expensive and too unreliable, the obvious solution
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
16 is to help the chickens defend themselves.
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
17
471
c34d53edfa12 Tweak help info
Neil Muller <drnlmuller@gmail.com>
parents: 465
diff changeset
18 You lose if you end a night with no chickens left.
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
19
572
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
20 Check the in-game controls reference for information about keys and mouse buttons!
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
21
471
c34d53edfa12 Tweak help info
Neil Muller <drnlmuller@gmail.com>
parents: 465
diff changeset
22 """ % constants.NAME,
c34d53edfa12 Tweak help info
Neil Muller <drnlmuller@gmail.com>
parents: 465
diff changeset
23
574
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
24 """BIOLOGY AND ECONOMICS:
572
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
25
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
26 Chickens only lay eggs in henhouses. An egg must be incubated for two days to
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
27 hatch. Chickens that hatch in already full henhouses are moved outside. If there
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
28 is no space left next to the henhouse, they die immediately from overcrowding.
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
29
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
30 Chickens have short attention spans, and will stray from where you put them at
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
31 the end of the day if they are out in the open.
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
32
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
33 You can sell chickens and eggs. Only one egg per chicken will hatch; the excess
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
34 is sold automatically. The fox pelts your chickens acquire during their violent
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
35 nocturnal activities are also sold automatically.
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
36
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
37 Buildings require wood to construct. You can buy and sell wood. If you equip a
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
38 chicken with an axe and place it next to some trees, it will chop some down at the
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
39 end of the day.
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
40
572
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
41 """,
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
42
574
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
43 """EQUIPMENT:
465
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
44
574
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
45 AXE: For chopping down trees. Doubles as a weapon, but it's not very good. \\
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
46 HELMET: Cheap armour. \\
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
47 KEVLAR: More expensive and durable armour. \\
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
48 KNIFE: Easy to use, but only at melee range, \\
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
49 RIFLE: Ranged weapon; requires more skill. \\
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
50 SNIPER RIFLE: Longer range and better accuracy than the plain rifle, but less ammo per clip.
471
c34d53edfa12 Tweak help info
Neil Muller <drnlmuller@gmail.com>
parents: 465
diff changeset
51
572
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
52 You can sell equipment, but you don't get the full price back.
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
53
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
54 Guns use ammunition. You have an unlimited supply, but chickens don't have pockets, so they
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
55 can only use one clip per night.
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
56
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
57 """,
471
c34d53edfa12 Tweak help info
Neil Muller <drnlmuller@gmail.com>
parents: 465
diff changeset
58
465
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
59 """
574
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
60 BUILDINGS:
572
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
61
574
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
62 HENHOUSE: The standard chicken dwelling. \\
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
63 HENDOMINIUM: A luxury double-storey chicken dwelling. \\
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
64 WATCHTOWER: A lookout post which helps chickens with rifles to see better and further away. \\
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
65 FENCE: A barrier to both foxes and chickens.
572
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
66
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
67 You can repair broken fences and demolish buildings for their wood. You won't get as
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
68 much as you started with -- chickens are bad tenants and peck holes in everything.
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
69
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
70 """,
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
71
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
72 """
574
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
73 THE ENEMY:
572
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
74
574
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
75 FOX: One of the little furry gluttons who are gorging themselves on your chickens. \\
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
76 GREEDY FOX: Doesn't have the decency to stop at just one chicken. \\
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
77 NINJA FOX: Tries to sneak past your chicken guards. \\
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
78 SAPPER FOX: Blows up your fences with explosives. \\
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
79 RINKHALS: Not in fact a fox at all. It has eclectic tastes. \\
572
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
80
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
81 """,
465
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
82 ]
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
83
574
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
84 LEVEL_TEXT="""The currently selected level is '%(name)s'.
390
2bcfccb8288e Make help screen use goal from the level
Neil Muller <drnlmuller@gmail.com>
parents: 309
diff changeset
85
2bcfccb8288e Make help screen use goal from the level
Neil Muller <drnlmuller@gmail.com>
parents: 309
diff changeset
86 The goal is:
574
ecad90bbdc61 ALL CAPS and punctation in help.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 572
diff changeset
87 '%(goal)s'.
390
2bcfccb8288e Make help screen use goal from the level
Neil Muller <drnlmuller@gmail.com>
parents: 309
diff changeset
88 """
2bcfccb8288e Make help screen use goal from the level
Neil Muller <drnlmuller@gmail.com>
parents: 309
diff changeset
89
2bcfccb8288e Make help screen use goal from the level
Neil Muller <drnlmuller@gmail.com>
parents: 309
diff changeset
90 def make_help_screen(level):
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
91 """Create a main menu"""
390
2bcfccb8288e Make help screen use goal from the level
Neil Muller <drnlmuller@gmail.com>
parents: 309
diff changeset
92 help_screen = HelpScreen(level, width=600)
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
93
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
94 c = HelpContainer(align=0, valign=0)
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
95 c.add(help_screen, 0, 0)
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
96
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
97 return c
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
98
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
99 class HelpContainer(gui.Container):
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
100 def paint(self, s):
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
101 pygame.display.set_caption('Instructions')
181
7e556ef40100 Lighten help screen. Fix some oddities in darken modifier.
Simon Cross <hodgestar@gmail.com>
parents: 179
diff changeset
102 splash = imagecache.load_image("images/splash.png", ["lighten_most"])
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
103 pygame.display.get_surface().blit(splash, (0, 0))
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
104 gui.Container.paint(self, s)
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
105
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
106 class HelpScreen(gui.Document):
390
2bcfccb8288e Make help screen use goal from the level
Neil Muller <drnlmuller@gmail.com>
parents: 309
diff changeset
107 def __init__(self, level, **params):
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
108 gui.Document.__init__(self, **params)
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
109
465
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
110 self.cur_page = 0
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
111
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
112 self.level = level
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
113
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
114 def done_pressed():
566
a8dde729000a Add 'Save and Quit' option to quit dialog. Move game events from engine to constants to ease 'import engine' fun
Neil Muller <drnlmuller@gmail.com>
parents: 471
diff changeset
115 pygame.event.post(constants.GO_MAIN_MENU)
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
116
465
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
117 def next_page():
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
118 self.cur_page += 1
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
119 if self.cur_page >= len(HELP):
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
120 self.cur_page = 0
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
121 self.redraw()
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
122
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
123 def prev_page():
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
124 self.cur_page -= 1
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
125 if self.cur_page < 0:
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
126 self.cur_page = len(HELP) - 1
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
127 self.redraw()
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
128
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
129 self.done_button = gui.Button("Return to Main Menu")
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
130 self.done_button.connect(gui.CLICK, done_pressed)
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
131
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
132 self.prev_button = gui.Button("Prev Page")
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
133 self.prev_button.connect(gui.CLICK, prev_page)
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
134
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
135 self.next_button = gui.Button("Next Page")
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
136 self.next_button.connect(gui.CLICK, next_page)
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
137
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
138 self.redraw()
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
139
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
140 def redraw(self):
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
141 for widget in self.widgets[:]:
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
142 self.remove(widget)
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
143 self.layout._widgets = []
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
144 self.layout.init()
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
145
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
146 space = self.style.font.size(" ")
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
147
471
c34d53edfa12 Tweak help info
Neil Muller <drnlmuller@gmail.com>
parents: 465
diff changeset
148 if self.cur_page == 0:
c34d53edfa12 Tweak help info
Neil Muller <drnlmuller@gmail.com>
parents: 465
diff changeset
149 full_text = "Page %d / %d\n\n" % (self.cur_page + 1, len(HELP)) + \
c34d53edfa12 Tweak help info
Neil Muller <drnlmuller@gmail.com>
parents: 465
diff changeset
150 HELP[self.cur_page] + '\n\n' + LEVEL_TEXT % {
c34d53edfa12 Tweak help info
Neil Muller <drnlmuller@gmail.com>
parents: 465
diff changeset
151 'name' : self.level.level_name,
c34d53edfa12 Tweak help info
Neil Muller <drnlmuller@gmail.com>
parents: 465
diff changeset
152 'goal' : self.level.goal
c34d53edfa12 Tweak help info
Neil Muller <drnlmuller@gmail.com>
parents: 465
diff changeset
153 }
c34d53edfa12 Tweak help info
Neil Muller <drnlmuller@gmail.com>
parents: 465
diff changeset
154 else:
c34d53edfa12 Tweak help info
Neil Muller <drnlmuller@gmail.com>
parents: 465
diff changeset
155 full_text = "Page %d / %d\n\n" % (self.cur_page + 1, len(HELP)) + \
c34d53edfa12 Tweak help info
Neil Muller <drnlmuller@gmail.com>
parents: 465
diff changeset
156 HELP[self.cur_page]
390
2bcfccb8288e Make help screen use goal from the level
Neil Muller <drnlmuller@gmail.com>
parents: 309
diff changeset
157
2bcfccb8288e Make help screen use goal from the level
Neil Muller <drnlmuller@gmail.com>
parents: 309
diff changeset
158 for paragraph in full_text.split('\n\n'):
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
159 self.block(align=-1)
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
160 for word in paragraph.split():
572
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
161 if word == "\\":
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
162 self.br(space[1])
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
163 else:
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
164 self.add(gui.Label(word))
40eee9e1246c extended help; renamed building-related buttons.
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 566
diff changeset
165 self.space(space)
179
e2b5262c2b11 Add basic help screen
Neil Muller <drnlmuller@gmail.com>
parents:
diff changeset
166 self.br(space[1])
579
0e552e7e06fe Use constant vertical position for buttons
Neil Muller <drnlmuller@gmail.com>
parents: 574
diff changeset
167 _width, _height = self.resize()
0e552e7e06fe Use constant vertical position for buttons
Neil Muller <drnlmuller@gmail.com>
parents: 574
diff changeset
168 self.br(440 - _height)
465
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
169 self.add(self.prev_button, align=-1)
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
170 self.add(self.next_button, align=1)
263dea6d226b Add support for multiple pages to help screen
Neil Muller <drnlmuller@gmail.com>
parents: 390
diff changeset
171 self.add(self.done_button, align=0)