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