Mercurial > rinkhals
annotate gamelib/equipment.py @ 210:00d609883252
egg equipment
author | Adrianna Pińska <adrianna.pinska@gmail.com> |
---|---|
date | Fri, 04 Sep 2009 21:25:04 +0000 |
parents | 3074784c93f4 |
children | 7024d48c41c2 |
rev | line source |
---|---|
84 | 1 """Stuff for animals to use.""" |
2 | |
3 import random | |
99
f5d56688943b
Added background music support, and daytime and night time music (really animal sounds, not music)
David Fraser <davidf@sjsoft.com>
parents:
84
diff
changeset
|
4 import sound |
195
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
5 import imagecache |
202 | 6 import animations |
84 | 7 |
8 class Equipment(object): | |
109
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
9 IS_EQUIPMENT = True |
161
9b4213f6ea7f
improved equipment layers; unequip method on animal
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
158
diff
changeset
|
10 DRAW_LAYER = 0 |
109
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
11 |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
12 def __init__(self): |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
13 self._buy_price = self.BUY_PRICE |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
14 self._sell_price = self.SELL_PRICE |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
15 self._name = self.NAME |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
16 |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
17 def buy_price(self): |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
18 return self._buy_price |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
19 |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
20 def sell_price(self): |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
21 return self._sell_price |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
22 |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
23 def name(self): |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
24 return self._name |
84 | 25 |
195
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
26 def images(self, eq_image_attr): |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
27 eq_image_file = getattr(self, eq_image_attr, None) |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
28 if not eq_image_file: |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
29 return None |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
30 eq_image_left = imagecache.load_image(eq_image_file) |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
31 eq_image_right = imagecache.load_image(eq_image_file, ("right_facing",)) |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
32 return eq_image_left, eq_image_right, self.DRAW_LAYER |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
33 |
84 | 34 class Weapon(Equipment): |
109
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
35 IS_WEAPON = True |
161
9b4213f6ea7f
improved equipment layers; unequip method on animal
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
158
diff
changeset
|
36 DRAW_LAYER = 10 |
84 | 37 |
189
37af9e5dd292
Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents:
174
diff
changeset
|
38 def _get_parameter(self, parameter, wielder): |
37af9e5dd292
Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents:
174
diff
changeset
|
39 param = getattr(self, parameter) |
198
355eaae40b1f
Buildings now affect weapon range and accuracy.
Jeremy Thurgood <firxen@gmail.com>
parents:
195
diff
changeset
|
40 if wielder.abode: |
355eaae40b1f
Buildings now affect weapon range and accuracy.
Jeremy Thurgood <firxen@gmail.com>
parents:
195
diff
changeset
|
41 mod_attr = 'MODIFY_%s_%s' % (self.TYPE, parameter) |
355eaae40b1f
Buildings now affect weapon range and accuracy.
Jeremy Thurgood <firxen@gmail.com>
parents:
195
diff
changeset
|
42 modifier = getattr(wielder.abode.building, mod_attr, lambda r: r) |
355eaae40b1f
Buildings now affect weapon range and accuracy.
Jeremy Thurgood <firxen@gmail.com>
parents:
195
diff
changeset
|
43 param = modifier(param) |
355eaae40b1f
Buildings now affect weapon range and accuracy.
Jeremy Thurgood <firxen@gmail.com>
parents:
195
diff
changeset
|
44 return param |
189
37af9e5dd292
Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents:
174
diff
changeset
|
45 |
84 | 46 def in_range(self, gameboard, wielder, target): |
47 """Can the lucky wielder hit the potentially unlucky target with this?""" | |
189
37af9e5dd292
Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents:
174
diff
changeset
|
48 return wielder.pos.dist(target.pos) <= self._get_parameter('RANGE', wielder) |
84 | 49 |
50 def hit(self, gameboard, wielder, target): | |
51 """Is the potentially unlucky target actually unlucky?""" | |
109
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
52 if hasattr(self, 'HIT_SOUND'): |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
53 sound.play_sound(self.HIT_SOUND) |
202 | 54 if hasattr(self, 'ANIMATION'): |
55 gameboard.animations.append(self.ANIMATION(wielder)) | |
109
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
56 roll = random.randint(1, 100) |
189
37af9e5dd292
Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents:
174
diff
changeset
|
57 base_hit = self._get_parameter('BASE_HIT', wielder) |
37af9e5dd292
Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents:
174
diff
changeset
|
58 range_penalty = self._get_parameter('RANGE_PENALTY', wielder) |
37af9e5dd292
Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents:
174
diff
changeset
|
59 return roll > (100-base_hit) + range_penalty*wielder.pos.dist(target.pos) |
109
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
60 |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
61 def place(self, animal): |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
62 for eq in animal.equipment: |
120
5621f5074c8d
Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents:
114
diff
changeset
|
63 if is_weapon(eq): |
109
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
64 return False |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
65 return True |
84 | 66 |
67 class Rifle(Weapon): | |
189
37af9e5dd292
Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents:
174
diff
changeset
|
68 TYPE = "GUN" |
109
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
69 NAME = "rifle" |
120
5621f5074c8d
Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents:
114
diff
changeset
|
70 BUY_PRICE = 100 |
5621f5074c8d
Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents:
114
diff
changeset
|
71 SELL_PRICE = 75 |
5621f5074c8d
Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents:
114
diff
changeset
|
72 |
5621f5074c8d
Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents:
114
diff
changeset
|
73 RANGE = 3 |
5621f5074c8d
Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents:
114
diff
changeset
|
74 BASE_HIT = 55 |
189
37af9e5dd292
Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents:
174
diff
changeset
|
75 RANGE_PENALTY = 15 |
120
5621f5074c8d
Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents:
114
diff
changeset
|
76 HIT_SOUND = "fire-rifle.ogg" |
5621f5074c8d
Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents:
114
diff
changeset
|
77 |
146 | 78 CHICKEN_IMAGE_FILE = 'sprites/equip_rifle.png' |
79 | |
202 | 80 ANIMATION = animations.MuzzleFlash |
81 | |
120
5621f5074c8d
Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents:
114
diff
changeset
|
82 class Knife(Weapon): |
189
37af9e5dd292
Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents:
174
diff
changeset
|
83 TYPE = "KNIFE" |
120
5621f5074c8d
Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents:
114
diff
changeset
|
84 NAME = "knife" |
158
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
85 BUY_PRICE = 25 |
109
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
86 SELL_PRICE = 15 |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
87 |
120
5621f5074c8d
Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents:
114
diff
changeset
|
88 RANGE = 1 |
5621f5074c8d
Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents:
114
diff
changeset
|
89 BASE_HIT = 70 |
189
37af9e5dd292
Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents:
174
diff
changeset
|
90 RANGE_PENALTY = 0 |
84 | 91 |
146 | 92 CHICKEN_IMAGE_FILE = 'sprites/equip_knife.png' |
93 | |
158
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
94 class Armour(Equipment): |
174
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
95 IS_ARMOUR = True |
161
9b4213f6ea7f
improved equipment layers; unequip method on animal
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
158
diff
changeset
|
96 DRAW_LAYER = 5 |
158
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
97 |
174
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
98 def __init__(self): |
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
99 super(Armour, self).__init__() |
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
100 self.hitpoints = self.STARTING_HITPOINTS |
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
101 |
158
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
102 def place(self, animal): |
167
1d4d2202ef9f
one helmet and vest per chicken
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
161
diff
changeset
|
103 for eq in animal.equipment: |
1d4d2202ef9f
one helmet and vest per chicken
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
161
diff
changeset
|
104 if eq.NAME == self.NAME: |
1d4d2202ef9f
one helmet and vest per chicken
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
161
diff
changeset
|
105 return False |
158
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
106 return True |
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
107 |
174
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
108 def survive_damage(self): |
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
109 self.hitpoints -= 1 |
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
110 if self.hitpoints > 0: |
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
111 self._sell_price = int(self._sell_price*self.hitpoints/float(self.hitpoints+1)) |
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
112 return True |
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
113 return False |
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
114 |
158
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
115 class Helmet(Armour): |
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
116 NAME = "helmet" |
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
117 BUY_PRICE = 25 |
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
118 SELL_PRICE = 15 |
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
119 |
174
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
120 STARTING_HITPOINTS = 1 |
158
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
121 |
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
122 CHICKEN_IMAGE_FILE = 'sprites/helmet.png' |
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
123 |
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
124 class Kevlar(Armour): |
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
125 NAME = "kevlar" |
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
126 BUY_PRICE = 100 |
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
127 SELL_PRICE = 75 |
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
128 |
174
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
129 STARTING_HITPOINTS = 2 |
158
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
130 |
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
131 CHICKEN_IMAGE_FILE = 'sprites/kevlar.png' |
baf857805867
armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
146
diff
changeset
|
132 |
195
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
133 class Accoutrement(Equipment): |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
134 """Things which are not equipment, but are displayed in the same way""" |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
135 IS_EQUIPMENT = False |
200
67d10f7e0159
selected chickens are selected
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
198
diff
changeset
|
136 IS_ACCOUTREMENT = True |
195
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
137 BUY_PRICE = 0 |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
138 SELL_PRICE = 0 |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
139 |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
140 def place(self, animal): |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
141 for eq in animal.accoutrements: |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
142 if eq.NAME == self.NAME: |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
143 return False |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
144 return True |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
145 |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
146 class Spotlight(Accoutrement): |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
147 NAME = "spotlight" |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
148 CHICKEN_IMAGE_FILE = 'sprites/select_chkn.png' |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
149 DRAW_LAYER = -5 |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
150 |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
151 class Nest(Accoutrement): |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
152 NAME = "nest" |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
153 CHICKEN_IMAGE_FILE = 'sprites/nest.png' |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
154 DRAW_LAYER = 15 |
9d31cfc3afde
refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
189
diff
changeset
|
155 |
210 | 156 class NestEgg(Accoutrement): |
157 NAME = "nestegg" | |
158 CHICKEN_IMAGE_FILE = 'sprites/equip_egg.png' | |
159 DRAW_LAYER = 14 | |
160 | |
109
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
161 def is_equipment(obj): |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
162 """Return true if obj is a build class.""" |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
163 return getattr(obj, "IS_EQUIPMENT", False) and hasattr(obj, "NAME") |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
164 |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
165 def is_weapon(obj): |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
166 return is_equipment(obj) and getattr(obj, 'IS_WEAPON', False) |
84 | 167 |
174
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
168 def is_armour(obj): |
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
169 return is_equipment(obj) and getattr(obj, 'IS_ARMOUR', False) |
ff168162974e
armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
167
diff
changeset
|
170 |
200
67d10f7e0159
selected chickens are selected
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
198
diff
changeset
|
171 def is_accoutrement(obj): |
67d10f7e0159
selected chickens are selected
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
198
diff
changeset
|
172 return not getattr(obj, "IS_EQUIPMENT", False) and hasattr(obj, "NAME") and getattr(obj, 'IS_ACCOUTREMENT', False) |
67d10f7e0159
selected chickens are selected
Adrianna Pińska <adrianna.pinska@gmail.com>
parents:
198
diff
changeset
|
173 |
109
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
174 EQUIPMENT = [] |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
175 for name in dir(): |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
176 obj = eval(name) |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
177 try: |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
178 if is_equipment(obj): |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
179 EQUIPMENT.append(obj) |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
180 except TypeError: |
48019afde338
Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents:
99
diff
changeset
|
181 pass |