diff --git a/Java-Knight/src/main/java/org/project/location/Castle.java b/Java-Knight/src/main/java/org/project/location/Castle.java new file mode 100644 index 0000000..2e73ecf --- /dev/null +++ b/Java-Knight/src/main/java/org/project/location/Castle.java @@ -0,0 +1,15 @@ +package org.project.location; + +import org.project.entity.enemies.Dragon; +import org.project.entity.enemies.Enemy; + +public class Castle extends Location { + public Castle() { + super("Castle"); + } + + @Override + protected Enemy GetEnemy() { + return new Dragon(); + } +} diff --git a/Java-Knight/src/main/java/org/project/location/DarkCaves.java b/Java-Knight/src/main/java/org/project/location/DarkCaves.java new file mode 100644 index 0000000..98b8427 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/location/DarkCaves.java @@ -0,0 +1,15 @@ +package org.project.location; + +import org.project.entity.enemies.Enemy; +import org.project.entity.enemies.Vampire; + +public class DarkCaves extends Location { + public DarkCaves() { + super("Dark Caves"); + } + + @Override + protected Enemy GetEnemy() { + return new Vampire(); + } +} diff --git a/Java-Knight/src/main/java/org/project/location/GraveYard.java b/Java-Knight/src/main/java/org/project/location/GraveYard.java new file mode 100644 index 0000000..d75345b --- /dev/null +++ b/Java-Knight/src/main/java/org/project/location/GraveYard.java @@ -0,0 +1,15 @@ +package org.project.location; + +import org.project.entity.enemies.Enemy; +import org.project.entity.enemies.Skeleton; + +public class GraveYard extends Location { + public GraveYard() { + super("Grave Yard"); + } + + @Override + protected Enemy GetEnemy() { + return new Skeleton(); + } +} diff --git a/Java-Knight/src/main/java/org/project/location/Jungle.java b/Java-Knight/src/main/java/org/project/location/Jungle.java new file mode 100644 index 0000000..9d095d3 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/location/Jungle.java @@ -0,0 +1,15 @@ +package org.project.location; + +import org.project.entity.enemies.Enemy; +import org.project.entity.enemies.Goblin; + +public class Jungle extends Location { + public Jungle() { + super("Jungle"); + } + + @Override + protected Enemy GetEnemy() { + return new Goblin(); + } +} 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..a695153 100644 --- a/Java-Knight/src/main/java/org/project/location/Location.java +++ b/Java-Knight/src/main/java/org/project/location/Location.java @@ -3,26 +3,30 @@ package org.project.location; import org.project.entity.enemies.Enemy; import java.util.ArrayList; +import java.util.Random; -public class Location { - private String name; +public abstract class Location { + private final String name; + public Enemy enemy; - private ArrayList enemies; - - public Location(ArrayList locations, ArrayList enemies) { - this.locations = locations; - this.enemies = enemies; + public Location(String name) { + this.name = name; + this.enemy = GetEnemy(); } - public String getName() { - return name; - } + public String getName() { return name; } - public ArrayList getLocations() { - return locations; - } + protected abstract Enemy GetEnemy(); - public ArrayList getEnemies() { - return enemies; + public static Location RandomLocation() { + Random random = new Random(); + int chance = random.nextInt(3); + + return switch (chance) { + case 0 -> new GraveYard(); + case 1 -> new DarkCaves(); + case 2 -> new Jungle(); + default -> null; + }; } }