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

Preset_Tactician_Default : Base_Tactician
{
	CName appearanceResourceName = "Preset_Tactician_Default";
	CName[] visualTags = 
	[
		"Default"
	];
	fk< SlotItemPartPreset >[] slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.Receiver";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_rcv1";
		}, 
		{
			slot = "AttachmentSlots.Barrel";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_base1";
		}, 
		{
			slot = "AttachmentSlots.Magazine";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_mag_std";
		}, 
		{
			slot = "AttachmentSlots.MagazineEmpty";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_mag_stdr";
		}, 
		"Items.ShotgunScopesPartList", {
			slot = "AttachmentSlots.Power_Shotgun_WeaponMod1";
		} : Power_Shotgun_ModList_Slot1, 
		{
			slot = "AttachmentSlots.Power_Shotgun_WeaponMod2";
		} : Power_Shotgun_ModList_Slot2
	];
}

Preset_Tactician_Pimp : Preset_Tactician_Default
{
	CName[] visualTags = 
	[
		"Pimp"
	];
	tags += 
	[
		"Pimp"
	];
}

Preset_Tactician_Neon : Preset_Tactician_Default
{
	CName[] visualTags = 
	[
		"Neon"
	];
	tags += 
	[
		"Neon"
	];
}

Preset_Tactician_Military : Preset_Tactician_Default
{
	CName[] visualTags = 
	[
		"Military"
	];
	tags += 
	[
		"Military"
	];
}

[ EP1 ]
[ notQueryable ]
Preset_Tactician_Prevention : Preset_Tactician_Default
{
	CName[] visualTags = 
	[
		"Default"
	];
	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_Tactician_Krausser_Technical_Stats", "Items.Base_Tactician_Handling_Stats", "Items.Base_Tactician_Krausser_Recoil_Stats", "Items.Base_Tactician_Spread_Stats", "Items.Base_Tactician_Aim_Stats", "Items.Base_Tactician_Krausser_Constant_Stats", "Items.KrausserBonusStats", "Items.Base_Tactician_Damage_Stats", "Items.Base_Power_Stats", "Items.Base_Power_Shotgun_Mult_Stats", "Items.Base_Power_Shotgun_Stats", "Items.Base_Shotgun_RPG_Stats", "Items.Base_Shotgun_Misc_Stats", "Items.Base_Shotgun_Sway_Stats", "Items.Base_PlayerState_Spread_Stats", "Items.Base_Shotgun_DeadReckoning_Stats", "Items.Base_Weapon_Damage_Type_Min_Max", "Items.Base_Weapon_Damage_Type_Physical"
	];
}

[ EP1 ]
Preset_Tactician_Krausser : Preset_Tactician_Prevention
{
	CName[] visualTags = 
	[
		"Krausser"
	];
	tags += 
	[
		"Krausser", "PowerOfThePack", "IllegalItem"
	];
}

Base_Tactician_Krausser_Technical_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			value = 1.f;
		} : NumShotsToFireModifier, 
		{
			value = 0.8f;
		} : CycleTimeModifier, 
		{
			value = 10.f;
		} : MagazineCapacityModifier, 
		{
			value = 1.0f;
		} : ReloadAmountModifier, 
		{
			value = 10.f;
		} : ProjectilesPerShotModifier, 
		"BaseStats.ProjectilesPerShotCombinedModifier"
	];
}

Base_Tactician_Krausser_Recoil_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			value = -20.f;
		} : RecoilDirModifier, 
		{
			value = 70.f;
		} : RecoilAngleModifier, 
		{
			value = 0.04f;
		} : RecoilTimeModifier, 
		{
			value = 0.05f;
		} : RecoilDelayModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearXModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearYModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearXADSModifier, 
		{
			value = 1.f;
		} : RecoilEnableLinearYADSModifier
	];
}

Base_Tactician_Krausser_Constant_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.SpreadDefaultX";
			modifierType = "Additive";
			value = 3.3f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAdsDefaultX";
			modifierType = "Additive";
			value = 2.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadMaxX";
			modifierType = "Additive";
			value = 3.3f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAdsMaxX";
			modifierType = "Additive";
			value = 2.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilKickMin";
			modifierType = "Additive";
			value = 7.5f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilKickMax";
			modifierType = "Additive";
			value = 10.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilRecoveryTime";
			modifierType = "Additive";
			value = 0.75f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.EffectiveRange";
			modifierType = "Multiplier";
			value = 0.6667;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.FirePower";
			modifierType = "Multiplier";
			value = 1.4714f;
		} : ConstantStatModifier, 
		"AttackModifier.WeaponArmorPenetrationLow"
	];
}

[ notQueryable ]
Craftable_Common_Tactician : Preset_Tactician_Default
{
	quality = "Quality.Common";
	slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.Receiver";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_rcv1";
		}, 
		{
			slot = "AttachmentSlots.Barrel";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_base1";
		}, 
		{
			slot = "AttachmentSlots.Magazine";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_mag_std";
		}, 
		{
			slot = "AttachmentSlots.MagazineEmpty";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_mag_stdr";
		}
	];
	CraftingData = "Items.Big_Common_Crafting_Materials_Weapon";
}

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

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

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

[ notQueryable ]
Proficiency_Craftable_Epic_Tactician : Craftable_Epic_Tactician
{
}

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

[ notQueryable ]
Preset_Tactician_Headsman : Preset_Tactician_Default
{
	OnLooted += 
	[
		{
			effectors = 
			[
				{
					fact = "tactician_headsman_owned";
					value = 1;
				} : SetFactEffector
			];
		}
	];
	fk< ItemBlueprint > blueprint = "Items.Iconic_Ranged_Weapon_NoMuzzle_Blueprint";
	displayName = "LocKey#40620";
	visualTags = 
	[
		"Headsman_Tactician"
	];
	tags += 
	[
		"Tactician_Headsman", "IconicWeapon", "CraftableIconic"
	];
	quality = "Quality.Random";
	localizedDescription = "LocKey#40621";
	CName effectiveRangeFalloffCurve = "StandardFalloff";
	rangedAttacks = "Attacks.PhysicalBulletPackage";
	attacks += 
	[
		"Attacks.Bullet_GameEffect"
	];
	fk< WeaponFxPackage > fxPackage = "WeaponFxPackage.PowerLargeCaliber";
	fk< Crosshair > crosshair = "Crosshairs.Power_Overture";
	statModifiers += 
	[
		"Quality.IconicItem"
	];
	npcRPGData = 
	{
		statModifiers += 
		[
			"Quality.IconicItem"
		];
	} : Base_Tactician_NPC_Data;
	CraftingData = "Items.Craftable_Iconic_Weapon";
	slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.Receiver";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_rcv1";
		}, 
		{
			slot = "AttachmentSlots.Barrel";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_base1";
		}, 
		{
			slot = "AttachmentSlots.Magazine";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_mag_std";
		}, 
		{
			slot = "AttachmentSlots.MagazineEmpty";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_mag_stdr";
		}, 
		{
			slot = "AttachmentSlots.Scope";
			fk< Item > itemPartPreset = "Items.Headsman_scope";
		}, 
		{
			slot = "AttachmentSlots.IconicWeaponModLegendary";
			itemPartPreset = "Items.TacticianHeadsmanWeaponMod";
		}
	];
	statModifierGroups = 
	[
		"Items.CraftableIconicQualityRandomisation", "Items.Base_Tactician_Headsman_Technical_Stats", "Items.Base_Tactician_Handling_Stats", "Items.Base_Tactician_Recoil_Stats", "Items.Base_Tactician_Spread_Stats", "Items.Base_Tactician_Aim_Stats", "Items.Base_Tactician_Headsman_Constant_Stats", "Items.Base_Tactician_Damage_Stats", "Items.Base_Power_Stats", "Items.Base_Power_Shotgun_Mult_Stats", "Items.Base_Power_Shotgun_Stats", "Items.Base_Shotgun_RPG_Stats", "Items.Base_Shotgun_Misc_Stats", "Items.Base_Shotgun_Sway_Stats", "Items.Base_PlayerState_Spread_Stats", "Items.Base_Shotgun_DeadReckoning_Stats", "Items.Base_Weapon_Damage_Type_Min_Max", "Items.Base_Weapon_Damage_Type_Physical"
	];
}

Base_Tactician_Headsman_Technical_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			value = 1.f;
		} : NumShotsToFireModifier, 
		{
			value = 0.8f;
		} : CycleTimeModifier, 
		{
			value = 8.f;
		} : MagazineCapacityModifier, 
		{
			value = 1.0f;
		} : ReloadAmountModifier, 
		{
			value = 1.f;
		} : ProjectilesPerShotModifier, 
		"BaseStats.ProjectilesPerShotCombinedModifier"
	];
}

Base_Tactician_Headsman_Constant_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.SpreadDefaultX";
			modifierType = "Additive";
			value = 0.5f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAdsDefaultX";
			modifierType = "Additive";
			value = 0.1f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadMaxX";
			modifierType = "Additive";
			value = 2.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAdsMaxX";
			modifierType = "Additive";
			value = 0.4f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadChangePerShot";
			modifierType = "Additive";
			value = 0.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAdsChangePerShot";
			modifierType = "Additive";
			value = 0.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilKickMin";
			modifierType = "Additive";
			value = 8.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilKickMax";
			modifierType = "Additive";
			value = 11.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilRecoveryTime";
			modifierType = "Additive";
			value = 0.6f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.FirePower";
			modifierType = "Multiplier";
			value = 1.391f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DamagePerHit";
			modifierType = "Multiplier";
			value = 0.8f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.EffectiveRange";
			modifierType = "Multiplier";
			value = 1.5f;
		} : ConstantStatModifier, 
		"AttackModifier.WeaponArmorPenetrationLow", {
			statType = "BaseStats.ZoomLevel";
			modifierType = "Additive";
			value = 0.15f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ZoomLevel";
			modifierType = "Additive";
			refStat = "BaseStats.Quality";
			opSymbol = "*";
			value = 0.05f;
		} : CombinedStatModifier, 
		{
			statType = "BaseStats.EffectiveRange";
			modifierType = "AdditiveMultiplier";
			value = 0.025f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.EffectiveRange";
			modifierType = "AdditiveMultiplier";
			refStat = "BaseStats.Quality";
			opSymbol = "*";
			value = 0.025f;
		} : CombinedStatModifier
	];
}

[ notQueryable ]
Headsman_scope : Base_Short_Scope
{
	displayName = "LocKey#79426";
	localizedDescription = "LocKey#79427";
	quality = "Quality.Common";
	visualTags = 
	[
		"Default"
	];
	CName appearanceResourceName = "w_att__scope_short_07";
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.Quality";
			modifierType = "Additive";
			refStat = "BaseStats.Quality";
			refObject = "Root";
			opSymbol = "*";
			value = 1f;
		} : CombinedStatModifier
	];
	iconPath = "w_att_scope_short_07";
	tags += 
	[
		"DummyPart", "HideInUI", "HideAtVendor"
	];
}

[ notQueryable ]
Preset_Tactician_Dino : Preset_Tactician_Default
{
	OnLooted += 
	[
		{
			effectors = 
			[
				{
					fact = "tactician_dino_owned";
					value = 1;
				} : SetFactEffector
			];
		}
	];
	fk< ItemBlueprint > blueprint = "Items.Iconic_Ranged_Weapon_NoMuzzle_Blueprint";
	displayName = "LocKey#79842";
	visualTags = 
	[
		"Dino_Shotgun"
	];
	quality = "Quality.Random";
	localizedDescription = "LocKey#79843";
	tags += 
	[
		"IconicWeapon", "Tactician_Dino"
	];
	slotPartListPreset = 
	[
		{
			slot = "AttachmentSlots.Receiver";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_rcv1";
		}, 
		{
			slot = "AttachmentSlots.Barrel";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_base1";
		}, 
		{
			slot = "AttachmentSlots.Magazine";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_mag_std";
		}, 
		{
			slot = "AttachmentSlots.MagazineEmpty";
			fk< Item > itemPartPreset = "Items.w_shotgun_constitutional_tactician_mag_stdr";
		}, 
		{
			slot = "AttachmentSlots.IconicWeaponModLegendary";
			itemPartPreset = "Items.TacticianDinoWeaponMod";
		}
	];
	statModifiers += 
	[
		"Quality.IconicItem"
	];
	npcRPGData = 
	{
		statModifiers += 
		[
			"Quality.IconicItem"
		];
	} : Base_Tactician_NPC_Data;
	statModifierGroups = 
	[
		"Items.IconicQualityRandomization", "Items.Base_Tactician_Technical_Stats", "Items.Base_Tactician_Handling_Stats", "Items.Base_Tactician_Recoil_Stats", "Items.Base_Tactician_Spread_Stats", "Items.Base_Tactician_Aim_Stats", "Items.Base_Tactician_Constant_Stats", "Items.Base_Tactician_Damage_Stats", "Items.Base_Power_Stats", "Items.Base_Power_Shotgun_Mult_Stats", "Items.Base_Power_Shotgun_Stats", "Items.Base_Shotgun_RPG_Stats", "Items.Base_Shotgun_Misc_Stats", "Items.Base_Shotgun_Sway_Stats", "Items.Base_PlayerState_Spread_Stats", "Items.Base_Shotgun_DeadReckoning_Stats", "Items.Base_Weapon_Status_Effect_Application_Stats", "Items.Base_Weapon_Damage_Type_Min_Max", "Items.Base_Weapon_Damage_Type_Physical"
	];
	bool scaleToPlayer = true;
}

[ notQueryable ]
Common_Tactician_Headsman : Preset_Tactician_Headsman
{
	quality = "Quality.Common";
	CraftingData = "Items.Craftable_Common_Iconic_Weapon";
}

[ notQueryable ]
Uncommon_Tactician_Headsman : Preset_Tactician_Headsman
{
	quality = "Quality.Uncommon";
	CraftingData = "Items.Craftable_Uncommon_Iconic_Weapon";
}

[ notQueryable ]
Rare_Tactician_Headsman : Preset_Tactician_Headsman
{
	quality = "Quality.Rare";
	CraftingData = "Items.Craftable_Rare_Iconic_Weapon";
}

[ notQueryable ]
Epic_Tactician_Headsman : Preset_Tactician_Headsman
{
	quality = "Quality.Epic";
	CraftingData = "Items.Craftable_Epic_Iconic_Weapon";
}

[ notQueryable ]
Legendary_Tactician_Headsman : Preset_Tactician_Headsman
{
	quality = "Quality.Legendary";
	CraftingData = "Items.Craftable_Legendary_Iconic_Weapon";
}

