2 files + 39 − 3 Inline Compare changes Side-by-side Inline Show whitespace changes Files 2 src/main/java/fr/univamu/progav/td5/Character.java +13 −1 Original line number Diff line number Diff line 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(); Loading src/main/java/fr/univamu/progav/td5/Warrior.java +26 −2 Original line number Diff line number Diff line Loading @@ -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 } }
src/main/java/fr/univamu/progav/td5/Character.java +13 −1 Original line number Diff line number Diff line 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(); Loading
src/main/java/fr/univamu/progav/td5/Warrior.java +26 −2 Original line number Diff line number Diff line Loading @@ -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 } }