Add manual critical table cell editor

This commit is contained in:
2026-03-14 15:09:16 +01:00
parent 4e518244a2
commit 6e28ad975f
16 changed files with 1105 additions and 27 deletions

View File

@@ -0,0 +1,45 @@
using RolemasterDb.App.Features;
namespace RolemasterDb.App.Components.Shared;
public sealed class CriticalBranchEditorModel
{
public string BranchKind { get; set; } = "conditional";
public string? ConditionKey { get; set; }
public string ConditionText { get; set; } = string.Empty;
public string ConditionJson { get; set; } = "{}";
public string RawText { get; set; } = string.Empty;
public string DescriptionText { get; set; } = string.Empty;
public string? RawAffixText { get; set; }
public string ParsedJson { get; set; } = "{}";
public int SortOrder { get; set; }
public List<CriticalEffectEditorModel> Effects { get; set; } = [];
public static CriticalBranchEditorModel FromItem(CriticalBranchEditorItem item) =>
new()
{
BranchKind = item.BranchKind,
ConditionKey = item.ConditionKey,
ConditionText = item.ConditionText,
ConditionJson = item.ConditionJson,
RawText = item.RawText,
DescriptionText = item.DescriptionText,
RawAffixText = item.RawAffixText,
ParsedJson = item.ParsedJson,
SortOrder = item.SortOrder,
Effects = item.Effects.Select(CriticalEffectEditorModel.FromItem).ToList()
};
public CriticalBranchEditorItem ToItem() =>
new(
BranchKind,
ConditionKey,
ConditionText,
ConditionJson,
RawText,
DescriptionText,
RawAffixText,
ParsedJson,
SortOrder,
Effects.Select(effect => effect.ToItem()).ToList());
}