From 1869df05646a8401b6147ae0ebc417381966fda3 Mon Sep 17 00:00:00 2001 From: Arshida_0 Date: Mon, 11 May 2026 00:40:31 +0430 Subject: [PATCH] HW 04 --- .../src/main/java/org/project/Main.class | Bin 0 -> 20137 bytes .../src/main/java/org/project/Main.java | 904 +++++++++++++++++- .../main/java/org/project/entity/Entity.class | Bin 0 -> 236 bytes .../main/java/org/project/entity/Entity.java | 15 +- .../org/project/entity/enemies/Dragon.class | Bin 0 -> 796 bytes .../org/project/entity/enemies/Dragon.java | 31 + .../org/project/entity/enemies/Enemy.class | Bin 0 -> 1539 bytes .../org/project/entity/enemies/Enemy.java | 61 +- .../org/project/entity/enemies/Goblin.class | Bin 0 -> 679 bytes .../org/project/entity/enemies/Goblin.java | 20 + .../org/project/entity/enemies/Skeleton.class | Bin 0 -> 920 bytes .../org/project/entity/enemies/Skeleton.java | 35 +- .../org/project/entity/enemies/Vampire.class | Bin 0 -> 820 bytes .../org/project/entity/enemies/Vampire.java | 27 + .../org/project/entity/players/Assassin.class | Bin 0 -> 996 bytes .../org/project/entity/players/Assassin.java | 30 + .../org/project/entity/players/Knight.class | Bin 0 -> 1219 bytes .../org/project/entity/players/Knight.java | 40 +- .../org/project/entity/players/Player.class | Bin 0 -> 6368 bytes .../org/project/entity/players/Player.java | 244 ++++- .../org/project/entity/players/Wizard.class | Bin 0 -> 920 bytes .../org/project/entity/players/Wizard.java | 26 + .../src/main/java/org/project/item/Item.class | Bin 0 -> 185 bytes .../src/main/java/org/project/item/Item.java | 9 +- .../java/org/project/item/armors/Armlet.class | Bin 0 -> 242 bytes .../java/org/project/item/armors/Armlet.java | 7 + .../java/org/project/item/armors/Armor.class | Bin 0 -> 1824 bytes .../java/org/project/item/armors/Armor.java | 74 +- .../org/project/item/armors/Cuirass.class | Bin 0 -> 246 bytes .../java/org/project/item/armors/Cuirass.java | 7 + .../java/org/project/item/armors/Helmet.class | Bin 0 -> 244 bytes .../armors/{KnightArmor.java => Helmet.java} | 6 +- .../org/project/item/armors/Pauldron.class | Bin 0 -> 247 bytes .../org/project/item/armors/Pauldron.java | 7 + .../project/item/consumables/Consumable.java | 8 - .../org/project/item/consumables/Flask.java | 16 - .../org/project/item/potions/Potion.class | Bin 0 -> 1162 bytes .../java/org/project/item/potions/Potion.java | 55 ++ .../project/item/potions/healthPotion.class | Bin 0 -> 873 bytes .../project/item/potions/healthPotion.java | 20 + .../project/item/potions/mixedPotion.class | Bin 0 -> 919 bytes .../org/project/item/potions/mixedPotion.java | 23 + .../project/item/potions/strengthPotion.class | Bin 0 -> 839 bytes .../project/item/potions/strengthPotion.java | 34 + .../java/org/project/item/weapons/Bow.class | Bin 0 -> 238 bytes .../java/org/project/item/weapons/Bow.java | 7 + .../org/project/item/weapons/Dagger.class | Bin 0 -> 244 bytes .../java/org/project/item/weapons/Dagger.java | 7 + .../org/project/item/weapons/Halberd.class | Bin 0 -> 246 bytes .../org/project/item/weapons/Halberd.java | 7 + .../java/org/project/item/weapons/Spear.class | Bin 0 -> 242 bytes .../java/org/project/item/weapons/Spear.java | 7 + .../java/org/project/item/weapons/Sword.class | Bin 0 -> 242 bytes .../java/org/project/item/weapons/Sword.java | 23 +- .../org/project/item/weapons/Weapon.class | Bin 0 -> 1248 bytes .../java/org/project/item/weapons/Weapon.java | 50 +- .../java/org/project/location/Location.class | Bin 0 -> 569 bytes .../java/org/project/location/Location.java | 17 +- .../target/classes/org/project/Main.class | Bin 0 -> 23785 bytes .../classes/org/project/entity/Entity.class | Bin 0 -> 236 bytes .../org/project/entity/enemies/Dragon.class | Bin 0 -> 1013 bytes .../org/project/entity/enemies/Enemy.class | Bin 0 -> 1995 bytes .../org/project/entity/enemies/Goblin.class | Bin 0 -> 893 bytes .../org/project/entity/enemies/Skeleton.class | Bin 0 -> 1156 bytes .../org/project/entity/enemies/Vampire.class | Bin 0 -> 1031 bytes .../org/project/entity/players/Assassin.class | Bin 0 -> 1358 bytes .../org/project/entity/players/Knight.class | Bin 0 -> 1622 bytes .../org/project/entity/players/Player.class | Bin 0 -> 7752 bytes .../org/project/entity/players/Wizard.class | Bin 0 -> 1280 bytes .../classes/org/project/item/Item.class | Bin 0 -> 185 bytes .../org/project/item/armors/Armlet.class | Bin 0 -> 324 bytes .../org/project/item/armors/Armor.class | Bin 0 -> 2392 bytes .../org/project/item/armors/Cuirass.class | Bin 0 -> 328 bytes .../org/project/item/armors/Helmet.class | Bin 0 -> 325 bytes .../org/project/item/armors/Pauldron.class | Bin 0 -> 330 bytes .../org/project/item/potions/Potion.class | Bin 0 -> 1575 bytes .../project/item/potions/healthPotion.class | Bin 0 -> 1152 bytes .../project/item/potions/mixedPotion.class | Bin 0 -> 1217 bytes .../project/item/potions/strengthPotion.class | Bin 0 -> 1120 bytes .../org/project/item/weapons/Bow.class | Bin 0 -> 317 bytes .../org/project/item/weapons/Dagger.class | Bin 0 -> 326 bytes .../org/project/item/weapons/Halberd.class | Bin 0 -> 329 bytes .../org/project/item/weapons/Spear.class | Bin 0 -> 323 bytes .../org/project/item/weapons/Sword.class | Bin 0 -> 323 bytes .../org/project/item/weapons/Weapon.class | Bin 0 -> 1673 bytes .../org/project/location/Location.class | Bin 0 -> 705 bytes 86 files changed, 1663 insertions(+), 154 deletions(-) create mode 100644 Java-Knight/src/main/java/org/project/Main.class create mode 100644 Java-Knight/src/main/java/org/project/entity/Entity.class create mode 100644 Java-Knight/src/main/java/org/project/entity/enemies/Dragon.class 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/Enemy.class create mode 100644 Java-Knight/src/main/java/org/project/entity/enemies/Goblin.class create mode 100644 Java-Knight/src/main/java/org/project/entity/enemies/Goblin.java create mode 100644 Java-Knight/src/main/java/org/project/entity/enemies/Skeleton.class create mode 100644 Java-Knight/src/main/java/org/project/entity/enemies/Vampire.class create mode 100644 Java-Knight/src/main/java/org/project/entity/enemies/Vampire.java create mode 100644 Java-Knight/src/main/java/org/project/entity/players/Assassin.class 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/Knight.class create mode 100644 Java-Knight/src/main/java/org/project/entity/players/Player.class create mode 100644 Java-Knight/src/main/java/org/project/entity/players/Wizard.class create mode 100644 Java-Knight/src/main/java/org/project/entity/players/Wizard.java create mode 100644 Java-Knight/src/main/java/org/project/item/Item.class create mode 100644 Java-Knight/src/main/java/org/project/item/armors/Armlet.class create mode 100644 Java-Knight/src/main/java/org/project/item/armors/Armlet.java create mode 100644 Java-Knight/src/main/java/org/project/item/armors/Armor.class create mode 100644 Java-Knight/src/main/java/org/project/item/armors/Cuirass.class create mode 100644 Java-Knight/src/main/java/org/project/item/armors/Cuirass.java create mode 100644 Java-Knight/src/main/java/org/project/item/armors/Helmet.class rename Java-Knight/src/main/java/org/project/item/armors/{KnightArmor.java => Helmet.java} (58%) create mode 100644 Java-Knight/src/main/java/org/project/item/armors/Pauldron.class create mode 100644 Java-Knight/src/main/java/org/project/item/armors/Pauldron.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 create mode 100644 Java-Knight/src/main/java/org/project/item/potions/Potion.class create mode 100644 Java-Knight/src/main/java/org/project/item/potions/Potion.java create mode 100644 Java-Knight/src/main/java/org/project/item/potions/healthPotion.class create mode 100644 Java-Knight/src/main/java/org/project/item/potions/healthPotion.java create mode 100644 Java-Knight/src/main/java/org/project/item/potions/mixedPotion.class create mode 100644 Java-Knight/src/main/java/org/project/item/potions/mixedPotion.java create mode 100644 Java-Knight/src/main/java/org/project/item/potions/strengthPotion.class create mode 100644 Java-Knight/src/main/java/org/project/item/potions/strengthPotion.java create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/Bow.class create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/Bow.java create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/Dagger.class create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/Dagger.java create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/Halberd.class create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/Halberd.java create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/Spear.class create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/Spear.java create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/Sword.class create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/Weapon.class create mode 100644 Java-Knight/src/main/java/org/project/location/Location.class create mode 100644 Java-Knight/target/classes/org/project/Main.class create mode 100644 Java-Knight/target/classes/org/project/entity/Entity.class create mode 100644 Java-Knight/target/classes/org/project/entity/enemies/Dragon.class create mode 100644 Java-Knight/target/classes/org/project/entity/enemies/Enemy.class create mode 100644 Java-Knight/target/classes/org/project/entity/enemies/Goblin.class create mode 100644 Java-Knight/target/classes/org/project/entity/enemies/Skeleton.class create mode 100644 Java-Knight/target/classes/org/project/entity/enemies/Vampire.class create mode 100644 Java-Knight/target/classes/org/project/entity/players/Assassin.class create mode 100644 Java-Knight/target/classes/org/project/entity/players/Knight.class create mode 100644 Java-Knight/target/classes/org/project/entity/players/Player.class create mode 100644 Java-Knight/target/classes/org/project/entity/players/Wizard.class create mode 100644 Java-Knight/target/classes/org/project/item/Item.class create mode 100644 Java-Knight/target/classes/org/project/item/armors/Armlet.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/Cuirass.class create mode 100644 Java-Knight/target/classes/org/project/item/armors/Helmet.class create mode 100644 Java-Knight/target/classes/org/project/item/armors/Pauldron.class create mode 100644 Java-Knight/target/classes/org/project/item/potions/Potion.class create mode 100644 Java-Knight/target/classes/org/project/item/potions/healthPotion.class create mode 100644 Java-Knight/target/classes/org/project/item/potions/mixedPotion.class create mode 100644 Java-Knight/target/classes/org/project/item/potions/strengthPotion.class create mode 100644 Java-Knight/target/classes/org/project/item/weapons/Bow.class create mode 100644 Java-Knight/target/classes/org/project/item/weapons/Dagger.class create mode 100644 Java-Knight/target/classes/org/project/item/weapons/Halberd.class create mode 100644 Java-Knight/target/classes/org/project/item/weapons/Spear.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/location/Location.class diff --git a/Java-Knight/src/main/java/org/project/Main.class b/Java-Knight/src/main/java/org/project/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..18fc86bb75ee43f24f76653430a6a88759cb46e6 GIT binary patch literal 20137 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 literal 0 HcmV?d00001 diff --git a/Java-Knight/src/main/java/org/project/Main.java b/Java-Knight/src/main/java/org/project/Main.java index 6bde20e..9ddcae8 100644 --- a/Java-Knight/src/main/java/org/project/Main.java +++ b/Java-Knight/src/main/java/org/project/Main.java @@ -1,15 +1,907 @@ package org.project; +import org.project.entity.enemies.*; +import org.project.entity.players.Assassin; +import org.project.entity.players.Knight; +import org.project.entity.players.Player; +import org.project.entity.players.Wizard; +import org.project.item.armors.*; +import org.project.item.potions.Potion; +import org.project.item.potions.healthPotion; +import org.project.item.potions.mixedPotion; +import org.project.item.potions.strengthPotion; +import org.project.item.weapons.*; import org.project.location.Location; -import java.util.ArrayList; -import java.util.List; +import java.lang.foreign.PaddingLayout; +import java.util.*; public class Main { - public static void main(String[] args) { - // TODO: ADD LOCATIONS TO YOUR GAME - List locations = new ArrayList<>(); - // TODO: IMPLEMENT GAMEPLAY + //color codes + + public static final String RESET = "\u001B[0m"; + + public static final String ELECTRIC_PURPLE = "\033[38;5;93m"; + public static final String YELLOW_VIVID = "\033[38;5;226m"; + + //colorful characters + + static String leftParanthese = ELECTRIC_PURPLE + "(" + RESET; + static String rightParanthese = ELECTRIC_PURPLE + ")" + RESET; + + // Locations + + static String[] places = {"Abandoned Docks", "Crystal Caverns", "Lava Pit", + "Cyber Alley", "Frozen Tundra", "Haunted Mill", "Sandstorm Gate", + "Iron Fortress", "Neon Rooftops", "Rainy Jungle"}; + + // Menus + + static String[] ForE = {"", "Fight", "Escape", "Main page"}; + static String[] ForM = {"", "Fight", "Main page"}; + static String[] UorEorR = {"", "Equip", "Upgrade", "Repair"}; + static String[] UorE = {"", "Equip", "Upgrade"}; //______________ + static String[] U = {"", "Upgrade"}; + + // Merchant items + + static Dagger d1 = new Dagger(); + static Bow b1 = new Bow(); + static Sword s1 = new Sword(); + static Spear sp1 = new Spear(); + static Halberd ha1 = new Halberd(); + + static Armlet a1 = new Armlet(); + static Pauldron p1 = new Pauldron(); + static Helmet he1 = new Helmet(); + static Cuirass c1 = new Cuirass(); + + static healthPotion hP1 = new healthPotion(1, 15, 10); + static healthPotion hP2 = new healthPotion(1, 25, 20); + static strengthPotion sP1 = new strengthPotion(1, 20, 10); + static strengthPotion sP2 = new strengthPotion(1, 30, 20); + static mixedPotion mP1 = new mixedPotion(1, 18, 5, 5); + static mixedPotion mP2 = new mixedPotion(1, 23, 10, 10); + + // Lists of Items in merchant + + static Weapon[] W1 = {d1, b1, s1, sp1, ha1}; + static Armor[] A1 = {a1, p1, he1, c1}; + static Potion[] Po1 = {hP1, hP2, sP1, sP2, mP1, mP2}; + + // Lists of menus + + static String[] sections = {"Items: ", "Weapons", "Armors", "Potions", "Main page"}; + + static String[] weapons = {"Weapon | Base damage | Grade | Cost", "Dagger | 10 | 2 | 40", + "Bow | 13 | 2 | 50", "Sword | 16 | 2 | 60", + "Spear | 18 | 3 | 80", "Halberd | 20 | 3 | 100", "Sections"}; + + static String[] armors = {"Armor | Base defense | Base durability | Grade | Cost", "Armlet | 15 | 4 | 2 | 30", + "pauldron | 17 | 5 | 2 | 40", "Helmet | 19 | 6 | 3 | 60", + "Cuirass | 21 | 7 | 3 | 80", "Sections"}; + + static String[] potion = {"Potion | HP/Mana | Cost", "Health potion | 10 | 15", + "Health potion | 20 | 25", "Strength potion | 10 | 20", "Strength potion | 20 | 30", + "Mixed potion | 5,5 | 18", "Mixed potion | 10,10 | 23", "Sections"}; + + + public static void pressKeyToContinue() { + System.out.println(); + System.out.println("Press any key _c_ to continue. "); + Scanner in_ = new Scanner(System.in); + String ___ = in_.next(); + } + + public static void pressKeyToContinue(String str) { + System.out.println(); + System.out.println(str); + System.out.println(); + System.out.println("Press any key _c_ to continue. "); + Scanner in_ = new Scanner(System.in); + String ___ = in_.next(); + } + + public static int menuMaker(String[] options, boolean horizontal) { + if (horizontal) { + System.out.println(); + for (int i = 0; i < options.length ; i++) { + if (i == 0) { + System.out.println(options[i]); + } + else { + String ln = " " + ELECTRIC_PURPLE + String.valueOf(i) + "." + RESET + options[i]; + System.out.print(ln); + if (i != options.length - 1) { + System.out.print(ELECTRIC_PURPLE + " |" + RESET); + } else { + System.out.println(); + } + } + } + System.out.println(); + } + else { + System.out.println(); + for (int i = 0; i < options.length; i++) { + if (i == 0) { + System.out.println(options[i]); + } else { + String ln = ELECTRIC_PURPLE + String.valueOf(i) + "." + RESET + options[i]; + System.out.println(ln); + } + } + System.out.println(); + } + + Scanner in1 = new Scanner(System.in); + + int chosenOption; + int a = 0; + do { + a = in1.nextInt(); + if (!(a > 0 && a < options.length)) { + System.out.println("Enter a valid number. "); + } + } while (!(a > 0 && a < options.length)); + chosenOption = a; + + return chosenOption; + } + + public static void home(Player player) { + while (true) { + int num8 = menuMaker(sections, false); + switch (num8) { + case 1: { + List wLst = player.getWeaponsList(); + ArrayList wLstNames = new ArrayList(); + wLstNames.add("Weapons: "); + for (Weapon w : wLst) { + wLstNames.add(w.getClass().getSimpleName()); + } + wLstNames.add("sections"); + String[] wArrayNames = wLstNames.toArray(new String[wLstNames.size()]); + while (true) { + int num9 = menuMaker(wArrayNames, false); + if (num9 == wLst.size() + 1) { + break; + } + if (wLst.get(num9 - 1).getClass() != player.getWeapon().getClass()) { + int num10 = menuMaker(UorE, true); + if (num10 == 1) { + player.setWeapon(wLst.get(num9 - 1)); + pressKeyToContinue("Equipped with the weapon. "); + } else if (num10 == 2) { + boolean res = wLst.get(num9 - 1).upgrade(player); + + if (res) { + pressKeyToContinue("Upgraded the weapon. "); + } + else { + pressKeyToContinue("You don't have enough coins. "); + } + } + } else { + int num10 = menuMaker(U, true); + if (num10 == 1) { + boolean res = player.getWeapon().upgrade(player); + + if (res) { + pressKeyToContinue("Upgraded the weapon. "); + } + else { + pressKeyToContinue("You don't have enough coins. "); + } + } + } + } + break; + } + case 2: { + List aLst = player.getArmorsList(); + ArrayList aLstNames = new ArrayList(); + aLstNames.add("Armors: "); + for (Armor a : aLst) { + aLstNames.add(a.getClass().getSimpleName()); + } + aLstNames.add("sections"); + String[] aArrayNames = aLstNames.toArray(new String[aLstNames.size()]); + while (true) { + int num9 = menuMaker(aArrayNames, false); + if (num9 == aLst.size() + 1) { + break; + } + if (aLst.get(num9 - 1).getMaxDurability() != aLst.get(num9 - 1).getDurability()) { + int num10 = menuMaker(UorEorR, true); + if (num10 == 1) { + player.setArmor(aLst.get(num9 - 1)); + pressKeyToContinue("Equipped with the armor. "); + } else if (num10 == 2) { + boolean res = aLst.get(num9 - 1).upgrade(player); + + if (res) { + pressKeyToContinue("Upgraded the armor. "); + } + else { + pressKeyToContinue("You don't have enough coins. "); + } + } + else if (num10 == 3) { + boolean res = aLst.get(num9 - 1).repair(player); + + if (res) { + pressKeyToContinue("Repaired the armor. "); + } + else { + pressKeyToContinue("You don't have enough coins. "); + } + } + } + else if (aLst.get(num9 - 1).getClass() != player.getArmor().getClass()) { + int num10 = menuMaker(UorE, true); + if (num10 == 1) { + player.setArmor(aLst.get(num9)); + pressKeyToContinue("Equipped with the armor. "); + } else if (num10 == 2) { + boolean res = aLst.get(num9 - 1).upgrade(player); + + if (res) { + pressKeyToContinue("Upgraded the armor. "); + } + else { + pressKeyToContinue("You don't have enough coins. "); + } + } + } else { + int num10 = menuMaker(U, true); + if (num10 == 1) { + boolean res = player.getArmor().upgrade(player); + + if (res) { + pressKeyToContinue("Upgraded the armor. "); + } + else { + pressKeyToContinue("You don't have enough coins. "); + } + } + } + } + break; + } + case 3: { + List pLst = player.getPotionsList(); + ArrayList pLstNames = new ArrayList(); + pLstNames.add("Potion | +HP | +Mana | Number"); + for (Potion p : pLst) { + String pData = String.format("%s | %d | %d | %d", p.getClass().getSimpleName(), + p.getExtraHP(), p.getExtraMP(), p.getNumber()); + pLstNames.add(pData); + } + for (int i = 0; i < pLstNames.size(); i++) { + System.out.println(pLstNames.get(i)); + } + pressKeyToContinue(); + break; + } + case 4: { + return; + } + default: + break; + } + } + } + + public static void merchant(Player player) { + + while (true) { + int num6 = menuMaker(sections, false); + switch (num6) { + case 1: { + while (true) { + int num7 = menuMaker(weapons, false); + if (num7 != 6) { + boolean b = W1[num7 - 1].buy(player); + if (b) { + pressKeyToContinue("There you go, The weapon is added to your storage. "); + } else { + pressKeyToContinue("You either already have the weapon, or you don't have enough coins. "); + } + } + else { break; } + } + break; + } + case 2: { + while (true) { + int num7 = menuMaker(armors, false); + if (num7 != 5) { + boolean b = A1[num7 - 1].buy(player); + if (b) { + pressKeyToContinue("There you go, The Armor is added to your storage. "); + } + else { + pressKeyToContinue("You either already have the armor, or you don't have enough coins. "); + } + } + else { break; } + } + break; + } + case 3: { + while (true) { + int num7 = menuMaker(potion, false); + if (num7 != 7) { + boolean res = Po1[num7 - 1].buy(player); + if (res) { + pressKeyToContinue("There you go, The potion is added to your storage. "); + } + else { + pressKeyToContinue("You don't have enough coins. "); + } + } + else { break; } + } + break; + } + case 4: { + return; + } + default: + break; + } + } + } + + //randomly drops a key from the enemy + public static boolean isThereAKey() { + Random rand = new Random(); + boolean res = 0.3 > rand.nextDouble(); + return res; + } + + //is used to randomly make an enemy in a random location + public static int randomIndex(int size) { + Random rnd = new Random(); + int num = rnd.nextInt(size); + return num; + } + + public static boolean playersTurn(Player player, Enemy enemy, boolean usedPotion, ArrayList combatActionsLst) { + boolean usedPotionTemp = usedPotion; + String eName = YELLOW_VIVID + enemy.getClass().getSimpleName() + RESET; + String pName = ELECTRIC_PURPLE + player.getName() + RESET; + if ((player.potionsNumber() != 0)&&(!usedPotionTemp)) { + combatActionsLst.add("Use Potion " + leftParanthese + YELLOW_VIVID + "0" + RESET + " Mana" + rightParanthese); + } + + String[] combatActions = combatActionsLst.toArray(new String[combatActionsLst.size()]); + while (true) { + int num4 = menuMaker(combatActions, true); + switch (num4) { + case 1: { + player.attack(enemy); + + String no01 = String.format("%s (%s) used light attack! (0 Mana)", + pName, player.getClass().getSimpleName()); + String no02 = String.format("%s has %d/%d HP remaining.", + eName, enemy.getHP(), enemy.getMaxHP()); + String no03 = String.format("%s Mana: %d/%d", + pName, player.getMP(), player.getMaxMP()); + + System.out.println("You chose to attack the enemy lightly. "); + System.out.println(); + System.out.println(no01); + System.out.println(no02); + System.out.println(no03); + pressKeyToContinue(); + return usedPotionTemp; + } + case 2: { + boolean b2 = player.heavyAttack(enemy); + if (b2) { + String no01 = String.format("%s (%s) used heavy attack! (8 Mana)", + pName, player.getClass().getSimpleName()); + String no02 = String.format("%s has %d/%d HP remaining.", + eName, enemy.getHP(), enemy.getMaxHP()); + String no03 = String.format("%s Mana: %d/%d", + pName, player.getMP(), player.getMaxMP()); + + System.out.println("You chose to attack the enemy heavily. "); + System.out.println(); + System.out.println(no01); + System.out.println(no02); + System.out.println(no03); + pressKeyToContinue(); + return usedPotionTemp; + } else { + pressKeyToContinue("You don't have enough Mana. "); + } + break; + } + case 3: { + if (!(enemy instanceof Dragon)) { + boolean b3 = player.defend(enemy); + if (b3) { + String no01 = String.format("%s (%s) used defending! (6 Mana)", + pName, player.getClass().getSimpleName()); + String no02 = String.format("%s Mana: %d/%d", + pName, player.getMP(), player.getMaxMP()); + + System.out.println("You chose to defend yourself. "); + System.out.println(); + System.out.println(no01); + System.out.println(no02); + pressKeyToContinue(); + return usedPotionTemp; + } else { + pressKeyToContinue("You don't have enough Mana. "); + } + } else { + pressKeyToContinue("Useless against the dragon. "); + } + break; + } + case 4: { + if (player.getMP() >= 12) { + player.spendMP(12); + player.heal(enemy, 10); + + String no01 = String.format("%s (%s) used healing! (12 Mana)", + pName, player.getClass().getSimpleName()); + String no02 = String.format("%s took +10 HP", pName); + String no03 = String.format("%s has %d HP now.", pName, player.getHP()); + String no04 = String.format("%s Mana: %d/%d", + pName, player.getMP(), player.getMaxMP()); + + System.out.println("You chose to heal yourself. "); + System.out.println(); + System.out.println(no01); + System.out.println(no03); + System.out.println(no02); + System.out.println(no04); + pressKeyToContinue(); + return usedPotionTemp; + } else { + pressKeyToContinue("You don't have enough Mana. "); + } + + break; + } + case 5: { + boolean b5 = player.specialAbility(player, enemy); + if (b5) { + String specialAbility; + if (player instanceof Knight) { specialAbility = "Shield Bash"; } + else if (player instanceof Assassin) { specialAbility= "Turning Invisible"; } + else { specialAbility = "Spell Casting"; } + + String no01 = String.format("%s (%s) used %s! (15 Mana)", + pName, player.getClass().getSimpleName(), specialAbility); + String no02 = String.format("%s has %d/%d HP remaining.", + eName, enemy.getHP(), enemy.getMaxHP()); + String no03 = String.format("%s Mana: %d/%d", + pName, player.getMP(), player.getMaxMP()); + + System.out.println("You chose to use your special ability. "); + System.out.println(); + System.out.println(no01); + System.out.println(no02); + System.out.println(no03); + pressKeyToContinue(); + return usedPotionTemp; + } else { + pressKeyToContinue("You don't have enough Mana. "); + } + break; + } + case 6: { + if (player.getPotionsList() == null) { + pressKeyToContinue("You have no potions. "); + } + else { + ArrayList potionsMenuLst = new ArrayList(); + potionsMenuLst.add("Choose a potion: "); + for (Potion e : player.getPotionsList()) { + String potionName = e.getClass().getSimpleName(); + int extraHP = e.getExtraHP(); + int extraMP = e.getExtraMP(); + int number = e.getNumber(); + + String eData = String.format("%s +%d HP +%d Mana (%d)", + potionName, extraHP, extraMP, number); + potionsMenuLst.add(eData); + } + + String[] potionsMenu = potionsMenuLst.toArray(new String[potionsMenuLst.size()]); + int num5 = menuMaker(potionsMenu, false); + Potion p = player.getPotionsList().get(num5 - 1); + p.consume(enemy, player); + int n = p.getNumber(); + if (n <= 0) { + player.removePotion(p); + } + + usedPotionTemp = true; + combatActionsLst.removeLast(); + + String no01 = String.format("%s (%s) used a potion! (0 Mana)", + pName, player.getClass().getSimpleName()); + String no04 = String.format("%s Mana: %d/%d HP: %d/%d", + pName, player.getMP(), player.getMaxMP(), player.getHP(), player.getMaxHP()); + + System.out.println(); + System.out.println(no01); + System.out.println(no04); + pressKeyToContinue(); + + return usedPotionTemp; + } + break; + } + default: { + break; + } + } + } + } + + public static void fight(Player player, Enemy enemy) { + Scanner in11 = new Scanner(System.in); + + boolean hasntResurrectedBefore = true; + + String eName = YELLOW_VIVID + enemy.getClass().getSimpleName() + RESET; + String pName = ELECTRIC_PURPLE + player.getName() + RESET; + + ArrayList combatActionsLst = new ArrayList(); + combatActionsLst.add("Your turn: "); + combatActionsLst.add("Light attack " + leftParanthese + YELLOW_VIVID + "0" + RESET + " Mana" + rightParanthese); + combatActionsLst.add("Heavy Attack " + leftParanthese + YELLOW_VIVID + "8" + RESET + " Mana" + rightParanthese); + combatActionsLst.add("Defend " + leftParanthese + YELLOW_VIVID + "6" + RESET + " Mana" + rightParanthese); + combatActionsLst.add("Heal " + leftParanthese + YELLOW_VIVID + "12" + RESET + " Mana" + rightParanthese); + if (player instanceof Knight) { combatActionsLst.add("Shield Bash " + leftParanthese + YELLOW_VIVID + "15" + RESET + " Mana" + rightParanthese); } + else if (player instanceof Assassin) { combatActionsLst.add("Turn invisible " + leftParanthese + YELLOW_VIVID + "15" + RESET + " Mana"+ rightParanthese); } + else if (player instanceof Wizard) { combatActionsLst.add("Cast a spell " + leftParanthese + YELLOW_VIVID + "15" + RESET + " Mana" + rightParanthese); } + + boolean usedPotion = false; + + while (enemy.isAlive() && player.isAlive()) { + + boolean bbb = playersTurn(player, enemy, usedPotion, combatActionsLst); + + usedPotion = bbb; + + if (enemy.isAlive()) { + enemy.attack(player); + + String no0 = String.format("%s's turn: ", eName); + + String no6 = String.format("%s has %d/%d HP remaining.", + pName, player.getHP(), player.getMaxHP()); + + System.out.println(); + System.out.println(no0); + if (!(enemy.isStunned())) { + if (enemy instanceof Goblin) { + String ability1 = "Critical strike"; + String ability2 = "Critical hit"; + int damage3 = enemy.getWeapon().getDamage() + 5; + + String no1 = String.format("%s used %s!", eName, ability1); + String no2 = String.format("%s! %s took %d damage!", ability2, pName, damage3); + + System.out.println(no1); + System.out.println(no2); + } + else if (enemy instanceof Skeleton) { + String ability1 = "Solid strike"; + String ability2 = "Solid hit"; + int damage3 = enemy.getWeapon().getDamage(); + String ability4 = "resurrection"; + + String no1 = String.format("%s used %s!", eName, ability1); + String no2 = String.format("%s! %s took %d damage!", ability2, pName, damage3); + + String no3 = String.format("%s used %s ability!", eName, ability4); + String no4 = String.format("%s took some HP back!", eName); + String no5 = String.format("%s has %d HP now.", eName, enemy.getHP()); + + System.out.println(no1); + System.out.println(no2); + if (enemy.getResurrectionStatus() && hasntResurrectedBefore) { + System.out.println(no3); + System.out.println(no4); + System.out.println(no5); + hasntResurrectedBefore = false; + } + } + else if (enemy instanceof Vampire) { + String ability1 = "Solid strike"; + String ability2 = "Solid hit"; + int damage3 = enemy.getWeapon().getDamage(); + String ability4 = "life_steal"; + + String no1 = String.format("%s used %s!", eName, ability1); + String no2 = String.format("%s! %s took %d damage!", ability2, pName, damage3); + + String no3 = String.format("%s used %s ability!", eName, ability4); + String no4 = String.format("%s took some HP back!", eName); + String no5 = String.format("%s has %d HP now.", eName, enemy.getHP()); + + System.out.println(no1); + System.out.println(no2); + System.out.println(no3); + System.out.println(no4); + System.out.println(no5); + } + else { + String ability1 = "Fiery breath"; + String ability2 = "Severe injury"; + int damage3 = enemy.getDragonDamage(); + + String no1 = String.format("%s used %s!", eName, ability1); + String no2 = String.format("%s! %s took %d damage!", ability2, pName, damage3); + + System.out.println(no1); + System.out.println(no2); + } + } + else { + System.out.println(eName + " is stunned!"); + enemy.toBeStunned(false); + } + System.out.println(no6); + System.out.println(); + + + } + else { + System.out.println(); + System.out.println( ELECTRIC_PURPLE + "~" + RESET + YELLOW_VIVID + " Victory " + RESET + ELECTRIC_PURPLE + "~" + RESET); + if (enemy instanceof Dragon) { + System.out.println("Congratulations! You have defeated the dragon. "); + System.out.println(); + System.out.println("Press key _c_ to go to main page. "); + String __ = in11.next(); + System.out.println(); + } + else { + System.out.println("+" + enemy.getXpPrize() + " xp"); + System.out.println("+" + enemy.getCoinPrize() + " coins"); + player.victory(enemy); + + if (!player.keyStatus(enemy)) { + if (isThereAKey()) { + player.grabTheKey(enemy); + String grabTheKey = String.format("You've just got the %ss' key. ", enemy.getClass().getSimpleName()); + System.out.println(); + System.out.println(grabTheKey); + System.out.println(); + } + } + + System.out.println(); + System.out.println("Press _c_ key to go to main page. "); + String __ = in11.next(); + System.out.println(); + } + return; + } + + if (!player.isAlive()) { + System.out.println(); + System.out.println("Game over"); + System.out.println("You have to start from scratch. "); + player.failure(); + System.out.println(); + System.out.println("Press _c_ key to go to main page. "); + String __ = in11.next(); + System.out.println(); + return; + } + } + } + + public static void fightTheDragon(Player player) { + Dragon dragon = new Dragon(); + Location finalLoc = new Location("The Castle", dragon); + + System.out.println(); + System.out.println("Location: " + finalLoc.getName() + " Enemy: " + finalLoc.getEnemy().getClass().getSimpleName()); + System.out.println(); + + int num3 = menuMaker(ForM, true); + switch (num3) { + case 1: { + System.out.println(); + System.out.println("You chose to fight the dragon. "); + System.out.println(); + fight(player, dragon); + return; + } + case 2: + return; + default: + break; + } + } + + public static void play(Player player) { + + while (true) { + int[] hps = {40, 45, 50}; + int rnd1 = randomIndex(3); + int EHP = hps[rnd1]; + + Weapon EWeapon; + int rnd2 = randomIndex(5); + switch (rnd2) { + case 0: { + EWeapon = new Sword(); + break; + } + case 1: { + EWeapon = new Bow(); + break; + } + case 2: { + EWeapon = new Spear(); + break; + } + case 3: { + EWeapon = new Halberd(); + break; + } + case 4: { + EWeapon = new Dagger(); + break; + } + default: { + EWeapon = new Sword(); + break; + } + } + + Enemy enemy; + int rnd3 = randomIndex(3); + switch (rnd3) { + case 0: { + enemy = new Goblin(EHP, EWeapon); + break; + } + case 1: { + enemy = new Skeleton(EHP, EWeapon); + break; + } + case 2: { + enemy = new Vampire(EHP, EWeapon); + break; + } + default: { + enemy = new Goblin(EHP, EWeapon); + break; + } + } + + int rnd4 = randomIndex(places.length); + String place = places[rnd4]; + + Location loc = new Location(place, enemy); + + System.out.println(); + System.out.println("Location: " + loc.getName() + " Enemy: " + loc.getEnemy().getClass().getSimpleName()); + System.out.println(); + + int num3 = menuMaker(ForE, true); + switch (num3) { + case 1: { + String intro1 = String.format("[%s - %d/%d HP | %d/%d Mana]", + player.getName(), player.getHP(), player.getMaxHP(), + player.getMP(), player.getMaxMP()); + String intro2 = String.format("[%s - %d/%d HP]", + enemy.getClass().getSimpleName(), enemy.getHP(), enemy.getMaxHP()); + + System.out.println(); + System.out.println("You chose to fight "); + System.out.println(); + System.out.println(intro1); + System.out.println(intro2); + System.out.println(); + System.out.println("---"); + System.out.println(); + + fight(player, enemy); + return; + } + case 2: + break; + case 3: { + return; + } + default: + break; + } + } + } + + public static void mainMenu(Player player) { + + ArrayList MainMenuLst = new ArrayList<>(); + MainMenuLst.add(""); + MainMenuLst.add("Home"); + MainMenuLst.add("Merchant"); + MainMenuLst.add("Play"); + if (player.threeKeys()) { + MainMenuLst.add("Fight THe Dragon"); + } + + String[] MainMenu = MainMenuLst.toArray(new String[MainMenuLst.size()]); + while (true) { + System.out.println("Level " + ELECTRIC_PURPLE + player.getLevel() + RESET); + System.out.println("XP " + ELECTRIC_PURPLE + player.getXP() + RESET + "/" + ELECTRIC_PURPLE + player.getMaxXP() + RESET); + System.out.println("Coins: " + ELECTRIC_PURPLE + player.getCoins() + RESET); + int num2 = menuMaker(MainMenu, true); + switch (num2) { + case 1: { + home(player); + break; + } + case 2: { + merchant(player); + break; + } + case 3: { + play(player); + break; + } + case 4: { + fightTheDragon(player); + break; + } + default: { + System.out.println("Enter a valid number. "); + break; + } + } + } + } + + public static void main(String[] args) { + + Scanner in2 = new Scanner(System.in); + + System.out.println(ELECTRIC_PURPLE + "~" + RESET + " KNIGHT GAME " + ELECTRIC_PURPLE + "~" + RESET); + System.out.println(); + System.out.println("Enter your name: "); + String name = in2.nextLine(); + String[] characters = {"Choose a character:", "Knight", "Assassin", "Wizard"}; + int num1 = menuMaker(characters, true); + pressKeyToContinue("You have chosen to be a(an) " + characters[num1]); + + Player player; + Armlet armlet = new Armlet(); + switch (num1) { + case 1: { + Sword PSword = new Sword(); + player = new Knight(name, PSword, armlet); + mainMenu(player); + } + case 2: { + Dagger PDagger = new Dagger(); + player = new Assassin(name, PDagger, armlet); + mainMenu(player); + } + case 3: { + Bow PBow = new Bow(); + player = new Wizard(name, PBow, armlet); + mainMenu(player); + } + default: { + System.out.println("Enter a valid number. "); + } + } } } \ No newline at end of file diff --git a/Java-Knight/src/main/java/org/project/entity/Entity.class b/Java-Knight/src/main/java/org/project/entity/Entity.class new file mode 100644 index 0000000000000000000000000000000000000000..e3ecfc0e09251a83e1c065af02b0ca22885cd18b GIT binary patch literal 236 zcmZ{ey9&Zk5JYD+4^4cvHr7ew{QxV$hyg)Cu&}#^OUT1S;x*u}S@;2dl(>nt&Cc%Z z44n7p`2rANY@$mU&Y1o9`1h4&}Xy)H=!8a(^822Eih5 chPeTQu}oOJa38%^`*2!yG2jGY$g_jd7nEW(BLDyZ literal 0 HcmV?d00001 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..bf2d300 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,12 @@ package org.project.entity; public interface Entity { + void attack(Entity target); - void defend(); - - void heal(int health); - - void fillMana(int mana); - void takeDamage(int damage); - int getMaxHP(); + int getHP(); - int getMaxMP(); - - /* - TODO: ADD OTHER REQUIRED AND BONUS METHODS - */ + boolean isAlive(); } diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Dragon.class b/Java-Knight/src/main/java/org/project/entity/enemies/Dragon.class new file mode 100644 index 0000000000000000000000000000000000000000..421f166213f6d5bd9d30c8504aa5e386fb69b707 GIT binary patch literal 796 zcmaJ;O>@#v6g@9V69}P1g(4_e>IaZgQa8G2$Bp1joVLt}gM+S8c!OynVc?@V2^b8k|3Nls!V!bI?fIT~#89p{I~UtM z!AJI6?v4Y0YQKo`mg7`A8kQN%1NV(<&xAL$pSgZN80kpD3|X%*$dzg*{9iMWMutK2 z`8(nGf zQC%V2-XTM=a><}e!?vm&hGaWz+;zthQo{z_<(0z_+wKj|T-MvcY|`UTyl`@2A-x`& zi4rM`(fw(y@a*)G=}m@GEYq({RYo~seFkH)d<^YV)Lx+&+5#+7PEk`8)*0wM6oLUy zwO@KyHq))HVrE<2B{SdZs%D|J`xD9TF;aUQwUarnK2WS$Myb!SVtqya1I%@6j^cN$ zN%)AEC4WOc5v(^#|qW5*hCHwkw=4W=b(Uf>Ptd8MMFbPLy{>3s-J5r WMv4H{?0*6KD@R=@rD#WVn|}b4GM?f9 literal 0 HcmV?d00001 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..7fe0456 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Dragon.java @@ -0,0 +1,31 @@ +package org.project.entity.enemies; + +import java.util.Random; + +import org.project.entity.Entity; +import org.project.entity.players.Player; +import org.project.item.weapons.Weapon; + +public class Dragon extends Enemy{ + + private static int hp = 100; + + public Dragon() { + super(hp, null, 0, 0); + } + + //attacks the player while dealing random damages + @Override + public void attack(Entity target) { + int[] Damage = {20, 23, 26, 29}; + Random rand = new Random(); + int randNum = rand.nextInt(Damage.length); + setDragonDamage(Damage[randNum]); + //checks if the player has stunned them + if (!isStunned()) { + target.takeDamage(getDragonDamage()); + } + } + + +} diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Enemy.class b/Java-Knight/src/main/java/org/project/entity/enemies/Enemy.class new file mode 100644 index 0000000000000000000000000000000000000000..4970c850d9fa382c49e1ec7c08b9d3c1464a8d39 GIT binary patch literal 1539 zcmah|+fEZv6kVscq3v)}iXarZN;?8o6a_&H0%{XbA_kEshxVin&}lQBBKR-<0S}tc znE2oa_)*4nrWNX>hLD`i-m~`FYhU{7_m7_d*0CHz06`5Q9brTSx(>`^Gjn9xh0N>y z1DSILB1@KSxyu5y z`lm|fod;P|Y5h8GDi-aeyyaM*rHT#eNUB&gSF-Gj=q(+?s*9*q*>GKxnm;mjay|mMvdZi~G`fYwjO0 z5_e0_WJ8EI?LC2*YaYtF1ZJi@0?n$d99hTAXy10t+~KBKZZL!k(pBT+rm_NU^fv4B z4V(GA`VeKPJ}QB+RQgKA6u^w#`XD(HI;(#t$QJ0XH4TZ8ia(Md=1tQDP_bLB2qcJX z6%VEM)R1D^rK*#Y&n-2Wn0HDu>NG;D5kmMHMH1_ZNhNXCYN3 z;5FAlMi8p8N)*$Wp%;XRG9!b#jk3)OyZs7h3A)!3+U|$W5jy+7WhLc0TVDL`Z6;+JLjC4+5Px@dk2umstFAd1GU%?X4PvngPJHSPxwlzTXLc< zMa#>Rzh#JSOJAxThBc>f*k3M{sCzepHv+%qopt;Z4SUgmH(7 yb@v&`XN<%yUNNQN9x*ra1S2HUIz*$;DYju?1Zj+s_&Am*qeDyUM7rFmT=@d=8lYDv@0WDD#PcF^>%koe?7 zpG_=AAN&FSBx8(s7EId2SYPJey>rjG=ia&d{nyuT0P1)YM*zVnLL6a47*^b2r!pA2 z$Fij=(owcLAtU>?^eWA+>`CQ13~}4Bl`VQNUNNwSff(XZ7#s<3hSEPM>O^(I5P6~r zo-(YPjotIYNq^@k&X)2*co}cIA7dY}L5MH#~8Xq#Lq$VhGETTjN z-rosA=HWDPnPUaFNE=m}%BE48D2p)T2m5C?#55hN5|) zzY9gTHARvJ-Rka%!3=3M-O;cmcWh0Q{IgD5$KtKP5{)}XE6K>xCXyE*KY7O;jm vomoUNPkWbxg#{8&z+)6qLkW9W#y;)IeafQW&H9NL`+;~mL?R#fEDwJJ2|v;@ literal 0 HcmV?d00001 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..2b9f819 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,35 @@ package org.project.entity.enemies; -// TODO: UPDATE IMPLEMENTATION -public class Skeleton { - // TODO: DESIGN ENEMY AND IMPLEMENT THE CONSTRUCTOR +import org.project.entity.Entity; +import org.project.item.weapons.Weapon; + +import java.util.Random; + +public class Skeleton extends Enemy{ + + private int initialHP; + + public Skeleton(int hp, Weapon weapon) { + this.initialHP = hp; + super(hp, weapon, 20, 12); + } + + //attacks the player and resurrects (increases HP) once per battle + @Override + public void attack(Entity target) { + //checks if the player has stunned them + if (!isStunned()) { + if ((getHP() <= 10) && !getResurrectionStatus()) { + int addedHP; + + if (initialHP % 2 == 0) { addedHP = initialHP / 2; } + else { addedHP = (initialHP - 1) / 2; } + + addHP(addedHP); + + setResurrectionStatus(true); + } + target.takeDamage(getWeapon().getDamage()); + } + } } diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Vampire.class b/Java-Knight/src/main/java/org/project/entity/enemies/Vampire.class new file mode 100644 index 0000000000000000000000000000000000000000..5498b08ccd0cae5e8b56538bf01d155d9c727c9c GIT binary patch literal 820 zcma)4O>fgc5Pj=7cH=mS`$3vC(DZ{)+l}xK2;u^%uv8FIP%8DdjaQM|#)+IwtNfLo zxb=)ggW$jq;71|GPAa7c0hisKnVmQ9&CHLV-@XHAqiH}vMu%!53yq;ZjQidw9-fPy z^g<~H-nHPPVKnwm(wiaI7xFb9@V;Qk*p8pW3UWFO6M2{nd&>YKlA)Y>A`*j8jJ+-& zjKY}mbRGmec=Mit`38z8>99Oz zi2J6gHc?6n@0r+7GPBf;q!*3Fe?i`Yr6aSN({!)U5{EJWxu_?A&x~O{;1Zzo76b#eYU;nQ%e% z$|%4i1}&6mUo9MvmnxPkc_LuLS$d_#-u?EO$w3}G4{#Za?@OBx6SSr>`(F0 zcV2v{i4Xn&f0S`{TatbyW|NuSyEAj<%$)n@@2}qgj&PtOgm45J#~kJvl5MA9b)5E< ztb3NUJ>~VRPE+)x<638dXPAGZY~{UW_-vN1#Er0;!fsd<&rx=xP%4#2ODIpatXnBM zZQHdz1->vHAe>g40E)h&3h4{Kt0>0;bcVTx^iIwg!e+XpgCiEf5=R^cLuwRiqT8bD z3fEOOL&WV!`_eC=nL%xi6^;j3WiXU`c&xk+_Nn~pop&9ICYY)ZzsB(p>kJD7KWLor z%=C2g6YO+6!s7@wIiC34Z;iG%V;Td1ccLX4QpXmyBS>;Q^Vw~WrViOjTeg&Rtt0Y1 z2Hg|a@;;g4ImZj^Ff2`y(#)zqR1T9PjSNG~BeEs?M!BlilmY7thL1BA`d`A+0b}b- zQ(f(_eMunkva;oAw^ftQxd>pFXf<^un#G!GlGGTE&9QP5I~^!+TtKr1Q%F~dV#O2n z>l4u#V(FE3*Qv|*%I6!qm&dNJU?gcYA-WJCONv95Y>vKih(aT8WU_{7?C0{n{R#Gi z&KUA!eX001jzv1zg*D8)MVKDob+(U)5&w>S#)$W^nCWBr8xlD>PV})6{nE$NOt_B} z{dk$t=ta8=-%(;HD8EB@09YowLJ+H1LjozXCf2FB4eXKH4zP(=6r~|#>IA= 15) { + spendMP(15); + //checks if the former move was to use the special ability + if (isCHitOnNextTurn()) { + target.takeDamage(player.getWeapon().getDamage() + 5); + CHitOnNextTurn(false); + } + turnInvisible(); + CHitOnNextTurn(true); + return true; + } + return false; + } +} diff --git a/Java-Knight/src/main/java/org/project/entity/players/Knight.class b/Java-Knight/src/main/java/org/project/entity/players/Knight.class new file mode 100644 index 0000000000000000000000000000000000000000..c30147d6b349e6200f85b9fd329702f03237de57 GIT binary patch literal 1219 zcma)5U2hUW6g>l!g=O1aZKW1#3zXL7qg}sWFea#NY%GQZt*K8=>4a_zyJQ(^_&I&= zi;2PLgFnC@WxTs!0xi+L%-y|n?>YD5%&*@+egfFWQxzeE6+|@5Aj*(&y{6Ui+!N7| zmT;sk`&OsL`@-v5wZJk&pV^KrpEDeodnf#iTP^N1t-ADVr&-?J-5ZCnrD$891@E{{ z*ZL6H^3?$DwOt~p_=XVj`w7GlSD~_i?MdGa{O!)i!M2svO!a zQaQuxsf3f_pVaQOJ(TmrrPke^*AP3l-%(;HvMv9qAVWe5(aQrOAlacnXOaF&B=`tf zqfj(V!z^w3=Qpq~jB9C`3Z^?qLf3jqbcdgVxFX*MvlHV O{?cTL;4uY-@Z=9KuPW96 literal 0 HcmV?d00001 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..d7255e7 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,40 @@ package org.project.entity.players; -// TODO: UPDATE IMPLEMENTATION -public class Knight { - // TODO: DESIGN KNIGHT'S WEAPON AND ARMOR AND IMPLEMENT THE CONSTRUCTOR +import org.project.entity.Entity; +import org.project.entity.enemies.Enemy; +import org.project.item.armors.Armor; +import org.project.item.weapons.Weapon; + +public class Knight extends Player{ + + public Knight(String name, Weapon weapon, Armor armor) { + super(name, 40, 40, weapon, armor, 40, 40); + } + @Override + public void attack(Entity target) { + target.takeDamage(10); + } + + @Override + public boolean heavyAttack(Entity target) { + if (getMP() >= 8) { + spendMP(8); + target.takeDamage(weapon.getDamage() + 5); + return true; + } + return false; + } + + //attacks the enemy and stuns it + @Override + public boolean specialAbility(Player player, Enemy target) { + //checks if player has enough mana + if (getMP() >= 15) { + spendMP(15); + target.toBeStunned(true); + target.takeDamage(player.getWeapon().getDamage() + 5); + return true; + } + return false; + } } diff --git a/Java-Knight/src/main/java/org/project/entity/players/Player.class b/Java-Knight/src/main/java/org/project/entity/players/Player.class new file mode 100644 index 0000000000000000000000000000000000000000..7e68c56022e6f6beff70ac9da64c8bfbf519fde7 GIT binary patch literal 6368 zcma)9Yj9j;8GcT(*-bX5&Du06X`0Zcv^JZjTM2CgDS?o-blbEEw)6_v)9h(-n$7OA zy9o_)6T}N3R}~_nR;pDga!HeNQJ|uN<)VNn;;7>fb^M`@Gmhgp4CC{D=jI15 zYA9XNyeoim4b_ThBx}VZUFozj)?;O|K?G1*flBBB%+WCyRT`Eg(*u!IIw?32Gm*8j zW06$c7&FtENS|6Y1X9VYl}uzb)bx13b_nE0bj%aHz%{0kBCVXw*HI&9ej`1cOlL&= z0v%_ej(Qrg7~xjfcty5!H18AEdL4_nsDiB)?d>Tx*vgv25l7?5Zl$>b4(n*aN)2U7a}8(D*R8PR`S@MxFF0twbh(byTQWA1452!W_2DOytt! z!MK$WsPlDPfDR261L|n2IYxu`1#qE;r5^yWW5|q~*`$KFNXNwjQJHZL2@=318k#-; zV3#qRveKrgut8@ol0P_VpOIaTFV(SGX_g&Kn#CG#YcIQYs5yU5OAOJ(hLG&}U#kd~%AU-#~Xfv%x%MCSpuUkvXWta?YcPQ7dB|jGI9WAs)c6j)Vwom?5w@m1vBJ6U>a_OzF5< z+%hj__NPrFV{RBp8wag83srzKIATrA3!TN{~UL>R@G zj%!6Pk-I0=m$t5@+)7-h<9hLX&`Q{H_w)(%jXG`;YMs>GOyWHK%{p!o`U=xXC*+H& z_gi&*M(W+4Hiwg=1Puuns|+v%`*E$^oeu zGRJt79pQ~KD-5O;3y)8~q0&G@qo-)QA1IlXMOpJ<@pP*G_%&dJE zdz;`w78Av5T|-i6swb%__lG=JFSJ#t0b;`bE9=U!E>)cJD6y;nGg-<~X zKa0TLQ>d6ku<#lxyjF)#B2?#_LhWw8Ro9iNx0XpP3@@5QW4K`wP2oDz!@qaa3{JHI8!m+D&`g$5G3ra~xG%x}7hZ#HJEuQ!V`pY@$7vqLG@1 zu>~7A20zSGKYUelE9FdW zAlQlcQgmN+~TBlzANAaU^f2T#?++ z5(+$x%S%87_Kzdf5~{Md%)k8w0d}kgnEQi_mxTp5%({;&aQa~pQNN4tIoLNi33f3t zn?mJB(JngkEyjdz;o-6=Tva4=LGG;lKtZ;zID}2A=#r>FiUn{r3p34TlVK3DO!iSG z`;nZT>m`DZbB_Y6|&97u#k}@sh` z-h#EbHK#*Fl7#=l9Dh8;L>FIMls7Pr3aRaZC%B1?(h8C#YkiSxTv^SnF$9icIA$|<(zak3A6lK9c@~9RM5um4v+92IKjU9DDSezlm^Ud=>|{ad&7C$Nx@eV zs_`L|m7eewdW>D<6SV0h6J#ofAT{?SYtU{P#oeXR-Cdp~(L}!GMxF9p5^kBoktuvq z)*Ghqshm4y%^6}l!!FV1St&0dgwt$wKf+?XNZ6D4rZqrVu^}Sy>Xk<{2b2fqVY__k zlt;HbRL{1BET?tAPnpm!(PJ<3PX8I3%^94HSJ+oyMKfMw9ABpp{zc_eI%T&Lky^>w zwugBgFw5KOncHpC3e1kg8#Lfe;=aY)csu9E`GlIJTW!E5$2mdb1?iVh@0M^Dr^Gwl zoyz-tF?V9M+!DbleAeyyclq@xJk6)5yOHQ}Vbp{dP2slAhH>bQoZ8(Dg^1hQ{*JEw zJw5RURO63ITbBNNs1|`w;h7JF3{iCt$UhPC&xHI7A^$o9QqtuAYgz3L`8PuTosj<^ z#H|@Vk^+LWPr_CEp5_eU8#qs(N8BQ}_ zZQF|LWZ~nk(EgW1FXlsAOuE_~*Y`;JV^7j1H|hH%{fQ@OtBaJ0q_F^A;#1;KtiUpt zu9_6v%dC)@q|I(pABoO*D$wgzKrWY8JV~Q&(sGi%nkSWpDs|xFG~uQU^2=*^%3`b9 z+@v~5U&qgxEp7({-B!(Y#{XZC(*@-7NDQmS2+P?R>A3bQWv< za+MFbQdE potions = new ArrayList(); + private ArrayList weapons = new ArrayList(); + private ArrayList armors = new ArrayList(); + private int hp; private int maxHP; private int mp; private int maxMP; - public Player(String name, int hp, int mp, Weapon weapon, Armor armor) { + private boolean isDefending; + private boolean isInvisible; + private boolean CHitOnNextTurn; + + private int coins; + + private int xp; + private static int maxXP = 70; + private int level; + + private boolean goblinKey; + private boolean skeletonKey; + private boolean vampireKey; + private boolean threeKeys; + + private static int heavyAttackMana = 8; + private static int defendMana = 6; + private static int healMana = 12; + private static int specialAbilityMana = 15; + + public Player(String name, int hp, int mp, + Weapon weapon, Armor armor, + int maxHP, int maxMP) { + this.weapons.add(weapon); + this.armors.add(armor); + this.name = name; this.hp = hp; this.mp = mp; this.weapon = weapon; this.armor = armor; + + this.maxMP = maxMP; + this.maxHP = maxHP; + this.coins = 0; + } + + public void earnCoins(int extraCoins) { coins += extraCoins; } + + public void grabTheKey(Enemy enemy) { + if (enemy instanceof Goblin) { goblinKey = true; } + else if (enemy instanceof Skeleton) { skeletonKey = true; } + else if (enemy instanceof Vampire) { vampireKey = true; } + + if (goblinKey && skeletonKey && vampireKey) { threeKeys = true; } + } + + public boolean keyStatus(Enemy enemy) { + if (enemy instanceof Goblin) { return goblinKey; } + else if (enemy instanceof Skeleton) { return skeletonKey; } + else if (enemy instanceof Vampire) { return vampireKey; } + return false; + } + + public boolean threeKeys() { return threeKeys; } + + public void levelUp() { + maxHP += 10; + maxMP += 10; + } + public void increaseXP(int addedXP) { + if (addedXP + xp >= maxXP) { + level++; + levelUp(); + xp += addedXP - maxXP; + } + else { + xp += addedXP; + } } @Override public void attack(Entity target) { - target.takeDamage(weapon.getDamage()); + target.takeDamage(7); + if (CHitOnNextTurn) { + target.takeDamage(15); + CHitOnNextTurn = false; + } } - @Override - public void defend() { - // TODO + public boolean heavyAttack(Entity target) { + if (mp >= 8) { + mp -= 8; + target.takeDamage(weapon.getDamage()); + if (CHitOnNextTurn) { + target.takeDamage(weapon.getDamage() + 5); + CHitOnNextTurn = false; + } + return true; + } + else return false; } + public boolean defend(Entity target) { + if (mp >= 6) { + mp -= 6; + if (CHitOnNextTurn) { + target.takeDamage(weapon.getDamage() + 5); + CHitOnNextTurn = false; + } + isDefending = true; + return true; + } + return false; + } @Override public void takeDamage(int damage) { - hp -= damage - armor.getDefense(); + if (isInvisible) { + isInvisible = false; + return; + } + if (isDefending) { + if (damage > armor.getDefense()) { + hp -= damage - armor.getDefense(); + armor.decreaseDurability(); + armor.checkBreak(); + isDefending = false; + } + } + else { + hp -= damage; + } } - @Override - public void heal(int health) { + public void heal(Enemy target, int health) { + if (CHitOnNextTurn) { + target.takeDamage(weapon.getDamage() + 5); + CHitOnNextTurn = false; + } hp += health; if (hp > maxHP) { hp = maxHP; } } - @Override + public boolean specialAbility(Player player, Enemy target) { return false; } + public void fillMana(int mana) { mp += mana; if (mp > maxMP) { @@ -55,35 +172,108 @@ public abstract class Player { } } - - public String getName() { - return name; + @Override + public boolean isAlive() { + if (hp <= 0) { + return false; + } + return true; } - public int getHp() { + @Override + public int getHP() { return hp; } - @Override - public int getMaxHP() { - return maxHP; + public void victory(Enemy enemy) { + increaseXP(enemy.getXpPrize()); + earnCoins(enemy.getCoinPrize()); + hp = maxHP; + mp = maxMP; } - public int getMp() { - return mp; + public void failure() { + level = 0; + xp = 0; + mp = maxMP; + hp = maxHP; + goblinKey = false; + skeletonKey = false; + vampireKey = false; + threeKeys = false; } - @Override - public int getMaxMP() { - return maxMP; + public boolean pay(int cost) { + if (cost <= coins) { + coins -= cost; + return true; + } + return false; } - public Weapon getWeapon() { - return weapon; + public void removePotion(Potion p) { potions.remove(p); } + + public int potionsNumber() { return potions.size(); } + + public boolean addItem(Potion p, int cost) { + boolean res = pay(cost); + if (res) { + potions.add(p); + } + return res; } - public Armor getArmor() { - return armor; + public boolean addItem(Weapon w, int cost) { + boolean res = pay(cost); + if (res) { + weapons.add(w); + } + return res; } + public boolean addItem(Armor a, int cost) { + boolean res = pay(cost); + if (res) { + armors.add(a); + } + return res; + } + + public void setWeapon(Weapon w) { weapon = w; } + + public void setArmor(Armor a) { armor = a; } + + public void spendMP(int MP) { mp -= MP; } + + public String getName() { return name; } + + public int getMaxHP() { return maxHP; } + + public int getMP() { return mp; } + + public int getMaxMP() { return maxMP; } + + public Weapon getWeapon() { return weapon; } + + public Armor getArmor() { return armor; } + + public int getLevel() { return level; } + + public int getXP() { return xp; } + + public int getMaxXP() { return maxXP; } + + public int getCoins() { return coins; } + + public List getPotionsList() { return potions; } + + public List getWeaponsList() { return weapons; } + + public List getArmorsList() { return armors; } + + public void turnInvisible() { isInvisible = true; } + + public void CHitOnNextTurn(boolean t) { CHitOnNextTurn = t; } + + public boolean isCHitOnNextTurn() { return CHitOnNextTurn; } } diff --git a/Java-Knight/src/main/java/org/project/entity/players/Wizard.class b/Java-Knight/src/main/java/org/project/entity/players/Wizard.class new file mode 100644 index 0000000000000000000000000000000000000000..4c74cf39ddb47d700e67c9d4c99f8a3d055c171f GIT binary patch literal 920 zcmah|O>fgc5Pch`F>&3-{f0tmLtC(&fF-U$NEH+jDMgh6t>|r&tlVw=CC3GYf5W{O zE=Jm^)S4jx!$6vikg@;R?9hKSm3EVAF{Prnos{fcp>A#qcEn literal 0 HcmV?d00001 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..db60bc5 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/players/Wizard.java @@ -0,0 +1,26 @@ +package org.project.entity.players; + +import org.project.entity.Entity; +import org.project.entity.enemies.Enemy; +import org.project.item.armors.Armor; +import org.project.item.weapons.Weapon; + +public class Wizard extends Player{ + public Wizard(String name, Weapon weapon, Armor armor) { + super(name,50, 40, weapon, armor, 50, 40); + } + + //attacks the enemy and increases HP + @Override + public boolean specialAbility(Player player, Enemy target){ + //checks if player has enough mana + if (getMP() >= 15) { + spendMP(15); + heal(target, 7); + target.takeDamage(player.getWeapon().getDamage()); + return true; + } + return false; + } + +} diff --git a/Java-Knight/src/main/java/org/project/item/Item.class b/Java-Knight/src/main/java/org/project/item/Item.class new file mode 100644 index 0000000000000000000000000000000000000000..033fd61ad0ca4e7ed9dab86cf48c96710ad04b9e GIT binary patch literal 185 zcmYk0F$%&!6h!Ao&1!6Hyn-Z+{{WVv5D*mX>^5Op5@I%NHbSmu;Q>69xNBuIALh^S z=KXoT035IshzM(AHFwt3s&rgAb?4lRz?876zWnYkyAgy|Zg2WfOtYMjT+Luhb*vgiSOm~EFk*sF_)$RQxiiEFe1W-ld@%S( EzHuKctN;K2 literal 0 HcmV?d00001 diff --git a/Java-Knight/src/main/java/org/project/item/Item.java b/Java-Knight/src/main/java/org/project/item/Item.java index 6d6b5ad..19810b6 100644 --- a/Java-Knight/src/main/java/org/project/item/Item.java +++ b/Java-Knight/src/main/java/org/project/item/Item.java @@ -1,11 +1,10 @@ package org.project.item; -import org.project.entity.Entity; +import org.project.entity.players.Player; public interface Item { - void use(Entity target); - /* - TODO: ADD OTHER REQUIRED AND BONUS METHODS - */ + boolean buy(Player player); + + int getCost(); } diff --git a/Java-Knight/src/main/java/org/project/item/armors/Armlet.class b/Java-Knight/src/main/java/org/project/item/armors/Armlet.class new file mode 100644 index 0000000000000000000000000000000000000000..240f29f4e2ccb3e990d5004814b4e891a3741b7a GIT binary patch literal 242 zcmaJ*%L>9k44hcot@Zf>3SOjous)XO0d;elgg#Cq|T=}G|rM+f<6R4Xp6XA i)OZHW2D}qvF!DvG=RQF9pQmoMU&4Al_B2?jp!o&Ub1~!q literal 0 HcmV?d00001 diff --git a/Java-Knight/src/main/java/org/project/item/armors/Armlet.java b/Java-Knight/src/main/java/org/project/item/armors/Armlet.java new file mode 100644 index 0000000..69d6e26 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/armors/Armlet.java @@ -0,0 +1,7 @@ +package org.project.item.armors; + +public class Armlet extends Armor{ + public Armlet() { + super(15, 4, 30, 2); + } +} diff --git a/Java-Knight/src/main/java/org/project/item/armors/Armor.class b/Java-Knight/src/main/java/org/project/item/armors/Armor.class new file mode 100644 index 0000000000000000000000000000000000000000..4a2cf07f9ea44ed5b5dd6b333b1316ff3bb68fa2 GIT binary patch literal 1824 zcmZuyT~`}b6y29341@s!DO4a7CD!Z0~%F59m9ldfcT&y`}-Y(hRu`KuL=$Ga0L-S~@W#@*D0oe%_ zDy}Ecn>yZ+1$7k0Fh(@Qbd2Jb!bGzatL%|FRV|sv7S%lQBl-6%&sXN=Y?rC^#}hd} z;hJZcQnHrr!Z;>0+}1IPI|@Cm+X@}b(lI?rZm{Kawy{ozX}qf;t|I}1cU&@@L+H!C z>26p@lt5E=<;0ARSbQsd zyv!^XdG(>fWIWgG5>sg{SUQ{76_X$6_()9ds#W(KvuLf-d|^!MSimAhSIuKejW^&+ zIzGm-c;l`(l>@8H^6Y9@RTy~dy1Ec8p5-U8Lz2}>k?ql&v&+^-?J#dS+h)GRl|a76 zJEmI|Ut8C7Vwa`e^31})x>;=;*Ba8%{IlVvSh1yZ_J^P<);fL1INN{z7zZ&hke!Fp^8$F^EpwL=T56iXlFSxi>=8C-}5M{sRI&`C{@6 zL+dlIFs86E`wCME&oRa?NrgYr@h~_PJVVOh?@tH?PJaIHP0}!4AbN%mGNUKFuC3|n zF;b4p$YBPzF^45LqI75%>qXhH(wk6Mylb!e;946($I_%AhEbwPpzMR0(a@{J@Vd1A0GI80jNIGJcxeCn@`t(|8_f_a7pr^%Y{Sm~o}@{P literal 0 HcmV?d00001 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..5c66ad2 100644 --- a/Java-Knight/src/main/java/org/project/item/armors/Armor.java +++ b/Java-Knight/src/main/java/org/project/item/armors/Armor.java @@ -1,42 +1,86 @@ package org.project.item.armors; -// TODO: UPDATE IMPLEMENTATION -public abstract class Armor { +import org.project.entity.Entity; +import org.project.entity.players.Player; +import org.project.item.Item; +import org.project.item.weapons.Weapon; + +import java.util.List; + +public abstract class Armor implements Item { private int defense; - private int maxDefense; private int durability; private int maxDurability; - private boolean isBroke; + private static int upgradeCost = 2; + private int cost; + private int x; - public Armor(int defense, int durability) { + private boolean isBroken; + + public Armor(int defense, int initialDrb, int cost, int x) { this.defense = defense; - this.durability = durability; + this.durability = initialDrb; + this.maxDurability = initialDrb; + this.cost = cost; + this.x = x; + } + + @Override + public boolean buy(Player player) { + List A = player.getArmorsList(); + for (Armor a : A) { + if (a.getClass() == this.getClass()) { + return false; + } + } + boolean res = player.addItem(this, cost); + return res; + } + + public boolean upgrade(Player player) { + boolean res = player.pay(upgradeCost); + if (res) { + upgradeCost *= x; + maxDurability += 1; + defense += x; + } + return res; } public void checkBreak() { if (durability <= 0) { - isBroke = true; + isBroken = true; defense = 0; } } - // TODO: (BONUS) UPDATE THE REPAIR METHOD - public void repair() { - isBroke = false; - defense = maxDefense; - durability = maxDurability; + public boolean repair(Player player) { + boolean res = player.pay(maxDurability - durability); + if (res) { + isBroken = false; + durability = maxDurability; + return res; + } + return res; } + @Override + public int getCost() { return cost; } + public int getDefense() { return defense; } - public int getDurability() { - return durability; + public int getMaxDurability() { + return maxDurability; } + public int getDurability() { return durability; } + + public void decreaseDurability() { durability --; } + public boolean isBroke() { - return isBroke; + return isBroken; } } diff --git a/Java-Knight/src/main/java/org/project/item/armors/Cuirass.class b/Java-Knight/src/main/java/org/project/item/armors/Cuirass.class new file mode 100644 index 0000000000000000000000000000000000000000..3107abff1109535d78a8dd475af082db0b371289 GIT binary patch literal 246 zcmZ`!%L>9k44nArYFo8GAmXihus;;M-q9}+PrTex%oD+ukSJc`w&$b{ac*?~9iT3vK5X0j6AFErez*AzY2d|*|? lZKA=`Wfd|fMt=}A0xO8EJLvXxc|5D9z)24dyL{#~G(R|*G9dr} literal 0 HcmV?d00001 diff --git a/Java-Knight/src/main/java/org/project/item/armors/KnightArmor.java b/Java-Knight/src/main/java/org/project/item/armors/Helmet.java similarity index 58% rename from Java-Knight/src/main/java/org/project/item/armors/KnightArmor.java rename to Java-Knight/src/main/java/org/project/item/armors/Helmet.java index eb59a46..5e263d7 100644 --- a/Java-Knight/src/main/java/org/project/item/armors/KnightArmor.java +++ b/Java-Knight/src/main/java/org/project/item/armors/Helmet.java @@ -1,6 +1,10 @@ package org.project.item.armors; // TODO: UPDATE IMPLEMENTATION -public class KnightArmor { +public class Helmet extends Armor { + + public Helmet() { + super(19, 6, 60, 3); + } // 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/armors/Pauldron.class b/Java-Knight/src/main/java/org/project/item/armors/Pauldron.class new file mode 100644 index 0000000000000000000000000000000000000000..ee21367a6602e95987a94c751f5bcb09f2ad86ea GIT binary patch literal 247 zcmZ`!%L>9k44hco)%yGaK~Gi>_6I}|Q4mA~rT0}AS+QMNTmQ?G;K2{@qr_D3=maL2 zFayc!{dfYHqVA&rN1#}R3y;t;_7I+}IjUV6>Qu#{w6U?5aGW=SH`IwvM+6bf8NEoL zL}>p@tz>rETayr+pcfH}6SG%@#zH4*nZ;XWH*$O8jlVXT-Km+*MeP?G9OYG_1Hnh; nATAeWW}j7;XX0MzH$|x#xOdR)YpO8ke}N4?JT_H%E}-@SVaPMZ literal 0 HcmV?d00001 diff --git a/Java-Knight/src/main/java/org/project/item/armors/Pauldron.java b/Java-Knight/src/main/java/org/project/item/armors/Pauldron.java new file mode 100644 index 0000000..1d4fc8b --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/armors/Pauldron.java @@ -0,0 +1,7 @@ +package org.project.item.armors; + +public class Pauldron extends Armor { + public Pauldron() { + super(17, 5, 40, 2); + } +} 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 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/potions/Potion.class b/Java-Knight/src/main/java/org/project/item/potions/Potion.class new file mode 100644 index 0000000000000000000000000000000000000000..aca64181d1fe80f56f67ddf7e11bf370cb274be8 GIT binary patch literal 1162 zcmZ`&+iuf96r6P~ZW5>W3%#Ui=`C@ghEmEyDGyYw8mTRniYn13oMaVT8ar|vL_UQt z;Dr~Y1|%N%0KN$!X6;B#ONb?(csys$?C$v2pC3N~?BiJ)8e%%)1`)yi1TO?)h2nV%14!ve8_2*A$a{XxYWSXFT23JAR>KP%&uv<#VP&`5 zs+XlNAWEut(7=#tj90v7pnwqrqYBXF$H2D_PZc(9VB!Wl4zVc%_b@Fm;51))t=c;p z6BlXBVopcSz&!E-i@k278#qDRYFycE>C;bGxrm0{=J-OX7{R^xV zj(TPKENX|nI#vWG{vk#ZdZEN$@tkw^ys8u!I&xfj5^lt6yL?3?R&LS8>g`#5E$Ox0u% zIS&I+;#Lvac`ENfuww{OMQ$Cz|Ex#fU9JSU=l!Xlyt@t9(SA)PZ^QNf~F@~DT zL|7Sxu=4oB$|GkTAU}as-q-kaKz@RC#{3Rp&UT=ia~)*OTnEGEM7)EsuY4;|P#h$A zA4i;lN?{U%n8KI}5-))w%&uk)FputV#aGY=hkj9>vdEHPKhctF?dWa-dyzcI+n5_;Gjs+OjPiW|R4z5;y-Y{2T$ z)=1KbWSq$Eu_fG^;D0(SAhwN_n#{HG7x3N$Qin)Zx3- UEmF7oQpfI6w@H0UQyRAa0-UkbDgXcg literal 0 HcmV?d00001 diff --git a/Java-Knight/src/main/java/org/project/item/potions/Potion.java b/Java-Knight/src/main/java/org/project/item/potions/Potion.java new file mode 100644 index 0000000..0122fdb --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/potions/Potion.java @@ -0,0 +1,55 @@ +package org.project.item.potions; + +import org.project.entity.enemies.Enemy; +import org.project.entity.players.Player; +import org.project.item.Item; + +// TODO: UPDATE IMPLEMENTATION +public abstract class Potion implements Item { + /* + TODO: ADD OTHER REQUIRED AND BONUS METHODS + */ + + private int number; + private int cost; + private int extraHP; + private int extraMP; + + private boolean isBought; + + public Potion(int number, int cost, int extraHP, int extraMP) { + this.number = number; + this.cost = cost; + this.extraHP = extraHP; + this.extraMP = extraMP; + } + + @Override + public boolean buy(Player player) { + boolean res; + if (isBought) { + number++; + res = player.pay(cost); + } + else { + isBought = true; + res = player.addItem(this, cost); + } + return res; + } + + public void consume(Enemy target, Player player) {} + + public void decreaseNum(int num){ + number -= num; + } + + public int getNumber() { return number; } + + @Override + public int getCost() { return cost; } + + public int getExtraHP() { return extraHP; } + + public int getExtraMP() { return extraMP; } +} diff --git a/Java-Knight/src/main/java/org/project/item/potions/healthPotion.class b/Java-Knight/src/main/java/org/project/item/potions/healthPotion.class new file mode 100644 index 0000000000000000000000000000000000000000..3cd6a8b673428085304c91959d7a3c94e0d3766d GIT binary patch literal 873 zcma)4%TC)s6g?BWF)>acJlcjwAwa-RQrzb%RW~$MkSIk0Q3yfgPwboMuzMgFYx4B2E*Q`&p9t zX1(5C%ab32Lvbrl`f)s>993ZVnt$OalXw}jEofxq z*QYe@(yBspono%Kyt1nO0Q*i02A4)LI6BMV; z6FjPG30CX1YJzft?W&%jst_|N;u5kn&%;0g3*^-jid5Ddb})|@l+nOSMDjAd@aiwW CVbiw& literal 0 HcmV?d00001 diff --git a/Java-Knight/src/main/java/org/project/item/potions/healthPotion.java b/Java-Knight/src/main/java/org/project/item/potions/healthPotion.java new file mode 100644 index 0000000..90fb050 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/potions/healthPotion.java @@ -0,0 +1,20 @@ +package org.project.item.potions; + +import org.project.entity.enemies.Enemy; +import org.project.entity.players.Player; + +public class healthPotion extends Potion { + public healthPotion(int number, int cost, int extraHP) { + super(number, cost, extraHP, 0); + } + + @Override + public void consume(Enemy target, Player player) { + if (player.isCHitOnNextTurn()) { + target.takeDamage(player.getWeapon().getDamage() + 5); + player.CHitOnNextTurn(false); + } + player.heal(target, getExtraHP()); + decreaseNum(1); + } +} diff --git a/Java-Knight/src/main/java/org/project/item/potions/mixedPotion.class b/Java-Knight/src/main/java/org/project/item/potions/mixedPotion.class new file mode 100644 index 0000000000000000000000000000000000000000..813a62e4121a860d6f64dfdbe8c7ecb1526c2280 GIT binary patch literal 919 zcma)4+fLg+5Isu_PK+U;B(y2l08O1sF}+_>^#xJ|iBKdEm3ZosY}19-KcF8~b=HI`sq#=;+L_&%IcMf*e*OOO6F?QO3``-WLo+dr8HRPwZ`mE+yA+MU zmVt2Wju%MJ?b^qYWte#_T^YP#(5(ad3TFo5Na!$3%)(^IjUos)kio$2wD~~zgb`VW zlC68+$`=erCst8lK6=1nA#Vo0<^@LuqaN3kuda5#z@_4OqRcJ1q=ih)~L z)R8uk!P2BT#`CWU_PN7bA|gL9a0gi(cTFr~g<)fqa5#o=g(F4Ru96)v7y-W$HxQaN zlw!@qIyM;Q|D8~?&Xri3*wV3W;+|@Adz58NZb$Y-^G0)n#HjWIpVyC-M)yrvs>k?8 z*>2al%N1(TL`gyZ&8k~^5jpGHHynCs~PP(*f+W{JW+2^g@FXEFT+zj z8`em~=m&PoA@r}vl*rD7ScrcJal0G~v05&M$c4z4OXL(nl#5!3U4=XqA+JFvKS^f_ dX)GX%Md~n(BCV*6B|N8S3@l58FQTHCe*ge7+=BoB literal 0 HcmV?d00001 diff --git a/Java-Knight/src/main/java/org/project/item/potions/mixedPotion.java b/Java-Knight/src/main/java/org/project/item/potions/mixedPotion.java new file mode 100644 index 0000000..7e64f52 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/potions/mixedPotion.java @@ -0,0 +1,23 @@ +package org.project.item.potions; + +import org.project.entity.Entity; +import org.project.entity.enemies.Enemy; +import org.project.entity.players.Player; + +public class mixedPotion extends Potion{ + + public mixedPotion(int number, int cost, int extraHP, int extraMP) { + super(number, cost, extraHP, extraMP); + } + + @Override + public void consume(Enemy target, Player player) { + if (player.isCHitOnNextTurn()) { + target.takeDamage(player.getWeapon().getDamage() + 5); + player.CHitOnNextTurn(false); + } + player.fillMana(getExtraMP()); + player.heal(target, getExtraHP()); + decreaseNum(1); + } +} diff --git a/Java-Knight/src/main/java/org/project/item/potions/strengthPotion.class b/Java-Knight/src/main/java/org/project/item/potions/strengthPotion.class new file mode 100644 index 0000000000000000000000000000000000000000..5d74882b37438d9dd4d9bcff51b953168127609c GIT binary patch literal 839 zcmZuv%Wl&^6g?B0IC0$v^hKJ4CiD>}4K=S_5StRzN=>QMsz?=!PSYVwo7j;(f#y^A z3^qn$!3XeBh&yg7B`CIZ@66npbLN~ofBydZ4WNnFHc~Jwm<}Ew&9EMX9j_k-*P^XF zsYK7~2TBHh1$TTStjg`R4Dw8`f_i(O@1_QRmfY%+NO#FS6?&p zS$4ZE?sE-XbFiZqXRbs$6g(0~gB~?Z_o;fuVD1H1BzFE#`nqx{!c%_Pr4_494IcDp zwC_$BJxzCG+K$NvH#FPqiQ?^>7VnQp?2}*+w#9p?85bwz?OyY*9A%P_qE`uujGkki z;xn3U(b%M%t>p_w@h8|1nlS8A)UOvM!7_b%#MIj(Iiq;!lWW{8|8qK+^1Pc$~p~OjgXJFok z_h3HX*BihBO&1jy4$KBD*bE(|PeH2HSsb!JW+D!9!Bdr7gMEn%_CzK!n-b}VVK~@1 zs4}$w)@CYaF#3ZXgE?16!O&XCM67RdB=nX?7joQcJ!ixI^Fb$JP_Hc6?i|mt}uB3 literal 0 HcmV?d00001 diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Bow.java b/Java-Knight/src/main/java/org/project/item/weapons/Bow.java new file mode 100644 index 0000000..08b04ba --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/weapons/Bow.java @@ -0,0 +1,7 @@ +package org.project.item.weapons; + +public class Bow extends Weapon { + public Bow() { + super(13, 50, 2); + } +} diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Dagger.class b/Java-Knight/src/main/java/org/project/item/weapons/Dagger.class new file mode 100644 index 0000000000000000000000000000000000000000..1c8e122b0d3451ee1bf74f3103a5f11f1fc45123 GIT binary patch literal 244 zcmaJ*NeaS15Ueqqj&b>cc#-JAd_cUoKtQ}GdYU1qVMt~c<=!}O6uzfgi89Le|;o0be+-0H4hSox*a+#lEY1Se>lEYUzH#<33g{c2Z!-KdAbm7s9#V}e2 iHM*Qs4>mD?58AvPI1jLUnW-0E*(kCuWqfifXnX;Tu`;#* literal 0 HcmV?d00001 diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Dagger.java b/Java-Knight/src/main/java/org/project/item/weapons/Dagger.java new file mode 100644 index 0000000..6462fc8 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/weapons/Dagger.java @@ -0,0 +1,7 @@ +package org.project.item.weapons; + +public class Dagger extends Weapon { + public Dagger() { + super(10, 40, 2); + } +} diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Halberd.class b/Java-Knight/src/main/java/org/project/item/weapons/Halberd.class new file mode 100644 index 0000000000000000000000000000000000000000..bc7afaaf61c51ff75d92dcb4c5d921d304646d06 GIT binary patch literal 246 zcmZ`zO%K6P5S*vgQuT3g$3@CP|A4p%(L`KGonPA*c}?|66~D_#;@}7PQDWP;+D&$6 zW@nOpf1WP@3$!d$pqbEZRADgmRCaJrnTkc2yD}F?_a^vBrDu0vZU$p2Q<={QIG*Q? zd=oW>{@>V&CxOT!2F)4y4EkI}f}y>Zsn}eOblUMCA;sFNOBRZyEQtL}O=5oK7{H__ mi(=GO)M;A8hR_KC*0|H{M8*T`UV0jZRwfFsK^~iw3YuR%1T)V7 literal 0 HcmV?d00001 diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Halberd.java b/Java-Knight/src/main/java/org/project/item/weapons/Halberd.java new file mode 100644 index 0000000..092dab1 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/weapons/Halberd.java @@ -0,0 +1,7 @@ +package org.project.item.weapons; + +public class Halberd extends Weapon { + public Halberd() { + super(20, 100, 3); + } +} diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Spear.class b/Java-Knight/src/main/java/org/project/item/weapons/Spear.class new file mode 100644 index 0000000000000000000000000000000000000000..3b144ccd13383b40462f788f0df7aa000aebd5dd GIT binary patch literal 242 zcmZ`zI|{-;5PchCqVX3zfMO$wg}H#(h(bU_P_$m-A{#Ut)~M&Q5-dD`hY}~Tb_V8s zcn{|NdA54F zMunmCx3)?J*9;}k-!PaHwHFMnxlF|3a@q;K=DQ;~&PrW$Bxdp_^3E{kSB@TRdN3bG kTSk?xL#hvx7~l-tw!5?*VD}Jx)X@0?5}Gnt literal 0 HcmV?d00001 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..b1dd7e4 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 @@ -1,26 +1,7 @@ package org.project.item.weapons; -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 - } - - // TODO: (BONUS) UPDATE THE UNIQUE ABILITY - public void uniqueAbility(ArrayList targets) { - abilityCharge += 2; - for (Entity target : targets) { - target.takeDamage(getDamage()); - } + super(16, 60, 2); } } diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Weapon.class b/Java-Knight/src/main/java/org/project/item/weapons/Weapon.class new file mode 100644 index 0000000000000000000000000000000000000000..d99e42d422dc3e21dab85728a900fdcfb533850b GIT binary patch literal 1248 zcmZuwT~iWa6n6|5b-QZ#nV zYE6G)TY-+eX*GaqsX~ohyQ8s`-9gt{PUkD$v)G zooxD9VHjZrS5#cZ2r*779ES)f8%Ax_+$II8l$IG06=R69(~|8D9M?XjZ9~*vi=nB$BbT)OlLPb*XcEy^^mQ zIdg&f%bGV;+`?_rt{6Kc8)dkHy8^xc)ombpqRC`3w$9Lna*ku|OchGzYJDqXR-YP~ zB0bJbos}Z3%+4KPB9<2LuUSU+<%&^hrYlW?0$wVz*xVkfnq=crBNC@tv)N*EEq!a{ zdNpe<7bJLlV;v^tj9g*%?SQ}?xM;bsTzQ|Afz~1S(6(GZS`XvgnBjkdZ?n92(FU|n z5Zd4Y6fJlFzZN<`*L(T}BY-|;fa~i*54_Z}1HC-;@pcaL%}Q_Jw4>(Yhv-=uKSIC2 z>ckO-1a>jR!>GVlw9UBsU5AKieBQ$C+{Lm5Xa40iY(KROv(&0 m7Fakp)PFW~nuv?`bmUxQRrzzfN%dq9jjA2IT;inz%YOlQ?ecE` literal 0 HcmV?d00001 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..d86b249 100644 --- a/Java-Knight/src/main/java/org/project/item/weapons/Weapon.java +++ b/Java-Knight/src/main/java/org/project/item/weapons/Weapon.java @@ -1,35 +1,51 @@ package org.project.item.weapons; import org.project.entity.Entity; +import org.project.entity.players.Player; +import org.project.item.Item; -// TODO: UPDATE IMPLEMENTATION -public abstract class Weapon { +import java.lang.foreign.PaddingLayout; +import java.util.ArrayList; +import java.util.List; + +public abstract class Weapon implements Item { private int damage; - private int manaCost; - /* - TODO: ADD OTHER REQUIRED AND BONUS ATTRIBUTES - */ + private static int upgradeCost = 2; + private int cost; + private int x; - public Weapon(int damage, int manaCost) { + public Weapon(int damage, int cost, int x) { this.damage = damage; - this.manaCost = manaCost; + this.cost = cost; + this.x = x; } @Override - public void use(Entity target) { - target.takeDamage(damage); + public boolean buy(Player player) { + List W = player.getWeaponsList(); + for (Weapon w : W) { + if (w.getClass() == this.getClass()) { + return false; + } + } + boolean res = player.addItem(this, cost); + return res; + } + + public boolean upgrade(Player player) { + boolean res = player.pay(upgradeCost); + if (res) { + upgradeCost *= x; + damage += x; + } + return res; } public int getDamage() { return damage; } - public int getManaCost() { - return manaCost; - } - - /* - TODO: ADD OTHER REQUIRED AND BONUS METHODS - */ + @Override + public int getCost() { return cost; } } diff --git a/Java-Knight/src/main/java/org/project/location/Location.class b/Java-Knight/src/main/java/org/project/location/Location.class new file mode 100644 index 0000000000000000000000000000000000000000..111e116ddcf22d6e38d5599692b804f06dac846c GIT binary patch literal 569 zcma)(%}&BV6ot<%KLu<70e=$~8W&KFvvA=8C!wP0pRU{pQT=>HEj)8-Ol$OR$i!k#&$mo>09F9s)5AbSSQdw{nya@@Gn` z06G^D~KeqiORyyn$qq2hv zs)U@>axx?A`^$DxCn}i<^G?Zo(KSqmaN1fm`}_yhVS7h&xKG?7)LCoDvbwBg6gkQ=n-Ch enemies; + private Enemy enemy; - public Location(ArrayList locations, ArrayList enemies) { - this.locations = locations; - this.enemies = enemies; + public Location(String name, Enemy enemy) { + this.name = name; + this.enemy = enemy; } public String getName() { return name; } - public ArrayList getLocations() { - return locations; - } - - public ArrayList getEnemies() { - return enemies; + public Enemy getEnemy() { + return enemy; } } 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..1f49b9339baa55f73b61e3d6f76e0a2d3a46b73e GIT binary patch literal 23785 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 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..e3ecfc0e09251a83e1c065af02b0ca22885cd18b GIT binary patch literal 236 zcmZ{ey9&Zk5JYD+4^4cvHr7ew{QxV$hyg)Cu&}#^OUT1S;x*u}S@;2dl(>nt&Cc%Z z44n7p`2rANY@$mU&Y1o9`1h4&}Xy)H=!8a(^822Eih5 chPeTQu}oOJa38%^`*2!yG2jGY$g_jd7nEW(BLDyZ 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..d6139678c1abffd87db322f965684a5080e8ef61 GIT binary patch literal 1013 zcmaJ<=}r?-6#nka&?)Vdj>uZ1vZ%CW8E`=nVuFInBtR2uYO233?M)eIXPW7)%B%Pm zY65Wy58y))&z%;7gz)E{<(}m`-#LHIf1Ux@#`At?&`lT?`VeE74#K+A3WGyYm5%VG zCyz;prYG9YR>@f| zd=k7B_-*H1B-dRxUp6toU?1|2-04WK;k@B~Eodf?f~~sVV$gH>va)Ym7{V}v>5I?O z^(BLmbMu5z!>ENZj5DO$LUu>k;!R!`-4M#wFk#^iCK>v@c1d=8U(}+?@73R33sab; z^!n9w>g^^mi+d*STX>*)j9;FrN8fhDB11y*Bk`~GtDr^*(mS3n_Bzdd5x(X74e|`` z1XbQB^Uzav&uPd5ugx&~A8FTaXPsE)Qu68%LpFC^d>77ozD$vlhcp$##0`NIb^%)Z z;1X#eEkWVDx)y3}sy`ZsAyrZsc6lqBz{Cnee52av?LScpI$>43_SD45?oyUiJxmkh zak@;ROC2O>I_b1(dgsVmBQGPFEPMlFx_%1tE14Q{^s03M10>VPlV){8QNTP|3=3H7 zl{te!g@Bjl??gqnhl&-$9xYb->`bu|vnPwYzmTe&BE7e`aCU;hRim&lY%HB%q;P`F z7o_G%W`AHtgX*qF-Lo)BAEIL$ri&RN-zb(bj;F|AlkQ6)dfe^WLqz?t1cxw0fX=2qxinyez7nEe9DS?<>`wph?un12q@+awiMm`N| Fe*t1((slp< literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/entity/enemies/Enemy.class b/Java-Knight/target/classes/org/project/entity/enemies/Enemy.class new file mode 100644 index 0000000000000000000000000000000000000000..8a0d0626802f22458630b4d6555b31df8f80ecb7 GIT binary patch literal 1995 zcmah}Yi|=*5IxsV*4{h{HUUCt653!d6u0G75(to&a1~nARB4+}-PkL$5bs*+HLt&d z`VaWfN?1sI=nv?Rs(R+`#&MQKm8CoP&d!`UbM9RK^Y4eh0c>KkgbcDpL= z^c$PBuN2I{=?{W{0j}>Us6Bz0G%+RlhTGo>2cGA&#rv6wlQ^Z2@7gaPK4xrFyj2sY z#hZE3lj9i^XK{|SUO0A75Er(`Nw}fYZA72?jbC)gilm)4F()X+m%Yb<``QuT=O*UG zXS96R8+jK^TokX_4(yKaZP;DA;}r3w!rAdcakrbgX@yI*=Ku0&HtV|zxplwoC`@g; zp7X)9i_7cxdo0x1`1zj%lqf+$jFRq%YoCDbEqw+R9nulwwx?& zIZd=v#K~ic>m{Dv5GPMtx86fp*&&LuOjxr+Ov_TSt_(3_%?&YYRdYjJ_)A08xGurq zdI~vO1C#t!c&g$IAH*DHu*hAFuc6MU>roL{xXcsF$x|W)*$MrO-U-pH-U-zlzhA*u zG0|1VNK`>sO&qb1e+b|_@#l1<(^1r@QUO;f0|$+bH)1TYQaf+G!^B%|G9*f9?VQ&z zlEQ!(M&WCGLysu7PKr{pZ2k5QmDx5mO0ro(iJ{VW#HKuAQ^vQtZ-r|kHd_RiVr8@t$S=KNg%X2%HXBjIgt<3z%X2&nFiv|o)Z|0oY{eI5ReE;$F8-O-WY^0F3ka2JgSwcOGM*cJk&*eb-GSEt2 za*z`xXMUUGB_aDz1xi069D1GZGF)jn@jpm04TG8gI*zSQr*Udy133$}gFGC<-ZJM8 zi)UeftO7z#&3bws1ae47dyO|nqUfLmm;a5VPSgqeUgMu7*eGMm!gU8XP$BFt+pj4( zF?b>-VkBepP98V0ZQ+)K8g3J|mjxE}x8q3>Y%MP2FK));<_QP?F(!k{JPwEKSn8@k zzL-z?GI}NYWByX^h66D^6_GOc#m9_3Q!^gGO8aZ4*&?LQrUdHn?vnNJ5>|L?#=xws z&{_;G2s_>idZp)Is_l?(&U!*vCEA zGT8y{$Lfdh7V2*qZTQvZ6|9daA8{;PVRPf%7gSR)Hfb1}Vl3;z!X_%%imfUM^|w_O S4K!K!C}vTG(_>Ckc<>Xev(;Mw literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/entity/enemies/Skeleton.class b/Java-Knight/target/classes/org/project/entity/enemies/Skeleton.class new file mode 100644 index 0000000000000000000000000000000000000000..325d774e11798ab54642fbe53ddf86ce07502038 GIT binary patch literal 1156 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 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..dc295678fd9e0410080f1e6864d2c6cbc85efaed GIT binary patch literal 1280 zcmah}+iuf95IviuF?HR>O>a;ry^-QvT0^-?K}Z#}qEd<~6;gqC*(R%WTgQ$Z7ZjfO z72f;8OOSZr1NbP!tR116Smb4PcRVwD&g>cg`u*c4fL%P*kwRKS#=sb|46B~svOB(a zCK`b)+&~6ByW{Yl@VoY5xH4p)NmmBX8Qxj7Gyaj=4tHDjQQ%9rRo&mOT`eI4(Y8Mc z-tpY7eH^aU;Q;QpJ-T2=EmWac*KrNw8gv5_F#eC~SbpYylVPkSf`dbbv{l?!=~D)B zFd4LNN4QP(C1VXL=MBtYmK>*oI}96E4AFqKa79~+uDwfZuNr2iFmGT1*BQp?vWN}C zx>bzjCsEe1h?^R28CX($mPfQGy5J>m^On%Dj1>*52G$gvm8+>qP#N@qpNlA&;cdbj zjf6WK5PP9woqG4eYYK*3O}gUsMf*hfZ}^Ero_x(~aHr0Fsm=puCODN{YE`W8Kk|wm zvPz|0-VO^5iHo!sX^A8eE0xr9l0=A_+C3Z_|&oFru@W%N8?+hBPA9)vkL+nZQ6cbTPw^Sdo zN;8q7nFm>F4c5utq0ANdY4X~*H@N8wozoOmDD|P4xvy9%nYlhDOBGY=W4coAW3G=IecaAm zrY|Wl4R!q@vSg<*jyyq_!8~S(%p4I|2;r^5Op5@I%NHbSmu;Q>69xNBuIALh^S z=KXoT035IshzM(AHFwt3s&rgAb?4lRz?876zWnYkyAgy|Zg2WfOtYMjT+Luhb*vgiSOm~EFk*sF_)$RQxiiEFe1W-ld@%S( EzHuKctN;K2 literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/armors/Armlet.class b/Java-Knight/target/classes/org/project/item/armors/Armlet.class new file mode 100644 index 0000000000000000000000000000000000000000..c9d54f738360c4915e24bba534f9b312685b7fef GIT binary patch literal 324 zcmaJ-O;5r=5PehHuC@iLcZuGB13eoEi7}d(G+s2lFLfhJTGlKJ|BDle2Y-M+$}k%_ zGn2fTH<|C>zwaLaPq<1Dpd%1wh!7KQjQuRWtXZkr722t`khV2;Q#^P>h-Z4O-JBqX zFD#=<;DRtXQ`IO(=nO{{A$&9+iqJ3hTD@-Dg|hE*(QxFtG_`ChX|?C4VCa^5L%1!^ zH=h!cH?y_1de**I%A4}c$x7}d?jZO+FT@(*k}+X+&pxqD$9Z4mgXjR-GYyb3`j>zc U62!>Z%l=c*MUNTp&ln&-0+6OhZ2$lO 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..b955a125dcb8617a9d8119811dfcbdf15717b192 GIT binary patch literal 2392 zcmah~OIKS}6#fpm;X=4TfI{U}pcG8PBUGW*22y#nHX5K6M2oN9Bv-g4Bw07XRfZ0o zIPbuzPMD|#R~@(Xuz*`kW@a)>eW)-VN>*2iRB9U*ON4i&$hQr=DMfBOD(pFC##&|ZC1T9LB9;ic zU>*}{$UA=5z*|_B+7wru{DGBYdv91Z&WvBvK`uD+tbpW{g6C#cBaDfGzDDca=|j0~TmC(^5(qVIb*ze!gGvpGNte$!2 zhb^8gS5)@4X@8%VPWb+Yp<`6XGOYH+r=5POeP152^nE%73f; literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/armors/Cuirass.class b/Java-Knight/target/classes/org/project/item/armors/Cuirass.class new file mode 100644 index 0000000000000000000000000000000000000000..9760c08e294dd89d9d4866f7ad000e0517077a06 GIT binary patch literal 328 zcmah_!AiqG5Pg%RSxusif=7|w+8)eZrBI535Ja%#zKx6B&~#<9@xMG3Joo{AlsJpM ziZk$L-tcCInXm7UPXM<#Nf00uh%yWi6V8o&DPFBRCw=(UwyM+nE0iV!W#vmy*jy;To=yHa*3R~xRJmZp}QN?Pstz8JZ+ z=GIa9&-80T@??5jt2^z7W&5p{jeL_BLGX#*h<$)V#)R1w=fp9a=4ZLcALAY9oq2$i Y(Z2<(ND(9Rs$VURaLkNPU<{D|08ki78~^|S literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/armors/Helmet.class b/Java-Knight/target/classes/org/project/item/armors/Helmet.class new file mode 100644 index 0000000000000000000000000000000000000000..bded862d250f918fce08b4566b818877f22dce34 GIT binary patch literal 325 zcmaJ-!A``k;8BW4er6UXE(y-b626zoA?%ss@6 X?kC{R7%e1Db=0DR3ub%(qlfel*H}lD literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/armors/Pauldron.class b/Java-Knight/target/classes/org/project/item/armors/Pauldron.class new file mode 100644 index 0000000000000000000000000000000000000000..7a4c2e7c02277ca141710fed0b7e61d730e51ea7 GIT binary patch literal 330 zcmah_O-sW-5Pg&8qo%1%doQ#-r5?;#ltK{&A(VoW`!-#4OOlms;{Wm_^xzNZj}m85 zkJ1@4`+-avn$StWA7p!cH_kR0KGGH a&||cZ0SiL-h&YRWr0C2NN5Ir}W+r;U<(0wn73o(>ZmUKZ>MUB)#rJ_po2{*A)mn4oH2hlhF0`UdB z@PgEW!~-9|HzCBi*HJetK`VLgotZOpX1V$K`}+?7n|P8$1W^q!9dRTCx{j^4mRYfC zW%I@1v0d~95-U#4@z(^Rne2W$+R&~csUrnlV8ZpvX5Dk8r|I~1)vUX|Nd+q zBqk1$7{RE9F&*QW5SY5m#;*B}e`3}v)`{(rkCH5+Zk;fFrjS+WDIL?8VS1}nDv-ax zTxR=nn2@6K#A=um=>N+x2%%*P{LAh$&xTvF1vS zD%o#^=Cx~f)v+7qCgn-~KT^mJC49>(+nnZf7~pD1fmF#ZdbZV&%?zf<5K*p}Ks%!Z zEv6=uEpVpPY;es4l00n&`*rEEv&+k#+w_X|Ge-_36)bH|zJb^j7cl~XSw4)2+;+Z~ zh+JMJxwA@gPnG0uQnt}Qj(L7>^7fwoamr!i8-y`(2F(~fL)sWSLzmGXJ45dmh0RDG zB>3$^jGNz%0d!yxy>jFEpQU9fhy()*yh(q_NT`$K6j3M1DymMBSB&;sxZPs&ffi}Y z8K)Tdh#}+EDYV#YvRa@f{T0KjpU`8F*1&=hXeL)jKNAtf1;cS@m_RosF@_mFompm> zR}2m28>VlLj3t}gIoBLa+)-R2E$dy{HAKdKp@YvDi@4V!xvtUy;-WJNn!pUQ3zMn> zaUNN)FZY#Qs2p-$%Xq-A?EeP6C6kmYb)>{nFT%>-J&=5o4U(Y;0@w4P*1URAGXd#9Ltm@}c1Lb?{;+cqJ6vbsfAE3SJEb_g)7thl1Bs HaqE8oipUm} literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/potions/healthPotion.class b/Java-Knight/target/classes/org/project/item/potions/healthPotion.class new file mode 100644 index 0000000000000000000000000000000000000000..8adb58483830d2a33ceda9a935f612e2febd6a06 GIT binary patch literal 1152 zcma)5+fLg+5Iu|Cm>3i8ZNsGmDBy$?_kIh7N|Y**C`E!&iKi}R1%||q>`e>L{fd4@ zUtFmV{eXT{)mbN0ag|E-!|v?vc+QzKGe3WQ{{dhNFHQ78GoV|zh77}O5S}>AFgO#g zbUY~oJt(Cp%&ij=c3gkgs4iIDFFZwBCQ$qb9sQC6AHQcB+^d z#h8I{3lq5BE045)8{idh@Dq`M*G$|*-oT`VDNHjIx&b?B2wyZj5jk75Uox1IpNp#y zy4{iDmW5dq7;=ASsN081ta&ULxNTuk(Om3CNy&XGcwL@eiEfe_TNg6q)mhEEZHe}da*bwpV{#wdliWRj!@=7Vj zT#TiX9;2ifXiy9$k)d@E267mu;ml)%(ip`u#u7$_cHBRVY&^sBgprL3)`-!IBo@ol K$!4`LASQ(%N!W!LbndXL=Q}c*;WMMNmpLkwF5fry?fbGH?fDI_{bn#{|PnD`B$@;fbm%Lc2)&6@wx9g}8>$ ztfmxGCZ;jN(D!$Tnsunen!~(~1rzsFnG3Bf3AwB8r8v3P+#oTEmonhxU8T`|6PBv6 z>!Vw#l)1+hYSzS(g1pHs#kmhmEW>8d&IGS8ELsUA+cj2*8=1pH6OR;2&xvpX!9%fA zuM*C>e?p4&Z@Zpy9E)I|A6LjTxa~W`vN^?D)jw zi1r=qTb#3^eDNO!y6GW4q4P>36HoDsPAdK!F9=6jFUeB)1`1@QVr!KwjpDDc)@1ua z5f#hlBIsW+vP64tgn_Q32)A>o2$Q*NgxLs-xg|0(5pr2ALSEIBB7R^BI<5V*rZJ2G sjA4j+8%CC%sg2RN&Y1?sO`UnX#+$g#Jl^6R)wv$yu`zOPklBIaALIZeO#lD@ literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/potions/strengthPotion.class b/Java-Knight/target/classes/org/project/item/potions/strengthPotion.class new file mode 100644 index 0000000000000000000000000000000000000000..d87915e10b274211accf9d725d583bed9d05bb8e GIT binary patch literal 1120 zcmZuw+fLg+5Iu|Cm>6>@*K#Wfw8RN1?)?@D4>T1>K#`zS;;D<-218;;_NIl`{zX5d zFRs*wen3B}>Z}v07{w2>v%BLnXU@$2`TOfPfGRdj^g%PATeyV`!$J_&oMsrD3s*Xx z6b+{tNH6dsXFpjPGHagi$#n+9-lng3WTGEg1Ez%mSPc1Y1mR0hUOCM=zY-x~BrC&+ z7j15N^1Z(&F6Ch>^cgg}c&w0yEDU3WAzKsjqu|Ye?w0K0PB&`8>uYiuIqjf|iBXIh z7`HHi$zFA&PoB>A?9JD4^wV__C^47u)voic%xrsNmm8bY@_ zQrxw$fE>fn%?fq?+*dRU-C0s{M=}(CO`cuLZjv6=OBwRreI--Df~{!w zfA;G2UG8%QT(YpD4hK$!8wwtYy;g%7rutMoV$e5(Qz~|N$Me*edkb@XI{k6L;358NK>p(CO<)CVB3_<4I)WXLLFA5$#ZFpS`Es#WvANNOWjJZ zi1Zj$R81MlLsEuevDXi&hADz=1e&N`(Kp~31`i~6FLrseBZ+wsv_eGD_4 z`4^5nb)kh;0$$=(La2b(s1TvG1dC16;Tv-M Gu>KFTIu48g literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/weapons/Bow.class b/Java-Knight/target/classes/org/project/item/weapons/Bow.class new file mode 100644 index 0000000000000000000000000000000000000000..2d391ef14e44235e5a37d25a0be960b059f591d3 GIT binary patch literal 317 zcmaKn&rZTX5XQfO{=r(HayA-oz=0;5OduREnlx#+VCs3P8(jijvJ`nPPb3_803XUY zTfFLSvNOLg-^|W@eIHK%9&r_*hPn?YgbR;wtIb=yF?uQUGFGKr$9pL@y4c1qRU~+0 zRj6{pNjFK7Ugo1gxc;+js`rF?x0ex|2mLAu?Nk+Vwp%Zxc@~QmE1gv5VwDM_EdPp5 z`L4EvoAkfdBSJ9OJCn;NWji(ayTMX?2;9Nv&Fmq*E-v^DnC{_l1_b@684cY7=##02 XORH5C*6Sf;4$n?B(PHAsD`)fr=Ga9M literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/weapons/Dagger.class b/Java-Knight/target/classes/org/project/item/weapons/Dagger.class new file mode 100644 index 0000000000000000000000000000000000000000..3a67cd51372b3f1958cb3c022da20606a9724ef8 GIT binary patch literal 326 zcmaKn&rZTX5XQfO{?Vmk^#u&K!oglmG+qRgCXE+OJuhWbmOz&*MW4%)i3cCRha%3l zUS%iQnctUhCNn>WuWtY|TnO~g58*}d5fHA7t4M7t(6Sf1=kc z^^P#g|6Qt^eoGL~W^YUNsNJwZCtt7Ro5TnqpXeTO_&DWXFx|l83J{Z6#EJh2`e5o| X;Iy{Gc>_euQRl=NhD^MF>x_Q^rCdmJ literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/weapons/Halberd.class b/Java-Knight/target/classes/org/project/item/weapons/Halberd.class new file mode 100644 index 0000000000000000000000000000000000000000..9215c0b6095c38d589fed153599e89566f59156f GIT binary patch literal 329 zcmaiv&rZTX5XQfurNvsc8t?u&fd_jfk$5o}n>1W7^}MtjT~fMaDezpLNI38SK9pg$ zay9HEyYu_@o0-hd?{)`Zh|2&iI6mAEZFqzmZ9e0<(Nme%v8v@PUQ038)gu0AUV=AJ zm8zdP=_X0i%Y1YQxBr&CiE<)ML2$agjNrcLLJ}@gRmstE#$WGZQnGTD>RgnWFv{{l zbn7p*Al#?N+CLG3v0j>7zAD=-JdAyuij}|}eBRO?;%MW9?|`Wfmop%Eh_0i;+kn2A ZS~#^@Q(?UxLgw(#i8Gut@dk}E+5-sfN%a5# literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/weapons/Spear.class b/Java-Knight/target/classes/org/project/item/weapons/Spear.class new file mode 100644 index 0000000000000000000000000000000000000000..f3befcfdfc108a57fed3960a5251e29c48074d21 GIT binary patch literal 323 zcmaKn&rZTX5XQfO(&}2E@Bsd~fd_jvfp{^PG--?pq@I_$(IwDrmIBYk$;5*X;6oW_ z3s>AtcINlxo7tJ4->+`~6Z8ZcXa?{?wBQr2jD3$wYZfZ6VqK|Kyi>9?#X5eiBf%f* zLRSx*43Z=nW&zF!mnX}nrIMD=91Jsp_h{Y}p_}SLJ#SWXWoL4}WTl^)TrM+dwd14c zRUdjyxK96XJ|c*z+1Ok?Y1d2CU*0X`R^kQ$@8=HjZQ-0>!E_IgGeF!%{piL21nrp` XxNurs;k-UV=J4P|8yzN|zIH}`im6Am 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..10d5e46c54c58a3ecdba597da533b9ee1fbbaf6b GIT binary patch literal 323 zcmaKn&rZTX5XQfO{=v0E^#M?C;DKIAAY6zhO&TwldS1##mq3>+1)htO2?rm5hceDq zuezJ;%ghELBk@x>D=ppybAs+vK&5gkY>o zT}?RYrD@vFL$nCpKg(tZV;6*Gub&gVsaYsOC)1^R-mT}#zR3BCm7B~Ia+OP~9si16 z^{%&syX^nwBZ8Qjoh{UpcD+RX*} z@s8if55OiHAT|{iDb_6b1U`h~b$T>5mQfXpnZCEDyU*#@{PNdNF95uc?G$2&n=mXS zFr+Z?P=BSJhHloKdwUPvYM?N*<~6-wT_K(?>RYId9lp`>?BALzQPpvvMqW?@_$jcThCh~gy+lcG?MQ<%n#iL`~6@rpwBY-qO` zc)_95ZsP5EsW4V|gC0<);&sS%GGC~K8FT}$;fSs{f?3R&$XJ-iMY{BVR!EYz zuY;DaknZy?M|wtBMApQs7B1m3G5(EkVxnN~>&}+@m=sv0UGd0SxPm-0ZHDUUlh|i! zTa@D47M8I>9?WHA!Z-FDsAHFtycmzb|xcmr>ec3U5kY@X&O-cp$PPuw2jP`+F)7j|g6(Wmq@*Pv#y(yHplj`lsdM@l2u_n2Asf9aCRUYAUA{h19MfMQ{ngY$?()*B3k zOMUSNJJIC<2mSn<5ZHG~Q88w^KZV2gNg6lKd9C%~4J!Y7QDJmD(A6(Dbvr7C8TCM6 zm`%SEEeHpv%-+fvus0ltwQ3{UywrB9>sQ^op44}wH}R`7hDMgHjX~iS3`*`Kw>l-A zri{s|g_0XaIYhezZu4E_t-Fq$z=tGRrlocI?IY?xre+-R zKVg}eHL;leol1quX>MQBEl#7{^7puQjGLv*6U^~Q-V^&jP=5Z5h34f87Ca+K#KRJn&8Sxop>nn+AM_yhb= z#@VGt6cf!R^V*qjzL|M@e|ZJaz;*@(VkY7i5=b)S`|iE#3|!xHF1vl+lMKmI;R|`j z5UW%>X{3-gk+HA@i(xwmJ?AbARHicsdae|K?=&NWA?~|F&QNH6!M0^6e6Oy6vKDg4 zGbFgrhZBbV<~$ttrH~Ux{RuvD8Y-vGa8g+W`@62%Au{K|4Ux$;h0j~#VV8$jZg-&R z5#d3{4TbWfU|imc5yQ?m?1d4Dkm+&R(qon?)kSU$DN4}n84f7pA2Vj!!8q*k3!&KA zpX)qUOT->6&Y;^F^ymiKqAik+fmVrSk_Gav)nQ5JYR_P`!zs+#(G>QhE+~>LAWqUI znMIloktL84MRsRpSivfJ1fbh6ZK*~EH7H{(YU7Yre~H=?%m*?IDDb2X7B!$XONam& W*0Dhm#c{sa{#ji9wRlsv*!lp_