Mercurial > boomslang
view gamelib/scenes/manual.py @ 384:56a05ae56574
Initial manual implementation.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 28 Aug 2010 19:04:30 +0200 |
parents | |
children | d9c47a9e3d84 |
line wrap: on
line source
"""The inside of the maintenance manual.""" import random from albow.music import change_playlist, get_music, PlayList from albow.resource import get_image from gamelib.cursor import CursorSprite from gamelib.state import Scene, Item, Thing, Result from gamelib.sound import get_current_playlist from gamelib.scenes.game_constants import PLAYER_ID from gamelib.scenes.scene_widgets import (Door, InteractText, InteractNoImage, InteractRectUnion, InteractImage, InteractAnimated, GenericDescThing, BaseCamera, make_jim_dialog) # classes related the computer detail class PagePrior(Thing): """Prior page in the manual""" NAME = 'manual.page_prior' INTERACTS = { 'up' : InteractNoImage(594, 82, 30, 58) } INITIAL = 'up' def is_interactive(self): page = self.state.current_detail.get_data('page') return page > 0 def interact_without(self): page = self.state.current_detail.get_data('page') self.state.current_detail.set_data('page', page - 1) class PageNext(Thing): """Next page in the manual""" NAME = 'manual.page_next' INTERACTS = { 'down' : InteractNoImage(594, 293, 30, 58) } INITIAL = 'down' def is_interactive(self): page = self.state.current_detail.get_data('page') return (page + 1) < self.current_detail.get_data('max page') def interact_without(self): page = self.state.current_detail.get_data('page') self.state.current_detail.set_data('page', page + 1) class ManualDetail(Scene): FOLDER = 'manual' NAME = 'manual_detail' SIZE = (640, 400) PAGES = ['manual_p1.png', 'manual_p2.png', 'manual_p3.png', 'manual_p4.png'] BACKGROUND = PAGES[0] INITIAL_DATA = { 'page' : 0, 'max page' : len(PAGES), } def __init__(self, state): super(ManualDetail, self).__init__(state) self.add_thing(PagePrior()) self.add_thing(PageNext()) self._scene_playlist = None self._pages = [get_image(self.FOLDER, x) for x in self.PAGES] def enter(self): self._scene_playlist = get_current_playlist() change_playlist(None) def leave(self): change_playlist(self._scene_playlist) def draw_background(self, surface): self._background = self._pages[self.get_data('page')] super(ManualDetail, self).draw_background(surface) SCENES = [] DETAIL_VIEWS = [ManualDetail]