Mercurial > sypikslang
comparison gamelib/gamegui.py @ 124:685301e35f88
Add a minion cost to missions
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Thu, 10 May 2012 12:16:15 +0200 |
parents | acf3af761bbc |
children | c224057befff |
comparison
equal
deleted
inserted
replaced
123:7cd716328a44 | 124:685301e35f88 |
---|---|
128 BG_IMAGE_SELECTED = image.load(filepath('images/mission_selected.png')) | 128 BG_IMAGE_SELECTED = image.load(filepath('images/mission_selected.png')) |
129 | 129 |
130 def __init__(self, mission, pos, parent): | 130 def __init__(self, mission, pos, parent): |
131 self.mission = mission | 131 self.mission = mission |
132 self.parent = parent | 132 self.parent = parent |
133 self.game = self.parent.game | |
134 self.minions = 0 | |
133 super(MissionWidget, self).__init__(pos, '%s' % mission.NAME, | 135 super(MissionWidget, self).__init__(pos, '%s' % mission.NAME, |
134 font_small) | 136 font_small) |
135 selected = ImageDrawable((0, 0, self.WIDTH, self.HEIGHT), | 137 selected = ImageDrawable((0, 0, self.WIDTH, self.HEIGHT), |
136 self.BG_IMAGE_SELECTED) | 138 self.BG_IMAGE_SELECTED) |
137 self.add_state('SELECTED', selected) | 139 self.add_state('SELECTED', selected) |
147 | 149 |
148 def on_click(self): | 150 def on_click(self): |
149 if self.mode == 'SELECTED': | 151 if self.mode == 'SELECTED': |
150 # unselect mission | 152 # unselect mission |
151 self.reset() | 153 self.reset() |
152 else: | 154 elif self.mission.can_attempt(self.game): |
153 # select mission and equipment | 155 # select mission and equipment |
154 self.mode = 'SELECTED' | 156 self.mode = 'SELECTED' |
155 self.set_state('SELECTED') | 157 self.set_state('SELECTED') |
158 self.minions = self.mission.MINIONS_REQUIRED | |
159 self.game.minions -= self.minions | |
160 self.parent.update_labels() | |
156 equip = EquipWindow(self.parent.screen, self.mission, | 161 equip = EquipWindow(self.parent.screen, self.mission, |
157 self.parent.game, self) | 162 self.game, self) |
158 AddWindow.post(equip) | 163 AddWindow.post(equip) |
159 | 164 |
160 def selected(self): | 165 def selected(self): |
161 return self.mode == 'SELECTED' | 166 return self.mode == 'SELECTED' |
162 | 167 |
164 return self.equipment | 169 return self.equipment |
165 | 170 |
166 def reset(self): | 171 def reset(self): |
167 for equip in self.equipment: | 172 for equip in self.equipment: |
168 # Release funds | 173 # Release funds |
169 self.parent.game.money += equip.COST | 174 self.game.money += equip.COST |
175 self.game.minions += self.minions | |
176 self.minions = 0 | |
170 self.parent.update() | 177 self.parent.update() |
171 self.equipment = [] | 178 self.equipment = [] |
172 self.mode = 'NORMAL' | 179 self.mode = 'NORMAL' |
173 self.set_state('NORMAL') | 180 self.set_state('NORMAL') |
174 | 181 |
346 reset = ResetButton(self) | 353 reset = ResetButton(self) |
347 self.add_child(reset) | 354 self.add_child(reset) |
348 | 355 |
349 self.points = ValueLabel((10, 75), 'Available Human Resources') | 356 self.points = ValueLabel((10, 75), 'Available Human Resources') |
350 self.add_child(self.points) | 357 self.add_child(self.points) |
351 self.money = ValueLabel((310, 75), 'Money') | 358 self.minions = ValueLabel((310, 75), 'Minions available: ') |
359 self.add_child(self.minions) | |
360 self.money = ValueLabel((510, 75), 'Money') | |
352 self.add_child(self.money) | 361 self.add_child(self.money) |
353 | 362 |
354 self.milestone = ValueLabel((10, 95), 'Currently taken over') | 363 self.milestone = ValueLabel((10, 95), 'Currently taken over') |
355 self.add_child(self.milestone) | 364 self.add_child(self.milestone) |
356 self.reputation = ValueLabel((310, 95), 'Reputation') | 365 self.reputation = ValueLabel((310, 95), 'Reputation') |
357 self.add_child(self.reputation) | 366 self.add_child(self.reputation) |
358 | 367 |
359 def update_labels(self): | 368 def update_labels(self): |
360 self.points.set_value(self.game.get_available_points()) | 369 self.points.set_value(self.game.get_available_points()) |
361 self.money.set_value(self.game.money) | 370 self.money.set_value(self.game.money) |
371 self.minions.set_value(self.game.minions) | |
362 self.milestone.set_value(self.game.milestone) | 372 self.milestone.set_value(self.game.milestone) |
363 self.reputation.set_value(_lookup_reputation(self.game.reputation)) | 373 self.reputation.set_value(_lookup_reputation(self.game.reputation)) |
364 | 374 |
365 | 375 |
366 class ActivityWindow(GameStateWindow): | 376 class ActivityWindow(GameStateWindow): |