46 lines
1.6 KiB
C#
46 lines
1.6 KiB
C#
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());
|
|
}
|