From 0719cdd7e788fb648af750fda3fdf5868086371c Mon Sep 17 00:00:00 2001 From: Undercova Date: Sun, 7 Mar 2021 23:49:26 +0100 Subject: [PATCH] Changed CL range for Tatooine from 5 - 20 to 10 - 20 Removed Ancient Krayt Dragen and Grand Krayt Dragon from dynamic spawn list for Tatooine Added more spawner types Changed visual template for dynamic spawners (before circular / now green controller box) Increased dynamic spawner range to 150m (110m before) Decreased dynamic spawner chance to 5% Increased max observed NPCs for dynamic spawners to 20 --- serverdata/nge/spawn/dynamic/dynamic_spawns.sdb | 2 -- serverdata/nge/spawn/dynamic/terrain_levels.sdb | 2 +- .../support/npc/spawn/SimpleSpawnInfo.java | 2 +- .../resources/support/npc/spawn/SpawnerType.java | 16 +++++++++++++--- .../support/npc/spawn/DynamicSpawnService.java | 10 +++++----- 5 files changed, 20 insertions(+), 12 deletions(-) diff --git a/serverdata/nge/spawn/dynamic/dynamic_spawns.sdb b/serverdata/nge/spawn/dynamic/dynamic_spawns.sdb index af15b9152..1d91c470a 100644 --- a/serverdata/nge/spawn/dynamic/dynamic_spawns.sdb +++ b/serverdata/nge/spawn/dynamic/dynamic_spawns.sdb @@ -483,11 +483,9 @@ korga_scout endor_dulok_small1;endor_dulok_small2;endor_dulok_small3;endor_dulok krahbu lair_krahbu creature FALSE ATTACKABLE CORELLIA creature_krahbu creature_krahbu creature_krahbu creature_krahbu creature_krahbu krahbu_violent lair_krahbu;lair_krahbu_grassland creature FALSE ATTACKABLE CORELLIA creature_krahbu_violent creature_krahbu_domestic creature_krahbu creature_krahbu creature_krahbu krayt_dragon_adolescent lair_krayt_dragon;lair_krayt_dragon_wasteland;lair_krayt_dragon_desert creature TRUE 100 AGGRESSIVE TATOOINE creature_krayt_dragon_adolescent -krayt_dragon_ancient lair_krayt_dragon;lair_krayt_dragon_wasteland;lair_krayt_dragon_desert creature TRUE 100 AGGRESSIVE TATOOINE creature_krayt_dragon_ancient krayt_dragon_canyon lair_krayt_dragon;lair_krayt_dragon_wasteland;lair_krayt_dragon_desert creature TRUE 100 AGGRESSIVE TATOOINE creature_krayt_dragon_canyon krayt_dragon_canyon_giant lair_krayt_dragon;lair_krayt_dragon_wasteland;lair_krayt_dragon_desert creature TRUE 100 AGGRESSIVE TATOOINE creature_krayt_dragon_giant_canyon krayt_dragon_canyon_juvenile lair_krayt_dragon;lair_krayt_dragon_wasteland;lair_krayt_dragon_desert creature TRUE 100 AGGRESSIVE TATOOINE creature_krayt_dragon_juvenile_canyon -krayt_dragon_grand lair_krayt_dragon;lair_krayt_dragon_wasteland;lair_krayt_dragon_desert creature TRUE 100 AGGRESSIVE TATOOINE creature_krayt_dragon_grand kreetle lair_rocks_small creature FALSE ATTACKABLE TATOOINE creature_kreetle creature_kreetle_swarmling creature_kreetle kreetle_over lair_rocks_small creature FALSE ATTACKABLE TATOOINE creature_kreetle_over creature_kreetle_carrion creature_kreetle kreetle_over_death lair_rocks_small creature FALSE AGGRESSIVE TATOOINE creature_kreetle_death creature_kreetle_over creature_kreetle_carrion creature_kreetle diff --git a/serverdata/nge/spawn/dynamic/terrain_levels.sdb b/serverdata/nge/spawn/dynamic/terrain_levels.sdb index 07eba238a..e1a479d5d 100644 --- a/serverdata/nge/spawn/dynamic/terrain_levels.sdb +++ b/serverdata/nge/spawn/dynamic/terrain_levels.sdb @@ -1,6 +1,6 @@ terrain min_level max_level TEXT INTEGER INTEGER -TATOOINE 5 20 +TATOOINE 10 20 NABOO 20 40 CORELLIA 20 40 RORI 40 60 diff --git a/src/main/java/com/projectswg/holocore/resources/support/npc/spawn/SimpleSpawnInfo.java b/src/main/java/com/projectswg/holocore/resources/support/npc/spawn/SimpleSpawnInfo.java index 6ba54e324..b56082aa0 100644 --- a/src/main/java/com/projectswg/holocore/resources/support/npc/spawn/SimpleSpawnInfo.java +++ b/src/main/java/com/projectswg/holocore/resources/support/npc/spawn/SimpleSpawnInfo.java @@ -187,7 +187,7 @@ public class SimpleSpawnInfo implements SpawnInfo { private Builder() { info = new SimpleSpawnInfo(); - info.id = "simple"; + info.id = "SPAWNER"; info.behavior = AIBehavior.IDLE; info.mood = ""; info.spawnerFlag = NpcStaticSpawnLoader.SpawnerFlag.INVULNERABLE; diff --git a/src/main/java/com/projectswg/holocore/resources/support/npc/spawn/SpawnerType.java b/src/main/java/com/projectswg/holocore/resources/support/npc/spawn/SpawnerType.java index 11cbdbde9..864acedae 100644 --- a/src/main/java/com/projectswg/holocore/resources/support/npc/spawn/SpawnerType.java +++ b/src/main/java/com/projectswg/holocore/resources/support/npc/spawn/SpawnerType.java @@ -36,6 +36,18 @@ public enum SpawnerType { GCW_BANNER_ONPOLE("object/tangible/gcw/shared_flip_banner_onpole_spawner.iff"), QUEST("object/tangible/spawning/shared_quest_spawner.iff"), EGG("object/tangible/spawning/shared_spawn_egg.iff"), + WAYPOINT("object/path_waypoint/shared_path_waypoint.iff"), + WAYPOINT_AUTO_SPAWN("object/path_waypoint/shared_path_waypoint_auto_spawn.iff"), + WAYPOINT_CITY("object/path_waypoint/shared_path_waypoint_city.iff"), + WAYPOINT_DROID("object/path_waypoint/shared_path_waypoint_droid.iff"), + WAYPOINT_PATROL("object/path_waypoint/shared_path_waypoint_patrol.iff"), + DYNAMIC_REGION_CONTROLLER("object/building/shared_invisible_dynamic_region_controller.iff"), + HOLIDAY_CONTROLLER("object/building/shared_invisible_holiday_controller.iff"), + EVENT_CONTROLLER("object/building/shared_local_event_controller.iff"), + BUILDOUT("object/tangible/buildout/shared_buildout_placeholder.iff"), + BUILDOUT_RING("object/tangible/buildout/shared_buildout_placeholder_ring.iff"), + POI_BASE("object/tangible/poi/base/shared_poi_base.iff"), + INVISIBLE_OBJECT("object/tangible/theme_park/shared_invisible_object.iff"), GCW_CLONING("object/tangible/spawning/event/shared_gcw_cloning_sickness_droid_spawner.iff"), GCW_CITY("object/tangible/gcw/shared_gcw_city_spawner.iff"), MISSION_EASY("object/tangible/mission/shared_mission_informant_spawner_easy.iff"), @@ -54,9 +66,7 @@ public enum SpawnerType { OUT_SCIENTIST("object/tangible/spawning/event/shared_outbreak_dungeon_scientist_spawner.iff"), OUT_GAMMA("object/tangible/spawning/event/shared_outbreak_gamma_survivor_spawner.iff"), OUT_HIDDEN("object/tangible/spawning/event/shared_outbreak_hidden_content_spawner.iff"), - WOD_HERB("object/tangible/spawning/event/shared_wod_themepark_herb_spawner.iff"), - UNCHECKED("object/mobile/shared_bossk.iff"), - CHECKED("object/mobile/shared_boba_fett.iff"); + WOD_HERB("object/tangible/spawning/event/shared_wod_themepark_herb_spawner.iff"); private static final SpawnerType [] VALUES = values(); diff --git a/src/main/java/com/projectswg/holocore/services/support/npc/spawn/DynamicSpawnService.java b/src/main/java/com/projectswg/holocore/services/support/npc/spawn/DynamicSpawnService.java index 89d6de49d..01e9360f2 100644 --- a/src/main/java/com/projectswg/holocore/services/support/npc/spawn/DynamicSpawnService.java +++ b/src/main/java/com/projectswg/holocore/services/support/npc/spawn/DynamicSpawnService.java @@ -60,8 +60,8 @@ import java.util.concurrent.ThreadLocalRandom; public class DynamicSpawnService extends Service { - private static final int MAX_SPAWN_DISTANCE_TO_PLAYER = 110; // Spawner is created up to this amount of meters away from the player - private static final SpawnerType SPAWNER_TYPE = SpawnerType.RANDOM; // Important that this type is only used by dynamic spawns + private static final int MAX_SPAWN_DISTANCE_TO_PLAYER = 150; // Spawner is created up to this amount of meters away from the player + private static final SpawnerType SPAWNER_TYPE = SpawnerType.DYNAMIC_REGION_CONTROLLER; // Important that this type is only used by dynamic spawns private final DynamicSpawnLoader dynamicSpawnLoader; private final NoSpawnZoneLoader noSpawnZoneLoader; @@ -73,8 +73,8 @@ public class DynamicSpawnService extends Service { dynamicSpawnLoader = ServerData.INSTANCE.getDynamicSpawns(); noSpawnZoneLoader = ServerData.INSTANCE.getNoSpawnZones(); terrainLevelLoader = ServerData.INSTANCE.getTerrainLevels(); - npcSpawnChance = PswgDatabase.INSTANCE.getConfig().getLong(this, "npcSpawnChance", 15); - maxObservedNpcs = PswgDatabase.INSTANCE.getConfig().getLong(this, "maxObservedNpcs", 8); + npcSpawnChance = PswgDatabase.INSTANCE.getConfig().getLong(this, "npcSpawnChance", 5); + maxObservedNpcs = PswgDatabase.INSTANCE.getConfig().getLong(this, "maxObservedNpcs", 20); } @IntentHandler @@ -202,7 +202,7 @@ public class DynamicSpawnService extends Service { return; } - SimpleSpawnInfo simpleSpawnInfo = SimpleSpawnInfo.builder().withNpcId(npcId).withDifficulty(difficulty).withSpawnerType(SpawnerType.RANDOM) + SimpleSpawnInfo simpleSpawnInfo = SimpleSpawnInfo.builder().withNpcId(npcId).withDifficulty(difficulty).withSpawnerType(SpawnerType.DYNAMIC_REGION_CONTROLLER) .withMinLevel(minLevel).withMaxLevel(maxLevel).withSpawnerFlag(spawnerFlag).withBehavior(AIBehavior.LOITER).withLocation(location) .build();