// --------------------------------------------------------------------------
//
//	Rocket launcher
//
// --------------------------------------------------------------------------

ACTOR U_RocketLauncher : BaseWeapon
{
	Weapon.AmmoUse1 0
	Weapon.AmmoUse2 0
	Weapon.AmmoGive1 6
	Weapon.AmmoGive2 0
	Weapon.AmmoType1 "AmmoRocket"
	Weapon.AmmoType2 "U_RocketRounds"
	Weapon.SelectionOrder 6000
	-WEAPON.CHEATNOTWEAPON
	+WEAPON.EXPLOSIVE
	Inventory.PickupSound "ROCKPKUP"
	Inventory.PickupMessage "$GOTLAUNCHER"
	Obituary "%o was exploded by %k's rocket."
	Tag "Rocket Launcher"
	States
	{
	Spawn:
		RLAU A -1
		Stop
	
	Select:
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "PuristGun")
		TNT1 A 0 A_Giveinventory("RocketLauncherSelected",1)
		TNT1 A 0 A_Giveinventory("GoSpecial",1)
		TNT1 A 0 A_Takeinventory("Unloading",1)
		TNT1 A 0 A_Takeinventory("Reloading",1)
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_Takeinventory("WeapSpecial",1)
		TNT1 A 0 A_Takeinventory("Taunting",1)
		TNT1 A 0 A_Takeinventory("IdleCounter",200)
		TNT1 A 5
		TNT1 A 0 A_Raise
		Wait

	Deselect:
		TNT1 A 0 A_StopSound(5)
        TNT1 A 0 A_ZoomFactor(1.0,ZOOM_INSTANT)
		TNT1 A 0 A_Takeinventory("PowerInfiniteAmmo",1)
		TNT1 A 0 A_Takeinventory("ADSmode",1)
		TNT1 A 0 A_JumpIfInventory("Zoomed", 1, 2)
		TNT1 A 0 A_Jump(256, 6)
		MIAI EDCBA 1
		TNT1 A 0 A_TakeInventory("Zoomed", 1)
		TNT1 A 0 A_SetCrosshair(0)
		RLNS EDCBA 1
		TNT1 A 1
		TNT1 A 0 A_TakeInventory("RocketLauncherSelected", 1)
		TNT1 A 0 A_Lower
		Wait
		
	Ready:
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		TNT1 A 0 A_PlaySound("RLANDRAW")
	Ready1:
		RLNS ABCDE 1
	Ready2:
        TNT1 A 0 A_JumpIfInventory("Kicking",1, "DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1, "TauntR")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		TNT1 A 0 A_JumpIfInventory("IdleCounter",200,"PlayerIsIdle")
		RLNG A 1 A_WeaponReady
		Loop

	ReadyZoom:
		TNT1 A 0 A_JumpIfInventory("Kicking",1,"ZoomOut")
		TNT1 A 0 A_JumpIfInventory("Taunting",1,"ZoomOut")
		TNT1 A 0 A_JumpIfInventory("Salute1",1,"ZoomOut")
		TNT1 A 0 A_JumpIfInventory("Salute2",1,"ZoomOut")
		TNT1 A 0 A_JumpIfInventory("Reloading",1,"ZoomOut")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"ZoomOut")
		//TNT1 A 0 A_JumpIfInventory("WeapSpecial",1,"WeapSpecial")
		SNIP A 2 BRIGHT A_WeaponReady
		Loop

	PuristGun:
		TNT1 A 0 A_GiveInventory("ClassicRocketLauncher", 1)
		TNT1 A 0 A_TakeInventory("U_RocketLauncher", 1)
		Goto Ready

// --------------------------------------------------------------------------
//
//	Fire
//
// --------------------------------------------------------------------------

	Fire:
		TNT1 A 0 A_JumpIfInventory("Zoomed",1,"FireZoom")
        TNT1 A 0 A_JumpIfInventory("U_RocketRounds",1,1)
        Goto Reload
		TNT1 A 0 A_FireCustomMissile("RedFlareSpawn",-5,0,0,0)
        TNT1 A 0 A_PlaySound("DSRFIRE")
		TNT1 A 0 A_FireCustomMissile("Alerter")
		RLNF A 1 BRIGHT A_Takeinventory("U_RocketRounds",1)
		TNT1 A 0 A_FireCustomMissile("RedFlareSpawn",-5,0,0,0)
		TNT1 A 0 A_FireCustomMissile("RocketGlassBreaker", 0, 1, 0, -6) 
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_ZoomFactor(0.9)
		TNT1 A 0 A_FireCustomMissile("U_Rocket", 0, 1, 0, -6)
		TNT1 A 0 A_SetPitch(-2.0 + pitch)
		RLNF B 1 BRIGHT A_SetPitch(-1.0 + pitch)
		TNT1 A 0 A_FireCustomMissile("RedFlareSpawn",-5,0,0,0)
		RLNF C 1 BRIGHT A_SetPitch(-1.0 + pitch)
		TNT1 A 0 A_FireCustomMissile("RedFlareSpawn",-5,0,0,0)
		RLNF D 1 BRIGHT A_SetPitch(-1.0 + pitch)
		TNT1 A 0 A_ZoomFactor(1.0)
		RLNF EFGH 1 A_SetPitch(1.0 + pitch)
		RLNG AA 1 A_SetPitch(0.5 + pitch)
		RLNG BCD 2
        RLNG A 1
        TNT1 A 0 A_Refire
        Goto Ready2
		
	FireZoom:
        TNT1 A 0 A_JumpIfInventory("U_RocketRounds",1,2)
		TNT1 A 0 A_GiveInventory("Reloading",1)
        Goto ZoomOut
		TNT1 A 0 A_FireCustomMissile("RedFlareSpawn",-5,0,0,0)
        TNT1 A 0 A_PlaySound("DSRFIRE")
		TNT1 A 0 A_FireCustomMissile("Alerter")
		SNIP A 1 BRIGHT A_Takeinventory("U_RocketRounds",1)
		TNT1 A 0 A_FireCustomMissile("RedFlareSpawn",-5,0,0,0)
		TNT1 A 0 A_FireCustomMissile("RocketGlassBreaker", 0, 1, 0, -6) 
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_ZoomFactor(1.8)
		TNT1 A 0 A_FireCustomMissile("U_Rocket", 0, 1, 0, -6)
		TNT1 A 0 A_SetPitch(-2.0 + pitch)
		SNIP A 1 BRIGHT A_SetPitch(-1.0 + pitch)
		TNT1 A 0 A_FireCustomMissile("RedFlareSpawn",-5,0,0,0)
		SNIP A 1 BRIGHT A_SetPitch(-1.0 + pitch)
		TNT1 A 0 A_FireCustomMissile("RedFlareSpawn",-5,0,0,0)
		SNIP A 1 BRIGHT A_SetPitch(-1.0 + pitch)
		TNT1 A 0 A_ZoomFactor(2.0)
		SNIP AAAA 1 BRIGHT A_SetPitch(1.0 + pitch)
		SNIP AA 1 BRIGHT A_SetPitch(0.5 + pitch)
		SNIP AAA 2 BRIGHT
        SNIP A 1 BRIGHT
        TNT1 A 0 A_Refire
        Goto ReadyZoom
	
	AltFire:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1026)==1, "AltFire2")
        TNT1 A 0 A_JumpIfInventory("U_RocketRounds",1,1)
        Goto Reload
		TNT1 A 0 A_FireCustomMissile("RedFlareSpawn",-5,0,0,0)
        TNT1 A 0 A_PlaySound("weapons/firegrenade")
		RLNF A 1 BRIGHT A_Takeinventory("U_RocketRounds",1)
		TNT1 A 0 A_FireCustomMissile("RedFlareSpawn",-5,0,0,0)
		TNT1 A 0 A_AlertMonsters
		TNT1 AAAAAA 0 A_FireCustomMissile("ShotgunParticles", random(-10,10), 0, -1, -8, 0, random(-10,10))
		TNT1 A 0 A_ZoomFactor(0.96)
		TNT1 A 0 A_FireCustomMissile("GrenadeMissile2", 0, 1, 0, -6)
		TNT1 A 0 A_SetPitch(-2.0 + pitch)
		RLNF B 1 BRIGHT A_SetPitch(-1.0 + pitch)
		TNT1 A 0 A_FireCustomMissile("RedFlareSpawn",-5,0,0,0)
		RLNF D 1 BRIGHT A_SetPitch(-1.0 + pitch)
		TNT1 A 0 A_ZoomFactor(1.0)
		RLNF EFGH 1 A_SetPitch(0.8 + pitch)
		RLNG AA 1 A_SetPitch(0.4 + pitch)
		RLNG BCD 2
        RLNG A 2
        TNT1 A 0 A_Refire
        Goto Ready2

	AltFire2:
		TNT1 A 0 A_JumpIfInventory("Zoomed",1,"ZoomOut")
		TNT1 A 0 A_Giveinventory("Zoomed",1)
		TNT1 A 0 A_Giveinventory("ADSmode",1)
		TNT1 A 0 A_Giveinventory("GoSpecial",1)
		MIAI ABCDE 1
		TNT1 A 0 A_Giveinventory("RocketlauncherInfrared",1)
		TNT1 A 0 A_SetCrosshair(41)
		TNT1 A 0 A_ZoomFactor(2.0,ZOOM_INSTANT)
		Goto ReadyZoom
		
	ZoomOut:
		TNT1 A 0 A_Takeinventory("Zoomed",1)
		TNT1 A 0 A_Takeinventory("ADSmode",1)
		TNT1 A 0 A_Giveinventory("GoSpecial",1)
        TNT1 A 0 A_ZoomFactor(1.0,ZOOM_INSTANT)
		TNT1 A 0 A_SetCrosshair(0)
		TNT1 A 0 A_Takeinventory("PowerInfiniteAmmo",1)
		MIAI EDCBA 1
		Goto Ready2

// --------------------------------------------------------------------------
//
//	Reload
//
// --------------------------------------------------------------------------

	ReloadPitch:
		TNT1 A 1 A_SetPitch(+0.2 + pitch)
		TNT1 AAA 1 A_SetPitch(+0.4 + pitch)
		TNT1 A 1 A_SetPitch(+0.2 + pitch)
		TNT1 A 1 A_SetPitch(+0.1 + pitch)
		TNT1 AAA 1
		TNT1 A 1 A_SetPitch(-0.1 + pitch)
		TNT1 A 1 A_SetPitch(-0.2 + pitch)
		TNT1 AAA 1 A_SetPitch(-0.4 + pitch)
		TNT1 A 1 A_SetPitch(-0.2 + pitch)
		TNT1 AAA 1
		TNT1 AA 1 A_SetPitch(-0.1 + pitch)
		TNT1 A 2
		TNT1 AA 1 A_SetPitch(+0.1 + pitch)
		Stop
		
    Reload: //råttan
		TNT1 A 0 A_Takeinventory("Reloading",1)
        TNT1 A 0 A_JumpIfInventory("U_RocketRounds",6,"Ready2")
        TNT1 A 0 A_JumpIfInventory("AmmoRocket",1,1)
        Goto Ready2
		TNT1 A 0 A_JumpIfInventory("TurboReload",1,"ReloadLoop")
		RLNG A 4
        TNT1 A 0 A_PlaySound("Reload")
		TNT1 A 0 A_GunFlash("ReloadPitch")
        MISR ABCDEF 1 A_SetAngle(-0.15 + angle)
		MISR GGG 1
        TNT1 A 0 A_FireCustomMissile("RocketCaseSpawn",-20,0,2,-10)
		MISR HIJJJJ 1 A_SetAngle(+0.15 + angle)
		MISR KLM 1
		MISR NO 1 A_SetAngle(+0.07 + angle)
		MISR P 2
		MISR ON 1 A_SetAngle(-0.07 + angle)
		MISR QR 1 //korven
		RLNG BCD 2
		RLNG A 4 //lill monstret
		Goto ReloadLoop
		
	ReloadLoop:
		TNT1 A 0 A_JumpIfInventory("U_RocketRounds",6,"ReloadDone")
		TNT1 A 0 A_JumpIfInventory("AmmoRocket",1,1)
		Goto ReloadDone
		TNT1 A 0 A_Giveinventory("U_RocketRounds",1)
		TNT1 A 0 A_Takeinventory("AmmoRocket",1)
		Goto ReloadLoop
		
	ReloadDone:
		TNT1 A 0 A_Refire
		Goto Ready2
	
// --------------------------------------------------------------------------
//
//	End Stuff
//
// --------------------------------------------------------------------------
	
	KickFlash:
		RLNK ABCD 1
		RLNK E 8
		RLNK DCBA 1
		RLNG A 1
		Stop

	AirKickFlash:
		RLNK ABCD 1
		RLNK E 10
		RLNK DCBA 1
		RLNG A 1
		Stop

	TauntFlash:
		RLNK ABCD 1
		RLNK E 35
		RLNK DCBA 1
		RLNG A 1
		Stop

	GrenadeFlash:
		RLNS EDCBA 1
		Stop
	}
}

ACTOR U_RocketRounds : Ammo
{
   Inventory.Amount 0
   Inventory.MaxAmount 6
   Ammo.BackpackAmount 0
   Ammo.BackpackMaxAmount 6
   Inventory.Icon "RLAUA0"
}

ACTOR GrenadeMissile2
{
	Radius 4
	Height 4
	Speed 40
	Damage (random(1,2))
    +MISSILE
    +BLOODSPLATTER
	+SKYEXPLODE
	+DOOMBOUNCE
	+EXPLODEONWATER
	+NOTELEPORT
	-BOUNCEONACTORS
	DamageType Kick
	BounceFactor 0.3
	WallBounceFactor 0.1
	Gravity 0.7
	Scale 0.6
	SeeSound "Weapons/GrenadeBounce"
	DeathSound "none"
	Obituary "%o was exploded by %k's rocket."
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways(719, 0, 0, 0, 0)//Check if DM
	Spawn1:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		GBPJ ABCD 3 A_CustomMissile("U_RocketSmokeTrail", 2, 0, random (70, 110), 2, random (0, 360))
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 5, "Explode")
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		TNT1 A 0 A_CheckFloor("Death")
		TNT1 A 0 A_JumpIf((ABS (MomY) < 1) && (ABS (MomX) < 1), "Death")
		TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		GBPJ EFGH 3	A_CustomMissile("U_RocketSmokeTrail", 2, 0, random (70, 110), 2, random (0, 360))
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 5, "Explode")
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		TNT1 A 0 A_CheckFloor("Death")
		TNT1 A 0 A_JumpIf((ABS (MomY) < 1) && (ABS (MomX) < 1), "Death")
		Loop
	SpawnUnderwater:
		TNT1 A 0 A_ChangeFlag(DOOMBOUNCE,FALSE)
		TNT1 A 0 A_ChangeVelocity(VelX*0.5, VelY*0.5, VelZ, CVF_REPLACE)
		TNT1 A 0 A_SpawnItem("BUBULZ")
		GBPJ ABCD 3 ThrustThingZ(0,5,1,0)
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 5, "Explode")
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		TNT1 A 0 A_CheckFloor("DeathWater")
		TNT1 A 0 A_ChangeVelocity(VelX*0.5, VelY*0.5, VelZ, CVF_REPLACE)
		TNT1 A 0 A_SpawnItem("BUBULZ")
		GBPJ EFGH 3 ThrustThingZ(0,5,1,0)
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 5, "Explode")
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		TNT1 A 0 A_CheckFloor("DeathWater")
	    Loop
	DM:
		TNT1 A 0 A_ChangeFLag("THRUSPECIES", 0)
		TNT1 A 0 A_ChangeFLag("MTHRUSPECIES", 0)
		Goto Spawn1
	Death:
		TNT1 A 0 A_JumpIf(waterlevel > 1, "DeathWater")
		GBPJ AAAA 3 A_CustomMissile("U_RocketSmokeTrail", 2, 0, random (70, 110), 2, random (0, 360))
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 5, "Explode")
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		Loop
	DeathWater:
		GBPJ AAAA 3
		TNT1 A 0 A_JumpIfInventory("STGrenadeTimer", 5, "Explode")
		TNT1 A 0 A_GiveInventory("STGrenadeTimer", 1)
		Loop
	Explode:
		TNT1 A 0 A_NoBlocking
		TNT1 A 0 A_SpawnItem("GrenadeMissileExplosion")
		GBPJ C 1
		Stop
	}
}

actor GrenadeMissileExplosion
{
	+NOBLOCKMAP
	+MISSILE
	Damagetype ExplosiveImpact
	DeathSound "Explosion"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 ThrustThingZ(0,20,0,1)
		TNT1 A 0 Radius_Quake (3, 8, 0, 15, 0)//(intensity, duration, damrad, tremrad, tid)
		TNT1 A 1
		TNT1 A 0 A_CustomMissile("ExplosionSplashSpawner")
		//TNT1 A 0 A_SpawnItemEx("BigRicoChet",0,0,-5,0,0,0,0,SXF_NOCHECKPOSITION,0)
		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_Scream
		TNT1 A 0 A_SpawnItem("ExplosionLight")
		TNT1 AA 0 A_CustomMissile("MetalShardz1", 5, 0, random (0, 360), 2, random (0, 360))
		TNT1 AA 0 A_CustomMissile("MetalShardz2", 5, 0, random (0, 360), 2, random (0, 360))
		TNT1 AA 0 A_CustomMissile("MetalShardz3", 5, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_Explode(80,200)
		TNT1 AAAAAAAAA 0 A_CustomMissile("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
		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 AAAAA 0 A_CustomMissile("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAA 0 A_CustomMissile("ExplosionSmokeFast22", 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_AlertMonsters
		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 7
		Stop
	}
}

ACTOR U_Rocket
{
	Game Doom
	Radius 4
	Height 2
	Projectile
	Speed 50
    Damage 50
	DamageType Explosive
    Gravity 0.00
	Scale 0.6
    Decal "Scorch"
    +EXTREMEDEATH
    +BLOODSPLATTER 
	+THRUSPECIES
	+MTHRUSPECIES
	SeeSound "weapons/RLL"
	DeathSound "Explosion"
	Obituary "%o was exploded by %k's rocket."
	Species "Marines"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound("DSRLAUN")
		TNT1 A 0 ACS_ExecuteAlways(719, 0, 0, 0, 0)//Check if DM
	Spawn1:
	    MISL A 1 Bright
		TNT1 A 0 A_SpawnItem("RocketFlare",-20,0)
		TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		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_JumpIf((ABS (MomY) < 1) && (ABS (MomX) < 1), "Death")
		Loop
	SpawnUnderwater:
	    TNT1 A 0 A_SpawnItem("BUBULZ")
	    Goto Spawn1
	DM:
		TNT1 A 0 A_ChangeFLag("THRUSPECIES", 0)
		TNT1 A 0 A_ChangeFLag("MTHRUSPECIES", 0)
		TNT1 A 0 A_ScaleVelocity(0.6)
		Goto Spawn1
	Death:
        TNT1 A 0 Radius_Quake (3, 8, 0, 15, 0)//(intensity, duration, damrad, tremrad, tid)
		//TNT1 A 0 A_CustomMissile("BigRicoChet")
		TNT1 A 0 A_CustomMissile("ExplosionSplashSpawner")
        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_Scream
		TNT1 A 0 A_SpawnItem("ExplosionLight")
		TNT1 AA 0 A_CustomMissile("MetalShardz1", 5, 0, random (0, 360), 2, random (0, 360))
		TNT1 AA 0 A_CustomMissile("MetalShardz2", 5, 0, random (0, 360), 2, random (0, 360))
		TNT1 AA 0 A_CustomMissile("MetalShardz3", 5, 0, random (0, 360), 2, random (0, 360))
		TNT1 AAAAAAAAA 0 A_CustomMissile("ExplosionParticleHeavy", 0, 0, random (0, 360), 2, random (0, 180))
		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 AAAAA 0 A_CustomMissile("MediumExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
        TNT1 AAAAA 0 A_CustomMissile("ExplosionSmokeFast22", 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_AlertMonsters
		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 0 A_PlaySound("distantexp", 5)
		TNT1 A 7
		Stop
	}
}

actor U_RocketSmokeTrail : RocketSmokeTrail52
{
	States
	{
	Spawn:
		TNT1 A 2
		TNT1 A 0 ThrustThingZ (0,random(3,6),0,0)
		SMK3 B 20
		SMK3 CDEFGHIJKLM 1
		Stop
	}
}

ACTOR RocketlauncherInfrared : PowerupGiver
{
	-COUNTITEM
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	Inventory.MaxAmount 0
	Powerup.Type PowerInfiniteAmmo
	Powerup.Duration -999
	Powerup.Colormap 0.05, 0.0, 0.0, 0.1, 1.0, 0.1
	States
	{
	Spawn:
		TNT1 A -1
		Loop
	}
}