From 23d0f88e0ee6ffd29e51854b8862dff01f0569be Mon Sep 17 00:00:00 2001 From: MowFord <131182600+MowFord@users.noreply.github.com> Date: Sun, 5 May 2024 15:39:07 -0500 Subject: [PATCH] Fixes to chigoe mixins spawn on mobskill behavior in various zones do not drop loot when instagib happens --- scripts/mixins/families/chigoe.lua | 3 ++ scripts/mixins/families/chigoe_pet.lua | 46 +++++--------------------- 2 files changed, 11 insertions(+), 38 deletions(-) diff --git a/scripts/mixins/families/chigoe.lua b/scripts/mixins/families/chigoe.lua index 06245b4eae0..f0f550f158c 100644 --- a/scripts/mixins/families/chigoe.lua +++ b/scripts/mixins/families/chigoe.lua @@ -37,12 +37,14 @@ g_mixins.families.chigoe = function(chigoeMob) chigoeMob:addListener('CRITICAL_TAKE', 'CHIGOE_CRITICAL_TAKE', function(mob) mob:setMobMod(xi.mobMod.EXP_BONUS, -100) + mob:setMobMod(xi.mobMod.NO_DROPS, 1) mob:setHP(0) end) chigoeMob:addListener('WEAPONSKILL_TAKE', 'CHIGOE_WEAPONSKILL_TAKE', function(mob, wsid) if wsid then mob:setMobMod(xi.mobMod.EXP_BONUS, -100) + mob:setMobMod(xi.mobMod.NO_DROPS, 1) mob:setHP(0) end end) @@ -50,6 +52,7 @@ g_mixins.families.chigoe = function(chigoeMob) chigoeMob:addListener('ABILITY_TAKE', 'CHIGOE_ABILITY_TAKE', function(mob, user, ability) if jobAbilities[ability:getID()] then mob:setMobMod(xi.mobMod.EXP_BONUS, -100) + mob:setMobMod(xi.mobMod.NO_DROPS, 1) mob:setHP(0) end end) diff --git a/scripts/mixins/families/chigoe_pet.lua b/scripts/mixins/families/chigoe_pet.lua index 69d495e3ff3..463f8604fe2 100644 --- a/scripts/mixins/families/chigoe_pet.lua +++ b/scripts/mixins/families/chigoe_pet.lua @@ -5,26 +5,13 @@ require('scripts/globals/mixins') g_mixins = g_mixins or {} g_mixins.families = g_mixins.families or {} -local jobAbilities = set{ - xi.jobAbility.SHIELD_BASH, - xi.jobAbility.JUMP, - xi.jobAbility.HIGH_JUMP, - xi.jobAbility.WEAPON_BASH, - xi.jobAbility.CHI_BLAST, - xi.jobAbility.TOMAHAWK, - xi.jobAbility.ANGON, - xi.jobAbility.QUICKSTEP, - xi.jobAbility.BOXSTEP, - xi.jobAbility.STUTTER_STEP, - xi.jobAbility.FEATHER_STEP, -} - g_mixins.families.chigoe_pet = function(hostMob) local ID = zones[hostMob:getZoneID()] - hostMob:addListener('WEAPONSKILL_USE', 'MOB_SPAWN_CHIGOE', function(mob) + hostMob:addListener('WEAPONSKILL_USE', 'MOB_SPAWN_CHIGOE', function(mob, target) local mobName = mob:getName() + -- Requires a Chigoe.lua with the chigoe mixin for this to work if ID.mob.CHIGOES[mobName] == nil then return end @@ -35,30 +22,13 @@ g_mixins.families.chigoe_pet = function(hostMob) if not chigoe:isSpawned() then chigoe:setSpawn(hostMob:getXPos() + math.random(-2, 2), hostMob:getYPos() + math.random(-2, 2), hostMob:getZPos() + math.random(-2, 2), hostMob:getRotPos()) chigoe:spawn() + if target then + chigoe:updateEnmity(target) + end - chigoe:addListener('CRITICAL_TAKE', 'CHIGOE_CRITICAL_TAKE', function(chigoeMob) - chigoeMob:setMobMod(xi.mobMod.EXP_BONUS, -100) - chigoeMob:setHP(0) - end) - - chigoe:addListener('WEAPONSKILL_TAKE', 'CHIGOE_WEAPONSKILL_TAKE', function(chigoeMob, wsid) - if wsid then - chigoeMob:setMobMod(xi.mobMod.EXP_BONUS, -100) - chigoeMob:setHP(0) - end - end) - - chigoe:addListener('ABILITY_TAKE', 'CHIGOE_ABILITY_TAKE', function(chigoeMob, user, ability, action) - if jobAbilities[ability:getID()] then - chigoeMob:setMobMod(xi.mobMod.EXP_BONUS, -100) - chigoeMob:setHP(0) - end - end) - - chigoe:addListener('DEATH', 'CHIGOE_DEATH', function(chigoeMob) - chigoeMob:removeListener('CHIGOE_CRITICAL_TAKE') - chigoeMob:removeListener('CHIGOE_WEAPONSKILL_TAKE') - chigoeMob:removeListener('CHIGOE_ABILITY_TAKE') + chigoe:addListener('DISENGAGE', 'CHIGOE_DISENGAGE', function(mobArg) + DespawnMob(mobArg:getID()) + mobArg:removeListener('CHIGOE_DISENGAGE') end) return