战斗撤销

创作者: Inggom0111
已更新:2026-05-20 11:37:25
76KB

关于此 MOD

添加战斗中撤销系统。按Z撤销上一张牌/药水,按Shift+Z回退整个回合。基于快照机制,可恢复生命值、格挡、能量、牌堆、能力、怪物意图及随机数状态。
StS2 撤销
拿回来——在战斗中撤销卡牌打出和回合操作






StS2 撤销功能可让你回退一次出牌、使用药水或整个回合。
在《杀戮尖塔2》的战斗中,把牌点错了目标?
使用能力前没抽牌?关键时刻把关键药水给烧了?
按下 Z 然后战斗瞬间回到那之前的那一刻。
行动 — 生命值、格挡、能量、抽牌/弃牌顺序、怪物意图、随机数
动画,等等。




在STS2测试分支上?

该文件(Sts2UndoMod-v0.0.6.zip是
稳定- 分支构建版本
若您已选择加入《杀戮尖塔2》Beta测试,
Steam(右键点击《杀戮尖塔2》→ 属性 → 测试版),获取
测试分支版本构建——打开 文件 点击此模组页面标签
并下载 Sts2撤销模组-v0.0.6-测试版.zip 来自
好了。在测试分支上运行这个稳定的动态链接库(反之亦然)
投掷 缺少方法异常 首先
卡牌无法使用,因分支间STS2接口发生变更。

这两个文件存在,只是因为《杀戮尖塔2》目前有两个并行的公开版本。
分支API略有差异。 一旦 STS2 更新至 v0.104.0+ 版本
(此文本为系统提示或技术说明,通常出现在游戏补丁或版本管理描述中) 其公共稳定版分支,此稳定文件将针对...重新发布。
新的API与这两个文件将合并回一个
下载。
如果你不选择参与Beta测试,这就是你唯一的文件
需要。




按下 Z 键的作用


  • 单步撤销 — 弹出最新的快照并还原
    最后一张卡牌/药水使用前的精确战斗状态
    回合结束
  • 回合撤销 — Shift+Z 全部回溯
    一口气回到当前玩家回合的开始
  • 战斗中撤销按钮 — a ↶ Z 按钮
    出现在能量显示旁边;点击它效果相同
    按Z键
  • 仅限战斗 — 撤销功能仅在激活状态下生效
    战斗中。地图操作无法撤销,死亡动画结束后也无法撤销。
    完成,跨界面不可撤销
  • 30秒快照记录 — 每场战斗最多保留30个先前状态
    内存中;较早的快照将被自动清除



操作方法

这个模组占用 深度快照 战斗状态在任意一方
这些行动开始:


  • 卡牌打出(打出卡牌)
  • 结束回合(结束玩家回合)
  • 使用或丢弃药水 (使用药水,
    丢弃药水游戏动作)

按 Z 弹出最近一次快照并恢复:


  • 生命值、格挡与能量
  • 手牌、抽牌堆、弃牌堆、放逐堆(含顺序)
  • 所有生物的力量与叠加值
  • 遗物、药水与宝珠
  • 下一回合怪物意图
  • 随机数状态已保存 — 下次抽卡结果将与此一致。
  • 视觉状态 — Spine动画、颜色调制、碰撞框与悬浮提示
    全部聚焦重置,以匹配恢复后的帧画面

这是一个 快照模式,而非命令或逆向操作方式。
为《杀戮尖塔2》中所有状态交互选择其逆效果(易伤)
通过X遗物施加 vs. 通过Y能力施加 vs. 通过Z卡牌命中施加等效果不)
写实风格,因此该模组采用捕获与还原机制。




快捷键


  • Z — 撤销一步(上一张卡牌/药水/
    结束回合)
  • Shift+Z — 撤销至当前起点
    回合

您也可以点击 ↶ Z 出现的按钮
能量显示旁边。




主要特性


  • 单键撤销 — 最常用情形一键搞定(上一次
    动作)
  • 回溯回合 按Shift+Z可进行全回合回退,随时按需使用。
    重新规划整个回合
  • 本地化撤销按钮 — 战斗中按钮,中文
    提示
  • 死亡安全 — 死亡动画正常播放完毕;你无法操作
    跨越死亡帧
  • 轻量级捕捉 — 遗物捕获使用游戏自带机制
    可变克隆 而非完整映照
    深度克隆,使每张牌的使用开销近乎为零。
  • 视觉保真度 — 复活敌人、蜈蚣式尸堆,以及
    所有悬停提示均正确还原;无残留"死亡"覆盖层或卡死现象。
    撤销后的名牌
  • 功率状态保真度 — 特殊属性专属力场(凯撒
    蟹王背击(朝向等)干净利落地往返,确保视觉效果
    撤销后伤害倍率不再不同步
  • 成本修正精度 拾取牌
    CardEnergyCost._localModifiers (中文翻译:能量消耗卡._本地修饰符) 来自“猛扑”
    (猛扑不屈不挠无情)
    或“浩劫”现在能够完整地往返穿梭于撤销,使得“下一次攻击/技能消耗为0”。
    效果在回溯消耗它的出牌后重新生效
  • 相变保真度 — 实验体 (实验体)
    阶段1→阶段2播放原版过渡动画
    代替常规死亡动画,显示单体悬停瞄准
    正在复用NCreature节点,血条重新出现
    第二阶段如期开始(跨阶段撤销功能仍可使用)
    (设计上不支持)
  • 死亡复生的小兵支援 — 拥有幻象之力的随从
    (幻想) 例如「齿眼」
    (有牙的眼睛) 不再导致游戏卡死
    死亡。香草的复活流程保持原样不变,单体目标悬停
    复活后,目标锁定会作用于复用的NCreature。
    复活后生命条修复程序已修正原版不一致的问题
    动画退出/动画进入生命周期,使血条在死亡时可靠隐藏
    复活时重新出现(跨越死亡本身的撤销仍不支持)
    按设计)



安装


  • 下载 Sts2UndoMod-v0.0.6.zip 从此页开始
  • 将里面的两个文件解压出来Sts2UndoMod.dll
    和 Sts2UndoMod.json进入
    mods/Sts2UndoMod/ 屠戮之路的文件夹
    安装《尖塔2》
  • 启动游戏
  • 开始战斗——按下 Z 在任意卡牌之后
    进行、使用药剂或结束回合将解除此状态

模组会生成一小段日志
%APPDATA%\Sts2UndoMod\probe.log 开启
Windows(或 ~/.config/Sts2UndoMod/probe.log 开启
Linux/macOS)。反馈问题时请附带此信息。




需求


  • 启用模组支持,杀戮尖塔2
  • 此文件基于以下版本编译: 稳定 STS2 分支
    (v0.103.x)。如果您已选择参与STS2测试版
    在Steam → STS2 → 属性 → 测试版中,下载
    -beta 改用文件——稳定的dll会抛出错误
    缺失方法异常 在测试分支中
    由于STS2 API变更
  • 仅限单人游玩 — 不支持多人模式



来源与许可




=== 更新日志(复制到Nexus“更新日志”字段,适用于v0.0.6版本)===

v0.0.6 — 2026年4月30日

- 死亡复活类召唤物支持。带有幻象力量(환상)的召唤物(例如长牙之眼(이빨 달린 눈))在死亡时曾导致游戏卡死,原因在于我们的死亡动画替换逻辑在幻象力量的“死亡后/复活移动”钩子触发复活前,提前断开了该实体的NOCreature连接。现已在调用死亡动画时扫描实体.powers中具有复活类标识(幻象、复活、重生、免死、无敌死亡、轮回)的能力,并将其死亡流程交由原版系统处理,使能力自身状态机驱动视觉表现周期。
撤销后,对复活技能随从执行完整目标重置。原版死亡+复活流程可能导致Hitbox.MouseFilter=Ignore / FocusMode=None 以及 ToggleIsInteractable=false——仅依赖IsFocused的恢复方式对普通复活单位有效,但无法解决玩家无法单独选中复活随从的问题。现在ResetTargetingState新增fullRestore标志(复活技能随从为true),同步恢复DeathAnimDelayPatch.CollectAndReset中的碰撞体与交互状态。
- 血条可见性修正器。原版`NCreatureStateDisplay`的`AnimateOut`/`AnimateIn`在幻力复活周期中存在竞态条件——有时会导致血条卡在可见状态(因HP=0而显示“死亡”),或复活后卡在隐藏状态。撤销按钮原有的100毫秒轮询现改为遍历复活中的生物,强制修正完全卡死的情况(死亡时`Modulate.A=1`→隐藏;存活时`Modulate.A=0`→显示),但跳过中间过渡状态(0<A<1),避免与原版进行中的动画冲突。
- 修复复活能力生物在撤销操作时跳过身体操控的问题。使用CreatureVisualRefresher强行为所有生物写入身体变换/脊柱姿态/色调/覆盖层,与激活的能力无关;对于幻象能力的随从,该操作与原生复活视觉效果冲突,导致“撤销后身体消失”或“视觉效果异常”。现在身体/脊柱/色调操控仅在复活能力生效时触发:目标重置与意图刷新仍正常执行。
撤销按钮现支持拖拽移动。战斗中右键拖拽↶Z按钮即可调整位置;新位置将保存至%APPDATA%/Sts2UndoMod/settings.json,并在下一场战斗中生效。删除该文件可恢复默认设置。
- 修复“快速连按Z后卡片短暂无法点击”的问题。EphemeralNodeCleaner 此前会释放 NMouseCardPlay(其中包含 NPlayerHand._currentCardPlay),导致字段中残留已销毁的 Godot 包装器。现 EphemeralNodeCleaner 会跳过所有名为 CardPlay 的节点,若 EndTurnStateRefresher 发现 _currentCardPlay 指向已释放的实例,则将其显式置空,使游戏能在下次点击时重新创建该实例。


=== 游戏版本(粘贴到 Nexus 版本兼容性字段中)===

STS2 v0.103.x(稳定版)。基于公开发布的稳定版本构建(2026年4月30日)。如需体验测试选入分支(v0.104.0+),请改用Sts2UndoMod-v0.0.6-beta.zip。

使用 Xmod 解锁 杀戮尖塔2 的全部潜力 — 今天就探索这些顶级 MOD!