package Items
using RTDB, BaseStats, WeaponFxPackage

[ notQueryable ]
Base_Slaughtomatic : Base_Power_Handgun
{
	fk< ItemBlueprint > blueprint = "Items.Base_Power_Handgun_NoAttachments_Blueprint";
	buyPrice = 
	[
		"Price.Slaughtomatic"
	];
	sellPrice = 
	[
		"Price.Slaughtomatic", "Price.SellMultiplier"
	];
	displayName = "LocKey#3575";
	string friendlyName = "w_handgun_budget_slaughtomatic";
	fk< UIIcon > hudIcon = "HUDWeaponIcons.Slaughtomatic";
	fk< ConstantStatModifier > price = 
	{
		statType = "BaseStats.Price";
		modifierType = "Additive";
		value = 35;
	} : ConstantStatModifier;
	localizedDescription = "LocKey#3576";
	fk< SlotItemPartListElement >[] slotPartList = 
	[
		{
			slot = "AttachmentSlots.Receiver";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.w_handgun__budget_slaughtomatic__rcv1";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.Barrel";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.w_handgun__budget_slaughtomatic__base1";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.Magazine";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.w_handgun__budget_slaughtomatic__mag_std";
				}
			];
		}, 
		{
			slot = "AttachmentSlots.MagazineEmpty";
			fk< ItemPartListElement >[] itemPartList = 
			[
				{
					item = "Items.w_handgun__budget_slaughtomatic__mag_stdr";
				}
			];
		}
	];
	CName audioName = "wea_set_slaught";
	CName[] tags += 
	[
		"Preload", "Weapon", "Handgun", "DiscardOnEmpty", "AutoScalingItem", "Slaughtomatic"
	];
	fk< TriggerMode >[] triggerModes = 
	[
		"TriggerMode.FullAuto"
	];
	fk< TriggerMode > primaryTriggerMode = "TriggerMode.FullAuto";
	fk< WeaponManufacturer > manufacturer = "WeaponManufacturer.Street";
	fk< WeaponEvolution > evolution = "WeaponEvolution.Power";
	stateMachineName = "HeavyWeapon";
	fk< StatModifierGroup >[] statModifierGroups = 
	[
		"Items.Base_Weapon_Damage_Type_Min_Max", "Items.Base_Handgun_RPG_Stats", "Items.Base_Handgun_Misc_Stats", "Items.Base_Handgun_Sway_Stats", "Items.Base_PlayerState_Spread_Stats", "Items.Base_Power_Handgun_Mult_Stats", "Items.Base_Power_Handgun_Stats", "Items.Base_Slaughtomatic_Technical_Stats", "Items.Base_Slaughtomatic_Handling_Stats", "Items.Base_Slaughtomatic_Recoil_Stats", "Items.Base_Slaughtomatic_Spread_Stats", "Items.Base_Slaughtomatic_Aim_Stats", "Items.Base_Slaughtomatic_Constant_Stats", "Items.Base_PlayerState_Spread_Stats", "Items.Base_Weapon_Damage_Type_Physical", "Items.Base_Slaughtomatic_Damage_Stats"
	];
	fk< GameplayLogicPackage >[] OnAttach += 
	[
		"EquipmentGLP.FastStaminaRegen", "EquipmentGLP.MediumStaminaDelay"
	];
	enableNpcRPGData = true;
	npcRPGData = 
	{
		statModifierGroups += 
		[
		];
	} : Base_Slaughtomatic_NPC_Data;
	CName audioSwitchName = "";
	CName audioSwitchValue = "";
	fk< WeaponFxPackage > fxPackage = "WeaponFxPackage.PowerHandgun";
	float weaponNearPlane = 14.0f;
	float weaponFarPlane = 17.0f;
	float weaponEdgesSharpness = 0.4958f;
	float weaponVignetteIntensity = 0.1357f;
	float weaponVignetteRadius = 0.6482f;
	float weaponVignetteCircular = 0.0f;
	float weaponBlurIntensity = 1.0f;
	float weaponNearPlane_aim = 14.0f;
	float weaponFarPlane_aim = 19.0f;
	float weaponEdgesSharpness_aim = 0.4958f;
	float weaponVignetteIntensity_aim = 0.1357f;
	float weaponVignetteRadius_aim = 0.6814f;
	float weaponVignetteCircular_aim = 0.1745f;
	float weaponBlurIntensity_aim = 1.f;
}

Base_Slaughtomatic_NPC_Data : Base_Handgun_NPC_Data
{
	statModifierGroups += 
	[
		"Items.Base_Slaughtomatic_Technical_Stats", "Items.Base_Slaughtomatic_NPC_Damage_Stats"
	];
}

Base_Slaughtomatic_Technical_Stats : StatModifierGroup
{
	statModifiers = 
	[
		{
			float value = 1.f;
		} : NumShotsToFireModifier, 
		{
			float value = 0.1666f;
		} : CycleTimeModifier, 
		{
			float value = 0.1f;
		} : CycleTime_BurstSecondaryModifier, 
		{
			float value = 3.f;
		} : NumShotsInBurstSecondaryModifier, 
		{
			float value = 36.f;
		} : MagazineCapacityModifier, 
		{
			float value = 1.f;
		} : ProjectilesPerShotModifier, 
		"BaseStats.ProjectilesPerShotCombinedModifier"
	];
}

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

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

Base_Slaughtomatic_Handling_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			float value = 1.1f;
		} : ZoomLevelModifier, 
		{
			float value = 1.867f;
		} : EquipDuration_FirstModifier
	];
}

Base_Slaughtomatic_Recoil_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			float value = 0.f;
		} : RecoilDirModifier, 
		{
			float value = 180.f;
		} : RecoilAngleModifier, 
		{
			float value = 0.03f;
		} : RecoilHoldDurationModifier, 
		{
			float value = 0.03f;
		} : RecoilTimeModifier, 
		{
			float value = 0.35f;
		} : RecoilRecoveryTimeModifier, 
		{
			float value = 1.f;
		} : RecoilEnableLinearXModifier, 
		{
			float value = 1.f;
		} : RecoilEnableLinearYModifier, 
		{
			float value = 1.f;
		} : RecoilEnableLinearXADSModifier, 
		{
			float value = 1.f;
		} : RecoilEnableLinearYADSModifier
	];
}

Base_Slaughtomatic_Spread_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			float value = 0.f;
		} : SpreadMinXModifier, 
		{
			float value = 0.f;
		} : SpreadMinYModifier, 
		{
			float value = 1.f;
		} : SpreadUseInAdsModifier, 
		{
			float value = 0.f;
		} : SpreadAdsMinXModifier, 
		{
			float value = 0.f;
		} : SpreadAdsMinYModifier, 
		{
			float value = 0.f;
		} : SpreadAdsMaxXModifier, 
		{
			float value = 0.375f;
		} : SpreadAdsMaxYModifier, 
		{
			float value = 0.0f;
		} : SpreadAdsChangePerShotModifier, 
		{
			float value = 2.0f;
		} : SpreadResetSpeedModifier, 
		{
			float value = 0.2f;
		} : SpreadResetTimeThresholdModifier, 
		{
			float value = 1.f;
		} : SpreadRandomizeOriginPointModifier, 
		{
			float value = 1.f;
		} : SpreadUseCircularSpreadModifier
	];
}

Base_Slaughtomatic_Aim_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.AimFOV";
			modifierType = "Additive";
			value = 49;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.AimOffset";
			modifierType = "Additive";
			value = 0.f;
		} : ConstantStatModifier
	];
}

Base_Slaughtomatic_Constant_Stats : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.SpreadDefaultX";
			modifierType = "Additive";
			value = 1.2f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadAdsDefaultX";
			modifierType = "Additive";
			value = 0.4f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.SpreadMaxX";
			modifierType = "Additive";
			value = 4.8f;
		} : 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.8f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.RecoilKickMax";
			modifierType = "Additive";
			value = 1.3f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.EffectiveRange";
			modifierType = "Multiplier";
			value = 0.6667;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.KnockdownImpulse";
			modifierType = "Additive";
			value = -10.0f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.FirePower";
			modifierType = "Multiplier";
			value = 1.5f;
		} : ConstantStatModifier
	];
}

w_handgun__budget_slaughtomatic__rcv1 : WeaponHandgunReceiverBase
{
	string friendlyName = "w_handgun__budget_slaughtomatic__rcv1";
	CName appearanceResourceName = "w_handgun__budget_slaughtomatic__rcv1_01";
	CName audioSwitchName = "w_handgun__budget_slaughtomatic__rcv1";
	CName audioSwitchValue = "w_handgun__budget_slaughtomatic__rcv1";
}

w_handgun__budget_slaughtomatic__base1 : WeaponHandgunBarrelBase
{
	string friendlyName = "w_handgun__budget_slaughtomatic__base1";
	CName appearanceResourceName = "w_handgun__budget_slaughtomatic__base1_01";
	CName audioSwitchName = "w_handgun__budget_slaughtomatic__base1";
	CName audioSwitchValue = "w_handgun__budget_slaughtomatic__base1";
}

w_handgun__budget_slaughtomatic__mag_std : WeaponMagazineBase
{
	string friendlyName = "w_handgun__budget_slaughtomatic__mag_std";
	CName appearanceResourceName = "w_handgun__budget_slaughtomatic__mag_std_01";
	CName audioSwitchName = "w_handgun__budget_slaughtomatic__mag_std";
	CName audioSwitchValue = "w_handgun__budget_slaughtomatic__mag_std";
}

w_handgun__budget_slaughtomatic__mag_stdr : WeaponMagazineBase
{
	string friendlyName = "w_handgun__budget_slaughtomatic__mag_stdr";
	CName appearanceResourceName = "w_handgun__budget_slaughtomatic__mag_stdr_01";
	CName audioSwitchName = "w_handgun__budget_slaughtomatic__mag_stdr";
	CName audioSwitchValue = "w_handgun__budget_slaughtomatic__mag_stdr";
}

