// *** MODIFIED BY CHEBMASTER
// I mark most important places modified by me with //***Che -- unless I forget to.

ACTOR TeleportationFog Replaces TeleportFog
{
	+THRUACTORS
	Health 100
	Radius 0
	Height 0
	Mass 999999
	
	//***Che
	//+SHOOTABLE
	//DamageFactor "CancelTeleportFog", 9999.0
	-SHOOTABLE
	+NOBLOCKMAP
	
	+NOBLOOD
	+NOGRAVITY
	Renderstyle Add
	
		States
		{
			Spawn:
			//TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("BFGDeathParticle", 0, 40, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
				TNT1 A 0
				TNT1 A 2
				//***Che
				TNT1 A 0 A_JumpIf(CallAcs("InTelefogExclusionZone"), "Death")
				TNT1 A 0 A_PlaySound("DSTELEPT")
				TFOG A 3 BRIGHT
				TNT1 A 0 A_JumpIf(!CallAcs("FBD_RequestExpensiveSfx"), "Cheap")
				TNT1 A 0 A_SpawnItem("PentagramSpawner")
				//TNT1 A 0 A_spawnItem("TeleportSecurity")
				TFOG BCDE 3 BRIGHT A_SpawnItem("YellowFlare",0,40)
				TFOG FGHGFEDCBA 3 Bright A_SpawnItem("YellowFlare",0,40)
				//TNT1 A 0 A_NoBlocking
				Stop
			Cheap:
				TFOG BCDE 3 BRIGHT
				TFOG FGHGFEDCBA 3 BRIGHT
				Stop
			Death:
				TNT1 A 0
				Stop
		}
}



ACTOR BrutalTeleportDest: TeleportDest Replaces TeleportDest
{
	+NOBLOCKMAP
	+NOSECTOR
	+DONTSPLASH
	+MISSILE
	+NOBLOCKMAP
	+THRUACTORS
	+PAINLESS
	+NODAMAGETHRUST
	-BLOODSPLATTER
	+BLOODLESSIMPACT 
	+FORCERADIUSDMG
	Damagetype "TeleportRemover"
	States
	{
		Death:
		Spawn:
			TNT1 A 0
			//TNT1 A 0 A_SpawnItem("TeleportRemovalThing")

		//***Che grasping in the dark trying to figure out why Sunlust map "God Machine" crashes.
		//  hint: it has a bazilion teleport destinations with tons of monsters teleported and killed 
		//  at map initialization, to set corpse fields up for archviles.
	
		Live:
			TNT1 A 40
			TNT1 A 0 A_JumpIf(!CallAcs("FBD_RequestExoticManeuver", 2), "TryAgainLater")
			TNT1 A 0 A_Explode(4, 32, 0)
			Loop
			
		TryAgainLater:
			TNT1 A Random(10,90)
			Goto Live
		
	}
}


ACTOR TeleportRemovalThing
{
	+THRUACTORS
	+PAINLESS
	+NODAMAGETHRUST
	-BLOODSPLATTER
	+BLOODLESSIMPACT 
	+FORCERADIUSDMG
	+FLOORCLIP
	+DONTSPLASH
	Mass 9999
	Radius 0
	Height 0
	Damagetype "TeleportRemover"
	States
	{
		Death:
		Spawn:
			TNT1 A 0
			TNT1 A 5
			TNT1 A 0 A_JumpIf(!CallAcs("FBD_RequestExoticManeuver", 1), "TryAgainLater")
			TNT1 A 0 A_Explode(4, 32, 0)
			TNT1 A 0 ThrustThingZ(0,-30,0,1)
			Loop
		TryAgainLater:
			TNT1 A Random(10,90)
			Goto Live			
	}
}


ACTOR BOdyRemovalThing
{
	+THRUACTORS
	+PAINLESS
	+NODAMAGETHRUST
	-BLOODSPLATTER
	+BLOODLESSIMPACT 
	+FORCERADIUSDMG
	+FLOORCLIP
	+DONTSPLASH
	+NOCLIP
	Mass 5
	Radius 1
	Height 1
	Damagetype "CrushedBodies"
	States
	{
		Death:
		Spawn:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 A_Explode(8, 10, 0)
		TNT1 A 0 ThrustThingZ(0,-30,0,1)
		TNT1 A 1
		Stop
	}
}

ACTOR FriendlymarineTFog
{
	+THRUACTORS
	Health 100
	Radius 0
	Height 0
	Mass 999999
	+SHOOTABLE
	+NOBLOOD
	+NOGRAVITY
	Renderstyle Add
	Alpha 0.5
		States
		{
		Spawn:
		TNT1 A 0
			//TNT1 A 0 A_spawnItem("TeleportSecurity")
			TFOG ABCDE 1 BRIGHT A_SpawnItem("YellowFlare",0,40)
			TFOG FGHGFEDCBA 1 Bright
			TNT1 A 0 A_NoBlocking
			Stop
		Death:
			TNT1 A 0
			Stop
		}
}


ACTOR BossSizedTeleportFog: TeleportationFog
{
	Scale 2.0
}

ACTOR ThiccTeleportFog: TeleportationFog
{
	XScale 2.0
}

ACTOR MastermindSizedTeleportFog: TeleportationFog
{
	XScale 4.0
	YScale 2.0
}
