public override void InitConfigValues() { DashMaxCount = new FieldConfigWrapper <int>(WrapConfigInt("DashMaxCount", "Maximum amount of dashes Mercenary can perform."), "maxDashes"); DashTimeoutDuration = new FieldConfigWrapper <string>(WrapConfigFloat("DashTimeoutDuration", "Maximum timeout between dashes, in seconds"), "timeoutDuration"); DashFields = new List <IFieldChanger> { DashMaxCount, DashTimeoutDuration }; }
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() { TrackingMaxDistance = new FieldConfigWrapper <float>(BindConfigFloat("TrackingMaxDistance", "The maximum distance the tracking of the huntress works."), "maxTrackingDistance"); TrackingMaxAngle = new FieldConfigWrapper <float>(BindConfigFloat("TrackingMaxAngle", "The maximum angle the tracking of the huntress works."), "maxTrackingAngle"); TrackingFields = new List <IFieldChanger> { TrackingMaxAngle, TrackingMaxDistance }; }
public override void InitConfigValues() { // Pistol DoubleTapDamageCoefficient = new FieldConfigWrapper <float>(BindConfigFloat("DoubleTapDamageCoefficient", "Damage coefficient for the Double Tap, in percent."), "damageCoefficient", true); DoubleTapBaseDuration = new FieldConfigWrapper <float>(BindConfigFloat("DoubleTapBaseDuration", "Base duration for the Double Tap shot, in percent. (Attack Speed)"), "baseDuration", true); DoubleTapFields = new List <IFieldChanger> { DoubleTapBaseDuration, DoubleTapDamageCoefficient }; DoubleTapHitLowerSpecialCooldownPercent = BindConfigFloat("DoubleTapHitLowerSpecialCooldownPercent", "The amount in percent that the current cooldown of the Barrage Skill should be lowered by. Needs to have DoubleTapHitLowerSpecialCooldown set."); DoubleTapHitLowerSpecialCooldown = BindConfigBool("DoubleTapHitLowerSpecialCooldown", "If the pistol hit should lower the Special Skill cooldown. Needs to have DoubleTapHitLowerSpecialCooldownPercent set to work"); // Laser PhaseRoundDamageCoefficient = new FieldConfigWrapper <float>(BindConfigFloat("PhaseRoundDamageCoefficient", "Damage coefficient for the secondary phase round, in percent."), "damageCoefficient"); PhaseRoundFields = new List <IFieldChanger> { PhaseRoundDamageCoefficient }; // Barrage SuppressiveFireBaseShotAmount = new FieldConfigWrapper <int>( BindConfigInt("SuppressiveFireBaseShotAmount", "How many shots the Suppressive Fire skill should when ATKSP = 1"), "baseBulletCount", true); SuppressiveFireBaseDurationBetweenShots = new FieldConfigWrapper <float>(BindConfigFloat("SuppressiveFireBaseDurationBetweenShots", "Base duration between shots in the Suppressive Fire skill."), "baseDurationBetweenShots", true); SuppressiveFireFields = new List <IFieldChanger> { SuppressiveFireBaseShotAmount, SuppressiveFireBaseDurationBetweenShots }; }
public override void InitConfigValues() { NailgunSpreadYaw = new FieldConfigWrapper <string>( WrapConfigFloat("NailgunSpreadYaw", "Yaw spread of the nailgun, in percent"), "spreadYawScale", true); NailgunSpreadPitch = new FieldConfigWrapper <string>( WrapConfigFloat("NailgunSpreadPitch", "Pitch spread of the nailgun, in percent"), "spreadPitchScale", true); NailgunFields = new List <IFieldChanger> { NailgunSpreadYaw, NailgunSpreadPitch }; }
public CustomBodyDefinition(CustomSurvivor survivor, string commonName, string survivorNameToken) { CommonName = commonName; SurvivorNameToken = survivorNameToken; BaseMaxHealth = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "BaseMaxHealth", 0f, commonName + ": The base health of your survivor"), "baseMaxHealth"); BaseRegen = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "BaseRegen", 0f, commonName + ": The base regen of your survivor"), "baseRegen"); BaseMaxShield = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "BaseMaxShield", 0f, commonName + ": the base max shield of you survivor"), "baseMaxShield"); BaseMoveSpeed = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "BaseMoveSpeed", 0f, commonName + ": The base move speed of your survivor"), "baseMoveSpeed"); BaseAcceleration = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "BaseAcceleration", 0f, commonName + ": The base acceleration of your survivor"), "baseAcceleration"); BaseJumpPower = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "BaseJumpPower", 0f, commonName + ": The base jump power of your survivor"), "baseJumpPower"); BaseDamage = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "BaseDamage", 0f, commonName + ": The base damage of your survivor"), "baseDamage"); BaseAttackSpeed = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "BaseAttackSpeed", 0f, commonName + ": The base attack speed of your survivor"), "baseAttackSpeed"); BaseCrit = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "BaseCrit", 0f, commonName + ": The base crit chance of your survivor"), "baseCrit"); BaseArmor = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "BaseArmor", 0f, commonName + ": The base armor of your survivor"), "baseArmor"); BaseJumpCount = new FieldConfigWrapper <int>(survivor.BindConfig( commonName + "BaseJumpCount", 0, commonName + ": The base jump count of your survivor"), "baseJumpCount"); LevelMaxHealth = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "LevelMaxHealth", 0f, commonName + ": The max health per level your survivor gets."), "levelMaxHealth"); LevelRegen = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "LevelRegen", 0f, commonName + ": The regen per level your survivor gets."), "levelRegen"); LevelMaxShield = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "LevelMaxShield", 0f, commonName + ": The max shield per level your survivor gets"), "levelMaxShield"); LevelMoveSpeed = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "LevelMoveSpeed", 0f, commonName + ": The move speed per level your survivor gets"), "levelMoveSpeed"); LevelJumpPower = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "LevelJumpPower", 0f, commonName + ": The jump power per level your survivor gets"), "levelJumpPower"); LevelDamage = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "LevelDamage", 0f, commonName + ": The damage per level your survivor gets"), "levelDamage"); LevelAttackSpeed = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "LevelAttackSpeed", 0f, commonName + ": The attack speed per level your survivor gets"), "levelAttackSpeed"); LevelCrit = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "LevelCrit", 0f, commonName + ": The crit chance per level your survivor gets"), "levelCrit"); LevelArmor = new FieldConfigWrapper <float>(survivor.BindConfig( commonName + "LevelArmor", 0f, commonName + ": The armor per level your survivor gets"), "levelArmor"); AllFields = new List <IFieldChanger> { BaseMaxHealth, BaseRegen, BaseMaxShield, BaseMoveSpeed, BaseAcceleration, BaseJumpPower, BaseDamage, BaseAttackSpeed, BaseCrit, BaseArmor, BaseJumpCount, LevelMaxHealth, LevelRegen, LevelMaxShield, LevelMoveSpeed, LevelJumpPower, LevelDamage, LevelAttackSpeed, LevelCrit, LevelArmor }; foreach (var fieldChanger in AllFields) { fieldChanger.AddFieldChangedListener(InternalFieldChanged); } }
public CustomSkillDefinition(CustomSurvivor survivor, string skillName) { SkillName = skillName; BaseRechargeInterval = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( skillName + "BaseRechargeInterval", skillName + ": How long it takes for this skill to recharge after being used."), "baseRechargeInterval"); ShootDelay = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( skillName + "ShootDelay", skillName + ": Time between bullets for bullet-style weapons"), "shootDelay"); BaseMaxStock = new FieldConfigWrapper <int>(survivor.WrapConfigInt( skillName + "BaseMaxStock", skillName + ": Maximum number of charges this skill can carry."), "baseMaxStock"); RechargeStock = new FieldConfigWrapper <int>(survivor.WrapConfigInt( skillName + "RechargeStock", skillName + ": How much stock to restore on a recharge."), "rechargeStock"); IsCombatSkill = new FieldConfigWrapper <string>(survivor.WrapConfigBool( skillName + "IsCombatSkill", skillName + ": Whether or not this is considered a combat skill."), "isCombatSkill"); NoSprint = new FieldConfigWrapper <string>(survivor.WrapConfigBool( skillName + "NoSprint", skillName + ": Whether or not the usage of this skill is mutually exclusive with sprinting."), "noSprint"); RequiredStock = new FieldConfigWrapper <int>(survivor.WrapConfigInt( skillName + "RequiredStock", skillName + ": How much stock is required to activate this skill."), "requiredStock"); StockToConsume = new FieldConfigWrapper <int>(survivor.WrapConfigInt( skillName + "StockToConsume", skillName + ": How much stock to deduct when the skill is activated."), "stockToConsume"); MustKeyPress = new FieldConfigWrapper <string>(survivor.WrapConfigBool( skillName + "MustKeyPress", skillName + ": The skill can't be activated if the key is held."), "mustKeyPress"); BeginSkillCooldownOnSkillEnd = new FieldConfigWrapper <string>(survivor.WrapConfigBool( skillName + "BeginSkillCooldownOnSkillEnd", skillName + ": Whether or not the cooldown waits until it leaves the set state"), "beginSkillCooldownOnSkillEnd"); CanceledFromSprinting = new FieldConfigWrapper <string>(survivor.WrapConfigBool( skillName + "CanceledFromSprinting", skillName + ": Sprinting will actively cancel this ability."), "canceledFromSprinting"); IsBullets = new FieldConfigWrapper <string>(survivor.WrapConfigBool( skillName + "IsBullets", skillName + ": Whether or not it has bullet reload behavior"), "isBullets"); AllFields = new List <IFieldChanger> { BaseRechargeInterval, BaseMaxStock, ShootDelay, RechargeStock, IsCombatSkill, NoSprint, RequiredStock, StockToConsume, MustKeyPress, BeginSkillCooldownOnSkillEnd, CanceledFromSprinting, IsBullets }; }
public CustomBodyDefinition(CustomSurvivor survivor, string survivorName) { SurvivorName = survivorName; BaseMaxHealth = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "BaseMaxHealth", survivorName + ": The base health of your survivor"), "baseMaxHealth"); BaseRegen = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "BaseRegen", survivorName + ": The base regen of your survivor"), "baseRegen"); BaseMaxShield = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "BaseMaxShield", survivorName + ": the base max shield of you survivor"), "baseMaxShield"); BaseMoveSpeed = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "BaseMoveSpeed", survivorName + ": The base move speed of your survivor"), "baseMoveSpeed"); BaseAcceleration = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "BaseAcceleration", survivorName + ": The base acceleration of your survivor"), "baseAcceleration"); BaseJumpPower = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "BaseJumpPower", survivorName + ": The base jump power of your survivor"), "baseJumpPower"); BaseDamage = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "BaseDamage", survivorName + ": The base damage of your survivor"), "baseDamage"); BaseAttackSpeed = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "BaseAttackSpeed", survivorName + ": The base attack speed of your survivor"), "baseAttackSpeed"); BaseCrit = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "BaseCrit", survivorName + ": The base crit chance of your survivor"), "baseCrit"); BaseArmor = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "BaseArmor", survivorName + ": The base armor of your survivor"), "baseArmor"); BaseJumpCount = new FieldConfigWrapper <int>(survivor.WrapConfigInt( survivorName + "BaseJumpCount", survivorName + ": The base jump count of your survivor"), "baseJumpCount"); LevelMaxHealth = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "LevelMaxHealth", survivorName + ": The max health per level your survivor gets."), "levelMaxHealth"); LevelRegen = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "LevelRegen", survivorName + ": The regen per level your survivor gets."), "levelRegen"); LevelMaxShield = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "LevelMaxShield", survivorName + ": The max shield per level your survivor gets"), "levelMaxShield"); LevelMoveSpeed = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "LevelMoveSpeed", survivorName + ": The move speed per level your survivor gets"), "levelMoveSpeed"); LevelJumpPower = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "LevelJumpPower", survivorName + ": The jump power per level your survivor gets"), "levelJumpPower"); LevelDamage = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "LevelDamage", survivorName + ": The damage per level your survivor gets"), "levelDamage"); LevelAttackSpeed = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "LevelAttackSpeed", survivorName + ": The attack speed per level your survivor gets"), "levelAttackSpeed"); LevelCrit = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "LevelCrit", survivorName + ": The crit chance per level your survivor gets"), "levelCrit"); LevelArmor = new FieldConfigWrapper <string>(survivor.WrapConfigFloat( survivorName + "LevelArmor", survivorName + ": The armor per level your survivor gets"), "levelArmor"); AllFields = new List <IFieldChanger> { BaseMaxHealth, BaseRegen, BaseMaxShield, BaseMoveSpeed, BaseAcceleration, BaseJumpPower, BaseDamage, BaseAttackSpeed, BaseCrit, BaseArmor, BaseJumpCount, LevelMaxHealth, LevelRegen, LevelMaxShield, LevelMoveSpeed, LevelJumpPower, LevelDamage, LevelAttackSpeed, LevelCrit, LevelArmor }; }
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 }; }