骰子
你可以使用以下两种方法来描述一个骰子。
方法一:使用 ADVDice 类
当你需要完全控制掷骰逻辑,或者想要实现一些特殊的随机效果(例如加权骰子、从服务器获取随机数等),可以传入一个 ADVDice 对象。
ADVDice 类的参数如下:
| 参数名 | 类型 | 描述 |
|---|---|---|
name | string | 骰子的名称,会显示在检定提示中,例如“力量检定骰”。 |
roll | () => number | 一个返回随机整数的函数,代表一次投掷的结果。 |
例如,定义一个始终掷出最大值的“幸运骰子”:
typescript
const luckyDice = {
name: '幸运骰',
roll: () => 20, // 始终返回20
};方法二:使用 DiceExpression(推荐)
这是最简便的方式:直接用一个形如 mdn 的字符串来表示掷出 m 个 n 面骰子的点数总和。
- 基本格式:
{数量}d{面数},例如2d6表示投掷两个六面骰子并求和。 - 数量可以省略,省略时默认为
1。例如d6等价于1d6。 - 支持恒定修正:你还可以在表达式末尾附加
+或-加一个固定值,例如2d6+3或1d20-1,这种恒定修正会直接附加到骰子总和上。
示例:
d6:一个六面骰子(1~6)。2d4:两个四面骰子,点数加和(2~8)。3d6+2:三个六面骰子点数加和后再加2(5~20)。d20-1:一个二十面骰子减1(0~19)。