Skip to content

Commit

Permalink
[lua&sql] Trust Monberaux logic and spell changes
Browse files Browse the repository at this point in the history
Changes made to Trust: Monberaux and Monberaux in Upper Jeuno for the follow;
Added Elixir/Hi-Elixir and Gil trading to his NPC in Upper Jeuno to allow the function of his AoE status removal and his Final Elixir mechanics.

Changed his Trusts mJob and sJob to PLD/RUN to reflect his status as shown on BGWiki.

Edited his spells so that if they don't remove the effect they show a "No effect on player" message, mainly only matters for AoE potions.

Changed SQL for mob_skills to correct some animations and make one list of the status removal AoE and the other not.

Renamed most of his skills in mobskills to have mix_ in front to hopefully avoid confusion with other potential applications. All spells range changed from 7 to 14 to accommodate his "NO_MOVE" trust behaviour, he would previous stand out of random and continuously loop some spells because he couldn't reach. No his spells are more in like with White Magic range.
  • Loading branch information
shigukahz committed Feb 5, 2025
1 parent 09be98e commit 54a2d26
Show file tree
Hide file tree
Showing 17 changed files with 346 additions and 66 deletions.
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

0 comments on commit 54a2d26

Please sign in to comment.