//Better Sonic Abilities By Minero with kirb help
// And The SRB2 Discord guys
//Please Credit :D
//Mini tutorial,rename all the "sonic" spaces.

//Super Thok
addHook ("AbilitySpecial",function(player,target)

  if player.mo.skin == "sonic" -- OMG SNUC
  and not (player.pflags & PF_THOKKED) -- if u no thokked
  
   P_InstaThrust(player.mo,player.mo.angle,40*FRACUNIT)--XD

  P_SetObjectMomZ(player.mo, 20*FRACUNIT,true)--UP,UUUUUUUUUUUUUP!
    
 P_SpawnThokMobj(player) -- the thok effect

  S_StartSound (player.mo , sfx_spin)--SPINDA
 
 player.pflags = $|PF_THOKKED -- NO SPAM LOOOOOOOOOOOOOOOOOOOOOL
  
 end
 
 end)
// Mini Homing Thok
addHook("PlayerThink",function(player,target)
if player.mo.skin == "sonic"
and player.cmd.buttons & BT_CUSTOM2
player.target = P_LookForEnemies(player, true, true)
if not P_IsObjectOnGround(player.mo)
if player.target
P_HomingAttack(player.mo, player.target)
P_SpawnThokMobj(player)
P_Thrust(player.mo, player.mo.angle,30*FRACUNIT)
S_StartSound(player.mo, sfx_thok)
player.mo.state = S_PLAY_ROLL
player.pflags = $|PF_JUMPED
player.pflags = $|PF_THOKKED
end
end
end
end)
 
 // Spin Down B)
 
addHook("JumpSpinSpecial",function(player)

    if player.mo and player.mo.skin == "sonic" -- sunky
	and not P_IsObjectOnGround(player.mo) -- if not in ground
	and not player.powers[pw_super] -- if u not are super
	and not (player.pflags & PF_SPINNING) -- if u not spinin
	and player.cmd.buttons & BT_SPIN -- IF U PRESS SPIN
	
	   P_SpawnSkidDust (player,-10*FRACUNIT,sfx_none) --the effect
		player.mo.state = S_PLAY_BOUNCE -- the bounce
        player.mo.momz= -60*FRACUNIT -- the bounce xD
		S_StartSound(player.mo, sfx_spin) -- the sound	
		
		if player.cmd.buttons & BT_SPIN 
		   player.pflags = $|PF_THOKKED  --u use the ability
		   
		if S_StartSound(player.mo,sfx_spin)
		S_StartSound(player.mo,sfx_none)
		
		    end
		end
    end
end)
//DashMode Attacks Enemies
addHook("PlayerCanDamage",function(player) --THE FUNCTION
 if player.dashmode > 3*TICRATE -- idk
  and player.mo.skin == "sonic" --sanic
  and  P_IsObjectOnGround(player.mo) --you khow
  and MF_ENEMY
  and MF_SOLID
   player.charflags = SF_DASHMODE & SF_SUPER
   P_SpawnThokMobj(player) -- the thok effect
   end
 end)
//Explotion B)
addHook("PlayerThink",function(player)-- THE PLAYER (AGAIN)
if player.mo.skin == "sonic" -- HEY DONT ROB MY CODE!
if player.cmd.buttons & BT_CUSTOM1 and -- IF U PRESS C1
not P_IsObjectOnGround(player.mo) and -- IF U ARE IN GROUND
not (player.pflags & PF_THOKKED) and --IF U NOT USE YOUR ABILITI
player.rings >= 10 -- IF U HAVE RINGS!


P_NukeEnemies (player.mo,player.mo,3000*FRACUNIT) -- THE ESPLOTION
P_FlashPal(player, PAL_WHITE, 10) -- THE EFFECT
player.pflags = $|PF_THOKKED -- IF U USE THE ABILITY, NO SPAM
player.mo.momz = 2 -- U UP
P_GivePlayerRings(player,-10) -- RAINS RINGS
S_StartSound(player.mo,	sfx_zoom) -- THE SOUND
player.mo.state = S_PLAY_SUPER_TRANS1 -- THE ANIMATION
end
end
end)

