更好的武器

更好的武器

Better Weapons 是 Better 系列的一部分,该系列没有依赖项。Weapon Realizer REBORN!无需编辑 JSON,LBX 和 SNUBS 将默认使用聚类!

游戏玩法

更好的武器:武器实现者 重生! 适用于1.9.1版本,无需其他模组。 [url=https://discord.gg/AMwb3BkEqV]Better Combat Discord 服务器(在此报告错误)[/url]

更好的武器

BT-WeaponRealizer 的现代复兴版,适用于 HBS BATTLETECH。 恢复并改进武器行为:每次射击的差异、距离塑造、卡壳、过热互动等。

制作人员

  • 原始概念和代码:Joel Meador("武器实现者")
  • 先前的公开版本发布与维护者:janxious (BT-WeaponRealizer)
  • 复兴与现代化:更好的武器维护者

特色功能

  • 每次射击伤害浮动(高斯分布,截断至安全边界)。
  • 基于距离的伤害调整:
    • DBV: 向最大射程平滑递减(限定在底限与1.0之间)。
    • RDBV: 从最小范围到最大范围的平滑递增(非常适合远程导弹)。
  • 过热交互 通过 OverheatedDamageMultiplier(攻击者/目标感知)。
  • 热量作为普通伤害 对车辆/炮塔/建筑物(可配置的乘数)。
  • 热量衍生额外伤害(标签驱动;不改变实际热量)。
  • 武器卡壳 包含每把武器的倍率、卡壳解除检查和用户界面标记。
  • 集群冲击: LB-X短管PPC 已直接编码。

注意: 标签仍然适用于距离/干扰/热行为,但旧的 集群 标签不再使用(LB-X 和 Snub 已在代码中处理)。

安装指南

  1. 下载最新的发布压缩包,并将BetterWeapons文件夹解压到: ...\BATTLETECH\Mods\
  2. 启动游戏一次。模组将生成: Settings.defaults.json Settings.last.json
  3. (可选) 创建或编辑 Settings.json 以自定义行为。

日志文件: Mods\BetterWeapons\BetterWeapons.txt(在设置中开启"调试"以获取详细日志) 要求: ModTek;.NET Framework 目标版本 v4.7.2(与捆绑项目匹配)。

配置 (Settings.json)

下面的倍数是分数(0.10 = 10%)。

**示例设置.json**
{
  "Debug": true,
  "SimpleVariance": true,
  "DamageVarianceDefault": 0.25,
  "StandardDeviationPercentOfSimpleVariance": 0.75,
  "DistanceBasedVariance": true,
  "DistanceBasedVarianceMaxRangeDamageMultiplier": 0.10,
  "AC_DistanceMultiplierDefault": 0.10,
  "COIL_DistanceMultiplierDefault": 0.10,
  "Flamer_DistanceMultiplierDefault": 0.10,
  "Gauss_DistanceMultiplierDefault": 0.10,
  "Laser_DistanceMultiplierDefault": 0.10,
  "SRM_DistanceMultiplierDefault": 0.10,
  "MG_DistanceMultiplierDefault": 0.10,
  "PPC_DistanceMultiplierDefault": 0.10,
  "LBX_DistanceMultiplierDefault": 0.10,
  "SnubPPC_DistanceMultiplierDefault": 0.10,
  "ReverseDistanceBasedVariance": true,
  "ReverseDistanceBasedVarianceMinRangeDamageMultiplier": 0.10,
  "LRM_DistanceMultiplierDefault": 0.10,
  "OverheatedDamageMultiplier": true,
  "HeatDamageAppliesToVehicleAsNormalDamage": true,
  "HeatDamageAppliesToTurretAsNormalDamage": true,
  "HeatDamageAppliesToBuildingAsNormalDamage": true,
  "HeatDamageApplicationToVehicleMultiplier": 1.5,
  "HeatDamageApplicationToTurretMultiplier": 1.5,
  "HeatDamageApplicationToBuildingMultiplier": 1.5,
  "Jamming": true,
  "JamChanceMultiplier": 1.0
}

该模组还会写入 Settings.defaults.json Settings.last.json。 如果启用了 GeneratedSettingsFilesReadonly,这些文件可能是只读的——请始终编辑 Settings.json

武器标签(供内容创作者使用)

距离塑形

  • wr-variance_by_distancewr-variance_by_distance-<X> DBV (随最大距离衰减)。X 是一个浮点数斜率/速率。下限来自家族默认值。
  • wr-reverse_variance_by_distancewr-reverse_variance_by_distance-<X> RDBV(在最小射程附近降低,向最大射程增长)—— 对LRM来说是理想的。

热量衍生的额外普通伤害(不会改变热量施加)

  • wr-heat_damage_mult-<X> — 始终
  • wr-heat_damage_mult_attacker-<X> — 仅当攻击者过热时
  • wr-heat_damage_mult_target-<X> — 仅当机甲目标过热时

干扰

  • wr-jammable_weapon — 使非自动炮武器有资格发生卡弹(自动炮默认即可卡弹)。
  • wr-jam_chance_multiplier-<X> — 每把武器的卡壳几率乘数(浮点数)。
  • wr-damage_when_jam — 卡壳时武器会受损/损毁,而不仅仅是无法使用。

集束射击

  • 无需标签:LB-X短管PPC的集群效果是内置的。

运作原理(顺序与数学)

伤害计算流程(按顺序)

  1. 简单方差: 在*[dps − 方差, dps + 方差]*范围内进行高斯分布滚动。 每发子弹缩放应用一次:调整值 = 原始伤害 / 每发伤害
  2. DBV(距离衰减): 从地面开始平滑归一化形状 → 1.0,随着你向最大范围移动。
  3. RDBV(反向): 平滑形状从地板 → 1.0,随着你从最小范围移动到最大范围。
  4. 过热乘数: 使用过热伤害乘数(攻击者/目标感知)。
  5. HeatDamageModifier: 根据标签增加来自热量的额外普通伤害。
  6. HeatAsNormalDamage: 对车辆/炮塔/建筑应用热量作为普通伤害(乘数)。

距离塑造公式

shaped = atan( (π/2) * slope * r ) / (π/2)   // 归一化到 0..1
mult   = Lerp(floor, 1.0, shaped)            // 限制在 [floor, 1.0] 范围内
DBV:  r = (最大范围 − 距离) / 最大范围
RDBV: r = (dist − MinRange) / (MaxRange − MinRange)

兼容性与冲突

  • 专为原版HBS BATTLETECH设计,需搭配ModTek使用。
  • 与修改相同伤害/卡弹路径的模组冲突(例如,旧版WeaponRealizer,部分弹药大修模组)。请相应调整加载顺序。

故障排除

  • 没有日志? 请在Settings.json中设置 "Debug": true。检查 Mods\BetterWeapons\BetterWeapons.txt
  • 设置被忽略? 编辑 Settings.json(不是默认/上次的)。
  • 范围效果缺失? 楼层是分数(使用 0.10,而非 10)。
  • 堵塞从未清除? 重新审视 wr-jam_chance_multiplier-<X> 和飞行员炮术技能。
  • 保存设置时出现只读错误? 禁用 GeneratedSettingsFilesReadonly 或让模组在首次运行时重写文件。

更新日志(复兴亮点)

  • 重写了距离计算(标准化反正切,有界地板 → 1.0)。
  • 修复了双重缩放;方差每次射击仅应用一次。
  • LB-X 和 Snub PPC 的集群冲击已内置(无标签)。
  • 通过标签添加了基于热量的额外伤害。
  • 已切换至Unity RNG以提升速度;移除了加密开销。
  • 使用DataManager就绪检查进行延迟预计算。
  • 简化的设置(分数),强大的文件输入/输出,可防护的日志记录。

贡献指南

欢迎提交问题和拉取请求。保持更改专注且有文档记录;包含修改前后的日志(启用调试模式)。对于新增的标签/设置,请更新此页面并提供合理的默认值。

许可证

本项目借鉴并构建于原版Weapon Realizer(由Joel Meador开发)及其后续由janxious完成的工作之上。 请参阅存储库中的 许可证 以了解 更好的武器 的当前条款。如果您是原作者/维护者,并对署名或许可有任何疑问,请提交一个问题。

优化系列:

[url=https://www.nexusmods.com/battletech/mods/626]Better Combat at BattleTech Nexus - Mods and Community (nexusmods.com)[/url] (功能齐全的一体化模组)

Better Combat 中未包含的模组:

[url=https://www.nexusmods.com/battletech/mods/696]Better Simulation at BattleTech Nexus - Mods and Community (nexusmods.com)[/url] - 空投成本、弹药空投成本、机甲维护按成本/吨计算、日期 [url=https://www.nexusmods.com/battletech/mods/700]Better Vehicles at BattleTech Nexus - Mods and Community (nexusmods.com)[/url] - 为"小家伙们"提供的升级 [url=https://www.nexusmods.com/battletech/mods/703/]Better Performance at BattleTech Nexus - Mods and Community (nexusmods.com)[/url] - 更快更好更强 (临时包含来自BTPF的修复,直到新版本稳定)