2024-01-03 10:21:19 +00:00
|
|
|
import math
|
|
|
|
|
2024-01-02 14:55:40 +00:00
|
|
|
from src.engine.entity import Entity
|
2024-01-03 10:21:19 +00:00
|
|
|
from src.engine.entity_manager import EntityManager
|
|
|
|
from src.engine.map_manager import MapManager
|
2024-01-02 14:55:40 +00:00
|
|
|
from src.engine.mobs_AI import MobAI
|
|
|
|
|
|
|
|
|
|
|
|
class WolfAI(MobAI):
|
2024-01-03 10:21:19 +00:00
|
|
|
def __init__(self, entity: 'Entity', entity_manager: 'EntityManager', map_manager: 'MapManager'):
|
|
|
|
super().__init__(entity, entity_manager, map_manager)
|
2024-01-02 14:55:40 +00:00
|
|
|
|
|
|
|
def update(self):
|
2024-01-03 10:21:19 +00:00
|
|
|
|
|
|
|
player: Entity = self.entity_manager.get_by_name(self.entity_manager.player_entity_name)
|
|
|
|
|
|
|
|
x_distance = (player.x - self.entity.x)
|
|
|
|
y_distance = (player.y - self.entity.y)
|
|
|
|
|
|
|
|
player_distance = math.sqrt(x_distance ** 2 + y_distance ** 2)
|
|
|
|
|
2024-01-03 12:12:14 +00:00
|
|
|
if player.ge_collisions_with_entity(self.entity):
|
|
|
|
player.take_damages(1)
|
2024-01-03 10:21:19 +00:00
|
|
|
|
|
|
|
if abs(player_distance) > self.entity.max_speed:
|
|
|
|
self.entity.move(x_distance / player_distance*self.entity.max_speed,
|
|
|
|
y_distance / player_distance*self.entity.max_speed, self.map_manager)
|