Races crées et les stats changent selon le choix du personnage.

This commit is contained in:
Grough 2024-08-01 22:52:55 +02:00
parent 59fec89325
commit 2ca4213ec3
17 changed files with 126 additions and 5 deletions

2
.env Normal file
View File

@ -0,0 +1,2 @@
Token Gitea
580f4b63a093f9e0b24527b6f075daeb9a0a87e1

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
.gitignore
.env
.idea/*

View File

@ -32,6 +32,9 @@ public class Hero {
public void setRace(Race race) {
this.race = race;
if (race != null){
race.adjustStats(this);
}
}
public Job getJob() {

View File

@ -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);
}
}

18
src/heroes/races/Elf.java Normal file
View File

@ -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);
}
}

View File

@ -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);
}
}

18
src/heroes/races/Ork.java Normal file
View File

@ -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);
}
}

View File

@ -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);
}

View File

@ -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;
@ -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);
}
}
}