Mercurial > pyntnclick
annotate gamelib/scenes/manual.py @ 393:21faf5c8804c
Fix ai dead check
author | Neil Muller <neil@dip.sun.ac.za> |
---|---|
date | Sat, 28 Aug 2010 20:05:29 +0200 |
parents | d9c47a9e3d84 |
children | 5cfd68beb6d3 |
rev | line source |
---|---|
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
1 """The inside of the maintenance manual.""" |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
2 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
3 import random |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
4 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
5 from albow.music import change_playlist, get_music, PlayList |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
6 from albow.resource import get_image |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
7 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
8 from gamelib.cursor import CursorSprite |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
9 from gamelib.state import Scene, Item, Thing, Result |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
10 from gamelib.sound import get_current_playlist |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
11 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
12 from gamelib.scenes.game_constants import PLAYER_ID |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
13 from gamelib.scenes.scene_widgets import (Door, InteractText, InteractNoImage, |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
14 InteractRectUnion, InteractImage, |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
15 InteractAnimated, GenericDescThing, |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
16 BaseCamera, make_jim_dialog) |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
17 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
18 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
19 # classes related the computer detail |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
20 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
21 |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
22 class PageBase(Thing): |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
23 "Displays manual pages" |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
24 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
25 def get_page_thing(self): |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
26 return self.state.current_detail.things['manual.page'] |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
27 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
28 def get_page(self): |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
29 return self.get_page_thing().get_data('page') |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
30 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
31 def set_page(self, page): |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
32 self.get_page_thing().set_page(page) |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
33 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
34 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
35 class PagePrior(PageBase): |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
36 """Prior page in the manual""" |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
37 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
38 NAME = 'manual.page_prior' |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
39 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
40 INTERACTS = { |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
41 'up' : InteractNoImage(0, 350, 80, 25) |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
42 } |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
43 INITIAL = 'up' |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
44 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
45 def is_interactive(self): |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
46 return self.get_page() > 0 |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
47 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
48 def interact_without(self): |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
49 self.set_page(self.get_page() - 1) |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
50 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
51 |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
52 class PageNext(PageBase): |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
53 """Next page in the manual""" |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
54 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
55 NAME = 'manual.page_next' |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
56 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
57 INTERACTS = { |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
58 'down' : InteractNoImage(170, 350, 80, 25) |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
59 } |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
60 INITIAL = 'down' |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
61 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
62 def is_interactive(self): |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
63 return self.get_page() < len(self.get_page_thing().INTERACTS) - 1 |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
64 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
65 def interact_without(self): |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
66 self.set_page(self.get_page() + 1) |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
67 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
68 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
69 class ManualPage(Thing): |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
70 """Page in the manual""" |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
71 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
72 NAME = 'manual.page' |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
73 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
74 INTERACTS = { |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
75 0 : InteractImage(0, 0, 'manual_p1.png'), |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
76 1 : InteractImage(0, 0, 'manual_p2.png'), |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
77 2 : InteractImage(0, 0, 'manual_p3.png'), |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
78 3 : InteractImage(0, 0, 'manual_p4.png'), |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
79 } |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
80 INITIAL = 0 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
81 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
82 INITIAL_DATA = { |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
83 'page': 0, |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
84 } |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
85 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
86 def is_interactive(self): |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
87 return False |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
88 |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
89 def set_page(self, page): |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
90 self.set_data('page', page) |
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
91 self.set_interact(page) |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
92 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
93 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
94 class ManualDetail(Scene): |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
95 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
96 FOLDER = 'manual' |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
97 NAME = 'manual_detail' |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
98 |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
99 BACKGROUND = 'manual_detail.png' |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
100 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
101 def __init__(self, state): |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
102 super(ManualDetail, self).__init__(state) |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
103 |
390
d9c47a9e3d84
Working manual. (Still needs arrows.)
Jeremy Thurgood <firxen@gmail.com>
parents:
384
diff
changeset
|
104 self.add_thing(ManualPage()) |
384
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
105 self.add_thing(PagePrior()) |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
106 self.add_thing(PageNext()) |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
107 self._scene_playlist = None |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
108 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
109 def enter(self): |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
110 self._scene_playlist = get_current_playlist() |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
111 change_playlist(None) |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
112 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
113 def leave(self): |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
114 change_playlist(self._scene_playlist) |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
115 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
116 |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
117 SCENES = [] |
56a05ae56574
Initial manual implementation.
Jeremy Thurgood <firxen@gmail.com>
parents:
diff
changeset
|
118 DETAIL_VIEWS = [ManualDetail] |