ViegoMaster
1 year ago
1 changed files with 67 additions and 0 deletions
@ -0,0 +1,67 @@
|
||||
def combattre(self:'Personnage', adversaire:'Monstre') -> tuple: |
||||
""" |
||||
Effectue un combat entre le personnage et un monstre. |
||||
|
||||
Parameters: |
||||
- self ('Personnage'): L'instance du personnage effectuant l'attaque. |
||||
- adversaire ('Monstre'): L'instance du monstre contre lequel le personnage se bat. |
||||
|
||||
Returns: |
||||
- tuple: Un tuple contenant le code de résultat et la description du combat. |
||||
|
||||
Code de Résultat : |
||||
- 'x': Le combat n'est pas encore terminé. |
||||
- 'MP': Les deux participants sont hors combat. |
||||
- 'P': Le personnage est hors combat. |
||||
- 'M': Le monstre est hors combat. |
||||
|
||||
Description : |
||||
Le combat consiste en plusieurs étapes, où les scores de combat sont comparés, et des dégâts sont infligés en fonction du résultat. |
||||
Les participants peuvent également subir des dégâts critiques ou être hors combat. |
||||
|
||||
""" |
||||
score_personnage = rd.randint(1, 6) + rd.randint(1, 6) + self.habilite |
||||
score_monstre = rd.randint(1, 6) + rd.randint(1, 6) + adversaire.habilite |
||||
result_code = 'x' |
||||
|
||||
while result_code == 'x': |
||||
if score_personnage == score_monstre: |
||||
self.subir_degats(1) |
||||
adversaire.subir_degats(1) |
||||
result_code = "x" |
||||
result_desc = f"{self.nom} et {adversaire.nom} se blessent mutuellement." |
||||
time.sleep(1) |
||||
print(result_desc) |
||||
elif score_personnage > score_monstre: |
||||
adversaire.subir_degats(self.force) |
||||
result_code = "x" |
||||
result_desc = f"{self.nom} inflige {self.force} points de dégâts au {adversaire.nom}." |
||||
time.sleep(1) |
||||
print(result_desc) |
||||
else: |
||||
self.subir_degats(adversaire.force) |
||||
result_code = "x" |
||||
result_desc = f"{adversaire.nom} inflige {adversaire.force} points de dégâts au {self.nom}." |
||||
time.sleep(0.5) |
||||
print(result_desc) |
||||
if rd.randint(1, 6) == rd.randint(1, 6): |
||||
double_damage = self.force * 2 |
||||
adversaire.subir_degats(double_damage) |
||||
result_desc += f" Coup critique ! {self.nom} inflige {double_damage} points de dégâts supplémentaires au {adversaire.nom}." |
||||
time.sleep(0.5) |
||||
print(result_desc) |
||||
elif self.est_hs() and adversaire.est_hs(): |
||||
result_code = "MP" |
||||
result_desc = f"{self.nom} et {adversaire.nom} sont tous les deux hors combat." |
||||
time.sleep(0.5) |
||||
print(result_desc) |
||||
elif self.est_hs(): |
||||
result_code = "P" |
||||
result_desc = f"{self.nom} est hors combat." |
||||
elif adversaire.est_hs(): |
||||
result_code = "M" |
||||
result_desc = f"{adversaire.nom} est hors combat." |
||||
time.sleep(0.5) |
||||
print(result_desc) |
||||
|
||||
return result_code, result_desc |
Loading…
Reference in new issue