- About
-
-
-
- Counter
-
-
-
-
- Weather
-
-
-
Card Gallery
- -
-
@@ -74,59 +131,83 @@
{
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
- Card Gallery
+Browse all @allCards.Count cards
@filteredCards.Count() cards shown
+
+
+
+
+
+
+
+
+
+
+ @if (HasActiveFilters)
+ {
+
+
+
+ @if (search.Length > 0)
+ {
+
+ }
+
+
+
+
+ Filters:
+ @if (categoryFilter != "")
+ {
+
+ @categoryFilter
+
+
+ }
+ @if (factionFilter != "")
+ {
+
+ @factionFilter
+
+
+ }
+ @if (costFilter != "")
+ {
+
+ Cost @costFilter
+
+
+ }
+
+
+ }
+
+
+ @filteredCards.Count() card@(filteredCards.Count() != 1 ? "s" : "") found
+ @if (HasActiveFilters || search != "")
+ {
+ out of @allCards.Count total
+ }
+
@if (filteredCards.Any())
{
+ @{ int idx = 0; }
@foreach (var card in filteredCards)
{
}
else
{
- SelectCard(card)">
+ idx++;
}
+
+ onerror="this.src='data:image/svg+xml,'" />
+ @if (card.Cost.HasValue)
+ {
+
@card.Cost
+ }
+ @if (card.HasImmortalize)
+ {
+
+ }
@card.Name
- @(card.CostDisplay != null ? $"⚡{card.CostDisplay}" : "")
+ @card.Category
No cards match your filters.
+
+
+
}
No cards match your filters.
+ +
-
+
factions = [];
- protected override async Task OnInitializedAsync()
+ private bool HasActiveFilters => categoryFilter != "" || factionFilter != "" || costFilter != "";
+
+ protected override void OnInitialized()
{
- try
- {
- var catalog = await Http.GetFromJsonAsync("sample-data/cards.json");
- if (catalog?.Cards != null)
- {
- allCards = catalog.Cards;
- factions = allCards
- .Select(c => c.Faction)
- .Where(f => f != null)
- .Distinct()
- .OrderBy(f => f)
- .ToList()!;
- }
- }
- catch (Exception ex)
- {
- Console.Error.WriteLine($"Failed to load cards: {ex.Message}");
- }
+ allCards = CardDatabase.Cards;
+ factions = allCards
+ .Select(c => c.Faction)
+ .Where(f => f != null)
+ .Distinct()
+ .OrderBy(f => f)
+ .ToList()!;
}
private IEnumerable ApplyFilters()
@@ -177,6 +249,12 @@
);
}
+ private void SetCategory(string cat) => categoryFilter = categoryFilter == cat ? "" : cat;
+ private void ClearCategoryFilter() => categoryFilter = "";
+ private void ClearFactionFilter() => factionFilter = "";
+ private void ClearCostFilter() => costFilter = "";
+ private void ClearSearch() => search = "";
+
private void SelectCard(CardData card) => selectedCard = card;
private void CloseDetail() => selectedCard = null;
diff --git a/Chrono/Web/Pages/Cards.razor.css b/Chrono/Web/Pages/Cards.razor.css
index 07b2ce2..f7e3cea 100644
--- a/Chrono/Web/Pages/Cards.razor.css
+++ b/Chrono/Web/Pages/Cards.razor.css
@@ -1,54 +1,336 @@
.gallery-container {
- padding: 1rem;
+ max-width: 1400px;
+ margin: 0 auto;
+ padding: 1.5rem;
}
+/* ── Header ── */
+.gallery-header {
+ margin-bottom: 1.5rem;
+}
+
+.gallery-header h1 {
+ margin-bottom: 0.25rem;
+}
+
+.gallery-header p {
+ font-size: 0.9rem;
+ margin: 0;
+}
+
+/* ── Category Tabs ── */
+.category-tabs {
+ display: flex;
+ gap: 0.4rem;
+ margin-bottom: 1rem;
+ flex-wrap: wrap;
+}
+
+.tab {
+ display: flex;
+ align-items: center;
+ gap: 0.35rem;
+ padding: 0.5rem 1rem;
+ border: 1px solid var(--border);
+ border-radius: 100px;
+ background: transparent;
+ color: var(--text-secondary);
+ font-size: 0.85rem;
+ font-weight: 500;
+ cursor: pointer;
+ transition: all var(--transition);
+ font-family: inherit;
+}
+
+.tab:hover {
+ background: var(--bg-hover);
+ color: var(--text-primary);
+ border-color: var(--text-muted);
+}
+
+.tab.active {
+ background: var(--bg-elevated);
+ color: var(--text-primary);
+ border-color: var(--accent);
+ box-shadow: 0 0 12px var(--accent-glow);
+}
+
+.tab.active.agent {
+ border-color: #4fc3f7;
+ box-shadow: 0 0 12px rgba(79, 195, 247, 0.3);
+}
+
+.tab.active.spell {
+ border-color: #ce93d8;
+ box-shadow: 0 0 12px rgba(206, 147, 216, 0.3);
+}
+
+.tab.active.token {
+ border-color: #ffd54f;
+ box-shadow: 0 0 12px rgba(255, 213, 79, 0.3);
+}
+
+.tab i {
+ font-size: 0.9rem;
+}
+
+/* ── Filter Bar ── */
+.filter-bar {
+ display: flex;
+ gap: 0.5rem;
+ margin-bottom: 0.75rem;
+ align-items: stretch;
+}
+
+.search-wrapper {
+ position: relative;
+ flex: 1;
+ min-width: 0;
+}
+
+.search-icon {
+ position: absolute;
+ left: 0.75rem;
+ top: 50%;
+ transform: translateY(-50%);
+ color: var(--text-muted);
+ z-index: 3;
+ pointer-events: none;
+ font-size: 0.85rem;
+}
+
+.search-input {
+ padding-left: 2.2rem;
+ padding-right: 2.2rem;
+ height: 100%;
+}
+
+.search-clear {
+ position: absolute;
+ right: 0.5rem;
+ top: 50%;
+ transform: translateY(-50%);
+ background: none;
+ border: none;
+ color: var(--text-muted);
+ cursor: pointer;
+ padding: 0.2rem;
+ display: flex;
+ align-items: center;
+ font-size: 0.7rem;
+ z-index: 3;
+}
+
+.search-clear:hover {
+ color: var(--text-primary);
+}
+
+.filter-select {
+ width: auto;
+ min-width: 140px;
+}
+
+/* ── Active Filter Chips ── */
+.active-filters {
+ display: flex;
+ align-items: center;
+ gap: 0.4rem;
+ margin-bottom: 0.75rem;
+ flex-wrap: wrap;
+ font-size: 0.85rem;
+}
+
+.filter-label {
+ color: var(--text-muted);
+ font-weight: 500;
+ font-size: 0.8rem;
+ text-transform: uppercase;
+ letter-spacing: 0.05em;
+}
+
+.filter-chip {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.3rem;
+ padding: 0.25rem 0.5rem;
+ background: var(--bg-elevated);
+ border: 1px solid var(--border);
+ border-radius: 100px;
+ color: var(--text-secondary);
+ font-size: 0.8rem;
+}
+
+.filter-chip i:first-child {
+ font-size: 0.7rem;
+}
+
+.filter-chip button {
+ background: none;
+ border: none;
+ color: var(--text-muted);
+ cursor: pointer;
+ padding: 0;
+ display: flex;
+ align-items: center;
+ font-size: 0.65rem;
+ line-height: 1;
+}
+
+.filter-chip button:hover {
+ color: var(--text-primary);
+}
+
+.clear-all {
+ background: none;
+ border: none;
+ color: var(--accent);
+ cursor: pointer;
+ font-size: 0.8rem;
+ padding: 0.25rem 0.5rem;
+ font-family: inherit;
+}
+
+.clear-all:hover {
+ text-decoration: underline;
+}
+
+/* ── Result Count ── */
+.result-count {
+ font-size: 0.85rem;
+ color: var(--text-secondary);
+ margin-bottom: 1rem;
+ display: flex;
+ gap: 0.3rem;
+}
+
+/* ── Card Grid ── */
.card-grid {
display: grid;
- grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
+ grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
gap: 1rem;
}
+/* ── Card Cell ── */
.card-cell {
cursor: pointer;
- border-radius: 8px;
+ border-radius: var(--radius);
overflow: hidden;
- background: #1a1a2e;
- transition: transform 0.15s, box-shadow 0.15s;
+ background: var(--bg-surface);
+ transition: transform 0.25s ease, box-shadow 0.25s ease;
border: 2px solid transparent;
+ animation: card-enter 0.4s ease-out both;
+ animation-delay: calc(var(--i, 0) * 25ms);
+ will-change: transform;
}
.card-cell:hover {
- transform: translateY(-3px);
- box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
+ transform: translateY(-6px);
+ box-shadow: 0 8px 30px rgba(108, 99, 255, 0.2);
+ border-color: rgba(108, 99, 255, 0.2);
}
.card-cell.selected {
- border-color: #ffd700;
- box-shadow: 0 0 12px rgba(255, 215, 0, 0.5);
+ border-color: var(--gold);
+ box-shadow: 0 0 20px var(--gold-glow);
}
+.card-cell.selected:hover {
+ box-shadow: 0 8px 30px var(--gold-glow);
+}
+
+@keyframes card-enter {
+ from {
+ opacity: 0;
+ transform: translateY(16px) scale(0.97);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0) scale(1);
+ }
+}
+
+/* ── Card Image ── */
.card-image-wrapper {
+ position: relative;
width: 100%;
aspect-ratio: 5 / 7;
overflow: hidden;
- background: #16213e;
+ background: #111128;
+}
+
+.card-shimmer {
+ position: absolute;
+ inset: 0;
+ background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.03) 50%, transparent 100%);
+ background-size: 200% 100%;
+ animation: shimmer 2.5s infinite;
+ pointer-events: none;
+ z-index: 0;
+}
+
+@keyframes shimmer {
+ 0% { background-position: -200% 0; }
+ 100% { background-position: 200% 0; }
}
.card-image-wrapper img {
+ position: relative;
width: 100%;
height: 100%;
object-fit: cover;
display: block;
+ z-index: 1;
}
+.card-cost-badge {
+ position: absolute;
+ top: 0.4rem;
+ left: 0.4rem;
+ background: rgba(0, 0, 0, 0.75);
+ backdrop-filter: blur(4px);
+ color: var(--gold);
+ font-weight: 700;
+ font-size: 0.8rem;
+ padding: 0.15rem 0.5rem;
+ border-radius: 100px;
+ border: 1px solid rgba(255, 215, 0, 0.3);
+ z-index: 2;
+ line-height: 1.4;
+}
+
+.card-cost-badge::before {
+ content: "⚡";
+ margin-right: 0.15rem;
+}
+
+.card-immortalize-badge {
+ position: absolute;
+ top: 0.4rem;
+ right: 0.4rem;
+ background: rgba(0, 0, 0, 0.75);
+ backdrop-filter: blur(4px);
+ color: var(--gold);
+ font-size: 0.7rem;
+ padding: 0.25rem;
+ border-radius: 50%;
+ z-index: 2;
+ width: 1.5rem;
+ height: 1.5rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border: 1px solid rgba(255, 215, 0, 0.3);
+}
+
+/* ── Card Label ── */
.card-label {
display: flex;
justify-content: space-between;
align-items: center;
+ gap: 0.3rem;
padding: 0.4rem 0.6rem;
- background: #0f3460;
- color: #eee;
- font-size: 0.8rem;
+ background: var(--bg-elevated);
+ min-height: 2.4rem;
}
.card-name {
@@ -57,17 +339,73 @@
white-space: nowrap;
flex: 1;
min-width: 0;
+ font-size: 0.8rem;
+ font-weight: 500;
+ color: var(--text-primary);
}
-.card-cost {
+.card-category-badge {
flex-shrink: 0;
- margin-left: 0.4rem;
- font-weight: bold;
- color: #ffd700;
+ font-size: 0.65rem;
+ font-weight: 600;
+ padding: 0.15rem 0.45rem;
+ border-radius: 100px;
+ text-transform: uppercase;
+ letter-spacing: 0.04em;
+ background: var(--bg-hover);
+ color: var(--text-secondary);
+ border: 1px solid var(--border);
}
-.filters {
- align-items: stretch;
+.card-category-badge.agent {
+ background: rgba(79, 195, 247, 0.15);
+ color: #4fc3f7;
+ border-color: rgba(79, 195, 247, 0.3);
+}
+
+.card-category-badge.spell {
+ background: rgba(206, 147, 216, 0.15);
+ color: #ce93d8;
+ border-color: rgba(206, 147, 216, 0.3);
+}
+
+.card-category-badge.token {
+ background: rgba(255, 213, 79, 0.15);
+ color: #ffd54f;
+ border-color: rgba(255, 213, 79, 0.3);
+}
+
+/* ── Empty State ── */
+.empty-state {
+ text-align: center;
+ padding: 3rem 1rem;
+ color: var(--text-muted);
+}
+
+.empty-state i {
+ font-size: 2.5rem;
+ display: block;
+ margin-bottom: 1rem;
+}
+
+.empty-state p {
+ font-size: 1.1rem;
+ margin-bottom: 1rem;
+}
+
+/* ── Detail Modal ── */
+.modal-backdrop {
+ position: fixed;
+ inset: 0;
+ z-index: 1040;
+ background: rgba(0, 0, 0, 0.7);
+ backdrop-filter: blur(4px);
+ animation: fade-in 0.2s ease-out;
+}
+
+@keyframes fade-in {
+ from { opacity: 0; }
+ to { opacity: 1; }
}
.card-detail {
@@ -76,23 +414,51 @@
left: 50%;
transform: translate(-50%, -50%);
z-index: 1050;
- background: #1a1a2e;
- border-radius: 12px;
+ background: var(--bg-surface);
+ border: 1px solid var(--border);
+ border-radius: 16px;
padding: 0;
- max-width: 700px;
- width: 90vw;
- max-height: 85vh;
+ max-width: 720px;
+ width: 92vw;
+ max-height: 88vh;
overflow-y: auto;
- box-shadow: 0 10px 40px rgba(0, 0, 0, 0.6);
- color: #eee;
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
+ color: var(--text-primary);
+ animation: detail-enter 0.25s ease-out;
+}
+
+@keyframes detail-enter {
+ from {
+ opacity: 0;
+ transform: translate(-50%, -50%) scale(0.92);
+ }
+ to {
+ opacity: 1;
+ transform: translate(-50%, -50%) scale(1);
+ }
}
.detail-close {
position: absolute;
- top: 0.5rem;
- right: 0.5rem;
+ top: 0.75rem;
+ right: 0.75rem;
z-index: 1;
- filter: invert(1);
+ background: rgba(0, 0, 0, 0.5);
+ border: 1px solid rgba(255, 255, 255, 0.1);
+ color: var(--text-primary);
+ width: 2rem;
+ height: 2rem;
+ border-radius: 50%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ cursor: pointer;
+ font-size: 0.8rem;
+ transition: all var(--transition);
+}
+
+.detail-close:hover {
+ background: rgba(255, 255, 255, 0.15);
}
.detail-layout {
@@ -102,12 +468,13 @@
}
.detail-image {
- flex: 0 0 240px;
+ flex: 0 0 260px;
}
.detail-image img {
width: 100%;
- border-radius: 8px;
+ border-radius: var(--radius);
+ box-shadow: var(--shadow);
}
.detail-info {
@@ -115,33 +482,151 @@
min-width: 0;
}
-.detail-info h2 {
- margin-top: 0;
- margin-bottom: 0.75rem;
+.detail-header {
+ margin-bottom: 1rem;
+}
+
+.detail-header h2 {
+ margin: 0 0 0.75rem;
font-size: 1.4rem;
+ line-height: 1.3;
}
.detail-meta {
display: flex;
flex-wrap: wrap;
gap: 0.4rem;
- margin-bottom: 1rem;
}
-.detail-info p {
- margin-bottom: 0.5rem;
- font-size: 0.9rem;
- line-height: 1.4;
+.meta-badge {
+ display: inline-flex;
+ align-items: center;
+ gap: 0.3rem;
+ font-size: 0.75rem;
+ font-weight: 600;
+ padding: 0.25rem 0.6rem;
+ border-radius: 100px;
+ background: var(--bg-hover);
+ color: var(--text-secondary);
+ border: 1px solid var(--border);
}
-.modal-backdrop {
- position: fixed;
- inset: 0;
- z-index: 1040;
- background: rgba(0, 0, 0, 0.6);
+.meta-badge.category { }
+
+.meta-badge.category.agent {
+ background: rgba(79, 195, 247, 0.15);
+ color: #4fc3f7;
+ border-color: rgba(79, 195, 247, 0.3);
}
-@media (max-width: 600px) {
+.meta-badge.category.spell {
+ background: rgba(206, 147, 216, 0.15);
+ color: #ce93d8;
+ border-color: rgba(206, 147, 216, 0.3);
+}
+
+.meta-badge.category.token {
+ background: rgba(255, 213, 79, 0.15);
+ color: #ffd54f;
+ border-color: rgba(255, 213, 79, 0.3);
+}
+
+.meta-badge.cost {
+ background: rgba(255, 215, 0, 0.12);
+ color: var(--gold);
+ border-color: rgba(255, 215, 0, 0.3);
+}
+
+.meta-badge.attack {
+ background: rgba(239, 83, 80, 0.15);
+ color: #ef5350;
+ border-color: rgba(239, 83, 80, 0.3);
+}
+
+.meta-badge.health {
+ background: rgba(102, 187, 106, 0.15);
+ color: #66bb6a;
+ border-color: rgba(102, 187, 106, 0.3);
+}
+
+.meta-badge.speed {
+ background: rgba(79, 195, 247, 0.12);
+ color: #4fc3f7;
+ border-color: rgba(79, 195, 247, 0.3);
+}
+
+/* ── Detail Fields ── */
+.detail-field {
+ display: flex;
+ gap: 0.5rem;
+ margin-bottom: 0.6rem;
+ font-size: 0.88rem;
+ line-height: 1.45;
+}
+
+.detail-field.description {
+ background: var(--bg-elevated);
+ padding: 0.6rem 0.75rem;
+ border-radius: var(--radius-sm);
+ border-left: 3px solid var(--accent);
+ margin-top: 0.25rem;
+}
+
+.field-label {
+ flex-shrink: 0;
+ color: var(--text-muted);
+ font-size: 0.8rem;
+ font-weight: 500;
+ min-width: 7.5rem;
+ display: flex;
+ align-items: flex-start;
+ gap: 0.3rem;
+}
+
+.detail-field.description .field-label {
+ min-width: auto;
+ color: var(--accent);
+}
+
+.field-value {
+ color: var(--text-secondary);
+}
+
+.detail-field.description .field-value {
+ color: var(--text-primary);
+ font-style: italic;
+}
+
+/* ── Scrollbar for modal ── */
+.card-detail::-webkit-scrollbar {
+ width: 4px;
+}
+
+.card-detail::-webkit-scrollbar-thumb {
+ background: var(--border);
+ border-radius: 2px;
+}
+
+/* ── Responsive ── */
+@media (max-width: 768px) {
+ .gallery-container {
+ padding: 1rem;
+ }
+
+ .filter-bar {
+ flex-direction: column;
+ }
+
+ .filter-select {
+ width: 100%;
+ min-width: 0;
+ }
+
+ .card-grid {
+ grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
+ gap: 0.75rem;
+ }
+
.detail-layout {
flex-direction: column;
padding: 1rem;
@@ -149,12 +634,36 @@
.detail-image {
flex: 0 0 auto;
- max-width: 200px;
+ max-width: 180px;
margin: 0 auto;
}
- .card-grid {
- grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
- gap: 0.75rem;
+ .card-detail {
+ max-height: 90vh;
+ }
+
+ .tab {
+ padding: 0.4rem 0.8rem;
+ font-size: 0.8rem;
+ }
+}
+
+@media (max-width: 480px) {
+ .card-grid {
+ grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
+ gap: 0.5rem;
+ }
+
+ .category-tabs {
+ gap: 0.3rem;
+ }
+
+ .tab {
+ padding: 0.35rem 0.65rem;
+ font-size: 0.75rem;
+ }
+
+ .tab i {
+ display: none;
}
}
diff --git a/Chrono/Web/Pages/Counter.razor b/Chrono/Web/Pages/Counter.razor
deleted file mode 100644
index 372905f..0000000
--- a/Chrono/Web/Pages/Counter.razor
+++ /dev/null
@@ -1,19 +0,0 @@
-@page "/counter"
-
-Counter
-
-Weather
-
-
-
-
-}
-
-@code {
- private WeatherForecast[]? forecasts;
-
- protected override async Task OnInitializedAsync()
- {
- forecasts = await Http.GetFromJsonAsync("sample-data/weather.json");
- }
-
- public class WeatherForecast
- {
- public DateOnly Date { get; set; }
-
- public int TemperatureC { get; set; }
-
- public string? Summary { get; set; }
-
- public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
- }
-
-}
\ No newline at end of file
diff --git a/Chrono/Web/Web.csproj b/Chrono/Web/Web.csproj
index 24ebf4a..4316e38 100644
--- a/Chrono/Web/Web.csproj
+++ b/Chrono/Web/Web.csproj
@@ -12,11 +12,24 @@
-
+
+
+
+
+
+
+
+
+
+
<_BuildProject>$(MSBuildThisFileDirectory)..\Build\Build.csproj
+
+
+
+
diff --git a/Chrono/Web/_Imports.razor b/Chrono/Web/_Imports.razor
index eadfbc1..df57159 100644
--- a/Chrono/Web/_Imports.razor
+++ b/Chrono/Web/_Imports.razor
@@ -1,5 +1,6 @@
@using System.Net.Http
@using System.Net.Http.Json
+@using Chrono.Model
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
diff --git a/Chrono/Web/wwwroot/css/app.css b/Chrono/Web/wwwroot/css/app.css
index fe44b1d..e9674f0 100644
--- a/Chrono/Web/wwwroot/css/app.css
+++ b/Chrono/Web/wwwroot/css/app.css
@@ -1,115 +1,104 @@
+:root {
+ --bg-primary: #0b0b1a;
+ --bg-surface: #141428;
+ --bg-elevated: #1c1c3a;
+ --bg-hover: #252548;
+ --text-primary: #e8e8f0;
+ --text-secondary: #9898b8;
+ --text-muted: #686888;
+ --accent: #6c63ff;
+ --accent-glow: rgba(108, 99, 255, 0.3);
+ --gold: #ffd700;
+ --gold-glow: rgba(255, 215, 0, 0.4);
+ --border: #2a2a4a;
+ --radius: 10px;
+ --radius-sm: 6px;
+ --shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
+ --transition: 0.2s ease;
+}
+
+* {
+ scrollbar-width: thin;
+ scrollbar-color: #2a2a4a transparent;
+}
+
+::-webkit-scrollbar { width: 5px; }
+::-webkit-scrollbar-track { background: transparent; }
+::-webkit-scrollbar-thumb { background: #2a2a4a; border-radius: 3px; }
+::-webkit-scrollbar-thumb:hover { background: #3a3a5a; }
+
html, body {
- font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
+ background: var(--bg-primary);
+ color: var(--text-primary);
+ min-height: 100vh;
}
-h1:focus {
- outline: none;
+h1, h2, h3, h4, h5, h6 {
+ font-weight: 700;
+ letter-spacing: -0.02em;
}
-a, .btn-link {
- color: #0071c1;
+h1 {
+ font-size: 2rem;
+ background: linear-gradient(135deg, #e8e8f0 0%, #6c63ff 100%);
+ -webkit-background-clip: text;
+ -webkit-text-fill-color: transparent;
+ background-clip: text;
}
+a, .btn-link { color: var(--accent); }
+
.btn-primary {
- color: #fff;
- background-color: #1b6ec2;
- border-color: #1861ac;
+ background: var(--accent);
+ border-color: var(--accent);
}
-.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
- box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
+.btn-primary:hover {
+ background: #7b73ff;
+ border-color: #7b73ff;
+}
+
+.btn-outline-secondary {
+ color: var(--text-secondary);
+ border-color: var(--border);
+}
+
+.btn-outline-secondary:hover {
+ background: var(--bg-hover);
+ border-color: var(--accent);
+ color: var(--text-primary);
+}
+
+.form-control, .form-select {
+ background: var(--bg-surface);
+ border-color: var(--border);
+ color: var(--text-primary);
+ border-radius: var(--radius-sm);
+ font-size: 0.9rem;
+}
+
+.form-control:focus, .form-select:focus {
+ background: var(--bg-elevated);
+ border-color: var(--accent);
+ color: var(--text-primary);
+ box-shadow: 0 0 0 0.2rem var(--accent-glow);
+}
+
+.form-control::placeholder {
+ color: var(--text-muted);
}
.content {
- padding-top: 1.1rem;
+ padding-top: 1.5rem;
}
-.valid.modified:not([type=checkbox]) {
- outline: 1px solid #26b050;
+.sidebar {
+ background-image: linear-gradient(180deg, #0d0d2b 0%, #1a0a2e 70%) !important;
}
-.invalid {
- outline: 1px solid red;
+.alert-info {
+ background: var(--bg-surface);
+ border-color: var(--border);
+ color: var(--text-secondary);
}
-
-.validation-message {
- color: red;
-}
-
-#blazor-error-ui {
- color-scheme: light only;
- background: lightyellow;
- bottom: 0;
- box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
- box-sizing: border-box;
- display: none;
- left: 0;
- padding: 0.6rem 1.25rem 0.7rem 1.25rem;
- position: fixed;
- width: 100%;
- z-index: 1000;
-}
-
- #blazor-error-ui .dismiss {
- cursor: pointer;
- position: absolute;
- right: 0.75rem;
- top: 0.5rem;
- }
-
-.blazor-error-boundary {
- background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
- padding: 1rem 1rem 1rem 3.7rem;
- color: white;
-}
-
- .blazor-error-boundary::after {
- content: "An error has occurred."
- }
-
-.loading-progress {
- position: absolute;
- display: block;
- width: 8rem;
- height: 8rem;
- inset: 20vh 0 auto 0;
- margin: 0 auto 0 auto;
-}
-
- .loading-progress circle {
- fill: none;
- stroke: #e0e0e0;
- stroke-width: 0.6rem;
- transform-origin: 50% 50%;
- transform: rotate(-90deg);
- }
-
- .loading-progress circle:last-child {
- stroke: #1b6ec2;
- stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%;
- transition: stroke-dasharray 0.05s ease-in-out;
- }
-
-.loading-progress-text {
- position: absolute;
- text-align: center;
- font-weight: bold;
- inset: calc(20vh + 3.25rem) 0 auto 0.2rem;
-}
-
- .loading-progress-text:after {
- content: var(--blazor-load-percentage-text, "Loading");
- }
-
-code {
- color: #c02d76;
-}
-
-.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
- color: var(--bs-secondary-color);
- text-align: end;
-}
-
-.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
- text-align: start;
-}
\ No newline at end of file
diff --git a/Chrono/Web/wwwroot/index.html b/Chrono/Web/wwwroot/index.html
index 82908f1..b92d16b 100644
--- a/Chrono/Web/wwwroot/index.html
+++ b/Chrono/Web/wwwroot/index.html
@@ -6,6 +6,10 @@
Web
+
+
+
+
diff --git a/Chrono/Web/wwwroot/sample-data/cards.json b/Chrono/Web/wwwroot/sample-data/cards.json
deleted file mode 100644
index 144f23c..0000000
--- a/Chrono/Web/wwwroot/sample-data/cards.json
+++ /dev/null
@@ -1,4503 +0,0 @@
-{
- "cards": [
- {
- "name": "A'kon, Starry Diviner",
- "category": "Agent",
- "cost": 1,
- "attack": 2,
- "health": 2,
- "description": "Enter or Last Gasp: Create a Return to Stillness in hand.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Somber Astronomer",
- "imageFile": "A'kon, Starry Diviner.png"
- },
- {
- "name": "Aardvark Precinct Captain",
- "category": "Agent",
- "cost": 2,
- "attack": 0,
- "health": 1,
- "description": "Enter: Sprout 1 for each other ally.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Sprout",
- "Shift"
- ],
- "immortalizeTo": [
- "Tino, Majestic Stumbler"
- ],
- "immortalizeWhen": "Round End: I see 5+ other allies. When I Immortalize, Shift to Deadly Fauna.",
- "imageFile": "Aardvark Precinct Captain.png"
- },
- {
- "name": "Affront to Nature",
- "category": "Spell",
- "cost": 9,
- "description": "Allies Flourish 3 times. Enemies Decay 3 times.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Affront to Nature.png"
- },
- {
- "name": "Agents",
- "category": "Redirect",
- "archetypes": []
- },
- {
- "name": "Aggressive Recycling",
- "category": "Spell",
- "cost": 2,
- "description": "Discard 2 to play. Draw 2. Sacrifice 3: Instead, Discard 3 to play. Draw 3.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Aggressive Recycling.png"
- },
- {
- "name": "Alina Who Cuts the Strings",
- "category": "Agent",
- "cost": 4,
- "attack": 3,
- "health": 2,
- "description": "Play: (C) Mute an Agent. Activate: (C) Destroy a Mute|Muted Agent.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Destiny Ripper",
- "imageFile": "Alina Who Cuts the Strings.png"
- },
- {
- "name": "Alina, the Overflowing Cup",
- "category": "Agent",
- "cost": 4,
- "attack": 3,
- "health": 5,
- "description": "Enter or Round Start: Create a 0 cost Transient Blessed Soup in hand.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Bearer of the Broth",
- "imageFile": "Alina, the Overflowing Cup.png"
- },
- {
- "name": "Appeal to the Scrolls",
- "category": "Spell",
- "cost": 5,
- "description": "If you have 1 or less Agents, I cost 2 less. Draw 2 Actions.",
- "faction": "Silence",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Appeal to the Scrolls.png"
- },
- {
- "name": "Armageddonaut",
- "category": "Agent",
- "cost": 5,
- "attack": 6,
- "health": 6,
- "description": "Cleave. Enter or when I destroy an Agent: Create a Circle of Strife in hand.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Hungry Engine",
- "imageFile": "Armageddonaut.png"
- },
- {
- "name": "Army of the Sun",
- "category": "Spell",
- "cost": 13,
- "description": "Summon the Strongest Agent in your deck now and at each Round Start.",
- "faction": "Sungrace",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Army of the Sun.png"
- },
- {
- "name": "Arra, Saurian Broodmother",
- "category": "Agent",
- "cost": 1,
- "attack": 1,
- "health": 2,
- "description": "Activate: The next ally that enters play this round Flourish|Flourishes. The first time each round another ally Flourish|Flourishes, I Flourish.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Egg Tender",
- "imageFile": "Arra, Saurian Broodmother.png"
- },
- {
- "name": "Awakened Security System",
- "category": "Agent",
- "cost": 2,
- "attack": 1,
- "health": 3,
- "description": "Activate: Reduce an Agent's Strength by my Strength this round.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Wom, Sweet Wom"
- ],
- "immortalizeWhen": "I see 3+ Agents with 0 Strength in play.",
- "imageFile": "Awakened Security System.png"
- },
- {
- "name": "B.O.O.F.",
- "category": "Agent",
- "cost": 2,
- "attack": 3,
- "health": 2,
- "description": "Enter: Draw a 1 cost Agent from your deck. Round End: If I do not see a 1 cost ally in play, Draw a 1 cost Agent from your deck.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Draw"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Enhanced Retriever",
- "imageFile": "B.O.O.F..png"
- },
- {
- "name": "Backhand",
- "category": "Spell",
- "cost": 2,
- "description": "Destroy an Agent with 2 or less Strength or Durability.",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Backhand.png"
- },
- {
- "name": "Balanced Blade",
- "category": "Spell",
- "cost": 3,
- "description": "The next time an ally Strikes an enemy this round, first grant it Strength equal to its target's Durability.",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Balanced Blade.png"
- },
- {
- "name": "Bareknuckle Inquisitor",
- "category": "Agent",
- "cost": 5,
- "attack": 3,
- "health": 8,
- "description": "Confront. Siphon. Enter: Deal 4 to me.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Heal"
- ],
- "immortalizeTo": [
- "Da'Kad, Heretic Crusher"
- ],
- "immortalizeWhen": "I've seen allies or your Core Heal 6+.",
- "imageFile": "Bareknuckle Inquisitor.png"
- },
- {
- "name": "Bathe in Flames",
- "category": "Spell",
- "cost": 2,
- "description": "Deal 2 to an ally to deal 2 to an Agent. Shift to Volcanic Rivers.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Bathe in Flames.png"
- },
- {
- "name": "Battleharts",
- "category": "Agent",
- "cost": 2,
- "attack": 0,
- "health": 1,
- "description": "Overpower. When another ally enters play, I Flourish.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Glade Grazers",
- "imageFile": "Battleharts.png"
- },
- {
- "name": "Bearer of the Broth",
- "category": "Agent",
- "cost": 4,
- "attack": 2,
- "health": 4,
- "description": "Enter: Create a 0 cost Transient Blessed Soup in hand.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Alina, the Overflowing Cup"
- ],
- "immortalizeWhen": "You've played Blessed Soup 2+ times this game.",
- "imageFile": "Bearer of the Broth.png"
- },
- {
- "name": "Bill, First Point of Contact",
- "category": "Agent",
- "cost": 4,
- "attack": 3,
- "health": 4,
- "description": "Enter, Deplete, or Round Start: Create a Transient Scouter Round in hand.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Enthusiastic Bot-Poke",
- "imageFile": "Bill, First Point of Contact.png"
- },
- {
- "name": "Blazing Shifter",
- "category": "Agent",
- "cost": 4,
- "attack": 2,
- "health": 2,
- "description": "Enter: Shift to Volcanic Rivers. I have +1/+1 for each Timeline in the Timeline Stack.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "The Unstoppable Flow"
- ],
- "immortalizeWhen": "I have 7+ Strength.",
- "imageFile": "Blazing Shifter.png"
- },
- {
- "name": "Blessed Soup",
- "category": "Spell",
- "cost": 2,
- "description": "Heal an Agent or Core 2. Draw 1.",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Blessed Soup.png"
- },
- {
- "name": "Bloodbolt",
- "category": "Spell",
- "cost": 3,
- "description": "Deal 2 to an Agent or Core. Breakdown 15: Instead, deal 3.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Bloodbolt.png"
- },
- {
- "name": "Bloodline Tracker",
- "category": "Agent",
- "cost": 1,
- "attack": 1,
- "health": 1,
- "description": "Activate: Sacrifice 1: (C) Deal 1 to the enemy Core.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Master of Ceremonies"
- ],
- "immortalizeWhen": "I've dealt 6+ damage.",
- "imageFile": "Bloodline Tracker.png"
- },
- {
- "name": "Bloodlust",
- "category": "Spell",
- "cost": 2,
- "description": "An ally Strikes a damaged Agent. Create a Transient Fueled by Pain in hand.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Bloodlust.png"
- },
- {
- "name": "Bloom",
- "category": "Spell",
- "cost": 2,
- "description": "Give an ally +0/+2 this round. Sprout 1.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Bloom.png"
- },
- {
- "name": "Boatswain Corvus",
- "category": "Agent",
- "cost": 7,
- "attack": 6,
- "health": 10,
- "description": "Overpower. Round Start: Deal 1 to the enemy Core twice. When you deal non-combat damage to the enemy Core, grant the weakest enemy Exposed. Core Strike: Deal 3 to all enemies and t...",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Gilded Behemoth",
- "imageFile": "Boatswain Corvus.png"
- },
- {
- "name": "Boof, Ever Loyal",
- "category": "Agent",
- "cost": 1,
- "attack": 3,
- "health": 5,
- "description": "Enter: Deal 4 to me. Last Gasp: Return the last Action that was put into your Graveyard this round to hand.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Temple Guard Hound",
- "imageFile": "Boof, Ever Loyal.png"
- },
- {
- "name": "Boof, Lonely and Proud",
- "category": "Agent",
- "cost": 2,
- "attack": 3,
- "health": 3,
- "description": "Confront.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Territorial Pack",
- "imageFile": "Boof, Lonely and Proud.png"
- },
- {
- "name": "Boof, the Champion",
- "category": "Agent",
- "cost": 2,
- "attack": 4,
- "health": 4,
- "description": "Overpower.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Pit Dog",
- "imageFile": "Boof, the Champion.png"
- },
- {
- "name": "Boof, the Listener",
- "category": "Agent",
- "cost": 2,
- "attack": 2,
- "health": 1,
- "description": "Enter and Last Gasp: Draw a random 1, 2, or 3 cost Action from your deck.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [
- "Draw"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Librarian's Assistant",
- "imageFile": "Boof, the Listener.png"
- },
- {
- "name": "Braindead Bouncer",
- "category": "Agent",
- "cost": 1,
- "attack": 3,
- "health": 2,
- "description": "Round End: Decay.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [
- "Decay",
- "Shift"
- ],
- "immortalizeTo": [
- "Wilfred, Lobotomizer"
- ],
- "immortalizeWhen": "Round Start: I see Voiceless Sky.",
- "imageFile": "Braindead Bouncer.png"
- },
- {
- "name": "Brant the Bloody",
- "category": "Agent",
- "cost": 1,
- "attack": 2,
- "health": 3,
- "description": "Confront. Agents I Strike Bleed 1. When an enemy Bleeds, I Flourish.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Persistent Squire",
- "imageFile": "Brant the Bloody.png"
- },
- {
- "name": "BREAK AND SHATTER!",
- "category": "Spell",
- "cost": 6,
- "description": "Surge. Give each ally +1/+1 for each point of Durability it is missing and Overpower this round.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "BREAK AND SHATTER!.png"
- },
- {
- "name": "Bright-Eyed Supplicant",
- "category": "Agent",
- "cost": 3,
- "attack": 2,
- "health": 4,
- "description": "Confront.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Overseer of Trials"
- ],
- "immortalizeWhen": "I've survived damage twice.",
- "imageFile": "Bright-Eyed Supplicant.png"
- },
- {
- "name": "Brilliant Martyr",
- "category": "Agent",
- "cost": 1,
- "attack": 2,
- "health": 1,
- "description": "Last Gasp: Shift to Star Siphon.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "Quaid, the Willing"
- ],
- "immortalizeWhen": "I see your Energy Reserve Overflow.",
- "imageFile": "Brilliant Martyr.png"
- },
- {
- "name": "Bronk the Calm",
- "category": "Agent",
- "cost": 3,
- "attack": 3,
- "health": 4,
- "description": "Enter: Summon a Wolf and Shift to Abundant Growth.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Panicked Refugee",
- "imageFile": "Bronk the Calm.png"
- },
- {
- "name": "Bronk the Guide",
- "category": "Agent",
- "cost": 3,
- "attack": 3,
- "health": 3,
- "description": "Enter: Shift to Erudite Beacon. Activate: Shift to Erudite Beacon.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Enlightened Refugee",
- "imageFile": "Bronk the Guide.png"
- },
- {
- "name": "Brutal Reveler",
- "category": "Agent",
- "cost": 7,
- "attack": 6,
- "health": 5,
- "description": "Overpower. The first time each round anything takes damage, create a Transient Bloodbolt in hand.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Tyar, Benevolent Ruler"
- ],
- "immortalizeWhen": "Breakdown 10.",
- "imageFile": "Brutal Reveler.png"
- },
- {
- "name": "Built to Burn",
- "category": "Spell",
- "cost": 5,
- "description": "Summon a Temporary exact copy of an ally.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Built to Burn.png"
- },
- {
- "name": "Bullseye Bounty Hunter",
- "category": "Agent",
- "cost": 4,
- "attack": 4,
- "health": 3,
- "description": "Blitz. Cleave. Play: Grant two enemies Exposed.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Sareh, Rebel Strategist"
- ],
- "immortalizeWhen": "I've destroyed two enemies.",
- "imageFile": "Bullseye Bounty Hunter.png"
- },
- {
- "name": "Burrowing Beetles",
- "category": "Agent",
- "cost": 1,
- "attack": 1,
- "health": 1,
- "description": "Evasive.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [
- "The Cycle Embodied"
- ],
- "immortalizeWhen": "I've seen allies Flourish 4+ times.",
- "imageFile": "Burrowing Beetles.png"
- },
- {
- "name": "Bury the Evidence",
- "category": "Spell",
- "cost": 3,
- "description": "An enemy Decays twice, or an ally Decays twice to Draw 2.",
- "faction": "Silence",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Bury the Evidence.png"
- },
- {
- "name": "By the Numbers",
- "category": "Spell",
- "cost": 2,
- "description": "Reveal the top card of both decks. Create a copy of the card with the higher cost in hand, then shuffle both cards into their respective decks. In a tie, create a copy of both card...",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "By the Numbers.png"
- },
- {
- "name": "Canine Adjutant",
- "category": "Agent",
- "cost": 2,
- "attack": 2,
- "health": 1,
- "description": "Evasive. Core Strike: Erase the enemy Graveyard.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Specialist Boof"
- ],
- "immortalizeWhen": "I've Struck the enemy Core.",
- "imageFile": "Canine Adjutant.png"
- },
- {
- "name": "Cascading Serenity",
- "category": "Spell",
- "cost": 3,
- "description": "Destroy an Agent with cost 2 or less. Create a Return to Stillness in hand.",
- "faction": "Silence",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Cascading Serenity.png"
- },
- {
- "name": "Chain",
- "category": "Rule",
- "description": "Effects are stacked until they are able to be resolved. This enables Immediate and Fast reactions to be added onto the stack for reactive gameplay.",
- "archetypes": []
- },
- {
- "name": "Channel Vigor",
- "category": "Spell",
- "cost": 2,
- "description": "Deal 1 to an ally to give another ally +3/+1 this round.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Channel Vigor.png"
- },
- {
- "name": "Chaos Conductor Boltz",
- "category": "Agent",
- "cost": 5,
- "attack": 6,
- "health": 4,
- "description": "Blitz. When you play an Action, gain 1 Reserve Energy. Round Start: Create a Transient Sunshock in hand for each Reserve Energy you have.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Jury of the Second Law",
- "imageFile": "Chaos Conductor Boltz.png"
- },
- {
- "name": "Chaos Control",
- "category": "Spell",
- "cost": 3,
- "description": "Give an ally +0/+3 to give an enemy -3/-0 this round.",
- "faction": "Sungrace",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Chaos Control.png"
- },
- {
- "name": "Chronal Quarantine",
- "category": "Spell",
- "cost": 7,
- "description": "Phase enemies. Phase allies. If The One True Timeline is active, allies Phase in.",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Chronal Quarantine.png"
- },
- {
- "name": "Chronal Scan",
- "category": "Spell",
- "cost": 3,
- "description": "Discard 1 to play. Create a Transient copy in hand of an ally now and at next Round Start.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Chronal Scan.png"
- },
- {
- "name": "Chronicle of the One",
- "category": "Spell",
- "cost": 1,
- "description": "Create a Transient Out of Line, The Firm Hand, or Prayer of Rescue in hand.",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Chronicle of the One.png"
- },
- {
- "name": "Chronosynthesis",
- "category": "Spell",
- "cost": 8,
- "description": "Sprout 1 for every time you have Sprout|Sprouted this game.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Chronosynthesis.png"
- },
- {
- "name": "Circle of Strife",
- "category": "Spell",
- "cost": 2,
- "description": "Deal 1 to an Agent. Create a Transient Bloodlust in hand.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Circle of Strife.png"
- },
- {
- "name": "Clarion, Deepest Breath",
- "category": "Agent",
- "cost": 6,
- "attack": 6,
- "health": 6,
- "description": "When you play an Action, (C) Shift to Volcanic Rivers. Your Actions and Timelines you Shift to have Siphon.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Magmatic Tether",
- "imageFile": "Clarion, Deepest Breath.png"
- },
- {
- "name": "Conscientious Overwrite",
- "category": "Spell",
- "cost": 2,
- "description": "Deal 2 to an Agent. Create a Scouter Round in hand.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Conscientious Overwrite.png"
- },
- {
- "name": "Consequence Admin Cain",
- "category": "Agent",
- "cost": 4,
- "attack": 2,
- "health": 1,
- "description": "Play: [icon]Phase an Agent. Agents cannot Phase in while I am in play.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Rewound"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Karmic Debtor",
- "imageFile": "Consequence Admin Cain.png"
- },
- {
- "name": "Containment Breach",
- "category": "Agent",
- "cost": 5,
- "attack": 2,
- "health": 6,
- "description": "Round Start: Deal 1 to each Agent and Core for each Reserve Energy you have.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Penitent Star"
- ],
- "immortalizeWhen": "I've seen 3+ Agents destroyed.",
- "imageFile": "Containment Breach.png"
- },
- {
- "name": "Convergent Pack",
- "category": "Spell",
- "cost": 4,
- "description": "Shift to Abundant Growth. For every two Timelines in the Timeline Stack, summon an attacking Wolf Confronting the weakest unconfronted enemy.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Convergent Pack.png"
- },
- {
- "name": "Core Set",
- "category": "Set",
- "archetypes": []
- },
- {
- "name": "Core",
- "category": "Rule",
- "archetypes": []
- },
- {
- "name": "Cores",
- "category": "Redirect",
- "archetypes": []
- },
- {
- "name": "Curb the Anomalies",
- "category": "Spell",
- "cost": 6,
- "description": "I cost 1 less if you see The One True Timeline. Mute all Agents this round. Shift to The One True Timeline.",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Curb the Anomalies.png"
- },
- {
- "name": "Curious Acolyte",
- "category": "Agent",
- "cost": 1,
- "attack": 1,
- "health": 3,
- "description": "When I am Phased or Rewound, Draw 1.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Rewound"
- ],
- "immortalizeTo": [
- "Zel, the First Diver"
- ],
- "immortalizeWhen": "I am Phased or Rewound.",
- "imageFile": "Curious Acolyte.png"
- },
- {
- "name": "Da'Kad, Heretic Crusher",
- "category": "Agent",
- "cost": 5,
- "attack": 4,
- "health": 9,
- "description": "Confront. Siphon. Enter: Deal 4 to me. When an ally or your Core heals, Deal 1 to the enemy Core.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Heal"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Bareknuckle Inquisitor",
- "imageFile": "Da'Kad, Heretic Crusher.png"
- },
- {
- "name": "Daville, the Star Song",
- "category": "Agent",
- "cost": 5,
- "attack": 5,
- "health": 5,
- "description": "Activate: Refresh an ally. That ally cannot Refresh again this round. When an ally Deplete|Depletes, if I see Voiceless Sky, give it +3/+3 this round.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Death Jockey",
- "imageFile": "Daville, the Star Song.png"
- },
- {
- "name": "Deadly Fauna",
- "category": "Timeline",
- "description": "All Agents have Overpower.",
- "faction": "Lifeblood",
- "archetypes": []
- },
- {
- "name": "Death Jockey",
- "category": "Agent",
- "cost": 5,
- "attack": 4,
- "health": 4,
- "description": "Activate: Refresh an ally. That ally cannot Refresh again this round.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Daville, the Star Song"
- ],
- "immortalizeWhen": "I've seen allies Refresh 4+ times.",
- "imageFile": "Death Jockey.png"
- },
- {
- "name": "Debris Collector",
- "category": "Agent",
- "cost": 4,
- "attack": 1,
- "health": 1,
- "description": "I have +1/+1 for every Energy Crystal you have.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Living Comet"
- ],
- "immortalizeWhen": "I have 10+ Strength.",
- "imageFile": "Debris Collector.png"
- },
- {
- "name": "Dedicated Missionary",
- "category": "Agent",
- "cost": 6,
- "attack": 3,
- "health": 2,
- "description": "Evasive. I cost 1 less for each copy of The One True Timeline in the Timeline Stack. Enter: Create a The Firm Hand in hand.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Slow Convert",
- "imageFile": "Dedicated Missionary.png"
- },
- {
- "name": "Denizen of Flames",
- "category": "Agent",
- "cost": 1,
- "attack": 2,
- "health": 1,
- "description": "Enter: Shift to Volcanic Rivers.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "Magnus Lavaborn"
- ],
- "immortalizeWhen": "I see you Shift to Volcanic Rivers while Volcanic Rivers is the current Timeline.",
- "imageFile": "Denizen of Flames.png"
- },
- {
- "name": "Desperate Primordial",
- "category": "Agent",
- "cost": 2,
- "attack": 4,
- "health": 2,
- "description": "Overpower. Temporary.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Vera, Original Proof"
- ],
- "immortalizeWhen": "I've seen the enemy Core take damage twice.",
- "imageFile": "Desperate Primordial.png"
- },
- {
- "name": "Destiny Ripper",
- "category": "Agent",
- "cost": 4,
- "attack": 2,
- "health": 1,
- "description": "Play: (C) Mute an Agent.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Alina Who Cuts the Strings"
- ],
- "immortalizeWhen": "I've seen 3+ Agents Mute|Muted.",
- "imageFile": "Destiny Ripper.png"
- },
- {
- "name": "Devoted Bloodletter",
- "category": "Agent",
- "cost": 5,
- "attack": 4,
- "health": 5,
- "description": "The first time each round I deal or take damage, Draw 1 and Shift to Torment.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [
- "Shift",
- "Draw"
- ],
- "immortalizeTo": [
- "Opener of the Way"
- ],
- "immortalizeWhen": "I've Drawn 3+ cards.",
- "imageFile": "Devoted Bloodletter.png"
- },
- {
- "name": "Devourer Spawn",
- "category": "Agent",
- "cost": 10,
- "attack": 10,
- "health": 10,
- "description": "For each Timeline in the Timeline Stack, I gain a random positive keyword.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "Time Devourer Soval"
- ],
- "immortalizeWhen": "I've gained 7+ keywords.",
- "imageFile": "Devourer Spawn.png"
- },
- {
- "name": "Dhali, Bearer of Memories",
- "category": "Agent",
- "cost": 6,
- "attack": 4,
- "health": 5,
- "description": "Round End: Create in hand a random Action that started in your deck. When you play an Action you've already played this game, copy it.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Overburdened Scribe",
- "imageFile": "Dhali, Bearer of Memories.png"
- },
- {
- "name": "Discarded",
- "category": "Rule",
- "description": "Remove this card from your hand.",
- "archetypes": []
- },
- {
- "name": "Disciplined Student",
- "category": "Agent",
- "cost": 3,
- "attack": 2,
- "health": 1,
- "description": "Enter: Create in hand a random Action that started in your deck.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "True Believer"
- ],
- "immortalizeWhen": "I see Voiceless Sky.",
- "imageFile": "Disciplined Student.png"
- },
- {
- "name": "Divergence Assasin",
- "category": "Agent",
- "cost": 6,
- "attack": 6,
- "health": 3,
- "description": "Blitz. I cost 1 less for each time you've Phased or Rewound an Agent this game. Strike: Rewind me.]]",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Rewound"
- ],
- "immortalizeTo": [
- "Masa, Time-Lost"
- ],
- "immortalizeWhen": "You've Phased or Rewound Agents 6+ times this game."
- },
- {
- "name": "Doctor Mirthram Remora",
- "category": "Agent",
- "cost": 4,
- "attack": 3,
- "health": 4,
- "description": "Enter and Overflow: Heal allies and your Core 1. Round End: Deal damage to enemies and the enemy Core equal to each time you've healed your Core this round.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Heal"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Starfueled Medics",
- "imageFile": "Doctor Mirthram Remora.png"
- },
- {
- "name": "Draw",
- "category": "Keyword",
- "description": "Place the card from the top of your deck into your hand.",
- "archetypes": []
- },
- {
- "name": "Dyson, the Aspirant",
- "category": "Agent",
- "cost": 2,
- "attack": 3,
- "health": 3,
- "description": "Confront. Enter: Shift to Star Siphon.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Kinetic Absorber",
- "imageFile": "Dyson, the Aspirant.png"
- },
- {
- "name": "E-Law, Boot Shepherd",
- "category": "Agent",
- "cost": 1,
- "attack": 3,
- "health": 2,
- "description": "Play: Discard 1 to Draw 1. Round Start: Draw 1.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Draw",
- "Discarded"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Efficient Scrapbot",
- "imageFile": "E-Law, Boot Shepherd.png"
- },
- {
- "name": "Efficient Scrapbot",
- "category": "Agent",
- "cost": 1,
- "attack": 2,
- "health": 1,
- "description": "Play: Discard 1 to Draw 1.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Draw",
- "Discarded"
- ],
- "immortalizeTo": [
- "E-Law, Boot Shepherd"
- ],
- "immortalizeWhen": "I've seen you Draw 6+ cards.",
- "imageFile": "Efficient Scrapbot.png"
- },
- {
- "name": "Egg Tender",
- "category": "Agent",
- "cost": 1,
- "attack": 0,
- "health": 1,
- "description": "Activate: The next ally that enters play this round Flourish|Flourishes.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [
- "Arra, Saurian Broodmother"
- ],
- "immortalizeWhen": "I've seen allies Flourish 4+ times.",
- "imageFile": "Egg Tender.png"
- },
- {
- "name": "Enhanced Retriever",
- "category": "Agent",
- "cost": 2,
- "attack": 2,
- "health": 1,
- "description": "Enter: Draw a 1 cost Agent from your deck.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Draw"
- ],
- "immortalizeTo": [
- "B.O.O.F."
- ],
- "immortalizeWhen": "Round End: I see a 1 cost ally in play.",
- "imageFile": "Enhanced Retriever.png"
- },
- {
- "name": "Enlightened Refugee",
- "category": "Agent",
- "cost": 3,
- "attack": 2,
- "health": 2,
- "description": "Enter: Shift to Erudite Beacon.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Shift",
- "Draw"
- ],
- "immortalizeTo": [
- "Bronk the Guide"
- ],
- "immortalizeWhen": "I've seen you Draw 6+ cards.",
- "imageFile": "Enlightened Refugee.png"
- },
- {
- "name": "Enlightened Survivor",
- "category": "Agent",
- "cost": 3,
- "attack": 4,
- "health": 5,
- "description": "Rejuvenate.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Stalwart Champion",
- "imageFile": "Enlightened Survivor.png"
- },
- {
- "name": "Enthusiastic Bot-Poke",
- "category": "Agent",
- "cost": 4,
- "attack": 2,
- "health": 3,
- "description": "Enter or Round Start: Create a Transient Scouter Round in hand.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Bill, First Point of Contact"
- ],
- "immortalizeWhen": "I see 3+ allied Pocket Scouts in play.",
- "imageFile": "Enthusiastic Bot-Poke.png"
- },
- {
- "name": "Entropy's End",
- "category": "Spell",
- "cost": 7,
- "description": "Revive an Agent.",
- "faction": "Sungrace",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Entropy's End.png"
- },
- {
- "name": "Erudite Beacon",
- "category": "Timeline",
- "description": "When you Shift here, draw 1. Round Start: Players draw 1.",
- "faction": "Singularity",
- "archetypes": []
- },
- {
- "name": "Eruption Incarnate",
- "category": "Agent",
- "cost": 2,
- "attack": 5,
- "health": 5,
- "description": "Overpower.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Hidden Locus",
- "imageFile": "Eruption Incarnate.png"
- },
- {
- "name": "Evolution Incarnate",
- "category": "Agent",
- "cost": 5,
- "attack": 6,
- "health": 6,
- "description": "Confront. Enter or Round End: Shift to Deadly Fauna.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Harbinger of Power",
- "imageFile": "Evolution Incarnate.png"
- },
- {
- "name": "Fast",
- "category": "Keyword",
- "description": "This spell can be reacted to.",
- "archetypes": []
- },
- {
- "name": "Fervent Follower",
- "category": "Agent",
- "cost": 1,
- "attack": 1,
- "health": 1,
- "description": "Round End: I Flourish. When I see a Shift to a Timeline other than The One True Timeline, deal 1 to me.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Flourish",
- "Shift"
- ],
- "immortalizeTo": [
- "Pontifex Dhabu"
- ],
- "immortalizeWhen": "I have 6+ Strength.",
- "imageFile": "Fervent Follower.png"
- },
- {
- "name": "Fervent Mycologist",
- "category": "Agent",
- "cost": 1,
- "attack": 1,
- "health": 1,
- "description": "Evasive.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Sprout"
- ],
- "immortalizeTo": [
- "Jenny, Sower of Spores"
- ],
- "immortalizeWhen": "I've Struck the enemy Core.",
- "imageFile": "Fervent Mycologist.png"
- },
- {
- "name": "Flourish",
- "category": "Keyword",
- "description": "Grant this Agent +1/+1.",
- "archetypes": []
- },
- {
- "name": "Focused Adaptation",
- "category": "Spell",
- "cost": 4,
- "description": "Give an ally \\\"The next time I would be destroyed, instead heal me to full and heal your Core the same amount\\\" this round.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Focused Adaptation.png"
- },
- {
- "name": "Forest Recluse",
- "category": "Agent",
- "cost": 3,
- "attack": 3,
- "health": 2,
- "description": "Play: (C) Deplete an enemy.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Witch of the Woods"
- ],
- "immortalizeWhen": "I've seen Agents Deplete 4+ times.",
- "imageFile": "Forest Recluse.png"
- },
- {
- "name": "Fractal Phantasm",
- "category": "Agent",
- "cost": 2,
- "attack": 2,
- "health": 1,
- "description": "Temporary. Last Gasp: The next time you Shift, revive me and grant copies of me *everywhere* +1/+0.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "Quicksilver Khaela"
- ],
- "immortalizeWhen": "I have 4+ Strength.",
- "imageFile": "Fractal Phantasm.png"
- },
- {
- "name": "Frontline Fellowship",
- "category": "Spell",
- "cost": 4,
- "description": "Disarm the strongest ally to Disarm the two strongest enemies.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Frontline Fellowship.png"
- },
- {
- "name": "Frontline Juggernaut",
- "category": "Agent",
- "cost": 6,
- "attack": 6,
- "health": 5,
- "description": "Overpower. Allied Breakdown sees both Cores.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Kurian, the Breaker"
- ],
- "immortalizeWhen": "Breakdown 10.",
- "imageFile": "Frontline Juggernaut.png"
- },
- {
- "name": "Fueled by Pain",
- "category": "Spell",
- "cost": 2,
- "description": "A damaged ally Strikes an Agent. Create a Transient Circle of Strife in hand.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Fueled by Pain.png"
- },
- {
- "name": "Fuzzy Archivist",
- "category": "Agent",
- "cost": 4,
- "attack": 1,
- "health": 3,
- "description": "Evasive. Activate: Grant an Action in hand Transient, then create an exact copy of it in hand.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Greyl, the Problem"
- ],
- "immortalizeWhen": "I've seen Agents Deplete 4+ times.",
- "imageFile": "Fuzzy Archivist.png"
- },
- {
- "name": "Gardener Apprentice",
- "category": "Agent",
- "cost": 1,
- "attack": 1,
- "health": 1,
- "description": "Enter: Sprout 1.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Sprout"
- ],
- "immortalizeTo": [
- "Horticulturalist Oswald"
- ],
- "immortalizeWhen": "I've seen you Sprout 4+ times.",
- "imageFile": "Gardener Apprentice.png"
- },
- {
- "name": "Gentle Frank",
- "category": "Agent",
- "cost": 8,
- "attack": 9,
- "health": 15,
- "description": "Delay. Confront. If your opponent would Confront an Agent, they must Confront me if able. Allies and your Core take 1 less damage from all sources.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Lightsteel Colossus",
- "imageFile": "Gentle Frank.png"
- },
- {
- "name": "Gilded Behemoth",
- "category": "Agent",
- "cost": 7,
- "attack": 5,
- "health": 9,
- "description": "Overpower. Core Strike: Deal 3 to the enemy Core.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Boatswain Corvus"
- ],
- "immortalizeWhen": "You've dealt 15+ non-combat damage this game.",
- "imageFile": "Gilded Behemoth.png"
- },
- {
- "name": "Glade Grazers",
- "category": "Agent",
- "cost": 2,
- "attack": 0,
- "health": 1,
- "description": "When another ally enters play, I Flourish.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [
- "Battleharts"
- ],
- "immortalizeWhen": "I have 6+ Strength.",
- "imageFile": "Glade Grazers.png"
- },
- {
- "name": "Glasswinged Monarch",
- "category": "Agent",
- "cost": 6,
- "attack": 4,
- "health": 4,
- "description": "Evasive. Enter or Core Strike: Shift to Abundant Growth.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "Omeganeura"
- ],
- "immortalizeWhen": "I've seen you Shift twice.",
- "imageFile": "Glasswinged Monarch.png"
- },
- {
- "name": "Glittering Gladiator",
- "category": "Agent",
- "cost": 1,
- "attack": 1,
- "health": 3,
- "description": "When I survive damage, grant me +2/+0.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Scoot Sparkles"
- ],
- "immortalizeWhen": "I've Struck an Agent with less Strength than me.",
- "imageFile": "Glittering Gladiator.png"
- },
- {
- "name": "Gnosis",
- "category": "Spell",
- "cost": 2,
- "description": "Draw 2. You may return any of those cards to the bottom of your deck. Sacrifice 2 for each card kept.",
- "faction": "Silence",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Gnosis.png"
- },
- {
- "name": "Go for the Heart",
- "category": "Spell",
- "cost": 5,
- "description": "Deal 3 to the enemy Core. Breakdown 10: Instead, deal 4. Breakdown 1: Instead, deal 5.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Go for the Heart.png"
- },
- {
- "name": "Grand Admiral Khaela",
- "category": "Agent",
- "cost": 7,
- "attack": 6,
- "health": 7,
- "description": "Blitz. Play or Attack: [icon] Erase all enemies with a cost of 2 or less in play. When I'm attacking, allies have Cleave.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Gunnery Captain",
- "imageFile": "Grand Admiral Khaela.png"
- },
- {
- "name": "Grand Judge Dhael",
- "category": "Agent",
- "cost": 7,
- "attack": 5,
- "health": 5,
- "description": "Activate: Return an Action from your Graveyard to your hand. It costs 3 less and has \\\"If I would be put into a Graveyard, instead Erase me.\\",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Stern Arbiter",
- "imageFile": "Grand Judge Dhael.png"
- },
- {
- "name": "Greyl, the Problem",
- "category": "Agent",
- "cost": 4,
- "attack": 2,
- "health": 4,
- "description": "Evasive. Activate: Grant all Actions in hand Transient, then create exact copies of them in hand.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Fuzzy Archivist",
- "imageFile": "Greyl, the Problem.png"
- },
- {
- "name": "Gritmancer Grant",
- "category": "Agent",
- "cost": 4,
- "attack": 4,
- "health": 4,
- "description": "Evasive. Fervor.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Pterosaur Rider",
- "imageFile": "Gritmancer Grant.png"
- },
- {
- "name": "Gunnery Captain",
- "category": "Agent",
- "cost": 7,
- "attack": 5,
- "health": 6,
- "description": "Blitz. Play: [icon] Erase all enemies with a cost of 2 or less in play.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Grand Admiral Khaela"
- ],
- "immortalizeWhen": "I see your Energy Reserve Overflow.",
- "imageFile": "Gunnery Captain.png"
- },
- {
- "name": "Harbinger of Power",
- "category": "Agent",
- "cost": 5,
- "attack": 5,
- "health": 5,
- "description": "Enter: Shift to Deadly Fauna.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "Evolution Incarnate"
- ],
- "immortalizeWhen": "I've seen the enemy Core take damage through Overpower.",
- "imageFile": "Harbinger of Power.png"
- },
- {
- "name": "Harker, Metal Reporter",
- "category": "Agent",
- "cost": 3,
- "attack": 3,
- "health": 5,
- "description": "When I see a Shift, create a \\\"By the Numbers\\\" in hand, or if you have one in hand, reduce its cost by 1.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Heretic Whistleblower",
- "imageFile": "Harker, Metal Reporter.png"
- },
- {
- "name": "Headbanging",
- "category": "Spell",
- "cost": 1,
- "description": "Discard 1 to play. Deal 2 to an Agent or Core.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Headbanging.png"
- },
- {
- "name": "Herald of the One",
- "category": "Agent",
- "cost": 4,
- "attack": 1,
- "health": 4,
- "description": "Play: (C) Transform me into an exact copy of an Agent.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Nascent Clone",
- "imageFile": "Herald of the One.png"
- },
- {
- "name": "Heretic Whistleblower",
- "category": "Agent",
- "cost": 3,
- "attack": 2,
- "health": 4,
- "description": "When I see a Shift, reveal the top card of your deck. If it is an Action, Draw 1.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Shift",
- "Draw"
- ],
- "immortalizeTo": [
- "Harker, Metal Reporter"
- ],
- "immortalizeWhen": "I've seen 3+ Shifts.",
- "imageFile": "Heretic Whistleblower.png"
- },
- {
- "name": "Hidden Locus",
- "category": "Agent",
- "cost": 2,
- "attack": 0,
- "health": 2,
- "description": "Round Start: Gain an extra Energy Crystal this round.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Eruption Incarnate"
- ],
- "immortalizeWhen": "Round Start: You have 10 Energy Crystals.",
- "imageFile": "Hidden Locus.png"
- },
- {
- "name": "Holder of the Instruments",
- "category": "Agent",
- "cost": 1,
- "attack": 2,
- "health": 1,
- "description": "Enter: Shift to The One True Timeline.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Rewound"
- ],
- "immortalizeTo": [
- "Symphony of the Path"
- ],
- "immortalizeWhen": "I am Phased or Rewound.",
- "imageFile": "Holder of the Instruments.png"
- },
- {
- "name": "Holy Cleaner",
- "category": "Agent",
- "cost": 3,
- "attack": 2,
- "health": 3,
- "description": "Play: Activate Rewind an Agent with equal or less Durability than me.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Rewound"
- ],
- "immortalizeTo": [
- "Violent Inquisitioner"
- ],
- "immortalizeWhen": "You've Rewound 3+ times this game.",
- "imageFile": "Holy Cleaner.png"
- },
- {
- "name": "Horticulturalist Oswald",
- "category": "Agent",
- "cost": 1,
- "attack": 2,
- "health": 2,
- "description": "Enter: Sprout 1. Activate: Give a Seedling Overpower.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Sprout"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Gardener Apprentice"
- },
- {
- "name": "Hungry Engine",
- "category": "Agent",
- "cost": 5,
- "attack": 5,
- "health": 5,
- "description": "Enter: Create a Circle of Strife in hand.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Armageddonaut"
- ],
- "immortalizeWhen": "I've survived damage.",
- "imageFile": "Hungry Engine.png"
- },
- {
- "name": "Hungry Tyrannosaur",
- "category": "Agent",
- "cost": 8,
- "attack": 8,
- "health": 7,
- "description": "Confront. Overpower. Enter: Create a Throwdown in hand.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Wreck-o Rex"
- ],
- "immortalizeWhen": "I've destroyed an Agent.",
- "imageFile": "Hungry Tyrannosaur.png"
- },
- {
- "name": "Hush Now",
- "category": "Spell",
- "cost": 6,
- "description": "Destroy an Agent.",
- "faction": "Silence",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Hush Now.png"
- },
- {
- "name": "Immediate",
- "category": "Keyword",
- "description": "This spell cannot be reacted to.",
- "archetypes": []
- },
- {
- "name": "Indara, the Candle",
- "category": "Agent",
- "cost": 6,
- "attack": 4,
- "health": 4,
- "description": "Activate: [icon] Revive an Immortalized Ally.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Solemn Attendant",
- "imageFile": "Indara, the Candle.png"
- },
- {
- "name": "Invigorating Balm",
- "category": "Spell",
- "cost": 1,
- "description": "Heal an ally 1. Give it +1/+1 this round.",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Invigorating Balm.png"
- },
- {
- "name": "Ironblood Elixir",
- "category": "Spell",
- "cost": 3,
- "description": "Grant an ally +1/+2 and Fervor.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Ironblood Elixir.png"
- },
- {
- "name": "Jenny, Sower of Spores",
- "category": "Agent",
- "cost": 1,
- "attack": 1,
- "health": 1,
- "description": "Evasive. Strike: Sprout 1.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Sprout"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Fervent Mycologist",
- "imageFile": "Jenny, Sower of Spores.png"
- },
- {
- "name": "Jury of the Second Law",
- "category": "Agent",
- "cost": 5,
- "attack": 5,
- "health": 3,
- "description": "Blitz. When you play an Action, gain 1 Reserve Energy.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Chaos Conductor Boltz"
- ],
- "immortalizeWhen": "You've spent 12+ Energy in one round this game.",
- "imageFile": "Jury of the Second Law.png"
- },
- {
- "name": "Karmic Debtor",
- "category": "Agent",
- "cost": 4,
- "attack": 2,
- "health": 1,
- "description": "Play: [icon]Phase an Agent. It cannot Phase in while I am in play.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Rewound"
- ],
- "immortalizeTo": [
- "Consequence Admin Cain"
- ],
- "immortalizeWhen": "I've seen 3+ Agents Phased or Rewound.",
- "imageFile": "Karmic Debtor.png"
- },
- {
- "name": "Khaela the Hungry",
- "category": "Agent",
- "cost": 2,
- "attack": 1,
- "health": 5,
- "description": "Play or Activate: (C) Deal 1 to me and another Agent. Sacrifice 2: Instead deal 2.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Painforger",
- "imageFile": "Khaela the Hungry.png"
- },
- {
- "name": "Khaela the Savior",
- "category": "Agent",
- "cost": 2,
- "attack": 3,
- "health": 4,
- "description": "Blitz. Each time I Strike while attacking: Swap me with the Agent to my right, the Rewind it. Set its cost to 0 this round.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Rewound"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Temple Analyst",
- "imageFile": "Khaela the Savior.png"
- },
- {
- "name": "Khaela, the Vanished",
- "category": "Agent",
- "cost": 2,
- "attack": 3,
- "health": 2,
- "description": "Blitz. Siphon.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Nameless Spirit",
- "imageFile": "Khaela, the Vanished.png"
- },
- {
- "name": "Khaelar",
- "category": "Agent",
- "cost": 6,
- "attack": 8,
- "health": 6,
- "description": "Enter or when I destroy an Agent: Give the strongest enemy Exposed and set its stats to 1/1 this round.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Zealot of the Hunt",
- "imageFile": "Khaelar.png"
- },
- {
- "name": "Kinetic Absorber",
- "category": "Agent",
- "cost": 2,
- "attack": 2,
- "health": 3,
- "description": "Confront.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "Dyson, the Aspirant"
- ],
- "immortalizeWhen": "I survive an enemy Striking me. When I Immortalize, Shift to Star Siphon.",
- "imageFile": "Kinetic Absorber.png"
- },
- {
- "name": "Kintsu-Kai",
- "category": "Spell",
- "cost": 2,
- "description": "Any amount of allies Bleed 1. Grant Bleed to a single enemy that many times.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Kintsu-Kai.png"
- },
- {
- "name": "Kurian, the Breaker",
- "category": "Agent",
- "cost": 6,
- "attack": 10,
- "health": 5,
- "description": "Overpower. Allied Breakdown sees both Cores.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Frontline Juggernaut",
- "imageFile": "Kurian, the Breaker.png"
- },
- {
- "name": "Kyln, the Dynasty",
- "category": "Agent",
- "cost": 8,
- "attack": 3,
- "health": 3,
- "description": "Evasive. Overpower. Enter: Flourish copies of me everywhere, then create a copy of me in hand and reduce the cost of allied created cards everywhere by 1 at Round End (Minimum 1).",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Planet Seeder",
- "imageFile": "Kyln, the Dynasty.png"
- },
- {
- "name": "Librarian's Assistant",
- "category": "Agent",
- "cost": 2,
- "attack": 2,
- "health": 1,
- "description": "Enter: Draw a random 1, 2, or 3 cost Action from your deck.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [
- "Draw"
- ],
- "immortalizeTo": [
- "Boof, the Listener"
- ],
- "immortalizeWhen": "I've seen you play 3+ Actions.",
- "imageFile": "Librarian's Assistant.png"
- },
- {
- "name": "Lifeblood",
- "category": "Faction",
- "archetypes": []
- },
- {
- "name": "Lightsteel Colossus",
- "category": "Agent",
- "cost": 8,
- "attack": 9,
- "health": 14,
- "description": "Delay. Confront.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Gentle Frank"
- ],
- "immortalizeWhen": "You have 10 Energy Crystals.",
- "imageFile": "Lightsteel Colossus.png"
- },
- {
- "name": "Lightsteel Engineer",
- "category": "Agent",
- "cost": 5,
- "attack": 4,
- "health": 5,
- "description": "Reduce damage you or allies would deal to your Core by 1. When you reduce damage this way, deal 1 to the enemy Core.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Mechanist Daedelus"
- ],
- "immortalizeWhen": "I've prevented 5+ damage to your Core.",
- "imageFile": "Lightsteel Engineer.png"
- },
- {
- "name": "Limit Breaker",
- "category": "Agent",
- "cost": 2,
- "attack": 0,
- "health": 1,
- "description": "Round Start: I Flourish once for each Reserve Energy you have.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [
- "Malum, the Fist"
- ],
- "immortalizeWhen": "I see your Energy Reserve Overflow.",
- "imageFile": "Limit Breaker.png"
- },
- {
- "name": "Living Comet",
- "category": "Agent",
- "cost": 4,
- "attack": 1,
- "health": 1,
- "description": "Overpower. I have +1/+1 for every Energy Crystal you have.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Debris Collector",
- "imageFile": "Living Comet.png"
- },
- {
- "name": "Lumbering Starseeker",
- "category": "Agent",
- "cost": 5,
- "attack": 5,
- "health": 6,
- "description": "Delay.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Luminous Vengeance"
- ],
- "immortalizeWhen": "I survive damage.",
- "imageFile": "Lumbering Starseeker.png"
- },
- {
- "name": "Luminous Vengeance",
- "category": "Agent",
- "cost": 5,
- "attack": 7,
- "health": 6,
- "description": "Delay. Overpower. Confront.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Lumbering Starseeker",
- "imageFile": "Luminous Vengeance.png"
- },
- {
- "name": "Magmatic Teachings",
- "category": "Spell",
- "cost": 3,
- "description": "An Immortalized ally strikes an enemy. If that enemy is destroyed, Immortalize your weakest non-Immoralized ally.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Magmatic Teachings.png"
- },
- {
- "name": "Magmatic Tether",
- "category": "Agent",
- "cost": 6,
- "attack": 5,
- "health": 5,
- "description": "When you play an Action, (C) Shift to Volcanic Rivers.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "Clarion, Deepest Breath"
- ],
- "immortalizeWhen": "You've spent 12+ Energy in one round this game.",
- "imageFile": "Magmatic Tether.png"
- },
- {
- "name": "Magnus Lavaborn",
- "category": "Agent",
- "cost": 1,
- "attack": 3,
- "health": 1,
- "description": "Enter: Shift to Volcanic Rivers twice. Strike: Deal 1 to the enemy Core.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Denizen of Flames",
- "imageFile": "Magnus Lavaborn.png"
- },
- {
- "name": "Malark, the Silver Wave",
- "category": "Agent",
- "cost": 3,
- "attack": 4,
- "health": 1,
- "description": "Blitz. Last Gasp: Grant the weakest ally Blitz, +4/+1 and this Last Gasp.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Swashbuckling Diehard",
- "imageFile": "Malark, the Silver Wave.png"
- },
- {
- "name": "Malum, the Fist",
- "category": "Agent",
- "cost": 2,
- "attack": 0,
- "health": 1,
- "description": "Round Start: I Flourish once for each Reserve Energy you have. Overflow: Grant me a random positive keyword.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Limit Breaker",
- "imageFile": "Malum, the Fist.png"
- },
- {
- "name": "Masa, Time-Lost",
- "category": "Agent",
- "cost": 6,
- "attack": 7,
- "health": 4,
- "description": "Blitz. I cost 1 less for each time you've Phased or Rewound an Agent this game. When you Phase or Rewind an Agent, first deal 1 to the enemy Core. Strike: Rewind me.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Rewound"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Divergence Assasin",
- "imageFile": "Masa, Time-Lost.png"
- },
- {
- "name": "Master of Ceremonies",
- "category": "Agent",
- "cost": 1,
- "attack": 1,
- "health": 1,
- "description": "Activate: Sacrifice 2: (C) Deal 2 to the enemy Core.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Bloodline Tracker",
- "imageFile": "Master of Ceremonies.png"
- },
- {
- "name": "Mechanist Daedelus",
- "category": "Agent",
- "cost": 5,
- "attack": 5,
- "health": 6,
- "description": "Reduce damage you or allies would deal to your Core by 2. When you reduce damage this way, deal 2 to the enemy Core.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Lightsteel Engineer",
- "imageFile": "Mechanist Daedelus.png"
- },
- {
- "name": "Mind Over Matter",
- "category": "Spell",
- "cost": 3,
- "description": "If Voiceless Sky is active, I am Immediate Speed. Deplete an Agent. Refresh an Agent.",
- "faction": "Silence",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Mind Over Matter.png"
- },
- {
- "name": "Mr. E",
- "category": "Agent",
- "cost": 7,
- "attack": 4,
- "health": 6,
- "description": "Play: Discard up to 3. When you Discard: Draw 1 and reduce its cost by 2.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Draw",
- "Discarded"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Rogue Amalgam",
- "imageFile": "Mr. E.png"
- },
- {
- "name": "Muffle",
- "category": "Spell",
- "cost": 4,
- "description": "Mute an Agent this round or Deplete an ally to Mute two Agents this round.",
- "faction": "Silence",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Muffle.png"
- },
- {
- "name": "Mulch",
- "category": "Spell",
- "cost": 2,
- "description": "Destroy an ally to Sprout equal to its Strength.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Mulch.png"
- },
- {
- "name": "Nameless Spirit",
- "category": "Agent",
- "cost": 2,
- "attack": 3,
- "health": 2,
- "description": "Temporary. Siphon.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [
- "Shift",
- "Heal"
- ],
- "immortalizeTo": [
- "Khaela, the Vanished"
- ],
- "immortalizeWhen": "When I would be destroyed while I see Voiceless Sky, instead, Heal me to full and I Immortalize.",
- "imageFile": "Nameless Spirit.png"
- },
- {
- "name": "Nanobot Hive",
- "category": "Agent",
- "cost": 2,
- "attack": 4,
- "health": 4,
- "description": "Allies have \\\"Last Gasp: Allies with the same name as me Flourish.\\\" Last Gasp: Allies with the same name as other allies Flourish.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Scattered Helpers",
- "imageFile": "Nanobot Hive.png"
- },
- {
- "name": "Nascent Clone",
- "category": "Agent",
- "cost": 4,
- "attack": 1,
- "health": 3,
- "description": "Play: (C) Transform me into an exact copy of a non-Immortalized Agent, but I retain the following text:.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Herald of the One"
- ],
- "immortalizeWhen": "Round End: I see Paradox.",
- "imageFile": "Nascent Clone.png"
- },
- {
- "name": "Nonlethal Special Forces",
- "category": "Agent",
- "cost": 4,
- "attack": 3,
- "health": 3,
- "description": "Blitz. Each round, Disarm the first enemy that would destroy an ally in combat.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "The 'Stache"
- ],
- "immortalizeWhen": "You've set the Strength of 4+ enemies to 0 this game.",
- "imageFile": "Nonlethal Special Forces.png"
- },
- {
- "name": "Not so Fast",
- "category": "Spell",
- "cost": 3,
- "description": "Revive the strongest ally that was destroyed this round.",
- "faction": "Silence",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Not so Fast.png"
- },
- {
- "name": "Novathermal Mining",
- "category": "Spell",
- "cost": 5,
- "description": "Gain an empty Energy Crystal. Sacrifice 3: Gain 4 Reserve Energy.",
- "faction": "Sungrace",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Novathermal Mining.png"
- },
- {
- "name": "Odol, the Red Death",
- "category": "Agent",
- "cost": 5,
- "attack": 3,
- "health": 5,
- "description": "Rejuvenate. Enter: All Agents Bleed 1. When an ally survives damage, it Flourish|Flourishes and is granted Rejuvenate.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Red Reaper",
- "imageFile": "Odol, the Red Death.png"
- },
- {
- "name": "Omeganeura",
- "category": "Agent",
- "cost": 6,
- "attack": 4,
- "health": 4,
- "description": "Evasive. Enter or Core Strike: Shift to Abundant Growth. Allies have +1/+1.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Glasswinged Monarch",
- "imageFile": "Omeganeura.png"
- },
- {
- "name": "Opener of the Way",
- "category": "Agent",
- "cost": 5,
- "attack": 5,
- "health": 6,
- "description": "The first time each round an ally deals or takes damage, Draw 1 and Shift to Torment.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [
- "Shift",
- "Draw"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Devoted Bloodletter",
- "imageFile": "Opener of the Way.png"
- },
- {
- "name": "Origination Engine",
- "category": "Agent",
- "cost": 8,
- "attack": 6,
- "health": 6,
- "description": "Enter: Reset all Agents to their base text and stats, empty the Timeline Stack, Erase all Graveyards.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "Overmind's Guilt"
- ],
- "immortalizeWhen": "Your hand is empty.",
- "imageFile": "Origination Engine.png"
- },
- {
- "name": "Out of Line",
- "category": "Spell",
- "cost": 6,
- "description": "Two Agents Phase. If they have the same name, instead destroy them.",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Out of Line.png"
- },
- {
- "name": "Overburdened Scribe",
- "category": "Agent",
- "cost": 6,
- "attack": 3,
- "health": 4,
- "description": "Round End: Create in hand a random Action that started in your deck.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Dhali, Bearer of Memories"
- ],
- "immortalizeWhen": "You've cast the same Action 3+ times this game.",
- "imageFile": "Overburdened Scribe.png"
- },
- {
- "name": "Overclock",
- "category": "Spell",
- "cost": 4,
- "description": "Discard 1 to play. Double an ally's Strength and Durability and grant it Temporary.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Overclock.png"
- },
- {
- "name": "Overmind's Guilt",
- "category": "Agent",
- "cost": 8,
- "attack": 8,
- "health": 8,
- "description": "Evasive. Enter or Round Start: Reset all Agents to their base text, empty the Timeline Stack, Erase all Graveyards.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Origination Engine",
- "imageFile": "Overmind's Guilt.png"
- },
- {
- "name": "Overseer of Trials",
- "category": "Agent",
- "cost": 3,
- "attack": 3,
- "health": 5,
- "description": "Confront. Other allies have Fervor. Fervor grants an extra +1/+1.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Bright-Eyed Supplicant",
- "imageFile": "Overseer of Trials.png"
- },
- {
- "name": "Painforger",
- "category": "Agent",
- "cost": 2,
- "attack": 1,
- "health": 3,
- "description": "Play: (C) Deal 1 to me and another Agent. Sacrifice 2: Instead, deal 2.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Khaela the Hungry"
- ],
- "immortalizeWhen": "Breakdown 10.",
- "imageFile": "Painforger.png"
- },
- {
- "name": "Panicked Refugee",
- "category": "Agent",
- "cost": 3,
- "attack": 2,
- "health": 2,
- "description": "Enter: Summon a Wolf.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "Bronk the Calm"
- ],
- "immortalizeWhen": "Round End: I do not see an allied Wolf in play. When I Immortalize, Shift to Abundant Growth.",
- "imageFile": "Panicked Refugee.png"
- },
- {
- "name": "Paradox Analysis",
- "category": "Spell",
- "cost": 5,
- "description": "Draw 2. Paradox: Instead, Draw 3.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Paradox Analysis.png"
- },
- {
- "name": "Paradox Cacophony",
- "category": "Spell",
- "cost": 2,
- "description": "Shift to Torment. Paradox: Trigger Bleed.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Paradox Cacophony.png"
- },
- {
- "name": "Paradox Capacitor",
- "category": "Spell",
- "cost": 4,
- "description": "Gain 1 empty Energy Crystal. Paradox: Instead, gain 2 empty Energy Crystals.",
- "faction": "Sungrace",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Paradox Capacitor.png"
- },
- {
- "name": "Paradox Flow",
- "category": "Spell",
- "cost": 3,
- "description": "Shift to The One True Timeline. Fully Heal all allies. Paradox: Give all enemies Exposed this round.",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Paradox Flow.png"
- },
- {
- "name": "Paradox Plague",
- "category": "Spell",
- "cost": 5,
- "description": "An Agent Decays once for every Timeline in the Timeline Stack. Paradox: Instead, enemies Decay once for every Timeline in the Timeline Stack.",
- "faction": "Silence",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Paradox Plague.png"
- },
- {
- "name": "Paradox Stimulator",
- "category": "Spell",
- "cost": 1,
- "description": "Sprout 1. Paradox: Instead, Sprout 3.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Paradox Stimulator.png"
- },
- {
- "name": "Peaceful Synthesizer",
- "category": "Agent",
- "cost": 1,
- "attack": 0,
- "health": 1,
- "description": "Enter: I Deplete. Activate: Gain 1 Reserve Energy.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Sungarden Protector"
- ],
- "immortalizeWhen": "I see your Energy Reserve Overflow.",
- "imageFile": "Peaceful Synthesizer.png"
- },
- {
- "name": "Penitent Star",
- "category": "Agent",
- "cost": 5,
- "attack": 4,
- "health": 8,
- "description": "Evasive.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Containment Breach",
- "imageFile": "Penitent Star.png"
- },
- {
- "name": "Persistent Squire",
- "category": "Agent",
- "cost": 1,
- "attack": 1,
- "health": 2,
- "description": "Confront. Agents I Strike Bleed 1.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Brant the Bloody"
- ],
- "immortalizeWhen": "I see an Agent destroyed by Bleed.",
- "imageFile": "Persistent Squire.png"
- },
- {
- "name": "Phase",
- "category": "Keyword",
- "description": "A Phased Agent is treated as removed from play for the round, though it still occupies its board-space. At the start of the next round this unit Phases in and is in the exact same state as it Phased out. Phasing back in does not trigger Enter effects.",
- "archetypes": []
- },
- {
- "name": "Phased",
- "category": "Keyword",
- "description": "Triggered when this Agent has been affected by Phase.",
- "archetypes": []
- },
- {
- "name": "Phasetide",
- "category": "Faction",
- "archetypes": []
- },
- {
- "name": "Pit Dog",
- "category": "Agent",
- "cost": 2,
- "attack": 2,
- "health": 4,
- "description": "Overpower.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Boof, the Champion"
- ],
- "immortalizeWhen": "I've damaged the enemy Core.",
- "imageFile": "Pit Dog.png"
- },
- {
- "name": "Planet Seeder",
- "category": "Agent",
- "cost": 8,
- "attack": 2,
- "health": 2,
- "description": "Evasive. Enter: Flourish copies of me everywhere, then create a copy of me in hand at Round End.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [
- "Kyln, the Dynasty"
- ],
- "immortalizeWhen": "I see Paradox.",
- "imageFile": "Planet Seeder.png"
- },
- {
- "name": "Pocket Dimension",
- "category": "Spell",
- "cost": 3,
- "description": "Discard up to 3 to play. Summon that many Pocket Scouts. When I am discarded create a Scouter Round in hand.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Pocket Dimension.png"
- },
- {
- "name": "Pocket Scout",
- "category": "Token",
- "cost": 1,
- "attack": 1,
- "health": 1,
- "description": "Token.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [],
- "imageFile": "Pocket Scout.png"
- },
- {
- "name": "Pontifex Dhabu",
- "category": "Agent",
- "cost": 1,
- "attack": 2,
- "health": 2,
- "description": "Round End: I Flourish. When I see a Shift to a Timeline other than The One True Timeline, deal 1 to the enemy Core.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Flourish",
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Fervent Follower",
- "imageFile": "Pontifex Dhabu.png"
- },
- {
- "name": "Prayer of Rescue",
- "category": "Spell",
- "cost": 1,
- "description": "Rewind an ally.",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Prayer of Rescue.png"
- },
- {
- "name": "Pressure Spike",
- "category": "Spell",
- "cost": 2,
- "description": "Deal 1 to an Agent. Increase it by 1 for each ally it has.",
- "faction": "Silence",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Pressure Spike.png"
- },
- {
- "name": "Priestess Minia",
- "category": "Agent",
- "cost": 2,
- "attack": 3,
- "health": 7,
- "description": "Confront. Enter: Deal 4 to me.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Seeker of Truth",
- "imageFile": "Priestess Minia.png"
- },
- {
- "name": "Pterosaur Rider",
- "category": "Agent",
- "cost": 4,
- "attack": 3,
- "health": 3,
- "description": "Evasive.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Gritmancer Grant"
- ],
- "immortalizeWhen": "I've Struck the enemy Core.",
- "imageFile": "Pterosaur Rider.png"
- },
- {
- "name": "Quaid, the Willing",
- "category": "Agent",
- "cost": 1,
- "attack": 3,
- "health": 2,
- "description": "Last Gasp: Shift to Star Siphon. Strike: Gain 1 Reserve Energy.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Brilliant Martyr",
- "imageFile": "Quaid, the Willing.png"
- },
- {
- "name": "Quicksilver Khaela",
- "category": "Agent",
- "cost": 2,
- "attack": 2,
- "health": 1,
- "description": "Temporary. Strike: Create a Transient copy of me in hand. Last Gasp: The next time you Shift, revive me and grant copies of me *everywhere* +1/+0.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Fractal Phantasm",
- "imageFile": "Quicksilver Khaela.png"
- },
- {
- "name": "Quiet Repose",
- "category": "Spell",
- "cost": 8,
- "description": "Destroy all Agents. You may not play Agents for the rest of the round.",
- "faction": "Silence",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Quiet Repose.png"
- },
- {
- "name": "Radiant Channeling",
- "category": "Spell",
- "cost": 5,
- "description": "Deal 0 to an Agent. Increase it by 2 and refill 1 Reserve Energy for each Reserve Energy spent to play this. Shift to Star Siphon.",
- "faction": "Sungrace",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Radiant Channeling.png"
- },
- {
- "name": "Raiz, Pacifist's Conclusion",
- "category": "Agent",
- "cost": 2,
- "attack": 3,
- "health": 3,
- "description": "Enter: Disarm the Strongest enemy. Round End: If you have an unspent Attack Token, Create a We Have Cookies in hand.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Traffic Conductor",
- "imageFile": "Raiz, Pacifist's Conclusion.png"
- },
- {
- "name": "Rapid Iteration",
- "category": "Spell",
- "cost": 2,
- "description": "Discard 1 to play. Deal 4 to an Agent.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Rapid Iteration.png"
- },
- {
- "name": "Rebuild",
- "category": "Spell",
- "cost": 1,
- "description": "Deal 1 to an Agent or Core. If an Agent survives this damage, it Flourish|Flourishes.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Rebuild.png"
- },
- {
- "name": "Recycler",
- "category": "Agent",
- "cost": 4,
- "attack": 2,
- "health": 4,
- "description": "Play: Discard 1 to heal your Core equal to that card's cost (Max 5).",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Heal",
- "Discarded"
- ],
- "immortalizeTo": [
- "Terraformer"
- ],
- "immortalizeWhen": "You've Discarded 3+ times this game.",
- "imageFile": "Recycler.png"
- },
- {
- "name": "Red Reaper",
- "category": "Agent",
- "cost": 5,
- "attack": 3,
- "health": 5,
- "description": "Rejuvenate. Enter: All Agents Bleed 1.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Odol, the Red Death"
- ],
- "immortalizeWhen": "I see an Agent destroyed by Bleed.",
- "imageFile": "Red Reaper.png"
- },
- {
- "name": "Redactionist",
- "category": "Agent",
- "cost": 4,
- "attack": 4,
- "health": 1,
- "description": "Play: (C) Revive an Agent. Grant it Temporary and \\\"When I would be destroyed, instead Erase me.\\\".",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Talia, Purger of Memory"
- ],
- "immortalizeWhen": "I've seen 3+ Agents destroyed.",
- "imageFile": "Redactionist.png"
- },
- {
- "name": "Rescind Authorization",
- "category": "Spell",
- "cost": 4,
- "description": "Rewind an Agent. Sacrifice 4: Instead, Rewind an ally and an enemy.",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Rescind Authorization.png"
- },
- {
- "name": "Return to Stillness",
- "category": "Spell",
- "cost": 1,
- "description": "An Agent Deplete|Depletes. Shift to Voiceless Sky.",
- "faction": "Silence",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Return to Stillness.png"
- },
- {
- "name": "Rewind",
- "category": "Keyword",
- "description": "Return this Agent to its owner's hand.",
- "archetypes": []
- },
- {
- "name": "Rewound",
- "category": "Keyword",
- "description": "Triggered when this Agent has been affected by Rewind.",
- "archetypes": []
- },
- {
- "name": "Rift Mender Aris",
- "category": "Agent",
- "cost": 3,
- "attack": 6,
- "health": 6,
- "description": "I have -1/-1 for each Timeline in the Timeline Stack other than The One True Timeline. Last Gasp: Shift to The One True Timeline.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Shattersmith",
- "imageFile": "Rift Mender Aris.png"
- },
- {
- "name": "Rippling Resplendence",
- "category": "Spell",
- "cost": 5,
- "description": "Grant allies Fervor. Deal 1 to all Agents. Breakdown 15: Deal 1 to all Agents.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Rippling Resplendence.png"
- },
- {
- "name": "Rogue Amalgam",
- "category": "Agent",
- "cost": 7,
- "attack": 3,
- "health": 5,
- "description": "Play: Discard up to 3. When you Discard: Draw 1 and reduce its cost by 1.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Draw",
- "Discarded"
- ],
- "immortalizeTo": [
- "Mr. E"
- ],
- "immortalizeWhen": "I've seen you Draw 6+ cards.",
- "imageFile": "Rogue Amalgam.png"
- },
- {
- "name": "Roiling Amalgam",
- "category": "Agent",
- "cost": 5,
- "attack": 3,
- "health": 5,
- "description": "Play: Discard 1. When you Discard, grant me a random positive keyword.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Discarded"
- ],
- "immortalizeTo": [
- "Ziv, the Adaptable"
- ],
- "immortalizeWhen": "You've Discarded 3+ times this game.",
- "imageFile": "Roiling Amalgam.png"
- },
- {
- "name": "Rotting Rocker",
- "category": "Agent",
- "cost": 3,
- "attack": 3,
- "health": 1,
- "description": "Activate: (C) Deal 2 to a random enemy.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Ylka, the Headliner"
- ],
- "immortalizeWhen": "I've seen Agents Deplete 4+ times.",
- "imageFile": "Rotting Rocker.png"
- },
- {
- "name": "Round End",
- "category": "Rule",
- "description": "The end state of the round. Triggered when both players end there turns without action.",
- "archetypes": []
- },
- {
- "name": "Rumpus",
- "category": "Spell",
- "cost": 3,
- "description": "Create a 1 cost Transient Throwdown in hand for each ally.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Rumpus.png"
- },
- {
- "name": "Sali, Top Gunner",
- "category": "Agent",
- "cost": 2,
- "attack": 2,
- "health": 3,
- "description": "Enter: Create a 1 cost Transient Sunshock in your hand. When you play a Sunshock, create a Transient exact copy in hand that costs 2 more.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Sunbringer Artillerist",
- "imageFile": "Sali, Top Gunner.png"
- },
- {
- "name": "Sanguine Resurgence",
- "category": "Spell",
- "cost": 5,
- "description": "Your Bleed effects gain Siphon this round. Two Agents Bleed 3.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Sanguine Resurgence.png"
- },
- {
- "name": "Sap Sapper",
- "category": "Agent",
- "cost": 4,
- "attack": 2,
- "health": 4,
- "description": "Enter: Sprout 2, then grant those Seedlings \\\"Last Gasp: Deal 1 to all Agents.\\\".",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Sprout"
- ],
- "immortalizeTo": [
- "The Botanist"
- ],
- "immortalizeWhen": "I've seen 3+ Agents destroyed.",
- "imageFile": "Sap Sapper.png"
- },
- {
- "name": "Sapling Dryad",
- "category": "Agent",
- "cost": 2,
- "attack": 1,
- "health": 2,
- "description": "I have +1/+0 for each time you've Sprout|Sprouted this game.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Sprout"
- ],
- "immortalizeTo": [
- "The Great Oakmother"
- ],
- "immortalizeWhen": "I've seen you Sprout 4+ times.",
- "imageFile": "Sapling Dryad.png"
- },
- {
- "name": "Sareh, Rebel Strategist",
- "category": "Agent",
- "cost": 4,
- "attack": 5,
- "health": 4,
- "description": "Blitz. Cleave. Play: Grant two enemies Exposed. Round Start: Grant the strongest enemy Exposed.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Bullseye Bounty Hunter",
- "imageFile": "Sareh, Rebel Strategist.png"
- },
- {
- "name": "Scattered Helpers",
- "category": "Agent",
- "cost": 2,
- "attack": 0,
- "health": 4,
- "description": "Allies have \\\"Last Gasp: Allies with the same name as me Flourish.\\\".",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [
- "Nanobot Hive"
- ],
- "immortalizeWhen": "I see 3+ allies with the same name as other allies.",
- "imageFile": "Scattered Helpers.png"
- },
- {
- "name": "Scent the Prey",
- "category": "Spell",
- "cost": 3,
- "description": "Choose an ally. Give all enemies with less Strength Exposed this round. Shift to either Abundant Growth or Deadly Fauna.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Scent the Prey.png"
- },
- {
- "name": "Scoot Sparkles",
- "category": "Agent",
- "cost": 1,
- "attack": 1,
- "health": 3,
- "description": "Overpower. When I survive damage, grant me +2/+0.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Glittering Gladiator"
- },
- {
- "name": "Scouter Round",
- "category": "Spell",
- "cost": 1,
- "description": "Play or Discard: Summon a Pocket Scout.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Scouter Round.png"
- },
- {
- "name": "Scuttling Spares",
- "category": "Agent",
- "cost": 3,
- "attack": 3,
- "health": 1,
- "description": "When I am Discarded: Create a copy of me in hand.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Discarded"
- ],
- "immortalizeTo": [
- "Zorp, Unrecyclable"
- ],
- "immortalizeWhen": "I see 2+ Scuttling Spares in your Graveyard. I can Immortalize out of play.",
- "imageFile": "Scuttling Spares.png"
- },
- {
- "name": "Seedling",
- "category": "Token",
- "cost": 1,
- "attack": 1,
- "health": 1,
- "description": "Token.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [],
- "imageFile": "Seedling.png"
- },
- {
- "name": "Seeker of Truth",
- "category": "Agent",
- "cost": 2,
- "attack": 2,
- "health": 6,
- "description": "Enter: Deal 4 to me.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "Priestess Minia"
- ],
- "immortalizeWhen": "I see The One True Timeline.",
- "imageFile": "Seeker of Truth.png"
- },
- {
- "name": "Sensory Deprivation Pod",
- "category": "Agent",
- "cost": 5,
- "attack": 2,
- "health": 3,
- "description": "When I Phase in, deal damage equal to my Strength to the weakest enemy. Activate: (C) I Flourish, then Phase.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [
- "Flourish",
- "Rewound"
- ],
- "immortalizeTo": [
- "Somnus, the Dreaming"
- ],
- "immortalizeWhen": "I've seen 3+ Agents destroyed.",
- "imageFile": "Sensory Deprivation Pod.png"
- },
- {
- "name": "Set in Stone",
- "category": "Spell",
- "cost": 4,
- "description": "I cost 1 less if you see The One True Timeline. An Agent Phase|Phases. Draw 1.",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Set in Stone.png"
- },
- {
- "name": "Shae'Fan, Remembered",
- "category": "Agent",
- "cost": 6,
- "attack": 4,
- "health": 7,
- "description": "Activate: (C) Destroy another ally with less Durability than me, then Revive it and summon an exact copy of it.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "The Forgotten Tale",
- "imageFile": "Shae'Fan, Remembered.png"
- },
- {
- "name": "Shattersmith",
- "category": "Agent",
- "cost": 3,
- "attack": 5,
- "health": 5,
- "description": "I have -1/-1 for each Timeline in the Timeline Stack other than The One True Timeline. Last Gasp: Shift to The One True Timeline.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "Rift Mender Aris"
- ],
- "immortalizeWhen": "I see The One True Timeline.",
- "imageFile": "Shattersmith.png"
- },
- {
- "name": "Shift",
- "category": "Keyword",
- "description": "Timeline is changed to the indicated Timeline.",
- "archetypes": []
- },
- {
- "name": "Silence",
- "category": "Faction",
- "archetypes": []
- },
- {
- "name": "Singularity",
- "category": "Faction",
- "archetypes": []
- },
- {
- "name": "Sleepy Druid",
- "category": "Agent",
- "cost": 3,
- "attack": 2,
- "health": 2,
- "description": "Activate: (C) An Agent Flourish|Flourishes.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [
- "Xae, Dreamstrider"
- ],
- "immortalizeWhen": "I've seen allies Flourish 4+ times.",
- "imageFile": "Sleepy Druid.png"
- },
- {
- "name": "Slow Convert",
- "category": "Agent",
- "cost": 6,
- "attack": 2,
- "health": 1,
- "description": "I cost 1 less for each copy of The One True Timeline in the Timeline Stack. Enter: Create a The Firm Hand in hand.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "Dedicated Missionary"
- ],
- "immortalizeWhen": "I see The One True Timeline.",
- "imageFile": "Slow Convert.png"
- },
- {
- "name": "Slow",
- "category": "Spell",
- "description": "This spell cannot be used as a reaction to something on the Chain.",
- "archetypes": []
- },
- {
- "name": "Snap Back",
- "category": "Spell",
- "cost": 2,
- "description": "Return an Action from your Graveyard to your hand and grant it \\\"If I would be put into a Graveyard, instead Erase me\\\", or an Agent Phase|Phases in.",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Snap Back.png"
- },
- {
- "name": "Solemn Attendant",
- "category": "Agent",
- "cost": 6,
- "attack": 3,
- "health": 3,
- "description": "Play: Revive an Immortalized Ally.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Indara, the Candle"
- ],
- "immortalizeWhen": "I've seen 3+ Agents destroyed.",
- "imageFile": "Solemn Attendant.png"
- },
- {
- "name": "Somber Astronomer",
- "category": "Agent",
- "cost": 1,
- "attack": 1,
- "health": 1,
- "description": "Enter: Create a Return to Stillness in hand.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "A'kon, Starry Diviner"
- ],
- "immortalizeWhen": "I've seen you Shift 2+ times.",
- "imageFile": "Somber Astronomer.png"
- },
- {
- "name": "Somnus, the Dreaming",
- "category": "Agent",
- "cost": 5,
- "attack": 3,
- "health": 4,
- "description": "When I Phase in, deal damage equal to my Strength to the weakest enemy and the enemy Core. Activate: (C) I Flourish, Phase.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [
- "Flourish",
- "Rewound"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Sensory Deprivation Pod",
- "imageFile": "Somnus, the Dreaming.png"
- },
- {
- "name": "Soothing Glow",
- "category": "Spell",
- "cost": 2,
- "description": "An ally Flourish|Flourishes. Heal your Core 2.",
- "faction": "Sungrace",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Soothing Glow.png"
- },
- {
- "name": "Spark of Bounty",
- "category": "Agent",
- "cost": 5,
- "attack": 4,
- "health": 4,
- "description": "Enter: Shift to Abundant Growth.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "The Beating Heart"
- ],
- "immortalizeWhen": "Round End: You have 15+ Strength in play.",
- "imageFile": "Spark of Bounty.png"
- },
- {
- "name": "Specialist Boof",
- "category": "Agent",
- "cost": 2,
- "attack": 3,
- "health": 2,
- "description": "Evasive. Core Strike: Erase the enemy Graveyard, or if the enemy Graveyard is empty, I Strike the weakest enemy.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Canine Adjutant",
- "imageFile": "Specialist Boof.png"
- },
- {
- "name": "Spirit's Lament",
- "category": "Spell",
- "cost": 11,
- "description": "Revive an ally. Grant it the combined stats and positive keywords of all other Agents in Graveyards.",
- "faction": "Silence",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Spirit's Lament.png"
- },
- {
- "name": "Splintergleam",
- "category": "Faction",
- "archetypes": []
- },
- {
- "name": "Spread the Sickness",
- "category": "Spell",
- "cost": 5,
- "description": "When an Agent is destroyed this round, Agents Decay. Agents Decay.",
- "faction": "Silence",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Spread the Sickness.png"
- },
- {
- "name": "Sprout",
- "category": "Keyword",
- "description": "Summon a 1/1 spore. If your board is full, give your weakest spore +1/+1.",
- "archetypes": []
- },
- {
- "name": "Stability Control",
- "category": "Spell",
- "cost": 6,
- "description": "An Agent loses Temporary, a card in your hand loses Transient, and an Agent gains Temporary. Paradox: I cost 3.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Stability Control.png"
- },
- {
- "name": "Stalwart Champion",
- "category": "Agent",
- "cost": 3,
- "attack": 3,
- "health": 4,
- "description": "Rejuvenate.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Enlightened Survivor"
- ],
- "immortalizeWhen": "Breakdown 15.",
- "imageFile": "Stalwart Champion.png"
- },
- {
- "name": "Star Siphon",
- "category": "Timeline",
- "description": "Round End: Refill all Energy Reserves.",
- "faction": "Sungrace",
- "archetypes": []
- },
- {
- "name": "Starfueled Medics",
- "category": "Agent",
- "cost": 4,
- "attack": 2,
- "health": 3,
- "description": "Play: [icon] Deal 1 to all Agents and Cores, then heal allies and your Core 1. Overflow: Heal allies and your Core 1.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Heal"
- ],
- "immortalizeTo": [
- "Doctor Mirthram Remora"
- ],
- "immortalizeWhen": "You've healed your Core in 4+ different rounds.",
- "imageFile": "Starfueled Medics.png"
- },
- {
- "name": "Stern Arbiter",
- "category": "Agent",
- "cost": 7,
- "attack": 5,
- "health": 5,
- "description": "Play: Return an Action from your Graveyard to your hand. It costs 3 less and has \\\"If I would be put into a Graveyard, instead Erase me.\\\".",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Grand Judge Dhael"
- ],
- "immortalizeWhen": "I've seen you play 3+ cards wi...",
- "imageFile": "Stern Arbiter.png"
- },
- {
- "name": "Strength of the Grove",
- "category": "Spell",
- "cost": 4,
- "description": "Sprout 1. Give an ally +1/+1 this round for each other ally.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Strength of the Grove.png"
- },
- {
- "name": "Sunbringer Artillerist",
- "category": "Agent",
- "cost": 2,
- "attack": 1,
- "health": 2,
- "description": "Enter: Create a 1 cost Transient Sunshock in your hand.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Sali, Top Gunner"
- ],
- "immortalizeWhen": "You've played the same Action 3+ times this game.",
- "imageFile": "Sunbringer Artillerist.png"
- },
- {
- "name": "Suncursed Conduit",
- "category": "Agent",
- "cost": 3,
- "attack": 2,
- "health": 4,
- "description": "Activate: I Decay, Erase a card in a Graveyard to gain an extra Energy Crystal this round.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Decay"
- ],
- "immortalizeTo": [
- "Vor’kon, Eternal Source"
- ],
- "immortalizeWhen": "You've spent 12+ Energy in one round this game.",
- "imageFile": "Suncursed Conduit.png"
- },
- {
- "name": "Sungarden Protector",
- "category": "Agent",
- "cost": 1,
- "attack": 3,
- "health": 3,
- "description": "No effect text available.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Peaceful Synthesizer",
- "imageFile": "Sungarden Protector.png"
- },
- {
- "name": "Sungrace",
- "category": "Faction",
- "archetypes": []
- },
- {
- "name": "Sunshock",
- "category": "Spell",
- "cost": 2,
- "description": "Deal 2 to an Agent or Core.",
- "faction": "Sungrace",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Sunshock.png"
- },
- {
- "name": "Supernova",
- "category": "Spell",
- "cost": 5,
- "description": "Deal 0 to an Agent. Increase it by 2 and refill 2 Energy Crystals for each time you've Overflowed this game.",
- "faction": "Sungrace",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Supernova.png"
- },
- {
- "name": "Swashbuckling Diehard",
- "category": "Agent",
- "cost": 3,
- "attack": 4,
- "health": 1,
- "description": "Blitz. When I take non-combat damage, first prevent it and I Phase.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Rewound"
- ],
- "immortalizeTo": [
- "Malark, the Silver Wave"
- ],
- "immortalizeWhen": "I've Phased in twice.",
- "imageFile": "Swashbuckling Diehard.png"
- },
- {
- "name": "Symbiosis",
- "category": "Spell",
- "cost": 6,
- "description": "Grant two Agents each other's stats and keywords.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Symbiosis.png"
- },
- {
- "name": "Symphony of the Path",
- "category": "Agent",
- "cost": 1,
- "attack": 2,
- "health": 2,
- "description": "Enter: Shift to The One True Timeline. When I am Phased or Rewound my strongest ally Flourishes.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Rewound"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Holder of the Instruments",
- "imageFile": "Symphony of the Path.png"
- },
- {
- "name": "Talia, Purger of Memory",
- "category": "Agent",
- "cost": 4,
- "attack": 5,
- "health": 2,
- "description": "Activate: (C) Revive an Agent. Grant it Temporary and \\\"When I would be destroyed, instead Erase me.\\",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Redactionist",
- "imageFile": "Talia, Purger of Memory.png"
- },
- {
- "name": "Telepathic Conduit",
- "category": "Agent",
- "cost": 2,
- "attack": 1,
- "health": 2,
- "description": "Activate: I Decay, grant me \\\"If you or an ally would deal non-combat damage, increase it by 1.\\\".",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [
- "Decay"
- ],
- "immortalizeTo": [
- "The Strand"
- ],
- "immortalizeWhen": "You've dealt 15+ non-combat damage this game.",
- "imageFile": "Telepathic Conduit.png"
- },
- {
- "name": "Telepathic Scavenger",
- "category": "Agent",
- "cost": 4,
- "attack": 2,
- "health": 3,
- "description": "Each time an Agent Deplete|Depletes, I Flourish.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [
- "The Uncontained"
- ],
- "immortalizeWhen": "I've seen Agents Deplete 4+ times.",
- "imageFile": "Telepathic Scavenger.png"
- },
- {
- "name": "Temple Analyst",
- "category": "Agent",
- "cost": 2,
- "attack": 2,
- "health": 3,
- "description": "Blitz. The first time each round I Strike while attacking: Swap me with the Agent to my right, then Rewind it. Reduce its cost by 1 this round.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Rewound"
- ],
- "immortalizeTo": [
- "Khaela the Savior"
- ],
- "immortalizeWhen": "I've seen 3+ Agents Phased or Rewound.",
- "imageFile": "Temple Analyst.png"
- },
- {
- "name": "Temple Guard Hound",
- "category": "Agent",
- "cost": 1,
- "attack": 2,
- "health": 5,
- "description": "Enter: Deal 4 to me.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [
- "Boof, Ever Loyal"
- ],
- "immortalizeWhen": "I see The One True Timeline.",
- "imageFile": "Temple Guard Hound.png"
- },
- {
- "name": "Terraformer",
- "category": "Agent",
- "cost": 4,
- "attack": 3,
- "health": 5,
- "description": "Play: Discard 1 to heal your Core equal to that card's cost (Max 5) then Shift to Erudite Beacon.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Shift",
- "Heal",
- "Discarded"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Recycler",
- "imageFile": "Terraformer.png"
- },
- {
- "name": "Territorial Pack",
- "category": "Agent",
- "cost": 2,
- "attack": 1,
- "health": 2,
- "description": "Enter: Summon a Wolf.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Boof, Lonely and Proud"
- ],
- "immortalizeWhen": "Round End: I do not see an allied Wolf in Play.",
- "imageFile": "Territorial Pack.png"
- },
- {
- "name": "The 'Stache",
- "category": "Agent",
- "cost": 4,
- "attack": 4,
- "health": 4,
- "description": "Blitz. Each round, Disarm the first enemy that would destroy an ally in combat.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Nonlethal Special Forces",
- "imageFile": "The 'Stache.png"
- },
- {
- "name": "The Beating Heart",
- "category": "Agent",
- "cost": 5,
- "attack": 5,
- "health": 5,
- "description": "Enter: Shift to Abundant Growth. Round Start: Allies Flourish.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Flourish",
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Spark of Bounty",
- "imageFile": "The Beating Heart.png"
- },
- {
- "name": "The Botanist",
- "category": "Agent",
- "cost": 4,
- "attack": 3,
- "health": 5,
- "description": "Rejuvenate. Activate: Sprout 2, then grant those Seedlings \\\"Last Gasp: Deal 1 to all Agents.\\",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Sprout"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Sap Sapper",
- "imageFile": "The Botanist.png"
- },
- {
- "name": "The Cycle Embodied",
- "category": "Agent",
- "cost": 1,
- "attack": 2,
- "health": 2,
- "description": "Evasive. The first time each round you or allies Sprout, Decay, or Flourish, I Flourish.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Sprout",
- "Flourish",
- "Decay"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Burrowing Beetles",
- "imageFile": "The Cycle Embodied.png"
- },
- {
- "name": "The Firm Hand",
- "category": "Spell",
- "cost": 2,
- "description": "Shift to The One True Timeline. Draw 1.",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "The Firm Hand.png"
- },
- {
- "name": "The Forgotten Tale",
- "category": "Agent",
- "cost": 6,
- "attack": 3,
- "health": 7,
- "description": "Activate: (C) Destroy another ally with less Durability than me, then Revive it.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Shae'Fan, Remembered"
- ],
- "immortalizeWhen": "I've seen 3+ Agents destroyed.",
- "imageFile": "The Forgotten Tale.png"
- },
- {
- "name": "The Great Oakmother",
- "category": "Agent",
- "cost": 2,
- "attack": 1,
- "health": 3,
- "description": "I have +1/+0 for each time you've Sprout|Sprouted this game. When you Sprout, add 2 to its value.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Sprout"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Sapling Dryad",
- "imageFile": "The Great Oakmother.png"
- },
- {
- "name": "The One True Timeline",
- "category": "Timeline",
- "description": "Round Start: Heal all Agents and Cores 1.",
- "faction": "Phasetide",
- "archetypes": []
- },
- {
- "name": "The Ripper",
- "category": "Agent",
- "cost": 4,
- "attack": 4,
- "health": 7,
- "description": "Confront. Overpower. Agents and Cores I Strike Bleed 1.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Toothy Pugilist"
- },
- {
- "name": "The Strand",
- "category": "Agent",
- "cost": 2,
- "attack": 1,
- "health": 4,
- "description": "Activate: I Decay, grant me \\\"If you or an ally would deal non-combat damage, increase it by 1.\\",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [
- "Decay"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Telepathic Conduit",
- "imageFile": "The Strand.png"
- },
- {
- "name": "The Uncontained",
- "category": "Agent",
- "cost": 4,
- "attack": 2,
- "health": 3,
- "description": "Overpower. Each time an Agent Deplete|Depletes, I Flourish.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Telepathic Scavenger",
- "imageFile": "The Uncontained.png"
- },
- {
- "name": "The Unstoppable Flow",
- "category": "Agent",
- "cost": 4,
- "attack": 2,
- "health": 2,
- "description": "Overpower. Enter: Shift to Volcanic Rivers. I have +1/+1 for each Timeline in the Timeline Stack.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Blazing Shifter",
- "imageFile": "The Unstoppable Flow.png"
- },
- {
- "name": "Throw into the Sun",
- "category": "Spell",
- "cost": 6,
- "description": "Erase any card in play.",
- "faction": "Sungrace",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Throw into the Sun.png"
- },
- {
- "name": "Throwdown",
- "category": "Spell",
- "cost": 2,
- "description": "An ally and an enemy Strike each other.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Throwdown.png"
- },
- {
- "name": "Tidal Wave",
- "category": "Spell",
- "cost": 5,
- "description": "Surge. If you have more Core Durability than your opponent, allies Flourish twice.",
- "faction": "Phasetide",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Tidal Wave.png"
- },
- {
- "name": "Time Devourer Soval",
- "category": "Agent",
- "cost": 10,
- "attack": 12,
- "health": 12,
- "description": "For each Timeline in the Timeline Stack, I gain a random positive keyword. The first time each round I would be destroyed, instead heal me to my maximum durability and destroy the...",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Shift",
- "Heal"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Devourer Spawn",
- "imageFile": "Time Devourer Soval.png"
- },
- {
- "name": "Timestop",
- "category": "Spell",
- "cost": 4,
- "description": "Clear the Chain.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Timestop.png"
- },
- {
- "name": "Timewarped Discombobulator",
- "category": "Spell",
- "cost": 5,
- "description": "Deal 1 to an Agent. Summon a random 1 Cost Agent. While I'm in hand, increase both by 1 when you Shift. (Max 10)",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Timewarped Discombobulator.png"
- },
- {
- "name": "Tino, Majestic Stumbler",
- "category": "Agent",
- "cost": 2,
- "attack": 3,
- "health": 3,
- "description": "Enter: Sprout 1 for each other ally then Shift to Deadly Fauna.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Sprout",
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Aardvark Precinct Captain",
- "imageFile": "Tino, Majestic Stumbler.png"
- },
- {
- "name": "Toothy Pugilist",
- "category": "Agent",
- "cost": 4,
- "attack": 3,
- "health": 6,
- "description": "Confront. Agents I Strike Bleed 1.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "The Ripper"
- ],
- "immortalizeWhen": "I see an Agent destroyed by Bleed.",
- "imageFile": "Toothy Pugilist.png"
- },
- {
- "name": "Torment",
- "category": "Timeline",
- "description": "All Agents and Cores have Bleed 1.",
- "faction": "Splintergleam",
- "archetypes": []
- },
- {
- "name": "Traffic Conductor",
- "category": "Agent",
- "cost": 2,
- "attack": 2,
- "health": 2,
- "description": "Enter: Disarm the Strongest enemy.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Raiz, Pacifist's Conclusion"
- ],
- "immortalizeWhen": "I see 3+ Agents with 0 Strength in play.",
- "imageFile": "Traffic Conductor.png"
- },
- {
- "name": "Transient",
- "category": "Keyword",
- "description": "This card in hand is Discarded at Round End.",
- "archetypes": []
- },
- {
- "name": "True Believer",
- "category": "Agent",
- "cost": 3,
- "attack": 2,
- "health": 1,
- "description": "Enter: Create in hand a random Action that started in your deck. Activate: I Decay. Create in hand a random Action that started in your deck.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [
- "Decay"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Disciplined Student",
- "imageFile": "True Believer.png"
- },
- {
- "name": "Tyar, Benevolent Ruler",
- "category": "Agent",
- "cost": 7,
- "attack": 7,
- "health": 6,
- "description": "Overpower. The first time each round anything takes damage, create a Transient Bloodbolt in hand. Round Start: Create a Transient Bloodbolt in hand.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Brutal Reveler",
- "imageFile": "Tyar, Benevolent Ruler.png"
- },
- {
- "name": "Uninhibited Expansion",
- "category": "Spell",
- "cost": 5,
- "description": "Sprout 6.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Uninhibited Expansion.png"
- },
- {
- "name": "Unlocked Potential",
- "category": "Spell",
- "cost": 8,
- "description": "Grant an ally +9/+4.",
- "faction": "Sungrace",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "Unlocked Potential.png"
- },
- {
- "name": "Unstoppable Growth",
- "category": "Spell",
- "cost": 4,
- "description": "An Agent destroys its allies and gains their Strength and Durability.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "Unstoppable Growth.png"
- },
- {
- "name": "Vera, Original Proof",
- "category": "Agent",
- "cost": 2,
- "attack": 4,
- "health": 3,
- "description": "Overpower. Last Gasp: Shift to Volcanic Rivers.",
- "faction": "Splintergleam",
- "set": "Core Set",
- "archetypes": [
- "Shift"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Desperate Primordial",
- "imageFile": "Vera, Original Proof.png"
- },
- {
- "name": "Violent Inquisitioner",
- "category": "Agent",
- "cost": 3,
- "attack": 3,
- "health": 4,
- "description": "Play: Activate Rewind an Agent with equal or less Durability than me. The first time each round you Rewind an Agent, Draw 1.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Rewound"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Holy Cleaner"
- },
- {
- "name": "Violet Inquisitioner",
- "category": "Agent",
- "cost": 3,
- "attack": 3,
- "health": 4,
- "description": "Play: [icon] Rewind an Agent with equal or less Durability than me. The first time each round you Rewind an Agent, Draw 1.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Rewound",
- "Draw"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Holy Cleaner",
- "imageFile": "Violet Inquisitioner.png"
- },
- {
- "name": "Voiceless Sky",
- "category": "Timeline",
- "description": "If a player has exactly one Agent, it has +3/+3.",
- "faction": "Silence",
- "archetypes": []
- },
- {
- "name": "Volcanic Rivers",
- "category": "Timeline",
- "description": "When you Shift here, deal 1 to both Cores.",
- "faction": "Splintergleam",
- "archetypes": []
- },
- {
- "name": "Vor’kon, Eternal Source",
- "category": "Agent",
- "cost": 3,
- "attack": 2,
- "health": 7,
- "description": "Activate: I Flourish, Erase a card in a Graveyard to gain an extra Energy Crystal this round.",
- "faction": "Sungrace",
- "set": "Core Set",
- "archetypes": [
- "Flourish"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Suncursed Conduit",
- "imageFile": "Vor’kon, Eternal Source.png"
- },
- {
- "name": "Wake-Up Prod",
- "category": "Spell",
- "cost": 2,
- "description": "Deal 1 to an Agent or Core. Draw 1.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Fast",
- "archetypes": [],
- "imageFile": "Wake-Up Prod.png"
- },
- {
- "name": "We Have Cookies",
- "category": "Spell",
- "cost": 9,
- "description": "Take control of an enemy with a cost equal to or less than the number of Timelines in the Timeline Stack.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Slow",
- "archetypes": [],
- "imageFile": "We Have Cookies.png"
- },
- {
- "name": "What Could Be",
- "category": "Spell",
- "cost": 7,
- "description": "Choose an ally. Disarm all other Agents.",
- "faction": "Singularity",
- "set": "Core Set",
- "speed": "Immediate",
- "archetypes": [],
- "imageFile": "What Could Be.png"
- },
- {
- "name": "Wilfred, Lobotomizer",
- "category": "Agent",
- "cost": 1,
- "attack": 4,
- "health": 3,
- "description": "Round End: Decay. When I Decay, all enemies Decay.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [
- "Decay"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Braindead Bouncer",
- "imageFile": "Wilfred, Lobotomizer.png"
- },
- {
- "name": "Witch of the Woods",
- "category": "Agent",
- "cost": 3,
- "attack": 3,
- "health": 2,
- "description": "Play: (C) Deplete an Enemy. Round Start: Create a Return to Stillness in hand.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Forest Recluse",
- "imageFile": "Witch of the Woods.png"
- },
- {
- "name": "Wolf",
- "category": "Token",
- "cost": 2,
- "attack": 2,
- "health": 1,
- "description": "Confront.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [],
- "imageFile": "Wolf.png"
- },
- {
- "name": "Wom, Sweet Wom",
- "category": "Agent",
- "cost": 2,
- "attack": 1,
- "health": 4,
- "description": "Activate: Reduce an Agent's Strength by my Strength this round. When I see an enemy Agent reduced to 0 Strength, grant allies +1/+0.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Awakened Security System",
- "imageFile": "Wom, Sweet Wom.png"
- },
- {
- "name": "Wreck-o Rex",
- "category": "Agent",
- "cost": 8,
- "attack": 9,
- "health": 9,
- "description": "Confront. Overpower. Cleave. Enter: Create a Throwdown in hand.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Hungry Tyrannosaur",
- "imageFile": "Wreck-o Rex.png"
- },
- {
- "name": "Xae, Dreamstrider",
- "category": "Agent",
- "cost": 3,
- "attack": 3,
- "health": 3,
- "description": "Activate: (C) An Agent Flourish|Flourishes or Decays.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [
- "Flourish",
- "Decay"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Sleepy Druid",
- "imageFile": "Xae, Dreamstrider.png"
- },
- {
- "name": "Ylka, the Headliner",
- "category": "Agent",
- "cost": 3,
- "attack": 3,
- "health": 1,
- "description": "Activate: Rock out. When allies Deplete, (C) Deal 2 to a random enemy. If it's dead or gone, deal 1 to the enemy Core instead.",
- "faction": "Silence",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Rotting Rocker",
- "imageFile": "Ylka, the Headliner.png"
- },
- {
- "name": "Zealot of the Hunt",
- "category": "Agent",
- "cost": 6,
- "attack": 7,
- "health": 5,
- "description": "Enter or when I.",
- "faction": "Lifeblood",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [
- "Khaelar"
- ],
- "immortalizeWhen": "Give the strongest enemy Exposed and set its stats to 1/1 this round. Immortalize: I've destroyed an Agent.",
- "imageFile": "Zealot of the Hunt.png"
- },
- {
- "name": "Zel, the First Diver",
- "category": "Agent",
- "cost": 1,
- "attack": 1,
- "health": 3,
- "description": "When I am Phased or Rewound, first Draw 1 and Flourish. When I am Rewound or Destroyed, I keep all permanent buffs.",
- "faction": "Phasetide",
- "set": "Core Set",
- "archetypes": [
- "Rewound"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Curious Acolyte",
- "imageFile": "Zel, the First Diver.png"
- },
- {
- "name": "Ziv, the Adaptable",
- "category": "Agent",
- "cost": 5,
- "attack": 3,
- "health": 5,
- "description": "Play: Discard 1. When you Discard, I Flourish and grant me a random positive keyword.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [
- "Flourish",
- "Discarded"
- ],
- "immortalizeTo": [],
- "immortalizeFrom": "Roiling Amalgam",
- "imageFile": "Ziv, the Adaptable.png"
- },
- {
- "name": "Zorp, Unrecyclable",
- "category": "Agent",
- "cost": 3,
- "attack": 6,
- "health": 1,
- "description": "Overpower. Enter: Create a copy of me in hand.",
- "faction": "Singularity",
- "set": "Core Set",
- "archetypes": [],
- "immortalizeTo": [],
- "immortalizeFrom": "Scuttling Spares",
- "imageFile": "Zorp, Unrecyclable.png"
- }
- ]
-}
\ No newline at end of file
-
@@ -143,26 +224,17 @@
private CardData? selectedCard;
private List@selectedCard.Name
-
- @selectedCard.Category
- @if (selectedCard.Cost.HasValue)
- {
- Cost: @selectedCard.Cost
- }
- @if (selectedCard.Attack.HasValue)
- {
- ATK: @selectedCard.Attack
- }
- @if (selectedCard.Health.HasValue)
- {
- HP: @selectedCard.Health
- }
- @if (selectedCard.Speed != null)
- {
- @selectedCard.Speed
- }
+
+
+
@if (selectedCard.Faction != null)
{
- @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
+ }
+
Faction: @selectedCard.Faction
+
+ Faction
+ @selectedCard.Faction
+
}
@if (selectedCard.Description != null)
{
- Description: @selectedCard.Description
+
+
+ @selectedCard.Description
+
}
@if (selectedCard.Set != null)
{
- Set: @selectedCard.Set
+
+ Set
+ @selectedCard.Set
+
}
@if (selectedCard.Archetypes is { Count: > 0 })
{
- Archetypes: @string.Join(", ", selectedCard.Archetypes)
+
+ Archetypes
+ @string.Join(", ", selectedCard.Archetypes)
+
}
@if (selectedCard.ImmortalizeWhen != null)
{
- Immortalize When: @selectedCard.ImmortalizeWhen
+
+ Immortalize When
+ @selectedCard.ImmortalizeWhen
+
}
@if (selectedCard.HasImmortalize)
{
- Immortalizes To: @string.Join(", ", selectedCard.ImmortalizeTo!)
+
+ Immortalizes To
+ @string.Join(", ", selectedCard.ImmortalizeTo!)
+
}
@if (selectedCard.ImmortalizeFrom != null)
{
- Immortalizes From: @selectedCard.ImmortalizeFrom
+
+ Immortalizes From
+ @selectedCard.ImmortalizeFrom
+
}
Counter
- -Current count: @currentCount
- - - -@code { - private int currentCount = 0; - - private void IncrementCount() - { - currentCount++; - } - -} \ No newline at end of file diff --git a/Chrono/Web/Pages/Weather.razor b/Chrono/Web/Pages/Weather.razor deleted file mode 100644 index be9adb1..0000000 --- a/Chrono/Web/Pages/Weather.razor +++ /dev/null @@ -1,60 +0,0 @@ -@page "/weather" -@inject HttpClient Http - -Weather
- -This component demonstrates fetching data from the server.
- -@if (forecasts == null) -{ -- Loading... -
-} -else -{ -| Date | -Temp. (C) | -Temp. (F) | -Summary | -
|---|---|---|---|
| @forecast.Date.ToShortDateString() | -@forecast.TemperatureC | -@forecast.TemperatureF | -@forecast.Summary | -