diff options
| author | 2025-09-12 18:19:16 +0800 | |
|---|---|---|
| committer | 2025-09-12 18:19:16 +0800 | |
| commit | 2778db81c6973078dc0e8e04c4bb711143aef84d (patch) | |
| tree | a262ee069fe4155c1bf315ed549161d3ee4ee1f8 /src/parser.rs | |
| parent | 899ca820e34b1b62190e88da71cf734295974a19 (diff) | |
| download | OneRoll-2778db81c6973078dc0e8e04c4bb711143aef84d.tar.gz OneRoll-2778db81c6973078dc0e8e04c4bb711143aef84d.zip | |
feat: add new reroll modifiers for enhanced dice functionality
Diffstat (limited to 'src/parser.rs')
| -rw-r--r-- | src/parser.rs | 10 |
1 files changed, 10 insertions, 0 deletions
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::<i32>() + .map_err(|_| DiceError::ParseError("无效的直到重投数值".to_string()))?; + Ok(DiceModifier::RerollUntil(num)) + } + Rule::reroll_add => { + let num = inner.into_inner().next().unwrap().as_str().parse::<i32>() + .map_err(|_| DiceError::ParseError("无效的重投并相加数值".to_string()))?; + Ok(DiceModifier::RerollAndAdd(num)) + } Rule::keep_alias => { let num = inner.into_inner().next().unwrap().as_str().parse::<i32>() .map_err(|_| DiceError::ParseError("无效的取高数值".to_string()))?; |
