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

ACTOR Rocket_Launcher : RocketLauncher Replaces RocketLauncher
{
	Game Doom
	SpawnID 29
	Speed 20
	Damage 20
	Weapon.SelectionOrder 9500
	Weapon.AmmoUse1 0
	Weapon.AmmoUse2 0
	Weapon.AmmoGive2 0
	Weapon.AmmoGive1 6
	Weapon.AmmoType1 "RocketAmmo"
	Weapon.AmmoType2 "RocketRounds"
    Inventory.PickupSound "ROCKPKUP"
    +WEAPON.NOAUTOAIM
	+FORCEXYBILLBOARD
	+WEAPON.AXEBLOOD
	+WEAPON.NO_AUTO_SWITCH
	Inventory.PickupMessage "$GOTLAUNCHER"
	States
	{
	
	Steady:
	TNT1 A 1
	Goto Ready
	Ready:
	    TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "PuristGun")
        TNT1 A 8 A_PlaySound("RLANDRAW")
        MISS ABCDEFG 1 A_JumpIfInventory("GoFatality", 1, "Steady")
        TNT1 AAAAA 0
        //TNT1 A 0 A_JumpIfInventory("RocketRounds",1,2)
        //Goto Reload
        TNT1 AAAA 0
        TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
        TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		MISG A 1 A_WeaponReady
        Goto Ready+11
	Deselect:
        MISS GFEDCBA 1
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 AAAAAAAAAAAAAAAAAA 0 A_Lower
		TNT1 A 1
		Wait
	Select:
	
	TNT1 A 0 A_Takeinventory("FistsSelected",1)
	TNT1 A 0 A_Takeinventory("SawSelected",1)
	TNT1 A 0 A_Takeinventory("ShotgunSelected",1)
	TNT1 A 0 A_Takeinventory("SSGSelected",1)
	TNT1 A 0 A_Takeinventory("MinigunSelected",1)
	TNT1 A 0 A_Takeinventory("PlasmaGunSelected",1)
	//TNT1 A 0 A_Giveinventory("RocketLauncherSelected",1)
	TNT1 A 0 A_Giveinventory("RocketLauncherSelected",1)
    TNT1 A 0 A_Takeinventory("GrenadeLauncherSelected",1)
	TNT1 A 0 A_Takeinventory("BFGSelected",1)
	TNT1 A 0 A_Takeinventory("BFG10kSelected",1)
	TNT1 A 0 A_Takeinventory("RailGunSelected",1)
	TNT1 A 0 A_Takeinventory("SubMachineGunSelected",1)
	TNT1 A 0 A_Takeinventory("RevenantLauncherSelected",1)
	TNT1 A 0 A_Takeinventory("LostSoulSelected",1)
	TNT1 A 0 A_Takeinventory("FlameCannonSelected",1)
	TNT1 A 0 A_Takeinventory("HasBarrel",1)
	TNT1 A 0 A_TakeInventory("TossGrenade", 1)
	
		MISG A 0 A_Raise
		Wait
	Fire:
        TNT1 A 0 A_JumpIfInventory("RocketRounds",1,2)
        Goto Reload
        TNT1 AAAA 0

		TNT1 A 0 A_FireCustomMissile("RedFlareSpawn",-5,0,0,0)
        TNT1 A 0 A_PlaySound ("DSRFIRE")
		TNT1 A 0 BRIGHT A_FireCustomMissile("Alerter")
		MISF A 1 BRIGHT A_FireCustomMissile("Rocket", 0, 1, 0, -10)
		TNT1 A 0 A_Takeinventory("RocketRounds",1)
        //TNT1 A 0 ACS_Execute(374, 0, 0, 0, 0)
		MISF BCD 1 BRIGHT
        MISF E 1 A_SetPitch(-6.0 + pitch)
        MISG BCD 2 A_SetPitch(2.0 + pitch)
		MISG EF 2
        MISG A 0
        TNT1 A 0 A_Refire
        Goto Ready+11


    Reload:
		MISG A 1 A_WeaponReady
		MISG A 6
		TNT1 A 0 A_Takeinventory("Reloading",1)
        TNT1 A 0 A_JumpIfInventory("RocketRounds",6,"NoNeedToReload")
        TNT1 A 0 A_JumpIfInventory("RocketAmmo",1,3)
        Goto Ready+18
        TNT1 AAAA 0
        TNT1 A 0 A_PlaySound("Reload")
		TNT1 A 0 A_SetAngle(-2 + angle)
        TNT1 A 0 A_SetPitch(+2 + pitch)
        MISR ABCDDE 1 
        TNT1 A 0 A_FireCustomMissile("RocketCaseSpawn",-30,0,-4,-4)
        MISR EFFGG 1
		TNT1 A 0 A_SetAngle(+2 + angle)
        TNT1 A 0 A_SetPitch(-2 + pitch)
		MISR HHIIJJKLM 1
		TNT1 A 0 A_SetAngle(+1 + angle)
        MISR MMMNOP 1
		TNT1 A 0 A_SetAngle(-1 + angle)
		MISR Q 3
		MISR PR 1
		MISG DEF 2
		MISG A 6
		Goto FinishReload
		
		FinishReload:
		TNT1 AAAAAA 0
		TNT1 A 0 A_JumpIfInventory("RocketRounds",6,"NoNeedToReload")
		TNT1 A 0 A_JumpIfInventory("RocketAmmo",1,3)
		Goto Ready+6
        TNT1 AAAAAA 0
		TNT1 A 0 A_Giveinventory("RocketRounds",1)
		TNT1 A 0 A_Takeinventory("RocketAmmo",1)
		Goto FinishReload
		
		TNT1 AAAAAAAAAA 0
		
		NoNeedToReload:
        MISG A 1 A_Refire
        Goto Ready+11


	Spawn:
		LAUN A -1
		Stop

 	
    DoKick:
	    TNT1 A 0
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("ADSmode",1)
		NULL A 0 A_JumpIf (momZ > 0, "AirKick")
		NULL A 0 A_JumpIf (momZ < 0, "AirKick")
		NULL A 0 A_JumpIf (pitch > 32, "LowKickChecker1")
		Goto InitializeNormalKick
		
		LowKickChecker1:
		TNT1 A 0
	    NULL A 0 A_JumpIf (pitch > 90, "InitializeNormalKick")
		RIFF A 0 A_FireCustomMissile("KickAttackDetectDowned", 0, 0, 0, 0)
		
		InitializeNOrmalKick:
        TNT1 A 0 A_jumpifinventory("PowerStrength",1,"BerserkerKick")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		RLKI BCD 1
		RIFF A 0 A_FireCustomMissile("KickAttack", 0, 0, 0, -7)
        RLKI H 5
		KICK A 0 A_Takeinventory("Kicking",1)
		RLKI I 1
		RLKI GFEDCBA 1 
		TNT1 A 0 SetPlayerProperty(0,0,0)
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+11
    BerserkerKick:
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 SetPlayerProperty(0,1,0)
		RLKI BCD 1
        RIFF A 0 A_FireCustomMissile("SuperKickAttack", 0, 0, 0, -7)
        RLKI H 5
		KICK A 0 A_Takeinventory("Kicking",1)
		RLKI I 1
		RLKI GFEDCBA 1 
		TNT1 A 0 SetPlayerProperty(0,0,0)
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+11
	
	AirKick:
	    TNT1 A 0 A_jumpifinventory("PowerStrength",1,"SuperAirKick")
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-6)
		KICK JKLMN 1
        RIFF A 0 A_FireCustomMissile("AirKickAttack", 0, 0, 0, -31)
        KICK O 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK PQRST 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+11
		
	SuperAirKick:
		TNT1 A 0 A_PlaySound("KICK")
		TNT1 A 0 A_Recoil (-6)
		KICK JKLMN 1
        RIFF A 0 A_FireCustomMissile("SuperAirKickAttack", 0, 0, 0, -31)
        KICK O 3
		KICK A 0 A_Takeinventory("Kicking",1)
		KICK PQRST 2
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		Goto Ready+11
	
	Taunt:
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("Taunting",1)
		TNT1 A 0 A_JumpIfInventory("RealismMode", 1, "CheckGrab")
        TNT1 A 10
		FUCK A 1
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", 0, 0, -1, 0)
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", -9, 0, -1, 0)
		TNT1 A 0 BRIGHT A_FireCustomMissile("Taunter", 9, 0, -1, 0)
        FUCK B 1 A_PlaySound("FUCK", 2)
        FUCK CD 1 A_AlertMonsters
		FUCK E 15 A_Takeinventory("Taunting",1)
        FUCK DCBA 1
        TNT1 A 10
		Goto Ready
	Salute:
	    TNT1 A 0 SetPlayerProperty(0,1,0)
		TNT1 A 0 A_ALertMonsters
		SALU ABCDEDCDEDCDEDCBA 4
		TNT1 A 0 A_TakeInventory("Salute1",1)
		TNT1 A 0 A_TakeInventory("Salute2",1)
		TNT1 A 0 SetPlayerProperty(0,0,0)
		Goto Ready
		
	CheckGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfTargetInLOS("CheckDistanceGrab")
		Goto Ready+6
	CheckDistanceGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfCloser(100, "Grab")
		Goto Ready+6
	CheckIfCanGrab:
	    TNT1 A 0 
		TNT1 A 0 A_JumpIfInTargetInventory("CanGrab", 1, "Grab")
		Goto Ready+6	
	Grab:
	    PKUP ABC 2
		TNT1 A 0 A_CustomMissile("PickupProjectile")
		PKUP DEF 2
		Goto Ready
		
	PuristGun:
		TNT1 A 1
		TNT1 A 0 A_GiveInventory("ClassicRocketLauncher", 1)
		TNT1 A 0 A_TakeInventory("Rocket_Launcher", 1)
		TNT1 A 10
		Goto Ready	
	TossGrenade:	
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_JumpIfInventory("GrenadeAmmo", 1, 1)
		Goto NoGrenade
		GRTH ABCD 1
		TNT1 A 0 A_GiveInventory("FiredGrenade", 1)
		TNT1 A 0 A_PLaySound ("GRNPIN")
		GRTH EEFG 1
		TNT1 A 0 A_PLaySound ("GRNTOSS")
		GRTH HI 1
		TNT1 A 0 A_TakeInventory("GrenadeAmmo", 1)
		TNT1 A 0 A_FireCustomMissile("HandGrenade", random(-2,2), 0, 0, 0, 0, 0)
	    TNT1 A 0 A_TakeInventory("FiredGrenade", 1)
		GRTH JKLM 1
		TNT1 A 1 
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		Goto Ready	
	NoGrenade:
		TNT1 A 0
		TNT1 A 0 A_Print("No Grenades Left.")
		Goto REady+11	
	}
}

//Actor RocketRounds: Inventory
//{
//inventory.maxamount 6
//}

ACTOR RocketRounds : Ammo
{
   Inventory.Amount 0
   Inventory.MaxAmount 6
   Ammo.BackpackAmount 0
   Ammo.BackpackMaxAmount 6
   Inventory.Icon "LAUNA0"
}












Actor TimeFreezer2 : PowerupGiver
{
  Inventory.Pickupmessage "Time Freezer!"
  Inventory.Icon "MEGAA0"
  Inventory.MaxAmount 0
  Inventory.UseSound "pickups/slowmo"
  Powerup.Type "TimeFreezer"
  Powerup.Duration 50
  Translation "128:143=48:63"
  +AUTOACTIVATE
  +INVENTORY.FANCYPICKUPSOUND
  States
  {
  Spawn:
    MEGA ABCD 4 bright
    Loop
  }
}

ACTOR PowerTimeFreezer2 : PowerTimeFreezer
{
  Powerup.Duration 2
}