コード例 #1
0
ファイル: WhiteBloodCell.py プロジェクト: Ahumm/Tumor-Raider
 def take_damage(self, damage):
     newProj = []
     if damage < 0:
         #spawn new things
         if self.split == 0:
             newProj.append(WhiteCellProj(self.rect.x + 52, self.rect.y, self.xvel, self.yvel, 1))
             newProj.append(WhiteCellProj(self.rect.x + 52, self.rect.y + 16, self.xvel/2, self.xvel/2, 2))
             newProj.append(WhiteCellProj(self.rect.x + 52, self.rect.y - 16, self.xvel/2, -self.xvel/2, 2))
         elif self.split == 1:
             newProj.append(WhiteCellProj(self.rect.x + 52, self.rect.y + 16, self.xvel/2, self.xvel/2, 2))
             newProj.append(WhiteCellProj(self.rect.x + 52, self.rect.y  - 16, self.xvel/2, -self.xvel/2, 2))
             
         Actor.take_damage(self, damage)
     return newProj
コード例 #2
0
ファイル: player.py プロジェクト: Ahumm/Tumor-Raider
 def take_damage(self, damage):
     if self.immortal > 0:
         pass
     else:
         if self.shield:
             thp = self.health
             self.health = -1
             Actor.take_damage(self, damage)
             if self.health != 0:
                 self.health = thp
         else:
             Actor.take_damage(self, damage)
             #if self.health <= 0:
             #    print "died"
             #elif self.buzzcount == 0:
             if self.health > 0 and self.buzzcount == 0:
                 self.buzzcount = self.buzzcountmax
                 self.buzz.play()
コード例 #3
0
ファイル: boss.py プロジェクト: Ahumm/Tumor-Raider
 def collide(self, a):
     if isinstance(a, Player):
         if self.phase == 1:
             for i in self.arms:
                 for j in i:
                     radius1 = a.rect.width // 2
                     radius2 = j.rect.width // 2
                     if sqrt(((a.rect.x + radius1)-(j.rect.x + radius2))**2 + ((a.rect.y + radius1)-(j.rect.y + radius2))**2) < (radius1 + radius2):
                         a.take_damage(j.damage)
         radius1 = a.rect.width // 2
         radius2 = self.rect.width // 2
         if sqrt(((a.rect.x + radius1)-(self.rect.x + radius2))**2 + ((a.rect.y + radius1)-(self.rect.y + radius2))**2) < (radius1 + radius2):
             a.take_damage(self.damage)
     else:
         if self.phase == 1:
             for i in self.arms:
                 for j in i:
                     radius1 = a.rect.width // 2
                     radius2 = j.rect.width // 2
                     if sqrt(((a.rect.x + radius1)-(j.rect.x + radius2))**2 + ((a.rect.y + radius1)-(j.rect.y + radius2))**2) < (radius1 + radius2):
                         j.take_damage(a.damage)
                         proj = a.take_damage(-1)
                         if proj:
                             return proj
         if self.phase == 0:
             radius1 = a.rect.width // 2
             radius2 = self.eyerect.width // 2
             if sqrt(((a.rect.x + radius1)-(self.eyerect.x + radius2))**2 + ((a.rect.y + radius1)-(self.eyerect.y + radius2))**2) < (radius1 + radius2):
                 a.take_damage(-1)
                 Actor.take_damage(self, a.damage)
         radius1 = a.rect.width // 2
         radius2 = self.rect.width
         if sqrt(((a.rect.x + radius1)-(self.rect.x + radius2))**2 + ((a.rect.y + radius1)-(self.rect.y + radius2))**2) < (radius1 + radius2):
             a.take_damage(-1)
             if self.phase == 2:
                 Actor.take_damage(self, a.damage)
コード例 #4
0
ファイル: projectile.py プロジェクト: Ahumm/Tumor-Raider
 def take_damage(self, damage=0):
     Actor.take_damage(self, damage)