-- Dynamis Yagudo NM Mixin
-- Yagudo NMs in dynamis remove doom upon death
-- TODO: A benediction effect animation should play on doom removal

require('scripts/globals/mixins')

xi = xi or {}
xi.mix = xi.mix or {}
xi.mix.clear_doom = xi.mix.clear_doom or {}

g_mixins = g_mixins or {}

xi.mix.clear_doom.config = function(mob, params)
    if params.doomRemovalChance and type(params.doomRemovalChance) == 'number' then
        mob:setLocalVar('[remove_doom]removalChance', params.doomRemovalChance)
    end
end

g_mixins.clear_doom = function(doomMob)
    doomMob:addListener('PRESPAWN', 'REMOVE_DOOM_SPAWN', function(mob)
        mob:setLocalVar('[remove_doom]removalChance', 100)
    end)

    doomMob:addListener('DEATH', 'REMOVE_DOOM', function(mob, player)
        if math.random(1, 100) <= mob:getLocalVar('[remove_doom]removalChance') then
            local players = mob:getZone():getPlayers()

            for name, playerVal in pairs(players) do
                if mob:checkDistance(player) < 30 then
                    if playerVal:delStatusEffectSilent(xi.effect.DOOM) then
                        playerVal:messagePublic(xi.msg.basic.NARROWLY_ESCAPE, playerVal)
                    end
                end
            end
        end
    end)
end

return g_mixins.clear_doom
