//====================================
// Formatted and Cleaned by Ru5tK1ng
//------------------------------------
//====================================

  Actor AtomicFireBoss : BaseMM8BDMWep_CBM
  {
	Tag "Heatman Boss"
	DropItem "AtomicFireWepCDropped"
	Weapon.AmmoUse 0
	Weapon.AmmoGive 28
	Obituary "$OB_ATOMICFIRE2"
	Inventory.PickupMessage "Power up! Atomic Shield!"
	Weapon.AmmoType "ZippoAmmo"
	Inventory.Icon "HeatIco1"
	+WEAPON.NOAUTOAIM
	States
	{
		Spawn:
		C_02 G 1
		Loop
		
		Ready:
		HEHD A 0 ACS_ExecuteAlways(998,0,DYE_HEATMAN)
		HEHD A 0 A_GunFlash
		HEHD A 0 A_JumpIfInventory("HeatShieldFrame",1,"ShieldUp")
		HEHD A 1 A_WeaponReady(WRF_ALLOWRELOAD)
		goto Ready+2
		
		Deselect:
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Lower
		HEHD A 1 A_Lower
		Loop
		
		Select:
		TNT1 AAAAAAAAAAAAAAAAAAAAAA 0 A_Raise
		HEHD A 1 A_Raise
		Loop
		
		Fire:
		HEHD A 0 A_PlaySoundEx("weapon/atomicfire","Weapon")
		HEHD B 1
		HEHD C 1
		TNT1 A 1 Offset(0,90)
		//HEHD A 0 A_PlaySoundEx("weapon/atomicfire","Weapon")
		HEHD C 0 A_JumpIfInventory("HeatmanDashFlag",200,"Fire5")
		HEHD C 0 A_JumpIfInventory("HeatmanDashFlag",150,"Fire4")
		HEHD C 0 A_JumpIfInventory("HeatmanDashFlag",100,"Fire3")
		HEHD C 0 A_JumpIfInventory("HeatmanDashFlag",50,"Fire2")
		Fire1:
		HEHD E 0 A_GiveInventory("HeatmanMain1_CI",1)
		//HEHD E 0 A_TakeInventory("HeatmanDashFlag",25)
		HEHD E 1 Offset(0,56)
		HEHD E 1 Offset(0,48)
		HEHD E 12 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		HEHD FA 1
		HEHD E 0 A_Refire
		Goto Ready+2
		
		Fire2:
		//HEHD C 0 A_GiveInventory("HeatmanDashCounter",1)
		//TNT1 A 1 A_ReFire("FireDashBegin")
		HEHD C 0 A_GiveInventory("HeatmanMain2_CI",1)
		Goto FireEnd
		
		Fire3:
		//HEHD C 0 A_GiveInventory("HeatmanDashCounter",2)
		//TNT1 A 1 A_ReFire("FireDashBegin")
		HEHD C 0 A_GiveInventory("HeatmanMain3_CI",1)
		Goto FireEnd
		
		Fire4:
		//HEHD C 0 A_GiveInventory("HeatmanDashCounter",3)
		//TNT1 A 1 A_ReFire("FireDashBegin")
		HEHD C 0 A_GiveInventory("HeatmanMain4_CI",1)
		Goto FireEnd
		
		Fire5:
		//HEHD G 0 A_GiveInventory("HeatmanDashCounter",4)
		//TNT1 A 1 A_ReFire("FireDashBegin")
		HEHD G 0 A_GiveInventory("HeatmanMain5_CI",1)
		Goto FireEnd
		
		FireEnd:
		HEHD G 0 A_TakeInventory("HeatmanDashFlag",50)
		HEHD E 1 Offset(0,56)
		HEHD E 1 Offset(0,48)
		HEHD E 12 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		HEHD F 1
		HEHD A 0 A_TakeInventory("HeatmanDashCounter",999)
		Goto Ready+2
		
		FireDashBegin:
		HEHD C 0 A_JumpIfInventory("HeatmanDashFlag",50,1)
		Goto ShieldUp
		HEAT G 0 ACS_ExecuteAlways(991,0,3)
		HEHD D 0 A_TakeInventory("HeatShieldFrame",999)
		HEHD D 0 A_TakeInventory("SemiStunArmor",999)
		HEHD B 0 A_TakeInventory("HeatmanFlag",1)
		HEHD A 0 A_PlaySoundEx("weapon/atomicfire","Weapon")
		HEHD B 2 
		HEHD C 2
		TNT1 A 6 Offset(0,90)
		TNT1 A 0 A_ChangeVelocity(44*cos(pitch),0,44*-sin(pitch),3)
		TNT1 A 0 A_ChangeFlag("NOGRAVITY",1)
		TNT1 A 0 A_SpawnItemEX("HeatAtomicTackleBoom1",0,0,28,momx,momy,momz,0,9,0)
		TNT1 A 0 A_GiveInventory("HeatmanTackleArmor",1)
		TNT1 A 0 //A_ChangeFlag("INVULNERABLE",1)
		TNT1 A 0 A_TakeInventory("UnSolid",1)
		TNT1 A 0 A_ChangeFlag("SOLID",0)
		TNT1 A 0 //A_GiveInventory("IsInvunFlag",1)
		TNT1 A 0 A_GiveInventory("HeatmanFlag",1)
		TNT1 A 0 SetPlayerProperty(0,1,0)
		TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,0,1)
		TNT1 A 0 A_PlaySoundEx("weapon/heattackle","Weapon")
		TNT1 A 0 A_TakeInventory("HeatmanDashFlag",50)
		TNT1 A 0 A_SetArg(4,momz)
		TNT1 A 0 A_SetArg(3,momy)
		TNT1 A 0 A_SetArg(2,momx)
		Goto FireDash
		
		FireDashAmmo:
		TNT1 A 0 A_JumpIfInventory("HeatmanDashFlag",1,"FireDash")
		Goto FireDashEndX
		
		FireDash:
		TNT1 A 0 A_ChangeVelocity(args[2],args[3],args[4],CVF_REPLACE)
		TNT1 A 1 A_TakeInventory("HeatmanDashFlag",3)
		TNT1 A 0 A_SpawnItemEX("HeatFX",0,0,32,0,0,0,0,1)
		TNT1 A 0 A_SpawnItemEX("HeatAtomicTackleBoom2",0,0,28,momx,momy,momz,0,9,0)
		HEHD B 0 A_JumpIf(ACS_NamedExecuteWithResult("Get_Button_M"),"FireDashAmmo")
		Goto FireDashEndX
		
		/*FireDashEnd:
		TNT1 A 0 A_JumpIfInventory("HeatmanDashCounter",4,8)
		TNT1 A 0 A_JumpIfInventory("HeatmanDashCounter",3,6)
		TNT1 A 0 A_JumpIfInventory("HeatmanDashCounter",2,4)
		TNT1 A 0 A_JumpIfInventory("HeatmanDashCounter",1,2)
		TNT1 A 0 A_SpawnItemEX("HeatTackleShot1_T",0,0,32,args[2],args[3],args[4],0,9,0)
		Goto FireDashEndX
		TNT1 A 0 A_SpawnItemEX("HeatTackleShot2_T",0,0,32,args[2],args[3],args[4],0,9,0)
		Goto FireDashEndX
		TNT1 A 0 A_SpawnItemEX("HeatTackleShot3_T",0,0,32,args[2],args[3],args[4],0,9,0)
		Goto FireDashEndX
		TNT1 A 0 A_SpawnItemEX("HeatTackleShot4_T",0,0,32,args[2],args[3],args[4],0,9,0)
		Goto FireDashEndX
		TNT1 A 0 A_SpawnItemEX("HeatTackleShot5_T",0,0,32,args[2],args[3],args[4],0,9,0)
		Goto FireDashEndX*/
		
		FireDashEndX:
		TNT1 A 0
		TNT1 A 0 A_ScaleVelocity(0.75)
		TNT1 A 0 //A_ChangeFlag("INVULNERABLE",0)
		TNT1 A 0 A_SpawnItemEx("ResolidifyPlayer_H")
		TNT1 A 0 A_ChangeFlag("NOGRAVITY",0)
		TNT1 A 0 A_TakeInventory("HeatmanDashCounter",999)
		TNT1 A 0 A_TakeInventory("SemiStunArmor",999)
		TNT1 A 0 //A_TakeInventory("IsInvunFlag",999)
		TNT1 A 0 A_TakeInventory("HeatmanFlag",999)
		TNT1 A 0 SetPlayerProperty(0,0,0)
		HEHD A 3 offset(0,101)
		TNT1 A 0 ACS_ExecuteAlways(CORE_ACS_191,0,APROP_JumpZ,10,1)
		HEHD A 3 offset(0,90)A_TakeInventory("BasicArmor",9999)
		HEHD A 3 offset(0,79)
		HEHD A 3 offset(0,70)
		HEHD A 3 offset(0,61)
		HEHD A 3 offset(0,54)
		HEHD A 3 offset(0,47)
		HEHD A 3 offset(0,43)
		HEHD A 3 offset(0,38)
		HEHD A 3 offset(0,35)
		HEHD B 0 A_JumpIf(ACS_NamedExecuteWithResult("Get_Button_A"),"Altfire")
		Goto Ready+2
		
		Reload:
		HEHD A 0 A_PlaySoundEx("weapon/atomicfire","Weapon")
		HEHD B 1
		HEHD C 1
		TNT1 A 1 Offset(0,90)
		//HEHD A 0 A_PlaySoundEx("weapon/atomicfire","Weapon")
		HEHD E 0 A_GiveInventory("HeatmanMain0_CI",1)
		HEHD E 1 Offset(0,56)
		HEHD E 1 Offset(0,48)
		HEHD E 12 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		HEHD FA 1
		Goto Ready+2
		
		AltFire:
		HEHD D 0 A_GiveInventory("SemiStunArmor",1)
		HEHD D 0 A_GiveInventory("HeatShieldFrame",1)
		HEHD D 0 //ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,8,10)//80% speed
		goto ShieldUp
		ShieldUp:
		HEHD D 0 A_JumpIfInventory("HeatmanDashFlag",200,"ShieldUp3")
		HEHD D 0 A_PlaySoundEx("weapon/HeatShield","Weapon")
		HEHD B 1 A_GiveInventory("HeatmanDashFlag",1)
//		HEHD B 0 A_JumpIf(ACS_NamedExecuteWithResult("Get_Button_M"),"FireDashBegin")
		HEHD H 1 A_GiveInventory("HeatmanDashFlag",1)
		HEHD B 0 A_JumpIf(ACS_NamedExecuteWithResult("Get_Button_M"),"FireDashBegin")
		HEHD D 0 A_Refire("ShieldUp2")
		Goto StopEverything
		ShieldUp2:
		HEHD B 1 A_GiveInventory("HeatmanDashFlag",1)
//		HEHD B 0 A_JumpIf(ACS_NamedExecuteWithResult("Get_Button_M"),"FireDashBegin")
		HEHD H 1 A_GiveInventory("HeatmanDashFlag",1)
		HEHD B 0 A_JumpIf(ACS_NamedExecuteWithResult("Get_Button_M"),"FireDashBegin")
		HEHD D 0 A_JumpIfInventory("HeatmanDashFlag",200,"ShieldUp3")
		HEHD D 0 A_Refire("ShieldUp")
		Goto StopEverything
		ShieldUp3:
		HEHD H 0 A_PlaySoundEx("weapon/heat3","Weapon")
		ShieldUp3X:
		HEHD B 1 A_GiveInventory("HeatmanDashFlag",1)
//		HEHD B 0 A_JumpIf(ACS_NamedExecuteWithResult("Get_Button_M"),"FireDashBegin")
		HEAT J 0 ACS_ExecuteAlways(991,0,62)
		HEHD G 1 A_GiveInventory("HeatmanDashFlag",1)
		HEHD B 0 A_JumpIf(ACS_NamedExecuteWithResult("Get_Button_M"),"FireDashBegin")
		HEAT G 0 ACS_ExecuteAlways(991,0,3)
		HEHD H 0 A_Refire("ShieldUp3")
		StopEverything:
		HEHD D 0 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) //ACS_ExecuteAlways(CORE_ACS_191,0,APROP_Speed,1,1)//Normal speed
		HEHD D 0 A_TakeInventory("HeatShieldFrame",999)
		HEHD D 0 A_TakeInventory("SemiStunArmor",999)
		HEHD B 1 A_TakeInventory("HeatmanFlag",1)
		Goto Ready+2
		NoAmmo:
		HEHD A 0
		Goto Ready+2
		
		Flash:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
		TNT1 A 0 A_JumpIfInventory("HeatShieldFrame",1,"FlashShield")
		TNT1 A 1
		Goto Flash
		
		FlashShield:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx("HeatShieldA",0,0,0,momx,momy,momz,0,9,0)
		TNT1 A 0 A_JumpIfInventory("HeatShieldFrame",1,1)
		Goto Flash
		TNT1 A 1 A_SpawnItemEx("HeatShieldA",0,0,0,momx,momy,momz,0,9,0)
		TNT1 A 0 A_JumpIfInventory("HeatShieldFrame",1,1)
		Goto Flash
		TNT1 A 1 A_SpawnItemEx("HeatShieldB",0,0,0,momx,momy,momz,0,9,0)
		TNT1 A 0 A_JumpIfInventory("HeatShieldFrame",1,1)
		Goto Flash
		TNT1 A 1 A_SpawnItemEx("HeatShieldB",0,0,0,momx,momy,momz,0,9,0)
		TNT1 A 0 A_JumpIfInventory("IsDead",1,"NoFlash")
		TNT1 A 0 A_JumpIfInventory("HeatShieldFrame",1,"FlashShield")
		Goto Flash
	}
  }

//==========================
// Ammo & Inventory Items
//--------------------------
//==========================

  Actor ZippoAmmo : Ammo
  {
    Inventory.Amount 1
	Inventory.MaxAmount 100
	+INVENTORY.IGNORESKILL
  }


  Actor HeatmanDashFlag : Ammo
  {
    Inventory.Amount 1
	Inventory.MaxAmount 200
	+INVENTORY.IGNORESKILL
  }


  Actor HeatmanDashCounter : Inventory
  {
    Inventory.Amount 1
	Inventory.MaxAmount 4
  }

  Actor HeatShieldFrame :OnceC{}


  Actor HeatmanTackleArmor : BasicArmorPickup
  {
    Armor.Savepercent 30.00001
	Armor.SaveAmount 100
  }

  Actor HeatmanFlag : OnceC{}
  Actor PainFlagA : OnceC{}
  Actor PainFlagB : OnceC{}


//======================
// Heat Blast Attack
//----------------------
//======================

  Actor HeatShieldA
  {
    Scale 2.5
	-SOLID
	+NOGRAVITY
	+CLIENTSIDEONLY
	+DONTBLAST
	+NOINTERACTION
	+DONTSPLASH
	+NOTIMEFREEZE
	States
	{
		Spawn:
		HEAP S 0
		HEAP S 1
		Stop
	}
  }
  
  
  Actor HeatShieldB : HeatShieldA
  {
    States
	{
		Spawn:
		HEAP T 0
		HEAP T 1
		Stop
	}
  }


  Actor HeatBlastS
  {
    Translation "192:192=229:229", "198:198=41:41"
	PROJECTILE
	DamageType "HeatM_Toss"
	Obituary "$OB_ATOMICFIRE2"
	-NOGRAVITY
	Damage (7)
	Radius 7
	Height 6
	Speed 28
	Scale 2.5
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		HEAP A 0
		HEAP A 0 ThrustThingZ(0,16,0,1)
		HEAP AAABBBCCC 1
		Goto SpawnLOOP+2
		
		XDeath:
		Crash:
		TNT1 A 0
		Stop
		
		Death:
		TNT1 A 0 A_JumpIf(CeilingZ - FloorZ <=48 , "FireCheckOnly")
		TNT1 A 0 A_SpawnItemEx("HeatPillarFall",0,0,0,0,0,0,0,1)
		Stop
		
		FireCheckOnly:
		TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,-16)
		Stop
	}
  }


  Actor HeatBlastSB : HeatBlastS{translation "192:192=205:205","198:198=74:74"}
  Actor HeatBlastSR : HeatBlastS{translation "192:192=171:171","198:198=41:41"}
  Actor HeatBlastSO : HeatBlastS{translation "192:192=104:104","198:198=128:128"}
  Actor HeatBlastSP : HeatBlastS{translation "192:192=229:229","198:198=232:232"}

  Actor HeatBlastM : HeatBlastS {Speed 34}

  Actor HeatBlastMB : HeatBlastSB{Speed 34}
  Actor HeatBlastMR : HeatBlastSR{Speed 34}
  Actor HeatBlastMO : HeatBlastSO{Speed 34}
  Actor HeatBlastMP : HeatBlastSP{Speed 34}

  Actor HeatBlastF : HeatBlastS {Speed 38}

  Actor HeatBlastFB : HeatBlastSB{Speed 38}
  Actor HeatBlastFR : HeatBlastSR{Speed 38}
  Actor HeatBlastFO : HeatBlastSO{Speed 38}
  Actor HeatBlastFP : HeatBlastSP{Speed 38}


//======================
// Heat Pillar Attack
//----------------------
//======================

  Actor HeatPillarFall : HeatBlastS
  {
    +NOEXPLODEFLOOR
	Obituary "$OB_ATOMICFIRE2"
	DamageType "HeatM_Pillar"
	Damage (7)
	Speed 0
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		HEAP A 0 
		HEAP AAABBBCCC 1 A_JumpIf(z-floorz<7,"FlameStart")
		Loop
		
		FlameStart:
		TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
		TNT1 A 0 A_SpawnItemEx("HeatPillar1",0,0,0,0,0,0,0,1)
		Stop
		
		Death:
		TNT1 A 0 
		Stop
	}
  }


  Actor HeatPillar1 : HeatPillarFall
  {
	+FLOORHUGGER
	Damage (2)
	Height 20
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		HEAP D 2
		HEAP D 1 A_SpawnItemEx("HeatPillar2",0,0,0,0,0,0,0,1)
		HEAP EFDEFDEFDEFDEFDEFD 3
		Stop
	}
  }


  Actor HeatPillar2 : HeatPillar1
  {
    Height 40
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		HEAP H 2
		HEAP H 1 A_SpawnItemEx("HeatPillar3",0,0,0,0,0,0,0,1)
		HEAP IGHIGHIGHIGHIGHIG 3
		Stop
	}
  }


  Actor HeatPillar3 : HeatPillar1
  {
    Height 60
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		HEAP L 2
		HEAP L 1 A_SpawnItemEx("HeatPillar4",0,0,0,0,0,0,0,1)
		HEAP JKLJKLJKLJKLJKLJ 3
		Stop
	}
  }


  Actor HeatPillar4 : HeatPillar1
  {
	Height 80
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		HEAP M 2
		HEAP M 1 A_SpawnItemEx("HeatPillar5",0,0,0,0,0,0,0,1)
		HEAP NOMNOMNOMNOMNOM 3
		Stop
	}
  }


  Actor HeatPillar5 : HeatPillar1
  {
    Height 100
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		HEAP QRPQRPQRPQRQRP 3
		Stop
	}
  }


  Actor HeatAtomicTackleBoom1 : BasicExplosion
  {
	DamageType "HeatM_Tackle"
	Obituary "$OB_ATOMICTACKLE"
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 2 A_Explode(12,96,0,0,24)
		Stop
	}
  }


  Actor HeatAtomicTackleBoom2 : HeatAtomicTackleBoom1
  {
    DamageType "HeatM_Tackle"
	States
	{
		Spawn:
		TNT1 A 0//A_Explode(7,116,0,0,8)
		TNT1 A 2 A_Explode(ACS_NamedExecuteWithResult("cbm_getplayervelocity",30,1)*0.2+1,64,0,0,24)
		Stop
	}
  }


//=======================
// Heat Tackle Attack
//-----------------------
//=======================

  Actor HeatTackleShot1
  {
	Translation "192:192=229:229", "198:198=41:41"
	PROJECTILE
	damagetype "HeatM_Shot"
	Obituary "$OB_ATOMICFIRE"
	damage (15)
	Radius 6
	Height 6
	Speed 36
	scale 2.5
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		X_2G AB 3
		Loop
		Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("OilPitIgnite",0,0,8)
		Stop
	}
  }


  Actor HeatTackleShot1_T : HeatTackleShot1{}
  Actor HeatTackleShot1B : HeatTackleShot1{translation "192:192=205:205","198:198=74:74"}
  Actor HeatTackleShot1R : HeatTackleShot1{translation "192:192=171:171","198:198=41:41"}
  Actor HeatTackleShot1O : HeatTackleShot1{translation "192:192=104:104","198:198=128:128"}
  Actor HeatTackleShot1P : HeatTackleShot1{translation "192:192=229:229","198:198=232:232"}


  Actor HeatTackleShot2 : HeatTackleShot1
  {
    Damage (20)
	Radius 8
	Height 8
	Speed 36
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		X_2G DAB 3
		Loop
	}
  }
  
  
  Actor HeatTackleShot2_T : HeatTackleShot2
  {
    States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		HEAT UUU 1 A_SpawnItemEx("HeatFXA",0,0,0,0,0,0,0,1)
		HEAT RRR 1 A_SpawnItemEx("HeatFXB",0,0,0,0,0,0,0,1)
		HEAT SSS 1 A_SpawnItemEx("HeatFXC",0,0,0,0,0,0,0,1)
		Loop
	}
  }


  Actor HeatTackleShot2B : HeatTackleShot2{translation "192:192=205:205","198:198=74:74"}
  Actor HeatTackleShot2R : HeatTackleShot2{translation "192:192=171:171","198:198=41:41"}
  Actor HeatTackleShot2O : HeatTackleShot2{translation "192:192=104:104","198:198=128:128"}
  Actor HeatTackleShot2P : HeatTackleShot2{translation "192:192=229:229","198:198=232:232"}


  Actor HeatTackleShot3 : HeatTackleShot1
  {
    Damage (25)
	Radius 10
	Height 10
	Speed 36
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		X_2G DCA 3
		Loop
	}
  }
  
  
  Actor HeatTackleShot3_T : HeatTackleShot3
  {
    States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		HEAT UUU 1 A_SpawnItemEx("HeatFXA",0,0,0,0,0,0,0,1)
		HEAT TTT 1 A_SpawnItemEx("HeatFXB",0,0,0,0,0,0,0,1)
		HEAT RRR 1 A_SpawnItemEx("HeatFXC",0,0,0,0,0,0,0,1)
		Loop
	}
  }

  Actor HeatTackleShot3B : HeatTackleShot3{translation "192:192=205:205","198:198=74:74"}
  Actor HeatTackleShot3R : HeatTackleShot3{translation "192:192=171:171","198:198=41:41"}
  Actor HeatTackleShot3O : HeatTackleShot3{translation "192:192=104:104","198:198=128:128"}
  Actor HeatTackleShot3P : HeatTackleShot3{translation "192:192=229:229","198:198=232:232"}


  Actor HeatTackleShot4 : HeatTackleShot1
  {
    Damage (30)
	Radius 13
	Height 13
	Speed 36
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		X_2G FCD 3
		Loop
	}
  }


  Actor HeatTackleShot4_T : HeatTackleShot4
  {
    States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		HEAT WWW 1 A_SpawnItemEx("HeatFXA",0,0,0,0,0,0,0,1)
		HEAT TTT 1 A_SpawnItemEx("HeatFXB",0,0,0,0,0,0,0,1)
		HEAT UUU 1 A_SpawnItemEx("HeatFXC",0,0,0,0,0,0,0,1)
		Loop
	}
  }


  Actor HeatTackleShot4B : HeatTackleShot4{translation "192:192=205:205","198:198=74:74"}
  Actor HeatTackleShot4R : HeatTackleShot4{translation "192:192=171:171","198:198=41:41"}
  Actor HeatTackleShot4O : HeatTackleShot4{translation "192:192=104:104","198:198=128:128"}
  Actor HeatTackleShot4P : HeatTackleShot4{translation "192:192=229:229","198:198=232:232"}


  Actor HeatTackleShot5 : HeatTackleShot1
  {
    Damage (35)
	Radius 18
	Height 18
	Speed 36
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		X_2G FED 3
		Loop
	}
  }
  
  
  Actor HeatTackleShot5_T : HeatTackleShot5
  {
    States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BULL_Tidifier", 0)
		SpawnLOOP:
		HEAT WWW 1 A_SpawnItemEx("HeatFXA",0,0,0,0,0,0,0,1)
		HEAT VVV 1 A_SpawnItemEx("HeatFXB",0,0,0,0,0,0,0,1)
		HEAT UUU 1 A_SpawnItemEx("HeatFXC",0,0,0,0,0,0,0,1)
		Loop
	}
  }


  Actor HeatTackleShot5B : HeatTackleShot5{translation "192:192=205:205","198:198=74:74"}
  Actor HeatTackleShot5R : HeatTackleShot5{translation "192:192=171:171","198:198=41:41"}
  Actor HeatTackleShot5O : HeatTackleShot5{translation "192:192=104:104","198:198=128:128"}
  Actor HeatTackleShot5P : HeatTackleShot5{translation "192:192=229:229","198:198=232:232"}


//================
// Effects
//----------------
//================

  Actor HeatFXBase
  {
    +CLIENTSIDEONLY
	+DONTBLAST
	+NOINTERACTION
	+NOGRAVITY
	Radius 2
	Height 2
	Speed 5
	Scale 2.5
	States
	{
		Spawn:
		TNT1 A 1
		HEAT AAABBBAAABBBAAA 1 A_Fadeout(0.08)
		Stop
	}
  }


  Actor HeatFXA : HeatFXBase
  {
    States
	{
		Spawn:
		TNT1 A 2
		HEFX A 2
		Stop
	}
  }


  Actor HeatFXB : HeatFXBase
  {
    States
	{
		Spawn:
		TNT1 A 2
		HEFX B 2
		Stop
	}
  }


  Actor HeatFXC : HeatFXBase
  {
    States
	{
		Spawn:
		TNT1 A 2
		HEFX C 2
		Stop
	}
  }


  Actor HeatFX
  {
    PROJECTILE
	//DamageType "AtomicfireB"
	Obituary "$OB_ATOMICTACKLE"
	+DONTBLAST
	+THRUACTORS
	Radius 7
	Height 7
	Damage (0)
	Speed 0
	Scale 2.5
	States
	{
		Spawn:
		TNT1 A 0
		TNT1 A 1
		HEAP UVW 5
		Stop
	}
  }


//====================
// Attack Items
//--------------------
//====================

  Actor HeatmanMain0_CI : TeamColor_CI
  {
    States
	{
		FireX:
		TNT1 A 0 A_FireCustomMissile("HeatBlastS",0,0,8,0)
		TNT1 A 0 A_FireCustomMissile("HeatBlastM",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("HeatBlastF",2,0,8,0)
		Goto Done
		
		FireB:
		TNT1 A 0 A_FireCustomMissile("HeatBlastSB",0,0,8,0)
		TNT1 A 0 A_FireCustomMissile("HeatBlastMB",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("HeatBlastFB",2,0,8,0)
		Goto Done
		
		FireR:
		TNT1 A 0 A_FireCustomMissile("HeatBlastSR",0,0,8,0)
		TNT1 A 0 A_FireCustomMissile("HeatBlastMR",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("HeatBlastFR",2,0,8,0)
		Goto Done
		
		FireO:
		TNT1 A 0 A_FireCustomMissile("HeatBlastSO",0,0,8,0)
		TNT1 A 0 A_FireCustomMissile("HeatBlastMO",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("HeatBlastFO",2,0,8,0)
		Goto Done
		
		FireP:
		TNT1 A 0 A_FireCustomMissile("HeatBlastSP",0,0,8,0)
		TNT1 A 0 A_FireCustomMissile("HeatBlastMP",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("HeatBlastFP",2,0,8,0)
		Goto Done
	}
  }


  Actor HeatmanMain1_CI : TeamColor_CI
  {
    States
	{
		FireX:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot1",0,1,0,0)
		Goto Done
		
		FireB:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot1B",0,1,0,0)
		Goto Done
		
		FireR:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot1R",0,1,0,0)
		Goto Done
		
		FireO:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot1O",0,1,0,0)
		Goto Done
		
		FireP:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot1P",0,1,0,0)
		Goto Done
	}
  }


  Actor HeatmanMain2_CI : TeamColor_CI
  {
    States
	{
		FireX:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot2",0,1,0,0)
		Goto Done
		
		FireB:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot2B",0,1,0,0)
		Goto Done
		
		FireR:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot2R",0,1,0,0)
		Goto Done
		
		FireO:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot2O",0,1,0,0)
		Goto Done
		
		FireP:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot2P",0,1,0,0)
		Goto Done
	}
  }


  Actor HeatmanMain3_CI : TeamColor_CI
  {
    States
	{
		FireX:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot3",0,1,0,0)
		Goto Done
		
		FireB:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot3B",0,1,0,0)
		Goto Done
		
		FireR:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot3R",0,1,0,0)
		Goto Done
		
		FireO:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot3O",0,1,0,0)
		Goto Done
		
		FireP:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot3P",0,1,0,0)
		Goto Done
	}
  }


  Actor HeatmanMain4_CI : TeamColor_CI
  {
    States
	{
		FireX:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot4",0,1,0,0)
		Goto Done
		
		FireB:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot4B",0,1,0,0)
		Goto Done
		
		FireR:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot4R",0,1,0,0)
		Goto Done
		
		FireO:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot4O",0,1,0,0)
		Goto Done
		
		FireP:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot4P",0,1,0,0)
		Goto Done
	}
  }
  

  Actor HeatmanMain5_CI : TeamColor_CI
  {
    States
	{
		FireX:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot5",0,1,0,0)
		Goto Done
		
		FireB:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot5B",0,1,0,0)
		Goto Done
		
		FireR:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot5R",0,1,0,0)
		Goto Done
		
		FireO:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot5O",0,1,0,0)
		Goto Done
		
		FireP:
		TNT1 A 0 A_FireCustomMissile("HeatTackleShot5P",0,1,0,0)
		Goto Done
	}
  }