
//==============================================================================
//=========================== Corvette's Hell Staff ============================
//==============================================================================


ACTOR ClassicHellStaff : Weapon
{
	Weapon.SelectionOrder 1
	Inventory.RestrictedTo "Corvette"
	Inventory.ForbiddenTo "BrutalCorvus"
	Weapon.AmmoUse1 1
	Weapon.AmmoUse2 15
	Weapon.AmmoGive1 0
	Weapon.YAdjust 15
	Weapon.Kickback 1
	Weapon.AmmoType1 "ClassicSkullRodAmmo"
	Weapon.AmmoType2 "ClassicSkullRodAmmo"
	Weapon.SisterWeapon "None"
	ConversationID 190
	Inventory.PickupMessage "Picked up the Hellstaff, engulf everything in radiant plasma!"
	Tag "$TAG_SKULLROD"
	Weapon.SlotNumber 5
	Speed 4

	States
	{
		Spawn:
			TNT1 A 0 A_SpawnItemEx("RedFlareSmall",0,0,40)
			WSKL XX 1 Bright A_SetAngle(angle+speed)
			Goto Spawn
		Ready:
			TNT1 A 0 A_JumpIfInventory("Action1",1,"Kicking")
			HROD A 1 A_WeaponReady (WRF_ALLOWZOOM)
			TNT1 A 0 A_SetCrosshair (11)
			TNT1 A 0 A_StopSound(7)
			Loop
		Deselect:
			HROD A 0 A_Lower
			TNT1 A 0 A_StopSound(4)
			TNT1 A 0 A_StopSound(7)
			HROD A 1 A_Lower
			Loop
		Select:
			HROD A 0 A_Raise
			HROD A 1 A_Raise
			Loop
		Fire:
			TNT1 A 0 A_JumpIfInventory("PowerClassicLevel2",1,"PoweredFire")
			HROD CDE 1
		Hold:
			TNT1 A 0 A_JumpIfInventory("PowerClassicLevel2",1,"PoweredFire")
			//TNT1 A 0 A_PlayWeaponSound("HSNEW")
			HROD F 1 Bright Offset(0,37) A_SetPitch(pitch-(0.4 * GetCVAR("SteadyHand")))
			HROD F 1 Bright Offset(0,35) A_SetPitch(pitch+(0.15 * GetCVAR("SteadyHand")))
			TNT1 A 0
			{
				A_StartSound("HSNEW",1,CHANF_NOPAUSE);
				
				If (GetCVAR("NoScalingPlz") == 1)
				{
					A_FireProjectile("WimpyBrutalHellStaffMissile",0,true,0,-3,0,-1);
				}
				Else
				{
					A_FireProjectile("BrutalHellStaffMissile",0,true,0,-3,0,-1);
				}
			}
			TNT1 A 0 A_Recoil(1 * GetCVAR("SteadyHand"))
			HROD B 1 Offset(0,34) A_SetPitch(pitch+(0.2 * GetCVAR("SteadyHand")))
			HROD B 1 Offset(0,33)
			TNT1 A 0 A_Recoil(-1 * GetCVAR("SteadyHand"))
			HROD B 0 A_ReFire
			HROD EDC 2
			Goto Ready	
		AltFire:
			TNT1 A 0 A_JumpIfInventory("PowerClassicLevel2",1,"PoweredFire2Check")
			TNT1 A 0 A_JumpIf(CallACS("ExpressSkills")==1, "SuperAttack")
			TNT1 A 0 A_JumpIfInventory("Level",6,"SuperAttack")
			TNT1 A 0 ACS_NamedExecuteAlways("NeedLevelAttack",0,6)
			Goto Ready
		SuperAttack:
			//TNT1 A 0 A_PlayWeaponSound("PLASBLST")
			TNT1 A 0 A_StartSound("PLASBLST",1,CHANF_NOPAUSE)
			HROD C 1 A_FireCustomMissile("BrutalHellRainSpawner",0,true,0,-3)
			TNT1 A 0 A_Recoil(1 * GetCVAR("SteadyHand"))
			HROD DE 2 Bright Offset(0,37) A_SetPitch(pitch-(0.4 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_Recoil(-1 * GetCVAR("SteadyHand"))
			HROD B 2 Bright Offset(0,35) A_SetPitch(pitch+(0.15 * GetCVAR("SteadyHand")))
			HROD B 2 Offset(0,34) A_SetPitch(pitch+(0.2 * GetCVAR("SteadyHand")))
			HROD A 2 Offset(0,33)
			HROD B 0 A_Refire("Waiting")
			Goto Ready
		PoweredFire:
			HROD A 0 A_JumpIfNoAmmo("Reload")
			//TNT1 A 0 A_PlayWeaponSound("HSNEW")
			TNT1 A 0
			{
				A_StartSound("HSNEW",1,CHANF_NOPAUSE);
				
				If (GetCVAR("NoScalingPlz") == 1)
				{
					A_FireCustomMissile("WimpyPoweredBrutalHellStaffMissile",0,True,0,18);
					A_FireCustomMissile("WimpyPoweredBrutalHellStaffMissile",0,True,-6,12);
					A_FireCustomMissile("WimpyPoweredBrutalHellStaffMissile",0,False,6,12);
					A_FireCustomMissile("WimpyPoweredBrutalHellStaffMissile",0,True,0,0);
					A_FireCustomMissile("WimpyPoweredBrutalHellStaffMissile",0,False,-12,0);
					A_FireCustomMissile("WimpyPoweredBrutalHellStaffMissile",0,False,12,0);
					A_FireCustomMissile("WimpyPoweredBrutalHellStaffMissile",0,False,-12,-12);
					A_FireCustomMissile("WimpyPoweredBrutalHellStaffMissile",0,False,12,-12);
					A_FireCustomMissile("WimpyPoweredBrutalHellStaffMissile",0,False,0,-18);
				}
				Else
				{
					A_FireCustomMissile("PoweredBrutalHellStaffMissile",0,True,0,18);
					A_FireCustomMissile("PoweredBrutalHellStaffMissile",0,True,-6,12);
					A_FireCustomMissile("PoweredBrutalHellStaffMissile",0,False,6,12);
					A_FireCustomMissile("PoweredBrutalHellStaffMissile",0,True,0,0);
					A_FireCustomMissile("PoweredBrutalHellStaffMissile",0,False,-12,0);
					A_FireCustomMissile("PoweredBrutalHellStaffMissile",0,False,12,0);
					A_FireCustomMissile("PoweredBrutalHellStaffMissile",0,False,-12,-12);
					A_FireCustomMissile("PoweredBrutalHellStaffMissile",0,False,12,-12);
					A_FireCustomMissile("PoweredBrutalHellStaffMissile",0,False,0,-18);
				}
			}
			TNT1 A 0 A_Recoil(1 * GetCVAR("SteadyHand"))
			HROD B 2 Bright Offset(0,37) A_SetPitch(pitch-(0.4 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_Recoil(-1 * GetCVAR("SteadyHand"))
			HROD B 2 Bright Offset(0,35) A_SetPitch(pitch+(0.15 * GetCVAR("SteadyHand")))
			HROD A 2 Offset(0,34) A_SetPitch(pitch+(0.2 * GetCVAR("SteadyHand")))
			HROD A 2 Offset(0,33)
			HROD B 0 A_ReFire("Waiting")
			Goto Ready
		PoweredFire2Check:
			TNT1 A 0 A_JumpIf(CallACS("ExpressSkills")==1, "PoweredFire2")
			TNT1 A 0 A_JumpIfInventory("Level",14,"PoweredFire2")
			TNT1 A 0 ACS_NamedExecuteAlways("NeedLevelAttack",0,14)
			Goto Ready
		PoweredFire2:
			HROD CDEF 2
			TNT1 A 0 A_PlaySound("PLASALT",7,1,True)
			Goto PoweredFire2Loop
		PoweredFire2Loop:
			TNT1 A 0 A_TakeInventory("ClassicSkullRodAmmo",1)
			TNT1 A 0 A_SetPitch(frandom(pitch-(0.5 * GetCVAR("SteadyHand")),pitch+(0.5 * GetCVAR("SteadyHand"))))
			TNT1 A 0 A_SetAngle(frandom(angle-(0.5 * GetCVAR("SteadyHand")),angle+(0.5 * GetCVAR("SteadyHand"))))
			HROD CDEFG 1
			{
				
				If (GetCVAR("NoScalingPlz") == 1)
				{
					A_CustomRailgun(25,0,"Red","Red",RGF_SILENT|RGF_FULLBRIGHT|RGF_CENTERZ,0,10,"BrutalStaffPuffSpark",0,0,0,0,25,5,"RedSparks",10,270);
				}
				Else
				{
					A_CustomRailgun(25,0,"Red","Red",RGF_SILENT|RGF_FULLBRIGHT|RGF_CENTERZ,0,10,"BrutalStaffPuffSpark",0,0,0,0,25,5,"RedSparks",10,270);
				}
			}
			TNT1 A 0 A_SetPitch(frandom(pitch-(0.5 * GetCVAR("SteadyHand")),pitch+(0.5 * GetCVAR("SteadyHand"))))
			TNT1 A 0 A_SetAngle(frandom(angle-(0.5 * GetCVAR("SteadyHand")),angle+(0.5 * GetCVAR("SteadyHand"))))
			HROD B 0 A_Refire("PoweredFire2Loop")
			Goto Ready
		Waiting:
			HROD A 1 A_WeaponReady(WRF_NOSECONDARY)
			TNT1 A 0 A_ReFire("Waiting")
			Goto Ready
		Kicking:
			HROD A 1 Offset(0,42)
			HROD A 1 Offset(0,52)
			HROD A 1 Offset(0,62)
			HROD A 1 Offset(0,72)
			HROD A 1 Offset(0,82)
			TNT1 A 0 A_PlaySound("WHOP")
			CKCK ABCD 1 Offset(0,32)
			//TNT1 A 0 A_CustomPunch(random(20,40)+(CallACS("StrengthCalculator")/4),1,0,"BrutalKickPuff", 104)
			TNT1 A 0 A_FireCustomMissile("BootOfFury",0,0,0,0)
			TNT1 A 0 A_Recoil(-6)
			CKCK E 3
			TNT1 A 0 A_Recoil(3)
			CKCK DCB 1
			CKCK AA 1 A_WeaponReady(WRF_NOSECONDARY)
			TNT1 AAA 1 A_WeaponReady(WRF_NOSECONDARY)
			HROD A 1 Offset(0,82)
			HROD A 1 Offset(0,72)
			HROD A 1 Offset(0,62)
			HROD A 1 Offset(0,52)
			HROD A 1 Offset(0,42)
			HROD A 0 Offset(0,32)
			TNT1 A 0 A_JumpIfInventory("Action1",1,"Kicking")
			Goto Ready
  }
}