-
Notifications
You must be signed in to change notification settings - Fork 612
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #6226 from jmcmorris/isnm_call_to_arms
Call to Arms ISNM
- Loading branch information
Showing
12 changed files
with
220 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
----------------------------------- | ||
-- Bugle Call | ||
-- Description: Calls help from additional Imp Bandsman and grants TP | ||
-- Used only by the main Imp Bandsman in Call to Arms ISNM | ||
----------------------------------- | ||
local ID = zones[xi.zone.TALACCA_COVE] | ||
----------------------------------- | ||
---@type TMobSkill | ||
local mobskillObject = {} | ||
|
||
mobskillObject.onMobSkillCheck = function(target, mob, skill) | ||
-- Only allow the main Imp Bandsman to use this which has the level range of 63-64 | ||
if mob:getMainLvl() >= 63 then | ||
return 0 | ||
end | ||
|
||
return 1 | ||
end | ||
|
||
mobskillObject.onMobWeaponSkill = function(target, mob, skill) | ||
local mobID = mob:getID() | ||
local player = mob:getTarget() | ||
|
||
skill:setMsg(xi.msg.basic.NONE) | ||
|
||
mob:timer(4000, function(mobArg) | ||
mobArg:addTP(1000) | ||
end) | ||
|
||
mob:timer(3000, function(mobArg) | ||
for cloneID = mobID + 1, mobID + 4 do | ||
local clone = GetMobByID(cloneID) | ||
if clone and not clone:isSpawned() then | ||
SpawnMob(cloneID) | ||
if player then | ||
clone:updateEnmity(player) | ||
end | ||
|
||
mobArg:messageText(mobArg, ID.text.HELP_HAS_ARRIVED, false) | ||
return | ||
end | ||
end | ||
|
||
mobArg:messageText(mobArg, ID.text.NOBODY_COMES_TO_HELP, false) | ||
end) | ||
|
||
return 0 | ||
end | ||
|
||
return mobskillObject |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
----------------------------------- | ||
-- Call to Arms | ||
-- Talacca Cove, Confidential Imperial Order | ||
-- !addkeyitem CONFIDENTIAL_IMPERIAL_ORDER | ||
----------------------------------- | ||
local ID = zones[xi.zone.TALACCA_COVE] | ||
----------------------------------- | ||
|
||
local content = Battlefield:new({ | ||
zoneId = xi.zone.TALACCA_COVE, | ||
battlefieldId = xi.battlefield.id.CALL_TO_ARMS, | ||
maxPlayers = 6, | ||
levelCap = 60, | ||
timeLimit = utils.minutes(30), | ||
index = 0, | ||
entryNpc = '_1l0', | ||
exitNpcs = { '_1l1', '_1l2', '_1l3' }, | ||
requiredKeyItems = { xi.ki.CONFIDENTIAL_IMPERIAL_ORDER, message = ID.text.IMPERIAL_ORDER_BREAKS }, | ||
}) | ||
|
||
content.groups = { | ||
{ | ||
mobs = { 'Imp_Bandsman' }, | ||
}, | ||
|
||
{ | ||
mobs = { 'Imp_Bandsman', 'Imp_Bandsman_Add' }, | ||
spawned = false, | ||
allDeath = utils.bind(content.handleAllMonstersDefeated, content), | ||
}, | ||
} | ||
|
||
content.loot = | ||
{ | ||
{ | ||
{ item = xi.item.GIL, weight = xi.loot.weight.NORMAL, amount = 8000 }, | ||
}, | ||
|
||
{ | ||
{ item = xi.item.AGILITY_POTION, weight = xi.loot.weight.NORMAL }, | ||
{ item = xi.item.VITALITY_POTION, weight = xi.loot.weight.NORMAL }, | ||
{ item = xi.item.STRENGTH_POTION, weight = xi.loot.weight.NORMAL }, | ||
{ item = xi.item.DEXTERITY_POTION, weight = xi.loot.weight.NORMAL }, | ||
}, | ||
|
||
{ | ||
{ item = xi.item.GLASS_SHEET, weight = xi.loot.weight.NORMAL }, | ||
{ item = xi.item.BUNDLE_OF_HOMUNCULUS_NERVES, weight = xi.loot.weight.NORMAL }, | ||
{ item = xi.item.SQUARE_OF_POLYFLAN, weight = xi.loot.weight.NORMAL }, | ||
}, | ||
|
||
{ | ||
{ item = xi.item.SCROLL_OF_MAIDENS_VIRELAI, weight = xi.loot.weight.HIGH }, | ||
{ item = xi.item.SCROLL_OF_CARNAGE_ELEGY, weight = xi.loot.weight.HIGH }, | ||
{ item = xi.item.SCROLL_OF_AERO_IV, weight = xi.loot.weight.NORMAL }, | ||
{ item = xi.item.SCROLL_OF_FLARE, weight = xi.loot.weight.NORMAL }, | ||
{ item = xi.item.SCROLL_OF_FLOOD, weight = xi.loot.weight.NORMAL }, | ||
{ item = xi.item.SCROLL_OF_TORNADO, weight = xi.loot.weight.NORMAL }, | ||
{ item = xi.item.DARK_SPIRIT_PACT, weight = xi.loot.weight.NORMAL }, | ||
{ item = xi.item.LIGHT_SPIRIT_PACT, weight = xi.loot.weight.NORMAL }, | ||
}, | ||
|
||
{ | ||
{ item = xi.item.CHOCOBO_EGG_A_LITTLE_WARM, weight = xi.loot.weight.NORMAL }, | ||
}, | ||
|
||
{ | ||
{ item = xi.item.IMP_WING, weight = xi.loot.weight.NORMAL }, | ||
}, | ||
|
||
{ | ||
{ item = xi.item.NONE, weight = xi.loot.weight.EXTREMELY_HIGH }, | ||
{ item = xi.item.TEMPLAR_SABATONS, weight = xi.loot.weight.LOW }, | ||
{ item = xi.item.BUSKERS_CAPE, weight = xi.loot.weight.LOW }, | ||
{ item = xi.item.DOMINION_RING, weight = xi.loot.weight.LOW }, | ||
{ item = xi.item.IMMORTALS_EARRING, weight = xi.loot.weight.LOW }, | ||
}, | ||
|
||
{ | ||
{ item = xi.item.NONE, weight = xi.loot.weight.EXTREMELY_HIGH }, | ||
{ item = xi.item.CHUNK_OF_PLATINUM_ORE, weight = xi.loot.weight.NORMAL }, | ||
{ item = xi.item.CHUNK_OF_DARKSTEEL_ORE, weight = xi.loot.weight.NORMAL }, | ||
{ item = xi.item.CHUNK_OF_ADAMAN_ORE, weight = xi.loot.weight.NORMAL }, | ||
{ item = xi.item.CHUNK_OF_ORICHALCUM_ORE, weight = xi.loot.weight.NORMAL }, | ||
}, | ||
} | ||
|
||
return content:register() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
----------------------------------- | ||
-- Area: Talacca Cove | ||
-- NM: Imp Bandsman | ||
----------------------------------- | ||
---@type TMobEntity | ||
local entity = {} | ||
|
||
entity.onMobInitialize = function(mob) | ||
mob:addImmunity(xi.immunity.POISON) | ||
mob:addImmunity(xi.immunity.SILENCE) | ||
mob:addImmunity(xi.immunity.LIGHT_SLEEP) | ||
mob:addImmunity(xi.immunity.DARK_SLEEP) | ||
mob:addImmunity(xi.immunity.GRAVITY) | ||
mob:addImmunity(xi.immunity.SLOW) | ||
mob:addImmunity(xi.immunity.PARALYZE) | ||
mob:setMobMod(xi.mobMod.SIGHT_RANGE, 25) | ||
end | ||
|
||
entity.onMobDeath = function(mob, player, optParams) | ||
end | ||
|
||
return entity |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
----------------------------------- | ||
-- Area: Talacca Cove | ||
-- NM: Imp Bandsman Add | ||
----------------------------------- | ||
mixins = { require('scripts/mixins/families/imp') } | ||
----------------------------------- | ||
---@type TMobEntity | ||
local entity = {} | ||
|
||
entity.onMobInitialize = function(mob) | ||
end | ||
|
||
entity.onMobSpawn = function(mob) | ||
-- One imp is always slightly bigger and another is always slightly smaller | ||
local mobIDModulized = mob:getID() % 4 | ||
if mobIDModulized == 0 then | ||
mob:setMobFlags(1159) | ||
elseif mobIDModulized == 1 then | ||
mob:setMobFlags(1155) | ||
end | ||
end | ||
|
||
entity.onMobDeath = function(mob, player, optParams) | ||
end | ||
|
||
return entity |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters