diff --git a/gamedata/objects/combat/ennemies/ennemy.py b/gamedata/objects/combat/ennemies/ennemy.py index 1065b91..ee1b462 100644 --- a/gamedata/objects/combat/ennemies/ennemy.py +++ b/gamedata/objects/combat/ennemies/ennemy.py @@ -8,26 +8,40 @@ class Ennemy(Movable): self.player = None + self.respawnmargin = 30 + + self.respawn = True + self.dead = False + self.dustparticles = game.getSpriteDir("particles/dust/") def step(self): - super().step() - # Check for collision with player - if not self.player: - self.player = next(iter(self.game.gameloop.findname("Player")),None) - else: - if self.player.canhit: - if self.rect.colliderect(self.player.hitrect): - # Die - self.game.gameloop.delid(self.id) + if not self.dead: + super().step() + # Check for collision with player + if not self.player: + self.player = next(iter(self.game.gameloop.findname("Player")),None) + else: + if self.player.canhit: + if self.rect.colliderect(self.player.hitrect): + # Die + self.dead = True + # Add particles + self.game.addParticle(self.dustparticles,self.rect.center[0],self.rect.center[1]) + # Boost the player vertically + if not self.player.fastfall: + if self.player.rect[1]>self.rect[1]: + direction = 1 + else: + direction = -1 + self.player.verspd = self.player.gravity/3*direction + elif self.respawn: - # Add particles - self.game.addParticle(self.dustparticles,self.rect.center[0],self.rect.center[1]) - # Boost the player vertically - if not self.player.fastfall: - if self.player.rect[1]>self.rect[1]: - direction = 1 - else: - direction = -1 - self.player.verspd = self.player.gravity/3*direction + if self.rect.center[0] < self.game.globals["camerax"]-self.respawnmargin: + self.dead = False # Respawn + if self.rect.center[0] > self.game.globals["camerax"]+self.game.globals["cameraw"]+self.respawnmargin: + self.dead = False # Respawn + + else: + self.game.gameloop.delid(self.id) diff --git a/gamedata/objects/combat/ennemies/robot.py b/gamedata/objects/combat/ennemies/robot.py index 28095a1..9b939bf 100644 --- a/gamedata/objects/combat/ennemies/robot.py +++ b/gamedata/objects/combat/ennemies/robot.py @@ -15,7 +15,7 @@ class Robot(Ennemy): self.speed = 30 self.falling = 20 self.spriteindex = 0 - + self.gravityway = 1 # Vertical flip self.walkingway = 1 # Horizontal flip @@ -31,30 +31,34 @@ class Robot(Ennemy): def step(self): - # Flipping vertically - if self.water and self.rect.center[1]>self.water.rect[1]: - self.gravityway = -1 - else: - self.gravityway = 1 + if not self.dead: - # Flipping horizontally - if self.endpoints: - if self.rect.center[0]>self.endpoints[1]: - self.walkingway = -1 - if self.rect.center[0]self.water.rect[1]: + self.gravityway = -1 + else: + self.gravityway = 1 - speedmult = [1,0.5,0][int(self.spriteindex)%3] + # Flipping horizontally + if self.endpoints: + if self.rect.center[0]>self.endpoints[1]: + self.walkingway = -1 + if self.rect.center[0]