package Items
using RTDB, BaseStats, Perks, Prereqs, Price, Effectors

[ notQueryable ]
AdvancedHandsModule : HandsModule
{
	usesVariants = true;
	blueprint = "Items.GenericShardableCyberwareBlueprint";
	slotPartListPreset = 
	[
		"Items.GenericItemRootPreset"
	];
	statModifiers += 
	[
		"Items.ItemArmorToArmor", {
			statType = "BaseStats.Protection";
			modifierType = "Additive";
			refStat = "BaseStats.Armor";
			opSymbol = "*";
			value = 1.0f;
		} : CombinedStatModifier
	];
}

AdvancedPowerGripCommon : AdvancedHandsModule
{
	string friendlyName = "Power Grip";
	displayName = "LocKey#40863";
	localizedDescription = "LocKey#40864";
	iconPath = "cw_hands_powergrip";
	entityName = "subdermal_grip";
	appearanceName = "stage_1_";
	quality = "Quality.Common";
	upgradeCostMult = 0.5f;
	statModifiers += 
	[
		{
			statType = "BaseStats.AttunementHelper";
			modifierType = "Additive";
			refStat = "BaseStats.TechnicalAbility";
			refObject = "Player";
			opSymbol = "*";
			value = 0.1f;
		} : CombinedStatModifier
	];
	variants = 
	[
		"Variants.Humanity2Cost"
	];
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasPowerGrip";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#40865";
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}
	];
	slotPartListPreset += 
	[
		{
			itemPartPreset = "Items.AdvancedPowerGripStatsShard";
		} : StatsShardSlotPart
	];
	CName cyberwareType = "PowerGrip";
	buyPrice += 
	[
		{
			statType = "BaseStats.Price";
			modifierType = "Multiplier";
			id = "cyberware_curves";
			column = "low_humanity_to_price_mult";
			refStat = "BaseStats.Quality";
			refObject = "Item";
		} : CurveStatModifier
	];
	sellPrice += 
	[
		{
			statType = "BaseStats.Price";
			modifierType = "Multiplier";
			id = "cyberware_curves";
			column = "low_humanity_to_price_mult";
			refStat = "BaseStats.Quality";
			refObject = "Item";
		} : CurveStatModifier
	];
	nextUpgradeItem = "Items.AdvancedPowerGripCommonPlus";
}

AdvancedPowerGripStatsShard : CyberwareStatsShardStatic
{
	statModifiers += 
	[
		"Modifiers.ReloadSpeedPercentBonus", "Modifiers.CarryCapacity", "Modifiers.CarryCapacityQualityToggle", "Modifiers.ADSSpeedPercentBonus", "Modifiers.ADSSpeedPercentBonusToggle"
	];
}

[ notQueryable ]
AdvancedPowerGripCommonPlus : AdvancedPowerGripCommon
{
	quality = "Quality.CommonPlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasPowerGrip";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.CanSeeRicochetVisuals";
					modifierType = "Additive";
					value = 1f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.BonusRicochetDamage";
					modifierType = "Additive";
					value = 3f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87338";
				floatValues = 
				[
					3f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#87337";
			};
		}
	];
	nextUpgradeItem = "Items.AdvancedPowerGripUncommon";
}

AdvancedPowerGripUncommon : AdvancedPowerGripCommon
{
	quality = "Quality.Uncommon";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasPowerGrip";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.CanSeeRicochetVisuals";
					modifierType = "Additive";
					value = 1f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.BonusRicochetDamage";
					modifierType = "Additive";
					value = 8f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87338";
				floatValues = 
				[
					8f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#87337";
			};
		}
	];
	nextUpgradeItem = "Items.AdvancedPowerGripUncommonPlus";
}

[ notQueryable ]
AdvancedPowerGripUncommonPlus : AdvancedPowerGripCommon
{
	quality = "Quality.UncommonPlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasPowerGrip";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.CanSeeRicochetVisuals";
					modifierType = "Additive";
					value = 1f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.BonusRicochetDamage";
					modifierType = "Additive";
					value = 11f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87338";
				floatValues = 
				[
					11f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#87337";
			};
		}
	];
	nextUpgradeItem = "Items.AdvancedPowerGripRare";
}

AdvancedPowerGripRare : AdvancedPowerGripCommon
{
	quality = "Quality.Rare";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasPowerGrip";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.CanSeeRicochetVisuals";
					modifierType = "Additive";
					value = 1f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.BonusRicochetDamage";
					modifierType = "Additive";
					value = 16f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87338";
				floatValues = 
				[
					16f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#87337";
			};
		}, 
		"Attunements.TechRicochetDamage"
	];
	nextUpgradeItem = "Items.AdvancedPowerGripRarePlus";
}

[ notQueryable ]
AdvancedPowerGripRarePlus : AdvancedPowerGripCommon
{
	quality = "Quality.RarePlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasPowerGrip";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.CanSeeRicochetVisuals";
					modifierType = "Additive";
					value = 1f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.BonusRicochetDamage";
					modifierType = "Additive";
					value = 18f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87338";
				floatValues = 
				[
					18f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#87337";
			};
		}, 
		"Attunements.TechRicochetDamage"
	];
	nextUpgradeItem = "Items.AdvancedPowerGripEpic";
}

AdvancedPowerGripEpic : AdvancedPowerGripCommon
{
	quality = "Quality.Epic";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasPowerGrip";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.CanSeeRicochetVisuals";
					modifierType = "Additive";
					value = 1f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.BonusRicochetDamage";
					modifierType = "Additive";
					value = 23f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87338";
				floatValues = 
				[
					23f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#87337";
			};
		}, 
		"Attunements.TechRicochetDamage"
	];
	nextUpgradeItem = "Items.AdvancedPowerGripEpicPlus";
}

[ notQueryable ]
AdvancedPowerGripEpicPlus : AdvancedPowerGripCommon
{
	quality = "Quality.EpicPlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasPowerGrip";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.CanSeeRicochetVisuals";
					modifierType = "Additive";
					value = 1f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.BonusRicochetDamage";
					modifierType = "Additive";
					value = 25f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87338";
				floatValues = 
				[
					25f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#87337";
			};
		}, 
		"Attunements.TechRicochetDamage"
	];
	nextUpgradeItem = "Items.AdvancedPowerGripLegendary";
}

AdvancedPowerGripLegendary : AdvancedPowerGripCommon
{
	quality = "Quality.Legendary";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasPowerGrip";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.CanSeeRicochetVisuals";
					modifierType = "Additive";
					value = 1f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.BonusRicochetDamage";
					modifierType = "Additive";
					value = 30f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87338";
				floatValues = 
				[
					30f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#87337";
			};
		}, 
		"Attunements.TechRicochetDamage"
	];
	nextUpgradeItem = "Items.AdvancedPowerGripLegendaryPlus";
}

[ notQueryable ]
AdvancedPowerGripLegendaryPlus : AdvancedPowerGripCommon
{
	quality = "Quality.LegendaryPlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasPowerGrip";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.CanSeeRicochetVisuals";
					modifierType = "Additive";
					value = 1f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.BonusRicochetDamage";
					modifierType = "Additive";
					value = 33f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87338";
				floatValues = 
				[
					33f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#87337";
			};
		}, 
		"Attunements.TechRicochetDamage"
	];
	nextUpgradeItem = "Items.AdvancedPowerGripLegendaryPlusPlus";
}

[ notQueryable ]
[ EP1 ]
AdvancedPowerGripLegendaryPlusPlus : AdvancedPowerGripCommon
{
	quality = "Quality.LegendaryPlusPlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasPowerGrip";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.CanSeeRicochetVisuals";
					modifierType = "Additive";
					value = 1f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.BonusRicochetDamage";
					modifierType = "Additive";
					value = 35f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87338";
				floatValues = 
				[
					35f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#87337";
			};
		}, 
		"Attunements.TechRicochetDamage"
	];
	nextUpgradeItem = "";
}

[ notQueryable ]
AdvancedPowerGrip_q001_1 : AdvancedPowerGripCommon
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedPowerGrip_q001_2 : AdvancedPowerGripCommon
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedPowerGrip_q001_3 : AdvancedPowerGripCommon
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedPowerGrip_Tutorial_CommonPlus : AdvancedPowerGripCommonPlus
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedPowerGrip_Tutorial_Uncommon : AdvancedPowerGripUncommon
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedPowerGrip_Tutorial_UncommonPlus : AdvancedPowerGripUncommonPlus
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedPowerGrip_Tutorial_Rare : AdvancedPowerGripRare
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedPowerGrip_Tutorial_RarePlus : AdvancedPowerGripRarePlus
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedPowerGrip_Tutorial_Epic : AdvancedPowerGripEpic
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedPowerGrip_Tutorial_EpicPlus : AdvancedPowerGripEpicPlus
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedPowerGrip_Tutorial_Legendary : AdvancedPowerGripLegendary
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedPowerGrip_Tutorial_LegendaryPlus : AdvancedPowerGripLegendaryPlus
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
[ EP1 ]
AdvancedPowerGrip_Tutorial_LegendaryPlusPlus : AdvancedPowerGripLegendaryPlusPlus
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

AdvancedSmartLinkCommon : AdvancedHandsModule
{
	string friendlyName = "SmartLink";
	displayName = "LocKey#40867";
	localizedDescription = "LocKey#40868";
	iconPath = "cw_hands_smartlink";
	entityName = "smartgun_link";
	appearanceName = "stage_1_";
	quality = "Quality.Common";
	upgradeCostMult = 0.5f;
	statModifiers += 
	[
		{
			statType = "BaseStats.AttunementHelper";
			modifierType = "Additive";
			refStat = "BaseStats.Intelligence";
			refObject = "Player";
			opSymbol = "*";
			value = 0.1f;
		} : CombinedStatModifier
	];
	variants = 
	[
		"Variants.Humanity4Cost"
	];
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#40869";
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		{
			stats = 
			[
				{
					statType = "BaseStats.Memory";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			UIData = 
			{
				localizedDescription = "LocKey#92412";
				floatValues = 
				[
					1
				];
			};
		}
	];
	slotPartListPreset += 
	[
		{
			itemPartPreset = "Items.AdvancedSmartLinkStatsShard";
		} : StatsShardSlotPart
	];
	CName cyberwareType = "SmartLink";
	buyPrice += 
	[
		{
			statType = "BaseStats.Price";
			modifierType = "Multiplier";
			id = "cyberware_curves";
			column = "low_humanity_to_price_mult";
			refStat = "BaseStats.Quality";
			refObject = "Item";
		} : CurveStatModifier
	];
	sellPrice += 
	[
		{
			statType = "BaseStats.Price";
			modifierType = "Multiplier";
			id = "cyberware_curves";
			column = "low_humanity_to_price_mult";
			refStat = "BaseStats.Quality";
			refObject = "Item";
		} : CurveStatModifier
	];
	nextUpgradeItem = "Items.AdvancedSmartLinkCommonPlus";
}

AdvancedSmartLinkStatsShard : CyberwareStatsShardStatic
{
	statModifiers += 
	[
		"Modifiers.BonusQuickHackDamage", "Modifiers.RamOnKill", "Modifiers.RamOnKillQualityToggle", "Modifiers.DamageOverTimePercentBonus", "Modifiers.DamageOverTimePercentBonusToggle"
	];
}

[ notQueryable ]
AdvancedSmartLinkCommonPlus : AdvancedSmartLinkCommon
{
	quality = "Quality.CommonPlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#40869";
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		{
			stats = 
			[
				{
					statType = "BaseStats.Memory";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			UIData = 
			{
				localizedDescription = "LocKey#92412";
				floatValues = 
				[
					1
				];
			};
		}
	];
	nextUpgradeItem = "Items.AdvancedSmartLinkUncommon";
}

AdvancedSmartLinkUncommon : AdvancedSmartLinkCommon
{
	quality = "Quality.Uncommon";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#40869";
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		{
			stats = 
			[
				{
					statType = "BaseStats.Memory";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			UIData = 
			{
				localizedDescription = "LocKey#92412";
				floatValues = 
				[
					1
				];
			};
		}
	];
	nextUpgradeItem = "Items.AdvancedSmartLinkUncommonPlus";
}

[ notQueryable ]
AdvancedSmartLinkUncommonPlus : AdvancedSmartLinkCommon
{
	quality = "Quality.UncommonPlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#40869";
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		{
			stats = 
			[
				{
					statType = "BaseStats.Memory";
					modifierType = "Additive";
					value = 2;
				} : ConstantStatModifier
			];
			UIData = 
			{
				localizedDescription = "LocKey#92412";
				floatValues = 
				[
					2
				];
			};
		}
	];
	nextUpgradeItem = "Items.AdvancedSmartLinkRare";
}

AdvancedSmartLinkRare : AdvancedSmartLinkCommon
{
	quality = "Quality.Rare";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			effectors = 
			[
				{
					prereqRecord = "Prereqs.SmartWeaponHeldPrereq";
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.SmartGunHipTimeToUnlock";
								modifierType = "AdditiveMultiplier";
								value = 0.1f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SmartGunAdsTimeToUnlock";
								modifierType = "AdditiveMultiplier";
								value = 0.1f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.CritDamage";
								modifierType = "Additive";
								value = 5f;
							} : ConstantStatModifier
						];
					};
				} : Perks.ApplyStatGroupOnWeapon
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87340";
				floatValues = 
				[
					10f, 5f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		{
			stats = 
			[
				{
					statType = "BaseStats.Memory";
					modifierType = "Additive";
					value = 2;
				} : ConstantStatModifier
			];
			UIData = 
			{
				localizedDescription = "LocKey#92412";
				floatValues = 
				[
					2
				];
			};
		}, 
		"Attunements.IntelligenceSmartWeaponDamage"
	];
	nextUpgradeItem = "Items.AdvancedSmartLinkRarePlus";
}

[ notQueryable ]
AdvancedSmartLinkRarePlus : AdvancedSmartLinkCommon
{
	quality = "Quality.RarePlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			effectors = 
			[
				{
					prereqRecord = "Prereqs.SmartWeaponHeldPrereq";
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.SmartGunHipTimeToUnlock";
								modifierType = "AdditiveMultiplier";
								value = 0.1f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SmartGunAdsTimeToUnlock";
								modifierType = "AdditiveMultiplier";
								value = 0.1f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.CritDamage";
								modifierType = "Additive";
								value = 7f;
							} : ConstantStatModifier
						];
					};
				} : Perks.ApplyStatGroupOnWeapon
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87340";
				floatValues = 
				[
					10f, 7f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		{
			stats = 
			[
				{
					statType = "BaseStats.Memory";
					modifierType = "Additive";
					value = 2;
				} : ConstantStatModifier
			];
			UIData = 
			{
				localizedDescription = "LocKey#92412";
				floatValues = 
				[
					2
				];
			};
		}, 
		"Attunements.IntelligenceSmartWeaponDamage"
	];
	nextUpgradeItem = "Items.AdvancedSmartLinkEpic";
}

AdvancedSmartLinkEpic : AdvancedSmartLinkCommon
{
	quality = "Quality.Epic";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			effectors = 
			[
				{
					prereqRecord = "Prereqs.SmartWeaponHeldPrereq";
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.SmartGunHipTimeToUnlock";
								modifierType = "AdditiveMultiplier";
								value = 0.15f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SmartGunAdsTimeToUnlock";
								modifierType = "AdditiveMultiplier";
								value = 0.15f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.CritDamage";
								modifierType = "Additive";
								value = 7f;
							} : ConstantStatModifier
						];
					};
				} : Perks.ApplyStatGroupOnWeapon
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87340";
				floatValues = 
				[
					15f, 7f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		{
			stats = 
			[
				{
					statType = "BaseStats.Memory";
					modifierType = "Additive";
					value = 2;
				} : ConstantStatModifier
			];
			UIData = 
			{
				localizedDescription = "LocKey#92412";
				floatValues = 
				[
					2
				];
			};
		}, 
		"Attunements.IntelligenceSmartWeaponDamage"
	];
	nextUpgradeItem = "Items.AdvancedSmartLinkEpicPlus";
}

[ notQueryable ]
AdvancedSmartLinkEpicPlus : AdvancedSmartLinkCommon
{
	quality = "Quality.EpicPlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			effectors = 
			[
				{
					prereqRecord = "Prereqs.SmartWeaponHeldPrereq";
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.SmartGunHipTimeToUnlock";
								modifierType = "AdditiveMultiplier";
								value = 0.15f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SmartGunAdsTimeToUnlock";
								modifierType = "AdditiveMultiplier";
								value = 0.15f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.CritDamage";
								modifierType = "Additive";
								value = 10f;
							} : ConstantStatModifier
						];
					};
				} : Perks.ApplyStatGroupOnWeapon
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87340";
				floatValues = 
				[
					15f, 10f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		{
			stats = 
			[
				{
					statType = "BaseStats.Memory";
					modifierType = "Additive";
					value = 2;
				} : ConstantStatModifier
			];
			UIData = 
			{
				localizedDescription = "LocKey#92412";
				floatValues = 
				[
					2
				];
			};
		}, 
		"Attunements.IntelligenceSmartWeaponDamage"
	];
	nextUpgradeItem = "Items.AdvancedSmartLinkLegendary";
}

AdvancedSmartLinkLegendary : AdvancedSmartLinkCommon
{
	quality = "Quality.Legendary";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			effectors = 
			[
				{
					prereqRecord = "Prereqs.SmartWeaponHeldPrereq";
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.SmartGunHipTimeToUnlock";
								modifierType = "AdditiveMultiplier";
								value = 0.2f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SmartGunAdsTimeToUnlock";
								modifierType = "AdditiveMultiplier";
								value = 0.2f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.CritDamage";
								modifierType = "Additive";
								value = 10f;
							} : ConstantStatModifier
						];
					};
				} : Perks.ApplyStatGroupOnWeapon
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87340";
				floatValues = 
				[
					20f, 10f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		{
			stats = 
			[
				{
					statType = "BaseStats.Memory";
					modifierType = "Additive";
					value = 2;
				} : ConstantStatModifier
			];
			UIData = 
			{
				localizedDescription = "LocKey#92412";
				floatValues = 
				[
					2
				];
			};
		}, 
		"Attunements.IntelligenceSmartWeaponDamage"
	];
	nextUpgradeItem = "Items.AdvancedSmartLinkLegendaryPlus";
}

[ notQueryable ]
AdvancedSmartLinkLegendaryPlus : AdvancedSmartLinkCommon
{
	quality = "Quality.LegendaryPlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			effectors = 
			[
				{
					prereqRecord = "Prereqs.SmartWeaponHeldPrereq";
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.SmartGunHipTimeToUnlock";
								modifierType = "AdditiveMultiplier";
								value = 0.2f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SmartGunAdsTimeToUnlock";
								modifierType = "AdditiveMultiplier";
								value = 0.2f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.CritDamage";
								modifierType = "Additive";
								value = 12f;
							} : ConstantStatModifier
						];
					};
				} : Perks.ApplyStatGroupOnWeapon
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87340";
				floatValues = 
				[
					20f, 12f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		{
			stats = 
			[
				{
					statType = "BaseStats.Memory";
					modifierType = "Additive";
					value = 2;
				} : ConstantStatModifier
			];
			UIData = 
			{
				localizedDescription = "LocKey#92412";
				floatValues = 
				[
					2
				];
			};
		}, 
		"Attunements.IntelligenceSmartWeaponDamage"
	];
	nextUpgradeItem = "Items.AdvancedSmartLinkLegendaryPlusPlus";
}

[ notQueryable ]
[ EP1 ]
AdvancedSmartLinkLegendaryPlusPlus : AdvancedSmartLinkCommon
{
	quality = "Quality.LegendaryPlusPlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			effectors = 
			[
				{
					prereqRecord = "Prereqs.SmartWeaponHeldPrereq";
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.SmartGunHipTimeToUnlock";
								modifierType = "AdditiveMultiplier";
								value = 0.2f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SmartGunAdsTimeToUnlock";
								modifierType = "AdditiveMultiplier";
								value = 0.2f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.CritDamage";
								modifierType = "Additive";
								value = 15f;
							} : ConstantStatModifier
						];
					};
				} : Perks.ApplyStatGroupOnWeapon
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87340";
				floatValues = 
				[
					20f, 15f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		{
			stats = 
			[
				{
					statType = "BaseStats.Memory";
					modifierType = "Additive";
					value = 2;
				} : ConstantStatModifier
			];
			UIData = 
			{
				localizedDescription = "LocKey#92412";
				floatValues = 
				[
					2
				];
			};
		}, 
		"Attunements.IntelligenceSmartWeaponDamage"
	];
	nextUpgradeItem = "";
}

[ notQueryable ]
AdvancedSmartLink_Tutorial_Common : AdvancedSmartLinkCommon
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedSmartLink_Tutorial_CommonPlus : AdvancedSmartLinkCommonPlus
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedSmartLink_Tutorial_Uncommon : AdvancedSmartLinkUncommon
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedSmartLink_Tutorial_UncommonPlus : AdvancedSmartLinkUncommonPlus
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedSmartLink_Tutorial_Rare : AdvancedSmartLinkRare
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedSmartLink_Tutorial_RarePlus : AdvancedSmartLinkRarePlus
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedSmartLink_Tutorial_Epic : AdvancedSmartLinkEpic
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedSmartLink_Tutorial_EpicPlus : AdvancedSmartLinkEpicPlus
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedSmartLink_Tutorial_Legendary : AdvancedSmartLinkLegendary
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedSmartLink_Tutorial_LegendaryPlus : AdvancedSmartLinkLegendaryPlus
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
[ EP1 ]
AdvancedSmartLink_Tutorial_LegendaryPlusPlus : AdvancedSmartLinkLegendaryPlusPlus
{
	tags += 
	[
		"MustBeWearableToPurchase"
	];
	buyPrice += 
	[
		"Price.PostCyberwareTutorialPrice"
	];
	sellPrice = [];
}

[ notQueryable ]
AdvancedYakuzaTattoo : AdvancedHandsModule
{
	displayName = "LocKey#78052";
	localizedDescription = "LocKey#78053";
	iconPath = "icon_tattoo_tyger";
	entityName = "player_tatoo";
	appearanceName = "a0_000__tattoo_yakuza_r_tattoo_yakuza_";
	quality = "Quality.Common";
	usesVariants = true;
	variants = 
	[
		"Variants.Humanity0Cost"
	];
	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 = [];
	sellPrice = [];
	nextUpgradeItem = "Items.AdvancedYakuzaTattooPlus";
}

[ notQueryable ]
AdvancedYakuzaTattooPlus : AdvancedYakuzaTattoo
{
	statModifiers += 
	[
		{
			statType = "BaseStats.IsItemPlus";
			modifierType = "Additive";
			value = 1f;
		} : ConstantStatModifier
	];
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#40869";
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}
	];
	nextUpgradeItem = "Items.AdvancedYakuzaTattooUncommon";
}

[ notQueryable ]
AdvancedYakuzaTattooUncommon : AdvancedYakuzaTattoo
{
	quality = "Quality.Uncommon";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#40869";
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}
	];
	nextUpgradeItem = "Items.AdvancedYakuzaTattooUncommonPlus";
}

[ notQueryable ]
AdvancedYakuzaTattooUncommonPlus : AdvancedYakuzaTattoo
{
	quality = "Quality.UncommonPlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#40869";
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}
	];
	nextUpgradeItem = "Items.AdvancedYakuzaTattooRare";
}

[ notQueryable ]
AdvancedYakuzaTattooRare : AdvancedYakuzaTattoo
{
	quality = "Quality.Rare";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTimeToLock";
					modifierType = "AdditiveMultiplier";
					value = -0.1f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTimeToLock";
					modifierType = "AdditiveMultiplier";
					value = -0.1f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTargetableAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTargetableAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTargetableAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTargetableAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipLockingAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipLockingAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsLockingAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsLockingAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87341";
				floatValues = 
				[
					10f, 20f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		"Attunements.IntelligenceSmartWeaponDamage"
	];
	nextUpgradeItem = "Items.AdvancedYakuzaTattooRarePlus";
}

[ notQueryable ]
AdvancedYakuzaTattooRarePlus : AdvancedYakuzaTattoo
{
	quality = "Quality.RarePlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTimeToLock";
					modifierType = "AdditiveMultiplier";
					value = -0.1f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTimeToLock";
					modifierType = "AdditiveMultiplier";
					value = -0.1f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTargetableAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTargetableAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTargetableAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTargetableAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipLockingAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipLockingAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsLockingAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsLockingAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87341";
				floatValues = 
				[
					10f, 20f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		"Attunements.IntelligenceSmartWeaponDamage"
	];
	nextUpgradeItem = "Items.AdvancedYakuzaTattooEpic";
}

[ notQueryable ]
AdvancedYakuzaTattooEpic : AdvancedYakuzaTattoo
{
	quality = "Quality.Epic";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTimeToLock";
					modifierType = "AdditiveMultiplier";
					value = -0.15f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTimeToLock";
					modifierType = "AdditiveMultiplier";
					value = -0.15f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTargetableAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTargetableAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTargetableAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTargetableAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipLockingAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipLockingAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsLockingAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsLockingAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87341";
				floatValues = 
				[
					15f, 20f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		"Attunements.IntelligenceSmartWeaponDamage"
	];
	nextUpgradeItem = "Items.AdvancedYakuzaTattooEpicPlus";
}

[ notQueryable ]
AdvancedYakuzaTattooEpicPlus : AdvancedYakuzaTattoo
{
	quality = "Quality.EpicPlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTimeToLock";
					modifierType = "AdditiveMultiplier";
					value = -0.15f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTimeToLock";
					modifierType = "AdditiveMultiplier";
					value = -0.15f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTargetableAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTargetableAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTargetableAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTargetableAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipLockingAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipLockingAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsLockingAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsLockingAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87341";
				floatValues = 
				[
					15f, 20f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		"Attunements.IntelligenceSmartWeaponDamage"
	];
	nextUpgradeItem = "Items.AdvancedYakuzaTattooLegendary";
}

[ notQueryable ]
AdvancedYakuzaTattooLegendary : AdvancedYakuzaTattoo
{
	quality = "Quality.Legendary";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTimeToLock";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTimeToLock";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTargetableAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTargetableAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTargetableAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTargetableAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipLockingAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipLockingAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsLockingAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsLockingAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87341";
				floatValues = 
				[
					20f, 20f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		"Attunements.IntelligenceSmartWeaponDamage"
	];
	nextUpgradeItem = "Items.AdvancedYakuzaTattooLegendaryPlus";
}

[ notQueryable ]
AdvancedYakuzaTattooLegendaryPlus : AdvancedYakuzaTattoo
{
	quality = "Quality.LegendaryPlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTimeToLock";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTimeToLock";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTargetableAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTargetableAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTargetableAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTargetableAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipLockingAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipLockingAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsLockingAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsLockingAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87341";
				floatValues = 
				[
					20f, 20f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		"Attunements.IntelligenceSmartWeaponDamage"
	];
	nextUpgradeItem = "Items.AdvancedYakuzaTattooLegendaryPlusPlus";
}

[ notQueryable ]
AdvancedYakuzaTattooLegendaryPlusPlus : AdvancedYakuzaTattoo
{
	quality = "Quality.LegendaryPlusPlus";
	OnEquip = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HasSmartLink";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTimeToLock";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTimeToLock";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTargetableAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipTargetableAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTargetableAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsTargetableAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipLockingAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunHipLockingAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsLockingAngleYaw";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunAdsLockingAnglePitch";
					modifierType = "AdditiveMultiplier";
					value = -0.2f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "ability_silenced";
				localizedDescription = "LocKey#87341";
				floatValues = 
				[
					20f, 20f
				];
			};
		} : GameplayLogicPackage, 
		{
			UIData = 
			{
				localizedDescription = "LocKey#52429";
			};
		}, 
		"Attunements.IntelligenceSmartWeaponDamage"
	];
	nextUpgradeItem = "";
}

[ notQueryable ]
AdvancedCasiusTattoo : AdvancedHandsModule
{
	displayName = "LocKey#78054";
	localizedDescription = "LocKey#78055";
	iconPath = "icon_tattoo_cassius";
	entityName = "player_tatoo";
	appearanceName = "a0_000__tattoo_casius_r_tattoo_yakuza_";
	quality = "Quality.Common";
	usesVariants = true;
	variants = 
	[
		"Variants.Humanity0Cost"
	];
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#78055";
			};
		}
	];
	buyPrice = [];
	sellPrice = [];
	nextUpgradeItem = "";
}

[ notQueryable ]
AdvancedSilverhandTattoo : AdvancedHandsModule
{
	displayName = "LocKey#78056";
	localizedDescription = "LocKey#78057";
	iconPath = "icon_tattoo_johnny";
	entityName = "player_tatoo";
	appearanceName = "a0_000__tattoo_silverhand_r_tattoo_yakuza_";
	quality = "Quality.Common";
	usesVariants = false;
	OnEquip = 
	[
		{
			UIData = 
			{
				localizedDescription = "LocKey#78057";
			};
		}
	];
	buyPrice = [];
	sellPrice = [];
	nextUpgradeItem = "";
}

AdvancedMicroGeneratorCommon : AdvancedHandsModule
{
	displayName = "LocKey#40760";
	localizedDescription = "LocKey#40761";
	iconPath = "cw_hands_electricexplosion";
	placementSlots = [];
	quality = "Quality.Common";
	upgradeCostMult = 1.0f;
	statModifiers += 
	[
		{
			statType = "BaseStats.AttunementHelper";
			modifierType = "Additive";
			refStat = "BaseStats.Intelligence";
			refObject = "Player";
			opSymbol = "*";
			value = 0.05f;
		} : CombinedStatModifier
	];
	variants = 
	[
		"Variants.Humanity9Cost"
	];
	OnEquip = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = 
					{
						nestedPrereqs = 
						[
							"Prereqs.RangedWeaponHeldPrereq", {
								statusEffect = "GameplayRestriction.NoDangerousCyberware";
							} : Prereqs.StatusEffectAbsentPrereq, 
							{
								minAmountOfAmmoReloaded = 1;
							} : Prereqs.ReloadFromEmptyPrereq
						];
					} : ANDPrereq;
					statusEffect = "BaseStatusEffect.NewMicrogeneratorBuff";
				} : ApplyStatusEffectEffector, 
				{
					prereqRecord = 
					{
						nestedPrereqs = 
						[
							"Prereqs.RangedWeaponHeldPrereq", {
								statusEffect = "GameplayRestriction.NoDangerousCyberware";
							} : Prereqs.StatusEffectAbsentPrereq, 
							{
								minAmountOfAmmoReloaded = 2;
							} : Prereqs.ReloadFromEmptyPrereq
						];
					} : ANDPrereq;
					statusEffect = "BaseStatusEffect.NewMicrogeneratorBuff";
				} : ApplyStatusEffectEffector, 
				{
					prereqRecord = 
					{
						nestedPrereqs = 
						[
							"Prereqs.RangedWeaponHeldPrereq", {
								statusEffect = "GameplayRestriction.NoDangerousCyberware";
							} : Prereqs.StatusEffectAbsentPrereq, 
							{
								minAmountOfAmmoReloaded = 3;
							} : Prereqs.ReloadFromEmptyPrereq
						];
					} : ANDPrereq;
					statusEffect = "BaseStatusEffect.NewMicrogeneratorBuff";
				} : ApplyStatusEffectEffector, 
				{
					prereqRecord = 
					{
						nestedPrereqs = 
						[
							"Prereqs.RangedWeaponHeldPrereq", {
								statusEffect = "GameplayRestriction.NoDangerousCyberware";
							} : Prereqs.StatusEffectAbsentPrereq, 
							{
								minAmountOfAmmoReloaded = 4;
							} : Prereqs.ReloadFromEmptyPrereq
						];
					} : ANDPrereq;
					statusEffect = "BaseStatusEffect.NewMicrogeneratorBuff";
				} : ApplyStatusEffectEffector, 
				{
					prereqRecord = 
					{
						nestedPrereqs = 
						[
							"Prereqs.RangedWeaponHeldPrereq", {
								statusEffect = "GameplayRestriction.NoDangerousCyberware";
							} : Prereqs.StatusEffectAbsentPrereq, 
							{
								minAmountOfAmmoReloaded = 5;
							} : Prereqs.ReloadFromEmptyPrereq
						];
					} : ANDPrereq;
					statusEffect = "BaseStatusEffect.NewMicrogeneratorBuff";
				} : ApplyStatusEffectEffector
			];
		}
	];
	slotPartListPreset += 
	[
		{
			itemPartPreset = "Items.AdvancedMicroGeneratorStatsShard";
		} : StatsShardSlotPart
	];
	CName cyberwareType = "MicroGenerator";
	buyPrice += 
	[
		{
			statType = "BaseStats.Price";
			modifierType = "Multiplier";
			id = "cyberware_curves";
			column = "mid_humanity_to_price_mult";
			refStat = "BaseStats.Quality";
			refObject = "Item";
		} : CurveStatModifier
	];
	sellPrice += 
	[
		{
			statType = "BaseStats.Price";
			modifierType = "Multiplier";
			id = "cyberware_curves";
			column = "mid_humanity_to_price_mult";
			refStat = "BaseStats.Quality";
			refObject = "Item";
		} : CurveStatModifier
	];
	nextUpgradeItem = "Items.AdvancedMicroGeneratorUncommon";
}

AdvancedMicroGeneratorStatsShard : CyberwareStatsShardStatic
{
	statModifiers += 
	[
		"Modifiers.ReloadSpeedPercentBonus", "Modifiers.ExplosionDamagePercentBonus", "Modifiers.ExplosionDamagePercentBonusQualityToggle", "Modifiers.GrenadesChargesRegenMult", "Modifiers.GrenadesChargesRegenMultToggle"
	];
}

AdvancedMicroGeneratorUncommon : AdvancedMicroGeneratorCommon
{
	quality = "Quality.Uncommon";
	OnEquip += 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.MicroGeneratorExplosionDamage";
					modifierType = "Multiplier";
					value = 1.07167f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "";
				localizedDescription = "LocKey#85843";
				intValues = 
				[
					5
				];
				floatValues = 
				[
					75f
				];
			};
		} : GameplayLogicPackage
	];
	nextUpgradeItem = "Items.AdvancedMicroGeneratorUncommonPlus";
}

[ notQueryable ]
AdvancedMicroGeneratorUncommonPlus : AdvancedMicroGeneratorCommon
{
	quality = "Quality.UncommonPlus";
	OnEquip += 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.MicroGeneratorExplosionDamage";
					modifierType = "Multiplier";
					value = 1.25f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "";
				localizedDescription = "LocKey#85843";
				intValues = 
				[
					5
				];
				floatValues = 
				[
					90f
				];
			};
		} : GameplayLogicPackage
	];
	nextUpgradeItem = "Items.AdvancedMicroGeneratorRare";
}

AdvancedMicroGeneratorRare : AdvancedMicroGeneratorCommon
{
	quality = "Quality.Rare";
	OnEquip += 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.MicroGeneratorExplosionDamage";
					modifierType = "Multiplier";
					value = 1.6667f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "";
				localizedDescription = "LocKey#85843";
				intValues = 
				[
					5
				];
				floatValues = 
				[
					120f
				];
			};
		} : GameplayLogicPackage, 
		"Attunements.IntelligenceAllDamage"
	];
	nextUpgradeItem = "Items.AdvancedMicroGeneratorRarePlus";
}

[ notQueryable ]
AdvancedMicroGeneratorRarePlus : AdvancedMicroGeneratorCommon
{
	quality = "Quality.RarePlus";
	OnEquip += 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.MicroGeneratorExplosionDamage";
					modifierType = "Multiplier";
					value = 1.845f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "";
				localizedDescription = "LocKey#85843";
				intValues = 
				[
					5
				];
				floatValues = 
				[
					130f
				];
			};
		} : GameplayLogicPackage, 
		"Attunements.IntelligenceAllDamage"
	];
	nextUpgradeItem = "Items.AdvancedMicroGeneratorEpic";
}

AdvancedMicroGeneratorEpic : AdvancedMicroGeneratorCommon
{
	quality = "Quality.Epic";
	OnEquip += 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.MicroGeneratorExplosionDamage";
					modifierType = "Multiplier";
					value = 2.2025f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "";
				localizedDescription = "LocKey#85843";
				intValues = 
				[
					5
				];
				floatValues = 
				[
					155f
				];
			};
		} : GameplayLogicPackage, 
		"Attunements.IntelligenceAllDamage"
	];
	nextUpgradeItem = "Items.AdvancedMicroGeneratorEpicPlus";
}

[ notQueryable ]
AdvancedMicroGeneratorEpicPlus : AdvancedMicroGeneratorCommon
{
	quality = "Quality.EpicPlus";
	OnEquip += 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.MicroGeneratorExplosionDamage";
					modifierType = "Multiplier";
					value = 2.381f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "";
				localizedDescription = "LocKey#85843";
				intValues = 
				[
					5
				];
				floatValues = 
				[
					170f
				];
			};
		} : GameplayLogicPackage, 
		"Attunements.IntelligenceAllDamage"
	];
	nextUpgradeItem = "Items.AdvancedMicroGeneratorLegendary";
}

AdvancedMicroGeneratorLegendary : AdvancedMicroGeneratorCommon
{
	quality = "Quality.Legendary";
	OnEquip += 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.MicroGeneratorExplosionDamage";
					modifierType = "Multiplier";
					value = 2.85833f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "";
				localizedDescription = "LocKey#85843";
				intValues = 
				[
					5
				];
				floatValues = 
				[
					200f
				];
			};
		} : GameplayLogicPackage, 
		"Attunements.IntelligenceAllDamage"
	];
	nextUpgradeItem = "Items.AdvancedMicroGeneratorLegendaryPlus";
}

[ notQueryable ]
AdvancedMicroGeneratorLegendaryPlus : AdvancedMicroGeneratorCommon
{
	quality = "Quality.LegendaryPlus";
	OnEquip += 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.MicroGeneratorExplosionDamage";
					modifierType = "Multiplier";
					value = 3.33f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "";
				localizedDescription = "LocKey#85843";
				intValues = 
				[
					5
				];
				floatValues = 
				[
					230f
				];
			};
		} : GameplayLogicPackage, 
		"Attunements.IntelligenceAllDamage"
	];
	nextUpgradeItem = "Items.AdvancedMicroGeneratorLegendaryPlusPlus";
}

[ notQueryable ]
[ EP1 ]
AdvancedMicroGeneratorLegendaryPlusPlus : AdvancedMicroGeneratorCommon
{
	quality = "Quality.LegendaryPlusPlus";
	OnEquip += 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.MicroGeneratorExplosionDamage";
					modifierType = "Multiplier";
					value = 3.57166f;
				} : ConstantStatModifier
			];
			UIData = 
			{
				iconPath = "";
				localizedDescription = "LocKey#85843";
				intValues = 
				[
					5
				];
				floatValues = 
				[
					250f
				];
			};
		} : GameplayLogicPackage, 
		"Attunements.IntelligenceAllDamage"
	];
	nextUpgradeItem = "";
}

AdvancedJointLockCommon : AdvancedHandsModule
{
	string friendlyName = "JointLock";
	displayName = "LocKey#85353";
	localizedDescription = "LocKey#85354";
	iconPath = "cw_hands_recoil";
	placementSlots = [];
	quality = "Quality.Common";
	upgradeCostMult = 1.0f;
	statModifiers += 
	[
		{
			statType = "BaseStats.AttunementHelper";
			modifierType = "Additive";
			refStat = "BaseStats.Cool";
			refObject = "Player";
			opSymbol = "*";
			value = 0.2f;
		} : CombinedStatModifier
	];
	variants = 
	[
		"Variants.Humanity12Cost"
	];
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.08f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.08f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					8f
				];
			} : JointLockUIData;
		}
	];
	slotPartListPreset += 
	[
		{
			itemPartPreset = "Items.AdvancedJointLockStatsShard";
		} : StatsShardSlotPart
	];
	CName cyberwareType = "JointLock";
	buyPrice += 
	[
		{
			statType = "BaseStats.Price";
			modifierType = "Multiplier";
			id = "cyberware_curves";
			column = "mid_humanity_to_price_mult";
			refStat = "BaseStats.Quality";
			refObject = "Item";
		} : CurveStatModifier
	];
	sellPrice += 
	[
		{
			statType = "BaseStats.Price";
			modifierType = "Multiplier";
			id = "cyberware_curves";
			column = "mid_humanity_to_price_mult";
			refStat = "BaseStats.Quality";
			refObject = "Item";
		} : CurveStatModifier
	];
	nextUpgradeItem = "Items.AdvancedJointLockCommonPlus";
}

AdvancedJointLockStatsShard : CyberwareStatsShardStatic
{
	statModifiers += 
	[
		"Modifiers.MeleeResistance", "Modifiers.Health", "Modifiers.HealthQualityToggle", "Modifiers.StealthHitDamageBonus", "Modifiers.StealthHitDamageBonusToggle"
	];
}

[ notQueryable ]
AdvancedJointLockCommonPlus : AdvancedJointLockCommon
{
	quality = "Quality.CommonPlus";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.09f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.09f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					9f
				];
			} : JointLockUIData;
		}
	];
	nextUpgradeItem = "Items.AdvancedJointLockUncommon";
}

AdvancedJointLockUncommon : AdvancedJointLockCommon
{
	quality = "Quality.Uncommon";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.11f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.11f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					11f
				];
			} : JointLockUIData;
		}
	];
	nextUpgradeItem = "Items.AdvancedJointLockUncommonPlus";
}

[ notQueryable ]
AdvancedJointLockUncommonPlus : AdvancedJointLockCommon
{
	quality = "Quality.UncommonPlus";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.12f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.12f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					12f
				];
			} : JointLockUIData;
		}
	];
	nextUpgradeItem = "Items.AdvancedJointLockRare";
}

AdvancedJointLockRare : AdvancedJointLockCommon
{
	quality = "Quality.Rare";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.14f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.14f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					14f
				];
			} : JointLockUIData;
		}, 
		"Attunements.CoolHeadshotDamage"
	];
	nextUpgradeItem = "Items.AdvancedJointLockRarePlus";
}

[ notQueryable ]
AdvancedJointLockRarePlus : AdvancedJointLockCommon
{
	quality = "Quality.RarePlus";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.15f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.15f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					15f
				];
			} : JointLockUIData;
		}, 
		"Attunements.CoolHeadshotDamage"
	];
	nextUpgradeItem = "Items.AdvancedJointLockEpic";
}

AdvancedJointLockEpic : AdvancedJointLockCommon
{
	quality = "Quality.Epic";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.17f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.17f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					17f
				];
			} : JointLockUIData;
		}, 
		"Attunements.CoolHeadshotDamage"
	];
	nextUpgradeItem = "Items.AdvancedJointLockEpicPlus";
}

[ notQueryable ]
AdvancedJointLockEpicPlus : AdvancedJointLockCommon
{
	quality = "Quality.EpicPlus";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.18f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.18f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					18f
				];
			} : JointLockUIData;
		}, 
		"Attunements.CoolHeadshotDamage"
	];
	nextUpgradeItem = "Items.AdvancedJointLockLegendary";
}

AdvancedJointLockLegendary : AdvancedJointLockCommon
{
	quality = "Quality.Legendary";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.2f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.2f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					20f
				];
			} : JointLockUIData;
		}, 
		"Attunements.CoolHeadshotDamage"
	];
	nextUpgradeItem = "Items.AdvancedJointLockLegendaryPlus";
}

[ notQueryable ]
AdvancedJointLockLegendaryPlus : AdvancedJointLockCommon
{
	quality = "Quality.LegendaryPlus";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.22f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.22f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					22f
				];
			} : JointLockUIData;
		}, 
		"Attunements.CoolHeadshotDamage"
	];
	nextUpgradeItem = "Items.AdvancedJointLockLegendaryPlusPlus";
}

[ notQueryable ]
[ EP1 ]
AdvancedJointLockLegendaryPlusPlus : AdvancedJointLockCommon
{
	quality = "Quality.LegendaryPlusPlus";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.24f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.24f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					24f
				];
			} : JointLockUIData;
		}, 
		"Attunements.CoolHeadshotDamage"
	];
	nextUpgradeItem = "";
}

[ notQueryable ]
[ EP1 ]
IconicGunStabilizerCommon : AdvancedHandsModule
{
	string friendlyName = "GunStabilizer";
	displayName = "LocKey#94434";
	localizedDescription = "LocKey#85354";
	iconPath = "cw_hands_recoil_iconic";
	tags += 
	[
		"IllegalItem"
	];
	placementSlots = [];
	quality = "Quality.Common";
	upgradeCostMult = 2.0f;
	statModifiers = 
	[
		"Items.ItemArmorToArmor", {
			statType = "BaseStats.Protection";
			modifierType = "Additive";
			refStat = "BaseStats.Armor";
			opSymbol = "*";
			value = 1.0f;
		} : CombinedStatModifier, 
		{
			statType = "BaseStats.IsItemIconic";
			modifierType = "Additive";
			value = 1f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.IconicJointLockCover";
			modifierType = "Additive";
			value = 1f;
		} : ConstantStatModifier
	];
	variants = 
	[
		"Variants.Humanity35Cost"
	];
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.14f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.14f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					14f, 25f
				];
			} : IconicGunStabilizerUIData;
		}
	];
	OnLooted += 
	[
		{
			effectors = 
			[
				{
					prereqRecord = 
					{
						statusEffect = "BaseStatusEffect.JustLootedIconicCWFromAirdrop";
					} : StatusEffectPrereq;
					fact = "iconic_gun_stabilizer_airdropped";
					value = 1;
				} : SetFactEffector
			];
		}
	];
	slotPartListPreset += 
	[
		{
			itemPartPreset = "Items.IconicGunStabilizerStatsShard";
		} : StatsShardSlotPart
	];
	CName cyberwareType = "GunStabilizer";
	buyPrice += 
	[
		{
			statType = "BaseStats.Price";
			modifierType = "Multiplier";
			id = "cyberware_curves";
			column = "mid_humanity_to_price_mult";
			refStat = "BaseStats.Quality";
			refObject = "Item";
		} : CurveStatModifier, 
		{
			statType = "BaseStats.Price";
			modifierType = "Multiplier";
			value = 2f;
		} : ConstantStatModifier
	];
	sellPrice += 
	[
		{
			statType = "BaseStats.Price";
			modifierType = "Multiplier";
			id = "cyberware_curves";
			column = "mid_humanity_to_price_mult";
			refStat = "BaseStats.Quality";
			refObject = "Item";
		} : CurveStatModifier, 
		{
			statType = "BaseStats.Price";
			modifierType = "Multiplier";
			value = 2f;
		} : ConstantStatModifier
	];
	nextUpgradeItem = "Items.IconicGunStabilizerCommonPlus";
}

IconicGunStabilizerStatsShard : CyberwareStatsShardStatic
{
	statModifiers += 
	[
		"Modifiers.HealthRegenPercent", "Modifiers.Health", "Modifiers.HealthQualityToggle", "Modifiers.ExplosionResistance", "Modifiers.ExplosionResistanceToggle"
	];
}

[ notQueryable ]
[ EP1 ]
IconicGunStabilizerCommonPlus : IconicGunStabilizerCommon
{
	quality = "Quality.CommonPlus";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.16f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.16f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					16f, 25f
				];
			} : IconicGunStabilizerUIData;
		}
	];
	nextUpgradeItem = "Items.IconicGunStabilizerUncommon";
}

[ notQueryable ]
[ EP1 ]
IconicGunStabilizerUncommon : IconicGunStabilizerCommon
{
	quality = "Quality.Uncommon";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.18f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.18f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					18f, 25f
				];
			} : IconicGunStabilizerUIData;
		}
	];
	nextUpgradeItem = "Items.IconicGunStabilizerUncommonPlus";
}

[ notQueryable ]
[ EP1 ]
IconicGunStabilizerUncommonPlus : IconicGunStabilizerCommon
{
	quality = "Quality.UncommonPlus";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.20f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.20f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					20f, 25f
				];
			} : IconicGunStabilizerUIData;
		}
	];
	nextUpgradeItem = "Items.IconicGunStabilizerRare";
}

[ notQueryable ]
[ EP1 ]
IconicGunStabilizerRare : IconicGunStabilizerCommon
{
	quality = "Quality.Rare";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.22f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.22f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					22f, 25f
				];
			} : IconicGunStabilizerUIData;
		}
	];
	nextUpgradeItem = "Items.IconicGunStabilizerRarePlus";
}

[ notQueryable ]
[ EP1 ]
IconicGunStabilizerRarePlus : IconicGunStabilizerCommon
{
	quality = "Quality.RarePlus";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.24f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.24f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					24f, 25f
				];
			} : IconicGunStabilizerUIData;
		}
	];
	nextUpgradeItem = "Items.IconicGunStabilizerEpic";
}

[ notQueryable ]
[ EP1 ]
IconicGunStabilizerEpic : IconicGunStabilizerCommon
{
	quality = "Quality.Epic";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.26f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.26f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					26f, 25f
				];
			} : IconicGunStabilizerUIData;
		}
	];
	nextUpgradeItem = "Items.IconicGunStabilizerEpicPlus";
}

[ notQueryable ]
[ EP1 ]
IconicGunStabilizerEpicPlus : IconicGunStabilizerCommon
{
	quality = "Quality.EpicPlus";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.28f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.28f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					28f, 25f
				];
			} : IconicGunStabilizerUIData;
		}
	];
	nextUpgradeItem = "Items.IconicGunStabilizerLegendary";
}

[ notQueryable ]
[ EP1 ]
IconicGunStabilizerLegendary : IconicGunStabilizerCommon
{
	quality = "Quality.Legendary";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.30f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.30f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					30f, 25f
				];
			} : IconicGunStabilizerUIData;
		}
	];
	nextUpgradeItem = "Items.IconicGunStabilizerLegendaryPlus";
}

[ notQueryable ]
[ EP1 ]
IconicGunStabilizerLegendaryPlus : IconicGunStabilizerCommon
{
	quality = "Quality.LegendaryPlus";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.33f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.33f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					33f, 25f
				];
			} : IconicGunStabilizerUIData;
		}
	];
	nextUpgradeItem = "Items.IconicGunStabilizerLegendaryPlusPlus";
}

[ notQueryable ]
[ EP1 ]
IconicGunStabilizerLegendaryPlusPlus : IconicGunStabilizerCommon
{
	quality = "Quality.LegendaryPlusPlus";
	OnEquip = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = "Prereqs.RangedWeaponHeldPrereq";
					CName effectorClassName = "ApplyStatGroupEffector";
					fk< StatModifierGroup > statGroup = 
					{
						fk< StatModifier >[] statModifiers = 
						[
							{
								statType = "BaseStats.RecoilKickMin";
								modifierType = "AdditiveMultiplier";
								value = -0.35f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.RecoilKickMax";
								modifierType = "AdditiveMultiplier";
								value = -0.35f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsDefaultX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsMaxX";
								modifierType = "AdditiveMultiplier";
								value = -0.25f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
					applicationTarget = "Weapon";
				} : ApplyStatGroupEffector
			];
			UIData = 
			{
				floatValues = 
				[
					35f, 25f
				];
			} : IconicGunStabilizerUIData;
		}
	];
	nextUpgradeItem = "";
}

[ notQueryable ]
AdvancedKnifeSharpenerCommon : AdvancedHandsModule
{
	string friendlyName = "KnifeSharpener";
	displayName = "LocKey#90922";
	localizedDescription = "LocKey#90923";
	iconPath = "cw_hands_knifesharpener";
	placementSlots = [];
	quality = "Quality.Common";
	upgradeCostMult = 1.0f;
	statModifiers += 
	[
		{
			statType = "BaseStats.AttunementHelper";
			modifierType = "Additive";
			refStat = "BaseStats.Cool";
			refObject = "Player";
			opSymbol = "*";
			value = 0.2f;
		} : CombinedStatModifier, 
		{
			statType = "BaseStats.HasKnifeSharpener";
			modifierType = "Additive";
			value = 1.f;
		} : ConstantStatModifier
	];
	variants = 
	[
		"Variants.Humanity8Cost"
	];
	OnEquip = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = "Prereqs.ThrowableWeaponHeldPrereq";
					statusEffect = "BaseStatusEffect.KnifeSharpenerBuff";
				} : ApplyStatusEffectEffector, 
				{
					critChance = 
					[
						{
							statType = "BaseStats.CritChance";
							modifierType = "Additive";
							value = 0.1f;
						} : ConstantStatModifier
					];
				} : AdvancedKnifeSharpenerBuffEffector
			];
			UIData = 
			{
				localizedDescription = "LocKey#90924";
				floatValues = 
				[
					10f, 6f
				];
			};
		}
	];
	slotPartListPreset += 
	[
		{
			itemPartPreset = "Items.AdvancedKnifeSharpenerStatsShard";
		} : StatsShardSlotPart
	];
	CName cyberwareType = "KnifeSharpener";
	buyPrice += 
	[
		{
			statType = "BaseStats.Price";
			modifierType = "Multiplier";
			id = "cyberware_curves";
			column = "mid_humanity_to_price_mult";
			refStat = "BaseStats.Quality";
			refObject = "Item";
		} : CurveStatModifier
	];
	sellPrice += 
	[
		{
			statType = "BaseStats.Price";
			modifierType = "Multiplier";
			id = "cyberware_curves";
			column = "mid_humanity_to_price_mult";
			refStat = "BaseStats.Quality";
			refObject = "Item";
		} : CurveStatModifier
	];
	nextUpgradeItem = "Items.AdvancedKnifeSharpenerUncommon";
}

AdvancedKnifeSharpenerStatsShard : CyberwareStatsShardStatic
{
	statModifiers += 
	[
		"Modifiers.MeleeDamagePercentBonus", "Modifiers.StealthHitDamageBonus", "Modifiers.StealthHitDamageBonusQualityToggle", "Modifiers.MeleeResistance", "Modifiers.MeleeResistanceToggle"
	];
}

[ notQueryable ]
AdvancedKnifeSharpenerUncommon : AdvancedKnifeSharpenerCommon
{
	quality = "Quality.Uncommon";
	OnEquip = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = "Prereqs.ThrowableWeaponHeldPrereq";
					statusEffect = "BaseStatusEffect.KnifeSharpenerBuff";
				} : ApplyStatusEffectEffector, 
				{
					critChance = 
					[
						{
							statType = "BaseStats.CritChance";
							modifierType = "Additive";
							value = 0.15f;
						} : ConstantStatModifier
					];
				} : AdvancedKnifeSharpenerBuffEffector
			];
			UIData = 
			{
				localizedDescription = "LocKey#90924";
				floatValues = 
				[
					15f, 6f
				];
			};
		}
	];
	nextUpgradeItem = "Items.AdvancedKnifeSharpenerRare";
}

AdvancedKnifeSharpenerRare : AdvancedKnifeSharpenerCommon
{
	quality = "Quality.Rare";
	OnEquip = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = "Prereqs.ThrowableWeaponHeldPrereq";
					statusEffect = "BaseStatusEffect.KnifeSharpenerBuff";
				} : ApplyStatusEffectEffector, 
				{
					critChance = 
					[
						{
							statType = "BaseStats.CritChance";
							modifierType = "Additive";
							value = 0.08f;
						} : ConstantStatModifier
					];
				} : AdvancedKnifeSharpenerBuffEffector
			];
			UIData = 
			{
				localizedDescription = "LocKey#90924";
				floatValues = 
				[
					8f, 6f
				];
			};
		}, 
		"Attunements.CoolHeadshotDamage"
	];
	nextUpgradeItem = "Items.AdvancedKnifeSharpenerRarePlus";
}

[ notQueryable ]
AdvancedKnifeSharpenerRarePlus : AdvancedKnifeSharpenerCommon
{
	quality = "Quality.RarePlus";
	OnEquip = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = "Prereqs.ThrowableWeaponHeldPrereq";
					statusEffect = "BaseStatusEffect.KnifeSharpenerBuff";
				} : ApplyStatusEffectEffector, 
				{
					critChance = 
					[
						{
							statType = "BaseStats.CritChance";
							modifierType = "Additive";
							value = 0.1f;
						} : ConstantStatModifier
					];
				} : AdvancedKnifeSharpenerBuffEffector
			];
			UIData = 
			{
				localizedDescription = "LocKey#90924";
				floatValues = 
				[
					10f, 6f
				];
			};
		}, 
		"Attunements.CoolHeadshotDamage"
	];
	nextUpgradeItem = "Items.AdvancedKnifeSharpenerEpic";
}

AdvancedKnifeSharpenerEpic : AdvancedKnifeSharpenerCommon
{
	quality = "Quality.Epic";
	OnEquip = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = "Prereqs.ThrowableWeaponHeldPrereq";
					statusEffect = "BaseStatusEffect.KnifeSharpenerBuff";
				} : ApplyStatusEffectEffector, 
				{
					critChance = 
					[
						{
							statType = "BaseStats.CritChance";
							modifierType = "Additive";
							value = 0.15f;
						} : ConstantStatModifier
					];
				} : AdvancedKnifeSharpenerBuffEffector
			];
			UIData = 
			{
				localizedDescription = "LocKey#90924";
				floatValues = 
				[
					15f, 6f
				];
			};
		}, 
		"Attunements.CoolHeadshotDamage"
	];
	nextUpgradeItem = "Items.AdvancedKnifeSharpenerEpicPlus";
}

[ notQueryable ]
AdvancedKnifeSharpenerEpicPlus : AdvancedKnifeSharpenerCommon
{
	quality = "Quality.EpicPlus";
	OnEquip = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = "Prereqs.ThrowableWeaponHeldPrereq";
					statusEffect = "BaseStatusEffect.KnifeSharpenerBuff";
				} : ApplyStatusEffectEffector, 
				{
					critChance = 
					[
						{
							statType = "BaseStats.CritChance";
							modifierType = "Additive";
							value = 0.17f;
						} : ConstantStatModifier
					];
				} : AdvancedKnifeSharpenerBuffEffector
			];
			UIData = 
			{
				localizedDescription = "LocKey#90924";
				floatValues = 
				[
					17f, 6f
				];
			};
		}, 
		"Attunements.CoolHeadshotDamage"
	];
	nextUpgradeItem = "Items.AdvancedKnifeSharpenerLegendary";
}

AdvancedKnifeSharpenerLegendary : AdvancedKnifeSharpenerCommon
{
	quality = "Quality.Legendary";
	OnEquip = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = "Prereqs.ThrowableWeaponHeldPrereq";
					statusEffect = "BaseStatusEffect.KnifeSharpenerBuff";
				} : ApplyStatusEffectEffector, 
				{
					critChance = 
					[
						{
							statType = "BaseStats.CritChance";
							modifierType = "Additive";
							value = 0.23f;
						} : ConstantStatModifier
					];
				} : AdvancedKnifeSharpenerBuffEffector
			];
			UIData = 
			{
				localizedDescription = "LocKey#90924";
				floatValues = 
				[
					23f, 6f
				];
			};
		}, 
		"Attunements.CoolHeadshotDamage"
	];
	nextUpgradeItem = "Items.AdvancedKnifeSharpenerLegendaryPlus";
}

[ notQueryable ]
AdvancedKnifeSharpenerLegendaryPlus : AdvancedKnifeSharpenerCommon
{
	quality = "Quality.LegendaryPlus";
	OnEquip = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = "Prereqs.ThrowableWeaponHeldPrereq";
					statusEffect = "BaseStatusEffect.KnifeSharpenerBuff";
				} : ApplyStatusEffectEffector, 
				{
					critChance = 
					[
						{
							statType = "BaseStats.CritChance";
							modifierType = "Additive";
							value = 0.25f;
						} : ConstantStatModifier
					];
				} : AdvancedKnifeSharpenerBuffEffector
			];
			UIData = 
			{
				localizedDescription = "LocKey#90924";
				floatValues = 
				[
					25f, 6f
				];
			};
		}, 
		"Attunements.CoolHeadshotDamage"
	];
	nextUpgradeItem = "Items.AdvancedKnifeSharpenerLegendaryPlusPlus";
}

[ notQueryable ]
[ EP1 ]
AdvancedKnifeSharpenerLegendaryPlusPlus : AdvancedKnifeSharpenerCommon
{
	quality = "Quality.LegendaryPlusPlus";
	OnEquip = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = "Prereqs.ThrowableWeaponHeldPrereq";
					statusEffect = "BaseStatusEffect.KnifeSharpenerBuff";
				} : ApplyStatusEffectEffector, 
				{
					critChance = 
					[
						{
							statType = "BaseStats.CritChance";
							modifierType = "Additive";
							value = 0.27f;
						} : ConstantStatModifier
					];
				} : AdvancedKnifeSharpenerBuffEffector
			];
			UIData = 
			{
				localizedDescription = "LocKey#90924";
				floatValues = 
				[
					27f, 6f
				];
			};
		}, 
		"Attunements.CoolHeadshotDamage"
	];
	nextUpgradeItem = "";
}

AdvancedKnifeSharpenerBuffEffector : ModifyAttackCritChanceEffector
{
	prereqRecord = 
	{
		conditions = 
		[
			{
				weaponEvolution = "Throwable";
			} : WeaponEvolutionHitPrereqCondition, 
			{
				statusEffect = "KnifeSharpenerBuff";
				checkType = "CheckType.Record";
				objectToCheck = "Instigator";
			} : StatusEffectPresentHitPrereqCondition
		];
	} : ProcessHitTriggered;
}

