//The Ashura transformation

freeslot("SKINCOLOR_THEGREENASHURA", "SKINCOLOR_THEMETALASHURA")

skincolors[SKINCOLOR_THEGREENASHURA] = {
    name = "Shadowy Green",
    ramp = {26,27,28,29,30,31,112,113,114,115,116,117,118,119,110,111},
    invcolor = SKINCOLOR_SAPPHIRE,
    invshade = 9,
    chatcolor = V_GREENMAP,
    accessible = false
}

skincolors[SKINCOLOR_THEMETALASHURA] = {
    name = "Shadowy Green (Metal)",
    ramp = {29,29,30,30,31,31,114,115,115,116,117,117,118,119,119,119},
    invcolor = SKINCOLOR_COBALT,
    invshade = 9,
    chatcolor = V_GREENMAP,
    accessible = false
}

addHook("PlayerThink", function(player)
	if player.mo and player.mo.valid
		if player.transformbutton == nil
			player.transformbutton = BT_TOSSFLAG
		end
		if player.ashuradelay == nil
			player.ashuradelay = 45
		end
		if skins[player.mo.skin].hudname == "SONIC"
		or skins[player.mo.skin].hudname == "Sonic"
		or skins[player.mo.skin].hudname == "sonic"
		or skins[player.mo.skin].hudname == "SUNKY"
		or skins[player.mo.skin].hudname == "Sunky"
		or skins[player.mo.skin].hudname == "sunky"
		or player.mo.skin == "bandages"
		or player.mo.skin == "sonicnew"
		or player.mo.skin == "msonic"
		or skins[player.mo.skin].hudname == "METAL"
		or skins[player.mo.skin].hudname == "Metal"
		or skins[player.mo.skin].hudname == "metal"
			player.soniccanashura = true
		else
			player.soniccanashura = false
		end
		if player.ashuradelay > 0
			player.ashuradelay = $-1
		end
		if player.ashuradelay > 60
			player.mo.colorized = true
		elseif player.ashuradelay == 59
			player.mo.colorized = false
		end
		if not player.powers[pw_super]
		and player.soniccanashura == true
			if player.isashura != true
				player.mo.color = player.skincolor
			elseif player.isashura == true
				if skins[player.mo.skin].hudname == "METAL"
				or skins[player.mo.skin].hudname == "Metal"
				or skins[player.mo.skin].hudname == "metal"
					player.mo.color = SKINCOLOR_THEMETALASHURA
				else
					player.mo.color = SKINCOLOR_THEGREENASHURA
				end
			end
		end
		if player.cmd.buttons & player.transformbutton
		and player.soniccanashura == true
		and player.isashura != true
		and player.ashuradelay == 0
			P_FlashPal(player, PAL_WHITE, 10)
			S_StartSound(player.mo, 463, player)
			player.isashura = true
			player.ashuradelay = 70
		elseif player.cmd.buttons & player.transformbutton
		and player.soniccanashura == true
		and player.isashura == true
		and player.ashuradelay == 0
			player.ashuraabildelay = 0
			player.ashuracanteleport = false
			player.ashurabouncing = false
			player.mo.spritexscale = FRACUNIT
			player.mo.spriteyscale = FRACUNIT
			player.charability = skins[player.mo.skin].ability
			P_FlashPal(player, PAL_NUKE, 10)
			S_StartSound(player.mo, 463, player)
			player.isashura = false
			player.ashuradelay = 70
		end
	end
end)