addHook("PlayerThink", function()
	for player in players.iterate do
	if player.mo.skin == "superguide" and (player.cmd.buttons & BT_TOSSFLAG) ~= 0  and (player.pflags & PF_JUMPED) and (player.powers[pw_shield] == SH_ARMAGEDDON) then
		P_BlackOw(player)
		P_RemoveShield(player)
		S_StartSound(player.mo, sfx_gult)
		player.rings = player.rings + 25
    end
	end
end)

addHook("PlayerThink", function()
	for player in players.iterate do
	player.blowstart = player.blowstart or 0
	if player.mo.skin == "superguide" and (player.cmd.buttons & BT_CUSTOM1) ~= 0 and not (player.cmd.buttons & BT_TOSSFLAG) ~= 0 and P_IsObjectOnGround(player.mo) and player.mo.state == S_PLAY_STND and player.powers[pw_super] then
		S_StartSound(player.mo, sfx_gshi)
		player.rings = player.rings - 20
		player.blowstart = 2 * TICRATE
		player.mo.state = S_PLAY_SPRING
		P_InstaThrust(player.mo, player.mo.angle, FixedMul(0 * FRACUNIT, player.mo.scale))
    end
	if player.blowstart >= 1 then
	P_InstaThrust(player.mo, player.mo.angle, FixedMul(0 * FRACUNIT, player.mo.scale))
	P_SetObjectMomZ(player.mo, 1 * FRACUNIT)
	player.blowstart = player.blowstart - 1
	end
	if player.blowstart == 1 then
	P_BlackOw(player)
	P_SetObjectMomZ(player.mo, 0 * FRACUNIT)
	player.blowstart = player.blowstart - 1
	end
	end
end)

addHook("PlayerThink", function()
	for player in players.iterate do
	player.blowstart = player.blowstart or 0
	if player.mo.skin == "superguide" and player.powers[pw_super] then
	P_SpawnMobjFromMobj(player.mo, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(4, 32) * FRACUNIT, MT_FLAMEPARTICLE)
	P_SpawnMobjFromMobj(player.mo, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(4, 32) * FRACUNIT, MT_FLAMEPARTICLE)
	P_SpawnMobjFromMobj(player.mo, P_RandomRange(-24, 12) * FRACUNIT, P_RandomRange(-24, 12) * FRACUNIT, P_RandomRange(8, 64) * FRACUNIT, MT_FLAMEPARTICLE)
	end
	end
end)

addHook("PlayerThink", function()
	for player in players.iterate do
	player.blowstart = player.blowstart or 0
	if player.mo.skin == "superguide" and player.powers[pw_super] and not P_IsObjectOnGround(player.mo) and (player.mo.state == S_PLAY_RUN or player.mo.state == S_PLAY_WALK) then
	player.mo.state = S_PLAY_FALL
	end
	end
end)

addHook("PlayerThink", function()
	for player in players.iterate do
	player.hyperdash = player.hyperdash or 0
	player.hypertime = player.hypertime or 0
	player.hyperdashed = player.hyperdashed or 0
	if player.mo.skin == "superguide" and (player.cmd.buttons & BT_CUSTOM2) ~= 0 and player.powers[pw_super] and player.hyperdashed == 0 then
		S_StartSound(player.mo, sfx_gulc)
		player.hyperdashed = 1
		player.rings = player.rings - 5
		player.hyperdash = 2 * TICRATE
		player.mo.state = S_PLAY_FALL
		P_InstaThrust(player.mo, player.mo.angle, FixedMul(0 * FRACUNIT, player.mo.scale))
    end
	if P_IsObjectOnGround(player.mo) then
	player.hyperdashed = 0
	end
	if player.hyperdash >= 1 then
	P_InstaThrust(player.mo, player.mo.angle, FixedMul(0 * FRACUNIT, player.mo.scale))
	P_SetObjectMomZ(player.mo, 1 * FRACUNIT)
	player.hyperdash = player.hyperdash - 1
	end
	if player.hyperdash == 1 then
	player.hypertime = 8
	player.hyperdash = player.hyperdash - 1
	S_StartSound(player.mo, sfx_guld)
	end
	if player.hypertime >= 1 then
	player.hypertime = player.hypertime - 1
	P_SetObjectMomZ(player.mo, 1 * FRACUNIT)
	player.mo.state = S_PLAY_ROLL
	P_InstaThrust(player.mo, player.mo.angle, FixedMul(800 * FRACUNIT, player.mo.scale))
	P_SpawnMobjFromMobj(player.mo, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(4, 32) * FRACUNIT, MT_FLAMEPARTICLE)
	P_SpawnMobjFromMobj(player.mo, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(4, 32) * FRACUNIT, MT_FLAMEPARTICLE)
	P_SpawnMobjFromMobj(player.mo, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(4, 32) * FRACUNIT, MT_FLAMEPARTICLE)
	P_SpawnMobjFromMobj(player.mo, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(4, 32) * FRACUNIT, MT_FLAMEPARTICLE)
	P_SpawnMobjFromMobj(player.mo, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(4, 32) * FRACUNIT, MT_FLAMEPARTICLE)
	P_SpawnMobjFromMobj(player.mo, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(4, 32) * FRACUNIT, MT_FLAMEPARTICLE)
	P_SpawnMobjFromMobj(player.mo, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(4, 32) * FRACUNIT, MT_FLAMEPARTICLE)
	P_SpawnMobjFromMobj(player.mo, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(4, 32) * FRACUNIT, MT_FLAMEPARTICLE)
	P_SpawnMobjFromMobj(player.mo, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(-12, 6) * FRACUNIT, P_RandomRange(4, 32) * FRACUNIT, MT_FLAMEPARTICLE)
	end
	if player.hypertime == 1 then
	player.hypertime = player.hypertime - 1
	player.mo.state = S_PLAY_FALL
	P_InstaThrust(player.mo, player.mo.angle, FixedMul(0 * FRACUNIT, player.mo.scale))
	end
	end
end)