
//Dusk damage chart (type: Dmg)
//SP: 200
//MP: 125


//The flying green dick gun.
ACTOR Dusk_Crossbow : DuskWeapon //replaces plasmarifle//There's no true plasmarifle equivalent for dusk.
{
+WEAPON.NOAUTOAIM
	Weapon.SelectionOrder 50
Weapon.Slotnumber 7
	Weapon.SisterWeapon Dusk_Crossbow_newammo

	+WEAPON.NOALERT
//	+weapon.bfg
	Weapon.AmmoUse 10
	Weapon.AmmoGive 50
	Weapon.AmmoType "Cell"
	Weapon.UpSound "crossbow/raise"

	Inventory.PickupMessage "$CRSBW_PICK"
	Obituary "$CRSBW_OB"
	Tag "Crossbow"
	States
	{
	Ready:
TNT1 A 0 A_JumpIfInventory("Doosk_ExplosiveBarrelWeapon",1,"Select_Barrel")
TNT1 A 0 A_JumpIfInventory("Doosk_HereticBarrelWeapon",1,"Select_HereticBarrel")
TNT1 A 0 A_JumpIfInventory("Doosk_SoapWeapon",1,"Select_Soap")

		W07C B 1 A_WeaponReady(WRF_ALLOWRELOAD)
		Loop
	Deselect:
    TNT1 A 0 A_TakeInventory("SetWeaponMemory",50)
    TNT1 A 0 A_GiveInventory("SetWeaponMemory",10)
	DeselectLoop:
		TST1 AAA 0 A_Lower
		TST1 A 1 A_Lower
		Loop
	Select:
		TNT1 A 0 A_SetCrosshair(16)
    TNT1 A 0 A_TakeInventory("SetWeaponActual",50)
    TNT1 A 0 A_GiveInventory("SetWeaponActual",10)
//		TNT1 A 7 A_WeaponReady//(WRF_NOFIRE)
		W07A ABCDE 1 A_WeaponReady//(WRF_NOFIRE)
		Goto Ready


	Reload://Weapon spin
	TNT1 A 0 A_PlaySound("sickles/fire")

		W07D ABCDE 1 A_WeaponReady
		W07D FGHIJKLM 1 A_WeaponReady (WRF_ALLOWRELOAD)
		Goto Ready



		
	Fire:
		W07F A 0 A_Gunflash		
		W07F ABCD 1 bright A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)
TNT1 A 0 A_JumpIfInventory("Fastfire_TotemAmount",31,	"Fire_Stacked2")
TNT1 A 0 A_JumpIfInventory("Fastfire_TotemAmount",1,	"Fire_Stacked1")
		W07F EFGHIJKLMNOPQR 1 A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)

		Goto Ready


	Fire_Stacked1:
		W07F EFGHI 1 A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)

		W07F JKLMNOPQR 1 A_WeaponReady (WRF_ALLOWRELOAD)
		Goto Ready


	Fire_Stacked2:
		W07F E 1 A_WeaponReady (WRF_NOFIRE|WRF_NOSWITCH)

		W07F FGHIJKLMNOPQR 1 A_WeaponReady (WRF_ALLOWRELOAD)
		Goto Ready






	Flash:
		W07F A 0 A_FireCustomMissile("Dusk_CrossbowProjectile")
	  TNT1 A 0 A_JumpIf(ACS_NamedExecuteWithResult("MultiplayerCheck",0,0,0,0) == 2,"Flash_Normal")
TNT1 A 0 A_JumpIf(CallACS("CrossbowJump")==2, "Flash_ExtraJump2")
TNT1 A 0 A_JumpIf(CallACS("CrossbowJump")==1, "Flash_ExtraJump1")

	Flash_Normal:
	TNT1 A 0 ACS_NamedExecuteWithResult("CrossbowRecoil", 3550, 9525)//4.25 ; 10.125 4250, 10125)



	FlashContinue:
	TNT1 A 0 A_PlaySound("Crossbow/fire", CHAN_WEAPON)
//	TNT1 A 0 ACS_NamedExecuteAlways("Weapon_Recoil", 0, 0, 0, 0)
		TNT1 A 3 A_Light2
		TNT1 A 4 A_Light1
		TNT1 A 8 A_Light0
		Goto LightDone

	Flash_ExtraJump1:
	TNT1 A 0 ACS_NamedExecuteWithResult("CrossbowRecoil", 4250, 10125)//5.0 ; 11.0 5000, 11000)
	goto FlashContinue

	Flash_ExtraJump2:
	TNT1 A 0 ACS_NamedExecuteWithResult("CrossbowRecoil", 5000, 11000)//5.0 ; 11.0 5000, 12666)
	goto FlashContinue






	Spawn:
		W07Z A -1
		Stop
	}
}




/*
			//-------------
			// Recoil code, taken from D4T 2.5

			TNT1 A 0 A_ChangeVelocity(-cos(-pitch)*4,0,sin(pitch)*3.5,CVF_RELATIVE) //this recoil applies always
			TNT1 A 0 A_CheckFloor(2)
			TNT1 A 0 A_ChangeVelocity(-cos(-pitch)*10,0,sin(pitch)*8.5,CVF_RELATIVE) //only when in air			

			//-------------
*/

