# HG changeset patch # User Stefano Rivera # Date 1378491046 -7200 # Node ID 534eac55a178257519581736800fc12f3e8a6b28 # Parent ba7a5159a69b9ceb992a4856e5bf400f05afdebc ChargingEnemy spits acid diff -r ba7a5159a69b -r 534eac55a178 nagslang/constants.py --- 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' diff -r ba7a5159a69b -r 534eac55a178 nagslang/enemies.py --- 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 diff -r ba7a5159a69b -r 534eac55a178 nagslang/protagonist.py --- 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)