
ACTOR ExplosiveBarrel1 Replaces ExplosiveBarrel
{
Var Int User_I;
Var Int User_J;
  Health 20
  Radius 10
  Height 42
  +SOLID
  +SHOOTABLE
  +NOBLOOD
  +ACTIVATEMCROSS
  +DONTGIB
  +NOICEDEATH
  +OLDRADIUSDMG
  DeathSound "world/barrelx"
  Obituary "$OB_BARREL" // "%o went boom."
  States

	{
 Spawn:
    BAR1 AB 6
    Loop
	
	Death:	
        BAR1 A 1
        BEXP AB 2
		TNT1 A 0 A_CustomMissile ("BarrelExplosionAnnouncer", 0, 0, random (0, 360), 2, random (0, 160))
		BEXP CD 2 BRIGHT
	    TNT1 A 0 A_NoBlocking
	    TNT1 A 0 A_Fall
		TNT1 A 0 A_SpawnItem ("BigRicoChet", 0, -15)
		TNT1 A 0 A_SpawnItemEx ("DetectFloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    TNT1 A 0 A_SpawnItemEx ("DetectCeilCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_SpawnItemEx ("ExplosionFlareSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_SpawnItem("WhiteShockwaveBig")
		TNT1 A 0 A_Explode(160,200)
		//TNT1 A 0 A_CustomMissile ("BarrelExplosion", 15, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 A_SpawnItemEx ("BarrelKaboom",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 AAAAAAA 0 A_CustomMissile ("ExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
		EXPL A 0 Radius_Quake (2, 24, 0, 15, 0)
		BEXP B 0 BRIGHT A_Scream
        
    TNT1 A 0 A_SetUserVar("User_J", random(5, 15) )
    TNT1 A 0 A_SetUserVar("User_I", 1 )
    001___FOR_I_from_1_to_J:
    TNT1 A 0 A_SpawnItemEx("Barrel_Particle", 0, 0, User_I, 2*random[Barrel_Death](-128, 127)*0.03125, 2*random[Barrel_Death](-128, 127)*0.03125, 3 + 3*random[Barrel_Death](0, 255)*0.015625, 0, SXF_ABSOLUTEVELOCITY) 
    TNT1 A 0 A_SetUserVar("User_I", User_I+1 )
    TNT1 A 0 A_JumpIf(User_I < User_J+1, "001___FOR_I_from_1_to_J")

		TNT1 A 0 A_PlaySound("FAREXPL", 3)

		TNT1 AAAAA 8 A_CustomMissile ("ExplosionSmoke", 1, 0, random (0, 360), 2, random (50, 130))

		BEXP Z 300 BRIGHT A_BarrelDestroy
		BEXP Z 5 A_Respawn
		Wait
		
	}
}


ACTOR Barrel_Particle : RandomSpawner
{
DropItem "Barrel_Particle1" //, 256, 10
DropItem "Barrel_Particle2" //, 256, 10
DropItem "Barrel_Particle3" //, 256, 10
}

ACTOR Barrel_Particle1: EttinMace
{
  States
  {
  Spawn:
    BAR1 A 1
    Loop
  Crash:
    BAR1 A 10
    TNT1 A 0 A_SetAngle( random(0,359) )
    TNT1 A 0 A_SetPitch( random(0,358) - 179 )
    TNT1 A 0 A_SetRoll( random(0,359) )
    BAR1 B 1 A_QueueCorpse
    BAR1 B -1
    Stop
  }
}

ACTOR Barrel_Particle2: Barrel_Particle1
{
}

ACTOR Barrel_Particle3: Barrel_Particle1
{
}
