Actor StartAmmoDRevolver : Inventory
{
Inventory.MaxAmount 1
}

Actor DryDRevolver : Inventory
{
Inventory.MaxAmount 1
}

Actor RightChamber : Inventory
{
Inventory.MaxAmount 6
}

Actor LeftChamber : Inventory
{
Inventory.MaxAmount 6
}



// --------------------------------------------------------------------------
//
//	Revolver
//
// --------------------------------------------------------------------------

ACTOR DualRevolver : BrutalWeapon
{
	Weapon.AmmoUse1 0
	Weapon.AmmoUse2 0
	Weapon.AmmoGive1 6
	Weapon.AmmoGive2 0
	Weapon.AmmoType1 "RevolverBullets"
	Weapon.AmmoType2 "DualRevolverAmmo"
	Weapon.SelectionOrder 5000
	Weapon.Kickback 20
	-WEAPON.CHEATNOTWEAPON
	+POWERED_UP
	Weapon.SisterWeapon "TE_Revolver"
	Inventory.PickupSound "revolver/draw"
	Inventory.Pickupmessage "You got the Revolver!"
	Obituary "%o got shot into pieces by %k's revolvers."
	tag "Dual Revolvers"
	Scale 0.55 //0.6
	States
	{
	Spawn:
		RVIC A -1
		Stop

	Select:
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "PuristGun")
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,2)==0, "PuristGun")

//TNT1 A 0 A_JumpIfInventory("StartAmmoDRevolver",1,"Selected")
//TNT1 A 0 A_GiveInventory("DualRevolverAmmo",5)
//TNT1 A 0 A_GiveInventory("DualRevolverAmmo","TE_RevolverAmmo")
//TNT1 A 0 A_GiveInventory("LeftChamber",6)
//TNT1 A 0 A_GiveInventory("RightChamber",6)
//TNT1 A 0 A_GiveInventory("StartAmmoDRevolver",1)
//Selected:

		TNT1 A 0 A_Giveinventory("GoSpecial",1)
		TNT1 A 0 A_Takeinventory("Unloading",1)
		TNT1 A 0 A_Takeinventory("Reloading",1)
		//TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_Takeinventory("WeapSpecial",1)
		//TNT1 A 0 A_Takeinventory("SwitchFlashlight",1)
		TNT1 A 0 A_Takeinventory("Taunting",1)
	//	TNT1 A 0 A_Takeinventory("IdleCounter",200)
		TNT1 A 4 A_GunFlash
		TNT1 A 0 A_Raise
		Wait
		






	CheckSprint:
		2ref a 1 A_WeaponReady(WRF_NOFIRE)
		UNHG A 0 A_JumpIfInventory("IsStandingStill", 1, "Ready3")
		UNHG A 0 A_JumpIfInventory("IsTacticalClass", 1, "StartSprint")
		Goto Ready
		
	StartSprint:
		2ref a 1 A_WeaponReady(WRF_NOFIRE)
		UNHG A 0 A_Takeinventory("Zoomed",1)
		UNHG A 0 A_Takeinventory("ADSmode",1)
		UNHG A 0 A_ZoomFactor(1.0)
		UNHG A 0 A_JumpIfInventory("UsedStamina", 40, "StopSprintTired")
		
	Sprinting:	
		UNHG A 0 offset(-9,32) 
		UNHG A 0 offset(-9,32) A_JumpIfInventory("IsStandingStill", 1, "Ready3")
		UNHG A 0 offset(-9,32) A_JumpIfInventory("UsedStamina", 100, "StopSprintTired")
		PLAY A 0 offset(-9,32) ACS_ExecuteAlways(852, 0, 0, 0, 0)//Makes player faster.
		UNHG A 0 offset(-9,32) A_JumpIfInventory("PowerStrength", 1, 2)
		UNHG A 0 offset(-9,32) A_GiveInventory("UsedStamina", 12)
		UNHG A 0 offset(-9,32)
		2ref a 1 offset(-9,34) A_SetPitch(pitch -0.25) //-0.5
		2ref a 1 offset(-6,36) A_SetPitch(pitch -0.25)
		2ref a 1 offset(-3,38) A_SetPitch(pitch -0.25)
		2ref a 1 offset(0,38) A_SetPitch(pitch -0.25)
		2ref a 1 offset(3,36) A_SetPitch(pitch -0.25)
		2ref a 1 offset(6,34) A_SetPitch(pitch -0.25)
		2ref a 1 offset(9,32) A_SetPitch(pitch -0.25)
		UNHG A 0 offset(9,32) A_WeaponReady(WRF_NOBOB)
		UNHG A 0 A_JumpIfInventory("Kicking",1,"DoKick")
        UNHG A 0 A_JumpIfInventory("Taunting",1,"Taunt")
        UNHG A 0 A_JumpIfInventory("Reloading",1,"Reload")
		UNHG A 0 offset(-9,32) A_GiveInventory("UsedStamina", 12)
		UNHG A 0 offset(9,33) A_SpawnItemEx("FootStep", 0, 0, 2, 0, 0, -4)
		2ref a 1 offset(9,34) A_SetPitch(pitch +0.5)
		2ref a 1 offset(6,36) A_SetPitch(pitch +0.5)
		2ref a 1 offset(3,38) A_SetPitch(pitch +0.5)
		2ref a 1 offset(0,38) A_SetPitch(pitch +0.5)
		2ref a 1 offset(-3,36) A_SetPitch(pitch +0.5)
		2ref a 1 offset(-6,34) A_SetPitch(pitch +0.5)
		2ref a 1 offset(-9,32) A_SetPitch(pitch +0.5)
		UNHG A 0 offset(-9,32) A_WeaponReady(WRF_NOBOB)
		UNHG A 0 offset(-9,32) A_JumpIfInventory("IsRunning", 1, "Sprinting")
		Goto StopSprint
		
	StopSprintTired:
		2ref a 1
		PLAY A 0 ACS_ExecuteAlways(853, 0, 0, 0, 0)//Makes player slower.
		UNHG A 0 A_PlaySound("Tired", 2)
		UNHG A 0 A_TakeInventory("UsedStamina", 2)
		2ref a 5 A_WeaponReady
		UNHG A 0 A_TakeInventory("UsedStamina", 2)
		2ref a 5 A_WeaponReady
		UNHG A 0 A_TakeInventory("UsedStamina", 2)
		2ref a 5 A_WeaponReady
		UNHG A 0 A_TakeInventory("UsedStamina", 2)
		2ref a 5 A_WeaponReady
		UNHG A 0 A_TakeInventory("UsedStamina", 2)
		2ref a 5 A_WeaponReady
		Goto Ready2
	StopSprint:
		2ref a 1
		UNHG A 0 A_JumpIfInventory("UsedStamina", 60, "StopSprintTired")
		PLAY A 0 ACS_ExecuteAlways(853, 0, 0, 0, 0)//Makes player slower.
		Goto Ready2







	Deselect:
		TNT1 A 0 A_PlaySound("weapons/changing")
		TNT1 A 0 A_GunFlash("StopLeft")
		2RES ABCDEF 1
	//	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1028)==2, 2)
		TNT1 A 0 A_Takeinventory("PowerWeaponLevel2",1)
		TNT1 A 0 A_TakeInventory("Kicking",1)
		TNT1 A 0 A_Lower
		Wait
		
	StopLeft:
		TNT1 A 0
		Stop
		
	Ready:
		TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
		TNT1 A 0 A_PlaySound("revolver/draw", 5)

TNT1 A 0 A_GunFlash
TNT1 A 0 A_JumpIfInventory("StartAmmoDRevolver",1,"Ready1")

TNT1 A 0 A_JumpIfInventory("TE_RevolverAmmo", 6, "TE_6")
TNT1 A 0 A_JumpIfInventory("TE_RevolverAmmo", 5, "TE_5")
TNT1 A 0 A_JumpIfInventory("TE_RevolverAmmo", 4, "TE_4")
TNT1 A 0 A_JumpIfInventory("TE_RevolverAmmo", 3, "TE_3")
TNT1 A 0 A_JumpIfInventory("TE_RevolverAmmo", 2, "TE_2")
TNT1 A 0 A_JumpIfInventory("TE_RevolverAmmo", 1, "TE_1")

TNT1 A 0 A_GiveInventory("DualRevolverAmmo",6)
TNT1 A 0 A_GiveInventory("RightChamber",6)
//TNT1 A 0 A_GiveInventory("DualRevolverAmmo","TE_RevolverAmmo")
//TNT1 A 0 A_GiveInventory("LeftChamber","TE_RevolverAmmo")
TNT1 A 0 A_GiveInventory("StartAmmoDRevolver",1)
Goto Ready1

TE_1:
TNT1 A 0 A_GiveInventory("DualRevolverAmmo",6)
TNT1 A 0 A_GiveInventory("RightChamber",6)
TNT1 A 0 A_GiveInventory("DualRevolverAmmo",1)
TNT1 A 0 A_GiveInventory("LeftChamber",1)
TNT1 A 0 A_GiveInventory("StartAmmoDRevolver",1)
Goto Ready1


TE_2:
TNT1 A 0 A_GiveInventory("DualRevolverAmmo",6)
TNT1 A 0 A_GiveInventory("RightChamber",6)
TNT1 A 0 A_GiveInventory("DualRevolverAmmo",2)
TNT1 A 0 A_GiveInventory("LeftChamber",2)
TNT1 A 0 A_GiveInventory("StartAmmoDRevolver",1)
Goto Ready1

TE_3:
TNT1 A 0 A_GiveInventory("DualRevolverAmmo",6)
TNT1 A 0 A_GiveInventory("RightChamber",6)
TNT1 A 0 A_GiveInventory("DualRevolverAmmo",3)
TNT1 A 0 A_GiveInventory("LeftChamber",3)
TNT1 A 0 A_GiveInventory("StartAmmoDRevolver",1)
Goto Ready1

TE_4:
TNT1 A 0 A_GiveInventory("DualRevolverAmmo",6)
TNT1 A 0 A_GiveInventory("RightChamber",6)
TNT1 A 0 A_GiveInventory("DualRevolverAmmo",4)
TNT1 A 0 A_GiveInventory("LeftChamber",4)
TNT1 A 0 A_GiveInventory("StartAmmoDRevolver",1)
Goto Ready1

TE_5:
TNT1 A 0 A_GiveInventory("DualRevolverAmmo",6)
TNT1 A 0 A_GiveInventory("RightChamber",6)
TNT1 A 0 A_GiveInventory("DualRevolverAmmo",5)
TNT1 A 0 A_GiveInventory("LeftChamber",5)
TNT1 A 0 A_GiveInventory("StartAmmoDRevolver",1)
Goto Ready1

TE_6:
TNT1 A 0 A_GiveInventory("DualRevolverAmmo",6)
TNT1 A 0 A_GiveInventory("RightChamber",6)
TNT1 A 0 A_GiveInventory("DualRevolverAmmo",6)
TNT1 A 0 A_GiveInventory("LeftChamber",6)
TNT1 A 0 A_GiveInventory("StartAmmoDRevolver",1)
Goto Ready1

	Ready1:
		2RES FEDCBA 1
		TNT1 A 0 A_Gunflash //("Ready3")
	Ready2:
//		TNT1 A 0 A_JumpIfInventory("Kicking",1,"DoKick")
		TNT1 A 0 A_JumpIfInventory("Reloading",1,"Reload")
		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")
TNT1 A 0 A_JumpIfInventory("IsRunning",1,"Checksprint")
		TNT1 A 0 A_JumpIfInventory("StartDualWield",1,"DualWield")
//		TNT1 A 0 A_JumpIfInventory("IdleCounter",200,"PlayerIsIdle")
		2REF A 1 A_WeaponReady
		Goto Ready2
	
	
	Tryuse2:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("PressedUse",100)
		TNT1 A 0 A_FireCustomMissile("UseAttack",0,0,0,0,0,0)
		TNT1 A 0 A_FireCustomMissile("StealthAttack",0,0,0,0,0,0)
		2REF I 0 //xx 10
		TNT1 A 0 A_JumpIfInventory("PressedUse",1,"Interrupt2")
		Goto Ready2 //3

	Interrupt2:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("PressedUse",1)
		2REF I 10
		TNT1 A 0 A_JumpIfInventory("PressedUse",1,"Interrupt2")
		Goto Ready2 //3


// --------------------------------------------------------------------------
//
//	Fire
//
// --------------------------------------------------------------------------

	AltFire:
FireRight:
TNT1 A 0 A_JumpIfInventory("DualRevolverAmmo",1,"Firerighty")
goto Dryfire
Firerighty:

TNT1 A 0 A_JumpIfInventory("RightChamber",1,"FireRighty2")
goto DryFire
FireRighty2:
TNT1 A 0 A_Takeinventory("RightChamber",1)

		TNT1 A 0 A_PlaySound("revolver/fire1", 1)
		TNT1 A 0 A_PlaySound("revolver/fire2", 5,0.7)
		2REF B 1 //A_WeaponReady
		2REF C 1 //A_WeaponReady
		TNT1 A 0 A_ZoomFactor(0.80)
		TNT1 A 0 A_FireCustomMissile("SmokeSpawner",0,0,15,5)
	//	TNT1 A 0 A_Giveinventory("DualFireState",1)
		2REF D 1 BRIGHT //A_WeaponReady
		TNT1 AAAA 0 A_FireCustomMissile("ShotgunParticles",random(-10,10),0,15,-8,0,random(-10,10))
		TNT1 A 0 A_FireCustomMissile("YellowFlareSpawn",0,0,15,0)
		TNT1 AA 0 A_FireCustomMissile("GunFireSmoke",0,0,15,0,0,0)
		TNT1 A 0 A_FireCustomMissile("Tracer",frandom(-2,2),0,15,0)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAssDouble",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("PlayerMuzzle2",30,5,27)
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_SetAngle(frandom(1.0,-3.2) + angle)
		TNT1 A 0 A_SetPitch(frandom(1.2,-1.2) + pitch)

		TNT1 A 0 A_Jump(25,6) //10% chance to do a critical hit.
		TNT1 A 0 A_FireBullets(0, 0, -1, 21, "RevolverPuff1B")
		TNT1 A 0 A_FireBullets(0, 0, -1, 21, "RevolverPuff1B")
		TNT1 A 0 A_FireBullets(0, 0, -1, 21, "RevolverPuff1A")
		TNT1 A 0 A_FireCustomMissile("RWP", 0, 0, 0, 0) //RevolverWallPenetrator
		TNT1 A 0 A_Jump(256,5)
		TNT1 A 0 A_FireBullets(0, 0, -1, 21, "RevolverPuff2B")
		TNT1 A 0 A_FireBullets(0, 0, -1, 21, "RevolverPuff2B")
		TNT1 A 0 A_FireBullets(0, 0, -1, 21, "RevolverPuff2A")
		TNT1 A 0 A_FireCustomMissile("RWP", 0, 0, 0, 0) //RevolverWallPenetrator
		
		TNT1 A 0 A_Takeinventory("DualRevolverAmmo",1)

		TNT1 A 0 A_Recoil(0.3)
		TNT1 A 0 A_SetAngle(frandom(2,-2) + angle)
		
		TNT1 A 0 A_JumpIfInventory("RevolverDummyToken",1,2)
		TNT1 A 0 A_setpitch(pitch - 5.5) //-8
		
		TNT1 A 0 A_ZoomFactor(1.00)
	//	TNT1 A 0 A_Giveinventory("DualFireState",1)
		2REF E 1 //A_WeaponReady
		
		TNT1 A 0 A_JumpIfInventory("RevolverDummyToken",1,2)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_setpitch(pitch - 5.5) //-8
		
		TNT1 A 0 A_setpitch(pitch + 1.3)
	//	TNT1 A 0 A_Giveinventory("DualFireState",1)
		2REF F 1 //A_WeaponReady
		TNT1 A 0 A_setpitch(pitch + 1.3)
	//	TNT1 A 0 A_Giveinventory("DualFireState",1)
		2REF G 1 //A_WeaponReady
		TNT1 A 0 A_setpitch(pitch + 1.3)
	//	TNT1 A 0 A_Giveinventory("DualFireState",1)
		2REF H 1 //A_WeaponReady
		TNT1 A 0 A_setpitch(pitch + 1.3)
	//	TNT1 A 0 A_Takeinventory("DualRightFire",1)
	//	TNT1 A 0 A_Takeinventory("DualFireState",10)

TNT1 A 0
TNT1 A 0 A_JumpIfInventory("DualRightFire", 1, "EndingRight")	
TNT1 A 0
TNT1 A 0 A_JumpIfInventory("DualLeftFire", 1, "EndRight")
EndingRight:
2REF A 10 // 7 A_WeaponReady
EndRight:
TNT1 A 0 A_Takeinventory("DualLeftFire",1)
TNT1 A 0 A_Giveinventory("DualRightFire",1)
		Goto Ready2


	Fire:
TNT1 A 0 A_JumpIfInventory("TE_RevolverAmmo",1,"Firelefty")
goto Dryfire2
FireLefty:

TNT1 A 0 A_JumpIfInventory("LeftChamber",1,"FireLefty2")
goto DryFire2
FireLefty2:
TNT1 A 0 A_Takeinventory("LeftChamber",1)

		//Bring forth next cylinder slot
		TNT1 A 0 //A_WeaponReady(WRF_NOFIRE|WRF_NOSWITCH)
		TNT1 A 0 A_GiveInventory("RevolverCylinderPos",1)
		TNT1 A 0 A_JumpIfInventory("RevolverCylinderPos",7,2)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_TakeInventory("RevolverCylinderPos",6)
		
		//Check if selected slot has a bullet
		//Slot 1
		TNT1 A 0 A_JumpIfInventory("RevolverCylinderPos",2,4)
		TNT1 A 0 A_JumpIfInventory("RevolverCylinderSlot1",1,1)
		Goto DryFireSkip //DryFire2
		TNT1 A 0 A_Takeinventory("RevolverCylinderSlot1",1)
		TNT1 A 0 A_Jump(256,19)
		//Slot 2
		TNT1 A 0 A_JumpIfInventory("RevolverCylinderPos",3,4)
		TNT1 A 0 A_JumpIfInventory("RevolverCylinderSlot2",1,1)
		Goto DryFireSkip //DryFire2
		TNT1 A 0 A_Takeinventory("RevolverCylinderSlot2",1)
		TNT1 A 0 A_Jump(256,15)
		//Slot 3
		TNT1 A 0 A_JumpIfInventory("RevolverCylinderPos",4,4)
		TNT1 A 0 A_JumpIfInventory("RevolverCylinderSlot3",1,1)
		Goto DryFireSkip //DryFire2
		TNT1 A 0 A_Takeinventory("RevolverCylinderSlot3",1)
		TNT1 A 0 A_Jump(256,11)
		//Slot 4
		TNT1 A 0 A_JumpIfInventory("RevolverCylinderPos",5,4)
		TNT1 A 0 A_JumpIfInventory("RevolverCylinderSlot4",1,1)
		Goto DryFireSkip //DryFire2
		TNT1 A 0 A_Takeinventory("RevolverCylinderSlot4",1)
		TNT1 A 0 A_Jump(256,7)
		//Slot 5
		TNT1 A 0 A_JumpIfInventory("RevolverCylinderPos",6,4)
		TNT1 A 0 A_JumpIfInventory("RevolverCylinderSlot5",1,1)
		Goto DryFireSkip //DryFire2
		TNT1 A 0 A_Takeinventory("RevolverCylinderSlot5",1)
		TNT1 A 0 A_Jump(256,3)
		//Slot 6
		TNT1 A 0 A_JumpIfInventory("RevolverCylinderSlot6",1,1)
		Goto DryFireSkip //DryFire2
		TNT1 A 0 A_Takeinventory("RevolverCylinderSlot6",1)
		
		//Slot has a bullet. Fire!

		TNT1 A 0 A_PlaySound("revolver/fire1", 1)
		TNT1 A 0 A_PlaySound("revolver/fire2", 5,0.7)
		2REF JK 1 
		TNT1 A 0 A_ZoomFactor(0.80)
		TNT1 A 0 A_FireCustomMissile("SmokeSpawner",0,0,-15,5)
		2REF L 1 BRIGHT 
		TNT1 AAAA 0 A_FireCustomMissile("ShotgunParticles",random(-10,10),0,-15,-8,0,random(-10,10))
		TNT1 A 0 A_FireCustomMissile("YellowFlareSpawn",0,0,-15,0)
		TNT1 AA 0 A_FireCustomMissile("GunFireSmoke",0,0,-15,0,0,0)
		TNT1 A 0 A_FireCustomMissile("Tracer",frandom(-2,2),0,-15,0)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAssDouble",0,0,0,0)
		TNT1 A 0 A_SpawnItemEx("PlayerMuzzle2",30,5,27)
		TNT1 A 0 A_AlertMonsters
		TNT1 A 0 A_SetAngle(frandom(3.2,-1.0) + angle)
		TNT1 A 0 A_SetPitch(frandom(1.2,-1.2) + pitch)

		TNT1 A 0 A_jump(25,6) //10% chance to do a critical hit.
		TNT1 A 0 A_FireBullets(0, 0, -1, 21, "RevolverPuff1B")
		TNT1 A 0 A_FireBullets(0, 0, -1, 21, "RevolverPuff1B")
		TNT1 A 0 A_FireBullets(0, 0, -1, 21, "RevolverPuff1A")
		TNT1 A 0 A_FireCustomMissile("RWP", 0, 0, 0, 0) //RevolverWallPenetrator
		TNT1 A 0 A_Jump(256,5)
		TNT1 A 0 A_FireBullets(0, 0, -1, 21, "RevolverPuff2B")
		TNT1 A 0 A_FireBullets(0, 0, -1, 21, "RevolverPuff2B")
		TNT1 A 0 A_FireBullets(0, 0, -1, 21, "RevolverPuff2A")
		TNT1 A 0 A_FireCustomMissile("RWP", 0, 0, 0, 0) //RevolverWallPenetrator
		
TNT1 A 0 A_Takeinventory("DualRevolverAmmo",1)
TNT1 A 0 A_Takeinventory("TE_RevolverAmmo",1) //xx

		TNT1 A 0 A_Recoil(0.3)
		TNT1 A 0 A_SetAngle(frandom(2,-2) + angle)
		TNT1 A 0 A_setpitch(pitch - 5.5) //-8
		TNT1 A 0 A_ZoomFactor(1.00)
		2REF MNOP 1 A_setpitch(pitch + 1.3)

TNT1 A 0 A_JumpIfInventory("DualRightFire", 1, "EndLeft")
2REF A 4 //7 new
EndLeft:
TNT1 A 0 A_Takeinventory("DualRightFire",1)

TNT1 A 0 A_JumpIfInventory("DualLeftFire", 1, "EndingLeft")
TNT1 A 0 A_JumpIfInventory("DualRightFire", 1, "EndLeft")
EndingLeft:
2REF A 6 // 7 A_WeaponReady
EndLeft:
TNT1 A 0 A_Takeinventory("DualRightFire",1)
TNT1 A 0 A_Giveinventory("DualLeftFire",1)


				Goto Ready2
				
// --------------------------------------------------------------------------
//
//	Reload
//
// --------------------------------------------------------------------------
		
	Reload:
		TNT1 A 0 A_TakeInventory("Reloading",1)
		

		TNT1 A 0 A_JumpIfInventory("DualRevolverAmmo",12,"Ready2")//Don't reload if weapons are full.
		TNT1 A 0 A_JumpIfInventory("RevolverBullets",1,1)//Do we have any ammo to reload with?
		Goto DryFire

//TNT1 A 0 A_JumpIfInventory("DualRevolverAmmo",11,"Continue")
TNT1 A 0 A_JumpIfInventory("RevolverBullets",7,"Continue") 
Goto Dualwield

Continue:

TNT1 A 0 A_JumpIfInventory("LeftChamber",6,"NoReloadLeft")


/////////// RELOAD LEFT
		TNT1 A 0 A_GunFlash("StopLeft")
  	TNT1 A 0 A_JumpIfInventory("TurboReload",1,"ReloadLoop")
		TNT1 A 0 A_GiveInventory("Pumping", 1)
		

		2RES ABCDEF 1 A_PlaySound ("revolver/open") 
		
42W2 GHIJK 2
42W2 LMNOPQRST 2 //shells drop


//How many cases should we spawn?

TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawn",-2,0,-8,0)

TNT1 A 0 A_JumpIfInventory("LeftChamber",5,"COLD1")
Goto Next1
COLD1:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
Goto Next0

Next1:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawn",-2,0,-8,0)

TNT1 A 0 A_JumpIfInventory("LeftChamber",4,"COLD2")
Goto Next2
COLD2:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
Goto Next0

Next2:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawn",-2,0,-8,0)

TNT1 A 0 A_JumpIfInventory("LeftChamber",3,"COLD3")
Goto Next3
COLD3:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
Goto Next0

Next3:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawn",-2,0,-8,0)

TNT1 A 0 A_JumpIfInventory("LeftChamber",2,"COLD4")
Goto Next4
COLD4:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
Goto Next0

Next4:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawn",-2,0,-8,0)

TNT1 A 0 A_JumpIfInventory("LeftChamber",1,"COLD5")
Goto Next5
COLD5:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
Goto Next0

Next5:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawn",-2,0,-8,0)
goto Next0

Next0:

		42W2 UVWXYZ 2
		42W3 AB 2 A_PlaySound ("revolver/case,0") 
		42W3 CDEFG 2 A_PlaySound ("revolver/close") 
		42W3 HIJK 1 //2
		42W2 IHG 1 //2

//TNT1 A 0 A_Takeinventory("DualRevolverAmmo","LeftChamber")	
TNT1 A 0 A_Takeinventory("LeftChamber",6)
		

Goto ReloadLoop

	ReloadLoop:
	TNT1 A 0 A_JumpIfInventory("LeftChamber",6,"ReloadDone")
		TNT1 A 0 A_JumpIfInventory("RevolverBullets",1,1)
		Goto ReloadDone
TNT1 A 0 A_Giveinventory("DualRevolverAmmo",1)
		TNT1 A 0 A_Takeinventory("RevolverBullets",1)
		TNT1 A 0 A_Giveinventory("LeftChamber",1)
		Goto ReloadLoop


	ReloadDone:
		TNT1 A 0 A_Takeinventory("Reloading",1)
//xx
		TNT1 A 0 A_Giveinventory("TE_RevolverAmmo",6) 
		TNT1 A 0 A_Giveinventory("RevolverCylinderSlot1",1)
		TNT1 A 0 A_Giveinventory("RevolverCylinderSlot2",1)
		TNT1 A 0 A_Giveinventory("RevolverCylinderSlot3",1)
		TNT1 A 0 A_Giveinventory("RevolverCylinderSlot4",1)
		TNT1 A 0 A_Giveinventory("RevolverCylinderSlot5",1)
		TNT1 A 0 A_Giveinventory("RevolverCylinderSlot6",1)
//xx

TNT1 A 0 A_JumpIfInventory("RightChamber",6,"ContinuereloadLeft")
		goto ReloadRight

ContinuereloadLeft:
		TNT1 A 0 A_JumpIfInventory("TurboReload",1,1)
		Goto Ready1
		TNT1 A 0 A_Refire
		Goto Ready2



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Reload right

NoReloadLeft:
2RES ABCDEF 1 //A_PlaySound ("revolver/open") 
ReloadRight:
TNT1 A 0 A_PlaySound ("revolver/open") 

//		TNT1 A 0 A_JumpIfInventory("DualRevolverAmmo",11,"ReloadLoop1")//If we have 11 ammo, just reload that one bullet.
		TNT1 A 4
	
		42V2 GHIJK 2 
		42V2 LMNOPQRST 2 //shells drop


//How many cases should we spawn?

TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawn",-2,0,-8,0)

TNT1 A 0 A_JumpIfInventory("RightChamber",5,"COLD6")
Goto Next6
COLD6:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
Goto Next

Next6:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawn",-2,0,-8,0)

TNT1 A 0 A_JumpIfInventory("RightChamber",4,"COLD7")
Goto Next7
COLD7:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
Goto Next

Next7:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawn",-2,0,-8,0)

TNT1 A 0 A_JumpIfInventory("RightChamber",3,"COLD8")
Goto Next8
COLD8:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
Goto Next

Next8:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawn",-2,0,-8,0)

TNT1 A 0 A_JumpIfInventory("RightChamber",2,"COLD9")
Goto Next9
COLD9:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
Goto Next

Next9:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawn",-2,0,-8,0)

TNT1 A 0 A_JumpIfInventory("RightChamber",1,"COLD10")
Goto Next10
COLD10:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawncold",-2,0,-8,0)
Goto Next

Next10:
TNT1 A 0 A_FireCustomMissile("RevolverCaseSpawn",-2,0,-8,0)
goto Next

Next:
NoReloadRight:

		

42V2 UVWXYZ 2
		42V3 AB 2 A_PlaySound ("revolver/case,0") 
		42V3 CDEFG 2 A_PlaySound ("revolver/close") 
		42V3 HIJK 1 //2
		42V2 IHG 1 //2


//TNT1 A 0 A_Takeinventory("DualRevolverAmmo","RightChamber")	
TNT1 A 0 A_Takeinventory("RightChamber",6)
		

Goto ReloadLoopR

	ReloadLoopR:
	TNT1 A 0 A_JumpIfInventory("RightChamber",6,"ReloadDone2")
		TNT1 A 0 A_JumpIfInventory("RevolverBullets",1,1)
		Goto ReloadDone2
		TNT1 A 0 A_Takeinventory("RevolverBullets",1)
TNT1 A 0 A_Giveinventory("DualRevolverAmmo",1)
		TNT1 A 0 A_Giveinventory("RightChamber",1)
		Goto ReloadLoopR

	ReloadDone2:
		TNT1 A 0 A_Takeinventory("Reloading",1)

		TNT1 A 0 A_JumpIfInventory("TurboReload",1,1)
		Goto Ready1
		TNT1 A 0 A_Refire
		Goto Ready2


// --------------------------------------------------------------------------
//
//	Misc.
//
// --------------------------------------------------------------------------

	DualWield:
		TNT1 A 0 A_Takeinventory("StartDualWield",1)
//		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1028)==2, "Ready2")
		TNT1 A 0 A_Takeinventory("PowerSphere2",1)
		Goto Deselect

	PuristGun:
		TNT1 A 0 A_TakeInventory("DualRevolver", 1)
		Goto Deselect
	
	DryFire:
		2REF BC 2
		2REF A 1 A_PlaySound("weapons/empty2")
		2REF A 7
		Goto Ready2
		
Dryfireskip:
	DryFire2:
		2REF JK 2
		2REF I 1 A_PlaySound("weapons/empty2")
		2REF I 7
		Goto Ready2



// --------------------------------------------------------------------------
//
//	End stuff
//
// --------------------------------------------------------------------------



	Tryuse:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("PressedUse", 100)
		RIFF A 0 A_FireCustomMissile("UseAttack", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("StealthAttack", 0, 0, 0, 0, 0, 0)
		TNT1 A 1
		TNT1 A 0 A_JumpIfInventory("FlashlightOn", 1, "WaitFlashlightOn")
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "Interrupt")
		Goto Flash 
		
	Interrupt:	
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("PRessedUse", 1)
		TNT1 A 10
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "Interrupt")
		Goto Flash
		
		
	WaitFlashlightOn:	
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("PRessedUse", 1)
		TNT1 A 1
		RIFF A 0 A_FireCustomMissile("FlashlightAlerter", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile2", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile3", 0, 0, 0, 0, 0, 0)
		TNT1 A 1
		RIFF A 0 A_FireCustomMissile("FlashlightAlerter", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile2", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile3", 0, 0, 0, 0, 0, 0)
		TNT1 A 1
		RIFF A 0 A_FireCustomMissile("FlashlightAlerter", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile2", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile3", 0, 0, 0, 0, 0, 0)
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "WaitFlashlightOn")
		Goto Flash	
		
	Flash:
		TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("SwitchFlashlight",1,"SwitchFlashlight")
		TNT1 A 0 A_JumpIfInventory("FlashlightOn", 1, "FlashOn")
		TNT1 A 1
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "TryUse")
		TNT1 A 1
		TNT1 A 0 A_TakeInventory("UsedStamina", 1)
		Goto Flash
	
	FlashOn:
	    TNT1 A 1 BRIGHT
		TNT1 A 0 A_SpawnItemEx("FlashlightSource", 32, 8, 30)
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "TryUse")
		RIFF A 0 A_FireCustomMissile("FlashlightAlerter", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile2", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile3", 0, 0, 0, 0, 0, 0)
		
		TNT1 A 1 BRIGHT
		TNT1 A 0 A_SpawnItemEx("FlashlightSource", 32, 8, 30)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile2", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile3", 0, 0, 0, 0, 0, 0)
		
		TNT1 A 1 BRIGHT
		TNT1 A 0 A_SpawnItemEx("FlashlightSource", 32, 8, 30)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile2", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile3", 0, 0, 0, 0, 0, 0)
		TNT1 A 0 A_JumpIfInventory("PressedUse", 1, "TryUse")
		TNT1 A 1 BRIGHT
		TNT1 A 0 A_SpawnItemEx("FlashlightSource", 32, 8, 30)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile2", 0, 0, 0, 0, 0, 0)
		RIFF A 0 A_FireCustomMissile("FlashlightProjectile3", 0, 0, 0, 0, 0, 0)
		
		TNT1 A 0 A_TakeInventory("UsedStamina", 1)
		
		Goto Flash
		
		
	SwitchFlashlight:
		TNT1 A 0
		TNT1 A 0 A_TakeInventory("SwitchFlashlight", 1)
		TNT1 A 0 A_JumpIfInventory("FlashlightOn",1,"TurnFlashOff")
		TNT1 A 0 A_Giveinventory("FlashlightOn",1)
		TNT1 A 0 A_PlaySound("FLASHON", 5)
		
        Goto Flash
	TurnFlashOff:
		TNT1 A 0 A_Takeinventory("FlashlightOn",1)
		TNT1 A 0 A_Light0
		TNT1 A 0 A_PlaySound("FLASHOFF", 5)
        Goto Flash
	



	Taunt:
		//2RES S 5
		TNT1 A 0 A_PlaySound("FUCK", 2)
		TNT1 A 0 A_FireCustomMissile("Taunter", 0, 0, -1, 0)
		TNT1 A 0 A_FireCustomMissile("Taunter", -9, 0, -1, 0)
		TNT1 A 0 A_FireCustomMissile("Taunter", 9, 0, -1, 0)
		TNT1 A 0 A_AlertMonsters
		//2RES S 20
		TNT1 A 0 A_Takeinventory("Taunting",1)
		TNT1 A 0 A_Gunflash("Ready2")
		Goto Ready2

	KickFlash:
		2RES ABCDE 1
		2RES F 6
		2RES EDCBA 1
		2RES S 1
		Goto Ready2
		
	AirKickFlash:
		2RES ABCDE 1
		2RES F 8
		2RES EDCBA 1
		2RES S 1
		Goto Ready2
		
	GrenadeFlash:
		2RES ABCDEF 1
		Stop
	}
}

ACTOR DualRevolverAmmo: Ammo
{
	+INVENTORY.IGNORESKILL
	Inventory.Amount 0
	Inventory.MaxAmount 12
	Ammo.BackpackAmount 0
	Ammo.BackpackMaxAmount 12
	Inventory.Icon "RVICA0"
}