Mercurial > pyntnclick
diff gamelib/scenes/game_widgets.py @ 854:3577c51029f1 default tip
Remove Suspended Sentence. pyntnclick is the library we extracted from it
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Sat, 21 Jun 2014 22:15:54 +0200 |
parents | f95830b58336 |
children |
line wrap: on
line diff
--- a/gamelib/scenes/game_widgets.py Sat Jun 21 22:04:35 2014 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ -"""Generic, game specific widgets""" - - -from pyntnclick.i18n import _ -from pyntnclick.state import Thing, Result - -from gamelib.custom_widgets import JimLabel - - -class Door(Thing): - """A door somewhere""" - - DEST = "map" - SCENE = None - - def __init__(self): - self.NAME = self.SCENE + '.door' - Thing.__init__(self) - - def is_interactive(self, tool=None): - return True - - def interact_without(self): - """Go to map.""" - self.game.change_scene("map") - - def get_description(self): - return _('An open doorway leads to the rest of the ship.') - - def interact_default(self, item): - return self.interact_without() - - -def make_jim_dialog(mesg, game): - "Utility helper function" - if game.data.get_jim_state() == 'online': - return Result(widget=JimLabel(game.gd, mesg)) - else: - return None - - -def make_sentence_dialog(prisoner, game): - return make_jim_dialog( - _("Prisoner %(id)s, your total sentence is now %(sen)d years.") % { - "id": prisoner, 'sen': game.data.get_total_sentence()}, game) - - -class BaseCamera(Thing): - "Base class for the camera puzzles" - - INITIAL = 'online' - INITIAL_DATA = { - 'state': 'online', - } - - def get_description(self): - status = self.state.get_jim_state() - if status == 'online': - return _("A security camera watches over the room") - elif status == 'looping': - return _("The security camera is currently offline but should be" - " working soon") - else: - return _("The security camera is powered down") - - def is_interactive(self, tool=None): - return self.state.get_jim_state() == 'online' - - def interact_with_escher_poster(self, item): - # Order matters here, because of helper function - if self.state.get_jim_state() == 'online': - ai_response = make_jim_dialog(_("3D scene reconstruction failed." - " Critical error." - " Entering emergency shutdown."), - self.game) - self.game.data.loop_ai() - return ai_response - - def select_interact(self): - if 'bridge' not in self.state: - # We aren't completely set up yet - return self.INITIAL - return self.state.get_jim_state() - - def animate(self): - ai_status = self.state.get_jim_state() - if ai_status != self.get_data('status'): - self.set_data('status', ai_status) - self.set_interact() - super(BaseCamera, self).animate()