Package modele
Class Combat
java.lang.Object
modele.Combat
- All Implemented Interfaces:
Serializable
Classe représentant un combat **tour par tour** entre un joueur et un monstre.
Gère les actions possibles, les calculs de dégâts, les récompenses, et l'issue du combat.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumActions possibles pour le joueur.static enumÉtats possibles d’un combat. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Combat.IssueÉtat actuel du combat (en cours, victoire, défaite ou fuite).private final JoueurJoueur impliqué dans le combat.private booleanIndique si le joueur a choisi de se défendre ce tour.private final MonstreMonstre opposé au joueur dans ce combat.private booleanIndique si le monstre s'est mis en défense ce tour.private final RandomGénérateur aléatoire pour tous les calculs probabilistes du combat.private static final longIdentifiant de version pour la sérialisation. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate Stringattaquer(Personnage src, Personnage dst, boolean dstDefend) Effectue une attaque d’un personnage source vers une cible.private StringexecuterActionJoueur(Combat.Action action) Exécute l’action choisie par le joueur (attaque, défense ou fuite).private StringExécute l’action automatique du monstre.getIssue()Retourne l’issue actuelle du combat.Retourne le joueur impliqué dans le combat.Retourne le monstre impliqué dans le combat.jouerTour(Combat.Action action) Joue un tour complet de combat : le joueur agit, puis le monstre (ou inversement selon la vitesse).private booleanTente une fuite du joueur en comparant sa vitesse à celle du monstre.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDIdentifiant de version pour la sérialisation.- See Also:
-
joueur
Joueur impliqué dans le combat. -
monstre
Monstre opposé au joueur dans ce combat. -
random
Générateur aléatoire pour tous les calculs probabilistes du combat. -
joueurDefend
private boolean joueurDefendIndique si le joueur a choisi de se défendre ce tour. -
monstreDefend
private boolean monstreDefendIndique si le monstre s'est mis en défense ce tour. -
issue
État actuel du combat (en cours, victoire, défaite ou fuite).
-
-
Constructor Details
-
Combat
Crée un nouveau combat entre un joueur et un monstre. Initialise le combat en mode "en cours".- Parameters:
joueur- Le joueur participant au combat.monstre- Le monstre affronté.
-
-
Method Details
-
getIssue
Retourne l’issue actuelle du combat.- Returns:
- L’état du combat (EN_COURS, VICTOIRE, DEFAITE, FUITE).
-
getJoueur
Retourne le joueur impliqué dans le combat.- Returns:
- Le joueur.
-
getMonstre
Retourne le monstre impliqué dans le combat.- Returns:
- Le monstre.
-
jouerTour
Joue un tour complet de combat : le joueur agit, puis le monstre (ou inversement selon la vitesse). Met à jour l’issue du combat selon les actions effectuées.- Parameters:
action- Action choisie par le joueur (ATTAQUER, DEFENDRE, FUIR)- Returns:
- Un texte (log) décrivant les actions et les conséquences de ce tour.
-
executerActionJoueur
Exécute l’action choisie par le joueur (attaque, défense ou fuite). Gère aussi la victoire du joueur et ses récompenses si le monstre est vaincu.- Parameters:
action- L’action choisie par le joueur.- Returns:
- Le log correspondant à cette action.
-
executerActionMonstre
Exécute l’action automatique du monstre. IA basique : attaque sauf s’il a très peu de vie (il peut alors choisir la défense). Gère aussi la défaite du joueur.- Returns:
- Le log des actions du monstre.
-
attaquer
Effectue une attaque d’un personnage source vers une cible. Le résultat dépend de la dextérité, force, armure et état de défense de la cible. Prend en compte les coups critiques, l’armure et la défense active.- Parameters:
src- L’attaquant.dst- La cible.dstDefend- Vrai si la cible est en défense (divise les dégâts par 2).- Returns:
- Le log de l’attaque.
-
tentativeFuite
private boolean tentativeFuite()Tente une fuite du joueur en comparant sa vitesse à celle du monstre. La probabilité de réussir dépend de la différence de vitesse.- Returns:
- true si la fuite réussit, false sinon.
-