def getHit(self, direction, damage): helpers.shake(self.screen, 40) self.old_position = self.rect.topleft if self.invul == 0: if direction == "right": self.old_position = self.position[0] + 40, self.position[1] elif direction == "left": self.old_position = self.position[0] - 40, self.position[1] elif direction == "down": self.old_position = self.position[0], self.position[1] +40 elif direction == "up": self.old_position = self.position[0], self.position[1] -40 self.rect.topleft = helpers.checkBoundry(self.old_position) self.health -= damage self.invul = 80 self.position = self.rect.topleft if self.health < 0: self.alive = False
def breakRock(self, rocks): if self.hit_rock_timer < 20: self.image = self.break_rock_image if self.hit_rock_timer > 0: self.hit_rock_timer -=1 else: self.image = self.front_still hit_rock = pygame.sprite.spritecollide(self, rocks, False) if hit_rock: helpers.shake(pygame.display.get_surface(), 100) hit_rock[0].kill() self.touched_rocks.empty() self.stuck = False self.hit_rock_timer = 100
def __check_collision(self, rocks, player, old_position): hit_rock = pygame.sprite.spritecollide(self, rocks, False) if hit_rock: self.rect.topleft = old_position[0], old_position[1] self.position = self.rect.topleft self.stun_timer = 60 helpers.shake(pygame.display.get_surface(), 50) self.to_be_moved_rock = hit_rock[0] self.hit_distance = 15 hit_player = pygame.sprite.collide_rect(self, player) if hit_player: player.getHit(self.follow_direction, 2) self.stun_timer = 15
def getHit(self, direction, damage): helpers.shake(self.windowSurface, 40) self.old_position = self.rect.topleft self.position = self.rect.topleft if self.weapon == 0: self.attack_group.empty() if self.invul == 0: if direction == "right": self.old_position = self.position[0] + 40, self.position[1] elif direction == "left": self.old_position = self.position[0] - 40, self.position[1] elif direction == "down": self.old_position = self.position[0], self.position[1] +40 elif direction == "up": self.old_position = self.position[0], self.position[1] -40 self.rect.topleft = helpers.checkBoundry(self.old_position) self.health -= damage self.invul = 80 self.position = self.rect.topleft
def update(self, player, rocks): if not self.dying: if self.attack_timer == 0: self.__loadShot(player) self.attack_timer = 130 elif self.attack_timer <10: self.image = self.faceGrowl self.attack_timer -=1 else: self.__bob() self.attack_timer -=1 self.image = self.faceSmile self.attack_group.update(player, rocks) self.attack_group.draw(self.screen) hit_player = pygame.sprite.spritecollide(player, self.attack_group, False) if hit_player: player.getHit("none", 1) #hit_player[0].kill() if player.hasFriend: friend = player.passComp() hit_friend = pygame.sprite.spritecollide(friend, self.attack_group, True) if hit_friend: friend.getHit("none", 100) friend.getDead() hit_friend[0].kill() player.hasFriend = False hit_head = pygame.sprite.spritecollide(self, self.attack_group, False) if hit_head and self.immortal_timer <= 0: helpers.shake(pygame.display.get_surface(), 50) self.health -= 1 self.immortal_timer = 30 if self.health <=0: self.image = self.faceGrowl self.dying = True self.immortal_timer -= 1 else: self.__die()
def getHit(self): helpers.shake(pygame.display.get_surface(), 50) if self.on_it: self.shaken = True
def getHit(self): helpers.shake(pygame.display.get_surface(), 50) self.kill()