From 5d2fda4842769924bfb7198473750cf0c4ad13f4 Mon Sep 17 00:00:00 2001 From: Matin Date: Tue, 12 May 2026 00:44:44 +0430 Subject: [PATCH] matin mortazavi --- Java-Knight/readme.md | 278 ++++++++++++++++++ .../src/main/java/org/project/Main.java | 247 +++++++++++++++- .../main/java/org/project/entity/Entity.java | 7 +- .../org/project/entity/enemies/Dragon.java | 53 ++++ .../org/project/entity/enemies/Enemy.java | 69 ++++- .../org/project/entity/enemies/Goblin.java | 69 +++++ .../org/project/entity/enemies/Skeleton.java | 76 ++++- .../org/project/entity/enemies/Vampire.java | 68 +++++ .../org/project/entity/players/Assassin.java | 24 ++ .../org/project/entity/players/Knight.java | 24 +- .../org/project/entity/players/Player.java | 55 +++- .../org/project/entity/players/Wizard.java | 33 +++ .../src/main/java/org/project/item/Item.java | 2 + .../java/org/project/item/armors/Armor.java | 11 + .../org/project/item/armors/ArmorNormal.java | 17 ++ .../org/project/item/armors/ArmorPro.java | 16 + .../org/project/item/armors/ArmorProMax.java | 16 + .../org/project/item/armors/KnightArmor.java | 13 +- .../project/item/consumables/Consumable.java | 11 +- .../org/project/item/consumables/Flask.java | 5 +- .../java/org/project/item/weapons/Sword.java | 14 +- .../org/project/item/weapons/SwordPro.java | 38 +++ .../org/project/item/weapons/SwordProMax.java | 35 +++ .../java/org/project/item/weapons/Weapon.java | 5 +- .../java/org/project/location/Location.java | 1 + .../target/classes/org/project/Main.class | Bin 0 -> 6970 bytes .../classes/org/project/entity/Entity.class | Bin 0 -> 405 bytes .../org/project/entity/enemies/Dragon.class | Bin 0 -> 1172 bytes .../org/project/entity/enemies/Enemy.class | Bin 0 -> 1935 bytes .../org/project/entity/enemies/Goblin.class | Bin 0 -> 1805 bytes .../org/project/entity/enemies/Skeleton.class | Bin 0 -> 2000 bytes .../org/project/entity/enemies/Vampire.class | Bin 0 -> 1739 bytes .../org/project/entity/players/Assassin.class | Bin 0 -> 1118 bytes .../org/project/entity/players/Knight.class | Bin 0 -> 1026 bytes .../org/project/entity/players/Player.class | Bin 0 -> 3180 bytes .../org/project/entity/players/Wizard.class | Bin 0 -> 1131 bytes .../classes/org/project/item/Item.class | Bin 0 -> 194 bytes .../org/project/item/armors/Armor.class | Bin 0 -> 1264 bytes .../org/project/item/armors/ArmorNormal.class | Bin 0 -> 497 bytes .../org/project/item/armors/ArmorPro.class | Bin 0 -> 483 bytes .../org/project/item/armors/ArmorProMax.class | Bin 0 -> 497 bytes .../org/project/item/armors/KnightArmor.class | Bin 0 -> 497 bytes .../project/item/consumables/Consumable.class | Bin 0 -> 529 bytes .../org/project/item/consumables/Flask.class | Bin 0 -> 628 bytes .../org/project/item/weapons/Sword.class | Bin 0 -> 1375 bytes .../org/project/item/weapons/SwordPro.class | Bin 0 -> 1384 bytes .../project/item/weapons/SwordProMax.class | Bin 0 -> 1393 bytes .../org/project/item/weapons/Weapon.class | Bin 0 -> 557 bytes .../org/project/location/Location.class | Bin 0 -> 1239 bytes 49 files changed, 1164 insertions(+), 23 deletions(-) create mode 100644 Java-Knight/readme.md create mode 100644 Java-Knight/src/main/java/org/project/entity/enemies/Dragon.java create mode 100644 Java-Knight/src/main/java/org/project/entity/enemies/Goblin.java create mode 100644 Java-Knight/src/main/java/org/project/entity/enemies/Vampire.java create mode 100644 Java-Knight/src/main/java/org/project/entity/players/Assassin.java create mode 100644 Java-Knight/src/main/java/org/project/entity/players/Wizard.java create mode 100644 Java-Knight/src/main/java/org/project/item/armors/ArmorNormal.java create mode 100644 Java-Knight/src/main/java/org/project/item/armors/ArmorPro.java create mode 100644 Java-Knight/src/main/java/org/project/item/armors/ArmorProMax.java create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/SwordPro.java create mode 100644 Java-Knight/src/main/java/org/project/item/weapons/SwordProMax.java create mode 100644 Java-Knight/target/classes/org/project/Main.class create mode 100644 Java-Knight/target/classes/org/project/entity/Entity.class create mode 100644 Java-Knight/target/classes/org/project/entity/enemies/Dragon.class create mode 100644 Java-Knight/target/classes/org/project/entity/enemies/Enemy.class create mode 100644 Java-Knight/target/classes/org/project/entity/enemies/Goblin.class create mode 100644 Java-Knight/target/classes/org/project/entity/enemies/Skeleton.class create mode 100644 Java-Knight/target/classes/org/project/entity/enemies/Vampire.class create mode 100644 Java-Knight/target/classes/org/project/entity/players/Assassin.class create mode 100644 Java-Knight/target/classes/org/project/entity/players/Knight.class create mode 100644 Java-Knight/target/classes/org/project/entity/players/Player.class create mode 100644 Java-Knight/target/classes/org/project/entity/players/Wizard.class create mode 100644 Java-Knight/target/classes/org/project/item/Item.class create mode 100644 Java-Knight/target/classes/org/project/item/armors/Armor.class create mode 100644 Java-Knight/target/classes/org/project/item/armors/ArmorNormal.class create mode 100644 Java-Knight/target/classes/org/project/item/armors/ArmorPro.class create mode 100644 Java-Knight/target/classes/org/project/item/armors/ArmorProMax.class create mode 100644 Java-Knight/target/classes/org/project/item/armors/KnightArmor.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/Sword.class create mode 100644 Java-Knight/target/classes/org/project/item/weapons/SwordPro.class create mode 100644 Java-Knight/target/classes/org/project/item/weapons/SwordProMax.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/readme.md b/Java-Knight/readme.md new file mode 100644 index 0000000..d23d118 --- /dev/null +++ b/Java-Knight/readme.md @@ -0,0 +1,278 @@ +# ⚔️ Java RPG Game + +A text-based role‑playing game built in Java, demonstrating core Object‑Oriented Programming principles such as inheritance, polymorphism, interfaces, abstraction, and encapsulation. + +The player chooses a hero (Knight, Wizard, or Assassin), equips weapons and armour, and battles various enemies (Skeleton, Vampire, Goblin) in a simple turn‑based loop. Locations and consumable items are also partially implemented. + +--- + +## 📁 Project Structure +--- + +## 🎮 Gameplay Overview + +1. Character Selection – Enter your name, pick a class (Assassin, Wizard, Knight), choose a weapon and armour. +2. Combat Loop – You face random enemies from a list. Each turn you can: + - Light Attack + - Heavy Attack (normal attack) + - Defend + - Heal + - Use Special Ability +3. Enemy AI – Enemies randomly choose between light and heavy attacks. Some enemies (e.g. Goblin) have special behaviours. +4. Progression – After defeating an enemy, the player's maximum HP and MP increase, and both player and enemy stats are refreshed. +5. Relocation – You can choose to move to another location (currently selecting a random enemy from the list). + +--- + +## 🧱 Class Hierarchy & Interfaces + +### Interface Entity +Defines the contract for all living beings in the game. + +| Method | Description | +|--------|-------------| +| void attack(Entity target) | Basic attack on a target. | +| void LightAttack(Entity target, int base_damage) | A weaker attack with fixed damage. | +| void defend(Entity me, int damage) | Defensive action (confusing signature, see Player). | +| String getName() | Returns the entity's name. | +| void heal(int health) | Restores health points. | +| void fillMana(int mana) | Restores mana points. | +| void takeDamage(int damage) | Applies damage after armour reduction. | +| int getMaxHP() | Returns maximum health. | +| int getMaxMP() | Returns maximum mana. | +| boolean ISLive() | Checks if the entity is alive (HP > 0). | + +### Interface Item +Defines usable items. + +| Method | Description | +|--------|-------------| +| void use(Entity target) | Apply the item's effect to the target. | +| String getName() | Returns the item's name. | + +--- + +## 🧙 Abstract Classes + +### Player (extends Entity) +Common base for all player characters. + +Fields: +- name, weapon, armor, hp, maxHP, mp, maxMP, baseDamage (unused) + +Constructors: +- Player(String name, int hp, int mp, Weapon weapon, Armor armor, int baseDamage) +- Player(String name, int hp, int mp, Weapon weapon, Armor armor) – sets maxHP/maxMP equal to initial hp/mp. + +Methods: +- void attack(Entity target) – Deals weapon damage. +- void defend(Entity me, int damage) – Heals the entity itself (unusual). +- void takeDamage(int damage) – Reduces damage by armour defence. +- void heal(int health) – Adds health, capped at maxHP. +- void fillMana(int mana) – Adds mana, capped at maxMP. +- abstract void specialAttack(Entity target) – Each subclass defines its own special move. +- boolean IsLive() – Returns true if HP > 0. +- void LightAttack(Entity target, int base_damage) – Deals flat damage. +- void UpGradeMaxHP() / UpGradeMaxMP() – Increases max stats by 20% (used after battle). +- void freshFactors() – Fully restores HP and MP. + +### Enemy (extends Entity) +Base for all enemy types. + +Fields: +- weapon, hp, mp, maxHp, maxMp + +Constructor: +- Enemy(int hp, int mp, Weapon weapon) – Initialises stats and weapon. + +Methods: +- int getHp(), int getMp(), Weapon getWeapon(), void setNewHp(int newhp) +- void takeDamage(int damage) – Direct HP reduction. +- abstract void attack(Entity target) +- abstract void check_hp() – Intended for death/recovery checks. +- abstract void defend() – Normal defend. +- abstract String getName() +- void heal(int health), void fillMana(int mana) – Standard recovery. +- boolean IsLive() – HP > 0. +- void LightAttack(Entity target, int base_damage) – Flat damage. +- int getMaxHP(), int getMaxMp() +- void freshFactors() – Resets HP/MP to max. + +### Consumable (implements Item) +Base for consumable items. + +- Consumable(String name) – Sets the item name. +- String getName() + +### Weapon (abstract) +Base for all weapons. + +Fields: +- int damage, int manaCost + +Constructor: Weapon(int damage, int manaCost) + +Methods: +- int getDamage(), int getManaCost() +- (No use method – not implementing Item) + +### Armor (abstract) +Base for all armour pieces. +Fields: +- defense, maxDefense, durability, maxDurability, isBroke (private) + +Constructors: +- Armor(int defense, int durability) – Main constructor (does not initialise max values correctly). +- Armor(int maxDefense, int maxDurability, boolean isBroke) – Unused overload. + +Methods: +- void checkBreak() – If durability ≤ 0, sets isBroke = true and defense = 0. +- void repair() – Restores defence/durability to max values. +- int getDefense(), int getDurability(), boolean isBroke() +- void setMaxDefense(int max) +- void newDurability() – Decrements durability (does not auto‑call checkBreak). + +--- + +## 🧝‍♂️ Concrete Player Classes + +### Knight +- Base stats: HP=40, MP=20 +- specialAttack(Entity target) – Deals 5 damage. + +### Wizard +- Base stats: HP=40, MP=20 +- specialAttack(Entity target) – Deals 5 damage and heals self for 10 HP (capped at max). + +### Assassin +- Base stats: HP=20, MP=40 +- specialAttack(Entity target) – Deals weapon damage. + +All three override ISLive() to always return false (bug – should use IsLive() from Player). + +--- + +## 👹 Concrete Enemy Classes + +### Skeleton +- HP=10, MP=2 +- attack(Entity target) – Weapon damage. +- check_hp() – If HP ≤ 0 and not yet revived, sets HP to Max_hp/2 (5). (Bug: ISLive() returns false, so this may not work as intended.) +- getName() returns "Skeleton". + +### Vampire +- HP=12, MP=5 +- attack(Entity target) – Weapon damage, heals self by damage/3, capped at Max_hp. +- getName() returns "Vampire". + +### Goblin +- HP=6, MP=18 +- attack(Entity target) – Weapon damage. +- getName() returns "Gobblin". + +### Dragon +- Extends Enemy but currently all methods are empty/return default values – not fully implemented. + +--- + +## ⚔️ Weapons + +### Sword +- damage=3, manaCost=4 (constants, but constructor accepts parameters that are ignored) +- Copy constructor: Sword(Weapon other) copies damage and manaCost from another weapon. +- uniqueAbility(ArrayList targets) – deals weapon damage to all targets. + +### SwordPro +- damage=4, manaCost=3 +- Same copy constructor and unique ability. + +### SwordProMax +- damage=5, manaCost=2 +- Same pattern. + +--- + +## 🛡️ Armors + +### KnightArmor +- defense=3, durability=2 (constructor ignores parameters, always uses static constants) +- No copy constructor. + +### ArmorNormal +- defense=1, durability=2 + +### ArmorPro +- defense=2, durability=2 + +### ArmorProMax +- defense=1, durability=5 + +All armours use the same pattern: a static final value passed to super(). + +--- + +## 🧪 Consumables + +### Flask (extends Consumable) +- Flask(String name) – calls super. +- use(Entity target) – Heals target by 10% of its max HP. + +Currently unused in gameplay; the Main loop does not reference flasks. + +--- + +## 📍 Location + +- Fields: name, enemies (ArrayList), locations (ArrayList) +- Constructor takes locations and enemies, but does not assign name (remains null). +- Not integrated into the main game loop yet. + +--- + +## 🎯 Main Class (Game Loop) + +The main method contains: + +1. Setup: Creates weapon instances, enemy list (Skeleton, Vampire, Goblin), scanner, random. +2. Player creation: Asks for name, class (1‑3), weapon (1‑3), armour (1‑4). Uses copy constructors for weapons. +3. Game loop: While player is alive (checks player.ISLive() – currently buggy, always false so loop never enters). Inside: + - Displays current enemy name. + - Offers two options: Fight (1) or Move (2). Moving picks a random enemy from the list. + - When fight is selected, calls playerMove() (player attacks), then if enemy lives, enemyMove() (enemy attacks). + - After enemy dies, player’s max HP/MP increase, both are refreshed. +4. Helper methods: +- playerMove(Player, Enemy) – Displays a menu of actions (Light Attack, Heavy Attack, Defend, Heal, Special) and calls the corresponding method. + - enemyMove(Player, Enemy, int) – Randomly chooses Light Attack or normal Attack for the enemy. + - showDetails(Player, Enemy) – Prints current stats. + - pause(double seconds) – Sleeps the program for a given time. + +--- + +## 🐞 Known Issues / Quirks + +- Player.ISLive() always returns false because overridden incorrectly in subclasses; the loop condition is never satisfied. +- Armor constructors do not properly initialise maxDefense/maxDurability. +- Entity interface contains defend(Entity me, int damage) which doesn’t match the usual defend() signature. +- Many ISLive() overrides just return false, while the correct logic is in IsLive() (non‑interface method). The game uses ISLive() (interface method) which clashes with the intended behaviour. +- Location is not used; its name field is never set. + +--- + +## 🚀 How to Run + +1. Compile all .java files inside the org/project package. +2. Run org.project.Main. +3. Follow the console prompts to play. + +--- + +## 📚 OOP Concepts Demonstrated + +- Inheritance: Player and Enemy extend Entity; weapons extend Weapon; armours extend Armor. +- Polymorphism: Entity references used for both players and enemies in combat. +- Encapsulation: Private fields with getters/setters (though some fields could be better protected). +- Abstraction: Abstract classes Player, Enemy, Weapon, Armor define common behaviour; subclasses fill in specifics. + +--- + +Enjoy the game! Contributions and fixes are welcome. \ No newline at end of file diff --git a/Java-Knight/src/main/java/org/project/Main.java b/Java-Knight/src/main/java/org/project/Main.java index 6bde20e..a5fb47d 100644 --- a/Java-Knight/src/main/java/org/project/Main.java +++ b/Java-Knight/src/main/java/org/project/Main.java @@ -1,15 +1,258 @@ package org.project; +import java.util.*; +import org.project.entity.Entity; +import org.project.entity.enemies.Enemy; +import org.project.entity.enemies.Goblin; +import org.project.entity.enemies.Skeleton; +import org.project.entity.enemies.Vampire; +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.weapons.Sword; +import org.project.item.weapons.SwordPro; +import org.project.item.weapons.SwordProMax; +import org.project.item.weapons.Weapon; import org.project.location.Location; -import java.util.ArrayList; -import java.util.List; public class Main { public static void main(String[] args) { // TODO: ADD LOCATIONS TO YOUR GAME + int a ; + int b ; + int c ; + String name ; + + Scanner input = new Scanner(System.in) ; + Random random = new Random() ; + List locations = new ArrayList<>(); + ArrayList enemies = new ArrayList<>() ; + + Weapon sword = new Sword(3 , 4 ) ; + Weapon swordProMax = new SwordProMax(5 , 2 ) ; + Weapon swordPro = new SwordPro(4 , 3) ; + + Enemy vampire = new Vampire(12 ,5 , swordProMax) ; + Enemy skeleton = new Skeleton(10 , 2 , sword) ; + Enemy goblin = new Goblin(8 , 12 , swordPro) ; + enemies.add(skeleton) ; + enemies.add(vampire) ; + enemies.add(goblin) ; + Weapon swo ; + Armor arm = null; + Player player ; + Enemy enemy = skeleton ; + String enemy_name = "Skeleton" ; + boolean enemyIsLive = false ; + + + + + + + + + + + + + System.out.println("---- Enter your name : ----") ; + name = input.nextLine() ; + + System.out.println("----select your character ----") ; + System.out.println(" Assassin : 1 , Wizard : 2 , Knight : 3 "); + a = input.nextInt() ; + System.out.println("-----select your Weapon ----"); + System.out.println(" Sword : 1 , Sword Pro : 2 , Sword Pro Max : 3 "); + b = input.nextInt() ; + System.out.println("-----select your Armor ----"); + System.out.println(" Normal Armor : 1 , Armor Pro : 2 , Armor Pro Max : 3 , Knight Armor : 4 "); + c = input.nextInt() ; + if (b == 1) { + swo = new Sword(sword); + } + else if (b == 2 ) + { + swo = new SwordPro(swordPro) ; + + } + else { + swo = new SwordProMax(swordProMax) ; + } + if (c == 1 ) + { + arm = new ArmorNormal(1 ,2) ; + } + else if (c == 2 ) + { + arm = new ArmorPro(2 ,2) ; + } + else if (c == 3) + { + arm = new ArmorProMax(5 ,1) ; + } + else if (c == 4) + { + Armor knightarmor = new KnightArmor(3 , 2 ) ; + } + if (a == 1 ) + { + player = new Assassin(name , swo , arm ) ; + } + else if ( a == 2 ) + { + player = new Wizard(name , swo , arm ) ; + } + else { + player = new Knight(name , swo , arm ) ; + } + System.out.println(player.IsLive()); + System.out.println(player.getHp()); + while(!player.ISLive()) + { + int sel = 0 ; + System.out.println(enemyIsLive); + while (sel != 1 && enemyIsLive == false) { + System.out.println("your Enemy is : " + enemy_name); + System.out.println("# 1) Fight the enemy"); + System.out.println("# 2) Move to another location:"); + sel = input.nextInt(); + if (sel == 2) { + enemy = enemies.get(random.nextInt(enemies.size())); + enemy_name = enemy.getName(); + + + } + else if (sel == 1) + { + enemyIsLive = true ; + break ; + + } + } + + playerMove(player , enemy ); + showDetails(player , enemy); + pause(5); + System.out.println(enemy.IsLive()); + if (enemy.IsLive()) + { + System.out.println("salam"); + int ran = random.nextInt(2) ; + System.out.println(ran); + if (Objects.equals(enemy.getName(), "Goblin")) + { + int ran2 = random.nextInt(3) ; + if (ran == 0) + { + enemy.LightAttack(player , 3 ); + showDetails(player , enemy); + pause(5); + } + else + { + enemy.attack(player); + showDetails(player , enemy); + pause(5); + } + } + else { + enemyMove(player, enemy, ran); + showDetails(player, enemy); + pause(5); + } + + } + else { + System.out.println("the " + enemy_name + " died !"); + enemyIsLive = false; + sel = 0 ; + player.UpGradeMaxHP(); + player.UpGradeMaxMP(); + player.freshFactors(); + enemy.freshFactors(); + } + + + + } + + + + + + + + + // TODO: IMPLEMENT GAMEPLAY } + public static void playerMove (Player player , Enemy enemy ) + { + + + System.out.println("# What You Want To Do :"); + 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"); + Scanner sc = new Scanner(System.in) ; + int x = sc.nextInt() ; + + switch (x) { + case 1 : + player.LightAttack(enemy , 3); + break; + + + case 2 : + player.attack(enemy); + break; + + case 3 : + player.defend(player , 5); + break; + + case 4 : + player.heal(6); + break; + + case 5 : + player.specialAttack(enemy); + break; + + } + } + public static void enemyMove ( Player player , Enemy enemy , int x ) + { + switch (x) { + case 0 : + enemy.LightAttack(player , 3); + break; + + case 1 : + enemy.attack(player); + break; + } + } + public static void showDetails (Player player , Enemy enemy ) + { + System.out.println("player's Max Hp : " + player.getMaxHP() + " Mp : " + player.getMaxMP()) ; + System.out.println("player's Hp : " + player.getHp() + " Mp : " + player.getMp()); + System.out.println("Enemy's Max Hp : " + enemy.getMaxHP()+ " Mp : " + enemy.getMaxMP()) ; + System.out.println("Enemy's Hp : " + enemy.getHp() + " Mp : " + enemy.getMp()); + } + public static void pause(double seconds) { + try { + Thread.sleep((long)(seconds * 1000)); + } catch (InterruptedException e) { + + } + } } \ No newline at end of file diff --git a/Java-Knight/src/main/java/org/project/entity/Entity.java b/Java-Knight/src/main/java/org/project/entity/Entity.java index 2a060f9..edf4645 100644 --- a/Java-Knight/src/main/java/org/project/entity/Entity.java +++ b/Java-Knight/src/main/java/org/project/entity/Entity.java @@ -2,8 +2,11 @@ package org.project.entity; public interface Entity { void attack(Entity target); + void LightAttack (Entity target , int base_damage) ; - void defend(); + void defend(Entity me , int damage); + + String getName() ; void heal(int health); @@ -15,6 +18,8 @@ public interface Entity { int getMaxMP(); + boolean ISLive() ; + /* TODO: ADD OTHER REQUIRED AND BONUS METHODS */ diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Dragon.java b/Java-Knight/src/main/java/org/project/entity/enemies/Dragon.java new file mode 100644 index 0000000..f181dbf --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Dragon.java @@ -0,0 +1,53 @@ +package org.project.entity.enemies; + +import org.project.item.weapons.Weapon; +import org.project.entity.Entity ; + +// TODO: UPDATE IMPLEMENTATION +public class Dragon extends Enemy { + public Dragon(int hp, int mp, Weapon weapon) { + super(hp, mp, weapon); + } + + @Override + public void attack(Entity target) { + + } + + @Override + public void defend(Entity me, int damage) { + + } + + @Override + public void check_hp() { + + } + + @Override + public void defend() { + + } + + @Override + public String getName() { + return ""; + } + + @Override + public int getMaxHP() { + return 0; + } + + @Override + public int getMaxMP() { + return 0; + } + + @Override + public boolean ISLive() { + return false; + } + + // TODO: DESIGN ENEMY AND IMPLEMENT THE CONSTRUCTOR +} diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Enemy.java b/Java-Knight/src/main/java/org/project/entity/enemies/Enemy.java index e019acb..295d73d 100644 --- a/Java-Knight/src/main/java/org/project/entity/enemies/Enemy.java +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Enemy.java @@ -1,16 +1,23 @@ package org.project.entity.enemies; +import org.project.entity.Entity; import org.project.item.weapons.Weapon; +import org.project.item.armors.Armor ; // TODO: UPDATE IMPLEMENTATION -public abstract class Enemy { - Weapon weapon; + +public abstract class Enemy implements Entity { + private Weapon weapon; private int hp; private int mp; + private int maxHp ; + private int maxMp ; public Enemy(int hp, int mp, Weapon weapon) { this.hp = hp; + this.maxHp = hp ; this.mp = mp; + this.maxMp =mp ; this.weapon = weapon; } @@ -24,6 +31,10 @@ public abstract class Enemy { return hp; } + public void setNewHp(int newhp) { + hp = newhp; + } + public int getMp() { return mp; } @@ -31,4 +42,58 @@ public abstract class Enemy { public Weapon getWeapon() { return weapon; } + + @Override + public abstract void attack(Entity target) ; + + + // TODO: DESIGN ENEMY AND IMPLEMENT THE CONSTRUCTOR + public abstract void check_hp(); + + public abstract void defend(); + public abstract String getName() ; + + public void heal(int health) + { + hp = hp + health ; + if (hp > maxHp) + { + hp = maxHp; + } + + } + public void fillMana( int mana) + { + mp += mana ; + if (mp > maxMp) + { + mp = maxMp ; + } + } + public boolean IsLive ( ) + { + if (getHp() <= 0 ) + return false ; + else + { + return true ; + } + } + @Override + public void LightAttack( Entity target , int base_damage) + { + target.takeDamage(base_damage); + } + public int getMaxHP() { + return maxHp; + } + public int getMaxMp(){return maxMp ; } + public void freshFactors() + { + mp = maxMp ; + hp = maxHp ; + } + } + + diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Goblin.java b/Java-Knight/src/main/java/org/project/entity/enemies/Goblin.java new file mode 100644 index 0000000..f3204fc --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Goblin.java @@ -0,0 +1,69 @@ +package org.project.entity.enemies; + +import org.project.entity.Entity; +import org.project.item.weapons.Weapon; + +// TODO: UPDATE IMPLEMENTATION +public class Goblin extends Enemy{ + private static final int Max_hp = 6 ; + private static final int Max_mp = 18 ; + public Goblin(int hp, int mp, Weapon weapon) { + super(Max_hp, Max_mp, weapon); + } + + @Override + public void defend() { + + } + + @Override + public void heal(int health) { + + } + + @Override + public void fillMana(int mana) { + + } + + @Override + public int getMaxHP() { + return 0; + } + + @Override + public int getMaxMP() { + return 0; + } + + @Override + public boolean ISLive() { + return false; + } + + public void attack (Entity target) + { + + int damage = getWeapon().getDamage(); + System.out.println("Skeleton use ----"); + target.takeDamage(damage); + } + + @Override + public void check_hp() { + + } + + @Override + public void defend(Entity me, int damage) { + + } + @Override + public String getName() + { + return "Gobblin " ; + } + + + // TODO: DESIGN ENEMY AND IMPLEMENT THE CONSTRUCTOR +} 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..a3350a8 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,76 @@ package org.project.entity.enemies; - +import org.project.entity.Entity; +import org.project.item.weapons.Weapon; // TODO: UPDATE IMPLEMENTATION -public class Skeleton { - // TODO: DESIGN ENEMY AND IMPLEMENT THE CONSTRUCTOR +public class Skeleton extends Enemy { + private boolean dead; + private static final int Max_hp = 10 ; + private static final int Max_mp = 2 ; + + public Skeleton (int hp, int mp, Weapon weapon) { + super(Max_hp , Max_mp , weapon ); + this.dead = false ; + + } + + @Override + public void check_hp () + + { + int x = getHp() ; + if (x <= 0 && dead == false) + { + setNewHp(Max_hp/2) ; + } + } + + + @Override + public void defend() { + + } + + @Override + public void heal(int health) { + + } + + @Override + public void fillMana(int mana) { + + } + + @Override + public int getMaxHP() { + return super.getMaxHP() ; + } + + @Override + public int getMaxMP() { + return super.getMaxMp() ; + } + + @Override + public boolean ISLive() { + return false; + } + + public void attack (Entity target) + { + + int damage = getWeapon().getDamage(); + System.out.println("Skeleton use ----"); + target.takeDamage(damage); + } + + @Override + public void defend(Entity me, int damage) { + + } + @Override + public String getName() + { + return "Skeleton " ; + } + } diff --git a/Java-Knight/src/main/java/org/project/entity/enemies/Vampire.java b/Java-Knight/src/main/java/org/project/entity/enemies/Vampire.java new file mode 100644 index 0000000..172ccee --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/enemies/Vampire.java @@ -0,0 +1,68 @@ +package org.project.entity.enemies; + +import org.project.entity.Entity; +import org.project.item.weapons.Weapon; + +// TODO: UPDATE IMPLEMENTATION +public class Vampire extends Enemy { + private static final int Max_hp = 12 ; + private static final int Max_mp = 5 ; + + public Vampire (int hp, int mp, Weapon weapon) { + super(Max_hp , Max_mp , weapon ); + + } + @Override + public void attack(Entity target) + { + + int damage = getWeapon().getDamage() ; + System.out.println("Vampire use ----"); + target.takeDamage(damage); + setNewHp(damage/3) ; + if (getHp() > Max_hp) + { + setNewHp(Max_hp) ; + } + + + } + + @Override + public void check_hp() { + + } + + @Override + public void defend(Entity me, int damage) { + + } + + @Override + public int getMaxHP() { + return 0; + } + + @Override + public int getMaxMP() { + return 0; + } + + @Override + public boolean ISLive() { + + return false; + } + + @Override + public void defend() { + + } + @Override + public String getName() + { + return "Vampire " ; + } + + // TODO: DESIGN ENEMY AND IMPLEMENT THE CONSTRUCTOR +} diff --git a/Java-Knight/src/main/java/org/project/entity/players/Assassin.java b/Java-Knight/src/main/java/org/project/entity/players/Assassin.java new file mode 100644 index 0000000..8543923 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/players/Assassin.java @@ -0,0 +1,24 @@ +package org.project.entity.players; + +import org.project.entity.Entity; +import org.project.item.armors.Armor; +import org.project.item.weapons.Weapon; +public class Assassin extends Player { + private static final int assassinHp = 20 ; + private static final int asssassinmp = 40; + public Assassin(String name , Weapon weapon , Armor armor ) + { + super(name , assassinHp , asssassinmp ,weapon ,armor); + } + + @Override + public void specialAttack(Entity target) { + target.takeDamage(weapon.getDamage()); + } + + + @Override + public boolean ISLive() { + return false; + } +} \ No newline at end of file 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..4089a41 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,26 @@ package org.project.entity.players; +import org.project.entity.Entity; +import org.project.item.armors.Armor; +import org.project.item.weapons.Weapon; + // TODO: UPDATE IMPLEMENTATION -public class Knight { - // TODO: DESIGN KNIGHT'S WEAPON AND ARMOR AND IMPLEMENT THE CONSTRUCTOR +public class Knight extends Player { + private static final int knightHp = 40 ; + private static final int knightmp = 20 ; + public Knight(String name , Weapon weapon , Armor armor ) + { + super(name , knightHp , knightmp ,weapon ,armor); + } + + @Override + public void specialAttack(Entity target) { + target.takeDamage(5); + } + + + @Override + public boolean ISLive() { + return false; + } } diff --git a/Java-Knight/src/main/java/org/project/entity/players/Player.java b/Java-Knight/src/main/java/org/project/entity/players/Player.java index ff5385c..ebc0a43 100644 --- a/Java-Knight/src/main/java/org/project/entity/players/Player.java +++ b/Java-Knight/src/main/java/org/project/entity/players/Player.java @@ -5,7 +5,7 @@ import org.project.item.armors.Armor; import org.project.item.weapons.Weapon; // TODO: UPDATE IMPLEMENTATION -public abstract class Player { +public abstract class Player implements Entity{ protected String name; Weapon weapon; Armor armor; @@ -13,15 +13,28 @@ public abstract class Player { private int maxHP; private int mp; private int maxMP; + private int baseDamage ; - public Player(String name, int hp, int mp, Weapon weapon, Armor armor) { + public Player(String name, int hp, int mp, Weapon weapon, Armor armor , int baseDamage) { this.name = name; this.hp = hp; this.mp = mp; this.weapon = weapon; this.armor = armor; + this.baseDamage = baseDamage ; } + public Player(String name , int hp , int mp , Weapon weapon , Armor armor ) + { + this.name = name ; + this.hp = hp ; + this.mp = mp ; + this.maxHP = hp ; + this.maxMP = mp ; + this.weapon = weapon ; + this.armor = armor ; + } + @Override public void attack(Entity target) { @@ -29,8 +42,11 @@ public abstract class Player { } @Override - public void defend() { - // TODO + public void defend(Entity me , int damage) { + me.heal(damage); + + + } @@ -63,6 +79,9 @@ public abstract class Player { public int getHp() { return hp; } + public void setHp(int newhp){ + hp = newhp ; + } @Override public int getMaxHP() { @@ -73,6 +92,7 @@ public abstract class Player { return mp; } + @Override public int getMaxMP() { return maxMP; @@ -85,5 +105,32 @@ public abstract class Player { public Armor getArmor() { return armor; } + public abstract void specialAttack(Entity target) ; + public boolean IsLive ( ) + { + if (getHp() <= 0 ) + return false ; + else + { + return true ; + } + } + public void LightAttack( Entity target , int base_damage) + { + target.takeDamage(base_damage); + } + public void UpGradeMaxHP () + { + maxHP = maxHP + (maxHP*2/10) ; + } + public void UpGradeMaxMP () + { + maxMP = maxMP + (maxMP*2/10) ; + } + public void freshFactors() + { + mp = maxMP ; + hp = maxHP ; + } } 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..6eea7dd --- /dev/null +++ b/Java-Knight/src/main/java/org/project/entity/players/Wizard.java @@ -0,0 +1,33 @@ +package org.project.entity.players; + +import org.project.entity.Entity; +import org.project.item.armors.Armor; +import org.project.item.weapons.Weapon; + +// TODO: UPDATE IMPLEMENTATION +public class Wizard extends Player { + private static final int WizardHp = 40; + private static final int Wizardmp = 20 ; + public Wizard(String name , Weapon weapon , Armor armor ) + { + super(name , WizardHp , Wizardmp ,weapon ,armor); + + } + + @Override + public void specialAttack(Entity target) { + target.takeDamage(5); + setHp(getHp()+10); + if (getHp() > WizardHp) { + setHp(WizardHp); + + } + + // TODO: DESIGN KNIGHT'S WEAPON AND ARMOR AND IMPLEMENT THE CONSTRUCTOR +} + + @Override + public boolean ISLive() { + return false; + } +} \ No newline at end of file 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..c8cf486 100644 --- a/Java-Knight/src/main/java/org/project/item/Item.java +++ b/Java-Knight/src/main/java/org/project/item/Item.java @@ -4,6 +4,8 @@ import org.project.entity.Entity; public interface Item { void use(Entity target); + String getName () ; + /* TODO: ADD OTHER REQUIRED AND BONUS METHODS diff --git a/Java-Knight/src/main/java/org/project/item/armors/Armor.java b/Java-Knight/src/main/java/org/project/item/armors/Armor.java index 7ca8774..891df87 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 @@ -13,6 +13,12 @@ public abstract class Armor { this.defense = defense; this.durability = durability; } + public Armor(int maxDefense , int maxDurability , boolean isBroke) + { + this.maxDefense = maxDefense ; + this.maxDurability = maxDurability ; + this.isBroke = isBroke ; + } public void checkBreak() { if (durability <= 0) { @@ -31,10 +37,15 @@ public abstract class Armor { public int getDefense() { return defense; } + public void setMaxDefense( int max){ maxDefense = max ; } public int getDurability() { return durability; } + public void newDurability() + { + durability -- ; + } public boolean isBroke() { return isBroke; diff --git a/Java-Knight/src/main/java/org/project/item/armors/ArmorNormal.java b/Java-Knight/src/main/java/org/project/item/armors/ArmorNormal.java new file mode 100644 index 0000000..65f988e --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/armors/ArmorNormal.java @@ -0,0 +1,17 @@ +package org.project.item.armors; + +// TODO: UPDATE IMPLEMENTATION +public class ArmorNormal extends Armor { + private static final int Max_defense = 1 ; + private static final int Max_durability = 2 ; + private static final boolean Isbrok = false ; + public ArmorNormal(int defense, int durability) { + super(Max_defense, Max_durability); + + + } + + + + // 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/ArmorPro.java b/Java-Knight/src/main/java/org/project/item/armors/ArmorPro.java new file mode 100644 index 0000000..4965f4b --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/armors/ArmorPro.java @@ -0,0 +1,16 @@ +package org.project.item.armors; + +// TODO: UPDATE IMPLEMENTATION +public class ArmorPro extends Armor { + private static final int Max_defense = 2 ; + private static final int Max_durability = 2 ; + private static final boolean Isbrok = false ; + public ArmorPro(int defense, int durability) { + super(Max_defense, Max_durability); + + + } + + + // 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/ArmorProMax.java b/Java-Knight/src/main/java/org/project/item/armors/ArmorProMax.java new file mode 100644 index 0000000..699ec20 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/armors/ArmorProMax.java @@ -0,0 +1,16 @@ +package org.project.item.armors; + +// TODO: UPDATE IMPLEMENTATION +public class ArmorProMax extends Armor { + private static final int Max_defense = 1 ; + private static final int Max_durability = 5 ; + private static final boolean Isbrok = false ; + public ArmorProMax(int defense, int durability) { + super(Max_defense, Max_durability); + + + } + + + // 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/KnightArmor.java b/Java-Knight/src/main/java/org/project/item/armors/KnightArmor.java index eb59a46..e69ef91 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,17 @@ package org.project.item.armors; // TODO: UPDATE IMPLEMENTATION -public class KnightArmor { +public class KnightArmor extends Armor { + private static final int Max_defense = 3 ; + private static final int Max_durability = 2 ; + private static final boolean Isbrok = false ; + public KnightArmor(int defense, int durability) { + super(Max_defense, Max_durability); + + + } + + + // TODO: DESIGN ARMOR'S ATTRIBUTES IMPLEMENT THE CONSTRUCTOR } \ No newline at end of file diff --git a/Java-Knight/src/main/java/org/project/item/consumables/Consumable.java b/Java-Knight/src/main/java/org/project/item/consumables/Consumable.java index 028e13d..e9ac57c 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; +import org.project.item.Item; + // TODO: UPDATE IMPLEMENTATION -public abstract class Consumable { +public abstract class Consumable implements Item { + private String name ; + public Consumable (String name ) + { + this.name = name ; + } + public String getName () { return name ; } /* 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 index c0e7a6d..8726503 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 @@ -3,7 +3,10 @@ package org.project.item.consumables; import org.project.entity.Entity; // TODO: UPDATE IMPLEMENTATION -public class Flask { +public class Flask extends Consumable { + public Flask(String name) { + super(name); + } /* THIS IS AN EXAMPLE OF A CONSUMABLE DESIGN. */ 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..90788cc 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 @@ -5,17 +5,27 @@ import org.project.entity.Entity; import java.util.ArrayList; // TODO: UPDATE IMPLEMENTATION -public class Sword { +public class Sword extends Weapon { /* THIS IS AN EXAMPLE OF A WEAPON DESIGN. */ + private static final int damage = 3 ; + private static final int manacost = 4; + int abilityCharge; - public Sword() { + public Sword(int Damage , int Manacost) { + super(damage , manacost); + // TODO: DESIGN SWORD'S ATTRIBUTES IMPLEMENT THE CONSTRUCTOR } + public Sword(Weapon other ) { + super (other.getDamage() , other.getManaCost()); + + } + // TODO: (BONUS) UPDATE THE UNIQUE ABILITY public void uniqueAbility(ArrayList targets) { abilityCharge += 2; diff --git a/Java-Knight/src/main/java/org/project/item/weapons/SwordPro.java b/Java-Knight/src/main/java/org/project/item/weapons/SwordPro.java new file mode 100644 index 0000000..c3824fc --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/weapons/SwordPro.java @@ -0,0 +1,38 @@ +package org.project.item.weapons; + +import org.project.entity.Entity; + +import java.util.ArrayList; + +// TODO: UPDATE IMPLEMENTATION +public class SwordPro extends Weapon { + /* + THIS IS AN EXAMPLE OF A WEAPON DESIGN. + */ + private static final int damage = 4 ; + private static final int manacost = 3; + + + int abilityCharge; + + public SwordPro(int Damage , int Manacost) { + super(damage , manacost); + + // TODO: DESIGN SWORD'S ATTRIBUTES IMPLEMENT THE CONSTRUCTOR + } + + public SwordPro(Weapon other) { + + super (other.getDamage() , other.getManaCost()); + + + } + + // TODO: (BONUS) UPDATE THE UNIQUE ABILITY + public void uniqueAbility(ArrayList targets) { + abilityCharge += 2; + for (Entity target : targets) { + target.takeDamage(getDamage()); + } + } +} diff --git a/Java-Knight/src/main/java/org/project/item/weapons/SwordProMax.java b/Java-Knight/src/main/java/org/project/item/weapons/SwordProMax.java new file mode 100644 index 0000000..d02eab7 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/item/weapons/SwordProMax.java @@ -0,0 +1,35 @@ +package org.project.item.weapons; + +import org.project.entity.Entity; + +import java.util.ArrayList; + +// TODO: UPDATE IMPLEMENTATION +public class SwordProMax extends Weapon { + /* + THIS IS AN EXAMPLE OF A WEAPON DESIGN. + */ + private static final int damage = 5 ; + private static final int manacost = 2; + + + int abilityCharge; + + public SwordProMax(int Damage , int Manacost) { + super(damage , manacost); + + // TODO: DESIGN SWORD'S ATTRIBUTES IMPLEMENT THE CONSTRUCTOR + } + + public SwordProMax(Weapon other) { + super (other.getDamage() , other.getManaCost()); + } + + // TODO: (BONUS) UPDATE THE UNIQUE ABILITY + public void uniqueAbility(ArrayList targets) { + abilityCharge += 2; + for (Entity target : targets) { + target.takeDamage(getDamage()); + } + } +} diff --git a/Java-Knight/src/main/java/org/project/item/weapons/Weapon.java b/Java-Knight/src/main/java/org/project/item/weapons/Weapon.java index cb9fcf2..82f2a6a 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 @@ -16,10 +16,7 @@ public abstract class Weapon { this.manaCost = manaCost; } - @Override - public void use(Entity target) { - target.takeDamage(damage); - } + public int getDamage() { return damage; 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..5cb162f 100644 --- a/Java-Knight/src/main/java/org/project/location/Location.java +++ b/Java-Knight/src/main/java/org/project/location/Location.java @@ -8,6 +8,7 @@ public class Location { private String name; private ArrayList enemies; + private ArrayList locations ; public Location(ArrayList locations, ArrayList enemies) { this.locations = locations; 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..76064fc2b97575c62be22cfc8b6d5703cfd1fa3c GIT binary patch literal 6970 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 E7n}B4iU0rr 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..9da4bfed680e0092c49318b94c32533d64873e61 GIT binary patch literal 1172 zcma))!EVz)5QhJ?L*k}^LI{PDk|r&*ZfUVNa4LcW1Ys$yDy1qC7qoR2XWQ70oNb}+ z!~sr79C!d83NdS2kyBYMiR2yc{QoyI>;3ch*KYt_*i{%XD=5`)17(JG6#LFNj!uN9 z91$w1E@%;f6ceXQ>jgvkr3|Hd#jtL>ZZEHwN(9aq!N*ZJaXuvL?&gsNivbl>89I6O zCHmW#`%%bHdJ_!Q|fBQTr>oUxl-IaWoX$m>a0{ZIVl>Jl#0i`Pz=p0gd`h?&mtT!tXu_j zHPHxY`tpDW+^4|uhQd4jq(?Drovu)|eXcbPd$V`K&$%<=q3`rnEJL5hwn(tYzrH_6 z95jBmu}2$ax8IZJI0uoKglzVL*I1Pp}^p8>rD!-z=@BFOQoPZKXQg!UDaK1GjO9C_1WBq}3Mgq5+e3?_n{k@PhVr zE{E2|K^To)Op{YA!+kuUJi`(mW{B6MGm8+71kp~DIYcu-P)#f+oiRK@D}z1Npd#2( z0;{FT45qud*4QdEuArS&+@V!hH0zb`w4}$Ip22F)YEEl*u$o!7Gpk{KyX4%+IgP1v W?LVB`h0e!#a&67$h0gV)vyFcPr@89@ 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..98f5b3bcf4451244a46a663ee053cbfdc215b18f GIT binary patch literal 1935 zcmah}+j1L45IwV!R=2gISjHj9QS2BJStb$pOO!YSU&;!yLzTfmUcy+KNE_=`(k3P^ z{0VP7<^ifO6g=<&d=$m$(IU%2B&E{!%xrg`)2Dm(ufPBJ6TlX>Q*aQ8BkCarS0VFQ zKh>p{?lemG4l{qOerDOPiz}3Zbx4SUr<=np(`NgFx4g z6!L{L-e)u^OJ#{#)6|Y03Y=Rvk4&eo5GUTAZnM03qMc69e$e+j4U&#FjczeOOwd%A z*%!23-3tXsJn~zuUER@iZCm43237wlGqP(B6w+0{(G2c}Brm^+q-~TN=srm)0T?yL=Pk9SME*sp-yL9oJUl7mL zN#+z-J`g|-Dc&dnSs1#GK+=R25G6M*OjxpeAXa3)=L~WnHMl$mHIp<$Ua>HZ!rF+< zI=uzbwW>@KS+N?P5^+aFT)Y_)xjvOhW|GLYsYGr-*h`DXt62Dn2jf+&{WmzO@D|<% zXy0M2V&4tzdw8Gm3LlKBY=oNUi=t8PTNwZ@_@DWajSw5QA!41(^#g&Wa)naHeK={K$LJ^Fv+NJtaG`l__TPaYTWm4k~e7Els6H3ll+bPZ7ulDiy}$H!_ew^){Ge2q&EF1xsbC4qCJ zS4*7Qw1%;ITJEXCTV=}CN+XA|K#mR?3n?MHC4YO>?h1&iz=;jkU&~N8WH3-^wnH|_ z=yXlQLS{CiT~_F1%@5V~ptGZTFXc|am0~Sw%Ag^8zKN5?jBfjV8g|64vE8&PkTNn- z9sXqFR$vz%0gmeuChw}(D%`cMH7KyHWWZH3=r-^A+7E&)8A@(-?2uzC@z&2?a5J86 zahk2xYyR8V{9hPKtz~mh;9~iRh9d>08O+qOM;d|oV-lIRn>1Ih*;dUxTl0nExM`Lt z2NgM_-w=h;c{I=6W>fHPsW}7%?3`&l@HWi+n;EI+wzERItqGnvJeAUKxpR z@Rji(M__F- z#r$U|?k5xvP)t-@=V;`o(!X0hrZlnsg%SO!q5k#%fxJ8x`4EpLo>>`-{1F=oa)(7R zPk3(m08V&l9p0j>e;O@#-HO TQoPckNe@SKq=!0cHf!rY@M%IX 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..c52d729a9d10b02b6604bcb8b80861392bf947e6 GIT binary patch literal 2000 zcmah}ZF3q`7(JJF=%z_%h)Gi$VqXMOidJjYyfm6pgF=i_sYY$*25w;+SQuE^=C3&8 zKk$P(HXZ%o59n{|IG($^p_?{Mm|^eU=RW5=&vVa#=l}ilFMuNMM-dRX(Cs%1y?*zh zs@nx+*`~e6MRiOyC{%Y8(#Gw?Rf3&fe}_QDIvWKV23 zfixDPc*np6%{hO4#k&SF$O=q6l#gVgEv;sux;Nn6aK!G=7D$zy z6SG^`>YJ8bwfjnTmSR{Gm^{!WJshZXo}UErxEe*lzmSN9M$z#HrLyI&a_5QRV~#iKh|=@Q@3*LjC<%=LqHiw-Z)xRTm+KeR2-MVboWZ%?#FBr00=0M=m zA&K5#+a-a3ZY0p*BjS2aVBrw-C_Bt}=*Gi`W z4YibPvw~ji7SRvPcDo`i$)k?5cuuTrF{@N9n~yjiiMP3xwq_MLpE=amp$n%t%(P{n zHWipVCXs0k$7VF;afJM(=zC!sQF3ld{WeA8``qZ-f?8L*!+u@eHnk>W2SQ)fnONX& zC`1{92%wkEz_`J!Cdqive>D)vjoPUO3F8CDjKOF3u zj*}V0#K=9y-Dlk8Tm(MHI(ItfmQz8$75Nr$Vz==Hu>uPP=HYZWxpJ(y99uF%gItNYN%JkLoQl zF7)^1I80+;-k~$xLyu0Nf+$te8|A4>>YgP zA+^NXFf){RZXfe2f8t`2?^hPj{f%n@yi~#!d4b%7 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..33b8b3d527b679162db58790512e1fc7c7d219d6 GIT binary patch literal 1739 zcma)6+fox*6kR6?x!EWN&_NLcDg-dJI_iuAUJ)c35G#sRzF5a_3@u5gt8=2mU-%I| z&V%~E)Xc+tzROL&q(Okkqv*KE&kzEM?e zD_1*uhcDG|RLkCw4bSma776sFkhG9OS|EP_V~NZif#ibYI{KEtWT8|lcjFzc8umLS zy{6l;p9k;x>5VJ|vKEfO63En)4le}G6{ZhmXK@tAQW&ss965orhhz&A+?NemQv&hA zbSZ-&45x6y!b$ujFz`mcm3CdaHM_FYqFkbyZ7ncd4sM*Lz3w}%u4rG$#(Wy5$cdcF zw_7S-Cj2&jxJg(7|BbdOs6wX_?fJuRo?#iN0 zEd>pud0K9(y`mC@QfO(x!n9$gTS~8~cPpOpdDg;3V^kk~Uh&eH`#DbcxKlpkXUSP(#KKSp zWA@QuLT@=Of%E&C+I#5c1!6`=tieYzoEU-eeav3NM6lFaR<{Ml3j5IeETg?dYU$Gj zfzt;73EPaOrN3eVuSzc}CtclA)$PD84w4DDsa`90lT&z5YIeueMU&FZPQzE$JIhrr zlch@8dCO}CeZesyXiXaU5I={m=?v$D&95}uepM|y#&;{~<(vUxoDEN~Q!$)^jZ55J z4t7_#|G8^_6&c>~^XBs!5zojnyv)pil`j5?_@{t&ozEz34!<(H@G7O zzXgHKYMv{D&R_vI5ohpQxE-Z<&%GIEshcQM6V zYWNT+;nwJg!{`{JTwstohA@C(e!M4mb`nz@ZR(Kf&7FfoEhz1wQRAID9|x%QFXBc>j{pDw 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..3bc905a9b796aa5175ff7e4bd759adfb9c858be3 GIT binary patch literal 1118 zcmah{TW=CU6#fQiS74!75v`Y2tknhDu0CT-NNwXL#F$X2@okC|oOUl{cc|%q^2Nkx z^uZtCk20Q_MZ-nghn<~s<~!fHeLsJF{{dhhPb_2@Hlujxj^gM<43sNECDpk*^7*-l z6StEjJV|6&Kn_b5mTg$L!ce~;L${}584lZ?*PW)2 zN(Al)!ADV;xJTySUIg$sh;&W**KYLlU?|uq!lq@+{r!TUt#o8pi{1Aa(bp&SU|*x^&b@ zZ8=&*2Dh+AA5k0Y4&Cog+3U#Cn}rQJ?-Ak+mQ9@9Y*nfiXM5)>vY$+3oz4RBfh0^K z#(laqQ!F;|fGm)A3lE7&-!w*}Z9IZwvNQ;vW;vi2{Z?)@KO_GIrEj>F!F-+yN+f!n urw$=MY3pLpR3 z!2=(_Mek>%~m{CLmp0qL8s$fVxly!+YBETSee)PzeY&XVe*-jt@dRs-cF(u zk-g_9A?>vKiO<6!&tzT~n^kox#|%5A$qQra5p~QXO*EGQMKo1Pd6uXarNOYIkDpbSRz$LNRP!0VJ3==*x35V>sPU6zU+EWWIPM z^Mh(k@9ERrB|0GAlvo9~v5F>D*LBsRdTpj|!=QgAZqR$35Fb&~efI8N(`mN%pL~b$ zO?Td;cb)h^cddaH+@jU)6pIaF%^w?^xI;|&>Mpi4+Qv5S=_wuDFQ&YpKRJ`NXZ^sn z3jUqYB1LO@!uk|* 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..434ebbebd4fbe78bd347fab25b6017aabf9a25a0 GIT binary patch literal 3180 zcmcIlZF3V<6n<`+mp0iJN?L5~OK1>mw@MUWK#SE1lm-&07Rrk#Y?E!Wkhe*ew;7$$ z8RcL2&2jv|2c4lf_`x6Gk8*s@-EF!gD}Hi1&AEH`p65L0-1D6M>+e7Q1aKDRBqA6{ zAZj3nxWfKB)_p5ivl^A$rL8-5$yJD-avF}itS~UYusMW53?+~>kbey$jx>d1-!65^4vK^~i57*XZ=dgj-c6W;FNgT!N3CtTR4ZI_s(W-6Ll6VjA zCvd{RNue_nMAOv@=1oK)V{hAyj-6y`9~xK^w-~qAS_;?Z`!6n^?=NQ074#nnMqMIr zvOV1_vorP;oQ8ezUVY1MU$(Ytx>uSdtF~#i9eMUQqi)sdC>(wPIke}N6t4a+tc7&k za$T!*S7CNOjEQ$oOZud1wOK@ksh1oiU|EV^X5YLFP!}vBLW-AlV{##v?N$|rH-u5q zYWbBK+;(cUqSdfi;<`2o^0=sFI5xk~f1kYVj(6L!hW$X4I7o-0bi3CG#l5W}x1@hP zsqsDt*wjmYTImg7NN&Mj>@9JJ*$p&chq45#?}5ubjcUxN0i`8$-kxPyc_ zy@O$MW(T9@WON5(=45OK6Xtk)2h+c4oMrxI$pkn+HfaoD3?sx%lg}h3km2tU&byC! zV$DOxCs^SV<7oCuuY_+zuY~D!0Zt=Q}fuHTh?Re>TW} zkNHvZ1*REghO1dJ&ye{c@}A>P7Kiz_z=104m%S)m_GXv8sjDsQP5C}(_NKlOVQcV*fSh?j>QP}c*(a9j66(liG9#J-HkoM59BJb6wa}#-tC>| z8L8Xg;`DR8-H&#R)jzJ$4teLgXoJXWH2UJaz6T}a-p9Sb>Ij>(dHpGdr$~6>8Qv|I z*%`frPp}D21_-CSA<`OH2=i;;16N2xfM-46+tO-`!2iroNSR{&7y~T6*I;0?CfTgx z+?gTzUU6o-v1W0BNhlQPGXOQiWidSH=oEvFGLZad{h(QHNn*jEXBhM>gRU~@+P?(7 z*cpM;Vx9d|^PLFeHoJf#+@oo*{_*|!>un|fm(@W%9D3Qyd&ZE7~H$$DTggR$?owq`rH*qzj zeq+7G-wt)YhU+2D6TQxN`kkW+H>h&Z{R`amK|G~`J^c(H{D|1Vlc*%&HP{F((4;t9 z96_A`WXivdff*aWkqGXaM@nCZwdEZD4f-WJI!VmcB8^hgc_U@o~XQf Ve$V87U~-QGfTLY;Z4n}Z(m%Nn4{-nh 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..ef9f5b4ecc0b8d5fd8ad80eb77d2d69c071a66e5 GIT binary patch literal 1131 zcmb7CO>fgc5Ph5PCN2qS2(*EQqGMmRFxtu1%wnx5hu3kD!6rQ%h?o_-@}m$ zmm)au1Nc#h*|midC8~rEvpeINH*e|3(0XW3tED{V2KO9>@=%0#_w1g)ed0_=E zzYyWnI&wbq@Fb5E(ph8-WRbhN;I%Gf$UJd8M?PgZGW)0eoLesU#@0ZFjyLYvc7ML7 zBgMq}BzWL^)KQqXswu)B_+)#+=X%x>zJ5VXiW>`NUmXdpN$laMp(jHBQ zIA;8H#ZwMfi}DJj1IwMsYIn-+?pzMQ)tA+2&6h>^qHeJT0qjA7ecC|OXE z6ek{%holxm?TSRg9Von)Jc##@u?KzUoQ5Nb-_vs#__J^%o;zxBg-G2!H8mO}e~J`L zU<*~;B=45?Hp$4|Nw4t+KVrmQu?7#Y~pQ%n33bAd`lG&Fq>#srrX zW#*+@Gcs@m=a&{Gr@Ce40M&4UY}5m(Vq;_g+5vPO0|OJ#0jvyc3?PTFGjIS!fC@q4 G3|s(pjxWvt 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..3c4faab919de7f898351ae9b02352416adc6d3a8 GIT binary patch literal 1264 zcmaJ>+fEZv6kVsCwlYlZg;G&KZi;14#>6KtF%d6GlcF&g5_p@oM;Lk|)4|Kf_y@k2 zNKAb21N`mbcrgE?yOv6!F9E6A7NjQ+3UJ&V?=ZC#PIP{)LQOLFR zd)*&u1yvX5RR;yZ+3nNNZwB2U`Yi2|gR*J&{7)}N2x(Uw%t|{i?Q?)@4(4#3{K0TL z9CU>LKp|7B*EjYQtmlI^TZKl@*RM}|O&z}Tn_YIwjX}%r?)hOL=eTJ_N5N2GsqtSg zj~N8%4}{-t9qCqQJJf!M!|g_XtFz;u#B|wEpZEd2+lM-e&6w=!ygSst#mPv}*C3Rq-kc?82vEb&AF zBd^R(gi}UlIhN`2EIgHeGDVS@aTm`}9cxuN7*OKPGPP!?RpB~o^xP3X(W@AnqF0fh z3;AUy7Sq&RK{i%?YbK!&_dD`mkasOgx@j5}-89A?=a3`XVKgOn#iK(GNnqr0)!bJl zHrEpRMoe!gt1d-~k|FENB{443;0l9W<;ZIj64h8j;TCSkgL|wZpCMQ7D>o@KtM~%e zC%~BmypB6D_z`bQB3XIT;yB?Ex@OST(Tyb0ENaHF!p5aTtlFdW&6u`8* p&+M)Cxj^I}2=HLz{shf*;$;q-v6smpsuyQ?FaaJ1ao5Ck?=P&~r0oCz literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/armors/ArmorNormal.class b/Java-Knight/target/classes/org/project/item/armors/ArmorNormal.class new file mode 100644 index 0000000000000000000000000000000000000000..6adf7ffc739aaf2dfe1f75889e4207140fcc750b GIT binary patch literal 497 zcmaJ-%SyvQ6g|_XNll;DcSTS{P#5L{6hVqYpmw8l;YKFys8f@SOeUhAtaGF3DaRXRJQ2+6^2=^ZFw-;z=PKGDAMvC9Tjr zl8H3WBoyY6R`)b=Whr2&4%C<=IzyR>vm%XzzT{Cto$gS@JQ;B& z5OsJ+o CR%5^b literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/armors/ArmorProMax.class b/Java-Knight/target/classes/org/project/item/armors/ArmorProMax.class new file mode 100644 index 0000000000000000000000000000000000000000..ec76939435642a9a77e1d83a893ac46f64c0284c GIT binary patch literal 497 zcmaJ-%Sr=55Ufr%*|>Qc-w{C(K|Q!1pa>Ea7NQ7B4qjw78Fk`jM`m|LKg*Ng!4L4G z#GZ|WoN}4zs_Ck(o}b^ZZvf}mbWtGeYV+v77(J4M)K{q-`@)R1N&GW=T^oHV-aI%c zxhU7*qC(i3DC>NrV7oc2YO$s*?=LL+a> zj0jbv(s#?2*eysxqn}xKXBiNjt{$>av!`Ntm5oDbZbcX|)9&eki2A}Pi~mU{eNqWw zuQxaKWYJ@SJI(10r%?#rjn2$KUMM@KHS;$|Bk?M*V`Fi+B05-r$EeDvfEwfa3~n%P zqBVVA@i@ J4dx5z`~kz6XHx(G 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..2922483711ffa0cc772fd28eff50478790cbe008 GIT binary patch literal 497 zcmZ`!%SyvQ6g|^NQq!mPT@jQbs0;G}iXcTHSluXHxRFUawo{XgOeUhAsaa3ze?nIV$Ln_P(s;- zQ-g~N!_Fd0E@p5}Wg^WPL-`;G4hIa?YySE$5|1KD1p^Bh>OGaDh9_pgqf8X3Pm!UK z%QDSF8A5XPp7`$7R>7lrkc28^0ay;cP9DBBwy#gI9!6Q_)?NK9KpTiBp zO|)kJ%QVqWROoG!BcKF(rF-O*KTv$nLssbZC=3+sP~<92yMHpQVVw{eu#vB^(`K$_ J*do4w&M)sHXL|qu literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/consumables/Consumable.class b/Java-Knight/target/classes/org/project/item/consumables/Consumable.class new file mode 100644 index 0000000000000000000000000000000000000000..4783348c12f5b4bbd12f5f0fd62a241b00476ca2 GIT binary patch literal 529 zcmZvY&rZTX5XQeLg-WS_2>v;Gl49aM0LBZE#Dw4h!+oinx`ei-v_6+68WRsbfDdJy zEkq9Wu(SKke*2r*`TqI*0&s&<7ZxfGY!6k`2<@eOmSQF2P~0t+D#!@6D;?|Xno#Nc z^E&oWci?(xz$2U|X(*o3#5je{R3w5VUgwcqtkhbJ{>}tDmXRWKCc6T&EY)#1bkHR9 zN}yY&alT)E;LjO1N*);3n&?9!o&%0eR5;dQ!{yjOht<)>jYD)<@w0MH`v4ekj7AbPCK&DuHdtMD&2BOJSY8>t@Bw@% z<8&niHPK#lX4=1B=kWgV`Ucb4R7~IO9c9oU`w-@-)a3H## zjNIdiPe>msU+E)4soJ^~55o0?-*?+ORDQov>tvC^tOYxVEOLa^X|D9O(ogP5YzUdY z)aT;y?2?eI)|%$!d=7aygw%}`9-C^j*0E3|>`Zfh<#+0d=#J&b!L=mhTgsOg!$DVu zS0;Z#u@&@$*AbyI@%S*MZ&XCsZT*jKFxwY{nDnb=&VCs2Ri*lk^sQKK40le8kV__% z{}2-Fb}$Tk@>H43?YOi9^C`Ab;Gvn70GYAzzQEBD$L2h}Uw;8T$M=i8n-PPXI)ho1 z*jxHiv0dhf^;p3wGYD%ak6C9(#ww>?AHgCxwl~6D0zat*o>Os(>P)B(*0B*&EBr?S Fo1ZZyiz)yB 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..0ce1c0724d3fffb6df69c8faa6db121adb79e178 GIT binary patch literal 1375 zcmah|%Tg0j5Ir{}8Av9AJR%R3ry9az5XDyz#Q;{S0xqzybmb*Xg@G`GlN*swap}sn zRf>fR%eBAZUs#rU?j#@-0T;=1_w7En&*{G3e}DN3U>=VRgaj^oe$m?Yy$!pdEJxW} z){ZT=J-2Kv?|A-N3}HkJL`@iI6zDxQ`&m#W5S?~hN6iRCQn}plims2Dh{F_UD%xsJ zZpor8(2yF=>9cbtn)O+nXN%I6S+A^`AaLG9E7}ASa@8q0YB#$seO)J5)q$je3nn_z zCD67ZUrVc^oRT%``*Jt$l$AgunfOw9zCbcHod1`TtHm>M^x&d_OC~O(SD^J|ih!{$ z%S-kf;<4Qqx}x9200srZZV+xiz%EI*XgyigB4!L+5$HN9l36ZrTUBgi{oaDz4RZN@O_-C0(^5OBK6;gKHqWEh<%@QrZu*o2<7+ZJP6rYcEx{ zR&D>OTrDxun)eE_v?6^+`?X+Ltvh9bzWmV^Pfk9=E)KeC)T7ZC3Jj%AudD7rMiYp5 zYTc&#{r}D8j4Q75s$$PpCoRyKIx?`sp$4!~rPqLM^c=%ICNLW}s%d1|Q5T9^aa@_* z?E`ft>lI9&aoY^asZ-Q7af*_9}kCUU2jvW5Ht_ z*Gr0iE>Ku60=hARHhQD^!q|eIh-whbI0Kb-=q|@)c?DWHtE^ zJb^p7ODKVR$nZ>e`i_vA=|uYZN3=vK`Rs$3#g?kgD8F#QLJd16f~*9=*mZ#l+iL%r>`PE#ic9P zCVoU0#O&I7G82>BaegG7RE;z2E76l^NVsUy+zk7=9dOm?M95!&o#8He34E@<6 zU~J09s{NdN9QUC{WK2w8QXuRG@>3w&M=?p$}Lv;B?X;y1^w)tWmY6oUmqi9MBk(DHNz0j z@;}Ze2#6wuIY!4?Z8(SX%m~1IK(C_@Gd<}`Qfj5Mxd(4B7Xt zoDAXB&#ziiIFOV=gmH$_CiLe^r>0=x_^!MOo-E*MAar(jmRT&~8Yj6Ejt9*B7qU(r*V z=(zTBqq=7M59L~gk^Z7rl9g5IJKApr!)n8+3!Eu-mUz(obF8IZTT~B7U(4M|AB=8p zLQc04@zjRR8KnN3%}F<0=S9PwYtCEXSh{0uyQ2+gyOmxBmNBx2caO|0+-Rn;*TH?M zxEp)**{ZcQy0jl)<{!7s^1j51lBMTMvepv1XT>SIQZ;-|VtU_h{>`WrjIDSLzho~u zdYpY75A%XvSfsd2VJ<-zhH(x9^v>&*z!d!p9lpgV-&2rDVGw0zmR^BKy+lSP8u^H> zcQiw|$p09>AfOvbT%tABOv7bdp+^9w1A1*;r4=Hffom<=1!ik}B6DsVJ^Us1As>Rt zDm8hsnY>G$z;)apmB3Bpc&00TLrUFgHuLyB`XWz1ppU#qmd@{BSl~5=X^aVc!Nl@Z zW*cXAa5jXuzrN{~!a++(L};I6YomO`V^k^yi&ne6ah}ZJR?uj6x0WnsahsLgA=c!V e6)-YK>n`m$LO;-JVB|YV^9+PA&!dIFTKo+odq153 literal 0 HcmV?d00001 diff --git a/Java-Knight/target/classes/org/project/item/weapons/Weapon.class b/Java-Knight/target/classes/org/project/item/weapons/Weapon.class new file mode 100644 index 0000000000000000000000000000000000000000..342073fb9ebbbf1b268967e6418b6b2c32851597 GIT binary patch literal 557 zcmah_%TB^T6g^W4rBEoMqJoLCgD&g`XxyMCO;8sajLQKgwS=~$6#OYSCK3}Det;ik zyfZW|42fxSU%lrs_v`!P6Tl@}C1}VQ&@JRqV5m*_lDktL`R?s-B1S1g;Vg)P^qe8r z=?+X3VHzk|D8phniWA?RC9&LegH(j>v*5Ehn!67w6MD=;?h6LyNo>`EErG?5N4yu$ zi9g@*yzYQO@5N)wcrAfUXkN9-JlR);_P*0zNIYYbukAqVN(--MQ z=7QefF_dX?{cE6f7cY{LxC*3Ld2Ree-a&7ZV~y^l(MRu971^hp0~tq+;udv}@`#je z=N-&xtzbBZD^y+;piZ$4onn=u4U=G1f^E~}cn!l2cBvx*CBsxDg)|aqU@wz#Da(I( j=MBaS6&eu(1vP9aLTkN{5i;y=1Xuoon;XFgN}~A#8Y@|p 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..3c924cf355ea7d0b4a17fc6c4ec698b5b2b4f942 GIT binary patch literal 1239 zcma)5+iuf95IvilNpLQtZ32|iQf^7O_zi(lMM9`NMdcwV?@qANtrEL()=2p)kf@M& z-~;$5#MyOH>eLau?9R^4oH=K9_Sf$pKLH%0RYC??3ppEk6a;E#?q}DTy8guZFgo+b zN}zBgeW`i^*;ad4#0?ZJlx*CDEwC4a6X!e(bfhy4#;%fq@AQ|3Kyl@p3+(g_cBJIg zc^iiAqA%yFs{t!Esv6Dmd~YVbx%S<%QOA}*&Ua^?Ks`=2#0Dyq{-jIvft>iRib4jw zNkc#CU*+fdN~(pkEaDuq*rMAb&Z~dtu5?^#Gl?%+X_?(rXM0F7?}AU{TJ1~UJBel^ zFZ}3^rbZrHHXXX5)aRu$r%omNwx1Ajorpj~H~eq*;(Ub=rt(X6o1({GYY()bIMSVKQBr%9muKR6o{5o!=b z;n;gG^+T0c#9!)R#sf}jh94=*mE%e)qemG6+s5AEnIGly+(3?Y9!>ghGa}-i;&9h7`OY`gzR<`R0tMsTGDWox1}uvTsy}3u)^Ro2T2F4KB*zRM W67W$fNO>J(cO%GSf;=&NpZ)=T