From 84988b3fa155015e9521b525ba3349bf9e2dd24b Mon Sep 17 00:00:00 2001 From: Arefe Date: Wed, 6 May 2026 20:55:17 +0330 Subject: [PATCH 01/12] add required classes --- .../src/main/java/org/project/entity/enemies/Dragon.java | 4 ++++ .../src/main/java/org/project/entity/enemies/Goblin.java | 4 ++++ .../src/main/java/org/project/entity/enemies/Vampire.java | 4 ++++ .../src/main/java/org/project/entity/players/Assassin.java | 4 ++++ .../src/main/java/org/project/entity/players/Wizard.java | 4 ++++ .../src/main/java/org/project/item/armors/LeatherArmor.java | 4 ++++ Java-Knight/src/main/java/org/project/item/armors/Robe.java | 4 ++++ .../src/main/java/org/project/item/weapons/Dagger.java | 4 ++++ Java-Knight/src/main/java/org/project/item/weapons/Wand.java | 4 ++++ 9 files changed, 36 insertions(+) create mode 100644 Java-Knight/src/main/java/org/project/entity/enemies/Dragon.java create mode 100644 Java-Knight/src/main/java/org/project/entity/enemies/Goblin.java create mode 100644 Java-Knight/src/main/java/org/project/entity/enemies/Vampire.java create mode 100644 Java-Knight/src/main/java/org/project/entity/players/Assassin.java create mode 100644 Java-Knight/src/main/java/org/project/entity/players/Wizard.java create mode 100644 Java-Knight/src/main/java/org/project/item/armors/LeatherArmor.java create mode 100644 Java-Knight/src/main/java/org/project/item/armors/Robe.java create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/Dagger.java create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/Wand.java diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Dragon.java b/Java-Knight/src/main/java/org/project/entity/enemies/Dragon.java new file mode 100644 index 0000000..a4ca0b9 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Dragon.java @@ -0,0 +1,4 @@ +package org.project.entity.enemies; + +public class Dragon { +} diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Goblin.java b/Java-Knight/src/main/java/org/project/entity/enemies/Goblin.java new file mode 100644 index 0000000..a11e517 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Goblin.java @@ -0,0 +1,4 @@ +package org.project.entity.enemies; + +public class Goblin { +} diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Vampire.java b/Java-Knight/src/main/java/org/project/entity/enemies/Vampire.java new file mode 100644 index 0000000..966c4b5 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Vampire.java @@ -0,0 +1,4 @@ +package org.project.entity.enemies; + +public class Vampire { +} diff --git a/Java-Knight/src/main/java/org/project/entity/players/Assassin.java b/Java-Knight/src/main/java/org/project/entity/players/Assassin.java new file mode 100644 index 0000000..2fb2ede --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/players/Assassin.java @@ -0,0 +1,4 @@ +package org.project.entity.players; + +public class Assassin { +} diff --git a/Java-Knight/src/main/java/org/project/entity/players/Wizard.java b/Java-Knight/src/main/java/org/project/entity/players/Wizard.java new file mode 100644 index 0000000..db87a41 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/players/Wizard.java @@ -0,0 +1,4 @@ +package org.project.entity.players; + +public class Wizard { +} diff --git a/Java-Knight/src/main/java/org/project/item/armors/LeatherArmor.java b/Java-Knight/src/main/java/org/project/item/armors/LeatherArmor.java new file mode 100644 index 0000000..89a25c8 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/armors/LeatherArmor.java @@ -0,0 +1,4 @@ +package org.project.item.armors; + +public class LeatherArmor { +} diff --git a/Java-Knight/src/main/java/org/project/item/armors/Robe.java b/Java-Knight/src/main/java/org/project/item/armors/Robe.java new file mode 100644 index 0000000..edd96fd --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/armors/Robe.java @@ -0,0 +1,4 @@ +package org.project.item.armors; + +public class Robe { +} diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Dagger.java b/Java-Knight/src/main/java/org/project/item/weapons/Dagger.java new file mode 100644 index 0000000..c77fd1f --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/weapons/Dagger.java @@ -0,0 +1,4 @@ +package org.project.item.weapons; + +public class Dagger { +} diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Wand.java b/Java-Knight/src/main/java/org/project/item/weapons/Wand.java new file mode 100644 index 0000000..90cf48e --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/weapons/Wand.java @@ -0,0 +1,4 @@ +package org.project.item.weapons; + +public class Wand { +} -- 2.54.0 From 21e6ad0e314da9ccbd740731e197fb12332f8d2f Mon Sep 17 00:00:00 2001 From: Arefe Date: Thu, 7 May 2026 09:10:42 +0330 Subject: [PATCH 02/12] complete players package --- .../org/project/entity/players/Assassin.java | 116 +++++++++++++- .../org/project/entity/players/Knight.java | 97 +++++++++++- .../org/project/entity/players/Player.java | 146 ++++++++++++++---- .../org/project/entity/players/Wizard.java | 90 ++++++++++- 4 files changed, 418 insertions(+), 31 deletions(-) diff --git a/Java-Knight/src/main/java/org/project/entity/players/Assassin.java b/Java-Knight/src/main/java/org/project/entity/players/Assassin.java index 2fb2ede..cf4f621 100644 --- a/Java-Knight/src/main/java/org/project/entity/players/Assassin.java +++ b/Java-Knight/src/main/java/org/project/entity/players/Assassin.java @@ -1,4 +1,118 @@ package org.project.entity.players; -public class Assassin { +import org.project.entity.Entity; +import org.project.item.armors.LeatherArmor; +import org.project.item.weapons.Dagger; + +public class Assassin extends Player { + + private boolean isHidden = false; + private boolean nextAttackCritical = false; + + public Assassin(String name) + { + super(name, 150, 120, new Dagger(), new LeatherArmor()); + } + + @Override + public int getBaseDamage() + { + return 10; + } + + @Override + public void specialAbility(Entity target) + { + if (this.getMp() < costSpecial) + { + System.out.println(YELLOW+"Not enough Mana for Vanish!"+RESET); + return; + } + + setIsHidden(true); + setNextAttackCritical(true); + this.setMp(this.getMp() - costSpecial); + System.out.println("๐Ÿ‘ป " +PURPLE+ name + " has turned invisible!"+RESET); + System.out.println("๐ŸŽฏ Next attack is guaranteed to be a Critical Hit!"); + } + + @Override + public void heavyAttack(Entity target) { + int baseDmg = getBaseDamage() * 2; + int weaponDmg = (weapon != null) ? weapon.getDamage() : 0; + int totalDmg = baseDmg + weaponDmg; + if (getNextAttackCritical()) { + totalDmg *= 2; + System.out.println("โšก Critical Hit! Damage doubled!"); + setNextAttackCritical(false); + } + + + if (this.getMp() < costHeavy) { + System.out.println(YELLOW+"Not enough Mana for Heavy Attack!"+RESET); + return; + } + this.setMp(this.getMp() - costHeavy); + + target.takeDamage(totalDmg); + System.out.println("๐Ÿ”ช " + name + " (Assassin) used Heavy Attack! " + "( " + BLUE + costHeavy + RESET + " Mana)"); + System.out.println("๐Ÿ’ฅ " + target.getClass().getSimpleName() + " took " + RED+totalDmg+RESET + " damage!"); + } + + @Override + public void lightAttack(Entity target) + { + int baseDmg = getBaseDamage(); + int weaponDmg = (weapon != null) ? weapon.getDamage() : 0; + int totalDmg = baseDmg + weaponDmg; + if (getNextAttackCritical()) { + totalDmg *= 2; + System.out.println("โšก Critical Hit! Damage doubled!"); + setNextAttackCritical(false); + } + + target.takeDamage(totalDmg); + System.out.println("๏ธ๐Ÿ—ก๏ธ " + name + " (Assassin) used Light Attack! " + "( " + BLUE+costLight+RESET + " Mana)"); + System.out.println("๐Ÿ’ฅ " + target.getClass().getSimpleName() + " took " + RED+totalDmg+RESET + " damage!"); + } + + @Override + public void heal(int health) + { + setHp(getHp() + health); + if (this.getHp() > getMaxHP()) { + setHp(getMaxHP()); + } + System.out.println("๐Ÿ’š" + name + " (Assassin) healed " + health + " HP!" ); + } + @Override + public void defend() + { + if (this.getMp() >= costDefend) + { + this.setMp(getMp() - costDefend); + this.setDefending(true); + System.out.println("๐Ÿ›ก๏ธ" + name + " (Assassin) is defending!" + "( " + BLUE+costDefend+RESET + " Mana)"); + } + else + { + System.out.println(YELLOW+"Not enough Mana!"+RESET); + } + } + + public boolean getIsHidden() { + return isHidden; + } + + public void setIsHidden(boolean hidden) { + isHidden = hidden; + } + + public boolean getNextAttackCritical() { + return nextAttackCritical; + } + + public void setNextAttackCritical(boolean nextAttackCritical) { + this.nextAttackCritical = nextAttackCritical; + } } diff --git a/Java-Knight/src/main/java/org/project/entity/players/Knight.java b/Java-Knight/src/main/java/org/project/entity/players/Knight.java index 14d8fa2..ac1d4d2 100644 --- a/Java-Knight/src/main/java/org/project/entity/players/Knight.java +++ b/Java-Knight/src/main/java/org/project/entity/players/Knight.java @@ -1,6 +1,97 @@ package org.project.entity.players; -// TODO: UPDATE IMPLEMENTATION -public class Knight { - // TODO: DESIGN KNIGHT'S WEAPON AND ARMOR AND IMPLEMENT THE CONSTRUCTOR +import org.project.entity.Entity; +import org.project.entity.enemies.Enemy; +import org.project.item.armors.Armor; +import org.project.item.armors.KnightArmor; +import org.project.item.weapons.Sword; +import org.project.item.weapons.Weapon; + +public class Knight extends Player{ + + private boolean isStunned = false; + public Knight(String name) + { + super(name, 120, 60, new Sword(), new KnightArmor()); + } + + @Override + public int getBaseDamage() + { + return 15; + //Knight has the highest base dmg + } + @Override + public void specialAbility(Entity target) + { + if (this.getMp() < costSpecial) + { + System.out.println(YELLOW+"Not enough Mana for shield bash!"+RESET); + return; + } + + this.setMp(this.getMp() - costSpecial); + if (target instanceof Enemy) { + Enemy enemyTarget = (Enemy) target; + enemyTarget.setStunned(true); + System.out.println("๐Ÿ›ก๏ธ " + PURPLE+getName() + " used Shield Bash!" +RESET+ "( " + BLUE+costSpecial+RESET + " Mana)"); + System.out.println("Enemy is Stunned and will skip their next turn!"); + } + + int damage = getBaseDamage() + (weapon != null ? weapon.getDamage() : 0) + 10; + target.takeDamage(damage); + System.out.println("๐Ÿ’ฅ " + target.getClass().getSimpleName() + " took " + RED+damage+RESET + " damage!"); + } + + public void heavyAttack(Entity target) + { + int baseDmg = getBaseDamage() * 2; + int weaponDmg = (weapon != null) ? weapon.getDamage() : 0; + int totalDmg = baseDmg + weaponDmg; + + if (this.getMp() < costHeavy) + { + System.out.println(YELLOW+"Not enough Mana for Heavy Attack!"+RESET); + return; + } + this.setMp(this.getMp() - costHeavy); + + target.takeDamage(totalDmg); + System.out.println("๐Ÿ’ฅ " + name + " (Knight) used Heavy Attack! " + "( " + BLUE+costHeavy+RESET + " Mana)"); + System.out.println("๐Ÿ’ฅ " + target.getClass().getSimpleName() + " took " + RED+totalDmg+RESET + " damage!"); + } + + public void lightAttack(Entity target) + { + int baseDmg = getBaseDamage(); + int weaponDmg = (weapon != null) ? weapon.getDamage() : 0; + int totalDmg = baseDmg + weaponDmg; + target.takeDamage(totalDmg); + System.out.println("โš”๏ธ " + name + " (Knight) used Light Attack! " + "( " + BLUE+costLight+RESET + " Mana)"); + System.out.println("๐Ÿ’ฅ " + target.getClass().getSimpleName() + " took " + RED+totalDmg+RESET + " damage!"); + } + + @Override + public void heal(int health) + { + setHp(getHp() + health); + if (this.getHp() > getMaxHP()) { + setHp(getMaxHP()); + } + System.out.println("๐Ÿ’š" + name + " (Knight) healed " + health + " HP!" ); + } + @Override + public void defend() + { + if (this.getMp() >= costDefend) + { + this.setMp(getMp() - costDefend); + this.setDefending(true); + System.out.println("๐Ÿ›ก๏ธ" + name + " (Knight) is defending!" + "( " + BLUE+costDefend+RESET + " Mana)"); + } + else + { + System.out.println(YELLOW+"Not enough Mana!"+RESET); + } + } } diff --git a/Java-Knight/src/main/java/org/project/entity/players/Player.java b/Java-Knight/src/main/java/org/project/entity/players/Player.java index ff5385c..891bf66 100644 --- a/Java-Knight/src/main/java/org/project/entity/players/Player.java +++ b/Java-Knight/src/main/java/org/project/entity/players/Player.java @@ -4,8 +4,7 @@ import org.project.entity.Entity; import org.project.item.armors.Armor; import org.project.item.weapons.Weapon; -// TODO: UPDATE IMPLEMENTATION -public abstract class Player { +public abstract class Player implements Entity { protected String name; Weapon weapon; Armor armor; @@ -13,38 +12,46 @@ public abstract class Player { private int maxHP; private int mp; private int maxMP; + private int currentXp = 0; + private int level = 1; + private int xpToNextLevel = 100; - public Player(String name, int hp, int mp, Weapon weapon, Armor armor) { + protected static final int costLight = 0; + protected static final int costHeavy = 20; + protected static final int costDefend = 15; + protected static final int costHeal = 30; + protected static final int costSpecial = 50; + private boolean isDefending = false; + + public static final String BLUE = "\u001B[34m"; + public static final String RED = "\033[31m"; + public static final String YELLOW = "\033[33m"; + protected static final String PURPLE = "\033[35m"; + public static final String RESET = "\u001B[0m"; + + public Player(String name, int maxHP, int maxMP, Weapon weapon, Armor armor) { this.name = name; - this.hp = hp; - this.mp = mp; - + this.hp = maxHP; + this.mp = maxMP; this.weapon = weapon; this.armor = armor; } - @Override - public void attack(Entity target) { - target.takeDamage(weapon.getDamage()); - } - - @Override - public void defend() { - // TODO - } - - @Override public void takeDamage(int damage) { - hp -= damage - armor.getDefense(); - } - - @Override - public void heal(int health) { - hp += health; - if (hp > maxHP) { - hp = maxHP; + if (isDefending) + { + damage = (int) (damage * 0.1); + isDefending = false; } + int actualDamage = Math.max(0, damage - (armor != null ? armor.getDefense() : 0)); + hp -= actualDamage; + if (this.hp < 0) + { + this.hp = 0; + } + System.out.println("๐Ÿ’ฅ " + name + " took " + RED+damage+RESET + " damage!"); + System.out.println("โค๏ธ " + name + " HP remaining: " + hp + "/" + maxHP); } @Override @@ -55,7 +62,6 @@ public abstract class Player { } } - public String getName() { return name; } @@ -85,5 +91,93 @@ public abstract class Player { public Armor getArmor() { return armor; } + public void setMp(int mp) { + this.mp = mp; + } + + public void setHp(int hp) + { + this.hp = hp; + } + + public int getCurrentXp() { + return currentXp; + } + + public void setCurrentXp(int currentXp) { + this.currentXp = currentXp; + } + + public int getLevel() { + return level; + } + + public void setLevel(int level) { + this.level = level; + } + + public int getXpToNextLevel() { + return xpToNextLevel; + } + + public void setXpToNextLevel(int xpToNextLevel) { + this.xpToNextLevel = xpToNextLevel; + } + + @Override + public boolean isAlive() + { + return getHp() > 0; + } + + public abstract int getBaseDamage(); + + + public void setDefending(boolean defending) { + isDefending = defending; + } + + public boolean isDefending() { + return isDefending; + } + + @Override + public abstract void defend(); + @Override + public abstract void heal(int health); + public abstract void lightAttack(Entity target); + public abstract void specialAbility(Entity target); + public abstract void heavyAttack(Entity target); + + public void addXp(int amount) + { + this.setCurrentXp(getCurrentXp()+amount); + System.out.println("โœจ You earned "+ amount + " XP!"); + while (this.getCurrentXp() >= this.getXpToNextLevel()) + { + levelUp(); + } + } + + public void levelUp() + { + this.setCurrentXp(this.getCurrentXp()-this.getXpToNextLevel()); + this.setLevel(this.getLevel()+1); + + int hpBonus = 10 + (this.getLevel() * 5); + int mpBonus = 5 + (this.getLevel() * 2); + + this.maxHP += hpBonus; + this.maxMP += mpBonus; + + this.hp = this.maxHP; + this.mp = this.maxMP; + + this.setXpToNextLevel((int) (this.getXpToNextLevel()*1.5)); + + System.out.println("๐ŸŽ‰ LEVEL UP! You are now Level " + this.getLevel() + "!"); + System.out.println("โค๏ธ Max HP increased to " + this.maxHP); + System.out.println("๐Ÿ’Ž Max MP increased to " + this.maxMP); + } } diff --git a/Java-Knight/src/main/java/org/project/entity/players/Wizard.java b/Java-Knight/src/main/java/org/project/entity/players/Wizard.java index db87a41..600fb14 100644 --- a/Java-Knight/src/main/java/org/project/entity/players/Wizard.java +++ b/Java-Knight/src/main/java/org/project/entity/players/Wizard.java @@ -1,4 +1,92 @@ package org.project.entity.players; -public class Wizard { +import org.project.entity.Entity; +import org.project.item.armors.Robe; +import org.project.item.weapons.Wand; + +public class Wizard extends Player{ + + public Wizard(String name) + { + super(name, 200, 100, new Wand(), new Robe()); + //Wizard: Highest Max Health (HP). + } + + @Override + public int getBaseDamage() + { + return 8; + } + + @Override + public void specialAbility(Entity target) + { + if (this.getMp() < costSpecial) + { + System.out.println(YELLOW+"Not enough Mana for Soul Siphon!"+RESET); + return; + } + this.setMp(this.getMp() - costSpecial); + int damage = getBaseDamage() + (weapon != null ? weapon.getDamage() : 0) + 25; + target.takeDamage(damage); + int selfHeal = 15; + + System.out.println("๐Ÿช„ " +PURPLE+ name + " (Wizard) used soul siphon!"+RESET + " (" + BLUE+costSpecial+RESET + " Mana)"); + System.out.println("๐Ÿ’ฅ " + target.getClass().getSimpleName() + " took " + RED+damage+RESET + " damage!"); + heal(selfHeal); + } + + @Override + public void heavyAttack(Entity target) + { + int baseDmg = getBaseDamage() * 2; + int weaponDmg = (weapon != null) ? weapon.getDamage() : 0; + int totalDmg = baseDmg + weaponDmg; + + if (this.getMp() < costHeavy) + { + System.out.println(YELLOW+"Not enough Mana for Heavy Attack!"+RESET); + return; + } + this.setMp(this.getMp() - costHeavy); + + target.takeDamage(totalDmg); + System.out.println("๐Ÿ’ฅ " + name + " (Wizard) used Heavy Attack! " + "( " + BLUE+costHeavy+RESET + " Mana)"); + System.out.println("๐Ÿ’ฅ " + target.getClass().getSimpleName() + " took " + RED+totalDmg+RESET + " fire damage!"); + } + + @Override + public void lightAttack(Entity target) + { + int baseDmg = getBaseDamage(); + int weaponDmg = (weapon != null) ? weapon.getDamage() : 0; + int totalDmg = baseDmg + weaponDmg; + target.takeDamage(totalDmg); + System.out.println("๏ธ๐Ÿง™ " + name + " (Wizard) used Light Attack! " + "( " + BLUE+costLight+RESET + " Mana)"); + System.out.println("๐Ÿ’ฅ " + target.getClass().getSimpleName() + " took " + RED+totalDmg+RESET + " magical damage!"); + } + + @Override + public void heal(int health) + { + setHp(getHp() + health); + if (this.getHp() > getMaxHP()) { + setHp(getMaxHP()); + } + System.out.println("๐Ÿ’š" + name + " (Wizard) healed " + health + " HP!" ); + } + @Override + public void defend() + { + if (this.getMp() >= costDefend) + { + this.setMp(getMp() - costDefend); + this.setDefending(true); + System.out.println("๐Ÿ›ก๏ธ" + name + " (Wizard) is defending!" + "( " + BLUE+costDefend+RESET + " Mana)"); + } + else + { + System.out.println(YELLOW+"Not enough Mana!"+RESET); + } + } } -- 2.54.0 From 9804cf7237f7155cfca1bb5b61dc4560263a7ea5 Mon Sep 17 00:00:00 2001 From: Arefe Date: Thu, 7 May 2026 09:15:14 +0330 Subject: [PATCH 03/12] complete enemies package --- .../org/project/entity/enemies/Dragon.java | 39 ++++++- .../org/project/entity/enemies/Enemy.java | 103 +++++++++++++++++- .../org/project/entity/enemies/Goblin.java | 36 +++++- .../org/project/entity/enemies/Skeleton.java | 53 ++++++++- .../org/project/entity/enemies/Vampire.java | 39 ++++++- 5 files changed, 261 insertions(+), 9 deletions(-) diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Dragon.java b/Java-Knight/src/main/java/org/project/entity/enemies/Dragon.java index a4ca0b9..8297c30 100644 --- a/Java-Knight/src/main/java/org/project/entity/enemies/Dragon.java +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Dragon.java @@ -1,4 +1,41 @@ package org.project.entity.enemies; -public class Dragon { +import org.project.entity.Entity; +import org.project.entity.players.Player; +import org.project.item.weapons.Weapon; + +public class Dragon extends Enemy{ + + private static final double BREATH_DAMAGE_PENETRATION = 0.5; + + public Dragon(Weapon weapon) + { + super(200, 0, weapon); + } + + @Override + public void attack(Entity target) + { + if(!this.isAlive()) return; + int damage = 25; + if(super.getWeapon() != null) + { + damage += super.getWeapon().getDamage(); + } + + target.takeDamage(damage); + System.out.println("๐Ÿ‰ Dragon used Fire Breath!"); + + if (target instanceof Player) + { + Player player = (Player) target; + if (player.isDefending()) + { + int penetrationDamage = (int) (damage * BREATH_DAMAGE_PENETRATION); + player.takeDamage(penetrationDamage); + System.out.println("๐Ÿ”ฅ Dragon's fiery breath bypassed the shield!"); + System.out.println("๐Ÿ’ฅ " + player.getName() + " took " + penetrationDamage + " additional damage from fire!"); + } + } + } } diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Enemy.java b/Java-Knight/src/main/java/org/project/entity/enemies/Enemy.java index e019acb..cfcb46f 100644 --- a/Java-Knight/src/main/java/org/project/entity/enemies/Enemy.java +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Enemy.java @@ -1,29 +1,78 @@ package org.project.entity.enemies; +import org.project.entity.Entity; +import org.project.item.armors.Armor; import org.project.item.weapons.Weapon; -// TODO: UPDATE IMPLEMENTATION -public abstract class Enemy { +public abstract class Enemy implements Entity{ Weapon weapon; private int hp; private int mp; + private int maxHp; + private boolean isAlive = true; + private int maxMp; + + private int xpReward; + private boolean hasDroppedKey = false; + private boolean keyDroppable = false; + private boolean isStunned = false; + + public static final String GREEN = "\u001B[32m"; + public static final String RESET = "\u001B[0m"; + + public Enemy(int hp, int mp, Weapon weapon) { this.hp = hp; this.mp = mp; - this.weapon = weapon; + this.maxHp = maxHp; } @Override public void takeDamage(int damage) { + if (!isAlive) return; hp -= damage; + + System.out.println("โค๏ธ " + this.getClass().getSimpleName() + " HP remaining: " + hp + "/" + maxHp); + + if (this.hp <= 0) { + this.hp = 0; + this.isAlive = false; + } } + @Override + public void defend() + { + System.out.println(this.getClass().getSimpleName() + " attempts to defend!"); + } + + @Override + public void heal(int health) + { + if (!isAlive) return; + this.hp += health; + if (this.hp > maxHp) this.hp = maxHp; + System.out.println("๐Ÿ’š " + this.getClass().getSimpleName() + " healed " + health + " HP!"); + } + + @Override + public boolean isAlive() { + return this.isAlive; + } + + public abstract void attack(Entity target); + public int getHp() { return hp; } + public void setHp(int hp) + { + this.hp = hp; + } + public int getMp() { return mp; } @@ -31,4 +80,52 @@ public abstract class Enemy { public Weapon getWeapon() { return weapon; } + + public void setStunned(boolean b) + { + this.isStunned = b; + } + + public int getXpReward() + { + return xpReward; + } + + public boolean hasKey() + { + return keyDroppable && !hasDroppedKey; + } + + public void dropKey() + { + if (keyDroppable && !hasDroppedKey) + { + hasDroppedKey = true; + System.out.println("๐Ÿ”‘ " +GREEN+ this.getClass().getSimpleName() + " dropped a key!"+RESET); + } + } + + public void setKeyDroppable(boolean droppable) + { + this.keyDroppable = droppable; + } + + public void setXpReward(int xp) + { + this.xpReward = xp; + } + + @Override + public void fillMana(int mana) + { + this.mp = 0; + } + + public int getMaxHP() { + return maxHp; + } + + public int getMaxMP() { + return maxHp; + } } diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Goblin.java b/Java-Knight/src/main/java/org/project/entity/enemies/Goblin.java index a11e517..0b0cd77 100644 --- a/Java-Knight/src/main/java/org/project/entity/enemies/Goblin.java +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Goblin.java @@ -1,4 +1,38 @@ package org.project.entity.enemies; -public class Goblin { +import org.project.entity.Entity; +import org.project.item.weapons.Weapon; + +public class Goblin extends Enemy{ + + public Goblin(Weapon weapon) + { + super(30, 0, weapon); + } + + @Override + public void attack(Entity target) + { + if (!this.isAlive()) return; + int baseDamage = 0; + if (super.getWeapon() != null) + { + baseDamage += super.getWeapon().getDamage(); + } + else + { + baseDamage = 8; + } + if (Math.random() < 0.4) + { + int criticalDamage = baseDamage*2; + target.takeDamage(criticalDamage); + System.out.println("๐Ÿ‘น Goblin used Critical Strike!"); + } + else + { + target.takeDamage(baseDamage); + System.out.println("๐Ÿ‘น Goblin used Slash!"); + } + } } diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Skeleton.java b/Java-Knight/src/main/java/org/project/entity/enemies/Skeleton.java index 8a6a555..de466b5 100644 --- a/Java-Knight/src/main/java/org/project/entity/enemies/Skeleton.java +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Skeleton.java @@ -1,6 +1,53 @@ package org.project.entity.enemies; -// TODO: UPDATE IMPLEMENTATION -public class Skeleton { - // TODO: DESIGN ENEMY AND IMPLEMENT THE CONSTRUCTOR +import org.project.entity.Entity; +import org.project.item.weapons.Weapon; + +public class Skeleton extends Enemy{ + + private boolean hasResurrected = false; + private int resurrectionThreshold; + + public Skeleton(Weapon weapon) + { + super(40, 0, weapon); + this.resurrectionThreshold = 20; + } + + @Override + public void takeDamage(int damage) + { + super.takeDamage(damage); + + if (!this.isAlive() && !hasResurrected) + { + resurrect(); + } + } + + @Override + public void attack(Entity target) + { + if (!this.isAlive()) return; + int damage = 0; + if (super.getWeapon() != null) + { + damage = super.getWeapon().getDamage(); + } + else + { + damage = 5; + } + + target.takeDamage(damage); + } + + public void resurrect() + { + int healAmount = super.getMaxHP() / 2; + super.heal(healAmount); + + this.hasResurrected = true; + System.out.println("๐Ÿ‘ป Skeleton is rising from the grave! HP restored to " + super.getHp()); + } } diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Vampire.java b/Java-Knight/src/main/java/org/project/entity/enemies/Vampire.java index 966c4b5..29e31b5 100644 --- a/Java-Knight/src/main/java/org/project/entity/enemies/Vampire.java +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Vampire.java @@ -1,4 +1,41 @@ package org.project.entity.enemies; -public class Vampire { +import org.project.entity.Entity; +import org.project.item.weapons.Weapon; + +public class Vampire extends Enemy{ + + private static final double lifeStealPercent = 0.3; + + public Vampire(Weapon weapon) + { + super(60, 0, weapon); + } + + @Override + public void attack(Entity target) { + if (!this.isAlive()) return; + + int damage = 0; + if (super.getWeapon() != null) { + damage = super.getWeapon().getDamage(); + } + else + { + damage = 12; + } + + target.takeDamage(damage); + + int healAmount = (int) (damage * lifeStealPercent); + if (healAmount > 0) + { + super.heal(healAmount); + System.out.println("๐Ÿฆ‡ Vampire used Life Drain and drained " + healAmount + " HP!"); + } + else + { + System.out.println("๐Ÿฆ‡ Vampire used Bite!"); + } + } } -- 2.54.0 From d033105e333684dbe0122cababd76608c2a57113 Mon Sep 17 00:00:00 2001 From: Arefe Date: Thu, 7 May 2026 09:16:55 +0330 Subject: [PATCH 04/12] complete entity packge --- Java-Knight/src/main/java/org/project/entity/Entity.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Java-Knight/src/main/java/org/project/entity/Entity.java b/Java-Knight/src/main/java/org/project/entity/Entity.java index 2a060f9..19d37a2 100644 --- a/Java-Knight/src/main/java/org/project/entity/Entity.java +++ b/Java-Knight/src/main/java/org/project/entity/Entity.java @@ -1,7 +1,6 @@ package org.project.entity; public interface Entity { - void attack(Entity target); void defend(); @@ -15,7 +14,6 @@ public interface Entity { int getMaxMP(); - /* - TODO: ADD OTHER REQUIRED AND BONUS METHODS - */ + boolean isAlive(); + } -- 2.54.0 From 541a475bad763ab35a59440e8fc853fe0ea3f342 Mon Sep 17 00:00:00 2001 From: Arefe Date: Thu, 7 May 2026 09:20:20 +0330 Subject: [PATCH 05/12] complete armors package --- .../java/org/project/item/armors/Armor.java | 33 ++++++++++++++++--- .../org/project/item/armors/KnightArmor.java | 16 +++++++-- .../org/project/item/armors/LeatherArmor.java | 15 ++++++++- .../java/org/project/item/armors/Robe.java | 13 +++++++- 4 files changed, 68 insertions(+), 9 deletions(-) diff --git a/Java-Knight/src/main/java/org/project/item/armors/Armor.java b/Java-Knight/src/main/java/org/project/item/armors/Armor.java index 7ca8774..77f7a51 100644 --- a/Java-Knight/src/main/java/org/project/item/armors/Armor.java +++ b/Java-Knight/src/main/java/org/project/item/armors/Armor.java @@ -1,17 +1,26 @@ package org.project.item.armors; -// TODO: UPDATE IMPLEMENTATION -public abstract class Armor { +import org.project.entity.Entity; +import org.project.item.Item; + +public abstract class Armor implements Item { private int defense; private int maxDefense; private int durability; private int maxDurability; private boolean isBroke; + private int id; + private String name; - public Armor(int defense, int durability) { + public Armor(int id, String name, int defense, int durability) { + this.id = id; + this.name = name; this.defense = defense; this.durability = durability; + this.maxDefense = maxDefense; + this.maxDurability = maxDurability; + this.isBroke = false; } public void checkBreak() { @@ -21,11 +30,11 @@ public abstract class Armor { } } - // TODO: (BONUS) UPDATE THE REPAIR METHOD public void repair() { isBroke = false; defense = maxDefense; durability = maxDurability; + System.out.println("๐Ÿ”จ " + name + " has been repaired!"); } public int getDefense() { @@ -39,4 +48,20 @@ public abstract class Armor { public boolean isBroke() { return isBroke; } + + @Override + public String getName() { + return name; + } + + @Override + public int getId() { + return id; + } + + @Override + public void use(Entity target) + { + System.out.println("๐Ÿ›ก๏ธ " + name + " is equipped!"); + } } diff --git a/Java-Knight/src/main/java/org/project/item/armors/KnightArmor.java b/Java-Knight/src/main/java/org/project/item/armors/KnightArmor.java index eb59a46..b710fd1 100644 --- a/Java-Knight/src/main/java/org/project/item/armors/KnightArmor.java +++ b/Java-Knight/src/main/java/org/project/item/armors/KnightArmor.java @@ -1,6 +1,16 @@ package org.project.item.armors; -// TODO: UPDATE IMPLEMENTATION -public class KnightArmor { - // TODO: DESIGN ARMOR'S ATTRIBUTES IMPLEMENT THE CONSTRUCTOR +import org.project.entity.Entity; + +public class KnightArmor extends Armor{ + + public KnightArmor() + { + super(1, "Plate Armor", 15, 100); + } + + @Override + public void use(Entity target) { + System.out.println("๐Ÿ›ก๏ธ You equipped the heavy Plate Armor! (High Defense)"); + } } \ No newline at end of file diff --git a/Java-Knight/src/main/java/org/project/item/armors/LeatherArmor.java b/Java-Knight/src/main/java/org/project/item/armors/LeatherArmor.java index 89a25c8..e29f443 100644 --- a/Java-Knight/src/main/java/org/project/item/armors/LeatherArmor.java +++ b/Java-Knight/src/main/java/org/project/item/armors/LeatherArmor.java @@ -1,4 +1,17 @@ package org.project.item.armors; -public class LeatherArmor { +import org.project.entity.Entity; + +public class LeatherArmor extends Armor{ + + public LeatherArmor() + { + super(3, "Light Leather", 8, 70); + } + + @Override + public void use(Entity target) + { + System.out.println("๐Ÿ—ก๏ธ You equipped the Light Leather. (Balanced Stats)"); + } } diff --git a/Java-Knight/src/main/java/org/project/item/armors/Robe.java b/Java-Knight/src/main/java/org/project/item/armors/Robe.java index edd96fd..a4c4eed 100644 --- a/Java-Knight/src/main/java/org/project/item/armors/Robe.java +++ b/Java-Knight/src/main/java/org/project/item/armors/Robe.java @@ -1,4 +1,15 @@ package org.project.item.armors; -public class Robe { +import org.project.entity.Entity; + +public class Robe extends Armor{ + public Robe() + { + super(2, "magic robe", 5, 50); + } + + @Override + public void use(Entity target) { + System.out.println("๐Ÿง™โ€โ™‚๏ธ You equipped the Magic Robe. (Low Defense, High Magic Focus)"); + } } -- 2.54.0 From 6ab1cb375c6b77ab12b0d1c6f2299da7fcb29123 Mon Sep 17 00:00:00 2001 From: Arefe Date: Thu, 7 May 2026 09:22:43 +0330 Subject: [PATCH 06/12] complete weapons package --- .../java/org/project/item/weapons/Dagger.java | 31 +++++++++++++++++- .../java/org/project/item/weapons/Sword.java | 26 ++++++++------- .../java/org/project/item/weapons/Wand.java | 18 ++++++++++- .../java/org/project/item/weapons/Weapon.java | 32 ++++++++++--------- 4 files changed, 78 insertions(+), 29 deletions(-) diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Dagger.java b/Java-Knight/src/main/java/org/project/item/weapons/Dagger.java index c77fd1f..363e8ae 100644 --- a/Java-Knight/src/main/java/org/project/item/weapons/Dagger.java +++ b/Java-Knight/src/main/java/org/project/item/weapons/Dagger.java @@ -1,4 +1,33 @@ package org.project.item.weapons; -public class Dagger { +import org.project.entity.Entity; + +public class Dagger extends Weapon{ + + private static final double CRIT_CHANCE = 0.3; + + public Dagger() { + super(3, "Poison Dagger", 8); + } + + public void uniqueAbility(Entity target) { + if (target.isAlive()) + { + int damage = this.getDamage(); + boolean isCrit = Math.random() < CRIT_CHANCE; + + if (isCrit) + { + damage *= 2; + System.out.println("โšก CRITICAL HIT!"); + } + else + { + System.out.println("๐Ÿ—ก๏ธ " + this.getName() + " struck for " + damage + " damage."); + } + + target.takeDamage(damage); + } + } } + diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Sword.java b/Java-Knight/src/main/java/org/project/item/weapons/Sword.java index 96226ee..0b8b028 100644 --- a/Java-Knight/src/main/java/org/project/item/weapons/Sword.java +++ b/Java-Knight/src/main/java/org/project/item/weapons/Sword.java @@ -4,23 +4,25 @@ import org.project.entity.Entity; import java.util.ArrayList; -// TODO: UPDATE IMPLEMENTATION -public class Sword { - /* - THIS IS AN EXAMPLE OF A WEAPON DESIGN. - */ - - int abilityCharge; +public class Sword extends Weapon{ public Sword() { - // TODO: DESIGN SWORD'S ATTRIBUTES IMPLEMENT THE CONSTRUCTOR + super(1, "Iron sword", 10); } - // TODO: (BONUS) UPDATE THE UNIQUE ABILITY public void uniqueAbility(ArrayList targets) { - abilityCharge += 2; - for (Entity target : targets) { - target.takeDamage(getDamage()); + int boostedDamage = this.getDamage() * 2; + + System.out.println("๐Ÿ—ก๏ธ " + this.getName() + " glows with power!"); + + for (Entity target : targets) + { + if (target.isAlive()) + { + target.takeDamage(boostedDamage); + System.out.println("๐Ÿ’ฅ " + target.getClass().getSimpleName() + " took " + boostedDamage + " deep slash damage!"); + } } } + } diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Wand.java b/Java-Knight/src/main/java/org/project/item/weapons/Wand.java index 90cf48e..9b0a314 100644 --- a/Java-Knight/src/main/java/org/project/item/weapons/Wand.java +++ b/Java-Knight/src/main/java/org/project/item/weapons/Wand.java @@ -1,4 +1,20 @@ package org.project.item.weapons; -public class Wand { +import org.project.entity.Entity; +import org.project.entity.enemies.Enemy; + +import java.util.ArrayList; + +public class Wand extends Weapon{ + public Wand() { + super(2, "Wooden wand", 5); + } + + public void uniqueAbility(ArrayList targets) + { + for (Enemy target : targets) + { + target.takeDamage(2); + } + } } diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Weapon.java b/Java-Knight/src/main/java/org/project/item/weapons/Weapon.java index cb9fcf2..bd20280 100644 --- a/Java-Knight/src/main/java/org/project/item/weapons/Weapon.java +++ b/Java-Knight/src/main/java/org/project/item/weapons/Weapon.java @@ -1,35 +1,37 @@ package org.project.item.weapons; import org.project.entity.Entity; +import org.project.item.Item; -// TODO: UPDATE IMPLEMENTATION -public abstract class Weapon { +public abstract class Weapon implements Item { private int damage; - private int manaCost; + private int id; + private String name; - /* - TODO: ADD OTHER REQUIRED AND BONUS ATTRIBUTES - */ - - public Weapon(int damage, int manaCost) { + public Weapon(int id, String name, int damage) { + this.id = id; + this.name = name; this.damage = damage; - this.manaCost = manaCost; } + @Override public void use(Entity target) { - target.takeDamage(damage); + System.out.println("๐Ÿน " + name + " is equipped!"); } public int getDamage() { return damage; } - public int getManaCost() { - return manaCost; + @Override + public String getName() { + return name; + } + + @Override + public int getId() { + return id; } - /* - TODO: ADD OTHER REQUIRED AND BONUS METHODS - */ } -- 2.54.0 From 2ea1bced4f868a7d65d27da071d236d7aa7173cc Mon Sep 17 00:00:00 2001 From: Arefe Date: Thu, 7 May 2026 09:24:07 +0330 Subject: [PATCH 07/12] complete consumables package --- .../project/item/consumables/Consumable.java | 28 +++++++++++++++---- .../org/project/item/consumables/Flask.java | 27 +++++++++++++----- 2 files changed, 43 insertions(+), 12 deletions(-) diff --git a/Java-Knight/src/main/java/org/project/item/consumables/Consumable.java b/Java-Knight/src/main/java/org/project/item/consumables/Consumable.java index 028e13d..c752f1a 100644 --- a/Java-Knight/src/main/java/org/project/item/consumables/Consumable.java +++ b/Java-Knight/src/main/java/org/project/item/consumables/Consumable.java @@ -1,8 +1,26 @@ package org.project.item.consumables; -// TODO: UPDATE IMPLEMENTATION -public abstract class Consumable { - /* - TODO: ADD OTHER REQUIRED AND BONUS METHODS - */ +import org.project.item.Item; + +public abstract class Consumable implements Item { + + protected int id; + protected String name; + protected int amount; + + public Consumable(String name, int id, int amount) { + this.name = name; + this.id = id; + this.amount = amount; + } + + @Override + public String getName() { + return name; + } + + @Override + public int getId() { + return id; + } } diff --git a/Java-Knight/src/main/java/org/project/item/consumables/Flask.java b/Java-Knight/src/main/java/org/project/item/consumables/Flask.java index c0e7a6d..2800c34 100644 --- a/Java-Knight/src/main/java/org/project/item/consumables/Flask.java +++ b/Java-Knight/src/main/java/org/project/item/consumables/Flask.java @@ -1,16 +1,29 @@ package org.project.item.consumables; import org.project.entity.Entity; +import org.project.entity.players.Player; -// TODO: UPDATE IMPLEMENTATION -public class Flask { - /* - THIS IS AN EXAMPLE OF A CONSUMABLE DESIGN. - */ +public class Flask extends Consumable{ + + private static final int HEAL_AMOUNT = 20; + private static final String YELLOW = "\033[33m"; + public static final String RESET = "\u001B[0m"; + + public Flask(String name, int id) + { + super(name, id, HEAL_AMOUNT); + } - // TODO: UPDATE USE METHOD @Override public void use(Entity target) { - target.heal(target.getMaxHP() / 10); + if (target != null && target.isAlive()) { + target.heal(HEAL_AMOUNT); + Player player = (Player) target; + System.out.println("๐Ÿงช " + player.getName() + " used Flask! Healed " + HEAL_AMOUNT + " HP."); + } + else + { + System.out.println(YELLOW+"โŒ Cannot use Flask on a dead or null target."+RESET); + } } } -- 2.54.0 From a70b14538b0e87cf41104497142300f15e274890 Mon Sep 17 00:00:00 2001 From: Arefe Date: Thu, 7 May 2026 09:25:13 +0330 Subject: [PATCH 08/12] complete item package --- Java-Knight/src/main/java/org/project/item/Item.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Java-Knight/src/main/java/org/project/item/Item.java b/Java-Knight/src/main/java/org/project/item/Item.java index 6d6b5ad..2606cab 100644 --- a/Java-Knight/src/main/java/org/project/item/Item.java +++ b/Java-Knight/src/main/java/org/project/item/Item.java @@ -4,8 +4,6 @@ import org.project.entity.Entity; public interface Item { void use(Entity target); - - /* - TODO: ADD OTHER REQUIRED AND BONUS METHODS - */ + String getName(); + int getId(); } -- 2.54.0 From 6188c8ec1cd966af101f016b758ea7d5d443ba6c Mon Sep 17 00:00:00 2001 From: Arefe Date: Thu, 7 May 2026 09:26:10 +0330 Subject: [PATCH 09/12] complete location package --- Java-Knight/src/main/java/org/project/location/Location.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Java-Knight/src/main/java/org/project/location/Location.java b/Java-Knight/src/main/java/org/project/location/Location.java index b0b4b98..92ed0a8 100644 --- a/Java-Knight/src/main/java/org/project/location/Location.java +++ b/Java-Knight/src/main/java/org/project/location/Location.java @@ -6,7 +6,7 @@ import java.util.ArrayList; public class Location { private String name; - + private ArrayList locations; private ArrayList enemies; public Location(ArrayList locations, ArrayList enemies) { -- 2.54.0 From 8d3bddbe0aac635852951a5d9ba650c62c65b32c Mon Sep 17 00:00:00 2001 From: Arefe Date: Thu, 7 May 2026 19:21:47 +0330 Subject: [PATCH 10/12] add game class --- .../src/main/java/org/project/game.java | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 Java-Knight/src/main/java/org/project/game.java diff --git a/Java-Knight/src/main/java/org/project/game.java b/Java-Knight/src/main/java/org/project/game.java new file mode 100644 index 0000000..f5aa61a --- /dev/null +++ b/Java-Knight/src/main/java/org/project/game.java @@ -0,0 +1,59 @@ +package org.project.entity.players; + +import java.util.Scanner; + +public class game { + + private Player player; + private Scanner scanner; + + public game() + { + this.scanner = new Scanner(System.in); + this.player = createPlayer(); + this.location + } + + public Player createPlayer() + { + System.out.println("๐Ÿฐ Welcome to Java Knight!"); + System.out.println("Enter your name: "); + String name = scanner.nextLine(); + + System.out.println("1. โš”๏ธ Knight (High Damage, Balanced HP)"); + System.out.println("2. ๐Ÿง™ Wizard (High HP, Magic Power)"); + System.out.println("3. ๐Ÿ—ก๏ธ Assassin (High Mana, Critical Hits)"); + int choice = getIntInput("Choose your character: "); + + Player newPlayer = null; + switch (choice) + { + case 1: + System.out.println("You chose the Knight!"); + newPlayer = new Knight(name); + break; + case 2: + System.out.println("You chose the Wizard!"); + newPlayer = new Wizard(name); + break; + case 3: + System.out.println("You chose the Assassin!"); + newPlayer = new Assassin(name); + default: + System.out.println("Invalid choice. Defaulting to Knight."); + newPlayer = new Knight(name); + break; + } + + } + + private int getIntInput(String prompt) { + System.out.print(prompt); + while (!scanner.hasNextInt()) { + System.out.println("โš ๏ธ Please enter a valid number!"); + scanner.next(); + System.out.print(prompt); + } + return scanner.nextInt(); + } +} -- 2.54.0 From 95076fce9b23ca615c278b687b8d951930956541 Mon Sep 17 00:00:00 2001 From: Arefe Date: Sat, 9 May 2026 15:13:37 +0330 Subject: [PATCH 11/12] update classes and fixed bugs --- .idea/jarRepositories.xml | 5 + .../src/main/java/org/project/Game.java | 387 ++++++++++++++++++ .../src/main/java/org/project/Main.java | 15 +- .../org/project/entity/enemies/Dragon.java | 35 +- .../org/project/entity/enemies/Enemy.java | 23 +- .../org/project/entity/enemies/Goblin.java | 15 +- .../org/project/entity/enemies/Skeleton.java | 22 +- .../org/project/entity/enemies/Vampire.java | 15 +- .../org/project/entity/players/Assassin.java | 28 +- .../org/project/entity/players/Knight.java | 29 +- .../org/project/entity/players/Player.java | 34 +- .../org/project/entity/players/Wizard.java | 27 +- .../src/main/java/org/project/game.java | 59 --- .../org/project/item/armors/KnightArmor.java | 2 +- .../org/project/item/armors/LeatherArmor.java | 2 +- .../java/org/project/item/armors/Robe.java | 2 +- .../java/org/project/location/Location.java | 3 +- .../target/classes/org/project/Game.class | Bin 0 -> 11156 bytes .../target/classes/org/project/Main.class | Bin 0 -> 1284 bytes .../classes/org/project/entity/Entity.class | Bin 0 -> 265 bytes .../org/project/entity/enemies/Dragon.class | Bin 0 -> 2452 bytes .../org/project/entity/enemies/Enemy.class | Bin 0 -> 3848 bytes .../org/project/entity/enemies/Goblin.class | Bin 0 -> 1439 bytes .../org/project/entity/enemies/Skeleton.class | Bin 0 -> 2181 bytes .../org/project/entity/enemies/Vampire.class | Bin 0 -> 1451 bytes .../org/project/entity/players/Assassin.class | Bin 0 -> 4110 bytes .../org/project/entity/players/Knight.class | Bin 0 -> 3730 bytes .../org/project/entity/players/Player.class | Bin 0 -> 5479 bytes .../org/project/entity/players/Wizard.class | Bin 0 -> 3679 bytes .../classes/org/project/item/Item.class | Bin 0 -> 216 bytes .../org/project/item/armors/Armor.class | Bin 0 -> 2125 bytes .../org/project/item/armors/KnightArmor.class | Bin 0 -> 727 bytes .../project/item/armors/LeatherArmor.class | Bin 0 -> 730 bytes .../org/project/item/armors/Robe.class | Bin 0 -> 721 bytes .../project/item/consumables/Consumable.class | Bin 0 -> 698 bytes .../org/project/item/consumables/Flask.class | Bin 0 -> 1691 bytes .../org/project/item/weapons/Dagger.class | Bin 0 -> 1600 bytes .../org/project/item/weapons/Sword.class | Bin 0 -> 2011 bytes .../org/project/item/weapons/Wand.class | Bin 0 -> 1045 bytes .../org/project/item/weapons/Weapon.class | Bin 0 -> 1513 bytes .../org/project/location/Location.class | Bin 0 -> 1294 bytes 41 files changed, 585 insertions(+), 118 deletions(-) create mode 100644 Java-Knight/src/main/java/org/project/Game.java delete mode 100644 Java-Knight/src/main/java/org/project/game.java create mode 100644 Java-Knight/target/classes/org/project/Game.class create mode 100644 Java-Knight/target/classes/org/project/Main.class create mode 100644 Java-Knight/target/classes/org/project/entity/Entity.class create mode 100644 Java-Knight/target/classes/org/project/entity/enemies/Dragon.class create mode 100644 Java-Knight/target/classes/org/project/entity/enemies/Enemy.class create mode 100644 Java-Knight/target/classes/org/project/entity/enemies/Goblin.class create mode 100644 Java-Knight/target/classes/org/project/entity/enemies/Skeleton.class create mode 100644 Java-Knight/target/classes/org/project/entity/enemies/Vampire.class create mode 100644 Java-Knight/target/classes/org/project/entity/players/Assassin.class create mode 100644 Java-Knight/target/classes/org/project/entity/players/Knight.class create mode 100644 Java-Knight/target/classes/org/project/entity/players/Player.class create mode 100644 Java-Knight/target/classes/org/project/entity/players/Wizard.class create mode 100644 Java-Knight/target/classes/org/project/item/Item.class create mode 100644 Java-Knight/target/classes/org/project/item/armors/Armor.class create mode 100644 Java-Knight/target/classes/org/project/item/armors/KnightArmor.class create mode 100644 Java-Knight/target/classes/org/project/item/armors/LeatherArmor.class create mode 100644 Java-Knight/target/classes/org/project/item/armors/Robe.class create mode 100644 Java-Knight/target/classes/org/project/item/consumables/Consumable.class create mode 100644 Java-Knight/target/classes/org/project/item/consumables/Flask.class create mode 100644 Java-Knight/target/classes/org/project/item/weapons/Dagger.class create mode 100644 Java-Knight/target/classes/org/project/item/weapons/Sword.class create mode 100644 Java-Knight/target/classes/org/project/item/weapons/Wand.class create mode 100644 Java-Knight/target/classes/org/project/item/weapons/Weapon.class create mode 100644 Java-Knight/target/classes/org/project/location/Location.class diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml index 4158879..ddbacd6 100644 --- a/.idea/jarRepositories.xml +++ b/.idea/jarRepositories.xml @@ -16,5 +16,10 @@