package Items
using RTDB, BaseStats

[ notQueryable ]
Base_Silverhand : Base_Handgun
{
	fk< ItemBlueprint > blueprint = "Items.Iconic_Ranged_Weapon_NoAttachments_Blueprint";
	string friendlyName = "w_handgun_malorian_silverhand";
	fk< UIIcon > hudIcon = "HUDWeaponIcons.Malorian";
	CName[] tags += 
	[
		"Preload", "Weapon", "Handgun"
	];
	fk< SlotItemPartListElement >[] slotPartList += 
	[
		{
			slot = "AttachmentSlots.Receiver";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.w_handgun__malorian_silverhand__rcv1";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.Barrel";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.w_handgun__malorian_silverhand__base1";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.Magazine";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.w_handgun__malorian_silverhand__mag_std";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.MagazineEmpty";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.w_handgun__malorian_silverhand__mag_stdr";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.IconicWeaponModLegendary";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.Silverhand3516WeaponMod";
				}
			];
		}
	];
	displayName = "LocKey#3589";
	localizedDescription = "LocKey#3590";
	fk< Attack >[] attacks = 
	[
		"Attacks.Bullet_GameEffect", "Attacks.Bullet_Projectile", "Attacks.FireBlast", "Attacks.NPCBulletEffect", "Attacks.NPCBulletProjectile"
	];
	fk< RangedAttackPackage > rangedAttacks = "Attacks.SilverhandBulletPackage";
	fk< Item > ammo = "Ammo.HandgunAmmo";
	statModifiers += 
	[
		{
			statType = "BaseStats.HitDismembermentFactor";
			modifierType = "Additive";
			value = 1.5f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.Level";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier
	];
	bool scaleToPlayer = true;
	statModifierGroups = 
	[
		"Items.Base_Weapon_Damage_Type_Min_Max", "Items.Base_Silverhand_Handling_Stats", "Items.Base_Silverhand_Recoil_Stats", "Items.Base_Silverhand_Spread_Stats", "Items.Base_Silverhand_Constant_Stats", "Items.Base_Silverhand_Aim_Stats", "Items.Base_Silverhand_RPG_Stats", "Items.Base_Handgun_Misc_Stats", "Items.Base_PlayerState_Spread_Stats", "Items.Base_Handgun_DeadReckoning_Stats", "Items.Base_Silverhand_Damage_Stats"
	];
	fk< GameplayLogicPackage >[] OnAttach += 
	[
		"EquipmentGLP.MediumStaminaRegen", "EquipmentGLP.MediumStaminaDelay"
	];
	enableNpcRPGData = true;
	npcRPGData = 
	{
		statModifierGroups += 
		[
		];
	} : Base_Silverhand_NPC_Data;
	fk< TriggerMode >[] triggerModes = 
	[
		"TriggerMode.SemiAuto"
	];
	fk< TriggerMode > primaryTriggerMode = "TriggerMode.SemiAuto";
	CName audioName = "wea_set_silverhand";
	previewEffectName = "weaponPreview";
	previewEffectTag = "ricochet";
	quality = "Quality.Legendary";
	fk< WeaponFxPackage > fxPackage = "WeaponFxPackage.PowerLargeCaliber";
	float weaponNearPlane = 12.0f;
	float weaponFarPlane = 22.0f;
	float weaponEdgesSharpness = 0.4958f;
	float weaponVignetteIntensity = 0.1357f;
	float weaponVignetteRadius = 0.6482f;
	float weaponVignetteCircular = 0.0f;
	float weaponBlurIntensity = 1.0f;
	float weaponNearPlane_aim = 16.0f;
	float weaponFarPlane_aim = 24.4f;
	float weaponEdgesSharpness_aim = 0.4958f;
	float weaponVignetteIntensity_aim = 0.1357f;
	float weaponVignetteRadius_aim = 0.6814f;
	float weaponVignetteCircular_aim = 0.1745f;
	float weaponBlurIntensity_aim = 1.f;
	baseReloadTime = 1.35f;
	baseEmptyReloadTime = 1.35f;
	uninterruptibleReloadStart = 0.5f;
	uninterruptibleEmptyReloadStart = 0.5f;
}

Base_Silverhand_NPC_Data : Base_Handgun_NPC_Data
{
	statModifierGroups += 
	[
		"Items.Base_Silverhand_Handling_Stats", "Items.Base_Silverhand_NPC_Damage_Stats"
	];
}

Base_Silverhand_RPG_Stats : Base_Handgun_RPG_Stats
{
	statModifiers += 
	[
		{
			statType = "BaseStats.ThermalDamage";
			modifierType = "Additive";
			refStat = "BaseStats.DamagePerHit";
			opSymbol = "*";
			value = 0.7f;
		} : CombinedStatModifier
	];
}

Base_Silverhand_Damage_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.DPS";
			modifierType = "Additive";
			value = 64f;
		} : ConstantStatModifier
	];
}

Base_Silverhand_NPC_Damage_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.DPS";
			modifierType = "Additive";
			value = 40f;
		} : ConstantStatModifier
	];
}

Base_Silverhand_Handling_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			value = 1.f;
		} : NumShotsToFireModifier, 
		{
			value = 0.3f;
		} : CycleTimeModifier, 
		{
			value = 10.f;
		} : MagazineCapacityModifier, 
		{
			value = 1.35f;
		} : ReloadTimeModifier, 
		{
			value = 1.35f;
		} : EmptyReloadTimeModifier, 
		{
			value = 0.15f;
		} : ReloadEndTimeModifier, 
		{
			value = 1.15f;
		} : EmptyReloadEndTimeModifier, 
		{
			value = 1.2f;
		} : ZoomLevelModifier, 
		{
			value = 0.1f;
		} : AimInTimeModifier, 
		{
			value = 0.2f;
		} : AimOutTimeModifier, 
		{
			value = 1.f;
		} : ProjectilesPerShotModifier, 
		{
			value = 10.f;
		} : AmmoPerQuickMeleeModifier, 
		"BaseStats.ProjectilesPerShotCombinedModifier", {
			value = 3.f;
		} : EquipDuration_FirstModifier, 
		{
			value = 1.f;
		} : RicochetChanceModifier, 
		{
			value = 1.f;
		} : RicochetCountModifier, 
		{
			value = 15.f;
		} : RicochetTargetSearchAngleModifier, 
		{
			value = 0.f;
		} : RicochetMinAngleModifier, 
		{
			value = 75.f;
		} : RicochetMaxAngleModifier, 
		{
			statType = "BaseStats.TechPierceEnabled";
			modifierType = "Additive";
			value = 0f;
		} : ConstantStatModifier
	];
}

Base_Silverhand_Recoil_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			value = 10.f;
		} : RecoilDirModifier, 
		{
			value = 25.f;
		} : RecoilAngleModifier, 
		{
			value = 0.05f;
		} : RecoilHoldDurationModifier, 
		{
			value = 0.023f;
		} : RecoilTimeModifier, 
		{
			value = 0.05f;
		} : RecoilDelayModifier, 
		{
			value = 0.15f;
		} : RecoilRecoveryTimeModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearXModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearYModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearXADSModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearYADSModifier
	];
}

Base_Silverhand_Spread_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			value = 0.0f;
		} : SpreadMinXModifier, 
		{
			value = 1.f;
		} : SpreadUseInAdsModifier, 
		{
			value = 0.0f;
		} : SpreadAdsMinXModifier, 
		{
			value = 1.75f;
		} : SpreadResetSpeedModifier, 
		{
			value = 0.2f;
		} : SpreadResetTimeThresholdModifier, 
		{
			value = 0.f;
		} : SpreadRandomizeOriginPointModifier, 
		{
			value = 1.f;
		} : SpreadUseCircularSpreadModifier, 
		{
			value = 0.f;
		} : SpreadUseEvenDistributionModifier, 
		{
			value = 1.f;
		} : SpreadEvenDistributionRowCountModifier
	];
}

Base_Silverhand_Constant_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.SpreadDefaultX";
			modifierType = "Additive";
			value = 0.45f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAdsDefaultX";
			modifierType = "Additive";
			value = 0.075f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadMaxX";
			modifierType = "Additive";
			value = 1.8f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAdsMaxX";
			modifierType = "Additive";
			value = 0.2f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadChangePerShot";
			modifierType = "Additive";
			value = 0.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAdsChangePerShot";
			modifierType = "Additive";
			value = 0.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilKickMin";
			modifierType = "Additive";
			value = 1.5f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilKickMax";
			modifierType = "Additive";
			value = 1.9f;
		} : ConstantStatModifier, 
		{
			value = 1.f;
		} : SwayResetOnAimStartModifier, 
		{
			value = 3.f;
		} : SwayTraversalTimeModifier, 
		{
			value = 0.4f;
		} : SwaySideMaximumAngleDistanceModifier, 
		{
			value = 0.3f;
		} : SwaySideMinimumAngleDistanceModifier, 
		{
			value = 70.f;
		} : SwaySideTopAngleLimitModifier, 
		{
			value = 25.f;
		} : SwaySideBottomAngleLimitModifier, 
		{
			value = 0.25f;
		} : SwaySideStepChangeMaximumFactorModifier, 
		{
			value = 0.0f;
		} : SwaySideStepChangeMinimumFactorModifier, 
		{
			value = 0.7f;
		} : SwayCurvatureMaximumFactorModifier, 
		{
			value = 0.5f;
		} : SwayCurvatureMinimumFactorModifier, 
		{
			value = 0.3f;
		} : SwayCenterMaximumAngleOffsetModifier, 
		{
			value = 0.0f;
		} : SwayInitialOffsetRandomFactorModifier, 
		{
			statType = "BaseStats.RecoilDriftRandomRangeMin";
			modifierType = "Additive";
			value = 0.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilDriftRandomRangeMax";
			modifierType = "Additive";
			value = 0.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilMagForFullDrift";
			modifierType = "Additive";
			value = 0.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilAnimation";
			modifierType = "Additive";
			value = 1.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAnimation";
			modifierType = "Additive";
			value = 1.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.FirePower";
			modifierType = "Multiplier";
			value = 1.515f;
		} : ConstantStatModifier, 
		"AttackModifier.WeaponArmorPenetrationMedium"
	];
}

Base_Silverhand_Aim_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.AimFOV";
			modifierType = "Additive";
			value = 40;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.AimOffset";
			modifierType = "Additive";
			value = 0.02f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
Silverhand_Malorian : Base_Silverhand
{
}

w_handgun__malorian_silverhand__rcv1 : WeaponHandgunReceiverBase
{
	string friendlyName = "w_handgun__malorian_silverhand__rcv1";
	CName appearanceResourceName = "w_handgun__malorian_silverhand__rcv1_01";
}

w_handgun__malorian_silverhand__base1 : WeaponHandgunBarrelBase
{
	string friendlyName = "w_handgun__malorian_silverhand__base1";
	CName appearanceResourceName = "w_handgun__malorian_silverhand__base1_01";
}

w_handgun__malorian_silverhand__mag_std : WeaponMagazineBase
{
	string friendlyName = "w_handgun__malorian_silverhand__mag_std";
	CName appearanceResourceName = "w_handgun__malorian_silverhand__mag_std_01";
}

w_handgun__malorian_silverhand__mag_stdr : WeaponMagazineBase
{
	string friendlyName = "w_handgun__malorian_silverhand__mag_stdr";
	CName appearanceResourceName = "w_handgun__malorian_silverhand__mag_stdr_01";
}

