Skip to content

Commit

Permalink
Merge pull request #1365 from madsboddum/1361
Browse files Browse the repository at this point in the history
Fixed respawning too many NPCs
  • Loading branch information
Josh-Larson committed Sep 23, 2023
2 parents adbc82c + 663d481 commit 290a030
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -61,19 +61,19 @@

public class NPCCreator {

public static Collection<AIObject> createNPCs(Spawner spawner) {
public static Collection<AIObject> createAllNPCs(Spawner spawner) {
Arguments.validate(spawner.getMinLevel() <= spawner.getMaxLevel(), "min level must be less than max level");
int amount = spawner.getAmount();
Collection<AIObject> npcs = new ArrayList<>();

for (int i = 0; i < amount; i++) {
npcs.add(createNPC(spawner));
npcs.add(createSingleNpc(spawner));
}

return npcs;
}

private static AIObject createNPC(Spawner spawner) {
public static AIObject createSingleNpc(Spawner spawner) {
int combatLevel = ThreadLocalRandom.current().nextInt(spawner.getMinLevel(), spawner.getMaxLevel()+1);
AIObject object = ObjectCreator.createObjectFromTemplate(spawner.getRandomIffTemplate(), AIObject.class);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ class DestroyMissionTerminal(private val missionsToGenerate: Int, private val de
.withBehavior(AIBehavior.LOITER)
.build()

NPCCreator.createNPCs(Spawner(spawnInfo, egg))
NPCCreator.createAllNPCs(Spawner(spawnInfo, egg))
}

private fun createLair(missionObject: MissionObject): TangibleObject {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ class SpawnerService : Service() {

if (respawnDelay > 0) {
executor.execute((respawnDelay * 1000).toLong()) {
NPCCreator.createNPCs(spawner)
NPCCreator.createSingleNpc(spawner)
}
} else {
DestroyObjectIntent.broadcast(spawner.egg)
Expand Down Expand Up @@ -202,7 +202,7 @@ class SpawnerService : Service() {
val spawner = Spawner(spawn, egg)
egg.setServerAttribute(ServerAttribute.EGG_SPAWNER, spawner)

NPCCreator.createNPCs(spawner)
NPCCreator.createAllNPCs(spawner)

val patrolRoute = spawner.patrolRoute
if (patrolRoute != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ class NpcDefaultAttackTest : TestRunnerSynchronousIntents() {
.withLocation(inFrontOfMosEisleyStarport)
.build()

return NPCCreator.createNPCs(Spawner(spawnInfo, egg)).first()
return NPCCreator.createAllNPCs(Spawner(spawnInfo, egg)).first()
}

}

0 comments on commit 290a030

Please sign in to comment.