Compare commits

..

11 Commits

78 changed files with 986 additions and 12 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/*

8
.idea/.gitignore generated vendored Normal file
View File

@ -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

6
.idea/misc.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_22" default="true" project-jdk-name="openjdk-22 (2)" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Java_Petit_projet.iml" filepath="$PROJECT_DIR$/Java_Petit_projet.iml" />
</modules>
</component>
</project>

124
.idea/uiDesigner.xml generated Normal file
View File

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

11
Java_Petit_projet.iml Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -2,7 +2,7 @@ import systems.Game;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
System.out.print("Hello and welcome!"); System.out.print("Hello and welcome! Test Gitea");
Game game = new Game(); Game game = new Game();
} }
} }

View File

@ -0,0 +1,4 @@
package events;
public class StartEvent extends Event{
}

View File

@ -1,4 +1,213 @@
package heroes; 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 { 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;
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;
if (race != null){
race.adjustStats(this);
}
}
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 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;
}
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());
}
} }

View File

@ -2,5 +2,16 @@ package heroes.jobs;
import heroes.Hero; 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);
} }

16
src/heroes/jobs/Mage.java Normal file
View File

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

View File

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

View File

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

View File

@ -0,0 +1,23 @@
package heroes.races;
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.getHealth() + health);
hero.setStrength(hero.getStrength() + strength);
hero.setDefense(hero.getDefense() + defense);
hero.setDexterity(hero.getDexterity() + dexterity);
hero.setIntelligence(hero.getIntelligence() + intelligence);
}
}

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

@ -0,0 +1,23 @@
package heroes.races;
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.getHealth() + health);
hero.setStrength(hero.getStrength() + strength);
hero.setDefense(hero.getDefense() + defense);
hero.setDexterity(hero.getDexterity() + dexterity);
hero.setIntelligence(hero.getIntelligence() + intelligence);
}
}

View File

@ -0,0 +1,23 @@
package heroes.races;
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.getHealth() + health);
hero.setStrength(hero.getStrength() + strength);
hero.setDefense(hero.getDefense() + defense);
hero.setDexterity(hero.getDexterity() + dexterity);
hero.setIntelligence(hero.getIntelligence() + intelligence);
}
}

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

@ -0,0 +1,24 @@
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.getHealth() + health);
hero.setStrength(hero.getStrength() + strength);
hero.setDefense(hero.getDefense() + defense);
hero.setDexterity(hero.getDexterity() + dexterity);
hero.setIntelligence(hero.getIntelligence() + intelligence);
}
}

View File

@ -2,5 +2,20 @@ package heroes.races;
import heroes.Hero; import heroes.Hero;
public abstract class Race extends 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;
}
public void setRaceName(String raceName) {
this.raceName = raceName;
}
public abstract void adjustStats(Hero hero);
} }

8
src/items/Equipment.java Normal file
View File

@ -0,0 +1,8 @@
package items;
import heroes.Hero;
public abstract class Equipment {
public String name;
public abstract void equip(Hero hero);
}

View File

@ -1,6 +0,0 @@
package items.armors;
import items.Item;
abstract class Armor extends Item {
}

View File

@ -0,0 +1,6 @@
package items.chests;
import items.Equipment;
public abstract class Chest extends Equipment {
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
package items.helmets; package items.helmets;
import items.Item; import items.Equipment;
public abstract class Helmet extends Item { public abstract class Helmet extends Equipment {
} }

View File

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

View File

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

View File

@ -0,0 +1,7 @@
package items.weapons;
import items.Equipment;
public abstract class Weapon extends Equipment {
}

View File

@ -0,0 +1,6 @@
package items.weapons.axes;
import items.weapons.Weapon;
public abstract class Axe extends Weapon {
}

View File

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

View File

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

View File

@ -0,0 +1,6 @@
package items.weapons.staffs;
import items.weapons.Weapon;
public abstract class Staff extends Weapon {
}

View File

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

View File

@ -0,0 +1,6 @@
package items.weapons.swords;
import items.weapons.Weapon;
public abstract class Sword extends Weapon {
}

View File

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

View File

@ -1,4 +1,213 @@
package systems; 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 class Game {
}
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();
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);
}
}
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();
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);
}
}
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());
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 :");
hero.printStats();
System.out.println(hero.getJob().getJobName());
System.out.println("Veux-tu continuer ?\n1.Oui\n2.Non");
String choice = scanner.next();
if (choice.equalsIgnoreCase("oui") || choice.equalsIgnoreCase("yes") || choice.equalsIgnoreCase("y") || choice.equalsIgnoreCase("o")) {
selectRace(hero);
} else {
selectJob(hero);
}
}
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());
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 :");
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, 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);
}
}
}