package HitReactionThresholdModifiers
using RTDB, BaseStats

ForceStaggerEffector : ApplyStatGroupEffector
{
	prereqRecord = "Prereqs.AlwaysTruePrereq";
	CName effectorClassName = "ApplyStatGroupEffector";
	fk< StatModifierGroup > statGroup = "HitReactionThresholdModifiers.ForceStagger";
}

ForceStaggerOdaEffector : ApplyStatGroupEffector
{
	prereqRecord = "Prereqs.AlwaysTruePrereq";
	CName effectorClassName = "ApplyStatGroupEffector";
	fk< StatModifierGroup > statGroup = "HitReactionThresholdModifiers.ForceStaggerOda";
}

ForceUnstoppableEffector : ApplyStatGroupEffector
{
	prereqRecord = "Prereqs.AlwaysTruePrereq";
	CName effectorClassName = "ApplyStatGroupEffector";
	fk< StatModifierGroup > statGroup = "HitReactionThresholdModifiers.Unstoppable";
}

Regular : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.ImpactDamageThreshold";
			modifierType = "Multiplier";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.StaggerDamageThreshold";
			modifierType = "Multiplier";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.KnockdownDamageThresholdImpulse";
			modifierType = "Multiplier";
			value = 1;
		} : ConstantStatModifier
	];
}

ForceImpact : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.ImpactDamageThreshold";
			modifierType = "Multiplier";
			value = 0.01f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.StaggerDamageThreshold";
			modifierType = "Multiplier";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.KnockdownDamageThresholdImpulse";
			modifierType = "Multiplier";
			value = 1;
		} : ConstantStatModifier
	];
}

ForceStagger : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.ImpactDamageThreshold";
			modifierType = "Multiplier";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.StaggerDamageThreshold";
			modifierType = "Multiplier";
			value = 0.001;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.KnockdownDamageThresholdImpulse";
			modifierType = "Multiplier";
			value = 1;
		} : ConstantStatModifier
	];
}

ForceStaggerOda : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.ImpactDamageThresholdImpulse";
			modifierType = "Multiplier";
			value = 0.01;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.StaggerDamageThresholdImpulse";
			modifierType = "Multiplier";
			value = 0.01;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.KnockdownDamageThresholdImpulse";
			modifierType = "Multiplier";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ImpactDamageThreshold";
			modifierType = "Multiplier";
			value = 0.001;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.StaggerDamageThreshold";
			modifierType = "Multiplier";
			value = 0.001;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.KnockdownDamageThreshold";
			modifierType = "Multiplier";
			value = 1;
		} : ConstantStatModifier
	];
}

ForceKnockdown : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.ImpactDamageThreshold";
			modifierType = "Multiplier";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.StaggerDamageThreshold";
			modifierType = "Multiplier";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.KnockdownDamageThresholdImpulse";
			modifierType = "Multiplier";
			value = 0.01;
		} : ConstantStatModifier
	];
}

Fragile : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.ImpactDamageThreshold";
			modifierType = "Multiplier";
			value = 0.25f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.StaggerDamageThreshold";
			modifierType = "Multiplier";
			value = 0.25f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.KnockdownDamageThresholdImpulse";
			modifierType = "Multiplier";
			value = 0.25f;
		} : ConstantStatModifier
	];
}

Weak : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.ImpactDamageThreshold";
			modifierType = "Multiplier";
			value = 0.5f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.StaggerDamageThreshold";
			modifierType = "Multiplier";
			value = 0.5f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.KnockdownDamageThresholdImpulse";
			modifierType = "Multiplier";
			value = 0.5f;
		} : ConstantStatModifier
	];
}

Tough : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.ImpactDamageThreshold";
			modifierType = "Multiplier";
			value = 1.5f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.StaggerDamageThreshold";
			modifierType = "Multiplier";
			value = 1.5f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.KnockdownDamageThresholdImpulse";
			modifierType = "Multiplier";
			value = 1.5f;
		} : ConstantStatModifier
	];
}

Bulky : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.ImpactDamageThreshold";
			modifierType = "Multiplier";
			value = 2;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.StaggerDamageThreshold";
			modifierType = "Multiplier";
			value = 2;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.KnockdownDamageThresholdImpulse";
			modifierType = "Multiplier";
			value = 2;
		} : ConstantStatModifier
	];
}

Unstoppable : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.ImpactDamageThreshold";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.StaggerDamageThreshold";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.KnockdownDamageThresholdImpulse";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier
	];
}

StaggerMin : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.ImpactDamageThreshold";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier
	];
}

BulkyStaggerMin : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.ImpactDamageThreshold";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.StaggerDamageThreshold";
			modifierType = "Multiplier";
			value = 2;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.KnockdownDamageThresholdImpulse";
			modifierType = "Multiplier";
			value = 2;
		} : ConstantStatModifier
	];
}

