ACTOR "Dual Black Tail" : Weapon 
{
	Weapon.SelectionOrder 23
	Weapon.BobStyle Normal
    Weapon.BobSpeed 1.4
    Weapon.BobRangeX 0.85
    Weapon.BobRangeY 0.6
    Weapon.AmmoUse 1
    Weapon.AmmoGive 64
    Weapon.AmmoType "Pistol Ammo"
    Weapon.AmmoUse2 1
    Weapon.AmmoGive2 0
    Weapon.AmmoType2 "Pistol Ammo"
    Obituary "%o was gattered by %k's Black Tail."
	Inventory.Pickupmessage "\cnBlack Tail!"
    Inventory.PickupSound "DukeNukem/PickWeapon"
	Scale 0.5
	+WEAPON.AMMO_OPTIONAL
	+WEAPON.ALT_AMMO_OPTIONAL
	+WEAPON.NOALERT
    States
    {
	Ready:
        BA2T A 1 A_WeaponReady
        BA2T A 0 A_JumpIfInventory("Waiting",15,"Knuckles")
		BA2T AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1 A_WeaponReady
		BA2T A 0 A_GiveInventory("Waiting",1)
        Loop
	Knuckles:
        BA2T AAAAA 1 A_Lower
        BA2T A 0 A_Lower
		KNUK A 0 A_PlaySound("DukeNukem/Waiting",8)
        KNUK A 0 A_TakeInventory("Waiting",15)
        KNUK A 1 Offset(0,120) 
		KNUK A 1 Offset(0,110)
		KNUK A 1 Offset(0,100)
		KNUK A 1 Offset(0,90)
		KNUK A 1 Offset(0,80)
		KNUK A 1 Offset(0,70)
		KNUK A 1 Offset(0,60)
		KNUK A 1 Offset(0,50)
		KNUK A 1 Offset(0,40)
		KNUK AAABBB 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		KNUK C 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
        KNUK C 0 A_PlaySound("Duke/KNuckles",5)
		KNUK C 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		KNUK C 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
        KNUK DDDCCCBBBAAA 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)  
        KNUK A 1 Offset(0,40)
		KNUK A 1 Offset(0,50)
		KNUK A 1 Offset(0,60)
		KNUK A 1 Offset(0,70)
		KNUK A 1 Offset(0,80)
		KNUK A 1 Offset(0,90)
		KNUK A 1 Offset(0,100)
		KNUK A 1 Offset(0,110)
		KNUK A 1 Offset(0,120)
        Goto Select
    Deselect:
        BA2T AAAAA 1 A_Lower
		BA2T A 0 A_TakeInventory("Waiting",15)
        BA2T A 0 A_Lower
        Goto Deselect+4
    Select:
        BA2T A 1 A_Raise
		TNT1 A 0 A_TakeInventory("CheckWeaponMightyFoot",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponPistol",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponDualPistol",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponBlackTail",1)
        TNT1 A 0 A_GiveInventory("CheckWeaponDualBlackTail",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponDesertEagle",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponShotgun",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponSuperShotgun",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponAssaultShotgun",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponExplosiveShotgun",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponChaingun",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponLMG2028",1)
		TNT1 A 0 A_TakeInventory("CheckWeaponMinigun",1)
		TNT1 A 0 A_TakeInventory("CheckWeaponExplosiveChaingun",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponRPG",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponShockCannon",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponPipeBomb",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponLaserTripBomb",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponShrinker",1)
		TNT1 A 0 A_TakeInventory("CheckWeaponShrinker2",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponExpander",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponExecutor",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponDevastator",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponLaserChaingun",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponRailgun",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponFreezethrower",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponIncinerator",1)
        TNT1 A 0 A_TakeInventory("CheckWeaponPulsethrower",1)
	    BA2T A 0 A_PlaySound("BlackTail/Select",6)
        BA2T A 0 A_Raise
        BA2T A 1 A_Raise
		BA2T A 0 A_PlaySound("BlackTail/Select",9)		
        BA2T A 0 A_Raise
        BA2T A 1 A_Raise
        BA2T A 0 A_Raise
        BA2T A 1 A_Raise
        BA2T A 0 A_Raise
        BA2T A 1 A_Raise
        BA2T A 0 A_Raise
        BA2T AAAAA 1 A_Raise
        BA2T AAAAAAAAAA 2 A_Raise
        Loop
    Fire:
        BA2T A 0 A_JumpIfNoAmmo("FireFail")
		BA2T A 0 A_JumpIfInventory("DualBlackTailReload",24,"Reload")
        BA2T A 0 A_JumpIfInventory("DualCheck2",1,"FireLeft")
        BA2T A 0 A_TakeInventory("Waiting",15)    
        BA2T A 0 A_GunFlash
		BA2T A 0 A_FireBullets(Random(2,3),Random(3,2),-1,Random(19,23),"BulletDualBlackTail",FBF_NORANDOM)
		BA2T B 0 A_PlaySound("BlackTail/Shoot",5)
		BA2T B 0 A_AlertMonsters
        BA2T B 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
		BA2T B 0 A_TakeInventory("Pistol Ammo",1)		
		BA2T C 0 A_FireCustomMissile("9mmSpawnerRight",0,0,0,-1)
		BA2T C 0 A_GiveInventory("DualCheck2",1)
        BA2T C 0 A_GiveInventory("DualBlackTailReload",1)
		BA2T C 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
        BA2T AAA 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
        Goto Ready
    FireLeft:
	    BA2T A 0 A_JumpIfInventory("DualBlackTailReload",24,"Reload")
        BA2T A 0 A_TakeInventory("Waiting",15)
        BA2T A 0 A_GunFlash
		BA2T A 0 A_FireBullets(Random(2,3),Random(2,3),-1,Random(19,23),"BulletDualBlackTail",FBF_NORANDOM)
		BA2T D 0 A_PlaySound("BlackTail/Shoot",5)
		BA2T D 0 A_AlertMonsters
        BA2T D 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
		BA2T D 0 A_TakeInventory("Pistol Ammo",1)	
		BA2T D 0 A_TakeInventory("DualCheck2",1)
		BA2T D 0 A_GiveInventory("DualBlackTailReload",1)
		BA2T E 0 A_FireCustomMissile("9mmSpawnerLeft",0,0,0,-1)
		BA2T E 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
        BA2T AAA 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
        Goto Ready
    Reload:  
	    BA2T F 0 A_PlaySound("BlackTail/Reload",6)
        BA2T FFF 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
        BA2T GGGHHHIIIJJJKKKLLLMMM 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
		BA2T N 0 A_PlaySound("BlackTail/Reload",6)
        BA2T NNNOOO 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
        BAST FFFGGGHHH 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)  
		BAST I 0 A_TakeInventory("DualBlackTailReload",24)
		BAST III 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)  
        BA2T OOONNN 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
        Goto Ready
    Flash2:
	    BA2F D 0 A_FireCustomMissile("DukeFlashPistol",0,0,0) 
		BA2F D 0 A_Light2 
		BA2F D 1 Bright A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
		BA2F E 0 A_FireCustomMissile("DukeFlashPistol",0,0,0) 
		BA2F E 0 A_Light1 
		BA2F E 1 Bright A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
        BA2F E 0 A_Light0
        Goto LightDone
    Flash:
        BA2F B 0 A_JumpIfInventory("DualCheck2",1,"Flash2")
		BA2F B 0 A_FireCustomMissile("DukeFlashPistol",0,0,0) 
		BA2F B 0 A_Light2 
		BA2F B 1 Bright A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
		BA2F C 0 A_FireCustomMissile("DukeFlashPistol",0,0,0) 
		BA2F C 0 A_Light1 
		BA2F C 1 Bright A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
        BA2F C 0 A_Light0
        Goto LightDone
	AltFire:
		BOOT C 0 A_JumpIfInventory("PowerStrength",1,22)
		BOOT C 0 A_GunFlash
		BOOT C 0 ACS_ExecuteAlways(500,0,FAS_ActorKick)
		BOOT CCCCCC 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
		BOOT C 0 A_CustomPunch(Random(26,30),0,0,"MightyBootPuff")
		BOOT C 0 A_TakeInventory("Waiting",15)
        BOOT DDDDD 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
        BOOT CCCCC 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
        BOOT C 0 A_Refire
        Goto Ready  
		BOOT C 0 ACS_ExecuteAlways(500,0,FAS_ActorKick)
		BOOT C 0 A_GunFlash
		BOOT CCCCCC 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
		BOOT C 0 A_CustomPunch(10*Random(26,30),0,0,"MightyBootPuff")
		BOOT C 0 A_TakeInventory("Waiting",15)
        BOOT DDDDD 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
        BOOT CCCCC 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
        BOOT C 0 A_Refire
        Goto Ready	
    AltFlash:  
        BA2T AAAAAAAAAAAAAAAAA 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
        Stop
	FireFail:
	    BA2T A 0 A_PlaySound("Pistol/Fail",6)
		BA2T A 0 A_TakeInventory("Waiting",15)
		BA2T AAAAAAAAAA 1 A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH) 
        Goto Ready	
	Spawn:
		TNT1 A 0		
		TNT1 A 1 A_Jump(256,"Spawn1","Spawn2")
		Stop
	Spawn1:	
        BATP A 1
        Stop
	Spawn2:	
        BATP B 1
        Stop
    }
}

ACTOR DualBlackTailReload : Ammo
{
	+IGNORESKILL
	Inventory.Amount 1
	Inventory.MaxAmount 24
}

ACTOR DualCheck2 : Inventory
{
    Inventory.Amount 0
    Inventory.MaxAmount 1
}