addHook("PlayerThink", function(fuckyou)
    if fuckyou.powers[pw_shield] == SH_WHIRLWIND then
        fuckyou.powers[pw_nocontrol] = 2
        fuckyou.mo.flags = $|MF_NOCLIPHEIGHT
        fuckyou.pflags = $|PF_THOKKED
        fuckyou.mo.state = S_PLAY_PAIN
        P_SetObjectMomZ(fuckyou.mo, FRACUNIT, true)
        if (fuckyou.mo.momz < 0 and not (fuckyou.mo.eflags & MFE_VERTICALFLIP))
        or (fuckyou.mo.momz > 0 and (fuckyou.mo.eflags & MFE_VERTICALFLIP)) then
            P_SetObjectMomZ(fuckyou.mo, 2*FRACUNIT, false)
        end
    end
    if fuckyou.powers[pw_shield] == SH_ELEMENTAL then
        fuckyou.powers[pw_nocontrol] = 2
        fuckyou.mo.flags = $|MF_NOCLIPHEIGHT
        P_SetObjectMomZ(fuckyou.mo, -FRACUNIT, true)
    end
    if fuckyou.powers[pw_shield] & SH_FORCE then
        fuckyou.powers[pw_nocontrol] = 2
        fuckyou.pflags = $|PF_THOKKED
        fuckyou.mo.state = S_PLAY_WALK
        fuckyou.mo.momz = 0
        P_InstaThrust(fuckyou.mo,0,0)
    end
    if fuckyou.powers[pw_super] then
        fuckyou.normalspeed = 2000*FRACUNIT
        fuckyou.thrustfactor = 8
    elseif fuckyou.powers[pw_sneakers] then
        fuckyou.normalspeed = 5*FRACUNIT
        fuckyou.thrustfactor = 5
    else
        fuckyou.normalspeed = 36*FRACUNIT
        fuckyou.thrustfactor = 5
    end
end)