About this mod
Lets you change skill effects and the formula for using them.
- Permissions and credits
- Changelogs
In native the skill effects scale linearly, usually with pretty minor effects, which means there isn't much difference between high and low skill units. This mod lets you customize the skill effects scaling. Usually they are simply bonus*level, either added or multiplied with the base value. With this mod you can instead use a custom expression for each skill effect.
In skills.txt the skill effects are listed Name_bool_float_expression.
Name is the skillEffects name.
bool determines whether to add or multiply with the base value, if true will apply *=0.01 to the skill level.
float is the bonus value, if you only want to increase/decrease skill effects you only need to change this value, DO NOT SET TO ZERO.
expression is the important part. This is parsed, replacing bonus with the float value and level with skill level. This is then evaluated using Expression.Evaluate() from ExpressiveParser which means it should handle most regular expressions and mathematical functions.
Examples:
EffectOneHandedSpeed_true_0.07_(100 + level*bonus*3/4) would add a base 100% weapon speed to onehanded weapons and slightly decrease the level scaling.
EffectTwoHandedDamage_true_0.16_Pow(level, 2)*bonus would give levels much higher effect (and probably make two handers one shot everything).
EffectSurgeonSurvivalBonus_false_0.01_50 would set the base surgeon survival chance at 50% but remove levels effect.
EffectCharmRelationBonus_true_4000.0_bonus/level would decrease the skill effect as the level gets higher
Currently changes combat skills: level*bonus*Log(level, 2.71828)/3, increases skill effect gain with skill level whilst remaining within reasonable ranges. Graph showing effect
You should experiment with or change the skills to your liking. My preference is level*bonus*level*0.02 on all combat skills. This massively increases levels effect without breaking the game(balance is a bit questionable though).
The game initializes skills when loading a save, this mod patches DefaultSkillEffects.InitializeAll() to use custom values for the skills. This mod reads skill.txt when the submodule is loaded(OnSubModuleLoad()) and when exiting to the main menu (OnGameEnd()). This means you can try out changes without closing the game by loading a save, exiting to menu and loading back in.
To apply the effects the mod patches AddToStat() (in SkillHelper). Instead of calling ExplainedNumber.Add or ExplainedNumber.AddFactor it uses the custom expressions to evaluate skill effect. The number received in AddToStat has already multiplied skill level with the bonus (and added eventual extra skill value). To get skill level this mod divides the received number with the bonus.
This mod should be save compatible and safe to add/remove at any time.
(FIXED IN 1.4.3)
Currently most skills effects don't work at all for non hero units due to a bug, they depend almost entirely on equipment.
Fixed using my other mod: Enable Unit Skills
Other modders feel free to do whatever you want with this mod.
Somewhat inspired by Tweakable Skills and Perks
Please consider checking out my other mods
In skills.txt the skill effects are listed Name_bool_float_expression.
Name is the skillEffects name.
bool determines whether to add or multiply with the base value, if true will apply *=0.01 to the skill level.
float is the bonus value, if you only want to increase/decrease skill effects you only need to change this value, DO NOT SET TO ZERO.
expression is the important part. This is parsed, replacing bonus with the float value and level with skill level. This is then evaluated using Expression.Evaluate() from ExpressiveParser which means it should handle most regular expressions and mathematical functions.
Examples:
EffectOneHandedSpeed_true_0.07_(100 + level*bonus*3/4) would add a base 100% weapon speed to onehanded weapons and slightly decrease the level scaling.
EffectTwoHandedDamage_true_0.16_Pow(level, 2)*bonus would give levels much higher effect (and probably make two handers one shot everything).
EffectSurgeonSurvivalBonus_false_0.01_50 would set the base surgeon survival chance at 50% but remove levels effect.
EffectCharmRelationBonus_true_4000.0_bonus/level would decrease the skill effect as the level gets higher
Currently changes combat skills: level*bonus*Log(level, 2.71828)/3, increases skill effect gain with skill level whilst remaining within reasonable ranges. Graph showing effect
You should experiment with or change the skills to your liking. My preference is level*bonus*level*0.02 on all combat skills. This massively increases levels effect without breaking the game(balance is a bit questionable though).
The game initializes skills when loading a save, this mod patches DefaultSkillEffects.InitializeAll() to use custom values for the skills. This mod reads skill.txt when the submodule is loaded(OnSubModuleLoad()) and when exiting to the main menu (OnGameEnd()). This means you can try out changes without closing the game by loading a save, exiting to menu and loading back in.
To apply the effects the mod patches AddToStat() (in SkillHelper). Instead of calling ExplainedNumber.Add or ExplainedNumber.AddFactor it uses the custom expressions to evaluate skill effect. The number received in AddToStat has already multiplied skill level with the bonus (and added eventual extra skill value). To get skill level this mod divides the received number with the bonus.
This mod should be save compatible and safe to add/remove at any time.
(FIXED IN 1.4.3)
Currently most skills effects don't work at all for non hero units due to a bug, they depend almost entirely on equipment.
Fixed using my other mod: Enable Unit Skills
Other modders feel free to do whatever you want with this mod.
Somewhat inspired by Tweakable Skills and Perks
Please consider checking out my other mods