//Everything that can explode and hurt people goes here.
Actor STGrenadeTimer : Inventory
{
inventory.maxamount 20
}

ACTOR SeekerRocket : Rocket Replaces Rocket
{
   Game Doom
   SpawnID 127
   Radius 11
   Height 8
   Speed 55
   Damage 75
   DamageType Explosive
   Decal "Scorch"
   Projectile
   -ROCKETTRAIL
   +SEEKERMISSILE
   +SCREENSEEKER
   +EXTREMEDEATH
   +BLOODSPLATTER 
   +DONTSEEKINVISIBLE
   SeeSound "None"
   DeathSound "Explosion"
   Obituary "$OB_MPROCKET" // "%o rode %k's rocket."
   States
   {
   DM:
		TNT1 A 0
		TNT1 A 0 A_ChangeFLag("THRUSPECIES", 0)
		TNT1 A 0 A_ChangeFLag("MTHRUSPECIES", 0)
		Goto Spawn
		
      Spawn:
	 	TNT1 A 0 A_PlaySound("RMILOOP",6,1,1)
		  TNT1 A 0 Radius_Quake(1,20,0,20,0) 
        MISL A 1 Bright A_SeekerMissile(0, 8, SMF_LOOK)
		TNT1 A 0 A_SpawnItem("RocketFlare",-20,0)
		//TNT1 A 0 A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360))
		//TNT1 A 0 A_SpawnItem ("RocketSmokeTrail52")
		
		//TNT1 A 0 A_CustomMissile ("RocketSmokeTrail52Moving", 2, 0, random (160, 210), 2, random (-30, 30))
		//TNT1 A 0 A_SpawnItem ("RocketSmokeTrail52")
		TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
		TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random (160, 210), 2, random (-30, 30))
		Loop
	Death:
		TNT1 A 0 A_StopSound(6)
		   EXPL A 0 Radius_Quake (3, 16, 0, 30, 0)//(intensity, duration, damrad, tremrad, tid)
		TNT1 A 0 A_PlaySound("FAREXPL", 0)
		TNT1 A 0 A_SpawnItem ("BigRicoChet", 0, -30)
		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 ("UnderwaterExplosion",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_SpawnItemEx ("RocketExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 AAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
		TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_CustomMissile ("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
		EXPL AAA 0 A_CustomMissile ("BigNeoSmoke", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAA 1 A_CustomMissile ("ExplosionSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 1
		TNT1 AAAAAAAAA 2 A_CustomMissile ("BigNeoSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop
	}
}

ACTOR SeekerRocket2 : Rocket Replaces Rocket
{
   Game Doom
   SpawnID 127
   Radius 11
   Height 8
   Speed 40
   Damage 20
   DamageType Explosive
   Decal "Scorch"
   Projectile
   -ROCKETTRAIL
   +SEEKERMISSILE
   +SCREENSEEKER
   +EXTREMEDEATH
   +BLOODSPLATTER 
   +DONTSEEKINVISIBLE
   SeeSound "None"
   DeathSound "REVEXPLO"
   Obituary "$OB_MPROCKET" // "%o rode %k's rocket."
   States
   {
   DM:
		TNT1 A 0
		TNT1 A 0 A_ChangeFLag("THRUSPECIES", 0)
		TNT1 A 0 A_ChangeFLag("MTHRUSPECIES", 0)
		Goto Spawn
		
      Spawn:
	 TNT1 A 0 A_PlaySound("REVLOOP",6,1,1)
	   TNT1 A 0 Radius_Quake(1,20,0,20,0) 
        MISL A 1 Bright A_SeekerMissile(0, 8, SMF_LOOK)
		TNT1 A 0 A_SpawnItem("RocketFlare",-20,0)
		//TNT1 A 0 A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360))
		//TNT1 A 0 A_SpawnItem ("RocketSmokeTrail52")
		
		//TNT1 A 0 A_CustomMissile ("RocketSmokeTrail52Moving", 2, 0, random (160, 210), 2, random (-30, 30))
		//TNT1 A 0 A_SpawnItem ("RocketSmokeTrail52")
		TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
		TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random (160, 210), 2, random (-30, 30))
		Loop
	Death:
		TNT1 A 0 A_StopSound(6)
        EXPL A 0 Radius_Quake (2, 16, 0, 25, 0)//(intensity, duration, damrad, tremrad, tid)
		TNT1 A 0 A_CustomMissile("BigRicoChet")
        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 ("UnderwaterExplosion",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 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 AAAAA 0 A_CustomMissile ("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
        EXPL AAAAA 0 A_CustomMissile ("ExplosionSmokeFast22", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_SpawnItemEx ("RocketExplosion3",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		//TNT1 A 0 A_SpawnItemEx ("RocketPenetrator",cos(-pitch)*42,0,0+(sin(pitch)*42),cos(-pitch)*40,0,sin(pitch)*40,0,SXF_TRANSFERPITCH)
		//TNT1 AA 0 A_SpawnItem("SuperExpensiveParticleSpawner")
			EXPL AAA 0 A_CustomMissile ("BigNeoSmoke", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 2
		TNT1 A 0 A_SpawnItemEx ("LiquidExplosionEffectSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 0 A_PlaySound("FAREXPL", 3)
		TNT1 A 20
		//TNT1 AAAAAAAAAAAAA 3 A_CustomMissile ("HeavyExplosionSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop
	}
}

ACTOR Rocket2 Replaces Rocket
{
	Radius 10
	Height 8
	Projectile
	Speed 45
    Damage 40
	DamageType Explosive
    MeleeDamage 0
    Gravity 0.00
	Scale 0.7
    Decal "Scorch"
    -NOGRAVITY
    +EXTREMEDEATH
    +BLOODSPLATTER 
	SeeSound "None"
	DeathSound "Explosion"
	Obituary "$OB_MPROCKET"
	Species "Marines"
	States
	{
	DM:
		TNT1 A 0
		TNT1 A 0 A_ChangeFLag("THRUSPECIES", 0)
		TNT1 A 0 A_ChangeFLag("MTHRUSPECIES", 0)
		Goto Spawn1
	
	Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways(719, 0, 0, 0, 0)//Check if Coop

	Spawn1:
	TNT1 A 0 A_PlaySound("RMILOOP",6,1,1)
	  TNT1 A 0 Radius_Quake(1,20,0,20,0) 
	    MISL A 1 Bright 
		TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		TNT1 A 0 A_SpawnItem("RocketFlare",-20,0)
		//TNT1 A 0 A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360))
		//TNT1 A 0 A_SpawnItem ("RocketSmokeTrail52")
		
		//TNT1 A 0 A_CustomMissile ("RocketSmokeTrail52Moving", 2, 0, random (160, 210), 2, random (-30, 30))
		//TNT1 A 0 A_SpawnItem ("RocketSmokeTrail52")
		TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
		TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random (160, 210), 2, random (-30, 30))
		Loop
	
	SpawnUnderwater:
	    TNT1 A 0 A_ChangeFlag("NOGRAVITY", 0)
		TNT1 A 0 A_SpawnItem("RocketFlare",-20,0)
	    TNT1 A 0 A_CustomMissile ("BUBULZ", 0, 0, random (0, 360), 2, random (0, 180))
	    Goto Spawn1
     	
			Death:
		TNT1 A 0 A_StopSound(6)
        EXPL A 0 Radius_Quake (3, 16, 0, 30, 0)//(intensity, duration, damrad, tremrad, tid)
		TNT1 A 0 A_PlaySound("FAREXPL", 0)
		TNT1 A 0 A_CustomMissile("BigRicoChet")
		TNT1 A 0 A_SpawnItem ("BigRicoChet", 0, -30)
        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 ("UnderwaterExplosion",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 AAAAAAAAA 0 A_CustomMissile ("SmallExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 AAAAA 0 A_CustomMissile ("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
        EXPL AAAAA 0 A_CustomMissile ("ExplosionSmokeFast22", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_SpawnItemEx ("RocketExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		//TNT1 AA 0 A_SpawnItem("SuperExpensiveParticleSpawner")
		TNT1 A 2
		TNT1 A 0 A_SpawnItemEx ("LiquidExplosionEffectSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 20
		//TNT1 AAAAAAAAAAAAA 3 A_CustomMissile ("HeavyExplosionSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop
	}
}



ACTOR WeakRocket2 
{
	Radius 10
	Height 8
	Projectile
	Speed 15
    Damage 3
	DamageType Explosive
    MeleeDamage 0
    Gravity 0.00
	Scale 0.7
    Decal "Scorch"
    -NOGRAVITY
    +EXTREMEDEATH
    +BLOODSPLATTER 
	SeeSound "None"
	DeathSound "XPLO"
	Obituary "$OB_MPROCKET"
	Species "Marines"
	States
	{
	DM:
		TNT1 A 0
		TNT1 A 0 A_ChangeFLag("THRUSPECIES", 0)
		TNT1 A 0 A_ChangeFLag("MTHRUSPECIES", 0)
		Goto Spawn1
	
	Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways(719, 0, 0, 0, 0)//Check if Coop

	Spawn1:
	//TNT1 A 0 A_PlaySound("RMILOOP",6,1,1)
	  TNT1 A 0 Radius_Quake(1,20,0,20,0) 
	    MISL A 1 Bright 
		TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		TNT1 A 0 A_SpawnItem("YellowFlareSmall",-20,0)
		TNT1 A 0 A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360))
		//TNT1 A 0 A_SpawnItem ("RocketSmokeTrail52")
		
		//TNT1 A 0 A_CustomMissile ("RocketSmokeTrail52Moving", 2, 0, random (160, 210), 2, random (-30, 30))
		//TNT1 A 0 A_SpawnItem ("RocketSmokeTrail52")
		//TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
	
		Loop
	
	SpawnUnderwater:
	    TNT1 A 0 A_ChangeFlag("NOGRAVITY", 0)
		TNT1 A 0 A_SpawnItem("RocketFlare",-20,0)
	    TNT1 A 0 A_CustomMissile ("BUBULZ", 0, 0, random (0, 360), 2, random (0, 180))
	    Goto Spawn1
     	
			Death:
		TNT1 A 0 A_StopSound(6)
        EXPL A 0 Radius_Quake (1, 16, 0, 30, 0)//(intensity, duration, damrad, tremrad, tid)
		TNT1 A 0 A_PlaySound("FAREXPL", 0)
		TNT1 A 0 A_CustomMissile("BigRicoChet")
		TNT1 A 0 A_SpawnItem ("BigRicoChet", 0, -30)
        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 ("UnderwaterExplosion",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 AAAAAAAAA 0 A_CustomMissile ("SmallExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 AAAAA 0 A_CustomMissile ("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
        EXPL AAAAA 0 A_CustomMissile ("ExplosionSmokeFast22", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_SpawnItemEx ("RocketExplosionWeak",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		//TNT1 AA 0 A_SpawnItem("SuperExpensiveParticleSpawner")
		TNT1 A 2
		TNT1 A 0 A_SpawnItemEx ("LiquidExplosionEffectSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 20
		//TNT1 AAAAAAAAAAAAA 3 A_CustomMissile ("HeavyExplosionSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop
	}
}


actor WeakRocket: Rocket2
{
speed 20
damage 25
}

actor : Rocket2
{
speed 10
damage 10
}

actor VanillaCyberRocket: Rocket2
{
speed 20
damage 25
Species "None"
}




actor RocketExplosionWeak
{
+NOBLOCKMAP
+MISSILE
Radius 2
Height 2
Damagetype ExplosiveImpact
States    {
    Spawn:
	TNT1 A 0
	
TNT1 A 0 A_Explode(20,100) //Dam,Rad
        Stop}}

actor RocketExplosion
{
+NOBLOCKMAP
+MISSILE
Radius 2
Height 2
Damagetype ExplosiveImpact
States    {
    Spawn:
	TNT1 A 0
		TNT1 A 0 A_SpawnItem("WhiteShockwave")
TNT1 A 0 A_Explode(100,150) //Dam,Rad
        Stop}}
		
actor RocketExplosion2
{
+NOBLOCKMAP
+MISSILE
Radius 2
Height 2
Damagetype ExplosiveImpact
States    {
    Spawn:
	TNT1 A 0
		TNT1 A 0 A_SpawnItem("WhiteShockwave")
TNT1 A 0 A_Explode(145,50)
        Stop}}
		
actor RocketExplosion3
{
+NOBLOCKMAP
+MISSILE
Radius 2
Height 2
Damagetype ExplosiveImpact
States    {
    Spawn:
	TNT1 A 0
		TNT1 A 0 A_SpawnItem("WhiteShockwave")
	TNT1 A 0 A_PlaySound("EXSWEET", CHAN_BODY)
TNT1 A 0 A_Explode(40,45)
        Stop}}
		
actor LiquidExplosionEffectSpawner
{
+NOBLOCKMAP
+MISSILE
Radius 2
Height 2
Damagetype CauseWaterSplash
States    {
    Spawn:
	TNT1 A 1
	TNT1 A 0 A_Explode(3,9)
        Stop}}
		
actor BarrelExplosion: RocketExplosion
{
+FORCERADIUSDMG
States    {
    Spawn:
	TNT1 A 0
		TNT1 A 0 A_SpawnItem("WhiteShockwaveBig")
TNT1 A 0 A_Explode(150,200)
        Stop}}
		
actor GrenadeExplosion: RocketExplosion
{
+FORCERADIUSDMG
States    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_PlaySound("EXSWEET", CHAN_BODY)
TNT1 A 0 A_Explode(220,200)
TNT1 A 0 A_SpawnItem("WhiteShockwaveBig")
        Stop}}		

ACTOR CyberRocket: Rocket2
{
	Speed 30
}

ACTOR GrenadeMissile
{
	Radius 4
	Height 4
	Speed 50
	Damage 6
    +MISSILE
    +BLOODSPLATTER
	//Damagetype "ExplosiveImpact"
    Gravity 0.7
    
	+SKYEXPLODE
	+DOOMBOUNCE
	+EXPLODEONWATER
	DamageType Kick
    BounceFactor 0.5
	SeeSound "Weapons/GrenadeBounce"
	DeathSound "none"
	Obituary "$OB_MPROCKET"
	States
	{
	Spawn:
	    TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 9, "Explode")
		TNT1 A 0 A_CheckFloor("Death")
		GBPJ ABCD 3 A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360))
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 9, "Explode")
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		GBPJ EFGH 3	A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360))
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 9, "Explode")
		
		Loop
	
	SpawnUnderwater:
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		GBPJ ABCD 3
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 9, "Explode")
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		GBPJ EFGH 3	
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 9, "Explode")
	    Goto Spawn
	
	Death:
	    TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 9, "Explode")
		GBPJ AAAA 3 A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360))
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		Loop
		
	XDeath:
	TNT1 A 0 A_Recoil(1)
	TNT1 A 0 A_SetAngle(random (90,-90) + angle)
	GBPJ C 1 ThrustThingZ(0,20,0,1)
	Goto Spawn
	
	Explode:
	Death.Slime:
	Death.Fire:
	Death.Bullet:
	Death.Shotgun:
	Death.SSG:
	Death.Cutless:
	Death.Shrapnel:
	    TNT1 A 0
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
        EXPL A 0 Radius_Quake (3, 8, 0, 25, 0)//(intensity, duration, damrad, tremrad, tid)
		TNT1 A 0 A_SpawnItem ("BigRicoChet", 0, -30)
        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 ("UnderwaterExplosion",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_SpawnItemEx ("GrenadeExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 AAAAA 0 A_CustomMissile ("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
        EXPL AAAAA 0 A_CustomMissile ("ExplosionSmokeFast22", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_PlaySound("GREXY", 1)
		TNT1 A 1
		TNT1 A 0 A_PlaySound("FAREXPL", 3)
		TNT1 A 20
		//TNT1 AAAAAAAAAAAAA 3 A_CustomMissile ("HeavyExplosionSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop	
	}
}




ACTOR ShortGrenade: GrenadeMissile
{
-DOOMBOUNCE
+SLIDESONWALLS
	States
	{
	Spawn:
	    TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		GBPJ ABCDEFGH 3 A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360))
		Loop
	
	SpawnUnderwater:
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		GBPJ ABCD 3
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 1, "Explode")
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		GBPJ EFGH 3	
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 1, "Explode")
	    Goto Spawn
	
	Death:
	XDeath:
	TNT1 A 0
	Goto Explode
	}
}

ACTOR BouncingGrenade: GrenadeMissile
{
    +DOOMBOUNCE
	+EXPLODEONWATER
    BounceFactor 0.5
	SeeSound "Weapons/GrenadeBounce"
}

ACTOR CyberDemonGrenade: BouncingGrenade
{
	Speed 28
	Damage 30
	DamageType Explosive
    BounceFactor 0.9
	States
	{
	Death:
		EXPL A 1 A_Explode(200,200)
        EXPL A 0 Radius_Quake (2, 8, 0, 15, 0)
        TNT1 A 0 //A_AlertMonsters
        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 ("UnderwaterExplosion",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_SpawnItemEx ("RocketExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 AAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 AAAAAAA 0 A_CustomMissile ("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
        EXPL AAAAAA 0 A_CustomMissile ("ExplosionSmokeFast22", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 1
		TNT1 A 0 A_PlaySound("FAREXPL", 3)
		TNT1 AAAAAAAAAAAAA 3 A_CustomMissile ("HeavyExplosionSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop
	}
}



Actor DragonBreath
{
	Projectile
	+RANDOMIZE
+FORCEXYBILLBOARD
-BLOODSPLATTER 
+BLOODLESSIMPACT
+RIPPER
damage 0
radius 1
height 1
speed 40
renderstyle ADD
alpha 0.9
scale .15
    DamageType Flames
	SeeSound "fatso/attack"
    Decal "BigScorch"
states
	{
	Spawn:
		TNT1 AAAAA 2 A_SpawnItem("SpawnedFlamers")
		Stop
Death:
    Stop
XDeath:
TNT1 A 0
Stop
	}
}

ACTOR MarinesRocket: Rocket2
{
	DamageType FriendBullet
}


















ACTOR CyberBalls
{
	Radius 10
	Height 8
	Projectile
	Speed 27
    Damage 8
	DamageType Explosive
    Gravity 0.00
    Decal "Scorch"
	Renderstyle Add
    -NOGRAVITY
	+EXTREMEDEATH
	+THRUGHOST
	Scale 1.7
    SeeSound "DSCANFIR"
    //SeeSound "RLANSHOT"
	DeathSound "XPLO"
	Obituary "$OB_MPROCKET"
	States
	{
	Spawn:
	    TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways(798, 0, 0, 0, 0)//Check Effects
		
	Spawn1:	
	TNT1 A 0 A_PlaySound("ROCKLOOP",6,1,1)
		TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
	    WYVB A 1 Bright A_SpawnItem("RedFlareSmall22",0,0) 
		TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random (160, 210), 2, random (-30, 30))
		TNT1 A 0 A_JumpIfInventory("lowgraphicsmode", 1, "SpawnCheap")
		Loop
		
	SpawnCheap:
	    TNT1 A 0
	    WYVB A 1 Bright A_SpawnItem("RedFlareSmall22",0,0) 
		Loop	
	
	
	SpawnUnderwater:
	    WYVB A 1 Bright A_SpawnItem("YellowFlareSmall",0,0) 
        TNT1 A 0 A_CustomMissile ("BUBULZ", 0, 0, random (0, 360), 2, random (0, 180))
		Goto Spawn1
	
		
	Death:
        EXPL A 0 Radius_Quake (2, 8, 0, 15, 0)//(intensity, duration, damrad, tremrad, tid)
		TNT1 A 0 A_JumpIfInventory("lowgraphicsmode", 1, "DeathCheap")
		//TNT1 A 0 A_SpawnItem("SuperExpensiveParticleSpawner")
		TNT1 A 0 A_SpawnItem ("BigRicoChet", 0, -30)
        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 ("UnderwaterExplosion",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_SpawnItemEx ("RocketExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 AAAAA 0 A_CustomMissile ("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
        EXPL AAAAA 0 A_CustomMissile ("ExplosionSmokeFast22", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 1
		TNT1 A 0 A_PlaySound("FAREXPL", 3)
		TNT1 A 15
		Stop
		
	DeathCheap:
        EXPL A 0 Radius_Quake (2, 8, 0, 15, 0)//(intensity, duration, damrad, tremrad, tid)
		TNT1 A 0 A_SpawnItem ("BigRicoChet", 0, -30)
        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 ("UnderwaterExplosion",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_SpawnItemEx ("RocketExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 AAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 AAAAA 0 A_CustomMissile ("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 1
		TNT1 A 0 A_PlaySound("FAREXPL", 3)
		TNT1 A 15
		Stop	
	}
}

Actor FastCyberballs: Cyberballs
{
Speed 40
Damage 30
}

ACTOR CyberballTrail
{
    Radius 0
    Height 0
	Alpha 1.0
	RenderStyle Add
	Scale 0.9
	Speed 2
    +NOBLOCKMAP
    +NOTELEPORT
    +DONTSPLASH
	+MISSILE
	+FORCEXYBILLBOARD
    +CLIENTSIDEONLY
	Damage 0
    +NOINTERACTION
    States
    {
    Spawn:
	    TNT1 A 2
        WYVB CDE 1

Stop
    }
}







ACTOR MarineGrenade
{
	Radius 4
	Height 4
	Speed 20
	Damage 20
    +MISSILE
    +BLOODSPLATTER
	+EXTREMEDEATH
	+DOOMBOUNCE
	BounceFactor 0.5
	Damagetype "FriendBullet"
    Gravity 1.0
	Scale 0.2
    Decal "Scorch"
    SeeSound "none"
	DeathSound "Explosion"
	Obituary "$OB_MPROCKET"
	+EXTREMEDEATH
	States
	{
	Spawn:
		TNT1 A 0
		BLUD C 0 ThrustThingZ (0,50,1,0)
	Live:
		GRND ABCDEFGH 2
		Loop
		
		
		Death:
        EXPL A 0 Radius_Quake (2, 8, 0, 15, 0)//(intensity, duration, damrad, tremrad, tid)
		TNT1 A 0 A_SpawnItem ("BigRicoChet", 0, -30)
        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 ("UnderwaterExplosion",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_SpawnItemEx ("BarrelKaboom",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 AAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 AAAAAAA 0 A_CustomMissile ("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
        EXPL AAAAAA 0 A_CustomMissile ("ExplosionSmokeFast22", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_Explode(200, 300)
		TNT1 A 1
		TNT1 A 0 A_PlaySound("FAREXPL", 3)
		TNT1 AAAAAAAAAAAAA 3 A_CustomMissile ("HeavyExplosionSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop
	}
}



ACTOR ZombiemanGrenade: MarineGrenade
{
	Damagetype "ExplosiveImpact"
	Speed 10
	Damage 0
	-EXTREMEDEATH
	+GHOST
	+THRUGHOST
	+DONTHARMSPECIES
	BounceFactor 0.5
	States
	{
	Spawn:
		TNT1 A 0
		BLUD C 0 ThrustThingZ (0,200,0,1)
	Live:
		GRND ABCDEFGH 2
		Loop
		
		
		Death:
        EXPL A 0 Radius_Quake (2, 8, 0, 15, 0)//(intensity, duration, damrad, tremrad, tid)
		TNT1 A 0 A_SpawnItem ("BigRicoChet", 0, -30)
        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 ("UnderwaterExplosion",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_SpawnItemEx ("BarrelKaboom",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 AAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 AAAAAAA 0 A_CustomMissile ("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
        EXPL AAAAAA 0 A_CustomMissile ("ExplosionSmokeFast22", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_Explode(20, 200, 0)
		TNT1 A 0 A_Explode(20, 70, 1)
		TNT1 A 1
		TNT1 A 0 A_PlaySound("FAREXPL", 3)
		TNT1 AAAAAAAAAAAAA 3 A_CustomMissile ("HeavyExplosionSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop
		
	
	}
	
}

ACTOR WhiteShockWave
{ 
Scale 2.0
Alpha 0.11
   States 
   { 
   Spawn: 
      SHWK A 1
      SHWK CEGIKMOQ 1 A_FadeOut(0.01)
      Stop 
   } 
} 

ACTOR WhiteShockWaveBig: WhiteShockWave
{ 
Scale 3.0
} 

ACTOR WhiteShockWaveSmall: WhiteShockWave
{ 
Scale 1.0
} 


ACTOR GrenadeMissile2
{
	Radius 4
	Height 4
	Speed 70
	Damage 20
	+MISSILE
	-BLOODSPLATTER
	+EXTREMEDEATH
	+FORCEXYBILLBOARD
	+CANBOUNCEWATER
	Gravity 1.0
	Decal "Scorch"
	SeeSound "none"
	DeathSound "Explosion"
	Obituary "$OB_MPROCKET"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_CheckSight("Spawn2")
		TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		TNT1 A 0 A_CustomMissile ("RocketSmokeTrail52Moving", 2, 0, random (70, 110), 2, random (0, 360))
		TNT1 A 0 A_SpawnItem ("RocketSmokeTrail52")
		GRNP A 2 Bright A_SpawnItem("RedFlareSmall",0,0)
		Loop
	Spawn2:
		GRNP A 1
		Goto Spawn

	SpawnUnderwater:
		GRNP A 2 Bright A_SpawnItem("RedFlareSmall",0,0)	
		TNT1 A 0 A_CustomMissile ("BUBULZ", 0, 0, random (0, 360), 2, random (0, 180))	
		Goto Spawn

	Death:
		TNT1 A 0
		TNT1 A 0 A_SpawnItem ("BigRicoChet", 0, -30)
		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_SpawnItemEx ("BarrelExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 1
		TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ShrapnelParticle", 0, 0, random (0, 360), 2, random (0, 360))
		XXXX A 0 A_CustomMissile ("ExplosionQuake", 1, 0, random (0, 360), 2, random (0, 160))
		TNT1 A 0 A_CustomMissile ("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_PlaySound("FAREXPL", 0)
		EXPL AAA 0 A_CustomMissile ("BigNeoSmoke", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAA 1 A_CustomMissile ("ExplosionSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 1
		TNT1 AAAAAAAAA 2 A_CustomMissile ("BigNeoSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop
	}
}


ACTOR RocketNade: GrenadeMissile2
{
	Radius 4
	Height 4
	Speed 23
	Damage 35
	DamageType Explosive
	+MISSILE
	+DONTFALL
	+EXTREMEDEATH
	+EXPLODEONWATER
	+FORCEXYBILLBOARD
	+BOUNCEAUTOOFF
	MeleeDamage 0
	Gravity 0.6
	Mass 0x7fffffff
	Decal "Scorch"
	DeathSound "Explosion"
	Obituary "$OB_MPROCKET"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_CheckSight("Spawn2")
		TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		TNT1 A 0 A_CustomMissile ("RocketSmokeTrail52Moving", 2, 0, random (70, 110), 2, random (0, 360))
		TNT1 A 0 A_SpawnItem ("RocketSmokeTrail52")
		MISL A 2 Bright A_SpawnItem("RedFlareSmall",0,0)
		Loop
	Spawn2:
		MISL A 1
		Goto Spawn
	Death:
		TNT1 A 0 A_StopSound(6)
		EXPL A 0 Radius_Quake (2, 16, 0, 15, 0)
		TNT1 A 0 A_PlaySound("FAREXPL", 0)
		TNT1 A 0 A_SpawnItem ("BigRicoChet", 0, -30)
		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 ("UnderwaterExplosion",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_SpawnItemEx ("RocketExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 AAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
		TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("ExplosionParticleVeryFast", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_CustomMissile ("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
		EXPL AAA 0 A_CustomMissile ("BigNeoSmoke", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAA 1 A_CustomMissile ("ExplosionSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 1
		TNT1 AAAAAAAAA 2 A_CustomMissile ("BigNeoSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop
	}
}



ACTOR BouncingRocketNade: RocketNade
{
	+BOUNCEONFLOORS
	+BOUNCEONWALLS
	-BOUNCEONACTORS
	+EXPLODEONWATER
	+BOUNCEONCEILINGS
	-ALLOWBOUNCEONACTORS
	+BOUNCEAUTOOFF
	BounceFACTOR 0.425
	BounceSound "grn/bounce"
}




