
//==============================================================================
//=========================== Corvette's Dragon Claw ===========================
//==============================================================================


ACTOR ClassicDragonClaw : HereticWeapon
{
	+BLOODSPLATTER
	-AMMO_OPTIONAL
	-ALT_AMMO_OPTIONAL
	Weapon.SelectionOrder 2
	Inventory.RestrictedTo "Corvette"
	Inventory.ForbiddenTo "BrutalCorvus"
	Weapon.AmmoType1 "ClassicBlasterAmmo"
	Weapon.AmmoType2 "ClassicBlasterAmmo"
	Weapon.AmmoUse1 1
	Weapon.AmmoUse2 1
	Weapon.AmmoGive1 0
	Weapon.YAdjust 15
	Weapon.Kickback 1
	Weapon.SisterWeapon "None"
	ConversationID 188
	Inventory.PickupMessage "Picked up the Dragon Claw, time to RIP AND TEAR (but with magic!)"
	Tag "$TAG_BLASTER"
	Obituary "$OB_MPBLASTER"
	Weapon.SlotNumber 4
	Speed 4
  
	States
	{
		Spawn:
			TNT1 A 0 A_SpawnItemEx("BlueFlareSmall",0,0,22)
			WBLS AA 1 Bright A_SetAngle(angle+speed)
			Goto Spawn
		Ready:
			TNT1 A 0 A_JumpIfInventory("Action1",1,"Kicking")
			CBLS A 1 A_WeaponReady (WRF_ALLOWZOOM)
			TNT1 A 0 A_SetCrosshair (10)
			Loop
		Deselect:
			CBLS A 0 A_Lower
			TNT1 A 0 A_StopSound(4)
			CBLS A 1 A_Lower
			Loop
		Select:
			CBLS A 0 A_Raise
			CBLS A 1 A_Raise
			Loop
		Fire:
			CBLS BC 1 Bright 
		Hold:
			TNT1 A 0 A_JumpIfInventory("PowerClassicLevel2",1,"PoweredHold")
			//TNT1 A 0 A_PlayWeaponSound("BLSTNEW")
			TNT1 A 0 A_StartSound("BLSTNEW",1,CHANF_NOPAUSE) 
			CBLS D 0 A_FireCustomMissile("BlasterTracer",frandom(-2, 2),TRUE,0,0,0,frandom(-1,1))
			TNT1 A 0 A_Recoil(1 * GetCVAR("SteadyHand"))
			CBLS D 1 Bright Offset(0,37) A_SetPitch(pitch-(0.5 * GetCVAR("SteadyHand")))
			CBLS C 1 Bright Offset(0,41) A_SetPitch(pitch-(0.25 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_Recoil(-1 * GetCVAR("SteadyHand"))
			CBLS B 1 Bright Offset(0,36) A_SetPitch(pitch+(0.6 * GetCVAR("SteadyHand")))
			TNT1 A 0
			CBLS A 0 A_ReFire
			Goto Ready
		AltFire:
			TNT1 A 0 A_JumpIfInventory("PowerClassicLevel2",1,"PoweredAltFireCheck")
			TNT1 A 0 A_JumpIf(CallACS("ExpressSkills")==1, "SuperAttack")
			TNT1 A 0 A_JumpIfInventory("Level",5,"SuperAttack")
			TNT1 A 0 ACS_NamedExecuteAlways("NeedLevelAttack",0,5)
			Goto Ready
		SuperAttack:
			CBLS BC 1 Bright 
		AltHold:
			//TNT1 A 0 A_PlayWeaponSound("BLSTNEW2")
			TNT1 A 0 A_StartSound("BLSTNEW2",1,CHANF_NOPAUSE)
			CBLS D 0 A_FireCustomMissile("AltBlasterTracer",0,TRUE)
			CBLS D 0 A_FireCustomMissile("AltBlasterTracer2",0,TRUE)
			CBLS D 0 A_FireCustomMissile("AltBlasterTracer3",0,TRUE)
			CBLS D 0 A_FireCustomMissile("AltBlasterTracer4",0,TRUE)
			/*CBLS D 0 A_FireCustomMissile("AltBlasterTracer",0,TRUE,1.5,1)
			CBLS D 0 A_FireCustomMissile("AltBlasterTracer2",0,FALSE,-1.5,-1)
			CBLS D 0 A_FireCustomMissile("AltBlasterTracer3",0,FALSE,-1.5,1)
			CBLS D 0 A_FireCustomMissile("AltBlasterTracer4",0,FALSE,1.5,-1)*/
			TNT1 A 0 A_Recoil(1 * GetCVAR("SteadyHand"))
			CBLS D 2 Bright Offset(0,37) A_SetPitch(pitch-(0.5 * GetCVAR("SteadyHand")))
			CBLS C 1 Bright Offset(0,41) A_SetPitch(pitch-(0.25 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_Recoil(-1 * GetCVAR("SteadyHand"))
			CBLS B 2 Bright Offset(0,36) A_SetPitch(pitch+(0.6 * GetCVAR("SteadyHand")))
			TNT1 A 0
			CBLS A 0 A_ReFire
			Goto Ready
		PoweredHold:
			TNT1 A 0 A_PlayWeaponSound("BLSTNEW")
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS D 0 A_FireCustomMissile("PoweredBlasterTracer",frandom(-2, 2),TRUE,0,0,0,frandom(-1,1))
			TNT1 A 0 A_Recoil(1 * GetCVAR("SteadyHand"))
			CBLS D 2
			CBLS D 2 Bright Offset(0,37) A_SetPitch(pitch-(0.5 * GetCVAR("SteadyHand")))
			CBLS C 2 Bright Offset(0,41) A_SetPitch(pitch-(0.25 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_Recoil(-1 * GetCVAR("SteadyHand"))
			CBLS B 2 Bright Offset(0,36) A_SetPitch(pitch+(0.6 * GetCVAR("SteadyHand")))
			CBLS A 0 A_ReFire
			Goto Ready
		PoweredAltFireCheck:
			TNT1 A 0 A_JumpIf(CallACS("ExpressSkills")==1, "PoweredAltFire")
			TNT1 A 0 A_JumpIfInventory("Level",13,"PoweredAltFire")
			TNT1 A 0 ACS_NamedExecuteAlways("NeedLevelAttack",0,13)
			Goto Ready
		PoweredAltFire:
			CBLS A 0 A_JumpIfInventory("ClassicBlasterAmmo",40,1)
			goto Ready
			TNT1 A 0 A_PlaySound("ETHPORT1",7,1,TRUE)
			TNT1 A 0 A_QuakeEX(2,2,1,50,0,128)
			TNT1 A 0 A_Light(-1)
			CBLS A 3 Bright Offset(2,36) A_SetPitch(pitch-(0.5 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 3  Offset(0,37) A_SetPitch(pitch-(0.25 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 3 Bright Offset(-2,36) A_SetPitch(pitch+(0.6 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			TNT1 A 0 A_Light(-3)
			CBLS A 3  Offset(3,37) A_SetPitch(pitch-(0.5 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 3 Bright Offset(0,36) A_SetPitch(pitch-(0.25 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 3  Offset(-3,37) A_SetPitch(pitch+(0.6 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			TNT1 A 0 A_Light(-5)
			CBLS A 2 Bright Offset(2,36) A_SetPitch(pitch-(0.5 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 2  Offset(0,37) A_SetPitch(pitch-(0.25 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 2 Bright Offset(-2,36) A_SetPitch(pitch+(0.6 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			TNT1 A 0 A_Light(-7)
			CBLS A 2  Offset(3,37) A_SetPitch(pitch-(0.5 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 2 Bright Offset(0,36) A_SetPitch(pitch-(0.25 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 2  Offset(-3,37) A_SetPitch(pitch+(0.6 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			TNT1 A 0 A_Light(-9)
			CBLS A 2 Bright Offset(2,36) A_SetPitch(pitch-(0.5 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 2  Offset(0,37) A_SetPitch(pitch-(0.25 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 2 Bright Offset(-2,36) A_SetPitch(pitch+(0.6 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			TNT1 A 0 A_Light(-11)
			CBLS A 2  Offset(3,37) A_SetPitch(pitch-(0.5 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 2 Bright Offset(0,36) A_SetPitch(pitch-(0.25 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 2  Offset(-3,37) A_SetPitch(pitch+(0.6 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			TNT1 A 0 A_Light(-13)
			CBLS A 1 Bright Offset(3,36) A_SetPitch(pitch-(0.5 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 1  Offset(0,37) A_SetPitch(pitch-(0.25 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 1 Bright Offset(-2,36) A_SetPitch(pitch+(0.6 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			TNT1 A 0 A_Light(-15)
			CBLS A 1  Offset(3,37) A_SetPitch(pitch-(0.5 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 1 Bright Offset(0,36) A_SetPitch(pitch-(0.25 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 1  Offset(-3,37) A_SetPitch(pitch+(0.6 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			TNT1 A 0 A_Light(-18)
			CBLS A 1 Bright Offset(3,36) A_SetPitch(pitch-(0.5 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 1  Offset(0,37) A_SetPitch(pitch-(0.25 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",1)
			CBLS A 1 Bright Offset(-2,36) A_SetPitch(pitch+(0.6 * GetCVAR("SteadyHand")))
			TNT1 A 0 A_TakeInventory("ClassicBlasterAmmo",14)
			Goto PoweredAltHold
		PoweredAltHold:
			TNT1 A 0 A_StartSound("LITCRASH",1,CHANF_NOPAUSE,1.0,ATTN_NONE)
			TNT1 A 0 A_Light(15)
			TNT1 A 0 A_JumpIf(GetCVAR("NoScalingPlz"),"WimpyPoweredAltHold")
			BLSR DCBDCBDCBD 1 Bright
			{
				A_WeaponOffset(0,OverlayY + random(1,3));
				A_FireCustomMissile("PowerAltBlasterTracer",0,FALSE,2,0);
				A_FireCustomMissile("PowerAltBlasterTracer2",0,FALSE,-2,0);
				A_FireCustomMissile("PowerAltBlasterTracer3",0,FALSE,-2,0);
				A_FireCustomMissile("PowerAltBlasterTracer4",0,FALSE,2,0);
				A_StartSound("LITCRAS2",1,CHANF_NOPAUSE | CHANF_OVERLAP,1.0,ATTN_NONE);
				A_Recoil(1);
			}
			TNT1 A 0 A_Recoil(30)
			Goto Ready
		WimpyPoweredAltHold:
			BLSR DCBDCBDCBD 1 Bright
			{
				A_WeaponOffset(0,OverlayY + random(1,3));
				A_FireCustomMissile("WimpyPowerAltBlasterTracer",0,FALSE,2,0);
				A_FireCustomMissile("WimpyPowerAltBlasterTracer2",0,FALSE,-2,0);
				A_FireCustomMissile("WimpyPowerAltBlasterTracer3",0,FALSE,-2,0);
				A_FireCustomMissile("WimpyPowerAltBlasterTracer4",0,FALSE,2,0);
				A_StartSound("LITCRAS2",1,CHANF_NOPAUSE | CHANF_OVERLAP,1.0,ATTN_NONE);
				A_Recoil(1);
			}
			TNT1 A 0 A_Recoil(30)
			TNT1 A 0 A_Light(0)
			CBLS A 1 Offset(0,56)
			CBLS A 1 Offset(0,61)
			CBLS A 1 Offset(0,71)
			CBLS A 15 Offset(0,86)
			CBLS A 2 Offset(0,71)
			CBLS A 2 Offset(0,56)
			CBLS A 2 Offset(0,41)
			CBLS A 2 Offset(0,36)
			Goto Ready    
		Kicking:
			CBLS A 1 Offset(0,42)
			CBLS A 1 Offset(0,52)
			CBLS A 1 Offset(0,62)
			CBLS A 1 Offset(0,72)
			CBLS 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)
			CBLS A 1 Offset(0,82)
			CBLS A 1 Offset(0,72)
			CBLS A 1 Offset(0,62)
			CBLS A 1 Offset(0,52)
			CBLS A 1 Offset(0,42)
			CBLS A 0 Offset(0,32)
			TNT1 A 0 A_JumpIfInventory("Action1",1,"Kicking")
			Goto Ready
	}
}