From a4bf8a7a3d3379b375173f3314b8f005e4487a43 Mon Sep 17 00:00:00 2001 From: Parmis Jamami Date: Thu, 14 May 2026 15:41:00 +0330 Subject: [PATCH] complete code --- .../src/main/java/org/project/GameEngine.java | 211 ++++++++++++++---- .../src/main/java/org/project/Inventory.java | 44 +++- .../src/main/java/org/project/Main.java | 13 +- .../project/entity/players/CombatActions.java | 14 +- .../src/main/java/org/project/item/Item.java | 7 +- .../src/main/java/org/project/item/Key.java | 22 +- .../java/org/project/item/armors/Armor.java | 14 +- .../project/item/armors/AssassinArmor.java | 5 +- .../org/project/item/armors/KnightArmor.java | 11 +- .../org/project/item/armors/MageArmor.java | 5 +- .../project/item/consumables/Consumable.java | 19 +- .../org/project/item/consumables/Flask.java | 32 ++- .../java/org/project/item/weapons/Dagger.java | 26 ++- .../java/org/project/item/weapons/Staff.java | 26 ++- .../java/org/project/item/weapons/Sword.java | 32 +-- .../java/org/project/item/weapons/Weapon.java | 18 +- .../java/org/project/location/Location.java | 26 ++- .../classes/org/project/GameEngine.class | Bin 0 -> 7456 bytes .../target/classes/org/project/Main.class | Bin 0 -> 498 bytes .../classes/org/project/entity/Entity.class | Bin 0 -> 3118 bytes .../org/project/entity/enemies/Dragon.class | Bin 0 -> 1627 bytes .../org/project/entity/enemies/Enemy.class | Bin 0 -> 2371 bytes .../org/project/entity/enemies/Goblin.class | Bin 0 -> 1557 bytes .../org/project/entity/enemies/Skeleton.class | Bin 0 -> 816 bytes .../org/project/entity/enemies/Vampire.class | Bin 0 -> 1587 bytes .../org/project/entity/players/Assassin.class | Bin 0 -> 2508 bytes .../entity/players/CombatActions.class | Bin 0 -> 274 bytes .../org/project/entity/players/Knight.class | Bin 0 -> 2181 bytes .../org/project/entity/players/Mage.class | Bin 0 -> 2474 bytes .../org/project/entity/players/Player.class | Bin 0 -> 3792 bytes .../org/project/inventory/Inventory.class | Bin 0 -> 2054 bytes .../classes/org/project/item/Item.class | Bin 0 -> 194 bytes .../target/classes/org/project/item/Key.class | Bin 0 -> 806 bytes .../org/project/item/armors/Armor.class | Bin 0 -> 1135 bytes .../project/item/armors/AssassinArmor.class | Bin 0 -> 340 bytes .../org/project/item/armors/KnightArmor.class | Bin 0 -> 335 bytes .../org/project/item/armors/MageArmor.class | Bin 0 -> 328 bytes .../project/item/consumables/Consumable.class | Bin 0 -> 529 bytes .../org/project/item/consumables/Flask.class | Bin 0 -> 1481 bytes .../org/project/item/weapons/Dagger.class | Bin 0 -> 1431 bytes .../org/project/item/weapons/Staff.class | Bin 0 -> 1427 bytes .../org/project/item/weapons/Sword.class | Bin 0 -> 1426 bytes .../org/project/item/weapons/Weapon.class | Bin 0 -> 818 bytes .../org/project/location/Location.class | Bin 0 -> 1571 bytes 44 files changed, 415 insertions(+), 110 deletions(-) create mode 100644 Java-Knight/target/classes/org/project/GameEngine.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/CombatActions.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/Mage.class create mode 100644 Java-Knight/target/classes/org/project/entity/players/Player.class create mode 100644 Java-Knight/target/classes/org/project/inventory/Inventory.class create mode 100644 Java-Knight/target/classes/org/project/item/Item.class create mode 100644 Java-Knight/target/classes/org/project/item/Key.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/MageArmor.class create mode 100644 Java-Knight/target/classes/org/project/item/consumables/Consumable.class create mode 100644 Java-Knight/target/classes/org/project/item/consumables/Flask.class create mode 100644 Java-Knight/target/classes/org/project/item/weapons/Dagger.class create mode 100644 Java-Knight/target/classes/org/project/item/weapons/Staff.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/GameEngine.java b/Java-Knight/src/main/java/org/project/GameEngine.java index 0638f59..aa3fb6a 100644 --- a/Java-Knight/src/main/java/org/project/GameEngine.java +++ b/Java-Knight/src/main/java/org/project/GameEngine.java @@ -1,157 +1,274 @@ -package org.project.game; +package org.project; + +import org.project.entity.players.Player; +import org.project.entity.players.Knight; +import org.project.entity.players.Wizard; +import org.project.entity.players.Assassin; import org.project.entity.enemies.Enemy; import org.project.entity.enemies.Goblin; -import org.project.entity.players.Knight; -import org.project.entity.players.Player; -import org.project.entity.players.Warrior; +import org.project.entity.enemies.Skeleton; +import org.project.entity.enemies.Vampire; +import org.project.entity.enemies.Dragon; + +import org.project.item.Item; + import org.project.location.Location; -import java.util.Scanner; +import java.util.*; -public class setupGame { +public class GameEngine { private Player player; - private Location currentLocation; + private Location castle; private Scanner scanner; - public setupGame() { + private Map possibleEnemiesMap = new HashMap<>(); + private Enemy currentEnemy; + + public GameEngine() { scanner = new Scanner(System.in); - setupGame(); } private void setupGame() { + System.out.println("Choose your class:"); + System.out.println("1. Knight"); + System.out.println("2. Mage"); + System.out.println("3. Assassin"); - player = new Knight("Hero"); + int choice = scanner.nextInt(); + scanner.nextLine(); + + switch (choice) { + case 1: + player = new Knight("Hero"); + break; + case 2: + player = new Wizard("Hero"); + break; + case 3: + player = new Assassin("Hero"); + break; + default: + System.out.println("Invalid choice, defaulting to Knight."); + player = new Knight("Hero"); + } - // Create Locations Location village = new Location("Village"); Location forest = new Location("Forest"); Location dungeon = new Location("Dungeon"); + Location graveyard = new Location("Graveyard"); + + castle = new Location("Castle"); - // Connect Locations village.connectLocation(forest); forest.connectLocation(village); forest.connectLocation(dungeon); dungeon.connectLocation(forest); - // Add Enemies - forest.addEnemy(new Goblin()); + forest.connectLocation(graveyard); + graveyard.connectLocation(forest); + + village.connectLocation(castle); + castle.connectLocation(village); - // Starting Location currentLocation = village; + + possibleEnemiesMap.put(forest, new Enemy[] { new Goblin() }); + possibleEnemiesMap.put(dungeon, new Enemy[] { new Skeleton(), new Vampire() }); + possibleEnemiesMap.put(graveyard, new Enemy[] { new Skeleton(), new Vampire() }); + possibleEnemiesMap.put(castle, new Enemy[] { new Dragon() }); + + spawnEnemyForLocation(currentLocation); + } + + private void spawnEnemyForLocation(Location loc) { + Enemy[] possibilities = possibleEnemiesMap.get(loc); + if (possibilities == null || possibilities.length == 0) { + currentEnemy = null; + return; + } + + Random rand = new Random(); + Enemy template = possibilities[rand.nextInt(possibilities.length)]; + currentEnemy = createEnemyInstance(template); + } + + private Enemy createEnemyInstance(Enemy e) { + if (e instanceof Goblin) return new Goblin(); + if (e instanceof Skeleton) return new Skeleton(); + if (e instanceof Vampire) return new Vampire(); + if (e instanceof Dragon) return new Dragon(); + return null; } public void startGame() { - boolean running = true; - System.out.println("=== RPG Game Started ==="); + boolean running = true; + while (running) { - System.out.println("\nCurrent Location: " + currentLocation.getName()); + System.out.println("\n===== MENU ====="); - System.out.println("1. Move"); + System.out.println("Location: " + currentLocation.getName()); + System.out.println("HP: " + player.getHp()); + System.out.println("Mana: " + player.getMana()); + System.out.println("Level: " + player.getLevel()); + System.out.println("XP: " + player.getXp()); + System.out.println("Keys: " + player.getKeyCount()); + + System.out.println("\n1. Move"); System.out.println("2. Fight"); System.out.println("3. Show Inventory"); System.out.println("4. Exit"); int choice = scanner.nextInt(); + scanner.nextLine(); switch (choice) { - case 1: move(); break; - case 2: fight(); break; - case 3: player.getInventory().showInventory(); break; - case 4: running = false; System.out.println("Game Over."); break; - default: System.out.println("Invalid choice."); } + + if (!player.isAlive()) { + System.out.println("\nYou died. Game Over."); + running = false; + } } } private void move() { - if (currentLocation.getConnectedLocations().isEmpty()) { System.out.println("No connected locations."); return; } - System.out.println("Where do you want to go?"); + System.out.println("\nWhere do you want to go?"); for (int i = 0; i < currentLocation.getConnectedLocations().size(); i++) { - - System.out.println( - (i + 1) + ". " + - currentLocation.getConnectedLocations().get(i).getName() - ); + System.out.println((i + 1) + ". " + currentLocation.getConnectedLocations().get(i).getName()); } int choice = scanner.nextInt(); if (choice < 1 || choice > currentLocation.getConnectedLocations().size()) { - - System.out.println("Invalid location."); + System.out.println("Invalid choice."); return; } - currentLocation = - currentLocation.getConnectedLocations().get(choice - 1); + Location nextLocation = currentLocation.getConnectedLocations().get(choice - 1); - System.out.println("You moved to " + currentLocation.getName()); + if (nextLocation == castle && player.getKeyCount() < 3) { + System.out.println("\nThe castle gate is locked!"); + System.out.println("You need 3 keys."); + return; + } + + currentLocation = nextLocation; + + spawnEnemyForLocation(currentLocation); + + System.out.println("\nYou moved to " + currentLocation.getName()); + + if (currentLocation == castle) { + System.out.println("\nThe final battle awaits..."); + } } private void fight() { - - if (currentLocation.getEnemies().isEmpty()) { - + if (currentEnemy == null || !currentEnemy.isAlive()) { System.out.println("No enemies here."); return; } - Enemy enemy = currentLocation.getEnemies().get(0); + Enemy enemy = currentEnemy; - System.out.println("A wild " + enemy.getName() + " appeared!"); + System.out.println("\nA wild " + enemy.getName() + " appeared!"); while (player.isAlive() && enemy.isAlive()) { - player.lightAttack(enemy); + System.out.println("\n===== COMBAT ====="); + System.out.println(player.getName() + " HP: " + player.getHp()); + System.out.println(enemy.getName() + " HP: " + enemy.getHp()); + + System.out.println("\nChoose action:"); + System.out.println("1. Light Attack"); + System.out.println("2. Heavy Attack"); + System.out.println("3. Defend"); + System.out.println("4. Heal"); + System.out.println("5. Special Ability"); + + int choice = scanner.nextInt(); + scanner.nextLine(); + + switch (choice) { + case 1: + player.lightAttack(enemy); + break; + case 2: + player.heavyAttack(enemy); + break; + case 3: + player.defend(); + break; + case 4: + player.heal(); + break; + case 5: + player.specialAbility(enemy); + break; + default: + System.out.println("Invalid choice."); + continue; + } if (enemy.isAlive()) { + System.out.println("\n" + enemy.getName() + "'s turn!"); enemy.attack(player); } } if (!enemy.isAlive()) { + System.out.println("\n" + enemy.getName() + " was defeated!"); - System.out.println(enemy.getName() + " defeated!"); + player.gainXP(enemy.getXpReward()); - currentLocation.removeEnemy(enemy); - } + Item loot = enemy.dropLoot(); - if (!player.isAlive()) { + if (loot != null) { + player.getInventory().addItem(loot); + System.out.println(enemy.getName() + " dropped: " + loot.getName()); + } - System.out.println("You died."); + currentEnemy = null; + + if (enemy instanceof Dragon) { + System.out.println("\n===================="); + System.out.println("YOU DEFEATED THE DRAGON!"); + System.out.println("====== YOU WIN ======"); + System.exit(0); + } } } } diff --git a/Java-Knight/src/main/java/org/project/Inventory.java b/Java-Knight/src/main/java/org/project/Inventory.java index ac8a4dd..2d5a822 100644 --- a/Java-Knight/src/main/java/org/project/Inventory.java +++ b/Java-Knight/src/main/java/org/project/Inventory.java @@ -1,4 +1,46 @@ -package org.project; +package org.project.inventory; + +import org.project.item.Item; + +import java.util.ArrayList; public class Inventory { + + private ArrayList items; + + public Inventory() { + items = new ArrayList<>(); + } + + public void addItem(Item item) { + + items.add(item); + + System.out.println(item.getName() + " added to inventory."); + } + + public void removeItem(Item item) { + items.remove(item); + } + + public ArrayList getItems() { + return items; + } + + public void showInventory() { + + if(items.isEmpty()) { + System.out.println("Inventory is empty."); + return; + } + + System.out.println("=== Inventory ==="); + + for(int i = 0; i < items.size(); i++) { + + System.out.println( + (i + 1) + ". " + items.get(i).getName() + ); + } + } } diff --git a/Java-Knight/src/main/java/org/project/Main.java b/Java-Knight/src/main/java/org/project/Main.java index 6bde20e..dd34305 100644 --- a/Java-Knight/src/main/java/org/project/Main.java +++ b/Java-Knight/src/main/java/org/project/Main.java @@ -1,15 +1,10 @@ package org.project; -import org.project.location.Location; - -import java.util.ArrayList; -import java.util.List; +import org.project.GameEngine; public class Main { public static void main(String[] args) { - // TODO: ADD LOCATIONS TO YOUR GAME - List locations = new ArrayList<>(); - - // TODO: IMPLEMENT GAMEPLAY + GameEngine game = new GameEngine(); + game.startGame(); } -} \ No newline at end of file +} diff --git a/Java-Knight/src/main/java/org/project/entity/players/CombatActions.java b/Java-Knight/src/main/java/org/project/entity/players/CombatActions.java index ed83b40..a271818 100644 --- a/Java-Knight/src/main/java/org/project/entity/players/CombatActions.java +++ b/Java-Knight/src/main/java/org/project/entity/players/CombatActions.java @@ -1,4 +1,16 @@ package org.project.entity.players; -public class CombatActions { +import org.project.entity.Entity; + +public interface CombatActions { + + void lightAttack(Entity target); + + void heavyAttack(Entity target); + + void defend(); + + void heal(); + + void specialAbility(Entity target); } 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..6259726 100644 --- a/Java-Knight/src/main/java/org/project/item/Item.java +++ b/Java-Knight/src/main/java/org/project/item/Item.java @@ -3,9 +3,8 @@ package org.project.item; import org.project.entity.Entity; public interface Item { - void use(Entity target); - /* - TODO: ADD OTHER REQUIRED AND BONUS METHODS - */ + String getName(); + + void use(Entity target); } diff --git a/Java-Knight/src/main/java/org/project/item/Key.java b/Java-Knight/src/main/java/org/project/item/Key.java index c6baee0..cc24a49 100644 --- a/Java-Knight/src/main/java/org/project/item/Key.java +++ b/Java-Knight/src/main/java/org/project/item/Key.java @@ -1,4 +1,24 @@ package org.project.item; -public class Key { +import org.project.entity.Entity; +import org.project.item.Item; + +public class Key implements Item { + + private String name; + + public Key(String name) { + this.name = name; + } + + @Override + public String getName() { + return name; + } + + @Override + public void use(Entity target) { + + System.out.println("This key is used automatically to unlock the castle."); + } } 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 4aabe00..739a325 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,7 +1,7 @@ package org.project.item.armors; -// TODO: UPDATE IMPLEMENTATION public abstract class Armor { + private int defense; private int maxDefense; private int durability; @@ -14,16 +14,23 @@ public abstract class Armor { this.durability = durability; this.maxDefense = defense; this.maxDurability = durability; + this.isBroke = false; } public void checkBreak() { if (durability <= 0) { + durability = 0; isBroke = true; defense = 0; } } - // TODO: (BONUS) UPDATE THE REPAIR METHOD + public void takeDamage(int amount) { + durability -= amount; + checkBreak(); + } + + public void repair() { isBroke = false; defense = maxDefense; @@ -31,6 +38,9 @@ public abstract class Armor { } public int getDefense() { + if (isBroke) { + return 0; + } return defense; } 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 index f65e9f4..7b84021 100644 --- a/Java-Knight/src/main/java/org/project/item/armors/AssassinArmor.java +++ b/Java-Knight/src/main/java/org/project/item/armors/AssassinArmor.java @@ -1,4 +1,7 @@ package org.project.item.armors; -public class AssassinArmor { +public class AssassinArmor extends Armor { + public AssassinArmor(){ + super(5,25); + } } 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..c828cfb 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,9 @@ package org.project.item.armors; -// TODO: UPDATE IMPLEMENTATION -public class KnightArmor { - // TODO: DESIGN ARMOR'S ATTRIBUTES IMPLEMENT THE CONSTRUCTOR -} \ No newline at end of file +public class KnightArmor extends Armor { + + public KnightArmor() { + super(8, 40); + } + +} diff --git a/Java-Knight/src/main/java/org/project/item/armors/MageArmor.java b/Java-Knight/src/main/java/org/project/item/armors/MageArmor.java index c3836b6..9dbcbe3 100644 --- a/Java-Knight/src/main/java/org/project/item/armors/MageArmor.java +++ b/Java-Knight/src/main/java/org/project/item/armors/MageArmor.java @@ -1,4 +1,7 @@ package org.project.item.armors; -public class MageArmor { +public class MageArmor extends Armor{ + public MageArmor(){ + super(2,15); + } } diff --git a/Java-Knight/src/main/java/org/project/item/consumables/Consumable.java b/Java-Knight/src/main/java/org/project/item/consumables/Consumable.java index 028e13d..c581bc0 100644 --- a/Java-Knight/src/main/java/org/project/item/consumables/Consumable.java +++ b/Java-Knight/src/main/java/org/project/item/consumables/Consumable.java @@ -1,8 +1,17 @@ package org.project.item.consumables; -// TODO: UPDATE IMPLEMENTATION -public abstract class Consumable { - /* - TODO: ADD OTHER REQUIRED AND BONUS METHODS - */ +import org.project.item.Item; + +public abstract class Consumable implements Item { + + private String name; + + public Consumable(String name) { + this.name = name; + } + + @Override + public String getName() { + return name; + } } diff --git a/Java-Knight/src/main/java/org/project/item/consumables/Flask.java b/Java-Knight/src/main/java/org/project/item/consumables/Flask.java index c0e7a6d..dd05087 100644 --- a/Java-Knight/src/main/java/org/project/item/consumables/Flask.java +++ b/Java-Knight/src/main/java/org/project/item/consumables/Flask.java @@ -2,15 +2,33 @@ package org.project.item.consumables; import org.project.entity.Entity; -// TODO: UPDATE IMPLEMENTATION -public class Flask { - /* - THIS IS AN EXAMPLE OF A CONSUMABLE DESIGN. - */ +public class Flask extends Consumable { + + private int healAmount; + + public Flask() { + super("Flask"); + this.healAmount = 30; + } - // TODO: UPDATE USE METHOD @Override public void use(Entity target) { - target.heal(target.getMaxHP() / 10); + + target.heal(healAmount); + + + System.out.println( + target.getName() + + " drinks a flask and restores " + + healAmount + " HP." + ); + } + + public int getHealAmount() { + return healAmount; + } + + public void setHealAmount(int healAmount) { + this.healAmount = healAmount; } } diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Dagger.java b/Java-Knight/src/main/java/org/project/item/weapons/Dagger.java index cf828d1..d1766f1 100644 --- a/Java-Knight/src/main/java/org/project/item/weapons/Dagger.java +++ b/Java-Knight/src/main/java/org/project/item/weapons/Dagger.java @@ -1,4 +1,28 @@ package org.project.item.weapons; -public class Dragger { +import org.project.entity.Entity; + +public class Dagger extends Weapon { + + public Dagger() { + super(10, 0); + } + + @Override + public String getName() { + return "Dagger"; + } + + @Override + public void use(Entity target) { + int damage = getDamage(); + + if (target.isDefending()) { + damage /= 2; + } + + target.setHp(target.getHp() - damage); + + System.out.println("Dagger deals " + damage + " damage to " + target.getName()); + } } diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Staff.java b/Java-Knight/src/main/java/org/project/item/weapons/Staff.java index 65b42b9..26d6e63 100644 --- a/Java-Knight/src/main/java/org/project/item/weapons/Staff.java +++ b/Java-Knight/src/main/java/org/project/item/weapons/Staff.java @@ -1,4 +1,28 @@ package org.project.item.weapons; -public class Staff { +import org.project.entity.Entity; + +public class Staff extends Weapon { + + public Staff() { + super(12, 5); + } + + @Override + public String getName() { + return " Staff"; + } + + @Override + public void use(Entity target) { + int damage = getDamage(); + + if (target.isDefending()) { + damage /= 2; + } + + target.setHp(target.getHp() - damage); + + System.out.println("Staff deals " + damage + " damage to " + target.getName()); + } } 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..748d9f7 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 @@ -2,25 +2,27 @@ 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 + super(15, 0); } - // TODO: (BONUS) UPDATE THE UNIQUE ABILITY - public void uniqueAbility(ArrayList targets) { - abilityCharge += 2; - for (Entity target : targets) { - target.takeDamage(getDamage()); + @Override + public String getName() { + return "Sword"; + } + + @Override + public void use(Entity target) { + int damage = getDamage(); + + if (target.isDefending()) { + damage /= 2; } + + target.setHp(target.getHp() - damage); + + System.out.println("Sword deals " + damage + " damage to " + target.getName()); } } 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 22ff700..cf156a6 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,19 +1,18 @@ package org.project.item.weapons; import org.project.entity.Entity; +import org.project.item.Item; -public abstract class Weapon { - protected int damage; - protected int manaCost; +public abstract class Weapon implements Item { + private int damage; + private int manaCost; public Weapon(int damage, int manaCost) { this.damage = damage; this.manaCost = manaCost; } - public abstract void use(Entity target); - public int getDamage() { return damage; } @@ -22,5 +21,14 @@ public abstract class Weapon { return manaCost; } + public void setDamage(int damage) { + this.damage = damage; + } + public void setManaCost(int manaCost) { + this.manaCost = manaCost; + } + + + public abstract void use(Entity target); } 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..67ef7ac 100644 --- a/Java-Knight/src/main/java/org/project/location/Location.java +++ b/Java-Knight/src/main/java/org/project/location/Location.java @@ -5,24 +5,40 @@ import org.project.entity.enemies.Enemy; import java.util.ArrayList; public class Location { + private String name; + private ArrayList connectedLocations; + private ArrayList enemies; - public Location(ArrayList locations, ArrayList enemies) { - this.locations = locations; - this.enemies = enemies; + public Location(String name) { + this.name = name; + this.connectedLocations = new ArrayList<>(); + this.enemies = new ArrayList<>(); } public String getName() { return name; } - public ArrayList getLocations() { - return locations; + public ArrayList getConnectedLocations() { + return connectedLocations; } public ArrayList getEnemies() { return enemies; } + + public void connectLocation(Location location) { + connectedLocations.add(location); + } + + public void addEnemy(Enemy enemy) { + enemies.add(enemy); + } + + public void removeEnemy(Enemy enemy) { + enemies.remove(enemy); + } } diff --git a/Java-Knight/target/classes/org/project/GameEngine.class b/Java-Knight/target/classes/org/project/GameEngine.class new file mode 100644 index 0000000000000000000000000000000000000000..04485bf000f0fab4d879ea023eb482810dd1637a GIT binary patch literal 7456 zcma)Bdwg6~o&WxlNoF#+P1;Fc>4VD!U4TEeLA`qO7=Wp(#zZ3%Ih1>xvH)(FI*uQCU_O6}4Nb-*fJrbVBnf z`^VgS&hNZ_&+qSd?mYj_@F@U|a%&iQ$PXf5pa6w}@q4U3t0rzGI%_uW-eX5yLE#D~ z;kc^=`4tPd1rZWV(35&yCtkDO%5=3@sW5`bFG4YlAjTOeL8)MJGTm8|N+;DWHS4S% zyD`z}By2$>mCR(E-Ek7^9>>mby`Z%D+@>Vd1u9)VH%jN^j4Iy-QJXvQgJxfz&y;S#*)2M;5lYCrJY2UnGhCG6%AdurFM!dNqsrA$tb6j=&W0~Erc5Kw4~bH zkZ?M?+z^&<&C+VK#p<*}xKvPlX|-9O$?!lYq11Ajf%oD4oRqMycbgLAn$~VoBbOVf zMV%m|Mw+z&Csr)<)RB8=5Gw_vCgO&82XXhMAmErR(?i9Rdt z#LQ?{(uvwtX3XxedgCrNY`RHbv(-Ut6wJ)sIG&7Ju9HmEH2aMZuA*YMIq|sWrd92~ zg_5pKrtJ)EvyG!`dJ~;?G7-WK+HGCh>az!|bS#9cIj_OWxN-VbF|IN2L0n5xRFf$C zC?%bDGF`M4y9`*^%?OJo89`Au%a&kH#d|FGq9JC$R;QLmd(&weHM>C&odPpgbl>8( z7uPi^z6XME#`cTstaZuVapin|+inzYraHtt8hf{hyt z+^B3aDU-7L6IxI7hOAX|WPk zgxUO%I`az#9#aD$4m8_+c07W7Z{%?UUs5CLm>oPO;E|6QII76SByX?>8j`&UH$ree z6v8oX6J{=HN%k>$9A}T2WUZH1PEe~%C2d{Fev^1f<0aDrA)KT-msOjM*E_CqfUg)h zrLtt8hg&GZ(*~YVgn|yWjbiw#2L1(Kqc`&Wk&WogOf|VN=w#1eV)suY$o(t69>g~c zJg@c~l@G?4Ph826-I4Vn{F@-G9cE*novsey--&e`&H?{w#o`MFzJu>lGAC0XclzkM z%#l}z@O@e++@9<;V~!oG_FPZzq`d0~27ZW_ID>N0eG~xOv238zkEUdEsg9)jblMtd zb}}x7dKo_s;wJ|FL!IfB0i)+=P8xesE*1VNcWOx~o$vKy zcxwp%EtnqO(q)@o@-jOK1*VfxoOau>*&+N7K}D%CVUzz$&2D=jQypPpc_4)U&93cm z5?0*YZMn>drqypbZl=1L*6F|tA^e^jPzgSqn@V6kbZ-P9wacHVM;`(jHnyy;-;xD^ z&wx{k@PA6CGfJlOMH)K-JMdr#XX!3szmT({D)rZfL`Y=JG%No$>s{B1c84UNM8?i~ z+v*z_Ar>&>GlbUI9d;rXlAsqloD&a85lh6&7+xtm>QL_b-AOzcVp;}mK$auZ5OL5^XRP=};Wh#6MS>})tMVe&DWF5Ag8drp=hLo$d zB^i$)pPvZAI6xc73`1tB@j}{%0!J9>nr<30I}0v5Qk(65);4OtxrWS>`JCTrIf)&c zyp%yMJ7j?&6|#^}6H6yk&B-KlVEMbDfaQKo6CVlyWRW3NvY5KFVlhP&OdG8WXJq=q zZN*Z9dxLTb9efnHWT!-6$Wl6kuu>jXZuro9zI%-2@p7302AyZ#^#}=rZEE|*t>&7> zwT<;#8rPUx);F4KHrKD)*g88Tmvf=F#8i{EH??}6%6wHOb%v}^N((2$IA^HNp(xAykzw$ocI-rne%3diEx zthA&0J~7~SImET8qs~5e{o{UxUO_F8CfcjdtBXnQ(Dg7$F|Qb=Y@OLkn4ryU9_^-7 z{yF)Shg9z_sltLcN%ERzEuuI(S2}vt3C|7Dyu4kwkh>Y>0GXR+`eFkH;ZfsnX@yRPTm7j ztrmBa0iBmr){QB+Cy{|s7Opq@op{U?(@LdmE3MF1lH5d0|J=P4BrFRuCjBbGL27n< zSeQ04>K3GmIJJZYvLU95(3BnH;iZMrAC~K7ASnA(^xPnrr|qEciA=@GZo9?{A+M%d zOSojcAoz4H;`$Rk1+Aw&<922qF`&CQm0ReaAB&?FZW&0~V@%(f6T4$v75pt4ta!YQ z=B3vdP3pTtgSwmBnV{Uvi{W`Pjm2tESiN6#;i+_bPcF|MjUPWYZvc^p!C62bQ4C_08Po8#M$ zB61v4k70V{5M~|G`&`NAWUdEHuAIRWX7dxs96sktJ*kGbo2-@w_VP&gPs$tM$%TM? zZRsYRvkl>o$%toSJ2U( ze-d5XYfsw=bmwEc8YmAG_#=Bcl4)z_=`LG+xpNBMdyYCWdqzLk4`kPKAUcG7%9#0b zC7*X;E}sin_*C#C&O%H@B~4q!-eO#W8Z=`G+Od?5vJ4I`xCV z7e8&>$S)fE(XO3nmFFnF6IBrT)<`3be?JS!wRG}4p7v8&$5uYid{Nf372wIwOA}iK z@&QT|M!^|0OKEB8M9$|W+IRTlT%+8#R;hc@3EY&2r*TV5)pH0{ojQo3N;!txj-15p z)Y{*+RxPeNHH15t)&?pom61QL2D#eP-5hF7g-{8ceM+tZolqok2oxcM+EUAx{J~55IgqJ^xgdE7T3&A z_D&jMewAz@d!pGZM4+^!q=dbzvT-hNa6V&HbgX@Xu@+b{{eT!M^6vJc-1EUt4dc_m z2xavU9vH@FM^hdi#^7km=ZEo+qbXk;#y^dw93I9KSxV$d?}W&Z|9;AU5A#h%6w<8p z-pjYoP)MUNRpCs4znT2a<4KM!I)*O29Bhw$7Wrsl6u;(e1_4x(5! zzvb=D8Q(sLaf}zVr4u_qmmU27W>cAwzfVr91Q!TL&0=`xsm|Fko(^o7{vH zZl;rb7qVBlqo0Vecf|PxsNJS;QXp*-xr7QqXW=(e}%FiQA+r!R>Jg=3IBOWr-A8#T|SBC z_^+qYIs|&hFSQN#iwvH9fx|i{Ob>h(6LQu+>>Z%geI&a@Am(k-qT%;Z%;EqIak%gh zCMqW0;AHiFQ!mnx>@D3#s@LM_ztN|wE`K{8_00NPwS*#i;eR!)1zKVpK8Hzon7u(p z&lgZlZMN{;hR3m!&Y2)c_2CGu`y{P3L>N2H6;IKTPvDFAGDl9a^)$YTXYm7kmG=9Z zwo4@yYVsre77cz>tZ$c{*zW`49oQ~g=_7eM8Yd$-`3#EWG?t#>Ul*Y>SQbR<5*q25 ztda6wp@~#tcNy~_7 zSslnUEzu%x+4RA8ey=7R#NLq!thYQ?)v>dNgu0W9RZj7a!n0LFQt8jGIw949VOip> zQR&75<~f{DCd;zIzc1TZ&PM)IQhUzvo@HhRv+M+X1LgdfHI3PJ7QRg-e21C%dss&} z*o7AfD?cQRyu>{HBSOQ=xR>zo5PpKs)5Q+sRl4BM*!wwi^J{n=zo5^*&iwo<{F#~h z48OzV<4q~VZ=?jjl?ixD%JDmyfwyHY{wPcNm82G@WhFm^tifLh6KCaGe$9yT<3*t{?qJM^+(funu3A;%YC!q@)mV^xtp1_=GrcEY4*r<@bZoAQOqL9BxpF)Ld zK>O`%G6>DR9*o(k2kB6c``W}(FPr)7Ii4=GwfO?-kTh8Un@5kqY74#0#7Wd?_o-_W z(cAb(rWkRJ3awy$g{zGb@AlG}8HSg!EY6Xcr!oeIDDwd2$wA2xGFDmn%!;{iJcoK) z$Tdch*~BKJxBRZ7!OFoFw%HN$HDLlRf5Lv4!wF8_;jSPRSQL2^d_5Wk*8DRt@31Oy OL<_sbDeSS%VgDET0b;fQ 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..f71b47afcc5cfba4a6f4fca7e5e55f4167035a87 GIT binary patch literal 3118 zcmai0ZBrXn6n-w`1;Peenm~C=Q%h-*+Qee3RodDDZHWS{QmLidb|DKaB)ggHLPclv zt3N?U#~Ejw@k>9bBRbO${s4cJ<8$vWVH39Y%Y8ZbygcWeXV2_E|GxMez%A4g=s;&2 z5e-qq1deU#yLzdrTN|ajt6RpJD-gSCTBdtlpfi_W?nW27<49=efhI6yH#SQ3hAlNq zhUJ>>Ug?(F1R|DRGX(nQ4_z*~4b$3~l1_Rx^x>F5$7WqXl%=R&!wD&h*7VQk>Qa){ zFd!w7nr`V*a8kpN6vU~r;LAodjAD#9pBZ}HwggVk2T_@>Q7d^*PU(SCQ2 zkLk=B>xNY!G9p>&#u<#qaaO|w&b1U|Y0sfA*1_IkS<+r!rd_(nq+F(E=(VYSRyD7o zfb#-_HGSKdv8^@TePFtqJUOmzxsJfO+|iYPb!ic+RvMeJlu3P9d#XNT$L-w4`bLIRB8?M*v9gD3^2zTHd-SU64d(EOnH~<9zgTNO;fQrJEOzngVAS9?=%%9si}Bnm z4P*th*0dtI6)ElZ@>b+eEZIAaHRHA^8`a}|$3@9Geg@OF?K*BluP+$xrd@Hm@F}Gt z>)Q5qR%E^E7Q676U%bf58XJ}Dy4~R0+&#*lk_;kiI@xBtVqXla39O+KhasuCE--#L zD@<$G-Zo0!$nd_R+xnVoH}(X+4HDB=^l;7TR;6k<VTxh@cv%i2vL6& z(Dw%7RFDI{iy6IIUE-i2OSQ6P8I75$?l^`MhbeIONKRo;g5$V%~{yN zQNzJ42Qg0(IZoBi8LDrRZ->BSyD_keg&9$EZQalZy7lRz*LpX_H1{~!y%^-(U zc!ye-ydZcNQ@k;p0x#4_!j~!K<;X{;I!VY8LcEG=KF}w8ky-9kE-ZFdFn%9{Nq2Pry%zhM3ZfZ22>NSA;F~6%yx{v zFJLx+q}W7KY%R|ifz0x+!6VHyciB5ti60S<{DMfJ1u^w_NBPw}Mc=P1c9ePDkoLDB z6(tGpus70QxZ@5GQ7?o7Io=LrH5ABVsBx;@cs`{_AIuT#r8|G zkb^*GaW53eU^@^i6v&5cvd6DrBZu1?*$6dW!hPTPuos+;!|hq@GK*&~$wCe>nMJnw z;RJzX+Ozl~6v)R|J_3ZK2+U!R6kid@*DnF`fJ29WDfmRu@F7;Xr+C*XeWcdU)cOP) Nd`VEci7iwy^dCAXD-Hkv 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..bd5fd26721d00e48f90ae702690611b01ee159d0 GIT binary patch literal 1627 zcmah}?NZxD6g`W<0!8J+AxZTBpO` zK18Rl(f)8|=u97=57p_Bs>q`%K`AO7n$$DIHJx9VQQ5zf)^8n%Te$_(utkS|i4q!K{Hf z3ng3@Sk8w02P>^iV5*~Znm}Nsvi83yCa$1t;Hrgpu^@0g3z5Sr1=x~3*-?oe4HJu4 zGVs2IYjJ{wY=RNT?L-!V33A)*#{ss5W!#`8iY)@;6;?ZiRopai%ff9`1ZFd$okeUA z@q&RCxRT202F^2Tsi~-vy;`hQ)xtXN2p9y~lRYw=rv#ZisrV(1#D)b29|~OU$x~Gi z{Fc;5uI}ulG42|;XW&T(txpi{bf&}N}CP1jd@gWj}M>>@KCrWpNb~K4^D6y~yk&5h1_FZ@F9XC|VlV}Q*g{|4m$QJeqjdqH% zF;m2ziKlpG;JaAf?*&$0&xGs03{KVPT&9DtBU?HMS?_PzE{q&gCcDyadn#IO2Epl| zUwd=LGL{R02WNeizSw=RzCOfzOYI@9|A7^n z*Us?)FvLe(a_h6Db9|nxU*nZA!5q^>D`B4h6(Zk7Il;Em{3C24VH0(to2as$Z89xj ehtXqrjNK&57@lyykvzY}K5Zt~2ROu!Sojwlw5@#r 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..56e3485bcc7077d57b767c9e2833c3171fe29bf6 GIT binary patch literal 2371 zcma)7T~`xV6x|m>CWH|pA5tnpq(~D`(w2hS2v$)v6+bE#MEi9~t}u|yq%$`v|Dumw zt55aW2in!*TDn#r`_SLic6Hy$NJEol`!e@q&beprbN0FS_rG5L3g9Z9Ceem=3o#oV zhzksP{${S~d)un0bIR3@-pySN2Z8tn$943Az`4xwwtOseW$A9_R>bfZTUOu4G!sDMFLWmh2aw0c)Pk$y=)6pVYf zjUJ>3rhd4<$^VR-L@)X*^xGJ~F@e#>s4Z{`bZ#nrMONgd5@^q43noWz*%-px0!b}* z)a#$IOu>*E#t91}Hb#*aNHwHpH((lghF8-91NEdiUhWPvrkOV-D|y3d%*Hzy7l^sC z!jQeq*)<3zY`lw%fJJn-Lc{({w%N3ob)B>^h0_9q6@p##+@jQLj^5%d(9+dG>k>Af z)#CUhrjfJoo{jhMfk0o#_AnksD>ob*U_aog|iU$-*ZB{Y}O<)NTUH)X$;} zbXldjPNINYCN}eUz6FW@(NdHjF)n%~%BE-8an-F_WkdP*3@9TcuPDo_(s#@{+KlNf zhXNQo)Hbb}FE7xxRps#&=}Lhv%I^L_GsdOXvbZBKl4*5N{mNj+vr)D5=_+vi4Tdx; zMGbdk#T<#dC9RbD_+enswKx{E*V}w(?;AB&1D7+v@feSmEQ77K>`l*A=3361Zj}~ zGtnc`PLQsnrI4q4;-I`-cowQgs^18V|8qAu?qhF9MYm_YMVDkzdp@Cj*C>X_upat4 zxlwN8Ov6sCnr~Kl!_Fbcd%IQD!u(-_{p}5N>E|1JK00Dimdh)=DVaaJ;JV6Rq}l@& zSYRzqHF0VM)xu+H<;|w7PMufmB-_7@_ZY=zUJB0QoOj?hzjwIO=CR_Knw%OwF%)|N zF*(rj3#=cx*M?8|?M6GlN70Esz8C$t%hf{N2P?S86}`=^%M;D)Ge$8HQ&{E9_@>M| z!}w-qFm%vz4aXt`IgZA&WAbNM&pD}wH86p}Fq~aCh{6fn$2xZm{BIe+gqUuhr~8rL z&}D{w9G#yU-pAliIL`ISsePP!i7c>>Gn~&Da_u3x5m=lLGv){hj*{jWfsNC40%!P0 z7_#YlgafkEcz}nD--grpJS6)Ct%&yz95qzF#9V~#8f^@VfyvlD&PHHfA|C?zcZR2! zmov=obOYsq1Il0F>*&z$Bg(U{u(19DA1_a(O8dAxKb#tQhOSpw;^y@|u6{t@a4Pc* zM_!?@-h1N(ZtjUaqG@D4LwU@yJZJf!pTh}4%i;oNaIt~;Yy=`fcoG|g(ZlQ%518`_ q`qMny3t}K9P-1ON48?C79$}MXH)mz~ZH3=$_}oi!9iWCM82TFrBsg0D literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/entity/enemies/Goblin.class b/Java-Knight/target/classes/org/project/entity/enemies/Goblin.class new file mode 100644 index 0000000000000000000000000000000000000000..90d3bb12c7f66d80b87b93a0baafe7256a77d7e8 GIT binary patch literal 1557 zcmah}?NZY~6g^9Ulo+9u3L>aMKnn=*`>TRt`KlH~i#U#d+_pOj0mH*|exHBjmc!kORZyPoRx-IL82Q(m9;Wb_nEj@BN#xSnoqJc{Rz-WgY zS6i|$^ib$VJqR!jOyCMx{J_G{ou+F0FokIiR}EZ4njsMp?ZBrF5ua=*hI65uwzRfM zOGSzbUdzNWOYETxX2Tc0S#Slfn#)S@QguSdb44(k*fI)>eD8@)dWL&v2~+ zO|AnPDU_9E;u^@?uGnhSio)CBMTacOyex5NmwR@wZyUSSo=xzRC)(d}VloW=Z|GE4Sx_!q4 zphHjU8#&h%Ue@70&8&u34AcMA)G1XB1?tr4uGE6CE;?-kbZ-T}F3{{EPS1z5TShOf zfT7tWOKiu!BlhkPJ&DvI`o6ZDAJJ2%AfS&fAsrc78DR(>W07_YOL)?T`%JfHjBN9> zP4qXBiho#~n``32c)5wo-!Pe+X=0AvWV<mT!n)8c*!qFu)>;KL-Dk7Lq%oL~5MzSD^l@NEI(3;LyMqlsOCQ=q z6Muj|%6NBy2&VcnGk4~mbI(0@e*XIQ13(wgOUN;l2A@PEj8+y33{4$R{8_Be#n|}L zh^c=e_)M$BA6)1-w2?>AfrS!7@ugJKykf|=+Cv*QZd!2Cw+e%|Nh6ezX5kAZrcxw+ zm-Yq2i&p=ff98I~)x;l|SgJ|T>-9H*TlGI=I)YwWYX`1{T?e&P$KfXAuUhNgNNp%S z3Kf=d3wsv!9o)tp26sckBB6Gv8$CA+drNUr`|n7ZA$@{RgA(pBG}feE%w-}HPnyI_ z&ZLOKV;lGJz(Ui(LwF4JjDDMh!J4I%k)kTsc+eg)6kh94FzocD5^v|zk%-^(QA9Vj zz8>>v$YYtttIL8plL^DomUsU!B4DT{GclGtIvL4`=0Y=XU5D&uQwvf#MZ@EXAXggy zNo24GdLEC(8<{GttX(=zJ-`9Y%%)!lZo8dhPBd8h?nY^nHOU3UG;J XHzV6$0#;-MMGI}BW9U$B4$poAmXXH> literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/entity/enemies/Vampire.class b/Java-Knight/target/classes/org/project/entity/enemies/Vampire.class new file mode 100644 index 0000000000000000000000000000000000000000..a23b214b1c8106dae8cd9106b9ca4067af2513f8 GIT binary patch literal 1587 zcmah~+j84f6kR7bIYK0^lU~x8R=rUtg$Tl}!EK>+5@K-ELV`04FPzv1=QOgUk&X-b z27Z9wfCqP`%;~0-!K0Ju!VyXCIqau>_<9Q7N!KQ zhH=k};_#X37*8A3_kL0`3WLPkl)avcZA@aufrXO5%sm}w^FUy-w$ip?;|&W=diJJ( zTf|X;(dNWcf$D3Ocv~D#1U71|XY#r9d>Qn-JrnDoS8q03MaNSC9E<{~H&d>8lr5Zd zP{D%0^`gsvxboZtW_!wH2m&{1EB{Ml<2)`{xai;#md?`UU(l3bQ}$&~jRa}hSVq;t zTMn+I083+n+#2a3FiqE;D0OfhT*GzlBsf_EKk;8TH%eR-@JVbGE0 zK$|1Z5+ehX2;3e+(;S0FsTyIIT=Oj*sNF&TP{sT5(C1F26?UZGma$IP`R0^4(uBWx zst?BZPF-LwiBv~R|KXwb*~tP|YU3QUde&Fkd^e1YnZLmD8HP0L<{cxN0`^`wh&yUq zr%^k3oz_y}Sn5Y%Xc804=&>?KVK*t^OM!F3HB>Hfg_{Ab&Cj4^<1uzEJW0iU${b%w zuY>2|vC3bzOz&;kF=5PHB-U04TrH3<4E5e3`IkE$j*0dM&4Mp<4Ksr8?V`HOTVfi#N|ZEd5P@ z-HQ^Rb*>&^hBIJswIa$tm)HNmXho`sn_hJ40Nqc89pS%FP?qY5#{IZvKv26&}3Hk;4bom-qzW z`W5MAh6c=$vW!JuhAy8qUR-x^VHAX$5#>RUlF2j}h7Av!`~Xbwe47Xp_yRi|)0DsB QzlpE8vN`((`)Fh7A9BT_t^fc4 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..a1384829e637782bc9e69d7da15ad41f5fdbb5bd GIT binary patch literal 2508 zcmbtWYf}?f7=8``HpEq81T8mRDryL=vEJJViUA}oAT1U|d-0GQla*vQ-QA${{;@xy z{n~$Er-L0j(;v|P(0}4|`kYr5 z?zsjJ0;6ye|yl@Liz=h}}02D(io zaZuoRv&X-3P5Qp{ecKT*$|{(bjtt=zx^M_R26{~##u0&J6Oc`xWz))S1OmMgMBB|S z5??@+O4f35^wDR*4J_rjjdI1RG4OB#0~jgR$(k&y z1WqGs;EaiPa8{tN1<})CZw2<*{*=0}oD#bjQhY}{pEq$qC+%R!*}7i2Wa2X3<%+LY zC?;06tSifzxPoymII^Y$QhT+LqE4@xxQ0oABQ?3M@~%^q!HOMJIPwGO1irw@R#U_C#b}8y5=PAdISCrh?oD2e4To*W+ZsiuKgGZK% z4WvgE2n@W!P#~_4Qr`7xC<^o{g+dhAzohfb%lb30%w82p=%2}&+i>U*`reS5)B}E9 z6>V;<*;U>>G+c5UUQx~1y8Qjmu7%UOB|OU4T{rLpPuAyEP;pCs9J~PrgjHAGeb=k` zmb6Mrma3Z;t?YF*9EU3?Y%8D)eM?vo%+qmvA*78M?iCgf zwr?#}WXXMK>6?!cyF1ZHU;_^gJksqZ=8+eIv7HTfUG3bGk?vpPa{n)IE9mA-O zS*ETke`L;e*BkZRUTHV2>~g%dSywI0?>5=rT+?qvu37s#A@Z_XUExf#PCvaI)AaxlwB<2H_mWn?0N z&&ycF=eS4sF)Tx3jYW>|VlHwNLx~wk!&CH#r_?U36nTpn{DE;|+`pLYxsvP|&#>IW zz`f+7-|+qx7WLE|yq8=IryuTAH88l1ThHr=Xzpi3AkA2#9F3uuZ_x;E;0r{rX}6** zJ9uL_hx^3F4&w~UAzpz>iv}EhO#?b#*MOD()PVDZcaaUa#0Feu19EJ@I19MSQm(Ot zJR3002F$PlH~x16Vz5a`8y;Ytzx`}MKq{)?*9pJ%@ay4A?(6@^zQQ;74t@Us=SW`T literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/entity/players/CombatActions.class b/Java-Knight/target/classes/org/project/entity/players/CombatActions.class new file mode 100644 index 0000000000000000000000000000000000000000..3ffe4fd943bfb281a7309a161f698151a414dbf2 GIT binary patch literal 274 zcmZvXJ&wXK5QX2ckSsro5C_;gH245i5rPV73nY5S%m#yrqr@QPYFq39I26K0P$1FF zXy(m(`sQ-|`v&|BM6rFf|g6UHxC(?Apve1!iB=y=KwA_Us_(Ld3>&%H*VO6s*-MI{WT5|SZg;=?-RJw+XLs`F-v@sHxP!WZE`f2+FK6q% z_fi$ZtR1Ra_LY)#&keGLSDs%oA#lb*9Nhxl^R{b;ivqFq%(jUh^cpbrT%W*Xdm812 zcDSFdJ91z7L3S(p6}Xk&cq#W}){$;GTL^vIE$8z2jrNsC1U!y}Cx(Ie1XR^e?~lVug5$eS3(h=EZHV|Yhk zxIIA&#hr+VK%X7lRxgxWV(ro5r+V>(g_Pbp&cy3=J#yK?6s9>6=n)=4I0DW(_~h~PNYWbDExeB# z0vBtts@6QWD8t8gSm9R?N;eDyu68)dnd8Y!e2AL{KC7u4|Z!i%6}wxoCvR1l+L#FZQXAT zo(U^92~Hic<$o?r)5JO2rK05C{z@3iVwG1l-Dy$NTD&DReJFhr5*R%pkYS~kc|~5} zY(XdAl=Xl0aZ5+Q)ITdVZ`WnIb3t7dZT5F;hZmc(1#j0cs=Kx>v#%+4PD7(BS3NHb zLSNQ5Rao&#K@YwWNQqQk`7b=b7Nle1x5u}HGwWL%Ez(UQwHq+DP_dO$O0CMEGI_om%ESwl4OFxbY=P;wXKA~8URAYT zo~Ezw%3|pGtmub!yR-tE1*}WA zdyl<)=%&|!WM;M>-zRST4)Np-VsBvl!qG0=XKO|gCi>Bb4fZcIS6~wl*yCFL>M);bYs10S%I%|ptN(JcAQQP*{n<%@|MZG@H& w2`#q>^&Ka4f$t)oP+=FI;u(KOSZ#?ld>yslM(y*c-N8%F>;Do})Zk(GA8}j}5&!@I literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/entity/players/Mage.class b/Java-Knight/target/classes/org/project/entity/players/Mage.class new file mode 100644 index 0000000000000000000000000000000000000000..7d78636ab2aabca90c7e9b8800875e9e570a1b23 GIT binary patch literal 2474 zcmbtWZBr9h7(JH&32~JeQ40iJDryMURIAm>i^T{MO^_A~qJ8m_T#}W|ZkpX-=@03& zU;Cw>?Q~*?&h!WLKlGnCou0d!)*u<}Ooy4>z4t!PbI&=?xi|dr*WT{{7VvEpJp!lP zMkQNsxKCBd&sx5!WuGZocO5Ug>dURII0SkP^r2s%f5vhwe@-Bho?MF~hJh&JdhL+F zcxM^q_?Ew$t=n=}HN5Of@D{k9EUj+_X-fgv|oH9EYNc>1AUomi1Z`#L_OLaYS&A@eh#2HV|&`4yq zrkPC}n87S399d(#k_UZ}q(yHU_!#p7Cu?$B2htiV=LzDFT9lh_8!1*rK^IdYZJ+H)Z4}~a-29|MO;K(bJ6{TOLN;Qi< z=u7AGlX;zREr}l7Ng{%q)FJ1Vsl#Bwa@2COwy7Eqw-wJGkoBVSt8Uqgfo?k`%#!qc&y;4}eWn^)P21eE8p>o{+a8a>5;URd(=whZ%n;he z7)U?!Dpez*dBY@AI%Tt=Jm2MmIZG>y=dF+uX4A2i^s1aLSe2^p=$uu?)y4<=;l@$N z*HJXIU)Yd|S3S3!9d}!`FS*dVi?YN-68^r^R_(x$;Szz^%9|*-?sl_2ebAj9Gy4)B z?ABG6@W&nT_c!$oKiz5Hc8Q#{?Nwe5w2P5<9M#C#(({xT#g4$)1Dv`+jp7@2=FOq> zNyrQ1w114}8|dX}>%(b2S2?FpLTQWK1E2ED3)^5texIKg5}UMkWOKFO3a6!ehdZaOQJ-L6Q@^T)*U3 z1YdCn%J33H;w45j)h84#l<+66N4P$l7@W~mNB2=3)l?Jd*$kKRsV9l@uejU7N}FA3 z51+h7=NtxDEX|S`(wQQi3#5}Jol6+QWsa^;@2dd?Gu*gMA%YtLaKSheGN7P=6Q~AG zxSL)2Luha8PygHc^XY%;&kaJIA)#3knj@ik63S8G1yWojy*&GKkNqjIKgIvup9o4M i-h(m}-y`g_L;736vl={~22UG4*Y!VKO+3RchW`f322mRT 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..33eaf8f66407ee5bd53597cf467af002cbd256de GIT binary patch literal 3792 zcmaJ^X{z%|mnvhD?= ztWBG^O}g)K(>6^vcS+kMHMk~inos@E-_Vc!1O3|PY14N`3liw*!^54KGv}N+=RM1e z{{G+f4*`thqX-(%Xdq;w3EKoZz5IMUm-nvNsUU8G#Y-0EGO}Rj{rI#V1)80*GV<5jRo>V*Z&)3$)5I?9 z7HG=Y%XUUUBouXziBBkM!%9vqyG(SeW$Q}rtT$z^1WCoLcJ4B;SvhYv z!$PltyG`uJ0fF`^#0oyqp>y6+Ah5fLrQ^k?31mPxZJE_J9Wrqb`UFC*%-RCct)NF4 z!t;dRvZ&qj#G{U#nz(K9rd=QMT?ns`V9oRupRnsU^{um*QQFOQixu9gNFCZ#JC ztPh(QRkTo+gfPYgc0`UHJ7y)vXUCJ)xoL}wCY%S)5~46{}=R zqSh&(2+rezfr}l*;+fns^dVF@FOlQ4t=Z-k0c~ zjiM1!`8%f~o~YxDl24nkRm9u!wr>X~?PqK^&90#QoHwxmN1(;=D|FV^r6@vJREk+` zhw7!$RwPwta7}o~34|G@1bt?H?jax&k$}CKp1?j7XpgYzjCGnz(m+(1Nyqa8_ zOOMT|{yJ>n^8~fJpV63XoNBWzcp1qsUS&weq#tB#>ruN9!58r*1FxBQ9bc|(DY^+W zne3}eGDA#iinDZF|0M%o73ixza8m;v^Rja?7)=EZ+Xsyw^U_S9?McVArm?5J(s3_Lb0V|elFPWX&IB^GI4N@_V_P!L{6a7qC@R?knWqYY?iwp< zONDG{o!LxgGBY4!McpA4Hs)cCY$cR*wkcI)Y+117a-n=^h$|+4o1e2&j?9eCIT>EJ zjQEVVluy~G9EEgC@lHFUvW_7?;dy}{z$AI5K~L0HOPJ8cQ;!ZbVI@7Uyo z#YUJ~AW?T=ON8+Ufi7XOC-|1MwEvdW09c-@_TLleA&O3_Oit6lfJ)Q)MmrM5ADIlo za(t@@1WUYk`!=jbu!h?P{-nzJj=+J9yN+@67VXj_p?Eu;k|}lJ3%pTX^(DrlTNBbv zXKepK((@LVa>H9YK^3J&@N6Mx*I~b0#a}LlDpEprV;SiaECYWQ zIJm{9dZrrqkp1@mvoei}euaA39vgUleT9#mkb2$lIuEILh#vX!&?BE5dgKFxV=MXj zQseh)Tz!}GCXNHKfu6fML$@JfAHcYH8_laQW1&?VvNz!C z{O)Bt1v=2oN6s#Ep_8whz39OKeq-2&Z*ceiqI!H2-{Oh~sV4~!S2Nz;)TCy-q5VOcoIz-T`?~$VXs}_#Fvq|_+UE%N7 z74Fz99IGq*MqS~a&B90O3g5s}C9|I+8VZ@g*u`7u=zf|Zcpv)+z`^cy^n=wh$VCVL zJKshmwubv|e*7;Lm_{9#4h{N!i0~QJg$HqvPp88;st@fbDy{@%5I-RJ0&h|}godsi z+~?z~WXM0MQQ>@D84?ZAkf=6Eoy?TzP>as?dr9w9)1mfVoDRjfJ+z8XE7C}NgrpHg z8d=3>6sadnN)H{1o}eQo$G9I|$4Tv*+8QrzMNgN;1jmikJBl`1b(|hPj6FEPJUEF# z{v3G#r%9RM-y=AKB;Prc$YP2Y_+xkh(|8q+S3!Thk}*HT<&wv5m7pIj*)_0+N7pG` z!u-tN&_+|wkUV=6T?3r=tl^0wbI&@S){NXuZG__xD+HKD7#CTjv)G9z7?vj)mN^=o z#t0l5eWfZqqm}TC;z#)LMtBZ(aQ;>$Jf|5f6`tLyRG%qXyiQfh+6}bY=o9$tX~I<& zYQ74A-4z6WQpwymsWe3Xp~ewMbJk8~uGpe}AvP U@9OXSSSMG693S8>_$xa92h2BxhyVZp literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/inventory/Inventory.class b/Java-Knight/target/classes/org/project/inventory/Inventory.class new file mode 100644 index 0000000000000000000000000000000000000000..1c798e3485f34ee6558947ccc74632104a7a3846 GIT binary patch literal 2054 zcmaJ?T~`}b6y28qL#6|ikCql}8!D6}*i5y42e1W;jRsl`f~9`+l8i7VnaP@&;KFBr zgueRXt94nrtZTV^_Ss+Ka;f{yOhQs(A98c=x##S2&OYa!`Qx9bzX7;~FLm@Fp`q76 zANmDOKa>a3tV(CsytDJrDhC4n3$|kiO9F{>W>dp}z*wl%2<)nP)AQtE(e?u!8WKsI zf}vs1zz~K7F1g;WS@&FpW7^Jvfu4g+zDex>=%b&s&UeIvCz(ri5 zQb*9VHVYwywrd6JvSta4r!#F)5XE+O^P{A5+Q4PJC@@iz`__u8$QyeZJ@+h3CwwnssU z-!_oP0?#B&#a3ufFls8YC9tH}dPiU`T{uZ+yG@*tK(b`-Ix=W@^p@+^F$=}6#mg_{ z8Rd#wq1|xNcC7VAZO8I9KqGugFTz|n(hQ_Htul?6If$sMlCX# z?o@9!Pd>9r|Eks58~>vsphq=|paw{u+A)TSX1jGhIC{R;{pNWr4ElTSSFK742%Eox zz+fqm<^45TkMq|{Zo?~EtF~fjsAZ5-&y+80*>wXy@ML|>3ijNJKY%TkTBJyYRY?VI z%5GA{2D-=OMJ^?V`*B~#r}#|6=c@K!2+SOh8(O&gmKha0dOWMLtOka_x9!g+R*XE~ zmQJN=`7=e=-EY+MCmX3v(qXu9Shu>U-*3~8d$qk4V~7=5t(I6%*1#w@j^(XXrSDt5 zh8=;~6FGGYRRhP_#pkQ?-9~v~nuE266Gm|5XyyM6o_cVTQ=3y1{alwRSw@08;B@v0 zMD|x`_nsj682Y17dxh%|H9)jp7{nRGyF3|@4L=8~JPEvq+cDl2eJHUS`h`sm9lW3{=?O=2PBIW1(DXsb2bUCO=A~ORGBB4G1104&e2|Sz%`3?)snmA` zQ`VYcj0{}C`K3k4scxA$K-HWe8}&eju`x0LjR3lifq@C=09FPz29QJ8890C#9|g2;CRoB7#T@VyHq&-Y4mhPP-pvGb`j@srUgt z_yhb=;+ajbhJXt@ckZ2g&OP_e{QCXlCx9dLJd{v&Q1MYkO`vfhKgckW$uxX7zEBe* zPhZC(nLJKd3sI$Q^yj~nm>T4^>7ud>u;hT5n&e5>XHl|;r$pgFi^8=6cf)4q!h zY&vN8*g|uq+;Bc4o>kJEMRyiZordp;Gej#H_v>g0JU>0xv*1$A1DbrM&H|a6G?qqB zWE9N~XzE@0jrtt=Ibw(R=n4&L?^$>~q~BP)(k1pjz4js-0lDqx6|916 z5AkTp8PW=#ReN9HeB@?9S1W>zg2rDYENKJ|@R$)R=oPcAAonwFHn+cF=UR__>Q+G= VyZ>l$|7vmZ1W!pL&?$;`{{UeRsz?9; 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..2d618e3ac5f3fc79901da34cb314da0a583abb06 GIT binary patch literal 1135 zcmaJ<%Wl(95Ir}Kni%KN6r9p`>4U_Sh6Oti5~UzT1XvVRqPv^Kq;8tHavTJo!h%2O z28n{if)C)M5NB?zG(`wm^2{CIbI!~e|N8yoCxB{a)8k^`KjS z-8%8xvBJ!wU=YNQ71Gt(VGh@jvtT>84o6`*jJox+D3qJ^Aolxp9reR#Sbrix!Rq+$ z{K3#yPz`|=925m-cSezJ1*bv$QOdIp%BI}cANI!xDc^8#Q_6WMUjbAc%;OgMgW+Bj z_Jse)CSuXSl8j-ukNtLUFY z)KMVkq?n11gQ3D|^S>iLWOoO#Zueg5vjk|zy65lfzV4DbQ#H~vx*v`PVrJx@>447I zT|Z7nHO@9jB&Erirh3GS2jM7c`_BXE)Hc5E%91kcoHxZKX8Gnan5D!;6KS%Ew9iDE z#b|+MV43d~o?_WNlIWK(y_lv==%01#iz6|onp}?nzIh44F zS#p-K#;p>EOtmfr|GP`OheeVBX76RWeJY(-3KwZG-=U z#mqs4g7eH4jO3WUl1OeCjB=^4iLFHE1!=^oqW6|Uiycwp6cCAG!&|+B`r4? z#kK;u+)v1+&zV@~tc)EQcU+?*9+$B*#a6iLM2Y5Pfsso~QZfEG#U<#KP-r41o|52pnk=uHT%CZphur?#2IQ6|l$;@JEHr zX$l*`S$Ol_@Md>sz7C&z026d#IB-LF348>EYi(ZAH>20Gs8dzTG8LxO#-^ht5rToL zR6Qj4z1ggvhlmKbfA&}_tX0*i*X{Llf;ZOBlF-UjCFk36CCyT-HeBgux)7UO7}e-g z(W_sTCER8IdgF-@FZ9+Fa;mm!&k8qg*(S6ju+JQcp bJ2+=-Rs?p22#_#KetfvVB`Y3<(LwtNb%ak_ literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/armors/KnightArmor.class b/Java-Knight/target/classes/org/project/item/armors/KnightArmor.class new file mode 100644 index 0000000000000000000000000000000000000000..e1caccff499422edad587acd1b288baf8fc13d2f GIT binary patch literal 335 zcma)2O-lno41L+}uB&dn_aGu{J-9~?6+uLyxOh?aK3#`)N_VGBr~WTbf`|S9f0US^ zJ@g_pftS3HmyrDYes2IgqMyQpA0x;RA|ed5nU+hV=d!V-va&6OX|-9E_bw2kTh%Fh zM+l4Ycv#0s2p9ipo;x+2*`3lahBYC0(C?CPTB%OHtlNn+Z(_3G%2}lwv8aVnj_-*VOwQ1y&as%_d?bmbhA#jeEk99`uA$p7{vm5xF0llj{$%`-0Cle1x ZjP5%?goLFTXW6z9$2eiecQAU${{ZOjOxged literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/armors/MageArmor.class b/Java-Knight/target/classes/org/project/item/armors/MageArmor.class new file mode 100644 index 0000000000000000000000000000000000000000..36d514a19c55bc9c961557cc29e58f26de8b2ba0 GIT binary patch literal 328 zcmah_J!=9%5Pfr>dS29|w-6h(@H(4>KoAAtk|yE$^;~qtb7ejAzpMf&@&o))!C4eL zaR%PJH_Qh!$N%3y0AoBxaNvgUV)zIMEo~Ob*65YY%S4s3NQ5c0*(Gl_5P}!AQROSa z?@p(^EJTISzSZ+C7V^^Pc6%AY8|k?uG*Y#ZANyh^&6k+1IrEh2T&y!;l+~A{S1#3# z&`Iyke0ZS*>F^U#gWD{+$VSB4b5pk9P&8d8U(S;Gjw9 zmO!^m<9x6DAeb?3m_9JhAL~R-*700r_ok*PkcM(OlbJSpo3!&sy&?qTQkDPP9T1#I z<&&c2PA@3;Kyat&It$fEo2vfqtC!}3_8HH~0%4z*WoE_GHo6L*V~f>@wZ*&J{{Zzb z-r>9!o&%0eR5;dQ!{yjOo7K_AjYD);@wz>% literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/consumables/Flask.class b/Java-Knight/target/classes/org/project/item/consumables/Flask.class new file mode 100644 index 0000000000000000000000000000000000000000..92b8035ab6da7a69a0e3582291f83142dfd4ff2c GIT binary patch literal 1481 zcmaJ>T~8B16g>lN7uH3-QABZ7)KZl7`>P6S1!;mx0>KAg9Lfl5+ude&YQjJ9NBE*q zOnmSM_@j(xb{pIVLI|^SZ|*(!+>{Sl#0)@wZ;Ohl}@#5-7`AK>W8SHrLI`V^^^6X|m zY@D#*I2gc5fs4oDCQJnET_qdOnqfQ80-|bT2*Vae9E@U2U@{A#0`2QPZz=h(mmQ^7 zS^~Yr*(7bk!6}@kKTiF*V%1POgDDGV9h}3oz)*(uUd&dR9=2I|JnhF1y)`zY*^-jY zvSH&oxPXfS7R$YsO(if^oITwA2&X*b;4-cVoNCIt;@oOdzxDO5nV^<|jydWh=2krd z%|;Qk7D^80j6$Oc?QU{p)G|~XK{A3(fm|irCcVK`KTxmR%`Fve7zqVNR>PWXY|6+t zcE_31yFMAstY$}iNc}{mGAp!W0!X<-*0V7>T_W>hW#y^^G;db1I#{!pxyUkhDV^_K#%!a!%*mffo>yU>l z+?BQY!2%X+EaIt!XGW*z?EU{X_`#>Jt~#rnO1CU)Oy3juoE5DTm{wn58NLzDFs!#* z<-=Q%@pL6_?6uSp;qNl>Z??>PEN7Ra15uHU#yXXvEKW5DR8(Qhv5GA$30ywZ(@|6{ zyri1Phf>Y7FYdqj#Q+3)%**C2$Ge4VJg?JQq+jqmP#O_G(OVjt{(=6lbo5}J=SlSP zv{AqbIQ;WyIcWlJ;3h4BTe#f;Q;hDR@50>NJ_bwQ(f@uQ?M@p<6g`8n*DOn*4wUeb#5B;@kYw}GCQTiZ76Zkpp_LpFsrfb7Q?sz%v3AF) zc!a(|`xZ%m5Gga=#TM1-J<(iEtd|{#B;4-EK<_5*6zVI5Ov89t(^_aYSIWMA2ioifb0GJ1AmFVCqP|maZ>@w%a&~cxV#p zo)MU-Ctp16{u+9LX_!#SP9>(j;b0jn0u~GH$qw~Tm&z$Rr3n+{4S3(R)p zv8w8zDa}jI9C8;K8JI}mW~p{QbqJe{HQcgr+rb^U0+)w~qoQss)eoq?G=z0Oxh$@u zRo$ZO$+{P)y@vX3@8(N#l zgtEJ<%%N^YdHg6apJIwFCH<%F( zO`Etan?{Ex0)GwOb03%%-H}1dSJ84^>*HRxa=sk{ku!-ePP%Fc{M7*dmxK6?RtCqU zPf?Y=-(YXp3#S$YDy;f4id1CbxxmV~GYyk!q0Saw3}tW9b76_^euR?_WWbk(yIk+l zdzkn@es#*uyn}el*a+@(P4RhH7{del4l{_uH~5y8H;-BQ~|7(I)zWfW1Ufh7EdC=CP~lBmDwk3*VZAhNQ>McWHHlZ!q;pQ)4Sk>qL3;O4@+`+fS(`Ofay^m`|a2MbtaCQdQ}<7H}|zzr;0xaq*fErIFR@{RNY8FswpSVgcmgvc#8FW%ks5?lUmn4Fm>w3# z@tST^_Ef_U)j_{|q@tJdC}5`4&@CAp%E(XRL2}%j_*CjPhAp{pJyJ`nWbel$SuS6w zykK6n!uACtBc7eW;(H2N)*f6BQ5TqGkJjnF>+o^#2$(hj6Ev-## zBH7zl=0vySBA)O*r6q1#$sl%xn^C()yJD()$c%`BBX}?#!?8Q*#0`TQoPmL)5VW|H3QSv^k!*^sr zQIkQ?q%m~DsfVG8YJrSn6l%r8C*SaEot#jMp5(fs04~XBG8^fm@v-%<|OyD!d4iT)w=lFs%PadlSj(ePwZ@H57E2j)zNK=zT z(A>Y!2l#RT{fX^!#B8jeV`6jT98Uf5I%>M)HH(5yl 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..b91eb49b381b7263aff5a504ecba9d5e06ecc836 GIT binary patch literal 1426 zcmaJ>-Ez}L7(E-umLn9Bnxv2)f`J6=q@Y3z6ilGSNr;ORm@yM(+N+Jdbwp&XM_R+= z5qN|4Eua@+h6^5mXJQzRBo82e6K98zabA73k5rIKA8MDDX>7RcT80?*tN$d+og@=hLkE*md(*s@{cgayaJI8F*I ze3L4v78q+QvnD&TtpqZqa?Qphey~t*a0*ibGlO^)7|$HI>&YZ=!i(0_KPqT>K|2Be z6@!0ta60asCGloA&dfNN#T+wHoDmo;QSunhV!^^W2SuD0n0zi@NY|G^+ie^~+%gGu z&j?J{lP{ijpM+ju8YWb-Q;BIWI#|S#fW=1JvP1n-rE*%G@)!czl>(3WvV#)J0;fB2 zUsZL`l;)Xd_PC0S3``_&xl}t29l~Z~1wUE1;@~P=fm1`oQBgOR>IYO`8p67h92UpX zs%}yCMBNM2cCWLm!l!cAXQoisP3iB*(2L`Ka@6d3R9dVLT5{xeB$igl-it`GP&!h1 z#JozG?Q=$kJUfB8?-a7E)xRF1CNSPGvbnz{yM0l1L-)d_+VEo8b|TfnZK8XX=8{5yEa{lc{8rVLuXiWciy@AtZu<6aD8jsTw?bk&gZzX$3c@5axwGI&S& z6jkZ_4H`oyoLUg5uJMnuO(~M401HqM%Sk#)T_tv9J5>FrZjh*u zSnvV;D8#w8MJNrjbnncaIp^Ga#&^Gd`~+}{S4~)`xv+gWs4G0W&|h>g)A2NTKfW-N zT%mpx#Zi8&Q0woH8dyWaMbn1|Utupvr@>{K$juVI=XSs7#barCp|;4_#%}+f zmWlHyzYb1|bSMKfKO~EEV%|j3v{!m_AXeKwnqq;*Gg@LQpT!c7nCq-N=rBI!?lbE( z=Jwz_)L`ot?qK^Ct*-^(31bH~qsQo@ffm;Jby;~?!mx>_+>xM=QN>DxME)6`S26*! zoH>JUaBsMtAqpC3p+lq>}-UDP@UNG2C)4`9(nqhe9&X nW_jz+JoRcGg`L%0e|c1L?T~BtKV0I7viYXiqn4t3VnOdWd=7pU 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..646eb5724049daf322a03e18b580aebc4b90e41f GIT binary patch literal 1571 zcma)6+fEZv6kVscp+m6+3Mh);1?WW?uZSrjQG!nmK438VHnfvEq@6Ltl%#*9iAbV} zAK*tB*Pc!(ty4>yobGeF*V^l>y-$Dt`SASh?$|svji%`|jJHR} zR?SyPZQG9R?upM$@gCzU?|jH4GFIj@hylW~zPK z1K+cqMn%Ilh1uY^?b}V`mFJnAs(s??m_l62OlL5IS%Pb>bW;s^NwoZiadImSJ$QzjTI6 zXECvYT~w%Cg=eIX*>H$@BcyP*FvbnBd7?Md3^_YNUldjcp^-%eos@odSZbhBWV*s+ zcjm$p`hnZ_YStTDdOFopy&>-fcR1xSzTP-jzCuPZc_~o19mLDr^9fw+SD-OY5=SY_ zs0T=3rF0HeDxX0s{lwIVb7aqu>xcQT0oy&U^F#w#B#=WI)5x>lGArBJ zA11jylH?&tHUjyg