Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • master
1 result

Target

Select target project
  • z22024794/prog-av-exercices-fadl-zemzem
  • n23017542/progavexercices
  • l23024794/saratp-1
  • d24029849/progavexercices
  • gnaves/progavexercices
5 results
Select Git revision
  • master
1 result
Show changes
Commits on Source (1)
package fr.univamu.progav.td5;
public abstract class Character {
protected int healthPoints;
public Character(int initialHealth) {
this.healthPoints = initialHealth;
}
// TODO add health points
public boolean isAlive() {
// TODO
if (healthPoints > 0) {
return true ; // Le personnage est vivant si les points de vie sont supérieurs à 0
}
return false;
}
protected int getHealth() {
// TODO
return 0;
return healthPoints; // Retourne les points de vie
}
protected void reduceHealth(int amount) {
// TODO
healthPoints -= amount; // Réduit les points de vie
if (healthPoints < 0) {
healthPoints = 0; // S'assure que les points de vie ne sont pas négatifs
}
}
protected void setHealth(int health) {
// TODO
healthPoints = health; // Définit les points de vie
}
public abstract Blow attack();
......
......@@ -7,29 +7,53 @@ public class Warrior extends Character {
public static final int RAGE_DAMAGE_THRESHOLD = 5;
// TODO add rage
private int rageCounter; // Compteur pour la rage
private boolean isRaging; // Indicateur pour savoir si le guerrier est en rage
public Warrior() {
// TODO
super(BASE_HEALTH); // Appelle le constructeur de la super-classe avec les points de vie de base
this.rageCounter = 0; // Initialise le compteur de rage
this.isRaging = false; // Initialise l'état de rage
}
@Override
public Blow attack() {
// TODO
return null;
if (isRaging && rageCounter > 0) {
rageCounter--; // Diminue le compteur de rage
return new Blow(RAGE_DAMAGE, 0); // Retourne un Blow avec des dommages de rage
}
return new Blow(BASE_DAMAGE, 0); // Retourne un Blow avec des dommages de base
}
@Override
public void defend(Blow blow) {
// TODO
// Réduit les dommages physiques de moitié car le guerrier est costaud
int reducedPhysicalDamage = blow.physicalDamage() / 2;
// Applique les dommages
int totalDamage = reducedPhysicalDamage + blow.magicalDamage();
reduceHealth(totalDamage); // Réduit les points de vie en fonction des dommages
// Gestion de la prolongation de la rage
if (isRaging && blow.physicalDamage() >= RAGE_DAMAGE_THRESHOLD) {
rageCounter++; // Prolonge la rage d'une attaque supplémentaire
}
}
@Override
public void specialAction() {
// TODO
if (!isRaging) {
isRaging = true; // Met le guerrier en rage
rageCounter = 3; // Donne au guerrier 3 attaques en rage
}
}
public int getRage() {
// TODO
return 0;
return isRaging; // Retourne l'état de la rage
}
}