ACTOR CeilingDroplet : DecoDroplet
{
	Height 1
	Scale 0.1
	-MISSILE
	+NOGRAVITY
	States
	{
	Spawn:
		TNT1 A 1 NoDelay ACS_NamedExecuteAlways("BloodAlpha")
		BLUD C 6 A_SetScale(1.0,0.05)
		BLUD C 5 A_SetScale(0.8,0.1)
		BLUD C 4 A_SetScale(0.65,0.2)
		BLUD C 3 A_SetScale(0.55,0.4)
		BLUD C 2 A_SetScale(0.5,0.5)
		TNT1 A 0 A_ChangeFlag("NOGRAVITY", false)
		TNT1 A 0 A_SetScale(0.5)
		BLUD ABCD 2
		TNT1 A 0 A_ChangeFlag("MISSILE", true)
		goto Fall
	}
}

ACTOR CeilingDrop2 : DecoDrop2
{
	Height 1
	Scale 0.1
	-MISSILE
	+NOGRAVITY
	States
	{
	Spawn:
		TNT1 A 1 NoDelay ACS_NamedExecuteAlways("BloodAlpha")
		BLUD C 6 A_SetScale(0.67,0.05)
		BLUD C 5 A_SetScale(0.53,0.1)
		BLUD C 4 A_SetScale(0.43,0.2)
		BLUD C 3 A_SetScale(0.37,0.4)
		BLUD C 2 A_SetScale(0.33,0.5)
		TNT1 A 0 A_ChangeFlag("NOGRAVITY", false)
		TNT1 A 0 A_SetScale(0.33)
		BLUD ABCD 2
		TNT1 A 0 A_ChangeFlag("MISSILE", true)
		goto Fall
	}
}

ACTOR CeilingDrop3 : DecoDrop3
{
	Height 1
	Scale 0.1
	-MISSILE
	+NOGRAVITY
	States
	{
	Spawn:
		TNT1 A 1 NoDelay ACS_NamedExecuteAlways("BloodAlpha")
		BLUD C 6 A_SetScale(0.33,0.05)
		BLUD C 5 A_SetScale(0.27,0.1)
		BLUD C 4 A_SetScale(0.22,0.2)
		BLUD C 3 A_SetScale(0.19,0.4)
		BLUD C 2 A_SetScale(0.17,0.5)
		TNT1 A 0 A_ChangeFlag("NOGRAVITY", false)
		TNT1 A 0 A_SetScale(0.17)
		BLUD ABCD 2
		TNT1 A 0 A_ChangeFlag("MISSILE", true)
		goto Fall
	}
}

ACTOR CeilDripper
{
	Radius 1
	Height 1
	+THRUACTORS
	+NOTONAUTOMAP
	+SPAWNCEILING
	+NOGRAVITY
	scale 0.5
	States
	{
	Spawn:
		TNT1 A 0 NoDelay ThrustThingZ(0,35,0,1)
		TNT1 A 0 A_QueueCorpse
		SPLT F 0 A_SetAngle(random(0.0,359.9))
		SPLT F 1 A_SetScale(0.6,0.45)
		SPLT F 1 A_SetScale(0.7,0.4)
		SPLT F 1 A_SetScale(0.8,0.35)
		SPLT F 1 A_SetScale(0.9,0.3)
		SPLT F 1 A_SetScale(frandom(0.78,1.22),1.0)
		goto Drippy
	Drippy:
		SPLT F 3
		TNT1 A 0 ThrustThingZ(0,35,0,1)
		TNT1 A 0 A_Jump(252, "Drippy")
		TNT1 A 0 A_SpawnItemEx("CeilingDrop2", 0, 0, 4, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION, 123)
		goto Drippy
	}
}

ACTOR CeilDrip2 : CeilDripper
{
	scale 0.33
	States
	{
	Spawn:
		TNT1 A 0 NoDelay ThrustThingZ(0,35,0,1)
		TNT1 A 0 A_QueueCorpse
		SPLT F 0 A_SetAngle(random(0.0,359.9))
		SPLT F 1 A_SetScale(0.33,0.5)
		SPLT F 1 A_SetScale(0.4,0.45)
		SPLT F 1 A_SetScale(0.47,0.4)
		SPLT F 1 A_SetScale(0.53,0.35)
		SPLT F 1 A_SetScale(frandom(0.26,0.78),0.52)
		goto Drippy
	Drippy:
		SPLT F 3
		TNT1 A 0 ThrustThingZ(0,35,0,1)
		TNT1 A 0 A_Jump(253, "Drippy")
		TNT1 A 0 A_SpawnItemEx("CeilingDrop3", 0, 0, 4, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION, 125)
		goto Drippy
	}
}

ACTOR CeilDrip3 : CeilDripper
{
	scale 0.17
	States
	{
	Spawn:
		TNT1 A 0 NoDelay ThrustThingZ(0,35,0,1)
		TNT1 A 0 A_QueueCorpse
		SPLT F 0 A_SetAngle(random(0.0,359.9))
		SPLT F 1 A_SetScale(0.17,0.5)
		SPLT F 1 A_SetScale(0.2,0.45)
		SPLT F 1 A_SetScale(0.24,0.4)
		SPLT F 1 A_SetScale(0.27,0.35)
		SPLT F 1 A_SetScale(frandom(0.09,0.26),0.175)
		goto Drippy
	Drippy:
		SPLT F 3
		TNT1 A 0 ThrustThingZ(0,35,0,1)
		TNT1 A 0 A_Jump(254, "Drippy")
		TNT1 A 0 A_SpawnItemEx("CeilingDrop3", 0, 0, 4, 0, 0, 0, 0, SXF_TRANSFERTRANSLATION, 191)
		loop
	}
}