Files
HW-04-JAVA-KNIGHT/Java-Knight/src/main/java/org/project/location/LocationManager.java
T
2026-07-17 03:11:46 +04:30

66 lines
2.0 KiB
Java

package org.project.location;
import org.project.entity.enemies.*;
import java.util.ArrayList;
import java.util.Random;
public class LocationManager {
private ArrayList<Location> locations;
private Location currentLocation;
private Random random;
public LocationManager() {
locations = new ArrayList<>();
random = new Random();
createLocations();
}
private void createLocations() {
//Creating different game locations
Location forest = new Location("Dark Forest", "A mysterious forest filled with dangerous creatures");
forest.addEnemy(new Goblin());
forest.addEnemy(new Skeleton());
Location crypt = new Location("Ancient Crypt", "An old crypt where skeletons roam");
crypt.addEnemy(new Skeleton());
crypt.addEnemy(new Vampire());
Location castleGate = new Location("Castle Gate", "The entrance to the Dragon's castle");
castleGate.addEnemy(new Goblin());
castleGate.addEnemy(new Vampire());
locations.add(forest);
locations.add(crypt);
locations.add(castleGate);
}
public void moveToRandomLocation() {
int index = random.nextInt(locations.size());
currentLocation = locations.get(index);
currentLocation.spawnRandomEnemy();
}
public void moveToLocation(int index) {
if (index >= 0 && index < locations.size()) {
currentLocation = locations.get(index);
currentLocation.spawnRandomEnemy();
}
}
public Location getCurrentLocation() {
return currentLocation;
}
public void displayLocations() {
NarrativeConsole.printInfo("\n=== Available Locations ===");
for (int i = 0; i < locations.size(); i++) {
NarrativeConsole.printInfo((i + 1) + ". " + locations.get(i).getName());
NarrativeConsole.printInfo(" " + locations.get(i).getDescription());
}
}
public ArrayList<Location> getLocations() {
return locations;
}
}