annotate gamelib/equipment.py @ 198:355eaae40b1f

Buildings now affect weapon range and accuracy.
author Jeremy Thurgood <firxen@gmail.com>
date Fri, 04 Sep 2009 19:34:01 +0000
parents 9d31cfc3afde
children 67d10f7e0159
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
84
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
1 """Stuff for animals to use."""
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
2
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
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
84
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
6
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
7 class Equipment(object):
109
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
8 IS_EQUIPMENT = True
161
9b4213f6ea7f improved equipment layers; unequip method on animal
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 158
diff changeset
9 DRAW_LAYER = 0
109
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
10
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
11 def __init__(self):
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
12 self._buy_price = self.BUY_PRICE
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
13 self._sell_price = self.SELL_PRICE
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
14 self._name = self.NAME
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
15
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
16 def buy_price(self):
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
17 return self._buy_price
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
18
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
19 def sell_price(self):
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
20 return self._sell_price
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
21
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
22 def name(self):
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
23 return self._name
84
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
24
195
9d31cfc3afde refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 189
diff changeset
25 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
26 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
27 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
28 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
29 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
30 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
31 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
32
84
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
33 class Weapon(Equipment):
109
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
34 IS_WEAPON = True
161
9b4213f6ea7f improved equipment layers; unequip method on animal
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 158
diff changeset
35 DRAW_LAYER = 10
84
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
36
189
37af9e5dd292 Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
37 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
38 param = getattr(self, parameter)
198
355eaae40b1f Buildings now affect weapon range and accuracy.
Jeremy Thurgood <firxen@gmail.com>
parents: 195
diff changeset
39 if wielder.abode:
355eaae40b1f Buildings now affect weapon range and accuracy.
Jeremy Thurgood <firxen@gmail.com>
parents: 195
diff changeset
40 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
41 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
42 param = modifier(param)
355eaae40b1f Buildings now affect weapon range and accuracy.
Jeremy Thurgood <firxen@gmail.com>
parents: 195
diff changeset
43 return param
189
37af9e5dd292 Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
44
84
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
45 def in_range(self, gameboard, wielder, target):
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
46 """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
47 return wielder.pos.dist(target.pos) <= self._get_parameter('RANGE', wielder)
84
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
48
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
49 def hit(self, gameboard, wielder, target):
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
50 """Is the potentially unlucky target actually unlucky?"""
109
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
51 if hasattr(self, 'HIT_SOUND'):
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
52 sound.play_sound(self.HIT_SOUND)
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
53 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
54 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
55 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
56 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
57
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
58 def place(self, animal):
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
59 for eq in animal.equipment:
120
5621f5074c8d Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents: 114
diff changeset
60 if is_weapon(eq):
109
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
61 return False
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
62 return True
84
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
63
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
64 class Rifle(Weapon):
189
37af9e5dd292 Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
65 TYPE = "GUN"
109
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
66 NAME = "rifle"
120
5621f5074c8d Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents: 114
diff changeset
67 BUY_PRICE = 100
5621f5074c8d Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents: 114
diff changeset
68 SELL_PRICE = 75
5621f5074c8d Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents: 114
diff changeset
69
5621f5074c8d Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents: 114
diff changeset
70 RANGE = 3
5621f5074c8d Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents: 114
diff changeset
71 BASE_HIT = 55
189
37af9e5dd292 Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
72 RANGE_PENALTY = 15
120
5621f5074c8d Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents: 114
diff changeset
73 HIT_SOUND = "fire-rifle.ogg"
5621f5074c8d Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents: 114
diff changeset
74
146
423050ec188b Equipment images.
Jeremy Thurgood <firxen@gmail.com>
parents: 120
diff changeset
75 CHICKEN_IMAGE_FILE = 'sprites/equip_rifle.png'
423050ec188b Equipment images.
Jeremy Thurgood <firxen@gmail.com>
parents: 120
diff changeset
76
120
5621f5074c8d Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents: 114
diff changeset
77 class Knife(Weapon):
189
37af9e5dd292 Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
78 TYPE = "KNIFE"
120
5621f5074c8d Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents: 114
diff changeset
79 NAME = "knife"
158
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
80 BUY_PRICE = 25
109
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
81 SELL_PRICE = 15
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
82
120
5621f5074c8d Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents: 114
diff changeset
83 RANGE = 1
5621f5074c8d Added knives, increased rifle prices.
Jeremy Thurgood <firxen@gmail.com>
parents: 114
diff changeset
84 BASE_HIT = 70
189
37af9e5dd292 Use tool with left button, cancel tool with right button.
Jeremy Thurgood <firxen@gmail.com>
parents: 174
diff changeset
85 RANGE_PENALTY = 0
84
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
86
146
423050ec188b Equipment images.
Jeremy Thurgood <firxen@gmail.com>
parents: 120
diff changeset
87 CHICKEN_IMAGE_FILE = 'sprites/equip_knife.png'
423050ec188b Equipment images.
Jeremy Thurgood <firxen@gmail.com>
parents: 120
diff changeset
88
158
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
89 class Armour(Equipment):
174
ff168162974e armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 167
diff changeset
90 IS_ARMOUR = True
161
9b4213f6ea7f improved equipment layers; unequip method on animal
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 158
diff changeset
91 DRAW_LAYER = 5
158
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
92
174
ff168162974e armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 167
diff changeset
93 def __init__(self):
ff168162974e armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 167
diff changeset
94 super(Armour, self).__init__()
ff168162974e armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 167
diff changeset
95 self.hitpoints = self.STARTING_HITPOINTS
ff168162974e armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 167
diff changeset
96
158
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
97 def place(self, animal):
167
1d4d2202ef9f one helmet and vest per chicken
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 161
diff changeset
98 for eq in animal.equipment:
1d4d2202ef9f one helmet and vest per chicken
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 161
diff changeset
99 if eq.NAME == self.NAME:
1d4d2202ef9f one helmet and vest per chicken
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 161
diff changeset
100 return False
158
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
101 return True
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
102
174
ff168162974e armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 167
diff changeset
103 def survive_damage(self):
ff168162974e armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 167
diff changeset
104 self.hitpoints -= 1
ff168162974e armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 167
diff changeset
105 if self.hitpoints > 0:
ff168162974e armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 167
diff changeset
106 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
107 return True
ff168162974e armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 167
diff changeset
108 return False
ff168162974e armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 167
diff changeset
109
158
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
110 class Helmet(Armour):
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
111 NAME = "helmet"
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
112 BUY_PRICE = 25
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
113 SELL_PRICE = 15
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
114
174
ff168162974e armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 167
diff changeset
115 STARTING_HITPOINTS = 1
158
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
116
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
117 CHICKEN_IMAGE_FILE = 'sprites/helmet.png'
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
118
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
119 class Kevlar(Armour):
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
120 NAME = "kevlar"
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
121 BUY_PRICE = 100
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
122 SELL_PRICE = 75
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
123
174
ff168162974e armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 167
diff changeset
124 STARTING_HITPOINTS = 2
158
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
125
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
126 CHICKEN_IMAGE_FILE = 'sprites/kevlar.png'
baf857805867 armour works now
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 146
diff changeset
127
195
9d31cfc3afde refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 189
diff changeset
128 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
129 """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
130 IS_EQUIPMENT = False
9d31cfc3afde refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 189
diff changeset
131 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
132 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
133
9d31cfc3afde refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 189
diff changeset
134 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
135 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
136 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
137 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
138 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
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 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
141 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
142 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
143 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
144
9d31cfc3afde refactor of layers drawn on chicken, to allow for extended functionality
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 189
diff changeset
145 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
146 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
147 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
148 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
149
109
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
150 def is_equipment(obj):
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
151 """Return true if obj is a build class."""
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
152 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
153
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
154 def is_weapon(obj):
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
155 return is_equipment(obj) and getattr(obj, 'IS_WEAPON', False)
84
5494af02a0e8 Chickens with rifles!
Jeremy Thurgood <firxen@gmail.com>
parents:
diff changeset
156
174
ff168162974e armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 167
diff changeset
157 def is_armour(obj):
ff168162974e armour gets damaged
Adrianna Pińska <adrianna.pinska@gmail.com>
parents: 167
diff changeset
158 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
159
109
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
160 EQUIPMENT = []
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
161 for name in dir():
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
162 obj = eval(name)
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
163 try:
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
164 if is_equipment(obj):
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
165 EQUIPMENT.append(obj)
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
166 except TypeError:
48019afde338 Equipment purchasing and some toolbar tweaks.
Jeremy Thurgood <firxen@gmail.com>
parents: 99
diff changeset
167 pass