package Items
using RTDB, BaseStats, Perks, Prereqs

[ notQueryable ]
BasePowerGrip : HandsModule
{
	string friendlyName = "Power Grip";
	displayName = "LocKey#40863";
	localizedDescription = "LocKey#40864";
	iconPath = "cw_hands_powergrip";
	CName cyberwareType = "PowerGrip";
	entityName = "subdermal_grip";
	appearanceName = "stage_1_";
	buyPrice += 
	[
		"Price.PowerGrip"
	];
	sellPrice += 
	[
		"Price.PowerGrip"
	];
}

[ notQueryable ]
PowerGripRare : BasePowerGrip
{
	quality = "Quality.Rare";
	fk< GameplayLogicPackage >[] OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasPowerGrip";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#40865";
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	counterpart = "Items.AdvancedPowerGripCommon";
}

[ notQueryable ]
PowerGripEpic : BasePowerGrip
{
	quality = "Quality.Epic";
	fk< GameplayLogicPackage >[] OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasPowerGrip";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			effectors = 
			[
				{
					prereqRecord = "Prereqs.PowerWeaponHeldPrereq";
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.RicochetCount";
								modifierType = "Additive";
								value = 1f;
							} : ConstantStatModifier
						];
					};
				} : Perks.ApplyStatGroupOnWeapon
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#40866";
				intValues = 
				[
					1
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}
	];
	counterpart = "Items.AdvancedPowerGripCommon";
}

[ notQueryable ]
PowerGripLegendary : BasePowerGrip
{
	quality = "Quality.Legendary";
	statModifiers = 
	[
		{
			statType = "BaseStats.BonusRicochetDamage";
			modifierType = "Additive";
			value = 50f;
		} : ConstantStatModifier
	];
	fk< GameplayLogicPackage >[] OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasPowerGrip";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			effectors = 
			[
				{
					prereqRecord = "Prereqs.PowerWeaponHeldPrereq";
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.RicochetCount";
								modifierType = "Additive";
								value = 1f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.BonusRicochetDamage";
								modifierType = "Additive";
								value = 50f;
							} : ConstantStatModifier
						];
					};
				} : Perks.ApplyStatGroupOnWeapon
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#40866";
				intValues = 
				[
					1
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}
	];
	counterpart = "Items.AdvancedPowerGripCommon";
}

[ notQueryable ]
SmartLinkRare : HandsModule
{
	string friendlyName = "SmartLink";
	displayName = "LocKey#40867";
	localizedDescription = "LocKey#40868";
	iconPath = "cw_hands_smartlink";
	quality = "Quality.Rare";
	entityName = "smartgun_link";
	appearanceName = "stage_1_";
	fk< GameplayLogicPackage >[] OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#40869";
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}
	];
	CName cyberwareType = "SmartLink";
	buyPrice += 
	[
		"Price.SmartLink"
	];
	sellPrice += 
	[
		"Price.SmartLink"
	];
	counterpart = "Items.AdvancedSmartLinkCommon";
}

[ notQueryable ]
SmartLinkEpic : SmartLinkRare
{
	quality = "Quality.Epic";
	fk< GameplayLogicPackage >[] OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			effectors = 
			[
				{
					prereqRecord = "Prereqs.SmartWeaponHeldPrereq";
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.SmartGunHitProbability";
								modifierType = "Additive";
								value = 0.1f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.CritDamage";
								modifierType = "Additive";
								value = 10f;
							} : ConstantStatModifier
						];
					};
				} : Perks.ApplyStatGroupOnWeapon
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#40870";
				intValues = 
				[
					10, 10
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}
	];
	counterpart = "Items.AdvancedSmartLinkCommon";
}

[ notQueryable ]
SmartLinkLegendary : SmartLinkRare
{
	quality = "Quality.Legendary";
	fk< GameplayLogicPackage >[] OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			effectors = 
			[
				{
					prereqRecord = "Prereqs.SmartWeaponHeldPrereq";
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.SmartGunHitProbability";
								modifierType = "Additive";
								value = 0.15f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.CritDamage";
								modifierType = "Additive";
								value = 20f;
							} : ConstantStatModifier
						];
					};
				} : Perks.ApplyStatGroupOnWeapon
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#40870";
				intValues = 
				[
					15, 20
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}
	];
	counterpart = "Items.AdvancedSmartLinkCommon";
}

