diff --git a/out/production/Java_Petit_projet/heroes/Hero.class b/out/production/Java_Petit_projet/heroes/Hero.class index 1bbb08e..1318623 100644 Binary files a/out/production/Java_Petit_projet/heroes/Hero.class and b/out/production/Java_Petit_projet/heroes/Hero.class differ diff --git a/out/production/Java_Petit_projet/items/Equipment.class b/out/production/Java_Petit_projet/items/Equipment.class new file mode 100644 index 0000000..71419ff Binary files /dev/null and b/out/production/Java_Petit_projet/items/Equipment.class differ diff --git a/out/production/Java_Petit_projet/items/armors/Armor.class b/out/production/Java_Petit_projet/items/armors/Armor.class deleted file mode 100644 index 1c347ae..0000000 Binary files a/out/production/Java_Petit_projet/items/armors/Armor.class and /dev/null differ diff --git a/out/production/Java_Petit_projet/items/chests/Chest.class b/out/production/Java_Petit_projet/items/chests/Chest.class new file mode 100644 index 0000000..5b1b936 Binary files /dev/null and b/out/production/Java_Petit_projet/items/chests/Chest.class differ diff --git a/out/production/Java_Petit_projet/items/chests/LeatherArmor.class b/out/production/Java_Petit_projet/items/chests/LeatherArmor.class new file mode 100644 index 0000000..2cb2e9c Binary files /dev/null and b/out/production/Java_Petit_projet/items/chests/LeatherArmor.class differ diff --git a/out/production/Java_Petit_projet/items/chests/MailChest.class b/out/production/Java_Petit_projet/items/chests/MailChest.class new file mode 100644 index 0000000..5c030b5 Binary files /dev/null and b/out/production/Java_Petit_projet/items/chests/MailChest.class differ diff --git a/out/production/Java_Petit_projet/items/chests/PlateArmor.class b/out/production/Java_Petit_projet/items/chests/PlateArmor.class new file mode 100644 index 0000000..985a9c9 Binary files /dev/null and b/out/production/Java_Petit_projet/items/chests/PlateArmor.class differ diff --git a/out/production/Java_Petit_projet/items/chests/RobeMage.class b/out/production/Java_Petit_projet/items/chests/RobeMage.class new file mode 100644 index 0000000..a874537 Binary files /dev/null and b/out/production/Java_Petit_projet/items/chests/RobeMage.class differ diff --git a/out/production/Java_Petit_projet/items/helmets/Hat.class b/out/production/Java_Petit_projet/items/helmets/Hat.class new file mode 100644 index 0000000..d09f6e1 Binary files /dev/null and b/out/production/Java_Petit_projet/items/helmets/Hat.class differ diff --git a/out/production/Java_Petit_projet/items/helmets/Helm.class b/out/production/Java_Petit_projet/items/helmets/Helm.class new file mode 100644 index 0000000..fd297d6 Binary files /dev/null and b/out/production/Java_Petit_projet/items/helmets/Helm.class differ diff --git a/out/production/Java_Petit_projet/items/helmets/Helmet.class b/out/production/Java_Petit_projet/items/helmets/Helmet.class index 26fac08..dc02157 100644 Binary files a/out/production/Java_Petit_projet/items/helmets/Helmet.class and b/out/production/Java_Petit_projet/items/helmets/Helmet.class differ diff --git a/out/production/Java_Petit_projet/items/helmets/NoHelmet.class b/out/production/Java_Petit_projet/items/helmets/NoHelmet.class new file mode 100644 index 0000000..e3140ac Binary files /dev/null and b/out/production/Java_Petit_projet/items/helmets/NoHelmet.class differ diff --git a/out/production/Java_Petit_projet/items/weapons/Weapon.class b/out/production/Java_Petit_projet/items/weapons/Weapon.class new file mode 100644 index 0000000..1460df6 Binary files /dev/null and b/out/production/Java_Petit_projet/items/weapons/Weapon.class differ diff --git a/out/production/Java_Petit_projet/systems/Game.class b/out/production/Java_Petit_projet/systems/Game.class index 4cfe699..03601f0 100644 Binary files a/out/production/Java_Petit_projet/systems/Game.class and b/out/production/Java_Petit_projet/systems/Game.class differ diff --git a/src/heroes/Hero.java b/src/heroes/Hero.java index f53582e..a0a14bd 100644 --- a/src/heroes/Hero.java +++ b/src/heroes/Hero.java @@ -2,11 +2,19 @@ package heroes; import heroes.jobs.Job; import heroes.races.Race; +import items.helmets.Helmet; +import items.shields.Shield; +import items.chests.*; +import items.weapons.Weapon; public class Hero { protected String name; protected Race race; protected Job job; + protected Helmet helmet; + protected Chest chest; + protected Weapon weapon; + protected Shield shield; protected int healthBaseLevel; protected int strengthBaseLevel; protected int dexterityBaseLevel; @@ -68,6 +76,38 @@ public class Hero { return dexterityBaseLevel; } + public Helmet getHelmet() { + return helmet; + } + + public void setHelmet(Helmet helmet) { + this.helmet = helmet; + } + + public Chest getChest() { + return chest; + } + + public void setChest(Chest chest) { + this.chest = chest; + } + + public Weapon getWeapon() { + return weapon; + } + + public void setWeapon(Weapon weapon) { + this.weapon = weapon; + } + + public Shield getShield() { + return shield; + } + + public void setShield(Shield shield) { + this.shield = shield; + } + public void setDexterityBaseLevel(int dexterityBaseLevel) { this.dexterityBaseLevel = dexterityBaseLevel; } diff --git a/src/items/Equipment.java b/src/items/Equipment.java new file mode 100644 index 0000000..0cf2128 --- /dev/null +++ b/src/items/Equipment.java @@ -0,0 +1,8 @@ +package items; + +import heroes.Hero; + +public abstract class Equipment { + public String name; + public abstract void equip(Hero hero); +} diff --git a/src/items/armors/Armor.java b/src/items/armors/Armor.java deleted file mode 100644 index 3d33b33..0000000 --- a/src/items/armors/Armor.java +++ /dev/null @@ -1,6 +0,0 @@ -package items.armors; - -import items.Item; - -abstract class Armor extends Item { -} diff --git a/src/items/chests/Chest.java b/src/items/chests/Chest.java new file mode 100644 index 0000000..7abd8dd --- /dev/null +++ b/src/items/chests/Chest.java @@ -0,0 +1,6 @@ +package items.chests; + +import items.Equipment; + +public abstract class Chest extends Equipment { +} diff --git a/src/items/chests/LeatherArmor.java b/src/items/chests/LeatherArmor.java new file mode 100644 index 0000000..b504a21 --- /dev/null +++ b/src/items/chests/LeatherArmor.java @@ -0,0 +1,15 @@ +package items.chests; + +import heroes.Hero; + +public class LeatherArmor extends Chest { + public LeatherArmor() { + this.name = "Tunique de Cuir"; + } + + public void equip(Hero hero) { + hero.setChest(this); + hero.setDefense(hero.getDefense() + 10); + hero.setDexterity(hero.getDexterity() + 5); + } +} diff --git a/src/items/chests/MailChest.java b/src/items/chests/MailChest.java new file mode 100644 index 0000000..473b33e --- /dev/null +++ b/src/items/chests/MailChest.java @@ -0,0 +1,15 @@ +package items.chests; + +import heroes.Hero; + +public class MailChest extends Chest { + public MailChest() { + this.name = "Cotte de Mailles"; + } + + public void equip(Hero hero) { + hero.setChest(this); + hero.setDefense(hero.getDefense() + 15); + hero.setDexterity(hero.getDexterity() - 5); + } +} diff --git a/src/items/chests/PlateArmor.java b/src/items/chests/PlateArmor.java new file mode 100644 index 0000000..b5a0274 --- /dev/null +++ b/src/items/chests/PlateArmor.java @@ -0,0 +1,16 @@ +package items.chests; + +import heroes.Hero; + +public class PlateArmor extends Chest { + public PlateArmor() { + this.name = "Armure de plaque"; + } + + @Override + public void equip(Hero hero) { + hero.setChest(this); + hero.setDefense(hero.getDefense() + 20); + hero.setDexterity(hero.getDexterity() - 10); + } +} diff --git a/src/items/chests/RobeMage.java b/src/items/chests/RobeMage.java new file mode 100644 index 0000000..3fb301d --- /dev/null +++ b/src/items/chests/RobeMage.java @@ -0,0 +1,16 @@ +package items.chests; + +import heroes.Hero; + +public class RobeMage extends Chest { + public RobeMage() { + this.name = "Robe de Mage"; + } + + public void equip(Hero hero) { + hero.setChest(this); + hero.setDefense(hero.getDefense() - 5); + hero.setDexterity(hero.getDexterity() -5); + hero.setIntelligence(hero.getIntelligence() + 15); + } +} diff --git a/src/items/helmets/Hat.java b/src/items/helmets/Hat.java new file mode 100644 index 0000000..f142e5e --- /dev/null +++ b/src/items/helmets/Hat.java @@ -0,0 +1,17 @@ +package items.helmets; + +import heroes.Hero; + +public class Hat extends Helmet { + public Hat() { + this.name = "Hat"; + } + + @Override + public void equip(Hero hero) { + hero.setHelmet(this); + hero.setDefense(hero.getDefense() + 5); + hero.setIntelligence(hero.getIntelligence() + 5); + hero.setDexterity(hero.getDexterity() - 5); + } +} diff --git a/src/items/helmets/Helm.java b/src/items/helmets/Helm.java new file mode 100644 index 0000000..56abe9a --- /dev/null +++ b/src/items/helmets/Helm.java @@ -0,0 +1,16 @@ +package items.helmets; + +import heroes.Hero; + +public class Helm extends Helmet { + public Helm() { + this.name = "Heaume"; + } + + public void equip(Hero hero) { + hero.setHelmet(this); + hero.setDefense(hero.getDefense() + 15); + hero.setDexterity(hero.getDexterity() - 5); + hero.setIntelligence(hero.getIntelligence() - 5); + } +} diff --git a/src/items/helmets/Helmet.java b/src/items/helmets/Helmet.java index a5a41b8..0ccc7d7 100644 --- a/src/items/helmets/Helmet.java +++ b/src/items/helmets/Helmet.java @@ -1,6 +1,6 @@ package items.helmets; -import items.Item; +import items.Equipment; -public abstract class Helmet extends Item { +public abstract class Helmet extends Equipment { } diff --git a/src/items/helmets/NoHelmet.java b/src/items/helmets/NoHelmet.java new file mode 100644 index 0000000..75a9692 --- /dev/null +++ b/src/items/helmets/NoHelmet.java @@ -0,0 +1,13 @@ +package items.helmets; + +import heroes.Hero; + +public class NoHelmet extends Helmet { + public NoHelmet() { + this.name = "Rien"; + } + + public void equip(Hero hero) { + hero.setHelmet(this); + } +} \ No newline at end of file diff --git a/src/items/weapons/Weapon.java b/src/items/weapons/Weapon.java new file mode 100644 index 0000000..044266e --- /dev/null +++ b/src/items/weapons/Weapon.java @@ -0,0 +1,6 @@ +package items.weapons; + +import items.Equipment; + +public abstract class Weapon extends Equipment { +} diff --git a/src/systems/Game.java b/src/systems/Game.java index a64ef1b..766a214 100644 --- a/src/systems/Game.java +++ b/src/systems/Game.java @@ -3,6 +3,12 @@ package systems; import heroes.Hero; import heroes.jobs.*; import heroes.races.*; +import items.chests.LeatherArmor; +import items.chests.MailChest; +import items.chests.PlateArmor; +import items.chests.RobeMage; +import items.helmets.Hat; +import items.helmets.Helm; import java.util.Scanner; @@ -48,17 +54,14 @@ public class Game { case "guerrier", "g" -> { hero.setJob(new Warrior()); System.out.println("Tu as choisi la classe de guerrier !"); - hero.printStats(); } case "mage", "m" -> { hero.setJob(new Mage()); System.out.println("Tu as choisi la classe de mage !"); - hero.printStats(); } case "voleur", "v" -> { hero.setJob(new Rogue()); System.out.println("Tu as choisi la classe de voleur !"); - hero.printStats(); } } System.out.println("Voici les caractéristiques de ton personnage :"); @@ -100,10 +103,150 @@ public class Game { String choice2 = scanner.next(); switch (choice2.toLowerCase()) { case "oui", "yes", "y", "o" -> { - System.out.println("Très bien, tu es prêt à commencer l'aventure !"); - System.exit(0); + System.out.println("Très bien, Et maintenant, ton équipement."); + equipHelmet(hero); } case "non", "no", "n" -> selectRace(hero); } } + private void equipHelmet(Hero hero) { + System.out.println("Veux-tu équiper un casque ?\n1.Oui\n2.Non"); + String choice = scanner.next(); + switch (choice.toLowerCase()) { + case "oui", "yes", "y", "o" -> { + System.out.println("D'accord, lequel ? Un Heaume ? (H), un Chapeau ? (C) ?, ou rien ?"); + String helmet = scanner.next(); + switch (helmet.toLowerCase()) { + case "heaume", "h" -> { + hero.setHelmet(new Helm()); + hero.getHelmet().equip(hero); + System.out.println("Tu as équipé un heaume !"); + } + case "chapeau", "c" -> { + hero.setHelmet(new Hat()); + hero.getHelmet().equip(hero); + System.out.println("Tu as équipé un chapeau !"); + } + case "none", "rien", "r", "n" -> System.out.println("Très bien, tu n'as pas équipé de casque."); + default -> { + System.out.println("Je n'ai pas compris ta réponse."); + equipHelmet(hero); + } + } + } + case "non", "no", "n" -> { + System.out.println("Très bien, tu n'as pas équipé de casque."); + } + } + hero.printStats(); + System.out.println(hero.getRace().getRaceName() + "\n" + hero.getJob().getJobName()); + System.out.println("Veux-tu continuer ?\n1.Oui\n2.Non"); + String choice2 = scanner.next(); + switch (choice2.toLowerCase()) { + case "oui", "yes", "y", "o" -> equipArmor(hero); + case "non", "no", "n" -> equipHelmet(hero); + } + } + private void equipArmor(Hero hero) { + System.out.println("Veux-tu t'équiper d'une armure ?\n1.Oui\n2.Non"); + String choice = scanner.next(); + switch (choice.toLowerCase()) { + case "oui", "yes", "y", "o" -> { + System.out.println("D'accord, lequel ? Une armure en plaque (P) ? Une cotte de mail (M) ? Une tunique en cuir (T) ? Une robe de mage (R) ?"); + String armor = scanner.next(); + switch (armor.toLowerCase()) { + case "plaque", "plate", "p", "armor", "armure" -> { + hero.setChest(new PlateArmor()); + hero.getChest().equip(hero); + System.out.println("Tu t'es équipé d'une armure en plaque !"); + } + case "tunique","tunic", "t", "leather", "cuir" -> { + hero.setChest(new LeatherArmor()); + hero.getChest().equip(hero); + System.out.println("Tu t'es équipé d'une tunique de cuir !"); + } + case "mail","mailles", "m", "cotte", "chest" -> { + hero.setChest(new MailChest()); + hero.getChest().equip(hero); + System.out.println("Tu t'es équipé d'une tunique de cuir !"); + } + case "robe","mage", "r" -> { + hero.setChest(new RobeMage()); + hero.getChest().equip(hero); + System.out.println("Tu t'es équipé d'une tunique de cuir !"); + } + case "none", "rien" -> { + System.out.println("Tu veux VRAIMENT y aller à poil ?"); + String validate = scanner.next(); + switch (validate.toLowerCase()) { + case "oui", "yes", "y", "o" -> System.out.println("Ah bah d'accord le nudiste ..."); + case "non", "no", "n" -> equipArmor(hero); + } + } + default -> { + System.out.println("Je n'ai pas compris ta réponse."); + equipHelmet(hero); + } + } + } + case "non", "no", "n" -> System.out.println("Très bien, tu n'as pas équipé d'armure."); + } + hero.printStats(); + System.out.println(hero.getRace().getRaceName() + "\n" + hero.getJob().getJobName()); + System.out.println("Veux-tu continuer ?\n1.Oui\n2.Non"); + String choice2 = scanner.next(); + switch (choice2.toLowerCase()) { + case "oui", "yes", "y", "o" -> equipWeapon(hero); + case "non", "no", "n" -> equipArmor(hero); + } + } + + private void equipWeapon(Hero hero){ + System.out.println("Veux-tu t'équiper d'une arme ?\n1.Oui\n2.Non"); + String choice = scanner.next(); + switch (choice.toLowerCase()) { + case "oui", "yes", "y", "o" -> { + System.out.println("D'accord, lequel ? Une épée (E) ? Un bâton (B) ? Un arc (A) ? Une dague (D) ?"); + String weapon = scanner.next(); + switch (weapon.toLowerCase()) { + case "sword", "epee", "e" -> { + hero.setWeapon(new Sword()); + hero.getWeapon().equip(hero); + System.out.println("Tu t'es équipé d'une épée !"); + } + case "staff", "baton", "b" -> { + hero.setWeapon(new Staff()); + hero.getWeapon().equip(hero); + System.out.println("Tu t'es équipé d'un bâton !"); + } + case "bow", "arc", "a" -> { + hero.setWeapon(new Bow()); + hero.getWeapon().equip(hero); + System.out.println("Tu t'es équipé d'un arc !"); + } + case "dagger", "dague", "d" -> { + hero.setWeapon(new Dagger()); + hero.getWeapon().equip(hero); + System.out.println("Tu t'es équipé d'une dague !"); + } + case "none", "rien" -> { + System.out.println("Tu veux VRAIMENT y aller à mains nues ?"); + String validate = scanner.next(); + switch (validate.toLowerCase()) { + case "oui", "yes", "y", "o" -> System.out.println("Ah bah d'accord le nudiste ..."); + case "non", "no", "n" -> equipWeapon(hero); + } + } + default -> { + System.out.println("Je n'ai pas compris ta réponse."); + equipWeapon(hero); + } + } + } + case "non", "no", "n" -> System.out.println("Très bien, tu n'as pas équipé d'arme."); + } + hero.printStats(); + System.out.println(hero.getRace().getRaceName() + "\n" + hero.getJob().getJobName()); + System.out.println("Veux-tu continuer ?\n1.Oui\n2.Non"); + } }