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

Preset_Saratoga_Default : Base_Saratoga
{
	CName appearanceResourceName = "Preset_Saratoga_Default";
	CName[] visualTags = 
	[
		"Default"
	];
	tags += 
	[
		"T2_Inject_Weapon", "Saratoga"
	];
	fk< SlotItemPartPreset >[] slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.Receiver";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__rcv1";
		}, 
		{
			slot = "AttachmentSlots.Barrel";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__base1";
		}, 
		{
			slot = "AttachmentSlots.Magazine";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__mag_std";
		}, 
		{
			slot = "AttachmentSlots.MagazineEmpty";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__mag_stdr";
		}, 
		"Items.HandgunAndRevolverScopesPartList", {
			slot = "AttachmentSlots.Power_AR_SMG_LMG_WeaponMod1";
		} : Power_AR_SMG_LMG_ModList_Slot1, 
		{
			slot = "AttachmentSlots.Power_AR_SMG_LMG_WeaponMod2";
		} : Power_AR_SMG_LMG_ModList_Slot2
	];
}

[ notQueryable ]
Preset_Saratoga_Default_Unbreakable : Preset_Saratoga_Default
{
	tags += 
	[
		"Unbreakable"
	];
}

Preset_Saratoga_Pimp : Preset_Saratoga_Default
{
	CName[] visualTags = 
	[
		"Pimp"
	];
	tags += 
	[
		"Pimp"
	];
}

[ notQueryable ]
Preset_Saratoga_Pimp_Unbreakable : Preset_Saratoga_Pimp
{
	tags += 
	[
		"Unbreakable"
	];
}

Preset_Saratoga_Neon : Preset_Saratoga_Default
{
	CName[] visualTags = 
	[
		"Neon"
	];
	tags += 
	[
		"Neon"
	];
}

[ notQueryable ]
Preset_Saratoga_Neon_Unbreakable : Preset_Saratoga_Neon
{
	tags += 
	[
		"Unbreakable"
	];
}

Preset_Saratoga_Military : Preset_Saratoga_Default
{
	CName[] visualTags = 
	[
		"Military"
	];
	tags += 
	[
		"Military"
	];
}

[ notQueryable ]
Preset_Saratoga_Military_Unbreakable : Preset_Saratoga_Military
{
	tags += 
	[
		"Unbreakable"
	];
}

[ notQueryable ]
Preset_Saratoga_Arasaka_2020 : Base_Saratoga
{
	CName appearanceResourceName = "Preset_Saratoga_Default";
	displayName = "LocKey#51341";
	visualTags = 
	[
		"Arasaka_2020"
	];
	tags += 
	[
		"Saratoga_2020"
	];
	fk< SlotItemPartPreset >[] slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.Receiver";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__rcv1";
		}, 
		{
			slot = "AttachmentSlots.Barrel";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__base1";
		}, 
		{
			slot = "AttachmentSlots.Magazine";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__mag_std";
		}, 
		{
			slot = "AttachmentSlots.MagazineEmpty";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__mag_stdr";
		}, 
		"Items.HandgunAndRevolverScopesPartList", {
			slot = "AttachmentSlots.Power_AR_SMG_LMG_WeaponMod1";
		} : Power_AR_SMG_LMG_ModList_Slot1, 
		{
			slot = "AttachmentSlots.Power_AR_SMG_LMG_WeaponMod2";
		} : Power_AR_SMG_LMG_ModList_Slot2
	];
	statModifierGroups = 
	[
		"Items.QualityRandomization", "Items.ItemPlusRandomizer_MaxQuality", "Items.ItemPlusRandomizer_Below_MaxQuality", "Items.WeaponModsWeights_On_Tier2Plus", "Items.WeaponModsWeights_On_Tier3Plus", "Items.WeaponModsWeights_On_Tier4Plus", "Items.WeaponModsWeights_On_Tier5Plus", "Items.WeaponModsWeights_On_Tier5PlusPlus", "Items.Base_Saratoga_Arasaka_2020_Technical_Stats", "Items.Base_Saratoga_Handling_Stats", "Items.Base_Saratoga_Arasaka_2020_Constant_Stats", "Items.Base_Saratoga_Arasaka_2020_Recoil_Stats", "Items.Base_Saratoga_Aim_Stats", "Items.Base_Saratoga_Spread_Stats", "Items.Base_Saratoga_Damage_Stats", "Items.Base_Power_Stats", "Items.Base_Power_Submachinegun_Mult_Stats", "Items.Base_Power_Submachinegun_Stats", "Items.Base_Submachinegun_RPG_Stats", "Items.Base_Submachinegun_Misc_Stats", "Items.Base_Submachinegun_Sway_Stats", "Items.Base_PlayerState_Spread_Stats", "Items.Base_Submachinegun_DeadReckoning_Stats", "Items.Base_Weapon_Damage_Type_Min_Max", "Items.Base_Weapon_Damage_Type_Physical"
	];
}

Base_Saratoga_Arasaka_2020_Technical_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			value = 1.f;
		} : NumShotsToFireModifier, 
		{
			value = 0.06f;
		} : CycleTimeModifier, 
		{
			value = 50.f;
		} : MagazineCapacityModifier, 
		{
			value = 1.f;
		} : ProjectilesPerShotModifier, 
		"BaseStats.ProjectilesPerShotCombinedModifier"
	];
}

Base_Saratoga_Arasaka_2020_Recoil_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			value = -20.0f;
		} : RecoilDirModifier, 
		{
			value = 25.0f;
		} : RecoilAngleModifier, 
		{
			value = 0.045f;
		} : RecoilHoldDurationModifier, 
		{
			value = 0.05f;
		} : RecoilTimeModifier, 
		{
			value = 0.18f;
		} : RecoilRecoveryTimeModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearXModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearYModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearXADSModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearYADSModifier
	];
}

Base_Saratoga_Arasaka_2020_Constant_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.SpreadDefaultX";
			modifierType = "Additive";
			value = 1.1f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadMaxX";
			modifierType = "Additive";
			value = 4.4f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAdsDefaultX";
			modifierType = "Additive";
			value = 0.55f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAdsMaxX";
			modifierType = "Additive";
			value = 2.2f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadChangePerShot";
			modifierType = "Additive";
			value = 0.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAdsChangePerShot";
			modifierType = "Additive";
			value = 0.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilKickMin";
			modifierType = "Additive";
			value = 0.45f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilKickMax";
			modifierType = "Additive";
			value = 0.6f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DamagePerHit";
			modifierType = "Multiplier";
			value = 1.034f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.FirePower";
			modifierType = "Multiplier";
			value = 1.333f;
		} : ConstantStatModifier
	];
}

Preset_Saratoga_Arasaka_2077 : Preset_Saratoga_Arasaka_2020
{
	visualTags = 
	[
		"Arasaka_2077"
	];
}

[ notQueryable ]
Preset_Saratoga_Arasaka_2077_Unbreakable : Preset_Saratoga_Arasaka_2077
{
	tags += 
	[
		"Unbreakable"
	];
}

[ EP1 ]
Preset_Saratoga_Krausser : Preset_Saratoga_Default
{
	CName[] visualTags = 
	[
		"Krausser"
	];
	tags += 
	[
		"Krausser", "PowerOfThePack", "IllegalItem"
	];
	statModifierGroups = 
	[
		"Items.QualityRandomization", "Items.ItemPlusRandomizer_MaxQuality", "Items.ItemPlusRandomizer_Below_MaxQuality", "Items.WeaponModsWeights_On_Tier2Plus", "Items.WeaponModsWeights_On_Tier3Plus", "Items.WeaponModsWeights_On_Tier4Plus", "Items.WeaponModsWeights_On_Tier5Plus", "Items.WeaponModsWeights_On_Tier5PlusPlus", "Items.Base_Saratoga_Krausser_Technical_Stats", "Items.Base_Saratoga_Handling_Stats", "Items.Base_Saratoga_Krausser_Constant_Stats", "Items.Base_Saratoga_Krausser_Recoil_Stats", "Items.Base_Saratoga_Aim_Stats", "Items.Base_Saratoga_Spread_Stats", "Items.KrausserBonusStats", "Items.Base_Saratoga_Damage_Stats", "Items.Base_Power_Stats", "Items.Base_Power_Submachinegun_Mult_Stats", "Items.Base_Power_Submachinegun_Stats", "Items.Base_Submachinegun_RPG_Stats", "Items.Base_Submachinegun_Misc_Stats", "Items.Base_Submachinegun_Sway_Stats", "Items.Base_PlayerState_Spread_Stats", "Items.Base_Submachinegun_DeadReckoning_Stats", "Items.Base_Weapon_Damage_Type_Min_Max", "Items.Base_Weapon_Damage_Type_Physical"
	];
}

Base_Saratoga_Krausser_Technical_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			value = 1.f;
		} : NumShotsToFireModifier, 
		{
			value = 0.07f;
		} : CycleTimeModifier, 
		{
			value = 30.f;
		} : MagazineCapacityModifier, 
		{
			value = 1.f;
		} : ProjectilesPerShotModifier, 
		"BaseStats.ProjectilesPerShotCombinedModifier"
	];
}

Base_Saratoga_Krausser_Recoil_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			value = 0.0f;
		} : RecoilDirModifier, 
		{
			value = 22.f;
		} : RecoilAngleModifier, 
		{
			value = 0.045f;
		} : RecoilHoldDurationModifier, 
		{
			value = 0.05f;
		} : RecoilTimeModifier, 
		{
			value = 0.2f;
		} : RecoilRecoveryTimeModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearXModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearYModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearXADSModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearYADSModifier
	];
}

Base_Saratoga_Krausser_Constant_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.SpreadDefaultX";
			modifierType = "Additive";
			value = 1.04f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadMaxX";
			modifierType = "Additive";
			value = 4.16f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAdsDefaultX";
			modifierType = "Additive";
			value = 0.4f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAdsMaxX";
			modifierType = "Additive";
			value = 1.6f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadChangePerShot";
			modifierType = "Additive";
			value = 0.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAdsChangePerShot";
			modifierType = "Additive";
			value = 0.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilKickMin";
			modifierType = "Additive";
			value = 0.45f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilKickMax";
			modifierType = "Additive";
			value = 0.55f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DamagePerHit";
			modifierType = "Multiplier";
			value = 0.95f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HeadshotDamageMultiplier";
			modifierType = "Additive";
			value = 0.25f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.FirePower";
			modifierType = "Multiplier";
			value = 0.9023f;
		} : ConstantStatModifier
	];
}

[ notQueryable ]
Craftable_Common_Saratoga : Preset_Saratoga_Default
{
	quality = "Quality.Common";
	slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.Receiver";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__rcv1";
		}, 
		{
			slot = "AttachmentSlots.Barrel";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__base1";
		}, 
		{
			slot = "AttachmentSlots.Magazine";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__mag_std";
		}, 
		{
			slot = "AttachmentSlots.MagazineEmpty";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__mag_stdr";
		}
	];
	CraftingData = "Items.Big_Common_Crafting_Materials_Weapon";
}

[ notQueryable ]
Craftable_Uncommon_Saratoga : Craftable_Common_Saratoga
{
	quality = "Quality.Uncommon";
	CraftingData = "Items.Big_Uncommon_Crafting_Materials_Weapon";
}

[ notQueryable ]
Craftable_Rare_Saratoga : Craftable_Uncommon_Saratoga
{
	quality = "Quality.Rare";
	CraftingData = "Items.Big_Rare_Crafting_Materials_Weapon";
}

[ notQueryable ]
Craftable_Epic_Saratoga : Craftable_Uncommon_Saratoga
{
	quality = "Quality.Epic";
	CraftingData = "Items.Big_Epic_Crafting_Materials_Weapon";
}

[ notQueryable ]
Craftable_Legendary_Saratoga : Craftable_Uncommon_Saratoga
{
	quality = "Quality.Legendary";
	CraftingData = "Items.Big_Legendary_Crafting_Materials_Weapon";
}

[ notQueryable ]
Preset_Saratoga_Maelstrom : Preset_Saratoga_Default
{
	OnLooted += 
	[
		{
			effectors = 
			[
				{
					fact = "saratoga_maelstrom_owned";
					value = 1;
				} : SetFactEffector
			];
		}
	];
	fk< ItemBlueprint > blueprint = "Items.Iconic_Ranged_Weapon_Blueprint";
	displayName = "LocKey#40581";
	visualTags = 
	[
		"Maelstrom_Saratoga"
	];
	quality = "Quality.Random";
	tags += 
	[
		"IconicWeapon"
	];
	statModifiers += 
	[
		"Quality.IconicItem"
	];
	localizedDescription = "LocKey#40583";
	npcRPGData = 
	{
		statModifiers += 
		[
			"Quality.IconicItem"
		];
	} : Items.Base_Saratoga_NPC_Data;
	rangedAttacks = "Attacks.ElectricStatusEffectBulletPackage";
	slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.Receiver";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__rcv1";
		}, 
		{
			slot = "AttachmentSlots.Barrel";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__base1";
		}, 
		{
			slot = "AttachmentSlots.Magazine";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__mag_std";
		}, 
		{
			slot = "AttachmentSlots.MagazineEmpty";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__mag_stdr";
		}, 
		{
			slot = "AttachmentSlots.IconicWeaponModLegendary";
			itemPartPreset = "Items.SaratogaMaelstromWeaponMod";
		}
	];
	statModifierGroups = 
	[
		"Items.IconicQualityRandomization", "Items.Base_Saratoga_Technical_Stats", "Items.Base_Saratoga_Handling_Stats", "Items.Base_Saratoga_Constant_Stats", "Items.Base_Saratoga_Recoil_Stats", "Items.Base_Saratoga_Aim_Stats", "Items.Base_Saratoga_Spread_Stats", "Items.Base_Saratoga_Damage_Stats", "Items.Base_Power_Stats", "Items.Base_Power_Submachinegun_Mult_Stats", "Items.Base_Power_Submachinegun_Stats", "Items.Base_Submachinegun_RPG_Stats", "Items.Base_Submachinegun_Misc_Stats", "Items.Base_Submachinegun_Sway_Stats", "Items.Base_PlayerState_Spread_Stats", "Items.Base_Submachinegun_DeadReckoning_Stats", "Items.Base_Weapon_Status_Effect_Application_Stats", "Items.Base_Weapon_Damage_Type_Min_Max", "Items.Base_Weapon_Damage_Type_Electric"
	];
}

[ notQueryable ]
Preset_Saratoga_Raffen : Preset_Saratoga_Default
{
	OnLooted += 
	[
		{
			effectors = 
			[
				{
					fact = "saratoga_raffen_owned";
					value = 1;
				} : SetFactEffector
			];
		}
	];
	fk< ItemBlueprint > blueprint = "Items.Iconic_Ranged_Weapon_Blueprint";
	displayName = "LocKey#40582";
	visualTags = 
	[
		"Raffen_Saratoga"
	];
	quality = "Quality.Random";
	tags += 
	[
		"IconicWeapon"
	];
	statModifiers += 
	[
		"Quality.IconicItem"
	];
	localizedDescription = "LocKey#84935";
	npcRPGData = 
	{
		statModifiers += 
		[
			"Quality.IconicItem"
		];
	} : Items.Base_Saratoga_NPC_Data;
	slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.Receiver";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__rcv1";
		}, 
		{
			slot = "AttachmentSlots.Barrel";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__base1";
		}, 
		{
			slot = "AttachmentSlots.Magazine";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__mag_std";
		}, 
		{
			slot = "AttachmentSlots.MagazineEmpty";
			fk< Item > itemPartPreset = "Items.w_submachinegun__militech_saratoga__mag_stdr";
		}, 
		{
			slot = "AttachmentSlots.IconicWeaponModLegendary";
			itemPartPreset = "Items.RaffenSaratogaWeaponMod";
		}
	];
	OnAttach += 
	[
		{
			effectors = 
			[
				{
					prereqRecord = 
					{
						nestedPrereqs = 
						[
							"Prereqs.IsInVehiclePrereq", {
								conditions = 
								[
									{
										attackType = "Ranged";
									} : AttackTypeHitPrereqCondition, 
									{
										weaponType = "Ranged";
									} : WeaponTypeHitPrereqCondition
								];
							} : Prereqs.ProcessHitTriggered
						];
					} : MultiPrereq;
					value = 0.667f;
				} : Perks.MultiplyDamage
			];
		} : GameplayLogicPackage
	];
	statModifierGroups = 
	[
		"Items.IconicQualityRandomization", "Items.Base_Saratoga_Technical_Stats", "Items.Base_Saratoga_Handling_Stats", "Items.Base_Saratoga_Constant_Stats", "Items.Base_Saratoga_Recoil_Stats", "Items.Base_Saratoga_Aim_Stats", "Items.Base_Saratoga_Spread_Stats", "Items.Base_Saratoga_Damage_Stats", "Items.Base_Power_Stats", "Items.Base_Power_Submachinegun_Mult_Stats", "Items.Base_Power_Submachinegun_Stats", "Items.Base_Submachinegun_DeadReckoning_Stats", "Items.Base_Submachinegun_RPG_Stats", "Items.Base_Submachinegun_Misc_Stats", "Items.Base_Submachinegun_Sway_Stats", "Items.Base_PlayerState_Spread_Stats", "Items.Base_Weapon_Damage_Type_Min_Max", "Items.Base_Weapon_Damage_Type_Physical"
	];
}

