Description
Effect::RollDie can only roll a single die, and the Oracle parser only matches "roll a ...". Cards that roll multiple or a variable number of dice are unsupported.
Steps to reproduce
- Parse a card whose text is "roll two six-sided dice", "roll X six-sided dice", or "roll two d12".
- Inspect the parsed
Effect / resolve the ability.
Expected behavior
The effect rolls the specified number of dice (each independently, same sides/modifier/results), e.g. "roll two six-sided dice" rolls two d6.
Actual behavior
Only a single die is rolled; the multi/variable-count forms either fail to parse (fall through to Unimplemented) or silently roll one die.
Impact
~10–15 dice-matters cards (AFR / CLB / dice precons) do not roll the correct number of dice.
Component
crates/engine/src/types/ability.rs (Effect::RollDie — needs a count axis, mirroring FlipCoins { count })
crates/engine/src/parser/oracle_effect/imperative.rs (roll-die parser)
crates/engine/src/game/effects/roll_die.rs (resolver)
CR 706.1 (number of dice to roll).
Description
Effect::RollDiecan only roll a single die, and the Oracle parser only matches "roll a ...". Cards that roll multiple or a variable number of dice are unsupported.Steps to reproduce
Effect/ resolve the ability.Expected behavior
The effect rolls the specified number of dice (each independently, same sides/modifier/results), e.g. "roll two six-sided dice" rolls two d6.
Actual behavior
Only a single die is rolled; the multi/variable-count forms either fail to parse (fall through to
Unimplemented) or silently roll one die.Impact
~10–15 dice-matters cards (AFR / CLB / dice precons) do not roll the correct number of dice.
Component
crates/engine/src/types/ability.rs(Effect::RollDie— needs acountaxis, mirroringFlipCoins { count })crates/engine/src/parser/oracle_effect/imperative.rs(roll-die parser)crates/engine/src/game/effects/roll_die.rs(resolver)CR 706.1 (number of dice to roll).