From 549c132743d550f55e4096515ef3e28453e9ca54 Mon Sep 17 00:00:00 2001 From: Zoey76 <zoey_76@msn.com> Date: Sun, 15 Mar 2015 16:11:34 -0300 Subject: [PATCH] Datapack part for https://github.com/L2J/L2J_Server/commit/38a143a14b9298c6fba0065cd025affed64d3166 --- L2J_DataPack/.classpath | 3 +- .../data/scripts/ai/fantasy_isle/MC_Show.java | 224 +++--- .../scripts/ai/group_template/BeastFarm.java | 77 +- .../ai/group_template/FeedableBeasts.java | 157 ++-- .../ai/group_template/PolymorphingAngel.java | 4 +- .../ai/group_template/RandomSpawn.java | 4 +- .../ai/individual/DarkWaterDragon.java | 5 +- .../data/scripts/ai/individual/Orfen.java | 26 +- .../data/scripts/ai/individual/QueenAnt.java | 4 +- .../scripts/ai/individual/SinWardens.java | 4 +- .../ai/npc/ForgeOfTheGods/TarBeetleSpawn.java | 5 +- .../NewbieTravelToken/NewbieTravelToken.java | 7 +- .../custom/EchoCrystals/EchoCrystals.java | 8 +- .../custom/Validators/SubClassSkills.java | 103 +-- .../data/scripts/gracia/AI/EnergySeeds.java | 675 +++++++++--------- .../SeedOfAnnihilation.java | 18 +- .../admincommandhandlers/AdminAdmin.java | 4 +- .../admincommandhandlers/AdminShowQuests.java | 6 +- .../handlers/telnethandlers/DebugHandler.java | 39 +- .../scripts/hellbound/AI/DemonPrince.java | 4 +- .../game/data/scripts/hellbound/AI/Ranku.java | 4 +- .../AI/Zones/AnomicFoundry/AnomicFoundry.java | 4 +- .../AI/Zones/BaseTower/BaseTower.java | 4 +- .../AI/Zones/TowerOfNaia/TowerOfNaia.java | 12 +- .../AI/Zones/TullyWorkshop/TullyWorkshop.java | 18 +- .../CrystalCaverns/CrystalCaverns.java | 60 +- .../DarkCloudMansion/DarkCloudMansion.java | 11 +- .../DisciplesNecropolisPast.java | 9 +- .../FinalEmperialTomb/FinalEmperialTomb.java | 31 +- 29 files changed, 727 insertions(+), 803 deletions(-) diff --git a/L2J_DataPack/.classpath b/L2J_DataPack/.classpath index 3be5a533d5..cd1f3e2aa6 100644 --- a/L2J_DataPack/.classpath +++ b/L2J_DataPack/.classpath @@ -3,7 +3,6 @@ <classpathentry including="**/*.java" kind="src" path="dist/game/data/scripts" /> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8" /> <classpathentry combineaccessrules="false" kind="src" path="/L2J_Server" /> - <classpathentry kind="lib" path="/L2J_Server/dist/libs/javolution-5.5.1.jar" /> <classpathentry kind="lib" path="/L2J_Server/dist/libs/mmocore.jar" /> <classpathentry kind="output" path="bin" /> -</classpath> +</classpath> \ No newline at end of file diff --git a/L2J_DataPack/dist/game/data/scripts/ai/fantasy_isle/MC_Show.java b/L2J_DataPack/dist/game/data/scripts/ai/fantasy_isle/MC_Show.java index cc10764e99..1c08c23ea6 100644 --- a/L2J_DataPack/dist/game/data/scripts/ai/fantasy_isle/MC_Show.java +++ b/L2J_DataPack/dist/game/data/scripts/ai/fantasy_isle/MC_Show.java @@ -19,9 +19,9 @@ package ai.fantasy_isle; import java.text.SimpleDateFormat; +import java.util.HashMap; import java.util.Map; -import javolution.util.FastMap; import ai.npc.AbstractNpcAI; import com.l2jserver.Config; @@ -166,8 +166,8 @@ public class MC_Show extends AbstractNpcAI } } - private static Map<String, ShoutInfo> talks = new FastMap<>(); - private static Map<String, WalkInfo> walks = new FastMap<>(); + private static final Map<String, ShoutInfo> TALKS = new HashMap<>(); + private static final Map<String, WalkInfo> WALKS = new HashMap<>(); private MC_Show() { @@ -180,112 +180,112 @@ public class MC_Show extends AbstractNpcAI private void load() { // TODO put this stuff in Routes.xml - talks.put("1", new ShoutInfo(MESSAGES[1], "2", 1000)); - talks.put("2", new ShoutInfo(MESSAGES[2], "3", 6000)); - talks.put("3", new ShoutInfo(MESSAGES[3], "4", 4000)); - talks.put("4", new ShoutInfo(MESSAGES[4], "5", 5000)); - talks.put("5", new ShoutInfo(MESSAGES[5], "6", 3000)); - talks.put("8", new ShoutInfo(MESSAGES[9], "9", 5000)); - talks.put("9", new ShoutInfo(MESSAGES[10], "10", 5000)); - talks.put("12", new ShoutInfo(MESSAGES[12], "13", 5000)); - talks.put("13", new ShoutInfo(MESSAGES[13], "14", 5000)); - talks.put("15", new ShoutInfo(MESSAGES[14], "16", 5000)); - talks.put("16", new ShoutInfo(MESSAGES[15], "17", 5000)); - talks.put("18", new ShoutInfo(MESSAGES[17], "19", 5000)); - talks.put("19", new ShoutInfo(MESSAGES[18], "20", 5000)); - talks.put("21", new ShoutInfo(MESSAGES[19], "22", 5000)); - talks.put("22", new ShoutInfo(MESSAGES[20], "23", 400)); - talks.put("25", new ShoutInfo(MESSAGES[21], "26", 5000)); - talks.put("26", new ShoutInfo(MESSAGES[22], "27", 5400)); + TALKS.put("1", new ShoutInfo(MESSAGES[1], "2", 1000)); + TALKS.put("2", new ShoutInfo(MESSAGES[2], "3", 6000)); + TALKS.put("3", new ShoutInfo(MESSAGES[3], "4", 4000)); + TALKS.put("4", new ShoutInfo(MESSAGES[4], "5", 5000)); + TALKS.put("5", new ShoutInfo(MESSAGES[5], "6", 3000)); + TALKS.put("8", new ShoutInfo(MESSAGES[9], "9", 5000)); + TALKS.put("9", new ShoutInfo(MESSAGES[10], "10", 5000)); + TALKS.put("12", new ShoutInfo(MESSAGES[12], "13", 5000)); + TALKS.put("13", new ShoutInfo(MESSAGES[13], "14", 5000)); + TALKS.put("15", new ShoutInfo(MESSAGES[14], "16", 5000)); + TALKS.put("16", new ShoutInfo(MESSAGES[15], "17", 5000)); + TALKS.put("18", new ShoutInfo(MESSAGES[17], "19", 5000)); + TALKS.put("19", new ShoutInfo(MESSAGES[18], "20", 5000)); + TALKS.put("21", new ShoutInfo(MESSAGES[19], "22", 5000)); + TALKS.put("22", new ShoutInfo(MESSAGES[20], "23", 400)); + TALKS.put("25", new ShoutInfo(MESSAGES[21], "26", 5000)); + TALKS.put("26", new ShoutInfo(MESSAGES[22], "27", 5400)); - walks.put("npc1_1", new WalkInfo(new Location(-56546, -56384, -2008, 0), "npc1_2", 1200)); - walks.put("npc1_2", new WalkInfo(new Location(-56597, -56384, -2008, 0), "npc1_3", 1200)); - walks.put("npc1_3", new WalkInfo(new Location(-56596, -56428, -2008, 0), "npc1_4", 1200)); - walks.put("npc1_4", new WalkInfo(new Location(-56593, -56474, -2008, 0), "npc1_5", 1000)); - walks.put("npc1_5", new WalkInfo(new Location(-56542, -56474, -2008, 0), "npc1_6", 1000)); - walks.put("npc1_6", new WalkInfo(new Location(-56493, -56473, -2008, 0), "npc1_7", 2000)); - walks.put("npc1_7", new WalkInfo(new Location(-56495, -56425, -2008, 0), "npc1_1", 4000)); - walks.put("npc2_1", new WalkInfo(new Location(-56550, -56291, -2008, 0), "npc2_2", 1200)); - walks.put("npc2_2", new WalkInfo(new Location(-56601, -56293, -2008, 0), "npc2_3", 1200)); - walks.put("npc2_3", new WalkInfo(new Location(-56603, -56247, -2008, 0), "npc2_4", 1200)); - walks.put("npc2_4", new WalkInfo(new Location(-56605, -56203, -2008, 0), "npc2_5", 1000)); - walks.put("npc2_5", new WalkInfo(new Location(-56553, -56202, -2008, 0), "npc2_6", 1100)); - walks.put("npc2_6", new WalkInfo(new Location(-56504, -56200, -2008, 0), "npc2_7", 2000)); - walks.put("npc2_7", new WalkInfo(new Location(-56503, -56243, -2008, 0), "npc2_1", 4000)); - walks.put("npc3_1", new WalkInfo(new Location(-56500, -56290, -2008, 0), "npc3_2", 1200)); - walks.put("npc3_2", new WalkInfo(new Location(-56551, -56313, -2008, 0), "npc3_3", 1200)); - walks.put("npc3_3", new WalkInfo(new Location(-56601, -56293, -2008, 0), "npc3_4", 1200)); - walks.put("npc3_4", new WalkInfo(new Location(-56651, -56294, -2008, 0), "npc3_5", 1200)); - walks.put("npc3_5", new WalkInfo(new Location(-56653, -56250, -2008, 0), "npc3_6", 1200)); - walks.put("npc3_6", new WalkInfo(new Location(-56654, -56204, -2008, 0), "npc3_7", 1200)); - walks.put("npc3_7", new WalkInfo(new Location(-56605, -56203, -2008, 0), "npc3_8", 1200)); - walks.put("npc3_8", new WalkInfo(new Location(-56554, -56202, -2008, 0), "npc3_9", 1200)); - walks.put("npc3_9", new WalkInfo(new Location(-56503, -56200, -2008, 0), "npc3_10", 1200)); - walks.put("npc3_10", new WalkInfo(new Location(-56502, -56244, -2008, 0), "npc3_1", 900)); - walks.put("npc4_1", new WalkInfo(new Location(-56495, -56381, -2008, 0), "npc4_2", 1200)); - walks.put("npc4_2", new WalkInfo(new Location(-56548, -56383, -2008, 0), "npc4_3", 1200)); - walks.put("npc4_3", new WalkInfo(new Location(-56597, -56383, -2008, 0), "npc4_4", 1200)); - walks.put("npc4_4", new WalkInfo(new Location(-56643, -56385, -2008, 0), "npc4_5", 1200)); - walks.put("npc4_5", new WalkInfo(new Location(-56639, -56436, -2008, 0), "npc4_6", 1200)); - walks.put("npc4_6", new WalkInfo(new Location(-56639, -56473, -2008, 0), "npc4_7", 1200)); - walks.put("npc4_7", new WalkInfo(new Location(-56589, -56473, -2008, 0), "npc4_8", 1200)); - walks.put("npc4_8", new WalkInfo(new Location(-56541, -56473, -2008, 0), "npc4_9", 1200)); - walks.put("npc4_9", new WalkInfo(new Location(-56496, -56473, -2008, 0), "npc4_10", 1200)); - walks.put("npc4_10", new WalkInfo(new Location(-56496, -56429, -2008, 0), "npc4_1", 900)); - walks.put("npc5_1", new WalkInfo(new Location(-56549, -56335, -2008, 0), "npc5_2", 1000)); - walks.put("npc5_2", new WalkInfo(new Location(-56599, -56337, -2008, 0), "npc5_3", 2000)); - walks.put("npc5_3", new WalkInfo(new Location(-56649, -56341, -2008, 0), "npc5_4", 26000)); - walks.put("npc5_4", new WalkInfo(new Location(-56600, -56341, -2008, 0), "npc5_5", 1000)); - walks.put("npc5_5", new WalkInfo(new Location(-56553, -56341, -2008, 0), "npc5_6", 1000)); - walks.put("npc5_6", new WalkInfo(new Location(-56508, -56331, -2008, 0), "npc5_2", 8000)); - walks.put("npc6_1", new WalkInfo(new Location(-56595, -56428, -2008, 0), "npc6_2", 1000)); - walks.put("npc6_2", new WalkInfo(new Location(-56596, -56383, -2008, 0), "npc6_3", 1000)); - walks.put("npc6_3", new WalkInfo(new Location(-56648, -56384, -2008, 0), "npc6_4", 1000)); - walks.put("npc6_4", new WalkInfo(new Location(-56645, -56429, -2008, 0), "npc6_5", 1000)); - walks.put("npc6_5", new WalkInfo(new Location(-56644, -56475, -2008, 0), "npc6_6", 1000)); - walks.put("npc6_6", new WalkInfo(new Location(-56595, -56473, -2008, 0), "npc6_7", 1000)); - walks.put("npc6_7", new WalkInfo(new Location(-56542, -56473, -2008, 0), "npc6_8", 1000)); - walks.put("npc6_8", new WalkInfo(new Location(-56492, -56472, -2008, 0), "npc6_9", 1200)); - walks.put("npc6_9", new WalkInfo(new Location(-56495, -56426, -2008, 0), "npc6_10", 2000)); - walks.put("npc6_10", new WalkInfo(new Location(-56540, -56426, -2008, 0), "npc6_1", 3000)); - walks.put("npc7_1", new WalkInfo(new Location(-56603, -56249, -2008, 0), "npc7_2", 1000)); - walks.put("npc7_2", new WalkInfo(new Location(-56601, -56294, -2008, 0), "npc7_3", 1000)); - walks.put("npc7_3", new WalkInfo(new Location(-56651, -56295, -2008, 0), "npc7_4", 1000)); - walks.put("npc7_4", new WalkInfo(new Location(-56653, -56248, -2008, 0), "npc7_5", 1000)); - walks.put("npc7_5", new WalkInfo(new Location(-56605, -56203, -2008, 0), "npc7_6", 1000)); - walks.put("npc7_6", new WalkInfo(new Location(-56554, -56202, -2008, 0), "npc7_7", 1000)); - walks.put("npc7_7", new WalkInfo(new Location(-56504, -56201, -2008, 0), "npc7_8", 1000)); - walks.put("npc7_8", new WalkInfo(new Location(-56502, -56247, -2008, 0), "npc7_9", 1200)); - walks.put("npc7_9", new WalkInfo(new Location(-56549, -56248, -2008, 0), "npc7_10", 2000)); - walks.put("npc7_10", new WalkInfo(new Location(-56549, -56248, -2008, 0), "npc7_1", 3000)); - walks.put("npc8_1", new WalkInfo(new Location(-56493, -56426, -2008, 0), "npc8_2", 1000)); - walks.put("npc8_2", new WalkInfo(new Location(-56497, -56381, -2008, 0), "npc8_3", 1200)); - walks.put("npc8_3", new WalkInfo(new Location(-56544, -56381, -2008, 0), "npc8_4", 1200)); - walks.put("npc8_4", new WalkInfo(new Location(-56596, -56383, -2008, 0), "npc8_5", 1200)); - walks.put("npc8_5", new WalkInfo(new Location(-56594, -56428, -2008, 0), "npc8_6", 900)); - walks.put("npc8_6", new WalkInfo(new Location(-56645, -56429, -2008, 0), "npc8_7", 1200)); - walks.put("npc8_7", new WalkInfo(new Location(-56647, -56384, -2008, 0), "npc8_8", 1200)); - walks.put("npc8_8", new WalkInfo(new Location(-56649, -56362, -2008, 0), "npc8_9", 9200)); - walks.put("npc8_9", new WalkInfo(new Location(-56654, -56429, -2008, 0), "npc8_10", 1200)); - walks.put("npc8_10", new WalkInfo(new Location(-56644, -56474, -2008, 0), "npc8_11", 900)); - walks.put("npc8_11", new WalkInfo(new Location(-56593, -56473, -2008, 0), "npc8_12", 1100)); - walks.put("npc8_12", new WalkInfo(new Location(-56543, -56472, -2008, 0), "npc8_13", 1200)); - walks.put("npc8_13", new WalkInfo(new Location(-56491, -56471, -2008, 0), "npc8_1", 1200)); - walks.put("npc9_1", new WalkInfo(new Location(-56505, -56246, -2008, 0), "npc9_2", 1000)); - walks.put("npc9_2", new WalkInfo(new Location(-56504, -56291, -2008, 0), "npc9_3", 1200)); - walks.put("npc9_3", new WalkInfo(new Location(-56550, -56291, -2008, 0), "npc9_4", 1200)); - walks.put("npc9_4", new WalkInfo(new Location(-56600, -56292, -2008, 0), "npc9_5", 1200)); - walks.put("npc9_5", new WalkInfo(new Location(-56603, -56248, -2008, 0), "npc9_6", 900)); - walks.put("npc9_6", new WalkInfo(new Location(-56653, -56249, -2008, 0), "npc9_7", 1200)); - walks.put("npc9_7", new WalkInfo(new Location(-56651, -56294, -2008, 0), "npc9_8", 1200)); - walks.put("npc9_8", new WalkInfo(new Location(-56650, -56316, -2008, 0), "npc9_9", 9200)); - walks.put("npc9_9", new WalkInfo(new Location(-56660, -56250, -2008, 0), "npc9_10", 1200)); - walks.put("npc9_10", new WalkInfo(new Location(-56656, -56205, -2008, 0), "npc9_11", 900)); - walks.put("npc9_11", new WalkInfo(new Location(-56606, -56204, -2008, 0), "npc9_12", 1100)); - walks.put("npc9_12", new WalkInfo(new Location(-56554, -56203, -2008, 0), "npc9_13", 1200)); - walks.put("npc9_13", new WalkInfo(new Location(-56506, -56203, -2008, 0), "npc9_1", 1200)); - walks.put("24", new WalkInfo(new Location(-56730, -56340, -2008, 0), "25", 1800)); - walks.put("27", new WalkInfo(new Location(-56702, -56340, -2008, 0), "29", 1800)); + WALKS.put("npc1_1", new WalkInfo(new Location(-56546, -56384, -2008, 0), "npc1_2", 1200)); + WALKS.put("npc1_2", new WalkInfo(new Location(-56597, -56384, -2008, 0), "npc1_3", 1200)); + WALKS.put("npc1_3", new WalkInfo(new Location(-56596, -56428, -2008, 0), "npc1_4", 1200)); + WALKS.put("npc1_4", new WalkInfo(new Location(-56593, -56474, -2008, 0), "npc1_5", 1000)); + WALKS.put("npc1_5", new WalkInfo(new Location(-56542, -56474, -2008, 0), "npc1_6", 1000)); + WALKS.put("npc1_6", new WalkInfo(new Location(-56493, -56473, -2008, 0), "npc1_7", 2000)); + WALKS.put("npc1_7", new WalkInfo(new Location(-56495, -56425, -2008, 0), "npc1_1", 4000)); + WALKS.put("npc2_1", new WalkInfo(new Location(-56550, -56291, -2008, 0), "npc2_2", 1200)); + WALKS.put("npc2_2", new WalkInfo(new Location(-56601, -56293, -2008, 0), "npc2_3", 1200)); + WALKS.put("npc2_3", new WalkInfo(new Location(-56603, -56247, -2008, 0), "npc2_4", 1200)); + WALKS.put("npc2_4", new WalkInfo(new Location(-56605, -56203, -2008, 0), "npc2_5", 1000)); + WALKS.put("npc2_5", new WalkInfo(new Location(-56553, -56202, -2008, 0), "npc2_6", 1100)); + WALKS.put("npc2_6", new WalkInfo(new Location(-56504, -56200, -2008, 0), "npc2_7", 2000)); + WALKS.put("npc2_7", new WalkInfo(new Location(-56503, -56243, -2008, 0), "npc2_1", 4000)); + WALKS.put("npc3_1", new WalkInfo(new Location(-56500, -56290, -2008, 0), "npc3_2", 1200)); + WALKS.put("npc3_2", new WalkInfo(new Location(-56551, -56313, -2008, 0), "npc3_3", 1200)); + WALKS.put("npc3_3", new WalkInfo(new Location(-56601, -56293, -2008, 0), "npc3_4", 1200)); + WALKS.put("npc3_4", new WalkInfo(new Location(-56651, -56294, -2008, 0), "npc3_5", 1200)); + WALKS.put("npc3_5", new WalkInfo(new Location(-56653, -56250, -2008, 0), "npc3_6", 1200)); + WALKS.put("npc3_6", new WalkInfo(new Location(-56654, -56204, -2008, 0), "npc3_7", 1200)); + WALKS.put("npc3_7", new WalkInfo(new Location(-56605, -56203, -2008, 0), "npc3_8", 1200)); + WALKS.put("npc3_8", new WalkInfo(new Location(-56554, -56202, -2008, 0), "npc3_9", 1200)); + WALKS.put("npc3_9", new WalkInfo(new Location(-56503, -56200, -2008, 0), "npc3_10", 1200)); + WALKS.put("npc3_10", new WalkInfo(new Location(-56502, -56244, -2008, 0), "npc3_1", 900)); + WALKS.put("npc4_1", new WalkInfo(new Location(-56495, -56381, -2008, 0), "npc4_2", 1200)); + WALKS.put("npc4_2", new WalkInfo(new Location(-56548, -56383, -2008, 0), "npc4_3", 1200)); + WALKS.put("npc4_3", new WalkInfo(new Location(-56597, -56383, -2008, 0), "npc4_4", 1200)); + WALKS.put("npc4_4", new WalkInfo(new Location(-56643, -56385, -2008, 0), "npc4_5", 1200)); + WALKS.put("npc4_5", new WalkInfo(new Location(-56639, -56436, -2008, 0), "npc4_6", 1200)); + WALKS.put("npc4_6", new WalkInfo(new Location(-56639, -56473, -2008, 0), "npc4_7", 1200)); + WALKS.put("npc4_7", new WalkInfo(new Location(-56589, -56473, -2008, 0), "npc4_8", 1200)); + WALKS.put("npc4_8", new WalkInfo(new Location(-56541, -56473, -2008, 0), "npc4_9", 1200)); + WALKS.put("npc4_9", new WalkInfo(new Location(-56496, -56473, -2008, 0), "npc4_10", 1200)); + WALKS.put("npc4_10", new WalkInfo(new Location(-56496, -56429, -2008, 0), "npc4_1", 900)); + WALKS.put("npc5_1", new WalkInfo(new Location(-56549, -56335, -2008, 0), "npc5_2", 1000)); + WALKS.put("npc5_2", new WalkInfo(new Location(-56599, -56337, -2008, 0), "npc5_3", 2000)); + WALKS.put("npc5_3", new WalkInfo(new Location(-56649, -56341, -2008, 0), "npc5_4", 26000)); + WALKS.put("npc5_4", new WalkInfo(new Location(-56600, -56341, -2008, 0), "npc5_5", 1000)); + WALKS.put("npc5_5", new WalkInfo(new Location(-56553, -56341, -2008, 0), "npc5_6", 1000)); + WALKS.put("npc5_6", new WalkInfo(new Location(-56508, -56331, -2008, 0), "npc5_2", 8000)); + WALKS.put("npc6_1", new WalkInfo(new Location(-56595, -56428, -2008, 0), "npc6_2", 1000)); + WALKS.put("npc6_2", new WalkInfo(new Location(-56596, -56383, -2008, 0), "npc6_3", 1000)); + WALKS.put("npc6_3", new WalkInfo(new Location(-56648, -56384, -2008, 0), "npc6_4", 1000)); + WALKS.put("npc6_4", new WalkInfo(new Location(-56645, -56429, -2008, 0), "npc6_5", 1000)); + WALKS.put("npc6_5", new WalkInfo(new Location(-56644, -56475, -2008, 0), "npc6_6", 1000)); + WALKS.put("npc6_6", new WalkInfo(new Location(-56595, -56473, -2008, 0), "npc6_7", 1000)); + WALKS.put("npc6_7", new WalkInfo(new Location(-56542, -56473, -2008, 0), "npc6_8", 1000)); + WALKS.put("npc6_8", new WalkInfo(new Location(-56492, -56472, -2008, 0), "npc6_9", 1200)); + WALKS.put("npc6_9", new WalkInfo(new Location(-56495, -56426, -2008, 0), "npc6_10", 2000)); + WALKS.put("npc6_10", new WalkInfo(new Location(-56540, -56426, -2008, 0), "npc6_1", 3000)); + WALKS.put("npc7_1", new WalkInfo(new Location(-56603, -56249, -2008, 0), "npc7_2", 1000)); + WALKS.put("npc7_2", new WalkInfo(new Location(-56601, -56294, -2008, 0), "npc7_3", 1000)); + WALKS.put("npc7_3", new WalkInfo(new Location(-56651, -56295, -2008, 0), "npc7_4", 1000)); + WALKS.put("npc7_4", new WalkInfo(new Location(-56653, -56248, -2008, 0), "npc7_5", 1000)); + WALKS.put("npc7_5", new WalkInfo(new Location(-56605, -56203, -2008, 0), "npc7_6", 1000)); + WALKS.put("npc7_6", new WalkInfo(new Location(-56554, -56202, -2008, 0), "npc7_7", 1000)); + WALKS.put("npc7_7", new WalkInfo(new Location(-56504, -56201, -2008, 0), "npc7_8", 1000)); + WALKS.put("npc7_8", new WalkInfo(new Location(-56502, -56247, -2008, 0), "npc7_9", 1200)); + WALKS.put("npc7_9", new WalkInfo(new Location(-56549, -56248, -2008, 0), "npc7_10", 2000)); + WALKS.put("npc7_10", new WalkInfo(new Location(-56549, -56248, -2008, 0), "npc7_1", 3000)); + WALKS.put("npc8_1", new WalkInfo(new Location(-56493, -56426, -2008, 0), "npc8_2", 1000)); + WALKS.put("npc8_2", new WalkInfo(new Location(-56497, -56381, -2008, 0), "npc8_3", 1200)); + WALKS.put("npc8_3", new WalkInfo(new Location(-56544, -56381, -2008, 0), "npc8_4", 1200)); + WALKS.put("npc8_4", new WalkInfo(new Location(-56596, -56383, -2008, 0), "npc8_5", 1200)); + WALKS.put("npc8_5", new WalkInfo(new Location(-56594, -56428, -2008, 0), "npc8_6", 900)); + WALKS.put("npc8_6", new WalkInfo(new Location(-56645, -56429, -2008, 0), "npc8_7", 1200)); + WALKS.put("npc8_7", new WalkInfo(new Location(-56647, -56384, -2008, 0), "npc8_8", 1200)); + WALKS.put("npc8_8", new WalkInfo(new Location(-56649, -56362, -2008, 0), "npc8_9", 9200)); + WALKS.put("npc8_9", new WalkInfo(new Location(-56654, -56429, -2008, 0), "npc8_10", 1200)); + WALKS.put("npc8_10", new WalkInfo(new Location(-56644, -56474, -2008, 0), "npc8_11", 900)); + WALKS.put("npc8_11", new WalkInfo(new Location(-56593, -56473, -2008, 0), "npc8_12", 1100)); + WALKS.put("npc8_12", new WalkInfo(new Location(-56543, -56472, -2008, 0), "npc8_13", 1200)); + WALKS.put("npc8_13", new WalkInfo(new Location(-56491, -56471, -2008, 0), "npc8_1", 1200)); + WALKS.put("npc9_1", new WalkInfo(new Location(-56505, -56246, -2008, 0), "npc9_2", 1000)); + WALKS.put("npc9_2", new WalkInfo(new Location(-56504, -56291, -2008, 0), "npc9_3", 1200)); + WALKS.put("npc9_3", new WalkInfo(new Location(-56550, -56291, -2008, 0), "npc9_4", 1200)); + WALKS.put("npc9_4", new WalkInfo(new Location(-56600, -56292, -2008, 0), "npc9_5", 1200)); + WALKS.put("npc9_5", new WalkInfo(new Location(-56603, -56248, -2008, 0), "npc9_6", 900)); + WALKS.put("npc9_6", new WalkInfo(new Location(-56653, -56249, -2008, 0), "npc9_7", 1200)); + WALKS.put("npc9_7", new WalkInfo(new Location(-56651, -56294, -2008, 0), "npc9_8", 1200)); + WALKS.put("npc9_8", new WalkInfo(new Location(-56650, -56316, -2008, 0), "npc9_9", 9200)); + WALKS.put("npc9_9", new WalkInfo(new Location(-56660, -56250, -2008, 0), "npc9_10", 1200)); + WALKS.put("npc9_10", new WalkInfo(new Location(-56656, -56205, -2008, 0), "npc9_11", 900)); + WALKS.put("npc9_11", new WalkInfo(new Location(-56606, -56204, -2008, 0), "npc9_12", 1100)); + WALKS.put("npc9_12", new WalkInfo(new Location(-56554, -56203, -2008, 0), "npc9_13", 1200)); + WALKS.put("npc9_13", new WalkInfo(new Location(-56506, -56203, -2008, 0), "npc9_1", 1200)); + WALKS.put("24", new WalkInfo(new Location(-56730, -56340, -2008, 0), "25", 1800)); + WALKS.put("27", new WalkInfo(new Location(-56702, -56340, -2008, 0), "29", 1800)); } private void scheduleTimer() @@ -487,18 +487,18 @@ public class MC_Show extends AbstractNpcAI } else { - if (talks.containsKey(event)) + if (TALKS.containsKey(event)) { - final ShoutInfo si = talks.get(event); + final ShoutInfo si = TALKS.get(event); if (si != null) { autoChat(npc, si.getNpcStringId(), Say2.NPC_SHOUT); startQuestTimer(si.getNextEvent(), si.getTime(), npc, null); } } - else if (walks.containsKey(event)) + else if (WALKS.containsKey(event)) { - final WalkInfo wi = walks.get(event); + final WalkInfo wi = WALKS.get(event); if (wi != null) { npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, wi.getCharPos()); diff --git a/L2J_DataPack/dist/game/data/scripts/ai/group_template/BeastFarm.java b/L2J_DataPack/dist/game/data/scripts/ai/group_template/BeastFarm.java index 06477c9802..8078524566 100644 --- a/L2J_DataPack/dist/game/data/scripts/ai/group_template/BeastFarm.java +++ b/L2J_DataPack/dist/game/data/scripts/ai/group_template/BeastFarm.java @@ -19,10 +19,11 @@ package ai.group_template; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; -import javolution.util.FastMap; import quests.Q00020_BringUpWithLove.Q00020_BringUpWithLove; import ai.npc.AbstractNpcAI; @@ -104,8 +105,8 @@ public final class BeastFarm extends AbstractNpcAI 18900 }; - private static Map<Integer, Integer> _FeedInfo = new FastMap<>(); - private static Map<Integer, GrowthCapableMob> _GrowthCapableMobs = new FastMap<>(); + private static final Map<Integer, Integer> FEED_INFO = new ConcurrentHashMap<>(); + private static final Map<Integer, GrowthCapableMob> GROWTH_CAPABLE_MONSTERS = new HashMap<>(); private static List<TamedBeast> TAMED_BEAST_DATA = new ArrayList<>(); private BeastFarm() @@ -124,23 +125,23 @@ public final class BeastFarm extends AbstractNpcAI temp.addNpcIdForSkillId(SKILL_BLESSED_CRYSTAL_SPICE, 18869); temp.addNpcIdForSkillId(SKILL_SGRADE_GOLDEN_SPICE, 18878); temp.addNpcIdForSkillId(SKILL_SGRADE_CRYSTAL_SPICE, 18879); - _GrowthCapableMobs.put(18873, temp); + GROWTH_CAPABLE_MONSTERS.put(18873, temp); temp = new GrowthCapableMob(40, 1, 18869); temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18876); - _GrowthCapableMobs.put(18874, temp); + GROWTH_CAPABLE_MONSTERS.put(18874, temp); temp = new GrowthCapableMob(40, 1, 18869); temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18877); - _GrowthCapableMobs.put(18875, temp); + GROWTH_CAPABLE_MONSTERS.put(18875, temp); temp = new GrowthCapableMob(25, 2, 18869); temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18878); - _GrowthCapableMobs.put(18876, temp); + GROWTH_CAPABLE_MONSTERS.put(18876, temp); temp = new GrowthCapableMob(25, 2, 18869); temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18879); - _GrowthCapableMobs.put(18877, temp); + GROWTH_CAPABLE_MONSTERS.put(18877, temp); // Cougar temp = new GrowthCapableMob(100, 0, 18870); @@ -150,23 +151,23 @@ public final class BeastFarm extends AbstractNpcAI temp.addNpcIdForSkillId(SKILL_BLESSED_CRYSTAL_SPICE, 18870); temp.addNpcIdForSkillId(SKILL_SGRADE_GOLDEN_SPICE, 18885); temp.addNpcIdForSkillId(SKILL_SGRADE_CRYSTAL_SPICE, 18886); - _GrowthCapableMobs.put(18880, temp); + GROWTH_CAPABLE_MONSTERS.put(18880, temp); temp = new GrowthCapableMob(40, 1, 18870); temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18883); - _GrowthCapableMobs.put(18881, temp); + GROWTH_CAPABLE_MONSTERS.put(18881, temp); temp = new GrowthCapableMob(40, 1, 18870); temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18884); - _GrowthCapableMobs.put(18882, temp); + GROWTH_CAPABLE_MONSTERS.put(18882, temp); temp = new GrowthCapableMob(25, 2, 18870); temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18885); - _GrowthCapableMobs.put(18883, temp); + GROWTH_CAPABLE_MONSTERS.put(18883, temp); temp = new GrowthCapableMob(25, 2, 18870); temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18886); - _GrowthCapableMobs.put(18884, temp); + GROWTH_CAPABLE_MONSTERS.put(18884, temp); // Buffalo temp = new GrowthCapableMob(100, 0, 18871); @@ -176,23 +177,23 @@ public final class BeastFarm extends AbstractNpcAI temp.addNpcIdForSkillId(SKILL_BLESSED_CRYSTAL_SPICE, 18871); temp.addNpcIdForSkillId(SKILL_SGRADE_GOLDEN_SPICE, 18892); temp.addNpcIdForSkillId(SKILL_SGRADE_CRYSTAL_SPICE, 18893); - _GrowthCapableMobs.put(18887, temp); + GROWTH_CAPABLE_MONSTERS.put(18887, temp); temp = new GrowthCapableMob(40, 1, 18871); temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18890); - _GrowthCapableMobs.put(18888, temp); + GROWTH_CAPABLE_MONSTERS.put(18888, temp); temp = new GrowthCapableMob(40, 1, 18871); temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18891); - _GrowthCapableMobs.put(18889, temp); + GROWTH_CAPABLE_MONSTERS.put(18889, temp); temp = new GrowthCapableMob(25, 2, 18871); temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18892); - _GrowthCapableMobs.put(18890, temp); + GROWTH_CAPABLE_MONSTERS.put(18890, temp); temp = new GrowthCapableMob(25, 2, 18871); temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18893); - _GrowthCapableMobs.put(18891, temp); + GROWTH_CAPABLE_MONSTERS.put(18891, temp); // Grendel temp = new GrowthCapableMob(100, 0, 18872); @@ -202,23 +203,23 @@ public final class BeastFarm extends AbstractNpcAI temp.addNpcIdForSkillId(SKILL_BLESSED_CRYSTAL_SPICE, 18872); temp.addNpcIdForSkillId(SKILL_SGRADE_GOLDEN_SPICE, 18899); temp.addNpcIdForSkillId(SKILL_SGRADE_CRYSTAL_SPICE, 18900); - _GrowthCapableMobs.put(18894, temp); + GROWTH_CAPABLE_MONSTERS.put(18894, temp); temp = new GrowthCapableMob(40, 1, 18872); temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18897); - _GrowthCapableMobs.put(18895, temp); + GROWTH_CAPABLE_MONSTERS.put(18895, temp); temp = new GrowthCapableMob(40, 1, 18872); temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18898); - _GrowthCapableMobs.put(18896, temp); + GROWTH_CAPABLE_MONSTERS.put(18896, temp); temp = new GrowthCapableMob(25, 2, 18872); temp.addNpcIdForSkillId(SKILL_GOLDEN_SPICE, 18899); - _GrowthCapableMobs.put(18897, temp); + GROWTH_CAPABLE_MONSTERS.put(18897, temp); temp = new GrowthCapableMob(25, 2, 18872); temp.addNpcIdForSkillId(SKILL_CRYSTAL_SPICE, 18900); - _GrowthCapableMobs.put(18898, temp); + GROWTH_CAPABLE_MONSTERS.put(18898, temp); // Tamed beasts data TAMED_BEAST_DATA.add(new TamedBeast("%name% of Focus", new SkillHolder(6432, 1), new SkillHolder(6668, 1))); @@ -232,11 +233,11 @@ public final class BeastFarm extends AbstractNpcAI public void spawnNext(L2Npc npc, L2PcInstance player, int nextNpcId, int food) { // remove the feedinfo of the mob that got despawned, if any - if (_FeedInfo.containsKey(npc.getObjectId())) + if (FEED_INFO.containsKey(npc.getObjectId())) { - if (_FeedInfo.get(npc.getObjectId()) == player.getObjectId()) + if (FEED_INFO.get(npc.getObjectId()) == player.getObjectId()) { - _FeedInfo.remove(npc.getObjectId()); + FEED_INFO.remove(npc.getObjectId()); } } // despawn the old mob @@ -289,7 +290,7 @@ public final class BeastFarm extends AbstractNpcAI L2Attackable nextNpc = (L2Attackable) addSpawn(nextNpcId, npc); // register the player in the feedinfo for the mob that just spawned - _FeedInfo.put(nextNpc.getObjectId(), player.getObjectId()); + FEED_INFO.put(nextNpc.getObjectId(), player.getObjectId()); nextNpc.setRunning(); nextNpc.addDamageHate(player, 0, 99999); nextNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player); @@ -319,19 +320,19 @@ public final class BeastFarm extends AbstractNpcAI // first gather some values on local variables int objectId = npc.getObjectId(); int growthLevel = 3; // if a mob is in FEEDABLE_BEASTS but not in _GrowthCapableMobs, then it's at max growth (3) - if (_GrowthCapableMobs.containsKey(npcId)) + if (GROWTH_CAPABLE_MONSTERS.containsKey(npcId)) { - growthLevel = _GrowthCapableMobs.get(npcId).getGrowthLevel(); + growthLevel = GROWTH_CAPABLE_MONSTERS.get(npcId).getGrowthLevel(); } // prevent exploit which allows 2 players to simultaneously raise the same 0-growth beast // If the mob is at 0th level (when it still listens to all feeders) lock it to the first feeder! - if ((growthLevel == 0) && _FeedInfo.containsKey(objectId)) + if ((growthLevel == 0) && FEED_INFO.containsKey(objectId)) { return super.onSkillSee(npc, caster, skill, targets, isSummon); } - _FeedInfo.put(objectId, caster.getObjectId()); + FEED_INFO.put(objectId, caster.getObjectId()); // display the social action of the beast eating the food. npc.broadcastSocialAction(2); @@ -347,22 +348,22 @@ public final class BeastFarm extends AbstractNpcAI } // if this pet can't grow, it's all done. - if (_GrowthCapableMobs.containsKey(npcId)) + if (GROWTH_CAPABLE_MONSTERS.containsKey(npcId)) { // do nothing if this mob doesn't eat the specified food (food gets consumed but has no effect). - int newNpcId = _GrowthCapableMobs.get(npcId).getLeveledNpcId(skillId); + int newNpcId = GROWTH_CAPABLE_MONSTERS.get(npcId).getLeveledNpcId(skillId); if (newNpcId == -1) { if (growthLevel == 0) { - _FeedInfo.remove(objectId); + FEED_INFO.remove(objectId); npc.setRunning(); ((L2Attackable) npc).addDamageHate(caster, 0, 1); npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, caster); } return super.onSkillSee(npc, caster, skill, targets, isSummon); } - else if ((growthLevel > 0) && (_FeedInfo.get(objectId) != caster.getObjectId())) + else if ((growthLevel > 0) && (FEED_INFO.get(objectId) != caster.getObjectId())) { // check if this is the same player as the one who raised it from growth 0. // if no, then do not allow a chance to raise the pet (food gets consumed but has no effect). @@ -382,9 +383,9 @@ public final class BeastFarm extends AbstractNpcAI public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { // remove the feedinfo of the mob that got killed, if any - if (_FeedInfo.containsKey(npc.getObjectId())) + if (FEED_INFO.containsKey(npc.getObjectId())) { - _FeedInfo.remove(npc.getObjectId()); + FEED_INFO.remove(npc.getObjectId()); } return super.onKill(npc, killer, isSummon); } @@ -395,7 +396,7 @@ public final class BeastFarm extends AbstractNpcAI private final int _chance; private final int _growthLevel; private final int _tameNpcId; - private final Map<Integer, Integer> _skillSuccessNpcIdList = new FastMap<>(); + private final Map<Integer, Integer> _skillSuccessNpcIdList = new HashMap<>(); public GrowthCapableMob(int chance, int growthLevel, int tameNpcId) { diff --git a/L2J_DataPack/dist/game/data/scripts/ai/group_template/FeedableBeasts.java b/L2J_DataPack/dist/game/data/scripts/ai/group_template/FeedableBeasts.java index 1bd01a22bc..d5dc4a685d 100644 --- a/L2J_DataPack/dist/game/data/scripts/ai/group_template/FeedableBeasts.java +++ b/L2J_DataPack/dist/game/data/scripts/ai/group_template/FeedableBeasts.java @@ -18,9 +18,10 @@ */ package ai.group_template; +import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; -import javolution.util.FastMap; import quests.Q00020_BringUpWithLove.Q00020_BringUpWithLove; import quests.Q00655_AGrandPlanForTamingWildBeasts.Q00655_AGrandPlanForTamingWildBeasts; import ai.npc.AbstractNpcAI; @@ -75,7 +76,7 @@ public final class FeedableBeasts extends AbstractNpcAI }; // @formatter:on - private static final Map<Integer, Integer> MAD_COW_POLYMORPH = new FastMap<>(); + private static final Map<Integer, Integer> MAD_COW_POLYMORPH = new HashMap<>(); static { MAD_COW_POLYMORPH.put(21824, 21468); @@ -128,8 +129,8 @@ public final class FeedableBeasts extends AbstractNpcAI NpcStringId.ANIMALS_NEED_LOVE_TOO }; - private static Map<Integer, Integer> _FeedInfo = new FastMap<>(); - private static Map<Integer, GrowthCapableMob> _GrowthCapableMobs = new FastMap<>(); + private static final Map<Integer, Integer> FEED_INFO = new ConcurrentHashMap<>(); + private static final Map<Integer, GrowthCapableMob> GROWTH_CAPABLE_MONSTERS = new HashMap<>(); // all mobs that grow by eating private static class GrowthCapableMob @@ -137,7 +138,7 @@ public final class FeedableBeasts extends AbstractNpcAI private final int _growthLevel; private final int _chance; - private final Map<Integer, int[][]> _spiceToMob = new FastMap<>(); + private final Map<Integer, int[][]> _spiceToMob = new HashMap<>(); public GrowthCapableMob(int growthLevel, int chance) { @@ -220,139 +221,139 @@ public final class FeedableBeasts extends AbstractNpcAI temp = new GrowthCapableMob(0, 100); temp.addMobs(GOLDEN_SPICE, Kookabura_0_Gold); temp.addMobs(CRYSTAL_SPICE, Kookabura_0_Crystal); - _GrowthCapableMobs.put(21451, temp); + GROWTH_CAPABLE_MONSTERS.put(21451, temp); temp = new GrowthCapableMob(1, 40); temp.addMobs(GOLDEN_SPICE, Kookabura_1_Gold_1); - _GrowthCapableMobs.put(21452, temp); - _GrowthCapableMobs.put(21454, temp); + GROWTH_CAPABLE_MONSTERS.put(21452, temp); + GROWTH_CAPABLE_MONSTERS.put(21454, temp); temp = new GrowthCapableMob(1, 40); temp.addMobs(GOLDEN_SPICE, Kookabura_1_Gold_2); - _GrowthCapableMobs.put(21453, temp); - _GrowthCapableMobs.put(21455, temp); + GROWTH_CAPABLE_MONSTERS.put(21453, temp); + GROWTH_CAPABLE_MONSTERS.put(21455, temp); temp = new GrowthCapableMob(1, 40); temp.addMobs(CRYSTAL_SPICE, Kookabura_1_Crystal_1); - _GrowthCapableMobs.put(21456, temp); - _GrowthCapableMobs.put(21458, temp); + GROWTH_CAPABLE_MONSTERS.put(21456, temp); + GROWTH_CAPABLE_MONSTERS.put(21458, temp); temp = new GrowthCapableMob(1, 40); temp.addMobs(CRYSTAL_SPICE, Kookabura_1_Crystal_2); - _GrowthCapableMobs.put(21457, temp); - _GrowthCapableMobs.put(21459, temp); + GROWTH_CAPABLE_MONSTERS.put(21457, temp); + GROWTH_CAPABLE_MONSTERS.put(21459, temp); temp = new GrowthCapableMob(2, 25); temp.addMobs(GOLDEN_SPICE, Kookabura_2_1); - _GrowthCapableMobs.put(21460, temp); - _GrowthCapableMobs.put(21462, temp); + GROWTH_CAPABLE_MONSTERS.put(21460, temp); + GROWTH_CAPABLE_MONSTERS.put(21462, temp); temp = new GrowthCapableMob(2, 25); temp.addMobs(GOLDEN_SPICE, Kookabura_2_2); - _GrowthCapableMobs.put(21461, temp); - _GrowthCapableMobs.put(21463, temp); + GROWTH_CAPABLE_MONSTERS.put(21461, temp); + GROWTH_CAPABLE_MONSTERS.put(21463, temp); temp = new GrowthCapableMob(2, 25); temp.addMobs(CRYSTAL_SPICE, Kookabura_2_1); - _GrowthCapableMobs.put(21464, temp); - _GrowthCapableMobs.put(21466, temp); + GROWTH_CAPABLE_MONSTERS.put(21464, temp); + GROWTH_CAPABLE_MONSTERS.put(21466, temp); temp = new GrowthCapableMob(2, 25); temp.addMobs(CRYSTAL_SPICE, Kookabura_2_2); - _GrowthCapableMobs.put(21465, temp); - _GrowthCapableMobs.put(21467, temp); + GROWTH_CAPABLE_MONSTERS.put(21465, temp); + GROWTH_CAPABLE_MONSTERS.put(21467, temp); // Alpen Buffalo temp = new GrowthCapableMob(0, 100); temp.addMobs(GOLDEN_SPICE, Buffalo_0_Gold); temp.addMobs(CRYSTAL_SPICE, Buffalo_0_Crystal); - _GrowthCapableMobs.put(21470, temp); + GROWTH_CAPABLE_MONSTERS.put(21470, temp); temp = new GrowthCapableMob(1, 40); temp.addMobs(GOLDEN_SPICE, Buffalo_1_Gold_1); - _GrowthCapableMobs.put(21471, temp); - _GrowthCapableMobs.put(21473, temp); + GROWTH_CAPABLE_MONSTERS.put(21471, temp); + GROWTH_CAPABLE_MONSTERS.put(21473, temp); temp = new GrowthCapableMob(1, 40); temp.addMobs(GOLDEN_SPICE, Buffalo_1_Gold_2); - _GrowthCapableMobs.put(21472, temp); - _GrowthCapableMobs.put(21474, temp); + GROWTH_CAPABLE_MONSTERS.put(21472, temp); + GROWTH_CAPABLE_MONSTERS.put(21474, temp); temp = new GrowthCapableMob(1, 40); temp.addMobs(CRYSTAL_SPICE, Buffalo_1_Crystal_1); - _GrowthCapableMobs.put(21475, temp); - _GrowthCapableMobs.put(21477, temp); + GROWTH_CAPABLE_MONSTERS.put(21475, temp); + GROWTH_CAPABLE_MONSTERS.put(21477, temp); temp = new GrowthCapableMob(1, 40); temp.addMobs(CRYSTAL_SPICE, Buffalo_1_Crystal_2); - _GrowthCapableMobs.put(21476, temp); - _GrowthCapableMobs.put(21478, temp); + GROWTH_CAPABLE_MONSTERS.put(21476, temp); + GROWTH_CAPABLE_MONSTERS.put(21478, temp); temp = new GrowthCapableMob(2, 25); temp.addMobs(GOLDEN_SPICE, Buffalo_2_1); - _GrowthCapableMobs.put(21479, temp); - _GrowthCapableMobs.put(21481, temp); + GROWTH_CAPABLE_MONSTERS.put(21479, temp); + GROWTH_CAPABLE_MONSTERS.put(21481, temp); temp = new GrowthCapableMob(2, 25); temp.addMobs(GOLDEN_SPICE, Buffalo_2_2); - _GrowthCapableMobs.put(21480, temp); - _GrowthCapableMobs.put(21482, temp); + GROWTH_CAPABLE_MONSTERS.put(21480, temp); + GROWTH_CAPABLE_MONSTERS.put(21482, temp); temp = new GrowthCapableMob(2, 25); temp.addMobs(CRYSTAL_SPICE, Buffalo_2_1); - _GrowthCapableMobs.put(21483, temp); - _GrowthCapableMobs.put(21485, temp); + GROWTH_CAPABLE_MONSTERS.put(21483, temp); + GROWTH_CAPABLE_MONSTERS.put(21485, temp); temp = new GrowthCapableMob(2, 25); temp.addMobs(CRYSTAL_SPICE, Buffalo_2_2); - _GrowthCapableMobs.put(21484, temp); - _GrowthCapableMobs.put(21486, temp); + GROWTH_CAPABLE_MONSTERS.put(21484, temp); + GROWTH_CAPABLE_MONSTERS.put(21486, temp); // Alpen Cougar temp = new GrowthCapableMob(0, 100); temp.addMobs(GOLDEN_SPICE, Cougar_0_Gold); temp.addMobs(CRYSTAL_SPICE, Cougar_0_Crystal); - _GrowthCapableMobs.put(21489, temp); + GROWTH_CAPABLE_MONSTERS.put(21489, temp); temp = new GrowthCapableMob(1, 40); temp.addMobs(GOLDEN_SPICE, Cougar_1_Gold_1); - _GrowthCapableMobs.put(21490, temp); - _GrowthCapableMobs.put(21492, temp); + GROWTH_CAPABLE_MONSTERS.put(21490, temp); + GROWTH_CAPABLE_MONSTERS.put(21492, temp); temp = new GrowthCapableMob(1, 40); temp.addMobs(GOLDEN_SPICE, Cougar_1_Gold_2); - _GrowthCapableMobs.put(21491, temp); - _GrowthCapableMobs.put(21493, temp); + GROWTH_CAPABLE_MONSTERS.put(21491, temp); + GROWTH_CAPABLE_MONSTERS.put(21493, temp); temp = new GrowthCapableMob(1, 40); temp.addMobs(CRYSTAL_SPICE, Cougar_1_Crystal_1); - _GrowthCapableMobs.put(21494, temp); - _GrowthCapableMobs.put(21496, temp); + GROWTH_CAPABLE_MONSTERS.put(21494, temp); + GROWTH_CAPABLE_MONSTERS.put(21496, temp); temp = new GrowthCapableMob(1, 40); temp.addMobs(CRYSTAL_SPICE, Cougar_1_Crystal_2); - _GrowthCapableMobs.put(21495, temp); - _GrowthCapableMobs.put(21497, temp); + GROWTH_CAPABLE_MONSTERS.put(21495, temp); + GROWTH_CAPABLE_MONSTERS.put(21497, temp); temp = new GrowthCapableMob(2, 25); temp.addMobs(GOLDEN_SPICE, Cougar_2_1); - _GrowthCapableMobs.put(21498, temp); - _GrowthCapableMobs.put(21500, temp); + GROWTH_CAPABLE_MONSTERS.put(21498, temp); + GROWTH_CAPABLE_MONSTERS.put(21500, temp); temp = new GrowthCapableMob(2, 25); temp.addMobs(GOLDEN_SPICE, Cougar_2_2); - _GrowthCapableMobs.put(21499, temp); - _GrowthCapableMobs.put(21501, temp); + GROWTH_CAPABLE_MONSTERS.put(21499, temp); + GROWTH_CAPABLE_MONSTERS.put(21501, temp); temp = new GrowthCapableMob(2, 25); temp.addMobs(CRYSTAL_SPICE, Cougar_2_1); - _GrowthCapableMobs.put(21502, temp); - _GrowthCapableMobs.put(21504, temp); + GROWTH_CAPABLE_MONSTERS.put(21502, temp); + GROWTH_CAPABLE_MONSTERS.put(21504, temp); temp = new GrowthCapableMob(2, 25); temp.addMobs(CRYSTAL_SPICE, Cougar_2_2); - _GrowthCapableMobs.put(21503, temp); - _GrowthCapableMobs.put(21505, temp); + GROWTH_CAPABLE_MONSTERS.put(21503, temp); + GROWTH_CAPABLE_MONSTERS.put(21505, temp); } private void spawnNext(L2Npc npc, int growthLevel, L2PcInstance player, int food) @@ -368,11 +369,11 @@ public final class FeedableBeasts extends AbstractNpcAI { if (player.getClassId().isMage()) { - nextNpcId = _GrowthCapableMobs.get(npcId).getMob(food, 1, 1); + nextNpcId = GROWTH_CAPABLE_MONSTERS.get(npcId).getMob(food, 1, 1); } else { - nextNpcId = _GrowthCapableMobs.get(npcId).getMob(food, 1, 0); + nextNpcId = GROWTH_CAPABLE_MONSTERS.get(npcId).getMob(food, 1, 0); } } else @@ -381,26 +382,26 @@ public final class FeedableBeasts extends AbstractNpcAI // that is a stronger-than-normal animal that attacks its feeder if (getRandom(5) == 0) { - nextNpcId = _GrowthCapableMobs.get(npcId).getMob(food, 0, 1); + nextNpcId = GROWTH_CAPABLE_MONSTERS.get(npcId).getMob(food, 0, 1); } else { - nextNpcId = _GrowthCapableMobs.get(npcId).getMob(food, 0, 0); + nextNpcId = GROWTH_CAPABLE_MONSTERS.get(npcId).getMob(food, 0, 0); } } } else { // all other levels of growth are straight-forward - nextNpcId = _GrowthCapableMobs.get(npcId).getRandomMob(food); + nextNpcId = GROWTH_CAPABLE_MONSTERS.get(npcId).getRandomMob(food); } // remove the feedinfo of the mob that got despawned, if any - if (_FeedInfo.containsKey(npc.getObjectId())) + if (FEED_INFO.containsKey(npc.getObjectId())) { - if (_FeedInfo.get(npc.getObjectId()) == player.getObjectId()) + if (FEED_INFO.get(npc.getObjectId()) == player.getObjectId()) { - _FeedInfo.remove(npc.getObjectId()); + FEED_INFO.remove(npc.getObjectId()); } } // despawn the old mob @@ -475,7 +476,7 @@ public final class FeedableBeasts extends AbstractNpcAI } // register the player in the feedinfo for the mob that just spawned - _FeedInfo.put(nextNpc.getObjectId(), player.getObjectId()); + FEED_INFO.put(nextNpc.getObjectId(), player.getObjectId()); nextNpc.setRunning(); nextNpc.addDamageHate(player, 0, 99999); nextNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player); @@ -490,9 +491,9 @@ public final class FeedableBeasts extends AbstractNpcAI if (MAD_COW_POLYMORPH.containsKey(npc.getId())) { // remove the feed info from the previous mob - if (_FeedInfo.get(npc.getObjectId()) == player.getObjectId()) + if (FEED_INFO.get(npc.getObjectId()) == player.getObjectId()) { - _FeedInfo.remove(npc.getObjectId()); + FEED_INFO.remove(npc.getObjectId()); } // despawn the mad cow npc.deleteMe(); @@ -500,7 +501,7 @@ public final class FeedableBeasts extends AbstractNpcAI L2Attackable nextNpc = (L2Attackable) addSpawn(MAD_COW_POLYMORPH.get(npc.getId()), npc); // register the player in the feedinfo for the mob that just spawned - _FeedInfo.put(nextNpc.getObjectId(), player.getObjectId()); + FEED_INFO.put(nextNpc.getObjectId(), player.getObjectId()); nextNpc.setRunning(); nextNpc.addDamageHate(player, 0, 99999); nextNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player); @@ -530,19 +531,19 @@ public final class FeedableBeasts extends AbstractNpcAI // first gather some values on local variables int objectId = npc.getObjectId(); int growthLevel = 3; // if a mob is in FEEDABLE_BEASTS but not in _GrowthCapableMobs, then it's at max growth (3) - if (_GrowthCapableMobs.containsKey(npcId)) + if (GROWTH_CAPABLE_MONSTERS.containsKey(npcId)) { - growthLevel = _GrowthCapableMobs.get(npcId).getGrowthLevel(); + growthLevel = GROWTH_CAPABLE_MONSTERS.get(npcId).getGrowthLevel(); } // prevent exploit which allows 2 players to simultaneously raise the same 0-growth beast // If the mob is at 0th level (when it still listens to all feeders) lock it to the first feeder! - if ((growthLevel == 0) && _FeedInfo.containsKey(objectId)) + if ((growthLevel == 0) && FEED_INFO.containsKey(objectId)) { return super.onSkillSee(npc, caster, skill, targets, isSummon); } - _FeedInfo.put(objectId, caster.getObjectId()); + FEED_INFO.put(objectId, caster.getObjectId()); int food = 0; if (skillId == SKILL_GOLDEN_SPICE) @@ -558,10 +559,10 @@ public final class FeedableBeasts extends AbstractNpcAI npc.broadcastSocialAction(2); // if this pet can't grow, it's all done. - if (_GrowthCapableMobs.containsKey(npcId)) + if (GROWTH_CAPABLE_MONSTERS.containsKey(npcId)) { // do nothing if this mob doesn't eat the specified food (food gets consumed but has no effect). - if (_GrowthCapableMobs.get(npcId).getMob(food, 0, 0) == null) + if (GROWTH_CAPABLE_MONSTERS.get(npcId).getMob(food, 0, 0) == null) { return super.onSkillSee(npc, caster, skill, targets, isSummon); } @@ -578,7 +579,7 @@ public final class FeedableBeasts extends AbstractNpcAI npc.broadcastPacket(packet); } - if ((growthLevel > 0) && (_FeedInfo.get(objectId) != caster.getObjectId())) + if ((growthLevel > 0) && (FEED_INFO.get(objectId) != caster.getObjectId())) { // check if this is the same player as the one who raised it from growth 0. // if no, then do not allow a chance to raise the pet (food gets consumed but has no effect). @@ -586,7 +587,7 @@ public final class FeedableBeasts extends AbstractNpcAI } // Polymorph the mob, with a certain chance, given its current growth level - if (getRandom(100) < _GrowthCapableMobs.get(npcId).getChance()) + if (getRandom(100) < GROWTH_CAPABLE_MONSTERS.get(npcId).getChance()) { spawnNext(npc, growthLevel, caster, food); } @@ -613,9 +614,9 @@ public final class FeedableBeasts extends AbstractNpcAI public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) { // remove the feedinfo of the mob that got killed, if any - if (_FeedInfo.containsKey(npc.getObjectId())) + if (FEED_INFO.containsKey(npc.getObjectId())) { - _FeedInfo.remove(npc.getObjectId()); + FEED_INFO.remove(npc.getObjectId()); } return super.onKill(npc, killer, isSummon); } diff --git a/L2J_DataPack/dist/game/data/scripts/ai/group_template/PolymorphingAngel.java b/L2J_DataPack/dist/game/data/scripts/ai/group_template/PolymorphingAngel.java index cb54787942..5e88e0d214 100644 --- a/L2J_DataPack/dist/game/data/scripts/ai/group_template/PolymorphingAngel.java +++ b/L2J_DataPack/dist/game/data/scripts/ai/group_template/PolymorphingAngel.java @@ -18,9 +18,9 @@ */ package ai.group_template; +import java.util.HashMap; import java.util.Map; -import javolution.util.FastMap; import ai.npc.AbstractNpcAI; import com.l2jserver.gameserver.model.actor.L2Attackable; @@ -32,7 +32,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; */ public final class PolymorphingAngel extends AbstractNpcAI { - private static final Map<Integer, Integer> ANGELSPAWNS = new FastMap<>(); + private static final Map<Integer, Integer> ANGELSPAWNS = new HashMap<>(); static { ANGELSPAWNS.put(20830, 20859); diff --git a/L2J_DataPack/dist/game/data/scripts/ai/group_template/RandomSpawn.java b/L2J_DataPack/dist/game/data/scripts/ai/group_template/RandomSpawn.java index 4b20087c9b..bc6eac78d6 100644 --- a/L2J_DataPack/dist/game/data/scripts/ai/group_template/RandomSpawn.java +++ b/L2J_DataPack/dist/game/data/scripts/ai/group_template/RandomSpawn.java @@ -18,9 +18,9 @@ */ package ai.group_template; +import java.util.HashMap; import java.util.Map; -import javolution.util.FastMap; import ai.npc.AbstractNpcAI; import com.l2jserver.gameserver.ThreadPoolManager; @@ -33,7 +33,7 @@ import com.l2jserver.gameserver.model.actor.L2Npc; */ public final class RandomSpawn extends AbstractNpcAI { - private static Map<Integer, Location[]> SPAWN_POINTS = new FastMap<>(); + private static final Map<Integer, Location[]> SPAWN_POINTS = new HashMap<>(); static { // Keltas diff --git a/L2J_DataPack/dist/game/data/scripts/ai/individual/DarkWaterDragon.java b/L2J_DataPack/dist/game/data/scripts/ai/individual/DarkWaterDragon.java index c4dc935c92..9c1c818578 100644 --- a/L2J_DataPack/dist/game/data/scripts/ai/individual/DarkWaterDragon.java +++ b/L2J_DataPack/dist/game/data/scripts/ai/individual/DarkWaterDragon.java @@ -22,7 +22,6 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import javolution.util.FastSet; import ai.npc.AbstractNpcAI; import com.l2jserver.gameserver.ai.CtrlIntention; @@ -43,8 +42,8 @@ public final class DarkWaterDragon extends AbstractNpcAI private static final int FAFURION = 18482; private static final int DETRACTOR1 = 22270; private static final int DETRACTOR2 = 22271; - private static Set<Integer> SECOND_SPAWN = new FastSet<>(); // Used to track if second Shades were already spawned - private static Set<Integer> MY_TRACKING_SET = new FastSet<>(); // Used to track instances of npcs + private static final Set<Integer> SECOND_SPAWN = ConcurrentHashMap.newKeySet(); // Used to track if second Shades were already spawned + private static Set<Integer> MY_TRACKING_SET = ConcurrentHashMap.newKeySet(); // Used to track instances of npcs private static Map<Integer, L2PcInstance> ID_MAP = new ConcurrentHashMap<>(); // Used to track instances of npcs private DarkWaterDragon() diff --git a/L2J_DataPack/dist/game/data/scripts/ai/individual/Orfen.java b/L2J_DataPack/dist/game/data/scripts/ai/individual/Orfen.java index 2e7be92a0d..2a853f73cc 100644 --- a/L2J_DataPack/dist/game/data/scripts/ai/individual/Orfen.java +++ b/L2J_DataPack/dist/game/data/scripts/ai/individual/Orfen.java @@ -19,8 +19,8 @@ package ai.individual; import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; -import javolution.util.FastList; import ai.npc.AbstractNpcAI; import com.l2jserver.Config; @@ -72,7 +72,7 @@ public final class Orfen extends AbstractNpcAI private static final int RIBA_IREN = 29018; private static boolean _IsTeleported; - private static List<L2Attackable> _Minions = new FastList<>(); + private static final List<L2Attackable> MINIONS = new CopyOnWriteArrayList<>(); private static L2BossZone ZONE; private static final byte ALIVE = 0; @@ -158,16 +158,16 @@ public final class Orfen extends AbstractNpcAI L2Attackable mob; mob = (L2Attackable) addSpawn(RAIKEL_LEOS, x + 100, y + 100, npc.getZ(), 0, false, 0); mob.setIsRaidMinion(true); - _Minions.add(mob); + MINIONS.add(mob); mob = (L2Attackable) addSpawn(RAIKEL_LEOS, x + 100, y - 100, npc.getZ(), 0, false, 0); mob.setIsRaidMinion(true); - _Minions.add(mob); + MINIONS.add(mob); mob = (L2Attackable) addSpawn(RAIKEL_LEOS, x - 100, y + 100, npc.getZ(), 0, false, 0); mob.setIsRaidMinion(true); - _Minions.add(mob); + MINIONS.add(mob); mob = (L2Attackable) addSpawn(RAIKEL_LEOS, x - 100, y - 100, npc.getZ(), 0, false, 0); mob.setIsRaidMinion(true); - _Minions.add(mob); + MINIONS.add(mob); startQuestTimer("check_minion_loc", 10000, npc, null, true); } @@ -208,9 +208,9 @@ public final class Orfen extends AbstractNpcAI } else if (event.equalsIgnoreCase("check_minion_loc")) { - for (int i = 0; i < _Minions.size(); i++) + for (int i = 0; i < MINIONS.size(); i++) { - L2Attackable mob = _Minions.get(i); + L2Attackable mob = MINIONS.get(i); if (!npc.isInsideRadius(mob, 3000, false, false)) { mob.teleToLocation(npc.getLocation()); @@ -221,21 +221,21 @@ public final class Orfen extends AbstractNpcAI } else if (event.equalsIgnoreCase("despawn_minions")) { - for (int i = 0; i < _Minions.size(); i++) + for (int i = 0; i < MINIONS.size(); i++) { - L2Attackable mob = _Minions.get(i); + L2Attackable mob = MINIONS.get(i); if (mob != null) { mob.decayMe(); } } - _Minions.clear(); + MINIONS.clear(); } else if (event.equalsIgnoreCase("spawn_minion")) { L2Attackable mob = (L2Attackable) addSpawn(RAIKEL_LEOS, npc.getX(), npc.getY(), npc.getZ(), 0, false, 0); mob.setIsRaidMinion(true); - _Minions.add(mob); + MINIONS.add(mob); } return super.onAdvEvent(event, npc, player); } @@ -344,7 +344,7 @@ public final class Orfen extends AbstractNpcAI } else if ((GrandBossManager.getInstance().getBossStatus(ORFEN) == ALIVE) && (npc.getId() == RAIKEL_LEOS)) { - _Minions.remove(npc); + MINIONS.remove(npc); startQuestTimer("spawn_minion", 360000, npc, null); } return super.onKill(npc, killer, isSummon); diff --git a/L2J_DataPack/dist/game/data/scripts/ai/individual/QueenAnt.java b/L2J_DataPack/dist/game/data/scripts/ai/individual/QueenAnt.java index a183026b3d..c73353576f 100644 --- a/L2J_DataPack/dist/game/data/scripts/ai/individual/QueenAnt.java +++ b/L2J_DataPack/dist/game/data/scripts/ai/individual/QueenAnt.java @@ -19,8 +19,8 @@ package ai.individual; import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; -import javolution.util.FastList; import ai.npc.AbstractNpcAI; import com.l2jserver.Config; @@ -81,7 +81,7 @@ public final class QueenAnt extends AbstractNpcAI private L2MonsterInstance _queen = null; private L2MonsterInstance _larva = null; - private final List<L2MonsterInstance> _nurses = new FastList<>(5); + private final List<L2MonsterInstance> _nurses = new CopyOnWriteArrayList<>(); private QueenAnt() { diff --git a/L2J_DataPack/dist/game/data/scripts/ai/individual/SinWardens.java b/L2J_DataPack/dist/game/data/scripts/ai/individual/SinWardens.java index 70d0cb6ed3..7f424b46e6 100644 --- a/L2J_DataPack/dist/game/data/scripts/ai/individual/SinWardens.java +++ b/L2J_DataPack/dist/game/data/scripts/ai/individual/SinWardens.java @@ -19,8 +19,8 @@ package ai.individual; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; -import javolution.util.FastMap; import ai.npc.AbstractNpcAI; import com.l2jserver.gameserver.model.actor.L2Npc; @@ -54,7 +54,7 @@ public final class SinWardens extends AbstractNpcAI 22438 }; - private final Map<Integer, Integer> killedMinionsCount = new FastMap<>(); + private final Map<Integer, Integer> killedMinionsCount = new ConcurrentHashMap<>(); private SinWardens() { diff --git a/L2J_DataPack/dist/game/data/scripts/ai/npc/ForgeOfTheGods/TarBeetleSpawn.java b/L2J_DataPack/dist/game/data/scripts/ai/npc/ForgeOfTheGods/TarBeetleSpawn.java index 0a5b963d24..82d7e00921 100644 --- a/L2J_DataPack/dist/game/data/scripts/ai/npc/ForgeOfTheGods/TarBeetleSpawn.java +++ b/L2J_DataPack/dist/game/data/scripts/ai/npc/ForgeOfTheGods/TarBeetleSpawn.java @@ -20,10 +20,9 @@ package ai.npc.ForgeOfTheGods; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ScheduledFuture; -import javolution.util.FastList; - import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; @@ -191,7 +190,7 @@ public class TarBeetleSpawn implements IXmlReader private final class SpawnZone { private final List<Zone> _zones = new ArrayList<>(); - private final List<L2Npc> _spawn = new FastList<>(); + private final List<L2Npc> _spawn = new CopyOnWriteArrayList<>(); private final int _maxNpcCount; private final int _index; diff --git a/L2J_DataPack/dist/game/data/scripts/ai/npc/Teleports/NewbieTravelToken/NewbieTravelToken.java b/L2J_DataPack/dist/game/data/scripts/ai/npc/Teleports/NewbieTravelToken/NewbieTravelToken.java index b244193705..83897db400 100644 --- a/L2J_DataPack/dist/game/data/scripts/ai/npc/Teleports/NewbieTravelToken/NewbieTravelToken.java +++ b/L2J_DataPack/dist/game/data/scripts/ai/npc/Teleports/NewbieTravelToken/NewbieTravelToken.java @@ -18,9 +18,9 @@ */ package ai.npc.Teleports.NewbieTravelToken; +import java.util.HashMap; import java.util.Map; -import javolution.util.FastMap; import ai.npc.AbstractNpcAI; import com.l2jserver.gameserver.model.Location; @@ -30,8 +30,7 @@ import com.l2jserver.gameserver.network.SystemMessageId; import com.l2jserver.gameserver.util.Util; /** - * Newbie Travel Token AI.<br> - * Original Jython script by DrLecter. + * Newbie Travel Token AI. * @author Plim */ public final class NewbieTravelToken extends AbstractNpcAI @@ -39,7 +38,7 @@ public final class NewbieTravelToken extends AbstractNpcAI // Item private static final int NEWBIE_TRAVEL_TOKEN = 8542; // NPC Id - Teleport Location - private static final Map<Integer, Location> DATA = new FastMap<>(); + private static final Map<Integer, Location> DATA = new HashMap<>(); private NewbieTravelToken() { diff --git a/L2J_DataPack/dist/game/data/scripts/custom/EchoCrystals/EchoCrystals.java b/L2J_DataPack/dist/game/data/scripts/custom/EchoCrystals/EchoCrystals.java index de3fb2db35..f8c5cc61be 100644 --- a/L2J_DataPack/dist/game/data/scripts/custom/EchoCrystals/EchoCrystals.java +++ b/L2J_DataPack/dist/game/data/scripts/custom/EchoCrystals/EchoCrystals.java @@ -18,10 +18,9 @@ */ package custom.EchoCrystals; +import java.util.HashMap; import java.util.Map; -import javolution.util.FastMap; - import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; import com.l2jserver.gameserver.model.quest.Quest; @@ -29,8 +28,7 @@ import com.l2jserver.gameserver.model.quest.QuestState; import com.l2jserver.gameserver.util.Util; /** - * Echo Crystals AI.<br> - * Original Jython script by DrLecter, formerly based on Elektra's script. + * Echo Crystals AI. * @author Plim */ public final class EchoCrystals extends Quest @@ -44,7 +42,7 @@ public final class EchoCrystals extends Quest private static final int ADENA = 57; private static final int COST = 200; - private static final Map<Integer, ScoreData> SCORES = new FastMap<>(); + private static final Map<Integer, ScoreData> SCORES = new HashMap<>(); private class ScoreData { diff --git a/L2J_DataPack/dist/game/data/scripts/custom/Validators/SubClassSkills.java b/L2J_DataPack/dist/game/data/scripts/custom/Validators/SubClassSkills.java index 1888eae16e..7a9411ac0e 100644 --- a/L2J_DataPack/dist/game/data/scripts/custom/Validators/SubClassSkills.java +++ b/L2J_DataPack/dist/game/data/scripts/custom/Validators/SubClassSkills.java @@ -18,9 +18,9 @@ */ package custom.Validators; +import java.util.ArrayList; import java.util.Arrays; - -import javolution.util.FastList; +import java.util.List; import com.l2jserver.Config; import com.l2jserver.gameserver.data.xml.impl.ClassListData; @@ -107,49 +107,36 @@ public final class SubClassSkills extends Quest return null; } - final Skill[] certSkills = getCertSkills(player); + final List<Skill> certSkills = getCertSkills(player); if (player.isSubClassActive()) { - if (certSkills != null) + for (Skill s : certSkills) { - for (Skill s : certSkills) + Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " has cert skill on subclass :" + s.getName() + "(" + s.getId() + "/" + s.getLevel() + "), class:" + ClassListData.getInstance().getClass(player.getClassId()).getClassName(), IllegalActionPunishmentType.NONE); + + if (Config.SKILL_CHECK_REMOVE) { - Util.handleIllegalPlayerAction(player, "Player " + player.getName() + " has cert skill on subclass :" + s.getName() + "(" + s.getId() + "/" + s.getLevel() + "), class:" + ClassListData.getInstance().getClass(player.getClassId()).getClassName(), IllegalActionPunishmentType.NONE); - - if (Config.SKILL_CHECK_REMOVE) - { - player.removeSkill(s); - } + player.removeSkill(s); } } return null; } - Skill skill; - int[][] cSkills = null; // skillId/skillLvl - if (certSkills != null) + int[][] cSkills = new int[certSkills.size()][2]; // skillId/skillLvl + for (int i = certSkills.size(); --i >= 0;) { - cSkills = new int[certSkills.length][2]; - for (int i = certSkills.length; --i >= 0;) - { - skill = certSkills[i]; - cSkills[i][0] = skill.getId(); - cSkills[i][1] = skill.getLevel(); - } + Skill skill = certSkills.get(i); + cSkills[i][0] = skill.getId(); + cSkills[i][1] = skill.getLevel(); } - L2ItemInstance item; - int[][] cItems = null; // objectId/number - final L2ItemInstance[] certItems = getCertItems(player); - if (certItems != null) + final List<L2ItemInstance> certItems = getCertItems(player); + int[][] cItems = new int[certItems.size()][2]; // objectId/number + for (int i = certItems.size(); --i >= 0;) { - cItems = new int[certItems.length][2]; - for (int i = certItems.length; --i >= 0;) - { - item = certItems[i]; - cItems[i][0] = item.getObjectId(); - cItems[i][1] = (int) Math.min(item.getCount(), Integer.MAX_VALUE); - } + L2ItemInstance item = certItems.get(i); + cItems[i][0] = item.getObjectId(); + cItems[i][1] = (int) Math.min(item.getCount(), Integer.MAX_VALUE); } QuestState st = player.getQuestState("SubClassSkills"); @@ -177,17 +164,17 @@ public final class SubClassSkills extends Quest { id = Integer.parseInt(qValue.replace(";", "")); - skill = null; + Skill skill = null; if (certSkills != null) { // searching skill in test array if (cSkills != null) { - for (index = certSkills.length; --index >= 0;) + for (index = certSkills.size(); --index >= 0;) { if (cSkills[index][0] == id) { - skill = certSkills[index]; + skill = certSkills.get(index); cSkills[index][1]--; break; } @@ -227,17 +214,17 @@ public final class SubClassSkills extends Quest continue; } - item = null; + L2ItemInstance item = null; if (certItems != null) { // searching item in test array if (cItems != null) { - for (index = certItems.length; --index >= 0;) + for (index = certItems.size(); --index >= 0;) { if (cItems[index][0] == id) { - item = certItems[index]; + item = certItems.get(index); cItems[index][1]--; break; } @@ -278,7 +265,7 @@ public final class SubClassSkills extends Quest continue; } - skill = certSkills[i]; + Skill skill = certSkills.get(i); if (cSkills[i][1] > 0) { if (cSkills[i][1] == skill.getLevel()) @@ -311,7 +298,7 @@ public final class SubClassSkills extends Quest continue; } - item = certItems[i]; + L2ItemInstance item = certItems.get(i); Util.handleIllegalPlayerAction(player, "Invalid cert item without variable or with wrong count:" + item.getObjectId(), IllegalActionPunishmentType.NONE); } } @@ -319,54 +306,30 @@ public final class SubClassSkills extends Quest return null; } - private Skill[] getCertSkills(L2PcInstance player) + private List<Skill> getCertSkills(L2PcInstance player) { - FastList<Skill> tmp = null; + final List<Skill> tmp = new ArrayList<>(); for (Skill s : player.getAllSkills()) { if ((s != null) && (Arrays.binarySearch(_allCertSkillIds, s.getId()) >= 0)) { - if (tmp == null) - { - tmp = FastList.newInstance(); - } - tmp.add(s); } } - if (tmp == null) - { - return null; - } - - final Skill[] result = tmp.toArray(new Skill[tmp.size()]); - FastList.recycle(tmp); - return result; + return tmp; } - private L2ItemInstance[] getCertItems(L2PcInstance player) + private List<L2ItemInstance> getCertItems(L2PcInstance player) { - FastList<L2ItemInstance> tmp = null; + final List<L2ItemInstance> tmp = new ArrayList<>(); for (L2ItemInstance i : player.getInventory().getItems()) { if ((i != null) && (Arrays.binarySearch(_allCertItemIds, i.getId()) >= 0)) { - if (tmp == null) - { - tmp = FastList.newInstance(); - } - tmp.add(i); } } - if (tmp == null) - { - return null; - } - - final L2ItemInstance[] result = tmp.toArray(new L2ItemInstance[tmp.size()]); - FastList.recycle(tmp); - return result; + return tmp; } public static void main(String[] args) diff --git a/L2J_DataPack/dist/game/data/scripts/gracia/AI/EnergySeeds.java b/L2J_DataPack/dist/game/data/scripts/gracia/AI/EnergySeeds.java index ae50aebc9a..c16fd5d950 100644 --- a/L2J_DataPack/dist/game/data/scripts/gracia/AI/EnergySeeds.java +++ b/L2J_DataPack/dist/game/data/scripts/gracia/AI/EnergySeeds.java @@ -18,9 +18,10 @@ */ package gracia.AI; +import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; -import javolution.util.FastMap; import quests.Q00692_HowtoOpposeEvil.Q00692_HowtoOpposeEvil; import ai.npc.AbstractNpcAI; @@ -57,8 +58,8 @@ public class EnergySeeds extends AbstractNpcAI private static final int RATE = 1; private static final int RESPAWN = 480000; private static final int RANDOM_RESPAWN_OFFSET = 180000; - private static Map<Integer, ESSpawn> _spawns = new FastMap<>(); - protected static Map<L2Npc, Integer> _spawnedNpcs = new FastMap<L2Npc, Integer>().shared(); + private static final Map<Integer, ESSpawn> SPAWNS = new HashMap<>(); + protected static final Map<L2Npc, Integer> _spawnedNpcs = new ConcurrentHashMap<>(); private static final int TEMPORARY_TELEPORTER = 32602; // @formatter:off @@ -132,9 +133,9 @@ public class EnergySeeds extends AbstractNpcAI npc.deleteMe(); - if (_spawnedNpcs.containsKey(npc) && _spawns.containsKey(_spawnedNpcs.get(npc))) + if (_spawnedNpcs.containsKey(npc) && SPAWNS.containsKey(_spawnedNpcs.get(npc))) { - ESSpawn spawn = _spawns.get(_spawnedNpcs.get(npc)); + ESSpawn spawn = SPAWNS.get(_spawnedNpcs.get(npc)); spawn.scheduleRespawn(RESPAWN + getRandom(RANDOM_RESPAWN_OFFSET)); _spawnedNpcs.remove(npc); if (isSeedActive(spawn._seedId)) @@ -243,9 +244,9 @@ public class EnergySeeds extends AbstractNpcAI @Override public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon) { - if (_spawnedNpcs.containsKey(npc) && _spawns.containsKey(_spawnedNpcs.get(npc))) + if (_spawnedNpcs.containsKey(npc) && SPAWNS.containsKey(_spawnedNpcs.get(npc))) { - _spawns.get(_spawnedNpcs.get(npc)).scheduleRespawn(RESPAWN + getRandom(RANDOM_RESPAWN_OFFSET)); + SPAWNS.get(_spawnedNpcs.get(npc)).scheduleRespawn(RESPAWN + getRandom(RANDOM_RESPAWN_OFFSET)); _spawnedNpcs.remove(npc); } return super.onKill(npc, player, isSummon); @@ -277,7 +278,7 @@ public class EnergySeeds extends AbstractNpcAI public void startAI() { // spawn all NPCs - for (ESSpawn spawn : _spawns.values()) + for (ESSpawn spawn : SPAWNS.values()) { if (isSeedActive(spawn._seedId)) { @@ -289,7 +290,7 @@ public class EnergySeeds extends AbstractNpcAI public void startAI(GraciaSeeds type) { // spawn all NPCs - for (ESSpawn spawn : _spawns.values()) + for (ESSpawn spawn : SPAWNS.values()) { if (spawn._seedId == type) { @@ -302,7 +303,7 @@ public class EnergySeeds extends AbstractNpcAI { for (L2Npc seed : _spawnedNpcs.keySet()) { - if (type == _spawns.get(_spawnedNpcs.get(seed))._seedId) + if (type == SPAWNS.get(_spawnedNpcs.get(seed))._seedId) { seed.deleteMe(); } @@ -406,336 +407,336 @@ public class EnergySeeds extends AbstractNpcAI // Seed of Destruction // Temporary Teleporters //@formatter:off - _spawns.put(1, new ESSpawn(1, GraciaSeeds.DESTRUCTION, new Location(-245790,220320,-12104), new int[]{TEMPORARY_TELEPORTER})); - _spawns.put(2, new ESSpawn(2, GraciaSeeds.DESTRUCTION, new Location(-249770,207300,-11952), new int[]{TEMPORARY_TELEPORTER})); + SPAWNS.put(1, new ESSpawn(1, GraciaSeeds.DESTRUCTION, new Location(-245790,220320,-12104), new int[]{TEMPORARY_TELEPORTER})); + SPAWNS.put(2, new ESSpawn(2, GraciaSeeds.DESTRUCTION, new Location(-249770,207300,-11952), new int[]{TEMPORARY_TELEPORTER})); //Energy Seeds - _spawns.put(3, new ESSpawn(3, GraciaSeeds.DESTRUCTION, new Location(-248360,219272,-12448), new int[]{18678,18679,18680})); - _spawns.put(4, new ESSpawn(4, GraciaSeeds.DESTRUCTION, new Location(-249448,219256,-12448), new int[]{18678,18679,18680})); - _spawns.put(5, new ESSpawn(5, GraciaSeeds.DESTRUCTION, new Location(-249432,220872,-12448), new int[]{18678,18679,18680})); - _spawns.put(6, new ESSpawn(6, GraciaSeeds.DESTRUCTION, new Location(-248360,220888,-12448), new int[]{18678,18679,18680})); - - _spawns.put(7, new ESSpawn(7, GraciaSeeds.DESTRUCTION, new Location(-250088,219256,-12448), new int[]{18681,18682})); - _spawns.put(8, new ESSpawn(8, GraciaSeeds.DESTRUCTION, new Location(-250600,219272,-12448), new int[]{18681,18682})); - _spawns.put(9, new ESSpawn(9, GraciaSeeds.DESTRUCTION, new Location(-250584,220904,-12448), new int[]{18681,18682})); - _spawns.put(10, new ESSpawn(10, GraciaSeeds.DESTRUCTION, new Location(-250072,220888,-12448), new int[]{18681,18682})); - - _spawns.put(11, new ESSpawn(11, GraciaSeeds.DESTRUCTION, new Location(-253096,217704,-12296), new int[]{18683,18678})); - _spawns.put(12, new ESSpawn(12, GraciaSeeds.DESTRUCTION, new Location(-253112,217048,-12288), new int[]{18683,18678})); - _spawns.put(13, new ESSpawn(13, GraciaSeeds.DESTRUCTION, new Location(-251448,217032,-12288), new int[]{18683,18678})); - _spawns.put(14, new ESSpawn(14, GraciaSeeds.DESTRUCTION, new Location(-251416,217672,-12296), new int[]{18683,18678})); - - _spawns.put(15, new ESSpawn(15, GraciaSeeds.DESTRUCTION, new Location(-251416,217672,-12296), new int[]{18679,18680})); - _spawns.put(16, new ESSpawn(16, GraciaSeeds.DESTRUCTION, new Location(-251416,217016,-12280), new int[]{18679,18680})); - _spawns.put(17, new ESSpawn(17, GraciaSeeds.DESTRUCTION, new Location(-249752,217016,-12280), new int[]{18679,18680})); - _spawns.put(18, new ESSpawn(18, GraciaSeeds.DESTRUCTION, new Location(-249736,217688,-12296), new int[]{18679,18680})); - - _spawns.put(19, new ESSpawn(19, GraciaSeeds.DESTRUCTION, new Location(-252472,215208,-12120), new int[]{18681,18682})); - _spawns.put(20, new ESSpawn(20, GraciaSeeds.DESTRUCTION, new Location(-252552,216760,-12248), new int[]{18681,18682})); - _spawns.put(21, new ESSpawn(21, GraciaSeeds.DESTRUCTION, new Location(-253160,216744,-12248), new int[]{18681,18682})); - _spawns.put(22, new ESSpawn(22, GraciaSeeds.DESTRUCTION, new Location(-253128,215160,-12096), new int[]{18681,18682})); - - _spawns.put(23, new ESSpawn(23, GraciaSeeds.DESTRUCTION, new Location(-250392,215208,-12120), new int[]{18683,18678})); - _spawns.put(24, new ESSpawn(24, GraciaSeeds.DESTRUCTION, new Location(-250264,216744,-12248), new int[]{18683,18678})); - _spawns.put(25, new ESSpawn(25, GraciaSeeds.DESTRUCTION, new Location(-249720,216744,-12248), new int[]{18683,18678})); - _spawns.put(26, new ESSpawn(26, GraciaSeeds.DESTRUCTION, new Location(-249752,215128,-12096), new int[]{18683,18678})); - - _spawns.put(27, new ESSpawn(27, GraciaSeeds.DESTRUCTION, new Location(-250280,216760,-12248), new int[]{18679,18680,18681})); - _spawns.put(28, new ESSpawn(28, GraciaSeeds.DESTRUCTION, new Location(-250344,216152,-12248), new int[]{18679,18680,18681})); - _spawns.put(29, new ESSpawn(29, GraciaSeeds.DESTRUCTION, new Location(-252504,216152,-12248), new int[]{18679,18680,18681})); - _spawns.put(30, new ESSpawn(30, GraciaSeeds.DESTRUCTION, new Location(-252520,216792,-12248), new int[]{18679,18680,18681})); - - _spawns.put(31, new ESSpawn(31, GraciaSeeds.DESTRUCTION, new Location(-242520,217272,-12384), new int[]{18681,18682,18683})); - _spawns.put(32, new ESSpawn(32, GraciaSeeds.DESTRUCTION, new Location(-241432,217288,-12384), new int[]{18681,18682,18683})); - _spawns.put(33, new ESSpawn(33, GraciaSeeds.DESTRUCTION, new Location(-241432,218936,-12384), new int[]{18681,18682,18683})); - _spawns.put(34, new ESSpawn(34, GraciaSeeds.DESTRUCTION, new Location(-242536,218936,-12384), new int[]{18681,18682,18683})); - - _spawns.put(35, new ESSpawn(35, GraciaSeeds.DESTRUCTION, new Location(-240808,217272,-12384), new int[]{18678,18679})); - _spawns.put(36, new ESSpawn(36, GraciaSeeds.DESTRUCTION, new Location(-240280,217272,-12384), new int[]{18678,18679})); - _spawns.put(37, new ESSpawn(37, GraciaSeeds.DESTRUCTION, new Location(-240280,218952,-12384), new int[]{18678,18679})); - _spawns.put(38, new ESSpawn(38, GraciaSeeds.DESTRUCTION, new Location(-240792,218936,-12384), new int[]{18678,18679})); - - _spawns.put(39, new ESSpawn(39, GraciaSeeds.DESTRUCTION, new Location(-239576,217240,-12640), new int[]{18680,18681,18682})); - _spawns.put(40, new ESSpawn(40, GraciaSeeds.DESTRUCTION, new Location(-239560,216168,-12640), new int[]{18680,18681,18682})); - _spawns.put(41, new ESSpawn(41, GraciaSeeds.DESTRUCTION, new Location(-237896,216152,-12640), new int[]{18680,18681,18682})); - _spawns.put(42, new ESSpawn(42, GraciaSeeds.DESTRUCTION, new Location(-237912,217256,-12640), new int[]{18680,18681,18682})); - - _spawns.put(43, new ESSpawn(43, GraciaSeeds.DESTRUCTION, new Location(-237896,215528,-12640), new int[]{18683,18678})); - _spawns.put(44, new ESSpawn(44, GraciaSeeds.DESTRUCTION, new Location(-239560,215528,-12640), new int[]{18683,18678})); - _spawns.put(45, new ESSpawn(45, GraciaSeeds.DESTRUCTION, new Location(-239560,214984,-12640), new int[]{18683,18678})); - _spawns.put(46, new ESSpawn(46, GraciaSeeds.DESTRUCTION, new Location(-237896,215000,-12640), new int[]{18683,18678})); - - _spawns.put(47, new ESSpawn(47, GraciaSeeds.DESTRUCTION, new Location(-237896,213640,-12768), new int[]{18678,18679,18680})); - _spawns.put(48, new ESSpawn(48, GraciaSeeds.DESTRUCTION, new Location(-239560,213640,-12768), new int[]{18678,18679,18680})); - _spawns.put(49, new ESSpawn(49, GraciaSeeds.DESTRUCTION, new Location(-239544,212552,-12768), new int[]{18678,18679,18680})); - _spawns.put(50, new ESSpawn(50, GraciaSeeds.DESTRUCTION, new Location(-237912,212552,-12768), new int[]{18678,18679,18680})); - - _spawns.put(51, new ESSpawn(51, GraciaSeeds.DESTRUCTION, new Location(-237912,211912,-12768), new int[]{18681,18682})); - _spawns.put(52, new ESSpawn(52, GraciaSeeds.DESTRUCTION, new Location(-237912,211400,-12768), new int[]{18681,18682})); - _spawns.put(53, new ESSpawn(53, GraciaSeeds.DESTRUCTION, new Location(-239560,211400,-12768), new int[]{18681,18682})); - _spawns.put(54, new ESSpawn(54, GraciaSeeds.DESTRUCTION, new Location(-239560,211912,-12768), new int[]{18681,18682})); - - _spawns.put(55, new ESSpawn(55, GraciaSeeds.DESTRUCTION, new Location(-241960,214536,-12512), new int[]{18683,18678,18679})); - _spawns.put(56, new ESSpawn(56, GraciaSeeds.DESTRUCTION, new Location(-241976,213448,-12512), new int[]{18683,18678,18679})); - _spawns.put(57, new ESSpawn(57, GraciaSeeds.DESTRUCTION, new Location(-243624,213448,-12512), new int[]{18683,18678,18679})); - _spawns.put(58, new ESSpawn(58, GraciaSeeds.DESTRUCTION, new Location(-243624,214520,-12512), new int[]{18683,18678,18679})); - - _spawns.put(59, new ESSpawn(59, GraciaSeeds.DESTRUCTION, new Location(-241976,212808,-12504), new int[]{18680,18681})); - _spawns.put(60, new ESSpawn(60, GraciaSeeds.DESTRUCTION, new Location(-241960,212280,-12504), new int[]{18680,18681})); - _spawns.put(61, new ESSpawn(61, GraciaSeeds.DESTRUCTION, new Location(-243624,212264,-12504), new int[]{18680,18681})); - _spawns.put(62, new ESSpawn(62, GraciaSeeds.DESTRUCTION, new Location(-243624,212792,-12504), new int[]{18680,18681})); - - _spawns.put(63, new ESSpawn(63, GraciaSeeds.DESTRUCTION, new Location(-243640,210920,-12640), new int[]{18682,18683,18678})); - _spawns.put(64, new ESSpawn(64, GraciaSeeds.DESTRUCTION, new Location(-243624,209832,-12640), new int[]{18682,18683,18678})); - _spawns.put(65, new ESSpawn(65, GraciaSeeds.DESTRUCTION, new Location(-241976,209832,-12640), new int[]{18682,18683,18678})); - _spawns.put(66, new ESSpawn(66, GraciaSeeds.DESTRUCTION, new Location(-241976,210920,-12640), new int[]{18682,18683,18678})); - - _spawns.put(67, new ESSpawn(67, GraciaSeeds.DESTRUCTION, new Location(-241976,209192,-12640), new int[]{18679,18680})); - _spawns.put(68, new ESSpawn(68, GraciaSeeds.DESTRUCTION, new Location(-241976,208664,-12640), new int[]{18679,18680})); - _spawns.put(69, new ESSpawn(69, GraciaSeeds.DESTRUCTION, new Location(-243624,208664,-12640), new int[]{18679,18680})); - _spawns.put(70, new ESSpawn(70, GraciaSeeds.DESTRUCTION, new Location(-243624,209192,-12640), new int[]{18679,18680})); - - _spawns.put(71, new ESSpawn(71, GraciaSeeds.DESTRUCTION, new Location(-241256,208664,-12896), new int[]{18681,18682,18683})); - _spawns.put(72, new ESSpawn(72, GraciaSeeds.DESTRUCTION, new Location(-240168,208648,-12896), new int[]{18681,18682,18683})); - _spawns.put(73, new ESSpawn(73, GraciaSeeds.DESTRUCTION, new Location(-240168,207000,-12896), new int[]{18681,18682,18683})); - _spawns.put(74, new ESSpawn(74, GraciaSeeds.DESTRUCTION, new Location(-241256,207000,-12896), new int[]{18681,18682,18683})); - - _spawns.put(75, new ESSpawn(75, GraciaSeeds.DESTRUCTION, new Location(-239528,208648,-12896), new int[]{18678,18679})); - _spawns.put(76, new ESSpawn(76, GraciaSeeds.DESTRUCTION, new Location(-238984,208664,-12896), new int[]{18678,18679})); - _spawns.put(77, new ESSpawn(77, GraciaSeeds.DESTRUCTION, new Location(-239000,207000,-12896), new int[]{18678,18679})); - _spawns.put(78, new ESSpawn(78, GraciaSeeds.DESTRUCTION, new Location(-239512,207000,-12896), new int[]{18678,18679})); - - _spawns.put(79, new ESSpawn(79, GraciaSeeds.DESTRUCTION, new Location(-245064,213144,-12384), new int[]{18680,18681,18682})); - _spawns.put(80, new ESSpawn(80, GraciaSeeds.DESTRUCTION, new Location(-245064,212072,-12384), new int[]{18680,18681,18682})); - _spawns.put(81, new ESSpawn(81, GraciaSeeds.DESTRUCTION, new Location(-246696,212072,-12384), new int[]{18680,18681,18682})); - _spawns.put(82, new ESSpawn(82, GraciaSeeds.DESTRUCTION, new Location(-246696,213160,-12384), new int[]{18680,18681,18682})); - - _spawns.put(83, new ESSpawn(83, GraciaSeeds.DESTRUCTION, new Location(-245064,211416,-12384), new int[]{18683,18678})); - _spawns.put(84, new ESSpawn(84, GraciaSeeds.DESTRUCTION, new Location(-245048,210904,-12384), new int[]{18683,18678})); - _spawns.put(85, new ESSpawn(85, GraciaSeeds.DESTRUCTION, new Location(-246712,210888,-12384), new int[]{18683,18678})); - _spawns.put(86, new ESSpawn(86, GraciaSeeds.DESTRUCTION, new Location(-246712,211416,-12384), new int[]{18683,18678})); - - _spawns.put(87, new ESSpawn(87, GraciaSeeds.DESTRUCTION, new Location(-245048,209544,-12512), new int[]{18679,18680,18681})); - _spawns.put(88, new ESSpawn(88, GraciaSeeds.DESTRUCTION, new Location(-245064,208456,-12512), new int[]{18679,18680,18681})); - _spawns.put(89, new ESSpawn(89, GraciaSeeds.DESTRUCTION, new Location(-246696,208456,-12512), new int[]{18679,18680,18681})); - _spawns.put(90, new ESSpawn(90, GraciaSeeds.DESTRUCTION, new Location(-246712,209544,-12512), new int[]{18679,18680,18681})); - - _spawns.put(91, new ESSpawn(91, GraciaSeeds.DESTRUCTION, new Location(-245048,207816,-12512), new int[]{18682,18683})); - _spawns.put(92, new ESSpawn(92, GraciaSeeds.DESTRUCTION, new Location(-245048,207288,-12512), new int[]{18682,18683})); - _spawns.put(93, new ESSpawn(93, GraciaSeeds.DESTRUCTION, new Location(-246696,207304,-12512), new int[]{18682,18683})); - _spawns.put(94, new ESSpawn(94, GraciaSeeds.DESTRUCTION, new Location(-246712,207816,-12512), new int[]{18682,18683})); - - _spawns.put(95, new ESSpawn(95, GraciaSeeds.DESTRUCTION, new Location(-244328,207272,-12768), new int[]{18678,18679,18680})); - _spawns.put(96, new ESSpawn(96, GraciaSeeds.DESTRUCTION, new Location(-243256,207256,-12768), new int[]{18678,18679,18680})); - _spawns.put(97, new ESSpawn(97, GraciaSeeds.DESTRUCTION, new Location(-243256,205624,-12768), new int[]{18678,18679,18680})); - _spawns.put(98, new ESSpawn(98, GraciaSeeds.DESTRUCTION, new Location(-244328,205608,-12768), new int[]{18678,18679,18680})); - - _spawns.put(99, new ESSpawn(99, GraciaSeeds.DESTRUCTION, new Location(-242616,207272,-12768), new int[]{18681,18682})); - _spawns.put(100, new ESSpawn(100, GraciaSeeds.DESTRUCTION, new Location(-242104,207272,-12768), new int[]{18681,18682})); - _spawns.put(101, new ESSpawn(101, GraciaSeeds.DESTRUCTION, new Location(-242088,205624,-12768), new int[]{18681,18682})); - _spawns.put(102, new ESSpawn(102, GraciaSeeds.DESTRUCTION, new Location(-242600,205608,-12768), new int[]{18681,18682})); + SPAWNS.put(3, new ESSpawn(3, GraciaSeeds.DESTRUCTION, new Location(-248360,219272,-12448), new int[]{18678,18679,18680})); + SPAWNS.put(4, new ESSpawn(4, GraciaSeeds.DESTRUCTION, new Location(-249448,219256,-12448), new int[]{18678,18679,18680})); + SPAWNS.put(5, new ESSpawn(5, GraciaSeeds.DESTRUCTION, new Location(-249432,220872,-12448), new int[]{18678,18679,18680})); + SPAWNS.put(6, new ESSpawn(6, GraciaSeeds.DESTRUCTION, new Location(-248360,220888,-12448), new int[]{18678,18679,18680})); + + SPAWNS.put(7, new ESSpawn(7, GraciaSeeds.DESTRUCTION, new Location(-250088,219256,-12448), new int[]{18681,18682})); + SPAWNS.put(8, new ESSpawn(8, GraciaSeeds.DESTRUCTION, new Location(-250600,219272,-12448), new int[]{18681,18682})); + SPAWNS.put(9, new ESSpawn(9, GraciaSeeds.DESTRUCTION, new Location(-250584,220904,-12448), new int[]{18681,18682})); + SPAWNS.put(10, new ESSpawn(10, GraciaSeeds.DESTRUCTION, new Location(-250072,220888,-12448), new int[]{18681,18682})); + + SPAWNS.put(11, new ESSpawn(11, GraciaSeeds.DESTRUCTION, new Location(-253096,217704,-12296), new int[]{18683,18678})); + SPAWNS.put(12, new ESSpawn(12, GraciaSeeds.DESTRUCTION, new Location(-253112,217048,-12288), new int[]{18683,18678})); + SPAWNS.put(13, new ESSpawn(13, GraciaSeeds.DESTRUCTION, new Location(-251448,217032,-12288), new int[]{18683,18678})); + SPAWNS.put(14, new ESSpawn(14, GraciaSeeds.DESTRUCTION, new Location(-251416,217672,-12296), new int[]{18683,18678})); + + SPAWNS.put(15, new ESSpawn(15, GraciaSeeds.DESTRUCTION, new Location(-251416,217672,-12296), new int[]{18679,18680})); + SPAWNS.put(16, new ESSpawn(16, GraciaSeeds.DESTRUCTION, new Location(-251416,217016,-12280), new int[]{18679,18680})); + SPAWNS.put(17, new ESSpawn(17, GraciaSeeds.DESTRUCTION, new Location(-249752,217016,-12280), new int[]{18679,18680})); + SPAWNS.put(18, new ESSpawn(18, GraciaSeeds.DESTRUCTION, new Location(-249736,217688,-12296), new int[]{18679,18680})); + + SPAWNS.put(19, new ESSpawn(19, GraciaSeeds.DESTRUCTION, new Location(-252472,215208,-12120), new int[]{18681,18682})); + SPAWNS.put(20, new ESSpawn(20, GraciaSeeds.DESTRUCTION, new Location(-252552,216760,-12248), new int[]{18681,18682})); + SPAWNS.put(21, new ESSpawn(21, GraciaSeeds.DESTRUCTION, new Location(-253160,216744,-12248), new int[]{18681,18682})); + SPAWNS.put(22, new ESSpawn(22, GraciaSeeds.DESTRUCTION, new Location(-253128,215160,-12096), new int[]{18681,18682})); + + SPAWNS.put(23, new ESSpawn(23, GraciaSeeds.DESTRUCTION, new Location(-250392,215208,-12120), new int[]{18683,18678})); + SPAWNS.put(24, new ESSpawn(24, GraciaSeeds.DESTRUCTION, new Location(-250264,216744,-12248), new int[]{18683,18678})); + SPAWNS.put(25, new ESSpawn(25, GraciaSeeds.DESTRUCTION, new Location(-249720,216744,-12248), new int[]{18683,18678})); + SPAWNS.put(26, new ESSpawn(26, GraciaSeeds.DESTRUCTION, new Location(-249752,215128,-12096), new int[]{18683,18678})); + + SPAWNS.put(27, new ESSpawn(27, GraciaSeeds.DESTRUCTION, new Location(-250280,216760,-12248), new int[]{18679,18680,18681})); + SPAWNS.put(28, new ESSpawn(28, GraciaSeeds.DESTRUCTION, new Location(-250344,216152,-12248), new int[]{18679,18680,18681})); + SPAWNS.put(29, new ESSpawn(29, GraciaSeeds.DESTRUCTION, new Location(-252504,216152,-12248), new int[]{18679,18680,18681})); + SPAWNS.put(30, new ESSpawn(30, GraciaSeeds.DESTRUCTION, new Location(-252520,216792,-12248), new int[]{18679,18680,18681})); + + SPAWNS.put(31, new ESSpawn(31, GraciaSeeds.DESTRUCTION, new Location(-242520,217272,-12384), new int[]{18681,18682,18683})); + SPAWNS.put(32, new ESSpawn(32, GraciaSeeds.DESTRUCTION, new Location(-241432,217288,-12384), new int[]{18681,18682,18683})); + SPAWNS.put(33, new ESSpawn(33, GraciaSeeds.DESTRUCTION, new Location(-241432,218936,-12384), new int[]{18681,18682,18683})); + SPAWNS.put(34, new ESSpawn(34, GraciaSeeds.DESTRUCTION, new Location(-242536,218936,-12384), new int[]{18681,18682,18683})); + + SPAWNS.put(35, new ESSpawn(35, GraciaSeeds.DESTRUCTION, new Location(-240808,217272,-12384), new int[]{18678,18679})); + SPAWNS.put(36, new ESSpawn(36, GraciaSeeds.DESTRUCTION, new Location(-240280,217272,-12384), new int[]{18678,18679})); + SPAWNS.put(37, new ESSpawn(37, GraciaSeeds.DESTRUCTION, new Location(-240280,218952,-12384), new int[]{18678,18679})); + SPAWNS.put(38, new ESSpawn(38, GraciaSeeds.DESTRUCTION, new Location(-240792,218936,-12384), new int[]{18678,18679})); + + SPAWNS.put(39, new ESSpawn(39, GraciaSeeds.DESTRUCTION, new Location(-239576,217240,-12640), new int[]{18680,18681,18682})); + SPAWNS.put(40, new ESSpawn(40, GraciaSeeds.DESTRUCTION, new Location(-239560,216168,-12640), new int[]{18680,18681,18682})); + SPAWNS.put(41, new ESSpawn(41, GraciaSeeds.DESTRUCTION, new Location(-237896,216152,-12640), new int[]{18680,18681,18682})); + SPAWNS.put(42, new ESSpawn(42, GraciaSeeds.DESTRUCTION, new Location(-237912,217256,-12640), new int[]{18680,18681,18682})); + + SPAWNS.put(43, new ESSpawn(43, GraciaSeeds.DESTRUCTION, new Location(-237896,215528,-12640), new int[]{18683,18678})); + SPAWNS.put(44, new ESSpawn(44, GraciaSeeds.DESTRUCTION, new Location(-239560,215528,-12640), new int[]{18683,18678})); + SPAWNS.put(45, new ESSpawn(45, GraciaSeeds.DESTRUCTION, new Location(-239560,214984,-12640), new int[]{18683,18678})); + SPAWNS.put(46, new ESSpawn(46, GraciaSeeds.DESTRUCTION, new Location(-237896,215000,-12640), new int[]{18683,18678})); + + SPAWNS.put(47, new ESSpawn(47, GraciaSeeds.DESTRUCTION, new Location(-237896,213640,-12768), new int[]{18678,18679,18680})); + SPAWNS.put(48, new ESSpawn(48, GraciaSeeds.DESTRUCTION, new Location(-239560,213640,-12768), new int[]{18678,18679,18680})); + SPAWNS.put(49, new ESSpawn(49, GraciaSeeds.DESTRUCTION, new Location(-239544,212552,-12768), new int[]{18678,18679,18680})); + SPAWNS.put(50, new ESSpawn(50, GraciaSeeds.DESTRUCTION, new Location(-237912,212552,-12768), new int[]{18678,18679,18680})); + + SPAWNS.put(51, new ESSpawn(51, GraciaSeeds.DESTRUCTION, new Location(-237912,211912,-12768), new int[]{18681,18682})); + SPAWNS.put(52, new ESSpawn(52, GraciaSeeds.DESTRUCTION, new Location(-237912,211400,-12768), new int[]{18681,18682})); + SPAWNS.put(53, new ESSpawn(53, GraciaSeeds.DESTRUCTION, new Location(-239560,211400,-12768), new int[]{18681,18682})); + SPAWNS.put(54, new ESSpawn(54, GraciaSeeds.DESTRUCTION, new Location(-239560,211912,-12768), new int[]{18681,18682})); + + SPAWNS.put(55, new ESSpawn(55, GraciaSeeds.DESTRUCTION, new Location(-241960,214536,-12512), new int[]{18683,18678,18679})); + SPAWNS.put(56, new ESSpawn(56, GraciaSeeds.DESTRUCTION, new Location(-241976,213448,-12512), new int[]{18683,18678,18679})); + SPAWNS.put(57, new ESSpawn(57, GraciaSeeds.DESTRUCTION, new Location(-243624,213448,-12512), new int[]{18683,18678,18679})); + SPAWNS.put(58, new ESSpawn(58, GraciaSeeds.DESTRUCTION, new Location(-243624,214520,-12512), new int[]{18683,18678,18679})); + + SPAWNS.put(59, new ESSpawn(59, GraciaSeeds.DESTRUCTION, new Location(-241976,212808,-12504), new int[]{18680,18681})); + SPAWNS.put(60, new ESSpawn(60, GraciaSeeds.DESTRUCTION, new Location(-241960,212280,-12504), new int[]{18680,18681})); + SPAWNS.put(61, new ESSpawn(61, GraciaSeeds.DESTRUCTION, new Location(-243624,212264,-12504), new int[]{18680,18681})); + SPAWNS.put(62, new ESSpawn(62, GraciaSeeds.DESTRUCTION, new Location(-243624,212792,-12504), new int[]{18680,18681})); + + SPAWNS.put(63, new ESSpawn(63, GraciaSeeds.DESTRUCTION, new Location(-243640,210920,-12640), new int[]{18682,18683,18678})); + SPAWNS.put(64, new ESSpawn(64, GraciaSeeds.DESTRUCTION, new Location(-243624,209832,-12640), new int[]{18682,18683,18678})); + SPAWNS.put(65, new ESSpawn(65, GraciaSeeds.DESTRUCTION, new Location(-241976,209832,-12640), new int[]{18682,18683,18678})); + SPAWNS.put(66, new ESSpawn(66, GraciaSeeds.DESTRUCTION, new Location(-241976,210920,-12640), new int[]{18682,18683,18678})); + + SPAWNS.put(67, new ESSpawn(67, GraciaSeeds.DESTRUCTION, new Location(-241976,209192,-12640), new int[]{18679,18680})); + SPAWNS.put(68, new ESSpawn(68, GraciaSeeds.DESTRUCTION, new Location(-241976,208664,-12640), new int[]{18679,18680})); + SPAWNS.put(69, new ESSpawn(69, GraciaSeeds.DESTRUCTION, new Location(-243624,208664,-12640), new int[]{18679,18680})); + SPAWNS.put(70, new ESSpawn(70, GraciaSeeds.DESTRUCTION, new Location(-243624,209192,-12640), new int[]{18679,18680})); + + SPAWNS.put(71, new ESSpawn(71, GraciaSeeds.DESTRUCTION, new Location(-241256,208664,-12896), new int[]{18681,18682,18683})); + SPAWNS.put(72, new ESSpawn(72, GraciaSeeds.DESTRUCTION, new Location(-240168,208648,-12896), new int[]{18681,18682,18683})); + SPAWNS.put(73, new ESSpawn(73, GraciaSeeds.DESTRUCTION, new Location(-240168,207000,-12896), new int[]{18681,18682,18683})); + SPAWNS.put(74, new ESSpawn(74, GraciaSeeds.DESTRUCTION, new Location(-241256,207000,-12896), new int[]{18681,18682,18683})); + + SPAWNS.put(75, new ESSpawn(75, GraciaSeeds.DESTRUCTION, new Location(-239528,208648,-12896), new int[]{18678,18679})); + SPAWNS.put(76, new ESSpawn(76, GraciaSeeds.DESTRUCTION, new Location(-238984,208664,-12896), new int[]{18678,18679})); + SPAWNS.put(77, new ESSpawn(77, GraciaSeeds.DESTRUCTION, new Location(-239000,207000,-12896), new int[]{18678,18679})); + SPAWNS.put(78, new ESSpawn(78, GraciaSeeds.DESTRUCTION, new Location(-239512,207000,-12896), new int[]{18678,18679})); + + SPAWNS.put(79, new ESSpawn(79, GraciaSeeds.DESTRUCTION, new Location(-245064,213144,-12384), new int[]{18680,18681,18682})); + SPAWNS.put(80, new ESSpawn(80, GraciaSeeds.DESTRUCTION, new Location(-245064,212072,-12384), new int[]{18680,18681,18682})); + SPAWNS.put(81, new ESSpawn(81, GraciaSeeds.DESTRUCTION, new Location(-246696,212072,-12384), new int[]{18680,18681,18682})); + SPAWNS.put(82, new ESSpawn(82, GraciaSeeds.DESTRUCTION, new Location(-246696,213160,-12384), new int[]{18680,18681,18682})); + + SPAWNS.put(83, new ESSpawn(83, GraciaSeeds.DESTRUCTION, new Location(-245064,211416,-12384), new int[]{18683,18678})); + SPAWNS.put(84, new ESSpawn(84, GraciaSeeds.DESTRUCTION, new Location(-245048,210904,-12384), new int[]{18683,18678})); + SPAWNS.put(85, new ESSpawn(85, GraciaSeeds.DESTRUCTION, new Location(-246712,210888,-12384), new int[]{18683,18678})); + SPAWNS.put(86, new ESSpawn(86, GraciaSeeds.DESTRUCTION, new Location(-246712,211416,-12384), new int[]{18683,18678})); + + SPAWNS.put(87, new ESSpawn(87, GraciaSeeds.DESTRUCTION, new Location(-245048,209544,-12512), new int[]{18679,18680,18681})); + SPAWNS.put(88, new ESSpawn(88, GraciaSeeds.DESTRUCTION, new Location(-245064,208456,-12512), new int[]{18679,18680,18681})); + SPAWNS.put(89, new ESSpawn(89, GraciaSeeds.DESTRUCTION, new Location(-246696,208456,-12512), new int[]{18679,18680,18681})); + SPAWNS.put(90, new ESSpawn(90, GraciaSeeds.DESTRUCTION, new Location(-246712,209544,-12512), new int[]{18679,18680,18681})); + + SPAWNS.put(91, new ESSpawn(91, GraciaSeeds.DESTRUCTION, new Location(-245048,207816,-12512), new int[]{18682,18683})); + SPAWNS.put(92, new ESSpawn(92, GraciaSeeds.DESTRUCTION, new Location(-245048,207288,-12512), new int[]{18682,18683})); + SPAWNS.put(93, new ESSpawn(93, GraciaSeeds.DESTRUCTION, new Location(-246696,207304,-12512), new int[]{18682,18683})); + SPAWNS.put(94, new ESSpawn(94, GraciaSeeds.DESTRUCTION, new Location(-246712,207816,-12512), new int[]{18682,18683})); + + SPAWNS.put(95, new ESSpawn(95, GraciaSeeds.DESTRUCTION, new Location(-244328,207272,-12768), new int[]{18678,18679,18680})); + SPAWNS.put(96, new ESSpawn(96, GraciaSeeds.DESTRUCTION, new Location(-243256,207256,-12768), new int[]{18678,18679,18680})); + SPAWNS.put(97, new ESSpawn(97, GraciaSeeds.DESTRUCTION, new Location(-243256,205624,-12768), new int[]{18678,18679,18680})); + SPAWNS.put(98, new ESSpawn(98, GraciaSeeds.DESTRUCTION, new Location(-244328,205608,-12768), new int[]{18678,18679,18680})); + + SPAWNS.put(99, new ESSpawn(99, GraciaSeeds.DESTRUCTION, new Location(-242616,207272,-12768), new int[]{18681,18682})); + SPAWNS.put(100, new ESSpawn(100, GraciaSeeds.DESTRUCTION, new Location(-242104,207272,-12768), new int[]{18681,18682})); + SPAWNS.put(101, new ESSpawn(101, GraciaSeeds.DESTRUCTION, new Location(-242088,205624,-12768), new int[]{18681,18682})); + SPAWNS.put(102, new ESSpawn(102, GraciaSeeds.DESTRUCTION, new Location(-242600,205608,-12768), new int[]{18681,18682})); // Seed of Annihilation - _spawns.put(103, new ESSpawn(103, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184519,183007,-10456), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(104, new ESSpawn(104, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184873,181445,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(105, new ESSpawn(105, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184009,180962,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(106, new ESSpawn(106, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185321,181641,-10448), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(107, new ESSpawn(107, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184035,182775,-10512), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(108, new ESSpawn(108, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185433,181935,-10424), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(109, new ESSpawn(109, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183309,183007,-10560), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(110, new ESSpawn(110, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184929,181886,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(111, new ESSpawn(111, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184009,180392,-10424), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(112, new ESSpawn(112, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183793,183239,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(113, new ESSpawn(113, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184245,180848,-10464), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(114, new ESSpawn(114, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-182704,183761,-10528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(115, new ESSpawn(115, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184705,181886,-10504), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(116, new ESSpawn(116, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184304,181076,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(117, new ESSpawn(117, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183596,180430,-10424), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(118, new ESSpawn(118, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184422,181038,-10480), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(119, new ESSpawn(119, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184929,181543,-10496), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(120, new ESSpawn(120, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184398,182891,-10472), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(121, new ESSpawn(121, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177606,182848,-10584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(122, new ESSpawn(122, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178104,183224,-10560), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(123, new ESSpawn(123, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177274,182284,-10600), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(124, new ESSpawn(124, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177772,183224,-10560), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(125, new ESSpawn(125, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181532,180364,-10504), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(126, new ESSpawn(126, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181802,180276,-10496), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(127, new ESSpawn(127, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178429,180444,-10512), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(128, new ESSpawn(128, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177606,182190,-10600), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(129, new ESSpawn(129, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177357,181908,-10576), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(130, new ESSpawn(130, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178747,179534,-10408), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(131, new ESSpawn(131, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178429,179534,-10392), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(132, new ESSpawn(132, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178853,180094,-10472), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(133, new ESSpawn(133, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181937,179660,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(134, new ESSpawn(134, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-180992,179572,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(135, new ESSpawn(135, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185552,179252,-10368), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(136, new ESSpawn(136, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184572,178913,-10400), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(137, new ESSpawn(137, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184768,178348,-10312), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(138, new ESSpawn(138, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184572,178574,-10352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(139, new ESSpawn(139, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185062,178913,-10384), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(140, new ESSpawn(140, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181397,179484,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(141, new ESSpawn(141, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181667,179044,-10408), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(142, new ESSpawn(142, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185258,177896,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(143, new ESSpawn(143, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183506,176570,-10280), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(144, new ESSpawn(144, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183719,176804,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(145, new ESSpawn(145, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183648,177116,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(146, new ESSpawn(146, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183932,176492,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(147, new ESSpawn(147, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183861,176570,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(148, new ESSpawn(148, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183790,175946,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(149, new ESSpawn(149, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178641,179604,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(150, new ESSpawn(150, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178959,179814,-10432), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(151, new ESSpawn(151, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-176367,178456,-10376), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(152, new ESSpawn(152, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-175845,177172,-10264), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(153, new ESSpawn(153, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-175323,177600,-10248), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(154, new ESSpawn(154, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-174975,177172,-10216), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(155, new ESSpawn(155, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-176019,178242,-10352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(156, new ESSpawn(156, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-174801,178456,-10264), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - - _spawns.put(157, new ESSpawn(157, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185648,183384,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(158, new ESSpawn(158, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186740,180908,-15528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(159, new ESSpawn(159, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185297,184658,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(160, new ESSpawn(160, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185697,181601,-15488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(161, new ESSpawn(161, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186684,182744,-15536), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(162, new ESSpawn(162, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184908,183384,-15616), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(163, new ESSpawn(163, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184994,185572,-15784), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(164, new ESSpawn(164, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185796,182616,-15608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(165, new ESSpawn(165, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184970,184385,-15648), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(166, new ESSpawn(166, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185995,180809,-15512), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(167, new ESSpawn(167, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185352,182872,-15632), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(168, new ESSpawn(168, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185624,184294,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(169, new ESSpawn(169, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184486,185774,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(170, new ESSpawn(170, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186496,184112,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(171, new ESSpawn(171, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184232,185976,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(172, new ESSpawn(172, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184994,185673,-15792), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(173, new ESSpawn(173, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185733,184203,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(174, new ESSpawn(174, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185079,184294,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(175, new ESSpawn(175, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184803,180710,-15528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(176, new ESSpawn(176, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186293,180413,-15528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(177, new ESSpawn(177, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185352,182936,-15632), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(178, new ESSpawn(178, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184356,180611,-15496), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(179, new ESSpawn(179, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185375,186784,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(180, new ESSpawn(180, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184867,186784,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(181, new ESSpawn(181, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180553,180454,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(182, new ESSpawn(182, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180422,180454,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(183, new ESSpawn(183, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-181863,181138,-15120), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(184, new ESSpawn(184, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-181732,180454,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(185, new ESSpawn(185, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180684,180397,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(186, new ESSpawn(186, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-182256,180682,-15112), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(187, new ESSpawn(187, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185492,179492,-15392), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(188, new ESSpawn(188, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185894,178538,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(189, new ESSpawn(189, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186028,178856,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(190, new ESSpawn(190, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185224,179068,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(191, new ESSpawn(191, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185492,178538,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(192, new ESSpawn(192, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185894,178538,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(193, new ESSpawn(193, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180619,178855,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(194, new ESSpawn(194, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180255,177892,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(195, new ESSpawn(195, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185804,176472,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(196, new ESSpawn(196, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184580,176370,-15320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(197, new ESSpawn(197, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184308,176166,-15320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(198, new ESSpawn(198, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-183764,177186,-15304), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(199, new ESSpawn(199, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180801,177571,-15144), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(200, new ESSpawn(200, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184716,176064,-15320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(201, new ESSpawn(201, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184444,175452,-15296), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(202, new ESSpawn(202, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180164,177464,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(203, new ESSpawn(203, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180164,178213,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(204, new ESSpawn(204, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-179982,178320,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(205, new ESSpawn(205, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176925,177757,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(206, new ESSpawn(206, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176164,179282,-15720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(207, new ESSpawn(207, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175692,177613,-15800), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(208, new ESSpawn(208, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175418,178117,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(209, new ESSpawn(209, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176103,177829,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(210, new ESSpawn(210, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175966,177325,-15792), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(211, new ESSpawn(211, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174778,179732,-15664), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(212, new ESSpawn(212, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175692,178261,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(213, new ESSpawn(213, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176038,179192,-15736), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(214, new ESSpawn(214, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175660,179462,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(215, new ESSpawn(215, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175912,179732,-15664), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(216, new ESSpawn(216, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175156,180182,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(217, new ESSpawn(217, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174240,182059,-15664), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(218, new ESSpawn(218, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175590,181478,-15640), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(219, new ESSpawn(219, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174510,181561,-15616), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(220, new ESSpawn(220, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174240,182391,-15688), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(221, new ESSpawn(221, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174105,182806,-15672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(222, new ESSpawn(222, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174645,182806,-15712), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - - _spawns.put(223, new ESSpawn(223, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-214962,182403,-10992), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(224, new ESSpawn(224, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-215019,182493,-11000), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(225, new ESSpawn(225, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-211374,180793,-11672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(226, new ESSpawn(226, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-211198,180661,-11680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(227, new ESSpawn(227, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-213097,178936,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(228, new ESSpawn(228, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-213517,178936,-12712), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(229, new ESSpawn(229, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-214105,179191,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(230, new ESSpawn(230, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-213769,179446,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(231, new ESSpawn(231, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-214021,179344,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(232, new ESSpawn(232, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-210582,180595,-11672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(233, new ESSpawn(233, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-210934,180661,-11696), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(234, new ESSpawn(234, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207058,178460,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(235, new ESSpawn(235, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207454,179151,-11368), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(236, new ESSpawn(236, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207422,181365,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(237, new ESSpawn(237, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207358,180627,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(238, new ESSpawn(238, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207230,180996,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(239, new ESSpawn(239, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-208515,184160,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(240, new ESSpawn(240, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207613,184000,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(241, new ESSpawn(241, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-208597,183760,-11352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(242, new ESSpawn(242, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206710,176142,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(243, new ESSpawn(243, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206361,178136,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(244, new ESSpawn(244, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206178,178630,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(245, new ESSpawn(245, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-205738,178715,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(246, new ESSpawn(246, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206442,178205,-12648), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(247, new ESSpawn(247, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206585,178874,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(248, new ESSpawn(248, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206073,179366,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(249, new ESSpawn(249, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206009,178628,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(250, new ESSpawn(250, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206155,181301,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(251, new ESSpawn(251, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206595,181641,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(252, new ESSpawn(252, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206507,181641,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(253, new ESSpawn(253, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206507,181471,-12640), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(254, new ESSpawn(254, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206974,175972,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(255, new ESSpawn(255, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206304,175130,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(256, new ESSpawn(256, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206886,175802,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(257, new ESSpawn(257, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207238,175972,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(258, new ESSpawn(258, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206386,174857,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(259, new ESSpawn(259, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206386,175039,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(260, new ESSpawn(260, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-205976,174584,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(261, new ESSpawn(261, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207367,184320,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(262, new ESSpawn(262, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219002,180419,-12608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(263, new ESSpawn(263, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218853,182790,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(264, new ESSpawn(264, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218853,183343,-12600), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(265, new ESSpawn(265, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218358,186247,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(266, new ESSpawn(266, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218358,186083,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(267, new ESSpawn(267, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-217574,185796,-11352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(268, new ESSpawn(268, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219178,181051,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(269, new ESSpawn(269, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-220171,180313,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(270, new ESSpawn(270, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219293,183738,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(271, new ESSpawn(271, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219381,182553,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(272, new ESSpawn(272, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219600,183024,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(273, new ESSpawn(273, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219940,182680,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(274, new ESSpawn(274, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219260,183884,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(275, new ESSpawn(275, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219855,183540,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(276, new ESSpawn(276, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218946,186575,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(277, new ESSpawn(277, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219882,180103,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(278, new ESSpawn(278, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219266,179787,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(279, new ESSpawn(279, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219201,178337,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(280, new ESSpawn(280, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219716,179875,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(281, new ESSpawn(281, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219716,180021,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(282, new ESSpawn(282, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219989,179437,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(283, new ESSpawn(283, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219078,178298,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(284, new ESSpawn(284, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218684,178954,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(285, new ESSpawn(285, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219089,178456,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(286, new ESSpawn(286, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-220266,177623,-12608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(287, new ESSpawn(287, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219201,178025,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(288, new ESSpawn(288, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219142,177044,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(289, new ESSpawn(289, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219690,177895,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(290, new ESSpawn(290, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219754,177623,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(291, new ESSpawn(291, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218791,177830,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(292, new ESSpawn(292, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218904,176219,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(293, new ESSpawn(293, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218768,176384,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(294, new ESSpawn(294, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218774,177626,-11320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(295, new ESSpawn(295, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218774,177792,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(296, new ESSpawn(296, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219880,175901,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(297, new ESSpawn(297, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219210,176054,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(298, new ESSpawn(298, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219850,175991,-12608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(299, new ESSpawn(299, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219079,175021,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(300, new ESSpawn(300, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218812,174229,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); - _spawns.put(301, new ESSpawn(301, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218723,174669,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(103, new ESSpawn(103, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184519,183007,-10456), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(104, new ESSpawn(104, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184873,181445,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(105, new ESSpawn(105, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184009,180962,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(106, new ESSpawn(106, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185321,181641,-10448), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(107, new ESSpawn(107, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184035,182775,-10512), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(108, new ESSpawn(108, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185433,181935,-10424), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(109, new ESSpawn(109, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183309,183007,-10560), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(110, new ESSpawn(110, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184929,181886,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(111, new ESSpawn(111, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184009,180392,-10424), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(112, new ESSpawn(112, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183793,183239,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(113, new ESSpawn(113, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184245,180848,-10464), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(114, new ESSpawn(114, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-182704,183761,-10528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(115, new ESSpawn(115, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184705,181886,-10504), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(116, new ESSpawn(116, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184304,181076,-10488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(117, new ESSpawn(117, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183596,180430,-10424), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(118, new ESSpawn(118, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184422,181038,-10480), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(119, new ESSpawn(119, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184929,181543,-10496), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(120, new ESSpawn(120, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184398,182891,-10472), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(121, new ESSpawn(121, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177606,182848,-10584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(122, new ESSpawn(122, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178104,183224,-10560), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(123, new ESSpawn(123, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177274,182284,-10600), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(124, new ESSpawn(124, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177772,183224,-10560), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(125, new ESSpawn(125, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181532,180364,-10504), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(126, new ESSpawn(126, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181802,180276,-10496), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(127, new ESSpawn(127, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178429,180444,-10512), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(128, new ESSpawn(128, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177606,182190,-10600), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(129, new ESSpawn(129, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-177357,181908,-10576), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(130, new ESSpawn(130, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178747,179534,-10408), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(131, new ESSpawn(131, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178429,179534,-10392), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(132, new ESSpawn(132, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178853,180094,-10472), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(133, new ESSpawn(133, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181937,179660,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(134, new ESSpawn(134, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-180992,179572,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(135, new ESSpawn(135, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185552,179252,-10368), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(136, new ESSpawn(136, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184572,178913,-10400), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(137, new ESSpawn(137, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184768,178348,-10312), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(138, new ESSpawn(138, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-184572,178574,-10352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(139, new ESSpawn(139, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185062,178913,-10384), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(140, new ESSpawn(140, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181397,179484,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(141, new ESSpawn(141, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-181667,179044,-10408), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(142, new ESSpawn(142, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-185258,177896,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(143, new ESSpawn(143, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183506,176570,-10280), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(144, new ESSpawn(144, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183719,176804,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(145, new ESSpawn(145, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183648,177116,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(146, new ESSpawn(146, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183932,176492,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(147, new ESSpawn(147, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183861,176570,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(148, new ESSpawn(148, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-183790,175946,-10240), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(149, new ESSpawn(149, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178641,179604,-10416), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(150, new ESSpawn(150, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-178959,179814,-10432), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(151, new ESSpawn(151, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-176367,178456,-10376), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(152, new ESSpawn(152, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-175845,177172,-10264), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(153, new ESSpawn(153, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-175323,177600,-10248), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(154, new ESSpawn(154, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-174975,177172,-10216), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(155, new ESSpawn(155, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-176019,178242,-10352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(156, new ESSpawn(156, GraciaSeeds.ANNIHILATION_BISTAKON, new Location(-174801,178456,-10264), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + + SPAWNS.put(157, new ESSpawn(157, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185648,183384,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(158, new ESSpawn(158, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186740,180908,-15528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(159, new ESSpawn(159, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185297,184658,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(160, new ESSpawn(160, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185697,181601,-15488), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(161, new ESSpawn(161, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186684,182744,-15536), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(162, new ESSpawn(162, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184908,183384,-15616), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(163, new ESSpawn(163, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184994,185572,-15784), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(164, new ESSpawn(164, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185796,182616,-15608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(165, new ESSpawn(165, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184970,184385,-15648), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(166, new ESSpawn(166, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185995,180809,-15512), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(167, new ESSpawn(167, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185352,182872,-15632), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(168, new ESSpawn(168, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185624,184294,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(169, new ESSpawn(169, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184486,185774,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(170, new ESSpawn(170, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186496,184112,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(171, new ESSpawn(171, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184232,185976,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(172, new ESSpawn(172, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184994,185673,-15792), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(173, new ESSpawn(173, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185733,184203,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(174, new ESSpawn(174, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185079,184294,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(175, new ESSpawn(175, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184803,180710,-15528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(176, new ESSpawn(176, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186293,180413,-15528), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(177, new ESSpawn(177, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185352,182936,-15632), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(178, new ESSpawn(178, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184356,180611,-15496), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(179, new ESSpawn(179, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185375,186784,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(180, new ESSpawn(180, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184867,186784,-15816), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(181, new ESSpawn(181, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180553,180454,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(182, new ESSpawn(182, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180422,180454,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(183, new ESSpawn(183, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-181863,181138,-15120), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(184, new ESSpawn(184, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-181732,180454,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(185, new ESSpawn(185, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180684,180397,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(186, new ESSpawn(186, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-182256,180682,-15112), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(187, new ESSpawn(187, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185492,179492,-15392), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(188, new ESSpawn(188, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185894,178538,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(189, new ESSpawn(189, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-186028,178856,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(190, new ESSpawn(190, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185224,179068,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(191, new ESSpawn(191, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185492,178538,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(192, new ESSpawn(192, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185894,178538,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(193, new ESSpawn(193, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180619,178855,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(194, new ESSpawn(194, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180255,177892,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(195, new ESSpawn(195, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-185804,176472,-15336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(196, new ESSpawn(196, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184580,176370,-15320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(197, new ESSpawn(197, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184308,176166,-15320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(198, new ESSpawn(198, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-183764,177186,-15304), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(199, new ESSpawn(199, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180801,177571,-15144), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(200, new ESSpawn(200, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184716,176064,-15320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(201, new ESSpawn(201, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-184444,175452,-15296), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(202, new ESSpawn(202, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180164,177464,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(203, new ESSpawn(203, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-180164,178213,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(204, new ESSpawn(204, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-179982,178320,-15152), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(205, new ESSpawn(205, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176925,177757,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(206, new ESSpawn(206, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176164,179282,-15720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(207, new ESSpawn(207, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175692,177613,-15800), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(208, new ESSpawn(208, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175418,178117,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(209, new ESSpawn(209, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176103,177829,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(210, new ESSpawn(210, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175966,177325,-15792), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(211, new ESSpawn(211, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174778,179732,-15664), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(212, new ESSpawn(212, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175692,178261,-15824), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(213, new ESSpawn(213, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-176038,179192,-15736), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(214, new ESSpawn(214, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175660,179462,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(215, new ESSpawn(215, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175912,179732,-15664), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(216, new ESSpawn(216, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175156,180182,-15680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(217, new ESSpawn(217, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174240,182059,-15664), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(218, new ESSpawn(218, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-175590,181478,-15640), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(219, new ESSpawn(219, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174510,181561,-15616), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(220, new ESSpawn(220, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174240,182391,-15688), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(221, new ESSpawn(221, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174105,182806,-15672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(222, new ESSpawn(222, GraciaSeeds.ANNIHILATION_REPTILIKON, new Location(-174645,182806,-15712), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + + SPAWNS.put(223, new ESSpawn(223, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-214962,182403,-10992), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(224, new ESSpawn(224, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-215019,182493,-11000), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(225, new ESSpawn(225, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-211374,180793,-11672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(226, new ESSpawn(226, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-211198,180661,-11680), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(227, new ESSpawn(227, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-213097,178936,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(228, new ESSpawn(228, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-213517,178936,-12712), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(229, new ESSpawn(229, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-214105,179191,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(230, new ESSpawn(230, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-213769,179446,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(231, new ESSpawn(231, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-214021,179344,-12720), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(232, new ESSpawn(232, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-210582,180595,-11672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(233, new ESSpawn(233, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-210934,180661,-11696), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(234, new ESSpawn(234, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207058,178460,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(235, new ESSpawn(235, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207454,179151,-11368), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(236, new ESSpawn(236, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207422,181365,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(237, new ESSpawn(237, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207358,180627,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(238, new ESSpawn(238, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207230,180996,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(239, new ESSpawn(239, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-208515,184160,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(240, new ESSpawn(240, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207613,184000,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(241, new ESSpawn(241, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-208597,183760,-11352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(242, new ESSpawn(242, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206710,176142,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(243, new ESSpawn(243, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206361,178136,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(244, new ESSpawn(244, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206178,178630,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(245, new ESSpawn(245, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-205738,178715,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(246, new ESSpawn(246, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206442,178205,-12648), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(247, new ESSpawn(247, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206585,178874,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(248, new ESSpawn(248, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206073,179366,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(249, new ESSpawn(249, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206009,178628,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(250, new ESSpawn(250, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206155,181301,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(251, new ESSpawn(251, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206595,181641,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(252, new ESSpawn(252, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206507,181641,-12656), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(253, new ESSpawn(253, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206507,181471,-12640), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(254, new ESSpawn(254, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206974,175972,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(255, new ESSpawn(255, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206304,175130,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(256, new ESSpawn(256, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206886,175802,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(257, new ESSpawn(257, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207238,175972,-12672), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(258, new ESSpawn(258, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206386,174857,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(259, new ESSpawn(259, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-206386,175039,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(260, new ESSpawn(260, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-205976,174584,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(261, new ESSpawn(261, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-207367,184320,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(262, new ESSpawn(262, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219002,180419,-12608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(263, new ESSpawn(263, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218853,182790,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(264, new ESSpawn(264, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218853,183343,-12600), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(265, new ESSpawn(265, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218358,186247,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(266, new ESSpawn(266, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218358,186083,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(267, new ESSpawn(267, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-217574,185796,-11352), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(268, new ESSpawn(268, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219178,181051,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(269, new ESSpawn(269, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-220171,180313,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(270, new ESSpawn(270, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219293,183738,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(271, new ESSpawn(271, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219381,182553,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(272, new ESSpawn(272, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219600,183024,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(273, new ESSpawn(273, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219940,182680,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(274, new ESSpawn(274, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219260,183884,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(275, new ESSpawn(275, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219855,183540,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(276, new ESSpawn(276, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218946,186575,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(277, new ESSpawn(277, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219882,180103,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(278, new ESSpawn(278, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219266,179787,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(279, new ESSpawn(279, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219201,178337,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(280, new ESSpawn(280, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219716,179875,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(281, new ESSpawn(281, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219716,180021,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(282, new ESSpawn(282, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219989,179437,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(283, new ESSpawn(283, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219078,178298,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(284, new ESSpawn(284, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218684,178954,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(285, new ESSpawn(285, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219089,178456,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(286, new ESSpawn(286, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-220266,177623,-12608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(287, new ESSpawn(287, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219201,178025,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(288, new ESSpawn(288, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219142,177044,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(289, new ESSpawn(289, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219690,177895,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(290, new ESSpawn(290, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219754,177623,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(291, new ESSpawn(291, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218791,177830,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(292, new ESSpawn(292, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218904,176219,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(293, new ESSpawn(293, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218768,176384,-12584), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(294, new ESSpawn(294, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218774,177626,-11320), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(295, new ESSpawn(295, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218774,177792,-11328), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(296, new ESSpawn(296, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219880,175901,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(297, new ESSpawn(297, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219210,176054,-12592), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(298, new ESSpawn(298, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219850,175991,-12608), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(299, new ESSpawn(299, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-219079,175021,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(300, new ESSpawn(300, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218812,174229,-11344), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); + SPAWNS.put(301, new ESSpawn(301, GraciaSeeds.ANNIHILATION_COKRAKON, new Location(-218723,174669,-11336), new int[]{ 18678, 18679, 18680, 18681, 18682, 18683 })); //@formatter:on } diff --git a/L2J_DataPack/dist/game/data/scripts/gracia/AI/SeedOfAnnihilation/SeedOfAnnihilation.java b/L2J_DataPack/dist/game/data/scripts/gracia/AI/SeedOfAnnihilation/SeedOfAnnihilation.java index 86b049dc23..dd72e09ce5 100644 --- a/L2J_DataPack/dist/game/data/scripts/gracia/AI/SeedOfAnnihilation/SeedOfAnnihilation.java +++ b/L2J_DataPack/dist/game/data/scripts/gracia/AI/SeedOfAnnihilation/SeedOfAnnihilation.java @@ -19,9 +19,9 @@ package gracia.AI.SeedOfAnnihilation; import java.util.Calendar; +import java.util.HashMap; import java.util.Map; -import javolution.util.FastMap; import ai.npc.AbstractNpcAI; import com.l2jserver.gameserver.datatables.SkillData; @@ -41,7 +41,7 @@ import com.l2jserver.gameserver.util.Util; */ public class SeedOfAnnihilation extends AbstractNpcAI { - private static final Map<Integer, Location> _teleportZones = new FastMap<>(); + private static final Map<Integer, Location> TELEPORT_ZONES = new HashMap<>(); private static final int ANNIHILATION_FURNACE = 18928; // Strength, Agility, Wisdom @@ -71,17 +71,17 @@ public class SeedOfAnnihilation extends AbstractNpcAI static { - _teleportZones.put(60002, new Location(-213175, 182648, -10992)); - _teleportZones.put(60003, new Location(-181217, 186711, -10528)); - _teleportZones.put(60004, new Location(-180211, 182984, -15152)); - _teleportZones.put(60005, new Location(-179275, 186802, -10720)); + TELEPORT_ZONES.put(60002, new Location(-213175, 182648, -10992)); + TELEPORT_ZONES.put(60003, new Location(-181217, 186711, -10528)); + TELEPORT_ZONES.put(60004, new Location(-180211, 182984, -15152)); + TELEPORT_ZONES.put(60005, new Location(-179275, 186802, -10720)); } public SeedOfAnnihilation() { super(SeedOfAnnihilation.class.getSimpleName(), "gracia/AI"); loadSeedRegionData(); - for (int i : _teleportZones.keySet()) + for (int i : TELEPORT_ZONES.keySet()) { addEnterZoneId(i); } @@ -340,9 +340,9 @@ public class SeedOfAnnihilation extends AbstractNpcAI @Override public String onEnterZone(L2Character character, L2ZoneType zone) { - if (_teleportZones.containsKey(zone.getId())) + if (TELEPORT_ZONES.containsKey(zone.getId())) { - Location teleLoc = _teleportZones.get(zone.getId()); + Location teleLoc = TELEPORT_ZONES.get(zone.getId()); character.teleToLocation(teleLoc, false); } return super.onEnterZone(character, zone); diff --git a/L2J_DataPack/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_DataPack/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index d6c3ee49db..61b7579c2b 100644 --- a/L2J_DataPack/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_DataPack/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -21,8 +21,6 @@ package handlers.admincommandhandlers; import java.util.StringTokenizer; import java.util.logging.Logger; -import javolution.text.TextBuilder; - import com.l2jserver.Config; import com.l2jserver.gameserver.data.xml.impl.AdminData; import com.l2jserver.gameserver.handler.IAdminCommandHandler; @@ -341,7 +339,7 @@ public class AdminAdmin implements IAdminCommandHandler public void showConfigPage(L2PcInstance activeChar) { final NpcHtmlMessage adminReply = new NpcHtmlMessage(); - TextBuilder replyMSG = new TextBuilder("<html><title>L2J :: Config</title><body>"); + StringBuilder replyMSG = new StringBuilder("<html><title>L2J :: Config</title><body>"); replyMSG.append("<center><table width=270><tr><td width=60><button value=\"Main\" action=\"bypass -h admin_admin\" width=60 height=25 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td width=150>Config Server Panel</td><td width=60><button value=\"Back\" action=\"bypass -h admin_admin4\" width=60 height=25 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr></table></center><br>"); replyMSG.append("<center><table width=260><tr><td width=140></td><td width=40></td><td width=40></td></tr>"); replyMSG.append("<tr><td><font color=\"00AA00\">Drop:</font></td><td></td><td></td></tr>"); diff --git a/L2J_DataPack/dist/game/data/scripts/handlers/admincommandhandlers/AdminShowQuests.java b/L2J_DataPack/dist/game/data/scripts/handlers/admincommandhandlers/AdminShowQuests.java index aa1235bf9f..20086c8251 100644 --- a/L2J_DataPack/dist/game/data/scripts/handlers/admincommandhandlers/AdminShowQuests.java +++ b/L2J_DataPack/dist/game/data/scripts/handlers/admincommandhandlers/AdminShowQuests.java @@ -23,8 +23,6 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.logging.Logger; -import javolution.text.TextBuilder; - import com.l2jserver.L2DatabaseFactory; import com.l2jserver.gameserver.handler.IAdminCommandHandler; import com.l2jserver.gameserver.instancemanager.QuestManager; @@ -158,7 +156,7 @@ public class AdminShowQuests implements IAdminCommandHandler private static void showFirstQuestMenu(L2PcInstance target, L2PcInstance actor) { - TextBuilder replyMSG = new TextBuilder("<html><body><table width=270><tr><td width=45><button value=\"Main\" action=\"bypass -h admin_admin\" width=45 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td width=180><center>Player: " + target.getName() + "</center></td><td width=45><button value=\"Back\" action=\"bypass -h admin_admin6\" width=45 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr></table>"); + StringBuilder replyMSG = new StringBuilder("<html><body><table width=270><tr><td width=45><button value=\"Main\" action=\"bypass -h admin_admin\" width=45 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td width=180><center>Player: " + target.getName() + "</center></td><td width=45><button value=\"Back\" action=\"bypass -h admin_admin6\" width=45 height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr></table>"); final NpcHtmlMessage adminReply = new NpcHtmlMessage(); int ID = target.getObjectId(); @@ -182,7 +180,7 @@ public class AdminShowQuests implements IAdminCommandHandler PreparedStatement req; int ID = target.getObjectId(); - TextBuilder replyMSG = new TextBuilder("<html><body>"); + StringBuilder replyMSG = new StringBuilder("<html><body>"); final NpcHtmlMessage adminReply = new NpcHtmlMessage(); switch (val[0]) diff --git a/L2J_DataPack/dist/game/data/scripts/handlers/telnethandlers/DebugHandler.java b/L2J_DataPack/dist/game/data/scripts/handlers/telnethandlers/DebugHandler.java index 026d77719f..aea1064e7d 100644 --- a/L2J_DataPack/dist/game/data/scripts/handlers/telnethandlers/DebugHandler.java +++ b/L2J_DataPack/dist/game/data/scripts/handlers/telnethandlers/DebugHandler.java @@ -27,14 +27,14 @@ import java.lang.management.ThreadInfo; import java.lang.management.ThreadMXBean; import java.net.Socket; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Calendar; +import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.StringTokenizer; -import javolution.util.FastComparator; -import javolution.util.FastTable; - import com.l2jserver.gameserver.GameTimeController; import com.l2jserver.gameserver.LoginServerThread; import com.l2jserver.gameserver.ThreadPoolManager; @@ -206,36 +206,9 @@ public class DebugHandler implements ITelnetHandler sb.append("## Threads Information ##\n"); Map<Thread, StackTraceElement[]> allThread = Thread.getAllStackTraces(); - FastTable<Entry<Thread, StackTraceElement[]>> entries = new FastTable<>(); - entries.setValueComparator(new FastComparator<Entry<Thread, StackTraceElement[]>>() - { - - /** - * - */ - private static final long serialVersionUID = 1L; - - @Override - public boolean areEqual(Entry<Thread, StackTraceElement[]> e1, Entry<Thread, StackTraceElement[]> e2) - { - return e1.getKey().getName().equals(e2.getKey().getName()); - } - - @Override - public int compare(Entry<Thread, StackTraceElement[]> e1, Entry<Thread, StackTraceElement[]> e2) - { - return e1.getKey().getName().compareTo(e2.getKey().getName()); - } - - @Override - public int hashCodeOf(Entry<Thread, StackTraceElement[]> e) - { - return e.hashCode(); - } - - }); - entries.addAll(allThread.entrySet()); - entries.sort(); + final List<Entry<Thread, StackTraceElement[]>> entries = new ArrayList<>(allThread.entrySet()); + Collections.sort(entries, (e1, e2) -> e1.getKey().getName().compareTo(e2.getKey().getName())); + for (Entry<Thread, StackTraceElement[]> entry : entries) { StackTraceElement[] stes = entry.getValue(); diff --git a/L2J_DataPack/dist/game/data/scripts/hellbound/AI/DemonPrince.java b/L2J_DataPack/dist/game/data/scripts/hellbound/AI/DemonPrince.java index 949a5d5707..311702d8f0 100644 --- a/L2J_DataPack/dist/game/data/scripts/hellbound/AI/DemonPrince.java +++ b/L2J_DataPack/dist/game/data/scripts/hellbound/AI/DemonPrince.java @@ -19,8 +19,8 @@ package hellbound.AI; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; -import javolution.util.FastMap; import ai.npc.AbstractNpcAI; import com.l2jserver.gameserver.model.actor.L2Npc; @@ -46,7 +46,7 @@ public final class DemonPrince extends AbstractNpcAI new SkillHolder(5376, 6), }; - private static final Map<Integer, Boolean> ATTACK_STATE = new FastMap<>(); + private static final Map<Integer, Boolean> ATTACK_STATE = new ConcurrentHashMap<>(); public DemonPrince() { diff --git a/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Ranku.java b/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Ranku.java index cbc90b907e..0a299d63d2 100644 --- a/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Ranku.java +++ b/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Ranku.java @@ -19,8 +19,8 @@ package hellbound.AI; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; -import javolution.util.FastSet; import ai.npc.AbstractNpcAI; import com.l2jserver.gameserver.model.actor.L2Npc; @@ -42,7 +42,7 @@ public final class Ranku extends AbstractNpcAI private static final int MINION = 32305; private static final int MINION_2 = 25543; // Misc - private static final Set<Integer> MY_TRACKING_SET = new FastSet<Integer>().shared(); + private static final Set<Integer> MY_TRACKING_SET = ConcurrentHashMap.newKeySet(); public Ranku() { diff --git a/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java b/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java index 9d65534782..5f54df0f9a 100644 --- a/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java +++ b/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/AnomicFoundry/AnomicFoundry.java @@ -21,8 +21,8 @@ package hellbound.AI.Zones.AnomicFoundry; import hellbound.HellboundEngine; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; -import javolution.util.FastMap; import ai.npc.AbstractNpcAI; import com.l2jserver.gameserver.ai.CtrlIntention; @@ -49,7 +49,7 @@ public final class AnomicFoundry extends AbstractNpcAI private static int LESSER_EVIL = 22398; private static int GREATER_EVIL = 22399; // Misc - private final Map<Integer, Integer> _atkIndex = new FastMap<>(); + private final Map<Integer, Integer> _atkIndex = new ConcurrentHashMap<>(); // npcId, x, y, z, heading, max count //@formatter:off private static int[][] SPAWNS = diff --git a/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/BaseTower/BaseTower.java b/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/BaseTower/BaseTower.java index 4aa6c0d91a..a996477912 100644 --- a/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/BaseTower/BaseTower.java +++ b/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/BaseTower/BaseTower.java @@ -19,8 +19,8 @@ package hellbound.AI.Zones.BaseTower; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; -import javolution.util.FastMap; import ai.npc.AbstractNpcAI; import com.l2jserver.gameserver.data.xml.impl.DoorData; @@ -42,7 +42,7 @@ public final class BaseTower extends AbstractNpcAI // Skills private static final SkillHolder DEATH_WORD = new SkillHolder(5256, 1); // Misc - private static final Map<Integer, L2PcInstance> BODY_DESTROYER_TARGET_LIST = new FastMap<>(); + private static final Map<Integer, L2PcInstance> BODY_DESTROYER_TARGET_LIST = new ConcurrentHashMap<>(); public BaseTower() { diff --git a/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java b/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java index 7e22b1a959..7e8157a84a 100644 --- a/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java +++ b/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/TowerOfNaia/TowerOfNaia.java @@ -23,9 +23,9 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArrayList; -import javolution.util.FastList; -import javolution.util.FastMap; import ai.npc.AbstractNpcAI; import com.l2jserver.gameserver.ThreadPoolManager; @@ -157,9 +157,9 @@ public final class TowerOfNaia extends AbstractNpcAI private int _challengeState; private int _winIndex; - private final Map<Integer, Boolean> _activeRooms = new FastMap<>(); - private final Map<Integer, List<L2Npc>> _spawns = new FastMap<>(); - private final FastList<L2Npc> _sporeSpawn = new FastList<L2Npc>().shared(); + private final Map<Integer, Boolean> _activeRooms = new HashMap<>(); + private final Map<Integer, List<L2Npc>> _spawns = new ConcurrentHashMap<>(); + private final List<L2Npc> _sporeSpawn = new CopyOnWriteArrayList<>(); static { // Format: entrance_door, exit_door @@ -902,7 +902,7 @@ public final class TowerOfNaia extends AbstractNpcAI if (SPAWNS.containsKey(managerId)) { int[][] spawnList = SPAWNS.get(managerId); - List<L2Npc> spawned = new FastList<>(); + List<L2Npc> spawned = new CopyOnWriteArrayList<>(); for (int[] spawn : spawnList) { L2Npc spawnedNpc = addSpawn(spawn[0], spawn[1], spawn[2], spawn[3], spawn[4], false, 0, false); diff --git a/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java b/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java index f28b2bee3c..485e8603cb 100644 --- a/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java +++ b/L2J_DataPack/dist/game/data/scripts/hellbound/AI/Zones/TullyWorkshop/TullyWorkshop.java @@ -18,15 +18,16 @@ */ package hellbound.AI.Zones.TullyWorkshop; +import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; -import javolution.util.FastList; -import javolution.util.FastMap; import ai.npc.AbstractNpcAI; import com.l2jserver.gameserver.ThreadPoolManager; @@ -111,8 +112,8 @@ public final class TullyWorkshop extends AbstractNpcAI 22383 }; - private static final Map<Integer, int[]> TULLY_DOORLIST = new FastMap<>(); - private static final Map<Integer, Location[]> TELE_COORDS = new FastMap<>(); + private static final Map<Integer, int[]> TULLY_DOORLIST = new HashMap<>(); + private static final Map<Integer, Location[]> TELE_COORDS = new HashMap<>(); protected int countdownTime; private int nextServantIdx = 0; @@ -125,14 +126,13 @@ public final class TullyWorkshop extends AbstractNpcAI protected ScheduledFuture<?> _countdown = null; // NPC's, spawned after Tully's death are stored here - protected static List<L2Npc> postMortemSpawn = new FastList<>(); - // TODO: Zoey76: Not thread-safe, probably will lead to problems. - protected static Set<Integer> brokenContraptions = new HashSet<>(); + protected static List<L2Npc> postMortemSpawn = new ArrayList<>(); + protected static Set<Integer> brokenContraptions = ConcurrentHashMap.newKeySet(); protected static Set<Integer> rewardedContraptions = new HashSet<>(); protected static Set<Integer> talkedContraptions = new HashSet<>(); - private final List<L2MonsterInstance> spawnedFollowers = new FastList<>(); - private final List<L2MonsterInstance> spawnedFollowerMinions = new FastList<>(); + private final List<L2MonsterInstance> spawnedFollowers = new ArrayList<>(); + private final List<L2MonsterInstance> spawnedFollowerMinions = new ArrayList<>(); private L2Npc spawnedAgent = null; private L2Spawn pillarSpawn = null; diff --git a/L2J_DataPack/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java b/L2J_DataPack/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java index dd892ac884..e044f9ad6c 100644 --- a/L2J_DataPack/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java +++ b/L2J_DataPack/dist/game/data/scripts/instances/CrystalCaverns/CrystalCaverns.java @@ -20,11 +20,12 @@ package instances.CrystalCaverns; import instances.AbstractInstance; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; -import javolution.util.FastList; -import javolution.util.FastMap; import quests.Q00131_BirdInACage.Q00131_BirdInACage; import com.l2jserver.Config; @@ -84,15 +85,15 @@ public final class CrystalCaverns extends AbstractInstance private class CCWorld extends InstanceWorld { - public Map<L2Npc, Boolean> npcList1 = new FastMap<>(); + public Map<L2Npc, Boolean> npcList1 = new HashMap<>(); public L2Npc tears; public boolean isUsedInvulSkill = false; public long dragonScaleStart = 0; public int dragonScaleNeed = 0; public int cleanedRooms = 0; public long endTime = 0; - public List<L2Npc> copys = new FastList<>(); - public Map<L2Npc, CrystalGolem> crystalGolems = new FastMap<>(); + public List<L2Npc> copys = new ArrayList<>(); + public Map<L2Npc, CrystalGolem> crystalGolems = new HashMap<>(); public int correctGolems = 0; public boolean[] OracleTriggered = { @@ -108,18 +109,18 @@ public final class CrystalCaverns extends AbstractInstance 0, 0 }; // 0: not spawned, 1: spawned, 2: cleared - public Map<L2DoorInstance, L2PcInstance> openedDoors = new FastMap<>(); - public Map<Integer, Map<L2Npc, Boolean>> npcList2 = new FastMap<>(); - public Map<L2Npc, L2Npc> oracles = new FastMap<>(); - public List<L2Npc> keyKeepers = new FastList<>(); - public List<L2Npc> guards = new FastList<>(); - public List<L2Npc> oracle = new FastList<>(); + public Map<L2DoorInstance, L2PcInstance> openedDoors = new ConcurrentHashMap<>(); + public Map<Integer, Map<L2Npc, Boolean>> npcList2 = new HashMap<>(); + public Map<L2Npc, L2Npc> oracles = new HashMap<>(); + public List<L2Npc> keyKeepers = new ArrayList<>(); + public List<L2Npc> guards = new ArrayList<>(); + public List<L2Npc> oracle = new ArrayList<>(); // baylor variables - protected final List<L2PcInstance> _raiders = new FastList<>(); + protected final List<L2PcInstance> _raiders = new ArrayList<>(); protected int _raidStatus = 0; protected long _dragonClawStart = 0; protected int _dragonClawNeed = 0; - protected final List<L2Npc> _animationMobs = new FastList<>(); + protected final List<L2Npc> _animationMobs = new ArrayList<>(); protected L2Npc _camera = null; protected L2Npc _baylor = null; protected L2Npc _alarm = null; @@ -791,7 +792,7 @@ public final class CrystalCaverns extends AbstractInstance { world.setStatus(3); - Map<L2Npc, Boolean> spawnList = new FastMap<>(); + Map<L2Npc, Boolean> spawnList = new HashMap<>(); for (int[] spawn : EMERALD_SPAWNS) { L2Npc mob = addSpawn(spawn[0], spawn[1], spawn[2], spawn[3], spawn[4], false, 0, false, world.getInstanceId()); @@ -802,7 +803,7 @@ public final class CrystalCaverns extends AbstractInstance protected void runEmeraldRooms(CCWorld world, int[][] spawnList, int room) { - Map<L2Npc, Boolean> spawned = new FastMap<>(); + Map<L2Npc, Boolean> spawned = new HashMap<>(); for (int[] spawn : spawnList) { L2Npc mob = addSpawn(spawn[0], spawn[1], spawn[2], spawn[3], spawn[4], false, 0, false, world.getInstanceId()); @@ -830,7 +831,7 @@ public final class CrystalCaverns extends AbstractInstance { world.setStatus(status); - Map<L2Npc, Boolean> spawned = new FastMap<>(); + Map<L2Npc, Boolean> spawned = new HashMap<>(); for (int[] spawn : spawnList) { L2Npc mob = addSpawn(spawn[0], spawn[1], spawn[2], spawn[3], spawn[4], false, 0, false, world.getInstanceId()); @@ -1367,27 +1368,24 @@ public final class CrystalCaverns extends AbstractInstance { return ""; } + CrystalGolem cryGolem = world.crystalGolems.get(npc); - List<L2Object> crystals = new FastList<>(); - for (L2Object object : L2World.getInstance().getVisibleObjects(npc, 300)) - { - if ((object instanceof L2ItemInstance) && (object.getId() == CRYSTALFOOD)) - { - crystals.add(object); - } - } int minDist = 300000; - for (L2Object crystal : crystals) + for (L2Object object : L2World.getInstance().getVisibleObjects(npc, 300)) { - int dx = npc.getX() - crystal.getX(); - int dy = npc.getY() - crystal.getY(); - int d = (dx * dx) + (dy * dy); - if (d < minDist) + if (object.isItem() && (object.getId() == CRYSTALFOOD)) { - minDist = d; - cryGolem.foodItem = (L2ItemInstance) crystal; + int dx = npc.getX() - object.getX(); + int dy = npc.getY() - object.getY(); + int d = (dx * dx) + (dy * dy); + if (d < minDist) + { + minDist = d; + cryGolem.foodItem = (L2ItemInstance) object; + } } } + if (minDist != 300000) { startQuestTimer("getFood", 2000, npc, null); diff --git a/L2J_DataPack/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_DataPack/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java index fc888ee25f..ab3634c31b 100644 --- a/L2J_DataPack/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java +++ b/L2J_DataPack/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java @@ -19,8 +19,11 @@ package instances.DarkCloudMansion; import instances.AbstractInstance; -import javolution.util.FastList; -import javolution.util.FastMap; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import com.l2jserver.gameserver.instancemanager.InstanceManager; import com.l2jserver.gameserver.model.L2Party; @@ -45,7 +48,7 @@ public final class DarkCloudMansion extends AbstractInstance { protected class DMCWorld extends InstanceWorld { - protected FastMap<String, DMCRoom> rooms = new FastMap<>(); + protected Map<String, DMCRoom> rooms = new ConcurrentHashMap<>(); } // NPCs @@ -229,7 +232,7 @@ public final class DarkCloudMansion extends AbstractInstance protected static class DMCRoom { - public FastList<DMCNpc> npcList = new FastList<>(); + public List<DMCNpc> npcList = new ArrayList<>(); public int counter = 0; public int reset = 0; public int founded = 0; diff --git a/L2J_DataPack/dist/game/data/scripts/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java b/L2J_DataPack/dist/game/data/scripts/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java index adbf8c9245..e20f0e3697 100644 --- a/L2J_DataPack/dist/game/data/scripts/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java +++ b/L2J_DataPack/dist/game/data/scripts/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java @@ -20,10 +20,11 @@ package instances.DisciplesNecropolisPast; import instances.AbstractInstance; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; -import javolution.util.FastList; import quests.Q00196_SevenSignsSealOfTheEmperor.Q00196_SevenSignsSealOfTheEmperor; import com.l2jserver.gameserver.instancemanager.InstanceManager; @@ -47,8 +48,8 @@ public final class DisciplesNecropolisPast extends AbstractInstance { protected class DNPWorld extends InstanceWorld { - protected final FastList<L2Npc> anakimGroup = new FastList<>(); - protected final FastList<L2Npc> lilithGroup = new FastList<>(); + protected final List<L2Npc> anakimGroup = new ArrayList<>(); + protected final List<L2Npc> lilithGroup = new ArrayList<>(); protected int countKill = 0; } @@ -180,7 +181,7 @@ public final class DisciplesNecropolisPast extends AbstractInstance teleportPlayer(player, ENTER, world.getInstanceId()); } - private void makeCast(L2Npc npc, FastList<L2Npc> targets) + private void makeCast(L2Npc npc, List<L2Npc> targets) { npc.setTarget(targets.get(getRandom(targets.size()))); if (SKILLS.containsKey(npc.getId())) diff --git a/L2J_DataPack/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java b/L2J_DataPack/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java index 7c1777a490..850644f0bb 100644 --- a/L2J_DataPack/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java +++ b/L2J_DataPack/dist/game/data/scripts/instances/FinalEmperialTomb/FinalEmperialTomb.java @@ -21,9 +21,12 @@ package instances.FinalEmperialTomb; import instances.AbstractInstance; import java.io.File; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; @@ -31,9 +34,6 @@ import java.util.logging.Level; import javax.xml.parsers.DocumentBuilderFactory; -import javolution.util.FastList; -import javolution.util.FastMap; - import org.w3c.dom.Document; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; @@ -82,10 +82,10 @@ import com.l2jserver.gameserver.util.Util; */ public final class FinalEmperialTomb extends AbstractInstance { - private class FETWorld extends InstanceWorld + protected class FETWorld extends InstanceWorld { protected Lock lock = new ReentrantLock(); - protected FastList<L2Npc> npcList = new FastList<>(); + protected List<L2Npc> npcList = new CopyOnWriteArrayList<>(); protected int darkChoirPlayerCount = 0; protected FrintezzaSong OnSong = null; protected ScheduledFuture<?> songTask = null; @@ -98,18 +98,13 @@ public final class FinalEmperialTomb extends AbstractInstance protected L2Npc scarletDummy = null; protected L2GrandBossInstance frintezza = null; protected L2GrandBossInstance activeScarlet = null; - protected List<L2MonsterInstance> demons = new FastList<>(); - protected Map<L2MonsterInstance, Integer> portraits = new FastMap<>(); + protected List<L2MonsterInstance> demons = new CopyOnWriteArrayList<>(); + protected Map<L2MonsterInstance, Integer> portraits = new ConcurrentHashMap<>(); protected int scarlet_x = 0; protected int scarlet_y = 0; protected int scarlet_z = 0; protected int scarlet_h = 0; protected int scarlet_a = 0; - - protected FETWorld() - { - npcList.shared(); - } } protected static class FETSpawn @@ -195,7 +190,7 @@ public final class FinalEmperialTomb extends AbstractInstance private static final boolean debug = false; private final Map<Integer, L2Territory> _spawnZoneList = new HashMap<>(); private final Map<Integer, List<FETSpawn>> _spawnList = new HashMap<>(); - private final List<Integer> _mustKillMobsId = new FastList<>(); + private final List<Integer> _mustKillMobsId = new ArrayList<>(); protected static final int[] FIRST_ROOM_DOORS = { 17130051, @@ -299,11 +294,9 @@ public final class FinalEmperialTomb extends AbstractInstance _log.severe("[Final Emperial Tomb] Missing flag in npc List npcId: " + npcId + ", skipping"); continue; } + int flag = Integer.parseInt(attrs.getNamedItem("flag").getNodeValue()); - if (!_spawnList.containsKey(flag)) - { - _spawnList.put(flag, new FastList<FETSpawn>()); - } + _spawnList.putIfAbsent(flag, new ArrayList<FETSpawn>()); for (Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling()) { @@ -849,7 +842,7 @@ public final class FinalEmperialTomb extends AbstractInstance if ((_world.frintezza != null) && !_world.frintezza.isDead() && (_world.activeScarlet != null) && !_world.activeScarlet.isDead()) { - List<L2Character> targetList = new FastList<>(); + final List<L2Character> targetList = new ArrayList<>(); if (skill.hasEffectType(L2EffectType.STUN) || skill.isDebuff()) { for (int objId : _world.getAllowed()) @@ -872,7 +865,7 @@ public final class FinalEmperialTomb extends AbstractInstance { targetList.add(_world.activeScarlet); } - if (targetList.size() > 0) + if (!targetList.isEmpty()) { _world.frintezza.doCast(skill, targetList.get(0), targetList.toArray(new L2Character[targetList.size()])); } -- GitLab