namespace RiotSharp.Endpoints.StaticDataEndpoint
{
    /// <summary>
    /// Class representing stats (Static API).
    /// </summary>
    public class StatsStatic
    {
        internal StatsStatic() { }
        
        /// <summary>
        /// Flat Armor value for the object.
        /// </summary>
        public double FlatArmorMod { get; set; }

        /// <summary>
        /// Flat Attack Speed value for the object.
        /// </summary>
        public double FlatAttackSpeedMod { get; set; }
        
        /// <summary>
        /// Flat Block value for the object.
        /// </summary>
        public double FlatBlockMod { get; set; }

        /// <summary>
        /// Flat Critical Chance value for the object.
        /// </summary>
        public double FlatCritChanceMod { get; set; }

        /// <summary>
        /// Flat Critical Damage multiplier for the object.
        /// </summary>
        public double FlatCritDamageMod { get; set; }

        /// <summary>
        /// Flat Enery Regeneration value for the object.
        /// </summary>
        public double FlatEnergyRegenMod { get; set; }

        /// <summary>
        /// Flat Total Energy value for the object.
        /// </summary>
        public double FlatEnergyPoolMod { get; set; }

        /// <summary>
        /// Flat Experience bonus value for the object.
        /// </summary>
        public double FlatEXPBonus { get; set; }

        /// <summary>
        /// Flat Total Health value for the object.
        /// </summary>
        public double FlatHPPoolMod { get; set; }

        /// <summary>
        /// Flat Health Regeneration value for the object.
        /// </summary>
        public double FlatHPRegenMod { get; set; }

        /// <summary>
        /// Flat Total Mana value for the object.
        /// </summary>
        public double FlatMPPoolMod { get; set; }

        /// <summary>
        /// Flat Mana Regeneration value for the object.
        /// </summary>
        public double FlatMPRegenMod { get; set; }

        /// <summary>
        /// Flat Magic Damage value for the object.
        /// </summary>
        public double FlatMagicDamageMod { get; set; }

        /// <summary>
        /// Flat Movement Speed value for the object.
        /// </summary>
        public double FlatMovementSpeedMod { get; set; }

        /// <summary>
        /// Flat Physical Damage value for the object.
        /// </summary>
        public double FlatPhysicalDamageMod { get; set; }

        /// <summary>
        /// Flat Magic Resist value for the object.
        /// </summary>
        public double FlatSpellBlockMod { get; set; }

        /// <summary>
        /// Percent Armor value for the object.
        /// </summary>
        public double PercentArmorMod { get; set; }

        /// <summary>
        /// Percent Attack Speed value for the object.
        /// </summary>
        public double PercentAttackSpeedMod { get; set; }

        /// <summary>
        /// Percent Block value for the object.
        /// </summary>
        public double PercentBlockMod { get; set; }

        /// <summary>
        /// Percent Critical Chance value for the object.
        /// </summary>
        public double PercentCritChanceMod { get; set; }

        /// <summary>
        /// Percent Critical Damage Multiplier value for the object.
        /// </summary>
        public double PercentCritDamageMod { get; set; }

        /// <summary>
        /// Percent Dodge value for the object.
        /// </summary>
        public double PercentDodgeMod { get; set; }

        /// <summary>
        /// Percent Experience Bonus value for the object.
        /// </summary>
        public double PercentEXPBonus { get; set; }

        /// <summary>
        /// Percent Total HP value for the object.
        /// </summary>
        public double PercentHPPoolMod { get; set; }

        /// <summary>
        /// Percent Health Regeneration value for the object.
        /// </summary>
        public double PercentHPRegenMod { get; set; }

        /// <summary>
        /// Percent Life Steal value for the object.
        /// </summary>
        public double PercentLifeStealMod { get; set; }

        /// <summary>
        /// Percent Total Mana value for the object.
        /// </summary>
        public double PercentMPPoolMod { get; set; }

        /// <summary>
        /// Percent Mana Regeneration value for the object.
        /// </summary>
        public double PercentMPRegenMod { get; set; }

        /// <summary>
        /// Percent Magic Damage value for the object.
        /// </summary>
        public double PercentMagicDamageMod { get; set; }

        /// <summary>
        /// Percent Movement Speed value for the object.
        /// </summary>
        public double PercentMovementSpeedMod { get; set; }

        /// <summary>
        /// Percent Physical Damage value for the object.
        /// </summary>
        public double PercentPhysicalDamageMod { get; set; }

        /// <summary>
        /// Percent Magic Resist value for the object.
        /// </summary>
        public double PercentSpellBlockMod { get; set; }

        /// <summary>
        /// Percent Spell Vamp value for the object.
        /// </summary>
        public double PercentSpellVampMod { get; set; }

        /// <summary>
        /// Flat Armor per Level value for the object.
        /// </summary>
        public double FlatArmorModPerLevel { get; set; }

        /// <summary>
        /// Flat Armor Penetration value for the object.
        /// </summary>
        public double FlatArmorPenetrationMod { get; set; }

        /// <summary>
        /// Flat Armor per Level value for the object.
        /// </summary>
        public double FlatArmorPenetrationModPerLevel { get; set; }

        /// <summary>
        /// Flat Critical Chance per Level value for the object.
        /// </summary>
        public double FlatCritChanceModPerLevel { get; set; }

        /// <summary>
        /// Flat Critical Damage per Level value for the object.
        /// </summary>
        public double FlatCritDamageModPerLevel { get; set; }

        /// <summary>
        /// Flat Dodge value for the object.
        /// </summary>
        public double FlatDodgeMod { get; set; }

        /// <summary>
        /// Flat Dodge per Level value for the object.
        /// </summary>
        public double FlatDodgeModPerLevel { get; set; }

        /// <summary>
        /// Flat Energy Regeneration per Level value for the object.
        /// </summary>
        public double FlatEnergyRegenModPerLevel { get; set; }

        /// <summary>
        /// Flat Energy per Level value for the object.
        /// </summary>
        public double FlatEnergyModPerLevel { get; set; }

        /// <summary>
        /// Flat Gold per 10 value for the object.
        /// </summary>
        public double FlatGoldPer10Mod { get; set; }

        /// <summary>
        /// Flat Health per Level value for the object.
        /// </summary>
        public double FlatHPModPerLevel { get; set; }

        /// <summary>
        /// Flat Health Regeneration per Level value for the object.
        /// </summary>
        public double FlatHPRegenModPerLevel { get; set; }

        /// <summary>
        /// Flat Mana per Level value for the object.
        /// </summary>
        public double FlatMPModPerLevel { get; set; }

        /// <summary>
        /// Flat Mana Regeneration per Level value for the object.
        /// </summary>
        public double FlatMPRegenModPerLevel { get; set; }

        /// <summary>
        /// Flat Magic Damage per Level value for the object.
        /// </summary>
        public double FlatMagicDamageModPerLevel { get; set; }

        /// <summary>
        /// Flat Magic Penetration value for the object.
        /// </summary>
        public double FlatMagicPenetrationMod { get; set; }

        /// <summary>
        /// Flat Magic Penetration per Level value for the object.
        /// </summary>
        public double FlatMagicPenetrationModPerLevel { get; set; }

        /// <summary>
        /// Flat Movement Speed per Level value for the object.
        /// </summary>
        public double FlatMovementSpeedModPerLevel { get; set; }

        /// <summary>
        /// Flat Physical Damage per Level value for the object.
        /// </summary>
        public double FlatPhysicalDamageModPerLevel { get; set; }

        /// <summary>
        /// Flat Magic Resist per Level value for the object.
        /// </summary>
        public double FlatSpellBlockModPerLevel { get; set; }

        /// <summary>
        /// Flat Time Dead value for the object.
        /// </summary>
        public double FlatTimeDeadMod { get; set; }

        /// <summary>
        /// Flat Time Dead per Level value for the object.
        /// </summary>
        public double FlatTimeDeadModPerLevel { get; set; }

        /// <summary>
        /// Percent Armor Penetration value for the object.
        /// </summary>
        public double PercentArmorPenetrationMod { get; set; }

        /// <summary>
        /// Percent Armor Penetration per Level value for the object.
        /// </summary>
        public double PercentArmorPenetrationModPerLevel { get; set; }

        /// <summary>
        /// Percent Attack Speed per Level value for the object.
        /// </summary>
        public double PercentAttackSpeedModPerLevel { get; set; }

        /// <summary>
        /// Percent Cooldown Reduction value for the object.
        /// </summary>
        public double PercentCooldownMod { get; set; }

        /// <summary>
        /// Percent Cooldown Reduction per Level value for the object.
        /// </summary>
        public double PercentCooldownModPerLevel { get; set; }

        /// <summary>
        /// Percent Magic Penetration value for the object.
        /// </summary>
        public double PercentMagicPenetrationMod { get; set; }

        /// <summary>
        /// Percent Magic Penetration per Level value for the object.
        /// </summary>
        public double PercentMagicPenetrationModPerLevel { get; set; }

        /// <summary>
        /// Percent Movement Speed per Level value for the object.
        /// </summary>
        public double PercentMovementSpeedModPerLevel { get; set; }

        /// <summary>
        /// Percent Time Dead value for the object.
        /// </summary>
        public double PercentTimeDeadMod { get; set; }

        /// <summary>
        /// Percent Time Dead per Level value for the object.
        /// </summary>
        public double PercentTimeDeadModPerLevel { get; set; }
    }
}
