//***Che elemental damage effects (fire, ice, poison, electric)

Actor FireEnhancedDeathExplosion //ImmolantDeathEffect
{
	PROJECTILE
	Speed 0
	+NOBLOCKMAP
	+THRUACTORS
	+THRUGHOST
	DamageType Flames
	Damage (Random(0,0))
	States
	{
		Spawn:
		Death:
			TNT1 A 0 NODELAY A_Explode(30, 200)
			TNT1 AAAAAA 0 A_CustomMissile("ImmolatorIgniter", 0.0, 0.0, Random(-180,180), CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_SAVEPITCH, Random(5, 60))
			
			TNT1 A 0 A_PlaySound("KYEXPLO2")
			TNT1 A 0 A_SpawnItemEx("Elem_RedShockWave",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_SpawnItemEx("FBD_PaleRedExplosionMushroom",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			
			TNT1 A 30
			Stop
	}
}

Actor IceEnhancedDeathExplosion // FriginantDeathEffect
{
	PROJECTILE
	Speed 0
	+NOBLOCKMAP
	+THRUACTORS
	+THRUGHOST
	DamageType Ice
	Damage (Random(0,0))
	States
	{
		Spawn:
		Death:
			TNT1 A 0 NODELAY A_Explode(50, 200)
			// FrostAOE does NOT inflict any damage, just slows
			TNT1 A 0 A_RadiusGive("FrostAOE", 200, RGF_PLAYERS | RGF_MONSTERS)
			//TNT1 AAAAAA 0 A_CustomMissile("FrostSpreader", 0.0, 0.0, Random(-180,180), CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_SAVEPITCH, Random(5, 60))
			
			TNT1 A 0 A_PlaySound("KYEXPLO2")
			
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx("Elem_WhiteShockWave",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_SpawnItemEx("FBD_PaleWhiteExplosionMushroom",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			
			TNT1 A 30
			Stop
	}
}

Actor PoisonEnhancedDeathExplosion //NoxinantDeathEffect
{
	PROJECTILE
	Speed 0
	+NOBLOCKMAP
	+THRUACTORS
	+THRUGHOST
	DamageType Slime
	Damage (Random(0,0))
	States
	{
		Spawn:
		Death:
			TNT1 A 0 NODELAY A_Explode(5, 200)
			
			TNT1 A 0 A_PlaySound("KYEXPLO2")
			
			TNT1 A 0 A_SpawnItemEx("Elem_GreenShockWave",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_SpawnItemEx("FBD_PaleGreenExplosionMushroom",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			
			//TNT1 AAAAAA 0 A_CustomMissile("ToxicSpreader", 0.0, 0.0, Random(-180,180), CMF_AIMDIRECTION | CMF_TRACKOWNER | CMF_SAVEPITCH, Random(5, 60))
			
			// 25 damage over 5 seconds
			TNT1 A 0 A_RadiusGive("ToxicDOT", 200, RGF_PLAYERS | RGF_MONSTERS | RGF_OBJECTS)
			TNT1 A 2
			// another 25 damage over 5 seconds, sums up to 50 over 10 seconds
			TNT1 A 0 A_RadiusGive("ToxicDOT", 128, RGF_PLAYERS | RGF_MONSTERS | RGF_OBJECTS)
			
			TNT1 A 30
			Stop
	}
}

Actor ElectricityEnhancedDeathExplosion
{
	PROJECTILE
	Speed 0
	+NOBLOCKMAP
	+THRUACTORS
	+THRUGHOST
	DamageType Electric
	Damage (Random(0,0))
	SeeSound "KYEXPLO1"
	States
	{
		Spawn:
		Death:
			TNT1 A 0
			TNT1 A 0 A_SpawnItemEx("Elem_BlueShockWave",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			TNT1 A 0 A_SpawnItemEx("FBD_PaleBlueExplosionMushroom",0,0,0, 0,0,0, 0,SXF_NOCHECKPOSITION,0)
			
			TNT1 A 0 A_PlaySound("KYEXPLO1")
			
			//TNT1 A 0 NODELAY A_Explode(50, 200)
			// ShockAOE causes everyone spam static discharges resulting in a free-for-all
			TNT1 A 0 A_RadiusGive("ShockAOE", 200, RGF_PLAYERS | RGF_MONSTERS)
			TNT1 A 30
			Stop
	}
}







// visuals -----------------------------------------------------------
ACTOR Elem_GreenShockWave 
{ 
	Speed 0
	Height 32 
	Radius 2
	RenderStyle add
	Alpha 0.4
	+DROPOFF 
	+NOBLOCKMAP 
	+NOGRAVITY 
	+CLIENTSIDEONLY
	+NOINTERACTION
	+BRIGHT
	States 
	{ 
		Spawn: 
		Death:
			SHOK A 2 BRIGHT NODELAY A_SetScale(Random(0,1) ? 2.0 : -2.0, Random(0,1) ? 2.0 : -2.0)
			SHOK BCDEFGHIJKLMNOPQR 2 BRIGHT A_FadeOut(0.05)
			TNT1 A 30
			Stop 
	} 
} 


ACTOR Elem_WhiteShockWave: Elem_GreenShockWave
{ 
	Alpha 0.9
	States 
	{ 
		Spawn: 
		Death:
			SHWK A 2 BRIGHT NODELAY A_SetScale(Random(0,1) ? 2.0 : -2.0, Random(0,1) ? 2.0 : -2.0)
			SHWK BCDEFGHIJKLMNOPQR 2 BRIGHT A_FadeOut(0.05)
			TNT1 A 30
			Stop 
	} 
}

ACTOR Elem_RedShockWave: Elem_WhiteShockWave
{ 
	Translation "80:111=172:185"
} 

ACTOR Elem_BlueShockWave: Elem_WhiteShockWave
{ 
	Translation "80:111=192:205"
} 



// Note: BD21 included red (RPGX) and green (GPGX) mushrooms but never used them.
// EDAY included the, absolutely same, red mushroom as BFEI (wtf?)
ACTOR FBD_PaleRedExplosionMushroom
{
	Radius 8
	Height 40
	PROJECTILE
	RENDERSTYLE Add
	ALPHA 0.8
	+NOGRAVITY
	+NOEXPLODEFLOOR
	+THRUGHOST
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+NOCLIP
	States
	{
		Spawn:
			RPGX ABCDEFGHIJKLMNOPQRSTUV 1 BRIGHT
			Stop
	}
}

ACTOR FBD_PaleGreenExplosionMushroom: FBD_PaleRedExplosionMushroom
{
	States
	{
		Spawn:
			GPGX ABCDEFGHIJKLMNOPQRSTUV 1 BRIGHT
			Stop
	}
}

ACTOR FBD_PaleWhiteExplosionMushroom : FBD_PaleGreenExplosionMushroom
{
	Translation "112:127=80:111"
}

//***Che strictly speaking, electric asplosion asks for a completely different effect.
// alas, zeitnot.
ACTOR FBD_PaleBlueExplosionMushroom : FBD_PaleGreenExplosionMushroom
{
	Translation "112:127=192:207"
}

