Mercurial > nagslang
changeset 361:534eac55a178
ChargingEnemy spits acid
author | Stefano Rivera <stefano@rivera.za.net> |
---|---|
date | Fri, 06 Sep 2013 20:10:46 +0200 |
parents | ba7a5159a69b |
children | d0aeb893967d |
files | nagslang/constants.py nagslang/enemies.py nagslang/protagonist.py |
diffstat | 3 files changed, 17 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/nagslang/constants.py Fri Sep 06 20:06:25 2013 +0200 +++ b/nagslang/constants.py Fri Sep 06 20:10:46 2013 +0200 @@ -54,6 +54,10 @@ BULLET_DAMAGE = 10 CLAW_DAMAGE = 5 +ACID_DAMAGE = 7 + +BULLET_SPEED = 1000 +ACID_SPEED = 300 CMD_TOGGLE_FORM = 'toggle_form' CMD_ATTACK = 'attack'
--- a/nagslang/enemies.py Fri Sep 06 20:06:25 2013 +0200 +++ b/nagslang/enemies.py Fri Sep 06 20:10:46 2013 +0200 @@ -5,8 +5,8 @@ from nagslang import render from nagslang.constants import (COLLISION_TYPE_ENEMY, COLLISION_TYPE_FURNITURE, - ZORDER_MID) -from nagslang.events import EnemyDeathEvent + ACID_SPEED, ACID_DAMAGE, ZORDER_MID) +from nagslang.events import EnemyDeathEvent, FireEvent from nagslang.game_object import GameObject, SingleShapePhysicser, make_body from nagslang.mutators import FLIP_H from nagslang.resources import resources @@ -179,10 +179,12 @@ health = 42 enemy_damage = 20 impulse_factor = 300 + reload_time = 0.2 def __init__(self, space, world, position, attack_range=100): super(ChargingAlien, self).__init__(space, world, position) self._range = attack_range + self._last_fired = 0 def make_physics(self, space, position): body = make_body(100, pymunk.inf, position, 0.8) @@ -213,7 +215,13 @@ self.is_moving = False return self.is_moving = True - self.set_direction(target.x - pos.x, target.y - pos.y) + dx = target.x - pos.x + dy = target.y - pos.y + 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) + self._last_fired = self.lifetime super(ChargingAlien, self).update(dt) @classmethod
--- a/nagslang/protagonist.py Fri Sep 06 20:06:25 2013 +0200 +++ b/nagslang/protagonist.py Fri Sep 06 20:10:46 2013 +0200 @@ -7,7 +7,7 @@ from nagslang.constants import ( COLLISION_TYPE_PLAYER, ZORDER_MID, WEREWOLF_SOAK_FACTOR, PROTAGONIST_HEALTH_MIN_LEVEL, PROTAGONIST_HEALTH_MAX_LEVEL, - NON_GAME_OBJECT_COLLIDERS, BULLET_DAMAGE, CLAW_DAMAGE, + NON_GAME_OBJECT_COLLIDERS, BULLET_DAMAGE, BULLET_SPEED, CLAW_DAMAGE, CMD_TOGGLE_FORM, CMD_ATTACK, CMD_ACTION) from nagslang.events import FireEvent, ClawEvent from nagslang.game_object import GameObject, Physicser, make_body @@ -297,7 +297,7 @@ def shoot(self): if not self.has_item('gun'): return - vec = vec_from_angle(self.angle, 1000) + vec = vec_from_angle(self.angle, BULLET_SPEED) FireEvent.post( self.physicser.position, vec, BULLET_DAMAGE, COLLISION_TYPE_PLAYER)