public static Dictionary <DamageElement, float> GetBuffResistances(this ICharacterData data) { if (data == null) { return(new Dictionary <DamageElement, float>()); } var result = new Dictionary <DamageElement, float>(); var buffs = data.Buffs; foreach (var buff in buffs) { result = GameDataHelpers.CombineResistanceAmountsDictionary(result, buff.GetIncreaseResistances()); } // 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.CombineResistanceAmountsDictionary(result, skill.GetSkill().buff.GetIncreaseResistances(skill.level)); } return(result); }
public static Dictionary <DamageElement, float> GetResistances(this ICharacterData data, bool sumWithEquipments = true, bool sumWithBuffs = true) { var result = data.GetCharacterResistances(); if (sumWithEquipments) { result = GameDataHelpers.CombineResistanceAmountsDictionary(result, data.GetEquipmentResistances()); } if (sumWithBuffs) { result = GameDataHelpers.CombineResistanceAmountsDictionary(result, data.GetBuffResistances()); } return(result); }
public static Dictionary <DamageElement, float> GetCharacterResistances(this ICharacterData data) { if (data == null) { return(new Dictionary <DamageElement, float>()); } var result = new Dictionary <DamageElement, float>(); var character = data.GetDatabase(); if (character != null) { result = GameDataHelpers.CombineResistanceAmountsDictionary(result, character.GetCharacterResistances(data.Level)); } return(result); }
public static Dictionary <DamageElement, float> GetEquipmentResistances(this ICharacterData data) { if (data == null) { return(new Dictionary <DamageElement, float>()); } var result = new Dictionary <DamageElement, float>(); // Armors Item tempEquipment = null; var equipItems = data.EquipItems; foreach (var equipItem in equipItems) { tempEquipment = equipItem.GetEquipmentItem(); if (tempEquipment != null) { result = GameDataHelpers.CombineResistanceAmountsDictionary(result, tempEquipment.GetIncreaseResistances(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.CombineResistanceAmountsDictionary(result, tempEquipment.GetIncreaseResistances(rightHandItem.level, rightHandItem.GetEquipmentBonusRate())); } // Left hand equipment var leftHandItem = equipWeapons.leftHand; tempEquipment = leftHandItem.GetEquipmentItem(); if (tempEquipment != null) { result = GameDataHelpers.CombineResistanceAmountsDictionary(result, tempEquipment.GetIncreaseResistances(leftHandItem.level, leftHandItem.GetEquipmentBonusRate())); } } return(result); }