diff --git a/RpgRoller.Tests/Services/DiceRulesTests.cs b/RpgRoller.Tests/Services/DiceRulesTests.cs index 79a682f..0dc2a4f 100644 --- a/RpgRoller.Tests/Services/DiceRulesTests.cs +++ b/RpgRoller.Tests/Services/DiceRulesTests.cs @@ -43,11 +43,11 @@ public sealed class DiceRulesTests Assert.False(unknownRulesetExpression.Succeeded); Assert.Equal("d10", rolemasterImplicitSingle.Value!.Canonical); - Assert.Equal(DiceExpressionKind.RolemasterStandard, rolemasterImplicitSingle.Value.Kind); + Assert.Equal(DiceExpressionKind.Standard, rolemasterImplicitSingle.Value.Kind); Assert.Equal("15d10-15", rolemasterManyDice.Value!.Canonical); - Assert.Equal(DiceExpressionKind.RolemasterStandard, rolemasterManyDice.Value.Kind); + Assert.Equal(DiceExpressionKind.Standard, rolemasterManyDice.Value.Kind); Assert.Equal("d100+4", rolemasterPercentile.Value!.Canonical); - Assert.Equal(DiceExpressionKind.RolemasterStandard, rolemasterPercentile.Value.Kind); + Assert.Equal(DiceExpressionKind.Standard, rolemasterPercentile.Value.Kind); Assert.Equal("d100!+85", rolemasterOpenEnded.Value!.Canonical); Assert.Equal(DiceExpressionKind.RolemasterOpenEndedPercentile, rolemasterOpenEnded.Value.Kind); diff --git a/RpgRoller/Components/Pages/HomeControls/RollDiceStrip.razor.cs b/RpgRoller/Components/Pages/HomeControls/RollDiceStrip.razor.cs index 3b64c9f..e295ef2 100644 --- a/RpgRoller/Components/Pages/HomeControls/RollDiceStrip.razor.cs +++ b/RpgRoller/Components/Pages/HomeControls/RollDiceStrip.razor.cs @@ -57,12 +57,6 @@ public partial class RollDiceStrip case RollDieKinds.RolemasterStandard: classes.Add("rolemaster-standard"); break; - case RollDieKinds.RolemasterInitiative: - classes.Add("rolemaster-initiative"); - break; - case RollDieKinds.RolemasterPercentile: - classes.Add("rolemaster-percentile"); - break; case RollDieKinds.RolemasterOpenEndedInitial: classes.Add("rolemaster-open-ended-initial"); break; @@ -103,12 +97,6 @@ public partial class RollDiceStrip case RollDieKinds.RolemasterStandard: labels.Add("Rolemaster roll"); break; - case RollDieKinds.RolemasterInitiative: - labels.Add("Rolemaster initiative"); - break; - case RollDieKinds.RolemasterPercentile: - labels.Add("Rolemaster percentile"); - break; case RollDieKinds.RolemasterOpenEndedInitial: labels.Add(die.SignedContribution.HasValue ? "Rolemaster open-ended initial" : "Rolemaster low-end trigger (ignored in total)"); break; diff --git a/RpgRoller/Contracts/ApiContracts.cs b/RpgRoller/Contracts/ApiContracts.cs index eebd438..99a5c5c 100644 --- a/RpgRoller/Contracts/ApiContracts.cs +++ b/RpgRoller/Contracts/ApiContracts.cs @@ -53,8 +53,6 @@ public sealed record RollSkillRequest(string Visibility); public static class RollDieKinds { public const string RolemasterStandard = "rolemaster-standard"; - public const string RolemasterInitiative = "rolemaster-initiative"; - public const string RolemasterPercentile = "rolemaster-percentile"; public const string RolemasterOpenEndedInitial = "rolemaster-open-ended-initial"; public const string RolemasterOpenEndedHigh = "rolemaster-open-ended-high"; public const string RolemasterOpenEndedLowSubtract = "rolemaster-open-ended-low-subtract"; diff --git a/RpgRoller/Domain/GameModels.cs b/RpgRoller/Domain/GameModels.cs index 7e960ea..4b64cb3 100644 --- a/RpgRoller/Domain/GameModels.cs +++ b/RpgRoller/Domain/GameModels.cs @@ -93,7 +93,6 @@ public sealed class RollLogEntry public enum DiceExpressionKind { Standard, - RolemasterStandard, RolemasterOpenEndedPercentile } diff --git a/RpgRoller/Services/DiceRules.cs b/RpgRoller/Services/DiceRules.cs index adfc16d..157c325 100644 --- a/RpgRoller/Services/DiceRules.cs +++ b/RpgRoller/Services/DiceRules.cs @@ -100,7 +100,7 @@ public static partial class DiceRules var countPrefix = diceCount == 1 ? string.Empty : diceCount.ToString(); var canonical = $"{countPrefix}d{sides}{(isOpenEnded ? "!" : string.Empty)}{FormatModifier(modifier)}"; - var kind = isOpenEnded ? DiceExpressionKind.RolemasterOpenEndedPercentile : DiceExpressionKind.RolemasterStandard; + var kind = isOpenEnded ? DiceExpressionKind.RolemasterOpenEndedPercentile : DiceExpressionKind.Standard; return ServiceResult.Success(new(diceCount, sides, modifier, canonical, kind)); } diff --git a/RpgRoller/Services/GameService.cs b/RpgRoller/Services/GameService.cs index 46f77d7..2fb4af9 100644 --- a/RpgRoller/Services/GameService.cs +++ b/RpgRoller/Services/GameService.cs @@ -949,9 +949,8 @@ public sealed class GameService : IGameService { return expression.Kind switch { - DiceExpressionKind.RolemasterStandard => ComputeRolemasterStandardRoll(expression), DiceExpressionKind.RolemasterOpenEndedPercentile => ComputeRolemasterOpenEndedRoll(expression, skill.FumbleRange.GetValueOrDefault()), - _ => ComputeStandardRoll(expression) + _ => ComputeRolemasterStandardRoll(expression) }; } @@ -1423,20 +1422,12 @@ public sealed class GameService : IGameService return $"{preview} | rolemaster"; } - if (dice.Any(die => string.Equals(die.Kind, RollDieKinds.RolemasterInitiative, StringComparison.Ordinal))) - return $"{string.Join(" + ", dice.Select(die => die.Roll.ToString()))} | initiative"; - - if (dice.Any(die => string.Equals(die.Kind, RollDieKinds.RolemasterPercentile, StringComparison.Ordinal))) - return $"{dice[0].Roll} | percentile"; - return string.Join(", ", dice.Take(3).Select(die => die.Roll.ToString())); } private static bool IsRolemasterDieKind(string? kind) { return kind is RollDieKinds.RolemasterStandard or - RollDieKinds.RolemasterInitiative or - RollDieKinds.RolemasterPercentile or RollDieKinds.RolemasterOpenEndedInitial or RollDieKinds.RolemasterOpenEndedHigh or RollDieKinds.RolemasterOpenEndedLowSubtract; diff --git a/TASKS.md b/TASKS.md index 43e59c8..63e306d 100644 --- a/TASKS.md +++ b/TASKS.md @@ -107,7 +107,7 @@ Affected areas: Current validation is split between generic expression parsing and D6 option validation. Rolemaster needs its own validation layer. Validation rules to add: -- `RolemasterStandard` +- standard Rolemaster expressions - supports generic `NdS` syntax with any supported side count - assumes a dice count of `1` when the count is omitted before `d` - integer modifier required