local I=1.5 local x=game:GetService("\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101")local u=require((x:WaitForChild("\080\114\111\106\101\099\116")):WaitForChild("\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101"))local U=u:GetResource("\069\120\116\101\114\110\097\108\085\116\105\108\046\078\101\120\117\115\073\110\115\116\097\110\099\101\046\078\101\120\117\115\079\098\106\101\099\116")local k=U:Extend()k:SetClassName("\072\101\097\108\069\102\102\101\099\116")function k.PerformServerAttack(x,u,U)local k=x.Character if k then local x=k:FindFirstChild("\072\117\109\097\110\111\105\100")local u=k:FindFirstChild("\072\117\109\097\110\111\105\100\082\111\111\116\080\097\114\116")if x and(x.Health>0 and u)then local U=Instance.new("\065\116\116\097\099\104\109\101\110\116")U.Parent=u local R=Instance.new("\080\097\114\116\105\099\108\101\069\109\105\116\116\101\114")R.Color=ColorSequence.new(Color3.new(.19607843137255,1.0,.19607843137255))R.LightEmission=1 R.LightInfluence=0 R.Size=NumberSequence.new({NumberSequenceKeypoint.new(0,2*I),NumberSequenceKeypoint.new(.0555,1.78*I),NumberSequenceKeypoint.new(.111,1.58*I),NumberSequenceKeypoint.new(.167,1.39*I);NumberSequenceKeypoint.new(.222,1.21*I);NumberSequenceKeypoint.new(.278,1.04*I),NumberSequenceKeypoint.new(.333,.89*I);NumberSequenceKeypoint.new(.389,.748*I);NumberSequenceKeypoint.new(.444,.618*I),NumberSequenceKeypoint.new(.5,.501*I),NumberSequenceKeypoint.new(.555,.396*I);NumberSequenceKeypoint.new(.61,.303*I);NumberSequenceKeypoint.new(.666,.223*I),NumberSequenceKeypoint.new(.721,.155*I),NumberSequenceKeypoint.new(.777,.0995*I),NumberSequenceKeypoint.new(.832,.0561*I);NumberSequenceKeypoint.new(.888,.0251*I),NumberSequenceKeypoint.new(.943,.00638*I),NumberSequenceKeypoint.new(1,0)})R.Texture="\114\098\120\097\115\115\101\116\105\100\058\047\047\049\048\056\052\057\057\054\057\055\054"R.Transparency=NumberSequence.new({NumberSequenceKeypoint.new(0,1),NumberSequenceKeypoint.new(.5,.25),NumberSequenceKeypoint.new(1,1)})R.ZOffset=0 R.LockedToPart=true R.Lifetime=NumberRange.new(.5,1)R.Rate=4 R.Rotation=NumberRange.new(-180,180)R.Speed=NumberRange.new(0,0)R.Parent=U local p=Instance.new("\080\097\114\116\105\099\108\101\069\109\105\116\116\101\114")p.Color=ColorSequence.new(Color3.new(.19607843137255,1.0,.19607843137255))p.LightEmission=1 p.LightInfluence=0 p.Size=NumberSequence.new({NumberSequenceKeypoint.new(0,2*I),NumberSequenceKeypoint.new(.0555,1.78*I);NumberSequenceKeypoint.new(.111,1.58*I);NumberSequenceKeypoint.new(.167,1.39*I);NumberSequenceKeypoint.new(.222,1.21*I);NumberSequenceKeypoint.new(.278,1.04*I);NumberSequenceKeypoint.new(.333,.89*I),NumberSequenceKeypoint.new(.389,.748*I);NumberSequenceKeypoint.new(.444,.618*I),NumberSequenceKeypoint.new(.5,.501*I);NumberSequenceKeypoint.new(.555,.396*I);NumberSequenceKeypoint.new(.61,.303*I),NumberSequenceKeypoint.new(.666,.223*I);NumberSequenceKeypoint.new(.721,.155*I);NumberSequenceKeypoint.new(.777,.0995*I);NumberSequenceKeypoint.new(.832,.0561*I),NumberSequenceKeypoint.new(.888,.0251*I);NumberSequenceKeypoint.new(.943,.00638*I),NumberSequenceKeypoint.new(1,0)})p.Texture="\114\098\120\097\115\115\101\116\105\100\058\047\047\049\048\056\052\057\057\055\051\050\054"p.Transparency=NumberSequence.new({NumberSequenceKeypoint.new(0,1),NumberSequenceKeypoint.new(.5,.25);NumberSequenceKeypoint.new(1,1)})p.ZOffset=0 p.LockedToPart=true p.Lifetime=NumberRange.new(.5,1)p.Rate=4 p.Rotation=NumberRange.new(-180,180)p.Speed=NumberRange.new(0,0)p.Parent=U local z=Instance.new("\080\097\114\116\105\099\108\101\069\109\105\116\116\101\114")z.Color=ColorSequence.new(Color3.new(.7843137254902,1.0,.7843137254902))z.LightEmission=1 z.LightInfluence=0 z.Size=NumberSequence.new(1.75*I,1*I)z.Texture="\114\098\120\097\115\115\101\116\105\100\058\047\047\049\048\056\052\057\057\054\053\051\054"z.Transparency=NumberSequence.new({NumberSequenceKeypoint.new(0,1),NumberSequenceKeypoint.new(.5,.4),NumberSequenceKeypoint.new(1,1)})z.ZOffset=0 z.LockedToPart=true z.Lifetime=NumberRange.new(1,1.5)z.Rate=3 z.Rotation=NumberRange.new(-180,180)z.Speed=NumberRange.new(0,0)z.RotSpeed=NumberRange.new(250,500)z.Parent=U local n=Instance.new("\080\097\114\116\105\099\108\101\069\109\105\116\116\101\114")n.Color=ColorSequence.new(Color3.new(.19607843137255,1.0,.19607843137255))n.LightEmission=1 n.LightInfluence=0 n.Size=NumberSequence.new(2*I,1*I)n.Texture="\114\098\120\097\115\115\101\116\105\100\058\047\047\049\048\056\052\057\054\053\051\053\054"n.Transparency=NumberSequence.new({NumberSequenceKeypoint.new(0,1),NumberSequenceKeypoint.new(.5,.75);NumberSequenceKeypoint.new(1,1)})n.ZOffset=0 n.LockedToPart=true n.Lifetime=NumberRange.new(1,2)n.Rate=1 n.Rotation=NumberRange.new(-180,180)n.Speed=NumberRange.new(0,0)n.RotSpeed=NumberRange.new(100,200)n.Parent=U;(coroutine.wrap(function()for I=1,25,1 do wait(.25)if x.Health>0 then x.Health=x.Health+(k:FindFirstChild("\066\111\111\115\116\069\102\102\101\099\116")and 2 or 1)end end U:Destroy()end))()end end end return k
--[[
TheNexusAvenger

"Attack" for a heal effect.
Particle effect by gkku (https://www.roblox.com/library/1086049283/Particle-a-Day-Effects).
Class is static (should not be created).
--]]

local PARTICLE_SCALE = 1.5



local ReplicatedStorage = game:GetService("ReplicatedStorage")

local ReplicatedStorageProject = require(ReplicatedStorage:WaitForChild("Project"):WaitForChild("ReplicatedStorage"))

local NexusObject = ReplicatedStorageProject:GetResource("ExternalUtil.NexusInstance.NexusObject")

local HealEffect = NexusObject:Extend()
HealEffect:SetClassName("HealEffect")



--[[
Performs the attack on the server.
--]]
function HealEffect.PerformServerAttack(Player,DungeonModel,Target)
    local Character = Player.Character
    if Character then
        local Humanoid = Character:FindFirstChild("Humanoid")
        local HumanoidRootPart = Character:FindFirstChild("HumanoidRootPart")
        if Humanoid and Humanoid.Health > 0 and HumanoidRootPart then
            --Create the effect.
            local Attachment = Instance.new("Attachment")
            Attachment.Parent = HumanoidRootPart

            local BitsEffect = Instance.new("ParticleEmitter")
            BitsEffect.Color = ColorSequence.new(Color3.new(50/255,255/255,50/255))
            BitsEffect.LightEmission = 1
            BitsEffect.LightInfluence = 0
            BitsEffect.Size = NumberSequence.new({
                NumberSequenceKeypoint.new(0,2 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.0555,1.78 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.111,1.58 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.167,1.39 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.222,1.21 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.278,1.04 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.333,0.89 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.389,0.748 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.444,0.618 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.5,0.501 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.555,0.396 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.61,0.303 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.666,0.223 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.721,0.155 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.777,0.0995 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.832,0.0561 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.888,0.0251 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.943,0.00638 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(1,0),
            })
            BitsEffect.Texture = "rbxassetid://1084996976"
            BitsEffect.Transparency = NumberSequence.new({
                NumberSequenceKeypoint.new(0,1),
                NumberSequenceKeypoint.new(0.5,0.25),
                NumberSequenceKeypoint.new(1,1),
            })
            BitsEffect.ZOffset = 0
            BitsEffect.LockedToPart = true
            BitsEffect.Lifetime = NumberRange.new(0.5,1)
            BitsEffect.Rate = 4
            BitsEffect.Rotation = NumberRange.new(-180,180)
            BitsEffect.Speed = NumberRange.new(0,0)
            BitsEffect.Parent = Attachment

            local SmallBitsEffect = Instance.new("ParticleEmitter")
            SmallBitsEffect.Color = ColorSequence.new(Color3.new(50/255,255/255,50/255))
            SmallBitsEffect.LightEmission = 1
            SmallBitsEffect.LightInfluence = 0
            SmallBitsEffect.Size = NumberSequence.new({
                NumberSequenceKeypoint.new(0,2 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.0555,1.78 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.111,1.58 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.167,1.39 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.222,1.21 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.278,1.04 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.333,0.89 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.389,0.748 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.444,0.618 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.5,0.501 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.555,0.396 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.61,0.303 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.666,0.223 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.721,0.155 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.777,0.0995 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.832,0.0561 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.888,0.0251 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(0.943,0.00638 * PARTICLE_SCALE),
                NumberSequenceKeypoint.new(1,0),
            })
            SmallBitsEffect.Texture = "rbxassetid://1084997326"
            SmallBitsEffect.Transparency = NumberSequence.new({
                NumberSequenceKeypoint.new(0,1),
                NumberSequenceKeypoint.new(0.5,0.25),
                NumberSequenceKeypoint.new(1,1),
            })
            SmallBitsEffect.ZOffset = 0
            SmallBitsEffect.LockedToPart = true
            SmallBitsEffect.Lifetime = NumberRange.new(0.5,1)
            SmallBitsEffect.Rate = 4
            SmallBitsEffect.Rotation = NumberRange.new(-180,180)
            SmallBitsEffect.Speed = NumberRange.new(0,0)
            SmallBitsEffect.Parent = Attachment

            local SolidWaveEffect = Instance.new("ParticleEmitter")
            SolidWaveEffect.Color = ColorSequence.new(Color3.new(200/255,255/255,200/255))
            SolidWaveEffect.LightEmission = 1
            SolidWaveEffect.LightInfluence = 0
            SolidWaveEffect.Size = NumberSequence.new(1.75 * PARTICLE_SCALE,1 * PARTICLE_SCALE)
            SolidWaveEffect.Texture = "rbxassetid://1084996536"
            SolidWaveEffect.Transparency = NumberSequence.new({
                NumberSequenceKeypoint.new(0,1),
                NumberSequenceKeypoint.new(0.5,0.4),
                NumberSequenceKeypoint.new(1,1),
            })
            SolidWaveEffect.ZOffset = 0
            SolidWaveEffect.LockedToPart = true
            SolidWaveEffect.Lifetime = NumberRange.new(1,1.5)
            SolidWaveEffect.Rate = 3
            SolidWaveEffect.Rotation = NumberRange.new(-180,180)
            SolidWaveEffect.Speed = NumberRange.new(0,0)
            SolidWaveEffect.RotSpeed = NumberRange.new(250,500)
            SolidWaveEffect.Parent = Attachment

            local TransparentWaveEffect = Instance.new("ParticleEmitter")
            TransparentWaveEffect.Color = ColorSequence.new(Color3.new(50/255,255/255,50/255))
            TransparentWaveEffect.LightEmission = 1
            TransparentWaveEffect.LightInfluence = 0
            TransparentWaveEffect.Size = NumberSequence.new(2 * PARTICLE_SCALE,1 * PARTICLE_SCALE)
            TransparentWaveEffect.Texture = "rbxassetid://1084965356"
            TransparentWaveEffect.Transparency = NumberSequence.new({
                NumberSequenceKeypoint.new(0,1),
                NumberSequenceKeypoint.new(0.5,0.75),
                NumberSequenceKeypoint.new(1,1),
            })
            TransparentWaveEffect.ZOffset = 0
            TransparentWaveEffect.LockedToPart = true
            TransparentWaveEffect.Lifetime = NumberRange.new(1,2)
            TransparentWaveEffect.Rate = 1
            TransparentWaveEffect.Rotation = NumberRange.new(-180,180)
            TransparentWaveEffect.Speed = NumberRange.new(0,0)
            TransparentWaveEffect.RotSpeed = NumberRange.new(100,200)
            TransparentWaveEffect.Parent = Attachment

            coroutine.wrap(function()
                --Heal the player.
                for i = 1,25 do
                    wait(0.25)
                    if Humanoid.Health > 0 then
                        Humanoid.Health = Humanoid.Health + (Character:FindFirstChild("BoostEffect") and 2 or 1)
                    end
                end

                --Clear the effect.
                Attachment:Destroy()
            end)()
        end
    end
end



return HealEffect