public static double CalculateDustBundleSize(CharacterInstance character, string shopEntryId) { double baseAmount = App.Binder.ConfigMeta.VENDOR_DUST_BUNDLES[shopEntryId]; return(Math.Floor(CharacterStatModifierUtil.ApplyDustBonuses(character, baseAmount))); }
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()); }