public HeroSettingCollection AddUlt(string name, bool hasDuration = false, bool hasKnockback = false) { // Get the names of the settings to be added. string isEnabled = "Ultimate Ability"; string generation = "Ultimate Generation"; string passive = "Ultimate Generation - Passive"; string combat = "Ultimate Generation - Combat"; string knockback = "Knockback Scalar"; if (name != null) { // Add the (name) suffix if 'name' is not null. isEnabled += " (" + name + ")"; generation += " (" + name + ")"; passive += " (" + name + ")"; combat += " (" + name + ")"; knockback = name + " " + knockback; } // i18n name resolvers. AbilityNameResolver enabledResolver = new AbilityNameResolver(AbilityNameType.UltimateSwitchSetting, isEnabled, name ?? isEnabled); // Toggle AbilityNameResolver generationResolver = new AbilityNameResolver(AbilityNameType.UltimateGeneration, generation, name ?? generation); // Generation AbilityNameResolver passiveGenerationResolver = new AbilityNameResolver(AbilityNameType.UltimateGenerationPassive, passive, name ?? passive); // Passive Generation AbilityNameResolver combatGenerationResolver = new AbilityNameResolver(AbilityNameType.UltimateGenerationCombat, combat, name ?? combat); // Combat Generation // Add the settings. Add(new SwitchValue(isEnabled, true) { TitleResolver = enabledResolver }); Add(RangeValue.NewPercentage(generation, generationResolver, min: 10, max: 500)); Add(RangeValue.NewPercentage(passive, passiveGenerationResolver, min: 0, max: 500)); Add(RangeValue.NewPercentage(combat, combatGenerationResolver, min: 0, max: 500)); if (hasDuration) { // Add duration info if it can be changed. Add(UltimateDuration); Add(InfiniteDuration); } if (hasKnockback) { Add(RangeValue.NewPercentage(knockback, min: 0, max: 500)); } return(this); }
public HeroSettingCollection AddAbility(string name, bool hasCooldown = true, bool hasKnockback = false, bool rechargeable = false, bool noMaximumTime = false, bool selfKnockback = false) { Add(new SwitchValue(name, true)); // If the ability has a cooldown, add the cooldown options. if (hasCooldown) { string cooldownTimeTitle = name + " Cooldown Time"; Add(RangeValue.NewPercentage(cooldownTimeTitle, new AbilityNameResolver(AbilityNameType.CooldownTime, cooldownTimeTitle, name), min: 0, max: 500)); } // If the ability has a knockback scalar, add the knockback option. if (hasKnockback) { if (!selfKnockback) { Add(RangeValue.NewPercentage(name + " Knockback Scalar", min: 0, max: 500)); } else { Add(RangeValue.NewPercentage(name + " Knockback Scalar (Enemy)", min: 0, max: 300)); Add(RangeValue.NewPercentage(name + " Knockback Scalar (Self)", min: 0, max: 300)); } } // If the ability is rechargeable, add the max time and recharge rate. if (rechargeable) { string rechargeRateTitle = name + " Recharge Rate"; Add(RangeValue.NewPercentage(rechargeRateTitle, new AbilityNameResolver(AbilityNameType.CooldownTime, rechargeRateTitle, name), min: 0, max: 500)); if (!noMaximumTime) { string maximumTimeTitle = name + " Maximum Time"; Add(RangeValue.NewPercentage(maximumTimeTitle, new AbilityNameResolver(AbilityNameType.CooldownTime, maximumTimeTitle, name), min: 20, max: 500)); } } return(this); }