// Mod by Thedarkedgyhope

freeslot( "SFX_DEATHT","SFX_CBLAST","SFX_ZPEAR","sfx_cspear",
	"sfx_cssfx1",
	"sfx_chaoss",
	"sfx_chaosc",
	"sfx_chgecs",
	"sfx_chaosb",
	"sfx_shdwd")




freeslot("SKINCOLOR_SHADOWFEVER")
skincolors[SKINCOLOR_SHADOWFEVER] = {
    name = "Fever",
    ramp = {35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35},
    chatcolor = V_BLUEMAP,
    accessible = false
}



freeslot("SKINCOLOR_SPEAREFF")
skincolors[SKINCOLOR_SPEAREFF] = {
    name = "purplewave",
    ramp = {164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, 164},
    chatcolor = V_BLUEMAP,
    accessible = false
}


addHook("PlayerThink", function(player)
	if player.mo and player.mo.skin == "shadow"
		if (player.cmd.buttons & BT_TOSSFLAG)
          if player.mo.dark == false
		    and player.rings >= 2
			and G_PlatformGametype()
			and not (player.weapondelay & 50)
            S_StartSound(player.mo, sfx_deatht)
			P_FlashPal(player, PAL_NUKE, 10)
			player.weapondelay = 50
            player.mo.dark = true
	end
end
end
end)



addHook("PlayerThink", function(player)
	if player.mo and player.mo.skin == "shadow"
		if (player.cmd.buttons & BT_CUSTOM3)
        and not (player.weapondelay & 200)
        and G_PlatformGametype()
        if player.mo.dark == true
        P_FlashPal(player, PAL_NUKE, 10)
        P_NukeEnemies(player.mo, player.mo, 1058*FRACUNIT)
        player.mo.state = S_PLAY_SUPER_TRANS6
        P_StartQuake(100*FRACUNIT, TICRATE)
		player.mo.sprite2 = SPR2_BATB
        player.mo.frame = D
	    S_StartSound(player.mo, sfx_bkpoof)
        S_StartSound(player.mo, sfx_cblast)
        player.weapondelay = 200
end
end
end
end)





addHook("PlayerThink", function(player)
	if player.mo and player.mo.skin == "shadow" 
	if player.mo.dark == true 
    player.mo.color = SKINCOLOR_RED
    player.normalspeed = 52*FRACUNIT 
    player.mo.eflags = $ | MFE_FORCESUPER
   local trail = P_SpawnGhostMobj(player.mo)
	trail.color = SKINCOLOR_SHADOWFEVER
	trail.colorized = true
    trail.tics = 3
    trail.blendmode = AST_ADD
	end -- 
end
end)

addHook("PlayerThink", function(player)
	if player.mo and player.mo.skin == "shadow"
	and player.rings <= 0 
	player.mo.dark = false 
	player.mo.color = SKINCOLOR_BLACK
    player.mo.eflags = $1 & ~ MFE_FORCESUPER
    player.normalspeed = 36*FRACUNIT 
	end
end)

addHook("PlayerThink", function(player)    // kirb the korb uses rings stuff in my past and i learned this from him this code just makes the rings decut 1 ring every second
    if player.mo.dark == true
    if leveltime % TICRATE == 0 then 
		player.rings = $ - 2
end
end
end)





addHook("ThinkFrame", do
	for player in players.iterate
if player.mo and player.mo.skin == "shadow"
if player.mo.dark == true
player.charflags = $1|SF_RUNONWATER
player.charflags = $1|SF_CANBUSTWALLS
else
player.charflags = $1 & ~SF_RUNONWATER
player.charflags = $1 & ~SF_CANBUSTWALLS
end
end
end
end)





addHook("PlayerThink", function(player)
	if player.mo and player.mo.skin == "shadow"
		if (player.cmd.buttons & BT_TOSSFLAG)
          if player.mo.dark == true
			and G_PlatformGametype()
			and not (player.weapondelay & 50)
			player.weapondelay = 50
            player.mo.eflags = $1 & ~ MFE_FORCESUPER
            player.mo.color = SKINCOLOR_BLACK
            player.normalspeed = 36*FRACUNIT 
            player.mo.dark = false
	end
end
end
end)







addHook("ThinkFrame", do
	for player in players.iterate
		if player.mo and player.mo.skin == "shadow"
        if player.exiting
        if player.mo.dark == true
        player.mo.dark = false
        player.rings = 0
	end
end
end
end
end)

// The Charging Stuff Was Only able by the help of 1983 :D what a nice guy

addHook("PlayerThink", function(player)
    if (player.mo.spear == nil)
	    player.mo.spear = 0
	end
end)

addHook("PlayerThink", function(player)
    if player.mo.dark == false
	    player.mo.spear = 0
	end
end)


addHook("PlayerThink", function(player)
	if player.mo
	and player.mo.valid
	if player.cmd.buttons & BT_CUSTOM2
       if player.mo.dark == true 
			if (leveltime % 10) == 0
			player.mo.spear = min($1+1, 10)
			end
		end
	end
end
end)


addHook("PlayerThink", function(player)
    if not (player.cmd.buttons & BT_CUSTOM2)
    if player.mo.dark == true 
    and player.mo.spear == 10
    player.mo.spear = 0
  local missile = P_SpawnPlayerMissile(player.mo, MT_CHAOSSPEAR, MF2_SCATTER, MF2_AMBUSH)
	local scat1 = P_SPMAngle(player.mo, MT_CHAOSSPEAR, player.mo.angle-ANG2, 1, MF2_SCATTER)
	local scat2 = P_SPMAngle(player.mo, MT_CHAOSSPEAR, player.mo.angle+ANG2, 1, MF2_SCATTER)
	local scat3 = P_SPMAngle(player.mo, MT_CHAOSSPEAR, player.mo.angle, 1, MF2_SCATTER)
    player.mo.state = S_PLAY_FALL
	player.mo.sprite2 = SPR2_FIRE
    player.mo.frame = A
    S_StartSound(player.mo, sfx_chaoss)
    P_Thrust(player.mo, player.mo.angle, -30*FRACUNIT)
end
end
end)

addHook("PlayerThink", function(player)
if player.mo.dark == true    
 and player.mo.spear >= 1
 and player.mo.spear <= 4
 local trail = P_SpawnGhostMobj(player.mo)
	trail.color = SKINCOLOR_SHADOWAURA
	trail.colorized = true
    trail.tics = 3
    trail.blendmode = AST_ADD
end
end)


addHook("PlayerThink", function(player)
if player.mo.dark == true    
 and player.mo.spear >= 5
 and player.mo.spear <= 9
 local trail = P_SpawnGhostMobj(player.mo)
	trail.color = SKINCOLOR_SPEAREFF
	trail.colorized = true
    trail.tics = 3
    trail.blendmode = AST_ADD
end
end)


addHook("PlayerThink", function(player)
if player.mo.dark == true    
 and player.mo.spear == 10
 local trail = P_SpawnGhostMobj(player.mo)
	trail.color = SKINCOLOR_SHADOWFEVER
	trail.colorized = true
    trail.tics = 3
    trail.blendmode = AST_ADD
end
end)


addHook("PlayerThink", function(player)
if player.mo.dark == true    
 if player.mo.spear == 0																																
 local trail = P_SpawnGhostMobj(player.mo)
	trail.color = SKINCOLOR_SHADOWFEVER
	trail.colorized = true
    trail.tics = 3
    trail.blendmode = AST_ADD
end
end
end)

addHook("PlayerThink", function(player)
    if not (player.cmd.buttons & BT_CUSTOM2)
if player.mo.dark == true    
 and player.mo.spear >= 4
    and player.mo.spear <= 9
    player.mo.spear = 0
  local missile = P_SpawnPlayerMissile(player.mo, MT_CHAOSSPEAR, MF2_AMBUSH)
    player.mo.state = S_PLAY_FALL
	player.mo.sprite2 = SPR2_FIRE
	player.mo.frame = A
    S_StartSound(player.mo, sfx_chaoss)
   P_Thrust(player.mo, player.mo.angle, -10*FRACUNIT)
end
end
end)

addHook("PlayerThink", function(player)
    if not (player.cmd.buttons & BT_CUSTOM2)
if player.mo.dark == true    
 and player.mo.spear >= 1
    and player.mo.spear <= 5
    player.mo.spear = 0
 local missile = P_SPMAngle(player.mo, MT_CHAOSSPEAR, player.mo.angle, 0)
    S_StartSound(player.mo, sfx_chaoss)
    P_Thrust(player.mo, player.mo.angle, -5*FRACUNIT)
    player.mo.state = S_PLAY_FALL
	player.mo.sprite2 = SPR2_FIRE
	player.mo.frame = A
end
end
end)