diff --git a/Java-Knight/src/main/java/org/project/Main.java b/Java-Knight/src/main/java/org/project/Main.java index 6bde20e..682b1e4 100644 --- a/Java-Knight/src/main/java/org/project/Main.java +++ b/Java-Knight/src/main/java/org/project/Main.java @@ -1,15 +1,64 @@ package org.project; +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.KnightArmor; +import org.project.item.weapons.Sword; +import org.project.item.weapons.Weapon; import org.project.location.Location; import java.util.ArrayList; import java.util.List; +import java.util.Scanner; public class Main { public static void main(String[] args) { - // TODO: ADD LOCATIONS TO YOUR GAME + Weapon wp = new Sword(12, 5); + ArrayList enemies = new ArrayList<>(); + enemies.add(new Goblin(100, 100, wp)); + enemies.add(new Skeleton(50, 100, wp)); + enemies.add(new Vampire(90, 110, wp)); List locations = new ArrayList<>(); + locations.add(new Location("Jungle", enemies)); + Player player; + Enemy enemy; + int isTurn = 0; + Scanner sc = new Scanner(System.in); - // TODO: IMPLEMENT GAMEPLAY + while (true) { + System.out.print("1.Assassin\n2.Knight\n3.Wizard\nChoose your Character: "); + int choice = sc.nextInt(); + switch (choice) { + case 1: + player = new Assassin("Pia", 100, 100, wp, new KnightArmor(50, 1)); + System.out.println("You chose " + player.getName() + "(Assassin)"); + break; + case 2: + player = new Knight("Khan", 200, 100, wp, new KnightArmor(80, 1)); + System.out.println("You chose " + player.getName() + "(Knight)"); + break; + default: + player = new Wizard("Daalou", 90, 100, wp, new KnightArmor(100, 1)); + System.out.println("You chose " + player.getName() + "(Wizard)"); + System.out.println(); + } + break; + + } + + + + } + + public void displayLocations(List locations) { + for (Location location : locations) { + System.out.println(location); + } } } \ No newline at end of file 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 746c38c..7a26330 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 @@ -15,6 +15,8 @@ public abstract class Enemy implements Entity { private boolean defending = false; private double defendRate; private double attackMultiplier = 1; + private boolean hasKey = false; + private static boolean keyFound = false; public Enemy(int hp, int mp, Weapon weapon) { this.hp = hp; @@ -22,6 +24,12 @@ public abstract class Enemy implements Entity { this.mp = mp; this.maxMP = mp; this.weapon = weapon; + if (!keyFound) { + hasKey = Math.random() < .2; + } + if (hasKey) { + keyFound = true; + } } //implement this in Main private boolean checkTargetAbility(Player target) { @@ -140,5 +148,14 @@ public abstract class Enemy implements Entity { public void setAttackMultiplier(double multiplier) { attackMultiplier = multiplier; } + + @Override + public String toString() { + return getClass().getSimpleName(); + } + + public boolean getHasKey() { + return hasKey; + } } 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 cdb6392..952b718 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 @@ -17,6 +17,9 @@ public abstract class Player implements Entity, combatOptions { private double defendRate; private boolean isUsingSpecialAbility = false; private double attackMultiplier = 1; + protected boolean hasGoblinKey = false; + protected boolean hasSkeletonKey = false; + protected boolean hasVampireKey = false; public Player(String name, int hp, int mp, Weapon weapon, Armor armor) { this.name = 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..a1e7b8c 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 @@ -8,9 +8,9 @@ public class Flask { THIS IS AN EXAMPLE OF A CONSUMABLE DESIGN. */ - // TODO: UPDATE USE METHOD - @Override - public void use(Entity target) { - target.heal(target.getMaxHP() / 10); - } +// // TODO: UPDATE USE METHOD +// @Override +// public void use(Entity target) { +// target.heal(target.getMaxHP() / 10); +// } } diff --git a/Java-Knight/src/main/java/org/project/location/Location.java b/Java-Knight/src/main/java/org/project/location/Location.java index 54c73c5..afafcf6 100644 --- a/Java-Knight/src/main/java/org/project/location/Location.java +++ b/Java-Knight/src/main/java/org/project/location/Location.java @@ -9,8 +9,9 @@ public class Location { private ArrayList enemies; - public Location(ArrayList enemies) { + public Location(String name, ArrayList enemies) { this.enemies = enemies; + this.name = name; } public String getName() { @@ -20,4 +21,10 @@ public class Location { public ArrayList getEnemies() { return enemies; } + + @Override + public String toString() { + String string = "Location: " + name + "| Enemies: " + enemies; + return string; + } } diff --git a/Java-Knight/target/classes/org/project/Main.class b/Java-Knight/target/classes/org/project/Main.class index f400900..c0da07e 100644 Binary files a/Java-Knight/target/classes/org/project/Main.class 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 index 6b037e0..20a2569 100644 Binary files a/Java-Knight/target/classes/org/project/entity/Entity.class and b/Java-Knight/target/classes/org/project/entity/Entity.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 index 217ff88..1329b1a 100644 Binary files a/Java-Knight/target/classes/org/project/entity/enemies/Enemy.class 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 index 68aa83f..b53b481 100644 Binary files a/Java-Knight/target/classes/org/project/entity/enemies/Goblin.class 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 index d9c773d..6aef9a7 100644 Binary files a/Java-Knight/target/classes/org/project/entity/enemies/Skeleton.class 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 index 1014067..ff6ec61 100644 Binary files a/Java-Knight/target/classes/org/project/entity/enemies/Vampire.class 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 index cd421c7..8be3c96 100644 Binary files a/Java-Knight/target/classes/org/project/entity/players/Assassin.class and b/Java-Knight/target/classes/org/project/entity/players/Assassin.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 index db16755..f849e6c 100644 Binary files a/Java-Knight/target/classes/org/project/entity/players/Knight.class and b/Java-Knight/target/classes/org/project/entity/players/Knight.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 index 65a669e..6deef4f 100644 Binary files a/Java-Knight/target/classes/org/project/entity/players/Player.class and b/Java-Knight/target/classes/org/project/entity/players/Player.class differ diff --git a/Java-Knight/target/classes/org/project/entity/players/Wizard.class b/Java-Knight/target/classes/org/project/entity/players/Wizard.class index b314421..283f23e 100644 Binary files a/Java-Knight/target/classes/org/project/entity/players/Wizard.class and b/Java-Knight/target/classes/org/project/entity/players/Wizard.class differ diff --git a/Java-Knight/target/classes/org/project/item/Item.class b/Java-Knight/target/classes/org/project/item/Item.class index 6158425..c1989ee 100644 Binary files a/Java-Knight/target/classes/org/project/item/Item.class and b/Java-Knight/target/classes/org/project/item/Item.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 index 767c4c1..55c4e58 100644 Binary files a/Java-Knight/target/classes/org/project/item/armors/Armor.class and b/Java-Knight/target/classes/org/project/item/armors/Armor.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 index 39374c7..183236b 100644 Binary files a/Java-Knight/target/classes/org/project/item/armors/KnightArmor.class and b/Java-Knight/target/classes/org/project/item/armors/KnightArmor.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 index 0a9f68e..b38a8c0 100644 Binary files a/Java-Knight/target/classes/org/project/item/weapons/Sword.class 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 index d205251..c780680 100644 Binary files a/Java-Knight/target/classes/org/project/item/weapons/Weapon.class 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 index eea2e0f..1b314d5 100644 Binary files a/Java-Knight/target/classes/org/project/location/Location.class and b/Java-Knight/target/classes/org/project/location/Location.class differ