Mercurial > pyntnclick
comparison gamelib/scenes/bridge.py @ 759:386475464202 pyntnclick
Inspect game state for Thing.set_interact() instead of setting it manually everywhere.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 26 Jan 2013 13:00:31 +0200 |
parents | b9504e6ecde1 |
children | a8510f4e2ea1 43b49f1de828 |
comparison
equal
deleted
inserted
replaced
758:f4853f817a7a | 759:386475464202 |
---|---|
327 | 327 |
328 def get_description(self): | 328 def get_description(self): |
329 if self.scene.get_data('ai panel') == 'closed': | 329 if self.scene.get_data('ai panel') == 'closed': |
330 return "The sign reads 'Warning: Authorized Techinicians Only'." | 330 return "The sign reads 'Warning: Authorized Techinicians Only'." |
331 | 331 |
332 def select_interact(self): | |
333 status = self.get_data('ai panel') | |
334 return status or self.INITIAL | |
335 | |
332 def interact_without(self): | 336 def interact_without(self): |
333 ai_status = self.state.get_jim_state() | 337 ai_status = self.state.get_jim_state() |
334 if ai_status == 'online': | 338 if ai_status == 'online': |
335 return self.interact_default(None) | 339 return self.interact_default(None) |
336 elif self.scene.get_data('ai panel') == 'closed': | 340 elif self.scene.get_data('ai panel') == 'closed': |
337 return Result("You are unable to open the panel with your" | 341 return Result("You are unable to open the panel with your" |
338 " bare hands.") | 342 " bare hands.") |
339 elif self.scene.get_data('ai panel') == 'open': | 343 elif self.scene.get_data('ai panel') == 'open': |
340 self.scene.set_data('ai panel', 'broken') | 344 self.scene.set_data('ai panel', 'broken') |
341 self.state.break_ai() | 345 self.state.break_ai() |
342 self.set_interact('broken') | 346 self.set_interact() |
343 return Result("You unplug various important-looking wires.") | 347 return Result("You unplug various important-looking wires.") |
344 | 348 |
345 def interact_with_machete(self, item): | 349 def interact_with_machete(self, item): |
346 ai_status = self.state.get_jim_state() | 350 ai_status = self.state.get_jim_state() |
347 if ai_status == 'online': | 351 if ai_status == 'online': |
348 return self.interact_default(item) | 352 return self.interact_default(item) |
349 elif self.scene.get_data('ai panel') == 'closed': | 353 elif self.scene.get_data('ai panel') == 'closed': |
350 self.scene.set_data('ai panel', 'open') | 354 self.scene.set_data('ai panel', 'open') |
351 self.set_interact('open') | 355 self.set_interact() |
352 return Result("Using the machete, you lever the panel off.") | 356 return Result("Using the machete, you lever the panel off.") |
353 elif self.scene.get_data('ai panel') == 'open': | 357 elif self.scene.get_data('ai panel') == 'open': |
354 self.scene.set_data('ai panel', 'broken') | 358 self.scene.set_data('ai panel', 'broken') |
355 self.state.break_ai() | 359 self.state.break_ai() |
356 self.set_interact('broken') | 360 self.set_interact() |
357 return Result("You smash various delicate components with" | 361 return Result("You smash various delicate components with" |
358 " the machete.") | 362 " the machete.") |
359 | 363 |
360 def interact_default(self, item): | 364 def interact_default(self, item): |
361 if self.state.get_jim_state() == 'online': | 365 if self.state.get_jim_state() == 'online': |
449 super(DestNavPageLine, self).__init__() | 453 super(DestNavPageLine, self).__init__() |
450 self.name = 'bridge_comp.nav_line%s' % number | 454 self.name = 'bridge_comp.nav_line%s' % number |
451 # set debugging higlight color for when DEBUG is on. | 455 # set debugging higlight color for when DEBUG is on. |
452 self._interact_hilight_color = Color(THECOLORS.keys()[number]) | 456 self._interact_hilight_color = Color(THECOLORS.keys()[number]) |
453 r = Rect(rect) | 457 r = Rect(rect) |
458 # We dynamically generate the interact rect here. | |
454 self.interacts = {} | 459 self.interacts = {} |
455 self.interacts['line'] = InteractNoImage(r.x, r.y, r.w, r.h) | 460 self.interacts['line'] = InteractNoImage(r.x, r.y, r.w, r.h) |
456 # Whether JIM blocks this | 461 # Whether JIM blocks this |
457 self.ai_blocked = ai_blocked | 462 self.ai_blocked = ai_blocked |
458 self.set_interact('line') | 463 self.set_interact() |
459 | 464 |
460 def is_interactive(self, tool=None): | 465 def is_interactive(self, tool=None): |
461 return self.game.detail_views[self.COMPUTER].get_data('tab') == 'nav' | 466 return self.game.detail_views[self.COMPUTER].get_data('tab') == 'nav' |
462 | 467 |
463 def interact_without(self): | 468 def interact_without(self): |