@page "/decks/{Name}" @deck?.Name
Back to Decks @if (deck == null) {

Deck not found.

} else {

@deck.Name

@if (deck.Factions.Count > 0) {
@foreach (var f in deck.Factions) { @f }
}

@deck.Cards.Count cards

@if (deck.Keycards.Count > 0) {

Keycards

@foreach (var cardName in deck.Keycards) { var card = LookupCard(cardName); }
} @if (deck.Divers.Count > 0) {

Divers

@foreach (var cardName in deck.Divers) { var card = LookupCard(cardName); }
}

Cards

@foreach (var cardName in deck.Cards) { var card = LookupCard(cardName); }
@if (deck.Description != null) {

Description

@foreach (var paragraph in deck.Description.Split('\n', StringSplitOptions.RemoveEmptyEntries)) {

@paragraph

}
}
}
@if (selectedCard != null) {
@selectedCard.Name

@selectedCard.Name

@selectedCard.Category @if (selectedCard.Cost.HasValue) { @selectedCard.Cost } @if (selectedCard.Attack.HasValue) { @selectedCard.Attack } @if (selectedCard.Health.HasValue) { @selectedCard.Health } @if (selectedCard.Speed != null) { @selectedCard.Speed }
@if (selectedCard.Faction != null) {
Faction @selectedCard.Faction
} @if (selectedCard.Description != null) {
@selectedCard.Description
} @if (selectedCard.Set != null) {
Set @selectedCard.Set
} @if (selectedCard.Archetypes is { Count: > 0 }) {
Archetypes @string.Join(", ", selectedCard.Archetypes)
} @if (selectedCard.ImmortalizeWhen != null) {
Immortalize When @selectedCard.ImmortalizeWhen
} @if (selectedCard.HasImmortalize) {
Immortalizes To @string.Join(", ", selectedCard.ImmortalizeTo!)
} @if (selectedCard.ImmortalizeFrom != null) {
Immortalizes From @selectedCard.ImmortalizeFrom
}
} @code { [Parameter] public string Name { get; set; } = ""; private DeckData? deck; private CardData? selectedCard; protected override void OnParametersSet() { var decoded = Uri.UnescapeDataString(Name); deck = DeckDatabase.Decks.FirstOrDefault(d => d.IsVisible && d.Name == decoded); } private CardData? LookupCard(string cardName) { return CardDatabase.Cards.FirstOrDefault(c => string.Equals(c.Name, cardName, StringComparison.OrdinalIgnoreCase)); } private void SelectCard(CardData? card) { selectedCard = card; } private void CloseDetail() { selectedCard = null; } }