AI: markdown-to-C# converter for StarSystem and SystemMastery
This commit is contained in:
@@ -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)
|
||||
{
|
||||
@:,
|
||||
}
|
||||
}
|
||||
</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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user