Files
ChronoCCG/Chrono/Web/Pages/Home.razor
T

126 lines
4.4 KiB
Plaintext

@page "/"
<PageTitle>Slop Game Reference - Chrono CCG</PageTitle>
<div class="home-hero">
<div class="hero-glow"></div>
<div class="hero-content">
<div class="hero-badge">Collectible Card Game</div>
<h1 class="hero-title">Slop Game Reference - Chrono CCG</h1>
<p class="hero-subtitle">
AI generated website for reference notes on playing Chrono CCG.
</p>
<div class="hero-actions">
<a class="cta-button primary" href="/cards">
<i class="bi bi-collection-fill"></i> Browse Cards
</a>
<a class="cta-button secondary" href="/decks">
<i class="bi bi-journal-text"></i> View Decks
</a>
<a class="cta-button secondary" href="/agents">
<i class="bi bi-people-fill"></i> All Agents
</a>
</div>
</div>
</div>
<div class="home-stats">
<div class="stat-card">
<div class="stat-icon agents">
<i class="bi bi-person-fill"></i>
</div>
<div class="stat-body">
<span class="stat-value">@agentsCount</span>
<span class="stat-label">Agents</span>
</div>
</div>
<div class="stat-card">
<div class="stat-icon spells">
<i class="bi bi-wand"></i>
</div>
<div class="stat-body">
<span class="stat-value">@spellsCount</span>
<span class="stat-label">Spells</span>
</div>
</div>
<div class="stat-card">
<div class="stat-icon tokens">
<i class="bi bi-coin"></i>
</div>
<div class="stat-body">
<span class="stat-value">@tokensCount</span>
<span class="stat-label">Tokens</span>
</div>
</div>
<div class="stat-card">
<div class="stat-icon decks">
<i class="bi bi-journal-text"></i>
</div>
<div class="stat-body">
<span class="stat-value">@visibleDecks</span>
<span class="stat-label">Decks</span>
</div>
</div>
<div class="stat-card">
<div class="stat-icon factions">
<i class="bi bi-shield-fill"></i>
</div>
<div class="stat-body">
<span class="stat-value">@factionCount</span>
<span class="stat-label">Factions</span>
</div>
</div>
<div class="stat-card">
<div class="stat-icon total">
<i class="bi bi-grid-3x3-gap-fill"></i>
</div>
<div class="stat-body">
<span class="stat-value">@totalCount</span>
<span class="stat-label">Total Cards</span>
</div>
</div>
</div>
<div class="home-sections">
<div class="section-card">
<div class="section-icon"><i class="bi bi-collection-fill"></i></div>
<h2>Explore Cards</h2>
<p>Browse the full gallery of @totalCount cards. Filter by faction, cost, or category, and dive into detailed
stats, archetypes, and immortalize chains.</p>
<a href="/cards" class="section-link">Browse Gallery <i class="bi bi-arrow-right"></i></a>
</div>
<div class="section-card">
<div class="section-icon"><i class="bi bi-people-fill"></i></div>
<h2>View Agents</h2>
<p>All @agentsCount agents in a sortable data grid with filtering, paging, and detailed stats at a glance.</p>
<a href="/agents" class="section-link">View Agents <i class="bi bi-arrow-right"></i></a>
</div>
<div class="section-card">
<div class="section-icon"><i class="bi bi-journal-text"></i></div>
<h2>Browse Decks</h2>
<p>Check out @visibleDecks curated deck lists. See key cards, divers, and full card breakdowns with interactive
previews.</p>
<a href="/decks" class="section-link">Browse Decks <i class="bi bi-arrow-right"></i></a>
</div>
</div>
@code {
private int totalCount;
private int agentsCount;
private int spellsCount;
private int tokensCount;
private int visibleDecks;
private int factionCount;
protected override void OnInitialized()
{
var cards = CardDatabase.Cards;
totalCount = cards.Count;
agentsCount = cards.Count(c => c.IsAgent);
spellsCount = cards.Count(c => c.IsSpell);
tokensCount = cards.Count(c => c.IsToken);
visibleDecks = DeckDatabase.Decks.Count(d => d.IsVisible);
factionCount = cards.Where(c => c.Faction != null).Select(c => c.Faction).Distinct().Count();
}
}