Пример #1
0
        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);
        }
Пример #2
0
        public ValueConfigWrapper <string> WrapConfigBool(string key, string description)
        {
            ValueConfigWrapper <string> conf = Config.ValueWrap(CharacterName, key, ValueType.Bool, description);

            MarkdownConfigDefinitions.Add(conf);
            return(conf);
        }
Пример #3
0
        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
                };
            }