// --------------------------------------------------------------------------
//
//	Updated Smoke
//
// --------------------------------------------------------------------------

Actor SmokeSpawner12 : SmokeSpawner11
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_CustomMissile("GunBarrelSmoke2", -10, 0, 0, 2, 90)
		Stop
	}
}
Actor SmokeSpawner13 : SmokeSpawner11
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_CustomMissile("GunBarrelSmoke3", -10, 0, 0, 2, 90)
		Stop
	}
}

ACTOR GunBarrelSmoke1: ExplosionSmoke replaces GunBarrelSmoke //SmokeSpawner11
{
	Alpha 0.01
	RenderStyle Add
	XScale 0.12
	YScale 0.15
	Speed 1
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "SpawnSimple")
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetScale(-1 * scaleX,scaleY) //Random X-flip
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetScale(scaleX,-1 * scaleY) //Random Y-flip
		SMK2 AAAAA 1 A_FadeIn(0.1)
		SMK2 A 2
		SMK2 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_FadeOut(0.04)
		Goto Death
	Death:
		TNT1 A 0
		Stop
	Stap:
		TNT1 A 0
		Stop
	SpawnSimple:
		SMK2 AA 2 A_FadeIn(0.25)
		SMK2 A 2
		SMK2 AAAAAAAA 3 A_FadeOut(0.12)
		Stop
	}
}

ACTOR GunBarrelSmoke2: GunBarrelSmoke1 //SmokeSpawner12
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "SpawnSimple")
		SMK2 AAAAA 1 A_FadeIn(0.08)
		SMK2 A 2
		SMK2 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_FadeOut(0.04)
		Goto Death
	SpawnSimple:
		SMK2 AA 2 A_FadeIn(0.20)
		SMK2 A 2
		SMK2 AAAAAAAA 3 A_FadeOut(0.12)
		Stop
	}
}

ACTOR GunBarrelSmoke3: GunBarrelSmoke1 //SmokeSpawner13
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "SpawnSimple")
		SMK2 AAAAA 1 A_FadeIn(0.06)
		SMK2 A 2
		SMK2 AAAAAAAAAAAAAAAAAAAAAAAA 1 A_FadeOut(0.04)
		Goto Death
	SpawnSimple:
		SMK2 AA 2 A_FadeIn(0.15)
		SMK2 A 2
		SMK2 AAAAAAAA 3 A_FadeOut(0.12)
		Stop
	}
}

ACTOR U_ExplosionSmoke: ExplosionSmoke replaces ExplosionSmoke
{
	Alpha 0.0
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
		TNT1 A 0 ThrustThingZ(0,random(2,5),0,0)
		TNT1 A 0 A_Jump(256,1,2,3)
		SMK3 BBBBBBBB 1 A_FadeIn(0.05)
		TNT1 A 0 A_Jump(256,1,2,3)
		SMK3 BBBBBB 4
		SMK3 CDEFGHIJKLM 3
		Goto Death
	}
}

Actor U_PlasmaSmoke: U_ExplosionSmoke replaces PlasmaSmoke
{
	Scale 0.5
}

ACTOR U_BarrelExplosionSmokeColumn replaces BarrelExplosionSmokeColumn
{
	Radius 0
	Height 0
	Alpha 0.0
	RenderStyle Translucent
	XScale 1.4
	YScale 1.0
	+NOBLOCKMAP
	+NOTELEPORT
	+DONTSPLASH
	+CLIENTSIDEONLY
	+MOVEWITHSECTOR
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
		SB16 ABCDEABCDE 4 A_FadeIn(0.06)
		TNT1 A 0 A_Jump(256,1,11,21,31)
		SB16 ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE 4
	Death:
		SB16 ABCDE 4 A_FadeOut(0.01)
		Loop
	Stap:		
		TNT1 A 0
		Stop
	}
}

ACTOR U_ExplosionSimpleSmokeColumn: U_BarrelExplosionSmokeColumn replaces ExplosionSimpleSmokeColumn
{
	XScale 1.1
	YScale 0.8
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
		SB16 ABCDEABCDE 4 A_FadeIn(0.04)
		TNT1 A 0 A_Jump(256,1,11,21,31)
		SB16 ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE 4
	Death:
		SB16 ABCDE 4 A_FadeOut(0.01)
		Loop
	}
}

ACTOR U_MicroSmokeColumn: U_ExplosionSimpleSmokeColumn replaces MicroSmokeColumn
{
	XScale 0.7
	YScale 0.5
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
		SB16 ABCDEABCDE 4 A_FadeIn(0.03)
		TNT1 A 0 A_Jump(256,1,11,21,31)
		SB16 ABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDEABCDE 4
	Death:
		SB16 ABCDE 4 A_FadeOut(0.01)
		Loop
	}
}

ACTOR U_BarrelExplosionSmokeColumnInfinite: U_BarrelExplosionSmokeColumn replaces BarrelExplosionSmokeColumnInfinite
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
		SB16 ABCDEABCDE 4 A_FadeIn(0.06)
		Goto Live
	Live:
		SB16 ABCDE 4
		TNT1 A 0 A_GiveInventory("IdleCounter",1)
		TNT1 A 0 A_JumpIfInventory("IdleCounter",30,"Death")
		Loop
	}
}

ACTOR U_GunFireSmoke: ExplosionSmoke replaces GunFireSmoke
{
	Alpha 0.25
	Scale 0.2
	Renderstyle Add
	Speed 8
	States
	{
	Spawn:
		TNT1 A 0
		Goto Death
	Death:
		TNT1 A 0 A_CustomMissile("U_GunFireSmoke1", 7, 0, 180, 0, 0)
		Stop
	}
}

ACTOR U_GunFireSmoke1: U_GunFireSmoke
{
	Alpha 0.3
	Scale 0.2
	Renderstyle Add
	Speed 8
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SetScale(frandom(0.20,0.24))//Random scale
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetScale(-1 * scaleX,scaleY)//Random X-flip
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetScale(scaleX,-1 * scaleY)//Random Y-flip
		TNT1 A 0
		Goto Death
	Death:
		TNT1 A 0 A_Stop
		TNT1 A 0 A_Recoil(-2)
		SMK9 ABCDEFGHIJKLMNOPQR 1
		Stop
	}
}

ACTOR U_ShotSmoke replaces ShotSmoke
{
	+NOGRAVITY
	+NOBLOCKMAP
	+FLOORCLIP
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+FORCEXYBILLBOARD
	+MISSILE
	Speed 1
	RenderStyle Add
	Alpha 0.1
	+CLIENTSIDEONLY
	Radius 0
	Height 0
	Scale 0.6
	States
	{
	Spawn:
		TNT1 A 0
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "Death")
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetScale(-1 * scaleX,scaleY)//Random X-flip
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetScale(scaleX,-1 * scaleY)//Random Y-flip
		SMOK ABCDEFGHIJKLMNOPQ 1
		Stop
	Death:
		TNT1 A 1
		Stop
	}
}


// --------------------------------------------------------------------------
//
//	Updated Explosions
//
// --------------------------------------------------------------------------

ACTOR U_ExplosionFlames: FlameTrails replaces ExplosionFlames
{
	Scale 3.3
	Speed 2
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetScale(-1 * scaleX,scaleY)//Random X-flip
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetScale(scaleX,-1 * scaleY)//Random Y-flip
		
		EXPL AA 2 BRIGHT A_SpawnItem("RedFlare",0,0)
		TNT1 AA 0 A_CustomMissile("ExplosionSmoke", 0, 0, random(0, 360), 2, random(0, 360))
		EXPL BBCCDDFFGGHHII 1 BRIGHT //A_FadeOut(0.04)
		Stop
	}
}

ACTOR U_MediumExplosionFlames: U_ExplosionFlames replaces MediumExplosionFlames
{
	Scale 1.95
}

ACTOR U_SmallExplosionFlames: U_ExplosionFlames replaces SmallExplosionFlames
{
	Scale 1.35
}

ACTOR ExplosionLight
{
	+DONTSPLASH
	+THRUACTORS
	States 
	{
	Spawn:
		TNT1 A 0
		TNT1 AAABBBCCCDDD 2
	Death:
		Stop
	}
}


// --------------------------------------------------------------------------
//
//	Updated Fire
//
// --------------------------------------------------------------------------
/*
ACTOR U_ImBallGettingReady : FlameTrails replaces ImBallGettingReady
{
	+NOINTERACTION
	+NOCLIP
    Scale 0.5
	Speed 1
	States
	{
    Spawn:
		TNT1 A 0
        BLHD AB 1 BRIGHT
        Stop
	}
}
*/
ACTOR MinimalFlameTrails
{
	Game Doom
	Radius 1
	Height 1
	Speed 4
	Damage 0 
	+NOBLOCKMAP
	+NOTELEPORT
	+DONTSPLASH
	+MISSILE
	+CLIENTSIDEONLY
	+NOINTERACTION
	+NOCLIP
	+FORCEXYBILLBOARD
	RenderStyle Add
	damagetype fire
	Scale 0.4
	Alpha 1.0
	Gravity 0
	States
	{
		Spawn:
		TNT1 A 0
		FIR1 DEFGHI 1 BRIGHT
		Stop
	}
}

ACTOR U_TinyBurningPiece replaces TinyBurningPiece
{
	Radius 0
	Height 0
	+NOBLOCKMAP
	+NOTELEPORT
	+DONTSPLASH
	+EXPLODEONWATER
	+MOVEWITHSECTOR
	Damagetype "Burn"
	Alpha 0.9
	RenderStyle Add
	Scale 1.0
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetScale(-1 * scaleX,scaleY)//Random flip X
		CFCF JKLM 1 BRIGHT
	//	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1045)==4, 2)
	//	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1045)!=0, "StopBurning")
	//	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "SpawnSimple")
	Idle:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		CFCF ABCD 1 BRIGHT
	//xx	TNT1 A 0 A_Explode(5, 50)
		CFCF EFGHIJKLM 1 BRIGHT
		TNT1 A 0 A_Jump(24, "StopBurning")
		Loop
	StopBurning:
		CFCF NOP 1 BRIGHT A_SpawnItem("RedFlareSmall", 0, 5)
		Stop
	Death:
		TNT1 A 2
		Stop
	Underwater:
		TNT1 A 1 A_CustomMissile("BUBULZ", 0, 0, random(0, 360), 2, random(90, 180))
		Stop
	SpawnSimple:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		CFCE ABCD 1 BRIGHT
	//xx	TNT1 A 0 A_Explode(5, 50)
		CFCE EFGHIJKLM 1 BRIGHT
		TNT1 A 0 A_Jump(24, "StopBurningSimple")
		Loop
	StopBurningSimple:
		CFCE NOP 1 BRIGHT A_SpawnItem("RedFlareSmall", 0, 5)
		Stop
	}
}

ACTOR U_TinyBurningPiece2: U_TinyBurningPiece replaces TinyBurningPiece2
{
	Scale 0.75
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetScale(-1 * scaleX,scaleY)//Random flip X
		CFCF JKLM 1 BRIGHT
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1045)==4, 2)
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1045)!=0, "StopBurning")
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "SpawnSimple")
	Idle:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		CFCF ABCD 1 BRIGHT
	//xx	TNT1 A 0 A_Explode(4, 40)
		CFCF EFGHIJKLM 1 BRIGHT
		TNT1 A 0 A_Jump(24, "StopBurning")
		Loop
	SpawnSimple:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		CFCE ABCD 1 BRIGHT
	//xx	TNT1 A 0 A_Explode(4, 40)
		CFCE EFGHIJKLM 1 BRIGHT
		TNT1 A 0 A_Jump(24, "StopBurningSimple")
		Loop
	}
}

ACTOR U_TinyBurningPiece3: U_TinyBurningPiece replaces TinyBurningPiece3
{
	Scale 0.50
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetScale(-1 * scaleX,scaleY)//Random flip X
		CFCF JKLM 1 BRIGHT
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1045)==4, 2)
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1045)!=0, "StopBurning")
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "SpawnSimple")
	Idle:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		CFCF ABCDEFGHIJKLM 1 BRIGHT
	//xx	TNT1 A 0 A_Explode(4, 30)
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		CFCF ABCDEFGHIJKLM 1 BRIGHT
		TNT1 A 0 A_Jump(32, "StopBurning")
		Loop
	SpawnSimple:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		CFCE ABCDEFGHIJKLM 1 BRIGHT
	//xx	TNT1 A 0 A_Explode(4, 30)
		CFCE ABCDEFGHIJKLM 1 BRIGHT
		TNT1 A 0 A_Jump(32, "StopBurningSimple")
		Loop
	}
}


ACTOR U_TinyBurningPieceInfinite: U_TinyBurningPiece replaces TinyBurningPieceInfinite
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		TNT1 A 0 A_Jump(128,2)
		TNT1 A 0 A_SetScale(-1 * scaleX,scaleY)//Random flip X
		CFCF JKLM 1 BRIGHT
	//	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1045)==4, 2)
	//	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1045)!=0, "StopBurning")
	//	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "SpawnSimple")
	Idle:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		CFCF ABCD 1 BRIGHT
	//xx	TNT1 A 0 A_Explode(5, 50)
		CFCF EFGHIJKLM 1 BRIGHT
		TNT1 A 0 A_GiveInventory("IdleCounter",1)
		TNT1 A 0 A_JumpIfInventory("IdleCounter",50,"StopBurning")
		Loop
	SpawnSimple:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		CFCE ABCD 1 BRIGHT
	//xx	TNT1 A 0 A_Explode(5, 50)
		CFCE EFGHIJKLM 1 BRIGHT
		TNT1 A 0 A_GiveInventory("IdleCounter",1)
		TNT1 A 0 A_JumpIfInventory("IdleCounter",50,"StopBurningSimple")
		Loop
	}
}

ACTOR U_RealisticFireSparksLoop: RealisticFireSparks1 replaces RealisticFireSparksLoop
{
	Scale 0.4
	States
	{
    Spawn:
        SPFN ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 BRIGHT
		TNT1 A 0 A_GiveInventory("IdleCounter",1)
		TNT1 A 0 A_JumpIfInventory("IdleCounter",25,"StopBurning")
        Loop
	StopBurning:
		TNT1 A 0
		Stop
	}
}

ACTOR U_SmallFireFocus replaces SmallFireFocus24
{
	Radius 0
	Height 0
	+NOBLOCKMAP
	+NOTELEPORT
	+DONTSPLASH
	+EXPLODEONWATER
	+MOVEWITHSECTOR
	Damagetype "Burn"
	Alpha 0.9
	RenderStyle Add
	Scale 0.7
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		FLME KLMN 1 BRIGHT A_SpawnItem("RedFlareSmall", 0, 15)
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1045)==4, "Idle")
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1045)!=0, "StopBurning")
	Idle:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		FLME A 1 BRIGHT A_CustomMissile("MinimalFlameTrails", 24, 0, random(0, 360), 2, random(70, 110))
		FLME BCD 1 BRIGHT A_SpawnItem("RedFlareSmall", 0, 15)
		FLME E 1 BRIGHT A_CustomMissile("MinimalFlameTrails", 24, 0, random(0, 360), 2, random(70, 110))
		FLME FGH 1 BRIGHT A_SpawnItem("RedFlareSmall", 0, 15)
		FLME I 1 BRIGHT A_CustomMissile("MinimalFlameTrails", 24, 0, random(0, 360), 2, random(60, 130))
		FLME JKL 1 BRIGHT A_SpawnItem("RedFlareSmall", 0, 15)
		FLME M 1 BRIGHT A_CustomMissile("MinimalFlameTrails", 24, 0, random(0, 360), 2, random(60, 130))
		FLME N 1 BRIGHT A_SpawnItem("RedFlareSmall", 0, 15)
		TNT1 A 0 A_Explode(8, 60)
		TNT1 A 0 A_GiveInventory("IdleCounter",1)
		TNT1 A 0 A_JumpIfInventory("IdleCounter",10,1)
		Goto Idle
		TNT1 A 0 A_Jump(32, "StopBurning")
		Goto Idle
	StopBurning:
		TNT1 AAAAA 3 A_CustomMissile("MinimalFlameTrails", 2, 0, random(0, 360), 2, random(60, 130))
		TNT1 AAA 8 A_CustomMissile("MinimalFlameTrails", 2, 0, random(0, 360), 2, random(60, 130))
		Stop
	Death:
		TNT1 A 2
		Stop
	Underwater:
		TNT1 AA 1 A_CustomMissile("BUBULZ", 0, 0, random(0, 360), 2, random(90, 180))
		Stop
	}
}

ACTOR U_FlyingBurningFuelSmall //replaces FlyingBurningFuelSmall
{
	Radius 8
	Height 8
	Speed 11
	Scale 0.6
	Mass 1
	Damage 3
	+NOBLOCKMAP
	+MISSILE
	+NOTELEPORT
	+MOVEWITHSECTOR
	+BLOODLESSIMPACT 
	-DONTSPLASH
	+THRUGHOST
	-DOOMBOUNCe
	BounceFactor 0.1
	damagetype "Burn"
	Decal BigScorch
	Mass 1
	States
	{
	Spawn:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		TNT1 A 1 A_CustomMissile("FlameTrails", 0, 0, random(0, 360), 2, random(0, 180))
		Loop
	Death:
		TNT1 AAAAAA 0 A_CustomMissile("FlameTrails", 0, 0, random(0, 360), 2, random(0, 180))
		TNT1 A 0 A_SpawnItemEx("ExplosionSimpleSmokeColumn",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx("DetectFloorCraterNoSplashes",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	Idle:
		TNT1 A 0 A_Playsound("props/redfire")
		F1RE ABCD 1 BRIGHT A_SpawnItem("RedFlareMedium",0,32)
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		F1RE EFGH 1 BRIGHT A_SpawnItem("RedFlareMedium",0,32)
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		TNT1 A 0 A_Explode(8, 60)
		F2RE ABCD 1 BRIGHT A_SpawnItem("RedFlareMedium",0,32)
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		F2RE EFGH 1 BRIGHT A_SpawnItem("RedFlareMedium",0,32)
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		TNT1 A 0 A_Explode(8, 60)
		TNT1 A 0 A_GiveInventory("IdleCounter",1)
		TNT1 A 0 A_JumpIfInventory("IdleCounter",15,1)
		Goto Idle
		TNT1 A 0 A_Jump(32, "StopBurning")
		Goto Idle
	StopBurning:
		TNT1 AAAAAA 3 BRIGHT A_CustomMissile("RealFlameTrailsSmall", 2, 0, random(0, 360), 2, random(60, 130))
		TNT1 AAAAA 4 BRIGHT A_CustomMissile("MinimalFlameTrails", 2, 0, random(0, 360), 2, random(60, 130))
		TNT1 AAA 8 BRIGHT A_CustomMissile("MinimalFlameTrails", 2, 0, random(0, 360), 2, random(60, 130))
		Stop
	Underwater:
		TNT1 AAAA 1 A_CustomMissile("BUBULZ", 0, 0, random(0, 360), 2, random(0, 180))
		Stop
	}
}	


// --------------------------------------------------------------------------
//
//	Updated Particles
//
// --------------------------------------------------------------------------

Actor U_BluePlasmaParticle replaces BluePlasmaParticle
{
	Height 1
	Radius 1
	Mass 0
	+Missile
	+NoBlockMap
	+DontSplash
	+DoomBounce
	+FORCEXYBILLBOARD
	+NOTELEPORT
	+MOVEWITHSECTOR
	BounceFactor 0.3
	WallBounceFactor 0.5
	Gravity 0.8
	RenderStyle Add
	Scale 0.035
	Speed 12
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_ScaleVelocity(frandom(0.5,1.3))
		TNT1 A 0 A_Jump(256,1,2,3,4,5,6,7,8,9,10)
		SPKB AAAAAAAAAAAAAAA 1 Bright
	Death:
	//	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "NoFade")
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Fade1:
		SPKB AAAAAAAAAAAAAAA 1 Bright A_SetScale(ScaleX * 0.72, ScaleY * 0.72)
		Stop
	Fade2:
		SPKB AAAAAAAAAAAAAAA 1 Bright A_SetScale(ScaleX * 0.78, ScaleY * 0.78)
		Stop
	Fade3:
		SPKB AAAAAAAAAAAAAAA 1 Bright A_SetScale(ScaleX * 0.84, ScaleY * 0.84)
		Stop
	NoFade:
		SPKB A 8 Bright
		Stop
	}
}

ACTOR U_ShotgunParticles replaces ShotgunParticles
{
	Radius 1
	Height 1
	Mass 0
	+MISSILE
	+NOBLOCKMAP
	+DONTSPLASH
	+FORCEXYBILLBOARD
	+NOTELEPORT
	+EXPLODEONWATER
	+MOVEWITHSECTOR
	Gravity 0.6
	RenderStyle Add
	Scale 0.07
	Speed 20
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Splash")
		TNT1 A 0 A_ScaleVelocity(frandom(0.8,1.3))
		SPRK S 6 Bright
		TNT1 A 0 A_ChangeFlag(NOGRAVITY, 0)
	//	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "NoFade")
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Fade1:
		SPRK SSSSSSSSSSSSSSSSSSSS 1 Bright A_SetScale(ScaleX * 0.78, ScaleY * 0.78)
		Stop
	Fade2:
		SPRK SSSSSSSSSSSSSSSSSSSS 1 Bright A_SetScale(ScaleX * 0.84, ScaleY * 0.84)
		Stop
	Fade3:
		SPRK SSSSSSSSSSSSSSSSSSSS 1 Bright A_SetScale(ScaleX * 0.90, ScaleY * 0.90)
		Stop
	Death:
	//	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1045)!=0, "Splash")
	//	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "NoFade")
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Splash:
		SPRK SSSSSSSSSS 1 Bright A_SetScale(ScaleX * 0.65, ScaleY * 0.65)
		Stop
	NoFade:
		SPKB S 10 Bright
		Stop
	}
}

ACTOR U_ExplosionParticleHeavy replaces ExplosionParticleHeavy
{
	Radius 1
	Height 1
	Mass 0
	Gravity 0.5
	+CLIENTSIDEONLY
	+BLOODLESSIMPACT 
	+DOOMBOUNCE
	+THRUACTORS
	+THRUGHOST
	+GHOST
	+MISSILE
	+NOBLOCKMAP
	+DONTSPLASH
	+FORCEXYBILLBOARD
	+NOTELEPORT
	+EXPLODEONWATER
	+MOVEWITHSECTOR
	Gravity 0.6
	RenderStyle Add
	Scale 0.2
	BounceFactor 0.1
	Speed 5
	States
	{
	Spawn:
		SPRK S 2 BRIGHT
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Splash")
		TNT1 A 0 A_ScaleVelocity(frandom(0.8,1.3))
		SPRK S 6 BRIGHT
		TNT1 A 0 A_ChangeFlag(NOGRAVITY, 0)
		SPRK S 6 BRIGHT
	//	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "NoFade")
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Fade1:
		SPRK SSSSSSSSSSSSSSSSSSSS 1 Bright A_SetScale(ScaleX * 0.78, ScaleY * 0.78)
		Stop
	Fade2:
		SPRK SSSSSSSSSSSSSSSSSSSS 1 Bright A_SetScale(ScaleX * 0.84, ScaleY * 0.84)
		Stop
	Fade3:
		SPRK SSSSSSSSSSSSSSSSSSSS 1 Bright A_SetScale(ScaleX * 0.90, ScaleY * 0.90)
		Stop
	Death:
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1045)!=0, "Splash")
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "NoFade")
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Splash:
		SPRK SSSSSSSSSS 1 Bright A_SetScale(ScaleX * 0.65, ScaleY * 0.65)
		Stop
	NoFade:
		SPRK S 10 Bright
		Stop
	}
}

ACTOR U_ExplosionParticleVeryFast: U_ExplosionParticleHeavy replaces ExplosionParticleVeryFast
{
	Speed 18
	Gravity 0.9
}

ACTOR U_ExplosionParticleVerySlow: U_ExplosionParticleHeavy replaces ExplosionParticleVerySlow
{
	Speed 3
	Gravity 0.2
	Scale 0.03
}

Actor U_BFGDeathParticle replaces BFGDeathParticle
{
	Height 0
	Radius 0
	Mass 0
	+Missile
	+NoBlockMap
	-NoGravity
	+LowGravity
	+DontSplash
	+FORCEXYBILLBOARD
	+DoomBounce
	RenderStyle Add
	BounceFactor 0.5
	Scale 0.04
	States
	{
	Spawn:
	Death:
		TNT1 A 0
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "NoFade")
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Fade1:
		SPKG A 2 Bright A_FadeOut(0.01)
		Loop
	Fade2:
		SPKG A 1 Bright A_FadeOut(0.01)
		Loop
	Fade3:
		SPKG A 1 Bright A_FadeOut(0.02)
		Loop
	NoFade:
		TNT1 A 0 A_Jump(256,1,2,3,4,5)
		SPKG AAAAAAAA 8 Bright
		Stop
	}
}

Actor U_BFGSuperParticle : U_BFGDeathParticle replaces BFGSuperParticle
{
	Speed 24
	-LowGravity
	+NoGravity
	-DoomBounce
}

Actor U_BFGExtraParticle replaces BFGExtraParticle
{
	Height 0
	Radius 0
	Mass 0
	Scale 0.035
	+Missile
	+NoBlockMap
	+DontSplash
	+FORCEXYBILLBOARD
	RenderStyle Add
	States
	{
	Spawn:
	Death:
		TNT1 A 0
	//	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "NoFade")
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Fade1:
		SPKG A 1 Bright A_FadeOut(0.03)
		Loop
	Fade2:
		SPKG A 1 Bright A_FadeOut(0.05)
		Loop
	Fade3:
		SPKG A 1 Bright A_FadeOut(0.07)
		Loop
	NoFade:
		TNT1 A 0 A_Jump(256,1,2,3,4,5)
		SPKG AAAAAAA 5 Bright
		Stop
	}
}

Actor U_BFGTrailParticle : U_BFGDeathParticle replaces BFGTrailParticle
{
	Speed 3
	Scale 0.05
	-LowGravity
	+NoGravity
	-DoomBounce
	States
	{
	Spawn:
	Death:
		TNT1 A 0
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "NoFade")
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Fade1:
		SPKG A 1 Bright A_FadeOut(0.01)
		SPKG A 1 Bright A_FadeOut(0.01) //150
		SPKG A 1 Bright
		Loop
	Fade2:
		SPKG A 1 Bright A_FadeOut(0.01) //100
		Loop
	Fade3:
		SPKG A 1 Bright A_FadeOut(0.01)
		SPKG A 1 Bright A_FadeOut(0.01) //75
		SPKG A 1 Bright A_FadeOut(0.02)
		Loop
	NoFade:
		TNT1 A 0 A_Jump(256,1,2,3,4)
		SPKG AAAAAA 15 Bright
		Stop
	}
}

Actor U_BFGDeathParticleFast: U_BFGDeathParticle replaces BFGDeathParticleFast
{
	Speed 10
	Scale 0.1
	States
	{
	Spawn:
	Death:
		SPKG A 11 Bright
	//	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,1)==0, "NoFade")
		SPKG AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 Bright A_FadeOut(0.03)
		Stop
	NoFade:
		SPKG A 25 Bright
		Stop
	}
}

Actor U_BFGDeathParticleSuperFast: BFGDeathParticleFast replaces BFGDeathParticleSuperFast
{
	Speed 20
}


// --------------------------------------------------------------------------
//
//	Things
//
// --------------------------------------------------------------------------

ACTOR MetalShardz1
{
	Game Doom
	Scale 0.15
	Speed 9
	Gravity 0.5
	BounceFactor 0.4
	WallBounceFactor 0.3
	Radius 1
	Height 1
	Damage 0
	+MISSILE
	+CLIENTSIDEONLY
	+NOTELEPORT
	+NOBLOCKMAP
	+BLOODLESSIMPACT 
	+FORCEXYBILLBOARD
	+MOVEWITHSECTOR
	+DOOMBOUNCE
	+DONTSPLASH
	+THRUACTORS
	+THRUGHOST
	+GHOST
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_ScaleVelocity(frandom(0.5,1.5))
	Fly:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Death")
		JNK1 ABCDEFGH 3
		Loop
	Death:
		JNK1 H 800
		JNK1 H 1 A_FadeOut(0.01)
		Wait
	}
}

ACTOR MetalShardz2: MetalShardz1
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_ScaleVelocity(frandom(0.5,1.5))
	Fly:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Death")
		JNK2 ABCDEFGH 3
		Loop
	Death:
		JNK2 C 800
		JNK2 C 1 A_FadeOut(0.01)
		Wait
	}
}

ACTOR MetalShardz3: MetalShardz1
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_ScaleVelocity(frandom(0.5,1.5))
	Fly:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Death")
		JNK3 ABCDEFGH 3
		Loop
	Death:
		JNK3 H 800
		JNK3 H 1 A_FadeOut(0.01)
		Wait
	}
}

Actor U_BUBULZ replaces BUBULZ
{
	Height 0
	Radius 0
	Mass 0
	+Missile
	+NoBlockMap
	+NoGravity
	+FORCEXYBILLBOARD
	+CLIENTSIDEONLY
	+DOOMBOUNCE
	+NOTELEPORT
	+DontSplash
	RenderStyle Add
	Scale 0.5
	Alpha 0.5
	Speed 2
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_ScaleVelocity(frandom(0.2,1.0))
		TNT1 A 0 A_SetScale(frandom(0.2,0.6))
		Goto Idle
	Idle:
		BUBL A 1 A_JumpIf(waterlevel < 1, "Death")
		TNT1 A 0 A_JumpIf((VelZ == 0),"Death")
		TNT1 A 0 A_ChangeVelocity(VelX * 0.95, VelY * 0.95, VelZ, CVF_REPLACE)
		BUBL A 1 A_JumpIf((VelZ < (scaleX * 3)),"Thrust")
		Loop
	Thrust:
		TNT1 A 0 A_ChangeVelocity(VelX, VelY, VelZ+0.05, CVF_REPLACE)
		Goto Idle
	Death:
		TNT1 A 0
		Stop
	}
}

Actor CasingBubulz : U_BUBULZ
{
	Speed 1
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(192, "Death")
		TNT1 A 0 A_ScaleVelocity(frandom(0.2,1.0))
		TNT1 A 0 A_SetScale(frandom(0.10,0.3))
		Goto Idle
	}
}

ACTOR U_EXPLOSIONBUBULZ : U_BUBULZ replaces EXPLOSIONBUBULZ
{
	Speed 6
}