From cdc7df6980fcaa690e85ccf11c1aa1224478ae52 Mon Sep 17 00:00:00 2001 From: Mobina Date: Sat, 16 May 2026 21:17:27 +0330 Subject: [PATCH] HW-04 --- Java-Knight.rar | Bin 0 -> 41806 bytes Java-Knight/.idea/.gitignore | 10 + Java-Knight/.idea/compiler.xml | 13 + Java-Knight/.idea/encodings.xml | 7 + Java-Knight/.idea/jarRepositories.xml | 25 ++ Java-Knight/.idea/misc.xml | 12 + Java-Knight/.idea/vcs.xml | 7 + Java-Knight/src/.idea/.gitignore | 10 + Java-Knight/src/.idea/misc.xml | 6 + Java-Knight/src/.idea/modules.xml | 8 + Java-Knight/src/.idea/vcs.xml | 6 + Java-Knight/src/Java-Knight.iml | 11 + Java-Knight/src/main/.idea/main.iml | 9 + Java-Knight/src/main/.idea/modules.xml | 8 + Java-Knight/src/main/.idea/vcs.xml | 6 + Java-Knight/src/main/.idea/workspace.xml | 51 +++ .../src/main/java/org/project/Colors.java | 12 + .../src/main/java/org/project/Main.java | 306 +++++++++++++++++- .../main/java/org/project/entity/Entity.java | 12 +- .../org/project/entity/enemies/Dragon.java | 15 + .../org/project/entity/enemies/Enemy.java | 36 ++- .../java/org/project/entity/enemies/Orc.java | 14 + .../org/project/entity/enemies/Skeleton.java | 12 +- .../org/project/entity/enemies/Vampier.java | 17 + .../org/project/entity/players/Assassin.java | 42 +++ .../org/project/entity/players/Knight.java | 35 +- .../org/project/entity/players/Player.java | 78 +++-- .../org/project/entity/players/Wizard.java | 43 +++ .../src/main/java/org/project/item/Item.java | 11 - .../java/org/project/item/armors/Armor.java | 20 +- .../project/item/armors/AssassinArmor.java | 9 + .../org/project/item/armors/KnightArmor.java | 19 +- .../org/project/item/armors/WizardArmor.java | 21 ++ .../org/project/item/consumables/Flask.java | 16 - .../java/org/project/item/weapons/Sword.java | 18 +- .../java/org/project/item/weapons/Weapon.java | 21 +- .../org/project/item/weapons/machete.java | 8 + .../java/org/project/item/weapons/wand.java | 9 + .../java/org/project/location/Location.java | 52 +-- .../target/classes/org/project/Colors.class | Bin 0 -> 546 bytes .../target/classes/org/project/Main.class | Bin 0 -> 10452 bytes .../classes/org/project/entity/Entity.class | Bin 0 -> 241 bytes .../org/project/entity/enemies/Dragon.class | Bin 0 -> 657 bytes .../org/project/entity/enemies/Enemy.class | Bin 0 -> 1537 bytes .../org/project/entity/enemies/Orc.class | Bin 0 -> 408 bytes .../org/project/entity/enemies/Skeleton.class | Bin 0 -> 423 bytes .../org/project/entity/enemies/Vampier.class | Bin 0 -> 747 bytes .../org/project/entity/players/Assassin.class | Bin 0 -> 1354 bytes .../org/project/entity/players/Knight.class | Bin 0 -> 1743 bytes .../org/project/entity/players/Player.class | Bin 0 -> 3909 bytes .../org/project/entity/players/Wizard.class | Bin 0 -> 1358 bytes .../org/project/item/armors/Armor.class | Bin 0 -> 1204 bytes .../project/item/armors/AssassinArmor.class | Bin 0 -> 341 bytes .../org/project/item/armors/KnightArmor.class | Bin 0 -> 536 bytes .../org/project/item/armors/WizardArmor.class | Bin 0 -> 536 bytes .../project/item/consumables/Consumable.class | Bin 0 -> 313 bytes .../org/project/item/weapons/Sword.class | Bin 0 -> 324 bytes .../org/project/item/weapons/Weapon.class | Bin 0 -> 697 bytes .../org/project/item/weapons/machete.class | Bin 0 -> 329 bytes .../org/project/item/weapons/wand.class | Bin 0 -> 321 bytes .../org/project/location/Location.class | Bin 0 -> 1760 bytes 61 files changed, 892 insertions(+), 123 deletions(-) create mode 100644 Java-Knight.rar create mode 100644 Java-Knight/.idea/.gitignore create mode 100644 Java-Knight/.idea/compiler.xml create mode 100644 Java-Knight/.idea/encodings.xml create mode 100644 Java-Knight/.idea/jarRepositories.xml create mode 100644 Java-Knight/.idea/misc.xml create mode 100644 Java-Knight/.idea/vcs.xml create mode 100644 Java-Knight/src/.idea/.gitignore create mode 100644 Java-Knight/src/.idea/misc.xml create mode 100644 Java-Knight/src/.idea/modules.xml create mode 100644 Java-Knight/src/.idea/vcs.xml create mode 100644 Java-Knight/src/Java-Knight.iml create mode 100644 Java-Knight/src/main/.idea/main.iml create mode 100644 Java-Knight/src/main/.idea/modules.xml create mode 100644 Java-Knight/src/main/.idea/vcs.xml create mode 100644 Java-Knight/src/main/.idea/workspace.xml create mode 100644 Java-Knight/src/main/java/org/project/Colors.java 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/Orc.java create mode 100644 Java-Knight/src/main/java/org/project/entity/enemies/Vampier.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 delete mode 100644 Java-Knight/src/main/java/org/project/item/Item.java create mode 100644 Java-Knight/src/main/java/org/project/item/armors/AssassinArmor.java create mode 100644 Java-Knight/src/main/java/org/project/item/armors/WizardArmor.java delete mode 100644 Java-Knight/src/main/java/org/project/item/consumables/Flask.java create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/machete.java create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/wand.java create mode 100644 Java-Knight/target/classes/org/project/Colors.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/Orc.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/Vampier.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/armors/Armor.class create mode 100644 Java-Knight/target/classes/org/project/item/armors/AssassinArmor.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/WizardArmor.class create mode 100644 Java-Knight/target/classes/org/project/item/consumables/Consumable.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/Weapon.class create mode 100644 Java-Knight/target/classes/org/project/item/weapons/machete.class create mode 100644 Java-Knight/target/classes/org/project/item/weapons/wand.class create mode 100644 Java-Knight/target/classes/org/project/location/Location.class diff --git a/Java-Knight.rar b/Java-Knight.rar new file mode 100644 index 0000000000000000000000000000000000000000..b1c09ccdf86b6d2ad759aeb21194b68ad6a58a6c GIT binary patch literal 41806 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 literal 0 HcmV?d00001 diff --git a/Java-Knight/.idea/.gitignore b/Java-Knight/.idea/.gitignore new file mode 100644 index 0000000..ab1f416 --- /dev/null +++ b/Java-Knight/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Ignored default folder with query files +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/Java-Knight/.idea/compiler.xml b/Java-Knight/.idea/compiler.xml new file mode 100644 index 0000000..935cb4a --- /dev/null +++ b/Java-Knight/.idea/compiler.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Java-Knight/.idea/encodings.xml b/Java-Knight/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/Java-Knight/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Java-Knight/.idea/jarRepositories.xml b/Java-Knight/.idea/jarRepositories.xml new file mode 100644 index 0000000..e84e677 --- /dev/null +++ b/Java-Knight/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Java-Knight/.idea/misc.xml b/Java-Knight/.idea/misc.xml new file mode 100644 index 0000000..eba6e1f --- /dev/null +++ b/Java-Knight/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/Java-Knight/.idea/vcs.xml b/Java-Knight/.idea/vcs.xml new file mode 100644 index 0000000..6ddb3e9 --- /dev/null +++ b/Java-Knight/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/Java-Knight/src/.idea/.gitignore b/Java-Knight/src/.idea/.gitignore new file mode 100644 index 0000000..ab1f416 --- /dev/null +++ b/Java-Knight/src/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Ignored default folder with query files +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/Java-Knight/src/.idea/misc.xml b/Java-Knight/src/.idea/misc.xml new file mode 100644 index 0000000..a20905f --- /dev/null +++ b/Java-Knight/src/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Java-Knight/src/.idea/modules.xml b/Java-Knight/src/.idea/modules.xml new file mode 100644 index 0000000..ec92401 --- /dev/null +++ b/Java-Knight/src/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Java-Knight/src/.idea/vcs.xml b/Java-Knight/src/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/Java-Knight/src/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Java-Knight/src/Java-Knight.iml b/Java-Knight/src/Java-Knight.iml new file mode 100644 index 0000000..54c844c --- /dev/null +++ b/Java-Knight/src/Java-Knight.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Java-Knight/src/main/.idea/main.iml b/Java-Knight/src/main/.idea/main.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/Java-Knight/src/main/.idea/main.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Java-Knight/src/main/.idea/modules.xml b/Java-Knight/src/main/.idea/modules.xml new file mode 100644 index 0000000..aaf7df4 --- /dev/null +++ b/Java-Knight/src/main/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Java-Knight/src/main/.idea/vcs.xml b/Java-Knight/src/main/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/Java-Knight/src/main/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Java-Knight/src/main/.idea/workspace.xml b/Java-Knight/src/main/.idea/workspace.xml new file mode 100644 index 0000000..a25c6bc --- /dev/null +++ b/Java-Knight/src/main/.idea/workspace.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1778879078762 + + + + \ No newline at end of file diff --git a/Java-Knight/src/main/java/org/project/Colors.java b/Java-Knight/src/main/java/org/project/Colors.java new file mode 100644 index 0000000..9165589 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/Colors.java @@ -0,0 +1,12 @@ +package org.project; + +public class Colors { + + public static final String RESET = "\u001B[0m"; + public static final String RED = "\u001B[31m"; + public static final String GREEN = "\u001B[32m"; + public static final String YELLOW = "\u001B[33m"; + public static final String BLUE = "\u001B[34m"; + public static final String PURPLE = "\u001B[35m"; + public static final String CYAN = "\u001B[36m"; +} diff --git a/Java-Knight/src/main/java/org/project/Main.java b/Java-Knight/src/main/java/org/project/Main.java index 6bde20e..cbc4615 100644 --- a/Java-Knight/src/main/java/org/project/Main.java +++ b/Java-Knight/src/main/java/org/project/Main.java @@ -1,15 +1,311 @@ package org.project; +import org.project.entity.enemies.*; +import org.project.entity.players.*; +import org.project.item.armors.*; +import org.project.item.weapons.*; import org.project.location.Location; -import java.util.ArrayList; -import java.util.List; +import java.util.Scanner; +import java.util.Random; public class Main { + private static Scanner in = new Scanner(System.in); + private static Random random = new Random(); + private static String playerClass = ""; + private static int totalKeys = 0; + public static void main(String[] args) { - // TODO: ADD LOCATIONS TO YOUR GAME - List locations = new ArrayList<>(); + System.out.println("Enter your name:"); + String name = in.next(); + + System.out.println("choose your character:\n1.Knight 2.Wizard 3.Assassin"); + int choice = in.nextInt(); + + Player player = null; + + switch (choice) { + case 1: + player = new Knight(name); + playerClass = "knight"; + break; + case 2: + player = new Wizard(name); + playerClass = "wizard"; + break; + case 3: + player = new Assassin(name); + playerClass = "assassin"; + break; + default: + player = new Knight(name); + playerClass = "knight"; + } + + final Player finalPlayer = player; + + int menuChoice = 0; + while (menuChoice != 3) { + clearScreen(); + displayMenu(); + menuChoice = in.nextInt(); + + switch (menuChoice) { + case 1: + newGame(1, finalPlayer); + break; + case 2: + newGame(2, finalPlayer); + break; + case 3: + System.out.println("\nπŸ‘‹ GOODBYE!"); + break; + } + } + } + + public static void displayMenu() { + System.out.println("╔══════════════════════════════════════════════════════╗"); + System.out.println("β•‘ πŸ—οΈ KEYS: " + totalKeys + " πŸ—οΈ β•‘"); + System.out.println("╠══════════════════════════════════════════════════════╣"); + System.out.println("β•‘ β•‘"); + System.out.println("β•‘ βš”οΈ [1] NEW GAME βš”οΈ β•‘"); + System.out.println("β•‘ πŸ‰ [2] VS DRAGON πŸ‰ β•‘"); + System.out.println("β•‘ ❌ [3] EXIT ❌ β•‘"); + System.out.println("β•‘ β•‘"); + System.out.println("β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•"); + System.out.print("➑️ CHOOSE: "); + } + + public static void newGame(int model, Player player) { + Enemy enemy = null; - // TODO: IMPLEMENT GAMEPLAY + //Ψ¬Ω†Ϊ― Ψ¨Ψ§ Ψ―Ψ΄Ω…Ω† Ψ±Ω†Ψ―ΩˆΩ… + if (model == 1) { + Location loc=new Location(); + String location = loc.chooseLocation(); + System.out.println("πŸ“ You are in " + location); + + if (loc.thereIsKey()) { + System.out.println("πŸ”‘ There is a Key here!"); + } + delay(2500); + + int chooseEnemy = random.nextInt(3); + switch (chooseEnemy) { + case 0: + enemy = new Skeleton(); + System.out.println("You're fighting with skeleton \uD83D\uDC80"); + break; + case 1: + enemy = new Vampier(); + System.out.println("You're fighting with Vampire \uD83E\uDDDB"); + break; + case 2: + enemy = new Orc(); + System.out.println("You're fighting with Orc \uD83D\uDC79"); + break; + } + delay(3000); + + startBattle(player, enemy,loc); + + //Ψ¬Ω†Ϊ― Ψ¨Ψ§ Ψ§Ϊ˜Ψ―Ω‡Ψ§ + } else { + if (totalKeys >= 3) { + enemy = new Dragon(); + System.out.println("πŸ‰ YOU ARE IN DRAGON'S HOUSE! πŸ‰"); + System.out.println(" You used 3 keys!"); + totalKeys -= 3; + Location loc=new Location(1);// ΨͺΨ§Ψ¨ΨΉ Ψ³Ψ§Ψ²Ω†Ψ―Ω‡ Ψ§Ϊ˜Ψ―Ω‡Ψ§ یک ΨΉΨ―Ψ― ورودی دریافΨͺ Ω…ΫŒΪ©Ω†Ω‡ + delay(2000); + + startBattle(player, enemy, loc); + + if (enemy.getHp() <= 0) { + System.out.println("πŸ† LEGEND! YOU DEFEATED THE DRAGON! πŸ†"); + } + + //Ψ§Ϊ―Ψ± 3 Ϊ©Ω„ΫŒΨ― Ω†Ψ―Ψ§Ψ΄Ψͺ + } else { + System.out.println("╔══════════════════════════════════════════════════════╗"); + System.out.println("β•‘ ❌ YOU NEED 3 KEYS TO FIGHT THE DRAGON! ❌ β•‘"); + System.out.printf("β•‘ πŸ”‘ YOUR KEYS: %d / 3 β•‘\n", totalKeys); + System.out.println("β•‘ βš”οΈ Defeat enemies in NEW GAME to get keys! β•‘"); + System.out.println("β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•"); + delay(2000); + } + } + } + + public static void startBattle(Player player, Enemy enemy, Location loc) { + while (player.getHp() > 0 && enemy.getHp() > 0) { + clearScreen(); + displayBattle(player.getHp(), player.getMaxHP(), player.getMp(), player.getMaxMP(), + enemy.getHp(), enemy.getMaxHP(), player.getArmor().getDurability(), + player.getArmor().getDefense(), playerClass); + + int playerChoice = in.nextInt(); + clearScreen(); + + System.out.println("You:"); + switch (playerChoice) { + case 1: + player.LightAttack(enemy); + break; + case 2: + if (player.getMp() > 0) { + player.HeavyAttack(enemy); + } else + { + System.out.println("Your MP is out."); + player.LightAttack(enemy); + } + break; + case 3: + if(player.getMp()>0) + player.defend(); + else + { + System.out.println("Your MP is out."); + player.LightAttack(enemy); + } + break; + case 4: + if(player.getMp()>0) + player.SpecialAttack(enemy,1); + else + { + System.out.println("Your MP is out."); + player.LightAttack(enemy); + } + break; + case 5: + if(player.getMp()>0) + player.heal(); + else + { + System.out.println("Your MP is out."); + player.LightAttack(enemy); + } + break; + } + + delay(2500); + + if (enemy.getHp() > 0) { + clearScreen(); + System.out.println("Enemy: "); + int enemyMove = random.nextInt(3); + switch (enemyMove) { + case 0: + if(!player.getIsDefending()) { + enemy.LightAttack(player); + System.out.println("The enemy made a light attack \uD83D\uDC4A"); + } + else { + player.defend(); + System.out.println("The enemy attacked, but you defended.\uD83D\uDCAF"); + } + break; + case 1: + enemy.heal(); + System.out.println("The enemy healed. \uD83E\uDE84"); + break; + case 2: + if(!player.getIsDefending()) + { + if (enemy instanceof Vampier) { + enemy.HeavyAttack(player); + System.out.println("The Vampire made a heavy attack \uD83E\uDE78"); + } else if (enemy instanceof Dragon) { + ((Dragon) enemy).burn(player); + System.out.println("The dragon breathed fire \uD83D\uDD25\uD83D\uDD25"); + } else { + enemy.LightAttack(player); + System.out.println("The enemy made a light attack \uD83D\uDC4A"); + } + } + else + { + player.defend(); + System.out.println("The enemy attacked, but you defended.\uD83D\uDCAF"); + } + break; + } + delay(2500); + } + } + + clearScreen(); + if (enemy.getHp() <= 0) { + System.out.println("╔══════════════════════════════════════════════════════╗"); + System.out.println("β•‘ πŸŽ‰ YOU WON! πŸŽ‰ β•‘"); + System.out.println("β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•"); + + if (loc.thereIsKey()) { + totalKeys++; + System.out.println("πŸ”‘ You found a KEY on the enemy!"); + System.out.println("πŸ—οΈ Total keys: " + totalKeys); + } + } else { + System.out.println("╔══════════════════════════════════════════════════════╗"); + System.out.println("β•‘ πŸ’€ YOU LOST! πŸ’€ β•‘"); + System.out.println("β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•"); + } + delay(2500); + player.fillHP(); + player.fillHP(); + player.filldurability(); + } + + + public static void displayBattle(int playerHP, int playerMaxHP, int playerMP, int playerMaxMP, + int enemyHP, int enemyMaxHP, int ArmorDurability, int ArmorDefense, String playerClass) { + + String playerEmoji = ""; + if (playerClass.equals("wizard")) { + playerEmoji = "πŸ§™"; + } else if (playerClass.equals("knight")) { + playerEmoji = "βš”οΈ"; + } else if (playerClass.equals("assassin")) { + playerEmoji = "πŸ—‘οΈ"; + } else { + playerEmoji = "🧝"; + } + + System.out.println("╔══════════════════════════════════════════════════════════════════════╗"); + System.out.println("β•‘ βš”οΈ BATTLE START! βš”οΈ β•‘"); + System.out.println("╠═══════════════════════╦══════════════════════════════════════════════╣"); + System.out.printf("β•‘ %s %-18sβ•‘ πŸ‘Ύ %-30sβ•‘\n", playerEmoji, playerClass.toUpperCase(), "ENEMY"); + System.out.println("╠═══════════════════════╬══════════════════════════════════════════════╣"); + System.out.printf("β•‘ ❀️ HP: %3d/%-3d β•‘ ❀️ HP: %3d/%-3d β•‘\n", + playerHP, playerMaxHP, enemyHP, enemyMaxHP); + System.out.printf("β•‘ πŸ’™ MP: %3d/%-3d β•‘ βš”οΈ %-40sβ•‘\n", + playerMP, playerMaxMP, ""); + System.out.printf("β•‘ πŸ›‘οΈ Armor: Durability: %3d Defense: %3d β•‘\n", + ArmorDurability, + ArmorDefense); + System.out.println("β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•©β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•"); + + System.out.println("\nπŸ“ ACTIONS:"); + System.out.println("╔══════════════════════════════════════════════════════════════════════╗"); + System.out.println("β•‘ [1] ⚑ Light Attack [2] πŸ’₯ Heavy Attack [3] πŸ›‘οΈ Defend β•‘"); + System.out.println("β•‘ [4] ✨ Special Attack [5] πŸ’Š Heal β•‘"); + System.out.println("β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•"); + System.out.print("\n➑️ Choose: "); + } + + public static void clearScreen() { + System.out.print("\033[H\033[2J"); + System.out.flush(); + } + + public static void delay(int ms) { + try { + Thread.sleep(ms); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } } } \ 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 2a060f9..a5bbb93 100644 --- a/Java-Knight/src/main/java/org/project/entity/Entity.java +++ b/Java-Knight/src/main/java/org/project/entity/Entity.java @@ -1,21 +1,13 @@ package org.project.entity; public interface Entity { - void attack(Entity target); - void defend(); + void LightAttack(Entity target); - void heal(int health); - - void fillMana(int mana); + void heal(); void takeDamage(int damage); int getMaxHP(); - int getMaxMP(); - - /* - TODO: ADD OTHER REQUIRED AND BONUS METHODS - */ } 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..0b3f83e --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Dragon.java @@ -0,0 +1,15 @@ +package org.project.entity.enemies; + +import org.project.entity.players.Player; +import org.project.item.weapons.wand; + +public class Dragon extends Enemy{ + public Dragon(){ + super(400, 400, new wand()); + } + + public void burn(Player player) + { + player.takeDamage(70); + } +} 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..e79c64c 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,17 +1,18 @@ package org.project.entity.enemies; import org.project.item.weapons.Weapon; +import org.project.entity.Entity; +import org.project.Colors; // TODO: UPDATE IMPLEMENTATION -public abstract class Enemy { +public class Enemy implements Entity{ Weapon weapon; private int hp; - private int mp; + private int maxHP; - public Enemy(int hp, int mp, Weapon weapon) { + public Enemy(int hp, int maxHP, Weapon weapon) { this.hp = hp; - this.mp = mp; - + this.maxHP = maxHP; this.weapon = weapon; } @@ -20,12 +21,33 @@ public abstract class Enemy { hp -= damage; } + @Override + public void LightAttack(Entity target) { + target.takeDamage(weapon.getLightDamage()); + } + + public void HeavyAttack(Entity target) + { + System.out.println("poof"); + } + + @Override + public void heal() { + hp += 20; + if (hp > maxHP) { + hp = maxHP; + } + hp -= 20; + + } + public int getHp() { return hp; } - public int getMp() { - return mp; + @Override + public int getMaxHP() { + return maxHP; } public Weapon getWeapon() { diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Orc.java b/Java-Knight/src/main/java/org/project/entity/enemies/Orc.java new file mode 100644 index 0000000..b19e3f5 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Orc.java @@ -0,0 +1,14 @@ +package org.project.entity.enemies; + +import org.project.item.weapons.Sword; + +public class Orc extends Enemy{ + + public Orc() + { + super(200, 200, new Sword()); + } +} + + + 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..855430a 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,12 @@ package org.project.entity.enemies; +import org.project.item.weapons.machete; + // TODO: UPDATE IMPLEMENTATION -public class Skeleton { - // TODO: DESIGN ENEMY AND IMPLEMENT THE CONSTRUCTOR -} +public class Skeleton extends Enemy{ + + public Skeleton() + { + super(50,50, new machete()); + } +} \ No newline at end of file diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Vampier.java b/Java-Knight/src/main/java/org/project/entity/enemies/Vampier.java new file mode 100644 index 0000000..b4f9046 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Vampier.java @@ -0,0 +1,17 @@ +package org.project.entity.enemies; + +import org.project.entity.Entity; +import org.project.item.weapons.Sword; + +public class Vampier extends Enemy{ + + public Vampier() + { + super(200, 200, new Sword()); + } + + @Override + public void HeavyAttack(Entity target) { + target.takeDamage(((Sword) getWeapon()).getHeavyDamage()); + } +} \ No newline at end of file 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..980c43b --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/players/Assassin.java @@ -0,0 +1,42 @@ +package org.project.entity.players; + +import org.project.entity.Entity; +import org.project.Colors; +import org.project.item.armors.AssassinArmor; +import org.project.item.weapons.machete; + + +public class Assassin extends Player{ + public Assassin(String name) + { + + super(name, new machete(), new AssassinArmor()); + } + + @Override + public void SpecialAttack(Entity target, int time) + { + if (time>0){ + time--; + mp=100; + + System.out.println(Colors.PURPLE + "✨ SPECIAL ATTACK! ✨" + Colors.RESET); + System.out.println(Colors.PURPLE + "WHOOSH!" + Colors.RESET); + System.out.println("πŸ”₯ Recovery completed "); + } + } + + @Override + public void heal() { + hp += 15; + if (hp > 100) { + hp = 100; + } + mp-=10; + System.out.println(Colors.GREEN + "πŸ’Š HEAL! πŸ’Š" + Colors.RESET); + System.out.println(Colors.GREEN + " WHOOSH!" + Colors.RESET); + System.out.println(Colors.RED + " HP restored: + 15" + Colors.RESET); + } +} + + 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..b679851 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,35 @@ package org.project.entity.players; +import org.project.entity.Entity; +import org.project.item.armors.KnightArmor; +import org.project.item.weapons.Sword; +import org.project.Colors; + // TODO: UPDATE IMPLEMENTATION -public class Knight { - // TODO: DESIGN KNIGHT'S WEAPON AND ARMOR AND IMPLEMENT THE CONSTRUCTOR -} + +public class Knight extends Player { + + Sword sward=new Sword(); + + public Knight(String name) { + + super(name, new Sword(), new KnightArmor()); + } + + @Override + public void SpecialAttack(Entity target, int time) { + if (time > 0) { + time--; + int index = hp; + HeavyAttack(target); + HeavyAttack(target); + hp = index; + mp -= 20; + + System.out.println(Colors.PURPLE + "✨ SPECIAL ATTACK! ✨" + Colors.RESET); + System.out.println(Colors.PURPLE + "KABOOM!" + Colors.RESET); + System.out.println("πŸ”₯ Damage: " + 2 * sward.getHeavyDamage()); + } + } + +} \ No newline at end of file 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..cd79158 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 @@ -3,58 +3,88 @@ package org.project.entity.players; import org.project.entity.Entity; import org.project.item.armors.Armor; import org.project.item.weapons.Weapon; +import org.project.Colors; // TODO: UPDATE IMPLEMENTATION -public abstract class Player { +public class Player implements Entity{ protected String name; Weapon weapon; Armor armor; - private int hp; - private int maxHP; - private int mp; - private int maxMP; + protected int hp = 100; + private int maxHP = 100; + protected int mp = 100; + private int maxMP = 100; + private boolean isDefending = false; - public Player(String name, int hp, int mp, Weapon weapon, Armor armor) { + public Player(String name, Weapon weapon, Armor armor) { this.name = name; - this.hp = hp; - this.mp = mp; - this.weapon = weapon; this.armor = armor; } - @Override - public void attack(Entity target) { - target.takeDamage(weapon.getDamage()); + public void SpecialAttack(Entity target, int time) { + System.out.println("poof"); + } + + + public void HeavyAttack(Entity target) { + target.takeDamage(weapon.getHeavyDamage()); + mp -= weapon.getManaCost(); + + System.out.println(Colors.CYAN + "⚑ HEAVY ATTACK! ⚑" + Colors.RESET); + System.out.println(Colors.GREEN + "BOOM!" + Colors.RESET); + System.out.println(Colors.YELLOW + " πŸ—‘οΈ Damage: " + weapon.getHeavyDamage() + Colors.RESET); } @Override + public void LightAttack(Entity target) { + target.takeDamage(weapon.getLightDamage()); + + System.out.println(Colors.CYAN + "⚑ LIGHT ATTACK! ⚑" + Colors.RESET); + System.out.println(Colors.GREEN + " SMASH!" + Colors.RESET); + System.out.println(Colors.YELLOW + " πŸ—‘οΈ Damage: " + weapon.getLightDamage() + Colors.RESET); + } + public void defend() { - // TODO - } + if (!isDefending) { + mp -= 10; + } + isDefending = !isDefending; + System.out.println("πŸ›‘οΈ Defend! πŸ›‘οΈ"); + System.out.println(Colors.BLUE + "THWACK!" + Colors.RESET); + System.out.println(" Damage reduced!"); + } @Override public void takeDamage(int damage) { hp -= damage - armor.getDefense(); + armor.decreacDurability(); } @Override - public void heal(int health) { - hp += health; + public void heal() { + hp += 10; if (hp > maxHP) { hp = maxHP; } + mp -= 10; + + System.out.println(Colors.GREEN + "πŸ’Š HEAL! πŸ’Š" + Colors.RESET); + System.out.println(Colors.GREEN + "WHOOSH!" + Colors.RESET); + System.out.println(Colors.RED + " HP restored: +10" + Colors.RESET); } - @Override - public void fillMana(int mana) { - mp += mana; - if (mp > maxMP) { + public void fillMana() { mp = maxMP; - } } + public void fillHP() {hp=maxHP; } + + public void filldurability() + { + armor.filldur(); + } public String getName() { return name; @@ -64,7 +94,6 @@ public abstract class Player { return hp; } - @Override public int getMaxHP() { return maxHP; } @@ -73,7 +102,6 @@ public abstract class Player { return mp; } - @Override public int getMaxMP() { return maxMP; } @@ -86,4 +114,8 @@ public abstract class Player { return armor; } + public boolean getIsDefending() { + return isDefending; + } + } 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..ef8d542 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/players/Wizard.java @@ -0,0 +1,43 @@ +package org.project.entity.players; + +import org.project.entity.Entity; +import org.project.Colors; +import org.project.item.armors.WizardArmor; +import org.project.item.weapons.wand; +import org.project.item.armors.WizardArmor; + +import org.project.item.weapons.Weapon; + +public class Wizard extends Player { + + public Wizard(String name) { + super(name, new wand(), new WizardArmor()); + + } + + @Override + public void SpecialAttack(Entity target, int time) { + if (time > 0) { + time--; + hp = 100; + mp -= 20; + + System.out.println(Colors.PURPLE + "✨ SPECIAL ATTACK! ✨" + Colors.RESET); + System.out.println(Colors.PURPLE + "WHOOSH!" + Colors.RESET); + System.out.println("πŸ”₯ Recovery completed "); + } + } + + @Override + public void heal() { + hp += 30; + if (hp > 100) { + hp = 100; + } + mp -= 10; + + System.out.println(Colors.GREEN + "πŸ’Š HEAL! πŸ’Š" + Colors.RESET); + System.out.println(Colors.GREEN + " WHOOSH!" + Colors.RESET); + System.out.println(Colors.RED + " HP restored: + 30" + Colors.RESET); + } +} diff --git a/Java-Knight/src/main/java/org/project/item/Item.java b/Java-Knight/src/main/java/org/project/item/Item.java deleted file mode 100644 index 6d6b5ad..0000000 --- a/Java-Knight/src/main/java/org/project/item/Item.java +++ /dev/null @@ -1,11 +0,0 @@ -package org.project.item; - -import org.project.entity.Entity; - -public interface Item { - void use(Entity target); - - /* - TODO: ADD OTHER REQUIRED AND BONUS METHODS - */ -} 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..0940a01 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 @@ -4,8 +4,8 @@ package org.project.item.armors; public abstract class Armor { private int defense; private int maxDefense; - private int durability; - private int maxDurability; + protected int durability; + private final int maxDurability=100; private boolean isBroke; @@ -21,6 +21,22 @@ public abstract class Armor { } } + public void decreacDurability() + { + if(durability>30) + durability-=30; + else + { + durability=0; + checkBreak(); + } + } + + public void filldur() + { + durability=maxDurability; + } + // TODO: (BONUS) UPDATE THE REPAIR METHOD public void repair() { isBroke = false; diff --git a/Java-Knight/src/main/java/org/project/item/armors/AssassinArmor.java b/Java-Knight/src/main/java/org/project/item/armors/AssassinArmor.java new file mode 100644 index 0000000..0a1dc34 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/armors/AssassinArmor.java @@ -0,0 +1,9 @@ +package org.project.item.armors; + +public class AssassinArmor extends Armor { + + public AssassinArmor() + { + super(10 , 100); + } +} 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..8f934cf 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,21 @@ package org.project.item.armors; // TODO: UPDATE IMPLEMENTATION -public class KnightArmor { - // TODO: DESIGN ARMOR'S ATTRIBUTES IMPLEMENT THE CONSTRUCTOR +public class KnightArmor extends Armor{ + public KnightArmor () + { + super(15, 100); + } + + @Override + public void decreacDurability() + { + if(durability>10) + durability-=10; + else + { + durability=0; + checkBreak(); + } + } } \ No newline at end of file diff --git a/Java-Knight/src/main/java/org/project/item/armors/WizardArmor.java b/Java-Knight/src/main/java/org/project/item/armors/WizardArmor.java new file mode 100644 index 0000000..01043a0 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/armors/WizardArmor.java @@ -0,0 +1,21 @@ +package org.project.item.armors; + +public class WizardArmor extends Armor{ + + public WizardArmor() + { + super(10 , 100); + } + + @Override + public void decreacDurability() + { + if(durability>20) + durability-=20; + else + { + durability=0; + checkBreak(); + } + } +} 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 c0e7a6d..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/Sword.java b/Java-Knight/src/main/java/org/project/item/weapons/Sword.java index 96226ee..e344232 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,13 @@ 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(30,50,10); } + // TODO: (BONUS) UPDATE THE UNIQUE ABILITY - public void uniqueAbility(ArrayList targets) { - abilityCharge += 2; - for (Entity target : targets) { - target.takeDamage(getDamage()); - } - } + } 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..651dfd5 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 @@ -3,26 +3,29 @@ package org.project.item.weapons; import org.project.entity.Entity; // TODO: UPDATE IMPLEMENTATION -public abstract class Weapon { - private int damage; +public class Weapon { + private int LightDamage; + private int HeavyDamage; private int manaCost; /* TODO: ADD OTHER REQUIRED AND BONUS ATTRIBUTES */ - public Weapon(int damage, int manaCost) { - this.damage = damage; + public Weapon(int LightDamage,int HeavyDamage, int manaCost) { + this.LightDamage = LightDamage; + this.HeavyDamage=HeavyDamage; this.manaCost = manaCost; } - @Override - public void use(Entity target) { - target.takeDamage(damage); + + public int getLightDamage() { + return LightDamage; } - public int getDamage() { - return damage; + public int getHeavyDamage() + { + return HeavyDamage; } public int getManaCost() { diff --git a/Java-Knight/src/main/java/org/project/item/weapons/machete.java b/Java-Knight/src/main/java/org/project/item/weapons/machete.java new file mode 100644 index 0000000..0525172 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/weapons/machete.java @@ -0,0 +1,8 @@ +package org.project.item.weapons; + +public class machete extends Weapon{ + public machete() + { + super(20,30,5); + } +} 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..74fbae7 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/weapons/wand.java @@ -0,0 +1,9 @@ +package org.project.item.weapons; + + +public class wand extends Weapon{ + public wand() + { + super(10,75,30); + } +} 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..641512a 100644 --- a/Java-Knight/src/main/java/org/project/location/Location.java +++ b/Java-Knight/src/main/java/org/project/location/Location.java @@ -1,28 +1,44 @@ package org.project.location; -import org.project.entity.enemies.Enemy; - import java.util.ArrayList; +import java.util.Arrays; +import java.util.Random; public class Location { - private String name; - - private ArrayList enemies; - - public Location(ArrayList locations, ArrayList enemies) { - this.locations = locations; - this.enemies = enemies; + private ArrayList locations; + private Random random; + ArrayList key=new ArrayList<>(); + + public Location() { + random = new Random(); + locations = new ArrayList<>(Arrays.asList( + " Shire", " Rivendell", " LothlΓ³rien", + " Gondor", " Mordor", " Isengard", + " Moria", " Minas Morgul", " Paths of the Dead" + )); + for(int i=0; i<9; i++) + { + key.add(1); + } } - public String getName() { - return name; + public Location(int i) + { + key.add(0); } - - public ArrayList getLocations() { - return locations; + + public String chooseLocation() { + return locations.get(random.nextInt(locations.size())); } - - public ArrayList getEnemies() { - return enemies; + + public boolean thereIsKey() + { + int i= random.nextInt(key.size()*2); + if (iPBOtSlu*0%Eb^?12$MvT2qSe<;ui`58y)? zPg@h4xcM{RcV^DanXm7UPXH?Rl87OmfRKU+i6J}WuUxUXJy2@Bq0#pkq$|@ly=#W} z{y{qdnIY%61Leha{JK(cEXN%)h`QQPn^e^PS~NV@v55~IJ#Kq#ZcPjsX$GO# zJswe0UA>c$rSrvZ`Gkb{psQ+C#$2dQNl6`5(`t`07D87hC){c+RYoB+Xa25wORsC> zRzi2~@2YfesMmUEE&}5`84MZCw2kUy)HB>B?^$GWn$zc2o4cmZzf$m?O`0vQ{hyeo zN;aH{+c)k_|NM0L5l8;?C?P@r3d#bekOY;9Vn`9sL^wk{8{r&rKEm_FixFNTUXE~) ucs0UnbQ8@AiE@K(R00OX!*{T^;0Yy4zYN5&Ntp`PBDSzi#IQpd!|o4!?^%BU literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/Main.class b/Java-Knight/target/classes/org/project/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..e0d691498dfcc4ba2c1037b84d396c03efe1b879 GIT binary patch literal 10452 zcmdT~3w%`7ng4&uBy%%dl8_LP_XR}4E0MP*fCe&n9EOq`j3@m*0X zsI^#K1PjGiV;`;(G(@Oat+uXpTeaHSR^7_FYr8GAuI{Rp;{MOMcajOD{I>gZe?NQS z&OOiXeCIpg`{ae=2M+`A%WXcSA>9j)i40^4ayJAv1&YIg$ok^i#tn8;LXf#26bU63 z3DOIvtjU6bEH8W}2Ept%ysjgjuvtm zvpS;fF)I>iwM%@+#Sky@OypyzAb)_F0&kmw6OIscp#xhZNx-4V`cj41FbwzNG!r8* zl8Z!R>xOhF|($r7BGq*hv3K!Qk1tJkUR_eoOjPYWuiE*$5L-hKoBLtp^ zeK~hEv~bGFYa5s#nBCM8jmB+fS4}N}SfGiUEb+}OS`i7YZ%J6Qiq?j%2*iTc?4q)G zJP?nEB5K{!O-#ZW+@4yXGQu@T;k8Y7A0}g}I=G<* zrt_dS>ZKGVicA#aOu-;$!jdo-6y%+Zyce@hy^@2q4>K{=d6eQB6SY_=7~UG#XfKIIngWTnp+pNy@kAh!;JAXq z$^jX7m8QYoFFXNwME4u07c4k(*LLgw^l+kqHG=XJARO6s=X*W3Th_Xn7g;s_wbrt- zYJcAX$=<#e%hHg}KN*tZut&EN(yWWDHFZ|`s&37n$3QXdWDLVb?A{vOV8w}Fc(k4N_0tI58kqPDiqUt%d6aH)xaG5{G` z)qBw-7?UdD;V3yf6pa*Dxdk5@k*jeRn)Go^N-hidvvRT9rQmeQow4D+w>Kz zjnwmGt48cpc0S?5J@~p8yG`s-UW0WCqUz0%4cFU=iZ%m#1w}{qe(&g0H(6EwW&WD- z@s>iT+`rUcR_`yj>MQ&%QVJP0&cJ<1)ugnJ8eQY($l2Bke?y&BUu!L`Tvk!vZ)QLB zq*c=cg0fWg=1LEtta#Dznd~rba#f$Y2 z67L6i){Ey%{7^ydrw#wR0a$^h!AC1 zO?=J7&-KI#JFuz4nP}j3K@LI3tm>6YyEB?8QiFeG;@8SC%?v8+gR1FG6K~;PhPBwt@Eqr}fQJ2yz5r9zJ^T1~ue01OG{bs)i&Ly^93LZtAdlkvM$xi5{f|KQ!@Q z_-}5uu|39J(G;h0+XB~5c#b0{3vvMnA{bYz~bnu5JTWr$Y*pJa*8D}zi< z9GvtQQUYW0t9@B}Agp766j4g*wF?Z%;TUbFcN#K;Wk-)0lFv{>k>P-H)C?&|4%=@!t^PciH`Q!M4J4@yK=x3$@^C4snY z2$Luo{u+OEgCVDXu7vvT7mQG}g6C=49NGPVj)5vx(g~U!EGChH4zH*K^^&}6r$zfU09ZHLoit;Pa~_6F?PYg$R)?IhOk4dD%jz@Y8Wxv#jd!wo3WS)E zqL%o)g3@n&kxr31uqc^S+JBo>wxqtYwx+JckTV5q^&zNq!jWC~TG}VE9M3?}N+kyr zox2{iwAYc^#ehHM2pp^L(w8s|nI%~10G~tPUw_DQ{f=H3>*l(^w<+M^0naA2QA3^c zxgOKss&D^a$McxxFVvJH)}cL0x2=2RGHn3=5Tww#U~48 zkyp+!-ek9_l!XH6 zH)W|Tqr2GD9*fcGNdoJiRCZcR)r3k@mMg5XnE19eL}uTmiWzRHPR+1aM%vnw8FuEB zrIw+htfUj?1~&{_Qimu9^a`XC`z6sJ!{(f-P{gijZ*8<=^?^neNav{pN_b5m7E*P$ z(UWKi(T!l=37Pd$LTc3+_F;vou~VA#t+w;Ogim?#*=emPF8SsueseH&d@eI%42-RQKyp zHLnJyCion%Dg@*iYK7gWt+|rZ;)Ghg;Qg)94I$=@iHeot4yqXWM3yDyX{|goV?k5c zy#VsnF)nJdmxdIRWT{(~BE|L;k;TzyBA$o^+N$kDOEefaR#vGBN0*h3JFr_@ zK9xu)u|%sqx9Ozej_-60xkpW;wpH1YfJ(hZEHUId@_7oxdX*g45jNrGWXknE*&;W1 zIBQiyby~(&kHfYZHy}VDC=N3%CQFtyM5l7q;W4S4E>6+uKT0 zi0JZrN=v_q^&M^Y0K-#7BI%W%3}Q(j9Ij)a%|kIO)uolb(Xr!RVQOvCNqZUyRj=IA zPfhhh&fOJ-&)FBoGdNG<-GT=`b)m+RPh~Ilmp4oL%j*b!vp{)3CPY@TR?HgX5@bw0 z0NKYvn$+=^-TXDBUi~@)WVNheElbwQ`Oai{9_btjywU}4-r#QJbfKUdqpDPOe6l)m zq1252Hb?Q|gRg>{&UX~w>3kO+!sLc&2QZ~3Z`yv$=)~+pn5i0O*W}I74HFJwo@zL& zChu(BFr@#K86}?dc^L&6ncu*Q9+dWAkw#;pYID||%XL!MJ)QL#o)MlNlyzcghFch< z(DoDU&d(lKlt|ZNDLjU$xEeEX9m&0ghq0BnbGKp^bE31c19R~h=HnpF!jmXr>ZO!9n}zrZ z7U5--=@VGwP+1z}0^*W`AILgFA$Q<0xsZpNMr^v|BDt89y$-A75|%t%sa7s!Z-xXo zYcvKO#{w_ic`v$hb8`p(1sN>KnTFv_BUA7e&t-`nnvsCDiXO}KF?zdDd5~LVDvM|A z%{$Ni*16x+?su*GZ8)KSom;=C88AWcxS37cbki+rfk8c7VA}Kc7N z0nY*4T{Fb{Qt$NX-PpC;LH!$gv2)Zk_e}Ecb-~>4c@k+2>0GD>5AsO9qfhP;w^z~L zf!W8@d&ro;dE9M1yjV?^T7v?tCHppzT`wSeUPzX_m`rgAO92GcEeo2+%r>=3Gp;3j zUyl&BVFT{q<;&gd*@GDFofM;{AlfTIp}G zmO)OKKeZeC_Q>IBJcK=RfT~3`@O_N$0lo)S58o$QKHQCGoX?NCz>|N$(LswiOC8xy zcnD)0WrPP5mVCJelqOPIa0TBG->p*#@1;&$sg~G-L8|&{C&CKGF9^f!zR>CR@$<`0 z)SS?}$munwPV;o*jZPGu&_A|s_HR0o+ppJ=4z;m8c-lq&Uo|H=^5QA*sBPTGS3OEx zM({m{ZwWBC-Hq?tID zHWYtJ8;#>>OdF+56-g_Sw6s~0o;FWBTJq=6WEJqqNB7fw|Fo!Yn z<+NmBWU??iQ|ssvS#=Gb5k|L+t!v20m+?t$oi7uUBPV(F$dO8yH+V+rPeuWK6;?9~ zGE!80zD#zYj&{b5amI2hePE|#XlMnQ&X59czxfmnB?0PAnW{`F$DB+k%Ob&NQPblbF~(L&nNv{wrkqW{T#RX6F!P zBl(1n%#<)o zS<2FuWDq>Z_?K&vHDri~yu`nXa(IaYls1G`sQEIVL?UUsRLYt=vp@M)c z<{%Q%uIJ^-CT<2AaWB#;ys|ixlQ#Dvy;PyZhfenBhAvrgKx+1*;1I58I3VZkM?0B` zK6g4*W8XIN6zwpW|FS7>Ikc_0L`}sSY0@EA@H>?CFL7g6>ffvN@3rz}_W0O(vuu-F HG2(v!{eo*n literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/entity/Entity.class b/Java-Knight/target/classes/org/project/entity/Entity.class new file mode 100644 index 0000000000000000000000000000000000000000..9b8e18cd7a573f6dafd428a32c88c56c9cd2d766 GIT binary patch literal 241 zcmZ{e%MQU%5QhJuwA5{DV_h5P0jwkl2_cc#kLKjGRVvLPyqbjv@K9n}Yn%D!@@4Y9 zKhGC{8M-bignpJAb;+|thgRvcjqO9t%5dQjdI{fHrF=GOb0`>szlu#{C)RR!Bn*Pp z-w)&Ap5R29Q$jT;hNk7Cp7M!}mP@cKcAn98&G*H&gq8yBvTGjdd7KL5|71pmN1Y&y c$ODeJ)lip);KD1jfo7RLT0#)oQY+|u0U~5J?*IS* literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/entity/enemies/Dragon.class b/Java-Knight/target/classes/org/project/entity/enemies/Dragon.class new file mode 100644 index 0000000000000000000000000000000000000000..d5c161ebdaee2f2c6b75546d690079b7e24508a3 GIT binary patch literal 657 zcmZ`%>q-Ja6#hod&2_z2cE3mi+3)+#IdkUw=i>`N6^9B!4EvVd)d#lK6KzMAjxhAG-~-DX>SJzpR4_y| ztRTt|J(s3*E*QeaQd7k$VhU9EU!37+Rz;YObSAnmg(1aIuaccG6pHnFV-_}-?7>S~ zc7+p2DoANaBg2rNWdy>5KA#ACsNZ^)L3Q}EsBnXK1yx(DmzoOJmQ(*~s@S}1nS{Q! zIz&n}q$zGjMoZZDyw#^jwqdn-zsYUs`av+_Jjo%$@mw1V-TKO9l5UM`%1|gSL(jKB zZPWGov47+j2-NhQHL}~HCf#b|e%7-df8od@OT%$jh^9xQqkWycD>^f>*^>-=rSB8$ zafHVc~n@zDph z081bI06)sIXR?HlO3A}+&!zjEp3~ib{{H$6U<1#i@WHPjpdyG6L-K$hbECp*CFAwp zfmw7JLaSEIa@QFAT4pzbFd_<~Dq>I>CT*u=)E!%R8fMM4+$I^bYMBjVgKU$*SFSU# zoCr*)=o3-FD*v>#BTo8N3}BErKAOC4*BGYqorsoeR*lwG!+0xQvQZ3SSivm~#?viGOW`j~D3j2tZ8_G*HE!)^}teRVJ9g|nHVccX0)NT7i6dC9W7F68ABEw)0 zZw93E&W8j6oPw(%`TQ&35QFYIB-tfH&oebpd zBCqUn#}a$*FyNN02E+6v=w3C>QvLQlZDUgDb=T#^Lxyp!S8z*MnR>|O4wZ)?{U1k$ z*p|tUo9C#3vdJq9@q!@P=5;UMAOUSruZ78Oiw0we(6ZGw3^Q8h5=XDzqGA{9Bd2I? zT0)knY~dwQ7OHrdCWR7(p9Y7Tmi|651kzGllMT~-5KHtoXjh^80NIrO158h!Lea-g z5!V+_k^Cm3Zqt95B7it~CJ>?VNFYhr{kTJ?dMh5wxJx@il6*|A1fx%`L@s{fq(=6b zU(jCM#q@V4P}2KEeL*M&9yCKyq822>E!Q?l4EG3{Mi%$6;sI`wkBCYv=qE^?A@viZ zK6GP_(lgQ>n29!K0uS&|Vm@kPu6vk~@0c8zKZDi{H$i$%cECm2aFI6LV}!gEt5O5f zOujjpdN1^**V7mOOiBnVj)Wq~)VU;nT-0Ee)SV+a=1ECSOs3=(Qiw{lYLKNhX+2Jd zs~GX94YI;1DEPk6!Y5HhX24C3+pPf>ecAQfCu{l7-M2EA=&5wv&Lgt8ZBYBq!b9B<%vWS&&H23 z&Z-B%wwakXZQpzC=hy2yfDR6Qc!VQkpTyXjp-P?5PGw@Q9s&_?{)`NjwE4@gCLhw?Fc-+RpZf&w9-75WAo(c;70DqJ? z@dLEbU3fF|W_WLQ-#=d70Q9i$phP$@`F%Le&6pD#YRhT(#A<4?S(vJ1#FkwUDjqga zB~;IKrfru{Znk0H^lYpi6%OIa^NT}r<#PnLrRqvf5`)vA9kgFTw@Z|laGr%L!54HT7U-jf SKr-)p9y@4AMc5TAVeb=e)M+jN literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/entity/enemies/Vampier.class b/Java-Knight/target/classes/org/project/entity/enemies/Vampier.class new file mode 100644 index 0000000000000000000000000000000000000000..8965b304ae3bdabdccdb2f0741222a56f73e63af GIT binary patch literal 747 zcmah{+e*Vg5Is|?scE#f-tYICDwq#YMA3?Y;)_!8aji>THAzWVrJv=CqJsD+ev~*# zD^w{8VRmOT=ggd$`S^T(1yIC_fdpYD2&+yl3@&9wJ4#E>xs#$6_;u&#E(p&}5Rw+U z(L?CjRKC(%gf6>KHjzTF0W_@hfIO|44 z+=qSx84Cl*5*FGKzlh7it0@^0daF`52?&dJ;omHgszD1w7$)>H_CSi;#-8v*RmSSv zG)6IIVBEq4CJEymiYUe+38ofT@*A79-9ni=wi}!?Q>LVRd3fWU$?#a5UGqz>6ja1@ zS%fO`TaQV7q3VRCA7yuzxF8AbcAIl HN+ACQq^Po& literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/entity/players/Assassin.class b/Java-Knight/target/classes/org/project/entity/players/Assassin.class new file mode 100644 index 0000000000000000000000000000000000000000..fcdb37eb0b645cf1f929eb74897513e9f2cc2ef8 GIT binary patch literal 1354 zcmaJ=TTc^F5dKb!Y^kkO6hSU>iWF&4S3tZ~(Mm87s}PGN#21h42`ug{y9YQzBT18*Z?99%5-*@KBeEad~D}Xs%*AQXgj<=?}p0gn< zfo=rS(jQ6TI<~J{qOvXn83#jK0{hU;(0}2#Y>@OxI0$d5L-ewg}tVi0?)A5^2O%5 z7Qri_@I4Y5l9ZHuw%maf4r=I1;1CWo9B&5vLrCKm3=zv^U<(~Mf*uXM2^>WqL#j#M zwol!o);OC1Lw8NM;pj`GIw0**Sa}Tt3|-B9vyMsKis2Z&ME||1Y3uv*H@vhoH@i?M z^1||RVfJR4Q>_2q87mHsw1(jXj$?%3P{`fNz@WK`&$LOx9?i>^V;CjbA=S$K;$mq& zt)OEVW9Zv``DORrYko&ooGs~X^NM4+CXGOqtCr;w7+3v@th+IsVi+KhNlVr2JmvFq zg<_i5oEo6ca4^i^Ej$yo!U>D>`6cd2KX5!*y~M})#I!1;VViZTlA*I`*z)$K^+0;d z;(;i%>pvSr$bKzM7Cp1c1)nM4{GiZoeLxVMDckiIU3$q+9&n_flUFw`BBjfp$0 z1R_m+-%r~LL}?B8VT8^}@{05wA$vGC{uylbBch+7k?Ht|_*;rcFhyrP%t_LiAHZ4i zkJM@~jdSEtHO}J#Au?RVr8@Ex%8Amy(Sa8jc^vtfOI6>aa|hjBgC8)YY^H8ckX2mK zkn0$&IEbl@P&ITTi5@z8F-VJ&L4U~4YskO(N0G;6;w3g*p}GiWLOhnC;8nEOB|Qr- z56t9N-yxgoy#F5AocgN1LPw}CtNwJR;ti=M>k?1b?U@#-!-x^h5H*$)X&QaBPZ?_M bDLSV^DJMd?iBQ^1U2a`k9|f;bc?5-DWmrP^ literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/entity/players/Knight.class b/Java-Knight/target/classes/org/project/entity/players/Knight.class new file mode 100644 index 0000000000000000000000000000000000000000..2101efbaf75d2e184a17f1065e62034c117fb2e5 GIT binary patch literal 1743 zcmaJ?TT@$A6#jNXI1mnyrUgn>U(bI9u#P=~9^5iQtZHd0Oqnc3Vj>45&z8kYVtlZs~HBA-UZ`xa7=T({??r zV(IOUEc!wc3I>uGfvRBCk2JFQRy zQ0?`*0CqP3-NzsT6hJBD8pBB8nu4^7>$q_>kgx`Zgm=Q-7DM*`vjRDY;9+~ zR4!Jt#d^J1s?29em)XB-Cb5h+6}+Wl1scQkAos-#42t9DGc1D8r*FB&5Z)%(L8?k| zZF_rbJ`BxpPsO{q&oI^&GGOQtH+fqGQ&vvXq`t4>1ANFZW%5H&vaKeUySnVq$&=iY zo}aRuyF4s3xFx$qfyS%4B_1D{2g0rM1A{c_s@>#9gS)yfN6G=&(J9zMzrMU0&Tu9Q z6x!lu5U8gU;fykj)*R8)x$&yib62&xoNLgC=~hd8MK?@xmuO(f^aBwM2PK!fpM13D zkJ1)*q5_gN`^asI4c#wsB!s%+<0IzRY+HKL<<6Fn9lJ%XuafrV_rJV6{UIAN{vgZ7 z2k|(GZR{xc+-Lm@hQz@bB(`!uzW0Qm!%5(;X$ZUGT)bze;s9@Fk}I0YqZSBme*a literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/entity/players/Player.class b/Java-Knight/target/classes/org/project/entity/players/Player.class new file mode 100644 index 0000000000000000000000000000000000000000..282c70ed25f13d9a16beafe7c5be0153c2e6a3af GIT binary patch literal 3909 zcmai0YgZfB72N}Z5n{kH*tiA<3+$vIYzu7HPOQW>FIxo3&_JNJ+cbkTz!*uRN&^Xf zzmlfzBTb*K+pN{B)wTMiA6l>AwCQSpKz~NRXZ0Vn-RI6&4ALz3gYLa^btUN14o|-^}G< zw@SgZNS!p0z!3d-!!j#QnV_>l)V6DtQr=&+)T$CuYNrgG#MLKhIq}l7yl^8yQOFAwacpfhh`~PuRL-&T|W-N1Ocg8H48zhs# zp6f&!FY0*7z*St+a6D+m5B98zxrUf)Zdp%sBO`Mjgh>Naa(*YR=ghJ>?bKWyGYnPG z)U;D{s)Uk^V>WM(HRg@LTSvFUnVMDf`m zob24q%yKiFB?el-Ni5|imof@a6t8MH@yYN0{>k4y`1fDlO(eX$9ZJ-eAyyFv9tFWE73PUm6#piW=!N6;R@|hrUDs_WN$T-jobzaR9&DRZ>Qr3qH zR-Sp5pV_XOYj%-k8bzKc6?Vb(=)N$X^*}zl@8Mw@c;2mM78dH>vHS+8H&IF?GK<7n za~*=ck{Fv97d1K7HgHdl)z|G}v9QhRc{LFim(8^zcY3l;-Yl+|Ra?IO&4{~cGZ{`DFdW*p(i*y!DpuY$i<7Qv=C@cxBVlS@ z0i>Dm>@cobCI95-DU!tO+S0B%RlPm2KKL~2V!Tr&=M(Yvf@+3>Qqbkhitl23!7t#* zrezj2L?r}LdxR&;%pz0W4~w4)j1y7cQa$v@NJyEm2~r@#HXh}iliuxZ<@UF7-0I-J zUI!(|G}M%<4e|BtsrJdP9Hwv}-d>H)1@8fNsXI*iC1<;uw{F-H_)hQMIVXLS`8(w} zZq2Qlm7L{nIt8|wpLlhBp`;4(Bfmx!YgZDQr0}73{4|E2;paMjA)V!y8cy$DEp~aw z*|JjJ4dXSN8)lwGu&d!gFwK2I@8FDCE)=cW>8#^yZCBFGy(qAAKyi7uVugs`4aj>p zbvhV1-^8?8EH1H4FrAILa@nd*7tLDDs_FQ(hG(063WKWSHze%oqRcJNFAVX*ZGpy% zBZ`RJ&g{;R`&Z4pP&r5B?ZCN39s}x|PXP7JyI;+`@j3U}! z#tVDU)!3!RxEgztt$XN8j_sj8d1eoT$+LSH{js{`Sn!Y>}J9MaTETxwA(ajKOdzl5p}b)NsU^1qHpc&_KnW1QQE zAkQtJUmh>&h=eCtKcWLQxHLm$Y?BS)atCkthToyI=wBa8eu%-xxcFCGX+iS#hlqO{ z*GWrUPMzhcGT-!OU;Jat0SEB(qn-9nl8^*rHB47d;Vd6M*SHc2`n>b%_^$i-G`v|y z`7eFvxM=)MTuuJS-Zah!{ z0Mhic?;*MsBk`D!k@U9o$R7}q01*21*_6a952`tcQJh@A1&Iuq~tOiZaW;<4AIOn4f9UB5@Cu+b%3 zk}@7aLdcp=M8Tie4-hg;Z-8l5?F{o_mIU2otma73%cNr-lgI{0nF^4?vKS=1uhrpQ zCIKqB1xPQ$v+uE284EmXF<`C3x2ECibt4yoM#P(aBa#rnE1?FyQ8#djQX&^62!>#D zU*7|l534pn{!-w#n9Zd9&@D&NNs nLX`U&Vef<}x8jE?CO^WDIY(*cJ^tRsulNH!|&w>bVkD8oM} literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/entity/players/Wizard.class b/Java-Knight/target/classes/org/project/entity/players/Wizard.class new file mode 100644 index 0000000000000000000000000000000000000000..2befa708bcd3ee4674d73efad48846280ac7b99a GIT binary patch literal 1358 zcmaKrT~8B16o%hvku9Z2K|rOTQxIv3utmhLDq0B!VpU?X#CYS_PGEJvvRyQI?Ujjl zUK-_gw~AYl&-v2~Y$Evd|b6!xpMnB{ihAOg;mmUn4!0|n|a5igG(UGz%#dJX00F3-|*`4 z!u(RX!pkcw<@qaFPJ5Z#MJtI>9MLeA!cmMf>m# z2`lIfJwXKDR(Lv0oVGY$T;`r^`i>_XXZZx5DXK&ow0Wl?8M-TmEw61@ccr%??wYjI zTXE{btO?Iheze)r$8u$*QyA)#YVFb=Vn_PANQO zY1BIDi2`wYetR%Z-{a&}XdNTlSD5$$cIy-3U!alc_=MzJ+K*v|zR4hFFAaDaC&(WN zb1;jOpl9@eYEULKY%WJDhKG1a10`c42l>IaCj*67iStJoFfbp$9aN_VJ@i2 zinMtF?GfQqN>f2|3aUGO=#Ju3tHvvIwBjbWaF0cpQ;{w1fSaXr9wE_Df*hmYI3@{p Y7I{J`1h}bCHNuV125Ivm!NgGh163|Txc~qF literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/armors/Armor.class b/Java-Knight/target/classes/org/project/item/armors/Armor.class new file mode 100644 index 0000000000000000000000000000000000000000..8d7205b12f55170ee1b8311c9aff9a1b4d5734b2 GIT binary patch literal 1204 zcmaJ=O;6NN6g{2kP^cZ~d;kgvj0!>#>OvC}jftQpV^Cu-lgO^qc|e(ul1|6yk8x+> z#*K-ii3@*#KgxJ+XHpv^Zr;1^_TF>OJvaUJ`^QfJPvDx!A#XspP{4!+`_y~uxgD=} z?7nQCDnHgR@gV30@k0&yjm^dsCNX8ev~UTQhO1$8?4CuTRJuW|x~>;>!>I2*l1oFe z>%DtCh`eUd3F7w}w7LLHTbPkhv02$Z^C1 zPnygqCzkNm#bDlLSsl2$7WE{zlnAVbdt;FPd3aiA)SFBaZRDesOaG7|eTrpZ4Ctg&!C17?iD zG;E|0&&Ci{kyml3eL;30>&W1ZY;m}XEw11e&DqZ2R#V(fI25=_ZkM;XQ6OURGlS7K lWf#EhOmiV^-ny{aKHq%j!sc13`j@$KzWLsT&D)8-oj_8{0LHk9;J^*w#qiN0+-kE*-;CbKqE1yU%T$x0i0poh6de);UI+thRslQYGW1lgdf#pB!)GvhM}6& zj^f0ya3DuAI%G&y>h)^NLK>C{+rc6nhV8#zUyNj@8zl@om@3|u0~y^hu)0l*tb-g} z2HWonzkjR*?=$F?YKy@*2?N29Ysitfnhx7SUGw&UCWS`m^FfO%8TZN1h`MsZu+#X5 zlYNGKAbb+@Pv;zEni2Q=mwcQc?PfStzBre$s5|$Q-5$T?D3g7SZV8HX7Pu7i)a^m1 z3a~sk=LWA}kF%8m#rWocNe|OlqRRPR#4=W>V<`SWL;@*$PcU8k9(nI(Rt3*6AK-X8 rW$y)<7_K9R7s&&VfrTteV`wT87XXeMkH literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/armors/WizardArmor.class b/Java-Knight/target/classes/org/project/item/armors/WizardArmor.class new file mode 100644 index 0000000000000000000000000000000000000000..e0dd1af23719c3dd5818b2cf03b40306c5a5f5c8 GIT binary patch literal 536 zcma)&%SyvQ6o&sv+NOjvoK2+ir^Ir)lH@1a+(ZwdP|w6f`XTJZR^YQui4&VfmMq?`wV)m-eyP~1-@X&H|0p2Plp|$E_i1^lVUUQ_@K>|jQV((2)lB^u+{vB zlU;^_FFX?Sj^`X@TOs%QXM7wZ%~mi~o;a0}s6F?S?H<43sFHn+ZV8HX7T6RE)a^j0 z3dlINY5T8WkF%8`#pvdMK@Zbdq{{kULoyw3mQZNt5I<)f!g50GJ}( zGs&BI^CmNSU*8{}03I=o5nvEOOb}v7m>$$o$x1b)+~x;ebcEs3G^Se-28(nbVMMsK zu9R=idR>}M*Rrrp+t(_ubSu}tJwdGPizXzQY4oPAbM1D1i7?A-p{l)d#`DWibg!l* zq}f03KM>+)+q*(P8GkhSdwuVHh&dv*=Yu%eAmf;sJaZttdk39(5FlpsG9YlpI63zr M*K1~k8^!?14`|Rx$p8QV literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/weapons/Sword.class b/Java-Knight/target/classes/org/project/item/weapons/Sword.class new file mode 100644 index 0000000000000000000000000000000000000000..e732b02ab39af65f87adbf136e81e94fef9633d4 GIT binary patch literal 324 zcmaKo!A=4(5QhI*78c4XD-QsA0}pQE%}BTyNH*DU!7S&pG+F{%QWkkGPb3_803V7t zMX%aP{{G)&I@9*+d^`ad;YPqiC4e8IiW;G7>|4CCW~uTr)}>mGd;$|6&%3&`NcoCcE`q*;hGVai*P`T&^-{wd3EU zU%u-t;Wquh`7=RG&Ccd(tX(g08Tqi39};&6_M->fL!Sn>59nidwI?-b!4xmp) Z4^3A0B~ArX$S(XT#TBlZ`1-6KqHpy}NB{r; literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/weapons/Weapon.class b/Java-Knight/target/classes/org/project/item/weapons/Weapon.class new file mode 100644 index 0000000000000000000000000000000000000000..e2050f7a8eed2af72cfb5df68fe4f598d47deb9b GIT binary patch literal 697 zcmah_%TB^j5Iq;lySx!pKx7A9*bmUSL5)pN7aCk&@TQc|mXw0=pWK*8OkDT@ew1-; zONL%C@NxzGZZF#$@M9BO#Nm!5hI@=equS6f65T; zbO$LUkxC$~A_JA7<$9(*^ITb}TfVUMN5N;VGuQ6}&yeX`=GZ^uHa7(WGh~CDio9fJ zE(Kpcg?|z+swhc3X>*77+_@ayF$|+SU{HGQ12xF^Ek|50?4j`P_;5-{sqc>Xbih4J z=4(*#$JU&o-Tz15F+T`^f%*Y>$Q2_E_YeW=n& z^je&SnfZNuGt2z^9=-v*pzEWCx(6pf11{l4n~!L1^ipOvQdZ{CmlSJVY@%6J3GS0B zlpS-^kK=fddT0`E{~gOkwvbj5>it1VaGv!$Lnl#%oNn{EG;d`y)~JfsB&9y`gXJwp8|LA_{uVfUjr@9KGOpn?f`!nUWM1qJ!r>N ZL%YN+JLN literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/weapons/wand.class b/Java-Knight/target/classes/org/project/item/weapons/wand.class new file mode 100644 index 0000000000000000000000000000000000000000..dcb4d2887f7fa36a0f7f85667969cf3b8b3c93ae GIT binary patch literal 321 zcmaJ-u};G<5Pg@XN$Ug%-2t&R9h$iUu^^BlA{J1X-P8hCZCtr2`L0e#9ryq~3UQ{a z^ejEUce-~z-`Dr<6Tlr#1w3>@_%XT&2p7h_W-Dvvs%kRbsAbkFxia-Sd-=Ty!L_b+ zbHikq=XqL&=n>BTwY9RI5jw-PB>1;xrU)m6uGQmaIaT&qP8XaR6sD4kQd;fwU(#>h z^qMCs4)(qxh$pkLmAcoiRo^{0p38TMON9J67sRKFKBHhYfzJ$xMu|uslJgJHmZgV? Y(d`3l6zCyl7Vk@Ogkx4bJfnx?2e4m8;Q#;t literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/location/Location.class b/Java-Knight/target/classes/org/project/location/Location.class new file mode 100644 index 0000000000000000000000000000000000000000..3fb3f3406c76b4170c43eb866e852b18633a30b4 GIT binary patch literal 1760 zcmaJ>U2_vv7=BKYb~j-Q>6W&X6dSOmY1GCK)N1-6ln)~*#V)3%ptw!8$wJu0-Ax6r zz4tFT+;GE%jo!|cc;b#CBu$4j# zaRmttedrfR-!iw&Ld$d-h1JblRxJ?dpSK-5SQLooW-1C)fuT^T9oVhHSeV3$qkXw7u$ z?wu6U9WO^U3}b}kyihKn_n>ri3303o5e8%gp6xVL9H&{r*5@c zDqaxKvSl}DwtoHIvn@wORzS&Ka_QYuaY`OmTrWIK3M8{7-*OtJS66Xb!t%~GRpbN) zvMaV@`cl$p6FEC5~IOy#b3 zV(h6-ai%A1saBMAcwH9r4S}&-&+W3?YOxNiKyjub3-zXkw`7%)-OBhW%;6mc?`kMw zUSRN`7fMcGH7t+OZ=0>QwYnuRk}E~dLq3s4=zmee65eBd&3c{njaWQGdqeU(r(qfA z1romfr4{y9Nf!8`hD&&#z8vdbKwK)&7q1k2py4vgRBc!k4?jzx)39VPhbtOZC9-Ne zK}9l_#vf`}gF$0o8c*j+|C!ESs!Wh!Hykr)d*s-g@BQAN?*ZyGS#hx_knhR7t%9b_9+@cr@1zlazzEFR z?G^KG1Ryh75jb3Hx~^{>jO5W=Z&9OQI3w&=&no$s<-qbC*r3R8+g{DOXiJgxj8W~=PZ-sHeZr_J`bndz>Mt7AbiY2uRne!ps``xa z1TXF3wH=&^&u7xf2N=#jMk?_HZ|`DZ{VO3JKK