
TBS伤害倍数
一个专注于 Forge 1.20.1 的火把变阳光 (TBS) 附加组件。它只修复已确认的玩家拥有的 TBS 实现路径,这些路径的固定伤害忽略了玩家当前的 generic.attack_damage 修饰符。
TBS Damage Multiplied
一个专注于 Torches Become Sunlight(TBS)的 Forge 1.20.1 附加模组。它仅修复已确认的、由玩家拥有的 TBS 实现路径,这些路径的固定伤害忽略了玩家当前生效的 generic.attack_damage 修饰符。分类器刻意保持保守,旨在不改变原版战斗、无关模组、TBS 原生缩放路径以及未知路径。
伤害模型
对于已确认的固定路径,原始 TBS 数值 D 会成为一个合成属性基础值。玩家当前的修饰符会按照 Minecraft 1.20.1 的 AttributeInstance 顺序重放:
(D + sum(ADDITION))
* (1 + sum(MULTIPLY_BASE))
* product(1 + each MULTIPLY_TOTAL)
玩家普通的 ATTACK_DAMAGE 基础值不会被使用。主手 ItemStack 修饰符按操作类型由配置控制;默认排除其 ADDITION,包含其 MULTIPLY_BASE / MULTIPLY_TOTAL。来自效果、盔甲、Curios、遗物以及其他标准属性来源的修饰符会保留。实时的 AttributeInstance 永远不会被修改。
安全模型
- 分类依据是具体的伤害实现路径,而非武器。
- 只有
ServerPlayer拥有者/施法者才会被乘算;TBS 首领和 NPC 保持原样返回。 - 已知的原生 ATTACK_DAMAGE 路径和未知路径始终保持不变。
- 当被审计的调用点同时暴露目标/拥有者来源信息时,精简的 coremod 钩子会携带稳定的路径 ID 和目标/拥有者来源信息。每个线程的栈帧仅由其匹配的
LivingHurtEvent消费,并在hurt之后进行平衡,从而防止钩子与事件的双重应用,且不会跨越嵌套的伤害调用。 - 技能驱动的固定命中会在其被审计的
playerAttack -> hurt调用点被标记;其路径绝不会仅根据当前激活的 TBS 技能来推断。 - 真正的左键攻击会被排除,因为原版已经计算了其完整的攻击属性。
配置
通用 Forge 配置文件生成于 config/tbs_damage_multiplied-common.toml。每条固定路径都有普通的 ForgeConfigSpec.BooleanValue 条目,适用于通用 Forge 配置 GUI:
[paths.tbs.ice_crystal_hit]
enabled = true
addition = false
multiply_base = true
multiply_total = true
main_hand_addition = false
main_hand_multiply_base = true
main_hand_multiply_total = true
所有固定路径默认启用兼容性缩放,并禁用 ADDITION。主手 ADDITION 默认被排除,而主手 MULTIPLY_BASE 和 MULTIPLY_TOTAL 默认被包含;每一项都可以按路径进行更改。通用设置提供了一个总开关和可选的路径导向诊断。
Rosmontis Embrace 玩家辅助路径保留其原始的固定值 16F 作为基础值,仅重放 MULTIPLY_BASE / MULTIPLY_TOTAL;该路径始终忽略 ADDITION,因为固定的技能数值已经代表了完整的技能基础值。
审计目标
集成方式及确切的 coremod 调用点已针对本地的 torchesbecomesunlight-0.5.0-hotfix2.jar(其内嵌的模组元数据报告版本为 1.20.1-0.4.2)进行了审计。如果未来 TBS 的字节码发生变化,相关转换器会刻意大声失败,而不是静默地修补一条不确定的路径。
鸣谢
Torches Become Sunlight 由 free fish 及其贡献者创建。
本项目是非官方的兼容性附加模组,与 Torches Become Sunlight 开发者无关,也未获得其认可。
许可证
GNU General Public License v3.0。请参阅 LICENSE。
Torches Become Sunlight 以 GPL-3.0 分发。本项目以相同许可证发布。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。