annotate gamelib/scenes/scene_widgets.py @ 263:3b4a78422201

Shuffled a bunch of stuff into more appropriate places.
author Jeremy Thurgood <firxen@gmail.com>
date Fri, 27 Aug 2010 19:29:37 +0200
parents dfc89bc64fdb
children 80cb577e38f2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
242
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
1 """Generic, game specific widgets"""
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
2
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
3 import random
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
4
263
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
5 from pygame import Rect
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
6 from pygame.color import Color
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
7 from pygame.colordict import THECOLORS
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
8 from pygame.surface import Surface
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
9 from albow.resource import get_image
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
10
242
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
11 from gamelib.state import Thing, Result
263
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
12 from gamelib.constants import DEBUG
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
13 from gamelib.widgets import BoomLabel
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
14
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
15
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
16 class Interact(object):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
17
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
18 def __init__(self, image, rect, interact_rect):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
19 self.image = image
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
20 self.rect = rect
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
21 self.interact_rect = interact_rect
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
22
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
23 def set_thing(self, thing):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
24 pass
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
25
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
26 def draw(self, surface):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
27 if self.image is not None:
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
28 surface.blit(self.image, self.rect, None)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
29
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
30 def animate(self):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
31 return False
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
32
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
33
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
34 class InteractNoImage(Interact):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
35
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
36 def __init__(self, x, y, w, h):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
37 super(InteractNoImage, self).__init__(None, None, Rect(x, y, w, h))
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
38
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
39
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
40 class InteractText(Interact):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
41 """Display box with text to interact with -- mostly for debugging."""
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
42
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
43 def __init__(self, x, y, text, bg_color=None):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
44 if bg_color is None:
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
45 bg_color = (127, 127, 127)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
46 label = BoomLabel(text)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
47 label.set_margin(5)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
48 label.border_width = 1
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
49 label.border_color = (0, 0, 0)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
50 label.bg_color = bg_color
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
51 label.fg_color = (0, 0, 0)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
52 image = Surface(label.size)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
53 rect = Rect((x, y), label.size)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
54 label.draw_all(image)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
55 super(InteractText, self).__init__(image, rect, rect)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
56
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
57
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
58 class InteractRectUnion(Interact):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
59
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
60 def __init__(self, rect_list):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
61 # pygame.rect.Rect.unionall should do this, but is broken
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
62 # in some pygame versions (including 1.8, it appears)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
63 rect_list = [Rect(x) for x in rect_list]
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
64 union_rect = rect_list[0]
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
65 for rect in rect_list[1:]:
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
66 union_rect = union_rect.union(rect)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
67 super(InteractRectUnion, self).__init__(None, None, union_rect)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
68 self.interact_rect = rect_list
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
69
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
70
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
71 class InteractImage(Interact):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
72
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
73 def __init__(self, x, y, image_name):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
74 super(InteractImage, self).__init__(None, None, None)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
75 self._pos = (x, y)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
76 self._image_name = image_name
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
77
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
78 def set_thing(self, thing):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
79 self.image = get_image(thing.folder, self._image_name)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
80 self.rect = Rect(self._pos, self.image.get_size())
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
81 self.interact_rect = self.rect
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
82
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
83
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
84 class InteractAnimated(Interact):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
85 """Interactive with an animation rather than an image"""
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
86
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
87 # FIXME: Assumes all images are the same size
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
88 # anim_seq - sequence of image names
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
89 # delay - number of frames to wait between changing images
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
90
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
91 def __init__(self, x, y, anim_seq, delay):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
92 self._pos = (x, y)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
93 self._anim_pos = 0
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
94 self._names = anim_seq
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
95 self._frame_count = 0
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
96 self._anim_seq = None
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
97 self._delay = delay
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
98
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
99 def set_thing(self, thing):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
100 self._anim_seq = [get_image(thing.folder, x) for x in self._names]
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
101 self.image = self._anim_seq[0]
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
102 self.rect = Rect(self._pos, self.image.get_size())
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
103 self.interact_rect = self.rect
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
104
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
105 def animate(self):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
106 if self._anim_seq:
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
107 self._frame_count += 1
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
108 if self._frame_count > self._delay:
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
109 self._frame_count = 0
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
110 self._anim_pos += 1
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
111 if self._anim_pos >= len(self._anim_seq):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
112 self._anim_pos = 0
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
113 self.image = self._anim_seq[self._anim_pos]
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
114 # queue redraw
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
115 return True
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
116 return False
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
117
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
118
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
119 class GenericDescThing(Thing):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
120 "Thing with an InteractiveUnionRect and a description"
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
121
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
122 INITIAL = "description"
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
123
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
124 def __init__(self, prefix, number, description, areas):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
125 super(GenericDescThing, self).__init__()
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
126 self.description = description
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
127 self.name = '%s.%s' % (prefix, number)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
128 self.interacts = {
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
129 'description' : InteractRectUnion(areas)
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
130 }
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
131 if DEBUG:
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
132 # Individual colors to make debugging easier
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
133 self._interact_hilight_color = Color(THECOLORS.keys()[number])
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
134
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
135 def get_description(self):
3b4a78422201 Shuffled a bunch of stuff into more appropriate places.
Jeremy Thurgood <firxen@gmail.com>
parents: 252
diff changeset
136 return self.description
242
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
137
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
138
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
139 class Door(Thing):
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
140 """A door somewhere"""
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
141
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
142 DEST = "map"
252
dfc89bc64fdb Start of walkthrough "unit test" and associated fixes and tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
143 SCENE = None
dfc89bc64fdb Start of walkthrough "unit test" and associated fixes and tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
144
dfc89bc64fdb Start of walkthrough "unit test" and associated fixes and tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
145 def __init__(self):
dfc89bc64fdb Start of walkthrough "unit test" and associated fixes and tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
146 self.NAME = self.SCENE + '.door'
dfc89bc64fdb Start of walkthrough "unit test" and associated fixes and tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 242
diff changeset
147 Thing.__init__(self)
242
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
148
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
149 def is_interactive(self):
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
150 return True
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
151
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
152 def interact_without(self):
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
153 """Go to map."""
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
154 self.state.set_current_scene("map")
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
155
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
156 def get_description(self):
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
157 return 'An open doorway leads to the rest of the ship.'
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
158
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
159 def interact_default(self, item):
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
160 return Result(random.choice([
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
161 "Sadly, this isn't that sort of game.",
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
162 "Your valiant efforts are foiled by the Evil Game Designer.",
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
163 "Waving that in the doorway does nothing. Try something else, perhaps?",
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
164 ]))
12c4f87ea424 Unify doors a bit
Neil Muller <neil@dip.sun.ac.za>
parents:
diff changeset
165