actor GasTank 13510
{
	//$Category MM8BDM-Interactive Props
	+SOLID
	+SHOOTABLE
	+NOTAUTOAIMED
	+NODAMAGETHRUST
	+FORCEYBILLBOARD
	+NOBLOOD
	+DONTBLAST
	+QUICKTORETALIATE
	+DONTDRAIN
	Obituary "$OB_BARREL" // "%o went boom."
	scale 2.0
	height 96
	Radius 16
	Health 100
	mass 99999
	painchance 256
	damagefactor "GasTankExplosion", 1.0
	species "GasTank"
	States
	{
		Spawn:
			STGS A 8
			loop
		Pain.GasTankExplosion:
			OILP A 0
			OILP A 0 A_Die
			OILP A 1
			Goto Death
		Pain:
			STGS A 0 A_Stop
			STGS A 1 A_SpawnItem("PainFX",0,24)
			Goto Spawn
		Death:
			STGS A 0 A_ChangeFlag("SHOOTABLE", 0)
			STGS A 0 A_ChangeFlag("SOLID", 0)
			STGS A 1 A_Stop
			STGS A 0 A_SpawnItemEx("GasTankDamager",0,0,32,0,0,0,0,SXF_TRANSFERPOINTERS)
			TNT1 A 0
			TNT1 A 170
			Respawning:
			TNT1 A 5 
			TNT1 AAAAAAAAAA 1 A_LookEx(LOF_NOSOUNDCHECK,0,48,0,360,"Respawning")
			Goto RespawnNow
		RespawnNow:
			TNT1 A 0 A_ClearTarget
			TNT1 A 0 A_TakeInventory("CutterFlag", 999)
			TFOG A 3 A_PlaySoundEx("misc/SpawnIn", body)
			TFOG CB 2
			TNT1 A 0 A_SpawnItemEx("GasTank", 0, 0, 0, 0, 0, 0, 0)
			TNT1 A 0 A_SpawnItemEx("GasTankRespawnDamager", 0, 0, 0)
			stop
	}
}

actor GasTankDamager : BasicHazardExplosion
{
	damagetype "GasTank"
	Obituary "%o went boom from %k's Gas Tank."
	States
	{
		Spawn:
			TNT1 E 0
			TNT1 A 0 A_PlaySoundEx("misc/GASBOOM", "Weapon")
			TNT1 E 0 A_SpawnItemEx("GasTankExplosionEffect", 0, 0, -32)
			goto Explode
		Credit:
			STGS A 0 A_SpawnItemEx("GasTankExplosion1", 0, 0, -32)
			TNT1 A 35 ACS_NamedExecuteWithResult("core_propexplode", 20, 120, 120)
			stop
		NoCredit:
			STGS A 0 A_SpawnItemEx("GasTankExplosion1", 0, 0, -32)
			TNT1 A 35 A_Explode(20,120,XF_HURTSOURCE,0,120)
			stop
	}
}

actor GasTankExplosionEffect
{
    +NOBLOCKMAP
    +SERVERSIDEONLY
    +ACTIVATEPCROSS
    +DONTSPLASH
    +NOCLIP
    +DROPPED
    +DONTSPLASH
    Height 1
    Radius 1
	damagetype "GasTankExplosion"
    States
    {
		Spawn:
			TNT1 A 0
			TNT1 A 4
			TNT1 A 0 A_Explode(1,100,1,0,100)
			stop
    }
}

DamageType GasTankExplosion
{
    Factor 0
}

actor HazardCredit_GasTankDamager : BasicACSDamager
{
	damagetype "GasTank"
	obituary "%o went boom from %k's Gas Tank."
}

actor HazardTag_GasTank : BasicACSDamager
{
	damagetype "GasTank"
	obituary "%o went boom while fighting %k."
}

actor GasTankExplosion1
{
    +CLIENTSIDEONLY
    +NOINTERACTION
    +NOGRAVITY
    -SOLID
    +MISSILE
    +DONTBLAST
    radius 2
    height 2
    scale 2.5
	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 2 A_SpawnItemEx("GasTankExplosion2", random(0, 28), 0, 0, 0, 0, 0, random(0,359))
			TNT1 A 2 A_SpawnItemEx("GasTankExplosion2", random(0, 28), 0, 32, 0, 0, 0, random(0,359))
			TNT1 A 2 A_SpawnItemEx("GasTankExplosion2", random(0, 28), 0, 64, 0, 0, 0, random(0,359))
			TNT1 A 2 A_SpawnItemEx("GasTankExplosion2", random(0, 28), 0, 96, 0, 0, 0, random(0,359))
			stop
	}
}

actor GasTankExplosion2 : GasTankExplosion1
{
	States
	{
		Spawn:
			STGB ABC 4
			stop
	}
}

actor GasTankRespawnDamager
{
	PROJECTILE
	+FOILINVUL
	+THRUSPECIES
	species "GasTank"
	Damage (0x7FFFFFFD)
	damagetype "GasTankRespawn"
    height 120
    Radius 16
	States
	{
		Spawn:
			TNT1 A 0
			TNT1 A 2
			stop
	}
}

actor HazardTag_GasTankRespawn : BasicACSDamager
{
	damagetype "GasTankRespawn"
	obituary "%o was telefragged by a Gas Tank while fighting %k."
}
