package NPCStatPreset
using RTDB

ResistCurveMod : CurveStatModifier
{
	modifierType = "Additive";
	id = "puppet_preset_resistances";
	refStat = "BaseStats.PowerLevel";
}

ExtremeResistMod : ConstantStatModifier
{
	modifierType = "Additive";
	value = 200;
}

ExtremeHackingResistance : StatModifierGroup
{
	statModifiers = 
	[
		"NPCStatPreset.ExtremeHackingResistMod"
	];
}

ExtremeHackingResistMod : ExtremeResistMod
{
	statType = "BaseStats.HackingResistance";
	value = 20;
}

VeryHighResistMod : ResistCurveMod
{
	column = "power_level_to_very_high_resist_mod";
}

VeryHighPhysicalResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Armor";
		} : VeryHighResistMod
	];
}

VeryHighChemicalResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ChemicalResistance";
		} : VeryHighResistMod
	];
}

VeryHighThermalResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ThermalResistance";
		} : VeryHighResistMod
	];
}

VeryHighElectricResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ElectricResistance";
		} : VeryHighResistMod
	];
}

VeryHighHackingResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		"NPCStatPreset.VeryHighHackingResistMod"
	];
}

VeryHighHackingResistMod : ConstantStatModifier
{
	statType = "BaseStats.HackingResistance";
	modifierType = "Additive";
	value = 0;
}

HighResistMod : ResistCurveMod
{
	column = "power_level_to_high_resist_mod";
}

HighPhysicalResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Armor";
		} : HighResistMod
	];
}

HighChemicalResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ChemicalResistance";
		} : HighResistMod
	];
}

HighThermalResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ThermalResistance";
		} : HighResistMod
	];
}

HighElectricResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ElectricResistance";
		} : HighResistMod
	];
}

HighHackingResistance : StatModifierGroup
{
	statModifiers = 
	[
		"NPCStatPreset.HighHackingResistMod"
	];
}

HighHackingResistMod : ConstantStatModifier
{
	statType = "BaseStats.HackingResistance";
	modifierType = "Additive";
	value = 0;
}

MediumHackingResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		"NPCStatPreset.MediumHackingResistMod"
	];
}

MediumHackingResistMod : ConstantStatModifier
{
	statType = "BaseStats.HackingResistance";
	modifierType = "Additive";
	value = 0;
}

LowResistMod : ResistCurveMod
{
	column = "power_level_to_low_resist_mod";
}

LowPhysicalResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Armor";
		} : LowResistMod
	];
}

LowChemicalResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ChemicalResistance";
		} : LowResistMod
	];
}

LowThermalResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ThermalResistance";
		} : LowResistMod
	];
}

LowElectricResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ElectricResistance";
		} : LowResistMod
	];
}

LowHackingResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		"NPCStatPreset.LowHackingResistMod"
	];
}

LowHackingResistMod : ConstantStatModifier
{
	statType = "BaseStats.HackingResistance";
	modifierType = "Additive";
	value = 0;
}

VeryLowResistMod : ResistCurveMod
{
	column = "power_level_to_very_low_resist_mod";
}

VeryLowPhysicalResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Armor";
		} : VeryLowResistMod
	];
}

VeryLowChemicalResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ChemicalResistance";
		} : VeryLowResistMod
	];
}

VeryLowThermalResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ThermalResistance";
		} : VeryLowResistMod
	];
}

VeryLowElectricResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.ElectricResistance";
		} : VeryLowResistMod
	];
}

VeryLowHackingResistance : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		"NPCStatPreset.VeryLowHackingResistMod"
	];
}

VeryLowHackingResistMod : ConstantStatModifier
{
	statType = "BaseStats.HackingResistance";
	modifierType = "Additive";
	value = 0;
}

HighHackingPenetration : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		"NPCStatPreset.HighHackingPenetrationMod"
	];
}

HighHackingPenetrationMod : ConstantStatModifier
{
	statType = "BaseStats.HackingPenetration";
	modifierType = "Additive";
	value = 40f;
}

MediumHackingPenetration : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		"NPCStatPreset.MediumHackingPenetrationMod"
	];
}

MediumHackingPenetrationMod : ConstantStatModifier
{
	statType = "BaseStats.HackingPenetration";
	modifierType = "Additive";
	value = 20f;
}

HighDamage : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.DPS";
			modifierType = "AdditiveMultiplier";
			id = "puppet_preset_damage_mods";
			column = "power_level_to_high_dmg_mod";
			refStat = "BaseStats.PowerLevel";
		} : CurveStatModifier
	];
}

LowDamage : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.DPS";
			modifierType = "AdditiveMultiplier";
			id = "puppet_preset_damage_mods";
			column = "power_level_to_low_dmg_mod";
			refStat = "BaseStats.PowerLevel";
		} : CurveStatModifier
	];
}

VehicleChaseDamage : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.NPCDamage";
			modifierType = "Multiplier";
			value = 0.7;
		} : ConstantStatModifier
	];
}

VeryLowDamage : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.NPCDamage";
			modifierType = "Multiplier";
			value = 0.1;
		} : ConstantStatModifier
	];
}

Mq025_TwinDamage : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.NPCDamage";
			modifierType = "Multiplier";
			value = 0.5;
		} : ConstantStatModifier
	];
}

Mq025_BuckDamage : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.NPCDamage";
			modifierType = "Multiplier";
			value = 0.5;
		} : ConstantStatModifier
	];
}

Mq025_CesarDamage : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.NPCDamage";
			modifierType = "Multiplier";
			value = 0.5;
		} : ConstantStatModifier
	];
}

Mq025_OzobDamage : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.NPCDamage";
			modifierType = "Multiplier";
			value = 0.5;
		} : ConstantStatModifier
	];
}

Mq025_RhinoDamage : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.NPCDamage";
			modifierType = "Multiplier";
			value = 0.5;
		} : ConstantStatModifier
	];
}

Mq025_RazorDamage : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.NPCDamage";
			modifierType = "Multiplier";
			value = 0.75;
		} : ConstantStatModifier
	];
}

CannotSprint : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.CanSprint";
			modifierType = "Multiplier";
			value = 0.f;
		} : ConstantStatModifier
	];
}

PanamSniperDamage : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.NPCDamage";
			modifierType = "Multiplier";
			value = 2.f;
		} : ConstantStatModifier
	];
}

FollowerDamageAgainstBosses : StatModifierGroup
{
	statModifiers = 
	[
		{
			statType = "BaseStats.BonusDamageAgainstBosses";
			modifierType = "Additive";
			value = 1000;
		} : ConstantStatModifier
	];
}

VeryHighTimeBetweenHits : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			modifierType = "Additive";
			statType = "BaseStats.Accuracy";
			value = 0.0000001f;
		} : ConstantStatModifier
	];
}

VeryLowHealth : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 0.18;
		} : ConstantStatModifier
	];
}

MuchLowerHealth : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 0.295;
		} : ConstantStatModifier
	];
}

LowHealth : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 0.5;
		} : ConstantStatModifier
	];
}

LowerHealth : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 0.75;
		} : ConstantStatModifier
	];
}

HighHealth : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 1.5;
		} : ConstantStatModifier
	];
}

VeryHighHealth : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 25;
		} : ConstantStatModifier
	];
}

Q001_training_robotHealth : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 1.5;
		} : ConstantStatModifier
	];
}

Mq025_TwinHealth : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 0.389;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HasSubdermalArmor";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier
	];
}

Mq025_BuckHealth : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 0.52;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HasSubdermalArmor";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier
	];
}

Mq025_CesarHealth : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 0.52;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HasSubdermalArmor";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier
	];
}

Mq025_OzobHealth : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 0.67;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HasSubdermalArmor";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier
	];
}

Mq025_RhinoHealth : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 0.67;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HasSubdermalArmor";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier
	];
}

Mq025_RazorHealth : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 1.0;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HasSubdermalArmor";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier
	];
}

VehicleChase : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 0.5;
		} : ConstantStatModifier
	];
}

OneHitToKill : StatModifierGroup
{
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 0.001;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DismHeadDamageThreshold";
			modifierType = "Additive";
			value = 9999;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DismLArmDamageThreshold";
			modifierType = "Additive";
			value = 9999;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DismRArmDamageThreshold";
			modifierType = "Additive";
			value = 9999;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DismLLegDamageThreshold";
			modifierType = "Additive";
			value = 9999;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DismRLegDamageThreshold";
			modifierType = "Additive";
			value = 9999;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.WoundHeadDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.WoundLArmDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.WoundRArmDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.WoundLLegDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.WoundRLegDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DefeatedHeadDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DefeatedLArmDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DefeatedRArmDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DefeatedLLegDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DefeatedRLegDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier
	];
}

OneHitToKillWithGore : StatModifierGroup
{
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 0.001;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DismHeadDamageThreshold";
			modifierType = "Additive";
			value = 9999;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DismLArmDamageThreshold";
			modifierType = "Additive";
			value = 9999;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DismRArmDamageThreshold";
			modifierType = "Additive";
			value = 9999;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DismLLegDamageThreshold";
			modifierType = "Additive";
			value = 9999;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DismRLegDamageThreshold";
			modifierType = "Additive";
			value = 9999;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.WoundHeadDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.WoundLArmDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.WoundRArmDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.WoundLLegDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.WoundRLegDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DefeatedHeadDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DefeatedLArmDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DefeatedRArmDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DefeatedLLegDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DefeatedRLegDamageThreshold";
			modifierType = "Additive";
			value = -100;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DismHeadDamageThreshold";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DismLArmDamageThreshold";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DismRArmDamageThreshold";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DismLLegDamageThreshold";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DismRLegDamageThreshold";
			modifierType = "Multiplier";
			value = 0;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.HitDismembermentFactor";
			modifierType = "Multiplier";
			value = 100;
		} : ConstantStatModifier
	];
}

OneHitToKillWithDismbemberment : StatModifierGroup
{
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 0.001;
		} : ConstantStatModifier
	];
}

VS_HACK_LowMeleeDamage : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.PhysicalDamage";
			modifierType = "Multiplier";
			value = 0.3333;
		} : ConstantStatModifier
	];
}

LowLevel : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.PowerLevel";
			modifierType = "Additive";
			value = -3.f;
		} : ConstantStatModifier
	];
}

HighLevel : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.PowerLevel";
			modifierType = "Additive";
			value = 25.f;
		} : ConstantStatModifier
	];
}

VeryHighLevel : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.PowerLevel";
			modifierType = "Additive";
			value = 30.f;
		} : ConstantStatModifier
	];
}

Prevention_Stat_Modifiers : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.Health";
			modifierType = "Multiplier";
			value = 1f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.DPS";
			modifierType = "Multiplier";
			value = 0.9f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.Accuracy";
			modifierType = "Multiplier";
			value = 0.9f;
		} : ConstantStatModifier
	];
}

NoStimuliBroadcasting : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.VisualStimRangeMultiplier";
			modifierType = "Multiplier";
			value = 0.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.AudioStimRangeMultiplier";
			modifierType = "Multiplier";
			value = 0.f;
		} : ConstantStatModifier
	];
}

ExtremeDamageAndAccuracy : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.NPCDamage";
			modifierType = "Multiplier";
			value = 9999999.f;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.Accuracy";
			modifierType = "Multiplier";
			value = 1000f;
		} : ConstantStatModifier
	];
}

LowAccuracy : StatModifierGroup
{
	fk< StatModifier >[] statModifiers = 
	[
		{
			statType = "BaseStats.NPCDamage";
			modifierType = "Multiplier";
			value = 0.04;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.Accuracy";
			modifierType = "Multiplier";
			value = 0.02f;
		} : ConstantStatModifier
	];
}

AllDOTImmunity : StatModifierGroup
{
	fk< StatModifier >[] statModifiers += 
	[
		{
			statType = "BaseStats.BurningImmunity";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.BleedingImmunity";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.PoisonImmunity";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier, 
		{
			statType = "BaseStats.ElectrocuteImmunity";
			modifierType = "Additive";
			value = 1;
		} : ConstantStatModifier
	];
}

