// --------------------------------------------------------------------------
//
//	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 GunBarrelSmoke2: GunBarrelSmoke
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
		SMK2 AAAAA 1 A_FadeIn(0.08)
		SMK2 A 2
		SMK2 AAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_FadeOut(0.04)
		Goto Death
	}
}
ACTOR GunBarrelSmoke3: GunBarrelSmoke
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Stap")
		SMK2 AAAAA 1 A_FadeIn(0.06)
		SMK2 A 2
		SMK2 AAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_FadeOut(0.04)
		Goto Death
	}
}

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
    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
    }
}


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

ACTOR U_ExplosionFlames: FlameTrails replaces ExplosionFlames
{
	Scale 3.3
	Speed 2
	States
	{
    Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256, "Exp1", "Exp2", "Exp3")
	Exp1:
        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
	Exp2:
        EXPL JJ 2 BRIGHT A_SpawnItem("RedFlare",0,0)
		TNT1 AA 0 A_CustomMissile ("ExplosionSmoke", 0, 0, random (0, 360), 2, random (0, 360))
        EXPL KKLLMMNNOOPPQQ 1 BRIGHT A_FadeOut(0.04)
        Stop
	Exp3:
        EXPL RR 2 BRIGHT A_SpawnItem("RedFlare",0,0)
		TNT1 AA 0 A_CustomMissile ("ExplosionSmoke", 0, 0, random (0, 360), 2, random (0, 360))
        EXPL SSTTUUVVWWXXYY 1 BRIGHT A_FadeOut(0.04)
        Stop
	}
}

ACTOR U_MediumExplosionFlames: U_ExplosionFlames replaces MediumExplosionFlames
{
	Scale 1.95
	Speed 2
}

ACTOR U_SmallExplosionFlames: U_ExplosionFlames replaces SmallExplosionFlames
{
	Scale 1.35
	Speed 2
}

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


// --------------------------------------------------------------------------
//
//	Updated Fire
//
// --------------------------------------------------------------------------

ACTOR U_TinyBurningPiece replaces TinyBurningPiece
{
    Radius 0
    Height 0
    +NOBLOCKMAP
    +NOTELEPORT
    +DONTSPLASH
	+EXPLODEONWATER
	Damagetype "Fire"
	Alpha 0.9
	RenderStyle Add
	Scale 1.0
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		CFCF JKLM 1 BRIGHT
		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")
		CFCF ABCD 1 BRIGHT
		TNT1 A 0 A_Explode(1, 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
    }
}

ACTOR U_TinyBurningPiece2: U_TinyBurningPiece replaces TinyBurningPiece2
{
	Scale 0.75
	States
	{
	Idle:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		CFCF ABCD 1 BRIGHT
		TNT1 A 0 A_Explode(1, 40)
		CFCF EFGHIJKLM 1 BRIGHT
		TNT1 A 0 A_Jump(24, "StopBurning")
		Loop
    }
}

ACTOR U_TinyBurningPiece3: U_TinyBurningPiece2 replaces TinyBurningPiece3
{
	Scale 0.50
	States
	{
	Idle:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		CFCF ABCDEFGHIJKLM 1 BRIGHT
		TNT1 A 0 A_Explode(1, 30)
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Underwater")
		CFCF ABCDEFGHIJKLM 1 BRIGHT
		TNT1 A 0 A_Jump(32, "StopBurning")
		Loop
    }
}

ACTOR U_SmallFireFocus replaces SmallFireFocus24
{
    Radius 0
    Height 0
    +NOBLOCKMAP
    +NOTELEPORT
    +DONTSPLASH
	+EXPLODEONWATER
	Damagetype "Fire"
	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(2, 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 Fire
	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(4, 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(4, 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
	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))
	Death:
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Fade1:
		SPKB A 1 Bright A_FadeOut(0.02)
		Wait
	Fade2:
		SPKB A 1 Bright A_FadeOut(0.03)
		Wait
	Fade3:
		SPKB A 1 Bright A_FadeOut(0.04)
		Wait
	}
}

ACTOR U_ShotgunParticles replaces ShotgunParticles
{
	Radius 1
	Height 1
	Mass 0
	+MISSILE
	+NOBLOCKMAP
	+DONTSPLASH
	+FORCEXYBILLBOARD
	+NOTELEPORT
	+EXPLODEONWATER
	Gravity 0.6
	RenderStyle Add
	Scale 0.07
	speed 20
	States
	{
	Spawn:
		TNT1 A 2
		TNT1 A 0 A_JumpIf(waterlevel > 1, "Splash")
		TNT1 A 0 A_ScaleVelocity(frandom(0.8,1.3))
		SPRK SSS 1 Bright A_FadeOut(0.02)
		TNT1 A 0 A_ChangeFlag(NOGRAVITY, 0)
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Fade1:
		SPRK S 1 Bright A_FadeOut(0.04)
		Wait
	Fade2:
		SPRK S 1 Bright A_FadeOut(0.05)
		Wait
	Fade3:
		SPRK S 1 Bright A_FadeOut(0.06)
		Wait
	Death:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1045)!=0, "Splash")
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Splash:
		SPRK SSSSSSSSSS 1 Bright A_FadeOut(0.1)
		Stop
	}
}

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
	+FORCEXYBILLBOARD
	+CLIENTSIDEONLY
	+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 200
		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 200
		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 200
		JNK3 H 1 A_FadeOut(0.01)
        Wait
    }
}

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
	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 SSS 1 BRIGHT
		TNT1 A 0 A_ChangeFlag(NOGRAVITY, 0)
		TNT1 A 0 A_Jump(256,"Fade1","Fade2","Fade3")
	Fade1:
		SPRK S 1 Bright A_FadeOut(0.01)
		SPRK S 1 Bright A_FadeOut(0.02)
		Loop
	Fade2:
		SPRK S 1 Bright A_FadeOut(0.02)
		Loop
	Fade3:
		SPRK S 1 Bright A_FadeOut(0.02)
		SPRK S 1 Bright A_FadeOut(0.03)
		Loop
	Death:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1045)!=0, "Splash")
		SPRK S 1 Bright A_FadeOut(0.1)
		Wait
	Splash:
		SPRK SSSSS 1 Bright A_FadeOut(0.2)
		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_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.20,0.6))
		Goto Idle
	Idle:
		BUBL A 1 A_JumpIf(waterlevel < 1, "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
}