编写新的 TRPG 规则
本节内容
本节将介绍如何为你的海豹核心编写和添加一个新的 TRPG 规则。包括编写规则模板和编写指令。
本文中将涉及使用 JavaScript 与 TypeScript 编写插件的内容。如果你尚未阅读 常见用法示例,请先阅读它。
在本节中,假设我们创建了一个叫做《摸鱼大赛》的 TRPG 规则,简称为 fish 规则。
补充:规则详细内容
角色属性
每个角色有 2 个关键属性,即脸皮厚度和摸鱼技能等级。取值分别为 1 - 3,通过投掷 D3 来生成。
此外有生命值,生命值上限 = 脸皮厚度 * 2。
游戏规则
简单说:这是一个类 21 点游戏。
玩家的目标是尽可能使得自己的积分接近 21,但不能大于等于 22(因为摸到 22 就不存在了!)。
开始游戏时,每个玩家创建一个角色,可以互换交换一次属性点位置。
每一轮游戏中,每个玩家都要决定“摸鱼”和“不摸鱼”。如果选择摸鱼,获得 d6 + d(摸鱼等级) 的积分;如果选择不摸鱼,则跳过本回合。
如果选择摸鱼后累计积分超过 22,玩家自动消耗 1 点生命值、随机弃牌 1 张。如果累计积分仍大于 22,那么重复以上过程直到积分小于 22 或生命值归零。
如果生命值归零,此玩家就无法再摸鱼了。
当连续两轮所有玩家都选择不摸鱼时,游戏结束。积分最大的人取胜,如果积分相同,生命值更大的人取胜。
规则模板是什么?有什么功能?
规则模板是海豹核心中几种功能的整合发展,包括角色卡、属性同义词、自动修改群名片等。
具体地说,规则模板能为 fish 规则提供以下功能:
在
set
指令 中注册这个游戏系统,可以直接使用set fish
打开扩展并设定默认骰子为 D6;在
st
指令中添加 fish 规则的角色卡,这包括:(对于以下内容,可以参考海豹核心内置的 CoC 7th 系统与 D&D 5e 系统角色卡的功能)- fish 规则自己的技能默认值
- fish 规则的二级属性计算公式
- fish 规则的属性同义词
- fish 规则的角色卡属性展示顺序
在
sn
指令 中添加 fish 规则的自动群名片格式,可以使用sn fish
来开启。
那么,要怎么做?
你需要根据规则编写规则模板,并把规则中的动作编写成指令。
对于 fish 规则来说,指令应该实现以下动作:
- 制卡:投掷 2 个 D3,生成角色的属性点;
- 摸鱼:投掷 D6 + D(摸鱼等级),计算总积分,按规则扣除生命值;
- 不摸鱼:跳过此轮;
另外,对于一个合适的指令,它也应提供帮助文本。
以上的规则模板和指令都可以在同一个 TypeScript 或 JavaScript 插件文件中完成。我们已经写了一个比较完善且有详细注释的示例,以供参考:
如果你希望直接尝试以上插件的效果,可以从以下链接获取经过编译的 JavaScript 文件: