From aac96872287a0f66d81ed0ad18ad11d4a4a1e6ec Mon Sep 17 00:00:00 2001 From: Matin-Ardestani Date: Fri, 15 May 2026 23:50:32 +0330 Subject: [PATCH] Complete game --- .../src/main/java/org/project/Main.java | 215 +++++++++++++++--- .../main/java/org/project/entity/Entity.java | 8 +- .../org/project/entity/enemies/Dragon.java | 19 +- .../org/project/entity/enemies/Enemy.java | 82 +++++-- .../org/project/entity/enemies/Goblin.java | 13 +- .../org/project/entity/enemies/Skeleton.java | 12 +- .../org/project/entity/enemies/Vampire.java | 14 +- .../org/project/entity/players/Assassin.java | 10 +- .../org/project/entity/players/Knight.java | 11 +- .../org/project/entity/players/Player.java | 87 +++++-- .../org/project/entity/players/Wizard.java | 10 +- .../java/org/project/item/armors/Armor.java | 42 ---- .../org/project/item/armors/KnightArmor.java | 6 - .../project/item/consumables/Consumable.java | 8 - .../org/project/item/consumables/Flask.java | 16 -- .../java/org/project/item/weapons/Bite.java | 4 + .../org/project/item/weapons/BoneClub.java | 4 + .../java/org/project/item/weapons/Dagger.java | 4 + .../org/project/item/weapons/DualDagger.java | 4 + .../java/org/project/item/weapons/Flame.java | 4 + .../org/project/item/weapons/MagicStaff.java | 4 + .../java/org/project/item/weapons/Sword.java | 4 + .../java/org/project/item/weapons/Weapon.java | 1 + .../target/classes/org/project/Main.class | Bin 4903 -> 7901 bytes .../classes/org/project/entity/Entity.class | Bin 274 -> 339 bytes .../org/project/entity/enemies/Dragon.class | Bin 1328 -> 1690 bytes .../org/project/entity/enemies/Enemy.class | Bin 1717 -> 3160 bytes .../org/project/entity/enemies/Goblin.class | Bin 1208 -> 1470 bytes .../org/project/entity/enemies/Skeleton.class | Bin 1116 -> 1246 bytes .../org/project/entity/enemies/Vampire.class | Bin 1305 -> 1406 bytes .../org/project/entity/players/Assassin.class | Bin 1061 -> 1536 bytes .../org/project/entity/players/Knight.class | Bin 1055 -> 1531 bytes .../org/project/entity/players/Player.class | Bin 2412 -> 4097 bytes .../org/project/entity/players/Wizard.class | Bin 1052 -> 1515 bytes .../org/project/item/weapons/Bite.class | Bin 367 -> 469 bytes .../org/project/item/weapons/BoneClub.class | Bin 379 -> 486 bytes .../org/project/item/weapons/Dagger.class | Bin 373 -> 478 bytes .../org/project/item/weapons/DualDagger.class | Bin 418 -> 528 bytes .../org/project/item/weapons/Flame.class | Bin 370 -> 473 bytes .../org/project/item/weapons/MagicStaff.class | Bin 418 -> 527 bytes .../org/project/item/weapons/Sword.class | Bin 403 -> 506 bytes .../org/project/item/weapons/Weapon.class | Bin 806 -> 847 bytes 42 files changed, 403 insertions(+), 179 deletions(-) delete mode 100644 Java-Knight/src/main/java/org/project/item/armors/Armor.java delete mode 100644 Java-Knight/src/main/java/org/project/item/armors/KnightArmor.java delete mode 100644 Java-Knight/src/main/java/org/project/item/consumables/Consumable.java delete mode 100644 Java-Knight/src/main/java/org/project/item/consumables/Flask.java diff --git a/Java-Knight/src/main/java/org/project/Main.java b/Java-Knight/src/main/java/org/project/Main.java index 31d857b..05848a7 100644 --- a/Java-Knight/src/main/java/org/project/Main.java +++ b/Java-Knight/src/main/java/org/project/Main.java @@ -19,22 +19,20 @@ public class Main { Enemy goblin = new Goblin(); Enemy skeleton = new Skeleton(); Enemy vampire = new Vampire(); - Enemy dragon = new Dragon(); Enemy[] enemies = {goblin, vampire, skeleton}; // An array of the enemies except Dragon which is the final boss // Locations, one for each enemy Location forest = new Location("Whispering forest", goblin); Location catacombs = new Location("forgotten catacombs", skeleton); Location castle = new Location("crimson castle", vampire); - Location peak = new Location("ashen peak", dragon); Location[] locations = {forest, catacombs, castle}; // An array of the location except peak where is the Dragon(final boss) located - System.out.println(" =============== Java Knight ===============\n"); + System.out.println("\t=============== Java Knight ===============\n"); boolean running = true; while(running){ - System.out.println(" Choose your option:"); - System.out.println(" 1. Start game" + + System.out.println("\tChoose your option:"); + System.out.println("\t1. Start game" + " 2. Exit"); int option = scanner.nextInt(); if(option == 1){ @@ -56,34 +54,34 @@ public class Main { Random random = new Random(); // Set up - System.out.print(" Enter your name: "); + System.out.print("\tEnter your name: "); String name = scanner.next(); Player player = null; int option = 0; while(option > 3 || option < 1){ System.out.println("\n Select your character: (Enter number)"); - System.out.println(" 1. Knight" + - " 2. Assassin" + - " 3. Wizard"); + System.out.println("\t1. Knight (fights with a sword)\n" + + "\t2. Assassin (fights with dual daggers)\n" + + "\t3. Wizard (fights with his magic staff)"); if (scanner.hasNextInt()) { option = scanner.nextInt(); } else { - System.out.println(" Invalid input! Please enter a number."); + System.out.println("\tInvalid input! Please enter a number."); scanner.next(); } } switch (option){ case 1: player = new Knight(name); - System.out.printf("Your Character: %s, Your Name: %s\n", "Knight", player.getName()); + System.out.printf("\n\tYour Character: %s, Your Name: %s\n\n", "Knight", player.getName()); break; case 2: player = new Assassin(name); - System.out.printf("Your Character: %s, Your Name: %s\n", "Assassin", player.getName()); + System.out.printf("\n\tYour Character: %s, Your Name: %s\n\n", "Assassin", player.getName()); break; case 3: player = new Wizard(name); - System.out.printf("\nYour Character: %s, Your Name: %s\n\n", "Wizard", player.getName()); + System.out.printf("\n\tYour Character: %s, Your Name: %s\n\n", "Wizard", player.getName()); break; default: player = null; @@ -94,21 +92,74 @@ public class Main { // Choosing location and enemy Location loc = locations[random.nextInt(locations.length)]; loc = setLocation(loc, locations, player, random, scanner); - System.out.println(" =============== Prepare to fight ==============="); + Enemy enemy = loc.getEnemy(); + + System.out.println("\t=============== Prepare to fight ==============="); + + while(player.isAlive()){ + + while(enemy.isAlive()){ + playerMove(player, enemy, scanner); + if(!enemy.isStunned() && enemy.getAlive()) { + enemyMove(enemy, player, random); + } + else{ + enemy.stun(false); + } + } + + player.addXP(30); + enemy.heal(); + // Key dropping (50% chance) + boolean[] logics = {false, true}; + boolean drop = true; + if(enemy.hasKey() && drop){ + player.addKey(enemy); + } + + // resetting player and enemy for the next battle + player.fillMana(); + enemy.fillHP(); + + // the final battle, Dragon fight + if(player.getKeys() == 3){ + System.out.println("\t=============== Entering Ashen Peak to fight the Dragon ==============="); + enemy = new Dragon(); + loc = new Location("ashen peak", enemy); + + while(enemy.isAlive() && player.isAlive()){ + playerMove(player, enemy, scanner); + if(!enemy.isStunned() && enemy.isAlive()) { + enemyMove(enemy, player, random); + } + else{ + enemy.stun(false); + } + } + + break; + } + else{ + loc = setLocation(loc, locations, player, random, scanner); + enemy = loc.getEnemy(); + } + + } } public static Location setLocation(Location currentLocation, Location[] locations, Player player, Random random, Scanner scanner){ - System.out.printf(" %s should fight %s in %s\n", player.getName(), currentLocation.getEnemy().getName(), currentLocation.getName()); + System.out.printf("\t%s should fight %s who fights with %s in %s\n", + player.getName(), currentLocation.getEnemy().getName(), currentLocation.getEnemy().getWeapon().getName(), currentLocation.getName()); int option = 0; - while(option > 3 || option < 1){ - System.out.println(" Choose your option: "); - System.out.println(" 1. Fight " + currentLocation.getEnemy().getName() + - " 2. Change location"); + while(option > 2 || option < 1){ + System.out.println("\tChoose your option: "); + System.out.println("\t1. Fight " + currentLocation.getEnemy().getName() + + "\t2. Change location"); if (scanner.hasNextInt()) { option = scanner.nextInt(); } else { - System.out.println(" Invalid input! Please enter a number."); + System.out.println("\tInvalid input! Please enter a number."); scanner.next(); } } @@ -116,7 +167,7 @@ public class Main { if(option == 1){ return currentLocation; } - else if(option == 2){ + else{ Location[] temp_locations = new Location[locations.length - 1]; int counter = 0; for(Location l : locations){ @@ -126,14 +177,126 @@ public class Main { } } currentLocation = temp_locations[random.nextInt(temp_locations.length)]; - System.out.println(" Changing locations..."); - setLocation(currentLocation, locations, player, random, scanner); - } - else{ - System.out.println(" Invalid input! Try again."); + System.out.println("\tChanging locations...\n"); setLocation(currentLocation, locations, player, random, scanner); } return currentLocation; } + public static void playerMove(Player player, Enemy enemy, Scanner scanner){ + + player.defend(false); + + int option = 0; + while(option > 5 || option < 1){ + System.out.println("\n Your turn. Choose your move: \n" + + " 1. Light attack" + + " 2. Heavy attack" + + " 3. Defend" + + " 4. Heal" + + " 5. Special Ability"); + if (scanner.hasNextInt()) { + option = scanner.nextInt(); + + if(option != 1 && player.getMp() <= 0){ // when mana runs out the only available action is light attack + System.out.println("\tYou are out of Mana. You can only choose \"1. Light attack\""); + option = 0; + } + else if(option == 4 && player.getHp() == player.getMaxHP()){ + System.out.println("\tYour HP is at its maximum. Choose another option."); + option = 0; + } + + } else { + System.out.println("\tInvalid input! Please enter a number."); + scanner.next(); + } + } + + switch (option){ + case 1: // light attack + if(!enemy.isDefending()){ + player.lightAttack(enemy); + } + break; + case 2: // heavy attack + if(player.getMp() >= player.getWeapon().getManaCost()) { + player.heavyAttack(enemy); + } + else{ + System.out.println("\tYou don\'t have enough Mana"); + playerMove(player, enemy, scanner); + } + break; + case 3: // defend + if(player.getMp() >= player.getDefendMP()) { + player.defend(true); + } + else{ + System.out.println("\tYou don\'t have enough Mana"); + playerMove(player, enemy, scanner); + } + break; + case 4: // heal + if(player.getMp() >= player.getDefendMP()) { + player.heal( (int)((0.2)*player.getMaxHP()) ); + } + else{ + System.out.println("\tYou don\'t have enough Mana"); + playerMove(player, enemy, scanner); + } + break; + case 5: // special ability + if(player.getMp() >= player.getSpecialAbilityMP()) { + player.specialAbility(enemy); + } + else{ + System.out.println("\tYou don\'t have enough Mana"); + playerMove(player, enemy, scanner); + } + break; + } + + showStatus(player, enemy); + + } + + public static void enemyMove(Enemy enemy, Player player, Random random){ + + enemy.defend(false); + enemy.stun(false); // have been checked before calling this method + + System.out.println("\t" + enemy.getName() + "'s turn: "); + + int move_id = random.nextInt(5) + 1; + switch (move_id){ + case 1: // attack (light attack) + enemy.attack(player); + break; + case 2: // special ability (heavy attack) + if(enemy instanceof Skeleton && enemy.isRevived()){ + enemyMove(enemy, player, random); + } + enemy.specialAbility(player); + break; + case 3: // defend + enemy.defend(true); + break; + case 4: // heal + enemy.heal( (int)((0.2)*player.getMaxHP()) ); + break; + } + + showStatus(player, enemy); + + } + + public static void showStatus(Player player, Enemy enemy){ + System.out.printf("\t[%s - %d/%d HP | %d/%d Mana]\t[%s - %d/%d HP]\n\n", + player.getName(), player.getHp(), player.getMaxHP(), player.getMp(), player.getMaxMP(), + enemy.getName(), enemy.getHp(), enemy.getMaxHP() + ); + } + + } \ No newline at end of file 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 f8fe429..c37054c 100644 --- a/Java-Knight/src/main/java/org/project/entity/Entity.java +++ b/Java-Knight/src/main/java/org/project/entity/Entity.java @@ -4,7 +4,9 @@ public interface Entity { void specialAbility(Entity target); - void defend(); + void defend(boolean value); + + boolean isDefending(); void heal(int health); @@ -14,6 +16,8 @@ public interface Entity { void stun(boolean value); - void dodge(boolean value); + String getName(); + + boolean isAlive(); } 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 e30afa8..299a568 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 @@ -16,22 +16,16 @@ public class Dragon extends Enemy{ @Override public void attack(Entity target) { + System.out.printf("\t%s attacks!\n", getName()); target.takeDamage(28); } @Override public void specialAbility(Entity target) { + System.out.printf("\t%s breathes fire!\n", getName()); target.takeDamage(weapon.getDamage()); } - @Override - public void heal(int health) { - hp += health; - if (hp > maxHP) { - hp = maxHP; - } - } - public int getMaxHP() { return maxHP; } @@ -41,4 +35,13 @@ public class Dragon extends Enemy{ return "Dragon"; } + @Override + public boolean isAlive() { + if(hp <= 0){ + System.out.printf("\t=============== Victory! ===============\n", getName()); + alive = false; + } + return alive; + } + } \ No newline at end of file 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 9776609..7bdb38d 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 @@ -6,28 +6,60 @@ import org.project.item.weapons.Weapon; public abstract class Enemy implements Entity { Weapon weapon; protected int hp; - private boolean defending = false; - protected boolean lifeStealing = false; + protected int maxHP; + protected boolean defending = false; private boolean stunned = false; - private boolean dodged = false; + protected boolean revived = false; + protected boolean alive = true; + protected boolean key = true; public Enemy(int hp, Weapon weapon) { this.hp = hp; + maxHP = hp; // TODO: fix this from superclasses this.weapon = weapon; } @Override public void takeDamage(int damage) { hp -= damage; + System.out.printf("\t%s took %d damage\n", getName(), damage); } public void attack(Entity target) { + System.out.printf("\t%s used Light Attack!\n", getName()); + if(target.isDefending()){ + System.out.printf("\t%s is defending. %s lost his attack.\n", target.getName(), getName()); + return; + } target.takeDamage(weapon.getDamage()); } @Override - public void defend() { - defending = true; + public void defend(boolean value) { + if(value) { + System.out.printf("\t%s used Defend, You cannot attack in your next turn!\n", getName()); + defending = true; + return; + } + defending = false; + } + + @Override + public void heal(int health) { + System.out.printf("\t%s used Heal!\n", getName()); + hp += health; + if (hp > maxHP) { + hp = maxHP; + } + } + + public void heal(){ + hp = maxHP; + alive = true; + } + + public void fillHP(){ + hp = maxHP; } @Override @@ -35,31 +67,55 @@ public abstract class Enemy implements Entity { stunned = value; } - @Override - public void dodge(boolean value) { - dodged = value; + public void dropKey(){ + key = false; } public int getHp() { return hp; } + public int getMaxHP() { + return maxHP; + } + public Weapon getWeapon() { return weapon; } + @Override public boolean isDefending() { return defending; } - public boolean isLifeStealing() { - return lifeStealing; - } - public boolean isStunned() { return stunned; } - public abstract String getName(); + public boolean isRevived() { + return revived; + } + + public boolean hasKey() { + return key; + } + + @Override + public boolean isAlive() { + if(hp <= 0){ + System.out.printf("\t=============== You defeated %s ===============\n\tGoing to the next Location...", getName()); + + alive = false; + } + return alive; + } + + public boolean getAlive(){ + if(hp <= 0){ + alive = false; + } + return alive; + } + } 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 2362728..e370503 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 @@ -17,15 +17,12 @@ public class Goblin extends Enemy{ @Override public void specialAbility(Entity target) { - target.takeDamage(criticalHit_damage); - } - - @Override - public void heal(int health) { - hp += health; - if (hp > maxHP) { - hp = maxHP; + if(target.isDefending()){ + System.out.printf("\t%s is defending. %s lost his attack.\n", target.getName(), getName()); + return; } + System.out.printf("\t%s used critical hit!\n", getName()); + target.takeDamage(criticalHit_damage); } public int getMaxHP() { 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 c28b4b9..2844300 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 @@ -16,15 +16,9 @@ public class Skeleton extends Enemy{ @Override public void specialAbility(Entity target) { - hp = maxHP/2; // revive - } - - @Override - public void heal(int health) { - hp += health; - if (hp > maxHP) { - hp = maxHP; - } + System.out.printf("\t%s revived itself!\n", getName()); + hp = maxHP/2; // revive (once per battle) + revived = true; } public int getMaxHP() { 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 bf48d3e..934c803 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 @@ -16,17 +16,9 @@ public class Vampire extends Enemy{ @Override public void specialAbility(Entity target) { - lifeStealing = true; - target.takeDamage((8/10)*(weapon.getDamage())); - hp += (int)((2/10)*(weapon.getDamage())); - } - - @Override - public void heal(int health) { - hp += health; - if (hp > maxHP) { - hp = maxHP; - } + System.out.printf("\t%s used life steal ability!\n", getName()); + target.takeDamage((int)((0.8)*(weapon.getDamage()))); + hp += (int)((0.2)*(weapon.getDamage())); } public int getMaxHP() { 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 0f646eb..695788b 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 @@ -7,26 +7,28 @@ import org.project.item.weapons.Weapon; public class Assassin extends Player { - protected String name; - Weapon weapon; private static final int maxHP = 110; private static final int maxMP = 110; public Assassin(String name){ Weapon AssassinWeapon = new DualDagger(); super(name, maxHP, maxMP, AssassinWeapon); + specialAbilityMP = 30; } @Override public void lightAttack(Entity target) { + super.lightAttack(target); + System.out.printf("\t%s used Light Attack! (%d Mana)\n", name, 0); target.takeDamage(18); } @Override public void specialAbility(Entity target) { + System.out.printf("\t%s used Special Ability! Enemy gets hit critically (%d Mana)\n", name, 30); target.takeDamage(52); // critical attack - this.mp -= 30; - dodge(true); + this.mp -= specialAbilityMP; + defending = true; // dodging (becomes invisible), technically does what Defend does. } } 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 abaa1f9..1bf266f 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 @@ -7,26 +7,31 @@ import org.project.item.weapons.Weapon; public class Knight extends Player { - protected String name; - Weapon weapon; private static final int maxHP = 130; private static final int maxMP = 70; public Knight(String name){ Weapon knightWeapon = new Sword(); super(name, maxHP, maxMP, knightWeapon); + specialAbilityMP = 25; } @Override public void lightAttack(Entity target) { + super.lightAttack(target); + System.out.printf("\t%s used Light Attack! (%d Mana)\n", name, 0); target.takeDamage(22); } @Override public void specialAbility(Entity target) { + System.out.printf("\t%s used Special Ability! Enemy misses its next turn. (%d Mana)\n", name, 25); target.takeDamage(30); - this.mp -= 25; + this.mp -= specialAbilityMP; target.stun(true); } + + + } 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 5c43722..b0111d7 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 @@ -1,51 +1,76 @@ package org.project.entity.players; import org.project.entity.Entity; +import org.project.entity.enemies.Enemy; import org.project.item.weapons.Weapon; public abstract class Player implements Entity { protected String name; Weapon weapon; protected int hp; - private int maxHP; + protected int maxHP; protected int mp; - private int maxMP; - private int xp; - private boolean defending = false; + protected int maxMP; + protected boolean defending = false; private boolean stunned = false; - private boolean dodged = false; + protected int keys; + protected boolean alive = true; + + protected final int defendMP = 20; + protected int specialAbilityMP; public Player(String name, int hp, int mp, Weapon weapon) { this.name = name; this.hp = hp; + maxHP = hp; this.mp = mp; + maxMP = mp; this.weapon = weapon; } + public void lightAttack(Entity target){ + if(target.isDefending()){ // check if enemy is defending or not + System.out.printf("\t%s is Defending. You missed your attack.\n", target.getName()); + return; + } + } + public void heavyAttack(Entity target){ // Uses weapons + if(target.isDefending()){ // check if enemy is defending or not + System.out.printf("\t%s is Defending. You missed your attack.\n", target.getName()); + return; + } + System.out.printf("\t%s used Heavy Attack! (%d Mana)\n", name, weapon.getManaCost()); target.takeDamage(weapon.getDamage()); mp -= weapon.getManaCost(); } - public abstract void lightAttack(Entity target); - @Override - public void defend() { - defending = true; + public void defend(boolean value) { + if(value){ + System.out.printf("\t%s used Defend, Enemy cannot attack in his next turn! (%d Mana)\n", name, 20); + mp -= 20; + defending = true; + return; + } + defending = false; } @Override public void takeDamage(int damage) { hp -= damage; + System.out.printf("\t%s took %d damage\n", name, damage); } @Override public void heal(int health) { + System.out.printf("\t%s used Heal! (%d Mana)\n", name, 20); hp += health; if (hp > maxHP) { hp = maxHP; } + mp -= 20; } @Override @@ -53,16 +78,22 @@ public abstract class Player implements Entity { stunned = value; } - @Override - public void dodge(boolean value) { - dodged = value; + + public void fillMana() { + mp = maxMP; + hp = maxHP; } - public void fillMana(int mana) { - mp += mana; - if (mp > maxMP) { - mp = maxMP; - } + public void addKey(Enemy target){ + keys++; + target.dropKey(); + System.out.printf("\t%s gained %s's key! gained keys: %d\n\n", getName(), target.getName(), keys); + } + + public void addXP(int xp){ + System.out.printf("\t%d XP added.\n", xp); + maxMP += xp; + maxHP += xp; } @@ -91,11 +122,29 @@ public abstract class Player implements Entity { return weapon; } + @Override public boolean isDefending() { return defending; } - public boolean isDodged() { - return dodged; + public int getKeys() { + return keys; + } + + public int getDefendMP() { + return defendMP; + } + + public int getSpecialAbilityMP() { + return specialAbilityMP; + } + + @Override + public boolean isAlive() { + if(hp <= 0){ + System.out.println("\t=============== Game Over ==============="); + alive = false; + } + return alive; } } 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 32c210a..7a7fe7b 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 @@ -7,26 +7,28 @@ import org.project.item.weapons.Weapon; public class Wizard extends Player { - protected String name; - Weapon weapon; private static final int maxHP = 150; private static final int maxMP = 85; public Wizard(String name){ Weapon WizardWeapon = new MagicStaff(); super(name, maxHP, maxMP, WizardWeapon); + specialAbilityMP = 28; } @Override public void lightAttack(Entity target) { + super.lightAttack(target); + System.out.printf("\t%s used Light Attack! (%d Mana)\n", name, 0); target.takeDamage(16); } @Override public void specialAbility(Entity target) { - target.takeDamage(32); // cast spell - this.mp -= 28; + System.out.printf("\t%s used Special Ability! Casting spell. (%d Mana)\n", name, 28); + target.takeDamage(32); // casts spell + this.mp -= specialAbilityMP; heal(15); } } 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 deleted file mode 100644 index 7ca8774..0000000 --- a/Java-Knight/src/main/java/org/project/item/armors/Armor.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.project.item.armors; - -// TODO: UPDATE IMPLEMENTATION -public abstract class Armor { - private int defense; - private int maxDefense; - private int durability; - private int maxDurability; - - private boolean isBroke; - - public Armor(int defense, int durability) { - this.defense = defense; - this.durability = durability; - } - - public void checkBreak() { - if (durability <= 0) { - isBroke = true; - defense = 0; - } - } - - // TODO: (BONUS) UPDATE THE REPAIR METHOD - public void repair() { - isBroke = false; - defense = maxDefense; - durability = maxDurability; - } - - public int getDefense() { - return defense; - } - - public int getDurability() { - return durability; - } - - public boolean isBroke() { - return isBroke; - } -} 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 deleted file mode 100644 index eb59a46..0000000 --- a/Java-Knight/src/main/java/org/project/item/armors/KnightArmor.java +++ /dev/null @@ -1,6 +0,0 @@ -package org.project.item.armors; - -// TODO: UPDATE IMPLEMENTATION -public class KnightArmor { - // TODO: DESIGN ARMOR'S ATTRIBUTES IMPLEMENT THE CONSTRUCTOR -} \ No newline at end of file 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 deleted file mode 100644 index 028e13d..0000000 --- a/Java-Knight/src/main/java/org/project/item/consumables/Consumable.java +++ /dev/null @@ -1,8 +0,0 @@ -package org.project.item.consumables; - -// TODO: UPDATE IMPLEMENTATION -public abstract class Consumable { - /* - TODO: ADD OTHER REQUIRED AND BONUS METHODS - */ -} 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 deleted file mode 100644 index e192ce0..0000000 --- a/Java-Knight/src/main/java/org/project/item/consumables/Flask.java +++ /dev/null @@ -1,16 +0,0 @@ -//package org.project.item.consumables; -// -//import org.project.entity.Entity; -// -//// TODO: UPDATE IMPLEMENTATION -//public class Flask { -// /* -// THIS IS AN EXAMPLE OF A CONSUMABLE DESIGN. -// */ -// -// // TODO: UPDATE USE METHOD -// @Override -// public void use(Entity target) { -// target.heal(target.getMaxHP() / 10); -// } -//} diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Bite.java b/Java-Knight/src/main/java/org/project/item/weapons/Bite.java index 51359ef..704fff7 100644 --- a/Java-Knight/src/main/java/org/project/item/weapons/Bite.java +++ b/Java-Knight/src/main/java/org/project/item/weapons/Bite.java @@ -10,4 +10,8 @@ public class Bite extends Weapon { super(damage, 0); } + @Override + public String getName() { + return "Bite"; + } } diff --git a/Java-Knight/src/main/java/org/project/item/weapons/BoneClub.java b/Java-Knight/src/main/java/org/project/item/weapons/BoneClub.java index 5878fb9..66fcda9 100644 --- a/Java-Knight/src/main/java/org/project/item/weapons/BoneClub.java +++ b/Java-Knight/src/main/java/org/project/item/weapons/BoneClub.java @@ -10,4 +10,8 @@ public class BoneClub extends Weapon { super(damage, 0); } + @Override + public String getName() { + return "Bone Club"; + } } 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 c091c09..e282618 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 @@ -10,4 +10,8 @@ public class Dagger extends Weapon { super(damage, 0); } + @Override + public String getName() { + return "Daggers"; + } } diff --git a/Java-Knight/src/main/java/org/project/item/weapons/DualDagger.java b/Java-Knight/src/main/java/org/project/item/weapons/DualDagger.java index 486e1cd..3cf2972 100644 --- a/Java-Knight/src/main/java/org/project/item/weapons/DualDagger.java +++ b/Java-Knight/src/main/java/org/project/item/weapons/DualDagger.java @@ -11,4 +11,8 @@ public class DualDagger extends Weapon { super(damage, manaCost); } + @Override + public String getName() { + return "Dual Daggers"; + } } diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Flame.java b/Java-Knight/src/main/java/org/project/item/weapons/Flame.java index 209214a..76b40ab 100644 --- a/Java-Knight/src/main/java/org/project/item/weapons/Flame.java +++ b/Java-Knight/src/main/java/org/project/item/weapons/Flame.java @@ -10,4 +10,8 @@ public class Flame extends Weapon { super(damage, 0); } + @Override + public String getName() { + return "Flame"; + } } diff --git a/Java-Knight/src/main/java/org/project/item/weapons/MagicStaff.java b/Java-Knight/src/main/java/org/project/item/weapons/MagicStaff.java index f511165..aed81eb 100644 --- a/Java-Knight/src/main/java/org/project/item/weapons/MagicStaff.java +++ b/Java-Knight/src/main/java/org/project/item/weapons/MagicStaff.java @@ -11,4 +11,8 @@ public class MagicStaff extends Weapon { super(damage, manaCost); } + @Override + public String getName() { + return "Magic Staff"; + } } 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 7c84944..7ef8208 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 @@ -11,4 +11,8 @@ public class Sword extends Weapon { super(damage, manaCost); } + @Override + public String getName() { + return "Sword"; + } } 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 8a0fb43..939c77c 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 @@ -26,5 +26,6 @@ public abstract class Weapon implements Item { return manaCost; } + public abstract String getName(); } diff --git a/Java-Knight/target/classes/org/project/Main.class b/Java-Knight/target/classes/org/project/Main.class index bbf3fd427c3cd3a4cfc77f74e16eca6770eb4f71..41decdf3f966c9e79d48effc29f3e527c4d0cf79 100644 GIT binary patch literal 7901 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 HC5Zel)RYP_ delta 2499 zcmZ8iYj7J^75=WYt6imTafCF^QU#geG;|I5COSItqP6v1MD1ExD4M zCh0?c(4;ib(kv7LEj3MwOQ9rATRXLhp+H-xTONg(GR!bMhCj?OX6V4sGJyH+%7LaD zY4@CS&pr3t^L^*&H=8DFjo1G(I}czRemP~d3A<8VVNVq3MO#zR!DPZfDcl;?2w3)% zQo@xykA@0?GJC0@tU^bXKvC~dJUtdm#S??pKr$6eXAD@VF`=T?J|i}YI{SBGb*Mog zzb_RZO(zppUo@Q=iRlOl7}4}lEMbksqKCXN&}5<+>+BUSOKA}Z*&AFPjj%zh+HF?SF zY_GdRY`1s2{oxL{b?gxE%l+FDnOMp?njBAAiRfr7Y#C_7P7}MZUO*k=?RYH>pD?i- zd+aCNme_00yPNmkC{Qo=U)5yoNW=$+GE!-2vbLnt(R4bVkZNm_)f+z+P4&wN`%FZz zpBEpBrgyzB&HXxVT8?EOSJsMKY)dV--%#}Yn{hxEbG?p(0+se3mCAsQegRMJKm!99 z)G%Zs&de-zo!*8+CPpx7?^CZA$wz;`($41T<(D%ukiY>QDFOYmNkhgt?cb_yq~+r6 z0@Vgjs;N23b1o;}fjeY@?-Wq#I&*cs+e8-k*v+1oJUZ?Zgf6J9tJm=0;^@oh;50_Dkd=>Ht`5PXFqLh z(@!y|v-lUoU!~*oq@h$h6NjTC@qPv$8_!f&ds9cP=wLLSXtGb_zo&Wn9VXj%7o=20 z(#&2g*rnr14bNyeXGaQ?D>cju6b?rZN1I2YiNWTcj3l%Dr@~gdwkR0JYpjMmh!|hz z+(bx?AYVH~_n0-3?2BgN$wYw%KQ{0>7BsvevwqWltmrKler69B*QM@4~yo?}zh!9@GI>OQF6zpLZEDyfQy?_tj!vwy@;+5bcp28UxyAh7(GsL5d z?EeOym2HhQzDY@Eq67FAB`?#B@W^L5)=pq6zKwG{>=ZWOJf?`>1s>iGWr?Od4bN-P zG?f4Eo7M1w2J3y_7YY8qP$&KgpNqjc%a#EzWFi_MR?R_+T!4251zmIKAnctxB?i|| zql*x9?-F6f-LCpo&l!0As`6A0qMl`_Zpb0kdm1Lai#N5alS^;Q{h!P&blXvXb@t{6 zIdW@Qkqc4v5?m2?ai2q~X~Y<6xOWnJ=a7(YV^_M}_5ruXIi#iAc+Tzca)}|vz~ybA)thU7jakEBa^t7+5MkADKZ88r|@At@w}QyZX{nep$gZamb0sc z;Dxb;eYX{ztl=JXU_Z9wAa>v$?8HMH_-D~gcy|+|J!DA_eu5kDE8K{8(2MNfiRrtz zRk(0K;VJe{~3{GM*pb zAy+&OFDl?&;v)ZRUvzlUq2ZE-0YSR?))bW0*49c2aPlrwK;b@<7hjYWxu0E1SV9tz zh|(~P2d439HY=rv9E7eU!DhMVWR3*O&a?O|n00GFnFjfgC*KYq7HXxlB!o0|_f9U& zl1LLAROkJwI)Ph)^GZKwgxwL?m_63ALwY|-?}lKgF`y7LvcoTp_7%p4^UOWh{=;lh zu!Cwa$c7%`pKzQI4ilCULNJO0NYXln+mONS7{^gQvp9kWDV@YIf_De2cqhTj-h~%v zm}QY(!M%7B_u*~ak6+^f`~k=DXKs;$^d=VaEDG^mZu8OB&3SN+6-lyaL}`XGGH_=WyQHS2=A~rjr86=xYiLGIY*5i) zPfsoJOUzAWWDwEN^vOyrOVrOv%uCk~E-3=4vu0#q&n$M#$t;_=L7kCf;tg3{9tH*$ gMh0F62+ha90p{~F2!Lrp1}>n*j0{3Rl8HeW0HUuQ!vFvP delta 78 zcmcc2G>M7p)W2Q(7#J8_83ZSC6|pdDXogLks=~vf5v3W%$iSMCpOQZDp*kbmWKKp| bSuO?!7Dfgh23|1D2cj7m8Tf%D6N3N%^ok9o diff --git a/Java-Knight/target/classes/org/project/entity/enemies/Dragon.class b/Java-Knight/target/classes/org/project/entity/enemies/Dragon.class index 78f9e30c3632cdb4a42038b929299d9398ae5382..77ee8be3b1fdb0fc6d23c692297dc97b2a50171c 100644 GIT binary patch literal 1690 zcmah}?Q+vb6g_JjBr8f{oTL!)Wjl3iI}r7Qe&M8$k_6m3A*~@0nCZ;gEY5;$d87?( z9;R>5A1y6mXa^pEXXvwZdRJ0YIe4gl$lBH3d(OG{+S6E<3**JyM45wFQPpU5&lBM!)8Ya>PEE^-R8S?QoqNk)f zbVN^drSP3~kGI_(!>KO+@x~4Vt63PsxPgpLe1;+Smf#Iaa>!6D)#~w615ED(jH@B3 z2^*7|QDVQJ#ydD`;GB(VoM*^9;!n8K;k~xgIP^&>DRB=J!&E)^B3)<4lRec?p5Wc8 ziCKoxbkWaorFiSHpSKLm52U%-)Mc}%6geAt6c~)QP}@{DhRISnOdA3!%G|D6co#(j z@7Z`CC5DM1xK!u9X7P|=rSxWo`?0MMz8c}2pg)2NmJD35aS_W5)A8y>4cZ9$#9%4@ zSgi9dZxioSsaD=K@d2^Z+M84hwJ-eKL+OdUrQ80IjgN7Oc!o})=KpVNEPRU3418|m z3tVPch?5!8N`^Gm@n1${x0;C+0t}sGf;?DBuMYllyRxNR?=YVm++PhiU$wD@ugHVE zBcG5;c8`=^b05&_cwP3y_CdEPyj#54p`C2qZSl@7_oQA&n<=#~eTKyWtwWt&Ww1l0 zp)rYg=pdT5(y;Kb59D7uskled8D`#ckYUX4ix_e5uQFZ_Y_mvnbb?n?IkNmSZEw!@y=3a_65ob{0B8gq<{&!2PQF# zsTj;$1VgFt4e9~R)-lZY5llhDI45B$zvIIrd@>Yknvl*@(Pm;;g=4J3G1fLNN0OEU zY#>E-`kB}!po^r-3d{#t?BG2WWuYlUA&R{i#U``WUrvNB#zK?Fp*OJ;g+7QNilip{ z6K1v2)e}l9$!EAi->+z1$$(ebyb?9POd2c5;X(|k7y*47oM$=e;&%a#cE~~?gM4!a UfBgnScZtQcrfJony##Lk18Ol}Bme*a delta 639 zcmZvZNlU{}6ot=AN{86S5~mKawOXxho#$aCs0dOJbR)PhN>Ok`x^UOuAaCcwl}i^Y zD(J!=;KKjlA5qUsYAqsxca!_>`R?K5GIDDeZ=Wx(0G2R+VSGfJ(2kA(VqwIQ5QxhK zy+t-@2_u9c>@Yf!k}KM<*@a91-C^_~E0Dg3#^n`<`UL!oXU^Wqu?*_(dEb87Ib=(f z%DzBkz2fX1l$_HIXXmgi5Zo(QO3wMpn%oi@`K7OloLu$gtNrw2!N)VgttO%{(1B*; z*=dKyGll|+tU=xlAO*o^5JNn3>@ILdO@)e4`x$K-?)afWVGZ}9g~HYbT&RYl1jDF~ zxV+IiZ@I=Zi-iXypOF3+8l&5I1JtZTO+r297!oy)W$3OIyRi8HE4lp$i*V~6f$J)a z0xLVpx9WQVQGsR z6`JI(BN~oMOZ%p|BcG3H7{YOZwv8=<=cQ>x!wG4MR*jbn52R&O!%3WC9^aeBmSYQy z7MfXGu361`uj<*yYD+GOaZJQ2Z~bMsdGOWI1QHOa6y&Ja^&Mgk@ez;Gw{UAXAU+l)mgV^fkk_9oJ{0TeiOA zG-|qSzI1iBQL{%=2|N-w6!#M2c9fvxh!gP1T z^nw(eHN&+WduC=vU_71wsLUrBIdaP>QG|yImTlf|R9DT~BV)BfORt2hEEzRRKKsUq z%X$l(JOCYb?y0w!r+VIa{Sg>RhxvKE&q*>d*Ql`@0z?0^QJ}LZg>}!^@>#_^T`-yS ziiC-(lflOgR+y-AaW{CgZdED^Y->bL9-g35&DpwZa!5rPb%8S^!S$XT9G)z^aUgJt zNAx2)V!}zQUi2oKx_{_RG8x~ft0-}+ep8MzFOGkkDpDnD=50$BJ*9@`j6A84QBI3C z2&yr`QOyy?YeddFwQ|U*m1CG|o1CcXnNw7)oSbUqyyV(ToG2di`h-tE%9+n~I`cb3 zrhON2dFhmw?o4DCeeyDp8QR65ybNcicA>waLmQTP%^<~VH_4=sD~!sQa~=iSZVQlv;-W~L$-IUB4tL(;UK=E(c2%fjga%8}j}cx^ za186nu{;Y*S{BBmmk;RW@f-$ettteO4k^Mg-eR)#OOhF9%+E;Ylx@qhR=Ix=#l zX`j#lbqIdk`Y}r)=Sb;1pDr|!nGMLyqO98G*W;`r6Z7kFL+J+S+KZu-+p334JUo}F z&72A#GoyzeKwyIjc}L=+kCxm++Xs@rkbr9hy50nm3_z@)Mc24f?v2S))7gq}i4DWUwGr4UYRlYZIlA^ z>Jbf6sf0QYw>mF|I#*$bMAm<8iCheI<}ZT~=Xh)6C!x+xsB>ql^RrOrtx)IgR_EuT z&fkSP541X$LY-@Yb4j%w7?-X38OP=M`l|JOQ3ri|-zUMn`O?c{4Ooa%H$$j!y4X#D t#{IVXr$=Xf>p{eVFRvaiVnV8{1>GB{HKNxkltvSB&p~9VB3E^}@gFRoHIx7V literal 1717 zcmah}TTc@~7(G*Zk#;FXv~p4IXj_p*#Vd#xD3OHV0|p~+3mwZsyCv;{@xg!OgC?TU z2Y-M+%6Pun0;O&wP3GH~`Of)nXZrik&tCwFC?*j>M*>j`F~k)zyUw9wR~)ZwzuMZ> z+rC14-t}C6L7^j;-{`~zbS99rkby~YOZuJm zO0HK{P@95JTj&7E;#! zl2dic+O%RNg-Kjb;D&`9@(TT}1kF|yO-B@xzO$!~vC-U0enVk0w{mWd;ul@4l^C&m z)%En+L3K;lUpreBo?Kk5Z9A0>r|!zWc^LI~+=jx~8S1dX%t=d|)x;g&ceeKwhH_!J zpo%$3Chj|Rwn1U=KaRp|X3pegk~FzZLB|fA$^kQvnOV}3>Lq6=oeid?vror+$s4W@#0L&{$Q`0A3#8tQD|dP1GT46EnU!)@GY z5-!t6Q0be6uNe4-p&yutpq;ZHT^MNLOrLP3aTl|O^B(&g^lO%kQb4>AWv|+~hS=F* z!zEp&SCdQOJ{~j~7MfYbrL&oKhH)}Xv}AM4AY2d4>=Yh_bM>}!<;aykhwCwi5>#f> zO3pDhEBlEb5y-5iaPUj!859*eDQXV$A>e_}ZQz+u@DnVAfD`SJXG6hHL&06`;D@2$ YXQALsJ9z$Ia8%(rUa&lcMN{O`UoHI>6#xJL diff --git a/Java-Knight/target/classes/org/project/entity/enemies/Goblin.class b/Java-Knight/target/classes/org/project/entity/enemies/Goblin.class index 0045ffb15079a8251a1c3ca322a4535a4f9146a8..8d05f2cf8ab46382e8d9669059e58ddae828844e 100644 GIT binary patch delta 759 zcmZ`%%Wl(95Itijb>etY3W2t$!6`I}lQ!o4N_Z4POKA~EkwAr&N!;Kz4;0@bvC1c~ z@B;AX3YLL93PDpz z_jJTy=_tb1aN58boFyFohcsdAg*383DCY*=2CfC8jndNt&_JhT{bz#ngky4oZQre% zcCG6PujVw_x=8EN+(iSIaG9VBXUnZPEvMlUBDodoQ4CjuRr(&>SJJ_2WjPTAA&N0R zOTjnArgCsdJ>I*<`#%bW&lIlX2FDoRZ(@<_2)A%s)-(EsJ7v{UVGompw@B|GHE}BX z1(|h~u^geg9?9=wzPgKr$9ayowak#d}G_d>?ipH#$)8~^|S delta 544 zcmYjO%SyvQ6g`u~v`wUz(E93AYqjtAT)7f;Q4lwR;La>Us9T zML)pL@dLy&Nsuxy=gzrv&dJtlBUC@a zg2sA<5vxcd&6S;r%7jrs26fCcq2Vhly%SnN+l(Udp_Cr5` zZS0UKkZTZSPqlKdgjs26MymdgaX0t{sL9z%C7>sc-Vl+m68@`#1uSoiaa+LP|^d5iC@otwIq5)S@OB6HWL_x-iOW#GxrEVA`?KRc}Gk z+i;;IurSdJ@EVLuZ@`T!<2Ta@#e~h7Ip6u-=Y79(ewaTk`}^N7-+(7PI<|kcECxv% z3^@!lqUhgun{Kh@9#)Fw_YL1WP{fYj`ij(gcv3woZr7`ae%Y^k?m@}qnj&dUH8ORt zS#5f+GgZIg)%GTAgYo}pTd(%LUEjte<1oRb!l-!uW;>^iv}|rLWiah9LryVpiIbw| zP2jtySj}~!bVB-4t(0~ylsZnO{H1{{2~cpj$t?*GWi}M*rODj!?>~K}gxYZ5J>8bM zbNOfOHSKY497UWSS&QutTD~Je&(fyRH5?#GE6ErsCdI4k zn2j8T%3bb-j`t}=j&tE2bb)_7M+Ori&mK^m@L!K8DtMttI~!?ZiP=w~bS8+?(T-ox X#?EJ6jqYk*Pp7)QmT(?~fQSD8LJVy2 delta 510 zcmYjNJ5Iwu6r9aEiDQ0|0Vg3Q5C{+(LdgL@NTi4q34}z40Sil{ph!XI8z3QHfs%r6 zL%{(!1ES;%REXKN1!;EneP-sp_gVTdt@oeTHvqfn+*n`Igp*9=zPF4h32BCm?9u9lK)m~pfw!Ll=iDu%+ov{K0@=$LjIg_5KCfBkO z*XZLQ$G3_()QKj_a52w5fd&>-KeOAAy36t(QOplsU_UUMBMY!}Wf~>S;9t+m^i+Kj zO|7?t zsPnsuwajyqC|EFPa!2I!F+rUKTvUy&xNOMu1lsVJQ3vP{RZZHn_k?uwl-e4h%8Y8l ePjAiMh9=Ue+q8S=r|N1v(|pr#}KnXp`q{pXdF4pHH8+8_KSt{Mg<82H*~+*OlMR zP9!9Bspv)zLv+!6VP>mlt&%OTH5_Y+fv>MR4Dpg*vFq8H6}#q?ofXSmGGv@$=#30E z^woy-RIl0#mQE_Os+;q6)ppjBiiE!ZY#+`qT2CAWGISM5oOZXlWK+Qa1|^(TF@zLD z#}U04#AUDZ0>h0|025$3l&u(#4y1w>M*2u(G5=@7yWU3#;hc&Qj4~DCOUqoY*BFwe z^=Nlu)_*e;jN!b53o0&RoS~me?lacYei>IJTvc%m*WI^lOcnFr15X(_cZdCq$Q8?( zHeXH7xWBk!dm9+qAX3b`DL&mS(C{?~6ps|7j%9G zv=tInL`jiwiIfy6Ql`r@q{>TJ`OkV|qm^dP&YbzbnK@nK!Z3byzyAQRhIi-2pIIH_ zCLSX#V7879z3sN=wvJ930^;KkbYxBBVEb{cmds-!hDj4sC+b1}yWjEz^oG~2yJzcLeoIXG zm-2l)3V}yZcFzARE1h}vY9T_KU_VKuV6fj|EHE+-jW&%cYVD(dn6;GPqFs;G)a0ja&+PjDKg;zBUpq&wRGs*cA+iE=0)(s4OSTkz~{6|C2iG$L^zSyo5=_D@G+mj>p$1 zgv=_vU?M{K>;4#Oli;JN&Q&S%p`5@nRv1xRTA)`sX;nVc^){eNH^8|EwX(nKH@!FF a<$O>HL{q!Bh^YmNV5%N@h<|Sb$<=>8noAr2 diff --git a/Java-Knight/target/classes/org/project/entity/players/Assassin.class b/Java-Knight/target/classes/org/project/entity/players/Assassin.class index 2a61d76f6f8c4dfc36e0eb5c5331e33f77101db3..e8c6e9f9b1f80cb53a586bdaf08140ed4bb2110c 100644 GIT binary patch literal 1536 zcmZvcZF3Sy6opR%$q+J02pUX$!9mRmL>+g1iAq+DNnF__CRJEi(N7&{N$W6BGmT35 ztF(-9cWd_t?2p>=_6!mx=F2cWGkwm}=ibYI|Nr$bfDLRLh%sF3crCl@bzX~xvZWGj z`<>w3j_cd&J?^aYR!ev(FeFTjVVq%nMY>YmXNVVybpy#G3c^)V_3f_1`@-|>Ro~~n zFWnSUm^5H&ktv4!sOga{+rd_bJB8|N{+8PgcUyK%dD3l_E0yZ#&Is=F0J~hQPr$&8 zi8N*z(tcMoBzIPKr9)hs+YGFtVNRGhi8+QzN4ECVs#3i1h9Oso=nu#?f-?omr!a3| z!Nh5tA@LEuzE9CnD4m{Sm4 zcX=^o;Cw`SYgd;>A1ZI+0xnW1T;3K8nIH2>VG%zWxNM?;BE#$8HGn@!CqDP@F=<0)!$jUKQdO4yR(w7HDQJL~2e#S2b zZkV`a2I9j8B%wNCY}iF>+LV(qS8u9)~0)ZPN;wf7Yt)<{{9KI&(s>thT^WO z>m1`WNpAR3_txAoX%y=Oyw+(F_e@o~;%TqFE4*iX*9mIaA*MR_q+SmmCe)tv85WQ0 z#iN5&W|;myWZ?u*k3}{fHzZU*#XZV~;Y{S?Na|WUIzLp0TBqkV#AB)Hr@lL1(@lar z#h0Q$Vl*BPFiU?L4};Yztsh0!ae6m~HM*|T7Y(}CK`#6awsU~^W@#zyrrj$Cm?))l z`k^aLoD zmJX2lgly*Q*gwea#7m!H)pio`ueenEg3|M)bmmW7kKri591&;9^c2n6d;pLQ1&07d z{DCUjF>DTPKMZV_wd3uGV>)+ec{8vq?R>@^;+byl({ExQQZ3pT7TKG-nH*_L3Fj0rvnLz zI_BsHG%(LtLlYGUEbwk&k@?cU+-5I>WyTdM65ef|!7D^Ef_)gps;~N;5u67DSY<32 zi9!xV{=&x^YfV!d1Zbhnlms(}peT=slUQ_!(fRe+V{TF9#L9n0!NMQiHH|VKRt&j3 z5vE`VU91x$u#w^tx{q-uVXSrxFG_|esYdS+rAR)Z`p5UVB5=4I*A#F`RSq})!Ney_ MeZtgdlU)m2KV$R diff --git a/Java-Knight/target/classes/org/project/entity/players/Knight.class b/Java-Knight/target/classes/org/project/entity/players/Knight.class index 3bd04b40e389a69deeac0ccfbb98e3f50e8c6af6..b38e5eb5995aaaa430f4cc7b45df2baa36b33960 100644 GIT binary patch literal 1531 zcmaJ>U31e$6g_J@k>iNONr=G^f((TEgGT+}BdODt5E5{)i92S@1fDkb)`(b=M_L1U z;Dvughcu;~_6PJwF}*8!j0728cD%dVbIv{Y9{=~@uYUn-<5vv{hGp05nFG&#E;`b* zq_EAGf)8BBH(M`VubTlwO2-5y874O@$C5uWB#WiChBQMV`dB#9l85G?&ku#?n-3hT z_e^Gx!L$ZlL7e*XgJ$rMVXaty&R=k|&z+vxlAh)Cs`5p--NXCGJo%EQZQ0*KCq(N#X^!t7%-I%BNO*W9W;nQCGx9$XqarD_x_(9bU?4 zxEO=p-B&$PMHO^h!ewfN!)?JZ|G7UItl+AKuXGeqVwn3Vu;xh76CQ*1g7=4F_cw-I zu~v#ejJ~L5P{B0~U+Y+f$*>S$#7m(W7^uPsWaES`J&mA->Z>E7I81dK-{LzB-|M)J z8w~kqZ)4swWF$Wjce%}bRC$V&x6`=AaC>ZLD{Qne>U6=_c7%Os*p}}L->{@_IO3Hw zSgw&SXCGoR$%MlNU_P+2Q@%?_#NVmiLZSGlWKRQgwXO_=!`J{o2 zXRFGf9|S22BS1qIdvsDtsDqMwJwd~IKK60Uc0!(s2Z$Qca)(|=>{v?qbeQf{H6tjH zl^L=iLFxDzbM%jKJJ@Z~{!V1Sg(Tfg;4ZD(^hK9`E9=hv4YqfTWTRY}!<+2RwPQ?` zv-u;;ybW-6Xq`uj))}NRiv@~!o^bEci4h{;K5DchER__(Pt%KE@PITimG=>&g-JRA zO6AHi=6^?Sere(#Ebk@D?_jj{QprDYrS%8Ok1N^Sdwi3?rves9a*jyPP|nT<0&*eX zSU?GNG>DGj;h6UIh<05u-i$G3^B*af1IqH=JFJnOneGwRDyjFVMrGtk0B`|ISjH7x Zq^UKqMjcRIgi_YWQr5>(cIh^O=Kt8RXm$Vq delta 473 zcmYjNO-lk%6g}_F)HpiYQ>QT)Nw#h?+mt zPP;mE{DVU=->j23f^ul)hh>_a=Mcu72}{c0cP zOQ5jMm%BT=hA{a!FWWnPok``6e{)~2sC0VAYoBeJUhOz zv`yNiZIY&G(~sZ!V}GbULYkh_{sH}?divaVhS}M5PNT>9c=x^cKKHrLz3=#+|Nise z04DIK6q?YSKukv*EgI5m=C+wHna)c7?&6xYj5nXWnvL+ug};mdqWiQq51RyN1@HwQM;>+gZ_|JrD=&I-VEnMAhAL9IGg6 z2Xq{iwYXWbw=G%e&~X?qXh?eYQ`0n`lpkKy(TSrPVvf0CX*hVhhPmKY7-v*=9n*1K z%$rs><@JOPLtf(>=Hpw_vT{<#DYaokZRpX_yT4&dZRpd{j~oej%Q8314zs--PSosD?Evb147ZMoK@iH#fm7=gy zWiVEtyv2eX_7b+s`DteBGH1)&7)|1mhFoh;)v&8Z;CaxPD{mPacC~61jh*sV#V}ph zTv{JY3DglCqqxFCtXS?HMP^4||Fd+aa1E~{@T!h6yr$uh;=4XPS=tmZ%NnlqJ?r6N zXvx#ns2``^4YRmTo+XPdL43nI3@Rz|pPZkQ{UF#D#C8Qj;9a?N$iTc%*?WhRL^4P!xuUZu_$6OOg9V=S4DQ+E9t z8Mb4rvY3wb*frd(iW6oaiHEF&xN*znb%V?lRq#|2-=**Z|75TfwiD$q=y)VjkF8rf z)f5)7lt593B?G_+Q|U|AA~xHq<`qWLQmm9W->`O)U`O{#q!rU<8yh{<(^Z2$v-=C; ze}vdlELajF5^5xgbq(#U1Ux%!n8l)1983wQ4IPevN>?|nCEF~GE!riHld0(>HbvN1 z>;D)xsaNCfwpB6ef4C}Yt>~zNg-$3@me{+8BUITxqv5&nvQu?U$DNT{H*+X+(xrRQ&xkvm%(i&o{HxmZ$Ts=Q>DX3UB$@BU)UWq~!Es&gGVM@OmQ zlD)F(dd;Art1rsPn=Ye*q{THW)TD;Y|Jg_a3NjC-%uOFs+p6^3ev}q(_=WDMXTf8S#mvg>*OH;KaIX$F9y*W+BIp@Mkj~E(cT;?L7vqCaIyjB%Yhxk@#kSTZD z)iF7|*!2ZY+9m6TEroCM4#GhhFtIF^-UN*kLPt!FF$xZH%lIas#_Kk~_AGj9j{M$9IvHOLwl5n@&Gb?ss^7NrgSaK<#KHsCFE{ zA^z>ei|FF@6w~WN24``MdynH1SKp@HkOu(Y#}D{MD2fP8JqZO(>PeE9e!Q&ci4pz} z@gqNpHMFQ**@3Sypy5j#{X5Pd9FF}9O>@m$yR4zGhpYFW2-s!_*n@-#WC`>nP7s=b z9tFk=mkq#V@ebZ)nD>;WX7KUHLENW)+=Xw7D{#i+3Qq1Rjuhr%yq(^|#6R$cLN?&N zf9q@9YeH`BDJk|g6v=iCbr%xE(MQz%M4cn*GdzUP;tmEe&yNhD)5~BX$Y9~w4Bp32 zeC9s(GZ@Z%iF1N-whm>wV;`Wxlg&VU8&?6Qh0?WeKi!gHwfH| zpOGehK;nZS-WPtn35oKZx+wK5WHOJW7YK^~y8eQ;oZMwe%H~m2Xy=V%Tt#;b=6Y!!p?JOE^sP6VvCufu>C>Ue*D^34!@NB#PbRU zAQ>I`8`)`66Gn&zmP4$?1J*ua^}RBLjWd63FkXu^{xs6KtI^nrH2y5oINNAki8TIA zq;Yqn@ph!~=lE?z&Zip*dppvY|9^@wPBcb-C(`(fNZ9j@#_vZO|1K~-O9WEV=5$A+ z=?5Xx=Ag>I4@|>VE;Sl|6f&+!g!9k}n)jr`V d@hK1B&nV~5L(V&WWbdi{S_l3AK`HK!{{t+=6cGRb literal 2412 zcmah}TUQ%Z6#h;!Ngx?61uVrtD!nFyGNQEBrqT2q;E!_o?K2aI=`4AebLQ+h-?#Vv_TKaNKY#uO;2~b55kou$!$bl}h2dAu zp<`E_dc|JfedX@?3duWO-SZa|;`zc>Kl;$0LfS+IrowciRk53`hTOE>y6^c%cC+dn zxvjRnp?8J;vis7lm%VyLLG1{^pot+tr`rBOz3!I9cFx3z*plT&xe}PhOniXz3P# zKd@8OpBwlsu&SInOOERCC_*`;J)SNfV8)CU(;%3LPx5Uk_th$u&dj^8MY$InWo9w7;?>=?gW9g!dgkm_bpaZCPIb#^d2$YohQIH%6)yjW zI>Q(mr4r?-KH|eCX9tOQu zd6v!JR~Xn7|Eo^3lY+D%^Um*x)5M`uJz%y8-G~Z(FTHA2D!>~xy`>n_nr_LleBphW z3FU=l7NJkqj%5l=tEVQZleA3GZj_Hi-7ON;lT6fWFP+X3+iZtEXwwtJM%ru~wD#Ob zo)jw+jNh!xj4{nNi9xX^(=cSHIQx*H;A+VDaF0n}=`&|XpV?J<|03Ku@%qf!)jQ{v z`#JI^aEt4gJpDwT1owjV2b2{*MoN|eS%$5dV~kpp#~8P!j*+z{jAP_}(^R*)UPC|E zQ3f=~w;`^>JdNQ31D;~YmoSbzPetCE51il*zT%1QbW%#cNjfq8CW*xLo1|(m#0A_9 z1Kr^lxs{u--XixqF1Xc;U~4E`Yb&+iacIuZngKS*K7%xCUrWGvZ3A8|;5MkpbOPGgpG+Z180%UABi zR}PP~ugAO{hnk|(Wt74!7MQPOoV2p+i{1ooP=}jcq{$P~B%ZL{B!Q>VT*JLwx5-sJ zgKH&PjBJ)-NFT^EABr&__CvQA3l!rn#kfZ?9(4KY7Gt$nj5Vx>V%Rz%AVD{yzfzT$ z7Fv1+c&zz?en_13!v?NLfX9F70Y8lde;o;)>jkezg1?CbXM4e$k>Jfp@O&?LI}-d1 m-$vw|>lN%pBzOzk5#Us>=kFuI-$jCld%=5=;ODv~JO2W!{CN}r diff --git a/Java-Knight/target/classes/org/project/entity/players/Wizard.class b/Java-Knight/target/classes/org/project/entity/players/Wizard.class index 9c3fdfcda46ab125fb76132b1742bc60e4966662..709b24c1d08b8320076665d091ff9e29cd40f76a 100644 GIT binary patch literal 1515 zcmaJ>e^VM)6g>~n#dU+ImBd8Nl4t{H-L|$3Db~gqQ)wYGL&S0V*At$&x-87{u(i|A zk?+w=)c%;{1N1|6dfzUCZ0qEog}b}&oO92;XaD}^&-VbfQPB`#c-Z!uR>y0fh`O|F zDO%P~f_K_(*DCX-U9U=hbfkkJW?%%P45RC|Ys(FWXeL|J5NAjaBM4X8^4#h;{9Jfl zYv2Bbdkq~r#x)oU;?{=`RQ!Vs`Aq4ApK;6KZquqt&vu)IVzD$#6%xDei!NkqW6&^R zAc;waWVa*gHg`4;ZHH8qD-5it#7rCb2r~@hj@>+#n^N-nDZ@f0gx_yv+waInzKuH? zW)0lMJpv!ncituA$dYzXGRy?Z?Y31R*^ zW$yBChN=JiqhkplYj|WJgDk`3wZNh)MN@bT+8K9x zV)uw4l__S2Ao_0oaqA*Nh9G~HH z4QmFzz?TfO!?O)}&!9_wDxUKeZ&K$mQeKPWF~i!x&T24dvp?yyxy8GZcE+R)aGcd4 zgO!y}41BHjBhu>VRIVHNMk$CL3+^zCwD`|Ev?{l@CZFX)aLAmBUfP(@fO6@(wB6GePanwZLVpV7uB-2t+>*MEb0ALT>J?m2?k%o#RV> zW+IMh8+jB2{~3kHoPG*cHVAXgac8W5}3Scw>sBX0@Z__a^uGu?Sy6HKD5PJ z_-&kYV~AlEMfw6I%rSZ>qX2;lbBQYP{6D+^gS`pV7#GQCGB@}-?+}eXj6*-j;8q>g z`!FB0!V+Uja}*NDAjgH4S*r|dT{u|5Dj_BGAc7dQ+R=@Xg$C21Vl@k`82Wn>W1(Dcbl zEKAhSNz6;v4=yRn%uAp6T3wQxfro*Sffr~169XR*GcvF<@B>MK$=ZyPX@Wp;E}$rg zWM|-J5CXD5>KPa~7=#%_fHWh6D1#VCJ&>&nq(O4bLYy0b6cYnTI~!PtA4w}ST&p-( Gl>`8>?HL0A delta 119 zcmcc0{GN&H)W2Q(7#J8_8AK;?B~L7GoGi(x63fZJ#lXnG4HRc$-~qB28Q2+kfg~SL z#EgL%$YNmN&=L?}-p;_h5v+p9c diff --git a/Java-Knight/target/classes/org/project/item/weapons/BoneClub.class b/Java-Knight/target/classes/org/project/item/weapons/BoneClub.class index 5713d2fb68dc76ea86168f884cb33efe2c21a7ae..a8abf7d3e75b74432d7a372585ace6bb5a129933 100644 GIT binary patch delta 234 zcmey(^o&{H)W2Q(7#J8_86?>mm>3xpCpt<_)b!xzVBlh8;B?B*OI2{rDNUMK*eb`K zo?7CUn48MTAfln^la*MOsGpOVm#!aNQk0pOKJl}5JvRdn10w@3&^RUrJ|JdfU}xY5 zk^(>xGX`cLi-CbdOMs7gI|K7Zuqr_y$pusiBH0$uSFYZU9nD3?S`nU?F~>R!Nv%X1HE)urdh%$!i@y delta 128 zcmaFH{F_PO)W2Q(7#J8_8ARC`m>3xpCq7i1Xy`Dpp>?tvqed(z0~Z4$12<3s69W&B z#mK_c1BaFXAMGcH II9Qbg0JZuWV*mgE delta 99 zcmcb|{FRC8)W2Q(7#J8_8AK;?rB1AAo~*#ACdtXb#lXnG4HRc$-~qB28Q2+kfh6DL oct%NWexNuPPzFS@162tCSs+ym3>*xC3_?JfkwF+pGBJn%0C#2!G5`Po diff --git a/Java-Knight/target/classes/org/project/item/weapons/DualDagger.class b/Java-Knight/target/classes/org/project/item/weapons/DualDagger.class index 3208275e6b0c2e07e2cad357685a5dead98bc5b1..d099d743551f0371aa3435cbcadeddc221f35b10 100644 GIT binary patch delta 224 zcmZ3)Jb{Jl)W2Q(7#J8_8Kft2WeRaHa4|CQxRfU5D7Yl1r>7PbPb{7;$DW>A;+L44 z%E%z1q3M&ASeB@tlbDyTA6!zDnU_A9ol#eln}LUck%1Rz5)%U-gA@Zl5?=r)#>l|V zAP6LdCdV>Lr3nMoaREgc7`PcYfGS0RERcQ%22KW11~DMb$RN%j0a6cS>jG(z9J3JT Y1|Y@60MgC|77{?x$_&>k305Tq0QguNW&i*H delta 115 zcmbQhvWS`M)W2Q(7#J8_8N?@YWln6JKG~L0OOumCD^1IjQm xuru%jNrA}|7^SoYf$F$`Dj9$}IDqPffGi%MECT~4gD`^#kY;2M1(Hk*VgLeq3wi(m diff --git a/Java-Knight/target/classes/org/project/item/weapons/Flame.class b/Java-Knight/target/classes/org/project/item/weapons/Flame.class index f0e9f7cb112180a9ac3b289d467939f9c1a8ca7e..40394826fbc5bb3e15ce97be6817d8d67035603c 100644 GIT binary patch delta 200 zcmeywbd#Cu)W2Q(7#J8_86+oirEqgFa4|Bly5%J1rcTUjl4DO#E%5`g85u-0G<~uX z%M$f-67$magG-7s^U^22)sW<7;9+27;02n%#J~r{j124y{6JD*vL2&knjlb|3n&UA z*%`PQgn%rNdIkm#24MyfAkD}i${+?(4`k~CX^?~ihZ%MN delta 119 zcmcb~{E3O{)W2Q(7#J8_8AK;?rA(}Bnk>Vp8q3MR#lXnG4HRc$-~qB28Q2+kfg~SL z#EgL%$YNmN&=OE#-p;_h5v+ff$?3=9me4AK+1G6gvpxEL9@eG}6&lNEwX64TNq7EhOBPfsoJOUzAW zWDwEN^vOyrOVrOv%uCk~E-A{)OP|cnsH@4%z{9}EzzZ~piGhznih&=AF8~x{WMF3y z1d>9NV;QB=gn{a~fT9cx+zcE*l_EeENIwGuCxa-17?5UU5ND78sRy!kfiy^tS%`B3 XkYZv0X=eiq2_R`@hHI4stC9i$o0%H* delta 115 zcmeBYS;WkB>ff$?3=9me4B`{HGAFi7pKQaZrOC;_#lXnG4HRc$;9-zr;6>u|0c98& x*cteNq`>5UMk#GUpgJy~N(P_~4xoA=Ad3em%fP_NAj}{Fq!}4Rfg}@y7ytnq3w8hi diff --git a/Java-Knight/target/classes/org/project/item/weapons/Sword.class b/Java-Knight/target/classes/org/project/item/weapons/Sword.class index d504817265b4f0df3e335e4802f7d16160a32049..40cf9603ef353d733f88591ff04bde61770209a1 100644 GIT binary patch delta 216 zcmbQt{EM0E)W2Q(7#J8_8Kft2rEqgFa4|Bl2AAg-rA*A5B*&hfTH=?Oo65)_qM_-N zl~|UjpOcuEt{+@dl$n=4@vnv^HvM` QEF^%Wl^L#860AxJ0IawgE&u=k delta 115 zcmeyxJeis6)W2Q(7#J8_8N?@YrA(}xG+BpHRg;r}i-D1W8z|1iz{4QLz>CD^1IjQm xuru%jNrA~#j8fWyKy_R|l?*@~96BmVtqjL6|`VNHa2s0!bzYF#s0C3z7f; diff --git a/Java-Knight/target/classes/org/project/item/weapons/Weapon.class b/Java-Knight/target/classes/org/project/item/weapons/Weapon.class index 2b9d4f332011aa68b05408ac0d1030172068573f..6c1bd612f6681f7eaf11bf3962fd4f035601a095 100644 GIT binary patch delta 81 zcmZ3+cAkyv)W2Q(7#J8_88kO?tz?vEPfsoJOUzAWWDwEN^vOyrOVrOv%uCk~E-A{) jOShi9kMg~;|HK1Nb26Z6G#GnBH0;3d^ delta 41 wcmX@lwv3JI)W2Q(7#J8_8Pqp&tz?{hh0%