コード例 #1
0
    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);
    }
コード例 #2
0
    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);
    }
コード例 #3
0
    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);
    }