diff --git a/scripts/assaults/Lebros_Cavern/excavation_duty.lua b/scripts/assaults/Lebros_Cavern/excavation_duty.lua new file mode 100644 index 00000000000..626f2596b61 --- /dev/null +++ b/scripts/assaults/Lebros_Cavern/excavation_duty.lua @@ -0,0 +1,73 @@ +----------------------------------- +-- Assault: Excavation Duty +-- Instance 6300 +-- Objective: Destroy the 5 Brittle Rocks +----------------------------------- +local ID = zones[xi.zone.LEBROS_CAVERN] +----------------------------------- + +local content = InstanceAssault:new( +{ + zoneID = xi.zone.LEBROS_CAVERN, + assaultID = xi.assault.mission.EXCAVATION_DUTY, + instanceID = xi.assault.instance.EXCAVATION_DUTY, + assaultArea = xi.assault.assaultArea.LEBROS_CAVERN, + requiredOrders = xi.ki.LEBROS_ASSAULT_ORDERS, + + runeOfReleasePos = { x = 49.999, y = -40.837, z = 96.999, rot = 0 }, + ancientBoxPos = { x = 50.000, y = -40.070, z = 99.999, rot = 0 }, + releasePos = { x = 5, z = 10 }, + + suggestedLevel = 50, + basePoints = 1100, + requiredProgress = 5, + + entranceParams = + { + instanceID = xi.assault.instance.EXCAVATION_DUTY, + entryEvent = { 203, 21, -4, 0, 50, 0, 1 }, + confirmEvent = { 203, 4 }, + memberEvent = { 208, 0 }, + }, +}) + +content.mobs = +{ + { baseID = ID.mob.VOLCANIC_BOMB, offset = 26 }, +} + +content.loot = +{ + appraisalReward = -- TODO: More data on loot. Box is 9/20 on current data. + { + { + { itemId = xi.item.UNAPPRAISED_BOX, weight = 3000 }, + { itemId = xi.item.UNAPPRAISED_EARRING, weight = 7000 }, + }, + }, + + bonusLoot = + { + { + { itemId = xi.item.REMEDY, weight = 9000 }, + { itemId = xi.item.NONE, weight = 1000 }, + }, + + { + { itemId = xi.item.REMEDY, weight = 2000 }, + { itemId = xi.item.NONE, weight = 8000 }, + }, + + { + { itemId = xi.item.HI_POTION_P3, weight = 4000 }, + { itemId = xi.item.NONE, weight = 6000 }, + }, + + { + { itemId = xi.item.HI_POTION_P3, weight = 2000 }, + { itemId = xi.item.NONE, weight = 8000 }, + }, + }, +} + +return content:register() diff --git a/scripts/zones/Lebros_Cavern/IDs.lua b/scripts/zones/Lebros_Cavern/IDs.lua index 5f902b6e4ea..0491c6bf67a 100644 --- a/scripts/zones/Lebros_Cavern/IDs.lua +++ b/scripts/zones/Lebros_Cavern/IDs.lua @@ -35,15 +35,7 @@ zones[xi.zone.LEBROS_CAVERN] = mob = { WAMOURA_OFFSET = GetTableOfIDs('Ranch_Wamoura'), - [xi.assault.mission.EXCAVATION_DUTY] = - { - MOBS_START = - { - 17035265, 17035266, 17035267, 17035268, 17035269, 17035270, 17035271, 17035272, 17035273, - 17035274, 17035275, 17035276, 17035277, 17035278, 17035279, 17035280, 17035281, - BRITTLE_ROCK1 = 17035283, BRITTLE_ROCK2 = 17035285, BRITTLE_ROCK3 = 17035287, BRITTLE_ROCK4 = 17035289, BRITTLE_ROCK5 = 17035291, - }, - }, + VOLCANIC_BOMB = GetFirstID('Volcanic_Bomb'), [xi.assault.mission.LEBROS_SUPPLIES] = { MOBS_START = diff --git a/scripts/zones/Lebros_Cavern/instances/excavation_duty.lua b/scripts/zones/Lebros_Cavern/instances/excavation_duty.lua deleted file mode 100644 index 03e2aa8ea5d..00000000000 --- a/scripts/zones/Lebros_Cavern/instances/excavation_duty.lua +++ /dev/null @@ -1,60 +0,0 @@ ------------------------------------ --- Assault: Excavation Duty ------------------------------------ -local ID = zones[xi.zone.LEBROS_CAVERN] ------------------------------------ -local instanceObject = {} - -instanceObject.registryRequirements = function(player) - return player:hasKeyItem(xi.ki.LEBROS_ASSAULT_ORDERS) and - player:getCurrentAssault() == xi.assault.mission.EXCAVATION_DUTY and - player:getCharVar('assaultEntered') == 0 and - player:hasKeyItem(xi.ki.ASSAULT_ARMBAND) and - player:getMainLvl() > 50 -end - -instanceObject.entryRequirements = function(player) - return player:hasKeyItem(xi.ki.LEBROS_ASSAULT_ORDERS) and - player:getCurrentAssault() == xi.assault.mission.EXCAVATION_DUTY and - player:getCharVar('assaultEntered') == 0 and - player:getMainLvl() > 50 -end - -instanceObject.onInstanceCreated = function(instance) -end - -instanceObject.onInstanceCreatedCallback = function(player, instance) - xi.assault.onInstanceCreatedCallback(player, instance) - xi.instance.onInstanceCreatedCallback(player, instance) -end - -instanceObject.afterInstanceRegister = function(player) - local instance = player:getInstance() - - xi.assault.afterInstanceRegister(player, xi.item.CAGE_OF_ZHAYOLM_FIREFLIES) - GetNPCByID(ID.npc.RUNE_OF_RELEASE, instance):setPos(49.999, -40.837, 96.999, 0) - GetNPCByID(ID.npc.ANCIENT_LOCKBOX, instance):setPos(50.000, -40.070, 99.999, 0) -end - -instanceObject.onInstanceTimeUpdate = function(instance, elapsed) - xi.instance.updateInstanceTime(instance, elapsed, ID.text) -end - -instanceObject.onInstanceFailure = function(instance) - xi.assault.onInstanceFailure(instance) -end - -instanceObject.onInstanceProgressUpdate = function(instance, progress) - if progress >= 5 then - instance:complete() - end -end - -instanceObject.onInstanceComplete = function(instance) - xi.assault.onInstanceComplete(instance, 5, 10) -end - -instanceObject.onEventFinish = function(player, csid, option, npc) -end - -return instanceObject diff --git a/scripts/zones/Lebros_Cavern/npcs/Ancient_Lockbox.lua b/scripts/zones/Lebros_Cavern/npcs/Ancient_Lockbox.lua index 0e5d970fe64..7ca56d0b8b4 100644 --- a/scripts/zones/Lebros_Cavern/npcs/Ancient_Lockbox.lua +++ b/scripts/zones/Lebros_Cavern/npcs/Ancient_Lockbox.lua @@ -8,14 +8,6 @@ local entity = {} entity.onTrigger = function(player, npc) local qItem = { - [xi.assault.mission.EXCAVATION_DUTY] = - { - { - { itemId = xi.item.UNAPPRAISED_BOX, weight = 300 }, - { itemId = xi.item.UNAPPRAISED_EARRING, weight = 700 }, - }, - }, - [xi.assault.mission.LEBROS_SUPPLIES] = { { @@ -37,29 +29,6 @@ entity.onTrigger = function(player, npc) local regItem = { - [xi.assault.mission.EXCAVATION_DUTY] = - { - { - { itemId = xi.item.REMEDY, weight = 900 }, - { itemId = 0, weight = 100 }, - }, - - { - { itemId = xi.item.REMEDY, weight = 200 }, - { itemId = 0, weight = 800 }, - }, - - { - { itemId = xi.item.HI_POTION_P3, weight = 400 }, - { itemId = 0, weight = 600 }, - }, - - { - { itemId = xi.item.HI_POTION_P3, weight = 200 }, - { itemId = 0, weight = 800 }, - }, - }, - [xi.assault.mission.LEBROS_SUPPLIES] = { { diff --git a/scripts/zones/Mount_Zhayolm/npcs/_1p3.lua b/scripts/zones/Mount_Zhayolm/npcs/_1p3.lua index 1fd8263896b..a57b32bfe18 100644 --- a/scripts/zones/Mount_Zhayolm/npcs/_1p3.lua +++ b/scripts/zones/Mount_Zhayolm/npcs/_1p3.lua @@ -3,24 +3,19 @@ -- Door: Runic Seal -- !pos 703 -18 382 61 ----------------------------------- -local ID = zones[xi.zone.MOUNT_ZHAYOLM] ------------------------------------ ---@type TNpcEntity local entity = {} entity.onTrigger = function(player, npc) - if not xi.instance.onTrigger(player, npc, xi.zone.LEBROS_CAVERN) then - player:messageSpecial(ID.text.NOTHING_HAPPENS) - end + xi.assault.onRunicTrigger(player, npc, xi.zone.LEBROS_CAVERN) end entity.onEventUpdate = function(player, csid, option, npc) xi.assault.onAssaultUpdate(player, csid, option, npc) - xi.instance.onEventUpdate(player, csid, option, npc) end entity.onEventFinish = function(player, csid, option, npc) - xi.instance.onEventFinish(player, csid, option, npc) + xi.assault.onEventFinish(player, csid, option, npc) end return entity