Ajout de l'enregistrement des boss figth

This commit is contained in:
Yannis 2024-01-14 19:40:02 +01:00
parent a25d9d459b
commit 2fda053da9
2 changed files with 27 additions and 9 deletions

View file

@ -14,14 +14,17 @@ class BossFightManager:
self.fights = {}
self.current_fight_id = -1
self.player_points = -1
self.boss_points = -1
def update(self):
"""Met à jour le combat de boss."""
if self.engine.game_state == GameState.BOSS_FIGHT:
pass
def register_fight_data(self, fight_id: int, boss_name: str, boss_life: int, boss_damage_count: int):
def register_fight_data(self, fight_id: int, boss_name: str, total_concurrent_points: int, boss_damage_count: int):
"""Enregistre les données permettant de mettre en place le combat."""
self.fights[fight_id] = [boss_name, boss_life, boss_damage_count]
self.fights[fight_id] = [boss_name, total_concurrent_points, boss_damage_count]
def enter_boss_fight(self, fight_id: int):
"""Entre dans le combat de boss donné."""
@ -29,6 +32,7 @@ class BossFightManager:
self.engine.sound_manager.music_pause(3)
self.engine.renderer.fadeout(3, (0, 0, 0), 100, True, self.setup_fight)
def setup_fight(self):
"""Met en place le combat."""
@ -43,4 +47,8 @@ class BossFightManager:
self.engine.sound_manager.music_set_volume(volume)
self.engine.entity_manager.pause()
self.player_points = self.fights[self.current_fight_id]
self.boss_points = self.fights[self.current_fight_id]
self.engine.game_state = GameState.BOSS_FIGHT

View file

@ -16,7 +16,7 @@ class Game(Engine):
self.dialogs_manager.load_dialogs("assets/dialogs.json")
self.create_player_entity()
self.load_boss_fight_assets()
self.setup_boss_fight()
self.spawn_mobs()
self.DEBUG_MODE = True
@ -35,8 +35,9 @@ class Game(Engine):
self.setup_main_menu()
def start_game(self):
self.game_state = GameState.NORMAL
self.renderer.fadein(1, (0, 0, 0), 100, True)
#self.game_state = GameState.NORMAL
self.boss_fight_manager.enter_boss_fight(1)
#self.renderer.fadein(1, (0, 0, 0), 100, True)
def play_button_callback(self):
self.renderer.fadeout(1, (0, 0, 0), 100, True, self.start_game)
@ -66,9 +67,12 @@ class Game(Engine):
"""Enregistre les zones d'entrées de boss fight."""
self.event_sheduler.register_area((3104, 608, 48, 16), lambda _: self.boss_fight_manager.enter_boss_fight(1),
["player"], True)
self.event_sheduler.register_area((4544, 592, 48, 16), lambda _: print("temple 2"), ["player"], True)
self.event_sheduler.register_area((5664, 688, 32, 16), lambda _: print("temple 3"), ["player"], True)
self.event_sheduler.register_area((6720, 720, 16, 32), lambda _: print("temple 4"), ["player"], True)
self.event_sheduler.register_area((4544, 592, 48, 16), lambda _: self.boss_fight_manager.enter_boss_fight(2),
["player"], True)
self.event_sheduler.register_area((5664, 688, 32, 16), lambda _: self.boss_fight_manager.enter_boss_fight(3),
["player"], True)
self.event_sheduler.register_area((6720, 720, 16, 32), lambda _: self.boss_fight_manager.enter_boss_fight(4),
["player"], True)
def create_player_entity(self):
"""Crée une entité joueur."""
@ -129,7 +133,7 @@ class Game(Engine):
mob.x, mob.y = 1600, 16
def load_boss_fight_assets(self):
def setup_boss_fight(self):
"""Charge les animations de combat des combats de boss."""
player_none = Anim(1)
player_none.load_animation_from_directory("assets/textures/boss_fight/player_big/none")
@ -140,6 +144,12 @@ class Game(Engine):
self.renderer.boss_fight_GUI_container = pygame.image.load("assets/textures/boss_fight/fight_actions_GUI.png").convert_alpha()
# On crée les boss
self.boss_fight_manager.register_fight_data(1, "Greg", 15, 1)
self.boss_fight_manager.register_fight_data(2, "Mark", 18, 2)
self.boss_fight_manager.register_fight_data(3, "Steve", 20, 3)
self.boss_fight_manager.register_fight_data(4, "The ultra-supra boss", 25, 4)
game = Game()
game.loop()