From 74e05b11d278b254f83e5e259069ff2d47355d56 Mon Sep 17 00:00:00 2001 From: "theo@manjaro" Date: Sun, 19 Sep 2021 15:49:34 +0200 Subject: [PATCH] Added monster behavior --- gamedata/assets/lemmings/monster/aura.png | Bin 0 -> 9483 bytes gamedata/objects/ingame/lemmings.py | 16 ++++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 gamedata/assets/lemmings/monster/aura.png diff --git a/gamedata/assets/lemmings/monster/aura.png b/gamedata/assets/lemmings/monster/aura.png new file mode 100644 index 0000000000000000000000000000000000000000..8eeab32e02fe20932ac311cb72d5dab4c35fe345 GIT binary patch literal 9483 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 literal 0 HcmV?d00001 diff --git a/gamedata/objects/ingame/lemmings.py b/gamedata/objects/ingame/lemmings.py index 558db26..40922ee 100644 --- a/gamedata/objects/ingame/lemmings.py +++ b/gamedata/objects/ingame/lemmings.py @@ -23,13 +23,13 @@ class Lemming(BaseObject): self.basespeed*=1.4 self.scoreratio*=5 if skin=="monster": - self.scoreratio*=3 + self.scoreratio*=6 self.skin = skin self.maxhealth = 2 # Pinmiks can be attacked by the monsters self.health = self.maxhealth - self.regen = 0.1 + self.regen = 1 self.selected = False # If beeing redirected @@ -77,9 +77,14 @@ class Lemming(BaseObject): for pinmik in self.game.gameloop.findname("Lemming"): if pinmik.skin!="monster": if self.rect.collidepoint(pinmik.rect.center): - pinmik.health-=self.game.dt + pinmik.health-=self.game.dt*3.5 if self.holdrect.collidepoint(pinmik.rect.center): - pinmik.health-=self.game.dt + pinmik.health-=self.game.dt*2 + # Lean towards middle + angle_to_mid = math.degrees(math.atan2(self.game.DISPLAY_HEIGHT/2-self.rect.center[1],self.game.DISPLAY_WIDTH/2-self.rect.center[0])) + if abs(angle_to_mid-self.direction-360) self.basespeed*1.5: @@ -158,6 +163,9 @@ class Lemming(BaseObject): self.holdrect[1]+=int(vely) def draw(self): + if self.skin=="monster": + # Red aura + self.game.lib.drawcenter(self.game,self.game.sprite_lib["lemmings/monster/aura.png"],self.rect.center[0],self.rect.center[1]) # Shaking based on life offx,offy = 0,0 if self.health