//==ROCKET LAUNCHER==
//Blaz gets the wave buster, a powerful charge cannon capable
//of launching a devastating spread gun attack
//Doomslayer is given the Wrath Caster, a rocket launcher that fires
//missiles powered by angry spirits, which can be unleashed
//by detonating them in the air manually

Actor GMOTARocketLauncher : custominventory replaces RocketLauncher
{
	Radius 14
	Height 14
	+quiet
    +DONTGIB
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 a_custommissile ("BlazWaveSprite",0,0,0,CMF_AIMDIRECTION)
		TNT1 A 0 a_custommissile ("DoomslayerLauncherSprite",0,0,0,CMF_AIMDIRECTION)
	spawn1:
		ITRO ABCDEFGH 1 Bright
		loop
	Pickup:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("IamLordBlaz",1,"BlazWave")
		TNT1 A 0 A_JumpIfInventory ("IamDoomSlayer",1,"DoomSlayerLauncher")
		TNT1 A 1
		stop
	BlazWave:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_setblend (FFFF00,0.1,5)
		TNT1 A 0 a_playsound ("powerups/upgrade",CHAN_ITEM)
		TNT1 A 0 a_jumpifinventory ("waveparts", 1, "nohelp")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,4,0,0)			
		//TNT1 A 0 a_log ("Wave buster parts!")
		TNT1 A 0 a_print ("Wave buster enabled, press reload to charge")
		TNT1 A 0 a_giveinventory ("waveparts",1)
		TNT1 A 1 
		stop
	nohelp:
		TNT1 A 0
		TNT1 A 0 a_giveinventory ("waveparts", 1)
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,4,0,0)			
		TNT1 A 1 a_giveinventory ("bulletgem", 10)
		stop
	DoomslayerLauncher:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,4,0,0)			
		//TNT1 A 0 a_log ("You got the wrath caster!")
		TNT1 A 0 a_playsound ("misc/w_pkup",CHAN_ITEM)
		TNT1 A 0 a_setblend (FFFF00,0.1,5)
		TNT1 A 0 a_jumpifinventory ("Gotwrathcaster", 1, "nohelpslayer")
		TNT1 A 0 a_giveinventory ("wrathrockets",5)
		TNT1 A 0 a_print ("Press altfire to detonate mid-air missiles")
		TNT1 A 0 a_giveinventory ("wrathcaster",1)
		TNT1 A 0 a_giveinventory ("GotWrathCaster",1)
		TNT1 A 1
		stop
	nohelpSlayer:
		TNT1 A 0
		TNT1 A 1 a_giveinventory ("wrathrockets",5)
		stop
	}
}

actor waveparts : inventory
{inventory.maxamount 3}

actor GotWrathcaster : inventory
{
	+UNTOSSABLE
	inventory.maxamount 1
}


actor BlazWaveSprite : GMOTAweaponsprite
{
    VisibleToPlayerClass LordBlaz
    States
    {
	spawn:
		TNT1 A 0
		WBUG A 1 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn",AAPTR_TARGET)
		WBUG A 1 bright
		goto death
	death:
		TNT1 A 1
		stop
    }
}

actor DoomSlayerLauncherSprite : GMOTAweaponsprite
{
    VisibleToPlayerClass DoomSlayer
    States
    {
	spawn:
		TNT1 A 0
		WCPU A 1 bright
		TNT1 A 0 a_warp (AAPTR_TARGET,0,0,0,0,WARPF_INTERPOLATE|WARPF_NOCHECKPOSITION)
		TNT1 A 0 a_checkflag ("SPECIAL","spawn",AAPTR_TARGET)
		WCPU A 1 bright
		goto death
	death:
		TNT1 A 1
		stop
    }
}
