//////////////////////////////
// PARTICLES and PROJECTILES//
//////////////////////////////

////////////////////////////
ACTOR ----MONSTERPROJECTILES----{
}

ACTOR BruiserBalls Replaces BaronBall
{
	Game Doom
	SpawnID 154
	Radius 6
	Height 16
	Speed 19
	FastSpeed 20
	Damage 8
	DamageType BruiserBlast
	Projectile 
	+RANDOMIZE
	RenderStyle Add
	Alpha 1
	SeeSound "baron/attack"
	DeathSound "baron/shotx"
	Decal "BaronScorch"
	States
	{
	Spawn:
		BAL7 AB 4 BRIGHT
		Loop
	Death:
		TNT1 A 0 A_SpawnItem("BaronBallExplosion", 0,  0, 8, 0)
		TNT1 A 0 A_SpawnItem("Particle", 0,  0, 8, 0)	
		Stop
	}
}
	
///////////////////////////////
ACTOR MancubusBalls Replaces FatShot
{
	Game Doom
	SpawnID 153
	Radius 6
	Height 8
	Speed 20
	Damage 12
	DamageType MancubusBlast
	PROJECTILE
	+RANDOMIZE
	RenderStyle Add
	Alpha 1
	SeeSound "fatso/attack"
	DeathSound "fatso/shotx"
	States
	{
	Spawn:
		MANF AB 4 BRIGHT
		Loop
		
	Death:
		TNT1 A 0 A_CustomMissile("Exploding2", 0,  0, random(0, 360), 2, random(0, 90))	
		TNT1 A 0 A_CustomMissile("Particle", 0,  0, random(0, 360), 2, random(0, 90))
		MISL B 8 BRIGHT
		MISL C 6 BRIGHT
		MISL D 4 BRIGHT
		Stop
	}
}


//////////////////////////////
ACTOR NewRevenantRockets Replaces RevenantTracer
{
	Game Doom
	SpawnID 53
	Radius 11
	Height 8
	Speed 16
	Damage 10
	Projectile 
	+EXTREMEDEATH
	+SEEKERMISSILE 
	+RANDOMIZE
	SeeSound "skeleton/attack"
	DeathSound "skeleton/tracex"
	RenderStyle Add
	States
	{
	Spawn:
		FATB AB 2 BRIGHT A_Tracer
		Loop
		
	Death:
		TNT1 A 0 A_CustomMissile("Exploding", 0,  0, random(0, 360), 2, random(0, 90))	
		TNT1 A 0 A_CustomMissile("Shrapnel", 0,  0, random(0, 360), 2, random(0, 90))		
		Stop
	}
}


/////////////////////////
ACTOR NightgauntFire
{
	Radius 8
	Height 16
	Speed 25
	Damage 8
	RENDERSTYLE ADD
	ALPHA 0.67
	PROJECTILE
	+FORCERADIUSDMG
	+THRUGHOST
	+EXTREMEDEATH
	States
	{
	Spawn:
		RDFX ABC 2 Bright A_CustomMissile("NIGHFX1",0,0,0,0)
	Loop
	
	Death:
		TNT1 A 1 A_PlaySound ("BOOKWOOP", CHAN_5)
		XPL1 ABCDEF 4 Bright
	Stop
	}
}

///////////////////////////
ACTOR NIGHFX1
{   
	Radius 2
	Height 2
	Speed 0
	Scale 0.4
	PROJECTILE
	RENDERSTYLE ADD
	ALPHA 0.67
	States
	{
	Spawn:
		NULL A 3 Bright
		LENR A 6 Bright
	Stop 
	}
}

///////////////////////////
ACTOR ImpsBalls Replaces DoomImpBall
{
	Game Doom
	SpawnID 10
	Radius 6
	Height 8
	Speed 10
	FastSpeed 20
	Damage 4
	Projectile
	+RANDOMIZE
	RenderStyle Add
	Alpha 1
	SeeSound "imp/attack"
	DeathSound "imp/shotx"
	States
	{
	Spawn:
		BAL1 AB 4 BRIGHT
		Loop
	Death:
		TNT1 A 0 A_SpawnItem("Shrapnel", 0,  0, 8, 0)	
		TNT1 A 0 A_SpawnItem("Particle", 0,  0, 8, 0)	
		BAL1 CDE 6 BRIGHT
		Stop
	}
}


///////////////////////////
ACTOR NewCacoBalls Replaces CacodemonBall
{
	Game Doom
	SpawnID 126
	Radius 6
	Height 8
	Speed 10
	FastSpeed 20
	Damage 5
	Projectile 
	+RANDOMIZE
	RenderStyle Add
	Alpha 1
	SeeSound "caco/attack"
	DeathSound "caco/shotx"
	States
	{
	Spawn:
		BAL2 AB 4 BRIGHT
		Loop
	Death:
		BAL2 C 3 BRIGHT
		TNT1 A 0 A_SpawnItem("BlueBallExplosion", 0,  0, 8, 0)
		TNT1 A 0 A_SpawnItem("Particle", 0,  0, 8, 0)	
		BAL2 DE 4 BRIGHT
		Stop
	}
}

///////////////////////////
ACTOR ArachnoBall Replaces ArachnotronPlasma
{
	Game Doom
	SpawnID 129
	Radius 13
	Height 8
	Speed 25
	Damage 5
	Projectile 
	+RANDOMIZE
	RenderStyle Add 
	Alpha 0.75
	SeeSound "baby/attack"
	DeathSound "baby/shotx"
	States
	{
	Spawn:
		APLS AB 5 BRIGHT
		Loop
	Death:
		APBX ABCDE 5 BRIGHT
		TNT1 A 0 A_SpawnItem("GreenBallExplosion", 0,  0, 8, 0)
		TNT1 A 0 A_CustomMissile("Particle", 20,  0, random(0, 360), 2, random(0, 90))	
		Stop
	}
}

ACTOR ----WEAPONPROJECTILES----{
}

///////////////////////////////
ACTOR Tracer Replaces BulletPuff
{
	+NOEXTREMEDEATH
	+BLOODLESSIMPACT
	+NOBLOCKMAP
	+NOGRAVITY
	+ALLOWPARTICLES
	+RANDOMIZE
	+DONTGIB
	RenderStyle Translucent
	Alpha 0.5
	VSpeed 1
	Mass 5
	States
	{
	Spawn:
		PUFF A 4 Bright
		PUFF B 4
	Melee:
		PUFF CD 4
		Stop
	}
}

///////////////////////////////
ACTOR ShotgunTracer
{
	PROJECTILE
	+FORCERADIUSDMG
	+NOBLOCKMAP
	+NOGRAVITY
	+ALLOWPARTICLES
	+RANDOMIZE
	RenderStyle Translucent
	Alpha 0.5
	VSpeed 1
	Mass 5
	States
	{
	Spawn:
		PUFF A 4 Bright
		PUFF B 4
	Melee:
		PUFF CD 4
		Stop
	}
}

///////////////////////////
ACTOR PlasmagunProjectile Replaces PlasmaBall
{
	Game Doom
	SpawnID 51
	Radius 13
	Height 8
	Speed 25
	Damage 5
	Projectile
	+RANDOMIZE
	RenderStyle Add
	Alpha 0.75
	SeeSound "weapons/plasmaf"
	DeathSound "weapons/plasmax"
	States
	{
	Spawn:
		PLSS AB 6 Bright
		Loop
	Death:
		TNT1 A 0 A_SpawnItem("BlueBallExplosion", 0,  0, 8, 0)
		TNT1 A 0 A_SpawnItem("Particle", 0,  0, 8, 0)	
		PLSE ABCDE 4 Bright
		Stop
	}
}
///////////////////////////
ACTOR BFGProjectile Replaces BFGBall
{
	Game Doom
	SpawnID 128
	Radius 13
	Height 8
	Speed 25
	Damage 110
	Projectile
	+RANDOMIZE
	RenderStyle Add
	Alpha 0.75
	DeathSound "weapons/bfgx"
	Obituary "$OB_MPBFG_BOOM"
	States
	{
	Spawn:
		BFS1 AB 4 Bright
		Loop
	Death:
		TNT1 A 0 A_SpawnItem("Shockwave", 0,  0, 8, 0)
		BFE1 AB 5 Bright
		TNT1 A 0 A_SpawnItem("GreenBallExplosion", 0,  0, 8, 0)
		BFE1 C 5 Bright A_BFGSpray
		BFE1 DEF 5 Bright
		Stop
	}
}

////////////////////////////
Actor STBFG10kShot : BFGProjectile
{
	Radius 11
	Height 8
	Speed 20
	Damage 80
	Alpha 0.75
	DamageType BFG10K
	Renderstyle Add
	+NOBLOCKMAP
	+NOGRAVITY
	+ACTIVATEIMPACT
	+ACTIVATEPCROSS
	+NOTELEPORT
	+PUFFONACTORS
	+PUFFGETSOWNER
	+FORCERADIUSDMG
	+EXTREMEDEATH
	SeeSound "BFG10KX"
	AttackSound "BFG10KX"
	States
	{
	Spawn:	
		BFE1 A 0 Bright
		BFE1 A 3 Bright A_Explode(160, 128, 1)
		BFE1 BCDEF 3 Bright
	Stop
	}
}

////////////////////////////
Actor HellStormBomb1
{
	Radius 11
	Height 8
	Speed 29
	Damage 0
	Gravity 0.3
	Scale 0.5
	Projectile
	-NOGRAVITY
	+EXTREMEDEATH
	DeathSound "HSTMHIT"
	Decal RevenantScorch
	States
{
	Spawn:
		HSBM A 1 Bright
	Loop

	Death:
		MISL A 0 Bright A_ChangeFlag("NoGravity", 1)
		TNT1 A 0 A_SpawnItem("HellstormBombExplode", 0,  0, 8, 0)
		TNT1 A 0 A_SpawnItem("Particle", 0,  0, 8, 0)
		TNT1 A 1 Bright A_Explode(64, 64, 0)
		TNT1 A -1
	Stop
	}
}

////////////////////////////
Actor HellStormBomb2
{
	Radius 11
	Height 8
	Speed 24
	Damage 0
	Gravity 0.28
	Scale 0.5
	Projectile
	-NOGRAVITY
	+EXTREMEDEATH
	DONTHURTSHOOTER
	DeathSound "HSTMHIT2"
	Decal RevenantScorch
	States
{
	Spawn:
		HSBM A 1 Bright
	Loop

	Death:
		MISL A 0 Bright A_ChangeFlag("NoGravity", 1)
		TNT1 A 0 A_SpawnItem("HellstormBombExplode", 0,  0, 8, 0)
		TNT1 A 0 A_SpawnItem("Particle", 0,  0, 8, 0)
		TNT1 A 1 Bright A_Explode(64, 64, 0)
		TNT1 A -1
	Stop
}
}

////////////////////////////
Actor HellStormBomb3 : HellStormBomb1
{
	Speed 26
	Gravity 0.26
}

////////////////////////////
Actor HellStormBomb4 : HellStormBomb1
{
	Speed 29
	Gravity 0.24
}

//////////////////////////////
ACTOR HellTracer
{
	Radius 11
	Height 8
	Speed 35
	Damage 15
	DamageType "Extreme"
	RenderStyle Add
	PROJECTILE
	+MISSILEMORE
	+MISSILEEVENMORE
	+SEEKERMISSILE
	DeathSound "ABSOBLST"
	
	States
{
	Spawn:
		TNT1 A 1 A_SpawnItem ("HellTracerSmoke", 0, 0)
		SZZE A 4 Bright A_Tracer
	Loop
	
	Death:
		FXPB ABCDEFGHIJKLM 1 Bright
		BSHK ABCDEFGHIJKLMNOPQR 1 Bright A_FadeOut(0.07)
	Stop
	}
}

//////////////////////////////
ACTOR HellTracerSmoke
{
	+NOBLOCKMAP
	+NOGRAVITY
	+NOTELEPORT
	RenderStyle Translucent 
	Alpha 0.3
	
	States
	{	
	Spawn:
		SZZE A 2
	Stop
	}
}

///////////////////////////////
Actor AbsoBall : BFGBall
{
	Scale 0.8
	Speed 29
	Alpha 1
	Damage 120
	DeathSound "ABSOBLST"
	DamageType "Extreme"
	+FORCERADIUSDMG
	+EXTREMEDEATH	
	States
	{
	Spawn:
		ABSH ABCDEFGH 3
	Loop

	Death:
		TNT1 A 0
		TNT1 A 0 A_Playsound ("ABSOBLST", CHAN_WEAPON)
		TNT1 A 0 A_Explode(80,300,0)
		TNT1 A 0 Bright A_SpawnItem("Shockwave",0,0,0)
		ABSB A 0 A_SpawnItemEx("BFGDeathParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
		ABSB B 0 A_SpawnItemEx("BFGSuperParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
		ABSB AABBCC 2 Bright 
		ABSB DD 1 Bright A_BFGSpray
		ABSB EEFF 2 Bright
	Stop
	}
}

///////////////////////////////
Actor BFGTrailParticle
{
	Height 0
	Radius 0
	Mass 0
	Speed 3
	Scale 0.05
	RenderStyle Add
	+MISSILE
	+NOBLOCKMAP
	+NOGRAVITY
	+DONTSPLASH
	
	States
	{
	Spawn:
		LENS A 2 Bright A_FadeOut(0.02)
	Loop
	}
}

///////////////////////////////
Actor BFGDeathParticle
{
	Height 0
	Radius 0
	Mass 0
	+MISSILE
	+NOBLOCKMAP
	+NOGRAVITY
	+LOWGRAVITY
	+DONTSPLASH
	+HEXENBOUNCE
	BounceFactor 0.5
	RenderStyle Add
	Scale 0.04
		
	States
	{
	Spawn:
	
	Death:
		LENS A 2 Bright A_FadeOut(0.02)
	Loop
	}
}

///////////////////////////////
Actor SuperBFGExtra : BFGExtra Replaces BFGExtra
{
	Alpha 0.75
	Damage 0
	RenderStyle Add
	+FORCERADIUSDMG
	+NOBLOCKMAP
	+NOGRAVITY
	+EXTREMEDEATH

	States
	{
	Spawn:
		ABSB A 0
		TNT1 AAAAA 0 A_SpawnItemEx("BFGExtraParticle", 0, 0, 14, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
		TNT1 AAAAA 0 A_SpawnItemEx("BFGExtraParticle", 0, 0, 14, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
		TNT1 AAAAA 0 A_SpawnItemEx("BFGExtraParticle", 0, 0, 14, (0.1)*Random(10, 40), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
		ABSB AABBCCDDEEFF 2 Bright 
	Stop
	}
}

///////////////////////////////
Actor BFGExtraParticle
{
	Mass 0
	Scale 0.035
	RenderStyle Add
	+DONTSPLASH
	+NOINTERACTION
	+MISSILE
	+NOBLOCKMAP

	States
	{
	Spawn:
	
	Death:
		LENS A 2 Bright A_FadeOut(0.1)
	Loop
	}
}

///////////////////////////////
Actor BFGDeathParticleSpawner
{
	+NOBLOCKMAP
	+MISSILE
	+NOGRAVITY 
	+NOCLIP
	
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 AAAAA 0 A_SpawnItemEx("BFGDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
		TNT1 AAAAA 0 A_SpawnItemEx("BFGDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
		TNT1 AAAAA 0 A_SpawnItemEx("BFGDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
		TNT1 AAAAA 0 A_SpawnItemEx("BFGDeathParticle", 0, 0, 0, (0.1)*Random(20, 45), 0, (0.1)*Random(-40, 40), Random(0, 360), 128)
		TNT1 A 1
	Stop
	}
}

///////////////////////////////
Actor BFGSuperParticleSpawner
{
	+NOBLOCKMAP
	+MISSILE
	+NOGRAVITY 
	+NOCLIP
	+FORCEXYBILLBOARD
	
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("BFGSuperParticle", 0, 0, 0, (0.1)*Random(10, 35), 0, (0.1)*Random(-20, 20), Random(0, 360), 128)
		TNT1 AAAAAAAAAAA 0 A_SpawnItemEx("BFGSuperParticle", 0, 0, 0, (0.1)*Random(10, 35), 0, (0.1)*Random(-20, 20), Random(0, 360), 128)
		TNT1 AAAAAAAAAAAAAAA 0 A_SpawnItemEx("BFGSuperParticle", 0, 0, 0, (0.1)*Random(10, 35), 0, (0.1)*Random(-20, 20), Random(0, 360), 128)
		TNT1 A 1
	Stop
	}
}

///////////////////////////////
Actor BFGSuperParticle
{
	Height 0
	Radius 0
	Mass 0
	+NOBLOCKMAP
	+MISSILE
	+NOGRAVITY 
	+NOCLIP
	+DONTSPLASH
	+FORCEXYBILLBOARD
	RenderStyle Add
	Scale 0.04
	Speed 24
	
	States
	{
	Spawn:
	
	Death:
		LENS A 2 Bright A_FadeOut(0.02)
	Loop
	}
}

///////////////////////////
ACTOR NewRockets Replaces Rocket
{
  Radius 11
  Height 8
  Speed 29
  Damage 35
  PROJECTILE
  +SOLID
  +DEHEXPLOSION
  +ROCKETTRAIL
  +EXTREMEDEATH
  SeeSound "weapons/rocklf"
  DeathSound "ROCKEXPL"
  Obituary "$OB_MPROCKET" // "%o rode %k's rocket."
  States
  {
	Spawn:
    MISL A 1 Bright A_CustomMissile("ROCKETFX1",0,0,0,0)
    Loop
	
	Death:
	MISL B 3 Bright A_Explode 
  	TNT1 A 0 Bright A_CustomMissile("Exploding", 0,  0, random(0, 360), 2, random(0, 90))	
    Stop
  }
}

///////////////////////////
ACTOR ROCKETFX1
{   
	Radius 2
	Height 2
	Speed 0
	Scale 0.2
	PROJECTILE
	RENDERSTYLE ADD
	ALPHA 0.67
	States
	{
	Spawn:
		NULL A 3 Bright
		LENR A 6 Bright
	Stop 
	}
}
