# HG changeset patch # User Stefano Rivera # Date 1378491906 -7200 # Node ID 3dd08e18580f15677a6aa07e71b7aae21e474ecc # Parent d0aeb893967d44e65a070ed587e3362e61958cff Acid attacks shoot things that look like acid diff -r d0aeb893967d -r 3dd08e18580f data/images/objects/acid.png Binary file data/images/objects/acid.png has changed diff -r d0aeb893967d -r 3dd08e18580f nagslang/enemies.py --- a/nagslang/enemies.py Fri Sep 06 20:12:07 2013 +0200 +++ b/nagslang/enemies.py Fri Sep 06 20:25:06 2013 +0200 @@ -220,7 +220,7 @@ self.set_direction(dx, dy) if self.lifetime - self._last_fired >= self.reload_time: FireEvent.post(pos, vec_with_length((dx, dy), ACID_SPEED), - ACID_DAMAGE, COLLISION_TYPE_ENEMY) + ACID_DAMAGE, 'acid', COLLISION_TYPE_ENEMY) self._last_fired = self.lifetime super(ChargingAlien, self).update(dt) diff -r d0aeb893967d -r 3dd08e18580f nagslang/events.py --- a/nagslang/events.py Fri Sep 06 20:12:07 2013 +0200 +++ b/nagslang/events.py Fri Sep 06 20:25:06 2013 +0200 @@ -48,9 +48,9 @@ class FireEvent(UserEvent): @classmethod - def post(cls, source, impulse, damage, source_collision_type): + def post(cls, source, impulse, damage, bullet_type, source_collision_type): super(FireEvent, cls).post(source=source, impulse=impulse, - damage=damage, + damage=damage, bullet_type=bullet_type, source_collision_type=source_collision_type) diff -r d0aeb893967d -r 3dd08e18580f nagslang/game_object.py --- a/nagslang/game_object.py Fri Sep 06 20:12:07 2013 +0200 +++ b/nagslang/game_object.py Fri Sep 06 20:25:06 2013 +0200 @@ -430,18 +430,21 @@ class Bullet(GameObject): - def __init__(self, space, position, impulse, damage, + def __init__(self, space, position, impulse, damage, bullet_type, source_collision_type): body = make_body(1, pymunk.inf, position) + body.angle = impulse.angle self.last_position = position self.shape = pymunk.Circle(body, 2) self.shape.sensor = True self.shape.collision_type = COLLISION_TYPE_PROJECTILE self.damage = damage + self.type = bullet_type self.source_collision_type = source_collision_type super(Bullet, self).__init__( SingleShapePhysicser(space, self.shape), - render.ImageRenderer(resources.get_image('objects', 'bullet.png')), + render.ImageRenderer(resources.get_image( + 'objects', '%s.png' % self.type)), ) self.physicser.apply_impulse(impulse) diff -r d0aeb893967d -r 3dd08e18580f nagslang/protagonist.py --- a/nagslang/protagonist.py Fri Sep 06 20:12:07 2013 +0200 +++ b/nagslang/protagonist.py Fri Sep 06 20:25:06 2013 +0200 @@ -299,7 +299,8 @@ return vec = vec_from_angle(self.angle, BULLET_SPEED) FireEvent.post( - self.physicser.position, vec, BULLET_DAMAGE, COLLISION_TYPE_PLAYER) + self.physicser.position, vec, BULLET_DAMAGE, 'bullet', + COLLISION_TYPE_PLAYER) def claw(self): claw_range = (math.sqrt(math.pow(self.physicser.get_velocity()[0], 2) + diff -r d0aeb893967d -r 3dd08e18580f nagslang/screens/area.py --- a/nagslang/screens/area.py Fri Sep 06 20:12:07 2013 +0200 +++ b/nagslang/screens/area.py Fri Sep 06 20:25:06 2013 +0200 @@ -178,7 +178,7 @@ # position change is enough elif FireEvent.matches(ev): bullet = Bullet(self.space, ev.source, ev.impulse, ev.damage, - ev.source_collision_type) + ev.bullet_type, ev.source_collision_type) self._drawables.add(bullet) elif EnemyDeathEvent.matches(ev): self.world.kills += 1 diff -r d0aeb893967d -r 3dd08e18580f source/images/objects/acid.svg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/source/images/objects/acid.svg Fri Sep 06 20:25:06 2013 +0200 @@ -0,0 +1,476 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + +