public static Dictionary <DamageElement, MinMaxFloat> GetBuffIncreaseDamages(this ICharacterData data) { if (data == null) { return(new Dictionary <DamageElement, MinMaxFloat>()); } var result = new Dictionary <DamageElement, MinMaxFloat>(); var buffs = data.Buffs; foreach (var buff in buffs) { result = GameDataHelpers.CombineDamageAmountsDictionary(result, buff.GetIncreaseDamages()); } // Passive skills var skills = data.Skills; foreach (var skill in skills) { if (skill.GetSkill() == null || skill.GetSkill().skillType != SkillType.Passive || skill.level <= 0) { continue; } result = GameDataHelpers.CombineDamageAmountsDictionary(result, skill.GetSkill().buff.GetIncreaseDamages(skill.level)); } return(result); }
public static Dictionary <DamageElement, MinMaxFloat> GetIncreaseDamages(this ICharacterData data, bool sumWithEquipments = true, bool sumWithBuffs = true) { var result = new Dictionary <DamageElement, MinMaxFloat>(); if (sumWithEquipments) { result = GameDataHelpers.CombineDamageAmountsDictionary(result, data.GetEquipmentIncreaseDamages()); } if (sumWithBuffs) { result = GameDataHelpers.CombineDamageAmountsDictionary(result, data.GetBuffIncreaseDamages()); } return(result); }
public static Dictionary <DamageElement, MinMaxFloat> GetEquipmentIncreaseDamages(this ICharacterData data) { if (data == null) { return(new Dictionary <DamageElement, MinMaxFloat>()); } var result = new Dictionary <DamageElement, MinMaxFloat>(); // Armors Item tempEquipment = null; var equipItems = data.EquipItems; foreach (var equipItem in equipItems) { tempEquipment = equipItem.GetEquipmentItem(); if (tempEquipment != null) { result = GameDataHelpers.CombineDamageAmountsDictionary(result, tempEquipment.GetIncreaseDamages(equipItem.level, equipItem.GetEquipmentBonusRate())); } } // Weapons var equipWeapons = data.EquipWeapons; if (equipWeapons != null) { // Right hand equipment var rightHandItem = equipWeapons.rightHand; tempEquipment = rightHandItem.GetEquipmentItem(); if (tempEquipment != null) { result = GameDataHelpers.CombineDamageAmountsDictionary(result, tempEquipment.GetIncreaseDamages(rightHandItem.level, rightHandItem.GetEquipmentBonusRate())); } // Left hand equipment var leftHandItem = equipWeapons.leftHand; tempEquipment = leftHandItem.GetEquipmentItem(); if (tempEquipment != null) { result = GameDataHelpers.CombineDamageAmountsDictionary(result, tempEquipment.GetIncreaseDamages(leftHandItem.level, leftHandItem.GetEquipmentBonusRate())); } } return(result); }