Skip to content

Implemented DiceNotation enhancements - #1

Merged
DarthPedro merged 9 commits into
mainfrom
features/dicenotation-enhancements
Sep 20, 2026
Merged

DarthPedro merged 9 commits into
mainfrom
features/dicenotation-enhancements

Conversation

@DarthPedro

Copy link
Copy Markdown
Contributor
  • Added AddDiceNotation() service-collection extensions to register IDice, configuration, die roller, and optional roll tracker cleanly through dependency injection.
  • Added the DiceNotationOptionsBuilder fluent API for configuring die sides, bounded results, the die roller, and roll tracking.
  • Added a verbose/structured breakdown to dice results: each rolled die now records its role (kept, dropped, exploded, or rerolled) through the new DieRollRole flags enum and the TermResult.Roles property.
  • Added DiceResult breakdown helpers (KeptResults, DroppedResults, ExplodedResults, RerolledResults) and a VerboseDisplayText property that annotates each die roll with its role.
  • Added seeded/replayable rolling: RandomDieRoller and MathNetDieRoller now accept a seed, implement the new IReplayableDieRoller interface, and expose a ReplayToken that captures the algorithm and seed for reproducing a roll sequence.
  • Added the DieRollerFactory with CreateSeeded and CreateFromReplayToken methods, plus UseSeededDieRoller, UseSeededMathNetDieRoller, and UseReplayDieRoller options on DiceNotationOptionsBuilder. Cryptographic rollers are intentionally excluded because their generators are not seedable.
  • Added xml documentation to the public API for the DiceNotation library.
  • Added full documentation set for the DiceNotation library.
  • Migrated the solution to use central package and central build management.
  • Updated package references to newest versions.

Turned on warnings as errors.
Fixed warnings in test project.
Updated package references to latest versions.
…rs, and trackers (optionally).

Provided a notation options builder to configure the services.
Added unit tests for the DI methods.
Added `DiceResult` breakdown helpers.
Updated DiceCli to show more verbose dice result output.
… now accept a seed.

Added the DieRollerFactory class and builder options for seeded rollers.
Added unit tests.
Updated documentation.
@DarthPedro
DarthPedro merged commit adb3435 into main Sep 20, 2026
1 check passed
@DarthPedro
DarthPedro deleted the features/dicenotation-enhancements branch September 20, 2026 21:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant