Standardize all class, interface, file, method, event, field, and variable
names from the inconsistent "Die" form to "Dice", matching the existing
DiceManager/DiceCatalog/DiceCollection convention.
Renamed files (7 + meta): IDie→IDice, DieInstance→DiceInstance,
DieDefinitionSO→DiceDefinitionSO, StandardDieSO→StandardDiceSO,
DieValueCondition→DiceValueCondition, AddPerDieEffect→AddPerDiceEffect,
MultiplyPerDieEffect→MultiplyPerDiceEffect.
Updated all 31 consumer and test files with matching reference changes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Convert serialized private fields with public arrow getters to
[field: SerializeField] auto-properties across ScriptableObjects
(DieDefinitionSO, CategoryDefinition, ModifierDefinition, Effect,
ModifierBehavior, SumOfValueCategory) and select MonoBehaviours
(DiceRoller, Dice.Entry struct). Fields with type-changing getters
(List→IReadOnlyList) or computed getters are intentionally kept as-is.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add abstract dice system (IDie interface, DieDefinitionSO, StandardDieSO, DieInstance)
to support future custom dice types while keeping backward compat via int[] DiceValues
- Replace YachtCategory enum and CategoryScorer switch with CategoryDefinitionSO hierarchy:
SumOfValueCategorySO, NOfAKindCategorySO, FullHouseCategorySO, StraightCategorySO, SumAllCategorySO
- Add CategoryCatalogSO for ordered category collections and DiceCheckUtility for shared logic
- Refactor ScoringSystem, Views, GameManager, GameController to use SO references
- Update CategoryCondition modifier to use SO reference instead of enum
- Update all editor tests to use SO-based categories and DieInstance
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds a coroutine-driven roller that tosses the dice with random impulse
and torque, waits for physics to settle, then smoothly snaps to the
nearest aligned face via Slerp. Exposes OnRollFinished event with the
rolled value.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>