package BaseStats
using RTDB

DamagePerHit : Stat
{
	enumName = "DamagePerHit";
	enumComment = "Damage per single hit calculated from many things";
	localizedName = "LocKey#36314";
	roundValue = true;
}

ElementalDamagePerHit : Stat
{
	enumName = "ElementalDamagePerHit";
}

EffectiveDamagePerHit : Stat
{
	enumName = "EffectiveDamagePerHit";
	roundValue = true;
	localizedName = "LocKey#36314";
}

EffectiveDamagePerHitMin : Stat
{
	enumName = "EffectiveDamagePerHitMin";
}

EffectiveDamagePerHitMax : Stat
{
	enumName = "EffectiveDamagePerHitMax";
}

EffectiveDamagePerHitTimesAttacksPerSecond : Stat
{
	enumName = "EffectiveDamagePerHitTimesAttacksPerSecond";
}

DamageTypeStat : Stat
{
	flags = 
	[
		"EquipOnPlayer", "EquipOnNPC"
	];
	improvementRelation = "ImprovementRelation.Direct";
}

BaseDamage : DamageTypeStat
{
	enumName = "BaseDamage";
	localizedName = "LocKey#49465";
}

BaseDamageMin : Stat
{
	enumName = "BaseDamageMin";
}

BaseDamageMax : Stat
{
	enumName = "BaseDamageMax";
}

PhysicalDamage : DamageTypeStat
{
	enumName = "PhysicalDamage";
	localizedName = "LocKey#739";
	displayPlus = true;
}

PhysicalDamageMin : DamageTypeStat
{
	enumName = "PhysicalDamageMin";
}

PhysicalDamageMax : DamageTypeStat
{
	enumName = "PhysicalDamageMax";
}

PhysicalDamagePercent : DamageTypeStat
{
	enumName = "PhysicalDamagePercent";
}

PhysicalDamageAdditiveMultiplier : DamageTypeStat
{
	enumName = "PhysicalDamageAdditiveMultiplier";
}

ChemicalDamage : DamageTypeStat
{
	enumName = "ChemicalDamage";
	localizedName = "LocKey#740";
	displayPlus = true;
}

ChemicalDamageMin : DamageTypeStat
{
	enumName = "ChemicalDamageMin";
}

ChemicalDamageMax : DamageTypeStat
{
	enumName = "ChemicalDamageMax";
}

ChemicalDamagePercent : DamageTypeStat
{
	enumName = "ChemicalDamagePercent";
}

ChemicalDamageAdditiveMultiplier : DamageTypeStat
{
	enumName = "ChemicalDamageAdditiveMultiplier";
}

ThermalDamage : DamageTypeStat
{
	enumName = "ThermalDamage";
	localizedName = "LocKey#741";
	displayPlus = true;
}

ThermalDamageMin : DamageTypeStat
{
	enumName = "ThermalDamageMin";
}

ThermalDamageMax : DamageTypeStat
{
	enumName = "ThermalDamageMax";
}

ThermalDamagePercent : DamageTypeStat
{
	enumName = "ThermalDamagePercent";
}

ThermalDamageAdditiveMultiplier : DamageTypeStat
{
	enumName = "ThermalDamageAdditiveMultiplier";
}

ElectricDamage : DamageTypeStat
{
	enumName = "ElectricDamage";
	localizedName = "LocKey#742";
	displayPlus = true;
}

ElectricDamageMin : DamageTypeStat
{
	enumName = "ElectricDamageMin";
}

ElectricDamageMax : DamageTypeStat
{
	enumName = "ElectricDamageMax";
}

ElectricDamagePercent : DamageTypeStat
{
	enumName = "ElectricDamagePercent";
}

ElectricDamageAdditiveMultiplier : DamageTypeStat
{
	enumName = "ElectricDamageAdditiveMultiplier";
}

DealsPhysicalDamage : StatFlag
{
	enumName = "DealsPhysicalDamage";
}

DealsChemicalDamage : StatFlag
{
	enumName = "DealsChemicalDamage";
}

DealsThermalDamage : StatFlag
{
	enumName = "DealsThermalDamage";
}

DealsElectricDamage : StatFlag
{
	enumName = "DealsElectricDamage";
}

StaminaDamage : DamageTypeStat
{
	enumName = "StaminaDamage";
}

BonusDamageAgainstRares : Stat
{
	enumName = "BonusDamageAgainstRares";
	localizedName = "LocKey#40294";
	displayPercent = true;
	displayPlus = true;
	flags = 
	[
		"EquipOnPlayer"
	];
}

BonusDamageAgainstElites : Stat
{
	enumName = "BonusDamageAgainstElites";
	localizedName = "LocKey#40293";
	displayPercent = true;
	displayPlus = true;
	flags = 
	[
		"EquipOnPlayer"
	];
}

BonusDamageAgainstBosses : Stat
{
	enumName = "BonusDamageAgainstBosses";
	localizedName = "LocKey#79438";
	displayPercent = true;
	displayPlus = true;
	flags = 
	[
		"EquipOnPlayer"
	];
	decimalPlaces = 1;
}

BonusDmgVsRaresAndElites : Stat
{
	enumName = "BonusDmgVsRaresAndElites";
}

BonusDamageAgainstMechanicals : Stat
{
	enumName = "BonusDamageAgainstMechanicals";
	localizedName = "";
	displayPercent = true;
	displayPlus = true;
}

ResistanceStat : Stat
{
	flags = 
	[
		"EquipOnPlayer"
	];
	improvementRelation = "ImprovementRelation.Direct";
	min = -100;
	max = 100;
}

PhysicalResistance : ResistanceStat
{
	enumName = "PhysicalResistance";
	localizedName = "LocKey#743";
	displayPlus = true;
}

ChemicalResistance : ResistanceStat
{
	enumName = "ChemicalResistance";
	localizedName = "LocKey#744";
	displayPlus = true;
	decimalPlaces = 1;
	displayPercent = false;
}

ThermalResistance : ResistanceStat
{
	enumName = "ThermalResistance";
	localizedName = "LocKey#745";
	displayPlus = true;
	decimalPlaces = 1;
	displayPercent = false;
}

ElectricResistance : ResistanceStat
{
	enumName = "ElectricResistance";
	localizedName = "LocKey#746";
	displayPlus = true;
	decimalPlaces = 1;
	displayPercent = false;
}

HackingResistance : ResistanceStat
{
	enumName = "HackingResistance";
	improvementRelation = "ImprovementRelation.Direct";
}

HackingResistanceUltimate : ResistanceStat
{
	enumName = "HackingResistanceUltimate";
	improvementRelation = "ImprovementRelation.Direct";
}

DummyResistanceStat : ResistanceStat
{
	enumName = "DummyResistanceStat";
	enumComment = "DO NOT USE, ITS PURELY FOR UI PURPOSES";
	localizedName = "LocKey#53692";
	displayPercent = true;
	displayPlus = true;
}

BlindResistance : ResistanceStat
{
	enumName = "BlindResistance";
	improvementRelation = "ImprovementRelation.Direct";
}

Evasion : Stat
{
	enumName = "Evasion";
	min = 0;
	max = 100;
	flags = [];
	displayPercent = true;
	displayPlus = true;
	localizedName = "LocKey#764";
	improvementRelation = "ImprovementRelation.Direct";
}

MitigationChance : Stat
{
	enumName = "MitigationChance";
	min = 0;
	max = 100;
	flags = 
	[
		"EquipOnPlayer"
	];
	displayPercent = true;
	displayPlus = true;
	localizedName = "LocKey#79388";
	improvementRelation = "ImprovementRelation.Direct";
	decimalPlaces = 1;
}

MitigationStrength : Stat
{
	enumName = "MitigationStrength";
	min = 0;
	max = 90;
	flags = 
	[
		"EquipOnPlayer"
	];
	decimalPlaces = 1;
	displayPercent = true;
	displayPlus = true;
	localizedName = "LocKey#79389";
	improvementRelation = "ImprovementRelation.Direct";
}

MaxPercentDamageTakenPerHit : Stat
{
	min = 0;
	max = 100;
	enumName = "MaxPercentDamageTakenPerHit";
	enumComment = "Stat used to clamp damage dealt to this target per hit. Used on bosses to prevent phase skipping";
}

HitReactionStat : Stat
{
	min = -1;
	max = 9999;
	flags = 
	[
		"EquipOnNPC"
	];
}

ImpactDamageThreshold : HitReactionStat
{
	enumName = "ImpactDamageThreshold";
}

ImpactDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.ImpactDamageThreshold";
	modifierType = "Additive";
}

StaggerDamageThreshold : HitReactionStat
{
	enumName = "StaggerDamageThreshold";
}

StaggerDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.StaggerDamageThreshold";
	modifierType = "Additive";
}

KnockdownDamageThreshold : HitReactionStat
{
	enumName = "KnockdownDamageThreshold";
}

KnockdownDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.KnockdownDamageThreshold";
	modifierType = "Additive";
}

ImpactDamageThresholdInCover : HitReactionStat
{
	enumName = "ImpactDamageThresholdInCover";
}

ImpactDamageThresholdInCoverModifier : ConstantStatModifier
{
	statType = "BaseStats.ImpactDamageThresholdInCover";
	modifierType = "Additive";
}

StaggerDamageThresholdInCover : HitReactionStat
{
	enumName = "StaggerDamageThresholdInCover";
}

StaggerDamageThresholdInCoverModifier : ConstantStatModifier
{
	statType = "BaseStats.StaggerDamageThresholdInCover";
	modifierType = "Additive";
}

KnockdownDamageThresholdInCover : HitReactionStat
{
	enumName = "KnockdownDamageThresholdInCover";
}

KnockdownDamageThresholdInCoverModifier : ConstantStatModifier
{
	statType = "BaseStats.KnockdownDamageThresholdInCover";
	modifierType = "Additive";
}

ImpactDamageThresholdImpulse : HitReactionStat
{
	enumName = "ImpactDamageThresholdImpulse";
}

ImpactDamageThresholdImpulseModifier : ConstantStatModifier
{
	statType = "BaseStats.ImpactDamageThresholdImpulse";
	modifierType = "Additive";
}

StaggerDamageThresholdImpulse : HitReactionStat
{
	enumName = "StaggerDamageThresholdImpulse";
}

StaggerDamageThresholdImpulseModifier : ConstantStatModifier
{
	statType = "BaseStats.StaggerDamageThresholdImpulse";
	modifierType = "Additive";
}

KnockdownDamageThresholdImpulse : HitReactionStat
{
	enumName = "KnockdownDamageThresholdImpulse";
}

KnockdownDamageThresholdImpulseModifier : ConstantStatModifier
{
	statType = "BaseStats.KnockdownDamageThresholdImpulse";
	modifierType = "Additive";
}

WoundHeadDamageThreshold : HitReactionStat
{
	enumName = "WoundHeadDamageThreshold";
}

WoundHeadDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.WoundHeadDamageThreshold";
	modifierType = "Additive";
}

WoundLArmDamageThreshold : HitReactionStat
{
	enumName = "WoundLArmDamageThreshold";
}

WoundLArmDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.WoundLArmDamageThreshold";
	modifierType = "Additive";
}

WoundRArmDamageThreshold : HitReactionStat
{
	enumName = "WoundRArmDamageThreshold";
}

WoundRArmDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.WoundRArmDamageThreshold";
	modifierType = "Additive";
}

WoundLLegDamageThreshold : HitReactionStat
{
	enumName = "WoundLLegDamageThreshold";
}

WoundLLegDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.WoundLLegDamageThreshold";
	modifierType = "Additive";
}

WoundRLegDamageThreshold : HitReactionStat
{
	enumName = "WoundRLegDamageThreshold";
}

WoundRLegDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.WoundRLegDamageThreshold";
	modifierType = "Additive";
}

DismHeadDamageThreshold : HitReactionStat
{
	enumName = "DismHeadDamageThreshold";
}

DismHeadDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.DismHeadDamageThreshold";
	modifierType = "Additive";
}

DismLArmDamageThreshold : HitReactionStat
{
	enumName = "DismLArmDamageThreshold";
}

DismLArmDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.DismLArmDamageThreshold";
	modifierType = "Additive";
}

DismRArmDamageThreshold : HitReactionStat
{
	enumName = "DismRArmDamageThreshold";
}

DismRArmDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.DismRArmDamageThreshold";
	modifierType = "Additive";
}

DismLLegDamageThreshold : HitReactionStat
{
	enumName = "DismLLegDamageThreshold";
}

DismLLegDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.DismLLegDamageThreshold";
	modifierType = "Additive";
}

DismRLegDamageThreshold : HitReactionStat
{
	enumName = "DismRLegDamageThreshold";
}

DismRLegDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.DismRLegDamageThreshold";
	modifierType = "Additive";
}

DefeatedHeadDamageThreshold : HitReactionStat
{
	enumName = "DefeatedHeadDamageThreshold";
}

DefeatedHeadDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.DefeatedHeadDamageThreshold";
	modifierType = "Additive";
}

DefeatedLArmDamageThreshold : HitReactionStat
{
	enumName = "DefeatedLArmDamageThreshold";
}

DefeatedLArmDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.DefeatedLArmDamageThreshold";
	modifierType = "Additive";
}

DefeatedRArmDamageThreshold : HitReactionStat
{
	enumName = "DefeatedRArmDamageThreshold";
}

DefeatedRArmDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.DefeatedRArmDamageThreshold";
	modifierType = "Additive";
}

DefeatedLLegDamageThreshold : HitReactionStat
{
	enumName = "DefeatedLLegDamageThreshold";
}

DefeatedLLegDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.DefeatedLLegDamageThreshold";
	modifierType = "Additive";
}

DefeatedRLegDamageThreshold : HitReactionStat
{
	enumName = "DefeatedRLegDamageThreshold";
}

DefeatedRLegDamageThresholdModifier : ConstantStatModifier
{
	statType = "BaseStats.DefeatedRLegDamageThreshold";
	modifierType = "Additive";
}

HitTimerAfterImpact : Stat
{
	enumName = "HitTimerAfterImpact";
}

HitTimerAfterImpactMelee : Stat
{
	enumName = "HitTimerAfterImpactMelee";
}

HitTimerAfterStagger : Stat
{
	enumName = "HitTimerAfterStagger";
}

HitTimerAfterStaggerMelee : Stat
{
	enumName = "HitTimerAfterStaggerMelee";
}

HitTimerAfterPain : Stat
{
	enumName = "HitTimerAfterPain";
}

HitTimerAfterKnockdown : Stat
{
	enumName = "HitTimerAfterKnockdown";
}

HitTimerAfterDefeated : Stat
{
	enumName = "HitTimerAfterDefeated";
}

HitReactionDamageHealthFactor : Stat
{
	enumName = "HitReactionDamageHealthFactor";
	enumComment = "Multiplier to damage used in hit reaction calculations from 0 - this value as target health goes from full - zero";
}

DamageReductionExplosion : Stat
{
	enumName = "DamageReductionExplosion";
	enumComment = "Percent of explosion damage reduced";
	localizedName = "LocKey#40298";
	flags = 
	[
		"EquipOnPlayer"
	];
	displayPercent = true;
	displayPlus = true;
	multiplyBy100InText = true;
}

DamageReductionBulletExplosion : Stat
{
	enumName = "DamageReductionBulletExplosion";
	enumComment = "Percent of bullet explosion damage reduced";
}

DamageReductionDamageOverTime : Stat
{
	enumName = "DamageReductionDamageOverTime";
	enumComment = "Percent of dot damage reduced";
	localizedName = "LocKey#40299";
	flags = 
	[
		"EquipOnPlayer"
	];
	displayPercent = true;
	displayPlus = true;
	multiplyBy100InText = true;
}

DamageReductionMelee : Stat
{
	enumName = "DamageReductionMelee";
	enumComment = "Percent of melee damage reduced";
	localizedName = "LocKey#79390";
	flags = 
	[
		"EquipOnPlayer"
	];
	displayPercent = true;
	displayPlus = true;
}

DamageReductionQuickhacks : Stat
{
	enumName = "DamageReductionQuickhacks";
	enumComment = "Percent of quickhacks damage reduced";
	localizedName = "LocKey#79392";
	flags = 
	[
		"EquipOnPlayer"
	];
	displayPercent = true;
	displayPlus = true;
}

TriggerWoundedChance : Stat
{
	enumName = "TriggerWoundedChance";
}

TriggerDismembermentChance : Stat
{
	enumName = "TriggerDismembermentChance";
}

TBHsBaseCoefficient : Stat
{
	enumName = "TBHsBaseCoefficient";
	localizedName = "LocKey#40292";
}

TBHsBaseSourceMultiplierCoefficient : Stat
{
	enumName = "TBHsBaseSourceMultiplierCoefficient";
	flags = 
	[
		"EquipOnNPC"
	];
	localizedName = "LocKey#40292";
}

TBHsVisibilityCooldown : Stat
{
	enumName = "TBHsVisibilityCooldown";
}

TBHsMinimumLineOfSightTime : Stat
{
	enumName = "TBHsMinimumLineOfSightTime";
	enumComment = "Minimum time that the source needs to hold direct line of sight before landing a hit";
	flags = 
	[
		"EquipOnNPC"
	];
}

TBHsSensesTraceLoSIncreaseSpeed : Stat
{
	enumName = "TBHsSensesTraceLoSIncreaseSpeed";
	enumComment = "How fast increase LoS time when enemy is vibible by senses (direct check)";
}

TBHsCoverTraceLoSIncreaseSpeed : Stat
{
	enumName = "TBHsCoverTraceLoSIncreaseSpeed";
	enumComment = "How fast increase LoS time when enemy is vibible by cover traces only";
}

TBHsReactionCooldownReduction : Stat
{
	enumName = "TBHsReactionCooldownReduction";
	enumComment = "Stat that lowers the duration of HitReactionTBHCooldown for NPCs";
}

