Exemple #1
0
        private void CalculateInitialStats(Weapon weapon)
        {
            ModifyTable statTable = new ModifyTable();

            weapon.GetStats(statTable);
            GetComponent <CharacterStats>().RecalculateStats(statTable);
        }
Exemple #2
0
        private void CalculateInitialStats(Ability ability)
        {
            ModifyTable statTable = new ModifyTable();

            ability.GetStats(statTable);
            GetComponent <CharacterStats>().RecalculateStats(statTable);
        }
 private static void GetModifiersFromItem(ModifyTable table, ModifiableItem modItem)
 {
     modItem.GetStats(table);
     foreach (var modifier in modItem.modifiers)
     {
         modifier.effect.Invoke(table, modifier.value);
         modifier.legendaryInstallEffect.Invoke(modifier.value);
     }
 }
        public void RecalculateModifiers()
        {
            ModifyTable table = new ModifyTable();

            foreach (var slot in equipmentDictionary.Values)
            {
                ModifiableItem modItem = slot.item as ModifiableItem;
                if (modItem == null)
                {
                    continue;
                }

                GetModifiersFromItem(table, modItem);
            }

            PlayerInfo.GetPlayer().GetComponent <CharacterStats>().RecalculateStats(table);
        }
Exemple #5
0
        public void RecalculateStats(ModifyTable modifierTable)
        {
            activeStats = new Dictionary <Stat, float>();

            CalculateStat(Stat.Health, modifierTable.ModifyHealth);
            CalculateStat(Stat.DamageFlat, modifierTable.ModifyPhysicalDamageFlat);
            CalculateStat(Stat.DamagePercent, modifierTable.ModifyPhysicalDamagePercent);
            CalculateStat(Stat.Armour, modifierTable.ModifyArmour);
            CalculateStat(Stat.MovementSpeed, modifierTable.ModifyMovementSpeed);
            CalculateStat(Stat.Stamina, modifierTable.ModifyStamina);
            CalculateStat(Stat.AttackSpeed, modifierTable.GetAttackSpeed);
            CalculateStat(Stat.AttackRange, modifierTable.GetAttackRange);
            CalculateStat(Stat.CritChance, modifierTable.ModifyCritChance);
            CalculateStat(Stat.CritDamage, modifierTable.ModifyCritDamage);
            CalculateStat(Stat.StaminaRegeneration, modifierTable.ModifyStaminaRegeneration);
            CalculateStat(Stat.CooldownReduction, modifierTable.ModifyCooldownReduction);
            CalculateStat(Stat.MagicDamageFlat, modifierTable.ModifyMagicDamageFlat);
            CalculateStat(Stat.MagicDamagePercent, modifierTable.ModifyMagicDamagePercent);
            CalculateStat(Stat.MagicResi, modifierTable.ModifyMagicResi);

            activeStats.Add(Stat.Experience, progressionSet.GetStat(Stat.Experience, charakterClass, level));
            statsChange.Invoke(this);
        }
Exemple #6
0
 public static void AddCriticalChance(ModifyTable modifyTable, float value)
 {
     modifyTable.critChanceFlat += value;
 }
Exemple #7
0
 public static void AddCriticalDamage(ModifyTable modifyTable, float value)
 {
     modifyTable.critDamageFlat += value;
 }
Exemple #8
0
 public static void AddMovementSpeed(ModifyTable modifyTable, float value)
 {
     modifyTable.movementSpeed += value;
 }
Exemple #9
0
 public static void AddPercentStamina(ModifyTable modifyTable, float value)
 {
     modifyTable.staminaPercent += value;
 }
Exemple #10
0
 public static void AddStaminaFlat(ModifyTable modifyTable, float value)
 {
     modifyTable.staminaFlat += value;
 }
Exemple #11
0
 public static void AddFlatDamage(ModifyTable modifyTable, float value)
 {
     modifyTable.physicalDamageFlat += value;
 }
Exemple #12
0
 public override void GetStats(ModifyTable stats)
 {
     // stats.physicalDamageFlat += damage;
     stats.attackSpeed += attackSpeed;
     stats.attackRange += range;
 }
Exemple #13
0
 public static void AddFlatArmour(ModifyTable modifyTable, float value)
 {
     modifyTable.armourFlat += value;
 }
Exemple #14
0
 public static void AddPercentHealth(ModifyTable modifyTable, float value)
 {
     modifyTable.healthPercent += value;
 }
Exemple #15
0
 public static void AddFlatHealth(ModifyTable modifyTable, float value)
 {
     modifyTable.healthFlat += value;
 }
Exemple #16
0
 public static void AddPercentMagicDamage(ModifyTable modifyTable, float value)
 {
     modifyTable.magicDamagePercent += value;
 }
Exemple #17
0
 public static void AddFlatMagicDamage(ModifyTable modifyTable, float value)
 {
     modifyTable.magicDamageFlat += value;
 }
Exemple #18
0
 public static void AddPercentDamage(ModifyTable modifyTable, float value)
 {
     modifyTable.physicalDamagePercent += value;
 }
Exemple #19
0
 public static void AddStaminaRegeneration(ModifyTable modifyTable, float value)
 {
     modifyTable.staminaPerSecond += value;
 }
Exemple #20
0
 public static void AddCooldownReduction(ModifyTable modifyTable, float value)
 {
     modifyTable.cooldownReduction += value;
 }
Exemple #21
0
 public override void GetStats(ModifyTable stats)
 {
     stats.armourFlat    += armour;
     stats.magicResiFlat += magicResistance;
 }
Exemple #22
0
 public static void AddPercentArmour(ModifyTable modifyTable, float value)
 {
     modifyTable.armourPercent += value;
 }
Exemple #23
0
 public static void AddPercentMagicResi(ModifyTable modifyTable, float value)
 {
     modifyTable.magicResiPercent += value;
 }
Exemple #24
0
 public static void AddFlatMagicResi(ModifyTable modifyTable, float value)
 {
     modifyTable.magicResiFlat += value;
 }
Exemple #25
0
 public void GetStats(ModifyTable stats)
 {
     stats.attackSpeed = 1;
     stats.attackRange = range;
 }