diff --git a/out/production/Java_Petit_projet/events/StartEvent.class b/out/production/Java_Petit_projet/events/StartEvent.class new file mode 100644 index 0000000..6c81f6c Binary files /dev/null and b/out/production/Java_Petit_projet/events/StartEvent.class differ 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/heroes/races/Ork.class b/out/production/Java_Petit_projet/heroes/races/Ork.class index f46f594..bb447b3 100644 Binary files a/out/production/Java_Petit_projet/heroes/races/Ork.class and b/out/production/Java_Petit_projet/heroes/races/Ork.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/Fist.class b/out/production/Java_Petit_projet/items/weapons/Fist.class new file mode 100644 index 0000000..ac05363 Binary files /dev/null and b/out/production/Java_Petit_projet/items/weapons/Fist.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/items/weapons/axes/Axe.class b/out/production/Java_Petit_projet/items/weapons/axes/Axe.class new file mode 100644 index 0000000..9b714fd Binary files /dev/null and b/out/production/Java_Petit_projet/items/weapons/axes/Axe.class differ diff --git a/out/production/Java_Petit_projet/items/weapons/axes/TrainingAxe.class b/out/production/Java_Petit_projet/items/weapons/axes/TrainingAxe.class new file mode 100644 index 0000000..466f702 Binary files /dev/null and b/out/production/Java_Petit_projet/items/weapons/axes/TrainingAxe.class differ diff --git a/out/production/Java_Petit_projet/items/weapons/staffs/ApprenticeStaff.class b/out/production/Java_Petit_projet/items/weapons/staffs/ApprenticeStaff.class new file mode 100644 index 0000000..49b201f Binary files /dev/null and b/out/production/Java_Petit_projet/items/weapons/staffs/ApprenticeStaff.class differ diff --git a/out/production/Java_Petit_projet/items/weapons/staffs/Staff.class b/out/production/Java_Petit_projet/items/weapons/staffs/Staff.class new file mode 100644 index 0000000..29cd1d4 Binary files /dev/null and b/out/production/Java_Petit_projet/items/weapons/staffs/Staff.class differ diff --git a/out/production/Java_Petit_projet/items/weapons/swords/Dagger.class b/out/production/Java_Petit_projet/items/weapons/swords/Dagger.class new file mode 100644 index 0000000..38beb32 Binary files /dev/null and b/out/production/Java_Petit_projet/items/weapons/swords/Dagger.class differ diff --git a/out/production/Java_Petit_projet/items/weapons/swords/Sword.class b/out/production/Java_Petit_projet/items/weapons/swords/Sword.class new file mode 100644 index 0000000..3006ac7 Binary files /dev/null and b/out/production/Java_Petit_projet/items/weapons/swords/Sword.class differ diff --git a/out/production/Java_Petit_projet/items/weapons/swords/TrainingSword.class b/out/production/Java_Petit_projet/items/weapons/swords/TrainingSword.class new file mode 100644 index 0000000..7165577 Binary files /dev/null and b/out/production/Java_Petit_projet/items/weapons/swords/TrainingSword.class differ diff --git a/out/production/Java_Petit_projet/systems/Game.class b/out/production/Java_Petit_projet/systems/Game.class index 4cfe699..7cc80c4 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/events/StartEvent.java b/src/events/StartEvent.java new file mode 100644 index 0000000..88bc069 --- /dev/null +++ b/src/events/StartEvent.java @@ -0,0 +1,4 @@ +package events; + +public class StartEvent extends Event{ +} 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/heroes/races/Dwarf.java b/src/heroes/races/Dwarf.java index 4d38dff..addf387 100644 --- a/src/heroes/races/Dwarf.java +++ b/src/heroes/races/Dwarf.java @@ -5,14 +5,19 @@ import heroes.Hero; public class Dwarf extends Race{ public Dwarf() { this.setRaceName("Nain"); + this.health = 10; + this.strength = 10; + this.defense = 10; + this.dexterity = -15; + this.intelligence = -10; } @Override public void adjustStats(Hero hero) { - hero.setHealth(hero.getHealthBaseLevel() + 10); - hero.setStrength(hero.getStrengthBaseLevel() + 10); - hero.setDefense(hero.getDefenseBaseLevel() + 10); - hero.setDexterity(hero.getDexterityBaseLevel() - 15); - hero.setIntelligence(hero.getIntelligenceBaseLevel() - 10); + hero.setHealth(hero.getHealth() + health); + hero.setStrength(hero.getStrength() + strength); + hero.setDefense(hero.getDefense() + defense); + hero.setDexterity(hero.getDexterity() + dexterity); + hero.setIntelligence(hero.getIntelligence() + intelligence); } } diff --git a/src/heroes/races/Elf.java b/src/heroes/races/Elf.java index d86c63d..5b5bdd2 100644 --- a/src/heroes/races/Elf.java +++ b/src/heroes/races/Elf.java @@ -5,14 +5,19 @@ import heroes.Hero; public class Elf extends Race{ public Elf() { this.setRaceName("Elfe"); + this.health = -5; + this.strength = -5; + this.defense = - 5; + this.dexterity = 10; + this.intelligence = 10; } @Override public void adjustStats(Hero hero) { - hero.setHealth(hero.getHealthBaseLevel() - 5); - hero.setStrength(hero.getStrengthBaseLevel() - 5); - hero.setDefense(hero.getDefenseBaseLevel() - 5); - hero.setDexterity(hero.getDexterityBaseLevel() + 10); - hero.setIntelligence(hero.getIntelligenceBaseLevel() + 10); + hero.setHealth(hero.getHealth() + health); + hero.setStrength(hero.getStrength() + strength); + hero.setDefense(hero.getDefense() + defense); + hero.setDexterity(hero.getDexterity() + dexterity); + hero.setIntelligence(hero.getIntelligence() + intelligence); } } diff --git a/src/heroes/races/Human.java b/src/heroes/races/Human.java index 521f3a8..303ab81 100644 --- a/src/heroes/races/Human.java +++ b/src/heroes/races/Human.java @@ -5,14 +5,19 @@ import heroes.Hero; public class Human extends Race{ public Human() { this.setRaceName("Human"); + this.health = 5; + this.strength = 5; + this.defense = 5; + this.dexterity = 5; + this.intelligence = 5; } @Override public void adjustStats(Hero hero) { - hero.setHealth(hero.getHealthBaseLevel() + 5); - hero.setStrength(hero.getStrengthBaseLevel() + 5); - hero.setDefense(hero.getDefenseBaseLevel() + 5); - hero.setDexterity(hero.getDexterityBaseLevel() + 5); - hero.setIntelligence(hero.getIntelligenceBaseLevel() + 5); + hero.setHealth(hero.getHealth() + health); + hero.setStrength(hero.getStrength() + strength); + hero.setDefense(hero.getDefense() + defense); + hero.setDexterity(hero.getDexterity() + dexterity); + hero.setIntelligence(hero.getIntelligence() + intelligence); } } diff --git a/src/heroes/races/Ork.java b/src/heroes/races/Ork.java index e3722be..c39b256 100644 --- a/src/heroes/races/Ork.java +++ b/src/heroes/races/Ork.java @@ -3,16 +3,22 @@ package heroes.races; import heroes.Hero; public class Ork extends Race { + public Ork() { this.setRaceName("Orc"); + this.health = 10; + this.strength = 10; + this.defense = 10; + this.dexterity = -5; + this.intelligence = -10; } @Override public void adjustStats(Hero hero) { - hero.setHealth(hero.getHealthBaseLevel() + 10); - hero.setStrength(hero.getStrengthBaseLevel() + 10); - hero.setDefense(hero.getDefenseBaseLevel() + 10); - hero.setDexterity(hero.getDexterityBaseLevel() - 5); - hero.setIntelligence(hero.getIntelligenceBaseLevel() - 10); + hero.setHealth(hero.getHealth() + health); + hero.setStrength(hero.getStrength() + strength); + hero.setDefense(hero.getDefense() + defense); + hero.setDexterity(hero.getDexterity() + dexterity); + hero.setIntelligence(hero.getIntelligence() + intelligence); } } diff --git a/src/heroes/races/Race.java b/src/heroes/races/Race.java index ba78f07..4f5e29b 100644 --- a/src/heroes/races/Race.java +++ b/src/heroes/races/Race.java @@ -4,6 +4,11 @@ import heroes.Hero; public abstract class Race { public String raceName; + public int health; + public int strength; + public int defense; + public int dexterity; + public int intelligence; public String getRaceName(){ return raceName; 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/Fist.java b/src/items/weapons/Fist.java new file mode 100644 index 0000000..3a60627 --- /dev/null +++ b/src/items/weapons/Fist.java @@ -0,0 +1,15 @@ +package items.weapons; + +import heroes.Hero; + +public class Fist extends Weapon{ + public Fist() { + this.name = "Poings d'acier"; + } + + public void equip(Hero hero) { + hero.setWeapon(this); + hero.setStrength(hero.getStrength() + 5); + hero.setDexterity(hero.getDexterity() + 10); + } +} diff --git a/src/items/weapons/Weapon.java b/src/items/weapons/Weapon.java new file mode 100644 index 0000000..94cfd8a --- /dev/null +++ b/src/items/weapons/Weapon.java @@ -0,0 +1,7 @@ +package items.weapons; + +import items.Equipment; + +public abstract class Weapon extends Equipment { + +} diff --git a/src/items/weapons/axes/Axe.java b/src/items/weapons/axes/Axe.java new file mode 100644 index 0000000..885669e --- /dev/null +++ b/src/items/weapons/axes/Axe.java @@ -0,0 +1,6 @@ +package items.weapons.axes; + +import items.weapons.Weapon; + +public abstract class Axe extends Weapon { +} diff --git a/src/items/weapons/axes/TrainingAxe.java b/src/items/weapons/axes/TrainingAxe.java new file mode 100644 index 0000000..122e2ec --- /dev/null +++ b/src/items/weapons/axes/TrainingAxe.java @@ -0,0 +1,16 @@ +package items.weapons.axes; + +import heroes.Hero; + +public class TrainingAxe extends Axe{ + public TrainingAxe() { + this.name = "Hache d'apprentissage"; + } + + public void equip(Hero hero) { + hero.setWeapon(this); + hero.setStrength(hero.getStrength() + 10); + hero.setDexterity(hero.getDexterity() -5); + hero.setIntelligence(hero.getIntelligence() -5); + } +} diff --git a/src/items/weapons/staffs/ApprenticeStaff.java b/src/items/weapons/staffs/ApprenticeStaff.java new file mode 100644 index 0000000..a61b3c2 --- /dev/null +++ b/src/items/weapons/staffs/ApprenticeStaff.java @@ -0,0 +1,14 @@ +package items.weapons.staffs; + +import heroes.Hero; + +public class ApprenticeStaff extends Staff { + public ApprenticeStaff() { + this.name = "Bâton d'apprenti"; + } + + public void equip(Hero hero) { + hero.setWeapon(this); + hero.setIntelligence(hero.getIntelligence() + 5); + } +} diff --git a/src/items/weapons/staffs/Staff.java b/src/items/weapons/staffs/Staff.java new file mode 100644 index 0000000..9e75553 --- /dev/null +++ b/src/items/weapons/staffs/Staff.java @@ -0,0 +1,6 @@ +package items.weapons.staffs; + +import items.weapons.Weapon; + +public abstract class Staff extends Weapon { +} diff --git a/src/items/weapons/swords/Dagger.java b/src/items/weapons/swords/Dagger.java new file mode 100644 index 0000000..3d051f4 --- /dev/null +++ b/src/items/weapons/swords/Dagger.java @@ -0,0 +1,15 @@ +package items.weapons.swords; + +import heroes.Hero; + +public class Dagger extends Sword{ + public Dagger() { + this.name = "Dague"; + } + + public void equip(Hero hero) { + hero.setWeapon(this); + hero.setStrength(hero.getStrength() + 2); + hero.setDexterity(hero.getDexterity() + 8); + } +} diff --git a/src/items/weapons/swords/Sword.java b/src/items/weapons/swords/Sword.java new file mode 100644 index 0000000..1a94e20 --- /dev/null +++ b/src/items/weapons/swords/Sword.java @@ -0,0 +1,6 @@ +package items.weapons.swords; + +import items.weapons.Weapon; + +public abstract class Sword extends Weapon { +} diff --git a/src/items/weapons/swords/TrainingSword.java b/src/items/weapons/swords/TrainingSword.java new file mode 100644 index 0000000..cb2a0d4 --- /dev/null +++ b/src/items/weapons/swords/TrainingSword.java @@ -0,0 +1,15 @@ +package items.weapons.swords; + +import heroes.Hero; + +public class TrainingSword extends Sword{ + public TrainingSword() { + this.name = "Épée d'Entraînement"; + } + + public void equip(Hero hero) { + hero.setWeapon(this); + hero.setStrength(hero.getStrength() + 5); + hero.setDexterity(hero.getDexterity() + 5); + } +} diff --git a/src/systems/Game.java b/src/systems/Game.java index a64ef1b..20b97b0 100644 --- a/src/systems/Game.java +++ b/src/systems/Game.java @@ -1,64 +1,59 @@ package systems; +import events.StartEvent; import heroes.Hero; import heroes.jobs.*; import heroes.races.*; +import items.chests.*; +import items.helmets.*; +import items.weapons.axes.TrainingAxe; +import items.weapons.staffs.ApprenticeStaff; +import items.weapons.swords.*; import java.util.Scanner; public class Game { - public Scanner scanner = new Scanner(System.in); + private final Scanner scanner = new Scanner(System.in); public Game() { System.out.println("Bienvenue dans ce projet fou ! Veux-tu créer ton personnage ?"); System.out.println("1.Oui\n2.Non"); String startGame = scanner.next(); - switch (startGame.toLowerCase()) { - case "oui", "yes", "y", "o" -> createCharacter(); - case "non", "no", "n" -> { - System.out.println("Très bien, à bientôt !"); - System.exit(0); - } + if (startGame.equalsIgnoreCase("oui") || startGame.equalsIgnoreCase("yes") || startGame.equalsIgnoreCase("y") || startGame.equalsIgnoreCase("o")) { + createCharacter(); + } else { + System.out.println("Très bien, à bientôt !"); + System.exit(0); } } - public void createCharacter() { + private void createCharacter() { System.out.println("Quel est le nom de ton personnage ?"); String name = scanner.next(); System.out.println("Ton personnage s'appelle " + name + " ! Veux-tu le modifier ? \n1.Oui\n2.Non"); String choice = scanner.next(); - switch (choice.toLowerCase()) { - case "oui", "yes", "y", "o" -> { - createCharacter(); - } - case "non", "no", "n" -> { - System.out.println("Très bien, " + name + "."); - Hero hero = new Hero(name); - hero.printStats(); - selectJob(hero); - } + if (choice.equalsIgnoreCase("oui") || choice.equalsIgnoreCase("yes") || choice.equalsIgnoreCase("y") || choice.equalsIgnoreCase("o")) { + createCharacter(); + } else { + System.out.println("Très bien, " + name + "."); + Hero hero = new Hero(name); + hero.printStats(); + selectJob(hero); } } - public void selectJob(Hero hero) { + private void selectJob(Hero hero) { System.out.println("Quelle classe veux-tu choisir ? Un guerrier ? (G), un mage ? (M), un voleur ? (V)"); String job = scanner.next(); switch (job.toLowerCase()) { - 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(); + case "guerrier", "g" -> hero.setJob(new Warrior()); + case "mage", "m" -> hero.setJob(new Mage()); + case "voleur", "v" -> hero.setJob(new Rogue()); + default -> { + System.out.println("Je n'ai pas compris ta réponse."); + selectJob(hero); + return; } } System.out.println("Voici les caractéristiques de ton personnage :"); @@ -66,9 +61,10 @@ public class Game { System.out.println(hero.getJob().getJobName()); System.out.println("Veux-tu continuer ?\n1.Oui\n2.Non"); String choice = scanner.next(); - switch (choice.toLowerCase()) { - case "oui", "yes", "y", "o" -> selectRace(hero); - case "non", "no", "n" -> selectJob(hero); + if (choice.equalsIgnoreCase("oui") || choice.equalsIgnoreCase("yes") || choice.equalsIgnoreCase("y") || choice.equalsIgnoreCase("o")) { + selectRace(hero); + } else { + selectJob(hero); } } @@ -76,21 +72,14 @@ public class Game { System.out.println("Veux-tu jouer un nain ? (N), un orc ? (O), un elfe (E) ou un humain (H) ?"); String choice = scanner.next(); switch (choice.toLowerCase()) { - case "nain", "n" -> { - hero.setRace(new Dwarf()); - System.out.println("Tu as choisi d'être un nain !"); - } - case "orc", "o" -> { - hero.setRace(new Ork()); - System.out.println("Tu as choisi d'être un orc !"); - } - case "elfe", "e" -> { - hero.setRace(new Elf()); - System.out.println("Tu as choisi d'être un elfe !"); - } - case "humain", "h" -> { - hero.setRace(new Human()); - System.out.println("Tu as choisi d'être un humain !"); + case "nain", "n" -> hero.setRace(new Dwarf()); + case "orc", "o" -> hero.setRace(new Ork()); + case "elfe", "e" -> hero.setRace(new Elf()); + case "humain", "h" -> hero.setRace(new Human()); + default -> { + System.out.println("Je n'ai pas compris ta réponse."); + selectRace(hero); + return; } } System.out.println("Voici les caractéristiques de ton personnage :"); @@ -98,12 +87,127 @@ public class Game { 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" -> { - System.out.println("Très bien, tu es prêt à commencer l'aventure !"); - System.exit(0); - } - case "non", "no", "n" -> selectRace(hero); + if (choice2.equalsIgnoreCase("oui") || choice2.equalsIgnoreCase("yes") || choice2.equalsIgnoreCase("y") || choice2.equalsIgnoreCase("o")) { + System.out.println("Très bien, Et maintenant, ton équipement."); + equipHelmet(hero); + } else { + selectRace(hero); } } -} + + private void equipHelmet(Hero hero) { + System.out.println("Veux-tu équiper un casque ?\n1.Oui\n2.Non"); + String choice = scanner.next(); + if (choice.equalsIgnoreCase("oui") || choice.equalsIgnoreCase("yes") || choice.equalsIgnoreCase("y") || choice.equalsIgnoreCase("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()); + case "chapeau", "c" -> hero.setHelmet(new Hat()); + 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); + return; + } + } + if (hero.getHelmet() != null) hero.getHelmet().equip(hero); + } else { + 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(); + if (choice2.equalsIgnoreCase("oui") || choice2.equalsIgnoreCase("yes") || choice2.equalsIgnoreCase("y") || choice2.equalsIgnoreCase("o")) { + equipArmor(hero); + } else { + 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(); + if (choice.equalsIgnoreCase("oui") || choice.equalsIgnoreCase("yes") || choice.equalsIgnoreCase("y") || choice.equalsIgnoreCase("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()); + case "tunique", "tunic", "t", "leather", "cuir" -> hero.setChest(new LeatherArmor()); + case "mail", "mailles", "m", "cotte", "chest" -> hero.setChest(new MailChest()); + case "robe", "mage", "r" -> hero.setChest(new RobeMage()); + case "none", "rien" -> { + System.out.println("Tu veux VRAIMENT y aller à poil ?"); + String validate = scanner.next(); + if (validate.equalsIgnoreCase("oui") || validate.equalsIgnoreCase("yes") || validate.equalsIgnoreCase("y") || validate.equalsIgnoreCase("o")) { + System.out.println("Ah bah d'accord le nudiste ..."); + } else { + equipArmor(hero); + } + return; + } + default -> { + System.out.println("Je n'ai pas compris ta réponse."); + equipArmor(hero); + return; + } + } + if (hero.getChest() != null) hero.getChest().equip(hero); + } else { + 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(); + if (choice2.equalsIgnoreCase("oui") || choice2.equalsIgnoreCase("yes") || choice2.equalsIgnoreCase("y") || choice2.equalsIgnoreCase("o")) { + equipWeapon(hero); + } else { + 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(); + if (choice.equalsIgnoreCase("oui") || choice.equalsIgnoreCase("yes") || choice.equalsIgnoreCase("y") || choice.equalsIgnoreCase("o")) { + System.out.println("D'accord, lequel ? Une épée (E) ? Un bâton (B) ? Une hache (H) ? Une dague (D) ? Ou rien ?"); + String weapon = scanner.next(); + switch (weapon.toLowerCase()) { + case "sword", "epee", "e" -> hero.setWeapon(new TrainingSword()); + case "staff", "baton", "b" -> hero.setWeapon(new ApprenticeStaff()); + case "axe", "hache", "h" -> hero.setWeapon(new TrainingAxe()); + case "dagger", "dague", "d" -> hero.setWeapon(new Dagger()); + case "none", "rien" -> { + System.out.println("Tu veux VRAIMENT y aller à mains nues ?"); + String validate = scanner.next(); + if (validate.equalsIgnoreCase("oui") || validate.equalsIgnoreCase("yes") || validate.equalsIgnoreCase("y") || validate.equalsIgnoreCase("o")) { + System.out.println("Rien de tel que ses poings pour montrer sa puissance."); + } else { + equipWeapon(hero); + } + return; + } + default -> { + System.out.println("Je n'ai pas compris ta réponse."); + equipWeapon(hero); + return; + } + } + if (hero.getWeapon() != null) hero.getWeapon().equip(hero); + } else { + 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"); + String choice2 = scanner.next(); + if (choice2.equalsIgnoreCase("oui") || choice2.equalsIgnoreCase("yes") || choice2.equalsIgnoreCase("y") || choice2.equalsIgnoreCase("o")) { + System.out.println("Très bien, tu es prêt à commencer l'aventure !"); + new StartEvent(); + } else { + equipWeapon(hero); + } + } +} \ No newline at end of file