战斗按钮
Estimated reading time: 5 minutes用途
maplebirch.combat.CombatAction 用于向原版战斗动作列表添加模组按钮,并为按钮补充对应的战斗反应文本。
按钮本身会通过原版的 generateCombatAction 显示;动作被选择后,框架会把 effect 注入到原版 effectsman 的对应动作区域中执行。
如需了解战斗反应和战斗对话,请参阅 战斗反应 和 战斗对话。
入口
可以一次注册多个:
最小示例
再写一个普通 Twine widget 处理实际文本和效果:
当玩家选中这个按钮后,$leftaction 会变成 myModQuickStrike。进入 effectsman 时,框架会在手部动作区生成并执行类似这样的片段:
配置字段
除 id、actionType 外,多数字段都支持函数。函数会收到 ctx 参数。
actionType
同一动作可以注册到多个动作列表:
effect
effect 用于填写动作被选中后要执行的 Twine 内容。推荐写成一个 widget:
也可以写成函数:
框架会自动为 effect 外层包上动作判断,并把对应动作变量设回 0,同时更新默认动作:
如果需要更复杂的默认动作、目标处理、技能消耗或文本分支,请放进你自己的 effect widget 中。
注入位置
原版的战斗反应集中写在 effectsman 中,但不同部位的动作大致分区。框架会把模组动作注入到对应大区:
leftaction/rightaction:手部动作区feetaction:脚部动作区mouthaction:嘴部动作区vaginaaction:阴道动作区anusaction:肛门动作区thighaction:大腿动作区penisaction:阴茎动作区chestaction:胸部动作区
这样左手动作的反应不会被丢到整段战斗文本末尾。
完整示例
注意事项
value不要和原版动作或其他模组动作重复,建议带模组名前缀。cond只建议做显示判断,不要在里面修改游戏状态。effect中可以写文本,也可以调用宏、修改变量、消耗体力、改变 NPC 状态。- 如果动作只适用于特殊战斗,请设置
combatType。
