diff --git a/src/custom_AI.py b/src/custom_AI.py new file mode 100644 index 0000000..bfce194 --- /dev/null +++ b/src/custom_AI.py @@ -0,0 +1,10 @@ +from src.engine.entity import Entity +from src.engine.mobs_AI import MobAI + + +class WolfAI(MobAI): + def __init__(self, entity: Entity): + super().__init__(entity) + + def update(self): + self.entity.x += 1 diff --git a/src/engine/entity.py b/src/engine/entity.py index b03ba9d..9e7a4fc 100644 --- a/src/engine/entity.py +++ b/src/engine/entity.py @@ -1,6 +1,7 @@ import math from src.engine.map_manager import MapManager +from src.engine.mobs_AI import MobAI class Entity: @@ -31,6 +32,7 @@ class Entity: # Time utilisé pour les IA self.time = 0 + self.brain: MobAI | None = None self.name = name @@ -43,6 +45,11 @@ class Entity: self.life_points = life self.max_life_points = life + def set_ai(self, ai: MobAI): + self.brain = ai + self.brain.__init__(self) + print(ai.entity) + def update(self, delta: float): """Met à jour l'entité.""" self.time += delta diff --git a/src/engine/mobs_AI.py b/src/engine/mobs_AI.py new file mode 100644 index 0000000..699c489 --- /dev/null +++ b/src/engine/mobs_AI.py @@ -0,0 +1,9 @@ +from src.engine.entity import Entity + + +class MobAI: + def __init__(self, entity: Entity): + self.entity = entity + + def update(self): + pass diff --git a/src/main.py b/src/main.py index 8f1ec06..da4be06 100644 --- a/src/main.py +++ b/src/main.py @@ -1,5 +1,6 @@ import pygame.image +from src.custom_AI import WolfAI from src.engine.animation import Anim from src.engine.engine import Engine from src.engine.enums import GameState @@ -15,7 +16,7 @@ class Game(Engine): self.create_player_entity() self.load_boss_fight_assets() - self.DEBUG_MODE = False + self.DEBUG_MODE = True self.game_state = GameState.NORMAL @@ -33,7 +34,7 @@ class Game(Engine): player.link_animation("player_none") player.collision_rect = [-6, -7, 6, 16] - player.set_default_life(10) + player.set_default_life(15) player.max_speed = 1. self.entity_manager.set_player_entity("player") @@ -43,6 +44,13 @@ class Game(Engine): self.camera.follow_entity(player) + def spawn_mobs(self): + """Fait apparaitre les mobs de la map.""" + mob = self.entity_manager.register_entity("wolf1") + mob.set_ai(WolfAI) + + + def load_boss_fight_assets(self): """Charge les animations de combat des combats de boss.""" player_none = Anim(1)