public ValueConfigWrapper <string> WrapConfigFloat(string key, string description, float defaultVal = 0f) { ValueConfigWrapper <string> conf = Config.ValueWrap(CharacterName, key, ValueType.Float, description, defaultVal.ToString(CultureInfo.InvariantCulture)); MarkdownConfigDefinitions.Add(conf); return(conf); }
public ValueConfigWrapper <string> WrapConfigBool(string key, string description) { ValueConfigWrapper <string> conf = Config.ValueWrap(CharacterName, key, ValueType.Bool, description); MarkdownConfigDefinitions.Add(conf); return(conf); }
public ValueConfigWrapper <int> WrapConfigInt(string key, string description, int defaultVal = 0) { ValueConfigWrapper <int> conf = Config.ValueWrap(CharacterName, key, description, defaultVal); MarkdownConfigDefinitions.Add(conf); return(conf); }
public override void InitConfigValues() { TurretMaxDeployCount = WrapConfigInt("TurretMaxDeployCount", "The maximum number of turrets the Engineer can place."); MineMaxDeployCount = WrapConfigInt("MineMaxDeployCount", "The maximum number of mines the Engineer can place."); ShieldMaxDeployCount = WrapConfigInt("ShieldMaxDeployCount", "The maximum number of shields the Engineer can place."); ShieldDuration = new FieldConfigWrapper <string>( WrapConfigFloat("ShieldDuration", "The number of seconds the shield is active."), "lifetime", true); ShieldDeployedFields = new List <IFieldChanger> { ShieldDuration }; ShieldEndlessDuration = WrapConfigStandardBool("ShieldEndlessDuration", "If the duration of the shield should be endless."); GrenadeMaxFireAmount = new FieldConfigWrapper <int>(WrapConfigInt("GrenadeMaxFireAmount", "The maximum number of grenades the Engineer can fire."), "maxGrenadeCount", true); GrenadeMinFireAmount = new FieldConfigWrapper <int>(WrapConfigInt("GrenadeMinFireAmount", "The minimum number of grenades the Engineer fires."), "minGrenadeCount", true); GrenadeSetChargeCountToFireAmount = WrapConfigStandardBool("GrenadeSetChargeCountToFireAmount", "Set the number of \"clicks\" you hear in the charging animation to the maximum grenade count."); GrenadeMaxChargeTime = new FieldConfigWrapper <string>(WrapConfigFloat("GrenadeMaxChargeTime", "Maximum charge time (animation) for grenades, in seconds."), "baseMaxChargeTime", true); GrenadeTotalChargeDuration = new FieldConfigWrapper <string>(WrapConfigFloat("GrenadeTotalChargeDuration", "Maximum charge duration (logic) for grenades, in seconds."), "baseTotalDuration", true); ChargeGrenadesFields = new List <IFieldChanger> { GrenadeMaxChargeTime, GrenadeMaxFireAmount, GrenadeMinFireAmount, GrenadeTotalChargeDuration }; }
public override void InitConfigValues() { // Firebolt FireboltAttackSpeedStockScaling = WrapConfigStandardBool("FireboltAttackSpeedStockScaling", "If the charge count of the FireBolt Skill should scale with AttackSpeed. Needs to have FireboltAttackSpeedStockScalingCoefficent set to work."); FireboltAttackSpeedStockScalingCoefficient = WrapConfigFloat("FireboltAttackSpeedStockScalingCoefficient", "Coefficient for charge AttackSpeed scaling, in percent. Formula: Stock + Stock * (ATKSP - 1) * Coeff."); FireboltAttackSpeedCooldownScaling = WrapConfigStandardBool("FireboltAttackSpeedCooldownScaling", "If the cooldown of the Firebolt Skill should scale with AttackSpeed. Needs to have FireboltAttackSpeedCooldownScalingCoefficent set to work."); FireboltAttackSpeedCooldownScalingCoefficient = WrapConfigFloat( "FireboltAttackSpeedCooldownScalingCoefficient", "Coefficient for cooldown AttackSpeed scaling, in percent. Formula: BaseCooldown * (1 / (1 + (ATKSP-1) * Coeff)) ."); // NovaBomb NovaBombMaxChargeDuration = new FieldConfigWrapper <string>(WrapConfigFloat("NovaBombBaseChargeDuration", "Base max charging duration of the NovaBomb"), "baseChargeDuration", true); NovaBombMaxDamageCoefficient = new FieldConfigWrapper <string>(WrapConfigFloat( "NovaBombMaxDamageCoefficient", "Max damage coefficient of the NovaBomb"), "maxDamageCoefficient", true); ChargeNovaBombFields = new List <IFieldChanger> { NovaBombMaxChargeDuration, NovaBombMaxDamageCoefficient }; // Flamethrower FlamethrowerProcCoefficientPerTick = new FieldConfigWrapper <string>(WrapConfigFloat( "FlamethrowerProcCoefficientPerTick", "The coefficient for items per proc of the flamethrower."), "procCoefficientPerTick", true); FlamethrowerMaxDistance = new FieldConfigWrapper <string>(WrapConfigFloat("FlamethrowerMaxDistance", "The max distance of the Flamethrower"), "maxDistance", true); FlamethrowerRadius = new FieldConfigWrapper <string>(WrapConfigFloat("FlamethrowerRadius", "The radius of the Flamethrower"), "radius", true); FlamethrowerTotalDamageCoefficient = new FieldConfigWrapper <string>(WrapConfigFloat( "FlamethrowerTotalDamageCoefficient", "The total damage coefficient for the flamethrower"), "totalDamageCoefficient", true); FlamethrowerIgnitePercentChance = new FieldConfigWrapper <string>(WrapConfigFloat( "FlamethrowerIgnitePercentChance", "The change to ignite per proc in percent."), "ignitePercentChance", true); FlamethrowerFields = new List <IFieldChanger> { FlamethrowerProcCoefficientPerTick, FlamethrowerMaxDistance, FlamethrowerRadius, FlamethrowerTotalDamageCoefficient, FlamethrowerIgnitePercentChance }; FlamethrowerDuration = new FieldConfigWrapper <string>(WrapConfigFloat("FlamethrowerDuration", "The duration of the flamethrower"), "baseFlamethrowerDuration", true); FlamethrowerTickFrequency = new FieldConfigWrapper <string>(WrapConfigFloat("FlamethrowerTickFrequency", "The tick frequency of the flamethrower"), "tickFrequency", true); FlamethrowerTickFrequencyScaleWithAttackSpeed = WrapConfigStandardBool( "FlamethrowerTickFrequencyScaleWithAttackSpeed", "If the tick frequency should scale with AttackSpeed. Needs FlamethrowerTickFrequencyScaleCoefficient to be set to work."); FlamethrowerTickFrequencyScaleCoefficient = WrapConfigFloat("FlamethrowerTickFrequencyScaleCoefficient", "The coefficient for the AttackSpeed scaling of the Flamethrower. Formula: TickFreq + Coeff * (ATKSP - 1) * TickFreq"); FlamethrowerDurationScaleDownWithAttackSpeed = WrapConfigStandardBool("FlamethrowerDurationScaleDownWithAttackSpeed", "If the flame thrower duration should get shorter with more attack speed. Needs FlamethrowerDurationScaleCoefficient to be set."); FlamethrowerDurationScaleCoefficient = WrapConfigFloat("FlamethrowerDurationScaleCoefficient", "The coefficient for flame thrower scaling. Formula: Duration - Coeff * (ATKSP - 1) * Duration. Minimum of FlamethrowerMinimalDuration seconds."); FlamethrowerMinimalDuration = WrapConfigFloat("FlamethrowerMinimalDuration", "The minimal duration of the flamethrower", 1f); }
public override void InitConfigValues() { // Pistol PistolDamageCoefficient = new FieldConfigWrapper <string>(WrapConfigFloat("PistolDamageCoefficient", "Damage coefficient for the pistol, in percent."), "damageCoefficient", true); PistolBaseDuration = new FieldConfigWrapper <string>(WrapConfigFloat("PistolBaseDuration", "Base duration for the pistol shot, in percent. (Attack Speed)"), "baseDuration", true); PistolFields = new List <IFieldChanger> { PistolBaseDuration, PistolDamageCoefficient }; PistolHitLowerBarrageCooldownPercent = WrapConfigFloat("PistolHitLowerBarrageCooldownPercent", "The amount in percent that the current cooldown of the Barrage Skill should be lowered by. Needs to have PistolHitLowerBarrageCooldownPercent set."); PistolHitLowerBarrageCooldown = WrapConfigStandardBool("PistolHitLowerBarrageCooldown", "If the pistol hit should lower the Barrage Skill cooldown. Needs to have PistolHitLowerBarrageCooldownPercent set to work"); // Laser LaserDamageCoefficient = new FieldConfigWrapper <string>(WrapConfigFloat("LaserDamageCoefficient", "Damage coefficient for the secondary laser, in percent."), "damageCoefficient", true); LaserFields = new List <IFieldChanger> { LaserDamageCoefficient }; // Dash DashResetsSecondCooldown = WrapConfigStandardBool("DashResetsSecondCooldown", "If the dash should reset the cooldown of the second ability."); DashInvulnerability = WrapConfigStandardBool("DashInvulnerability", "If Commando should be invulnerable while dashing."); DashInvulnerabilityTimer = WrapConfigFloat("DashInvulnerabilityTimer", "How long Commando should be invincible for when dashing. Only active when DashInvulnerability is on. 0 = For the whole dash."); // Barrage BarrageScalesWithAttackSpeed = WrapConfigStandardBool("BarrageScalesWithAttackSpeed", "If the barrage bullet count should scale with attack speed. Idea by @Twyla. Needs BarrageScaleModifier to be set."); BarrageScaleModifier = WrapConfigFloat("BarrageScaleCoefficient", "Coefficient for the AttackSpeed scale of Barrage bullet count, in percent. Formula: BCount + BCount * (ATKSP - 1) * Coeff"); BarrageBaseShotAmount = new FieldConfigWrapper <int>( WrapConfigInt("BarrageBaseShotAmount", "How many shots the Barrage skill should fire"), "bulletCount", true); BarrageBaseDurationBetweenShots = new FieldConfigWrapper <string>(WrapConfigFloat("BarrageBaseDurationBetweenShots", "Base duration between shots in the Barrage skill."), "baseDurationBetweenShots", true); BarrageFields = new List <IFieldChanger> { BarrageBaseShotAmount, BarrageBaseDurationBetweenShots }; }