// Chat secrets 100% NOT stolen from ChaotixChars & Ray!

freeslot("SPR2_SMUG", "SPR2_LOWQ", "SPR2_TSPN", "S_DARK94_SMUG", "S_DARK94_LOWQUALITY", "S_XKZ_SPINNINGMYTAILS")

spr2defaults[SPR2_SMUG] = SPR2_WAIT

states[S_DARK94_SMUG] = {
	tics = -1,
	sprite = SPR_PLAY,
	frame = A|SPR2_SMUG,
	nextstate = S_DARK94_SMUG
}

states[S_DARK94_LOWQUALITY] = {
	tics = 5,
	sprite = SPR_PLAY,
	frame = SPR2_LOWQ,
	nextstate = S_DARK94_LOWQUALITY
}

states[S_XKZ_SPINNINGMYTAILS] = {
	tics = -1,
	sprite = SPR_PLAY,
	frame = A|SPR2_FLY_|FF_VERTICALFLIP,
	nextstate = S_XKZ_SPINNINGMYTAILS
}

addHook("PlayerMsg", function(player, msgtype, target, msg)
	msg = $:lower()
	if player.mo and player.mo.valid
		if player.mo.skin == "dark"
			if msg == "!smug"
				if not player.speed
				and P_IsObjectOnGround(player.mo)
					S_StartSound(player.mo, sfx_s3k7b, player)
					player.mo.state = S_DARK94_SMUG
				else
					chatprintf(player, "\x85".."<".."\x82".."^".."\x85".."Dark94> ".."\x80".."Stay still to use ".."\x82".."!smug")
				end
				return true
			elseif msg == "!lowquality"
				if not player.speed
				and P_IsObjectOnGround(player.mo)
					player.mo.frame = $|A
					player.mo.state = S_DARK94_LOWQUALITY
				else
					chatprintf(player, "\x85".."<".."\x82".."^".."\x85".."Dark94> ".."\x80".."Stay still to use ".."\x82".."!lowquality")
				end
				return true
			elseif msg == "!sad"
			or msg == "!spinning"
				chatprintf(player, "\x85".."<".."\x82".."^".."\x85".."Dark94> ".."\x80".."I can't use that command!")
				return true
			end
		elseif player.mo.skin == "xkz"
			if msg == "!sad"
				if not player.speed
				and P_IsObjectOnGround(player.mo)
					S_StartSound(player.mo, sfx_kc59, player)
					player.mo.state = S_XKZ_FAIL1
				else
					chatprintf(player, "\x86".."<".."\x82".."^".."\x86".."[@xkz_17]> ".."\x80".."Stay still to use ".."\x82".."!sad")
				end
				return true
			elseif msg == "!spinning"
				if not player.speed
				and P_IsObjectOnGround(player.mo)
					player.mo.state = S_XKZ_SPINNINGMYTAILS
				else
					chatprintf(player, "\x86".."<".."\x82".."^".."\x86".."[@xkz_17]> ".."\x80".."Stay still to use ".."\x82".."!spinning")
				end
				return true
			elseif msg == "!smug"
			or msg == "!lowquality"
				chatprintf(player, "\x86".."<".."\x82".."^".."\x86".."[@xkz_17]> ".."\x80".."I can't use that command!")
				return true
			end
		end
	end
end)

addHook("PlayerThink", function(player)
	if player.mo and player.mo.valid
		if player.mo.skin == "dark"
		or player.mo.skin == "xkz"
			if player.mo.state == S_DARK94_SMUG
			or player.mo.state == S_DARK94_LOWQUALITY
			or player.mo.state == S_XKZ_FAIL1
			or player.mo.state == S_XKZ_FAIL2
			or player.mo.state == S_XKZ_FAIL3
			or player.mo.state == S_XKZ_FAIL4
			or player.mo.state == S_XKZ_SPINNINGMYTAILS
				if player.speed
				or not P_IsObjectOnGround(player.mo)
					player.mo.state = S_PLAY_SPRING
				end
			end
			if player.mo.state == S_DARK94_LOWQUALITY
				if not player.dark94lowquality
					S_ChangeMusic("LOWRVZ", true, player)
					player.mo.frame = $|A
					player.dark94lowquality = 1
				else
					player.mo.frame = $|(player.dark94lowquality % (8*5))/5
					player.dark94lowquality = $+1
				end
			else
				if player.dark94lowquality
					P_RestoreMusic(player)
					player.dark94lowquality = 0
				end
			end
			if player.mo.state == S_XKZ_SPINNINGMYTAILS
				if not player.xkzspinningmytails
					S_ChangeMusic("SPINMT", true, player)
					player.xkzspinningmytails = 1
				else
					local xkzpleaseshowthetails = P_SpawnMobjFromMobj(player.mo, -(FixedMul(cos(player.mo.angle), player.mo.radius)/180), -(FixedMul(sin(player.mo.angle), player.mo.radius)/180), -(player.mo.height/3), MT_THOK)
					xkzpleaseshowthetails.tics = 3
					xkzpleaseshowthetails.fuse = 15
					xkzpleaseshowthetails.color = player.mo.color
					xkzpleaseshowthetails.sprite = SPR_PLAY
					xkzpleaseshowthetails.skin = "xkz"
					xkzpleaseshowthetails.sprite2 = SPR2_TAL7
					xkzpleaseshowthetails.frame = A|FF_VERTICALFLIP
					xkzpleaseshowthetails.spriteyoffset = -12
					player.followmobj.flags2 = $|MF2_DONTDRAW
					player.mo.spriteyoffset = 6
					player.drawangle = $+ANG10
					player.xkzspinningmytails = $+1
				end
			else
				if player.xkzspinningmytails
					P_RestoreMusic(player)
					if player.followmobj
						player.followmobj.flags2 = $ & ~MF2_DONTDRAW
					end
					player.xkzspinningmytails = 0
				end
			end
		end
	end
end)