//Borrowed From Miguel
if not(CBW_Battle) then return end
local ScriptLoaded = ScriptLoaded or false
if ScriptLoaded then return end
ScriptLoaded = true

local B = CBW_Battle
local cooldown = 10*TICRATE

B.Action.Panik = function(mo, doaction)
    local player = mo.player
    -- Properties
    player.actiontext = "Nigerundayo"
	player.actionrings = 10

    local panik_cost = 10

    -- Initialize cooldown tracker if not already
    player.panik_cooldown = player.panik_cooldown or 0

    -- Ensure player is superguide
    if player and player.mo and player.mo.skin == "superguide" then
        if doaction then
            if player.rings >= panik_cost and player.panik_cooldown <= 0 then

                -- Apply Pity shield to player
                player.powers[pw_sneakers] = 3*TICRATE
				player.powers[pw_flashing] = 98

                -- Add ghost trail effect
                player.has_ghost_trail = true
                player.ghost_trail_interval = 1

                player.rings = player.rings - panik_cost
                S_StartSound(player.mo, sfx_gfuk)
                player.panik_cooldown = cooldown
            end
        end
    end
end

addHook("ThinkFrame", function()
    for player in players.iterate do
        if player.mo and player.mo.valid then
            -- Initialize custom variables properly
            if player.panik_triggered == nil then player.panik_triggered = false end

            if player.spectator then continue end

            -- Ensure player is superguide
            if player.mo.skin == "superguide" then
                if (player.cmd.buttons & BT_ATTACK) ~= 0 and not player.panik_triggered then
                    B.Action.Panik(player.mo, true)
                end

                -- Update shield triggered state
                player.panik_triggered = (player.cmd.buttons & BT_ATTACK) ~= 0

                -- Decrement cooldown if any
                if player.panik_cooldown and player.panik_cooldown > 0 then
                    player.panik_cooldown = player.panik_cooldown - 1
                end
            end
        end
    end
end)

addHook("PlayerQuit", function(player)
    player.panik_triggered = false
    player.panik_cooldown = 0
end)
