// BLOOD AND GORE


actor msx_Blood : Blood replaces Blood {
	+NOINTERACTION
	+NOTELEPORT
	+CLIENTSIDEONLY
	states {
		spawn:
			TNT1 A 0
			TNT1 A 0 A_Jump(255,"sp1","sp2")
		sp1:
			TNT1 A 0 A_SpawnItemEx("msx_BloodSplat1",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
			stop
		sp2:
			TNT1 A 0 A_SpawnItemEx("msx_BloodSplat2",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
			stop
	}
}

actor  msx_Blood2 : Bloodsplatter replaces Bloodsplatter {
	+NOINTERACTION
	+NOTELEPORT
	+CLIENTSIDEONLY
	states {
		spawn:
			TNT1 A 0
			TNT1 A 0 A_Jump(255,"sp1","sp2")
		sp1:
			TNT1 A 0 A_SpawnItemEx("msx_BloodSplat1",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
			stop
		sp2:
			TNT1 A 0 A_SpawnItemEx("msx_BloodSplat2",0,0,0,0,0,0,0,SXF_TRANSFERTRANSLATION)
			stop
	}
}

actor msx_BloodSplat1 {
	mass 0
	radius	1
	height	1
	renderstyle normal
	//+NOINTERACTION
	+CLIENTSIDEONLY
	+NOBLOCKMAP
	+FLOORCLIP
	+NOTELEPORT
	-NOGRAVITY
	states{
		Spawn:
			TNT1 A 0				
			TNT1 AAAAAA 0 A_SpawnItemEx ("blood_spray", 0, 0, 0, random(-2,2) , random(-2,2) , random(-1,2) , random(1,360), SXF_TRANSFERTRANSLATION | 128)
			TNT1 BBB 0 A_SpawnItemEx ("flying_blood", 0, 0, 0, random(-3,3) , random(-3,3) , random(3,6) , random(1,360), SXF_TRANSFERTRANSLATION | 128)
					
			TNT1 A 0 A_SpawnItemEx ("blood_cloud", 0, 0, 0, /*f*/random(-0.6,0.6) , /*f*/random(-0.6,0.6) , /*f*/random(-0.5,0.5), random(1,360), SXF_TRANSFERTRANSLATION)
			BLDI A 5 A_PlaySound("blood/impact", CHAN_AUTO)
			BLDI BC 5 			
			stop
	}
}


actor msx_BloodSplat2 : Bloodsplatter replaces Bloodsplatter{
	Mass 0
	Radius	1
	Height	1
	Scale 0.20
	alpha 0.75
	gravity 0
	renderstyle normal
	+NOBLOCKMAP
	+FLOORCLIP
	+NOTELEPORT
	+CLIENTSIDEONLY
	states{
		Spawn:
			SPRY A 0
			SPRY A 1 A_PlaySound("blood/impact", CHAN_AUTO)
			TNT1 AAAAAA 0 A_SpawnItemEx ("blood_spray", 0, 0, 0, random(-2,2) , random(-2,2) , random(-1,2) , random(1,360), SXF_TRANSFERTRANSLATION | 128)
			TNT1 AAAA 0 A_SpawnItemEx ("flying_blood", 0, 0, 0, random(-3,3) , random(-3,3), random(3,6) , random(1,360), SXF_TRANSFERTRANSLATION | 128)
			TNT1 A 0 A_SpawnItemEx ("blood_cloud2", 0, 0, 0, /*f*/random(-0.6,0.6) , /*f*/random(-0.6,0.6) , /*f*/random(-0.5,0.5), random(1,360), SXF_TRANSFERTRANSLATION)		
			SPRY BCDEFG 1
			stop
	}
}

actor blood_spray {
	mass 1
	radius 1
	height 1
	scale 0.55
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+CLIENTSIDEONLY
	states{
		spawn:
			BLDS ABCDEF 2
		spawnloop:
			BLDS F 2 A_FadeOut(0.1)
			stop
	}
}

actor blood_spray_Y : blood_spray{
	translation "176:191=[255,215,0]:[78,66,0]", "32:47=[255,215,0]:[78,66,0]"
}

actor blood_cloud{
	scale 0.6
	alpha 0.5
	renderstyle normal
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+CLIENTSIDEONLY
	states{
		spawn:
			TNT1 A 0 
			TNT1 A 0 A_Jump(255, "m1", "m2", "m3", "m4")
		m1:
			BLCL A 5
		m1l:
			BLCL A 2 A_FadeOut(0.1)
			loop
		m2:
			BLCL B 5
		m2l:
			BLCL B 2 A_FadeOut(0.1)
			loop
		m3:
			BLCL C 5
		m3l:
			BLCL C 2 A_FadeOut(0.1)
			loop
		m4:
			BLCL D 5
		m4l:
			BLCL D 2 A_FadeOut(0.1)
			loop
			
	}
}

actor blood_cloud2 : blood_cloud {
	scale 0.68
}


actor flying_blood{
	mass 0
	radius 1
	height 1
	scale 0.40
	alpha 0.75
	gravity 0.75
	+MISSILE
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+CLIENTSIDEONLY
	states{
		spawn:
			NULL A 0
			BTRL ABCD 1 A_SpawnItemEx ("blood_trails", 0, 0, 0, 0 , 0 , 0 , 0, SXF_TRANSFERTRANSLATION)
			loop
		death:
			NULL A 0 A_SpawnItemEx ("floor_blood", 0, 0, 0, 0 , 0 , 0 , 0, SXF_TRANSFERTRANSLATION)
			stop
	}
}


actor blood_trails{
	mass 0
	radius 1
	height 1
	scale 0.40
	alpha 0.75
	+NOINTERACTION
	//+LOWGRAVITY
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+CLIENTSIDEONLY
	states{
		spawn:
		 	NULL A 0
			NULL A 0 A_Jump(64,"trail1")
			NULL A 0 A_Jump(128,"trail2")
			NULL A 0 A_Jump(192,"trail3")
			NULL A 0 A_Jump(256,"trail4")
			stop
		trail1:
			BTRL ABAB 1 
			stop
		trail2:
			BTRL CDCD 1 
			stop
		trail3:
			BTRL BCBC 1 
			stop
		trail4:
			BTRL ADAD 1 
			stop
	}
}


actor floor_blood {
	mass 0
	radius 2
	height 2
	scale 0.40
	alpha 0.8
	-NOBLOCKMAP
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+CLIENTSIDEONLY
	states{
		spawn:
			NULL A 0
  			NULL A 0 A_PlaySound("blood/drip")
		  	NULL A 0 A_Jump(64,"splat1")
		  	NULL A 0 A_Jump(128,"splat2")
		  	NULL A 0 A_Jump(192,"splat3")
		  	NULL A 0 A_Jump(255,"splat4")
			stop
		splat1:
		 	BSPT A 35 A_FadeOut(0.1)
		  	loop
		splat2:
			BSPT B 35 A_FadeOut(0.1)
			loop
		splat3:
			BSPT C 35 A_FadeOut(0.1)
		    loop
		splat4:
			BSPT D 35 A_FadeOut(0.1)
		    loop
	}
}



////////////////////////////////////////GORN
actor gore_spawner {
	+CLIENTSIDEONLY
	states{
		spawn:
			TNT1 A 0
			TNT1 A 0 A_PlaySound("gore/explode")
			TNT1 AAA 0 A_SpawnItemEx ("gore_bloodmist", random(-2,2), random(-2,2), 8, /*f*/random(-0.4,0.4) ,/*f*/random(-0.4,0.4) ,0 , random(1,360), SXF_TRANSFERTRANSLATION)
			
			//A_CustomMissile (string missiletype[, float spawnheight[, int spawnofs_horiz[, angle angle[, int aimflags[, angle pitch]]]]])
			TNT1 AAAAAAA 0 A_CustomMissile("gore_fleshbit", 25, 0, random(0,180),2,random(20,120))
			TNT1 AAAAAAA 0 A_CustomMissile("gore_fleshbit", 25, 0, random(181,360),2,random(20,120))
			
			TNT1 AAAA 0 A_CustomMissile("gib_spawner", 25, 0, random(0,180),2,random(20,120))
			TNT1 AAAA 0 A_CustomMissile("gib_spawner", 25, 0, random(181,360),2,random(20,120))
			
			//TNT1 AAAAAA 0 A_CustomMissile("gib_spawner", 25, 0, random(0,360),2,random(40,160))
			
			//TNT1 AAAAAAAA 0 A_SpawnItemEx("gore_fleshbit", 0,0,8,random(-3,3),random(-3,3),random(7,9),random(1,360))
			
			//TNT1 AAAAAA 0 A_SpawnItemEx("gib_spawner", 0,0,10,0,0,0,0)
			//
			stop
	
	}
}

actor gore_bloodmist {
	mass 0
	radius 1
	height 1
	scale 0.6
	alpha 0.5
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+CLIENTSIDEONLY
	states {
		spawn:
			TNT1 A 0
			TNT1 A 0 A_Jump(255, "gm1", "gm2","gm3", "gm4", "gm5")
		gm1:
			GRMI A 35
		gm1out:
			GRMI A 2 A_FadeOut(0.01)
			loop
		gm2:
			GRMI B 35
		gm2out:
			GRMI B 2 A_FadeOut(0.01)
			loop
		gm3:
			GRMI C 35
		gm3out:
			GRMI C 2 A_FadeOut(0.01)
			loop
		gm4:
			GRMI D 35
		gm4out:
			GRMI D 2 A_FadeOut(0.01)
			loop
		gm5:
			GRMI E 35
		gm5out:
			GRMI E 2 A_FadeOut(0.01)
			loop
			
	}

} 

actor gore_bloodmistY : gore_bloodmist {
	scale 0.65
	states {
		spawn:
			TNT1 A 0
			TNT1 A 0 A_Jump(255, "gm1", "gm2","gm3", "gm4", "gm5")
		gm1:
			GRMY A 35
		gm1out:
			GRMY A 2 A_FadeOut(0.01)
			loop
		gm2:
			GRMY B 35
		gm2out:
			GRMY B 2 A_FadeOut(0.01)
			loop
		gm3:
			GRMY C 35
		gm3out:
			GRMY C 2 A_FadeOut(0.01)
			loop
		gm4:
			GRMY D 35
		gm4out:
			GRMY D 2 A_FadeOut(0.01)
			loop
		gm5:
			GRMY E 35
		gm5out:
			GRMY E 2 A_FadeOut(0.01)
			loop		
	}
}

actor gore_bloodmist_small : gore_bloodmist{
	scale 0.18
	alpha 0.4
	states {
		spawn:
			TNT1 A 0
			TNT1 A 0 A_Jump(255, "gm1", "gm2","gm3", "gm4", "gm5")
		gm1:
			GRMI A 15
		gm1out:
			GRMI A 2 A_FadeOut(0.02)
			loop
		gm2:
			GRMI B 15
		gm2out:
			GRMI B 2 A_FadeOut(0.02)
			loop
		gm3:
			GRMI C 15
		gm3out:
			GRMI C 2 A_FadeOut(0.02)
			loop
		gm4:
			GRMI D 15
		gm4out:
			GRMI D 2 A_FadeOut(0.02)
			loop
		gm5:
			GRMI E 15
		gm5out:
			GRMI E 2 A_FadeOut(0.02)
			loop
			
	}
}

actor gore_bloodmistY_small : gore_bloodmist {
	scale 0.18
	alpha 0.4
	states {
		spawn:
			TNT1 A 0
			TNT1 A 0 A_Jump(255, "gm1", "gm2","gm3", "gm4", "gm5")
		gm1:
			GRMY A 15
		gm1out:
			GRMY A 2 A_FadeOut(0.02)
			loop
		gm2:
			GRMY B 15
		gm2out:
			GRMY B 2 A_FadeOut(0.02)
			loop
		gm3:
			GRMY C 15
		gm3out:
			GRMY C 2 A_FadeOut(0.02)
			loop
		gm4:
			GRMY D 15
		gm4out:
			GRMY D 2 A_FadeOut(0.02)
			loop
		gm5:
			GRMY E 15
		gm5out:
			GRMY E 2 A_FadeOut(0.02)
			loop
			
	}
}

actor gore_fleshbit {
	mass 1
	speed 7
	radius 2
	height 2
	scale 0.6
	gravity 0.5
	+MISSILE
	+FLOORCLIP
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+CLIENTSIDEONLY
	states{
		spawn:
			NULL A 0
			FBLD ABCD 1 A_SpawnItemEx ("blood_spray", 0, 0, 0,  random(-2,2) ,  random(-2,2) ,  random(-2,2) , random(0,360), SXF_TRANSFERTRANSLATION)
			loop
		death:
			NULL A 0 A_SpawnItemEx ("gore_floorblood", 0, 0, 0, 0 , 0 , 0 , 0, SXF_TRANSFERTRANSLATION)
			stop
	}
	
}

actor gore_fleshbitY : gore_fleshbit {
	translation "176:191=[255,215,0]:[78,66,0]", "32:47=[255,215,0]:[78,66,0]" 
}




actor gore_floorblood : floor_blood {
	scale 0.9
}


actor gib_spawner{
	+CLIENTSIDEONLY
	speed 4
	states{
		spawn:
			TNT1 A 0
			NULL A 0 A_Jump(255,"Gib1","Gib2","Gib3","Gib4","Gib5","Gib6","Gib7","Gib8")
		Gib1:
			NULL A 0 
			stop
		Gib2:
			NULL A 0  A_SpawnItemEx ("Gib2", 0, 0, 0, random(-3,3) , random(-3,3) , random(6,9) , random(1,360), SXF_TRANSFERTRANSLATION | 128)
			stop
		Gib3:
			NULL A 0  A_SpawnItemEx ("Gib3", 0, 0, 0, random(-3,3) , random(-3,3) , random(6,9) , random(1,360), SXF_TRANSFERTRANSLATION | 128)
			stop
		Gib4:
			NULL A 0  A_SpawnItemEx ("Gib4", 0, 0, 0, random(-3,3) , random(-3,3) , random(6,9) , random(1,360), SXF_TRANSFERTRANSLATION | 128)
			stop
		Gib5:
			NULL A 0  A_SpawnItemEx ("Gib5", 0, 0, 0, random(-3,3) , random(-3,3) , random(6,9) , random(1,360), SXF_TRANSFERTRANSLATION | 128)
			stop
		Gib6:
			NULL A 0  A_SpawnItemEx ("Gib6", 0, 0, 0, random(-3,3) , random(-3,3) , random(6,9) , random(1,360), SXF_TRANSFERTRANSLATION | 128)
			stop
		Gib7:
			NULL A 0  A_SpawnItemEx ("Gib7", 0, 0, 0, random(-3,3) , random(-3,3) , random(6,9) , random(1,360), SXF_TRANSFERTRANSLATION | 128)
			stop
		Gib8:
			NULL A 0  A_SpawnItemEx ("Gib8", 0, 0, 0, random(-3,3) , random(-3,3) , random(6,9) , random(1,360), SXF_TRANSFERTRANSLATION | 128)
			stop
	}
}

actor gib_spawnerY : gib_spawner{
	translation "176:191=[255,215,0]:[78,66,0]", "32:47=[255,215,0]:[78,66,0]" 
}


actor Gib1 {
	radius 4
	height 4
	mass 1
	scale 0.8
	gravity 0.7
	+MISSILE
	+FLOORCLIP
	+NOTELEPORT
	+CLIENTSIDEONLY
	states{
		spawn:
			GIB1 A 1 A_SpawnItemEx ("blood_spray", 0, 0, 0,  random(-2,2) ,  random(-2,2) ,  random(-2,2) , random(0,360), SXF_TRANSFERTRANSLATION)
			loop
		death:
			GIB1 A -1
			stop

	}
}

actor Gib2 : Gib1 {
	states{
		spawn:
			GIB2 A 1 A_SpawnItemEx ("blood_spray", 0, 0, 0,  random(-2,2) ,  random(-2,2) ,  random(-2,2) , random(0,360), SXF_TRANSFERTRANSLATION)
			loop
		death:
			GIB2 A -1
			stop
	}
}

actor Gib3 : Gib1 {
	states{
		spawn:
			GIB3 A 1 A_SpawnItemEx ("blood_spray", 0, 0, 0,  random(-2,2) ,  random(-2,2) ,  random(-2,2) , random(0,360), SXF_TRANSFERTRANSLATION)
			loop
		death:
			GIB3 A -1
			stop
	}
}

actor Gib4 : Gib1 {
	states{
		spawn:
			GIB4 A 1 A_SpawnItemEx ("blood_spray", 0, 0, 0,  random(-2,2) ,  random(-2,2) ,  random(-2,2) , random(0,360), SXF_TRANSFERTRANSLATION)
			loop
		death:
			GIB4 A -1
			stop
	}
}

actor Gib5 : Gib1 {
	states{
		spawn:
			GIB5 A 1 A_SpawnItemEx ("blood_spray", 0, 0, 0,  random(-2,2) ,  random(-2,2) ,  random(-2,2) , random(0,360), SXF_TRANSFERTRANSLATION)
			loop
		death:
			GIB5 A -1
			stop
	}
}

actor Gib6 : Gib1 {
	states{
		spawn:
			GIB6 A 1 A_SpawnItemEx ("blood_spray", 0, 0, 0,  random(-2,2) ,  random(-2,2) ,  random(-2,2) , random(0,360), SXF_TRANSFERTRANSLATION)
			loop
		death:
			GIB6 A -1
			stop
	}
}

actor Gib7 : Gib1 {
	states{
		spawn:
			GIB7 A 1 A_SpawnItemEx ("blood_spray", 0, 0, 0,  random(-2,2) ,  random(-2,2) ,  random(-2,2) , random(0,360), SXF_TRANSFERTRANSLATION)
			loop
		death:
			GIB7 A -1
			stop
	}
}

actor Gib8 : Gib1 {
	states{
		spawn:
			GIB8 A 1 A_SpawnItemEx ("blood_spray", 0, 0, 0,  random(-2,2) ,  random(-2,2) ,  random(-2,2) , random(0,360), SXF_TRANSFERTRANSLATION)
			loop
		death:
			GIB8 A -1
			stop
	}
}


//
actor gib_bloodtrail {
	mass 1
	radius 1
	height 1
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+CLIENTSIDEONLY
	scale 1
	states{
		spawn:
			BTRL ABCDABCD 1 A_SpawnItemEx ("blood_spray", 0, 0, 0,  random(-2,2) ,  random(-2,2) ,  random(-2,2) , random(0,360), SXF_TRANSFERTRANSLATION)
			stop
		/*
		trail1:
			BTRL ABCDABCD 1 
			stop
		trail2:
			BTRL CDABCDAB 1 
			stop
		trail3:
			BTRL BCDABCDA 1 
			stop
		trail4:
			BTRL ADCBADCB 1 
			stop
			*/
	}

}










