Implement critical editor override state
This commit is contained in:
@@ -76,7 +76,7 @@
|
||||
}
|
||||
<div class="field-shell">
|
||||
<label>Result Text</label>
|
||||
<InputTextArea class="input-shell critical-editor-textarea compact" @bind-Value="Model.DescriptionText" />
|
||||
<InputTextArea class="input-shell critical-editor-textarea compact" @bind-Value="Model.DescriptionText" @bind-Value:after="MarkDescriptionOverridden" />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -134,11 +134,11 @@
|
||||
<div class="critical-editor-branch-line">
|
||||
<div class="field-shell">
|
||||
<label>Condition</label>
|
||||
<InputText class="input-shell" @bind-Value="branch.ConditionText" />
|
||||
<InputText class="input-shell" @bind-Value="branch.ConditionText" @bind-Value:after="() => MarkBranchOverridden(branch)" />
|
||||
</div>
|
||||
<div class="field-shell critical-editor-branch-outcome">
|
||||
<label>Outcome Text</label>
|
||||
<InputText class="input-shell" @bind-Value="branch.DescriptionText" />
|
||||
<InputText class="input-shell" @bind-Value="branch.DescriptionText" @bind-Value:after="() => MarkBranchOverridden(branch)" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -321,7 +321,13 @@
|
||||
|
||||
private void AddBaseEffect()
|
||||
{
|
||||
Model?.Effects.Add(CreateDefaultEffectModel());
|
||||
if (Model is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Model.AreEffectsOverridden = true;
|
||||
Model.Effects.Add(CreateDefaultEffectModel());
|
||||
}
|
||||
|
||||
private void RemoveBaseEffect(int index)
|
||||
@@ -331,6 +337,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
Model.AreEffectsOverridden = true;
|
||||
Model.Effects.RemoveAt(index);
|
||||
}
|
||||
|
||||
@@ -344,8 +351,10 @@
|
||||
Model.Branches.Add(new CriticalBranchEditorModel
|
||||
{
|
||||
ConditionText = $"Condition {Model.Branches.Count + 1}",
|
||||
SortOrder = Model.Branches.Count + 1
|
||||
SortOrder = Model.Branches.Count + 1,
|
||||
IsOverridden = true
|
||||
});
|
||||
Model.AreBranchesOverridden = true;
|
||||
}
|
||||
|
||||
private void RemoveBranch(int index)
|
||||
@@ -355,11 +364,13 @@
|
||||
return;
|
||||
}
|
||||
|
||||
Model.AreBranchesOverridden = true;
|
||||
Model.Branches.RemoveAt(index);
|
||||
}
|
||||
|
||||
private static void AddBranchEffect(CriticalBranchEditorModel branch)
|
||||
{
|
||||
branch.AreEffectsOverridden = true;
|
||||
branch.Effects.Add(CreateDefaultEffectModel());
|
||||
}
|
||||
|
||||
@@ -370,6 +381,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
branch.AreEffectsOverridden = true;
|
||||
branch.Effects.RemoveAt(index);
|
||||
}
|
||||
|
||||
@@ -377,7 +389,8 @@
|
||||
new()
|
||||
{
|
||||
EffectCode = CriticalEffectCodes.DirectHits,
|
||||
SourceType = "symbol"
|
||||
SourceType = "symbol",
|
||||
IsOverridden = true
|
||||
};
|
||||
|
||||
private static string GetBranchTitle(CriticalBranchEditorModel branch, int index) =>
|
||||
@@ -428,6 +441,25 @@
|
||||
effect.IsPermanent = false;
|
||||
effect.SourceText = null;
|
||||
effect.SourceType = AffixDisplayMap.TryGet(effect.EffectCode, out _) ? "symbol" : "manual";
|
||||
effect.IsOverridden = true;
|
||||
}
|
||||
|
||||
private void MarkDescriptionOverridden()
|
||||
{
|
||||
if (Model is not null)
|
||||
{
|
||||
Model.IsDescriptionOverridden = true;
|
||||
}
|
||||
}
|
||||
|
||||
private static void MarkBranchOverridden(CriticalBranchEditorModel branch)
|
||||
{
|
||||
branch.IsOverridden = true;
|
||||
}
|
||||
|
||||
private static void MarkEffectOverridden(CriticalEffectEditorModel effect)
|
||||
{
|
||||
effect.IsOverridden = true;
|
||||
}
|
||||
|
||||
private static string GetAdvancedSummary(CriticalCellEditorModel model)
|
||||
@@ -531,7 +563,7 @@
|
||||
{
|
||||
<div class="field-shell critical-editor-effect-extra">
|
||||
<label>Body Part</label>
|
||||
<InputText class="input-shell" @bind-Value="effect.BodyPart" />
|
||||
<InputText class="input-shell" @bind-Value="effect.BodyPart" @bind-Value:after="() => MarkEffectOverridden(effect)" />
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
@@ -543,30 +575,30 @@
|
||||
{
|
||||
case CriticalEffectCodes.DirectHits:
|
||||
<label>Hits</label>
|
||||
<InputNumber TValue="int?" class="input-shell" @bind-Value="effect.ValueInteger" />
|
||||
<InputNumber TValue="int?" class="input-shell" @bind-Value="effect.ValueInteger" @bind-Value:after="() => MarkEffectOverridden(effect)" />
|
||||
break;
|
||||
case CriticalEffectCodes.StunnedRounds:
|
||||
case CriticalEffectCodes.MustParryRounds:
|
||||
case CriticalEffectCodes.NoParryRounds:
|
||||
<label>Rounds</label>
|
||||
<InputNumber TValue="int?" class="input-shell" @bind-Value="effect.DurationRounds" />
|
||||
<InputNumber TValue="int?" class="input-shell" @bind-Value="effect.DurationRounds" @bind-Value:after="() => MarkEffectOverridden(effect)" />
|
||||
break;
|
||||
case CriticalEffectCodes.BleedPerRound:
|
||||
<label>Bleed / Round</label>
|
||||
<InputNumber TValue="int?" class="input-shell" @bind-Value="effect.PerRound" />
|
||||
<InputNumber TValue="int?" class="input-shell" @bind-Value="effect.PerRound" @bind-Value:after="() => MarkEffectOverridden(effect)" />
|
||||
break;
|
||||
case CriticalEffectCodes.FoePenalty:
|
||||
case CriticalEffectCodes.AttackerBonusNextRound:
|
||||
<label>Modifier</label>
|
||||
<InputNumber TValue="int?" class="input-shell" @bind-Value="effect.Modifier" />
|
||||
<InputNumber TValue="int?" class="input-shell" @bind-Value="effect.Modifier" @bind-Value:after="() => MarkEffectOverridden(effect)" />
|
||||
break;
|
||||
case CriticalEffectCodes.PowerPointModifier:
|
||||
<label>Expression</label>
|
||||
<InputText class="input-shell" @bind-Value="effect.ValueExpression" />
|
||||
<InputText class="input-shell" @bind-Value="effect.ValueExpression" @bind-Value:after="() => MarkEffectOverridden(effect)" />
|
||||
break;
|
||||
default:
|
||||
<label>Display Text</label>
|
||||
<InputText class="input-shell" @bind-Value="effect.SourceText" />
|
||||
<InputText class="input-shell" @bind-Value="effect.SourceText" @bind-Value:after="() => MarkEffectOverridden(effect)" />
|
||||
break;
|
||||
}
|
||||
</div>;
|
||||
|
||||
Reference in New Issue
Block a user