addHook("ThinkFrame", function()
    for player in players.iterate do
        if not player.mo or player.mo.skin ~= "megaman" then
            continue
        end

        if player.megamangreetspam == nil then
            player.megamangreetspam = 0
        end
        
        if (player.cmd.buttons & BT_ATTACK) ~= 0
        and player.megamangunspam == 0 
        and player.megamangun == 0 then
            local missile = P_SpawnPlayerMissile(player.mo, MT_MEGAMANBULLET)
            if missile then
                missile.flags2 = missile.flags2 & ~MF2_INVERTAIMABLE
            end
            player.mo.state = S_PLAY_FIRE
            player.megamangunspam = 1
        end
        
        if (player.cmd.buttons & BT_ATTACK) ~= 0
        and player.megamangunspam == 0 
        and player.megamangun == 1 then
            local missile = P_SpawnPlayerMissile(player.mo, MT_MEGAMANBULLET)
            if missile then
                missile.flags2 = missile.flags2 & ~MF2_INVERTAIMABLE
            end
            player.mo.state = S_PLAY_FIRE
        end
		
        if (player.cmd.buttons & BT_ATTACK) == 0
        and player.megamangunspam == 1 then
            player.megamangunspam = 0
        end
            
        if player.megamangunspam == nil then
            player.megamangunspam = 0
        end
        
        if player.megamangun == nil then
            player.megamangun = 0
        end
    end
end)