actor G2_Snow 31201 {
	+CLIENTSIDEONLY
	+NOGRAVITY
	States {
		Spawn:
			TNT1 A 0
			stop
	}
}

actor G2_SnowParticle {
	+CLIENTSIDEONLY
	+MISSILE
	+THRUACTORS
	-NOGRAVITY
	height 2
	radius 2
	scale 0.075
	
	gravity 0.05

	renderstyle translucent
	alpha 0.01

	gravity 0.001
	
	States {
		Respawn:
			SNOW A 0
			SNOW A 0 A_SetTranslucent(0.001, 0)
			SNOW A 0 A_ChangeFlag("Missile", 1)
		Spawned:
			//SNOW A 0 A_Weave(1,0,2,0) //GZDOOM only ATM
			SNOW AAAAAAAAAAAAAAAA 1 A_FadeIn(0.01)
			SNOW A 1 A_CheckRange(600, "PrepareForRespawn")
			loop
		Death:
			SNOW A 0
			SNOW A 0 A_CheckSight("PrepareForRespawn")
			SNOW A 0 A_CheckFloor("Floor")
			Goto PrepareForRespawn
		Spawn:	
		PrepareForRespawn:
			TNT1 A 0 A_Stop
			TNT1 A 0 Thing_ChangeTID(0, 8004)
			TNT1 A -1
			stop
		Floor:
			SNOW A 1 A_SetTranslucent(1.0, 0)
			SNOW BCD 2 A_FadeOut(0.1)
			SNOW EEEEEEEEEEEE 1 A_FadeOut(0.1, false)
			Goto PrepareForRespawn
	}
}

/**
 * Zandronum's A_ChangeFlag is ignored in clients even in clientside actors
 *		Thanks Carn, very cool
 */
actor G2_ZandronumSnowParticle : G2_SnowParticle {
	-MISSILE
	States {
		Respawn:
			SNOW A 0
			SNOW A 0 A_SetTranslucent(0.001, 0)
		Spawned:
			SNOW A 0 A_CheckFloor("Floor")
			SNOW A 1 A_FadeIn(0.01)
			SNOW A 0 A_CheckFloor("Floor")
			SNOW A 1 A_FadeIn(0.01)
			SNOW A 0 A_CheckFloor("Floor")
			SNOW A 1 A_FadeIn(0.01)
			SNOW A 0 A_CheckFloor("Floor")
			SNOW A 1 A_FadeIn(0.01)
			SNOW A 0 A_CheckFloor("Floor")
			SNOW A 1 A_FadeIn(0.01)
			SNOW A 1 A_CheckRange(600, "PrepareForRespawn")
			loop
		Death:
			SNOW A 0
			SNOW A 0 A_CheckSight("PrepareForRespawn")
			Goto PrepareForRespawn
		Spawn:
		PrepareForRespawn:
			TNT1 A 0 A_Stop
			TNT1 A 0 Thing_ChangeTID(0, 8004)
			TNT1 A -1
			stop
		Floor:
			SNOW A 1 A_SetTranslucent(1.0, 0)
			SNOW BCD 2 A_FadeOut(0.1)
			SNOW EEEEEEEEEEEE 1 A_FadeOut(0.1, false)
			Goto PrepareForRespawn
	}
}