#roll #expressions #dice-roll #parser #d-d #die #check

critfail

一个用于解析和掷骰D&D 5e表达式库。

1个不稳定发布

0.3.0 2020年5月10日

#15#die

自定义许可证

62KB
1K SLoC

Critfail

一个用于解析和掷骰D&D 5e表达式库。

用法

将此添加到您的Cargo.toml中

[dependencies]
critfail = "0.3"

查看文档以获取用法和示例。


lib.rs:

评估和掷骰D&D 5e表达式。

RollExpression特质提供处理各种掷骰的方法。 Roll提供最简单的文本输入、文本输出接口,用于掷骰表达式并打印结果,而不考虑掷骰的类型。

use critfail::{RollExpression, Roll};

let check = Roll::new("r-3").unwrap();
let check_outcome = check.roll();
print!("{}", check_outcome); // eg. "11"
print!("{:?}", check_outcome); // eg. "(14)-3"

let damage = Roll::new("2d8+6").unwrap();
let damage_outcome = damage.roll();
print!("{}", damage_outcome); // eg. "13"
print!("{:?}", damage_outcome); // eg. "[2+5]+6"

let attack = Roll::new("r+1?2d6+4").unwrap();
let attack_outcome = attack.roll();
print!("{}", attack_outcome); // eg. "10 ? 16"
print!("{:?}", attack_outcome); // eg. "(9)+1 ? [6+6]+4"

为了程序性地处理Roll的结果,掷骰表达式被分为Check掷骰、Damage掷骰和Attack掷骰,每种都有其自己的结果类型,可以提供确定每个结果分数和组成的方法。

功能

  • wasm-bindgen:在编译wasm32目标时启用此功能,否则随机数生成将不起作用。

依赖关系

~2.6–4MB
~70K SLoC