ACTOR ZTBloodDrop
{
	+CLIENTSIDEONLY
	-SOLID
	+THRUACTORS
	States
	{
	Spawn:
	FDRP A 0
	FDRP A 1 A_CheckFloor("Drip")
	Loop
	
	Drip:
	FDRP A 0
	Stop
	}
}

ACTOR FloorGibLeaver
{
	BounceType "Doom"
	BounceFactor 0.2
	WallBounceFactor 0.2
	BounceSound "gore/splat"
	Radius 2
	Height 2
	Projectile
	-NOGRAVITY
	-SOLID
	+CLIENTSIDEONLY
	+MOVEWITHSECTOR
	+MISSILE
	Decal BrutalBloodSplat
	States
	{
	Spawn:
	BRTL A 0 A_CheckCeiling("TouchCeiling")
	BRTL A 1 A_SpawnItemEx("QuakeBloodPuffSmall",0,0,0)
	BRTL A 0 A_CheckCeiling("TouchCeiling")
	BRTL B 1 A_SpawnItemEx("QuakeBloodPuffSmall",0,0,0)
	BRTL A 0 A_CheckCeiling("TouchCeiling")
	BRTL D 1 A_SpawnItemEx("QuakeBloodPuffSmall",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	Loop
	Death:
	SPGR A 0 A_Jump(255,"Ground1","Ground2","Ground3","Ground4")
	Goto Ground1
	
	Ground1:
	FGUT AAA 300
	FGUT AAAAAAAAAA 1 A_FadeOut(0.1)
	Stop
	
	Ground2:
	FGUT BBB 300
	FGUT BBBBBBBBBB 1 A_FadeOut(0.1)
	Stop
	
	Ground3:
	FGUT CCC 300
	FGUT CCCCCCCCCC 1 A_FadeOut(0.1)
	Stop
	
	Ground4:
	FGUT DDD 300
	FGUT DDDDDDDDDD 1 A_FadeOut(0.1)
	Stop
	
	// CEILING //
	TouchCeiling:
	TNT1 A 0 A_Stop
	TNT1 A 0 A_NoGravity
	TNT1 A 0 A_ChangeFlag("SPAWNCEILING",true)
	TNT1 A 0 A_Jump(255,"Ceiling1","Ceiling2")
	Goto Ceiling1
	
	Ceiling1:
	FGUT EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 30 A_SpawnItemEx("ZTBloodDrop",0,0,0)
	FGUT EEEEEEEEEE 1 A_FadeOut(0.1)
	Stop
	
	Ceiling2:
	FGUT FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 30 A_SpawnItemEx("ZTBloodDrop",0,0,0)
	FGUT FFFFFFFFFF 1 A_FadeOut(0.1)
	Stop
	
	Ceiling3:
	FGUT GGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 30 A_SpawnItemEx("ZTBloodDrop",0,0,0)
	FGUT GGGGGGGGGG 1 A_FadeOut(0.1)
	Stop
	
	}
}

ACTOR QuakeBloodPuff
{
	+NOBLOCKMAP
	+NOCLIP
	+CLIENTSIDEONLY
	-SOLID
	Gravity 0.75
	Scale 0.6
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(255,"Bloody1","Bloody2","Bloody3")
	Goto Bloody1
	
	Bloody1:
	QBLD AAAAAAAAAA 1 A_FadeOut(0.1)
	Stop
	
	Bloody2:
	QBLD BBBBBBBBBB 1 A_FadeOut(0.1)
	Stop
	
	Bloody3:
	QBLD CCCCCCCCCC 1 A_FadeOut(0.1)
	Stop
	}
}

ACTOR QuakeBloodPuffHuge : QuakeBloodPuff
{
	Scale 1.0
}

ACTOR QuakeBloodPuffMed : QuakeBloodPuff
{
	Scale 0.4
}

ACTOR QuakeBloodPuffSmall : QuakeBloodPuff
{
	Scale 0.25
}

ACTOR ZTDecalLeaver
{
	Projectile
	+NOGRAVITY
	Speed 20
	-SOLID
	+MISSILE
	+CLIENTSIDEONLY
	Decal BrutalBloodSplat
	Scale 2
	States
	{
	Spawn:
	TNT1 A 15
	Goto Death
	
	Death:
	TNT1 A 1
	Stop
	}
}

//===================================================
// SPLIT SPAWNER
//===================================================

ACTOR GibSpawn_Splitter
{
	+CLIENTSIDEONLY
	+NOBLOCKMAP
	-SOLID
	+THRUACTORS
	States
	{
	Spawn:
	TNT1 A 0
	// Play sound here
	TNT1 AA 0 A_SpawnItemEx("Giblet_Small1",random(-2,2),random(-2,2),random(-2,2),random(-10,10),random(-10,10),random(-2,2))
	TNT1 AA 0 A_SpawnItemEx("Giblet_Small2",random(-2,2),random(-2,2),random(-2,2),random(-10,10),random(-10,10),random(-2,2))
	TNT1 AA 0 A_SpawnItemEx("Giblet_Small3",random(-2,2),random(-2,2),random(-2,2),random(-10,10),random(-10,10),random(-2,2))
	Stop
	}
}

//===================================================
// SMALL BIT 1
//===================================================

ACTOR Giblet_Small1
{
	BounceType "Doom"
	BounceFactor 0.6
	WallBounceFactor 0.6
	BounceSound "gore/splat"
	Projectile
	-NOGRAVITY
	-SOLID
	+CLIENTSIDEONLY
	+MOVEWITHSECTOR
	+MISSILE
	Decal BrutalBloodSplat
	States
	{
	Spawn:
	SPGR AAAAA 1 A_SpawnItemEx("QuakeBloodPuffSmall",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	Loop
	Death:
	SPGR AAA 300
	Stop
	}
}

//===================================================
// SMALL BIT 2
//===================================================

ACTOR Giblet_Small2 : Giblet_Small1
{
	States
	{
	Spawn:
	SPGR BBBBB 1 A_SpawnItemEx("QuakeBloodPuffSmall",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	Loop
	Death:
	SPGR BBB 300
	Stop
	}
}

//===================================================
// SMALL BIT 3
//===================================================

ACTOR Giblet_Small3 : Giblet_Small1
{
	States
	{
	Spawn:
	SPGR CCCCC 1 A_SpawnItemEx("QuakeBloodPuffSmall",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	Loop
	Death:
	SPGR CCC 300
	Stop
	}
}

//===================================================
// TORSO: BASE ZOMBIE
//===================================================

ACTOR Torso_BaseZombie
{
	Gravity 0.85
	-NOGRAVITY
	+THRUACTORS
	+CLIENTSIDEONLY
	-SOLID
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(momz < 0,"StartFall")
		BZSP A 1
		Loop
		
		StartFall:
		BZSP BC 2
		Goto Falling
		
		Falling:
		BZSP C 1 A_CheckFloor("Fell")
		Loop
		
		Fell:
		BZSP D 0 A_PlaySoundEx("quake/gibsplat","Body")
		BZSP DDDDDDD 100
		BZSP DDDDDDDDDD 1 A_FadeOut(0.1)
		Stop
	}
}

//===================================================
// TORSO: VAGINA ZOMBIE
//===================================================

ACTOR Torso_VaginaZombie
{
	Gravity 0.85
	-NOGRAVITY
	+THRUACTORS
	+CLIENTSIDEONLY
	-SOLID
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(momz < 0,"StartFall")
		SPFL A 1
		Loop
		
		StartFall:
		SPFL BC 2
		Goto Falling
		
		Falling:
		SPFL C 1 A_CheckFloor("Fell")
		Loop
		
		Fell:
		SPFL D 0 A_PlaySoundEx("quake/gibsplat","Body")
		SPFL DDDDDDD 100
		SPFL DDDDDDDDDD 1 A_FadeOut(0.1)
		Stop
	}
}

// WICKED EFFECTS
ACTOR HeadChunkSpawner
{
	+NOBLOCKMAP
	+CLIENTSIDEONLY
	+NOGRAVITY
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("skull/hit")
	TNT1 A 0 A_SpawnItemEx("HeadshotBloodExplode",0,0,0)
	TNT1 AA 0 A_CustomMissile ("Head_Jaw", 0, 0, random(0,359), 2, random(40,50))
	TNT1 AA 0 A_CustomMissile ("Head_Eye", 0, 0, random(0,359), 2, random(40,50))
	Stop
	}
}

ACTOR DecapChunkSpawner : HeadChunkSpawner
{
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("skull/hit")
	TNT1 A 0 A_SpawnItemEx("HeadshotBloodExplode",0,0,0)
	TNT1 A 0 A_CustomMissile ("Guts_ZombieHeadAlways", 10, 0, 270, 2, random(40,90))
	Stop
	}
}

ACTOR GibChunkSpawner
{
	+NOBLOCKMAP
	+CLIENTSIDEONLY
	+NOGRAVITY
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySoundEx("gore/juicier","Body")
	TNT1 A 0 A_SpawnItemEx("HeadshotBloodExplode",0,0,0)
	TNT1 AAA 0 A_CustomMissile ("Head_Jaw", 0, 0, random(0,359), 2, random(40,50))
	TNT1 AA 0 A_CustomMissile ("Head_Eye", 0, 0, random(0,359), 2, random(40,50))
	TNT1 AA 0 A_CustomMissile ("Guts_Intestines", 0, 0, random(0,359), 2, random(40,50))
	TNT1 A 0 A_CustomMissile ("Guts_Ribcage", 0, 0, random(0,359), 2, random(40,50))
	TNT1 A 0 A_CustomMissile ("Guts_ZombieArm", 0, 0, 90, 2, random(40,50))
	TNT1 A 0 A_CustomMissile ("Guts_ZombieArm", 0, 0, 270, 2, random(40,50))
	TNT1 A 0 A_CustomMissile ("Guts_ZombieHead", 10, 0, 270, 2, random(40,90))
	TNT1 AAAAAA 0 A_SpawnItemEx("FloorGibLeaver",random(-3,3),random(-3,3),random(-3,3),random(-10,10),random(-10,10),random(5,25))
	Stop
	}
}

ACTOR GibChunkSpawner_Chain
{
	+NOBLOCKMAP
	+CLIENTSIDEONLY
	+NOGRAVITY
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySoundEx("gore/juicier","Body")
	TNT1 A 0 A_SpawnItemEx("HeadshotBloodExplode",0,0,0)
	TNT1 AAA 0 A_CustomMissile ("Head_Jaw", 0, 0, random(0,359), 2, random(40,50))
	TNT1 AA 0 A_CustomMissile ("Head_Eye", 0, 0, random(0,359), 2, random(40,50))
	TNT1 AA 0 A_CustomMissile ("Guts_Intestines", 0, 0, random(0,359), 2, random(40,50))
	TNT1 A 0 A_CustomMissile ("Guts_Ribcage", 0, 0, random(0,359), 2, random(40,50))
	TNT1 A 0 A_CustomMissile ("Guts_ZombieArm", 0, 0, 90, 2, random(40,50))
	TNT1 A 0 A_CustomMissile ("Guts_ZombieArm", 0, 0, 270, 2, random(40,50))
	TNT1 A 0 A_CustomMissile ("Guts_ChainHead", 10, 0, 270, 2, random(40,90))
	TNT1 AAAAAA 0 A_SpawnItemEx("FloorGibLeaver",random(-3,3),random(-3,3),random(-3,3),random(-10,10),random(-10,10),random(5,25))
	Stop
	}
}

ACTOR GibChunkSpawner_Facemaw
{
	+NOBLOCKMAP
	+CLIENTSIDEONLY
	+NOGRAVITY
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 AAA 0 A_CustomMissile ("Head_JawBone", 0, 0, random(0,359), 2, random(40,50))
	TNT1 A 0 A_CustomMissile ("Guts_FacemawTorso", 0, 0, random(0,359), 2, 90)
	TNT1 A 0 A_CustomMissile ("Guts_FacemawArm", 0, 0, 90, 2, random(40,60))
	TNT1 A 0 A_CustomMissile ("Guts_FacemawArm", 0, 0, 270, 2, random(40,60))
	TNT1 A 0 A_CustomMissile ("Guts_FacemawLeg", 0, 0, 90, 2, random(10,60))
	TNT1 A 0 A_CustomMissile ("Guts_FacemawLeg", 0, 0, 270, 2, random(10,60))
	TNT1 A 0 A_CustomMissile ("Guts_FacemawLeg", 0, 0, 90, 2, random(-20,20))
	TNT1 A 0 A_CustomMissile ("Guts_FacemawLeg", 0, 0, 270, 2, random(-20,20))
	TNT1 A 0 A_CustomMissile ("Guts_FacemawHead", 10, 0, 270, 2, random(40,90))
	//TNT1 AAAAAA 0 A_SpawnItemEx("FloorGibLeaver",random(-3,3),random(-3,3),random(-3,3),random(-10,10),random(-10,10),random(5,25))
	Stop
	}
}

ACTOR GibChunkSpawner_Doggy
{
	+NOBLOCKMAP
	+CLIENTSIDEONLY
	+NOGRAVITY
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySoundEx("gore/juicier","Body")
	TNT1 A 0 A_SpawnItemEx("HeadshotBloodExplode",0,0,0)
	TNT1 AAA 0 A_CustomMissile ("Head_Jaw", 0, 0, random(0,359), 2, random(40,50))
	TNT1 AA 0 A_CustomMissile ("Head_Eye", 0, 0, random(0,359), 2, random(40,50))
	TNT1 AA 0 A_CustomMissile ("Guts_Intestines", 0, 0, random(0,359), 2, random(40,50))
	TNT1 A 0 A_CustomMissile ("Guts_Ribcage", 0, 0, random(0,359), 2, random(40,50))
	//TNT1 A 0 A_CustomMissile ("Guts_ZombieArm", 0, 0, 90, 2, random(40,50))
	//TNT1 A 0 A_CustomMissile ("Guts_ZombieArm", 0, 0, 270, 2, random(40,50))
	TNT1 A 0 A_CustomMissile ("Guts_DogHead", 10, 0, 270, 2, random(40,90))
	TNT1 AAAAAA 0 A_SpawnItemEx("FloorGibLeaver",random(-3,3),random(-3,3),random(-3,3),random(-10,10),random(-10,10),random(5,25))
	Stop
	}
}

ACTOR HeadshotBloodExplode
{
	+NOBLOCKMAP
	+NOGRAVITY
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	BLBD ABCDE 1
	stop
	}
}

ACTOR Head_Eye : PlayerChunk
{
  Radius 2
  Height 4
  Gravity 0.6
  +NOBLOCKMAP
  +NOTELEPORT
  +CANNOTPUSH
  +SKYEXPLODE
  +THRUACTORS
  +NOBLOCKMONST
  -NOGRAVITY
  +MISSILE
  Speed 10
  Decal BrutalBloodSplat
  +CLIENTSIDEONLY
  Scale 0.85
  States
  {
  Spawn:
    HED1 A 0
	HED1 A 0 //A_ScaleVelocity(random(0.25,0.75))
	HED1 A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BRIB E 1 A_CheckFloor("Hit")
	HED1 A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BRIB E 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BRIB  F 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	BRIB  F 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BRIB  G 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BRIB  G 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BRIB  H 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	BRIB  H 1 A_CheckFloor("Hit")
    Goto Spawn+2
  Death:
  Hit:
    FBLD E 0 A_PlaySound("gore/splat")
    BRIN C 200 A_Stop
	BRIN CCCCCCCCCC 2 A_FadeOut(0.1)
    Stop
  }
}

ACTOR Head_Jaw : Head_Eye
{
  Scale 0.75
  States
  {
  Spawn:
    HED1 A 0
	HED1 A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BRIB A 1 A_CheckFloor("Hit")
	HED1 A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BRIB A 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BRIB  B 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	BRIB  B 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BRIB  C 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BRIB  C 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BRIB  D 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	BRIB  D 1 A_CheckFloor("Hit")
    Goto Spawn+1
  Death:
  Hit:
    FBLD E 0 A_PlaySound("gore/splat")
    BRIB Q 200 A_Stop
	BRIB QQQQQQQQQQ 2 A_FadeOut(0.1)
    Stop
  }
}

ACTOR Head_JawBone : Head_Eye
{
  Scale 0.75
  States
  {
  Spawn:
    HED1 A 0
	BRIB AABBCCDD 1 A_CheckFloor("Hit")
    Goto Spawn+1
  Death:
  Hit:
    //FBLD E 0 A_PlaySound("gore/splat")
    BRIB Q 200 A_Stop
	BRIB QQQQQQQQQQ 2 A_FadeOut(0.1)
    Stop
  }
}

ACTOR Guts_Intestines : Head_Eye
{
  Scale 0.85
  Speed 8
  States
  {
  Spawn:
    HED1 A 0
	HED1 A 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	XME4 A 1 A_CheckFloor("Hit")
	HED1 A 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	XME4 A 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	XME4  B 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	XME4  B 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	XME4  C 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	XME4  C 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	XME4  D 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	XME4  D 1 A_CheckFloor("Hit")
    Goto Spawn+1
  Death:
  Hit:
    FBLD E 0 A_PlaySound("gore/splat")
    XME4 E 200 A_ScaleVelocity(0.1)
	XME4 EEEEEEEEEE 2 A_FadeOut(0.1)
    Stop
  }
}

ACTOR Guts_Ribcage : Head_Eye
{
  Scale 0.85
  Speed 4
  States
  {
  Spawn:
    HED1 A 0
	HED1 A 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	XME5 A 1 A_CheckFloor("Hit")
	HED1 A 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	XME5 A 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	XME5 B 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	XME5  B 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	XME5  C 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	XME5  C 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	XME5 D 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	XME5  D 1 A_CheckFloor("Hit")
    Goto Spawn+1
  Death:
  Hit:
    FBLD E 0 A_PlaySound("gore/splat")
    XME5 E 200 A_ScaleVelocity(0.1)
	XME5 EEEEEEEEEE 2 A_FadeOut(0.1)
    Stop
  }
}

ACTOR Guts_ZombieArm : Head_Eye
{
  Radius 10
  Height 16
  Scale 0.85
  Speed 5
  States
  {
  Spawn:
    HED1 A 0
	HED1 A 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	ZARM A 1 A_CheckFloor("Hit")
	HED1 A 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	ZARM A 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	ZARM B 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	ZARM B 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	ZARM C 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	ZARM C 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	ZARM D 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	ZARM D 1 A_CheckFloor("Hit")

	HED1 A 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	ZARM E 1 A_CheckFloor("Hit")
	HED1 A 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	ZARM E 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	ZARM F 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	ZARM F 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	ZARM G 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	ZARM G 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	ZARM H 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	ZARM H 1 A_CheckFloor("Hit")

	HED1 C 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	ZARM I 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	ZARM I 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	ZARM J 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailMed",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	ZARM J 1 A_CheckFloor("Hit")

    Goto Spawn+1
  Death:
  Hit:
    FBLD E 0 A_PlaySound("gore/splat")
	FBLD E 0 A_Jump(255,"Rest1","Rest2")
  Rest1:
    ZARM K 200 A_ScaleVelocity(0.1)
	ZARM KKKKKKKKKK 2 A_FadeOut(0.1)
    Stop
  Rest2:
    ZARM L 200 A_ScaleVelocity(0.1)
	ZARM LLLLLLLLLL 2 A_FadeOut(0.1)
    Stop
  }
}

// Zombie head
ACTOR Guts_ZombieHead : Head_Eye
{
  Radius 7
  Height 16
  Speed 8
  States
  {
  Spawn:
    HED1 A 0
	HED1 A 0 A_Jump(64,"Vanish")
	HED1 A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	ZHED A 1 A_CheckFloor("Hit")
	HED1 A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	ZHED A 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	ZHED B 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	ZHED B 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	ZHED C 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	ZHED C 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	ZHED D 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	ZHED D 1 A_CheckFloor("Hit")

	HED1 A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	ZHED E 1 A_CheckFloor("Hit")
	HED1 A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	ZHED E 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	ZHED F 1 A_CheckFloor("Hit")
	HED1 B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	ZHED F 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	ZHED G 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	ZHED G 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	ZHED H 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	ZHED H 1 A_CheckFloor("Hit")

	HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	ZHED I 1 A_CheckFloor("Hit")
	HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	ZHED I 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	ZHED J 1 A_CheckFloor("Hit")
	HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	ZHED J 1 A_CheckFloor("Hit")

    Goto Spawn+2
  Death:
  Hit:
    FBLD E 0 A_PlaySound("gore/splat")
	FBLD E 0 A_Jump(255,"Rest1","Rest2")
  Rest1:
    ZHED D 200 A_ScaleVelocity(0.1)
	ZHED DDDDDDDDDD 2 A_FadeOut(0.1)
    Stop
  Rest2:
    ZHED I 200 A_ScaleVelocity(0.1)
	ZHED IIIIIIIIII 2 A_FadeOut(0.1)
    Stop
  Vanish:
	TNT1 A 0
	Stop
  }
}

// Head that fades, I guess
ACTOR Guts_ZombieHeadAlways : Guts_ZombieHead
{
	Gravity 0.8
	Speed 6
	States
	{
		Spawn:
		HED1 A 0
		HED1 A 0
		HED1 A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		ZHED A 1 A_CheckFloor("Hit")
		HED1 A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		ZHED A 1 A_CheckFloor("Hit")
		HED1 B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		ZHED B 1 A_CheckFloor("Hit")
		HED1 B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
		ZHED B 1 A_CheckFloor("Hit")
		HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		ZHED C 1 A_CheckFloor("Hit")
		HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		ZHED C 1 A_CheckFloor("Hit")
		HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		ZHED D 1 A_CheckFloor("Hit")
		HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
		ZHED D 1 A_CheckFloor("Hit")

		HED1 A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		ZHED E 1 A_CheckFloor("Hit")
		HED1 A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		ZHED E 1 A_CheckFloor("Hit")
		HED1 B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		ZHED F 1 A_CheckFloor("Hit")
		HED1 B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
		ZHED F 1 A_CheckFloor("Hit")
		HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		ZHED G 1 A_CheckFloor("Hit")
		HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		ZHED G 1 A_CheckFloor("Hit")
		HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		ZHED H 1 A_CheckFloor("Hit")
		HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
		ZHED H 1 A_CheckFloor("Hit")

		HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		ZHED I 1 A_CheckFloor("Hit")
		HED1 C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		ZHED I 1 A_CheckFloor("Hit")
		HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		ZHED J 1 A_CheckFloor("Hit")
		HED1 D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
		BLUD B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
		ZHED J 1 A_CheckFloor("Hit")

		Goto Spawn+2
	}
}

// ---- FACEMAW HEAD -------------------------------------------------
ACTOR Guts_FacemawHead : Guts_ZombieHead
{
	Gravity 0.8
	Speed 6
	States
	{
		Spawn:
			MROT A 0
			MROT A 0
			MROT ABCDEFGHIJKL 2 A_CheckFloor("Hit")
			Goto Spawn+2
		
		Rest1:
			MROT F 200 A_ScaleVelocity(0.1)
			MROT FFFFFFFFFF 2 A_FadeOut(0.1)
			Stop
		
		Rest2:
			MROT L 200 A_ScaleVelocity(0.1)
			MROT LLLLLLLLLL 2 A_FadeOut(0.1)
			Stop
	}
}

ACTOR Guts_FacemawArm : Guts_ZombieHead
{
	Gravity 0.8
	Speed 5
	States
	{
		Spawn:
			AROT A 0
			AROT A 0
			AROT ABCDEFGHIJKL 2 A_CheckFloor("Hit")
			Goto Spawn+2
		
		Rest1:
			AROT F 200 A_ScaleVelocity(0.1)
			AROT FFFFFFFFFF 2 A_FadeOut(0.1)
			Stop
		
		Rest2:
			AROT L 200 A_ScaleVelocity(0.1)
			AROT LLLLLLLLLL 2 A_FadeOut(0.1)
			Stop
	}
}

ACTOR Guts_FacemawLeg : Guts_ZombieHead
{
	Gravity 0.8
	Speed 5
	States
	{
		Spawn:
			LROT A 0
			LROT A 0
			LROT ABCDEFGHIJKL 2 A_CheckFloor("Hit")
			Goto Spawn+2
		
		Rest1:
			LROT F 200 A_ScaleVelocity(0.1)
			LROT FFFFFFFFFF 2 A_FadeOut(0.1)
			Stop
		
		Rest2:
			LROT L 200 A_ScaleVelocity(0.1)
			LROT LLLLLLLLLL 2 A_FadeOut(0.1)
			Stop
	}
}

ACTOR Guts_FacemawTorso : Guts_ZombieHead
{
	Gravity 0.8
	Speed 4
	Radius 12
	Height 16
	States
	{
		Spawn:
			TROT A 0
			TROT A 0
			TROT ABCDEFGHIJKL 2 A_CheckFloor("Hit")
			Goto Spawn+2
		
		Rest1:
			TROT M 200 A_ScaleVelocity(0.1)
			TROT MMMMMMMMMM 2 A_FadeOut(0.1)
			Stop
		
		Rest2:
			TROT N 200 A_ScaleVelocity(0.1)
			TROT NNNNNNNNNN 2 A_FadeOut(0.1)
			Stop
	}
}

ACTOR BloodTrailSmall
{
	+NOBLOCKMAP
	+CLIENTSIDEONLY
	Gravity 0.8
	Scale 0.15
	Decal BrutalBloodSplat
	Renderstyle Translucent
	Alpha 0.8
	States
	{
	Spawn:
	BLER GHIJ 2 A_FadeOut(0.2)
	stop
	}
}

ACTOR BloodTrailMed : BloodTrailSmall
{
	Scale 0.25
}

//===========================================================
//
// DOGS 
//
//===========================================================

ACTOR Guts_DogHead : Head_Eye
{
  Scale 1.0
  States
  {
  Spawn:
    DROT A 0
	DROT A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT A 1 A_CheckFloor("Hit")
	DROT A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT A 1 A_CheckFloor("Hit")
	
	DROT B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT B 1 A_CheckFloor("Hit")
	DROT B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	DROT B 1 A_CheckFloor("Hit")
	
	DROT C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT C 1 A_CheckFloor("Hit")
	DROT C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT C 1 A_CheckFloor("Hit")
	
	DROT D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT D 1 A_CheckFloor("Hit")
	DROT D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT D 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	DROT D 1 A_CheckFloor("Hit")
	
	DROT E 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT E 1 A_CheckFloor("Hit")
	DROT E 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT E 1 A_CheckFloor("Hit")
	
	DROT F 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT F 1 A_CheckFloor("Hit")
	DROT F 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT F 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	DROT F 1 A_CheckFloor("Hit")
	
	DROT G 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT G 1 A_CheckFloor("Hit")
	DROT G 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT G 1 A_CheckFloor("Hit")
	
	DROT H 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT H 1 A_CheckFloor("Hit")
	DROT H 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT H 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	DROT H 1 A_CheckFloor("Hit")
	
	DROT I 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT I 1 A_CheckFloor("Hit")
	DROT I 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT I 1 A_CheckFloor("Hit")
	
	DROT J 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT J 1 A_CheckFloor("Hit")
	DROT J 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT J 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	DROT J 1 A_CheckFloor("Hit")
	
	DROT K 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT K 1 A_CheckFloor("Hit")
	DROT K 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT K 1 A_CheckFloor("Hit")
	
	DROT L 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT L 1 A_CheckFloor("Hit")
	DROT L 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	DROT L 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	DROT L 1 A_CheckFloor("Hit")
    Goto Spawn+1
  Death:
  Hit:
    DROT C 0 A_PlaySound("gore/splat")
    DROT C 200 A_Stop
	DROT CCCCCCCCCC 2 A_FadeOut(0.1)
    Stop
  }
}

//===========================================================
//
// EVISCERATORS
//
//===========================================================

ACTOR Guts_ChainHead : Head_Eye
{
  Scale 1.0
  States
  {
  Spawn:
    EROT A 0
	EROT A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT A 1 A_CheckFloor("Hit")
	EROT A 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT A 1 A_CheckFloor("Hit")
	
	EROT B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT B 1 A_CheckFloor("Hit")
	EROT B 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT B 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	EROT B 1 A_CheckFloor("Hit")
	
	EROT C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT C 1 A_CheckFloor("Hit")
	EROT C 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT C 1 A_CheckFloor("Hit")
	
	EROT D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT D 1 A_CheckFloor("Hit")
	EROT D 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT D 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	EROT D 1 A_CheckFloor("Hit")
	
	EROT E 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT E 1 A_CheckFloor("Hit")
	EROT E 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT E 1 A_CheckFloor("Hit")
	
	EROT F 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT F 1 A_CheckFloor("Hit")
	EROT F 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT F 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	EROT F 1 A_CheckFloor("Hit")
	
	EROT G 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT G 1 A_CheckFloor("Hit")
	EROT G 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT G 1 A_CheckFloor("Hit")
	
	EROT H 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT H 1 A_CheckFloor("Hit")
	EROT H 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT H 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	EROT H 1 A_CheckFloor("Hit")
	
	EROT I 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT I 1 A_CheckFloor("Hit")
	EROT I 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT I 1 A_CheckFloor("Hit")
	
	EROT J 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT J 1 A_CheckFloor("Hit")
	EROT J 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT J 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	EROT J 1 A_CheckFloor("Hit")
	
	EROT K 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT K 1 A_CheckFloor("Hit")
	EROT K 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT K 1 A_CheckFloor("Hit")
	
	EROT L 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT L 1 A_CheckFloor("Hit")
	EROT L 0 A_SpawnItemEx("BloodTrailSmall",0,0,0)
	EROT L 0 A_SpawnItemEx("ZTDecalLeaver",0,0,0,momx*1.1)
	EROT L 1 A_CheckFloor("Hit")
    Goto Spawn+1
  Death:
  Hit:
    EROT L 0 A_PlaySound("gore/splat")
    EROT L 200 A_Stop
	EROT LLLLLLLLLL 2 A_FadeOut(0.1)
    Stop
  }
}