init
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
""" Class Level """
|
||||
import random
|
||||
import mobs_utils
|
||||
from character_builder import CharacterBuilder
|
||||
|
||||
|
||||
class Level():
|
||||
""" Class Level """
|
||||
|
||||
def __init__(self, difficulty, player):
|
||||
""" Chargement du niveau """
|
||||
print("Loading Level")
|
||||
self.mobs_in_level = mobs_utils.generate_random_mob_list(
|
||||
random.randint(2, difficulty))
|
||||
self.exit_level = True
|
||||
self.player = player
|
||||
self.rooms = mobs_utils.generate_random_rooms(
|
||||
self.mobs_in_level, difficulty) # Liste des pièces du niveau
|
||||
self.current_room_index = 0 # Index de la pièce actuelle
|
||||
|
||||
print("Level Loaded")
|
||||
|
||||
def combat(self, mob, player):
|
||||
while (mob.current_pv > 0 and player.current_pv > 0):
|
||||
if mob.speed > player.speed:
|
||||
mob.perform_attack(player)
|
||||
player.perform_attack(mob)
|
||||
else:
|
||||
player.perform_attack(mob)
|
||||
mob.perform_attack(player)
|
||||
print(f"{player.name} - {player.current_pv} PV")
|
||||
print(f"{mob.name} - {mob.current_pv} PV")
|
||||
|
||||
|
||||
def action_menu():
|
||||
""" Menu Action du niveau """
|
||||
print("Pièce Suivante :\t1")
|
||||
print("Quitter :\t\t4")
|
||||
return int(input("Choix : "))
|
||||
|
||||
# Exemple d'utilisation
|
||||
if __name__ == "__main__":
|
||||
level = Level(2, CharacterBuilder.load_character("Jamin"))
|
||||
player = level.player
|
||||
rooms = level.rooms
|
||||
number_room = len(rooms)
|
||||
print(f"Nombre de pièce dans le donjon : {number_room}")
|
||||
|
||||
while level.exit_level:
|
||||
match action_menu():
|
||||
case 1:
|
||||
if level.current_room_index >= number_room:
|
||||
print("fin du donjon !")
|
||||
break
|
||||
room = rooms[level.current_room_index]
|
||||
print(f"Pièce actuelle : {level.current_room_index}")
|
||||
if room:
|
||||
for mob in room:
|
||||
level.combat(mob, player)
|
||||
if player.current_pv <= 0:
|
||||
print("!!!!!!!!! Joueur mort !!!!!!!!!!")
|
||||
break
|
||||
else:
|
||||
print("Pièce vide")
|
||||
player.current_pv = player.max_pv
|
||||
level.current_room_index += 1
|
||||
case 4:
|
||||
level.exit_level = False
|
||||
print(f"Au revoir {player.name} !")
|
||||
case _:
|
||||
print("Mauvais choix")
|
||||
Reference in New Issue
Block a user