From d3d4ab6d36536c1cff257bbe0388aa502b59bfc7 Mon Sep 17 00:00:00 2001 From: Yellow Adder <47332452+YellowAdder@users.noreply.github.com> Date: Mon, 25 Mar 2019 09:59:19 -0400 Subject: [PATCH 1/2] Despawn and Map Despawn Encounters can now be despawned individually or map wide via the DespawnMapEncounters() function. Encounters with 100% spawn probability are not despawned by this unless an "override" argument is provided and set as true. Persistents and civilian/car spawns are unaffected. Use /script DespawnMapEncounters(true) to despawn all spawndef encounters. Use /script DespawnMapEncounters() to despawn "standard" (non-100%) encounters. Use /script DespawnMapEncounters(); RandomSpawn(x) to despawn and immediately respawn a provided number of random encounters. --- .../CoX/Data/scripts/Encounter_Manager.lua | 67 +++++++++++++------ Projects/CoX/Data/scripts/spawners.lua | 18 ++++- .../Servers/MapServer/CritterGenerator.cpp | 4 +- .../CoX/Servers/MapServer/DataHelpers.cpp | 26 ++++--- Projects/CoX/Servers/MapServer/DataHelpers.h | 10 +-- .../ScriptingEngine_RegisterTypes.cpp | 4 +- .../CoX/Servers/MapServer/SlashCommand.cpp | 8 +-- 7 files changed, 89 insertions(+), 48 deletions(-) diff --git a/Projects/CoX/Data/scripts/Encounter_Manager.lua b/Projects/CoX/Data/scripts/Encounter_Manager.lua index 8db43542b..967bd7824 100644 --- a/Projects/CoX/Data/scripts/Encounter_Manager.lua +++ b/Projects/CoX/Data/scripts/Encounter_Manager.lua @@ -21,19 +21,19 @@ local STATUS_INVALID = 1000 --Several of these values should be drawn from a config file. EncounterManager = { - ["Critters"] = {}, --list of spawned critters + ["MyCritters"] = {}, --list of spawned critters; initiatlize at EM creation ["Position"] = vec3.new(0, 0, 0), - ["StatusCurrent"] = STATUS_SLEEPING, - ["StatusPrevious"] = STATUS_SLEEPING, + ["StatusCurrent"] = STATUS_RUNNING_IDLE, + ["StatusPrevious"] = STATUS_RUNNING_IDLE, ["EncounterIsActive"] = false, ["PollingIntervalBase"] = 60.0, ["PollingIntervalAdj"] = 0, ["PanicDuration"] = 90.0, - ["PanicInitiators"] = {}, --player or team|players + ["PanicInitiators"] = {}, --player or team|players inciting panic (encounter aggrolist) ["SpawnProbabilityBase"] = 80, ["SpawnProbabilityAdj"] = 0, - ["EncounterName"] = "", - ["Markers"] = {} + ["EncounterName"] = "", --encounter spawner name; used for OL lookups + ["Markers"] = {} --spawnable markers for this encounter } function EncounterManager:new (o) @@ -64,10 +64,15 @@ end and other activities. ]] EncounterManager.CountCritters = function (self) - local Counter = #self.Critters or 0 + local Counter = #self.MyCritters or 0 return Counter end +EncounterManager.AddCritterID = function (self, critterID) + table.insert(self.MyCritters, critterID) + return self:CountCritters() +end + --Handles state changes for the EM EncounterManager.SetState = function (self, status) @@ -77,7 +82,7 @@ EncounterManager.SetState = function (self, status) self.StatusCurrent = status if status == STATUS_SLEEPING then - --Do nothing for now + self.EncounterIsActive = false elseif status == STATUS_RUNNING_IDLE then self.EncounterIsActive = false elseif status == STATUS_RUNNING_ACTIVE then @@ -87,8 +92,8 @@ EncounterManager.SetState = function (self, status) --Panic Initiators need to be handled somewhere but likely not here. --Probably withhin whatever called this status change elseif status == STATUS_RUNNING_DESPAWN then - --Start despawn sequence - --That sequence should set status to idle or sleep when complete + --Indicates despawn has begun + --Nothing else required at the moment end end @@ -99,8 +104,8 @@ EncounterManager.GetState = function (self) if status == STATUS_SLEEPING then return "STATUS_SLEEPING" - elseif status == STATUS_RUNING_IDLE then - return "STATUS_RUNING_IDLE" + elseif status == STATUS_RUNNING_IDLE then + return "STATUS_RUNNING_IDLE" elseif status == STATUS_RUNNING_ACTIVE then return "STATUS_RUNNING_ACTIVE" elseif status == STATUS_RUNNING_PANIC then @@ -160,7 +165,9 @@ EncounterManager.Spawn = function (self) local Variant = {} Variant = GetVariant(Encounter, SquadCount) --Step through the template's markers and critters + local Counter = 0 for Tmarker, Tcritter in pairs(Variant["Markers"]) do + Counter = Counter + 1 --try to find a marker to match the Tmarker local count = #self.Markers local EncPos @@ -201,10 +208,10 @@ EncounterManager.Spawn = function (self) print(tostring(Encounter) .. " Invalid spawn entity detected. Exiting.") return "" end - - --We'll need this to return the spawned critter's ID - --to store in Critters{} so it/they can be properly despawned later as needed. - spawnCritter(SpawnEntity, EncPos, EncRot) + --Store in Critters{} so it/they can be properly despawned later as needed. + local newID = spawnCritter(SpawnEntity, EncPos, EncRot) + self.MyCritters[Counter] = newID + --print("My critter count (" .. self.EncounterName .. ") " .. self:AddCritter(newID)) end self:SetState(STATUS_RUNNING_ACTIVE) --This encounter is now alive end @@ -213,8 +220,27 @@ EncounterManager.Spawn = function (self) end --Removes owned encounter from the world -EncounterManager.Despawn = function (self) - --nothing yet! +--If override is true, even a 100% SP critter will despawn +EncounterManager.Despawn = function (self, override) + local base, adj = self:GetSpawnProbability() + + if override == true or (base + adj) < 100 then + self:SetState(STATUS_RUNNING_DESPAWN) + local totCritters = #self.MyCritters + + if totCritters <= 0 then + self:SetState(STATUS_RUNNING_IDLE) + return "" -- nothing to despawn + end + + for i = 1, totCritters do + MapInstance.RemoveNpc(self.MyCritters[i]) + end + --reset the table + self.MyCritters = nil --Make sure we're cleared + self.MyCritters = {} --and ready for a new batch + self:SetState(STATUS_RUNNING_IDLE) + end end --[[ @@ -228,14 +254,13 @@ function spawnCritter(critter, position, rotation, level, rank, costume) local Costume_variation = costume or 1 local Security_level = level or 0 local Critter_rank = rank or 0 - MapInstance.AddEnemy(critter, position, rotation, Costume_variation, tostring(critter), Security_level, tostring(critter), Critter_rank) - return "" + return MapInstance.AddEnemy(critter, position, rotation, Costume_variation, tostring(critter), Security_level, tostring(critter), Critter_rank) end function spawnCivilian(critter, position, rotation, costume) local Costume_variation = costume or 1 MapInstance.AddNpc(critter, position, rotation, Costume_variation, tostring(critter)) - return "" + --return MapInstance.AddNpc(critter, position, rotation, Costume_variation, tostring(critter)) end --Returns a table of subgroups found in supplied container group. diff --git a/Projects/CoX/Data/scripts/spawners.lua b/Projects/CoX/Data/scripts/spawners.lua index 943c16eaa..3282a5852 100644 --- a/Projects/CoX/Data/scripts/spawners.lua +++ b/Projects/CoX/Data/scripts/spawners.lua @@ -25,7 +25,8 @@ function spinPersists() PersModel = GetPersistentModel(PersName) PersPos = MapInstance.GetPersistentPosition(i-1) PersRot = MapInstance.GetPersistentRotation(i-1) - spawnCivilian(PersModel, PersPos, PersRot) + local newID = spawnCivilian(PersModel, PersPos, PersRot) + --print("Persistent ID: " .. tostring(newID)) --print("PERS: " .. tostring(PersName) .. " at " .. round(PersPos.x) .. " " .. round(PersPos.y) .. " " .. round(PersPos.z)) ::done:: end @@ -73,6 +74,8 @@ function spinSpawners() local EncName = MapInstance.GetSpawnerName(i-1) MapEncPool[i].EncounterName = EncName MapEncPool[i].Markers = {} + MapEncPool[i].MyCritters = {} --must initialize this here + MapEncPool[i].PanicInitiators = {} --must initialize this here local validateSpawnDef = IsSpawnDef(EncName) if validateSpawnDef ~= nil and validateSpawnDef == true then @@ -112,7 +115,7 @@ function InitiateKillPersists() local curState = MapEncPool[i]:GetState() if (Base + Adj) >= 100 - and (curState == "STATUS_RUNING_IDLE" or curState == "STATUS_SLEEPING") then + and (curState == "STATUS_RUNNING_IDLE" or curState == "STATUS_SLEEPING") then MapEncPool[i]:Spawn() end end @@ -140,7 +143,7 @@ function RandomSpawn(total, type) local currentEnc = math.random(1, count) local curState = MapEncPool[currentEnc]:GetState() - if curState == "STATUS_RUNING_IDLE" or curState == "STATUS_SLEEPING" then + if curState == "STATUS_RUNNING_IDLE" or curState == "STATUS_SLEEPING" then MapEncPool[currentEnc]:Spawn() spawned = spawned + 1 end @@ -199,6 +202,15 @@ function RandomSpawn(total, type) return spawned end +--use override to also despawn 100% spawn probability critters +function DespawnMapEncounters(override) + + for i = 1, #MapEncPool do + MapEncPool[i]:Despawn(override) + end + +end + --Returns the distance between supplied vectors; floor, ceil and unaltered distance function VectorDistance(v1, v2, type) local calcX = v1.x - v2.x diff --git a/Projects/CoX/Servers/MapServer/CritterGenerator.cpp b/Projects/CoX/Servers/MapServer/CritterGenerator.cpp index da083a14b..df6972749 100644 --- a/Projects/CoX/Servers/MapServer/CritterGenerator.cpp +++ b/Projects/CoX/Servers/MapServer/CritterGenerator.cpp @@ -39,7 +39,7 @@ void CritterGenerator::generate(MapInstance *map_instance) glm::vec3 rotation = encounter_location.m_rotation; //spawn enemy - addEnemy(*map_instance, cd.m_model, pos, 1, rotation, cd.m_name, 2, cd.m_faction_name, 0); + //addEnemy(*map_instance, cd.m_model, pos, 1, rotation, cd.m_name, 2, cd.m_faction_name, 0); ++count; } else if(encounter_location.m_name.contains("encounter_v_", Qt::CaseInsensitive) && !m_victim_spawned) @@ -70,7 +70,7 @@ void CritterGenerator::generate(MapInstance *map_instance) glm::vec3 pos = encounter_location.m_relative_position; glm::vec3 rotation = encounter_location.m_rotation; //spawn enemy - addEnemy(*map_instance, cd.m_model, pos, 1, rotation, cd.m_name, 2, cd.m_faction_name, 0); + //addEnemy(*map_instance, cd.m_model, pos, 1, rotation, cd.m_name, 2, cd.m_faction_name, 0); ++count; } diff --git a/Projects/CoX/Servers/MapServer/DataHelpers.cpp b/Projects/CoX/Servers/MapServer/DataHelpers.cpp index 41cecef64..bd30d4059 100644 --- a/Projects/CoX/Servers/MapServer/DataHelpers.cpp +++ b/Projects/CoX/Servers/MapServer/DataHelpers.cpp @@ -965,14 +965,14 @@ void increaseLevel(Entity &ent) sendInfoMessage(MessageChannel::DEBUG_INFO, QString("Created npc with ent idx:%1 at location x: %2 y: %3 z: %4").arg(e->m_idx).arg(loc.x).arg(loc.y).arg(loc.z), sess); } */ -void addNpc(MapClientSession &sess, QString &npc_name, glm::vec3 &loc, int variation, QString &name) +uint addNpc(MapClientSession &sess, QString &npc_name, glm::vec3 &loc, int variation, QString &name) { const NPCStorage & npc_store(getGameData().getNPCDefinitions()); const Parse_NPC * npc_def = npc_store.npc_by_name(&npc_name); if(!npc_def) { sendInfoMessage(MessageChannel::USER_ERROR, "No NPC definition for: " + name, sess); - return; + return 0; } int idx = npc_store.npc_idx(npc_def); @@ -983,14 +983,15 @@ void addNpc(MapClientSession &sess, QString &npc_name, glm::vec3 &loc, int varia sendInfoMessage(MessageChannel::DEBUG_INFO, QString("Created npc with ent idx:%1 at location x: %2 y: %3 z: %4").arg(e->m_idx).arg(loc.x).arg(loc.y).arg(loc.z), sess); auto val = sess.m_current_map->m_scripting_interface->callFuncWithClientContext(&sess, "npc_added", e->m_idx); + return e->m_idx; } -void addNpcWithOrientation(MapClientSession &sess, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name) +uint addNpcWithOrientation(MapClientSession &sess, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name) { - addNpcWithOrientation(*sess.m_current_map, name, loc, variation, ori, npc_name); + return addNpcWithOrientation(*sess.m_current_map, name, loc, variation, ori, npc_name); } -void addNpcWithOrientation(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name) +uint addNpcWithOrientation(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name) { const NPCStorage & npc_store(getGameData().getNPCDefinitions()); const Parse_NPC * npc_def = npc_store.npc_by_name(&name); @@ -998,7 +999,7 @@ void addNpcWithOrientation(MapInstance &mi, QString &name, glm::vec3 &loc, int v { qCDebug(logScripts()) << "No NPC definition for: " + name; //sendInfoMessage(MessageChannel::USER_ERROR, "No NPC definition for: " + name, sess); - return; + return 0; } int idx = npc_store.npc_idx(npc_def); @@ -1011,6 +1012,7 @@ void addNpcWithOrientation(MapInstance &mi, QString &name, glm::vec3 &loc, int v //sendInfoMessage(MessageChannel::DEBUG_INFO, QString("Created npc with ent idx:%1 at location x: %2 y: %3 z: %4").arg(e->m_idx).arg(loc.x).arg(loc.y).arg(loc.z), sess); mi.m_scripting_interface->callFuncWithMapInstance(&mi, "npc_added", e->m_idx); + return e->m_idx; } void giveEnhancement(MapClientSession &sess, QString &name, int e_level) @@ -1663,7 +1665,7 @@ RelayRaceResult getRelayRaceResult(MapClientSession &cl, int segment) } -void addEnemy(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name, int level, QString &faction_name, int f_rank) +uint addEnemy(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name, int level, QString &faction_name, int f_rank) { const NPCStorage & npc_store(getGameData().getNPCDefinitions()); const Parse_NPC * npc_def = npc_store.npc_by_name(&name); @@ -1671,7 +1673,7 @@ void addEnemy(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, glm { qCDebug(logNpcSpawn) << "No NPC definition for: " + name; //sendInfoMessage(MessageChannel::USER_ERROR, "No NPC definition for: " + name, sess); - return; + return 0; } int idx = npc_store.npc_idx(npc_def); @@ -1683,11 +1685,13 @@ void addEnemy(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, glm forcePosition(*e, loc); forceOrientation(*e, ori); + + return e->m_idx; //qCDebug(logNpcSpawn) << QString("Created Enemy with ent idx:%1 at location x: %2 y: %3 z: %4").arg(e->m_idx).arg(loc.x).arg(loc.y).arg(loc.z); //sendInfoMessage(MessageChannel::DEBUG_INFO, QString("Created npc with ent idx:%1 at location x: %2 y: %3 z: %4").arg(e->m_idx).arg(loc.x).arg(loc.y).arg(loc.z), sess); } -void addVictim(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name) +uint addVictim(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name) { const NPCStorage & npc_store(getGameData().getNPCDefinitions()); const Parse_NPC * npc_def = npc_store.npc_by_name(&name); @@ -1695,7 +1699,7 @@ void addVictim(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, gl { qCDebug(logNpcSpawn) << "No NPC definition for: " + name; //sendInfoMessage(MessageChannel::USER_ERROR, "No NPC definition for: " + name, sess); - return; + return 0; } int idx = npc_store.npc_idx(npc_def); @@ -1724,7 +1728,7 @@ void addVictim(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, gl forceOrientation(*e, ori); //qCDebug(logNpcSpawn) << QString("Created Victim with ent idx:%1 at location x: %2 y: %3 z: %4").arg(e->m_idx).arg(loc.x).arg(loc.y).arg(loc.z); //sendInfoMessage(MessageChannel::DEBUG_INFO, QString("Created npc with ent idx:%1 at location x: %2 y: %3 z: %4").arg(e->m_idx).arg(loc.x).arg(loc.y).arg(loc.z), sess); - + return e->m_idx; } // Probably obselete? diff --git a/Projects/CoX/Servers/MapServer/DataHelpers.h b/Projects/CoX/Servers/MapServer/DataHelpers.h index 28295b2e0..6f149b2aa 100644 --- a/Projects/CoX/Servers/MapServer/DataHelpers.h +++ b/Projects/CoX/Servers/MapServer/DataHelpers.h @@ -117,9 +117,9 @@ void increaseLevel(Entity &ent); /* * Lua Functions */ -void addNpc(MapClientSession &sess, QString &npc_name, glm::vec3 &loc, int variation, QString &name); -void addNpcWithOrientation(MapClientSession &sess, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name); -void addNpcWithOrientation(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name); +uint addNpc(MapClientSession &sess, QString &npc_name, glm::vec3 &loc, int variation, QString &name); +uint addNpcWithOrientation(MapClientSession &sess, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name); +uint addNpcWithOrientation(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name); void giveEnhancement(MapClientSession &sess, QString &name, int level); void giveDebt(MapClientSession &sess, int debt); void giveEnd(MapClientSession &sess, float end); @@ -151,5 +151,5 @@ RelayRaceResult getRelayRaceResult(MapClientSession &cl, int segment); void addHideAndSeekResult(MapClientSession &cl, int points); // Spawning related -void addEnemy(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name, int level, QString &faction_name, int f_rank); -void addVictim(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name); +uint addEnemy(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name, int level, QString &faction_name, int f_rank); +uint addVictim(MapInstance &mi, QString &name, glm::vec3 &loc, int variation, glm::vec3 &ori, QString &npc_name); diff --git a/Projects/CoX/Servers/MapServer/ScriptingEngine/ScriptingEngine_RegisterTypes.cpp b/Projects/CoX/Servers/MapServer/ScriptingEngine/ScriptingEngine_RegisterTypes.cpp index 58cc79359..fd425e3a5 100644 --- a/Projects/CoX/Servers/MapServer/ScriptingEngine/ScriptingEngine_RegisterTypes.cpp +++ b/Projects/CoX/Servers/MapServer/ScriptingEngine/ScriptingEngine_RegisterTypes.cpp @@ -536,7 +536,7 @@ void ScriptingEngine::register_SpawnerTypes() MapInstance *mi = m_private->m_lua["map"]; QString npc_def_name = QString::fromUtf8(npc_def); QString name = QString::fromUtf8(npc_name); - addNpcWithOrientation(*mi, npc_def_name, loc, variation, ori, name); + return addNpcWithOrientation(*mi, npc_def_name, loc, variation, ori, name); }; m_private->m_lua["MapInstance"]["AddEnemy"] = [this](const char* npc_def, glm::vec3 &loc, glm::vec3 &ori, int variation, const char* npc_name, int level, const char* faction_name, int rank) @@ -545,7 +545,7 @@ void ScriptingEngine::register_SpawnerTypes() QString npc_def_name = QString::fromUtf8(npc_def); QString name = QString::fromUtf8(npc_name); QString faction = QString::fromUtf8(faction_name); - addEnemy(*mi, npc_def_name, loc, variation, ori, name, level, faction, rank); + return addEnemy(*mi, npc_def_name, loc, variation, ori, name, level, faction, rank); }; diff --git a/Projects/CoX/Servers/MapServer/SlashCommand.cpp b/Projects/CoX/Servers/MapServer/SlashCommand.cpp index 52048dae2..1c600de29 100644 --- a/Projects/CoX/Servers/MapServer/SlashCommand.cpp +++ b/Projects/CoX/Servers/MapServer/SlashCommand.cpp @@ -135,7 +135,7 @@ void cmdHandler_StartTimer(const QString &cmd, MapClientSession &sess); void cmdHandler_SetU1(const QString &cmd, MapClientSession &sess); // Access Level 2[GM] Commands -void cmdHandler_AddNPC(const QString &cmd, MapClientSession &sess); +uint cmdHandler_AddNPC(const QString &cmd, MapClientSession &sess); void cmdHandler_MoveTo(const QString &cmd, MapClientSession &sess); // Access Level 1 Commands @@ -1392,7 +1392,7 @@ void cmdHandler_SetU1(const QString &cmd, MapClientSession &sess) /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Access Level 2 Commands -void cmdHandler_AddNPC(const QString &cmd, MapClientSession &sess) +uint cmdHandler_AddNPC(const QString &cmd, MapClientSession &sess) { QVector parts; int variation = 0; @@ -1418,13 +1418,13 @@ void cmdHandler_AddNPC(const QString &cmd, MapClientSession &sess) { qCDebug(logSlashCommand) << "Bad invocation:"<m_entity_data.m_pos + offset; - addNpc(sess, name, gm_loc, variation, name); + return addNpc(sess, name, gm_loc, variation, name); } void cmdHandler_MoveTo(const QString &cmd, MapClientSession &sess) From 169992bb9e90da8a2a3ced1210543ae81b2baf0c Mon Sep 17 00:00:00 2001 From: Yellow Adder <47332452+YellowAdder@users.noreply.github.com> Date: Tue, 26 Mar 2019 14:40:46 -0400 Subject: [PATCH 2/2] Independence Port encounter Independence Port's encounters are now active and spawning. --- Projects/CoX/CMakeLists.txt | 4 + .../CoX/Data/scripts/City_01_02/entities.lua | 6 +- .../scripts/City_03_02/ES_Library_Objects.lua | 146 +++++- .../CoX/Data/scripts/City_03_02/entities.lua | 4 +- .../CoX/Data/scripts/Encounter_Manager.lua | 1 + .../Spawndefs/5th_IndPort.spawndef.lua | 74 +++ .../scripts/Spawndefs/5th_Steel.spawndef.lua | 2 - .../Spawndefs/Devouring_IndPort.spawndef.lua | 47 ++ .../Spawndefs/Family_IndPort.spawndef.lua | 435 ++++++++++++++++++ .../Spawndefs/Tsoo_IndPort.spawndef.lua | 261 +++++++++++ Projects/CoX/Data/scripts/spawners.lua | 6 +- 11 files changed, 976 insertions(+), 10 deletions(-) create mode 100644 Projects/CoX/Data/scripts/Spawndefs/5th_IndPort.spawndef.lua create mode 100644 Projects/CoX/Data/scripts/Spawndefs/Devouring_IndPort.spawndef.lua create mode 100644 Projects/CoX/Data/scripts/Spawndefs/Family_IndPort.spawndef.lua create mode 100644 Projects/CoX/Data/scripts/Spawndefs/Tsoo_IndPort.spawndef.lua diff --git a/Projects/CoX/CMakeLists.txt b/Projects/CoX/CMakeLists.txt index 2b503517a..3ba5a101c 100644 --- a/Projects/CoX/CMakeLists.txt +++ b/Projects/CoX/CMakeLists.txt @@ -121,6 +121,7 @@ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Trial_05_01/entities.lua DEST file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Trial_05_01/ES_Library_Objects.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Trial_05_01) #Spawndefs +file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/5th_IndPort.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/5th_Steel.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/CircleOfThorns_Kings.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/CircleOfThorns_Perez.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) @@ -130,6 +131,8 @@ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Clockwork_Kings.spa file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Clockwork_Perez.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Clockwork_Steel.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Contaminated_Outbreak.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) +file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Devouring_IndPort.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) +file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Family_IndPort.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Hellions_Atlas.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Hellions_Perez.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Hydramen_Perez.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) @@ -140,6 +143,7 @@ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Rikti_Perez.spawnde file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Shady_Deal_Cop_Outbreak.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Skulls_Kings.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Skulls_Perez.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) +file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Tsoo_IndPort.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Tsoo_Steel.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Vahzilok_Atlas.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/Data/scripts/Spawndefs/Vahzilok_Kings.spawndef.lua DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/DefaultMapInstances/Spawndefs) diff --git a/Projects/CoX/Data/scripts/City_01_02/entities.lua b/Projects/CoX/Data/scripts/City_01_02/entities.lua index f8695ff88..1cb86cfdf 100644 --- a/Projects/CoX/Data/scripts/City_01_02/entities.lua +++ b/Projects/CoX/Data/scripts/City_01_02/entities.lua @@ -13,9 +13,9 @@ function player_connected(id) spinPersists() spinCivilians() spinCars() - RandomSpawn(65) - RandomSpawn(85, "Civilians") - RandomSpawn(50, "Cars") + RandomSpawn(60) + RandomSpawn(65, "Civilians") + RandomSpawn(35, "Cars") spawnOnce = true end diff --git a/Projects/CoX/Data/scripts/City_03_02/ES_Library_Objects.lua b/Projects/CoX/Data/scripts/City_03_02/ES_Library_Objects.lua index 6051fc33e..749603040 100644 --- a/Projects/CoX/Data/scripts/City_03_02/ES_Library_Objects.lua +++ b/Projects/CoX/Data/scripts/City_03_02/ES_Library_Objects.lua @@ -1,5 +1,149 @@ +--Independence Port +include_lua('../spawndefs/Family_IndPort.spawndef.lua') +include_lua('../spawndefs/Tsoo_IndPort.spawndef.lua') +include_lua('../spawndefs/Devouring_IndPort.spawndef.lua') +include_lua('../spawndefs/5th_IndPort.spawndef.lua') -ES_Library_Objects = {} +ES_Library_Objects = { + ["ES_Family_D1_Around_City_03_02"] = { + ["EncounterSpawn"] = "Around", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4","CanSpawn5","CanSpawn6", + "CanSpawn7", "CanSpawn8","CanSpawn9","CanSpawn10","CanSpawn11","CanSpawn12", + "CanSpawn13", "CanSpawn14","CanSpawn15","CanSpawn16","CanSpawn17",}, + ["CanSpawnDefs"] = {FightClub_Family_D1_V0, FightClub_Family_D1_V1, FightClub_Family_D1_V2, FightClub_Family_D1_V3, + Loiter_Family_D1_V0, Loiter_Family_D1_V1, Loiter_Family_D1_V2, Loiter_Family_D1_V3, + ShadyDeal_Family_D1_V0, ShadyDeal_Family_D1_V1, ShadyDeal_Family_D1_V2, ShadyDeal_Family_D1_V3, + Shakedown_Family_D1_V0, Shakedown_Family_D1_V1, Shakedown_Family_D1_V2, Shakedown_Family_D1_V3, Shakedown_Family_D1_V4,}, + }, + ["ES_Family_D5_Around_City_03_02"] = { + ["EncounterSpawn"] = "Around", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4","CanSpawn5","CanSpawn6", + "CanSpawn7", "CanSpawn8","CanSpawn9","CanSpawn10","CanSpawn11","CanSpawn12", + "CanSpawn13", "CanSpawn14","CanSpawn15","CanSpawn16","CanSpawn17",}, + ["CanSpawnDefs"] = {FightClub_Family_D5_V0, FightClub_Family_D5_V1, FightClub_Family_D5_V2, FightClub_Family_D5_V3, + Loiter_Family_D5_V0, Loiter_Family_D5_V1, Loiter_Family_D5_V2, Loiter_Family_D5_V3, + ShadyDeal_Family_D5_V0, ShadyDeal_Family_D5_V1, ShadyDeal_Family_D5_V2, ShadyDeal_Family_D5_V3, + Shakedown_Family_D5_V0, Shakedown_Family_D5_V1, Shakedown_Family_D5_V2, Shakedown_Family_D5_V3, Shakedown_Family_D5_V4,}, + }, + ["ES_Family_D10_Around_City_03_02"] = { + ["EncounterSpawn"] = "Around", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4","CanSpawn5","CanSpawn6", + "CanSpawn7", "CanSpawn8","CanSpawn9","CanSpawn10","CanSpawn11","CanSpawn12", + "CanSpawn13", "CanSpawn14","CanSpawn15","CanSpawn16","CanSpawn17",}, + ["CanSpawnDefs"] = {FightClub_Family_D10_V0, FightClub_Family_D10_V1, FightClub_Family_D10_V2, FightClub_Family_D10_V3, + Loiter_Family_D10_V0, Loiter_Family_D10_V1, Loiter_Family_D10_V2, Loiter_Family_D10_V3, + ShadyDeal_Family_D10_V0, ShadyDeal_Family_D10_V1, ShadyDeal_Family_D10_V2, ShadyDeal_Family_D10_V3, + Shakedown_Family_D10_V0, Shakedown_Family_D10_V1, Shakedown_Family_D10_V2, Shakedown_Family_D10_V3, Shakedown_Family_D10_V4,}, + }, + ["ES_FamilyTsoo_D3_Rumble_City_03_02"] = { + ["EncounterSpawn"] = "Rumble", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4","CanSpawn5",}, + ["CanSpawnDefs"] = {Rumble_FamilyTsoo_D3_V0, Rumble_FamilyTsoo_D3_V1, Rumble_FamilyTsoo_D3_V2, + Rumble_FamilyTsoo_D3_V3, Rumble_FamilyTsoo_D3_V4,}, + }, + ["ES_FamilyTsoo_D8_Rumble_City_03_02"] = { + ["EncounterSpawn"] = "Rumble", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4","CanSpawn5",}, + ["CanSpawnDefs"] = {Rumble_FamilyTsoo_D8_V0, Rumble_FamilyTsoo_D8_V1, Rumble_FamilyTsoo_D8_V2, + Rumble_FamilyTsoo_D8_V3, Rumble_FamilyTsoo_D8_V4,}, + }, + ["ES_5thTsoo_D3_Rumble_City_03_02"] = { + ["EncounterSpawn"] = "Rumble", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4","CanSpawn5",}, + ["CanSpawnDefs"] = {Rumble_Tsoo5thColumn_D3_V0, Rumble_Tsoo5thColumn_D3_V1, Rumble_Tsoo5thColumn_D3_V2, + Rumble_Tsoo5thColumn_D3_V3, Rumble_Tsoo5thColumn_D3_V4,}, + }, + ["ES_5thTsoo_D8_Rumble_City_03_02"] = { + ["EncounterSpawn"] = "Rumble", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4","CanSpawn5",}, + ["CanSpawnDefs"] = {Rumble_Tsoo5thColumn_D8_V0, Rumble_Tsoo5thColumn_D8_V1, Rumble_Tsoo5thColumn_D8_V2, + Rumble_Tsoo5thColumn_D8_V3, Rumble_Tsoo5thColumn_D8_V4,}, + }, + ["ES_Tsoo_D1_AroundVandalism_City_03_02"] = { + ["EncounterSpawn"] = "AroundVandalism", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4",}, + ["CanSpawnDefs"] = {Vandalism_Tsoo_D1_V0, Vandalism_Tsoo_D1_V1, + Vandalism_Tsoo_D1_V2, Vandalism_Tsoo_D1_V3,}, + }, + ["ES_Tsoo_D5_AroundVandalism_City_03_02"] = { + ["EncounterSpawn"] = "AroundVandalism", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4",}, + ["CanSpawnDefs"] = {Vandalism_Tsoo_D5_V0, Vandalism_Tsoo_D5_V1, + Vandalism_Tsoo_D5_V2, Vandalism_Tsoo_D5_V3,}, + }, + ["ES_Tsoo_D10_AroundVandalism_City_03_02"] = { + ["EncounterSpawn"] = "AroundVandalism", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4",}, + ["CanSpawnDefs"] = {Vandalism_Tsoo_D10_V0, Vandalism_Tsoo_D10_V1, + Vandalism_Tsoo_D10_V2, Vandalism_Tsoo_D10_V3,}, + }, + ["ES_Tsoo_D1_Around_City_03_02"] = { + ["EncounterSpawn"] = "Around", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4",}, + ["CanSpawnDefs"] = {Mugging_Tsoo_D1_V0, Mugging_Tsoo_D1_V1, + Mugging_Tsoo_D1_V2, Mugging_Tsoo_D1_V3,}, + }, + ["ES_Tsoo_D5_Around_City_03_02"] = { + ["EncounterSpawn"] = "Around", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4",}, + ["CanSpawnDefs"] = {Mugging_Tsoo_D5_V0, Mugging_Tsoo_D5_V1, + Mugging_Tsoo_D5_V2, Mugging_Tsoo_D5_V3,}, + }, + ["ES_Tsoo_D10_Around_City_03_02"] = { + ["EncounterSpawn"] = "Around", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4",}, + ["CanSpawnDefs"] = {Mugging_Tsoo_D10_V0, Mugging_Tsoo_D10_V1, + Mugging_Tsoo_D10_V2, Mugging_Tsoo_D10_V3,}, + }, + ["ES_5thFamily_D3_Rumble_City_03_02"] = { + ["EncounterSpawn"] = "Rumble", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4","CanSpawn5",}, + ["CanSpawnDefs"] = {Rumble_5thFamily_D3_V0, Rumble_5thFamily_D3_V1, Rumble_5thFamily_D3_V2, + Rumble_5thFamily_D3_V3, Rumble_5thFamily_D3_V4,}, + }, + ["ES_5thFamily_D8_Rumble_City_03_02"] = { + ["EncounterSpawn"] = "Rumble", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4","CanSpawn5",}, + ["CanSpawnDefs"] = {Rumble_5thFamily_D8_V0, Rumble_5thFamily_D8_V1, Rumble_5thFamily_D8_V2, + Rumble_5thFamily_D8_V3, Rumble_5thFamily_D8_V4,}, + }, + ["ES_DE_Rampage_D5_City_03_02"] = { + ["EncounterSpawn"] = "GroupedDirection", + ["CanSpawn"] = {"CanSpawn1","CanSpawn2","CanSpawn3","CanSpawn4","CanSpawn5",}, + ["CanSpawnDefs"] = {Rampage_DevouringEarth_D5_V0, Rampage_DevouringEarth_D5_V1, Rampage_DevouringEarth_D5_V2, + Rampage_DevouringEarth_D5_V3, Rampage_DevouringEarth_D5_V4,}, + }, + ["ES_FreaksVsFamily_D5_City_03_02"] = { + ["EncounterSpawn"] = "RumbleCatwalk", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4","CanSpawn5",}, + ["CanSpawnDefs"] = {Rumble_FreakshowFamily_D5_V0, Rumble_FreakshowFamily_D5_V1, Rumble_FreakshowFamily_D5_V2, + Rumble_FreakshowFamily_D5_V3, Rumble_FreakshowFamily_D5_V4,}, + }, + ["ES_FreaksVsTsoo_D5_City_03_02"] = { + ["EncounterSpawn"] = "RumbleCatwalk", + ["CanSpawn"] = {"CanSpawn1", "CanSpawn2","CanSpawn3","CanSpawn4","CanSpawn5",}, + ["CanSpawnDefs"] = {Rumble_FreakshowTsoo_D5_V0, Rumble_FreakshowTsoo_D5_V1, Rumble_FreakshowTsoo_D5_V2, + Rumble_FreakshowTsoo_D5_V3, Rumble_FreakshowTsoo_D5_V4,}, + }, + ["ES_5thColumn_Recruit_D1_City_03_02"] = { + ["EncounterSpawn"] = "GroupedDirection", + ["CanSpawn"] = {"CanSpawn1","CanSpawn2","CanSpawn3","CanSpawn4","CanSpawn5",}, + ["CanSpawnDefs"] = {Recruit_5thColumn_D1_V0, Recruit_5thColumn_D1_V1, Recruit_5thColumn_D1_V2, + Recruit_5thColumn_D1_V3, Recruit_5thColumn_D1_V4}, + }, + ["ES_5thColumn_Recruit_D5_City_03_02"] = { + ["EncounterSpawn"] = "GroupedDirection", + ["CanSpawn"] = {"CanSpawn1","CanSpawn2","CanSpawn3","CanSpawn4","CanSpawn5",}, + ["CanSpawnDefs"] = {Recruit_5thColumn_D5_V0, Recruit_5thColumn_D5_V1, Recruit_5thColumn_D5_V2, + Recruit_5thColumn_D5_V3, Recruit_5thColumn_D5_V4}, + }, + ["ES_5thColumn_Recruit_D10_City_03_02"] = { + ["EncounterSpawn"] = "GroupedDirection", + ["CanSpawn"] = {"CanSpawn1","CanSpawn2","CanSpawn3","CanSpawn4","CanSpawn5",}, + ["CanSpawnDefs"] = {Recruit_5thColumn_D10_V0, Recruit_5thColumn_D10_V1, Recruit_5thColumn_D10_V2, + Recruit_5thColumn_D10_V3, Recruit_5thColumn_D10_V4}, + }, +} --REQUIRED: This inserts universal into this map's OL local UniOnce diff --git a/Projects/CoX/Data/scripts/City_03_02/entities.lua b/Projects/CoX/Data/scripts/City_03_02/entities.lua index 11db2ef0c..68907f24f 100644 --- a/Projects/CoX/Data/scripts/City_03_02/entities.lua +++ b/Projects/CoX/Data/scripts/City_03_02/entities.lua @@ -13,8 +13,8 @@ function player_connected(id) spinPersists() spinCivilians() spinCars() - --RandomSpawn(65) --There are no SpawnDefs set up here yet - RandomSpawn(325, "Civilians") + RandomSpawn(75) + RandomSpawn(50, "Civilians") RandomSpawn(4, "Cars") spawnOnce = true end diff --git a/Projects/CoX/Data/scripts/Encounter_Manager.lua b/Projects/CoX/Data/scripts/Encounter_Manager.lua index 967bd7824..3660d00ef 100644 --- a/Projects/CoX/Data/scripts/Encounter_Manager.lua +++ b/Projects/CoX/Data/scripts/Encounter_Manager.lua @@ -1,3 +1,4 @@ +--REQUIRED INCLUDE-- include_lua('ES_Library_Objects.lua') --Sends a server message diff --git a/Projects/CoX/Data/scripts/Spawndefs/5th_IndPort.spawndef.lua b/Projects/CoX/Data/scripts/Spawndefs/5th_IndPort.spawndef.lua new file mode 100644 index 000000000..a6c5000c5 --- /dev/null +++ b/Projects/CoX/Data/scripts/Spawndefs/5th_IndPort.spawndef.lua @@ -0,0 +1,74 @@ +--This is a rank table +--There could be multiple tables to generate spawns from +local Fifth_Ranks_01 = { + ["Minions"] = { + "5thNight_00", "5thNight_01", + }, + ["Lieutenants"] = { + "5thUber_40", + }, +} + +--== RECRUIT ==-- + +Recruit_5thColumn_D1_V0 = { + ["Markers"] = { + ["Encounter_S_31"] = Fifth_Ranks_01.Lieutenants, + ["Encounter_E_11"] = Fifth_Ranks_01.Minions, + }, +} + +Recruit_5thColumn_D1_V1 = { + ["Markers"] = { + ["Encounter_S_31"] = Fifth_Ranks_01.Lieutenants, + ["Encounter_E_11"] = Fifth_Ranks_01.Minions, + ["Encounter_E_07"] = Fifth_Ranks_01.Minions, + ["Encounter_E_01"] = Fifth_Ranks_01.Minions, + }, +} + +Recruit_5thColumn_D1_V2 = { + ["Markers"] = { + ["Encounter_S_31"] = Fifth_Ranks_01.Lieutenants, + ["Encounter_E_11"] = Fifth_Ranks_01.Minions, + ["Encounter_E_05"] = Fifth_Ranks_01.Minions, + ["Encounter_E_03"] = Fifth_Ranks_01.Minions, + }, +} + +Recruit_5thColumn_D1_V3 = { + ["Markers"] = { + ["Encounter_S_31"] = Fifth_Ranks_01.Lieutenants, + ["Encounter_E_11"] = Fifth_Ranks_01.Minions, + ["Encounter_E_07"] = Fifth_Ranks_01.Minions, + ["Encounter_E_01"] = Fifth_Ranks_01.Minions, + ["Encounter_E_05"] = Fifth_Ranks_01.Minions, + ["Encounter_E_09"] = Fifth_Ranks_01.Minions, + }, +} + +Recruit_5thColumn_D1_V4 = { + ["Markers"] = { + ["Encounter_S_31"] = Fifth_Ranks_01.Lieutenants, + ["Encounter_S_30"] = Fifth_Ranks_01.Lieutenants, + ["Encounter_E_11"] = Fifth_Ranks_01.Minions, + ["Encounter_E_07"] = Fifth_Ranks_01.Minions, + ["Encounter_E_01"] = Fifth_Ranks_01.Minions, + ["Encounter_E_05"] = Fifth_Ranks_01.Minions, + ["Encounter_E_09"] = Fifth_Ranks_01.Minions, + ["Encounter_E_08"] = Fifth_Ranks_01.Minions, + ["Encounter_E_04"] = Fifth_Ranks_01.Minions, + }, +} + +Recruit_5thColumn_D5_V0 = Recruit_5thColumn_D1_V0 +Recruit_5thColumn_D5_V1 = Recruit_5thColumn_D1_V1 +Recruit_5thColumn_D5_V2 = Recruit_5thColumn_D1_V2 +Recruit_5thColumn_D5_V3 = Recruit_5thColumn_D1_V3 +Recruit_5thColumn_D5_V4 = Recruit_5thColumn_D1_V4 + +Recruit_5thColumn_D10_V0 = Recruit_5thColumn_D1_V0 +Recruit_5thColumn_D10_V1 = Recruit_5thColumn_D1_V1 +Recruit_5thColumn_D10_V2 = Recruit_5thColumn_D1_V2 +Recruit_5thColumn_D10_V3 = Recruit_5thColumn_D1_V3 +Recruit_5thColumn_D10_V4 = Recruit_5thColumn_D1_V4 \ No newline at end of file diff --git a/Projects/CoX/Data/scripts/Spawndefs/5th_Steel.spawndef.lua b/Projects/CoX/Data/scripts/Spawndefs/5th_Steel.spawndef.lua index e15544125..31edd3987 100644 --- a/Projects/CoX/Data/scripts/Spawndefs/5th_Steel.spawndef.lua +++ b/Projects/CoX/Data/scripts/Spawndefs/5th_Steel.spawndef.lua @@ -45,8 +45,6 @@ Proselytize_5thColumn_D3_V2 = { }, } ---== PROSELYTIZE ==-- - Proselytize_5thColumn_D8_V0 = Proselytize_5thColumn_D3_V0 Proselytize_5thColumn_D8_V1 = Proselytize_5thColumn_D3_V1 Proselytize_5thColumn_D8_V2 = Proselytize_5thColumn_D3_V2 diff --git a/Projects/CoX/Data/scripts/Spawndefs/Devouring_IndPort.spawndef.lua b/Projects/CoX/Data/scripts/Spawndefs/Devouring_IndPort.spawndef.lua new file mode 100644 index 000000000..0853d0ebe --- /dev/null +++ b/Projects/CoX/Data/scripts/Spawndefs/Devouring_IndPort.spawndef.lua @@ -0,0 +1,47 @@ + +local Devoured_Ranks_01 = { + ["Minions"] = { + "Devoured_01", "Devoured_02", + }, +} + +--== RAMPAGE ==-- + +Rampage_DevouringEarth_D5_V0 = { + ["Markers"] = { + ["Encounter_S_31"] = Devoured_Ranks_01.Minions, + }, +} + +Rampage_DevouringEarth_D5_V1 = { + ["Markers"] = { + ["Encounter_S_31"] = Devoured_Ranks_01.Minions, + ["Encounter_E_11"] = Devoured_Ranks_01.Minions, + }, +} + +Rampage_DevouringEarth_D5_V2 = { + ["Markers"] = { + ["Encounter_S_31"] = Devoured_Ranks_01.Minions, + ["Encounter_E_11"] = Devoured_Ranks_01.Minions, + ["Encounter_E_07"] = Devoured_Ranks_01.Minions, + }, +} + +Rampage_DevouringEarth_D5_V3 = { + ["Markers"] = { + ["Encounter_S_31"] = Devoured_Ranks_01.Minions, + ["Encounter_E_11"] = Devoured_Ranks_01.Minions, + ["Encounter_E_07"] = Devoured_Ranks_01.Minions, + ["Encounter_E_01"] = Devoured_Ranks_01.Minions, + }, +} +Rampage_DevouringEarth_D5_V4 = { + ["Markers"] = { + ["Encounter_S_31"] = Devoured_Ranks_01.Minions, + ["Encounter_E_11"] = Devoured_Ranks_01.Minions, + ["Encounter_E_07"] = Devoured_Ranks_01.Minions, + ["Encounter_E_01"] = Devoured_Ranks_01.Minions, + ["Encounter_E_05"] = Devoured_Ranks_01.Minions, + }, +} diff --git a/Projects/CoX/Data/scripts/Spawndefs/Family_IndPort.spawndef.lua b/Projects/CoX/Data/scripts/Spawndefs/Family_IndPort.spawndef.lua new file mode 100644 index 000000000..6f2a8b3a3 --- /dev/null +++ b/Projects/CoX/Data/scripts/Spawndefs/Family_IndPort.spawndef.lua @@ -0,0 +1,435 @@ +--This is a rank table +--There could be multiple tables to generate spawns from +local Family_Ranks_01 = { + ["Minions"] = { + "Thug_Family_01","Thug_Family_02","Thug_Family_03","Thug_Family_04", + "Thug_Family_05","Thug_Family_06", + }, + ["Lieutenants"] = { + "Thug_Family_Boss_01", "Thug_Family_Boss_02", + }, + ["Victims"] = { + "MaleNPC_100", "MaleNPC_101", "MaleNPC_102", "MaleNPC_103", + "MaleNPC_104", "MaleNPC_105", "MaleNPC_106", "MaleNPC_107", + "MaleNPC_108", "MaleNPC_109", "MaleNPC_110", + } +} + +local Tsoo_Rumble_01 = { + ["Minions"] = { + "Tsoo_01", "Tsoo_02", "Tsoo_03", + "Tsoo_04", "Tsoo_05", "Tsoo_06", + "Tsoo_07", "Tsoo_08", "Tsoo_09", + }, + ["Lieutenants"] = { + "Inkman_01", "Inkman_02", "Inkman_03", "Inkman_04", + "Inkman_05", "Inkman_06", + }, +} + +local Fifth_Rumble_01 = { + ["Minions"] = { + "5thNight_00", "5thNight_01", + }, + ["Lieutenants"] = { + "5thUber_40", + }, +} + +local Freaks_Rumble_01 = { + ["Minions"] = { + "FRK_01","FRK_02","FRK_03","FRK_04", + "FRK_05","FRK_06","FRK_07", + }, + ["Lieutenants"] = { + "FRK_14", + }, +} + +--== FIGHT CLUB: Family ==-- + +FightClub_Family_D1_V0 = { + ["Markers"] = { + ["Encounter_S_30"] = Family_Ranks_01.Minions, + ["Encounter_S_32"] = Family_Ranks_01.Minions, + ["Encounter_E_01"] = Family_Ranks_01.Minions, + }, +} + +FightClub_Family_D1_V1 = { + ["Markers"] = { + ["Encounter_S_30"] = Family_Ranks_01.Minions, + ["Encounter_S_32"] = Family_Ranks_01.Minions, + ["Encounter_E_01"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_04"] = Family_Ranks_01.Lieutenants, + }, +} + +FightClub_Family_D1_V2 = { + ["Markers"] = { + ["Encounter_S_30"] = Family_Ranks_01.Minions, + ["Encounter_S_32"] = Family_Ranks_01.Minions, + ["Encounter_E_01"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_04"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_05"] = Family_Ranks_01.Minions, + ["Encounter_E_08"] = Family_Ranks_01.Minions, + }, +} + +FightClub_Family_D1_V3 = { + ["Markers"] = { + ["Encounter_S_30"] = Family_Ranks_01.Lieutenants, + ["Encounter_S_32"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_01"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_02"] = Family_Ranks_01.Minions, + ["Encounter_E_04"] = Family_Ranks_01.Minions, + ["Encounter_E_06"] = Family_Ranks_01.Minions, + ["Encounter_E_07"] = Family_Ranks_01.Minions, + }, +} + +FightClub_Family_D5_V0 = FightClub_Family_D1_V0 +FightClub_Family_D5_V1 = FightClub_Family_D1_V1 +FightClub_Family_D5_V2 = FightClub_Family_D1_V2 +FightClub_Family_D5_V3 = FightClub_Family_D1_V3 + +FightClub_Family_D10_V0 = FightClub_Family_D1_V0 +FightClub_Family_D10_V1 = FightClub_Family_D1_V1 +FightClub_Family_D10_V2 = FightClub_Family_D1_V2 +FightClub_Family_D10_V3 = FightClub_Family_D1_V3 + +--== LOITERING ==-- + +Loiter_Family_D1_V0 = { + ["Markers"] = { + ["Encounter_S_30"] = Family_Ranks_01.Minions, + ["Encounter_S_32"] = Family_Ranks_01.Minions, + ["Encounter_E_01"] = Family_Ranks_01.Minions, + }, +} + +Loiter_Family_D1_V1 = { + ["Markers"] = { + ["Encounter_S_30"] = Family_Ranks_01.Minions, + ["Encounter_S_32"] = Family_Ranks_01.Minions, + ["Encounter_E_01"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_04"] = Family_Ranks_01.Lieutenants, + }, +} + +Loiter_Family_D1_V2 = { + ["Markers"] = { + ["Encounter_S_30"] = Family_Ranks_01.Minions, + ["Encounter_S_32"] = Family_Ranks_01.Minions, + ["Encounter_E_01"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_04"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_05"] = Family_Ranks_01.Minions, + ["Encounter_E_08"] = Family_Ranks_01.Minions, + }, +} + +Loiter_Family_D1_V3 = { + ["Markers"] = { + ["Encounter_S_30"] = Family_Ranks_01.Lieutenants, + ["Encounter_S_32"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_01"] = Family_Ranks_01.Minions, + ["Encounter_E_02"] = Family_Ranks_01.Minions, + ["Encounter_E_04"] = Family_Ranks_01.Minions, + ["Encounter_E_05"] = Family_Ranks_01.Minions, + ["Encounter_E_07"] = Family_Ranks_01.Minions, + }, +} + +Loiter_Family_D5_V0 = Loiter_Family_D1_V0 +Loiter_Family_D5_V1 = Loiter_Family_D1_V1 +Loiter_Family_D5_V2 = Loiter_Family_D1_V2 +Loiter_Family_D5_V3 = Loiter_Family_D1_V3 + +Loiter_Family_D10_V0 = Loiter_Family_D1_V0 +Loiter_Family_D10_V1 = Loiter_Family_D1_V1 +Loiter_Family_D10_V2 = Loiter_Family_D1_V2 +Loiter_Family_D10_V3 = Loiter_Family_D1_V3 + +--== SHADY DEALS ==-- + +ShadyDeal_Family_D1_V0 = { + ["Markers"] = { + ["Encounter_S_30"] = Family_Ranks_01.Minions, + ["Encounter_S_32"] = Family_Ranks_01.Minions, + ["Encounter_E_01"] = Family_Ranks_01.Minions, + }, +} + +ShadyDeal_Family_D1_V1 = { + ["Markers"] = { + ["Encounter_S_30"] = Family_Ranks_01.Lieutenants, + ["Encounter_S_32"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_01"] = Family_Ranks_01.Minions, + ["Encounter_E_04"] = Family_Ranks_01.Minions, + }, +} + +ShadyDeal_Family_D1_V2 = { + ["Markers"] = { + ["Encounter_S_30"] = Family_Ranks_01.Lieutenants, + ["Encounter_S_32"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_01"] = Family_Ranks_01.Minions, + ["Encounter_E_04"] = Family_Ranks_01.Minions, + ["Encounter_E_05"] = Family_Ranks_01.Minions, + ["Encounter_E_08"] = Family_Ranks_01.Minions, + }, +} + +ShadyDeal_Family_D1_V3 = { + ["Markers"] = { + ["Encounter_S_30"] = Family_Ranks_01.Lieutenants, + ["Encounter_S_32"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_02"] = Family_Ranks_01.Minions, + ["Encounter_E_03"] = Family_Ranks_01.Minions, + ["Encounter_E_05"] = Family_Ranks_01.Minions, + ["Encounter_E_06"] = Family_Ranks_01.Minions, + ["Encounter_E_08"] = Family_Ranks_01.Minions, + }, +} + +ShadyDeal_Family_D5_V0 = ShadyDeal_Family_D1_V0 +ShadyDeal_Family_D5_V1 = ShadyDeal_Family_D1_V1 +ShadyDeal_Family_D5_V2 = ShadyDeal_Family_D1_V2 +ShadyDeal_Family_D5_V3 = ShadyDeal_Family_D1_V3 + +ShadyDeal_Family_D10_V0 = ShadyDeal_Family_D1_V0 +ShadyDeal_Family_D10_V1 = ShadyDeal_Family_D1_V1 +ShadyDeal_Family_D10_V2 = ShadyDeal_Family_D1_V2 +ShadyDeal_Family_D10_V3 = ShadyDeal_Family_D1_V3 + +--== SHAKE DOWNS ==-- + +Shakedown_Family_D1_V0 = { + ["Markers"] = { + ["Encounter_V_40"] = Family_Ranks_01.Victims, + ["Encounter_S_30"] = Family_Ranks_01.Minions, + ["Encounter_S_32"] = Family_Ranks_01.Minions, + ["Encounter_E_01"] = Family_Ranks_01.Minions, + }, +} + +Shakedown_Family_D1_V1 = { + ["Markers"] = { + ["Encounter_V_40"] = Family_Ranks_01.Victims, + ["Encounter_S_30"] = Family_Ranks_01.Lieutenants, + ["Encounter_S_32"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_01"] = Family_Ranks_01.Minions, + ["Encounter_E_04"] = Family_Ranks_01.Minions, + }, +} + +Shakedown_Family_D1_V2 = { + ["Markers"] = { + ["Encounter_V_40"] = Family_Ranks_01.Victims, + ["Encounter_V_42"] = Family_Ranks_01.Victims, + ["Encounter_S_30"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_01"] = Family_Ranks_01.Minions, + ["Encounter_E_04"] = Family_Ranks_01.Minions, + ["Encounter_E_05"] = Family_Ranks_01.Minions, + }, +} + +Shakedown_Family_D1_V3 = { + ["Markers"] = { + ["Encounter_V_40"] = Family_Ranks_01.Victims, + ["Encounter_V_42"] = Family_Ranks_01.Victims, + ["Encounter_S_30"] = Family_Ranks_01.Lieutenants, + ["Encounter_S_32"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_06"] = Family_Ranks_01.Minions, + ["Encounter_E_08"] = Family_Ranks_01.Minions, + }, +} + +Shakedown_Family_D1_V4 = { + ["Markers"] = { + ["Encounter_V_40"] = Family_Ranks_01.Victims, + ["Encounter_V_41"] = Family_Ranks_01.Victims, + ["Encounter_V_42"] = Family_Ranks_01.Victims, + ["Encounter_S_30"] = Family_Ranks_01.Lieutenants, + ["Encounter_S_32"] = Family_Ranks_01.Lieutenants, + ["Encounter_E_05"] = Family_Ranks_01.Minions, + ["Encounter_E_06"] = Family_Ranks_01.Minions, + ["Encounter_E_08"] = Family_Ranks_01.Minions, + }, +} + +Shakedown_Family_D5_V0 = Shakedown_Family_D1_V0 +Shakedown_Family_D5_V1 = Shakedown_Family_D1_V1 +Shakedown_Family_D5_V2 = Shakedown_Family_D1_V2 +Shakedown_Family_D5_V3 = Shakedown_Family_D1_V3 +Shakedown_Family_D5_V4 = Shakedown_Family_D1_V4 + +Shakedown_Family_D10_V0 = Shakedown_Family_D1_V0 +Shakedown_Family_D10_V1 = Shakedown_Family_D1_V1 +Shakedown_Family_D10_V2 = Shakedown_Family_D1_V2 +Shakedown_Family_D10_V3 = Shakedown_Family_D1_V3 +Shakedown_Family_D10_V4 = Shakedown_Family_D1_V4 + +--==RUMBLE: Tsoo vs. Family ==-- + +Rumble_FamilyTsoo_D3_V0 = { + ["Markers"] = { + ["Encounter_E_08"] = Family_Ranks_01.Minions, + ["Encounter_E_02"] = Family_Ranks_01.Minions, + ["Encounter_E_07"] = Tsoo_Rumble_01.Minions, + ["Encounter_E_01"] = Tsoo_Rumble_01.Minions, + }, +} + +Rumble_FamilyTsoo_D3_V1 = { + ["Markers"] = { + ["Encounter_E_08"] = Family_Ranks_01.Minions, + ["Encounter_E_02"] = Family_Ranks_01.Minions, + ["Encounter_S_34"] = Family_Ranks_01.Minions, + ["Encounter_E_07"] = Tsoo_Rumble_01.Minions, + ["Encounter_E_01"] = Tsoo_Rumble_01.Minions, + ["Encounter_S_35"] = Tsoo_Rumble_01.Minions, + }, +} + +Rumble_FamilyTsoo_D3_V2 = { + ["Markers"] = { + ["Encounter_E_08"] = Family_Ranks_01.Minions, + ["Encounter_E_02"] = Family_Ranks_01.Minions, + ["Encounter_S_34"] = Family_Ranks_01.Minions, + ["Encounter_E_06"] = Family_Ranks_01.Minions, + ["Encounter_E_07"] = Tsoo_Rumble_01.Minions, + ["Encounter_E_01"] = Tsoo_Rumble_01.Minions, + ["Encounter_S_35"] = Tsoo_Rumble_01.Minions, + ["Encounter_S_31"] = Tsoo_Rumble_01.Minions, + }, +} + +Rumble_FamilyTsoo_D3_V3 = { + ["Markers"] = { + ["Encounter_E_08"] = Family_Ranks_01.Minions, + ["Encounter_E_02"] = Family_Ranks_01.Minions, + ["Encounter_S_34"] = Family_Ranks_01.Minions, + ["Encounter_E_06"] = Family_Ranks_01.Minions, + ["Encounter_E_10"] = Family_Ranks_01.Minions, + ["Encounter_S_35"] = Tsoo_Rumble_01.Minions, + ["Encounter_E_07"] = Tsoo_Rumble_01.Minions, + ["Encounter_E_01"] = Tsoo_Rumble_01.Minions, + ["Encounter_S_35"] = Tsoo_Rumble_01.Minions, + ["Encounter_S_31"] = Tsoo_Rumble_01.Minions, + }, +} + +Rumble_FamilyTsoo_D3_V4 = { + ["Markers"] = { + ["Encounter_E_08"] = Family_Ranks_01.Minions, + ["Encounter_E_02"] = Family_Ranks_01.Minions, + ["Encounter_S_34"] = Family_Ranks_01.Minions, + ["Encounter_E_06"] = Family_Ranks_01.Minions, + ["Encounter_E_10"] = Family_Ranks_01.Minions, + ["Encounter_E_04"] = Family_Ranks_01.Minions, + ["Encounter_E_12"] = Family_Ranks_01.Minions, + ["Encounter_E_11"] = Tsoo_Rumble_01.Minions, + ["Encounter_E_09"] = Tsoo_Rumble_01.Minions, + ["Encounter_S_33"] = Tsoo_Rumble_01.Minions, + ["Encounter_E_07"] = Tsoo_Rumble_01.Minions, + ["Encounter_E_01"] = Tsoo_Rumble_01.Minions, + ["Encounter_S_35"] = Tsoo_Rumble_01.Minions, + ["Encounter_S_31"] = Tsoo_Rumble_01.Minions, + }, +} + +Rumble_FamilyTsoo_D8_V0 = Rumble_FamilyTsoo_D3_V0 +Rumble_FamilyTsoo_D8_V1 = Rumble_FamilyTsoo_D3_V1 +Rumble_FamilyTsoo_D8_V2 = Rumble_FamilyTsoo_D3_V2 +Rumble_FamilyTsoo_D8_V3 = Rumble_FamilyTsoo_D3_V3 +Rumble_FamilyTsoo_D8_V4 = Rumble_FamilyTsoo_D3_V4 + +--==RUMBLE: Fifth vs. Family ==-- + +Rumble_5thFamily_D3_V0 = { + ["Markers"] = { + ["Encounter_E_08"] = Family_Ranks_01.Minions, + ["Encounter_E_06"] = Family_Ranks_01.Minions, + ["Encounter_E_02"] = Family_Ranks_01.Minions, + ["Encounter_E_07"] = Fifth_Rumble_01.Minions, + ["Encounter_E_01"] = Fifth_Rumble_01.Minions, + ["Encounter_E_03"] = Fifth_Rumble_01.Minions, + }, +} + +Rumble_5thFamily_D3_V1 = Rumble_5thFamily_D3_V0 +Rumble_5thFamily_D3_V2 = Rumble_5thFamily_D3_V0 +Rumble_5thFamily_D3_V3 = Rumble_5thFamily_D3_V0 +Rumble_5thFamily_D3_V4 = Rumble_5thFamily_D3_V0 + +Rumble_5thFamily_D8_V0 = Rumble_5thFamily_D3_V0 +Rumble_5thFamily_D8_V1 = Rumble_5thFamily_D3_V0 +Rumble_5thFamily_D8_V2 = Rumble_5thFamily_D3_V0 +Rumble_5thFamily_D8_V3 = Rumble_5thFamily_D3_V0 +Rumble_5thFamily_D8_V4 = Rumble_5thFamily_D3_V0 + +--==RUMBLE: Freaks vs. Family ==-- + +Rumble_FreakshowFamily_D5_V0 = { + ["Markers"] = { + ["Encounter_E_08"] = Family_Ranks_01.Minions, + ["Encounter_E_02"] = Family_Ranks_01.Minions, + ["Encounter_E_07"] = Freaks_Rumble_01.Minions, + ["Encounter_E_01"] = Freaks_Rumble_01.Minions, + }, +} + +Rumble_FreakshowFamily_D5_V1 = { + ["Markers"] = { + ["Encounter_E_08"] = Family_Ranks_01.Minions, + ["Encounter_E_02"] = Family_Ranks_01.Minions, + ["Encounter_S_34"] = Family_Ranks_01.Minions, + ["Encounter_E_07"] = Freaks_Rumble_01.Minions, + ["Encounter_E_01"] = Freaks_Rumble_01.Minions, + ["Encounter_S_35"] = Freaks_Rumble_01.Minions, + }, +} + +Rumble_FreakshowFamily_D5_V2 = { + ["Markers"] = { + ["Encounter_E_08"] = Family_Ranks_01.Minions, + ["Encounter_E_02"] = Family_Ranks_01.Minions, + ["Encounter_S_34"] = Family_Ranks_01.Minions, + ["Encounter_E_06"] = Family_Ranks_01.Minions, + ["Encounter_E_07"] = Freaks_Rumble_01.Minions, + ["Encounter_E_01"] = Freaks_Rumble_01.Minions, + ["Encounter_S_35"] = Freaks_Rumble_01.Minions, + ["Encounter_S_31"] = Freaks_Rumble_01.Minions, + }, +} + +Rumble_FreakshowFamily_D5_V3 = { + ["Markers"] = { + ["Encounter_E_08"] = Family_Ranks_01.Minions, + ["Encounter_E_02"] = Family_Ranks_01.Minions, + ["Encounter_S_34"] = Family_Ranks_01.Minions, + ["Encounter_E_06"] = Family_Ranks_01.Minions, + ["Encounter_E_10"] = Family_Ranks_01.Minions, + ["Encounter_E_12"] = Family_Ranks_01.Minions, + ["Encounter_E_11"] = Freaks_Rumble_01.Minions, + ["Encounter_S_33"] = Freaks_Rumble_01.Minions, + ["Encounter_E_07"] = Freaks_Rumble_01.Minions, + ["Encounter_E_01"] = Freaks_Rumble_01.Minions, + ["Encounter_S_35"] = Freaks_Rumble_01.Minions, + ["Encounter_S_31"] = Freaks_Rumble_01.Minions, + }, +} + +Rumble_FreakshowFamily_D5_V4 = { + ["Markers"] = { + ["Encounter_E_10"] = Family_Ranks_01.Minions, + ["Encounter_E_12"] = Family_Ranks_01.Minions, + ["Encounter_S_34"] = Family_Ranks_01.Minions, + ["Encounter_E_06"] = Family_Ranks_01.Minions, + ["Encounter_E_11"] = Freaks_Rumble_01.Minions, + ["Encounter_E_01"] = Freaks_Rumble_01.Minions, + ["Encounter_S_33"] = Freaks_Rumble_01.Minions, + ["Encounter_S_31"] = Freaks_Rumble_01.Minions, + }, +} diff --git a/Projects/CoX/Data/scripts/Spawndefs/Tsoo_IndPort.spawndef.lua b/Projects/CoX/Data/scripts/Spawndefs/Tsoo_IndPort.spawndef.lua new file mode 100644 index 000000000..d5abf9add --- /dev/null +++ b/Projects/CoX/Data/scripts/Spawndefs/Tsoo_IndPort.spawndef.lua @@ -0,0 +1,261 @@ +local Tsoo_Ranks_01 = { + ["Underlings"] = { + --NA + }, + ["Minions"] = { + "Tsoo_01", "Tsoo_02", "Tsoo_03", + "Tsoo_04", "Tsoo_05", "Tsoo_06", + "Tsoo_07", "Tsoo_08", "Tsoo_09", + "Tsoo_10", "Tsoo_11", "Tsoo_12", + "Tsoo_13", "Tsoo_14", "Tsoo_15", + "Tsoo_16", "Tsoo_17", + }, + ["Lieutenants"] = { + "Inkman_01", "Inkman_02", "Inkman_03", "Inkman_04", + "Inkman_05", "Inkman_06", + }, + ["Sniper"] = { + --NA + }, + ["Boss"] = { + "Mystic_01", "Mystic_02", "Mystic_03", "Mystic_04", + }, + ["Elite Boss"] = { + --NA + }, + ["Victims"] = { + "MaleNPC_90", "MaleNPC_91", "MaleNPC_92", + "MaleNPC_93", "MaleNPC_94", "MaleNPC_95", + "MaleNPC_96", "MaleNPC_97", "MaleNPC_98", + "MaleNPC_99", + }, + ["Specials"] = { + + }, +} + +local Fifth_Rumble_01 = { + ["Minions"] = { + "5thNight_00", "5thNight_01", + }, + ["Lieutenants"] = { + "5thUber_40", + }, +} + +local Freaks_Rumble_01 = { + ["Minions"] = { + "FRK_01","FRK_02","FRK_03","FRK_04", + "FRK_05","FRK_06","FRK_07", + }, + ["Lieutenants"] = { + "FRK_14", + }, +} + +--==RUMBLE: Tsoo vs. Fifth ==-- + +Rumble_Tsoo5thColumn_D3_V0 = { + ["Markers"] = { + ["Encounter_E_08"] = Fifth_Rumble_01.Minions, + ["Encounter_E_02"] = Fifth_Rumble_01.Minions, + ["Encounter_E_07"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_01"] = Tsoo_Ranks_01.Minions, + }, +} + +Rumble_Tsoo5thColumn_D3_V1 = { + ["Markers"] = { + ["Encounter_E_08"] = Fifth_Rumble_01.Minions, + ["Encounter_E_02"] = Fifth_Rumble_01.Minions, + ["Encounter_S_34"] = Fifth_Rumble_01.Minions, + ["Encounter_E_07"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_01"] = Tsoo_Ranks_01.Minions, + ["Encounter_S_35"] = Tsoo_Ranks_01.Minions, + }, +} + +Rumble_Tsoo5thColumn_D3_V2 = { + ["Markers"] = { + ["Encounter_E_08"] = Fifth_Rumble_01.Minions, + ["Encounter_E_02"] = Fifth_Rumble_01.Minions, + ["Encounter_S_34"] = Fifth_Rumble_01.Minions, + ["Encounter_E_06"] = Fifth_Rumble_01.Minions, + ["Encounter_E_07"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_01"] = Tsoo_Ranks_01.Minions, + ["Encounter_S_35"] = Tsoo_Ranks_01.Minions, + ["Encounter_S_31"] = Tsoo_Ranks_01.Minions, + }, +} + +Rumble_Tsoo5thColumn_D3_V3 = { + ["Markers"] = { + ["Encounter_E_08"] = Fifth_Rumble_01.Minions, + ["Encounter_E_02"] = Fifth_Rumble_01.Minions, + ["Encounter_S_34"] = Fifth_Rumble_01.Minions, + ["Encounter_E_06"] = Fifth_Rumble_01.Minions, + ["Encounter_E_10"] = Fifth_Rumble_01.Minions, + ["Encounter_E_12"] = Fifth_Rumble_01.Minions, + ["Encounter_E_11"] = Tsoo_Ranks_01.Minions, + ["Encounter_S_35"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_07"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_01"] = Tsoo_Ranks_01.Minions, + ["Encounter_S_35"] = Tsoo_Ranks_01.Minions, + ["Encounter_S_31"] = Tsoo_Ranks_01.Minions, + }, +} + +Rumble_Tsoo5thColumn_D3_V4 = { + ["Markers"] = { + ["Encounter_E_10"] = Fifth_Rumble_01.Minions, + ["Encounter_E_04"] = Fifth_Rumble_01.Minions, + ["Encounter_E_12"] = Fifth_Rumble_01.Minions, + ["Encounter_S_32"] = Fifth_Rumble_01.Minions, + ["Encounter_S_30"] = Fifth_Rumble_01.Minions, + ["Encounter_S_33"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_03"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_11"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_09"] = Tsoo_Ranks_01.Minions, + ["Encounter_S_35"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_07"] = Tsoo_Ranks_01.Minions, + }, +} + +Rumble_Tsoo5thColumn_D8_V0 = Rumble_Tsoo5thColumn_D3_V0 +Rumble_Tsoo5thColumn_D8_V1 = Rumble_Tsoo5thColumn_D3_V1 +Rumble_Tsoo5thColumn_D8_V2 = Rumble_Tsoo5thColumn_D3_V2 +Rumble_Tsoo5thColumn_D8_V3 = Rumble_Tsoo5thColumn_D3_V3 +Rumble_Tsoo5thColumn_D8_V4 = Rumble_Tsoo5thColumn_D3_V4 + +--==RUMBLE: Tsoo vs. Freaks ==-- + +Rumble_FreakshowTsoo_D5_V0 = { + ["Markers"] = { + ["Encounter_E_08"] = Freaks_Rumble_01.Minions, + ["Encounter_E_02"] = Freaks_Rumble_01.Minions, + ["Encounter_E_07"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_01"] = Tsoo_Ranks_01.Minions, + }, +} + +Rumble_FreakshowTsoo_D5_V1 = { + ["Markers"] = { + ["Encounter_E_08"] = Freaks_Rumble_01.Minions, + ["Encounter_E_02"] = Freaks_Rumble_01.Minions, + ["Encounter_S_30"] = Freaks_Rumble_01.Minions, + ["Encounter_S_31"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_07"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_01"] = Tsoo_Ranks_01.Minions, + }, +} + +Rumble_FreakshowTsoo_D5_V2 = Rumble_FreakshowTsoo_D5_V0 +Rumble_FreakshowTsoo_D5_V3 = Rumble_FreakshowTsoo_D5_V0 +Rumble_FreakshowTsoo_D5_V4 = Rumble_FreakshowTsoo_D5_V0 + +--== AROUND VANDALISM ==-- + +Vandalism_Tsoo_D1_V0 = { + ["Markers"] = { + ["Encounter_S_30"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_08"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_04"] = Tsoo_Ranks_01.Lieutenants, + }, +} + +Vandalism_Tsoo_D1_V1 = { + ["Markers"] = { + ["Encounter_S_30"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_08"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_04"] = Tsoo_Ranks_01.Lieutenants, + ["Encounter_E_05"] = Tsoo_Ranks_01.Lieutenants, + }, +} + +Vandalism_Tsoo_D1_V2 = { + ["Markers"] = { + ["Encounter_S_30"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_08"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_04"] = Tsoo_Ranks_01.Lieutenants, + ["Encounter_S_31"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_09"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_07"] = Tsoo_Ranks_01.Lieutenants, + }, +} + +Vandalism_Tsoo_D1_V3 = { + ["Markers"] = { + ["Encounter_S_30"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_08"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_04"] = Tsoo_Ranks_01.Lieutenants, + ["Encounter_S_31"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_09"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_07"] = Tsoo_Ranks_01.Lieutenants, + ["Encounter_E_06"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_01"] = Tsoo_Ranks_01.Minions, + }, +} + +Vandalism_Tsoo_D5_V0 = Vandalism_Tsoo_D1_V0 +Vandalism_Tsoo_D5_V1 = Vandalism_Tsoo_D1_V1 +Vandalism_Tsoo_D5_V2 = Vandalism_Tsoo_D1_V2 +Vandalism_Tsoo_D5_V3 = Vandalism_Tsoo_D1_V3 + +Vandalism_Tsoo_D10_V0 = Vandalism_Tsoo_D1_V0 +Vandalism_Tsoo_D10_V1 = Vandalism_Tsoo_D1_V1 +Vandalism_Tsoo_D10_V2 = Vandalism_Tsoo_D1_V2 +Vandalism_Tsoo_D10_V3 = Vandalism_Tsoo_D1_V3 + +--== MUGGING ==-- + +Mugging_Tsoo_D1_V0 = { + ["Markers"] = { + ["Encounter_V_40"] = Tsoo_Ranks_01.Victims, + ["Encounter_S_30"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_08"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_04"] = Tsoo_Ranks_01.Lieutenants, + }, +} + +Mugging_Tsoo_D1_V1 = { + ["Markers"] = { + ["Encounter_V_40"] = Tsoo_Ranks_01.Victims, + ["Encounter_S_30"] = Tsoo_Ranks_01.Minions, + ["Encounter_S_32"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_08"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_04"] = Tsoo_Ranks_01.Lieutenants, + }, +} + +Mugging_Tsoo_D1_V2 = { + ["Markers"] = { + ["Encounter_V_40"] = Tsoo_Ranks_01.Victims, + ["Encounter_V_42"] = Tsoo_Ranks_01.Victims, + ["Encounter_S_30"] = Tsoo_Ranks_01.Minions, + ["Encounter_S_31"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_08"] = Tsoo_Ranks_01.Lieutenants, + ["Encounter_E_04"] = Tsoo_Ranks_01.Lieutenants, + }, +} + +Mugging_Tsoo_D1_V3 = { + ["Markers"] = { + ["Encounter_V_40"] = Tsoo_Ranks_01.Victims, + ["Encounter_V_42"] = Tsoo_Ranks_01.Victims, + ["Encounter_S_30"] = Tsoo_Ranks_01.Minions, + ["Encounter_S_31"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_02"] = Tsoo_Ranks_01.Minions, + ["Encounter_E_05"] = Tsoo_Ranks_01.Lieutenants, + ["Encounter_E_07"] = Tsoo_Ranks_01.Lieutenants, + }, +} + +Mugging_Tsoo_D5_V0 = Mugging_Tsoo_D1_V0 +Mugging_Tsoo_D5_V1 = Mugging_Tsoo_D1_V1 +Mugging_Tsoo_D5_V2 = Mugging_Tsoo_D1_V2 +Mugging_Tsoo_D5_V3 = Mugging_Tsoo_D1_V3 + +Mugging_Tsoo_D10_V0 = Mugging_Tsoo_D1_V0 +Mugging_Tsoo_D10_V1 = Mugging_Tsoo_D1_V1 +Mugging_Tsoo_D10_V2 = Mugging_Tsoo_D1_V2 +Mugging_Tsoo_D10_V3 = Mugging_Tsoo_D1_V3 diff --git a/Projects/CoX/Data/scripts/spawners.lua b/Projects/CoX/Data/scripts/spawners.lua index 3282a5852..c9381c5c6 100644 --- a/Projects/CoX/Data/scripts/spawners.lua +++ b/Projects/CoX/Data/scripts/spawners.lua @@ -1,4 +1,4 @@ ---This script is primarily used to load scenegraph data into EMs and handle mass spawning events +--This script is primarily used to load scenegraph data into EMs and handle mass spawning/despawning events MapEncPool = {} -- used in place of a currently non-existent zone manager @@ -202,7 +202,9 @@ function RandomSpawn(total, type) return spawned end ---use override to also despawn 100% spawn probability critters +--Use "override" to also despawn 100% spawn probability critters +--This could be streamlined some to issue fewer despawn calls, +--but for now it ensures the map is truly clean function DespawnMapEncounters(override) for i = 1, #MapEncPool do