diff --git a/.env b/.env new file mode 100644 index 0000000..2d94b26 --- /dev/null +++ b/.env @@ -0,0 +1,2 @@ +Token Gitea +580f4b63a093f9e0b24527b6f075daeb9a0a87e1 \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..198952d --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.gitignore +.env +.idea/* \ No newline at end of file diff --git a/out/production/Java_Petit_projet/Main.class b/out/production/Java_Petit_projet/Main.class index 4bc9afb..3afd39b 100644 Binary files a/out/production/Java_Petit_projet/Main.class and b/out/production/Java_Petit_projet/Main.class differ diff --git a/out/production/Java_Petit_projet/heroes/Hero.class b/out/production/Java_Petit_projet/heroes/Hero.class index 54d3eef..1bbb08e 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/Dwarf.class b/out/production/Java_Petit_projet/heroes/races/Dwarf.class new file mode 100644 index 0000000..f50833f Binary files /dev/null and b/out/production/Java_Petit_projet/heroes/races/Dwarf.class differ diff --git a/out/production/Java_Petit_projet/heroes/races/Elf.class b/out/production/Java_Petit_projet/heroes/races/Elf.class new file mode 100644 index 0000000..538044a Binary files /dev/null and b/out/production/Java_Petit_projet/heroes/races/Elf.class differ diff --git a/out/production/Java_Petit_projet/heroes/races/Human.class b/out/production/Java_Petit_projet/heroes/races/Human.class new file mode 100644 index 0000000..f713801 Binary files /dev/null and b/out/production/Java_Petit_projet/heroes/races/Human.class differ diff --git a/out/production/Java_Petit_projet/heroes/races/Ork.class b/out/production/Java_Petit_projet/heroes/races/Ork.class new file mode 100644 index 0000000..f46f594 Binary files /dev/null and b/out/production/Java_Petit_projet/heroes/races/Ork.class differ diff --git a/out/production/Java_Petit_projet/heroes/races/Race.class b/out/production/Java_Petit_projet/heroes/races/Race.class index 7ee83ee..ba5c8f0 100644 Binary files a/out/production/Java_Petit_projet/heroes/races/Race.class and b/out/production/Java_Petit_projet/heroes/races/Race.class differ diff --git a/out/production/Java_Petit_projet/systems/Game.class b/out/production/Java_Petit_projet/systems/Game.class index 135fa16..4cfe699 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 0205911..f53582e 100644 --- a/src/heroes/Hero.java +++ b/src/heroes/Hero.java @@ -32,6 +32,9 @@ public class Hero { public void setRace(Race race) { this.race = race; + if (race != null){ + race.adjustStats(this); + } } public Job getJob() { diff --git a/src/heroes/races/Dwarf.java b/src/heroes/races/Dwarf.java new file mode 100644 index 0000000..4d38dff --- /dev/null +++ b/src/heroes/races/Dwarf.java @@ -0,0 +1,18 @@ +package heroes.races; + +import heroes.Hero; + +public class Dwarf extends Race{ + public Dwarf() { + this.setRaceName("Nain"); + } + + @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); + } +} diff --git a/src/heroes/races/Elf.java b/src/heroes/races/Elf.java new file mode 100644 index 0000000..d86c63d --- /dev/null +++ b/src/heroes/races/Elf.java @@ -0,0 +1,18 @@ +package heroes.races; + +import heroes.Hero; + +public class Elf extends Race{ + public Elf() { + this.setRaceName("Elfe"); + } + + @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); + } +} diff --git a/src/heroes/races/Human.java b/src/heroes/races/Human.java new file mode 100644 index 0000000..521f3a8 --- /dev/null +++ b/src/heroes/races/Human.java @@ -0,0 +1,18 @@ +package heroes.races; + +import heroes.Hero; + +public class Human extends Race{ + public Human() { + this.setRaceName("Human"); + } + + @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); + } +} diff --git a/src/heroes/races/Ork.java b/src/heroes/races/Ork.java new file mode 100644 index 0000000..e3722be --- /dev/null +++ b/src/heroes/races/Ork.java @@ -0,0 +1,18 @@ +package heroes.races; + +import heroes.Hero; + +public class Ork extends Race { + public Ork() { + this.setRaceName("Orc"); + } + + @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); + } +} diff --git a/src/heroes/races/Race.java b/src/heroes/races/Race.java index 9c0fe28..ba78f07 100644 --- a/src/heroes/races/Race.java +++ b/src/heroes/races/Race.java @@ -2,5 +2,15 @@ package heroes.races; import heroes.Hero; -public abstract class Race extends Hero { +public abstract class Race { + public String raceName; + + public String getRaceName(){ + return raceName; + } + + public void setRaceName(String raceName) { + this.raceName = raceName; + } + public abstract void adjustStats(Hero hero); } diff --git a/src/systems/Game.java b/src/systems/Game.java index f2861da..a64ef1b 100644 --- a/src/systems/Game.java +++ b/src/systems/Game.java @@ -1,9 +1,8 @@ package systems; import heroes.Hero; -import heroes.jobs.Mage; -import heroes.jobs.Rogue; -import heroes.jobs.Warrior; +import heroes.jobs.*; +import heroes.races.*; import java.util.Scanner; @@ -42,7 +41,7 @@ public class Game { } } - public void selectJob(Hero hero){ + public 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()) { @@ -74,5 +73,37 @@ public class Game { } private void selectRace(Hero hero) { + 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 !"); + } + } + System.out.println("Voici les caractéristiques de ton personnage :"); + 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" -> { + System.out.println("Très bien, tu es prêt à commencer l'aventure !"); + System.exit(0); + } + case "non", "no", "n" -> selectRace(hero); + } } }