// Missile Launcher
actor MissileLauncher : AOWWeapon replaces RocketLauncher 21048 
{
    Weapon.BobSpeed 1.75
    Weapon.BobRangeX 0.2
    Weapon.BobRangeY 0.4
    Weapon.BobStyle Alpha
	-NOAUTOAIM // [tt] Autoaim is needed for this to even home.
	+WEAPON.NOAUTOFIRE
	Inventory.PickupMessage "You got the missile launcher!"
	Weapon.SelectionOrder 13
	Weapon.AmmoType "MissileMag"
	Weapon.AmmoType2 "MissileAmmo"
	Weapon.AmmoUse 1
	Weapon.AmmoUse2 0
	Weapon.AmmoGive2 2
	Weapon.PreferredSkin "MarineRockets"
	Weapon.UpSound "weapons/up/rocket"
	+WEAPON.AMMO_OPTIONAL
	Tag "Missile Launcher"
	states {
	Spawn:
		LAUN A -1
		stop
	Select:
	    MSLR D 0 A_JumpIfInventory ("MissileMag", 2, "SelectUnload")
		TNT1 A 0 A_JumpIfInventory("SelectAnimation",1,2) // Gaturra: prevents to run again the beep sound script when using binds
		MSLR D 0 ACS_ExecuteAlways (963, 0) // init targeter
		MSLR D 0 A_JumpIfInventory ("IsBlue", 1, "Select.Blue")
		MSLR D 1 offset (-90,100)
		MSLR D 1 offset (-80,89)
		MSLR D 1 offset (-70,79)
		MSLR D 1 offset (-60,70)
		MSLR D 1 offset (-50,62)
		MSLR D 1 offset (-40,55)
		MSLR D 1 offset (-30,49)
		MSLR D 1 offset (-20,44)
		MSLR D 1 offset (-15,40)
		MSLR D 1 offset (-10,37)
		MSLR D 1 offset (-5,34)
		MSLR D 1 offset (0,0)
		TNT1 A 0 A_TakeInventory("SelectAnimation",1)
		TNT1 A 0 A_TakeInventory("LockOnActive",30)
		goto ready
	Select.Blue:
	    MSLB D 1 offset (-90,100)
		MSLB D 1 offset (-80,89)
		MSLB D 1 offset (-70,79)
		MSLB D 1 offset (-60,70)
		MSLB D 1 offset (-50,62)
		MSLB D 1 offset (-40,55)
		MSLB D 1 offset (-30,49)
		MSLB D 1 offset (-20,44)
		MSLB D 1 offset (-15,40)
		MSLB D 1 offset (-10,37)
		MSLB D 1 offset (-5,34)
		MSLB D 1 offset (0,0)
		TNT1 A 0 A_TakeInventory("SelectAnimation",1)
		TNT1 A 0 A_TakeInventory("LockOnActive",30)
		goto ready
    SelectUnload:
	    TNT1 A 0 A_TakeInventory("MissileMag",1)
	    TNT1 A 0 A_GiveInventory("MissileAmmo",1)
	    TNT1 A 0 A_JumpIfInventory("MissileMag",2,"SelectUnload")
		TNT1 A 0
		Goto Select
	Deselect:
	    TNT1 A 0 A_JumpIfInventory("LockOnMode", 1, "ChangeMode")
	    TNT1 A 0 A_TakeInventory("ActionFragGrenade",1)	
        TNT1 A 0 A_TakeInventory("ActionFlashbang",1)
        TNT1 A 0 A_TakeInventory("ActionRemoteC4",1)	
        TNT1 A 0 A_TakeInventory("ActionMeleeAttack",1)
		TNT1 A 0 A_TakeInventory("ActionReload",1)	
		TNT1 A 0 A_JumpIfInventory("IsBlue",1,"DeselectBlue")
		MSLR D 1 offset (-4,34)
		MSLR D 1 offset (-8,40)
		MSLR D 1 offset (-16,49)
		MSLR D 1 offset (-24,62)
		MSLR D 1 offset (-32,79)
		MSLR D 1 offset (-40,100)
		TNT1 A 0 offset (-1, 33)
		TNT1 A 0 A_Lower
		wait
	DeselectBlue:
		MSLB D 1 offset (-4,34)
		MSLB D 1 offset (-8,40)
		MSLB D 1 offset (-16,49)
		MSLB D 1 offset (-24,62)
		MSLB D 1 offset (-32,79)
		MSLB D 1 offset (-40,100)
		TNT1 A 0 offset (-1, 33)
		TNT1 A 0 A_Lower
		wait
    Ready:
		TNT1 A 0 A_JumpIfInventory("SelectAnimation",1,"Select")
		TNT1 A 0 A_JumpIfInventory("LockOnMode",1,"LockOnReady")
	    TNT1 A 0 A_JumpIfInventory("IsBlue",1,"Ready.Blue")
		TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"UseFragGrenade")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"UseFlashbang")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"UseRemoteC4")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"UseMeleeAttack")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Reload")
		MSLR D 1 A_WeaponReady
		Loop
    Ready.Blue:
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"UseFragGrenade")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"UseFlashbang")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"UseRemoteC4")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"UseMeleeAttack")
	    TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Reload.Blue")
		MSLB D 1 A_WeaponReady
		Loop
    LockOnReady:
	    TNT1 A 0 A_JumpIfInventory("IsBlue",1,"LockOnReady.Blue")
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker")
	    MSLR D 5 Offset(8,40) A_WeaponReady (WRF_NOBOB)
		TNT1 A 0 A_TakeInventory("LockOnActive",3)
		Loop
	LockOnChecker:
	    TNT1 A 0 A_PlaySound("missilelauncher/see",CHAN_WEAPON)
		TNT1 A 0 A_GiveInventory("LockOnActive",6)
	    MSLR D 5 Offset(8,40) A_WeaponReady (WRF_NOBOB)
		TNT1 A 0 A_JumpIfInventory("MissileMag",1,2)
		TNT1 A 0 A_JumpIfInventory("LockOnActive",30,1)
		goto LockOnReady
		TNT1 A 0 A_GiveInventory("LockOnTimer",30)
        TNT1 A 0 A_JumpIfInventory("LockOnActive",30,1)
		goto LockOnTimer
	LockOnReload:
	    TNT1 A 0 A_JumpIfInventory("MissileMag",3,"LockOnTimer")	
	    TNT1 A 0 A_PlayWeaponSound ("missilelauncher/reload")
		MSLR EFGGHH 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOFIRE)
		TNT1 A 0 A_GiveInventory("LockOnTimer",30)
		TNT1 A 0 A_TakeInventory("MissileAmmo",1)
		TNT1 A 0 A_GiveInventory("MissileMag",1)
		MSLR D 2 A_TakeInventory("LockOnActive",30)
		goto LockOnTimer
    LockOnTimer:
	    TNT1 A 0 A_JumpIfInventory("LockOnTimer",1,2)
		TNT1 A 0
		goto Altfire
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker")
	    MSLR D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker")
	    MSLR D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker")
	    MSLR D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker")
	    MSLR D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
		MSLR A 0 A_PlaySound("MissileLauncher/LockedBeep",CHAN_WEAPON)
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker")
	    MSLR D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker")
	    MSLR D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker")
	    MSLR D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker")
	    MSLR D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
		TNT1 A 0 A_TakeInventory("LockOnTimer",10)
		Loop
    LockOnReady.Blue:
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker.Blue")
	    MSLB D 5 Offset(8,40) A_WeaponReady (WRF_NOBOB)
		TNT1 A 0 A_TakeInventory("LockOnActive",3)
		Loop
	LockOnChecker.Blue:
	    TNT1 A 0 A_PlaySound("missilelauncher/see",CHAN_WEAPON)
		TNT1 A 0 A_GiveInventory("LockOnActive",6)
	    MSLB D 5 Offset(8,40) A_WeaponReady (WRF_NOBOB)
		TNT1 A 0 A_JumpIfInventory("MissileMag",1,2)
		TNT1 A 0 A_JumpIfInventory("LockOnActive",30,1)
		goto LockOnReady.Blue
		TNT1 A 0 A_GiveInventory("LockOnTimer",30)
        TNT1 A 0 A_JumpIfInventory("LockOnActive",30,1)
		goto LockOnTimer.Blue
	LockOnReload.Blue:
	    TNT1 A 0 A_JumpIfInventory("MissileMag",3,"LockOnTimer.Blue")	
	    TNT1 A 0 A_PlayWeaponSound ("missilelauncher/reload")
		MSLB EFGGHH 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOFIRE)
		TNT1 A 0 A_GiveInventory("LockOnTimer",30)
		TNT1 A 0 A_TakeInventory("MissileAmmo",1)
		TNT1 A 0 A_GiveInventory("MissileMag",1)
		MSLB D 2 A_TakeInventory("LockOnActive",30)
		goto LockOnTimer.Blue
    LockOnTimer.Blue:
	    TNT1 A 0 Offset(8,40) A_WeaponReady (WRF_NOBOB)
	    TNT1 A 0 A_JumpIfInventory("LockOnTimer",1,2)
		TNT1 A 0
		goto Altfire
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker.Blue")
	    MSLB D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker.Blue")
	    MSLB D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker.Blue")
	    MSLB D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker.Blue")
	    MSLB D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
		MSLB A 0 A_PlaySound("MissileLauncher/LockedBeep",CHAN_WEAPON)
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker.Blue")
	    MSLB D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker.Blue")
	    MSLB D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker.Blue")
	    MSLB D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
	    TNT1 A 0 A_JumpIfInventory("ActionFragGrenade",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionFlashbang",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionRemoteC4",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionMeleeAttack",1,"Altfire")
		TNT1 A 0 A_JumpIfInventory("ActionReload",1,"Altfire")
		TNT1 A 0 A_JumpIfCloser(1536, "LockOnChecker.Blue")
	    MSLB D 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOPRIMARY)
		TNT1 A 0 A_TakeInventory("LockOnTimer",10)
		Loop
	Fire:
		TNT1 A 0 A_JumpIfInventory ("IsInSpawnRoom", 1, "Ready")
		TNT1 A 0 A_JumpIfInventory ("InMenu", 1, "Ready")
		TNT1 A 0 A_JumpIfInventory ("IsBlue", 1, "Fire.Blue")
		TNT1 A 0 A_JumpIfInventory ("LockOnMode", 1, "FireLockOn")
	    TNT1 A 0 A_JumpIfNoAmmo("Empty")
        TNT1 A 0 A_JumpIfInventory("MissileMag",1,1)
        Goto Empty
		TNT1 A 0 A_GunFlash
		TNT1 A 0 A_PlaySound ("missilelauncher/fire", CHAN_WEAPON)
		TNT1 A 0 A_JumpIfCloser(1536, "Fire.Homing")
		MSLR D 1 A_FireCustomMissile ("HeavyMissile", 0, 1, 0)
		goto FireEnd
	Fire.Blue:
	    TNT1 A 0 A_JumpIfInventory ("LockOnMode", 1, "FireLockOn.Blue")
	    TNT1 A 0 A_JumpIfNoAmmo("Empty.Blue")
        TNT1 A 0 A_JumpIfInventory("MissileMag",1,1)
        Goto Empty.Blue
		TNT1 A 0 A_GunFlash
		TNT1 A 0 A_PlaySound ("missilelauncher/fire", CHAN_WEAPON)
		TNT1 A 0 A_JumpIfCloser(1536, "Fire.HomingBlue")
		MSLB D 1 A_FireCustomMissile("HeavyMissileBlue", 0, 1, 0)
		Goto FireEnd.Blue
	Fire.Homing:
	    TNT1 A 0
		MSLR D 1 A_FireCustomMissile ("HeavyHomingMissile")
		TNT1 A 0 A_TakeInventory("MissileMag",1)
		goto FireEnd
	Fire.HomingBlue:
	    TNT1 A 0
		MSLB D 1 A_FireCustomMissile("HeavyHomingBlueMissile")
		TNT1 A 0 A_TakeInventory("MissileMag",1)
		Goto FireEnd.Blue
    FireEnd:
		MSLR D 1 offset (1, 35) Radius_Quake(6,12,0,1,0)
		MSLR D 0 Offset (1, 35) A_Recoil (18)
		MSLR D 1 offset (2, 38) A_ZoomFactor(0.952)
		MSLR D 1 offset (3, 41) A_ZoomFactor(0.934)
		MSLR D 1 offset (4, 44) A_ZoomFactor(0.866)
		MSLR D 1 offset (5, 47) A_ZoomFactor(0.851)
		MSLR D 1 offset (6, 50) A_ZoomFactor(0.862)
		MSLR D 1 offset (5, 47) A_ZoomFactor(0.875)
		MSLR D 1 offset (4, 44) A_ZoomFactor(0.912)
		MSLR D 1 offset (3, 41) A_ZoomFactor(0.931)
		MSLR D 1 offset (2, 38) A_ZoomFactor(0.947)
		MSLR D 1 offset (1, 35) A_ZoomFactor(0.976)
		MSLR D 1 offset (0, 32) A_ZoomFactor(1)
		TNT1 A 0 A_WeaponReady(WRF_NOBOB | WRF_NOFIRE)
		MSLR DDDDD 2 A_JumpIfInventory("ActionMeleeAttack",1,"UseMeleeAttack")
		TNT1 A 0 A_WeaponReady(WRF_NOBOB | WRF_NOFIRE)
		MSLR DDDDD 2 A_JumpIfInventory("ActionMeleeAttack",1,"UseMeleeAttack")
		TNT1 A 0 A_WeaponReady(WRF_NOBOB | WRF_NOFIRE)
		MSLR DDDDD 2 A_JumpIfInventory("ActionMeleeAttack",1,"UseMeleeAttack")
		Goto Reload
    FireEnd.Blue:
		MSLB D 1 offset (1, 35) Radius_Quake(6,12,0,1,0)
		MSLB D 0 Offset (1, 35) A_Recoil (18)
		MSLB D 1 offset (2, 38) A_ZoomFactor(0.952)
		MSLB D 1 offset (3, 41) A_ZoomFactor(0.934)
		MSLB D 1 offset (4, 44) A_ZoomFactor(0.866)
		MSLB D 1 offset (5, 47) A_ZoomFactor(0.851)
		MSLB D 1 offset (6, 50) A_ZoomFactor(0.862)
		MSLB D 1 offset (5, 47) A_ZoomFactor(0.875)
		MSLB D 1 offset (4, 44) A_ZoomFactor(0.912)
		MSLB D 1 offset (3, 41) A_ZoomFactor(0.931)
		MSLB D 1 offset (2, 38) A_ZoomFactor(0.947)
		MSLB D 1 offset (1, 35) A_ZoomFactor(0.976)
		MSLB D 1 offset (0, 32) A_ZoomFactor(1)
		TNT1 A 0 A_WeaponReady(WRF_NOBOB | WRF_NOFIRE)
		MSLB DDDDD 2 A_JumpIfInventory("ActionMeleeAttack",1,"UseMeleeAttack")
		TNT1 A 0 A_WeaponReady(WRF_NOBOB | WRF_NOFIRE)
		MSLB DDDDD 2 A_JumpIfInventory("ActionMeleeAttack",1,"UseMeleeAttack")
		TNT1 A 0 A_WeaponReady(WRF_NOBOB | WRF_NOFIRE)
		MSLB DDDDD 2 A_JumpIfInventory("ActionMeleeAttack",1,"UseMeleeAttack")
		Goto Reload.Blue
	FireLockOn:
		MSLR D 1 A_JumpIfCloser(1536, "AltFireGo")
		TNT1 A 0 A_ReFire ("FireLockOn")
		goto LockOnReady
    AltFireGo:
		TNT1 A 0 A_TakeInventory("LockOnActive",30)
		TNT1 A 0 A_TakeInventory("LockOnTimer",30)
	    TNT1 A 0 A_TakeInventory("LockOnMode",1)
        TNT1 A 0 A_GunFlash
	    TNT1 A 0 A_PlaySoundEx("missilelauncher/busrtShot",CHAN_VOICE)
		TNT1 A 0 Radius_Quake(4,3,0,1,0)
        MSLR D 1 Bright offset (9, 43) A_FireCustomMissile("HeavyBurstMissile",0 ,0)
		TNT1 A 0 A_TakeInventory("MissileMag",1)
		TNT1 A 0 A_Recoil (9)
	    MSLR D 1 Bright offset (10, 46) A_ZoomFactor(0.952)
	    MSLR D 1 Bright offset (11, 49) A_ZoomFactor(0.934)
	    MSLR D 1 Bright offset (12, 52) A_ZoomFactor(0.866)
	    MSLR D 2 offset (13, 55) A_ZoomFactor(0.851)
		TNT1 A 0 A_JumpIfInventory ("MissileMag", 1, "AltFireGo")
		MSLR D 1 offset (12, 51) A_ZoomFactor(0.862)
		MSLR D 1 offset (11, 48) A_ZoomFactor(0.875)
		MSLR D 1 offset (10, 45) A_ZoomFactor(0.912)
		MSLR D 1 offset (9, 42) A_ZoomFactor(0.931)
		MSLR D 1 offset (8, 40) A_ZoomFactor(0.947)
		MSLR D 1 offset (7, 39) A_ZoomFactor(0.976)
		MSLR D 1 offset (6, 38) A_ZoomFactor(1)
		MSLR D 1 offset (5, 37)
		MSLR D 1 offset (4, 36)
		MSLR D 1 offset (3, 35)
		MSLR D 1 offset (2, 34)
		MSLR D 1 offset (1, 33)
		MSLR D 1 offset (0, 32)
		TNT1 A 0 ACS_ExecuteAlways (963, 0) // init targeter
		TNT1 A 0 A_WeaponReady(WRF_NOBOB | WRF_NOFIRE)
		MSLR DDDDD 2 A_JumpIfInventory("ActionMeleeAttack",1,"UseMeleeAttack")
		TNT1 A 0 A_WeaponReady(WRF_NOBOB | WRF_NOFIRE)
		MSLR DDDDD 2 A_JumpIfInventory("ActionMeleeAttack",1,"UseMeleeAttack")
		Goto Reload
	FireLockOn.Blue:
		MSLB D 1 A_JumpIfCloser(1536, "AltFireGo.Blue")
		TNT1 A 0 A_ReFire ("FireLockOn.Blue")
		goto LockOnReady.Blue
    AltFireGo.Blue:
		TNT1 A 0 A_TakeInventory("LockOnActive",30)
		TNT1 A 0 A_TakeInventory("LockOnTimer",30)
	    TNT1 A 0 A_TakeInventory("LockOnMode",1)
        TNT1 A 0 A_GunFlash
	    TNT1 A 0 A_PlaySoundEx("missilelauncher/busrtShot",CHAN_VOICE)
		TNT1 A 0 Radius_Quake(4,3,0,1,0)
        MSLB D 1 Bright offset (9, 43) A_FireCustomMissile("HeavyBurstMissileBlue",0 ,0)
		TNT1 A 0 A_TakeInventory("MissileMag",1)
		TNT1 A 0 A_Recoil (9)
	    MSLB D 1 Bright offset (10, 46) A_ZoomFactor(0.952)
	    MSLB D 1 Bright offset (11, 49) A_ZoomFactor(0.934)
	    MSLB D 1 Bright offset (12, 52) A_ZoomFactor(0.866)
	    MSLB D 2 offset (13, 55) A_ZoomFactor(0.851)
		TNT1 A 0 A_JumpIfInventory ("MissileMag", 1, "AltFireGo.Blue")
		MSLB D 1 offset (12, 51) A_ZoomFactor(0.862)
		MSLB D 1 offset (11, 48) A_ZoomFactor(0.875)
		MSLB D 1 offset (10, 45) A_ZoomFactor(0.912)
		MSLB D 1 offset (9, 42) A_ZoomFactor(0.931)
		MSLB D 1 offset (8, 40) A_ZoomFactor(0.947)
		MSLB D 1 offset (7, 39) A_ZoomFactor(0.976)
		MSLB D 1 offset (6, 38) A_ZoomFactor(1)
		MSLB D 1 offset (5, 37)
		MSLB D 1 offset (4, 36)
		MSLB D 1 offset (3, 35)
		MSLB D 1 offset (2, 34)
		MSLB D 1 offset (1, 33)
		MSLB D 1 offset (0, 32)
		TNT1 A 0 ACS_ExecuteAlways (963, 0) // init targeter
		TNT1 A 0 A_WeaponReady(WRF_NOBOB | WRF_NOFIRE)
		MSLB DDDDD 2 A_JumpIfInventory("ActionMeleeAttack",1,"UseMeleeAttack")
		TNT1 A 0 A_WeaponReady(WRF_NOBOB | WRF_NOFIRE)
		MSLB DDDDD 2 A_JumpIfInventory("ActionMeleeAttack",1,"UseMeleeAttack")
		Goto Reload.Blue
     Empty:
        MSLR D 10 A_PlaySound("weapons/empty5")
	 Reload:
	    TNT1 A 0 A_TakeInventory("ActionReload",1)
        TNT1 A 0 A_JumpIfInventory("MissileMag",1,2)
        TNT1 A 0 A_JumpIfInventory("MissileAmmo",1,2)
	    TNT1 A 0
	    Goto Ready
		MSLR D 6 A_JumpIfInventory("IsRocketSoldier",1,1)
		TNT1 A 0 A_PlayWeaponSound ("missilelauncher/reload")
		MSLR EFGGHHD 2
		TNT1 A 0 A_TakeInventory("MissileAmmo",1)
	    TNT1 A 0 A_GiveInventory("MissileMag",1)
		TNT1 A 0 A_ReFire
		Goto Ready
     Empty.Blue:
        MSLB D 10 A_PlaySound("weapons/empty5")
	 Reload.Blue:
	    TNT1 A 0 A_TakeInventory("ActionReload",1)
        TNT1 A 0 A_JumpIfInventory("MissileMag",1,2)
        TNT1 A 0 A_JumpIfInventory("MissileAmmo",1,2)
	    TNT1 A 0
	    Goto Ready
		MSLB D 6 A_JumpIfInventory("IsRocketSoldier",1,1)
		TNT1 A 0 A_PlayWeaponSound ("missilelauncher/reload")
		MSLB EFGGHHD 2
		TNT1 A 0 A_TakeInventory("MissileAmmo",1)
	    TNT1 A 0 A_GiveInventory("MissileMag",1)
		TNT1 A 0 A_ReFire
		Goto Ready
    Altfire:
		TNT1 A 0 A_JumpIfInventory ("IsInSpawnRoom", 1, "Ready")
		TNT1 A 0 A_JumpIfInventory ("InMenu", 1, "Ready")
        TNT1 A 0 A_TakeInventory("LockOnActive",30)
		TNT1 A 0 A_TakeInventory("LockOnTimer",30)
	    TNT1 A 0 A_JumpIfInventory("IsRocketSoldier",1,"ChangeMode")
	    Goto Ready
    ChangeMode:
        TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("IsBlue",1,"ChangeMode.Blue") 
		MSLR D 1 A_JumpIfInventory("LockOnMode",1,"ChangeMode2")
		TNT1 A 0 A_JumpIfInventory("MissileMag",1,3)
		TNT1 A 0 A_JumpIfInventory("MissileAmmo",3,5)
		MSLR D 1
		Goto Ready
		TNT1 A 0 A_JumpIfInventory("MissileAmmo",2,2)
		MSLR D 1
		Goto Ready
	    TNT1 A 0 A_Print("Lock-On Burst",1)
	    TNT1 A 0 A_GiveInventory("LockOnMode",1)
		TNT1 A 0 A_PlaySound("MissileLauncher/StartLockOn",5,1.0,false,2.0)
		MSLR D 2 Offset(1,33)
		MSLR C 2 Offset(2,34)
		MSLR B 2 Offset(3,35)
		MSLR A 2 Offset(4,36)
		TNT1 A 0 A_PlaySound("MissileLauncher/TargetLocked",6,1.0,false,2.0)
		MSLR A 2 Offset(5,37)
		MSLR B 2 Offset(6,38)
		MSLR C 2 Offset(7,39)
		MSLR D 2 Offset(8,40)
		TNT1 A 0 A_PlayWeaponSound ("missilelauncher/reload")
		MSLR EFGGHH 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOFIRE)
		TNT1 A 0 A_JumpIfInventory("MissileMag",1,"LockOnReady")
		TNT1 A 0 A_TakeInventory("MissileAmmo",1)
	    TNT1 A 0 A_GiveInventory("MissileMag",1)
		Goto Ready
    ChangeMode2:
	    TNT1 A 0 A_Print("Normal",1)
	    TNT1 A 0 A_TakeInventory("LockOnMode",1)
	    MSLR D 4 A_PlayWeaponSound("PlasmaCaster/Reload")
		MSLR D 1 Offset(8,40)
		MSLR D 1 Offset(7,39)
		MSLR D 1 Offset(6,38)
		MSLR D 1 Offset(5,37)
		MSLR D 1 Offset(4,36)
		MSLR D 1 Offset(3,35)
		MSLR D 1 Offset(2,34)
		MSLR D 1 Offset(1,33)
		TNT1 A 0 ACS_ExecuteAlways (963, 0) // init targeter
	    TNT1 A 0 A_JumpIfInventory("MissileMag",2,"RestoreAmmo")
	    Goto Ready
    RestoreAmmo:
	    TNT1 A 0 A_TakeInventory("MissileMag",1)
	    TNT1 A 0 A_GiveInventory("MissileAmmo",1)
	    TNT1 A 0 A_JumpIfInventory("MissileMag",2,"RestoreAmmo")
		TNT1 A 0
		Goto Ready
    ChangeMode.Blue:
		MSLB D 1 A_JumpIfInventory("LockOnMode",1,"ChangeMode2.Blue")
		TNT1 A 0 A_JumpIfInventory("MissileMag",1,3)
		TNT1 A 0 A_JumpIfInventory("MissileAmmo",3,5)
		MSLB D 1
		Goto Ready
		TNT1 A 0 A_JumpIfInventory("MissileAmmo",2,2)
		MSLB D 1
		Goto Ready
	    TNT1 A 0 A_Print("Lock-On Burst",1)
	    TNT1 A 0 A_GiveInventory("LockOnMode",1)
		TNT1 A 0 A_PlaySound("MissileLauncher/StartLockOn",5,1.0,false,2.0)
		MSLB D 2 Offset(1,33)
		MSLB C 2 Offset(2,34)
		MSLB B 2 Offset(3,35)
		MSLB A 2 Offset(4,36)
		TNT1 A 0 A_PlaySound("MissileLauncher/TargetLocked",6,1.0,false,2.0)
		MSLB A 2 Offset(5,37)
		MSLB B 2 Offset(6,38)
		MSLB C 2 Offset(7,39)
		MSLB D 2 Offset(8,40)
		TNT1 A 0 A_PlayWeaponSound ("missilelauncher/reload")
		MSLB EFGGHH 2 Offset(8,40) A_WeaponReady (WRF_NOBOB | WRF_NOFIRE)
		TNT1 A 0 A_JumpIfInventory("MissileMag",1,"LockOnReady")
		TNT1 A 0 A_TakeInventory("MissileAmmo",1)
	    TNT1 A 0 A_GiveInventory("MissileMag",1)
		Goto Ready
    ChangeMode2.Blue:
	    TNT1 A 0 A_Print("Normal",1)
	    TNT1 A 0 A_TakeInventory("LockOnMode",1)
	    MSLB D 4 A_PlayWeaponSound("PlasmaCaster/Reload")
		MSLB D 1 Offset(8,40)
		MSLB D 1 Offset(7,39)
		MSLB D 1 Offset(6,38)
		MSLB D 1 Offset(5,37)
		MSLB D 1 Offset(4,36)
		MSLB D 1 Offset(3,35)
		MSLB D 1 Offset(2,34)
		MSLB D 1 Offset(1,33)
		TNT1 A 0 ACS_ExecuteAlways (963, 0) // init targeter
	    TNT1 A 0 A_JumpIfInventory("MissileMag",2,"RestoreAmmo")
	    Goto Ready
	Flash:
		MSFR A 2 bright A_Light1
		MSFR B 2 bright 
		MSFR C 2 bright A_Light2
		MSFR D 2 bright
		MSFR D 0 A_Light0
		stop
	}
}

actor HeavyMissile {
	PROJECTILE
	-RANDOMIZE
	Radius 11
	Height 8
	Speed 36
	Damage (100)
	Obituary "$OB_MISSILELAUNCHER"
	DeathSound "weapons/rocklx"
	DamageType "Explosion"
	Decal "Scorch"
	States {
	Spawn:
		MISR A 2 bright
		MISR A 0 bright A_PlaySound ("ambient/rocket", CHAN_BODY, 1.0, true)
		MISR A 1 bright A_SpawnItemEx ("HeavyMissileSmoke", -16)
		wait
	Death:
		TNT1 A 0 A_SpawnItemEx ("FlameDecay", random(-16,16), random(-16,16), 4, 0, 0, 0, 0, 0, 160)
		TNT1 A 0 A_StopSound (CHAN_BODY)
		TNT1 A 0 A_Explode (192, 256)
		//TNT1 A 0 A_RadiusThrust(96,128,0)
		TNT1 A 0 A_SpawnItemEx ("HeavyMissileQuake")
		TNT1 A 5 A_SpawnItemEx ("ExplosionMain")
		stop
	}
}

Actor HeavyMissileBlue : HeavyMissile
{
	States
	{
		Spawn:
			MISB A 2 bright
			MISB A 0 bright A_PlaySound ("ambient/rocket", CHAN_BODY, 1.0, true)
			MISB A 1 bright A_SpawnItemEx ("HeavyMissileSmoke", -16)
		wait
	}
}

actor HeavyHomingMissile : HeavyMissile 
{
	+SEEKERMISSILE
	Obituary "$OB_SEEKERMISSILE"
	Speed 24

	States {
	Spawn:
		MISR A 2 bright
		MISR A 0 bright A_PlaySound ("seeker/beep", CHAN_ITEM, 1.0, true)
		MISR A 0 bright A_PlaySound ("ambient/rocket", CHAN_BODY, 1.0, true)
	Idle:
		MISR A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
		MISR A 2 bright A_SeekerMissile (15, 30)
		loop
	Death:
		TNT1 A 0 A_StopSound (CHAN_ITEM)
		goto Super::Death
	}
}

Actor HeavyHomingBlueMissile : HeavyMissileBlue
{
	+SEEKERMISSILE
	Obituary "$OB_SEEKERMISSILE"
	Speed 24
	States
	{
		Spawn:
		MISB A 2 bright
		MISB A 0 bright A_PlaySound ("seeker/beep", CHAN_ITEM, 1.0, true)
		MISB A 0 bright A_PlaySound ("ambient/rocket", CHAN_BODY, 1.0, true)
	Idle:
		MISB A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
		MISB A 2 bright A_SeekerMissile (15, 30)
		loop
	}
}

ACTOR HeavyBurstMissile : HeavyMissile
{
    +SEEKERMISSILE
	+SCREENSEEKER
	Obituary "$OB_SEEKERMISSILE"
	Speed 24
	Damage (75)
    States
    {
    Spawn:
		MISR A 2 bright
		MISR A 0 bright A_PlaySound ("seeker/beep", CHAN_ITEM, 1.0, true)
		MISR A 0 bright A_PlaySound ("ambient/rocket", CHAN_BODY, 1.0, true)
    Idle:
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISR A 1 Bright A_SpawnItem("RocketFlare",-20,0)
        TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISR A 1 Bright A_SpawnItem("RocketFlare",-20,0)
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISR A 1 Bright A_SpawnItem("RocketFlare",-20,0)
        TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISR A 1 Bright A_SpawnItem("RocketFlare",-20,0)
    Seek:
	    TNT1 A 0 A_SeekerMissile(15, 30,SMF_LOOK,100,2)
	    TNT1 A 0 A_Weave(2,2,1,1)
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISR A 1 Bright A_SpawnItem("RocketFlare",-20,0)
	    TNT1 A 0 A_Weave(2,2,1,1)
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISR A 1 Bright A_SpawnItem("RocketFlare",-20,0)
        Loop
	Death:
		TNT1 A 0 A_SpawnItemEx ("FlameDecay", random(-16,16), random(-16,16), 4, 0, 0, 0, 0, 0, 160)
		TNT1 A 0 A_StopSound (CHAN_BODY)
		TNT1 A 0 A_Explode (144, 192)
		//TNT1 A 0 A_RadiusThrust(96,128,0)
		TNT1 A 0 A_SpawnItemEx ("HeavyMissileQuake")
		TNT1 A 5 A_SpawnItemEx ("ExplosionMain")
		stop
	}
}

ACTOR HeavyBurstMissile2 : HeavyBurstMissile
{
    States
    {
    Spawn:
		MISR A 2 bright
		MISR A 0 bright A_PlaySound ("seeker/beep", CHAN_ITEM, 1.0, true)
		MISR A 0 bright A_PlaySound ("ambient/rocket", CHAN_BODY, 1.0, true)
    Idle:
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISR A 1 Bright A_SpawnItem("RocketFlare",-20,0)
        TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISR A 1 Bright A_SpawnItem("RocketFlare",-20,0)
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISR A 1 Bright A_SpawnItem("RocketFlare",-20,0)
        TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISR A 1 Bright A_SpawnItem("RocketFlare",-20,0)
    Seek:
	    TNT1 A 0 A_SeekerMissile(15, 30,SMF_LOOK,100,2)
	    TNT1 A 0 A_Weave(-2,-2,-1,-1)
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISR A 1 Bright A_SpawnItem("RocketFlare",-20,0)
	    TNT1 A 0 A_Weave(-2,-2,-1,-1)
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISR A 1 Bright A_SpawnItem("RocketFlare",-20,0)
        Loop
	Death:
		TNT1 A 0 A_SpawnItemEx ("FlameDecay", random(-16,16), random(-16,16), 4, 0, 0, 0, 0, 0, 160)
		TNT1 A 0 A_StopSound (CHAN_BODY)
		TNT1 A 0 A_Explode (144, 192)
		//TNT1 A 0 A_RadiusThrust(96,128,0)
		TNT1 A 0 A_SpawnItemEx ("HeavyMissileQuake")
		TNT1 A 5 A_SpawnItemEx ("ExplosionMain")
		stop
	}
}

ACTOR HeavyBurstMissileBlue : HeavyBurstMissile
{
    
    States
    {
    Spawn:
		MISB A 2 bright
		MISB A 0 bright A_PlaySound ("seeker/beep", CHAN_ITEM, 1.0, true)
		MISB A 0 bright A_PlaySound ("ambient/rocket", CHAN_BODY, 1.0, true)
    Idle:
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISB A 1 Bright A_SpawnItem("RocketFlare",-20,0)
        TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISB A 1 Bright A_SpawnItem("RocketFlare",-20,0)
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISB A 1 Bright A_SpawnItem("RocketFlare",-20,0)
        TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISB A 1 Bright A_SpawnItem("RocketFlare",-20,0)
    Seek:
	    TNT1 A 0 A_SeekerMissile(15, 30,SMF_LOOK,100,2)
	    TNT1 A 0 A_Weave(2,2,1,1)
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISB A 1 Bright A_SpawnItem("RocketFlare",-20,0)
	    TNT1 A 0 A_Weave(2,2,1,1)
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISB A 1 Bright A_SpawnItem("RocketFlare",-20,0)
        Loop
	Death:
		TNT1 A 0 A_SpawnItemEx ("FlameDecay", random(-16,16), random(-16,16), 4, 0, 0, 0, 0, 0, 160)
		TNT1 A 0 A_StopSound (CHAN_BODY)
		TNT1 A 0 A_Explode (144, 192)
		//TNT1 A 0 A_RadiusThrust(96,128,0)
		TNT1 A 0 A_SpawnItemEx ("HeavyMissileQuake")
		TNT1 A 5 A_SpawnItemEx ("ExplosionMain")
		stop
	}
}

ACTOR HeavyBurstMissile2Blue : HeavyBurstMissile
{
    
    States
    {
    Spawn:
		MISB A 2 bright
		MISB A 0 bright A_PlaySound ("seeker/beep", CHAN_ITEM, 1.0, true)
		MISB A 0 bright A_PlaySound ("ambient/rocket", CHAN_BODY, 1.0, true)
    Idle:
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISB A 1 Bright A_SpawnItem("RocketFlare",-20,0)
        TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISB A 1 Bright A_SpawnItem("RocketFlare",-20,0)
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISB A 1 Bright A_SpawnItem("RocketFlare",-20,0)
        TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISB A 1 Bright A_SpawnItem("RocketFlare",-20,0)
    Seek:
	    TNT1 A 0 A_SeekerMissile(15, 30,SMF_LOOK,100,2)
	    TNT1 A 0 A_Weave(-2,-2,-1,-1)
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISB A 1 Bright A_SpawnItem("RocketFlare",-20,0)
	    TNT1 A 0 A_Weave(-2,-2,-1,-1)
	    TNT1 A 0 A_SpawnItemEx ("HeavyMissileSmoke", -16)
        MISB A 1 Bright A_SpawnItem("RocketFlare",-20,0)
        Loop
	Death:
		TNT1 A 0 A_SpawnItemEx ("FlameDecay", random(-16,16), random(-16,16), 4, 0, 0, 0, 0, 0, 160)
		TNT1 A 0 A_StopSound (CHAN_BODY)
		TNT1 A 0 A_Explode (144, 192)
		//TNT1 A 0 A_RadiusThrust(96,128,0)
		TNT1 A 0 A_SpawnItemEx ("HeavyMissileQuake")
		TNT1 A 5 A_SpawnItemEx ("ExplosionMain")
		stop
	}
}

Actor PlayerRocketTrailFire 
{
	+CLIENTSIDEONLY
	+NONETID
	+NOINTERACTION
	+FORCEXYBILLBOARD
	RenderStyle Add
	Alpha 0.7
	Scale 0.12
	Translation "0:255=%[0,0,0]:[2.0,1.1,0]"
	States
	{
	Spawn:
		TNT1 A 0 NoDelay A_Jump(255,"One","Two")
	One:
		X007 CDE 1 Bright 
		X007 FGHIJ 1 Bright 
		Stop
	Two:
		X007 MNO 1 Bright 
		X007 PQRST 1 Bright 
		Stop		
	}
}

actor HeavyMissileQuake {
	+CLIENTSIDEONLY
	+NOINTERACTION
	States {
	Spawn:
		TNT1 A 0
		TNT1 A 5 Radius_Quake (5, 5, 0, 7, 0)
		TNT1 A 4 Radius_Quake (4, 4, 0, 7, 0)
		TNT1 A 3 Radius_Quake (3, 3, 0, 7, 0)
		TNT1 A 2 Radius_Quake (2, 2, 0, 7, 0)
		TNT1 A 1 Radius_Quake (1, 1, 0, 7, 0)
		stop
	}
}

actor HeavyMissileSmoke {
	+CLIENTSIDEONLY
	+NOINTERACTION
	Alpha 0.6
	Scale 0.2
	States {
	Spawn:
		SMOK A 0
		SMOK A 0 A_Jump (256, "Spawn1", "Spawn2", "Spawn3", "Spawn4")
		goto Spawn1
	Spawn1:
		SMOK A 1 A_FadeOut
		wait
	Spawn2:
		SMOK B 1 A_FadeOut
		wait
	Spawn3:
		SMOK C 1 A_FadeOut
		wait
	Spawn4:
		SMOK D 1 A_FadeOut
		wait
	}
}

actor MissileMag : Ammo {
    +IGNORESKILL
	inventory.amount 0
	inventory.maxamount 3
	ammo.backpackamount 0
	ammo.backpackmaxamount 3
}

ACTOR LockOnMode : Inventory {Inventory.MaxAmount 1}
Actor LockOnActive : Inventory {Inventory.MaxAmount 30 }
ACTOR LockOnTimer : Inventory {Inventory.MaxAmount 30}