我正在开发一款小型战术RPG,最初让动作应用直接伤害真的让我苦恼很多。

它看起来在早期很方便
攻击动作播放动画,将伤害应用于目标角色,并检查死亡,进而推进战斗进程,实现了“一个动作完成”这样的效果。

但之后随着新动作不断被添加,每个新动作都要跟随一大堆游戏规则。最终我只好将处理逻辑拆分开来。

现在,动作用于了描述动作意图
谁正在行动,哪张格子是目标,会不会有其他人被击中...

一个独立的解析器则会处理实际战斗结果。

说实话,这样做简直改善了多少次我要解决的问题。

近战和远程攻击虽然仍能有所不同,但它们的规则都在同一个层面上进行。
如果破坏了什么东西,那时候问题通常都是哪个部分出现了问题。

这是一项小的改变,但这也让我觉得工程真正可扩展了起来,之前还只能用“希望运气好”的情况来维持。
把简易版本推到了 GitHub 上,如果有谁想进一步探索,可以在这里查看
https://github.com/godotlabsio/godot-tactical-rpg-lite