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 0000000..04485bf Binary files /dev/null and b/Java-Knight/target/classes/org/project/GameEngine.class differ 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 0000000..d2ad8e6 Binary files /dev/null and b/Java-Knight/target/classes/org/project/Main.class differ 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 0000000..f71b47a Binary files /dev/null and b/Java-Knight/target/classes/org/project/entity/Entity.class differ 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 0000000..bd5fd26 Binary files /dev/null and b/Java-Knight/target/classes/org/project/entity/enemies/Dragon.class differ 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 0000000..56e3485 Binary files /dev/null and b/Java-Knight/target/classes/org/project/entity/enemies/Enemy.class differ 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 0000000..90d3bb1 Binary files /dev/null and b/Java-Knight/target/classes/org/project/entity/enemies/Goblin.class differ 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 0000000..85790e9 Binary files /dev/null and b/Java-Knight/target/classes/org/project/entity/enemies/Skeleton.class differ 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 0000000..a23b214 Binary files /dev/null and b/Java-Knight/target/classes/org/project/entity/enemies/Vampire.class differ 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 0000000..a138482 Binary files /dev/null and b/Java-Knight/target/classes/org/project/entity/players/Assassin.class differ 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 0000000..3ffe4fd Binary files /dev/null and b/Java-Knight/target/classes/org/project/entity/players/CombatActions.class differ diff --git a/Java-Knight/target/classes/org/project/entity/players/Knight.class b/Java-Knight/target/classes/org/project/entity/players/Knight.class new file mode 100644 index 0000000..63cde10 Binary files /dev/null and b/Java-Knight/target/classes/org/project/entity/players/Knight.class differ 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 0000000..7d78636 Binary files /dev/null and b/Java-Knight/target/classes/org/project/entity/players/Mage.class differ 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 0000000..33eaf8f Binary files /dev/null and b/Java-Knight/target/classes/org/project/entity/players/Player.class differ 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 0000000..1c798e3 Binary files /dev/null and b/Java-Knight/target/classes/org/project/inventory/Inventory.class differ diff --git a/Java-Knight/target/classes/org/project/item/Item.class b/Java-Knight/target/classes/org/project/item/Item.class new file mode 100644 index 0000000..1f8ab25 Binary files /dev/null and b/Java-Knight/target/classes/org/project/item/Item.class differ diff --git a/Java-Knight/target/classes/org/project/item/Key.class b/Java-Knight/target/classes/org/project/item/Key.class new file mode 100644 index 0000000..46c913c Binary files /dev/null and b/Java-Knight/target/classes/org/project/item/Key.class differ 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 0000000..2d618e3 Binary files /dev/null and b/Java-Knight/target/classes/org/project/item/armors/Armor.class differ diff --git a/Java-Knight/target/classes/org/project/item/armors/AssassinArmor.class b/Java-Knight/target/classes/org/project/item/armors/AssassinArmor.class new file mode 100644 index 0000000..01087f8 Binary files /dev/null and b/Java-Knight/target/classes/org/project/item/armors/AssassinArmor.class differ 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 0000000..e1caccf Binary files /dev/null and b/Java-Knight/target/classes/org/project/item/armors/KnightArmor.class differ 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 0000000..36d514a Binary files /dev/null and b/Java-Knight/target/classes/org/project/item/armors/MageArmor.class differ 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 0000000..03951f8 Binary files /dev/null and b/Java-Knight/target/classes/org/project/item/consumables/Consumable.class differ 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 0000000..92b8035 Binary files /dev/null and b/Java-Knight/target/classes/org/project/item/consumables/Flask.class differ diff --git a/Java-Knight/target/classes/org/project/item/weapons/Dagger.class b/Java-Knight/target/classes/org/project/item/weapons/Dagger.class new file mode 100644 index 0000000..0d81e74 Binary files /dev/null and b/Java-Knight/target/classes/org/project/item/weapons/Dagger.class differ diff --git a/Java-Knight/target/classes/org/project/item/weapons/Staff.class b/Java-Knight/target/classes/org/project/item/weapons/Staff.class new file mode 100644 index 0000000..a6e7ca7 Binary files /dev/null and b/Java-Knight/target/classes/org/project/item/weapons/Staff.class differ 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 0000000..b91eb49 Binary files /dev/null and b/Java-Knight/target/classes/org/project/item/weapons/Sword.class differ 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 0000000..72a4908 Binary files /dev/null and b/Java-Knight/target/classes/org/project/item/weapons/Weapon.class differ 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 0000000..646eb57 Binary files /dev/null and b/Java-Knight/target/classes/org/project/location/Location.class differ