Commit c7b2d137 authored by Guillaume Dewisme's avatar Guillaume Dewisme

refctor

parent e354de28
[2024-12-03T09:17:07.884981500] Dbut de l'aventure de h
[2024-12-03T09:17:07.906537700] h rencontre un Brigand
[2024-12-03T09:17:21.500167] h attaque Brigand
[2024-12-03T09:17:21.512164700] Brigand attaque h
[2024-12-03T09:17:23.712354200] h attaque Brigand
[2024-12-03T09:17:23.713356400] Brigand attaque h
[2024-12-03T09:17:24.664972400] h attaque Brigand
[2024-12-03T09:17:24.665972400] Brigand attaque h
[2024-12-03T09:17:25.869365600] h attaque Brigand
[2024-12-03T09:17:25.869885200] Brigand attaque h
[2024-12-03T09:17:26.435083] h attaque Brigand
[2024-12-03T09:17:26.436082400] h a vaincu Brigand
[2024-12-03T09:17:26.441081700] h gagne 50 XP
[2024-12-03T09:17:28.848642800] h rencontre un Brigand
[2024-12-03T09:17:29.959866400] h attaque Brigand
[2024-12-03T09:17:29.960866500] Brigand attaque h
[2024-12-03T09:17:30.439687200] h attaque Brigand
[2024-12-03T09:17:30.440686600] Brigand attaque h
[2024-12-03T09:17:30.896292400] h attaque Brigand
[2024-12-03T09:17:30.897292100] Brigand attaque h
[2024-12-03T09:17:31.383727800] h attaque Brigand
[2024-12-03T09:17:31.386729400] Brigand attaque h
[2024-12-03T09:19:22.975976800] h attaque Brigand
[2024-12-03T09:19:22.975976800] h a vaincu Brigand
[2024-12-03T09:19:22.976975700] h gagne 50 XP
[2024-12-03T09:19:22.976975700] h monte au niveau 2
[2024-12-03T09:19:22.978978400] h a obtenu un objet : Potion de Puissance
[2024-12-03T09:19:23.567938600] h a quitt le jeu
[2024-12-03T09:26:44.170530700] Dbut de l'aventure de h
[2024-12-03T09:26:44.191598800] h rencontre un Catcheur
......@@ -2,6 +2,7 @@ package org.example;
import org.example.SpecialAbility;
import org.example.DoubleAttack;
import org.example.Character;
import org.example.Hero;
import java.io.FileWriter;
import java.io.IOException;
......@@ -41,104 +42,6 @@ public class BeatThemAllGame {
}
}
// Classe pour le héros
public static class Hero extends Character {
private boolean specialUsed = false;
private List<Item> inventory = new ArrayList<>();
private int experience = 0;
private int level = 1;
public Hero(String name, int maxHP, int attackPower, int defense, SpecialAbility specialAbility) {
super(name, maxHP, attackPower, defense);
this.specialAbility = specialAbility;
}
@Override
public void attack(Character target) {
System.out.println(name + " attaque " + target.name + " !");
Logger.getInstance().log(name + " attaque " + target.name);
target.takeDamage(attackPower);
}
public void useSpecialAbility(Character target) {
if (!specialUsed) {
specialAbility.activate(this, target);
specialUsed = true;
Logger.getInstance().log(name + " utilise sa capacité spéciale");
} else {
System.out.println("Capacité spéciale déjà utilisée !");
}
}
public void resetSpecialAbility() {
specialUsed = false;
}
public void addItem(Item item) {
inventory.add(item);
System.out.println(item.getName() + " a été ajouté à votre inventaire.");
Logger.getInstance().log(name + " a obtenu un objet : " + item.getName());
}
public void useItem() {
if (inventory.isEmpty()) {
System.out.println("Votre inventaire est vide !");
return;
}
System.out.println("Inventaire :");
for (int i = 0; i < inventory.size(); i++) {
System.out.println((i + 1) + ". " + inventory.get(i).getName());
}
System.out.print("Choisissez un objet à utiliser : ");
Scanner scanner = new Scanner(System.in);
int choice = scanner.nextInt();
if (choice > 0 && choice <= inventory.size()) {
Item item = inventory.get(choice - 1);
item.applyEffect(this);
inventory.remove(item);
Logger.getInstance().log(name + " utilise un objet : " + item.getName());
} else {
System.out.println("Choix invalide.");
}
}
public void gainExperience(int xp) {
experience += xp;
System.out.println(name + " gagne " + xp + " points d'expérience.");
Logger.getInstance().log(name + " gagne " + xp + " XP");
if (experience >= level * 100) {
levelUp();
}
}
private void levelUp() {
level++;
experience = 0;
maxHP += 20;
attackPower += 5;
defense += 2;
currentHP = maxHP;
System.out.println(name + " passe au niveau " + level + " !");
Logger.getInstance().log(name + " monte au niveau " + level);
}
}
// Classe pour les ennemis
public static class Enemy extends Character {
public Enemy(String name, int maxHP, int attackPower, int defense, SpecialAbility specialAbility) {
super(name, maxHP, attackPower, defense);
this.specialAbility = specialAbility;
}
@Override
public void attack(Character target) {
System.out.println(name + " attaque " + target.name + " !");
Logger.getInstance().log(name + " attaque " + target.name);
target.takeDamage(attackPower);
}
}
public static class HalveEnemyHP implements SpecialAbility {
@Override
public void activate(Character user, Character target) {
......@@ -440,3 +343,4 @@ public class BeatThemAllGame {
assert hero.currentHP == 100 : "La potion de santé n'a pas restauré correctement les PV du héros.";
}
}
package org.example;
import org.example.SpecialAbility;
// Capacités spéciales des héros
// Capacités spéciales des héros
public class DoubleAttack implements SpecialAbility {
@Override
......
package org.example;
import org.example.BeatThemAllGame.Logger;
public class Enemy extends Character {
public Enemy(String name, int maxHP, int attackPower, int defense, SpecialAbility specialAbility) {
super(name, maxHP, attackPower, defense);
this.specialAbility = specialAbility;
}
@Override
public void attack(Character target) {
System.out.println(name + " attaque " + target.name + " !");
Logger.getInstance().log(name + " attaque " + target.name);
target.takeDamage(attackPower);
}
}
package org.example;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import org.example.BeatThemAllGame.Item;
import org.example.BeatThemAllGame.Logger;
// Classe pour le héros
public class Hero extends Character {
boolean specialUsed = false;
private List<Item> inventory = new ArrayList<>();
private int experience = 0;
private int level = 1;
public Hero(String name, int maxHP, int attackPower, int defense, SpecialAbility specialAbility) {
super(name, maxHP, attackPower, defense);
this.specialAbility = specialAbility;
}
@Override
public void attack(Character target) {
System.out.println(name + " attaque " + target.name + " !");
Logger.getInstance().log(name + " attaque " + target.name);
target.takeDamage(attackPower);
}
public void useSpecialAbility(Character target) {
if (!specialUsed) {
specialAbility.activate(this, target);
specialUsed = true;
Logger.getInstance().log(name + " utilise sa capacité spéciale");
} else {
System.out.println("Capacité spéciale déjà utilisée !");
}
}
public void resetSpecialAbility() {
specialUsed = false;
}
public void addItem(Item item) {
inventory.add(item);
System.out.println(item.getName() + " a été ajouté à votre inventaire.");
Logger.getInstance().log(name + " a obtenu un objet : " + item.getName());
}
public void useItem() {
if (inventory.isEmpty()) {
System.out.println("Votre inventaire est vide !");
return;
}
System.out.println("Inventaire :");
for (int i = 0; i < inventory.size(); i++) {
System.out.println((i + 1) + ". " + inventory.get(i).getName());
}
System.out.print("Choisissez un objet à utiliser : ");
Scanner scanner = new Scanner(System.in);
int choice = scanner.nextInt();
if (choice > 0 && choice <= inventory.size()) {
Item item = inventory.get(choice - 1);
item.applyEffect(this);
inventory.remove(item);
Logger.getInstance().log(name + " utilise un objet : " + item.getName());
} else {
System.out.println("Choix invalide.");
}
}
public void gainExperience(int xp) {
experience += xp;
System.out.println(name + " gagne " + xp + " points d'expérience.");
Logger.getInstance().log(name + " gagne " + xp + " XP");
if (experience >= level * 100) {
levelUp();
}
}
private void levelUp() {
level++;
experience = 0;
maxHP += 20;
attackPower += 5;
defense += 2;
currentHP = maxHP;
System.out.println(name + " passe au niveau " + level + " !");
Logger.getInstance().log(name + " monte au niveau " + level);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment