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):