铁锈战争模组工坊
全部教程创作工具English

用两个阈值做稳定的应急状态

把持续条件、状态记忆与恢复条件组合成简单状态机

先写两种状态和转换条件

战车有巡航与应急两种状态,生命低于 50% 进入应急,修复到 80% 才退出,两个不同阈值留出缓冲区,避免生命在临界值附近波动时反复切换

巡航 / Cruise
  └─ HP < 50% → 应急 / Emergency
应急 / Emergency
  └─ HP ≥ 80% → 巡航 / Cruise

进入条件只在需要时成立

not memory.emergency 让已经进入应急的单位不再重复执行进入动作,动作同时更新状态和速度,并发出一条可观察消息

[hiddenAction_enterEmergency]
autoTrigger: if self.hp < self.maxHp * 0.5 and not memory.emergency
setUnitMemory: emergency=true
setUnitStats: movespeed=1.2
showMessageToPlayer: 应急模式开启 / Emergency mode enabled

恢复路径要单独写清楚

退出动作要求已经在应急状态且生命达到八成,恢复基础移动速度,不能只改布尔值却忘记还原之前修改的属性

[hiddenAction_leaveEmergency]
autoTrigger: if self.hp >= self.maxHp * 0.8 and memory.emergency
setUnitMemory: emergency=false
setUnitStats: movespeed=0.7
showMessageToPlayer: 已恢复巡航 / Cruise mode restored

测试完整循环与边界

依次观察 51%、49%、60%、81% 的生命状态,期望只在 49% 附近进入一次、81% 附近退出一次,再连续做两轮,检查消息、速度和弹种是否都恢复

动手练习

增加一张状态转换表,列出每次转换必须修改和恢复的所有数值

打开互动教程,下载配套模组