//-----------------------------------------------------------------------------------------------------------------------
//	Blood
//	I don't actually remember where I have taken it from, but I do think it is from Post's "True Action"
//-----------------------------------------------------------------------------------------------------------------------

Actor Satanic_Blood
{
	Speed 4
	Height 2
	Radius 4
	Mass 1
	Damage 0
	
	RenderStyle NORMAL 
	Scale 1.1
	
	PROJECTILE
	-NOGRAVITY 
	+NOCLIP
      
	States
	{
		Spawn:
				BLUD B 2 A_CustomMissile("Satanic_SmallBlood",4,0,25,0)
				BLUD C 2 A_CustomMissile("Satanic_SmallBlood",5,0,45,0)
				BLUD B 2 A_CustomMissile("Satanic_SmallBlood",4,0,90,0)
				BLUD C 2 A_CustomMissile("Satanic_SmallBlood",5,0,169,0)
			Goto Death      
		Death: 
				NULL A 1
			Stop
	}
}
     
Actor Satanic_SmallBlood
{
	Speed 0
	Height 2
	Radius 4
	Mass 2
	Damage 0
	
	RenderStyle Normal 
	Scale 1.1
	
	PROJECTILE
	-NOGRAVITY  
	+NOCLIP   
      
	States
	{
		Spawn:
				BLOD ABC 1 A_CustomMissile("Satanic_BloodTrail",0,0,0,0)
        Goto Death      
		
		Death: 
				BLUD A 16
			Stop
	}
}

Actor Satanic_BloodTrail
{
	Speed 0
	Height 2
	Radius 4
	Mass 2
	Damage 0
	
	RenderStyle NORMAL 
	
	PROJECTILE
	-NOGRAVITY  
	+NOCLIP   

	States
	{
		Spawn:
				BLOD ABC 1 
			Goto Death      
			
		Death: 
				BLUD A 16
			Stop
	}
}

// NEW BLOOD SYSTEM FOR SATANIC REDUX //

// RED BLOOD - For former humans, imps, anything that sprays the red stuff. //

ACTOR SRBlood : Blood replaces Blood
{
   States
   {
      Spawn:
         BLUD C 6 A_PlaySound("bloodsplat")
         BLUD B 6 A_SpawnDebris("SRAerialBlood", 1)
         BLUD A 6
         Stop
   }
}

ACTOR SRAerialBlood
{
	+CORPSE
	+NOTELEPORT
	+NOBLOCKMAP
	Scale 0.75
	Health 1
	Radius 8
	Height 1
	Mass 1
	States
	{
	Spawn:
		FBLD A 1 A_SpawnItem("SRAerialBloodTrail", 0, 0, 0, 1)
		FBLD A 1 
		FBLD B 1 A_SpawnItem("SRAerialBloodTrail", 0, 0, 0, 1)
		FBLD B 1
		FBLD C 1 A_SpawnItem("SRAerialBloodTrail", 0, 0, 0, 1)
		FBLD C 1
		FBLD D 1 A_SpawnItem("SRAerialBloodTrail", 0, 0, 0, 1)
		FBLD D 1
		Loop
	Crash:
		TNT1 A 0 A_SpawnItem("SRBloodSpot", 0, 0, 0, 1)
		Stop
	}
}

ACTOR SRBloodSpot
{
	+NOTELEPORT
	-NOBLOCKMAP
	Radius 12
	Height 2
	Mass 1
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("bloodsplat")
		TNT1 A 0 A_Jump(256,"A","B","C")
	A:
		BSPT A 1050
	FadeOut:
		BSPT A 1 A_FadeOut(0.1,1)
		Loop
		
	B:	
		BSPT B 1050
	FadeOut:
		BSPT B 1 A_FadeOut(0.1,1)
		Loop
	C: 
		BSPT C 1050
	FadeOut:
		BSPT C 1 A_FadeOut(0.1,1)
		Loop
	}
}

ACTOR SRAerialBloodTrail
{
   +LOWGRAVITY
   +NOTELEPORT
   +NOBLOCKMAP

   Scale 0.70
   Mass 1

   States
   {
      Spawn:
         BTRL A 3
         BTRL B 3
         BTRL C 3
         BTRL D 3
         Stop
   }
}

ACTOR SRBloodFountain
{
   States
   {
      Spawn:
         TNT1 A 0
         FBLD A 1 A_SpawnDebris("SRAerialBlood", 1)
         FBLD A 1 
         FBLD B 1 A_SpawnDebris("SRAerialBlood", 1)
         FBLD B 1
         FBLD C 1 A_SpawnDebris("SRAerialBlood", 1)
         FBLD C 1
         FBLD D 1 A_SpawnDebris("SRAerialBlood", 1)
         FBLD D 1
         TNT1 A 0 A_Jump(128, 3, 5, 7)
         FBLD A 1 A_SpawnDebris("SRAerialBlood", 1)
         FBLD A 1
         Stop
         FBLD B 1 A_SpawnDebris("SRAerialBlood", 1)
         FBLD B 1
         Stop
         FBLD C 1 A_SpawnDebris("SRAerialBlood", 1)
         FBLD C 1
         Stop
         FBLD D 1 A_SpawnDebris("SRAerialBlood", 1)
         FBLD D 1
         Stop
   }
}

ACTOR SRGibs
{
   +CORPSE
   +NOTELEPORT

   Health 3
   Radius 1
   Height 1
   Mass 2
   Scale 0.5

   States
   {
   Spawn:
         GIBX A 1 A_Jump(256, "GibXAnimation","GibYAnimation","GibZAnimation")
      GibXAnimation:
         GIBX ABCD 2 A_SpawnDebris("SRAerialBlood", 1)
         GIBX ABCD 2
         TNT1 A 0 A_PlaySound("gibsplat")
         GIBX A 1050
      FadeOut:
		 GIBX A 1 A_FadeOut(0.1,1)
		 Loop
	  GibYAnimation:
         GIBY ABCD 2 A_SpawnDebris("SRAerialBlood", 1)
         GIBY ABCD 2
         TNT1 A 0 A_PlaySound("gibsplat")
         GIBY A 1050
      FadeOut:
		 GIBY A 1 A_FadeOut(0.1,1)
		 Loop
      GibZAnimation:
         GIBZ A 1 A_Jump(128, 3)
         GIBZ A 4 A_SpawnDebris("SRAerialBlood", 1)
         GIBZ A 1050
      FadeOut:
		 GIBZ A 1 A_FadeOut(0.1,1)
		 Loop
         GIBZ B 4 A_SpawnDebris("SRAerialBlood", 1)
         GIBZ B 1050
      FadeOut:
		 GIBZ B 1 A_FadeOut(0.1,1)
		 Loop
   }
}

ACTOR SRGibGenerator
{
   States
   {
      Spawn:
         TNT1 A 0 A_Jump(85, "LowAmount")
         TNT1 A 1 A_SpawnDebris("SRGibs", 1)
      LowAmount:
         TNT1 A 1 A_SpawnDebris("SRGibs", 1)
         Stop
   }
}

// GREYSCALE BLOOD - For Cacos, Barons, anything that doesn't have red blood. //

ACTOR SRGreyBlood : SRBlood
{
	Translation "168:191=96:111"
	States
   {
      Spawn:
         BLUD C 6 A_PlaySound("bloodsplat")
         BLUD B 6 A_SpawnDebris("SRAerialGreyBlood", 1)
         BLUD A 6
         Stop
   }
}

ACTOR SRAerialGreyBlood : SRAerialBlood
{
	Translation "168:191=96:111"
	States
	{
	Spawn:
		FBLD A 1 A_SpawnItem("SRAerialGreyBloodTrail", 0, 0, 0, 1)
		FBLD A 1 
		FBLD B 1 A_SpawnItem("SRAerialGreyBloodTrail", 0, 0, 0, 1)
		FBLD B 1
		FBLD C 1 A_SpawnItem("SRAerialGreyBloodTrail", 0, 0, 0, 1)
		FBLD C 1
		FBLD D 1 A_SpawnItem("SRAerialGreyBloodTrail", 0, 0, 0, 1)
		FBLD D 1
		Loop
	Crash:
		TNT1 A 0 A_SpawnItem("SRGreyBloodSpot", 0, 0, 0, 1)
		Stop
	}
}

ACTOR SRGreyBloodSpot : SRBloodSpot
{
	Translation "168:191=96:111"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("bloodsplat")
		TNT1 A 0 A_Jump(256,"A","B","C")
	A:
		BSPT A 1050
	FadeOut:
		BSPT A 1 A_FadeOut(0.1,1)
		Loop
		
	B:	
		BSPT B 1050
	FadeOut:
		BSPT B 1 A_FadeOut(0.1,1)
		Loop
	C: 
		BSPT C 1050
	FadeOut:
		BSPT C 1 A_FadeOut(0.1,1)
		Loop
	}
}

ACTOR SRAerialGreyBloodTrail : SRAerialBloodTrail
{
   Translation "168:191=96:111"
   States
   {
      Spawn:
         BTRL A 3
         BTRL B 3
         BTRL C 3
         BTRL D 3
         Stop
   }
}

ACTOR SRGreyBloodFountain : SRBloodFountain
{
	Translation "168:191=96:111"
   States
   {
      Spawn:
         TNT1 A 0
         FBLD A 1 A_SpawnDebris("SRAerialGreyBlood", 1)
         FBLD A 1 
         FBLD B 1 A_SpawnDebris("SRAerialGreyBlood", 1)
         FBLD B 1
         FBLD C 1 A_SpawnDebris("SRAerialGreyBlood", 1)
         FBLD C 1
         FBLD D 1 A_SpawnDebris("SRAerialGreyBlood", 1)
         FBLD D 1
         TNT1 A 0 A_Jump(128, 3, 5, 7)
         FBLD A 1 A_SpawnDebris("SRAerialGreyBlood", 1)
         FBLD A 1
         Stop
         FBLD B 1 A_SpawnDebris("SRAerialGreyBlood", 1)
         FBLD B 1
         Stop
         FBLD C 1 A_SpawnDebris("SRAerialBlood", 1)
         FBLD C 1
         Stop
         FBLD D 1 A_SpawnDebris("SRAerialGreyBlood", 1)
         FBLD D 1
         Stop
   }
}

ACTOR SRGreyGibs : SRGibs
{
	Translation "168:191=96:111"
   States
   {
      Spawn:
         GIBX A 1 A_Jump(256, "GibXAnimation","GibYAnimation","GibZAnimation")
      GibXAnimation:
         GIBX ABCD 2 A_SpawnDebris("SRAerialBlood", 1)
         GIBX ABCD 2
         TNT1 A 0 A_PlaySound("gibsplat")
         GIBX A 1050
      FadeOut:
		 GIBX A 1 A_FadeOut(0.1,1)
		 Loop
	  GibYAnimation:
         GIBY ABCD 2 A_SpawnDebris("SRAerialBlood", 1)
         GIBY ABCD 2
         TNT1 A 0 A_PlaySound("gibsplat")
         GIBY A 1050
      FadeOut:
		 GIBY A 1 A_FadeOut(0.1,1)
		 Loop
      GibZAnimation:
         GIBZ A 1 A_Jump(128, 3)
         GIBZ A 4 A_SpawnDebris("SRAerialBlood", 1)
         GIBZ A 1050
      FadeOut:
		 GIBZ A 1 A_FadeOut(0.1,1)
		 Loop
         GIBZ B 4 A_SpawnDebris("SRAerialBlood", 1)
         GIBZ B 1050
      FadeOut:
		 GIBZ B 1 A_FadeOut(0.1,1)
		 Loop
   }
}

ACTOR SRGreyGibGenerator : SRGibGenerator
{
   States
   {
      Spawn:
         TNT1 A 0 A_Jump(85, "LowAmount")
         TNT1 A 1 A_SpawnDebris("SRGreyGibs", 1)
      LowAmount:
         TNT1 A 1 A_SpawnDebris("SRGreyGibs", 1)
         Stop
   }
}