Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[lua&sql] Alterations to Trust: Monberaux logic and spells. Added trade for Elixir and Gil. #6950

Open
wants to merge 15 commits into
base: base
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions scripts/actions/mobskills/hi_potion.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
-----------------------------------
-- Hyper Potion - Restores 250 HP.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

mobskillObject.onMobWeaponSkill = function(target, mob, skill)
skill:setMsg(xi.msg.basic.SELF_HEAL)
return xi.mobskills.mobHealMove(target, 100)
end

return mobskillObject
6 changes: 2 additions & 4 deletions scripts/actions/mobskills/mix_antidote.lua
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,10 @@ mobskillObject.onMobWeaponSkill = function(target, mob, skill)
if target:hasStatusEffect(xi.effect.POISON) then
skill:setMsg(xi.msg.basic.SKILL_ERASE)
target:delStatusEffect(xi.effect.POISON)

return xi.effect.POISON
else
skill:setMsg(xi.msg.basic.SKILL_NO_EFFECT) -- NO_EFFECT also works.
end

skill:setMsg(xi.msg.basic.MAGIC_NO_EFFECT)
return xi.effect.NONE
end

return mobskillObject
8 changes: 6 additions & 2 deletions scripts/actions/mobskills/mix_dark_potion.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,12 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill)
end

mobskillObject.onMobWeaponSkill = function(target, mob, skill)
-- skill:setMsg(xi.msg.basic.READIES_WS) -- not needed?
return 666
local darkpot = 666
local dmg = xi.mobskills.mobFinalAdjustments(darkpot, mob, skill, target, xi.attackType.NONE, xi.damageType.NONE, xi.mobskills.shadowBehavior.IGNORE_SHADOWS)

target:takeDamage(dmg, mob, xi.attackType.NONE, xi.damageType.NONE)

return dmg
end

return mobskillObject
22 changes: 22 additions & 0 deletions scripts/actions/mobskills/mix_echo_drops.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
-----------------------------------
-- Echo Drops - Removes Silence.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

-- TODO: verify no effect messaging
mobskillObject.onMobWeaponSkill = function(target, mob, skill)
if target:hasStatusEffect(xi.effect.SILENCE) then
skill:setMsg(xi.msg.basic.SKILL_ERASE)
target:delStatusEffect(xi.effect.SILENCE)
return xi.effect.SILENCE
else
skill:setMsg(xi.msg.basic.NO_EFFECT)
end
end

return mobskillObject
9 changes: 7 additions & 2 deletions scripts/actions/mobskills/mix_eye_drops.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,13 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill)
end

mobskillObject.onMobWeaponSkill = function(target, mob, skill)
target:delStatusEffect(xi.effect.BLINDNESS)
return 0
if target:hasStatusEffect(xi.effect.BLINDNESS) then
skill:setMsg(xi.msg.basic.SKILL_ERASE)
target:delStatusEffect(xi.effect.BLINDNESS)
return xi.effect.BLINDNESS
else
skill:setMsg(xi.msg.basic.NO_EFFECT)
end
end

return mobskillObject
3 changes: 2 additions & 1 deletion scripts/actions/mobskills/mix_final_elixir.lua
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ end
mobskillObject.onMobWeaponSkill = function(target, mob, skill)
target:addHP(target:getMaxHP())
target:addMP(target:getMaxMP())
return 0
skill:setMsg(xi.msg.basic.RECOVERS_HP_AND_MP)
return
end

return mobskillObject
9 changes: 7 additions & 2 deletions scripts/actions/mobskills/mix_gold_needle.lua
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,13 @@ mobskillObject.onMobSkillCheck = function(target, mob, skill)
end

mobskillObject.onMobWeaponSkill = function(target, mob, skill)
target:delStatusEffect(xi.effect.PETRIFICATION)
return 0
if target:hasStatusEffect(xi.effect.PETRIFICATION) then
skill:setMsg(xi.msg.basic.SKILL_ERASE)
target:delStatusEffect(xi.effect.PETRIFICATION)
return xi.effect.PETRIFICATION
else
skill:setMsg(xi.msg.basic.NO_EFFECT)
end
end

return mobskillObject
43 changes: 43 additions & 0 deletions scripts/actions/mobskills/mix_holy_water.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
-----------------------------------
-- Holy Water - Removes Curse, Zombie, and Doom.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

local statii =
{
xi.effect.CURSE_I,
xi.effect.CURSE_II, -- AKA "Zombie"
xi.effect.BANE,
}

mobskillObject.onMobWeaponSkill = function(target, mob, skill)
local power = 33 + target:getMod(xi.mod.ENHANCES_HOLYWATER)
local lastEffect = 0

for _, effect in pairs(statii) do
lastEffect = effect
if target:hasStatusEffect(xi.effect.DOOM) and power > math.random(1, 100) then
target:delStatusEffect(xi.effect.DOOM)
target:messageBasic(xi.msg.basic.NARROWLY_ESCAPE)
skill:setMsg(xi.msg.basic.SKILL_ERASE)
return xi.effect.DOOM
else
skill:setMsg(xi.msg.basic.NO_EFFECT)
end

if target:hasStatusEffect(effect) then
target:delStatusEffect(effect)
skill:setMsg(xi.msg.basic.SKILL_ERASE)
return lastEffect
else
skill:setMsg(xi.msg.basic.NO_EFFECT)
end
end
end

return mobskillObject
8 changes: 4 additions & 4 deletions scripts/actions/mobskills/mix_panacea-1.lua
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ end

local statii =
{
xi.effect.PARALYSIS,
xi.effect.BIND,
xi.effect.WEIGHT,
xi.effect.ADDLE,
Expand Down Expand Up @@ -50,11 +49,12 @@ mobskillObject.onMobWeaponSkill = function(target, mob, skill)
for _, effect in pairs(statii) do
if target:delStatusEffect(effect) then
lastEffect = effect
skill:setMsg(xi.msg.basic.SKILL_ERASE)
return lastEffect
else
skill:setMsg(xi.msg.basic.NO_EFFECT)
end
end

skill:setMsg(xi.msg.basic.SKILL_ERASE)
return lastEffect
end

return mobskillObject
6 changes: 3 additions & 3 deletions scripts/actions/mobskills/mix_para-b-gone.lua
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@ end

mobskillObject.onMobWeaponSkill = function(target, mob, skill)
if target:hasStatusEffect(xi.effect.PARALYSIS) then
skill:setMsg(xi.msg.basic.SKILL_ERASE)
target:delStatusEffect(xi.effect.PARALYSIS)
return xi.effect.PARALYSIS
else
skill:setMsg(xi.msg.basic.NO_EFFECT)
end

skill:setMsg(xi.msg.basic.MAGIC_NO_EFFECT)
return xi.effect.NONE
end

return mobskillObject
21 changes: 21 additions & 0 deletions scripts/actions/mobskills/mix_vaccine.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
-----------------------------------
-- Vaccine - Removes Plague.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

mobskillObject.onMobWeaponSkill = function(target, mob, skill)
if target:hasStatusEffect(xi.effect.PLAGUE) then
skill:setMsg(xi.msg.basic.SKILL_ERASE)
target:delStatusEffect(xi.effect.PLAGUE)
return xi.effect.PLAGUE
else
skill:setMsg(xi.msg.basic.NO_EFFECT)
end
end

return mobskillObject
16 changes: 16 additions & 0 deletions scripts/actions/mobskills/potion.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
-----------------------------------
-- Potion - Restores 50 HP.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

mobskillObject.onMobWeaponSkill = function(target, mob, skill)
skill:setMsg(xi.msg.basic.SELF_HEAL)
return xi.mobskills.mobHealMove(target, 50)
end

return mobskillObject
16 changes: 16 additions & 0 deletions scripts/actions/mobskills/x-potion.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
-----------------------------------
-- X-Potion - Restores 150 HP.
-----------------------------------
---@type TMobSkill
local mobskillObject = {}

mobskillObject.onMobSkillCheck = function(target, mob, skill)
return 0
end

mobskillObject.onMobWeaponSkill = function(target, mob, skill)
skill:setMsg(xi.msg.basic.SELF_HEAL)
return xi.mobskills.mobHealMove(target, 150)
end

return mobskillObject
130 changes: 103 additions & 27 deletions scripts/actions/spells/trust/monberaux.lua
Original file line number Diff line number Diff line change
Expand Up @@ -13,36 +13,112 @@ spellObject.onSpellCast = function(caster, target, spell)
end

spellObject.onMobSpawn = function(mob)
-- TODO: Summon (1 dose of Final Elixir ready): I received a vial of a most valuable medicine. It should prove useful in times of emergency.
-- TODO: Summon (2 doses of Final Elixir ready): I received two vials of a most valuable medicine. They should prove useful in times of emergency.
-- TODO: Find right animation for Mix: Insomniant.
-- TODO: Add PLD/RUN traits like Resist Sleep and Tenacity.
-- TODO: Add Vaccine skill (removes plague)
-- TODO: Add Gold Needle skill (remove petrify)
-- TODO: Add Holy Water skill (removes curse, zombie, and doom)
-- TODO: Add Cover ability with proper conditions (stand behind Monberaux when you have top enmity)
-- TODO: Add mechanic for turning status removal skills into AoE -- https://www.bg-wiki.com/ffxi/BGWiki:Trusts#Monberaux
xi.trust.message(mob, xi.trust.messageOffset.SPAWN)

local healingMoveCooldown = 3 -- Retail values from BGWiki

-- Tends to be particular about which potions to use. Seems to favor healing for just the
-- right amount of HP instead of defaulting to the highest-rank potion.
mob:addMod(xi.mod.MPP, -90)
mob:addGambit(ai.t.CASTER, { ai.c.MPP_LT, 25 }, { ai.r.MS, ai.s.SPECIFIC, 4254 }, healingMoveCooldown) -- Mix: Dry Ether Concoction
mob:addGambit(ai.t.PARTY, { ai.c.HPP_LT, 90 }, { ai.r.MS, ai.s.SPECIFIC, 4236 }, healingMoveCooldown) -- Max Potion (500 HP)
mob:addGambit(ai.t.PARTY, { ai.c.HPP_LT, 75 }, { ai.r.MS, ai.s.SPECIFIC, 4237 }, healingMoveCooldown) -- Mix: Max Potion (700 HP)
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.POISON }, { ai.r.MS, ai.s.SPECIFIC, 4238 }, healingMoveCooldown) -- Mix: Antidote
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.SILENCE }, { ai.r.MS, ai.s.SPECIFIC, 4241 }, healingMoveCooldown) -- Echo Drops
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.PARALYSIS }, { ai.r.MS, ai.s.SPECIFIC, 4247 }, healingMoveCooldown) -- Mix: Para-B-Gone
mob:addGambit(ai.t.PARTY, { ai.c.STATUS_FLAG, xi.effectFlag.ERASABLE }, { ai.r.MS, ai.s.SPECIFIC, 4245 }, healingMoveCooldown) -- Mix: Panacea-1
mob:addGambit(ai.t.PARTY, { ai.c.NOT_STATUS, xi.effect.REGEN }, { ai.r.MS, ai.s.SPECIFIC, 4257 }, healingMoveCooldown) -- Mix: Life Water
mob:addGambit(ai.t.PARTY, { ai.c.NOT_STATUS, xi.effect.STR_BOOST }, { ai.r.MS, ai.s.SPECIFIC, 4261 }, healingMoveCooldown) -- Mix: Samson's Strength
mob:addGambit(ai.t.PARTY, { ai.c.NOT_STATUS, xi.effect.MAGIC_DEF_BOOST }, { ai.r.MS, ai.s.SPECIFIC, 4259 }, healingMoveCooldown) -- Mix: Dragon Shield
mob:addGambit(ai.t.PARTY, { ai.c.NOT_STATUS, xi.effect.MAGIC_ATK_BOOST }, { ai.r.MS, ai.s.SPECIFIC, 4258 }, healingMoveCooldown) -- Mix: Elemental Power
mob:addGambit(ai.t.PARTY, { ai.c.NOT_STATUS, xi.effect.PROTECT }, { ai.r.MS, ai.s.SPECIFIC, 4255 }, healingMoveCooldown) -- Mix: Guard Drink
-- mob:addGambit(ai.t.PARTY, { ai.c.NOT_STATUS, xi.effect.NEGATE_SLEEP }, { ai.r.MS, ai.s.SPECIFIC, 4256 }, healingMoveCooldown) -- Insomniant. Disabled because animation when used is completely wrong.
mob:addGambit(ai.t.TARGET, { ai.c.HP_MISSING, 99 }, { ai.r.MS, ai.s.SPECIFIC, 4260 }, healingMoveCooldown) -- Dark Potion (666 Dark Damage)
local finalElixir = mob:getMaster():getCharVar('finalElixir') -- CVar used to store Elixir donation info.
local potAoe = mob:getMaster():getCharVar('monbAoe') -- CVar used to store gil donation info.

if potAoe == 0 and finalElixir == 0 then
xi.trust.message(mob, xi.trust.messageOffset.SPAWN)
elseif potAoe == 0 and finalElixir == 1 then
xi.trust.message(mob, xi.trust.messageOffset.TEAMWORK_1) -- 1 Elixir
elseif potAoe == 0 and finalElixir >= 2 then
xi.trust.message(mob, xi.trust.messageOffset.TEAMWORK_2) -- 2 Elixir
elseif potAoe == 1 and finalElixir < 1 then
xi.trust.message(mob, xi.trust.messageOffset.TEAMWORK_3) -- Gil donation (AoE)
elseif potAoe == 1 and finalElixir == 1 then
xi.trust.message(mob, xi.trust.messageOffset.TEAMWORK_4) -- 1 Elixir and Gil
elseif potAoe == 1 and finalElixir >= 2 then
xi.trust.message(mob, xi.trust.messageOffset.TEAMWORK_5) -- ALL Donations
end

local healingMoveCooldown = math.random(3, 4) -- Mix I Retail values from BGWiki
local buffMoveCooldown = 60 -- Mix II Retail values from BGWiki
local mpMoveCooldown = 90 -- Mix III Retail values from BGWiki

-- MobMods --
mob:setMod(xi.mod.MPP, -90)
mob:setMod(xi.mod.SLEEPRES, 100) -- Handle negate sleep
mob:setMod(xi.mod.LULLABYRES, 100) -- Handle negate sleep
mob:setMod(xi.mod.STATUSRES, 15)

-- Guard Drink should always be the first spell he casts. --
mob:addGambit(ai.t.PARTY, { ai.c.NOT_STATUS, xi.effect.PROTECT }, { ai.r.MS, ai.s.SPECIFIC, 4255 }, healingMoveCooldown) -- Mix: Guard Drink (Prot/Shell)
mob:addGambit(ai.t.PARTY, { ai.c.NOT_STATUS, xi.effect.SHELL }, { ai.r.MS, ai.s.SPECIFIC, 4255 }, healingMoveCooldown) -- Mix: Guard Drink (Prot/Shell)
-- Handle his Final Elixir (item donation) system, will use whenever a party memeber is asleep --
if finalElixir ~= 0 then
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.SLEEP_I }, { ai.r.MS, ai.s.SPECIFIC, 4231 }, healingMoveCooldown)
end

-- Top Priority Heals --
mob:addGambit(ai.t.PARTY, { ai.c.HPP_LT, 40 }, { ai.r.MS, ai.s.SPECIFIC, 4237 }, healingMoveCooldown) -- Mix: Max Potion (700 HP)
mob:addGambit(ai.t.PARTY, { ai.c.HPP_LT, 55 }, { ai.r.MS, ai.s.SPECIFIC, 4236 }, healingMoveCooldown) -- Max Potion (500 HP)

-- Mix I AoE --
if potAoe == 1 then
mob:addGambit(ai.t.PARTY, { ai.l.OR(
{ ai.c.STATUS, xi.effect.CURSE_I },
{ ai.c.STATUS, xi.effect.CURSE_II },
{ ai.c.STATUS, xi.effect.BANE },
{ ai.c.STATUS, xi.effect.DOOM })
}, { ai.r.MS, ai.s.SPECIFIC, 4242 }, healingMoveCooldown) -- AoE Holy Water
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.BLINDNESS }, { ai.r.MS, ai.s.SPECIFIC, 4240 }, healingMoveCooldown) -- AoE Mix: Eye Drops
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.POISON }, { ai.r.MS, ai.s.SPECIFIC, 4238 }, healingMoveCooldown) -- AoE Mix: Antidote
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.SILENCE }, { ai.r.MS, ai.s.SPECIFIC, 4241 }, healingMoveCooldown) -- AoE Echo Drops
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.PARALYSIS }, { ai.r.MS, ai.s.SPECIFIC, 4239 }, healingMoveCooldown) -- AoE Mix: Para-B-Gone
mob:addGambit(ai.t.PARTY, { ai.c.STATUS_FLAG, xi.effectFlag.ERASABLE }, { ai.r.MS, ai.s.SPECIFIC, 4245 }, healingMoveCooldown) -- AoE Mix: Panacea-1
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.PLAGUE }, { ai.r.MS, ai.s.SPECIFIC, 4243 }, healingMoveCooldown) -- AoE Mix: Vaccine
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.PETRIFICATION }, { ai.r.MS, ai.s.SPECIFIC, 4244 }, healingMoveCooldown) -- AoE Mix: Gold Needle
-- Mix I Single Target --
elseif potAoe == 0 then
mob:addGambit(ai.t.PARTY, { ai.l.OR(
{ ai.c.STATUS, xi.effect.CURSE_I },
{ ai.c.STATUS, xi.effect.CURSE_II },
{ ai.c.STATUS, xi.effect.BANE },
{ ai.c.STATUS, xi.effect.DOOM })
}, { ai.r.MS, ai.s.SPECIFIC, 4242 }, healingMoveCooldown) -- Holy Water
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.BLINDNESS }, { ai.r.MS, ai.s.SPECIFIC, 4248 }, healingMoveCooldown) -- Mix: Eye Drops
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.POISON }, { ai.r.MS, ai.s.SPECIFIC, 4246 }, healingMoveCooldown) -- Mix: Antidote
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.SILENCE }, { ai.r.MS, ai.s.SPECIFIC, 4249 }, healingMoveCooldown) -- Echo Drops
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.PARALYSIS }, { ai.r.MS, ai.s.SPECIFIC, 4247 }, healingMoveCooldown) -- Mix: Para-B-Gone
mob:addGambit(ai.t.PARTY, { ai.c.STATUS_FLAG, xi.effectFlag.ERASABLE }, { ai.r.MS, ai.s.SPECIFIC, 4253 }, healingMoveCooldown) -- Mix: Panacea-1
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.PLAGUE, ai.r.MS }, { ai.s.SPECIFIC, 4251 }, healingMoveCooldown) -- Vaccine
mob:addGambit(ai.t.PARTY, { ai.c.STATUS, xi.effect.PETRIFICATION }, { ai.r.MS, ai.s.SPECIFIC, 4252 }, healingMoveCooldown) -- Mix: Gold Needle
end

--mob:addGambit(ai.t.PARTY, {ai.c.NOT_STATUS, xi.effect.NEGATE_SLEEP}, {ai.r.MS, ai.s.SPECIFIC, 4256}, healingMoveCooldown) -- Insomniant. Disabled because animation when used is completely wrong.
-- Mix II--
mob:addGambit(ai.t.PARTY, { ai.c.NOT_STATUS, xi.effect.REGEN }, { ai.r.MS, ai.s.SPECIFIC, 4257 }, buffMoveCooldown) -- Mix: Life Water
mob:addGambit(ai.t.PARTY, { ai.c.NOT_STATUS, xi.effect.STR_BOOST }, { ai.r.MS, ai.s.SPECIFIC, 4261 }, buffMoveCooldown) -- Mix: Samson's Strength
mob:addGambit(ai.t.PARTY, { ai.c.NOT_STATUS, xi.effect.MAGIC_DEF_BOOST }, { ai.r.MS, ai.s.SPECIFIC, 4259 }, buffMoveCooldown) -- Mix: Dragon Shield
mob:addGambit(ai.t.CASTER, { ai.c.NOT_STATUS, xi.effect.MAGIC_ATK_BOOST }, { ai.r.MS, ai.s.SPECIFIC, 4258 }, buffMoveCooldown) -- Mix: Elemental Power
mob:addGambit(ai.t.TARGET, { ai.c.ALWAYS, 0 }, { ai.r.MS, ai.s.SPECIFIC, 4260 }, buffMoveCooldown) -- Dark Potion (666 Dark Damage)
-- Mix III--
mob:addGambit(ai.t.CASTER, { ai.c.MPP_LT, 50 }, { ai.r.MS, ai.s.SPECIFIC, 4254 }, mpMoveCooldown) -- Mix: Dry Ether Concoction
-- Less Priority Heals --
mob:addGambit(ai.t.PARTY, { ai.c.HPP_LT, 65 }, { ai.r.MS, ai.s.SPECIFIC, 4235 }, healingMoveCooldown) -- Hyper Potion (250 HP)
--mob:addGambit(ai.t.PARTY, {ai.c.HPP_LT, 75}, {ai.r.MS, ai.s.SPECIFIC, 4234}, healingMoveCooldown) -- X-Potion (150 HP) -- Disabled to prevent super spam
--mob:addGambit(ai.t.PARTY, {ai.c.HPP_LT, 85}, {ai.r.MS, ai.s.SPECIFIC, 4232}, healingMoveCooldown) -- Potion (50 HP) -- Disabled to prevent super spam

-- Listener to handle removal of CharVar that handles elixir donation --
mob:addListener('WEAPONSKILL_USE', 'MONBERAUX_WEAPONSKILL_USE', function(mobArg, targetArg, skillid, spentTP, action)
local monbMast = mobArg:getMaster()
local finalElixirL = monbMast:getCharVar('finalElixir')
if skillid == 4231 then
monbMast:setCharVar('finalElixir', finalElixirL - 1)
end
end)

--Listener to SPECIAL_MOVE -- DISABLED needs correct coding for table
--mob:addListener('WEAPONSKILL_BEFORE_USE', 'MONBERAUX_WEAPONSKILL_BEFORE_USE', function(mobArg, skillid)
--local buffs = { 4234, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4248, 4249, 4250, 4251, 4252 } -- status condition removals only
--if skillid == 4259 then
--xi.trust.message(mob, xi.trust.messageOffset.SPECIAL_MOVE_1) -- Using Mix: Dragon Shield: Illness and unjury know no boundaries!
--elseif skillid == buffs then
--xi.trust.message(mob, xi.trust.messageOffset.SPECIAL_MOVE_2) -- Other: I shall administer a remedy immediately!
--end
--end)

mob:setAutoAttackEnabled(false)

Expand Down
Loading
Loading