Actor WelderGiver : CustomInventory
{
  Scale 0.9
  Inventory.Amount 1
  Inventory.MaxAmount 0
  Inventory.InterHubAmount 0
Inventory.PickupMessage "Pyro Welder"
Inventory.PickupSound "Welder/Select"
Obituary "%o was welded down by %k's Pyro Welder."
Tag "Pyro Welder"
  States
  {
  Spawn:
	WLDP A 0 NoDelay ACS_NamedExecuteWithResult("WeaponListCheck",8,0)
  SpawnLoop:
	WLDP A -1
	Loop
  Pickup:
	TNT1 A 0 A_JumpIfInventory("Welder",1,"JustAmmo")
  All:
	TNT1 A 0 A_GiveInventory("Welder",1)
	TNT1 A 0 A_JumpIfInventory("WelderGiverCheck",1,"HoldAndDestroy")
	TNT1 A 0 A_GiveInventory("WelderGiverCheck",1)
	TNT1 A 0 A_GiveInventory("Gas",40)
	Stop
  JustAmmo:
    TNT1 A 0 A_JumpIfInventory("WelderGiverCheck",1,"Null")
	TNT1 A 0 A_GiveInventory("WelderGiverCheck",1)
	TNT1 A 0 A_GiveInventory("Gas",40)
	TNT1 A 0 A_SpawnItemEx("Welder")
	Stop
  }
}

Actor WelderSpawnerGiver : WelderGiver
{
  States
  {
  JustAmmo:
    TNT1 A 0 A_JumpIfInventory("WelderGiverCheck",1,"Null")
	TNT1 A 0 A_GiveInventory("WelderGiverCheck",1)
	TNT1 A 0 A_GiveInventory("Gas",40)
	Stop
  }
}

Actor WelderGiverCheck : Inventory { Inventory.Amount 1 Inventory.MaxAmount 1 Inventory.InterHubAmount 0 }



Actor Welder : Weapon 30391
{
 //$Category Weapons/Nexus
 //$Title "Pyro Welder"
 //$Sprite WLDPA0
 +WEAPON.NOAUTOAIM
 +INVENTORY.UNDROPPABLE
 Weapon.SelectionOrder 7000
 Weapon.PreferredSkin "Welder-Marine"
 Weapon.Kickback 1
 Weapon.AmmoUse 5
 Weapon.AmmoUse2 1
 Weapon.AmmoGive 50
 Weapon.AmmoType "Gas"
 Weapon.AmmoType2 "Gas"
 Weapon.SlotNumber 8
 Weapon.SlotPriority 2.1
 Inventory.PickupMessage "Pyro Welder"
 Inventory.PickupSound "Welder/Select"
 Weapon.UpSound "Welder/Select"
 Obituary "%o was welded down by %k's Pyro Welder."
 Weapon.SisterWeapon "PoweredWelder"
 Tag "Pyro Welder"
 States
 {
  Spawn:
	WLDP A 0 NoDelay ACS_NamedExecuteWithResult("WeaponListCheck",8,0)
  SpawnLoop:
	WLDP A -1
	Stop
  Ready:
	WLDG BBCCDD 1 A_WeaponReady
	Loop
  Select:
	TNT1 A 0 A_Raise
	WLDG A 1 A_Raise
	Loop
  Deselect:
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
  DeselectLoop:
	TNT1 A 0 A_Lower
	WLDG A 1 A_Lower
	Loop
  Fire:
	WLDG B 4
	WLDG CCDD 1
	Goto Hold
  Hold:
	TNT1 A 0 A_JumpIfInventory("PowerSpreadRune",1,"HoldSpread")
	WLDG B 1 Bright A_GunFlash
	WLDG C 1 Bright
	TNT1 A 0 A_PlaySound("Weapons/PyroSGShot",CHAN_WEAPON)
	TNT1 A 0 Radius_Quake(6,3,0,1,0)
	WLDG D 1 Bright A_FireCustomMissile("PlayerFlamethrowerShot2",frandom(-1.0,1.0),1,0,0,0,frandom(-1.0,1.0))
	WLDG EFGH 2
	TNT1 A 0 A_ReFire
	WLDG A 20 A_PlaySound("weapons/dtech10ksteam",CHAN_BODY)
	WLDG AAAAAAAAAAAA 1 A_FireCustomMissile("DTech10KSteam",-58+Random(-4,4),0,0,0)
	Goto Ready
  HoldSpread:
	WLDG B 1 Bright A_GunFlash
	WLDG C 1 Bright
	TNT1 A 0 A_PlaySound("Weapons/PyroSGShot",CHAN_WEAPON)
	TNT1 A 0 Radius_Quake(6,3,0,1,0)
	WLDG D 1 Bright A_FireCustomMissile("PlayerFlamethrowerShot2",frandom(-1.0,1.0),1,0,0,0,frandom(-1.0,1.0))
	TNT1 A 0 A_FireCustomMissile("PlayerFlamethrowerShot2",frandom(-1.0,1.0)+15.0,0,0,0,0,frandom(-1.0,1.0))
	TNT1 A 0 A_FireCustomMissile("PlayerFlamethrowerShot2",frandom(-1.0,1.0)-15.0,0,0,0,0,frandom(-1.0,1.0))
	WLDG EFGH 2
	TNT1 A 0 A_ReFire("Hold")
	WLDG A 20 A_PlaySound("weapons/dtech10ksteam",CHAN_BODY)
	WLDG AAAAAAAAAAAA 1 A_FireCustomMissile("DTech10KSteam",-58+Random(-4,4),0,0,0)
	Goto Ready
  AltFire: 
	TNT1 A 0 A_JumpIfInventory("PowerSpreadRune",1,"AltFireSpread")
	TNT1 A 0 A_StopSound(CHAN_WEAPON)
	TNT1 A 0 A_StartFire
	WLDG B 2 Bright A_FireCustomMissile("FireFlameShot",frandom(-1.000,1.000),1,0,0,0,frandom(-0.500,0.500))
	TNT1 A 0 A_PlaySound("magma/firebreath",6,1.0)
	TNT1 A 0 A_PlaySound("Welder/FlameFlow",CHAN_WEAPON,1.0,1)
	Goto AltHold
  AltHold:
	TNT1 A 0 A_JumpIfInventory("PowerSpreadRune",1,"AltHoldSpread")
	WLDG FGH 1 Bright A_FireCustomMissile("FireFlameShot",frandom(-1.000,1.000),1,0,0,0,frandom(-0.500,0.500))
	TNT1 A 0 A_Refire
	TNT1 A 0 A_StopSound(CHAN_WEAPON)
	TNT1 A 0 A_PlaySound("weapons/dtech10ksteam",CHAN_WEAPON)
	WLDG AAAAA 5 A_WeaponReady
	Goto Ready
  AltFireSpread: 
	TNT1 A 0 A_StopSound(CHAN_WEAPON)
	TNT1 A 0 A_StartFire
	WLDG B 2 Bright A_FireCustomMissile("FireFlameShot",frandom(-1.000,1.000),1,0,0,0,frandom(-0.500,0.500))
	TNT1 A 0 A_FireCustomMissile("FireFlameShot",frandom(-1.000,1.000)+15.0,0,0,0,0,frandom(-0.500,0.500))
	TNT1 A 0 A_FireCustomMissile("FireFlameShot",frandom(-1.000,1.000)-15.0,0,0,0,0,frandom(-0.500,0.500))
	TNT1 A 0 A_PlaySound("magma/firebreath",6,1.0)
	TNT1 A 0 A_PlaySound("Welder/FlameFlow",CHAN_WEAPON,1.0,1)
	Goto AltHoldSpread
  AltHoldSpread:
	WLDG FGH 1 Bright A_FireCustomMissile("FireFlameShot",frandom(-1.000,1.000),1,0,0,0,frandom(-0.500,0.500))
	TNT1 A 0 A_FireCustomMissile("FireFlameShot",frandom(-1.000,1.000)+15.0,0,0,0,0,frandom(-0.500,0.500))
	TNT1 A 0 A_FireCustomMissile("FireFlameShot",frandom(-1.000,1.000)-15.0,0,0,0,0,frandom(-0.500,0.500))
	TNT1 A 0 A_Refire("AltHoldSpread")
	TNT1 A 0 A_StopSound(CHAN_WEAPON)
	TNT1 A 0 A_PlaySound("weapons/dtech10ksteam",CHAN_WEAPON)
	WLDG AAAAA 5 A_WeaponReady
	Goto Ready
  Flash:
	TNT1 A 2 Bright A_Light1
	TNT1 A 2 Bright A_Light0
	Stop
 }
}

ACTOR FireFlameShot 
{
 Projectile
 Height 6
 Radius 3
 Speed 25
 Damage 4
 +RANDOMIZE
 +NOBOSSRIP
 +NODAMAGETHRUST
 -BLOODSPLATTER
 +BLOODLESSIMPACT
 +THRUSPECIES
 Species "Player"
 Damagetype "Fire"
 Obituary "%o was welded down."
 States
 {
 Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Death")
	TNT1 AAAA 1 A_SpawnItemEx("FireFlameStreamTrail",0,0,0,frandom(-1.0,1.0)+velx,frandom(-1.0,1.0)+vely,frandom(-1.0,1.0)+velz,0,SXF_CLIENTSIDE|SXF_ABSOLUTEMOMENTUM,32)
	TNT1 A 1 A_SpawnItemEx("FireFlameStreamTrail",0,0,0,frandom(-2.0,2.0)+velx,frandom(-2.0,2.0)+vely,frandom(-2.0,2.0)+velz,0,SXF_CLIENTSIDE|SXF_ABSOLUTEMOMENTUM,32)
	TNT1 A 0 A_SpawnItemEx("FireFlameStreamTrail",0,0,0,frandom(-3.0,3.0)+velx,frandom(-3.0,3.0)+vely,frandom(-3.0,3.0)+velz,0,SXF_CLIENTSIDE|SXF_ABSOLUTEMOMENTUM,32)
	TNT1 A 1 A_SpawnItemEx("FireFlameStreamTrail",0,0,0,frandom(-3.0,3.0)+velx,frandom(-3.0,3.0)+vely,frandom(-3.0,3.0)+velz,0,SXF_CLIENTSIDE|SXF_ABSOLUTEMOMENTUM,32)
	TNT1 A 0 A_SpawnItemEx("FireFlameStreamTrail",0,0,0,frandom(-3.0,3.0)+velx,frandom(-3.0,3.0)+vely,frandom(-3.0,3.0)+velz,0,SXF_CLIENTSIDE|SXF_ABSOLUTEMOMENTUM,32)
	TNT1 A 1 A_SpawnItemEx("FireFlameStreamTrail",0,0,0,frandom(-4.0,4.0)+velx,frandom(-4.0,4.0)+vely,frandom(-4.0,4.0)+velz,0,SXF_CLIENTSIDE|SXF_ABSOLUTEMOMENTUM,32)
	TNT1 ABCDEFGHHHHGFEDCBA 1 Bright
	Stop
  Crash:
  Death:
	TNT1 A 1 
	Stop
  XDeath:
	TNT1 A 0 A_PlaySound("Welder/FlameOn",CHAN_BODY,1.0,0)
	TNT1 H 1 Bright A_SpawnItemEx("WelderFlare2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,160)
	Stop
 }
}

Actor PlayerFlamethrowerShot2 : PlayerFlamethrowerShot
{
  States
  {
  Death:
	TNT1 AAA 0 A_StopSound(CHAN_BODY)
	TNT1 A 0 A_Stop
	TNT1 A 0 A_NoGravity
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	TNT1 AA 0 A_CustomMissile("Kaboom69",0,0,frandom(0,360),CMF_AIMDIRECTION,frandom(0,360))
	TNT1 AA 0 A_CustomMissile("SmokeFX7",0,0,frandom(0,360),CMF_AIMDIRECTION,frandom(0,360))
	TNT1 A 0 A_SpawnItemEx("WelderFlare2",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER)
	TNT1 AAA 0 A_SpawnItemEx("WelderFlare2",0,0,0,frandom(2,4),frandom(2,4),2,frandom(0,360),SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,64)
	FRTM CDE 3 Bright
	Stop
  }
}

Actor Welderflare2: WelderFlare
{
 var int user_flareloop;
 States
 {
  Death:
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Nop")
	TNT1 A 0 A_ChangeFlag(MOVEWITHSECTOR,1)
	TNT1 A 0 A_SetUserVar("user_flareloop",0)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetCVar",56) == 0,"DeathLoop2")
  DeathLoop:
	CFCF ABC 2 Bright A_spawnItemEx("CFFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,7),0,0,frandom(2,7),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(5+random(0,5),50,0,0)
	CFCF DEF 2 Bright A_spawnItemEx("CFFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,7),0,0,frandom(2,7),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+1+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(5+random(0,5),50,0,0)
	CFCF GHI 2 Bright A_spawnItemEx("CFFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,7),0,0,frandom(2,7),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+2+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(5+random(0,5),50,0,0)
	CFCF KLM 2 Bright A_spawnItemEx("CFFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,7),0,0,frandom(2,7),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+3+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(5+random(0,5),50,0,0)
	TNT1 A 0 A_SetUserVar("user_flareloop",user_flareloop+1)
	TNT1 A 0 A_JumpIf(user_flareloop >= 8, "DeathEnd")
	Loop
  DeathEnd:
	CFCF MNOP 2 Bright
	Stop
  DeathLoop2:
	CFCF ABC 2 Bright A_spawnItemEx("CFFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,7),0,0,frandom(2,7),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(5+random(0,5),50,1,0)
	CFCF DEF 2 Bright A_spawnItemEx("CFFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,7),0,0,frandom(2,7),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+1+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(5+random(0,5),50,1,0)
	CFCF GHI 2 Bright A_spawnItemEx("CFFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,7),0,0,frandom(2,7),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+2+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(5+random(0,5),50,1,0)
	CFCF KLM 2 Bright A_spawnItemEx("CFFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,7),0,0,frandom(2,7),random(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+3+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(5+random(0,5),50,1,0)
	TNT1 A 0 A_SetUserVar("user_flareloop",user_flareloop+1)
	TNT1 A 0 A_JumpIf(user_flareloop >= 8, "DeathEnd")
	Loop
 }
}

Actor FireFlameStreamTrail
{
 Height 2
 Radius 2
 Speed 3
 Scale 0.36
 RenderStyle Add
 Alpha 0.32
 Decal "DoomImpScorch"
 Damage (0)
 +MISSILE
 +DROPOFF
 +NOGRAVITY
 +DONTSPLASH
 +NOTELEPORT
 +NOBLOCKMAP
 +CANNOTPUSH
 +NODAMAGETHRUST
 +BLOODLESSIMPACT
 +RIPPER
 -NOCLIP
 -ACTIVATEIMPACT
 -ACTIVATEPCROSS
 +THRUSPECIES
 +FORCEXYBILLBOARD
 +CLIENTSIDEONLY
 +NONETID
 Species "Player"
 Damagetype "Fire"
 States
 {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_Jump(256,"Spawn1","Spawn2","Spawn3")
	Goto Spawn1
  Spawn1:
	65P1 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 Bright
	Goto Death
  Spawn2:
	65P2 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 Bright
	Goto Death
  Spawn3:
	65P3 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 Bright
	Goto Death
  Death:
	TNT1 A 1
	Stop
 }
}

Actor BaseFireFlareNoFX : BaseFireFlare
{
 var int user_flareloop;
 States
 {
  Death:
	TNT1 A 0 A_ChangeFlag(MOVEWITHSECTOR,1)
	TNT1 A 0 A_SetUserVar("user_flareloop",0)
  DeathLoop:
	CFCF AABBCC 1
	TNT1 A 0 A_Explode(5+random(1,4),50,0)
	CFCF DDEEFF 1
	TNT1 A 0 A_Explode(5+random(1,4),50,0)
	CFCF GGHHII 1
	TNT1 A 0 A_Explode(5+random(1,4),50,0)
	CFCF KKLLMM 1
	TNT1 A 0 A_Explode(5+random(1,4),50,0)
	TNT1 A 0 A_SetUserVar("user_flareloop",user_flareloop+1)
	TNT1 A 0 A_JumpIf(user_flareloop >= 8,"DeathEnd")
	Loop
  DeathEnd:
	CFCF MNOP 2
	Stop
 }
}

Actor PoweredWelder : Welder
{
 +WEAPON.POWERED_UP
 Weapon.SisterWeapon "Welder"
 Weapon.AmmoUse 10
 Weapon.AmmoUse2 2
 Obituary "%o was welded down by %k's Powered Pyro Welder."
 Tag "Pyro Welder"
 States
 {
  Spawn:
	WLDP A -1
	Stop
  Ready:
	//TNT1 A 0 A_StopSound(CHAN_WEAPON)
	PWLD BBCCDD 1 A_WeaponReady
	Loop
  Select:
	TNT1 A 0 ACS_NamedExecuteWithResult("SbarFix",0)
	TNT1 A 0 A_Raise
	PWLD A 1 A_Raise
	Loop
  Deselect:
	TNT1 A 0 ACS_NamedExecuteWithResult("SbarFix",1)
	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	//TNT1 A 0 A_StopSound(CHAN_WEAPON)
  DeselectLoop:
	TNT1 A 0 A_Lower
	PWLD A 1 A_Lower
	Loop
  Fire:
	PWLD B 4
	PWLD CCDD 1
	Goto Hold
  Hold:
	PWLD B 1 Bright A_GunFlash
	PWLD C 1 Bright
	TNT1 A 0 A_PlaySound("Weapons/PyroSGShot",CHAN_WEAPON)
	TNT1 A 0 Radius_Quake(6,3,0,1,0)
	PWLD D 1 Bright A_FireCustomMissile("PlayerPoweredFlamethrowerShot",frandom(-1.0,1.0),1,0,0,0,frandom(-1.0,1.0))
	PWLD EFGH 2
	TNT1 A 0 A_ReFire
	PWLD A 20 A_PlaySound("weapons/dtech10ksteam",CHAN_BODY)
	PWLD AAAAAAAAAAAA 1 A_FireCustomMissile("DTech10KSteam",-58+Random(-4,4),0,0,0)
	Goto Ready
  AltFire: 
	TNT1 A 0 A_StopSound(CHAN_WEAPON)
	TNT1 A 0 A_StartFire
	PWLD B 2 Bright A_FireCustomMissile("PoweredFireFlameShot",frandom(-1.000,1.000),1,0,0,0,frandom(-0.500,0.500))
	TNT1 A 0 A_PlaySound("magma/firebreath",6,1.0)
	TNT1 A 0 A_PlaySound("Welder/FlameFlow",CHAN_WEAPON,1.0,1)
	Goto AltHold
  AltHold:
	PWLD FGH 1 Bright A_FireCustomMissile("PoweredFireFlameShot",frandom(-1.000,1.000),1,0,0,0,frandom(-0.500,0.500))
	TNT1 A 0 A_Refire
	TNT1 A 0 A_StopSound(CHAN_WEAPON)
	TNT1 A 0 A_PlaySound("weapons/dtech10ksteam",CHAN_WEAPON)
	PWLD AAAAA 5 A_WeaponReady
	Goto Ready
  Flash:
	TNT1 A 2 A_Light1
	TNT1 A 2 A_Light0
	Stop
 }
}

ACTOR PoweredFireSpawnerTail : BFG9500Trail
{
 Alpha 0.3
 Scale 0.77 
 States
 {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_CheckSight("Vanilla")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Vanilla")
	FR1B ABCDEFGHI 1 Bright
	Stop
 }
}

Actor HemBlueFlareFire : BlueParticleSpawner
{
 Scale 0.2
 Renderstyle Add
 Alpha 1.0
 +NOINTERACTION
 +NONETID
 States
 {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("monster/ambientfire")
	TNT1 A 0 A_CheckSight("Vanilla")
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckVanilla") == 1, "Vanilla")
	FIB1 ABCD 2 Bright A_FadeOut(0.1,0)
	FIB1 EFGHIJKL 1 Bright A_FadeOut(0.1,1)
	Stop
  Vanilla:
	TNT1 A 1
	Stop
 }
}

Actor BasePoweredFireSpawner
{
 PROJECTILE
 Height 6
 Radius 3
 Scale 0.8
 Speed 30
 FastSpeed 30
 Gravity 0.2
 RenderStyle Add
 MaxStepHeight 4
 Decal "DoomImpScorch"
 Damage 3
 -NoGravity
 +Strifedamage
 +NOEXTREMEDEATH
 +NODAMAGETHRUST
 +DontHarmspecies
 +DontHurtSpecies
 Damagetype "Fire"
 DeathType "Fire"
 DeathSound "Welder/FlameHit"
 Obituary "%o's face got charred by a falling flare."
 States
 {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("Welder/PyroShotFly",CHAN_BODY,1.0,1)
  SpawnLoop:
	FR1B A 1 Bright A_SpawnItemEx("PoweredFireSpawnerTail",0,0,0)
	Loop
 }
}

Actor PlayerPoweredFlamethrowerShot : BasePoweredFireSpawner
{
 Damage (random(100,120))
 Species "Player"
 DamageType ""
 DamageType "PyroShot"
 States
 {
  Death:
	TNT1 AAA 0 A_StopSound(CHAN_BODY)
	TNT1 A 0 A_Stop
	TNT1 A 0 A_NoGravity
	TNT1 A 0 A_SpawnItemEx("BlueParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
	TNT1 AA 0 A_CustomMissile("Kaboom69",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
	TNT1 AA 0 A_CustomMissile("SmokeFX7",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
	TNT1 A 0 A_SpawnItemEx("PoweredWelderFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER)
	TNT1 AAAA 0 A_SpawnItemEx("PoweredWelderFlare",0,0,0,frandom(2,4),frandom(2,4),2,frandom(0,360),SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,64)
	FR1M CDE 3 Bright
	Stop
 }
}

ACTOR PoweredFireFlameShot 
{
 Projectile
 Height 6
 Radius 3
 Speed 30
 Damage 12
 +RANDOMIZE
 +NOBOSSRIP
 +NODAMAGETHRUST
 -BLOODSPLATTER
 +BLOODLESSIMPACT
 +THRUSPECIES
 Species "Player"
 Damagetype "Fire"
 Obituary "%o was welded down."
 States
 {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Death")
	TNT1 AAAA 1 Bright A_SpawnItemEx("PoweredFireFlameStreamTrail",0,0,0,frandom(-1.0,1.0)+velx,frandom(-1.0,1.0)+vely,frandom(-1.0,1.0)+velz,0,SXF_CLIENTSIDE|SXF_ABSOLUTEMOMENTUM,32)
	TNT1 A 1 Bright A_SpawnItemEx("PoweredFireFlameStreamTrail",0,0,0,frandom(-2.0,2.0)+velx,frandom(-2.0,2.0)+vely,frandom(-2.0,2.0)+velz,0,SXF_CLIENTSIDE|SXF_ABSOLUTEMOMENTUM,32)
	TNT1 A 0 A_SpawnItemEx("PoweredFireFlameStreamTrail",0,0,0,frandom(-3.0,3.0)+velx,frandom(-3.0,3.0)+vely,frandom(-3.0,3.0)+velz,0,SXF_CLIENTSIDE|SXF_ABSOLUTEMOMENTUM,32)
	TNT1 A 1 Bright A_SpawnItemEx("PoweredFireFlameStreamTrail",0,0,0,frandom(-3.0,3.0)+velx,frandom(-3.0,3.0)+vely,frandom(-3.0,3.0)+velz,0,SXF_CLIENTSIDE|SXF_ABSOLUTEMOMENTUM,32)
	TNT1 A 0 A_SpawnItemEx("PoweredFireFlameStreamTrail",0,0,0,frandom(-3.0,3.0)+velx,frandom(-3.0,3.0)+vely,frandom(-3.0,3.0)+velz,0,SXF_CLIENTSIDE|SXF_ABSOLUTEMOMENTUM,32)
	TNT1 A 1 Bright A_SpawnItemEx("PoweredFireFlameStreamTrail",0,0,0,frandom(-4.0,4.0)+velx,frandom(-4.0,4.0)+vely,frandom(-4.0,4.0)+velz,0,SXF_CLIENTSIDE|SXF_ABSOLUTEMOMENTUM,32)
	TNT1 ABCDEFGHHHHGFEDCBA 1 Bright
	Stop
  Crash:
  Death:
	TNT1 A 1
	Stop
  XDeath:
	TNT1 A 0 A_PlaySound("Welder/FlameOn",CHAN_BODY,1.0,0)
	TNT1 H 1 Bright A_SpawnItemEx("PoweredWelderFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER,160)
	Stop
 }
}

Actor PoweredFireFlameStreamTrail
{
 Height 2
 Radius 2
 Speed 4
 Scale 0.36
 RenderStyle Add
 Alpha 0.32
 Decal "DoomImpScorch"
 Damage (0)
 +MISSILE
 +DROPOFF
 +NOGRAVITY
 +DONTSPLASH
 +NOTELEPORT
 +NOBLOCKMAP
 +CANNOTPUSH
 +NODAMAGETHRUST
 +BLOODLESSIMPACT
 +RIPPER
 -NOCLIP
 -ACTIVATEIMPACT
 -ACTIVATEPCROSS
 +THRUSPECIES
 +FORCEXYBILLBOARD
 +CLIENTSIDEONLY
 +NONETID
 Species "Player"
 Damagetype "Fire"
 States
 {
  Spawn:
	TNT1 A 0
	TNT1 AA 0 A_Jump(256,"Spawn1","Spawn2","Spawn3")
	Goto Spawn1
  Spawn1:
	6BP1 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 Bright
	Goto Death
  Spawn2:
	6BP2 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 Bright
	Goto Death
  Spawn3:
	6BP3 ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 Bright
	Goto Death
  Death:
	TNT1 A 1 Bright
	Stop
 }
}

Actor BasePoweredFireFlare
{
 Projectile
 Height 4
 Radius 2
 Speed 1
 Gravity 0.52
 BounceFactor 0.01
 WallBounceFactor 0.01
 Renderstyle Add
 Alpha 1.0
 MaxStepHeight 4
 Damage 3
 Scale 1.2
 +DOOMBOUNCE
 +DONTFALL
 -Nogravity
 +Strifedamage
 -NOCLIP
 +Ripper
 +BloodlessImpact
 +NODAMAGETHRUST
 -EXTREMEDEATH
 +DontHurtSpecies
 +DontHarmspecies
 Damagetype "Fire"
 DeathType "Fire"
 var int user_firedamage;
 var int user_flareloop;
 States
 {
  Death:
	TNT1 A 0 A_JumpIf(waterlevel > 1, "Nop")
	TNT1 A 0 A_ChangeFlag(MOVEWITHSECTOR,1)
	TNT1 A 0 A_SetUserVar("user_flareloop",0)
	TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("GetCVar",56) == 0,"DeathLoop2")
  DeathLoop:
	BFCF ABC 2 Bright A_spawnItemEx("HemBlueFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,9),0,0,frandom(2,9),frandom(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(user_firedamage+random(0,15),50,0,0)
	BFCF DEF 2 Bright A_spawnItemEx("HemBlueFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,9),0,0,frandom(2,9),frandom(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+1+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(user_firedamage+random(0,15),50,0,0)
	BFCF GHI 2 Bright A_spawnItemEx("HemBlueFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,9),0,0,frandom(2,9),frandom(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+2+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(user_firedamage+random(0,15),50,0,0)
	BFCF KLM 2 Bright A_spawnItemEx("HemBlueFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,9),0,0,frandom(2,9),frandom(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+3+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(user_firedamage+random(0,15),50,0,0)
	TNT1 A 0 A_SetUserVar("user_flareloop",user_flareloop+1)
	TNT1 A 0 A_JumpIf(user_flareloop >= 8, "DeathEnd")
  DeathEnd:
	BFCF MNOP 2 Bright
	Stop
  DeathLoop2:
	BFCF ABC 2 Bright A_spawnItemEx("HemBlueFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,9),0,0,frandom(2,9),frandom(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(user_firedamage+random(0,15),50,1,0)
	BFCF DEF 2 Bright A_spawnItemEx("HemBlueFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,9),0,0,frandom(2,9),frandom(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+1+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(user_firedamage+random(0,15),50,1,0)
	BFCF GHI 2 Bright A_spawnItemEx("HemBlueFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,9),0,0,frandom(2,9),frandom(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+2+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(user_firedamage+random(0,15),50,1,0)
	BFCF KLM 2 Bright A_spawnItemEx("HemBlueFlareFire",frandom(-3,3),frandom(-3,3),frandom(0,9),0,0,frandom(2,9),frandom(0,360),SXF_NOCHECKPOSITION|SXF_CLIENTSIDE,64+3+4*user_flareloop)
	TNT1 A 0 A_FadeOut(0.015,0)
	TNT1 A 0 A_Explode(user_firedamage+random(0,15),50,1,0)
	TNT1 A 0 A_SetUserVar("user_flareloop",user_flareloop+1)
	TNT1 A 0 A_JumpIf(user_flareloop >= 8, "DeathEnd")
  Nop:
	TNT1 A 1 A_ChangeFlag("MISSILE",0)
	Stop
 }
}

Actor BasePoweredFireFlareNoFX : BasePoweredFireFlare
{
States
 {
  Death:
	TNT1 A 0 A_ChangeFlag(MOVEWITHSECTOR,1)
	TNT1 A 0 A_SetUserVar("user_flareloop",0)
  DeathLoop:
	BFCF ABC 2
	TNT1 A 0 A_Explode(user_firedamage+random(0,15),50,0)
	BFCF DEF 2
	TNT1 A 0 A_Explode(user_firedamage+random(0,15),50,0)
	BFCF GHI 2
	TNT1 A 0 A_Explode(user_firedamage+random(0,15),50,0)
	BFCF KLM 2
	TNT1 A 0 A_Explode(user_firedamage+random(0,15),50,0)
	TNT1 A 0 A_SetUserVar("user_flareloop",user_flareloop+1)
	TNT1 A 0 A_JumpIf(user_flareloop >= 8,"DeathEnd")
	Loop
  DeathEnd:
	BFCF MNOP 2
	Stop
 }
}

Actor PoweredWelderFlare : BasePoweredFireFlare
{
 Species "Player"
 Obituary "%o fell in the little flares from %k's Powered Pyro Welder."
 States
 {
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_SetUserVar("user_firedamage",30)
	TNT1 A 0 A_Die
	Goto Death
 }
}