-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEnnemy.py
More file actions
77 lines (60 loc) · 3.53 KB
/
Copy pathEnnemy.py
File metadata and controls
77 lines (60 loc) · 3.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#Le fichier Ennemy contient toutes les fonctions relatives aux ennemis, toutes enregistrées dans la classe Ennemi
from random import *
class Ennemi:
"""La classe Ennemi regroupe toutes les fonctions associées aux ennemis
"""
def __init__(self, e_difficulte : str, e_creature : str, e_vie : int, e_attaque : float, e_chance_crit : int):
"""On initialise tout les parametres des ennemis
Args:
e_difficulte (str): Permet de définir un multiplicateur de puissance aux ennemis
e_creature (str): Permet de définir le type de créature
e_vie (int): Les PV de base de la créature
e_attaque (float): Les dégâts de base de la créature
e_chance_crit (int): Les chances du monstre de faire des coups critiques
"""
self.difficulte = e_difficulte
self.multiplicateur_puissance = 1
self.creature = e_creature
self.vie = e_vie * self.multiplicateur_puissance
self.attaque = e_attaque * self.multiplicateur_puissance
self.chance_crit = e_chance_crit
def statistiques(self):
print(f"Le {self.creature} ennemi a {self.vie} PV, fait {self.attaque} dégâts par attaque et a {self.chance_crit}% de chances de faire un coup critique.")
def degat(self, degat : float):
"""degat fait subir des degats au joueur
Args:
degat (float): Nombre de dégâts que va recevoir le joueur
"""
self.vie -= degat
self.vie = round(self.vie, 2)
def loot(self, ):
"""loot détermine le loot que le joueur récupére à chaque fois qu'il élimine un ennemi (2 chances sur 3 d'avoir des pièces)
Returns:
loot (str, int): le premier élément est l'item que le joueur récupére, le second élément est la quantité de cet item que le joueur récupére
"""
loot_item = choice(["Pièces", "Pièces", "Pièces", "Pièces", "Pièces", "Pièces", "Pièces", "Pièces", "Petite potion de soin", "Petite potion de force", "Petite potion de coup critique", "Petite potion de fuite"])
loot_nombre = 1
if loot_item == "Pièces":
if self.creature == "gremlin n°1" or self.creature == "gremlin n°2" or self.creature == "gremlin n°3" or self.creature == "gremlin n°4" or self.creature == "gremlin n°5" or self.creature == "méduse volante":
loot_nombre = randint(3, 7)
else:
loot_nombre = randint(10, 20)
loot = (loot_item, loot_nombre)
return loot
def difficulte_parametre(self):
"""difficulte_parametre permet au joueur de changer le niveau des ennemis (multiplicateur de PV et dégâts des ennemis)
"""
print("\n+" + "-"*200 + "+")
choix = input("Les niveaux disponibles sont :\n1. Faible (Multiplicateur de PV et des dégâts des ennemis x0.75)\n2. Normal (Multiplicateur de PV et des dégâts des ennemis x1)\n3. Fort (Multiplicateur de PV et des dégâts des ennemis x1.25)\n")
if choix == "1":
self.multiplicateur_puissance = 0.75
self.difficulte = "Faible"
elif choix == "2":
self.multiplicateur_puissance = 1
self.difficulte = "Normal"
elif choix == "3":
self.multiplicateur_puissance = 1.25
self.difficulte = "Fort"
else:
print(f"La réponse {choix} n'est pas valide, veuillez entrer 1, 2 ou 3")
self.difficulte_parametre()