Beispiel #1
0
        public static double CalculateDustBundleSize(CharacterInstance character, string shopEntryId)
        {
            double baseAmount = App.Binder.ConfigMeta.VENDOR_DUST_BUNDLES[shopEntryId];

            return(Math.Floor(CharacterStatModifierUtil.ApplyDustBonuses(character, baseAmount)));
        }
Beispiel #2
0
        public static string GetFormattedSkillDescription(string baseText, CharacterInstance character, SkillType skillType, PerkType perkType, bool bonusDamageSeparately, bool colors)
        {
            int    bestModifier = 0;
            float  num2         = 0f;
            double baseAmount   = 0.0;
            double v            = 0.0;

            switch (skillType)
            {
            case SkillType.Omnislash:
                int    num5;
                int    num6;
                float  num7;
                float  num8;
                double num9;
                double num10;
                OmnislashSkill.CalculateTotalDamage(character, out num7, out num8, out num6, out num5, out num9, out num10);
                bestModifier = num5;
                baseAmount   = (num9 + num10) / ((double)num5);
                v            = 0.0;
                break;

            case SkillType.Slam:
                baseAmount = character.SkillDamage(true) * ConfigSkills.Slam.DamagePct;
                v          = CharacterStatModifierUtil.ApplySkillTypeDamageBonuses(character, SkillType.Slam, baseAmount) - baseAmount;
                break;

            case SkillType.Implosion:
                if (perkType == PerkType.SkillUpgradeImplosion1)
                {
                    bestModifier = (int)ConfigPerks.GetBestModifier(PerkType.SkillUpgradeImplosion1);
                }
                baseAmount = character.SkillDamage(true) * ConfigSkills.Implosion.DamagePct;
                v          = CharacterStatModifierUtil.ApplySkillTypeDamageBonuses(character, SkillType.Implosion, baseAmount) - baseAmount;
                break;

            case SkillType.Clone:
            {
                baseAmount = character.SkillDamage(true) * ConfigSkills.Clone.DphMultiplier;
                v          = CharacterStatModifierUtil.ApplySkillTypeDamageBonuses(character, SkillType.Clone, baseAmount) - baseAmount;
                Character summonedCharacterPrototype = GameLogic.Binder.CharacterResources.getResource(CloneSkill.CLONE_CHARACTER_ID);
                num2 = character.getLimitedLifetimeForSummon(summonedCharacterPrototype);
                break;
            }

            case SkillType.Leap:
                baseAmount = character.SkillDamage(true) * ConfigSkills.Leap.DamagePct;
                v          = CharacterStatModifierUtil.ApplySkillTypeDamageBonuses(character, SkillType.Leap, baseAmount) - baseAmount;
                break;

            case SkillType.Whirlwind:
            {
                bool flag  = perkType == PerkType.SkillUpgradeWhirlwind1;
                bool flag2 = perkType == PerkType.SkillUpgradeWhirlwind4;
                if (flag2)
                {
                    baseAmount = character.SkillDamage(true) * ConfigSkills.Whirlwind.HugeRuneTotalDamagePct;
                }
                else
                {
                    baseAmount = character.SkillDamage(true) * ConfigSkills.Whirlwind.TotalDamagePct;
                }
                if (flag)
                {
                    bestModifier = ConfigSkills.Whirlwind.ShieldRuneTotalSpinCount;
                }
                else if (flag2)
                {
                    bestModifier = ConfigSkills.Whirlwind.HugeRuneTotalSpinCount;
                }
                else
                {
                    bestModifier = ConfigSkills.Whirlwind.TotalSpinCount;
                }
                v = CharacterStatModifierUtil.ApplySkillTypeDamageBonuses(character, SkillType.Whirlwind, baseAmount) - baseAmount;
                break;
            }
            }
            StringBuilder builder = new StringBuilder(baseText);

            if (v >= 1.0)
            {
                if (bonusDamageSeparately)
                {
                    if (colors)
                    {
                        builder.Replace("$Damage$", "<color=#" + ConfigUi.SKILL_DESCRIPTION_VARIABLE_TEXT_COLOR_HEX + ">" + BigValueToString(baseAmount) + "</color>" + "<color=#" + ConfigUi.SKILL_DESCRIPTION_BONUS_VARIABLE_TEXT_COLOR_HEX + ">+" + BigValueToString(v) + "</color>");
                    }
                    else
                    {
                        builder.Replace("$Damage$", BigValueToString(baseAmount) + "+" + BigValueToString(v));
                    }
                }
                else if (colors)
                {
                    builder.Replace("$Damage$", "<color=#" + ConfigUi.SKILL_DESCRIPTION_VARIABLE_TEXT_COLOR_HEX + ">" + BigValueToString(baseAmount + v) + "</color>");
                }
                else
                {
                    builder.Replace("$Damage$", BigValueToString(baseAmount + v));
                }
            }
            else if (colors)
            {
                builder.Replace("$Damage$", "<color=#" + ConfigUi.SKILL_DESCRIPTION_VARIABLE_TEXT_COLOR_HEX + ">" + BigValueToString(baseAmount) + "</color>");
            }
            else
            {
                builder.Replace("$Damage$", BigValueToString(baseAmount));
            }
            if (colors)
            {
                builder.Replace("$Count$", string.Concat(new object[] { "<color=#", ConfigUi.SKILL_DESCRIPTION_VARIABLE_TEXT_COLOR_HEX, ">", bestModifier, "</color>" }));
                builder.Replace("$Duration$", "<color=#" + ConfigUi.SKILL_DESCRIPTION_VARIABLE_TEXT_COLOR_HEX + ">" + num2.ToString("0.0") + "</color>");
            }
            else
            {
                builder.Replace("$Count$", bestModifier.ToString());
                builder.Replace("$Duration$", num2.ToString("0.0"));
            }
            return(builder.ToString());
        }