#include "Weapons/Melee.dec"
#include "Weapons/Pistol.dec"
#include "Weapons/Shotgun.dec"
#include "Weapons/SuperShotgun.dec"
#include "Weapons/Chaingun.dec"
#include "Weapons/LaserChaingun.dec"
#include "Weapons/RocketLauncher.dec"
#include "Weapons/GrenadeLauncher.dec"
#include "Weapons/PlasmaRifle.dec"
#include "Weapons/FlameThrower.dec"
#include "Weapons/BFG.dec"
#include "Weapons/FreezeRifle.dec"
#include "Weapons/LightningGun.dec"
#include "Weapons/Railgun.dec"
#include "Pickups/Ammo.dec"
#include "Pickups/Armor.dec"
#include "Pickups/Health.dec"


//------------------------
//Player Class
//-----------------------

 ACTOR DoomerE : DoomPlayer Replaces DoomPlayer
  {
    Player.StartItem "PistolE"
	Player.StartItem "SwitchWaitGiver"
    Player.StartItem "FistE"
    Player.WeaponSlot 2, "PistolE"
    Player.StartItem "Clip", 50

	//Define Slots
	Player.WeaponSlot 1, FistE, ChainsawE
	Player.WeaponSlot 2, PistolE
	Player.WeaponSlot 3, ShotgunE, SuperShotgunE
	Player.WeaponSlot 4, LaserChaingun, ChaingunE
	Player.WeaponSlot 5, GrenadeLE, RocketLauncherE
	Player.WeaponSlot 6, FlameThrowerE, PlasmaRifleE
	Player.WeaponSlot 7, FreezeRifle, BFGE
	Player.WeaponSlot 8, Railgun, LGunE
	PainChance Flame, 256
	PainChance FFlame, 256
	PainChance Flame2, 0
	PainChance Frost, 256
	//PainChance RocketSplash, 256
	+QUICKTORETALIATE
	+USEDAMAGEEVENTSCRIPT
	DamageFactor "Knockout", 5.0
	DamageFactor "RocketJump", 0.0
	
	var int user_frozen;
	
	//Frozen Effect = 9000;
	//Burning Effect = 8000;
	States
	{
	  /*Pain.RocketSplash:
	  tnt1 a 0 ACS_NamedExecuteWithResult("Eon_RJump", TID)
	  PLAY G 4 
	  PLAY G 4 A_Pain
	  Goto Spawn/*/
	  
	  Pain.Flame:
	  Pain.FFlame:
	  TNT1 A 0 ACS_NamedExecuteAlways("Eon_Burning", 0, TID)
	  PLAY G 4 
	  PLAY G 4 A_Pain
	  Goto Spawn
	  
	  Pain.Flame2:
	  Stop
	  
	  Pain.Frost:
	  TNT1 A 0 ACS_NamedExecuteAlways("Freeze_Set", 0, TID, 1)
	  TNT1 A 0 A_ChangeFlag("NOPAIN", 1)
	  TNT1 A 0 A_ChangeFlag("NOBLOOD", 1)
	  TNT1 A 0 ACS_NamedExecuteAlways("Eon_Freeze", 0, TID)
	  PLAY G 45
	  PLAY G 0 ACS_NamedExecuteAlways("Freeze_Set", 0, TID, 0)
	  Goto DeFrost
	  
	  // Instant freeze death
	  Pain.Frost2:
	  PLAY Y 5 Bright
	  Goto Spawn
	  
	  Frost:
	  TNT1 A 0 A_SpawnItemEx("FreezeSmoke2", 24, FRandom(-32, 32), FRandom(40, 50), 0, 0, 0, 0, 0, 0, TID + 9000)
	  TNT1 A 0 A_SpawnItemEx("FreezeSmoke2", -32, FRandom(0, 32), FRandom(32, 50), 0, 0, 0, 0, 0, 0, TID + 9000)
	  TNT1 A 0 A_SpawnItemEx("FreezeSmoke2", -24, FRandom(-32, 0), FRandom(32, 50), 0, 0, 0, 0, 0, 0, TID + 9000)
	  PLAY Y 1 Bright
	  Goto Frost+3
	  
	  Frost2:
	  "####" "#" 0 A_SpawnItemEx("FreezeSmoke2", 24, FRandom(-32, 32), FRandom(40, 50), 0, 0, 0, 0, 0, 0, TID + 9000)
	  "####" "#" 0 A_SpawnItemEx("FreezeSmoke2", -32, FRandom(0, 32), FRandom(32, 50), 0, 0, 0, 0, 0, 0, TID + 9000)
	  "####" "#" 0 A_SpawnItemEx("FreezeSmoke2", -24, FRandom(-32, 0), FRandom(32, 50), 0, 0, 0, 0, 0, 0, TID + 9000)
	  Goto Spawn
	  
	  FrostSkin:
	  TNT1 A 0 A_SpawnItemEx("FreezeSmoke2", 24, FRandom(-32, 32), FRandom(40, 50), 0, 0, 0, 0, 0, 0, TID + 9000)
	  TNT1 A 0 A_SpawnItemEx("FreezeSmoke2", -32, FRandom(0, 32), FRandom(32, 50), 0, 0, 0, 0, 0, 0, TID + 9000)
	  TNT1 A 0 A_SpawnItemEx("FreezeSmoke2", -24, FRandom(-32, 0), FRandom(32, 50), 0, 0, 0, 0, 0, 0, TID + 9000)
	  PLAY G 1 Bright
	  Goto FrostSkin+3
	  
	  DeFrost:
	  TNT1 A 0 A_ChangeFlag("NOPAIN", 0)
	  TNT1 A 0 A_ChangeFlag("NOBLOOD", 0)
	  TNT1 A 0 Thing_Remove(TID + 9000)
	  PLAY G 2
	  Goto Spawn
	  
	  DeFrost2:
	  "####" "#" 0 A_ChangeFlag("NOPAIN", 0)
	  "####" "#" 0 A_ChangeFlag("NOBLOOD", 0)
	  Goto Spawn
	  
	  Death:
	  TNT1 A 0 A_StopSound(6)
	  TNT1 A 0 Thing_Remove(TID + 9000)
	  TNT1 A 0 Thing_Remove(TID + 8000)
	  TNT1 A 0 Thing_ChangeTID(TID, 0)
	  TNT1 A 0 A_TakeInventory("ImBurning", 99)
	  PLAY H 0 A_PlayerSkinCheck("AltSkinDeath")
	  Goto Death1
	  
	  Death.Flame:
	  Death.Flame2:
	  Death.FFlame:
	  TNT1 A 0 A_StopSound(6)
	  TNT1 A 0 Thing_Remove(TID + 9000)
	  TNT1 A 0 Thing_Remove(TID + 8000)
	  TNT1 A 0 Thing_ChangeTID(TID, 0)
	  TNT1 A 0 A_TakeInventory("ImBurning", 99)
	  PLAY H 0 A_PlayerSkinCheck("AltSkinDeath")
	  PBRN A 3 Bright A_PlaySound("pburn")
	  PBRN BC 3 Bright
	  PBRN D 3 Bright A_NoBlocking
	  PBRN EFGHIJKL 5 Bright
	  PBRN M 5 Bright
	  PBRN NOPQ 5 Bright
	  PBRN RSTU 7 Bright
	  PBRN V -1
	  Stop
	  
	  Death.Frost:
	  Death.Frost2:
	  TNT1 A 0 A_StopSound(6)
	  TNT1 A 0 ACS_NamedExecuteAlways("IceGuy_Fix", 0, TID)
	  TNT1 A 0 Thing_Remove(TID + 9000)
	  TNT1 A 0 Thing_Remove(TID + 8000)
	  TNT1 A 0 Thing_ChangeTID(TID, 0)
	  TNT1 A 0 A_TakeInventory("ImBurning", 99)
	  TNT1 A 0 A_PlayerSkinCheck("AltSkinDeath")
	  PLAY Y 1 A_PlayerScream
	  PLAY Y 3 A_NoBlocking
	  PLAY Y 8 A_IceGuyDie
	  TNT1 A -1
	  Stop
	  
	  Death.Laser:
	  TNT1 A 0 A_StopSound(6)
	  TNT1 A 0 Thing_Remove(TID + 9000)
	  TNT1 A 0 Thing_Remove(TID + 8000)
	  TNT1 A 0 Thing_ChangeTID(TID, 0)
	  TNT1 A 0 A_TakeInventory("ImBurning", 99)
	  PDIS A 5 A_PlayerScream
	  PDIS BC 5
	  PDIS D 5 A_NoBlocking
	  PDIS EF 5
	  PDIS GHIJK 4
	  TNT1 A -1
	  Stop
	  
	  XDeath:
	  TNT1 A 0 A_StopSound(6)
	  TNT1 A 0 Thing_Remove(TID + 9000)
	  TNT1 A 0 Thing_Remove(TID + 8000)
	  TNT1 A 0 Thing_ChangeTID(TID, 0)
	  TNT1 A 0 A_TakeInventory("ImBurning", 99)
	  PLAY O 0 A_PlayerSkinCheck("AltSkinXDeath")
	  Goto XDeath1
	}
  }


//*****************
//Player Items
//*****************

 Actor HitSoundItem : CustomInventory
 {
  +Inventory.AUTOACTIVATE
  +Inventory.NOSCREENFLASH
  +Inventory.UNDROPPABLE
  +Inventory.UNTOSSABLE
  Inventory.MaxAmount 0
  Inventory.PickupMessage "testing"
  States
  {
    Spawn:
	TNT1 A -1
	Stop
	
	Use:
	TNT1 A 1 A_PlaySound("lghit", CHAN_ITEM)
	Stop
  }
 }


//********************
//Switch Wait
//********************
//Stop quickswitch if spawning

 ACTOR SwitchWait : Powerup
 {
   Inventory.MaxAmount 1
   Powerup.Duration -2
 }
 
 
 ACTOR SwitchWaitGiver : PowerupGiver
 {
   Inventory.MaxAmount 0
   Powerup.Type "SwitchWait"
   +INVENTORY.AUTOACTIVATE
 }
 
 
//***************
//Nerf Gun
//***************

 ACTOR NerfGun : CustomInventory
 {
   +INVENTORY.ALWAYSPICKUP
   +INVENTORY.QUIET
   +INVENTORY.UNDROPPABLE
   -INVENTORY.INVBAR
   Inventory.MaxAmount 1
   States
   { 
     Use:
	 TNT1 A 0
	 Stop
   }
 }


//***************
//LMS Gun
//***************

 ACTOR LMSGun : CustomInventory
 {
   +INVENTORY.ALWAYSPICKUP
   +INVENTORY.QUIET
   +INVENTORY.UNDROPPABLE
   -INVENTORY.INVBAR
   Inventory.MaxAmount 1
   States
   { 
     Use:
	 TNT1 A 0
	 Stop
   }
 }


//***************
// Ticket Items
//***************

 ACTOR ItemTicket : CustomInventory
 {
   +INVENTORY.ALWAYSPICKUP
   +INVENTORY.QUIET
   +INVENTORY.UNDROPPABLE
   -INVENTORY.INVBAR
   Inventory.MaxAmount 200
   Inventory.Amount 1
   States
   {
     Use:
	 TNT1 A 0
	 Stop
   }
 }

 ACTOR WeaponTicket : CustomInventory
 {
   +INVENTORY.ALWAYSPICKUP
   +INVENTORY.QUIET
   +INVENTORY.UNDROPPABLE
   -INVENTORY.INVBAR
   Inventory.MaxAmount 50
   Inventory.Amount 1
   States
   {
     Use:
	 TNT1 A 0
	 Stop
   }
 }
 
 ACTOR WeaponFull : CustomInventory
 {
   +INVENTORY.ALWAYSPICKUP
   +INVENTORY.QUIET
   +INVENTORY.UNDROPPABLE
   -INVENTORY.INVBAR
   Inventory.MaxAmount 1
   Inventory.Amount 1
   States
   {
     Use:
	 TNT1 A 0
	 Stop
   }
 }
 
 ACTOR SpawnTelefragged : CustomInventory
 {
   +INVENTORY.ALWAYSPICKUP
   +INVENTORY.QUIET
   +INVENTORY.UNDROPPABLE
   -INVENTORY.INVBAR
   Inventory.MaxAmount 1
   Inventory.Amount 1
   States
   {
     Use:
	 TNT1 A 0
	 Stop
   }
 }


//********************
//Sound Items
//********************


 ACTOR PlayingSound : CustomInventory
 {
   +INVENTORY.ALWAYSPICKUP
   +INVENTORY.QUIET
   +INVENTORY.UNDROPPABLE
   -INVENTORY.INVBAR
   Inventory.MaxAmount 1
   States
   { 
     Use:
	 TNT1 A 0
	 Stop
   }
 }


 ACTOR AddNextQueue : CustomInventory
 {
   +INVENTORY.ALWAYSPICKUP
   +INVENTORY.QUIET
   +INVENTORY.UNDROPPABLE
   -INVENTORY.INVBAR
   Inventory.MaxAmount 1
   States
   { 
     Use:
	 TNT1 A 0
	 Stop
   }
 }


//*******************
//Team Color Stuff
//*******************

 ACTOR RedTeamRing : Inventory
 {
  Inventory.Amount 1
  Inventory.Maxamount 1
 }
 

 ACTOR BlueTeamRing : Inventory
 {
  Inventory.Amount 1
  Inventory.Maxamount 1
 }
 
 
 ACTOR GreenTeamRing : Inventory
 {
  Inventory.Amount 1
  Inventory.Maxamount 1
 }
 
 ACTOR GoldTeamRing : Inventory
 {
  Inventory.Amount 1
  Inventory.Maxamount 1
 }
 
 
//-------------------
//Red Plasma Ball
//-------------------
 
 ACTOR RedPlasma : PlasmaBallE
  {
    Decal PlasmaScorchLower
	Translation "241:241=184:184", "193:199=170:179", "202:202=178:178", "205:205=180:180", "200:201=184:185"
  }


//-------------------
//Blue Plasma Ball
//-------------------

 ACTOR BluePlasma : PlasmaBallE
 {
   States
   {
    Spawn:
	BLSS AB 6 Bright
	Loop
	
	Death:
	BLSE ABCDE 4 Bright
	Stop
   }
 }
 

//-------------------
//Green Plasma Ball
//-------------------

 ACTOR GreenPlasma : PlasmaBallE
 {
   Decal PlasmaScorchLower
   States
   {
    Spawn:
	GLSS AB 6 Bright
	Loop
	
	Death:
	GLSE ABCDE 4 Bright
	Stop
   }
 }


//-------------------
//Gold Plasma Ball
//-------------------

 ACTOR GoldPlasma : PlasmaBallE
 {
   Decal PlasmaScorchLower
   States
   {
    Spawn:
	DLSS AB 6 Bright
	Loop
	
	Death:
	DLSE ABCDE 4 Bright
	Stop
   }
 }

//-----------------
//Red Rocket
//-----------------

 ACTOR RedRocket : RocketE
 {
   States
   {
    Spawn:
	MISR A 1 Bright
	Loop
   }
 }


//-----------------
//Blue Rocket
//-----------------

 ACTOR BlueRocket : RocketE
 {
   States
   {
    Spawn:
	MISB A 1 Bright
	Loop
   }
 }


//-----------------
//Green Rocket
//-----------------

 ACTOR GreenRocket : RocketE
 {
   States
   {
    Spawn:
	MIGS A 1 Bright
	Loop
   }
 }
 
 
//-----------------
//Gold Rocket
//-----------------

 ACTOR GoldRocket : RocketE
 {
   States
   {
    Spawn:
	MIDS A 1 Bright
	Loop
   }
 }

//--------------
//Red Grenade
//--------------

 ACTOR RedGrenade : GrenadeE
 {
   States
   {
     Spawn:
	 RGRN A 1 Bright
	 Loop
   }
 }


//--------------
//Blue Grenade
//--------------

 ACTOR BlueGrenade : GrenadeE
 {
   States
   {
     Spawn:
	 BGRN A 1 Bright
	 Loop
   }
 }
 
 
//--------------
//Green Grenade
//--------------

 ACTOR GreenGrenade : GrenadeE
 {
   States
   {
     Spawn:
	 GGRN A 1 Bright
	 Loop
   }
 }
 

//--------------
//Gold Grenade
//--------------

 ACTOR GoldGrenade : GrenadeE
 {
   States
   {
     Spawn:
	 DGRN A 1 Bright
	 Loop
   }
 }
 

//====================
// Flamethrower Fire
//=====================

 ACTOR RedFTFlames : FTFlames
 {
   States
   {
	 Spawn:
	 RLFX ABCABC 3 Bright
	 RLFX D 1 A_Stop
	 TNT1 A 0 A_ChangeFlag("NOINTERACTION", 1)
	 RMFX ABCD 1 Bright
	 RMFX EFG 1 Bright
	 RMFX HIJ 1 Bright
	 TNT1 A 0 A_SpawnItemEx("RedFloorFire", 0, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 RMFX KLM 1 Bright
	 RMFX NOP 1 Bright
	 Stop
	 
	 Death:
	 RMFX HIJ 2 Bright
	 TNT1 A 0 A_CheckCeiling("SpawnOnCeiling")
	 TNT1 A 0 A_CheckFloor("SpawnOnFloor")
	 TNT1 A 0 A_SpawnItemEx("RedFloorFire", -8, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnCeiling:
	 TNT1 A 0 A_SpawnItemEx("RedFloorFire", 0, 0, -28, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnFloor:
	 TNT1 A 0 A_SpawnItemEx("RedFloorFire", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 DeathEnd:
	 RMFX KLM 2 Bright
	 RMFX NOP 2 Bright
	 Stop
	 
	 XDeath:
	 RMFX HIJ 2 Bright
	 TNT1 A 0 A_SpawnItemEx("RedFloorFire", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 RMFX KLM 2 Bright
	 RMFX NOP 2 Bright
	 Stop
   }
 }
 
 ACTOR RedFTFlamesLMS : FTFlames
 {
   States
   {
	 Spawn:
	 RLFX ABCABC 3 Bright
	 RLFX D 1 A_Stop
	 TNT1 A 0 A_ChangeFlag("NOINTERACTION", 1)
	 RMFX ABCD 1 Bright
	 RMFX EFG 1 Bright
	 RMFX HIJ 1 Bright
	 TNT1 A 0 A_SpawnItemEx("RedFloorFireLMS", 0, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 RMFX KLM 1 Bright
	 RMFX NOP 1 Bright
	 Stop
	 
	 Death:
	 RMFX HIJ 2 Bright
	 TNT1 A 0 A_CheckCeiling("SpawnOnCeiling")
	 TNT1 A 0 A_CheckFloor("SpawnOnFloor")
	 TNT1 A 0 A_SpawnItemEx("RedFloorFireLMS", -8, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnCeiling:
	 TNT1 A 0 A_SpawnItemEx("RedFloorFireLMS", 0, 0, -28, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnFloor:
	 TNT1 A 0 A_SpawnItemEx("RedFloorFireLMS", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 DeathEnd:
	 RMFX KLM 2 Bright
	 RMFX NOP 2 Bright
	 Stop
	 
	 XDeath:
	 RMFX HIJ 2 Bright
	 TNT1 A 0 A_SpawnItemEx("RedFloorFireLMS", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 RMFX KLM 2 Bright
	 RMFX NOP 2 Bright
	 Stop
   }
 }

 Actor RedFloorFire : FloorFire
 {
   States
   {
     A:
	 RRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_ChangeFlag("NoInteraction", false)
	 RRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 RRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 D:
	 RRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 RRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 I:
	 RRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 RRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 M:
	 RRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 RRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
   }
 }

 Actor RedFloorFireLMS : FloorFire
 {
   States
   {
     A:
	 RRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_ChangeFlag("NoInteraction", false)
	 RRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 RRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 RRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 D:
	 RRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 RRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 RRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 I:
	 RRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 RRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 RRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 M:
	 RRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 RRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 RRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 RRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
   }
 }

//-----------
// Blue
//-----------

 ACTOR BlueFTFlames : FTFlames
 {
   States
   {
	 Spawn:
	 BLFX ABCABC 3 Bright
	 BLFX D 1 A_Stop
	 TNT1 A 0 A_ChangeFlag("NOINTERACTION", 1)
	 BMFX ABCD 1 Bright
	 BMFX EFG 1 Bright
	 BMFX HIJ 1 Bright
	 TNT1 A 0 A_SpawnItemEx("BlueFloorFire", 0, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 BMFX KLM 1 Bright
	 BMFX NOP 1 Bright
	 Stop
	 
	 Death:
	 BMFX HIJ 2 Bright
	 TNT1 A 0 A_CheckCeiling("SpawnOnCeiling")
	 TNT1 A 0 A_CheckFloor("SpawnOnFloor")
	 TNT1 A 0 A_SpawnItemEx("BlueFloorFire", -8, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnCeiling:
	 TNT1 A 0 A_SpawnItemEx("BlueFloorFire", 0, 0, -28, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnFloor:
	 TNT1 A 0 A_SpawnItemEx("BlueFloorFire", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 DeathEnd:
	 BMFX KLM 2 Bright
	 BMFX NOP 2 Bright
	 Stop
	 
	 XDeath:
	 BMFX HIJ 2 Bright
	 TNT1 A 0 A_SpawnItemEx("BlueFloorFire", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 BMFX KLM 2 Bright
	 BMFX NOP 2 Bright
	 Stop
   }
 }

 ACTOR BlueFTFlamesLMS : FTFlames
 {
   States
   {
	 Spawn:
	 BLFX ABCABC 3 Bright
	 BLFX D 1 A_Stop
	 TNT1 A 0 A_ChangeFlag("NOINTERACTION", 1)
	 BMFX ABCD 1 Bright
	 BMFX EFG 1 Bright
	 BMFX HIJ 1 Bright
	 TNT1 A 0 A_SpawnItemEx("BlueFloorFireLMS", 0, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 BMFX KLM 1 Bright
	 BMFX NOP 1 Bright
	 Stop
	 
	 Death:
	 BMFX HIJ 2 Bright
	 TNT1 A 0 A_CheckCeiling("SpawnOnCeiling")
	 TNT1 A 0 A_CheckFloor("SpawnOnFloor")
	 TNT1 A 0 A_SpawnItemEx("BlueFloorFireLMS", -8, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnCeiling:
	 TNT1 A 0 A_SpawnItemEx("BlueFloorFireLMS", 0, 0, -28, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnFloor:
	 TNT1 A 0 A_SpawnItemEx("BlueFloorFireLMS", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 DeathEnd:
	 BMFX KLM 2 Bright
	 BMFX NOP 2 Bright
	 Stop
	 
	 XDeath:
	 BMFX HIJ 2 Bright
	 TNT1 A 0 A_SpawnItemEx("BlueFloorFireLMS", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 BMFX KLM 2 Bright
	 BMFX NOP 2 Bright
	 Stop
   }
 }

 Actor BlueFloorFire : FloorFire
 {
   States
   {
     A:
	 BRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_ChangeFlag("NoInteraction", false)
	 BRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 BRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 D:
	 BRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 BRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 I:
	 BRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 BRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 M:
	 BRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 BRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
   }
 }

 Actor BlueFloorFireLMS : FloorFire
 {
   States
   {
     A:
	 BRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_ChangeFlag("NoInteraction", false)
	 BRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 BRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 BRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 D:
	 BRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 BRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 BRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 I:
	 BRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 BRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 BRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 M:
	 BRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 BRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 BRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 BRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
   }
 }

//-----------
// Green
//-----------

 ACTOR GreenFTFlames : FTFlames
 {
   States
   {
	 Spawn:
	 GLFX ABCABC 3 Bright
	 GLFX D 1 A_Stop
	 TNT1 A 0 A_ChangeFlag("NOINTERACTION", 1)
	 GMFX ABCD 1 Bright
	 GMFX EFG 1 Bright
	 GMFX HIJ 1 Bright
	 TNT1 A 0 A_SpawnItemEx("GreenFloorFire", 0, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 GMFX KLM 1 Bright
	 GMFX NOP 1 Bright
	 Stop
	 
	 Death:
	 GMFX HIJ 2 Bright
	 TNT1 A 0 A_CheckCeiling("SpawnOnCeiling")
	 TNT1 A 0 A_CheckFloor("SpawnOnFloor")
	 TNT1 A 0 A_SpawnItemEx("GreenFloorFire", -8, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnCeiling:
	 TNT1 A 0 A_SpawnItemEx("GreenFloorFire", 0, 0, -28, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnFloor:
	 TNT1 A 0 A_SpawnItemEx("GreenFloorFire", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 DeathEnd:
	 GMFX KLM 2 Bright
	 GMFX NOP 2 Bright
	 Stop
	 
	 XDeath:
	 GMFX HIJ 2 Bright
	 TNT1 A 0 A_SpawnItemEx("GreenFloorFire", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 GMFX KLM 2 Bright
	 GMFX NOP 2 Bright
	 Stop
   }
 }

 ACTOR GreenFTFlamesLMS : FTFlames
 {
   States
   {
	 Spawn:
	 GLFX ABCABC 3 Bright
	 GLFX D 1 A_Stop
	 TNT1 A 0 A_ChangeFlag("NOINTERACTION", 1)
	 GMFX ABCD 1 Bright
	 GMFX EFG 1 Bright
	 GMFX HIJ 1 Bright
	 TNT1 A 0 A_SpawnItemEx("GreenFloorFireLMS", 0, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 GMFX KLM 1 Bright
	 GMFX NOP 1 Bright
	 Stop
	 
	 Death:
	 GMFX HIJ 2 Bright
	 TNT1 A 0 A_CheckCeiling("SpawnOnCeiling")
	 TNT1 A 0 A_CheckFloor("SpawnOnFloor")
	 TNT1 A 0 A_SpawnItemEx("GreenFloorFireLMS", -8, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnCeiling:
	 TNT1 A 0 A_SpawnItemEx("GreenFloorFireLMS", 0, 0, -28, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnFloor:
	 TNT1 A 0 A_SpawnItemEx("GreenFloorFireLMS", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 DeathEnd:
	 GMFX KLM 2 Bright
	 GMFX NOP 2 Bright
	 Stop
	 
	 XDeath:
	 GMFX HIJ 2 Bright
	 TNT1 A 0 A_SpawnItemEx("GreenFloorFireLMS", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 GMFX KLM 2 Bright
	 GMFX NOP 2 Bright
	 Stop
   }
 }
 
 Actor GreenFloorFire : FloorFire
 {
   States
   {
     A:
	 GRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_ChangeFlag("NoInteraction", false)
	 GRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 GRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 D:
	 GRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 GRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 I:
	 GRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 GRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 M:
	 GRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 GRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
   }
 }

 Actor GreenFloorFireLMS : FloorFire
 {
   States
   {
     A:
	 GRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_ChangeFlag("NoInteraction", false)
	 GRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 GRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 GRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 D:
	 GRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 GRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 GRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 I:
	 GRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 GRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 GRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 M:
	 GRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 GRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 GRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 GRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
   }
 }

//-----------
// Gold
//-----------

 ACTOR GoldFTFlames : FTFlames
 {
   States
   {
	 Spawn:
	 YLFX ABCABC 3 Bright
	 YLFX D 1 A_Stop
	 TNT1 A 0 A_ChangeFlag("NOINTERACTION", 1)
	 YMFX ABCD 1 Bright
	 YMFX EFG 1 Bright
	 YMFX HIJ 1 Bright
	 TNT1 A 0 A_SpawnItemEx("GoldFloorFire", 0, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 YMFX KLM 1 Bright
	 YMFX NOP 1 Bright
	 Stop
	 
	 Death:
	 YMFX HIJ 2 Bright
	 TNT1 A 0 A_CheckCeiling("SpawnOnCeiling")
	 TNT1 A 0 A_CheckFloor("SpawnOnFloor")
	 TNT1 A 0 A_SpawnItemEx("GoldFloorFire", -8, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnCeiling:
	 TNT1 A 0 A_SpawnItemEx("GoldFloorFire", 0, 0, -28, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnFloor:
	 TNT1 A 0 A_SpawnItemEx("GoldFloorFire", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 DeathEnd:
	 YMFX KLM 2 Bright
	 YMFX NOP 2 Bright
	 Stop
	 
	 XDeath:
	 YMFX HIJ 2 Bright
	 TNT1 A 0 A_SpawnItemEx("GoldFloorFire", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 YMFX KLM 2 Bright
	 YMFX NOP 2 Bright
	 Stop
   }
 }

 ACTOR GoldFTFlamesLMS : FTFlames
 {
   States
   {
	 Spawn:
	 YLFX ABCABC 3 Bright
	 YLFX D 1 A_Stop
	 TNT1 A 0 A_ChangeFlag("NOINTERACTION", 1)
	 YMFX ABCD 1 Bright
	 YMFX EFG 1 Bright
	 YMFX HIJ 1 Bright
	 TNT1 A 0 A_SpawnItemEx("GoldFloorFireLMS", 0, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 YMFX KLM 1 Bright
	 YMFX NOP 1 Bright
	 Stop
	 
	 Death:
	 YMFX HIJ 2 Bright
	 TNT1 A 0 A_CheckCeiling("SpawnOnCeiling")
	 TNT1 A 0 A_CheckFloor("SpawnOnFloor")
	 TNT1 A 0 A_SpawnItemEx("GoldFloorFireLMS", -8, 0, -8, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnCeiling:
	 TNT1 A 0 A_SpawnItemEx("GoldFloorFireLMS", 0, 0, -28, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 SpawnOnFloor:
	 TNT1 A 0 A_SpawnItemEx("GoldFloorFireLMS", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 Goto DeathEnd
	 
	 DeathEnd:
	 YMFX KLM 2 Bright
	 YMFX NOP 2 Bright
	 Stop
	 
	 XDeath:
	 YMFX HIJ 2 Bright
	 TNT1 A 0 A_SpawnItemEx("GoldFloorFireLMS", 0, 0, 0, 0, 0, 0, 0, SXF_TRANSFERPOINTERS)
	 YMFX KLM 2 Bright
	 YMFX NOP 2 Bright
	 Stop
   }
 }
 
 Actor GoldFloorFire : FloorFire
 {
   States
   {
     A:
	 YRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_ChangeFlag("NoInteraction", false)
	 YRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 YRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 D:
	 YRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 YRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 I:
	 YRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 YRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 M:
	 YRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 YRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
   }
 }
 
 Actor GoldFloorFireLMS : FloorFire
 {
   States
   {
     A:
	 YRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_ChangeFlag("NoInteraction", false)
	 YRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 YRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 YRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX A 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX BCDEFGHIJKLMN 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 D:
	 YRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 YRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 YRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX D 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX EFGHIJKLMNABC 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 I:
	 YRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 YRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 YRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX I 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX JKLMNABCEFGH 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
	 
	 M:
	 YRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame")
	 YRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 TNT1 A 0 A_PlaySound("Flamethrower/Flame", CHAN_AUTO)
	 YRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX M 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 YRFX NABCEFGHIJKL 2 Bright A_Explode((1), 40, XF_HURTSOURCE, 0, 40)
	 Goto Death
   }
 }


//====================
// Freeze Blasts
//===================

//-----------
// Red
//-----------

Actor RedFreezeBlast : FreezeBlast
{
	States
	{
		Spawn:
		RICE I 2 A_SpawnItemEx("RedFreezeSmoke")
		RICE J 2 A_SpawnItemEx("RedFreezeSmoke")
		RICE K 2 A_SpawnItemEx("RedFreezeSmoke")
		RICE L 2 A_SpawnItemEx("RedFreezeSmoke")
		TNT1 A 0 A_PlaySound("frfly", CHAN_AUTO, 1.0, 1)
		Spawn2:
		RICE I 2 A_SpawnItemEx("RedFreezeSmoke")
		RICE J 2 A_SpawnItemEx("RedFreezeSmoke")
		RICE K 2 A_SpawnItemEx("RedFreezeSmoke")
		RICE L 2 A_SpawnItemEx("RedFreezeSmoke")
		Loop

		Death:
		TNT1 A 0 A_SpawnItemEx("RedFreezePillar", FRandom(32, 64), 0)
		TNT1 A 0 A_SpawnItemEx("RedFreezePillar", FRandom(-32, -64), 0)
		TNT1 A 0 A_SpawnItemEx("RedFreezePillar", 0, FRandom(32, 64))
		TNT1 A 0 A_SpawnItemEx("RedFreezePillar", 0, FRandom(-32, 64))
		TNT1 A 0 A_SpawnItemEx("RedFreezePillar", FRandom(32, 64), 0, 0, 0, 0, 0, 45)
		TNT1 A 0 A_SpawnItemEx("RedFreezePillar", FRandom(32, 64), 0, 0, 0, 0, 0, 135)
		TNT1 A 0 A_SpawnItemEx("RedFreezePillar", FRandom(32, 64), 0, 0, 0, 0, 0, 225)
		TNT1 A 0 A_SpawnItemEx("RedFreezePillar", FRandom(32, 64), 0, 0, 0, 0, 0, 315)
		TNT1 A 0 A_SpawnItemEx("RedFreezePillar", FRandom(96, 128), 0)
		TNT1 A 0 A_SpawnItemEx("RedFreezePillar", FRandom(-96, -128), 0)
		TNT1 A 0 A_SpawnItemEx("RedFreezePillar", 0, FRandom(96, 128))
		TNT1 A 0 A_SpawnItemEx("RedFreezePillar", 0, FRandom(-96, 128))
		RSMK BC 3
		Stop   
	}
}


Actor RedFreezePillar : FreezePillar
{
	States
	{
		Spawn:
		RGIC ABCDEFG 1
		RGIC G 70 Bright
		Goto Death

		Death:
		RGIC GFEDCBA 1
		Stop
	}
}


Actor RedFreezeSmoke : FreezeSmoke
{
	States
	{
		Spawn:
		RTRL ABCDE 4
		Stop
	}
}


//-----------
// Green
//-----------

Actor GreenFreezeBlast : FreezeBlast
{
	States
	{
		Spawn:
		GICE I 2 A_SpawnItemEx("GreenFreezeSmoke")
		GICE J 2 A_SpawnItemEx("GreenFreezeSmoke")
		GICE K 2 A_SpawnItemEx("GreenFreezeSmoke")
		GICE L 2 A_SpawnItemEx("GreenFreezeSmoke")
		TNT1 A 0 A_PlaySound("frfly", CHAN_AUTO, 1.0, 1)
		Spawn2:
		GICE I 2 A_SpawnItemEx("GreenFreezeSmoke")
		GICE J 2 A_SpawnItemEx("GreenFreezeSmoke")
		GICE K 2 A_SpawnItemEx("GreenFreezeSmoke")
		GICE L 2 A_SpawnItemEx("GreenFreezeSmoke")
		Loop

		Death:
		TNT1 A 0 A_SpawnItemEx("GreenFreezePillar", FRandom(32, 64), 0)
		TNT1 A 0 A_SpawnItemEx("GreenFreezePillar", FRandom(-32, -64), 0)
		TNT1 A 0 A_SpawnItemEx("GreenFreezePillar", 0, FRandom(32, 64))
		TNT1 A 0 A_SpawnItemEx("GreenFreezePillar", 0, FRandom(-32, 64))
		TNT1 A 0 A_SpawnItemEx("GreenFreezePillar", FRandom(32, 64), 0, 0, 0, 0, 0, 45)
		TNT1 A 0 A_SpawnItemEx("GreenFreezePillar", FRandom(32, 64), 0, 0, 0, 0, 0, 135)
		TNT1 A 0 A_SpawnItemEx("GreenFreezePillar", FRandom(32, 64), 0, 0, 0, 0, 0, 225)
		TNT1 A 0 A_SpawnItemEx("GreenFreezePillar", FRandom(32, 64), 0, 0, 0, 0, 0, 315)
		TNT1 A 0 A_SpawnItemEx("GreenFreezePillar", FRandom(96, 128), 0)
		TNT1 A 0 A_SpawnItemEx("GreenFreezePillar", FRandom(-96, -128), 0)
		TNT1 A 0 A_SpawnItemEx("GreenFreezePillar", 0, FRandom(96, 128))
		TNT1 A 0 A_SpawnItemEx("GreenFreezePillar", 0, FRandom(-96, 128))
		GSMK BC 3
		Stop   
	}
}


Actor GreenFreezePillar : FreezePillar
{
	States
	{
		Spawn:
		GGIC ABCDEFG 1
		GGIC G 70 Bright
		Goto Death

		Death:
		GGIC GFEDCBA 1
		Stop
	}
}


Actor GreenFreezeSmoke : FreezeSmoke
{
	States
	{
		Spawn:
		GTRL ABCDE 4
		Stop
	}
}


//-----------
// Gold
//-----------

Actor GoldFreezeBlast : FreezeBlast
{
	States
	{
		Spawn:
		YICE I 2 A_SpawnItemEx("GoldFreezeSmoke")
		YICE J 2 A_SpawnItemEx("GoldFreezeSmoke")
		YICE K 2 A_SpawnItemEx("GoldFreezeSmoke")
		YICE L 2 A_SpawnItemEx("GoldFreezeSmoke")
		TNT1 A 0 A_PlaySound("frfly", CHAN_AUTO, 1.0, 1)
		Spawn2:
		YICE I 2 A_SpawnItemEx("GoldFreezeSmoke")
		YICE J 2 A_SpawnItemEx("GoldFreezeSmoke")
		YICE K 2 A_SpawnItemEx("GoldFreezeSmoke")
		YICE L 2 A_SpawnItemEx("GoldFreezeSmoke")
		Loop

		Death:
		TNT1 A 0 A_SpawnItemEx("GoldFreezePillar", FRandom(32, 64), 0)
		TNT1 A 0 A_SpawnItemEx("GoldFreezePillar", FRandom(-32, -64), 0)
		TNT1 A 0 A_SpawnItemEx("GoldFreezePillar", 0, FRandom(32, 64))
		TNT1 A 0 A_SpawnItemEx("GoldFreezePillar", 0, FRandom(-32, 64))
		TNT1 A 0 A_SpawnItemEx("GoldFreezePillar", FRandom(32, 64), 0, 0, 0, 0, 0, 45)
		TNT1 A 0 A_SpawnItemEx("GoldFreezePillar", FRandom(32, 64), 0, 0, 0, 0, 0, 135)
		TNT1 A 0 A_SpawnItemEx("GoldFreezePillar", FRandom(32, 64), 0, 0, 0, 0, 0, 225)
		TNT1 A 0 A_SpawnItemEx("GoldFreezePillar", FRandom(32, 64), 0, 0, 0, 0, 0, 315)
		TNT1 A 0 A_SpawnItemEx("GoldFreezePillar", FRandom(96, 128), 0)
		TNT1 A 0 A_SpawnItemEx("GoldFreezePillar", FRandom(-96, -128), 0)
		TNT1 A 0 A_SpawnItemEx("GoldFreezePillar", 0, FRandom(96, 128))
		TNT1 A 0 A_SpawnItemEx("GoldFreezePillar", 0, FRandom(-96, 128))
		YSMK BC 3
		Stop   
	}
}


Actor GoldFreezePillar : FreezePillar
{
	States
	{
		Spawn:
		YGIC ABCDEFG 1
		YGIC G 70 Bright
		Goto Death

		Death:
		YGIC GFEDCBA 1
		Stop
	}
}


Actor GoldFreezeSmoke : FreezeSmoke
{
	States
	{
		Spawn:
		YTRL ABCDE 4
		Stop
	}
}