Actor HeavyMissileLauncherUpgradeToken : Inventory {inventory.maxamount 1}

Actor HeavyMissileLauncherGiver : CustomInventory Replaces "HeavyMissileLauncher"
{
//Scale 0.75
-COUNTITEM
+INVENTORY.BIGPOWERUP
+INVENTORY.AUTOACTIVATE
+INVENTORY.IGNORESKILL
Inventory.PickupSound "weapons/minigunpickup"
Inventory.PickupMessage "Heavy Missile Launcher"
States
{
   Spawn:
     TNT1 A 1
	 TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("CheckWeaponWorldSpawn") == 1,"SpawnDropped")
	 TNT1 A 1 ACS_NamedExecuteAlways("SpawnWeaponActive",0,1)
	 4RKL Z -1
	 Wait
   SpawnDropped:
     TNT1 A 1 A_SpawnItem("HMLGiverDropped")
	 Stop
   Pickup:
	 TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("MPWeaponCheck") == 2,"PickupMP")
	 TNT1 A 0 A_JumpIfInventory("Bazooka",1,"GiveUpgrade")
	 TNT1 A 0 A_GiveInventory("Missile",20)
	 TNT1 A 1 A_GiveInventory("HeavyMissileLauncher2",1)
	 Stop
   GiveUpgrade:
     TNT1 A 0 A_GiveInventory("BulletMag",200)
     TNT1 A 1 A_GiveInventory("Bazooka",1)
	 Stop
   PickupMP:
     TNT1 A 0 A_JumpIfInventory("HeavyMissileLauncher2",1,"Nope")
	 TNT1 A 0 A_JumpIfInventory("Bazooka",1,"Nope")
	 TNT1 A 0 A_GiveInventory("Missile",20)
     TNT1 A 1 A_GiveInventory("Bazooka",1)
	 Stop
   Nope:
     4RKL Z 1
	 Fail
	 }
}

Actor HMLGiverMP : HeavyMissileLauncherGiver
{ 
States 
{ 
  Spawn:
  TNT1 A 0
  TNT1 A 1 ACS_NamedExecuteAlways("SpawnWeaponActive",0,1)
  4RKL Z -1
  Loop 
  } 
}

Actor HMLGiverDropped : HeavyMissileLauncherGiver
{
+INVENTORY.TOSSED
+INVENTORY.NEVERRESPAWN
States
{
  Spawn:
   4RKL Z -1
   Loop
  Pickup:
   TNT1 A 0 A_JumpIfInventory("Bazooka",1,"GiveUpgrade")
   TNT1 A 0 A_GiveInventory("Missile",20)
   TNT1 A 1 A_GiveInventory("HeavyMissileLauncher2",1)
   Stop
   }
}

ACTOR "HeavyMissileLauncher2" : Weapon
{
  Tag "Heavy Missile Launcher"
  Weapon.PreferredSkin "RocketLauncher-Marine"
  Weapon.AmmoType "Missile"
  Weapon.AmmoGive 25
  Weapon.AmmoType "Missile"
  Weapon.AmmoType2 "Missile"
  Weapon.Ammouse 5
  Weapon.AmmoUse2 5
  Inventory.PickupMessage "You got the Heavy Rocket Launcher, time to destroy with heavy artillery"
  Inventory.PickupSound "Weapons/GrenadePickup"
  Dropitem "HMLGiverDropped"
  +WEAPON.NOAUTOAIM
  +WEAPON.AMMO_OPTIONAL
  +INVENTORY.UNDROPPABLE
  States
  {
  Spawn:
    4RKL Z -1
    Stop
  Deselect:
  	TNT1 A 0 A_TakeInventory("HandGrenadeAction",1)
	TNT1 A 0 A_TakeInventory("MineAction",1)
	TNT1 A 0 A_TakeInventory("RailgunAction",1)
	TNT1 A 0 A_TakeInventory("WEMAction",1)
	TNT1 A 0 A_PlayWeaponSound("weapons/weapondown")
	TNT1 A 0 A_Lower
	4RKL F 1 A_Lower
    Goto Deselect+5
  Select:
	TNT1 A 0 A_Raise
    Wait
  Ready:
    TNT1 A 0 A_PlayWeaponSound("Weapons/GrenadePickup")
	TNT1 A 0 A_TakeInventory("WEMAction",1)
	4RKL ABCDE 1
  ReadyLoop:
	TNT1 A 0 A_JumpIfInventory("WEMAction",1,"LowerWeapon")
    4RKL F 1 A_WeaponReady
    Loop
  LowerWeapon:
	TNT1 A 0 A_TakeInventory("WEMAction",1)
    //CHAG A 1 Offset(1,35)
    4RKL F 1 Offset(5,39) A_PlayWeaponSound("weapons/weapondown")
    //CHAG A 1 Offset(10,45)
    4RKL F 1 Offset(14,52)
    //CHAG A 1 Offset(18,58)
    4RKL F 1 Offset(24,64)
    //CHAG A 1 Offset(30,76)
    4RKL F 1 Offset(36,87)
    //CHAG A 1 Offset(42,99)
    4RKL F 1 Offset(48,110)
    //CHAG A 1 Offset(56,120)
    CHAG F 1 Offset(1,120)
	Wait
  Fire:
	TNT1 A 0
	TNT1 A 0 A_JumpIfInventory("Missile",5,1)
    Goto Empty
 	TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_GunFlash
    TNT1 A 0 A_Light1 
    4RKF B 3 Bright
    4RKF D 0 Radius_Quake(4,3,0,1,0)
    4RKF C 3 Bright A_FireCustomMissile("PlayerHeavyRocket",0,1)
	4RKF D 2 Bright A_Light2
    4RKF E 2 Bright
	TNT1 A 0 A_Light0
	4RKF FGH 3
	4RKL F 30
    Goto ReadyLoop
  AltFire:
	TNT1 A 0
	TNT1 A 0 A_JumpIfInventory("Missile",5,1)
    Goto Empty
  AltFireContinue:
 	TNT1 A 0 A_AlertMonsters
    TNT1 A 0 A_GunFlash
    TNT1 A 0 A_Light1 
    4RKF B 3 Bright
    4RKF D 0 Radius_Quake(4,3,0,1,0)
	4RKF D 0 A_PlayWeaponSound("digger/fire")
    4RKF C 3 Bright A_FireCustomMissile("PlayerDiggerGrenade",0,1)
	4RKF D 2 Bright A_Light2
    4RKF E 2 Bright
	TNT1 A 0 A_Light0
	4RKF FGH 3
	4RKL F 40
    Goto ReadyLoop
  Empty:
    4RKL F 5 A_PlayWeaponSound("weapons/click4")
	4RKL F 5
    Goto ReadyLoop
	}
}