

//==============================================================================
//========================= Corvus' Ethereal Crossbow ==========================
//==============================================================================


ACTOR BrutalCrossbow : HereticWeapon
{
	Weapon.SelectionOrder 3
	Weapon.AmmoUse1 1
	Weapon.AmmoUse2 1
	Weapon.AmmoGive1 4
	Weapon.Kickback 200
	Inventory.RestrictedTo "BrutalCorvus"
	Inventory.ForbiddenTo "Corvette"
	Weapon.AmmoType1 "BrutalCrossbowAmmo"
	Weapon.AmmoType2 "BrutalCrossbowAmmo"
	Weapon.SisterWeapon "None"
	Weapon.YAdjust 15
	ConversationID 194
	Inventory.PickupMessage "Picked up the Ethereal Crossbow, a Heretic's best friend."
	Tag "$TAG_CROSSBOW"
	Weapon.SlotNumber 3
	Speed 4

	States
	{
		Spawn:
			TNT1 A 0 A_SpawnItemEx("GreenFlareSmall",0,0,7)
			WBOW AA 1 Bright A_SetAngle(angle+speed)
			Goto Spawn
		Ready:
		ReadyDouble:
			TNT1 A 0 A_Light(0)
			TNT1 A 0 A_SetCrosshair (15)
			TNT1 A 0 A_JumpIfInventory("Action1",1,"Kicking")
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredReadyDouble")
			TNT1 A 0 A_JumpIfInventory("CrossBowMode2",1,"ReadySingle")
			CRB2 AABBCC 1
			{
				If (A_JumpIfInventory("Action1",1,"Kicking"))
				{
					return state("Kicking");
				}
				Else
				{
					A_WeaponReady (WRF_ALLOWRELOAD);
					return state("");
				}
			}	
			Loop
		ReadySingle:
			TNT1 A 0 A_SetCrosshair (9)
			TNT1 A 0 ACS_NamedExecute("CluckyFailsafe",0)
			TNT1 A 0 A_JumpIfInventory("Action1",1,"Kicking")
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredReadySingle")
			CRBW AABBCC 1
			{
				If (A_JumpIfInventory("Action1",1,"Kicking"))
				{
					return state("Kicking");
				}
				Else
				{
					A_WeaponReady (WRF_ALLOWZOOM|WRF_ALLOWRELOAD);
					return state("");
				}
			}
			Loop
		PoweredReadyDouble:
			TNT1 A 0 A_JumpIfInventory("CrossBowMode2",1,"PoweredReadySingle")
			TNT1 A 0 A_SetCrosshair (15)
			CRB2 IIJJKK 1
			{
				If (A_JumpIfInventory("Action1",1,"Kicking"))
				{
					return state("Kicking");
				}
				Else
				{
					A_WeaponReady (WRF_ALLOWZOOM|WRF_ALLOWRELOAD);
					return state("");
				}
			}
			Goto Ready 
		PoweredReadySingle:
			TNT1 A 0 A_SetCrosshair (9)
			CRBW IIJJKK 1
			{
				If (A_JumpIfInventory("Action1",1,"Kicking"))
				{
					return state("Kicking");
				}
				Else
				{
					A_WeaponReady (WRF_ALLOWZOOM|WRF_ALLOWRELOAD);
					return state("");
				}
			}
			Goto Ready 
		Reload:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PowerReload")
			TNT1 A 0 A_JumpIfInventory("CrossBowMode2",1,"Revert")
			CRBW A 0 A_GiveInventory("CrossBowMode2",1)
			TNT1 A 0 A_StartSound("SORRISE",1,CHANF_NOPAUSE)
			CRB2 H 2 Bright
			CRB2 G 2
			CRB2 F 2 Bright
			CRB2 E 2
			CRB2 D 2 Bright
			Goto Ready
		PowerReload:
			TNT1 A 0 A_JumpIfInventory("CrossBowMode2",1,"PowerRevert")
			CRBW A 0 A_GiveInventory("CrossBowMode2",1)
			TNT1 A 0 A_StartSound("SORRISE",1,CHANF_NOPAUSE)
			CRB2 P 2 Bright
			CRB2 O 2
			CRB2 N 2 Bright
			CRB2 M 2
			CRB2 L 2 Bright
			Goto Ready
		Revert:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PowerRevert")
			TNT1 A 0 A_StartSound("SORRISE",1,CHANF_NOPAUSE)
			CRB2 D 2 Bright
			CRB2 E 2 
			CRB2 F 2 Bright
			CRB2 G 2 
			CRB2 H 2 Bright
			TNT1 A 0 A_TakeInventory("CrossBowMode2",1)
			Goto Ready
		PowerRevert:
			TNT1 A 0 A_StartSound("SORRISE",1,CHANF_NOPAUSE)
			CRB2 L 2 Bright
			CRB2 M 2 
			CRB2 N 2 Bright
			CRB2 O 2 
			CRB2 P 2 Bright
			TNT1 A 0 A_TakeInventory("CrossBowMode2",1)
			Goto Ready
		Deselect:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredDeselect")
			CRBW C 0 A_Lower
			CRBW C 1 A_Lower
			Loop
		PoweredDeselect:
			CRBW K 0 A_Lower
			CRBW K 1 A_Lower
			Loop
		Select:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredSelect")
			CRBW C 0 A_Raise
			CRBW C 1 A_Raise
			Loop
		PoweredSelect:
			CRBW K 0 A_Raise
			CRBW K 1 A_Raise
			Loop
		Fire:
		FireDouble:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredFireDouble")
			TNT1 A 0 A_JumpIfInventory("CrossbowMode2",1,"FireSingle")
			TNT1 A 0 
			{
				A_StartSound("BOWSHOT",1,CHANF_NOPAUSE);
				
				If (GetCVAR("NoScalingPlz") == 1)
				{
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-3.5,3.5), TRUE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-3.5,3.5), TRUE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
				}
				Else
				{
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), TRUE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), TRUE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
				}
			}
			TNT1 A 0 A_Recoil(3 * GetCVAR("SteadyHand"))
			CRBW D 10 A_SetPitch(pitch-(0.9 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_JumpIfInventory("Action1",1,"KickShotCancel")
			CRBW EFGH 3 A_SetPitch(pitch+(0.16 * GetCVAR("SteadyHand")))
			CRB2 DEFG 2
			CRB2 H 2 A_ReFire
			TNT1 A 0
			Goto Ready		
		FireSingle:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredFireSingle")
			TNT1 A 0
			{
				A_StartSound("BOWSHOT",1,CHANF_NOPAUSE);
				
				If (GetCVAR("NoScalingPlz") == 1)
				{
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-3.5,-3.0), TRUE, 0, -3, 0, frandom(-0.25,0.25));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-2.5,-2.0), FALSE, 0, -3, 0, frandom(-0.25,0.25));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-1.5,-0.5), FALSE, 0, -3, 0, frandom(-0.25,0.25));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(0.5,1.5), FALSE, 0, -3, 0, frandom(-0.25,0.25));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(2.0,2.5), FALSE, 0, -3, 0, frandom(-0.25,0.25));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(3.0,3.5), FALSE, 0, -3, 0, frandom(-0.25,0.25));
				}
				Else
				{
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), TRUE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
				}
			}
			goto FireSingleMid
		FireSingleWild:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredFireSingle")
			TNT1 A 0
			{
				A_StartSound("BOWSHOT",1,CHANF_NOPAUSE);
				
				If (GetCVAR("NoScalingPlz") == 1)
				{
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-7.0,-5.0), TRUE, 0, -3, 0, frandom(-1.0,1.0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-4.5,-2.5), FALSE, 0, -3, 0, frandom(-1.0,1.0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(-2.0,0.0), FALSE, 0, -3, 0, frandom(-1.0,1.0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(0.0,2.0), FALSE, 0, -3, 0, frandom(-1.0,1.0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(2.5,4.5), FALSE, 0, -3, 0, frandom(-1.0,1.0));
					A_FireProjectile ("WimpyEtherealCrossbowBoltStrong", frandom(5.0,7.0), FALSE, 0, -3, 0, frandom(-1.0,1.0));
				}
				Else
				{
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), TRUE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
					A_FireProjectile ("EtherealCrossbowBoltStrong", frandom(-3.5,3.5), FALSE, 0, -3, 0, frandom(-5.5,0));
				}
			}
		FireSingleMid:
			TNT1 A 0 A_Recoil(1 * GetCVAR("SteadyHand"))
			CRBW D 8 A_SetPitch(pitch-(0.9 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_JumpIfInventory("Action1",1,"KickShotCancel")
			CRBW EF 2 A_SetPitch(pitch+(0.16 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"FireSingleFinish")
			CRBW GGHH 1
			{
				A_SetPitch(pitch+(0.16 * GetCVAR("SteadyHand")));
			
				If (A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"FireSingleWild"))
				{
					return state ("FireSingleWild");
				}
				Else
				{
					return state ("");
				}
			}			
			CRBW AABBCC 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"FireSingleWild")
			Goto ReadySingle
		FireSingleFinish:
			CRBW GH 2 A_SetPitch(pitch+(0.16 * GetCVAR("SteadyHand")))
			CRBW AB 2
			CRBW C 2 A_ReFire("FireSingle")
			Goto ReadySingle
		PoweredFireDouble:
			TNT1 A 0 A_JumpIfInventory("CrossbowMode2",1,"PoweredFireSingle")
			TNT1 A 0 A_StartSound("BOWSHOT4",1,CHANF_NOPAUSE)
			TNT1 AA 0 A_FireProjectile ("PoweredCrossbowBolt", frandom(-6,-4), CountInv("TokenOfCost"), 0, -3, 0, frandom(-1,1))
			TNT1 AA 0 A_FireProjectile ("PoweredCrossbowBolt", frandom(-3,-1), CountInv("TokenOfCost"), 0, -3, 0, frandom(-1,1))
			TNT1 A 0 A_FireProjectile ("PoweredCrossbowBolt", 0, CountInv("TokenOfCost"), 0, -3)
			TNT1 A 0 A_FireProjectile ("PoweredCrossbowBolt", 0, TRUE, 0, -3)
			TNT1 AA 0 A_FireProjectile ("PoweredCrossbowBolt", frandom(1,3), TRUE, 0, -3, 0, frandom(-1,1))
			TNT1 AA 0 A_FireProjectile ("PoweredCrossbowBolt", frandom(4,6), TRUE, 0, -3, 0, frandom(-1,1))
			TNT1 A 0 A_Recoil(1 * GetCVAR("SteadyHand"))
			CRBW L 8 A_SetPitch(pitch-(0.9 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_JumpIfInventory("Action1",1,"KickShotCancel")
			CRBW EMNO 4 A_SetPitch(pitch+(0.16 * GetCVAR("SteadyHand")))
			CRB2 LMNO 2
			CRB2 P 2 A_ReFire
			TNT1 A 0
			Goto Ready
		PoweredFireSingle:
			TNT1 A 0 A_StartSound("BOWSHOT",1,CHANF_NOPAUSE)
			TNT1 A 0 A_FireProjectile ("PoweredCrossbowBolt", -30, CountInv("TokenOfCost"), 0, -3, 0, frandom(-0.5,0.5))
			TNT1 A 0 A_FireProjectile ("PoweredCrossbowBolt", -20, CountInv("TokenOfCost"), 0, -3, 0, frandom(-0.5,0.5))
			TNT1 A 0 A_FireProjectile ("PoweredCrossbowBolt", -10, CountInv("TokenOfCost"), 0, -3, 0, frandom(-0.5,0.5))
			TNT1 A 0 A_FireProjectile ("PoweredCrossbowBolt", -5, CountInv("TokenOfCost"), 0, -3, 0, frandom(-0.5,0.5))
			TNT1 AA 0 A_FireProjectile ("PoweredCrossbowBolt", 0, TRUE, 0, -3, 0, frandom(-0.5,0.5))
			TNT1 A 0 A_FireProjectile ("PoweredCrossbowBolt", 5, CountInv("TokenOfCost"), 0, -3, 0, frandom(-0.5,0.5))
			TNT1 A 0 A_FireProjectile ("PoweredCrossbowBolt", 10, TRUE, 0, -3, 0, frandom(-0.5,0.5))
			TNT1 A 0 A_FireProjectile ("PoweredCrossbowBolt", 20, TRUE, 0, -3, 0, frandom(-0.5,0.5))
			TNT1 A 0 A_FireProjectile ("PoweredCrossbowBolt", 30, TRUE, 0, -3, 0, frandom(-0.5,0.5))
			TNT1 A 0 A_Recoil(1 * GetCVAR("SteadyHand"))
			CRBW L 8 A_SetPitch(pitch-(0.9 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_JumpIfInventory("Action1",1,"KickShotCancel")
			CRBW EMNO 2 A_SetPitch(pitch+(0.16 * GetCVAR("SteadyHand")))
			CRBW IJ 2
			CRBW K 2 A_ReFire
			TNT1 A 0
			Goto Ready
		AltFire:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredAltFire")
			TNT1 A 0 A_JumpIf(CallACS("ExpressSkills")==1, "SuperAttackDouble")
			TNT1 A 0 A_JumpIfInventory("Level",4,"SuperAttackDouble")
			TNT1 A 0 ACS_NamedExecuteAlways("NeedLevelAttack",0,4)
			Goto Ready
		PoweredAltFire:
			TNT1 A 0 A_JumpIf(CallACS("ExpressSkills")==1, "PoweredSuperAttackDouble")
			TNT1 A 0 A_JumpIfInventory("Level",12,"PoweredSuperAttackDouble")
			TNT1 A 0 ACS_NamedExecuteAlways("NeedLevelAttack",0,10)
			Goto Ready
		SuperAttackDouble:
			TNT1 A 0 A_JumpIfInventory("CrossbowMode2",1,"SuperAttackSingle")
			TNT1 A 0
			{
				A_StartSound("BOWSHOT4",1,CHANF_NOPAUSE);
				
				If (GetCVAR("NoScalingPlz") == 1)
				{
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), TRUE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), TRUE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), TRUE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), TRUE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), TRUE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("WimpyEtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					}
				Else
				{
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), TRUE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), TRUE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), TRUE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), TRUE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), TRUE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					A_FireCustomMissile ("EtherealCrossbowBolt2", frandom(-8,8), FALSE, 0, -3, 0, frandom(-6,6));
					}
			}
			TNT1 A 0 A_Recoil(12 * GetCVAR("SteadyHand"))
			CRBW D 10 A_SetPitch(pitch-(0.9 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_JumpIfInventory("Action1",1,"KickShotCancel")
			CRBW EFGH 3 A_SetPitch(pitch+(0.16 * GetCVAR("SteadyHand")))
			CRB2 DEFG 2
			CRB2 H 2 A_ReFire
			TNT1 A 0
			Goto Ready   
		SuperAttackSingle:
			TNT1 A 0
			{
				A_StartSound("BOWSHT",1,CHANF_NOPAUSE);
				
				If (GetCVAR("NoScalingPlz") == 1)
					{
						A_FireProjectile ("WimpyJumboBolt",frandom(1,-1),TRUE, 0, 0, 0, frandom(0.5,-0.5));
					}
					Else
					{
						A_FireProjectile ("JumboBolt",frandom(1,-1),TRUE, 0, 0, 0, frandom(0.5,-0.5));
					}
			}
			TNT1 A 0 A_Recoil(1 * GetCVAR("SteadyHand"))
			CRBW D 8 A_SetPitch(pitch-(0.9 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_JumpIfInventory("Action1",1,"KickShotCancel")
			TNT1 A 0 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ALTATTACK),"AltFireSingleFinish")
			CRBW EEEFFFGGGHHH 1 A_SetPitch(pitch+(0.05 * GetCVAR("SteadyHand")))
			CRBW AAABBB 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ALTATTACK),"AltFire")
			Goto ReadySingle  
		AltFireSingleFinish:
			CRBW EFGH 3 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"AltFireSingleFinish")
			CRBW AB 3
			Goto ReadySingle  
		PoweredSuperAttackDouble:
			TNT1 A 0 A_JumpIfInventory("CrossbowMode2",1,"PoweredSuperAttackSingle")
			TNT1 A 0
			{
				A_StartSound("BOWSHOT4",1,CHANF_NOPAUSE);
				
				If (CountInv("TokenOfCost") == 1)
				{
					A_TakeInventory("BrutalCrossbowAmmo",8);
				}
				If (CountInv("TokenOfCost") == 0)
				{
					A_TakeInventory("BrutalCrossbowAmmo",4);
				}
				
				A_Recoil(1 * GetCVAR("SteadyHand"));
				
				If (GetCVAR("NoScalingPlz") == 1)
				{
					A_FireCustomMissile ("WimpyPoweredJumboBolt",frandom(1,-1),TRUE, -4, -7, 0, frandom(0.5,-0.5));
					A_FireCustomMissile ("WimpyPoweredJumboBolt",frandom(1,-1),TRUE, 4, -7, 0, frandom(0.5,-0.5));
				}
				Else
				{
					A_FireCustomMissile ("PoweredJumboBolt",frandom(1,-1),TRUE, -4, -7, 0, frandom(0.5,-0.5));
					A_FireCustomMissile ("PoweredJumboBolt",frandom(1,-1),TRUE, 4, -7, 0, frandom(0.5,-0.5));
				}
			}
			CRBW DLDL 2 A_SetPitch(pitch-(0.2 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_JumpIfInventory("Action1",1,"PoweredKickShotCancel")
			CRBW MNO 3 A_SetPitch(pitch+(0.16 * GetCVAR("SteadyHand")))
			CRB2 LMNO 2
			CRB2 P 2
			Goto Ready
		PoweredSuperAttackSingle:
			TNT1 A 0
			{
				A_StartSound("BOWSHOT4",1,CHANF_NOPAUSE);
				
				If (CountInv("TokenOfCost") == 1)
				{
					A_TakeInventory("BrutalCrossbowAmmo",4);
				}
				If (CountInv("TokenOfCost") == 0)
				{
					A_TakeInventory("BrutalCrossbowAmmo",2);
				}
				
				A_Recoil(1 * GetCVAR("SteadyHand"));
				
				If (GetCVAR("NoScalingPlz") == 1)
				{
					A_FireCustomMissile ("WimpyPoweredJumboBolt",frandom(1,-1),TRUE, 0, -7, 0, frandom(0.5,-0.5));
				}
				Else
				{
					A_FireCustomMissile ("PoweredJumboBolt",frandom(1,-1),TRUE, 0, -7, 0, frandom(0.5,-0.5));
				}
			}
			CRBW DLDL 2 A_SetPitch(pitch-(0.2 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_JumpIfInventory("Action1",1,"PoweredKickShotCancel")
			CRBW MNO 3 A_SetPitch(pitch+(0.16 * GetCVAR("SteadyHand")))
			CRBW JK 3
			Goto Ready	
		Kicking:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredKicking")			
			CRBW C 1 Offset(0,42)
			CRBW C 1 Offset(0,52)
			CRBW C 1 Offset(0,62)
			CRBW C 1 Offset(0,72)
			CRBW C 1 Offset(0,82)
			TNT1 A 0 A_StartSound("WHOP",1,CHANF_NOPAUSE)
			CKCK B 1 Offset(35,20)
			CKCK B 1 Offset(30,20)
			CKCK C 1 Offset(20,10)
			TNT1 A 0 A_FireCustomMissile("BootOfFury",0,0,0,0)
			TNT1 A 0 A_Recoil(-6)
			CKCK E 1 Offset(-30,40)
			CKCK E 1 Offset(-28,38)
			CKCK E 1 Offset(-32,40)
			CKCK E 1 Offset(-30,38)
			TNT1 A 0 A_Recoil(3)
			CKCK C 1 Offset(20,10)
			CKCK B 1 Offset(30,20)
			CKCK B 1 Offset(35,20)
			CKCK AA 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"KickCancel")
			TNT1 AAA 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"KickCancel")
			CRBW C 1 Offset(-1,76)
			CRBW C 1 Offset(0,72)
			CRBW C 1 Offset(0,68)
			CRBW C 1 Offset(0,58)
			CRBW C 1 Offset(0,52)
			TNT1 A 0 A_WeaponReady
			TNT1 A 0 A_JumpIfInventory("Action1",1,"Kicking")
			Goto Ready
		KickShotCancel:
			TNT1 A 0 A_JumpIfInventory("PowerHDLevel2",1,"PoweredKicking")			
			CRBW C 1 Offset(0,42)
			CRBW C 1 Offset(0,52)
			CRBW C 1 Offset(0,62)
			CRBW C 1 Offset(0,72)
			CRBW C 1 Offset(0,82)
			TNT1 A 0 A_StartSound("WHOP",1,CHANF_NOPAUSE)
			CKCK B 1 Offset(35,20)
			CKCK B 1 Offset(30,20)
			CKCK C 1 Offset(20,10)
			TNT1 A 0 A_FireCustomMissile("BootOfFury",0,0,0,0)
			TNT1 A 0 A_Recoil(-6)
			CKCK E 1 Offset(-30,40)
			CKCK E 1 Offset(-28,38)
			CKCK E 1 Offset(-32,40)
			CKCK E 1 Offset(-30,38)
			TNT1 A 0 A_Recoil(3)
			CKCK C 1 Offset(20,10)
			CKCK B 1 Offset(30,20)
			CKCK B 1 Offset(35,20)
			CKCK AA 1
			TNT1 AAA 1
			CRBW C 1 Offset(-1,76)
			CRBW C 1 Offset(0,72)
			CRBW C 1 Offset(0,68)
			CRBW C 1 Offset(0,58)
			CRBW C 1 Offset(0,52)
			TNT1 A 0 A_WeaponReady
			TNT1 A 0 A_JumpIfInventory("Action1",1,"Kicking")
			Goto Ready
		PoweredKicking:
			CRBW I 1 Offset(0,42)
			CRBW J 1 Offset(0,52)
			CRBW K 1 Offset(0,62)
			CRBW I 1 Offset(0,72)
			CRBW J 1 Offset(0,82)
			TNT1 A 0 A_StartSound("WHOP",1,CHANF_NOPAUSE)
			CKCK B 1 Offset(35,20)
			CKCK B 1 Offset(30,20)
			CKCK C 1 Offset(20,10)
			TNT1 A 0 A_FireCustomMissile("BootOfFury",0,0,0,0)
			TNT1 A 0 A_Recoil(-6)
			CKCK E 1 Offset(-30,40)
			CKCK E 1 Offset(-28,38)
			CKCK E 1 Offset(-32,40)
			CKCK E 1 Offset(-30,38)
			TNT1 A 0 A_Recoil(3)
			CKCK C 1 Offset(20,10)
			CKCK B 1 Offset(30,20)
			CKCK B 1 Offset(35,20)
			CKCK AA 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"KickCancel")
			TNT1 AAA 1 A_JumpIf((GetPlayerInput (INPUT_BUTTONS) & BT_ATTACK),"KickCancel")
			CRBW I 1 Offset(-1,76)
			CRBW J 1 Offset(0,72)
			CRBW K 1 Offset(0,68)
			CRBW I 1 Offset(0,58)
			CRBW J 1 Offset(0,52)
			TNT1 A 0 A_WeaponReady
			TNT1 A 0 A_JumpIfInventory("Action1",1,"Kicking")
			TNT1 A 0 A_JumpIfInventory("Action1",1,"PoweredKicking")
			Goto Ready
		PoweredKickShotCancel:
			CRBW I 1 Offset(0,42)
			CRBW J 1 Offset(0,52)
			CRBW K 1 Offset(0,62)
			CRBW I 1 Offset(0,72)
			CRBW J 1 Offset(0,82)
			TNT1 A 0 A_StartSound("WHOP",1,CHANF_NOPAUSE)
			CKCK B 1 Offset(35,20)
			CKCK B 1 Offset(30,20)
			CKCK C 1 Offset(20,10)
			TNT1 A 0 A_FireCustomMissile("BootOfFury",0,0,0,0)
			TNT1 A 0 A_Recoil(-6)
			CKCK E 1 Offset(-30,40)
			CKCK E 1 Offset(-28,38)
			CKCK E 1 Offset(-32,40)
			CKCK E 1 Offset(-30,38)
			TNT1 A 0 A_Recoil(3)
			CKCK C 1 Offset(20,10)
			CKCK B 1 Offset(30,20)
			CKCK B 1 Offset(35,20)
			CKCK AA 1
			TNT1 AAA 1
			CRBW I 1 Offset(-1,76)
			CRBW J 1 Offset(0,72)
			CRBW K 1 Offset(0,68)
			CRBW I 1 Offset(0,58)
			CRBW J 1 Offset(0,52)
			TNT1 A 0 A_WeaponReady
			TNT1 A 0 A_JumpIfInventory("Action1",1,"Kicking")
			TNT1 A 0 A_JumpIfInventory("Action1",1,"PoweredKicking")
			Goto Ready
	}
}