
//	RECOMBINER		TOKEN

ACTOR removeingredient : inventory {Inventory.MaxAmount 1}

/////////////
//					CHEMICALS
////////////


ACTOR EmptyVial : inventory 30018
{
	scale 0.3
	+NOBLOOD
	+cannotpush
	Height 1
	radius 3
  Inventory.PickupMessage "$GOTVIAL"
  Inventory.amount 1
  Inventory.MaxAmount 10
  Inventory.Pickupsound "GLVIALPK"
  tag"empty vial"
  +thruactors
  +ROLLSPRITE
  +ROLLCENTER
  +FORCEXYBILLBOARD
  States
  {
  Spawn:
	TNT1 A 0
	"####" "#" 0 A_SetRoll(randompick(0,90,180,270))
	VIAL EE 1 a_jumpifinventory("removeingredient",1,"Disappear")
	"####" "#" 0 a_changeflag("thruactors",0)
Stay:
	TNT1 A 0 A_checkproximity("bottlebasic", "basicbloodspot", 30, 1)
	TNT1 A 0 A_checkproximity("bottleacid", "acidbloodspot", 30, 1)
	TNT1 A 0 A_checkproximity("bottleneutral", "neutralbonemarrow", 30, 1)
	TNT1 A 0 A_checkproximity("bottlealpha", "alphabloodspot", 30, 1)
	
    VIAL E 1 a_jumpifinventory("removeingredient",1,"Disappear")
    Loop
	
	bottlebasic:
	VIAL E 0 A_radiusgive("removeingredient",50, RGF_NOSIGHT | RGF_objects , 1, "basicbloodspot", "none", 0, 1)
	TNT1 A 0
	Stop
	
	bottleacid:
	VIAL E 0 A_radiusgive("removeingredient",50, RGF_NOSIGHT | RGF_objects , 1, "acidbloodspot", "none", 0, 1)
	TNT1 A 0
	Stop
	
	bottleneutral:
	VIAL E 0 A_radiusgive("removeingredient",50, RGF_NOSIGHT | RGF_objects , 1, "neutralbonemarrow", "none", 0, 1)
	TNT1 A 0
	Stop
	
	bottlealpha:
	VIAL E 0 A_radiusgive("removeingredient",50, RGF_NOSIGHT | RGF_objects , 1, "alphabloodspot", "none", 0, 1)
	TNT1 A 0
	Stop
	
	Disappear:
	TNT1 A 0
	Stop
	
  }
}

////////////////////////////////////// ACID
Actor AcidFilling
{
scale 0.3
+THRUACTORS
+FORCEXYBILLBOARD
States
{
	Spawn:
		VIAL E 15
		AVIA ABC 15 a_startsound("slime",999,0,0.5)
		TNT1 A 0 a_startsound("slime",999,0,0.5)
		TNT1 A 0 A_spawnitemex("acidvial",0,0)
		stop
		}
}


ACTOR AcidVial : ammo 30019
{
	scale 0.3
	+NOBLOOD
	+cannotpush
	Height 1
	radius 3

  Inventory.PickupMessage "$GOTACID"
  iNVENTORY.AMOUNT 1
  Inventory.MaxAmount 5
  Inventory.Pickupsound "GLVIALPK"
   tag"acid solution"
   +THRUACTORS
   +ROLLSPRITE
+ROLLCENTER
+FORCEXYBILLBOARD
  States
  {
  Spawn:
	TNT1 A 0
	"####" "#" 0 
	VIAL GG 1 a_jumpifinventory("removeingredient",1,"Disappear")
	"####" "#" 0 a_changeflag("thruactors",0)
	Stay:
    VIAL G 1 a_jumpifinventory("removeingredient",1,"Disappear")
    Loop
	
	Disappear:
	TNT1 A 1
	Stop

  }
}


////////////////////////////////////// NEUTRAL
Actor NeutralFilling
{
scale 0.3
+THRUACTORS
+FORCEXYBILLBOARD
States
{
	Spawn:
		VIAL E 15
		NVIA ABC 15 a_startsound("slime",999,0,0.5)
		TNT1 A 0 a_startsound("slime",999,0,0.5)
		TNT1 A 0 A_spawnitemex("neutralvial",0,0)
		stop
		}
}

ACTOR NeutralVial : Ammo 30020
{
	scale 0.3
	+NOBLOOD
	+cannotpush
	Height 1
	radius 3

  Inventory.PickupMessage "$GOTNEUTRAL"
  iNVENTORY.AMOUNT 1
  Inventory.MaxAmount 5
   Inventory.Pickupsound "GLVIALPK"
   Species "Marines"
    tag"neutral solution"
	+FORCEXYBILLBOARD
	+ROLLSPRITE
+ROLLCENTER
+THRUACTORS
  States
  {
  Spawn:
	 TNT1 A 0
	 VIAL NN 1 a_jumpifinventory("removeingredient",1,"Disappear")
	"####" "#" 0 a_changeflag("thruactors",0)
Stay:
    VIAL N 1 a_jumpifinventory("removeingredient",1,"Disappear")
    Loop
		
Disappear:
	TNT1 A 1
	Stop
  }
}

////////////////////////////////////// BASIC

Actor BasicFilling
{
scale 0.3
+THRUACTORS
+FORCEXYBILLBOARD
States
{
	Spawn:
		VIAL E 15
		BVIA ABC 15 a_startsound("slime",999,0,0.5)
		TNT1 A 0 a_startsound("slime",999,0,0.5)
		TNT1 A 0 A_spawnitemex("basicvial",0,0)
		stop
		}
}

ACTOR BasicVial : Ammo 30021
{
	scale 0.3
	+NOBLOOD
	+cannotpush
	Height 1
	radius 3

  Inventory.PickupMessage "$GOTBASE"
  iNVENTORY.AMOUNT 1
  Inventory.MaxAmount 5
    Inventory.Pickupsound "GLVIALPK"
	 tag"basic solution"
	 +ROLLSPRITE
	+ROLLCENTER
	+FORCEXYBILLBOARD
	+thruactors
	species "Marines"
  States
  {
  Spawn:
	TNT1 A 0
	VIAL VV 1 a_jumpifinventory("removeingredient",1,"Disappear")
	"####" "#" 0 a_changeflag("thruactors",0)
Stay:
    VIAL V 1 a_jumpifinventory("removeingredient",1,"Disappear")
    Loop
	
Disappear:
	TNT1 A 1
	Stop
  }
}


/////////////
//					ORGANIC REAGENTS
////////////

ACTOR Impspike : Ammo 30022
{
	+NOBLOOD
	+cannotpush
	Height 1
	radius 3

  scale 0.2
  Inventory.PickupMessage "$GOTSPIKE"
  iNVENTORY.AMOUNT 1
  Inventory.MaxAmount 5
    Inventory.Pickupsound "DEMONPK"
	 tag"imp spike"
  +FORCEXYBILLBOARD
  +THRUACTORS
  States
  {
  Spawn:
	TNT1 A 0 
	"####" "#" 0  A_ChangeFlag("XFLIP",random(0,1))
	SPIK EE 1 a_jumpifinventory("removeingredient",1,"Disappear")
	"####" "#" 0 a_changeflag("thruactors",0)
Stay:
    SPIK E 1 a_jumpifinventory("removeingredient",1,"Disappear")
    Loop
	
Disappear:
	TNT1 A 1
	Stop
  }
}

ACTOR Demonheart : Ammo 30023
{
	+NOBLOOD
	+cannotpush
	Height 1
	radius 3

  scale 0.3
  Inventory.PickupMessage "$GOTHEART"
  iNVENTORY.AMOUNT 1
  Inventory.MaxAmount 5
    Inventory.Pickupsound "HEARTPK"
	 tag"demon heart"
	 +ROLLSPRITE
+ROLLCENTER
+FORCEXYBILLBOARD
+THRUACTORS
  States
  {
  Spawn:
    
	"####" "#" 0 { A_ChangeFlag("XFLIP",random(0,1));  A_SetRoll(randompick(0,90,180,270)); }
	DMHE AA 1 a_jumpifinventory("removeingredient",1,"Disappear")
	"####" "#" 0 a_changeflag("thruactors",0)
	Stay:
	DMHE BCD 2 A_checkproximity("disappear", "Altarcolumn", 30, 1)
    DMHE A 1 A_SpawnitemEX ("brutal_flyingblood",5,0,10,0,0,0,0,0,0,0)
	DMHE A 1 A_SpawnitemEX ("brutal_flyingblood",20,0,10,0,0,0,0,0,0,0)
	DMHE A 1 A_SpawnitemEX ("brutal_flyingblood",20,0,10,0,0,0,0,0,0,0)
	goto Beat
	
Beat:
	TNT1 A 0 A_STARTSOUND("heART2",12, CHANF_NOSTOP, 0.1, 2, 1.1)
	DMHE AAAA 1 a_jumpifinventory("removeingredient",1,"Disappear")
	DMHE BCD 3 {A_checkproximity("disappear", "Altarcolumn", 30, 1); a_jumpifinventory("removeingredient",1,"Disappear");}
    DMHE AAAAAAAAAAAAAAA 1 a_jumpifinventory("removeingredient",1,"Disappear")
	loop
 
Disappear:
	TNT1 A 1
	Stop
  }
}

ACTOR Bruiserhorn : Ammo 30024
{
	+NOBLOOD
	+cannotpush
	Height 1
	radius 3

  scale 0.25
  Inventory.PickupMessage "$GOTHORN"
  iNVENTORY.AMOUNT 1
  Inventory.MaxAmount 5
    Inventory.Pickupsound "DEMONPK"
	 tag"bruiser horn"
	 +FORCEXYBILLBOARD
	 +THRUACTORS
  States
  {
  Spawn:
   TNT1 A 0
   "####" "#" 0  A_ChangeFlag("XFLIP",random(0,1))
   	HORN AA 1 a_jumpifinventory("removeingredient",1,"Disappear")
	"####" "#" 0 a_changeflag("thruactors",0)
Stay:
    HORN A 1 a_jumpifinventory("removeingredient",1,"Disappear")
    Loop

Disappear:
	TNT1 A 1
	Stop
  }
}

ACTOR Cacoeye : Ammo 30025
{
	+NOBLOOD
	+cannotpush
	Height 1
	radius 3

  scale 1.2
  Inventory.PickupMessage "$GOTEYE"
  iNVENTORY.AMOUNT 1
  Inventory.MaxAmount 5
   Inventory.Pickupsound "CACOPK"
    tag"cacodemon eye"
	+ROLLSPRITE
+ROLLCENTER
+FORCEXYBILLBOARD
+THRUACTORS
  States
  {
  Spawn:
	 TNT1 A 0
	 TNT1 A 0 A_SetRoll(randompick(0,90,180,270))
	 CCD5 A 2
	 "####" "#" 0 a_jumpifinventory("removeingredient",1,"Disappear")
	"####" "#" 0 a_changeflag("thruactors",0)
Stay:
	CCD5 A 1 a_jumpifinventory("removeingredient",1,"Disappear")
    loop
	
Disappear:
	TNT1 A 1
	Stop
  }
}

/////////////
//					MATERIALS
////////////

ACTOR scrapmetal : Ammo 30026
{
	+NOBLOOD
	+cannotpush
	Height 1
	radius 3

  scale 0.25
  Inventory.PickupMessage "$GOTMETAL"
  iNVENTORY.AMOUNT 1
  Inventory.MaxAmount 20
    Inventory.Pickupsound "METALPK"
	 tag"scrap metal"
	 +FORCEXYBILLBOARD
	 +THRUACTORS
  States
  {
  Spawn:
   TNT1 A 0
   "####" "#" 0  A_ChangeFlag("XFLIP",random(0,1))
   	SCRA PP 1 a_jumpifinventory("removeingredient",1,"Disappear")
	"####" "#" 0 a_changeflag("thruactors",0)
   Stay:
	SCRA P 1 a_jumpifinventory("removeingredient",1,"Disappear")
    Loop
	
Disappear:
	TNT1 A 1
	Stop
  }
}

ACTOR Electronicparts : Ammo 30027
{
	+NOBLOOD
	+cannotpush
	Height 1
	radius 3

  scale 0.3
  Inventory.PickupMessage "$GOTELECTRONIC"
  iNVENTORY.AMOUNT 1
  Inventory.MaxAmount 20
    Inventory.Pickupsound "ELECTRPK"
	 tag"electronic parts"
	 +THRUACTORS
	 +FORCEXYBILLBOARD
  States
  {
  Spawn:
	TNT1 A 0
	"####" "#" 0 A_ChangeFlag("XFLIP",random(0,1))
	ELEC TT 1 a_jumpifinventory("removeingredient",1,"Disappear")
	"####" "#" 0 a_changeflag("thruactors",0)
Stay:
	ELEC T 1 a_jumpifinventory("removeingredient",1,"Disappear")
    Loop
	
Disappear:
	TNT1 A 1
	Stop
  }
}


ACTOR Fabric : Ammo 30028
{
	+NOBLOOD
	+cannotpush
	Height 1
	radius 3

  scale 0.3
  Inventory.PickupMessage "$GOTFABRIC"
  iNVENTORY.AMOUNT 1
  Inventory.MaxAmount 20
  Inventory.Pickupsound "CLOTHPK"
   tag"torn fabric"
   +FORCEXYBILLBOARD
   +THRUACTORS
  States
  {
  Spawn:
	 TNT1 A 0
	   "####" "#" 0  A_ChangeFlag("XFLIP",random(0,1))
	 CLOT HH 1 a_jumpifinventory("removeingredient",1,"Disappear")
	"####" "#" 0 a_changeflag("thruactors",0)
Stay:
	CLOT H 1 a_jumpifinventory("removeingredient",1,"Disappear")
    Loop
	
Disappear:
	TNT1 A 1
	Stop
  }
}

/////////////
//					UNKNOWN SUBSTANCE
////////////

ACTOR FireEssence : Ammo 30029
{
	+NOBLOOD
	+cannotpush
	Height 1
	radius 3

  Inventory.PickupMessage "$GOTFIRE"
  iNVENTORY.AMOUNT 1
  Inventory.MaxAmount 3
   Inventory.Pickupsound "UNKNPK"
    tag"???"
  scale 0.7
  +FORCEXYBILLBOARD
  +THRUACTORS
  States
  {
  Spawn:
   TNT1 A 0
   "####" "#" 0  A_ChangeFlag("XFLIP",random(0,1))
   	FRES LM 1 a_jumpifinventory("removeingredient",1,"Disappear")
	"####" "#" 0 a_changeflag("thruactors",0)
   Stay:
	FRES ABCDEFGHIJKLM 3 BRIGHT a_jumpifinventory("removeingredient",1,"Disappear")
    Loop
	
Disappear:
	TNT1 A 1
	Stop
  }
}

ACTOR ChaosEssence : Ammo 30030
{
	+NOBLOOD
	+cannotpush
	Height 1
	radius 3

  Inventory.PickupMessage "$GOTCHAOS"
  iNVENTORY.AMOUNT 1
  Inventory.MaxAmount 3
   Inventory.Pickupsound "UNKNPK"
    tag"???"
	+FORCEXYBILLBOARD
	+THRUACTORS
  States
  {
  Spawn:
	TNT1 A 0
	"####" "#" 0  A_ChangeFlag("XFLIP",random(0,1))
	CAOS DC 1 a_jumpifinventory("removeingredient",1,"Disappear")
	"####" "#" 0 a_changeflag("thruactors",0)
Stay:
	CAOS BCDEFGHIHGFEDC 3 bright a_jumpifinventory("removeingredient",1,"Disappear")
    Loop
	
Disappear:
	TNT1 A 1
	Stop
  }
}


Actor AlphaFilling
{
scale 0.3
+THRUACTORS
+FORCEXYBILLBOARD
States
{
	Spawn:
		VIAL E 15
		ZVIA ABC 15 a_startsound("slime",999,0,0.5)
		TNT1 A 0 a_startsound("slime",999,0,0.5)
		TNT1 A 0 A_spawnitemex("alphavial",0,0)
		stop
		}
}

ACTOR AlphaVial : Ammo 30031
{
	+NOBLOOD
	+cannotpush
	Height 1
	radius 3

  scale 0.3
  Inventory.PickupMessage "$GOTALPHA"
  iNVENTORY.AMOUNT 1
  Inventory.MaxAmount 3
   Inventory.Pickupsound "GLVIALPK"
    tag"???"
	+FORCEXYBILLBOARD
	+THRUACTORS
  States
  {
  Spawn:
  TNT1 A 0
  "####" "#" 0  A_ChangeFlag("XFLIP",random(0,1))
  	VIAL TT 1 a_jumpifinventory("removeingredient",1,"Disappear")
	"####" "#" 0 a_changeflag("thruactors",0)
  Stay:
	VIAL RTZXXZT 3 a_jumpifinventory("removeingredient",1,"Disappear")
    Loop
	
Disappear:
	TNT1 A 1
	Stop
  }
}


ACTOR GunPowder : Ammo
{
   Inventory.Amount 1
   Inventory.MaxAmount 20
    Inventory.PickupMessage "$GOTPOWDER"
	inventory.pickupsound "GUNPOWDR"
   Inventory.Icon "GNPWD0"
   +SHOOTABLE
   +cannotpush
   +THRUACTORS
   health 10
   radius 3
   SCALE 0.07
   damagefactor "headkick", 0.0 damagefactor "use", 0.0 damagefactor "stealth", 0.0
   damagefactor "cut", 0.0 damagefactor "kick", 0.0 damagefactor "extremepunches", 0.0
   damagefactor "saw", 0.0 damagefactor "crush", 0.0 damagefactor "trample", 0.0 damagefactor "removepowder", 1000.0
   tag "Gunpowder"
   +FORCEXYBILLBOARD
  States
  {
    Spawn:
  TNT1 A 0
  "####" "#" 0 A_ChangeFlag("XFLIP",random(0,1))
  GNPW DD 1 a_jumpifinventory("removeingredient",1,"Disappear") 
	"####" "#" 0 a_changeflag("thruactors",0)
Stay:
  GNPW D 1 a_jumpifinventory("removeingredient",1,"Disappear")
  loop
  
	Death:
		TNT1 A 0
		TNT1 A 0 A_Explode(50,100,0,1,100,0,0,"hitpuff","ExplosiveImpact")					 
		TNT1 A 0 A_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -20)
		TNT1 A 0 A_SpawnItemEx ("DetectFloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    TNT1 A 0 A_SpawnItemEx ("DetectCeilCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx ("ExplosionFlareSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    TNT1 A 0 A_SpawnItemEx ("UnderwaterExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		
        TNT1 A 0 A_CustomMissile ("BDExplosionparticlesBig", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AA 0 A_CustomMissile ("BDExplosionparticles2", 0, 0, random (0, 360), 2, random (0, 90))
		TNT1 AA 0 A_CustomMissile ("SmallExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
	    EXPL A 0 Radius_Quake (2, 10, 0, 15, 0)
		BEXP B 0 BRIGHT A_Scream
        TNT1 A 0 A_ALertMonsters
		TNT1 A 0 A_PlaySound("GREXPLO2", 3)
		TNT1 A 0 A_SpawnItem("BarrelExplosionSmokeColumn")
        Stop
		
Disappear:
	TNT1 A 1
	Stop
  }
}

ACTOR craftedGunPowder : gunpowder
{
+canpass
  -noclip
  States
  {
 Spawn:
		TNT1 A 0
		GNPW D 1	
Stay:
	GNPW D -1
	Stop 
  }
}


//DROPPERS

actor SPIKESPAWNER
{ States
{
Spawn:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx ("Impspike",0,0,0,(random(0,3)),(random(0,3)),6,(random(-180,180)),SXF_NOCHECKPOSITION)
		Stop
}}


actor HEARTSPAWNER
{ States
{
Spawn:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx ("Demonheart",0,0,0,(random(0,3)),(random(0,3)),6,(random(-180,180)),SXF_NOCHECKPOSITION)
		Stop
}}

actor ALPHABLOODSPAWNER
{ States
{
Spawn:
		TNT1 A 0
		TNT1 A 0 A_CustomMissile ("alphablood", 25, 0, random (0, 360), 2, random (30, 150))		
		Stop
}}

actor BASICBLOODSPAWNER
{ States
{
Spawn:
		TNT1 A 0
		TNT1 A 0 A_CustomMissile ("basicblood", 25, 0, random (0, 360), 2, random (30, 150))		
		Stop
}}

actor ACIDBLOODSPAWNER
{ States
{
Spawn:
		TNT1 A 0
		TNT1 A 0 A_CustomMissile ("acidblood", 25, 0, random (0, 360), 2, random (30, 150))		
		Stop
}}

actor CHAOSSPAWNER
{ States
{
Spawn:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx ("ChaosEssence",0,0,0,(random(0,3)),(random(0,3)),6,(random(-180,180)),SXF_NOCHECKPOSITION)
		Stop
}}

actor EYESPAWNER
{ States
{
Spawn:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx ("CacodemonEyeBall",0,0,0,(random(2,4)),(random(2,4)),6,(random(-180,180)),SXF_NOCHECKPOSITION)
		Stop
}}

actor metalspawner
{ States
{
Spawn:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx ("scrapmetal",0,0,0,(random(4,4)),(random(4,4)),9,(random(-180,180)),SXF_NOCHECKPOSITION)
		Stop
}}

actor hornspawner
{ States
{
Spawn:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx ("bruiserhorn",0,0,0,(random(4,4)),(random(4,4)),9,(random(-180,180)),SXF_NOCHECKPOSITION)
		Stop
}}


actor powderSPAWNER
{ States
{
Spawn:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx ("gunpowder",0,0,0,(random(0,3)),(random(0,3)),6,(random(-180,180)),SXF_NOCHECKPOSITION)
		Stop
}}


////////////////////////////////////

ACTOR alphabloodspot : custominventory
{
	radius 2
	height 2
	mass 1
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+MOVEWITHSECTOR
	+FLOORCLIP
	+vulnerable
	+DONTCORPSE
	+DONTSPLASH
	-SOLID
	+THRUACTORS
	translation "168:191=5:8", "16:47=46:47"
	Alpha 0.99
	Scale 0.7
	tag "alpha demon's blood clot"
	states
	 {
	 Spawn:
		 TNT1 A 0
		 TNT1 A 0 A_JumpIf(waterlevel > 1, "Splash")
		 TNT1 A 1
		 
		 TNT1 A 0 A_CheckFloor("SpawnNormally")
		 Goto Splash
	  
	  SpawnNormally:
			TNT1 A 0
			TNT1 A 0 
			TNT1 A 0 A_Jump(255, "SpawnBFrameOnly", "SpawnCFrameOnly", "SpawnDFrameOnly")
		SpawnAFrameOnly:
			ALPB L 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  SpawnBFrameOnly:
			ALPB L 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  FadeA:
			BPDL AAAA 1 A_FadeOut(0.05)
			Stop
		  
		  FadeB:
			BPDL BBBB 1 A_FadeOut(0.05)
			Stop
		  
		  SpawnCFrameOnly:
			ALPB L 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  SpawnDFrameOnly:
			ALPB L 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  FadeC:
			BPDL CCCC 1 A_FadeOut(0.05)
			Stop
		  
		  FadeD:
			BPDL DDDD 1 A_FadeOut(0.05)
			Stop
	  
		Splash:
			BLOD A 0
			stop
			
		bottled:
		TNT1 A 0 a_spawnitem("alphafilling",0,0)
		ALPB L 15 
		ALPB L 15 a_Setscale(0.4,0.4)
		ALPB L 15 a_Setscale(0.3,0.3)
		ALPB L 15 a_Setscale(0.2,0.2)
		stop
			
		IsOverLiquid:
			BPDL E 1 A_FadeOut(0.9)
			BPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeIn(0.05)
			BPDL E 400
			BPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeOut(0.05)
			Stop
	}
}


ACTOR NEUTRALBonemarrow
{
	radius 2
	height 2
	mass 1
	+NOTELEPORT
	+vulnerable
	+FORCEXYBILLBOARD
	+MOVEWITHSECTOR
	+FLOORCLIP
	+DONTSPLASH
	+DONTCORPSE
	-SOLID
	+THRUACTORS
	Alpha 0.99
	Scale 0.5
	 translation "168:191=160:163","16:47=248:249"
	states
	 {
	 Spawn:
		 TNT1 A 0
		 TNT1 A 0 A_JumpIf(waterlevel > 1, "Splash")
		 TNT1 A 1
		 
		 TNT1 A 0 A_CheckFloor("SpawnNormally")
		 Goto Splash
	  
	  SpawnNormally:
			TNT1 A 0
			TNT1 A 0 
			TNT1 A 0 A_Jump(255, "SpawnBFrameOnly", "SpawnCFrameOnly", "SpawnDFrameOnly")
		SpawnAFrameOnly:
			NEUT R 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  SpawnBFrameOnly:
			NEUT R 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  FadeA:
			BPDL AAAA 1 A_FadeOut(0.05)
			Stop
		  
		  FadeB:
			BPDL BBBB 1 A_FadeOut(0.05)
			Stop
		  
		  SpawnCFrameOnly:
			NEUT R 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  SpawnDFrameOnly:
			NEUT R 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  FadeC:
			BPDL CCCC 1 A_FadeOut(0.05)
			Stop
		  
		  FadeD:
			BPDL DDDD 1 A_FadeOut(0.05)
			Stop
	  
		Splash:
			BLOD A 0
			stop
			
		bottled:
		TNT1 A 0 a_spawnitem("neutralfilling",0,0)
		NEUT R 15 
		NEUT R 15 a_Setscale(0.4,0.4)
		NEUT R 15 a_Setscale(0.3,0.3)
		NEUT R 15 a_Setscale(0.2,0.2)
		stop
			
		IsOverLiquid:
			BPDL E 1 A_FadeOut(0.9)
			BPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeIn(0.05)
			BPDL E 400
			BPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeOut(0.05)
			Stop
	}
}

ACTOR BASICBloodspot
{
	radius 2
	height 2
	mass 1
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+MOVEWITHSECTOR
	+FLOORCLIP
	+vulnerable
	+DONTCORPSE
	+DONTSPLASH
	-SOLID
	+THRUACTORS
	Alpha 0.99
	Scale 0.5
	 translation "168:191=192:195","16:47=195:202"
	Decal BrutalBloodSplat
	states
	 {
	 Spawn:
		 TNT1 A 0
		 TNT1 A 0 A_JumpIf(waterlevel > 1, "Splash")
		 TNT1 A 1
		 
		 TNT1 A 0 A_CheckFloor("SpawnNormally")
		 Goto Splash
	  
	  SpawnNormally:
			TNT1 A 0
			TNT1 A 0 
			TNT1 A 0 A_Jump(255, "SpawnBFrameOnly", "SpawnCFrameOnly", "SpawnDFrameOnly")
		SpawnAFrameOnly:
			BASI C 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  SpawnBFrameOnly:
			BASI C 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  FadeA:
			BPDL AAAA 1 A_FadeOut(0.05)
			Stop
		  
		  FadeB:
			BPDL BBBB 1 A_FadeOut(0.05)
			Stop
		  
		  SpawnCFrameOnly:
			BASI C 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  SpawnDFrameOnly:
			BASI C 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  FadeC:
			BPDL CCCC 1 A_FadeOut(0.05)
			Stop
		  
		  FadeD:
			BPDL DDDD 1 A_FadeOut(0.05)
			Stop
	  
		Splash:
			BLOD A 0
			stop
			
		bottled:
		TNT1 A 0 a_spawnitem("basicfilling",0,0)
		BASI C 15 
		BASI C 15 a_Setscale(0.4,0.4)
		BASI C 15 a_Setscale(0.3,0.3)
		BASI C 15 a_Setscale(0.2,0.2)
		stop
				
		Death:
			TNT1 A 0
			TNT1 A 0 A_NoBlocking
			Stop
			
		IsOverLiquid:
			BPDL E 1 A_FadeOut(0.9)
			BPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeIn(0.05)
			BPDL E 400
			BPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeOut(0.05)
			Stop
	}
}

ACTOR ACIDBloodspot
{
	radius 2
	height 2
	mass 1
	+NOTELEPORT
	+FORCEXYBILLBOARD
	+MOVEWITHSECTOR
	+FLOORCLIP
	+vulnerable
	+DONTSPLASH
	-SOLID
	+THRUACTORS
	Alpha 0.99
	Scale 0.5
	 translation "168:191=112:114","16:47=115:117"
	Decal BrutalBloodSplat
	states
	 {
	 Spawn:
		 TNT1 A 0
		 TNT1 A 0 A_JumpIf(waterlevel > 1, "Splash")
		 TNT1 A 1
		 
		 TNT1 A 0 A_CheckFloor("SpawnNormally")
		 Goto Splash
	  
	  SpawnNormally:
			TNT1 A 0
			TNT1 A 0 
			TNT1 A 0 A_Jump(255, "SpawnBFrameOnly", "SpawnCFrameOnly", "SpawnDFrameOnly")
		SpawnAFrameOnly:
			ACDB L 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  SpawnBFrameOnly:
			ACDB L 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  FadeA:
			BPDL AAAA 1 A_FadeOut(0.05)
			Stop
		  
		  FadeB:
			BPDL BBBB 1 A_FadeOut(0.05)
			Stop
		  
		  SpawnCFrameOnly:
			ACDB L 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  SpawnDFrameOnly:
			ACDB L 1 a_jumpifinventory("removeingredient",1,"Bottled")
			Loop
		  
		  FadeC:
			BPDL CCCC 1 A_FadeOut(0.05)
			Stop
		  
		  FadeD:
			BPDL DDDD 1 A_FadeOut(0.05)
			Stop
	  
		Splash:
			BLOD A 0
			stop
			
		bottled:
		TNT1 A 0 a_spawnitem("acidfilling",0,0)
		ACDB L 15 
		ACDB L 15 a_Setscale(0.4,0.4)
		ACDB L 15 a_Setscale(0.3,0.3)
		ACDB L 15 a_Setscale(0.2,0.2)
		stop
			
		IsOverLiquid:
			BPDL E 1 A_FadeOut(0.9)
			BPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeIn(0.05)
			BPDL E 400
			BPDL EEEEEEEEEEEEEEEEEEEE 4 A_FadeOut(0.05)
			Stop
	}
}


///////////////////////////////////////////////////////////////////////////////    DISMANTLED INGREDIENTS

Actor MetalCrafted : custominventory
{
  Inventory.PickupMessage "$GOTMETAL"
    Inventory.Pickupsound "METALPK"
	 tag"scrap metal"
	 scale 0.25
	 +FORCEXYBILLBOARD
	Inventory.Amount 0
States
{
Spawn:
	SCRA P -1
	stop
Pickup:
	SCRA P 0 A_giveinventory("scrapmetal", 1)
	Stop
}}

Actor ElectronicCrafted : custominventory
{
  scale 0.3
  Inventory.PickupMessage "$GOTELECTRONIC"
    Inventory.Pickupsound "ELECTRPK"
	 tag"electronic parts"
	 +FORCEXYBILLBOARD
	Inventory.Amount 0
States
{
Spawn:
	ELEC T -1
	stop
Pickup:
	ELEC T 0 A_giveinventory("electronicparts", 1)
	Stop
}}

Actor ClothCrafted : custominventory
{
  scale 0.3
  Inventory.PickupMessage "$GOTFABRIC"
  Inventory.Pickupsound "CLOTHPK"
   tag"torn fabric"
	 +FORCEXYBILLBOARD
	Inventory.Amount 0
States
{
Spawn:
	CLOT H -1
	stop
Pickup:
	CLOT H 0 A_giveinventory("fabric", 1)
	Stop
}}

Actor VialCrafted : custominventory
{
  scale 0.3
  Inventory.PickupMessage "$GOTVIAL"
  Inventory.Pickupsound "GLVIALPK"
  tag"empty vial"
	 +FORCEXYBILLBOARD
	Inventory.Amount 0
States
{
Spawn:
	VIAL E -1
	stop
Pickup:
	VIAL E 0 A_giveinventory("emptyvial", 1)
	Stop
}}

Actor AcidCrafted : custominventory
{
  scale 0.3
  Inventory.PickupMessage "$GOTACID"
  Inventory.Pickupsound "GLVIALPK"
   tag"acid solution"
	 +FORCEXYBILLBOARD
	Inventory.Amount 0
States
{
Spawn:
	VIAL G -1
	stop
Pickup:
	VIAL G 0 A_giveinventory("acidvial", 1)
	Stop
}}
