// Fire Actors

Actor FireSpawner 13997
{
damagefactor "Barrel", 0
mass 50
PROJECTILE
+HEXENBOUNCE
-NOGRAVITY
-WINDTHRUST
+STRIFEDAMAGE
+SHOOTABLE
+NOEXPLODEFLOOR
+DONTSPLASH
+NOBLOCKMAP
+MOVEWITHSECTOR
+VISIBILITYPULSE
+NOTARGET
+CANPASS
damagetype Flames
Renderstyle Add
bouncecount 1
Alpha 0.8
health 3
height 8
radius 8
damage 1
states
{
Spawn:
BAL1 A 0
BAL1 A 1 Thing_ChangeTid(0, 660)
Loopie:
BAL1 A 2 A_SpawnItemEx("FireRise8", Random(-4, 4), Random(-6, 6), Random(-2, 4), 0, 0, Random(1, 2), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRiseB", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 2 A_SpawnItemEx("FireRise4", Random(-4, 4), Random(-4, 4), Random(0, 2), 0, 0, Random(1, 2), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRise", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 2 A_SpawnItemEx("FireRise2", Random(-6, 6), Random(-6, 6), Random(-2, 4), 0, 0, Random(1, 2), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRise", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 2 A_SpawnItemEx("FireRise3", Random(-6, 6), Random(-6, 6), Random(-2, 4), 0, 0, Random(1, 2), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRiseB", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 2 A_SpawnItemEx("FireRise2B", Random(-6, 6), Random(-6, 6), Random(-2, 4), 0, 0, Random(1, 2), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRise", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 2 A_SpawnItemEx("FireRise9", Random(-6, 6), Random(-6, 6), Random(-2, 4), 0, 0, Random(1, 2), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRise", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 2 A_SpawnItemEx("FireRise9B", Random(-6, 6), Random(-6, 6), Random(-2, 4), 0, 0, Random(1, 2), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("FireRiseB", Random(-6, 6), Random(-6, 6), Random(-2, 4), 0, 0, Random(1, 2), 0, SXF_CLIENTSIDE, 150)
BAL1 A 1 A_JumpIf(waterlevel >= 1, "Fizzle")
loop
See:
goto Spawn
Fizzle:
BAL1 A 0
BAL1 A 0
stop
Death:
BAL1 A 1 A_RadiusThrust(16, 24, 0)
BAL1 A 1 A_SpawnItemEx("FireSpawner2", 0, 0, 0, 0, 0, 0, 0, 0, 0)
stop
}}



// Fire Actors

Actor FireSpawner2 : FireSpawner
{
+BOUNCEONACTORS
+NOTARGET
Alpha 0.6
Scale 0.6
health 2
height 8
radius 8
damage 1
states
{
Spawn:
BAL1 A 8
BAL1 A 0 A_ChangeFlag("BOUNCEONACTORS", 0)
BAL1 A 1 Thing_ChangeTid(0, 660)
Loopie:
BAL1 A 2 A_SpawnItemEx("FireRise", Random(-2, 2), Random(-6, 6), Random(-2, 2), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRiseB", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 2 A_SpawnItemEx("FireRiseB", Random(-2, 2), Random(-6, 6), Random(-2, 2), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRise", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 2 A_SpawnItemEx("FireRise8", Random(-4, 4), Random(-6, 6), Random(-2, 2), 0, 0, Random(0, 2), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRise2", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 2 A_SpawnItemEx("FireRise2", Random(-6, 6), Random(-6, 6), Random(-2, 2), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRise2B", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 2 A_SpawnItemEx("FireRise4", Random(-4, 4), Random(-4, 4), Random(0, 2), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 0)
BAL1 A 1 A_JumpIf(waterlevel >= 1, "Fizzle")
loop
See:
goto Spawn
Fizzle:
BAL1 A 0
BAL1 A 0
stop
Death:
BAL1 A 1 A_RadiusThrust(6, 24, 0)
BAL1 A 1 A_SpawnItemEx("FireSpawner3", 0, 0, 0, 0, 0, 0, 0, 0, 0)
stop
}}

Actor FireSpawner3 : FireSpawner
{
+BOUNCEONACTORS
+NOTARGET
Alpha 0.4
Scale 0.4
damage 1
health 1
height 4
radius 4
states
{
Spawn:
BAL1 A 8
BAL1 A 0 A_ChangeFlag("BOUNCEONACTORS", 0)
BAL1 A 1 Thing_ChangeTid(0, 660)
Loopie:
BAL1 A 1 A_SpawnItemEx("FireRise", Random(-2, 2), Random(-6, 6), Random(-2, 2), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRiseB", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 1 A_SpawnItemEx("FireRise8", Random(-4, 4), Random(-6, 6), Random(-2, 2), 0, 0, Random(0, 2), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRise2", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 AA 0 A_SpawnItemEx("FireRise4", Random(-4, 4), Random(-4, 4), Random(0, 2), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRise", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 1 A_SpawnItemEx("FireRise2", Random(-6, 6), Random(-6, 6), Random(-2, 2), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRise2B", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 AA 1 A_SpawnItemEx("FireRise4", Random(-4, 4), Random(-4, 4), Random(0, 2), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 0)
BAL1 A 0 A_SpawnItemEx("SmokeRise", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 1 A_SpawnItemEx("FireRise2B", Random(-6, 6), Random(-6, 6), Random(-2, 2), 0, 0, Random(0, 2), 0, SXF_CLIENTSIDE, 150)
BAL1 A 1 A_JumpIf(waterlevel >= 1, "Fizzle")
loop
See:
goto Spawn
Fizzle:
BAL1 A 0
BAL1 A 0
stop
Death:
BAL1 A 1 A_RadiusThrust(8, 24, 0)
BAL1 A 1 A_SpawnItemEx("FireSpawner4", 0, 0, 0, 0, 0, 0, 0, 0, 0)
stop
}}

Actor FireSpawner4 : FireSpawner
{
+BOUNCEONACTORS
Alpha 0.3
Scale 0.2
damage 1
health 1
height 3
radius 3
states
{
Spawn:
BAL1 A 8
BAL1 A 0 A_ChangeFlag("BOUNCEONACTORS", 0)
BAL1 A 1 Thing_ChangeTid(0, 660)
Loopie:
BAL1 A 1 A_SpawnItemEx("FireRise", Random(-2, 2), Random(-6, 6), Random(-2, 2), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRiseB", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 1 A_SpawnItemEx("FireRiseB", Random(-2, 2), Random(-6, 6), Random(-2, 2), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRise", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 0 A_SpawnItemEx("SmokeRise2B", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 AA 1 A_SpawnItemEx("FireRise4", Random(-4, 4), Random(-4, 4), Random(0, 2), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 0)
BAL1 A 0 A_SpawnItemEx("SmokeRise", Random(-2, 2), Random(-6, 6), Random(-2, 4), 0, 0, Random(0, 1), 0, SXF_CLIENTSIDE, 150)
BAL1 A 1 A_SpawnItemEx("FireRise2B", Random(-6, 6), Random(-6, 6), Random(-2, 2), 0, 0, Random(0, 2), 0, SXF_CLIENTSIDE, 150)
BAL1 A 1 A_JumpIf(waterlevel >= 1, "Fizzle")
loop
See:
goto Spawn
Fizzle:
BAL1 A 0
BAL1 A 0
stop
Death:
BAL1 A 1 A_RadiusThrust(8, 24, 0)
BAL1 A 1 
stop
}}
/////////////////////////////////////////
/////////////////////////////////////////
//////// TRAPS, MINES AND BARRELS ///////
/////////////////////////////////////////
/////////////////////////////////////////

ACTOR ExplosiveBarrel2 : ExplosiveBarrel replaces ExplosiveBarrel
{
  +NOTARGET
  Scale 1.2
  Health 10
  Radius 16
  Height 48
  +SOLID
  +FIXMAPTHINGPOS
  +SHOOTABLE
  +NOBLOOD
  +CANPASS
  +NOTARGET
  -OLDRADIUSDMG
  DeathSound "world/barrelx"
  Obituary "$OB_BARREL" // "%o went boom."
  States
  {
  Spawn:
    BAR1 ABCDEFGHIJKLMNO 5
    Loop
  Death:
    BEXP B 0 BRIGHT A_Scream
    BEXP D 5 BRIGHT A_Explode
    BEXP E 10 BRIGHT A_Explode(30, 64, 0)
	stop
  }
}

ACTOR FireBarrel : ExplosiveBarrel
{
  Scale 1.2
  Health 10
  Radius 16
  Height 48
  +SOLID
  +FIXMAPTHINGPOS
  +SHOOTABLE
  +NOBLOOD
  +CANPASS
  +NOTARGET
  -OLDRADIUSDMG
  DamageType "Barrel"
  DeathSound "world/barrelx"
  Obituary "$OB_BARREL"
  translation "112:127=172:176", "80:111=184:191", "128:159=181:191"
  States
  {
  Spawn:
    BAR1 ABCDEFGHIJKLMNO 5
    Loop
  Death:
    BEXP B 0 BRIGHT A_Scream
	BEXP C 0 A_ChangeFlag("SOLID", 0)
    BEXP C 5 BRIGHT A_SpawnItem("BarrelFireScript", 0, 16, 0)
    BEXP D 5 BRIGHT A_Explode
	BEXP E 10 BRIGHT 
  	stop	
  }
}

Actor BarrelFireScript
{
	+NOCLIP
	height 8
	radius 8
	-NOGRAVITY
states
{
Spawn:
	TNT1 A 1
	TNT1 A 35 ACS_Execute(980, 0)
	TNT1 A 200
	stop
}}