// --------------------------------------------------------------------------
//
//	Hellish Missile Launcher
//
// --------------------------------------------------------------------------

ACTOR U_HellishMissileLauncher : BaseWeapon replaces HellishMissileLauncher
{
	Weapon.AmmoUse 0
	Weapon.AmmoGive 8
	Weapon.AmmoType "HellRocketAmmo"
	Weapon.SelectionOrder 6800
	Height 20
	Obituary "%o was found by %k's Hellish Missile Launcher."
    Inventory.PickupSound "BFGREADY"
	Inventory.PickupMessage "You got the Revenant's Hellish Missile Launcher!"
	+WEAPON.NO_AUTO_SWITCH
	-WEAPON.NOAUTOAIM
	-WEAPON.NOAUTOFIRE
	-WEAPON.CHEATNOTWEAPON
	tag "Revenant Missile Launcher"
	States
	{
    Spawn:
        FATB D -1
        Stop
		
	Ready:
		TNT1 A 0 A_PlaySound("CHGNPKUP")
	    RVCS HGFEDCBA 1
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
	Ready1:
	Ready2:
        TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        TNT1 A 0 A_JumpIfInventory("Taunting",1,"Taunt")
		TNT1 A 0 A_JumpIfInventory("Salute1", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("Salute2", 1, "Salute")
		TNT1 A 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
		RVCG A 2 A_WeaponReady
		Goto Ready2
		
	Deselect:
		RVCS ABCDEFGH 1
		TNT1 A 0 A_TakeInventory("Reloading", 1)
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_TakeInventory("Unloading", 1)
		TNT1 A 0 A_Lower
		Wait
		
	Select:
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "PuristGun")
		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_Takeinventory("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_Giveinventory("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)
		TNT1 A 2
		TNT1 A 0 A_Raise
		Wait
		
	PuristGun:
		TNT1 A 0 A_TakeInventory("HellishMissileLauncher", 1)
		Goto Deselect
		
	Fire:
		//TNT1 A 0 A_JumpIfTargetInLOS("OpenFire", 0, JLOSF_COMBATANTONLY | JLOSF_ALLYNOJUMP)
		//RVCG J 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
	    //Goto Ready2
		TNT1 A 0 A_JumpIfInventory("HellRocketAmmo", 1, 1)
		Goto Ready2
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_JumpIfInventory("FireSeq", 1, "OpenFire2")
		
	OpenFire:
        RVCG B 2 BRIGHT
		TNT1 A 0 A_FireCustomMissile("Alerter", 0, 0, -1, 0)
		TNT1 A 0 A_FireCustomMissile("SeekingRevenantRockets", frandom(4,-4), 0, -10, 0)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAss", 0, 0, 0, 0)
		TNT1 A 0 A_TakeInventory("HellRocketAmmo", 1)
		RVCG CDE 2
		RVCG A 6
		TNT1 A 0 A_GiveInventory("FireSeq", 1)
		Goto Ready2
		
	OpenFire2:
	    RVCG F 2 BRIGHT
		TNT1 A 0 A_FireCustomMissile("Alerter", 0, 0, -1, 0)
		TNT1 A 0 A_FireCustomMissile("SeekingRevenantRockets", frandom(4,-4), 0, 10, 0)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAss", 0, 0, 0, 0)
		TNT1 A 0 A_TakeInventory("HellRocketAmmo", 1)
		RVCG GHI 2
		RVCG A 6
		TNT1 A 0 A_TakeInventory("FireSeq", 1)
		Goto Ready2

	AltFire:
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_JumpIfInventory("HellRocketAmmo", 1, 1)
		Goto Ready2
		TNT1 A 0 A_JumpIfInventory("FireSeq", 1, "AltFire2")
        RVCG B 2 BRIGHT
		TNT1 A 0 A_FireCustomMissile("Alerter", 0, 0, -1, 0)
		TNT1 A 0 A_FireCustomMissile("RevenantRockets", frandom(4,-4), 0, -10, 0)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAss", 0, 0, 0, 0)
		TNT1 A 0 A_TakeInventory("HellRocketAmmo", 1)
		RVCG CDE 2
		RVCG A 4
		TNT1 A 0 A_GiveInventory("FireSeq", 1)
		Goto Ready2
		
	AltFire2:
	    RVCG F 2 BRIGHT
		TNT1 A 0 A_FireCustomMissile("Alerter", 0, 0, -1, 0)
		TNT1 A 0 A_FireCustomMissile("RevenantRockets", frandom(4,-4), 0, 10, 0)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAss", 0, 0, 0, 0)
		TNT1 A 0 A_TakeInventory("HellRocketAmmo", 1)
		RVCG GHI 2
		RVCG A 4
		TNT1 A 0 A_TakeInventory("FireSeq", 1)
		Goto Ready2

	KickFlash:
		RVCG A 16
		Stop
		
	AirKickFlash:
		RVCG A 18
		Stop
		
	TauntFlash:
		RVCG A 38
		Stop
		
	GrenadeFlash:
		RVCG A 26
		Stop
		
    Taunt:
		TNT1 A 0 A_GunFlash("TauntFlash")
        TNT1 A 5
		TNT1 A 5 A_PlaySound("FUCK", 2)
		FUCK K 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 LMN 1 A_AlertMonsters
		FUCK O 19 A_Takeinventory("Taunting",1)
        FUCK NMLK 1
		Goto Ready2	
	}
}

ACTOR HellRocketAmmo : Ammo
{
	Inventory.Amount 1
	Inventory.MaxAmount 100
	Ammo.BackpackAmount 0
	Ammo.BackpackMaxAmount 200
	Inventory.Icon "FATBD0"
	States
	{
	Spawn:
		FATB A -1     
	}
}

ACTOR SeekingRevenantRockets
{
	Game Doom
	SpawnID 53
	PROJECTILE
	Scale 1.0
	Damagetype ExplosiveImpact
	Decal "Scorch"
	+SEEKERMISSILE
	Damage 25
	Speed 20
	Height 4
	Radius 4
	SeeSound "skeleton/attack"
	DeathSound "skeleton/tracex"
	States
	{
	Spawn:
	    TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		FATB AB 1 BRIGHT A_SpawnItem("RedFlareSmall",0,0)
		TNT1 A 0 A_SpawnItemEx("RevenantProjectileTrails", 0, 0, 0, 0, 0, 0, 0, 128) 
		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_SeekerMissile (4, 8, SMF_PRECISE | SMF_LOOK )
		Loop
	SpawnUnderwater:
		FATB A 1 BRIGHT A_SpawnItem("RedFlareSmall",0,0)
		TNT1 A 0 A_CustomMissile ("BUBULZ", 0, 0, random (0, 360), 2, random (0, 180))
		FATB B 1 BRIGHT A_SpawnItem("RedFlareSmall",0,0)
		TNT1 A 0 A_CustomMissile ("BUBULZ", 0, 0, random (0, 360), 2, random (0, 180))
		TNT1 A 0 A_SeekerMissile (4, 8, SMF_PRECISE | SMF_LOOK )
		Goto Spawn
	XDeath:
	Death:
		TNT1 A 0
	    TNT1 A 0 Radius_Quake (2, 8, 0, 15, 0)
		TNT1 A 0 A_SpawnItem("WhiteShockwaveSmall")
		TNT1 AAA 0 A_CustomMissile ("ExplosionSmoke", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_SpawnItemEx ("UnderwaterExplosion",0,0,0,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 Bright A_Explode(25, 120, 1)
		TNT1 A 0 A_SpawnItemEx ("ExplosionFlareSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION,0)
        TNT1 A 0 A_SpawnItemEx("ExplosionParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128)
        TNT1 AAAAA 0 A_CustomMissile ("SmallExplosionFlames", 0, 0, random (0, 360), 2, random (0, 360))
		TNT1 A 0 A_ChangeFlag("SHOOTABLE", 0)
		TNT1 A 8
		Stop
	}
}

ACTOR RevenantRockets : SeekingRevenantRockets
{
	-SEEKERMISSILE
	States
	{
	Spawn:
	Spawn1:
	    TNT1 A 0 A_JumpIf(waterlevel > 1, "SpawnUnderwater")
		FATB AB 1 BRIGHT A_SpawnItem("YellowFlareSmall",0,0)
		TNT1 A 0 A_SpawnItemEx("RevenantProjectileTrails", 0, 0, 0, 0, 0, 0, 0, 128) 
		TNT1 A 0 A_SpawnItem ("OldschoolRocketSmokeTrail2")
		TNT1 A 0 A_CustomMissile ("OldschoolRocketSmokeTrail2", 2, 0, random (160, 210), 2, random (-30, 30))
		Loop
	SpawnUnderwater:
		FATB A 1 BRIGHT A_SpawnItem("YellowFlareSmall",0,0)
		TNT1 A 0 A_CustomMissile ("BUBULZ", 0, 0, random (0, 360), 2, random (0, 180))
		FATB B 1 BRIGHT A_SpawnItem("YellowFlareSmall",0,0)
		TNT1 A 0 A_CustomMissile ("BUBULZ", 0, 0, random (0, 360), 2, random (0, 180))
		Goto Spawn
	}
}