package BaseStatusEffect
using RTDB, Perks, Prereqs, Effectors, Attacks, BaseStats

ForceCritOnNextThrowSE : StatusEffect
{
	bool isAffectedByTimeDilationPlayer = true;
	gameplayTags += 
	[
		"ForceCritOnNextThrow"
	];
	duration = 
	{
		statModifiers += 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 2.f;
			} : ConstantStatModifier
		];
	} : StatModifierGroup;
}

FastFinisherSE : StatusEffect
{
	bool isAffectedByTimeDilationPlayer = true;
	gameplayTags += 
	[
		"ForceCritOnNextMelee"
	];
	duration = 
	{
		statModifiers += 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 2.f;
			} : ConstantStatModifier
		];
	} : StatModifierGroup;
}

FocusedCoolPerkSE : BuffStatusEffect
{
	uiData = 
	{
		displayName = "LocKey#87897";
		description = "";
		string iconPath = "perks_aim";
		priority = 6.0f;
	};
	bool isAffectedByTimeDilationPlayer = true;
	gameplayTags += 
	[
		"FocusedCoolPerkSE"
	];
	duration = 
	{
		statModifiers += 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 2.5f;
			} : ConstantStatModifier
		];
	} : StatModifierGroup;
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.StaminaAimingCost";
								modifierType = "Multiplier";
								value = 0.f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnPlayer
			];
		} : GameplayLogicPackage
	];
}

FocusedDelayedStaminaConsumptionSE : StatusEffect
{
	bool isAffectedByTimeDilationPlayer = true;
	gameplayTags += 
	[
		"FocusedDelayedStaminaConsumptionSE"
	];
	removeAllStacksWhenDurationEnds = true;
	duration = 
	{
		statModifiers += 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 20.f;
			} : ConstantStatModifier
		];
	} : StatModifierGroup;
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 1;
			} : ConstantStatModifier
		];
	};
}

RelaxedCoolPerkSE : BuffStatusEffect
{
	bool isAffectedByTimeDilationPlayer = true;
	gameplayTags += 
	[
		"RelaxedCoolPerkSE"
	];
	uiData = 
	{
		string displayName = "LocKey#87901";
		description = "";
		string iconPath = "perks_reload";
		priority = 6.0f;
	};
	duration = 
	{
		statModifiers += 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 20.f;
			} : ConstantStatModifier
		];
	} : StatModifierGroup;
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 2;
			} : ConstantStatModifier
		];
	};
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = "Prereqs.CoolPerksGunsHeldPrereq";
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.ReloadTimeBonus";
								modifierType = "Additive";
								value = -0.10f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnWeapon
			];
			stackable = true;
		} : GameplayLogicPackage
	];
}

ReduceStaminaCostOfFocused : StatusEffect
{
	bool isAffectedByTimeDilationPlayer = true;
	gameplayTags += 
	[
		"ReduceStaminaCostOfFocused"
	];
	duration = 
	{
		statModifiers += 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 8.f;
			} : ConstantStatModifier
		];
	} : StatModifierGroup;
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 2;
			} : ConstantStatModifier
		];
	};
}

DeadeyeSE : StatusEffect
{
	bool isAffectedByTimeDilationPlayer = true;
	gameplayTags += 
	[
		"DeadeyeSE"
	];
	duration = "BaseStats.InfiniteDuration";
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.SpreadDefaultX";
								modifierType = "Multiplier";
								value = 0.01f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsDefaultX";
								modifierType = "Multiplier";
								value = 0.01f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.BulletMagnetismDefaultAngle";
								modifierType = "Multiplier";
								value = 2.0f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.BulletMagnetismHighVelocityAngle";
								modifierType = "Multiplier";
								value = 2.0f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnWeapon, 
				{
					prereqRecord = "NewPerks.WeakspotOrHeadshotRangedHitPrereq";
					CName activationSFXName = "w_gun_perk_deadeye";
					bool fireAndForget = true;
				} : PlaySFXEffector, 
				{
					prereqRecord = "NewPerks.WeakspotOrHeadshotRangedHitPrereq";
					hitFlag = "Special";
				} : AddHitFlagToAttackEffector, 
				{
					statusEffect = "BaseStatusEffect.DeadeyeJustEndedSE";
					inverted = true;
					removeWithEffector = false;
				} : ApplyStatusEffectEffector, 
				{
					prereqRecord = "NewPerks.WeakspotOrHeadshotRangedHitPrereqAllowProjection";
					value = 1.2;
				} : MultiplyDamage
			];
		} : GameplayLogicPackage
	];
}

DeadeyeJustEndedSE : DeadeyeSE
{
	duration = 
	{
		statModifiers += 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 0.15f;
			} : ConstantStatModifier
		];
	} : StatModifierGroup;
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.SpreadDefaultX";
								modifierType = "Multiplier";
								value = 0.01f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsDefaultX";
								modifierType = "Multiplier";
								value = 0.01f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnWeapon, 
				{
					prereqRecord = "NewPerks.WeakspotOrHeadshotRangedHitPrereq";
					CName activationSFXName = "w_gun_perk_deadeye";
					bool fireAndForget = true;
					bool stopActiveSfxOnDeactivate = false;
				} : PlaySFXEffector, 
				{
					prereqRecord = "NewPerks.WeakspotOrHeadshotRangedHitPrereqAllowProjection";
					value = 1.25;
				} : MultiplyDamage
			];
		} : GameplayLogicPackage
	];
}

DeadeyeQuickReloadSE : BuffStatusEffect
{
	bool isAffectedByTimeDilationPlayer = true;
	gameplayTags += 
	[
		"DeadeyeQuickReloadSE"
	];
	uiData = 
	{
		string displayName = "LocKey#87923";
		description = "";
		string iconPath = "perks_reload";
		priority = 6.0f;
	};
	duration = 
	{
		statModifiers += 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 4.f;
			} : ConstantStatModifier
		];
	} : StatModifierGroup;
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = "Prereqs.CoolPerksGunsHeldPrereq";
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.ReloadTimeBonus";
								modifierType = "Additive";
								value = -0.35f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnWeapon
			];
		} : GameplayLogicPackage
	];
}

UsedHealingItemOrCyberwareStatusEffect : StatusEffect
{
	gameplayTags += 
	[
		"UsedHealingItemOrCyberwareStatusEffect"
	];
	fk< StatModifierGroup > duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 4;
			} : ConstantStatModifier
		];
	};
}

InvisibleKillMovementSpeedBonusSE : BuffStatusEffect
{
	bool isAffectedByTimeDilationPlayer = true;
	gameplayTags += 
	[
		"InvisibleKillMovementSpeedBonusSE"
	];
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 6;
			} : ConstantStatModifier
		];
	};
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 1;
			} : ConstantStatModifier
		];
	};
	removeAllStacksWhenDurationEnds = true;
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			stackable = true;
			effectors = 
			[
				{
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.MaxSpeed";
								modifierType = "AdditiveMultiplier";
								value = 0.1f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnPlayer
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string displayName = "LocKey#87933";
		description = "";
		string iconPath = "energized_icon";
	};
}

StealthKillMovementSpeedStackSE : BuffStatusEffect
{
	bool isAffectedByTimeDilationPlayer = true;
	gameplayTags += 
	[
		"StealthKillMovementSpeedStackSE"
	];
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 30;
			} : ConstantStatModifier
		];
	};
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 2;
			} : ConstantStatModifier
		];
	};
	removeAllStacksWhenDurationEnds = true;
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			stackable = true;
			effectors = 
			[
				{
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.MaxSpeed";
								modifierType = "AdditiveMultiplier";
								value = 0.1f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnPlayer
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string displayName = "LocKey#87896";
		description = "";
		string iconPath = "stamina_booster_icon";
	};
}

IncreaseDamageOfNextMeleeAttackWithThrownWeaponSE : StatusEffect
{
	bool isAffectedByTimeDilationPlayer = true;
	gameplayTags += 
	[
		"IncreaseDamageOfNextMeleeAttackWithThrownWeaponSE"
	];
	removeAllStacksWhenDurationEnds = true;
	duration = 
	{
		statModifiers += 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 10.f;
			} : ConstantStatModifier
		];
	} : StatModifierGroup;
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 1;
			} : ConstantStatModifier
		];
	};
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = "Prereqs.ThrowableWeaponHeldPrereq";
					fk< Effector > effectorToApply = 
					{
						prereqRecord = 
						{
							string pipelineType = "All";
						} : BaseStatusEffect.MeleeAttackWithThrowableHitPrereq;
						value = 3.f;
					} : MultiplyDamage;
				} : ApplyEffectorOnPlayer, 
				{
					prereqRecord = "Prereqs.ThrowableWeaponHeldPrereq";
					fk< Effector > effectorToApply = 
					{
						prereqRecord = "BaseStatusEffect.MeleeAttackWithThrowableHitPrereq";
						statusEffects = 
						[
							"BaseStatusEffect.IncreaseDamageOfNextMeleeAttackWithThrownWeaponSE"
						];
					} : RemoveStatusEffectsEffector;
				} : ApplyEffectorOnPlayer
			];
		} : GameplayLogicPackage
	];
}

MeleeAttackWithThrowableHitPrereq : PreProcessHitTriggered
{
	conditions += 
	[
		{
			attackType = "Thrown";
			invert = true;
		} : AttackTypeHitPrereqCondition, 
		{
			CName weaponType = "Melee";
		} : WeaponTypeHitPrereqCondition
	];
}

FinisherActiveStatusEffect : DebuffStatusEffect
{
	duration = 
	{
		statModifiers += 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 5.0f;
			} : ConstantStatModifier
		];
	} : StatModifierGroup;
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = 
					{
						rarity = "Boss";
						invert = true;
					} : NPCRarityPrereq;
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.StunImmunity";
								modifierType = "Multiplier";
								value = 0f;
							} : ConstantStatModifier
						];
					};
				} : ApplyStatGroupEffector, 
				{
					prereqRecord = 
					{
						rarity = "Boss";
						invert = true;
					} : NPCRarityPrereq;
					statusEffect = "BaseStatusEffect.NewPerkFinisherStun";
				} : ApplyStatusEffectEffector, 
				{
					prereqRecord = 
					{
						nestedPrereqs = 
						[
							{
								rarity = "Boss";
							} : NPCRarityPrereq, 
							{
								statusEffect = "BaseStatusEffect.BossNoInterrupt";
							} : StatusEffectAbsentPrereq
						];
					} : ANDPrereq;
					effectorToApply = 
					{
						prereqRecord = "Prereqs.AlwaysTruePrereq";
						attackRecord = "Attacks.QuickHackTwitchAttack";
						playerAsInstigator = true;
						triggerHitReaction = true;
						attackPositionSlotName = "Chest";
					} : Effectors.TriggerAttackOnOwnerEffect;
				} : ApplyEffectorEffector, 
				{
					statusEffect = "BaseStatusEffect.PoiseRegenStatusEffect";
					inverted = true;
					removeWithEffector = false;
				} : ApplyStatusEffectEffector
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string displayName = "LocKey#40944";
		description = "";
		string iconPath = "decreased_stats_icon";
		priority = 6.0f;
	};
}

BlockFinisherStatusEffect : DebuffStatusEffect
{
	duration = 
	{
		statModifiers += 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 6.0f;
			} : ConstantStatModifier
		];
	} : StatModifierGroup;
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.CanPerformReflexFinisher";
					modifierType = "Multiplier";
					value = 0.0f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.CanPerformCoolFinisher";
					modifierType = "Multiplier";
					value = 0.0f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.CanPerformBluntFinisher";
					modifierType = "Multiplier";
					value = 0.0f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.CanPerformMonowireFinisher";
					modifierType = "Multiplier";
					value = 0.0f;
				} : ConstantStatModifier
			];
		} : GameplayLogicPackage
	];
}

BlockWorkspotFinisherStatusEffect : DebuffStatusEffect
{
	duration = 
	{
		statModifiers += 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 6.0f;
			} : ConstantStatModifier
		];
	} : StatModifierGroup;
	fk< GameplayLogicPackage >[] packages = 
	[
		{
		} : GameplayLogicPackage
	];
}

Finisher_Healing_Buff : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 3;
			} : ConstantStatModifier
		];
	};
	packages = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = 
					{
						statType = "Health";
						valueToCheck = 0;
						comparisonType = "Greater";
					} : StatPrereq;
					statPoolUpdates = 
					[
						{
							statPoolType = "BaseStatPools.Health";
							statModifiers = 
							[
								{
									statType = "BaseStats.HealthRegainOnKill";
									refStat = "BaseStats.HealthRegainOnKill";
									modifierType = "Additive";
									opSymbol = "*";
									value = 1.0f;
								} : CombinedStatModifier
							];
						} : StatPoolUpdate
					];
					bool usePercent = true;
				} : ModifyStatPoolValueEffector, 
				{
					prereqRecord = "Prereqs.NanoWiresHeldPrereq";
					statPoolUpdates = 
					[
						{
							statPoolType = "BaseStatPools.Memory";
							statPoolValue = 5.0;
						} : StatPoolUpdate
					];
					bool usePercent = false;
				} : ModifyStatPoolValueEffector
			];
		} : GameplayLogicPackage
	];
}

Intelligence_Central_Perk_3_3_Buff : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 1;
			} : ConstantStatModifier
		];
	};
	packages = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = 
					{
						statType = "Health";
						valueToCheck = 0;
						comparisonType = "Greater";
					} : StatPrereq;
					statPoolUpdates = 
					[
						{
							statPoolType = "BaseStatPools.Health";
							statModifiers = 
							[
								{
									statType = "BaseStats.Health";
									modifierType = "Additive";
									refStat = "BaseStats.Memory";
									opSymbol = "*";
									value = 5.f;
								} : CombinedStatModifier
							];
						} : StatPoolUpdate
					];
					bool usePercent = false;
				} : ModifyStatPoolValueEffector
			];
		} : GameplayLogicPackage
	];
	SFX = [];
}

Intelligence_Inbetween_Left_2_Buff : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 0.3;
			} : ConstantStatModifier
		];
	};
	packages = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					statPoolUpdates = 
					[
						{
							statPoolType = "BaseStatPools.Memory";
							statPoolValue = 0.5f;
						} : StatPoolUpdate
					];
					bool usePercent = false;
				} : ModifyStatPoolValueEffector
			];
		} : GameplayLogicPackage
	];
}

Intelligence_Inbetween_Left_2_lvl2_Buff : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 0.3;
			} : ConstantStatModifier
		];
	};
	packages = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					statPoolUpdates = 
					[
						{
							statPoolType = "BaseStatPools.Memory";
							statPoolValue = 1.f;
						} : StatPoolUpdate
					];
					bool usePercent = false;
				} : ModifyStatPoolValueEffector
			];
		} : GameplayLogicPackage
	];
}

PoiseRegenStatusEffect : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 2;
			} : ConstantStatModifier
		];
	};
	packages = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = 
					{
						statType = "Health";
						valueToCheck = 0;
						comparisonType = "Greater";
					} : StatPrereq;
					statPoolUpdates = 
					[
						{
							statPoolType = "BaseStatPools.Poise";
							statPoolValue = 100;
						} : StatPoolUpdate
					];
					bool usePercent = true;
				} : ModifyStatPoolValueEffector
			];
		} : GameplayLogicPackage
	];
}

Reflexes_Right_Perk_3_1_Buff_Level_1 : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 6;
			} : ConstantStatModifier
		];
	};
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.AttackSpeed";
								modifierType = "AdditiveMultiplier";
								value = 0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.MaxSpeed";
								modifierType = "AdditiveMultiplier";
								value = 0.25f;
							} : ConstantStatModifier
						];
					};
				} : ApplyStatGroupOnWeapon
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string displayName = "LocKey#87781";
		string description = "";
		string iconPath = "berserk_buff";
	};
}

Reflexes_Master_Perk_5_Buff_Level_1 : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 3;
			} : ConstantStatModifier
		];
	};
	packages = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = 
					{
						statType = "Health";
						valueToCheck = 0;
						comparisonType = "Greater";
					} : StatPrereq;
					statPoolUpdates = 
					[
						{
							statPoolType = "BaseStatPools.Stamina";
							statPoolValue = 25;
						} : StatPoolUpdate
					];
					bool usePercent = false;
				} : ModifyStatPoolValueEffector
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string displayName = "LocKey#87787";
		description = "";
		intValues = 
		[
			25
		];
		string iconPath = "stamina_booster_icon";
	};
}

ReversePoisonNewPerkRegeneration : BuffStatusEffect
{
	fk< StatModifierGroup > duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 1.f;
			} : ConstantStatModifier
		];
	};
	packages = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					prereqRecord = 
					{
						statType = "Health";
						valueToCheck = 0;
						comparisonType = "Greater";
					} : StatPrereq;
					statPoolUpdates = 
					[
						{
							statPoolType = "BaseStatPools.Health";
							statPoolValue = 15;
						} : StatPoolUpdate
					];
					bool usePercent = false;
				} : ModifyStatPoolValueEffector
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string displayName = "LocKey#87918";
		description = "";
		string iconPath = "health_booster_icon";
	};
}

JugglerCriticalDamageBonusSE : BuffStatusEffect
{
	bool isAffectedByTimeDilationPlayer = true;
	gameplayTags += 
	[
		"JugglerCriticalDamageBonusSE"
	];
	duration = 
	{
		statModifiers += 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 8.f;
			} : ConstantStatModifier
		];
	} : StatModifierGroup;
	removeAllStacksWhenDurationEnds = true;
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 5;
			} : ConstantStatModifier
		];
	};
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.CritDamage";
								modifierType = "Additive";
								value = 20.f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnPlayer
			];
			stackable = true;
		} : GameplayLogicPackage
	];
	uiData = 
	{
		displayName = "LocKey#87949";
		description = "";
		string iconPath = "perks_knife";
		priority = 6.0f;
	};
}

Tech_Left_Milestone_3_Buff : BuffStatusEffect
{
	fk< StatModifierGroup > duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 12;
			} : ConstantStatModifier
		];
	};
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 5;
			} : ConstantStatModifier
		];
	};
	gameplayTags += 
	[
		"ManiacStackBuff"
	];
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			stackable = true;
			effectors = 
			[
				{
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.ManiacPerkBonusSpeed";
								modifierType = "Additive";
								value = 0.05f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.GrenadeExplosionBonusDamage";
								modifierType = "AdditiveMultiplier";
								value = 0.10f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.ManiacStatCounter";
								modifierType = "Additive";
								value = 0.20f;
							} : ConstantStatModifier
						];
					};
				} : ApplyStatGroupOnPlayer
			];
		}
	];
	uiData = 
	{
		string displayName = "LocKey#89308";
		string description = "";
		string iconPath = "perks_maniac";
	};
}

PostManiacStatusEffect : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				value = 6;
			} : BaseDurationMod
		];
	};
	gameplayTags += 
	[
		"PostManiac"
	];
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			stackable = true;
			effectors = 
			[
				{
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.ManiacPerkBonusSpeed";
								modifierType = "Additive";
								value = 0.25f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.GrenadeExplosionBonusDamage";
								modifierType = "AdditiveMultiplier";
								value = 0.50f;
							} : ConstantStatModifier
						];
					};
				} : ApplyStatGroupOnPlayer
			];
		}
	];
	uiData = 
	{
		string displayName = "LocKey#89308";
		string description = "";
		string iconPath = "perks_maniac";
	};
}

Tech_Right_Milestone_3_Block : DebuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				value = -1;
			} : BaseDurationMod
		];
	};
	uiData = 
	{
		string displayName = "LocKey#89323";
		description = "";
		string iconPath = "decreased_stats_icon";
	};
}

Tech_Right_Milestone_3_Buff : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				value = 2f;
			} : BaseDurationMod
		];
	};
	gameplayTags += 
	[
		"HasPerfectlyChargedBuff"
	];
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.TechPierceDamageFactor";
								modifierType = "Additive";
								value = 0.085f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.AddExtraHitImpactVfx";
								modifierType = "Additive";
								value = 1f;
							} : ConstantStatModifier
						];
					};
				} : ApplyStatGroupOnWeapon, 
				{
					prereqRecord = 
					{
						conditions = 
						[
							{
								attackType = "Ranged";
							} : AttackTypeHitPrereqCondition, 
							{
								weaponType = "Ranged";
							} : WeaponTypeHitPrereqCondition
						];
					} : ProcessHitTriggered;
					value = 1.3f;
				} : MultiplyDamage, 
				{
					prereqRecord = 
					{
						conditions += 
						[
							{
								attackType = "Ranged";
							} : AttackTypeHitPrereqCondition, 
							{
								weaponType = "Ranged";
							} : WeaponTypeHitPrereqCondition
						];
					} : PreProcessHitTriggered;
					hitFlag = "Special";
				} : AddHitFlagToAttackEffector, 
				{
					prereqRecord = 
					{
					} : PreProcessHitTriggered;
					hitFlag = "PerfectlyCharged";
				} : AddHitFlagToAttackEffector, 
				{
					prereqRecord = 
					{
					} : PreProcessHitTriggered;
					hitFlag = "WeaponFullyCharged";
				} : AddHitFlagToAttackEffector
			];
		} : GameplayLogicPackage
	];
}

Tech_Right_Perk_3_4_Buff : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				value = 5f;
			} : BaseDurationMod
		];
	};
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 3;
			} : ConstantStatModifier
		];
	};
	uiData = 
	{
		string displayName = "LocKey#89330";
		string description = "";
		string iconPath = "perks_reload";
	};
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.ChargeTime";
								modifierType = "AdditiveMultiplier";
								value = -0.10f;
							} : ConstantStatModifier
						];
					};
				} : ApplyStatGroupOnWeapon
			];
			stackable = true;
		} : GameplayLogicPackage
	];
}

Tech_Master_Perk_2_Explosion : StatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				value = 1f;
			} : BaseDurationMod
		];
	};
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 1;
			} : ConstantStatModifier
		];
	};
}

Tech_Master_Perk_2_Buff : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				value = 3f;
			} : BaseDurationMod
		];
	};
	uiData = 
	{
		string displayName = "LocKey#89333";
		string description = "";
		string iconPath = "decreased_stats_icon";
	};
	packages += 
	[
		{
			effectors = 
			[
				{
					prereqRecord = 
					{
						duration = 2.95f;
					} : Prereqs.DurationPrereq;
					statusEffect = "BaseStatusEffect.Tech_Master_Perk_2_Explosion";
				} : ApplyStatusEffectEffector
			];
		}
	];
}

Tech_Master_Perk_3_Buff : BuffStatusEffect
{
	gameplayTags += 
	[
		"PreventLowHealthOverlay", "InFury"
	];
	uiData = 
	{
		string displayName = "LocKey#89138";
		string description = "";
		string iconPath = "johnny_sickness_icon";
	};
	duration = 
	{
		statModifiers = 
		[
			{
				value = 12f;
			} : BaseDurationMod
		];
	};
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.CritChance";
					modifierType = "Additive";
					value = 30f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.CritDamage";
					modifierType = "Additive";
					value = 50f;
				} : ConstantStatModifier
			];
			effectors = 
			[
				{
					prereqRecord = "Prereqs.ProcessHitTriggeredAllowProjection";
					operationType = "Multiply";
					value = 1.10f;
				} : ModifyDamageEffector, 
				{
					prereqRecord = 
					{
						nestedPrereqs = 
						[
							{
								statType = "TechnicalAbilitySkill";
								valueToCheck = 60;
								comparisonType = "GreaterOrEqual";
							} : StatPrereq, 
							{
								stateName = "SceneTier3";
								isInState = false;
							} : HighLevelPSMPrereq, 
							{
								stateName = "SceneTier4";
								isInState = false;
							} : HighLevelPSMPrereq, 
							{
								stateName = "SceneTier5";
								isInState = false;
							} : HighLevelPSMPrereq, 
							{
								statusEffect = "GameplayRestriction.NoDangerousCyberware";
							} : StatusEffectAbsentPrereq
						];
					} : ANDPrereq;
					statusEffect = "BaseStatusEffect.TechAbility_60_EMP_Blast";
					removeWithEffector = true;
				} : ApplyStatusEffectOnPlayer, 
				{
					prereqRecord = 
					{
						checkType = "CheckType.Tag";
						tagToCheck = "PreventFuryVFX";
					} : Prereqs.StatusEffectAbsentPrereq;
					statusEffect = "BaseStatusEffect.Tech_Master_Perk_3_VFX";
					removeWithEffector = true;
				} : ApplyStatusEffectEffector
			];
		} : GameplayLogicPackage
	];
}

Tech_Master_Perk_3_VFX : StatusEffect
{
	duration = "BaseStats.InfiniteDuration";
	VFX = 
	[
		{
			name = "perk_edgerunner_player";
		}
	];
}

Tech_Master_Perk_5_Buff_Chain_Lightning : StatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				value = 0.25f;
			} : BaseDurationMod
		];
	};
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 1;
			} : ConstantStatModifier
		];
	};
}

Intelligence_Central_Milestone_3_Overclock_Buff : BuffStatusEffect
{
	savable = false;
	gameplayTags += 
	[
		"Overclock", "PreventFuryVFX", "PreventLowHealthOverlay"
	];
	duration = 
	{
		statModifiers = 
		[
			{
				value = -1f;
			} : BaseDurationMod
		];
	};
	packages += 
	[
		{
			effectors = 
			[
				{
					activationSFXName = "ui_gmpl_perk_overclock_activate";
					deactivationSFXName = "ui_gmpl_perk_overclock_loop_stop";
				} : PlaySFXEffector, 
				{
					vfxName = "perk_overclock";
				} : PlayVFXEffector, 
				{
					prereqRecord = 
					{
						statType = "IntelligenceSkill";
						valueToCheck = 60;
						comparisonType = "GreaterOrEqual";
					} : StatPrereq;
					statusEffect = "BaseStatusEffect.Intelligence_60_Ping_Aura";
					removeWithEffector = true;
				} : ApplyStatusEffectOnPlayer
			];
		}
	];
}

Intelligence_Master_Perk_2_Queue_Lock : DebuffStatusEffect
{
}

Intelligence_Master_Perk_4_Overclock_Buff : BuffStatusEffect
{
	gameplayTags += 
	[
		"HasOverclockedStateWeaponBuff"
	];
	packages += 
	[
		{
			effectors = 
			[
				{
					statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.AddExtraHitImpactVfx";
								modifierType = "Additive";
								value = 1f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SmartGunAdsTimeToLock";
								modifierType = "Multiplier";
								value = 0.0f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SmartGunHipTimeToLock";
								modifierType = "Multiplier";
								value = 0.0f;
							} : ConstantStatModifier
						];
					};
				} : ApplyStatGroupOnWeapon
			];
		}
	];
}

Intelligence_Master_Perk_4_Overclock_Target_Weakspot : BuffStatusEffect
{
	packages += 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.SmartGunTimeToLockBreachComponentMultiplier";
					modifierType = "Multiplier";
					value = 0;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunTimeToLockWeakSpotComponentMultiplier";
					modifierType = "Multiplier";
					value = 0;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunTimeToLockHeadComponentMultiplier";
					modifierType = "Multiplier";
					value = 0;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunTimeToLockChestComponentMultiplier";
					modifierType = "Multiplier";
					value = 0;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunTimeToLockLegComponentMultiplier";
					modifierType = "Multiplier";
					value = 0;
				} : ConstantStatModifier
			];
		}
	];
}

Intelligence_Right_Perk_3_2_Buff : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				value = 6f;
			} : BaseDurationMod
		];
	};
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 3;
			} : ConstantStatModifier
		];
	};
	removeAllStacksWhenDurationEnds = true;
	packages = 
	[
		{
			effectors = 
			[
				{
					statGroup = 
					{
						statModifiers = 
						[
							{
								value = 5.f;
							} : EffectiveRangeModifier, 
							{
								value = 5.f;
							} : SmartGunPlayerProjectileVelocityModifier, 
							{
								modifierType = "Multiplier";
								value = 6.0f;
							} : SmartGunTrackWeakSpotComponentsModifier, 
							{
								modifierType = "Multiplier";
								value = 5.0f;
							} : SmartGunTrackHeadComponentsModifier, 
							{
								modifierType = "Multiplier";
								value = 4.0f;
							} : SmartGunTrackBreachComponentsModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnWeapon
			];
			stats = 
			[
				{
					statType = "BaseStats.SmartGunTimeToLockWeakSpotComponentMultiplier";
					modifierType = "Multiplier";
					value = 0.0f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunTimeToLockHeadComponentMultiplier";
					modifierType = "Multiplier";
					value = 0.0f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.SmartGunTimeToLockBreachComponentMultiplier";
					modifierType = "Multiplier";
					value = 0.0f;
				} : ConstantStatModifier
			];
			stackable = true;
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string displayName = "LocKey#88145";
		description = "";
		string iconPath = "perks_aim";
		priority = 6.0f;
	};
}

GorillaArmsSpyBuff : StatusEffect
{
	fk< StatModifierGroup > duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 0.3f;
			} : ConstantStatModifier
		];
	};
	gameplayTags += 
	[
		"OnePunchMan"
	];
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.Range";
								modifierType = "Additive";
								value = 8.f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.PhysicalDamage";
								modifierType = "Multiplier";
								value = 1.2f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.PhysicalDamage";
								modifierType = "Multiplier";
								value = 1.2f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.ChemicalDamage";
								modifierType = "Multiplier";
								value = 1.2f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.ThermalDamage";
								modifierType = "Multiplier";
								value = 1.2f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.ElectricDamage";
								modifierType = "Multiplier";
								value = 1.2f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnWeapon
			];
		} : GameplayLogicPackage
	];
}

GorillaArmsOnePunchNPCMark : StatusEffect
{
	gameplayTags += 
	[
		"OnePunchedMark"
	];
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 5;
			} : ConstantStatModifier
		];
	};
	packages = [];
}

MantisBladesGrandFinaleNPCMark : StatusEffect
{
	gameplayTags += 
	[
		"GrandFinaleMark"
	];
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 5;
			} : ConstantStatModifier
		];
	};
	packages = [];
}

MantisBladesRelicDismemberment : DebuffStatusEffect
{
	fk< StatModifierGroup > duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 10.f;
			} : ConstantStatModifier
		];
	};
	gameplayTags += 
	[
		"CripplingLeap"
	];
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			fk< StatModifier >[] stats = 
			[
				{
					statType = "BaseStats.DismHeadDamageThreshold";
					modifierType = "Additive";
					value = -70;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.DismLArmDamageThreshold";
					modifierType = "Additive";
					value = -70;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.DismRArmDamageThreshold";
					modifierType = "Additive";
					value = -70;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.DismLLegDamageThreshold";
					modifierType = "Additive";
					value = -70;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.DismRLegDamageThreshold";
					modifierType = "Additive";
					value = -70;
				} : ConstantStatModifier
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		displayName = "LocKey#40957";
		iconPath = "crippled_icon";
		priority = 10.0f;
	};
}

MantisBladesSpecialAttackSpyBuff : StatusEffect
{
	fk< StatModifierGroup > duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 0.3f;
			} : ConstantStatModifier
		];
	};
	gameplayTags += 
	[
		"GrandFinale"
	];
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.Range";
								modifierType = "Additive";
								value = 1.f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.PhysicalDamage";
								modifierType = "Multiplier";
								value = 1.5f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.ChemicalDamage";
								modifierType = "Multiplier";
								value = 1.5f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.ThermalDamage";
								modifierType = "Multiplier";
								value = 1.5f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.ElectricDamage";
								modifierType = "Multiplier";
								value = 1.5f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnWeapon
			];
		} : GameplayLogicPackage
	];
}

MantisBladesInstantDismembermentSpyBuff : Dismembered
{
	fk< StatModifierGroup > duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 0.3f;
			} : ConstantStatModifier
		];
	};
	gameplayTags += 
	[
		"GrandFinaleInstantDismemberment"
	];
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = 
					{
						allowedTypes = 
						[
							"NPCType.Human"
						];
					} : NPCTypePrereq;
					CName effectorClassName = "ForceDismembermentEffector";
					float dismembermentChance = 0.5f;
					string bodyPart = "LEFT_ARM";
					string woundType = "CLEAN";
					bool shouldKillNPC = true;
					bool isCritical = true;
					bool skipDeathAnim = false;
				} : ForceDismembermentEffector, 
				{
					prereqRecord = 
					{
						allowedTypes = 
						[
							"NPCType.Human"
						];
					} : NPCTypePrereq;
					CName effectorClassName = "ForceDismembermentEffector";
					float dismembermentChance = 0.5f;
					string bodyPart = "RIGHT_ARM";
					string woundType = "CLEAN";
					bool shouldKillNPC = true;
					bool isCritical = true;
					bool skipDeathAnim = false;
				} : ForceDismembermentEffector, 
				{
					prereqRecord = 
					{
						allowedTypes = 
						[
							"NPCType.Human"
						];
					} : NPCTypePrereq;
					CName effectorClassName = "ForceDismembermentEffector";
					float dismembermentChance = 0.5f;
					string bodyPart = "LEFT_LEG";
					string woundType = "CLEAN";
					bool shouldKillNPC = true;
					bool isCritical = true;
					bool skipDeathAnim = false;
				} : ForceDismembermentEffector, 
				{
					prereqRecord = 
					{
						allowedTypes = 
						[
							"NPCType.Human"
						];
					} : NPCTypePrereq;
					CName effectorClassName = "ForceDismembermentEffector";
					float dismembermentChance = 0.5f;
					string bodyPart = "RIGHT_LEG";
					string woundType = "CLEAN";
					bool shouldKillNPC = true;
					bool isCritical = true;
					bool skipDeathAnim = false;
				} : ForceDismembermentEffector, 
				{
					prereqRecord = 
					{
						allowedTypes = 
						[
							"NPCType.Human"
						];
					} : NPCTypePrereq;
					CName effectorClassName = "ForceDismembermentEffector";
					float dismembermentChance = 0.5f;
					string bodyPart = "HEAD";
					string woundType = "CLEAN";
					bool shouldKillNPC = true;
					bool isCritical = true;
					bool skipDeathAnim = false;
				} : ForceDismembermentEffector
			];
		} : GameplayLogicPackage
	];
}

Espionage_Central_Milestone_1_Buff_MantisBlades : StatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 0.3;
			} : ConstantStatModifier
		];
	};
	packages = 
	[
		{
			fk< Effector >[] effectors = 
			[
				{
					CName applicationTarget = "Weapon";
					statPoolUpdates = 
					[
						{
							statPoolType = "BaseStatPools.WeaponCharge";
							statPoolValue = 100;
						} : StatPoolUpdate
					];
					usePercent = true;
				} : ModifyStatPoolValueEffector
			];
		} : GameplayLogicPackage
	];
}

LeapWithMantisBladesCheck : StatusEffect
{
	gameplayTags += 
	[
		"JustLeaped"
	];
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 1;
			} : ConstantStatModifier
		];
	};
	packages = [];
}

MantisBladesInvulnerableLeapRelicBuff : StatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 10;
			} : ConstantStatModifier
		];
	};
	packages = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = "Perks.IsTargetPlayer";
					value = 0.1f;
				} : MultiplyDamage
			];
		}
	];
}

JustDodgedBuffer : StatusEffect
{
	gameplayTags += 
	[
		"JustDodgedActiveBuffer"
	];
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 2;
			} : ConstantStatModifier
		];
	};
	packages = [];
}

PlayerMadDashLocomotionBuffer : StatusEffect
{
	gameplayTags += 
	[
		"JustDodgedLocomotion"
	];
	duration = 
	{
		statModifiers += 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 0.6f;
			} : ConstantStatModifier
		];
	} : StatModifierGroup;
}

VulnerableStatusEffect : DebuffStatusEffect
{
	immunityStats = 
	[
		"BaseStats.VulnerableImmunity"
	];
}

Body_Left_Perk_3_3_Vulnerable : VulnerableStatusEffect
{
	statusEffectType = "BaseStatusEffectTypes.PassiveDebuff";
	additionalParam = "Vulnerable";
	fk< StatModifierGroup > duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 7;
			} : ConstantStatModifier
		];
	};
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = "Prereqs.ProcessHitReceived";
					value = 1.15f;
				} : MultiplyDamage
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string iconPath = "perks_armor";
		priority = -8.0f;
	};
}

Body_Right_Perk_2_4_Vulnerable : VulnerableStatusEffect
{
	statusEffectType = "BaseStatusEffectTypes.PassiveDebuff";
	additionalParam = "Vulnerable";
	fk< StatModifierGroup > duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 7;
			} : ConstantStatModifier
		];
	};
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					prereqRecord = "Prereqs.ProcessHitReceived";
					value = 1.4f;
				} : MultiplyDamage, 
				{
					CName activationSFXName = "w_melee_perk_break_them";
					bool fireAndForget = true;
					bool stopActiveSfxOnDeactivate = false;
				} : PlaySFXEffector
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string iconPath = "perks_armor";
		priority = -8.0f;
	};
}

Reflexes_Left_Perk_2_2_Swap_Buff : BuffStatusEffect
{
	fk< StatModifierGroup > duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 5;
			} : ConstantStatModifier
		];
	};
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.SpreadDefaultX";
								modifierType = "Multiplier";
								value = 0.7f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadMaxX";
								modifierType = "Multiplier";
								value = 0.7f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsDefaultX";
								modifierType = "Multiplier";
								value = 0.7f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsMaxX";
								modifierType = "Multiplier";
								value = 0.7f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadDefaultY";
								modifierType = "Multiplier";
								value = 0.7f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadMaxY";
								modifierType = "Multiplier";
								value = 0.7f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsDefaultY";
								modifierType = "Multiplier";
								value = 0.7f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SpreadAdsMaxY";
								modifierType = "Multiplier";
								value = 0.7f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnWeapon
			];
		}
	];
	uiData = 
	{
		string displayName = "LocKey#87759";
		description = "";
		string iconPath = "perks_aim";
		priority = 6.0f;
	};
}

Reflexes_Sharpshooter_Crit_Stack : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 2;
			} : ConstantStatModifier
		];
	};
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 7.0f;
			} : ConstantStatModifier
		];
	};
	removeAllStacksWhenDurationEnds = true;
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			stackable = true;
			effectors = 
			[
				{
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.CritChance";
								modifierType = "Additive";
								value = 7.0f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.CritDamage";
								modifierType = "Additive";
								value = 7.0f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnWeapon
			];
		} : GameplayLogicPackage
	];
}

Body_DismemberExecuteChance_Stack : StatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = -1;
			} : ConstantStatModifier
		];
	};
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 9.0f;
			} : ConstantStatModifier
		];
	};
	removeAllStacksWhenDurationEnds = true;
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			stackable = true;
			effectors = 
			[
				{
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.ExecuteDismemberByHealthChance";
								modifierType = "Additive";
								value = 0.1f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnPlayer
			];
		} : GameplayLogicPackage
	];
}

Reflexes_Sharpshooter_Stamina_Stack : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 2;
			} : ConstantStatModifier
		];
	};
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 7.0f;
			} : ConstantStatModifier
		];
	};
	removeAllStacksWhenDurationEnds = true;
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			stackable = true;
			effectors = 
			[
				{
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.StaminaRegenRateMult";
								modifierType = "Additive";
								value = 0.07f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.StaminaRegenStartDelay";
								modifierType = "Additive";
								value = -0.01f;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.SubMachinegunStaminaCostReduction";
								modifierType = "Additive";
								value = 0.07;
							} : ConstantStatModifier, 
							{
								statType = "BaseStats.AssaultRifleStaminaCostReduction";
								modifierType = "Additive";
								value = 0.07;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnPlayer
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string displayName = "LocKey#87772";
		description = "";
		string iconPath = "stamina_regeneration_icon";
		priority = 6.0f;
	};
}

Reflexes_Sharpshooter_AP_Stack : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 2;
			} : ConstantStatModifier
		];
	};
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 7.0f;
			} : ConstantStatModifier
		];
	};
	removeAllStacksWhenDurationEnds = true;
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			stackable = true;
			effectors = 
			[
				{
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.CanWeaponIgnoreArmor";
								modifierType = "Additive";
								value = 0.04f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnWeapon
			];
		} : GameplayLogicPackage
	];
}

BlackwallSQCooldown : StatusEffect
{
	gameplayTags += 
	[
		"BlackwallSQCooldown"
	];
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 1.6;
			} : ConstantStatModifier
		];
	};
	packages = [];
}

OpticalCamoPerkRestriction : StatusEffect
{
	gameplayTags += 
	[
		"OpticalCamoPerkRestriction"
	];
	duration = "BaseStats.InfiniteDuration";
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			fk< StatModifier >[] stats = 
			[
				{
					statType = "BaseStats.BlockOpticalCamoRelicPerk";
					modifierType = "Additive";
					value = 1;
				} : ConstantStatModifier
			];
		} : GameplayLogicPackage
	];
}

DodgeOutOfSightCooldown : StatusEffect
{
	gameplayTags += 
	[
		"DodgeOutOfSightCooldown"
	];
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 120;
			} : ConstantStatModifier
		];
	};
	uiData = 
	{
		string displayName = "LocKey#88047";
		string iconPath = "perks_sensory_protocol";
		description = "LocKey#53709";
		priority = 6.0f;
	};
}

GroundSlamCooldown : BuffStatusEffect
{
	gameplayTags += 
	[
		"GroundSlamCooldown"
	];
	uiData = 
	{
		string displayName = "LocKey#87996";
		string description = "";
		string iconPath = "perks_ground_slam";
	};
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 10.0f;
			} : ConstantStatModifier, 
			{
				statType = "BaseStats.MaxDuration";
				refStat = "BaseStats.GroundSlamCooldownModifier";
				modifierType = "Multiplier";
				opSymbol = "*";
				value = 1.0f;
				refObject = "Player";
			} : CombinedStatModifier
		];
	};
}

JuggernautBuff : StatusEffect
{
	duration = "BaseStats.InfiniteDuration";
	fk< GameplayLogicPackage >[] packages = 
	[
		{
			effectors = 
			[
				{
					fk< Effector > effectorToApply = 
					{
						prereqRecord = "Prereqs.ProcessHitTriggered";
						value = 1.1f;
					} : MultiplyDamage;
				} : ApplyEffectorOnPlayer, 
				{
					fk< StatModifierGroup > statGroup = 
					{
						statModifiers = 
						[
							{
								statType = "BaseStats.MaxSpeed";
								modifierType = "AdditiveMultiplier";
								value = 0.2f;
							} : ConstantStatModifier
						];
					} : StatModifierGroup;
				} : ApplyStatGroupOnPlayer
			];
		} : GameplayLogicPackage
	];
}

Debug_EnableFinisher : StatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 60.0f;
			} : ConstantStatModifier
		];
	};
	packages = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.NewPerkFinisherReflexes_TargetHealthMax";
					modifierType = "Additive";
					value = 100.0f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.NewPerkFinisherBlunt_TargetHealthMax";
					modifierType = "Additive";
					value = 100.0f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.NewPerkFinisherCool_TargetHealthMax";
					modifierType = "Additive";
					value = 25.0f;
				} : ConstantStatModifier, 
				{
					statType = "BaseStats.NewPerkFinisherMonowire_TargetHealthMax";
					modifierType = "Additive";
					value = 25.0f;
				} : ConstantStatModifier
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string displayName = "LocKey#40944";
		description = "LocKey#77829";
		string iconPath = "drunk";
		priority = 6.0f;
	};
}

Body_Central_Perk_1_4_MitigationBuff : BuffStatusEffect
{
	fk< StatModifierGroup > duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 2;
			} : ConstantStatModifier
		];
	};
	packages = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.MitigationChance";
					modifierType = "Additive";
					value = 100f;
				} : ConstantStatModifier
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string displayName = "LocKey#87974";
		description = "";
		string iconPath = "perks_mitigation";
	};
}

Body_Central_Perk_1_1_HealthRegenBuff : BuffStatusEffect
{
	packages = 
	[
		{
			stats = 
			[
				{
					statType = "BaseStats.HealthInCombatRegenRate";
					modifierType = "AdditiveMultiplier";
					value = 0.6f;
				} : ConstantStatModifier
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string displayName = "LocKey#87971";
		description = "";
		string iconPath = "health_booster_regen";
	};
}

Body_Central_Perk_1_2_Buff : BuffStatusEffect
{
	savable = false;
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = -1;
			} : ConstantStatModifier
		];
	};
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = -1;
			} : ConstantStatModifier
		];
	};
	packages = 
	[
		{
			stackable = true;
			stats = 
			[
				{
					statType = "BaseStats.HealthInCombatRegenRateMult";
					modifierType = "Additive";
					value = 0.04;
				} : ConstantStatModifier
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string iconPath = "health_booster_icon";
	};
}

Body_Central_Perk_1_3_HealthRegenBuff : BuffStatusEffect
{
	maxStacks = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxStacks";
				modifierType = "Additive";
				value = 20;
			} : ConstantStatModifier
		];
	};
	packages = 
	[
		{
			stackable = true;
			stats = 
			[
				{
					statType = "BaseStats.HealthInCombatRegenRate";
					modifierType = "AdditiveMultiplier";
					value = 0.1f;
				} : ConstantStatModifier
			];
		} : GameplayLogicPackage
	];
	uiData = 
	{
		string iconPath = "health_booster_icon";
	};
}

Body_Right_Perk_2_3_Cooldown : BuffStatusEffect
{
	duration = 
	{
		statModifiers = 
		[
			{
				statType = "BaseStats.MaxDuration";
				modifierType = "Additive";
				value = 10.0f;
			} : ConstantStatModifier
		];
	};
	uiData = 
	{
		string displayName = "LocKey#87996";
		string description = "";
		string iconPath = "perks_ground_slam";
	};
}

