local gravityrandomized = FRACUNIT local nightrotate = 0 local gravtimer = 10*TICRATE local pauztimer = 1 local emerflip = 1 local alreadyflip = 0 addHook("PlayerSpawn", function(player) player.gravityrandomized = FRACUNIT player.gravtimer = 10*TICRATE player.alreadyflip = 0 player.nightrotate = 0 end) addHook("ThinkFrame", function() if leveltime == 0 for player in players.iterate do player.gravtimer = gravtimer - 1 player.gravityrandomized = FRACUNIT end end if pauztimer == 1 for player in players.iterate do player.gravtimer = $ - pauztimer if gravtimer == 4*TICRATE or player.gravtimer == 3*TICRATE or player.gravtimer == 2*TICRATE or player.gravtimer == 3*TICRATE/2 or player.gravtimer == TICRATE or player.gravtimer == TICRATE/2 S_StartSound(player.mo, 423, player) end if player.gravtimer == 0 S_StartSound(player.mo, 622) player.gravityrandomized = (P_RandomRange(-24576, 24576) * 4) - P_RandomRange(0, 3) player.nightrotate = P_RandomRange(0, 359) player.gravtimer = gravtimer player.alreadyflip = 0 end end end end) addHook("PreThinkFrame", function() for player in players.iterate do if player.powers[pw_carry] == CR_NIGHTSMODE player.viewrollangle = FixedAngle(player.nightrotate * FRACUNIT) end if player.powers[pw_carry] ~= CR_NIGHTSMODE if not P_IsObjectOnGround(player.mo) and player.mo.state ~= S_PLAY_FLOAT and player.mo.state ~= S_PLAY_FLOAT_RUN if player.gravityrandomized > 0 player.mo.momz = $ + FixedMul((FixedMul(P_GetMobjGravity(player.mo), player.gravityrandomized) - P_GetMobjGravity(player.mo)), player.mo.scale) elseif not (player.mo.eflags & MFE_GOOWATER) player.mo.momz = $ + FixedMul((FixedMul(P_GetMobjGravity(player.mo), -player.gravityrandomized) - P_GetMobjGravity(player.mo)), player.mo.scale) else player.mo.momz = $ + FixedMul((FixedMul(P_GetMobjGravity(player.mo), player.gravityrandomized) - P_GetMobjGravity(player.mo)), player.mo.scale) end end end if player.gravityrandomized < 0 and player.powers[pw_carry] ~= CR_NIGHTSMODE player.powers[pw_gravityboots] = 2 end end end) addHook("PreThinkFrame", function() for player in players.iterate do if emeralds & EMERALD7 or player.powers[pw_emeralds] & EMERALD7 then if (player.cmd.buttons & BT_CUSTOM3) and player.alreadyflip == 0 and player.powers[pw_carry] ~= CR_NIGHTSMODE player.gravityrandomized = -$ player.alreadyflip = 1 S_StartSound(player.mo, 422, player) end end end end) hud.add( function(v, player, camera) if player.spectator ~= true if player.powers[pw_carry] ~= CR_NIGHTSMODE if player.gravityrandomized < 0 v.drawString(16, 56, "\x84Gravity \x80"..(FixedDiv(player.gravityrandomized, FRACUNIT*655 + 41287) - 1).."%", V_HUDTRANS|V_SNAPTOLEFT|V_SNAPTOTOP|V_ALLOWLOWERCASE) elseif player.gravityrandomized > 0 v.drawString(16, 56, "\x84Gravity \x80"..(FixedDiv(player.gravityrandomized, FRACUNIT*655 + 41287) + 1).."%", V_HUDTRANS|V_SNAPTOLEFT|V_SNAPTOTOP|V_ALLOWLOWERCASE) else v.drawString(16, 56, "\x84Gravity \x80"..FixedDiv(player.gravityrandomized, FRACUNIT*655 + 41287).."%", V_HUDTRANS|V_SNAPTOLEFT|V_SNAPTOTOP|V_ALLOWLOWERCASE) end else v.drawString(16, 56, "\x89Rotation \x80"..player.nightrotate, V_HUDTRANS|V_SNAPTOLEFT|V_SNAPTOTOP|V_ALLOWLOWERCASE) end if pauztimer == 1 v.drawString(16, 66, "\x85Timer \x80"..((player.gravtimer / TICRATE) + 1), V_HUDTRANS|V_SNAPTOLEFT|V_SNAPTOTOP|V_ALLOWLOWERCASE) end if emeralds & EMERALD7 or player.powers[pw_emeralds] & EMERALD7 then if player.alreadyflip == 0 and player.powers[pw_carry] ~= CR_NIGHTSMODE v.drawString(16, 76, "\x82Press C3 to Flip!", V_HUDTRANS|V_SNAPTOLEFT|V_SNAPTOTOP|V_ALLOWLOWERCASE) end end end end) COM_AddCommand("gc_gravitytest", function(player, arg) arg = tonumber(arg) if arg == nil CONS_Printf(player, "change gravity localy") else player.gravityrandomized = FixedMul(arg, FRACUNIT*655 + 41287) end end, COM_ADMIN) COM_AddCommand("gc_toggletimer", function(player, arg) if pauztimer == 1 then pauztimer = 0 CONS_Printf(player, "Timer disabled") else pauztimer = 1 CONS_Printf(player, "Timer enabled") end end, COM_ADMIN) COM_AddCommand("gc_toggleemeraldflip", function(player, arg) if pauztimer == 1 then emerflip = 0 CONS_Printf(player, "Emerald fliping disabled") else emerflip = 1 CONS_Printf(player, "Emerald fliping enabled") end end, COM_ADMIN) COM_AddCommand("gc_timer", function(player, arg) arg = tonumber(arg) if arg == nil CONS_Printf(player, "change the time (default 10 seconds)") else gravtimer = arg * TICRATE end end, COM_ADMIN)