implement ennemy life

master
grisel-davy 4 years ago
parent 5a6d1ae458
commit ab6fb53b6a

@ -273,7 +273,7 @@ class Player():
def fire(self,name,texture):
if (time()-self.last_fire> 1/max_fire_rate):
new_proj = Projectile(name,self.texture_proj,(self.posx,self.posy),20,self.degres_canon)
new_proj = Projectile(name,self.texture_proj,(self.posx,self.posy),20,self.degres_canon,50)
self.projectiles.append(new_proj)
self.last_fire = time()
self.ammo = self.ammo -1
@ -296,6 +296,10 @@ class Enemy():
posy_screen = self.posy-offsety
surface.blit(self.img,(posx_screen-self.rect.center[0],posy_screen-self.rect.center[1]))
def touched(self, proj):
self.life -= proj.damage
print(f"life down to {self.life}")
def die(self,game,index):
print(f"{self.name} died with honor.")
del game.enemies[index]
@ -303,7 +307,8 @@ class Enemy():
class Projectile():
def __init__(self,name,texture,position,speed,angle):
def __init__(self,name,texture,position,speed,angle,damage):
self.damage = damage
self.name = name
self.speed = speed
self.posx = position[0]
@ -340,7 +345,9 @@ class Projectile():
for k,enemy in enumerate(game.enemies):
if enemy.mask.overlap(self.mask, (enemy.posx+enemy.rect.center[0]-self.posx-self.rect.center[0],enemy.posy+enemy.rect.center[1]-self.posy-self.rect.center[1])):
print("Impact on enemy {} at position {}".format(enemy.name,(enemy.posx,enemy.posy)))
enemy.die(game,k)
enemy.touched(self)
if enemy.life <= 0:
enemy.die(game,k)
impact = True
return impact
Loading…
Cancel
Save