模拟修复 - 高级自动战斗

模拟修复 - 高级自动战斗

该模组旨在通过移除伤害计算中的大部分随机因素,并基于部队领袖的领导力添加伤害和防御修正,来改进战斗模拟(包括玩家派兵和AI之间的战斗)。

游戏玩法

我们回来了!由 MajikalExplosions 更新,并获得许可。

我已没有时间继续维护这个模组;如果有人想接手,请随意。

对于那些想要类似内容的玩家,或许可以考虑这个模组

描述仍在更新中,可能未反映模组的最新版本。
(我发布的)置顶帖你或许该看看,不过随你便吧,我想。

关于

该模组将各派系部队分别加入其专属士兵列表,并按阵型进行划分。
一系列修正值决定了攻击者伤害与防御者防御力的调整幅度。

玩家可选择在当前地点进行战斗,或让战斗在随机生成的地点展开。

战斗将在随机生成的地点进行,玩家队伍与敌方阵营将被部署在战场对立两侧。

玩家可选择在当前地点进行战斗,或让战斗在随机生成的地点展开。

战斗将在随机生成的地点进行,玩家队伍与敌方阵营将被部署在战场对立两侧。

在原版游戏中,会从每个队伍中随机选择一个单位,一个攻击,另一个防御。
计算过程非常简化,伤害主要由随机数决定。
这个模组旨在消除随机性。

原版配方

剧透: 显示

攻击方力量和防御方力量 - 数值根据部队等级计算,英雄单位获得50%加成,骑兵单位则获得20%加成。 strikerAdvantage - 该数值基于战斗类型、结算(若为攻城战则使用城墙等级)以及队伍领袖的战术技能(计算公式为 DefaultSkillEffects.TacticsAdvantage.PrimaryBonus * (战术技能值 / 100)) 伤害 = 50 * (攻击者力量 / 防御者力量) * 攻击优势

Mod公式(1.3.0版本前)

剧透: 显示

打击者优势 - (数值与原始版本相同) 该值基于战斗类型、定居点(如果是攻城战,则使用城墙等级)以及队伍领袖的战术技能(由 DefaultSkillEffects.TacticsAdvantage.PrimaryBonus * (战术技能 / 100) 计算得出) troopNumbersAdvantage - 通过将攻击方部队数量除以防守方部队数量计算得出。数值受NumbersAdvantageModifier HighCap和LowCap的限制 攻击者力量 - 该值根据部队等级计算,英雄单位获得50%加成,骑兵单位获得20%加成。每提升一个部队等级额外增加5%。 攻击者战术修正 - 部队阵型当前所选战术的攻击加成 attackerSiegeModifier - 如果部队是攻城防御者,则从 SiegeDefendersModifiers 添加的攻击加成 attackerExtraPowerFromLeaderPerks - 来自战术技能(如战术优势或伏击专家)的额外力量。 攻击方领袖攻击修正 - 来自领袖领导力和战术技能等级的进攻加成。 公式为 1 + (领导力技能等级 * (攻击加成 - 1) / 100) + (战术技能等级 * (攻击加成 - 1) / 100) makesSenseToAttackUnitModifier - 如果攻击部队不合逻辑,伤害将减少90%(修正值设为0.1) 最终攻击力 = 攻击力 * 攻击方战术修正 * 攻击方围城修正 * 攻击方领袖加成额外攻击力 * 攻击方领袖攻击修正 * 攻击单位合理性修正 防御者力量 - 数值根据部队等级计算,对英雄单位提供50%加成,若部队为骑兵则提供20%加成。每提升一个部队等级额外增加5%。 防御战术修正值 - 部队阵型当前所选战术提供的防御加成 defenderSiegeModifier - 如果部队是攻城防御者,则从 SiegeDefendersModifiers 添加防御加成 防御者领袖防御修正值 - 来自领袖领导力和战术技能等级的防御加成。计算公式为 1 + (领导力技能等级 * (防御加成 - 1) / 100) + (战术技能等级 * (防御加成 - 1) / 100)。 最终防御力 = 防御力 * 战术修正 * 围城修正 * 将领防御修正 伤害 = 50 * (最终攻击力 / 最终防御力) * 攻击方优势 * 部队数量优势

兼容性

该模组应与大多数其他模组兼容。
Harmony补丁仅用于在后台运行部分代码,不会修改任何原版代码,除了替换实际计算模拟伤害的单一方法外。
唯一可能与此模组冲突的是那些修改了'ApplySimulationDamageToSelectedTroop'方法的模组。

异常: 部队大修是唯一可能破坏此模组的类别 - 使用它们需自行承担风险。如果有不兼容的情况,请随时将其添加到错误选项卡中,并附上详细信息(部队大修模组的名称、错误细节以及您当时在做什么等)。我会尽力解决,但可能无法保证一定能修复。

修饰符

请注意,这些数字大多是随意设定的,可能会有所变动。在未来的版本中,这些数值将可配置,并会添加更多战术。

剧透: 显示

战术

战术由队长(如果存在)在每轮模拟开始时随机选择。
RNG决定有多少阵型会改变战术,然后随机选择战术。 检查config.json以获取战术分解。如果需要,您可以编辑和/或添加新的战术。

派对领袖

一些领袖技能也会影响模拟 领导力:每100点技能值提升5%攻击与防御(例如:50点技能值将提供2.5%加成)
战术:每100点技能值提升5%攻击与防御(例如:50点技能值将提供2.5%加成)

1.3.0版本前的技能

战术技能树中的大部分模拟特性已实现(除了“伏击专家”特性,一旦我弄清楚如何获取战斗地形类型就会立即实现):

  • 战术优势:所有部队伤害+5%
  • 铁锤与铁砧:骑兵单位对弓箭手伤害+50%
  • 方阵战术:步兵单位对骑兵(及当前版本弓骑兵)伤害+50%
  • 伏击专家:森林地形作战时远程部队对所有敌人伤害+60%

1.3.0+ 特权

所有相关的战术和侦察技能均已实现。此模组还修复了基础游戏中这些技能实现中的错误。

部队等级

每个部队等级都会为部队的基础力量增加5%。
只要正确设置了CharacterObject.Tier,它应该能与其他添加比原版更高等级部队(7级及以上)的模组良好兼容。

其他

  • 将攻击者伤害降低90%的修饰符(这意味着所选攻击者能够抵达防御者并在战场上攻击他们毫无意义):
    • 步兵部队试图攻击处于散兵战术中的弓箭手,而敌方仍有可供弓箭手躲藏的步兵
    • 后续可能还会添加更多内容...
  • 兵力数量优势会被计算,这意味着人数处于劣势的部队造成的伤害减少(上限为-60%),而人数占优的部队则造成额外伤害(上限为+50%)。

来源

查看源代码(1.3.0版本之前)请访问: bannerlord-advanced-autoresolve
1.3.0+版本的源代码可以在这里找到。

注释

该模组并非旨在增强自动战斗以让玩家更轻松。
相反,该模组试图为战斗模拟增添更多复杂性,从而使结果更加合理。

要安装,请将这些文件放入您的 Modules/ 文件夹中,别忘了解锁 AdvancedAutoResolve/bin/Win64_Shipping_Client 内 .dll 文件的锁定。

配置包含一些在 AdvancedAutoResolve/bin/Win64_Shipping_Client/config.json 中可用的选项。