//Everything that can explode and hurt people goes here.


ACTOR Rocket2
{
	Radius 4
	Height 2
	Projectile
	Speed 50
    Damage (random (340, 350))
	DamageType Explosive
    MeleeDamage 0
	Scale 0.5
    Decal "Scorch"
	Projectile
	+MISSILE
    +NOGRAVITY
    +EXTREMEDEATH
    +BLOODSPLATTER 
	+THRUSPECIES
	+MTHRUSPECIES
	+SPECTRAL
	SeeSound "weapons/RLL"
	DeathSound "Explosion"
	Obituary "$OB_MPROCKET"
	Species "Marines"
	States
	{
	Spawn:
	
		TNT1 A 0
		TNT1 A 0 A_PlaySound("DSRLAUN")
		TNT1 A 0 BRIGHT A_CustomMissile("RocketBackblast", 0, 0, 180, 2, 0+pitch)
	Live:
	    MISL A 1 Bright 
		TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		TNT1 A 0 A_SpawnItem("RocketFlare",-20,0)
		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 Live
	
	Death:
        EXPL A 0 Radius_Quake (3, 8, 0, 15, 0)//(intensity, duration, damrad, tremrad, tid)
		TNT1 A 0 A_CustomMissile("ExplosionSplashSpawner")
        TNT1 A 0 A_SpawnItemEx ("Detect_FloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    TNT1 A 0 A_SpawnItemEx ("Detect_CeilCrater",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 ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("BD_ExplosionParticleVeryFast", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 AAAA 0 A_CustomMissile ("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
        EXPL AA 0 A_CustomMissile ("ExplosionSmokeFast22", 0, 0, random (0, 360), 2, random (0, 360))
		EXPL A 0 A_CustomMissile ("BigNeoSmoke", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_SpawnItemEx ("RocketExplosion",0,0,13,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")
		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 15
		TNT1 A 0 A_PlaySound("distantexp", 5)
		TNT1 AAA 4 A_CustomMissile ("HeavyExplosionSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop
	}
}


actor RocketDM: Rocket2
{
speed 28
Damage (random (340, 350))
Species "none"
-THRUSPECIES
-MTHRUSPECIES
}


actor WeakRocket: Rocket2
{
speed 20
damage 25
Gravity 0
}

actor VanillaCyberRocket: Rocket2 //Replaces Rocket
{
speed 20
Damage (random (340, 350))
Species "None"
-THRUSPECIES
-MTHRUSPECIES
}



actor JuggernautRocket: Rocket2
{
speed 20
Damage (random (100, 110))
Species "None"
-THRUSPECIES
-MTHRUSPECIES
}

actor RocketExplosion
{
+MISSILE
Radius 2
Height 2
Damagetype ExplosiveImpact
Obituary "%o was exploded by %k rocket."
States    {
    Spawn:
	Goto Death
	Death:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("WhiteShockwave")
	TNT1 A 3
	TNT1 A 0 A_Explode(120,150)
        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:
	Goto Death
	Death:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("WhiteShockwaveBig")
	TNT1 A 3
TNT1 A 0 A_Explode(160,200)
        Stop}}
		
	
actor BarrelExplosionAnnouncer: RocketExplosion
{
+FORCEPAIN
Damagetype BarrelExploded
+DONTSPLASH
States    {
    Spawn:
	Goto Death
	Death:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("WhiteShockwaveBig")
	TNT1 A 3
TNT1 A 0 A_Explode(3,220)
        Stop}}		
		
actor GrenadeExplosion: RocketExplosion
{
+FORCERADIUSDMG
States    {
    Spawn:
	TNT1 A 0
	TNT1 A 3
TNT1 A 0 A_Explode(100,300)
TNT1 A 0 A_SpawnItem("WhiteShockwaveBig")
        Stop}}	
		
		
		
actor BFGSprayExplosion: RocketExplosion
{
+FORCERADIUSDMG
DamageType "Desintegrate"
States    {
    Spawn:
	TNT1 A 0
	TNT1 A 1
TNT1 A 0 A_Explode(40,1)
        Stop}}	

ACTOR CyberRocket: Rocket2
{
	Speed 30
}

ACTOR GrenadeMissile
{
	Radius 4
	Height 4
	Speed 50
	Damage (random(60, 70))
    +MISSILE
    +BLOODSPLATTER
    Gravity 0.7
    
	+SKYEXPLODE
	+DOOMBOUNCE
	+EXPLODEONWATER
	DamageType Kick
    BounceFactor 0.5
	WallBounceFactor 0.35
	SeeSound "Weapons/GrenadeBounce"
	DeathSound "none"
	Decal "Scorch"
	Obituary "$OB_MPROCKET"
	Scale 0.5
	States
	{
	Spawn:
	    TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 6, "Explode")
		TNT1 A 0 A_CheckFloor("Death")
		GBPJ AAABBBCCCDDD 1 A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360))
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 6, "Explode")
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		GBPJ EEEFFFGGGHHH 1 A_CustomMissile ("RocketSmokeTrail52", 2, 0, random (70, 110), 2, random (0, 360))
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 6, "Explode")
		
		Loop
	
	SpawnUnderwater:
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		GBPJ ABCD 3
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 6, "Explode")
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		GBPJ EFGH 3	
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 6, "Explode")
	    Goto Spawn
	
	Death:
	    TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 6, "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_SpawnItemEx ("GrenadeExplosion",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 1 A_SpawnItemEx ("Footstep91",0,0, 40,0,0,0,0,SXF_NOCHECKPOSITION,0)
		TNT1 A 1
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
        EXPL A 0 Radius_Quake (3, 8, 0, 15, 0)//(intensity, duration, damrad, tremrad, tid)
		TNT1 A 0 A_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -20)
		TNT1 A 0 A_SpawnItemEx ("BarrelKaboom",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_SpawnItemEx ("Detect_FloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    TNT1 A 0 A_SpawnItemEx ("Detect_CeilCrater",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 ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("BD_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("Explosion", 1)
		TNT1 A 0
		TNT1 A 0 A_PlaySound("FAREXPL", 3)
		//TNT1 AAAAAAAAAAAAA 3 A_CustomMissile ("HeavyExplosionSmoke", 2, 0, random (0, 360), 2, random (0, 360))
		Stop	
	}
}



ACTOR ShortGrenade: GrenadeMissile
{
-DOOMBOUNCE
+SLIDESONWALLS
Damage (random(110, 120))
SeeSound "None"
Damagetype Explosives
	States
	{
	Spawn:
	    TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		GBPJ AAAAAAAAABBBBBBBCCCCCDDDDDEEEEEFFFFFGGGGGHHHHH 1 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 1
	Goto Explode
	}
}



ACTOR GrenadeMissileBreaksGlass: ShortGrenade
{
    -BLOODSPLATTER
	Damagetype "Normal"
	+NOPAIN
	Decal "None"
	Damage (random (1,2))
	States
	{
	Spawn:
	    TNT1 A 1
		TNT1 A -1
		Stop
	
	Death:
	XDeath:
	Melee:
	    TNT1 A 0
		Stop
		
	}
}




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 ("Detect_FloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    TNT1 A 0 A_SpawnItemEx ("Detect_CeilCrater",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 ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("BD_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
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 20
    Damage (random (300, 350))
	DamageType Explosive
    Gravity 0.00
    Decal "Scorch"
	Renderstyle Add
    -NOGRAVITY
	+EXTREMEDEATH
	+THRUGHOST
	Scale 1.7
    SeeSound "DSCANFIR"
    //SeeSound "RLANSHOT"
	DeathSound "Explosion"
	Obituary "%o was exploded to pieces by a Cyberdemon."
	States
	{
	Spawn:
	    TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways(798, 0, 0, 0, 0)//Check Effects
		
	Spawn1:	
		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_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -20)
        TNT1 A 0 A_SpawnItemEx ("Detect_FloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    TNT1 A 0 A_SpawnItemEx ("Detect_CeilCrater",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 ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("BD_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_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -20)
        TNT1 A 0 A_SpawnItemEx ("Detect_FloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    TNT1 A 0 A_SpawnItemEx ("Detect_CeilCrater",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 ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAA 0 A_CustomMissile ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAA 0 A_CustomMissile ("BD_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_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -20)
        TNT1 A 0 A_SpawnItemEx ("Detect_FloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    TNT1 A 0 A_SpawnItemEx ("Detect_CeilCrater",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 ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("BD_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
	BounceFactor 0.7
	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_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -20)
        TNT1 A 0 A_SpawnItemEx ("Detect_FloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    TNT1 A 0 A_SpawnItemEx ("Detect_CeilCrater",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 ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("BD_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 NuclearRocket: Rocket2
{
+FORCERADIUSDMG
Damagetype "ExplosiveImpact"
	States
	{
	Spawn:
	
		TNT1 A 0
		TNT1 A 0 A_PlaySound("DSRLAUN")
		TNT1 A 0 BRIGHT A_CustomMissile("RocketBackblast", 0, 0, 180, 2, 0+pitch)
	Live:
	    MISL A 1 Bright 
		TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		TNT1 A 0 A_SpawnItem("RocketFlare",-20,0)
		TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
		TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random (160, 210), 2, random (-30, 30))
		MISL A 1 Bright 
		TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		TNT1 A 0 A_SpawnItem("RocketFlare",-20,0)
		TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
		TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random (160, 210), 2, random (-30, 30))
		MISL A 1 Bright 
		TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		TNT1 A 0 A_SpawnItem("RocketFlare",-20,0)
		TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
		TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random (160, 210), 2, random (-30, 30))
		MISL A 1 Bright 
		TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		TNT1 A 0 A_SpawnItem("RocketFlare",-20,0)
		TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
		TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random (160, 210), 2, random (-30, 30))
		MISL A 1 Bright 
		TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		TNT1 A 0 A_SpawnItem("RocketFlare",-20,0)
		TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
		TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random (160, 210), 2, random (-30, 30))
		MISL A 1 Bright 
		TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		TNT1 A 0 A_SpawnItem("RocketFlare",-20,0)
		TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
		TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random (160, 210), 2, random (-30, 30))
		
		TNT1 A 0 A_ChangeFlag("NOGRAVITY", 0)
		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 Live
	
	Death:
        TNT1 A 0
		TNT1 A 0 A_ChangeFlag("FORCERADIUSDMG", 1)
		TNT1 A 1
		TNT1 A 0 A_CustomMissile ("hUGEExplosionSpawner2", 30, 0, random (0, 360), 2, random(80, 90))
		TNT1 AAA 0 A_CustomMissile ("lONGExplosionSpawner", 30, 0, random (0, 360), 2, 90)
		TNT1 AAA 0  A_SpawnItemEx("SpawnedExplosionGIant", random (-400, 400), random (-400, 400), random (0, 100))
		TNT1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 0  A_SpawnItemEx("SpawnedExplosionLarge", random (-600, 600), random (-600, 600), random (0, 50))
		EXPL A 0 Radius_Quake (6, 6, 0, 900, 0)
		TNT1 A 0 A_Explode(2000,400, 1, 1, 1)
		BXXP B 0 BRIGHT A_Scream
		TNT1 AAAAAAAAAAAAAAAAAAA 0 A_SpawnItemEx("NukeFlare", random (-800, 800), random (-800, 800), random (0, 100))
		TNT1 AAAA 2 A_SpawnItemEx("NukeFlare", random (-800, 800), random (-800, 800), random (0, 100))
		TNT1 AAAA 0 A_CustomMissile ("hUGEExplosionSpawner2", random (0, 500), 0, random (0, 360), 2, random(80, 90))
		TNT1 A 0 A_Explode(4000,800, 1, 1, 1)
		TNT1 A 2 A_SpawnItemEx("NukeFlare", 0, 0, 300)
		TNT1 A 2 A_SpawnItemEx("NukeFlare", 0, 0, 600)
		TNT1 A 2 A_SpawnItemEx("NukeFlare", 0, 0, 900)
		TNT1 A 2 A_SpawnItemEx("NukeFlare", 0, 0, 1200)
		TNT1 A 0 A_Explode(500,1400, 1, 1, 1)
		TNT1 AAA 0  A_SpawnItemEx("SpawnedExplosionGiant", random (-200, 200), random (-200, 200), 1000)
		TNT1 AAA 0  A_SpawnItemEx("SpawnedExplosionGiant", random (-200, 200), random (-200, 200), 1500)
		TNT1 AAAAA 2 A_SpawnItemEx("NukeFlare", 0, 0, 1200)
		TNT1 A 60
		EXPL A 0 Radius_Quake (6, 6, 0, 900, 0)
		TNT1 A 1000
		sTOP	
	}
}




ACTOR TankShell
{
	Radius 6
	Height 6
	Speed 110
	Damage (random (1500, 1600))
	Projectile
	+RANDOMIZE
	+DEHEXPLOSION
	+ROCKETTRAIL
	+MISSILE
	-NOGRAVITY
	damagetype "TankShell"
	Gravity 0.4
	SeeSound "weapons/rocklf"
	DeathSound "weapons/rocklx"
	Obituary "$OB_MPROCKET"
	States
	{
	Spawn:
		MISL A 1 Bright
		Loop
	Death:
		MISL B 0 Bright A_Explode
		TNT1 A 0 A_SpawnItem("TankShotExplosionImpact")
		TNT1 A 0 A_PlaySound("Explosion", 1)
		TNT1 A 0 A_SpawnItemEx ("ExplosionSplashSpawner", 0, 0, -20)
		TNT1 A 0 A_SpawnItemEx ("BarrelKaboom",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_SpawnItemEx ("Detect_FloorCrater",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
	    TNT1 A 0 A_SpawnItemEx ("Detect_CeilCrater",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 ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
        TNT1 AAAAAAAAAAAAAAAAAA 0 A_CustomMissile ("BD_ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile ("BD_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 ("ExplosionSmoke22", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 6
		TNT1 A 0 A_PlaySound("FAREXPL", 1)
		TNT1 A 12
		Stop
	}
}


Actor EnemYTankShell: TankShell
{
Speed 40
Damage (random (190, 200))
+NOGRAVITY
}


ACTOR TankFireEffect
{
	Radius 1
	Height 1
	Speed 70
	Damage 1
	Projectile
	+RANDOMIZE
	+MISSILE
	States
	{
	Spawn:
		TNT1 A 2
		Goto Death
	Death:
		TNT1 A 0
		TNT1 A 0 Radius_Quake(6, 12, 0, 4, 0)
		TNT1 AAAAA 0 A_SpawnItem("RedFlare")
		TNT1 AAAAA 0 A_CustomMissile ("ExplosionSmoke", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 1 BRIGHT
		TNT1 AAAAA 0 A_SpawnItem("RedFlare")
		TNT1 A 0 A_Stop
		TNT1 A 0 A_Recoil(-5)
		TKFL A 5 BRIGHT
		Stop
	}
}


ACTOR TankShotExplosionImpact
{
	damagetype "ExplosiveImpact"
	+MISSILE
	+NOCLIP
	States
	{
	Spawn:
		TNT1 A 1
		TNT1 A 0 A_Explode(200, 400)
		Stop
	}
}

