AI: markdown-to-C# converter for StarSystem and SystemMastery

This commit is contained in:
2026-09-26 16:18:00 +00:00
parent 7e54b97d65
commit 46621a46d3
@@ -0,0 +1,111 @@
@page "/StarSystem/{Id}"
<PageTitle>@(system?.Name ?? "Star System")</PageTitle>
@if (system is null)
{
<div class="alert alert-warning" role="alert">
Unknown star system. <a href="/StarSystem">Back to all star systems</a>.
</div>
}
else
{
<div class="section-header d-flex align-items-center mb-4">
<h1 class="mb-0">@system.Name</h1>
<span class="badge bg-primary ms-3">@system.Kind</span>
<div class="ms-3 flex-grow-1 border-bottom opacity-25"></div>
</div>
<dl class="row">
<dt class="col-sm-3">Occupation buff</dt>
<dd class="col-sm-9">@(system.OccupationBuff ?? "—")</dd>
<dt class="col-sm-3">System mastery</dt>
<dd class="col-sm-9">
@if (system.SystemMastery is null)
{
@:—
}
else
{
var masteryUrl = ZeroSpaceLinks.UrlFor(system.SystemMastery);
if (masteryUrl is null)
{
@system.SystemMastery
}
else
{
<a href="@masteryUrl">@system.SystemMastery</a>
}
}
</dd>
<dt class="col-sm-3">Yields</dt>
<dd class="col-sm-9">@YieldText(system)</dd>
<dt class="col-sm-3">Connected systems</dt>
<dd class="col-sm-9">
@for (var i = 0; i < system.ConnectedSystems.Count; i++)
{
var name = system.ConnectedSystems[i];
var url = ZeroSpaceLinks.UrlFor(name);
if (url is null)
{
<span>@name</span>
}
else
{
<a href="@url">@name</a>
}
@if (i < system.ConnectedSystems.Count - 1)
{
@:,&nbsp;
}
}
</dd>
</dl>
@if (!string.IsNullOrWhiteSpace(system.Body))
{
<h2>Notes</h2>
<MarkdownView Markdown="@system.Body" />
}
}
@code {
[Parameter]
public string Id { get; set; } = string.Empty;
private StarSystemData? system;
protected override void OnParametersSet()
{
system = StarSystems.All.FirstOrDefault(s => s.Id.Equals(Id, StringComparison.OrdinalIgnoreCase));
}
private static string YieldText(StarSystemData s)
{
var yields = new List<string>();
if (s.HigherInfluenceYield)
{
yields.Add("Influence");
}
if (s.HigherCreditYield)
{
yields.Add("Credits");
}
if (s.HigherEnergyYield)
{
yields.Add("Energy");
}
if (s.HigherChanceForItems)
{
yields.Add("Items");
}
return yields.Count == 0 ? "Standard" : "Higher " + string.Join(", ", yields);
}
}