addHook("SpinSpecial", function(player) if not player.powers[pw_shield] and not (player.pflags & PF_FULLSTASIS) and not (player.mo.state == S_PLAY_PAIN) and (P_IsObjectOnGround(player.mo) == false) then player.mo.state = S_PLAY_JUMP player.charge = true player.pflags = $|PF_THOKKED end end) addHook("PlayerThink", function(player) if player.speed < 50*FRACUNIT and player.charge == true and not player.powers[pw_super] and (P_IsObjectOnGround(player.mo) == true) then player.mo.state = S_PLAY_ROLL player.charge = false player.pflags = $|PF_SPINNING P_Thrust(player.mo, player.mo.angle, 25*FRACUNIT) end if player.charge == true and player.powers[pw_super] and player.speed < 65*FRACUNIT and (P_IsObjectOnGround(player.mo) == true) then player.mo.state = S_PLAY_ROLL player.charge = false player.pflags = $|PF_SPINNING P_Thrust(player.mo, player.mo.angle, 55*FRACUNIT) P_NukeEnemies(player.mo, player.mo, 1) P_StartQuake(25*FRACUNIT, 4) end if player.charge == true and player.speed > 50*FRACUNIT and not player.powers[pw_super] and (P_IsObjectOnGround(player.mo) == true) then player.mo.state = S_PLAY_ROLL player.charge = false player.pflags = $|PF_SPINNING P_InstaThrust(player.mo, player.mo.angle, 55*FRACUNIT) end if player.charge == true and player.speed > 65*FRACUNIT and player.powers[pw_super] and (P_IsObjectOnGround(player.mo) == true) then player.mo.state = S_PLAY_ROLL player.charge = false player.pflags = $|PF_SPINNING P_Thrust(player.mo, player.mo.angle, 75*FRACUNIT) P_NukeEnemies(player.mo, player.mo, 1) P_StartQuake(25*FRACUNIT, 4) end end) --this still needs thok barrier check, the dropdash works good without it, it just won't cling to walls addHook("MobjMoveBlocked", function(mo) local player = mo.player if player.charge == true and not player.powers[pw_super] P_SetObjectMomZ(player.mo, 15*FRACUNIT + player.speed/3) player.charge = false player.mo.state = S_PLAY_ROLL player.pflags = $|PF_SPINNING end end, MT_PLAYER) addHook("MobjMoveBlocked", function(mo) local player = mo.player if player.charge == true and player.powers[pw_super] P_SetObjectMomZ(player.mo, 20*FRACUNIT + player.speed/3) player.charge = false P_StartQuake(25*FRACUNIT, 4) P_NukeEnemies(player.mo, player.mo, 1) player.mo.state = S_PLAY_ROLL player.pflags = $|PF_SPINNING end end, MT_PLAYER)