Mercurial > nagslang
changeset 553:a47100b28b7d
the black goat with a thousand young
author | Adrianna Pińska <adrianna.pinska@gmail.com> |
---|---|
date | Sat, 07 Sep 2013 22:01:03 +0200 |
parents | e8bdcc34bb70 |
children | 400f52d4279d |
files | data/levels/finale nagslang/enemies.py |
diffstat | 2 files changed, 43 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/data/levels/finale Sat Sep 07 21:55:38 2013 +0200 +++ b/data/levels/finale Sat Sep 07 22:01:03 2013 +0200 @@ -1,5 +1,10 @@ base_tile: tiles/alien_tile.png -enemies: [] +enemies: +- args: + - [1400, 1400] + - 500 + classname: Queen + name: queen game_objects: - args: - [2100, 700]
--- a/nagslang/enemies.py Sat Sep 07 21:55:38 2013 +0200 +++ b/nagslang/enemies.py Sat Sep 07 22:01:03 2013 +0200 @@ -303,6 +303,43 @@ def requires(cls): return [("name", "string"), ("position", "coordinates"), ("attack_range", "distance")] + + +class Queen(RunAndGunAlien): + enemy_type = "queen" + impulse_factor = 180 + health = 500 + enemy_damage = 50 + is_moving = True + spawn_time = 10 + spawn_size = 5 + spawn_class = ChargingAlien + spawn_class_args = (200,) + + def __init__(self, space, world, position, attack_range=100): + super(Queen, self).__init__(space, world, position, attack_range) + self.add_timer('spawn', self.spawn_time) + + def spawn(self, result): + if not self.check_timer('spawn'): + self.start_timer('spawn', self.spawn_time) + for i in range(self.spawn_size): + result.add += (self.spawn_class(self.get_space(), + self.world, self.physicser.position, + *self.spawn_class_args),) + + def attack(self, result): + self.ranged_attack(300, ACID_SPEED, ACID_DAMAGE, 'acid', 1, result) + + def update(self, dt): + result = super(Queen, self).update(dt) + self.spawn(result) + return result + + @classmethod + def requires(cls): + return [("name", "string"), ("position", "coordinates"), + ("attack_range", "distance")] class Sheep(Enemy): # Only because we don't have a DeliciousCreature class.