diff --git a/.gitignore b/.gitignore
index f0203f0..21e843d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -277,6 +277,7 @@ ServiceFabricBackup/
# SQLite transient sidecars
*.db-shm
*.db-wal
+/rolemaster.db
# Business Intelligence projects
*.rdl.data
diff --git a/src/RolemasterDb.App/Components/Shared/CriticalLookupResultCard.razor b/src/RolemasterDb.App/Components/Shared/CriticalLookupResultCard.razor
index 14f4d6f..3b6672f 100644
--- a/src/RolemasterDb.App/Components/Shared/CriticalLookupResultCard.razor
+++ b/src/RolemasterDb.App/Components/Shared/CriticalLookupResultCard.razor
@@ -52,6 +52,31 @@
}
+ @if (Result.Branches.Count > 0)
+ {
+
+
Conditional Branches
+
+ @foreach (var branch in Result.Branches)
+ {
+
+ @branch.ConditionText
+
+ @if (!string.IsNullOrWhiteSpace(branch.Description))
+ {
+ @branch.Description
+ }
+
+ @if (!string.IsNullOrWhiteSpace(branch.AffixText))
+ {
+ @branch.AffixText
+ }
+
+ }
+
+
+ }
+
Raw Imported Cell
@Result.RawCellText
diff --git a/src/RolemasterDb.App/Features/LookupContracts.cs b/src/RolemasterDb.App/Features/LookupContracts.cs
index 51c7e14..657f8db 100644
--- a/src/RolemasterDb.App/Features/LookupContracts.cs
+++ b/src/RolemasterDb.App/Features/LookupContracts.cs
@@ -46,6 +46,15 @@ public sealed record CriticalLookupRequest(
int Roll,
string? Group);
+public sealed record CriticalBranchLookupResponse(
+ string BranchKind,
+ string? ConditionKey,
+ string ConditionText,
+ string Description,
+ string? AffixText,
+ string RawText,
+ int SortOrder);
+
public sealed record CriticalLookupResponse(
string CriticalType,
string CriticalTableName,
@@ -64,6 +73,7 @@ public sealed record CriticalLookupResponse(
string RawCellText,
string Description,
string? AffixText,
+ IReadOnlyList Branches,
string ParseStatus,
string ParsedJson);
diff --git a/src/RolemasterDb.App/Features/LookupService.cs b/src/RolemasterDb.App/Features/LookupService.cs
index a2f380d..8bb2217 100644
--- a/src/RolemasterDb.App/Features/LookupService.cs
+++ b/src/RolemasterDb.App/Features/LookupService.cs
@@ -105,6 +105,7 @@ public sealed class LookupService(IDbContextFactory dbConte
return await dbContext.CriticalResults
.AsNoTracking()
+ .AsSplitQuery()
.Where(item =>
item.CriticalTable.Slug == criticalType &&
item.CriticalColumn.ColumnKey == column &&
@@ -131,6 +132,17 @@ public sealed class LookupService(IDbContextFactory dbConte
item.RawCellText,
item.DescriptionText,
item.RawAffixText,
+ item.Branches
+ .OrderBy(branch => branch.SortOrder)
+ .Select(branch => new CriticalBranchLookupResponse(
+ branch.BranchKind,
+ branch.ConditionKey,
+ branch.ConditionText,
+ branch.DescriptionText,
+ branch.RawAffixText,
+ branch.RawText,
+ branch.SortOrder))
+ .ToList(),
item.ParseStatus,
item.ParsedJson))
.SingleOrDefaultAsync(cancellationToken);
diff --git a/src/RolemasterDb.App/wwwroot/app.css b/src/RolemasterDb.App/wwwroot/app.css
index 69a8c87..9d4d3a9 100644
--- a/src/RolemasterDb.App/wwwroot/app.css
+++ b/src/RolemasterDb.App/wwwroot/app.css
@@ -229,6 +229,32 @@ textarea {
color: #5b4327;
}
+.branch-list {
+ display: grid;
+ gap: 0.75rem;
+}
+
+.branch-card {
+ padding: 0.8rem 0.85rem;
+ border-radius: 14px;
+ background: rgba(255, 252, 244, 0.75);
+ border: 1px solid rgba(127, 96, 55, 0.14);
+}
+
+.branch-condition {
+ font-size: 0.82rem;
+ font-weight: 700;
+ letter-spacing: 0.06em;
+ text-transform: uppercase;
+ color: #75562f;
+}
+
+.branch-copy,
+.branch-affix {
+ margin-top: 0.55rem;
+ margin-bottom: 0;
+}
+
.error-text {
color: #8d2b1e;
}