diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..21f5850 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..052146b --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Java_Petit_projet.iml b/Java_Petit_projet.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/Java_Petit_projet.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/out/production/Java_Petit_projet/Main.class b/out/production/Java_Petit_projet/Main.class new file mode 100644 index 0000000..4bc9afb Binary files /dev/null and b/out/production/Java_Petit_projet/Main.class differ diff --git a/out/production/Java_Petit_projet/events/Event.class b/out/production/Java_Petit_projet/events/Event.class new file mode 100644 index 0000000..37e2a2c Binary files /dev/null and b/out/production/Java_Petit_projet/events/Event.class differ diff --git a/out/production/Java_Petit_projet/heroes/Hero.class b/out/production/Java_Petit_projet/heroes/Hero.class new file mode 100644 index 0000000..54d3eef Binary files /dev/null and b/out/production/Java_Petit_projet/heroes/Hero.class differ diff --git a/out/production/Java_Petit_projet/heroes/jobs/Job.class b/out/production/Java_Petit_projet/heroes/jobs/Job.class new file mode 100644 index 0000000..4cf9f65 Binary files /dev/null and b/out/production/Java_Petit_projet/heroes/jobs/Job.class differ diff --git a/out/production/Java_Petit_projet/heroes/jobs/Mage.class b/out/production/Java_Petit_projet/heroes/jobs/Mage.class new file mode 100644 index 0000000..e27b87c Binary files /dev/null and b/out/production/Java_Petit_projet/heroes/jobs/Mage.class differ diff --git a/out/production/Java_Petit_projet/heroes/jobs/Rogue.class b/out/production/Java_Petit_projet/heroes/jobs/Rogue.class new file mode 100644 index 0000000..3cf5d84 Binary files /dev/null and b/out/production/Java_Petit_projet/heroes/jobs/Rogue.class differ diff --git a/out/production/Java_Petit_projet/heroes/jobs/Warrior.class b/out/production/Java_Petit_projet/heroes/jobs/Warrior.class new file mode 100644 index 0000000..207309a Binary files /dev/null and b/out/production/Java_Petit_projet/heroes/jobs/Warrior.class differ diff --git a/out/production/Java_Petit_projet/heroes/races/Race.class b/out/production/Java_Petit_projet/heroes/races/Race.class new file mode 100644 index 0000000..7ee83ee Binary files /dev/null and b/out/production/Java_Petit_projet/heroes/races/Race.class differ diff --git a/out/production/Java_Petit_projet/items/Item.class b/out/production/Java_Petit_projet/items/Item.class new file mode 100644 index 0000000..94c59ff Binary files /dev/null and b/out/production/Java_Petit_projet/items/Item.class differ diff --git a/out/production/Java_Petit_projet/items/armors/Armor.class b/out/production/Java_Petit_projet/items/armors/Armor.class new file mode 100644 index 0000000..1c347ae Binary files /dev/null and b/out/production/Java_Petit_projet/items/armors/Armor.class differ diff --git a/out/production/Java_Petit_projet/items/consummables/Consummable.class b/out/production/Java_Petit_projet/items/consummables/Consummable.class new file mode 100644 index 0000000..a9d8771 Binary files /dev/null and b/out/production/Java_Petit_projet/items/consummables/Consummable.class differ diff --git a/out/production/Java_Petit_projet/items/helmets/Helmet.class b/out/production/Java_Petit_projet/items/helmets/Helmet.class new file mode 100644 index 0000000..26fac08 Binary files /dev/null and b/out/production/Java_Petit_projet/items/helmets/Helmet.class differ diff --git a/out/production/Java_Petit_projet/items/shields/Shield.class b/out/production/Java_Petit_projet/items/shields/Shield.class new file mode 100644 index 0000000..e998744 Binary files /dev/null and b/out/production/Java_Petit_projet/items/shields/Shield.class differ diff --git a/out/production/Java_Petit_projet/rules/Action.class b/out/production/Java_Petit_projet/rules/Action.class new file mode 100644 index 0000000..2140d69 Binary files /dev/null and b/out/production/Java_Petit_projet/rules/Action.class differ diff --git a/out/production/Java_Petit_projet/systems/Game.class b/out/production/Java_Petit_projet/systems/Game.class new file mode 100644 index 0000000..135fa16 Binary files /dev/null and b/out/production/Java_Petit_projet/systems/Game.class differ diff --git a/src/Main.java b/src/Main.java index 595d128..ef5c781 100644 --- a/src/Main.java +++ b/src/Main.java @@ -2,7 +2,7 @@ import systems.Game; public class Main { public static void main(String[] args) { - System.out.print("Hello and welcome!"); + System.out.print("Hello and welcome! Test Gitea"); Game game = new Game(); } } diff --git a/src/heroes/Hero.java b/src/heroes/Hero.java index 9ae1132..0205911 100644 --- a/src/heroes/Hero.java +++ b/src/heroes/Hero.java @@ -1,4 +1,170 @@ package heroes; +import heroes.jobs.Job; +import heroes.races.Race; + public class Hero { + protected String name; + protected Race race; + protected Job job; + protected int healthBaseLevel; + protected int strengthBaseLevel; + protected int dexterityBaseLevel; + protected int intelligenceBaseLevel; + protected int defenseBaseLevel; + protected int health; + protected int strength; + protected int dexterity; + protected int intelligence; + protected int defense; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Race getRace() { + return race; + } + + public void setRace(Race race) { + this.race = race; + } + + public Job getJob() { + return job; + } + + public void setJob(Job job) { + this.job = job; + if (job != null){ + job.adjustStats(this); + } + } + + public int getHealthBaseLevel() { + return healthBaseLevel; + } + + public void setHealthBaseLevel(int healthBaseLevel) { + this.healthBaseLevel = healthBaseLevel; + } + + public int getStrengthBaseLevel() { + return strengthBaseLevel; + } + + public void setStrengthBaseLevel(int strengthBaseLevel) { + this.strengthBaseLevel = strengthBaseLevel; + } + + public int getDexterityBaseLevel() { + return dexterityBaseLevel; + } + + public void setDexterityBaseLevel(int dexterityBaseLevel) { + this.dexterityBaseLevel = dexterityBaseLevel; + } + + public int getIntelligenceBaseLevel() { + return intelligenceBaseLevel; + } + + public void setIntelligenceBaseLevel(int intelligenceBaseLevel) { + this.intelligenceBaseLevel = intelligenceBaseLevel; + } + + public int getDefenseBaseLevel() { + return defenseBaseLevel; + } + + public void setDefenseBaseLevel(int defenseBaseLevel) { + this.defenseBaseLevel = defenseBaseLevel; + } + + public int getHealth() { + return health; + } + + public void setHealth(int health) { + this.health = health; + } + + public int getStrength() { + return strength; + } + + public void setStrength(int strength) { + this.strength = strength; + } + + public int getDexterity() { + return dexterity; + } + + public void setDexterity(int dexterity) { + this.dexterity = dexterity; + } + + public int getIntelligence() { + return intelligence; + } + + public void setIntelligence(int intelligence) { + this.intelligence = intelligence; + } + + public int getDefense() { + return defense; + } + + public void setDefense(int defense) { + this.defense = defense; + } + + public Hero() { + this.setName("Hero"); + this.setRace(null); + this.setJob(null); + this.setHealthBaseLevel(100); + this.setStrengthBaseLevel(10); + this.setDexterityBaseLevel(10); + this.setIntelligenceBaseLevel(10); + this.setDefenseBaseLevel(10); + setHealth(this.getHealthBaseLevel()); + setStrength(this.getStrengthBaseLevel()); + setDexterity(this.getDexterityBaseLevel()); + setIntelligence(this.getIntelligenceBaseLevel()); + setDefense(this.getDefenseBaseLevel()); + } + + public Hero(String name) { + this.setName(name); + this.setRace(null); + this.setJob(null); + this.setHealthBaseLevel(100); + this.setStrengthBaseLevel(10); + this.setDexterityBaseLevel(10); + this.setIntelligenceBaseLevel(10); + this.setDefenseBaseLevel(10); + setHealth(this.getHealthBaseLevel()); + setStrength(this.getStrengthBaseLevel()); + setDexterity(this.getDexterityBaseLevel()); + setIntelligence(this.getIntelligenceBaseLevel()); + setDefense(this.getDefenseBaseLevel()); + } + + public void printStats() { + System.out.println("Caractéristiques de " + this.getName() + " :"); +// System.out.println("Classe : " + this.getJob().getName()); +// System.out.println("Race : " + this.getRace().getName()); + System.out.println("Point de vie : " + this.getHealth()); + System.out.println("Force : " + this.getStrength()); + System.out.println("Dextérité : " + this.getDexterity()); + System.out.println("Intelligence : " + this.getIntelligence()); + System.out.println("Défense : " + this.getDefense()); + } } diff --git a/src/heroes/jobs/Job.java b/src/heroes/jobs/Job.java index 3ee11fc..701ad1f 100644 --- a/src/heroes/jobs/Job.java +++ b/src/heroes/jobs/Job.java @@ -2,5 +2,16 @@ package heroes.jobs; import heroes.Hero; -public abstract class Job extends Hero { +public abstract class Job { + public String jobName; + + public String getJobName() { + return jobName; + } + + public void setJobName(String jobName) { + this.jobName = jobName; + } + + public abstract void adjustStats(Hero hero); } diff --git a/src/heroes/jobs/Mage.java b/src/heroes/jobs/Mage.java new file mode 100644 index 0000000..f63fa8e --- /dev/null +++ b/src/heroes/jobs/Mage.java @@ -0,0 +1,16 @@ +package heroes.jobs; + +import heroes.Hero; + +public class Mage extends Job{ + public Mage() { + this.setJobName("Mage"); + } + @Override + public void adjustStats(Hero hero) { + hero.setHealth(hero.getHealthBaseLevel() - 10); + hero.setStrength(hero.getStrengthBaseLevel() - 10); + hero.setDefense(hero.getDefenseBaseLevel() - 5); + hero.setIntelligence(hero.getIntelligenceBaseLevel() + 20); + } +} diff --git a/src/heroes/jobs/Rogue.java b/src/heroes/jobs/Rogue.java new file mode 100644 index 0000000..6121801 --- /dev/null +++ b/src/heroes/jobs/Rogue.java @@ -0,0 +1,16 @@ +package heroes.jobs; + +import heroes.Hero; + +public class Rogue extends Job{ + public Rogue() { + this.setJobName("Voleur"); + } + @Override + public void adjustStats(Hero hero) { + hero.setHealth(hero.getHealthBaseLevel() - 10); + hero.setStrength(hero.getStrengthBaseLevel() + 5); + hero.setDexterity(hero.getDexterityBaseLevel() + 20); + hero.setIntelligence(hero.getIntelligenceBaseLevel() - 5); + } +} diff --git a/src/heroes/jobs/Warrior.java b/src/heroes/jobs/Warrior.java new file mode 100644 index 0000000..504790a --- /dev/null +++ b/src/heroes/jobs/Warrior.java @@ -0,0 +1,17 @@ +package heroes.jobs; + +import heroes.Hero; + +public class Warrior extends Job { + public Warrior() { + this.setJobName("Guerrier"); + } + @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() - 5); + } +} diff --git a/src/systems/Game.java b/src/systems/Game.java index a2619dd..f2861da 100644 --- a/src/systems/Game.java +++ b/src/systems/Game.java @@ -1,4 +1,78 @@ package systems; +import heroes.Hero; +import heroes.jobs.Mage; +import heroes.jobs.Rogue; +import heroes.jobs.Warrior; + +import java.util.Scanner; + public class Game { + + public 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); + } + } + } + + public 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); + } + } + } + + 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()) { + 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 :"); + hero.printStats(); + 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); + } + } + + private void selectRace(Hero hero) { + } }