Mercurial > rinkhals
comparison 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 |
comparison
equal
deleted
inserted
replaced
197:d74693555b86 | 198:355eaae40b1f |
---|---|
33 class Weapon(Equipment): | 33 class Weapon(Equipment): |
34 IS_WEAPON = True | 34 IS_WEAPON = True |
35 DRAW_LAYER = 10 | 35 DRAW_LAYER = 10 |
36 | 36 |
37 def _get_parameter(self, parameter, wielder): | 37 def _get_parameter(self, parameter, wielder): |
38 mod_attr = 'MODIFY_%s_%s' % (self.TYPE, parameter) | |
39 param = getattr(self, parameter) | 38 param = getattr(self, parameter) |
40 return getattr(wielder.abode, mod_attr, lambda r: r)(param) | 39 if wielder.abode: |
40 mod_attr = 'MODIFY_%s_%s' % (self.TYPE, parameter) | |
41 modifier = getattr(wielder.abode.building, mod_attr, lambda r: r) | |
42 param = modifier(param) | |
43 return param | |
41 | 44 |
42 def in_range(self, gameboard, wielder, target): | 45 def in_range(self, gameboard, wielder, target): |
43 """Can the lucky wielder hit the potentially unlucky target with this?""" | 46 """Can the lucky wielder hit the potentially unlucky target with this?""" |
44 return wielder.pos.dist(target.pos) <= self._get_parameter('RANGE', wielder) | 47 return wielder.pos.dist(target.pos) <= self._get_parameter('RANGE', wielder) |
45 | 48 |