// We did it, victory time.

freeslot("SPR2_VIC1", "SPR2_VIC2", "SPR2_TALV", "SPR2_SAD1", "SPR2_SAD2", "SPR2_SAD3", "SPR2_SAD4", "S_D94XKZ_VICTORY1", "S_D94XKZ_VICTORY2", "S_DARK94_FAIL1", "S_DARK94_FAIL2", "S_XKZ_FAIL1", "S_XKZ_FAIL2", "S_XKZ_FAIL3", "S_XKZ_FAIL4")

spr2defaults[SPR2_VIC1] = SPR2_STND
spr2defaults[SPR2_VIC2] = SPR2_WALK

states[S_D94XKZ_VICTORY1] = {
	tics = 5,
	sprite = SPR_PLAY,
	frame = A|SPR2_VIC1,
	nextstate = S_D94XKZ_VICTORY2
}

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

states[S_DARK94_FAIL1] = {
	tics = 20,
	sprite = SPR_PLAY,
	frame = A|SPR2_CNT1,
	nextstate = S_DARK94_FAIL2
}

states[S_DARK94_FAIL2] = {
	tics = 20,
	sprite = SPR_PLAY,
	frame = B|SPR2_CNT1,
	nextstate = S_DARK94_FAIL1
}

states[S_XKZ_FAIL1] = {
	tics = 5,
	sprite = SPR_PLAY,
	frame = A|SPR2_SAD1, // Created new sprites bc SRB2 haves weird bugs. Thanks SRB2!
	nextstate = S_XKZ_FAIL2
}

states[S_XKZ_FAIL2] = {
	tics = 5,
	sprite = SPR_PLAY,
	frame = A|SPR2_SAD2, // Created new sprites bc SRB2 haves weird bugs. Thanks SRB2!
	nextstate = S_XKZ_FAIL3
}

states[S_XKZ_FAIL3] = {
	tics = 5,
	sprite = SPR_PLAY,
	frame = A|SPR2_SAD3, // Created new sprites bc SRB2 haves weird bugs. Thanks SRB2!
	nextstate = S_XKZ_FAIL4
}

states[S_XKZ_FAIL4] = {
	tics = 5,
	sprite = SPR_PLAY,
	frame = A|SPR2_SAD4, // Well I'm bored of saying the same phrase... So you know...
	nextstate = S_XKZ_FAIL1
}

addHook("PlayerSpawn", function(player)
	player.camerascale = skins[player.mo.skin].camerascale
end)

addHook("PlayerThink", function(player)
	if player.mo and player.mo.valid
		if (player.mo.skin == "dark" or player.mo.skin == "xkz")
			if player.exiting
				if player.powers[pw_carry] != CR_NIGHTSMODE
					if mapheaderinfo[gamemap].typeoflevel & TOL_NIGHTS
					or mapheaderinfo[gamemap].typeoflevel & TOL_XMAS
						if P_IsObjectOnGround(player.mo)
							if player.mo.state != S_DARK94_FAIL1
							and player.mo.state != S_DARK94_FAIL2
							and player.mo.state != S_XKZ_FAIL1
							and player.mo.state != S_XKZ_FAIL2
							and player.mo.state != S_XKZ_FAIL3
							and player.mo.state != S_XKZ_FAIL4
								S_StartSound(player.mo, sfx_s3k7b, player)
								S_StartSound(player.mo, sfx_s3k91, player)
								player.mo.momx = 0
								player.mo.momy = 0
								player.mo.momz = 0
								if player.mo.skin == "dark"
									player.mo.state = S_DARK94_FAIL1
								elseif player.mo.skin == "xkz"
									player.mo.state = S_XKZ_FAIL1
								end
							end
							player.d94xkzvictoryposing = true
						end
					else
						if player.d94xkzvictoryposing
							if P_IsObjectOnGround(player.mo)
								if player.mo.state != S_D94XKZ_VICTORY1
								and player.mo.state != S_D94XKZ_VICTORY2
									S_StartSound(player.mo, sfx_chchng, player)
									player.mo.momx = 0
									player.mo.momy = 0
									player.mo.momz = 0
									player.mo.state = S_D94XKZ_VICTORY1
								end
								if player.followmobj and player.followmobj.valid
									local xkzpleaseshowthetails = P_SpawnMobjFromMobj(player.mo, 0, 0, 0, MT_THOK)
									xkzpleaseshowthetails.tics = 3
									xkzpleaseshowthetails.fuse = 15
									xkzpleaseshowthetails.color = player.mo.color
									xkzpleaseshowthetails.sprite = SPR_PLAY
									xkzpleaseshowthetails.skin = "xkz"
									xkzpleaseshowthetails.sprite2 = SPR2_TALV
									xkzpleaseshowthetails.frame = A
									xkzpleaseshowthetails.dispoffset = -1
									player.followmobj.flags2 = $|MF2_DONTDRAW
								end
							else
								player.drawangle = $+ANG20
								if player.mo.state == S_D94XKZ_VICTORY1
								or player.mo.state == S_D94XKZ_VICTORY2
									player.mo.state = S_PLAY_SPRING
								end
							end
						else
							if P_IsObjectOnGround(player.mo)
								S_StartSound(player.mo, sfx_kc52, player)
								player.mo.momz = 10*player.mo.scale
								player.mo.state = S_PLAY_SPRING
								player.d94xkzvictoryposing = true
							end
						end
					end
					player.camerascale = skins[player.mo.skin].camerascale/3
				end
			else
				if player.d94xkzvictoryposing
					player.camerascale = skins[player.mo.skin].camerascale
				end
				player.d94xkzvictoryposing = false
			end
		else
			if player.d94xkzvictoryposing
				player.camerascale = skins[player.mo.skin].camerascale
			end
			player.d94xkzvictoryposing = false
		end
	end
end)