




//EXPLOSION =======================================================

ACTOR Barrel_Explosion : RandomSpawner
{
DropItem "MaceExplosion1_BIG" //, 256, 10
DropItem "MaceExplosion2_BIG" //, 256, 10
}

ACTOR MaceExplosion1_BIG
{
Scale 1.1

+NOGRAVITY

  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_Jump(256, "Spawn1", "Spawn2", "Spawn3", "Spawn4")
    Goto Spawn1
  Spawn1:
    FX58 ABCDEFGHIJKLMNOPQ 1 Bright
    Stop
  Spawn2:
    FX58 ABCDEFGHIJKLMNOPQ 2 Bright
    Stop
  Spawn3:
    FX58 A 1 Bright
    FX58 BCDEFGHI 1 Bright
    FX58 JKLMNOPQ 2 Bright
    Stop
  Spawn4:
    FX58 A 2 Bright
    FX58 BCDEFGHI 2 Bright
    FX58 JKLMNOPQ 1 Bright
    Stop
  }
}

ACTOR MaceExplosion2_BIG
{
XScale 1.1
YScale 1.1

+NOGRAVITY

  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_Jump(256, "Spawn1", "Spawn2")
    Goto Spawn1
  Spawn1:
    FRFX A 1 Bright
    FRFX BCDEFG 1 Bright
    FRFX HIJK 3 Bright
    FRFX LMNOP 2 Bright
    Stop
  Spawn2:
    FRFX A 1 Bright
    FRFX BCDEFG 1 Bright
    FRFX HIJK 2 Bright
    FRFX LMNOP 1 Bright
    Stop
  }
}

ACTOR MaceExplosion1_MEDIUM : MaceExplosion1_BIG
{
Scale 0.45
}

ACTOR MaceExplosion2_MEDIUM : MaceExplosion2_BIG
{
XScale 0.77
YScale 0.45
}

ACTOR MaceExplosion1_SMALL : MaceExplosion1_BIG
{
Scale 0.35
}

ACTOR MaceExplosion2_SMALL : MaceExplosion2_BIG
{

XScale 0.6
YScale 0.35
}

//BARREL PARTICLES =================================================

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
{
}

ACTOR ExplosiveBarrel_Particles : ExplosiveBarrel replaces ExplosiveBarrel
{
Var Int User_I;
Var Int User_J;

  States
  {
  Spawn:
    BAR1 AB 6
    Loop
  Death:

    TNT1 A 0 A_SpawnItemEx("Barrel_Explosion", 0, 0, 20)

    TNT1 A 5 Bright
    TNT1 A 5 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 5 Bright
    TNT1 A 5 Bright A_Explode

    TNT1 A 10 

    TNT1 A 1050 Bright A_BarrelDestroy
    TNT1 A 5 A_Respawn
    Wait
  }
}

//================================================================================
//================================================================================

ACTOR DeadMarine_Random : DeadMarine replaces DeadMarine
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SetAngle( random(0,359) )
  Goto Spawn_aivar242
  Spawn_aivar242:
    PLAY N -1
    Stop
  }
}

ACTOR GibbedMarine_Random : GibbedMarine replaces GibbedMarine
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SetAngle( random(0,359) )
  Goto Spawn_aivar242
  Spawn_aivar242:
    PLAY W -1
    Stop
  }
}

ACTOR GibbedMarineExtra_Random : GibbedMarineExtra replaces GibbedMarineExtra
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SetAngle( random(0,359) )
  Goto Spawn_aivar242
  Spawn_aivar242:
    PLAY W -1
    Stop
  }
}

ACTOR Gibs_Random : Gibs replaces Gibs
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SetAngle( random(0,359) )
  Goto Spawn_aivar242
  Spawn_aivar242:
    POL5 A -1
    Stop
  }
}

ACTOR ColonGibs_Random : ColonGibs replaces ColonGibs
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SetAngle( random(0,359) )
  Goto Spawn_aivar242
  Spawn_aivar242:
    POB1 A -1
    Stop
  }
}

ACTOR SmallBloodPool_Random : SmallBloodPool replaces SmallBloodPool
{
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_SetAngle( random(0,359) )
  Goto Spawn_aivar242
  Spawn_aivar242:
    POB2 A -1
    Stop
  }
}

ACTOR HealthBonus_Transluc : HealthBonus replaces HealthBonus
{
Renderstyle Translucent
Alpha 0.9

  States
  {
  Spawn:
    BON1 ABCDCB 6
    Loop
  }
}

ACTOR ArmorBonus_GlowEff : ArmorBonus replaces ArmorBonus
{
  States
  {
  Spawn:
    TNT1 A 0 A_SpawnParticle (Green, SPF_FULLBRIGHT | SPF_RELATIVE, 35, 20, 0, 0, 0, 7)
    TNT1 A 0 A_SpawnParticle (Green, SPF_FULLBRIGHT | SPF_RELATIVE, 35, 20, 0, 0, 0, 7)
    BON2 ABCDCB 6
    Loop
  }
}


Actor BD_Blursphere : Blursphere replaces Blursphere
{
+FLOATBOB
floatbobstrength 0.6
+FORCEXYBILLBOARD
-VISIBILITYPULSE
renderstyle Add
alpha 0.8
scale .25
States
	{
	Spawn:
		NVIS BCDEFG 4 bright A_SetRenderstyle(alpha - 0.15,STYLE_Add)
		NVIS FEDCBA 4 bright A_SetRenderstyle(alpha + 0.15,STYLE_Add)
		Loop
	}
}

Actor BD_Soulsphere : Soulsphere replaces Soulsphere
{
+FLOATBOB
floatbobstrength 0.6
+FORCEXYBILLBOARD
renderstyle Add
alpha 1.0
scale .25
states
	{
		Spawn:
			SOU1 ABCDEFGFEDCB 4 bright
			loop
	}
}
			

Actor BD_Megasphere : Megasphere replaces Megasphere
{
+FORCEXYBILLBOARD
+FLOATBOB
floatbobstrength 0.6
renderstyle Add
alpha 1.0
scale .25
states
	{
	spawn:
		MEG1 abcdefedcb 4 bright
		loop
	}
}

Actor BD_InvulnerabilitySphere : InvulnerabilitySphere replaces InvulnerabilitySphere
{
powerup.color green, 0.05
+FLOATBOB
floatbobstrength 0.6
+FORCEXYBILLBOARD
renderstyle Add
alpha 1.0
scale .25
states
	{
	spawn:
		NVUL FEDCBAA 4 bright
		loop
	}
}