From 2778db81c6973078dc0e8e04c4bb711143aef84d Mon Sep 17 00:00:00 2001 From: 简律纯 Date: Fri, 12 Sep 2025 18:19:16 +0800 Subject: feat: add new reroll modifiers for enhanced dice functionality --- src/parser.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/parser.rs') diff --git a/src/parser.rs b/src/parser.rs index 50231c0..20cd992 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -126,6 +126,16 @@ impl DiceParser { .map_err(|_| DiceError::ParseError("无效的条件重投数值".to_string()))?; Ok(DiceModifier::RerollOnce(num)) } + Rule::reroll_until => { + let num = inner.into_inner().next().unwrap().as_str().parse::() + .map_err(|_| DiceError::ParseError("无效的直到重投数值".to_string()))?; + Ok(DiceModifier::RerollUntil(num)) + } + Rule::reroll_add => { + let num = inner.into_inner().next().unwrap().as_str().parse::() + .map_err(|_| DiceError::ParseError("无效的重投并相加数值".to_string()))?; + Ok(DiceModifier::RerollAndAdd(num)) + } Rule::keep_alias => { let num = inner.into_inner().next().unwrap().as_str().parse::() .map_err(|_| DiceError::ParseError("无效的取高数值".to_string()))?; -- cgit v1.2.3-70-g09d2