예제 #1
0
    def process_ai(self):
        if self.leave_screen:
            if self.speed > 5:
                self. speed -= .015

        elif self.speed <= 5:
            self.speed = 13
            aitools.go_to_target(self, self.target)

        else:
            self.speed -= 0.15
            self.velocity = self.velocity.make_normal() * self.speed
예제 #2
0
    def process_ai(self):
        if self.leave_screen:
            if self.speed > 5:
                self.speed -= .015

        elif self.speed <= 5:
            self.speed = 13
            aitools.go_to_target(self, self.target)

        else:
            self.speed -= 0.15
            self.velocity = self.velocity.make_normal() * self.speed
예제 #3
0
    def process_ai(self):
        if self.leave_screen:
            pass

        elif self.active:
            # Find the distance to the player
            magnitude = self.target.position - self.position
            if magnitude.get_magnitude() < 250:
                # If the player is within x distance then charge the player.
                self.speed = 7
            else:
                self.speed = 2

            aitools.go_to_target(self, self.target)
예제 #4
0
    def process_ai(self):
        if self.leave_screen:
            pass

        elif self.active:
            # Find the distance to the player
            magnitude = self.target.position - self.position
            if magnitude.get_magnitude() < 250:
                # If the player is within x distance then charge the player.
                self.speed = 7
            else:
                self.speed = 2

            aitools.go_to_target(self, self.target)
예제 #5
0
    def process_ai(self):
        if self.health <= self.world.level + 1:
            if self.charging:
                self.speed -= 0.2
                if self.speed <= 1.75:
                    self.speed = 1.75
                    self.charging = False
                    self.text_group.add(self.eye)
                    self.time_until_charge = 7 * FRAMES_PER_SECOND
            else:
                if not self.time_until_charge:
                    self.charging = True
                    self.speed = 10
                    self.eye.kill()
                
                self.time_until_charge -= 1
                aitools.go_to_target(self, self.target)

        else:
            aitools.go_to_target(self, self.target)
예제 #6
0
    def process_ai(self):
        self.charging = False

        # Find the distance to the player
        distance = (self.target.position - self.position).get_magnitude()

        if self.hide_behind.actor_type == ACTOR_TYPE_BOSS:
            if distance < 450:
                self.speed = 10
                aitools.go_to_target(self, self.target)
                self.charging = True
                self.hiding = False

        else:
            if distance < 325:
                self.speed = 10
                aitools.go_to_target(self, self.target)
                self.charging = True
                self.hiding = False

        if not self.charging:
            self.speed = 7
            self.hiding = True
            aitools.hide(self, self.hide_behind, self.target)
예제 #7
0
    def process_ai(self):
        if self.charging:
            self.speed -= 0.2

            if self.speed <= 2:
                self.speed = 2
                self.charging = False
                self.bound_style = BOUND_STYLE_CUSTOM
                self.time_until_charge = 6 * FRAMES_PER_SECOND
            
            aitools.go_to_target(self, self.target)

        elif self.spinning:
            self.speed += 0.2
            
            if self.speed >= 40:
                self.speed = 15
                self.charging = True
                self.spinning = False
                self.time_until_spin = 7 * FRAMES_PER_SECOND
            
            self.velocity += self.velocity.get_perpendicular().make_normal()
            self.velocity = self.velocity.make_normal() * self.speed

        elif self.health <= (self.world.level + 1) * 7:
            if not self.time_until_charge:
                self.charge()

            elif not self.time_until_spin:
                self.spin()

            else:
                aitools.go_to_target(self, self.target)

        elif self.health <= (self.world.level + 1) * 14:
            if not self.time_until_charge:
                self.charge()

            else:
                aitools.go_to_target(self, self.target)

        else:
            aitools.go_to_target(self, self.target)
예제 #8
0
 def process_ai(self):
     aitools.go_to_target(self, self.target)
예제 #9
0
    def charge(self):
        self.charging = True
        self.speed = 11

        aitools.go_to_target(self, self.target)
        self.bound_style = BOUND_STYLE_REFLECT