
Actor CASSG : custominventory replaces supershotgun
{
	Radius 14
	Height 14
	+quiet
	-DONTGIB
	-SPECIAL
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 a_jumpif(CallAcs("DroppedWeapon",0,0,0) == 0,"ThisWasDropped")
		TNT1 A 0 A_ChangeFlag ("SPECIAL", 1)
		TNT1 A 1 a_jump (256, "Spawn1")
		Goto Spawn1
	Spawn1:
		TNT1 A 0
        TNT1 A 0 a_custommissile ("SharpShooterSprite",0,0,0,CMF_AIMDIRECTION)
        TNT1 A 0 a_custommissile ("BMSSGSprite",0,0,0,CMF_AIMDIRECTION)
        TNT1 A 0 a_custommissile ("KameBombSprite",0,0,0,CMF_AIMDIRECTION)
        TNT1 A 0 a_custommissile ("LinkedCandleSprite",0,0,0,CMF_AIMDIRECTION)
		DSCR C -1 Bright
		Wait
	Pickup:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory ("IamArtificer",1,"GiveArtificer")
		TNT1 A 0 A_JumpIfInventory ("IamBlastmaster",1,"GiveBlastmaster")
		TNT1 A 0 A_JumpIfInventory ("IamTechMonk",1,"GiveTechMonk")
		TNT1 A 0 A_JumpIfInventory ("IamPastLinked",1,"GivePastLinked")
		TNT1 A 1
		stop
		
//Artificer
	GiveArtificer:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("SharpShooter",1,"CollabAmmocheck")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("SharpShooter", 1)
		TNT1 A 0 a_giveinventory ("Shell", 8)
		TNT1 A 0 a_print ("Use the altfire to detonate active caltrops!")
		stop
	CollabAmmocheck:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("shell",0,"Noget")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("SharpShooter", 1)
		TNT1 A 0 a_giveinventory ("Shell", 8)
		stop
	
//BlastMaster Mk. 2
	GiveBlastMaster:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("BMSSG",1,"BlastAmmocheck")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("BMSSG", 1)
		TNT1 A 0 a_giveinventory ("Shell", 8)
		stop
	BlastAmmocheck:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("shell",0,"Noget")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("BMSSG", 1)
		TNT1 A 0 a_giveinventory ("Shell", 8)
		stop
	
//Tech Monk
	GiveTechMonk:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("KameBombModule",1,"MonkAmmocheck")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("Shell", 8)
		TNT1 A 0 a_giveinventory ("KameBombModule", 1)
		TNT1 A 0 a_print ("Press reload to launch bomb, press again to detonate!")
		stop
	MonkAmmocheck:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("shell",0,"Noget")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("Shell", 8)
		stop

//Past Linked
	GivePastLinked:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("MagicCandle",1,"CandleUpgrade")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("MagicCandle", 1)
		TNT1 A 0 a_giveinventory ("Shell", 8)
		stop
	CandleUpgrade:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("RedCandle",1,"LinkedAmmoCheck")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("RedCandle", 1)
		TNT1 A 0 a_giveinventory ("Shell", 8)
		stop
	
	LinkedAmmocheck:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("shell",0,"Noget")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("Shell", 8)
		stop

	Noget:
		TNT1 A 0
		TNT1 A 0
		fail
	ThisWasDropped:
		TNT1 A 0
		TNT1 A 1 A_SpawnItemEx("CASSGDrop", 0,0,0, 0,0,0, 0, SXF_NOCHECKPOSITION | SXF_TRANSFERPOINTERS, 0, tid)
		Stop
	}
}

Actor CASSGDrop : CASSG
{
	+DROPPED
	+SPECIAL
	states
	{
	spawn:
		TNT1 A 0
		TNT1 A 1 a_jump (256, "Spawn1")
		goto Spawn1

//Artificer
	GiveArtificer:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("SharpShooter",1,"CollabAmmocheck")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("SharpShooter", 1)
		TNT1 A 0 a_giveinventory ("Shell", 4)
		TNT1 A 0 a_print ("Use the altfire to detonate active caltrops!")
		stop
	CollabAmmocheck:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("shell",0,"Noget")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("SharpShooter", 1)
		TNT1 A 0 a_giveinventory ("Shell", 4)
		stop
	
//BlastMaster Mk. 2
	GiveBlastMaster:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("BMSSG",1,"BlastAmmocheck")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("BMSSG", 1)
		TNT1 A 0 a_giveinventory ("Shell", 4)
		stop
	BlastAmmocheck:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("shell",0,"Noget")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("BMSSG", 1)
		TNT1 A 0 a_giveinventory ("Shell", 4)
		stop
	
//Tech Monk
	GiveTechMonk:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("KameBombModule",1,"MonkAmmocheck")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("Shell", 4)
		TNT1 A 0 a_giveinventory ("KameBombModule", 1)
		TNT1 A 0 a_print ("Press reload to launch bomb, press again to detonate!")
		stop
	MonkAmmocheck:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("shell",0,"Noget")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("Shell", 4)
		stop

//Past Linked
	GivePastLinked:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("MagicCandle",1,"CandleUpgrade")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("MagicCandle", 1)
		TNT1 A 0 a_giveinventory ("Shell", 4)
		stop
	CandleUpgrade:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("RedCandle",1,"LinkedAmmoCheck")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("RedCandle", 1)
		TNT1 A 0 a_giveinventory ("Shell", 4)
		stop
	
	LinkedAmmocheck:
		TNT1 A 0
		TNT1 A 0
		TNT1 A 0 a_jumpifinventory ("shell",0,"Noget")
		TNT1 A 0 ACS_NamedExecuteAlways("WeaponLog",0,2,0,0)	
		TNT1 A 0 a_setblend (FFFF00,0.1,3)
		TNT1 A 0 a_playsound ("misc/weaponget",CHAN_ITEM)
		TNT1 A 0 a_giveinventory ("Shell", 4)
		stop
	}
}



//===============================================================================
//===============================================================================
//WEAPON SPRITES
//===============================================================================
//===============================================================================


actor SharpShooterSprite : CAWeaponSprite
{
    VisibleToPlayerClass Artificer
	scale 1
    States
    {
	spawn:
		TNT1 A 0
		SSPU 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)
		SSPU A 1 bright
		goto death
	death:
		TNT1 A 1
		stop
    }
}

actor BMSSGSprite : CAWeaponSprite
{
    renderstyle translucent
	XScale 1
	Yscale 0.70
	alpha 0.50
    VisibleToPlayerClass blastmaster
    States
    {
	spawn:
		TNT1 A 0
		BSGP 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)
		BSGP A 1 bright
		goto death
	death:
		TNT1 A 1
		stop
    }
}

actor KameBombSprite : CAWeaponSprite
{
    VisibleToPlayerClass Techmonk
	scale 1
    States
    {
	spawn:
		TNT1 A 0
		TKPU B 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)
		TKPU B 1 bright
		goto death
	death:
		TNT1 A 1
		stop
    }
}

actor KameBombModule : inventory
{inventory.maxamount 1}


actor LinkedCandleSprite : CAWeaponSprite
{
    VisibleToPlayerClass PastLinked
	scale 1
    States
    {
	spawn:
		TNT1 A 0
		PLPU C 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)
		PLPU C 1 bright
		goto death
	death:
		TNT1 A 1
		stop
    }
}

actor MagicCandle : inventory
{inventory.maxamount 1}

actor RedCandle : inventory
{inventory.maxamount 1}

