Frontmatter updates and new custom deck

This commit is contained in:
2026-06-25 13:35:59 -04:00
parent 0289063d29
commit ccfe809609
309 changed files with 1963 additions and 61 deletions
+6 -1
View File
@@ -58,7 +58,9 @@ foreach (var file in mdFiles)
: null, : null,
ImmortalizeFrom = StripWikiLink(yaml.GetValueOrDefault("immortalizeFrom")), ImmortalizeFrom = StripWikiLink(yaml.GetValueOrDefault("immortalizeFrom")),
ImmortalizeWhen = NullIfNa(StripWikiLinks(yaml.GetValueOrDefault("immortalizeWhen"))), ImmortalizeWhen = NullIfNa(StripWikiLinks(yaml.GetValueOrDefault("immortalizeWhen"))),
ImageFile = imageFile ImageFile = imageFile,
Artist = yaml.GetValueOrDefault("artist"),
Rarity = yaml.GetValueOrDefault("rarity"),
}; };
cards.Add(card); cards.Add(card);
@@ -116,6 +118,9 @@ for (var i = 0; i < cards.Count; i++)
WriteStrProp(writer, "ImmortalizeWhen", c.ImmortalizeWhen, 3); WriteStrProp(writer, "ImmortalizeWhen", c.ImmortalizeWhen, 3);
WriteStrProp(writer, "ImageFile", c.ImageFile, 3); WriteStrProp(writer, "ImageFile", c.ImageFile, 3);
WriteStrProp(writer, "Artist", c.Artist, 3);
WriteStrProp(writer, "Rarity", c.Rarity, 3);
var comma = i < cards.Count - 1 ? "," : ""; var comma = i < cards.Count - 1 ? "," : "";
writer.WriteLine($" }}{comma}"); writer.WriteLine($" }}{comma}");
} }
+3
View File
@@ -22,6 +22,9 @@ public class CardData
public string? ImmortalizeWhen { get; init; } public string? ImmortalizeWhen { get; init; }
public string? ImageFile { get; init; } public string? ImageFile { get; init; }
public string? Artist { get; init; }
public string? Rarity { get; init; }
public bool IsAgent => Category == "Agent"; public bool IsAgent => Category == "Agent";
public bool IsSpell => Category == "Spell"; public bool IsSpell => Category == "Spell";
public bool IsToken => Category == "Token"; public bool IsToken => Category == "Token";
@@ -62,6 +62,22 @@
</div> </div>
} }
@if (Card.Artist != null)
{
<div class="detail-field">
<span class="field-label"><i class="bi bi-collection"></i> Artists</span>
<span class="field-value">@Card.Artist</span>
</div>
}
@if (Card.Rarity != null)
{
<div class="detail-field">
<span class="field-label"><i class="bi bi-collection"></i> Rarity</span>
<span class="field-value">@Card.Rarity</span>
</div>
}
@if (Card.Archetypes is { Count: > 0 }) @if (Card.Archetypes is { Count: > 0 })
{ {
<div class="detail-field"> <div class="detail-field">
File diff suppressed because it is too large Load Diff
+62
View File
@@ -208,6 +208,68 @@ public static class DeckDatabase
DeckType = "store", DeckType = "store",
}, },
new() new()
{
Name = "Overflowing Security",
Cards = [
"Scattered Helpers",
"Scattered Helpers",
"Scattered Helpers",
"Awakened Security System",
"Awakened Security System",
"Traffic Conductor",
"Traffic Conductor",
"Traffic Conductor",
"Hidden Locus",
"Hidden Locus",
"Hidden Locus",
"Limit Breaker",
"Limit Breaker",
"Limit Breaker",
"Chronal Scan",
"Chronal Scan",
"Chaos Control",
"Chaos Control",
"Chaos Control",
"Frontline Fellowship",
"Frontline Fellowship",
"Frontline Fellowship",
"Timestop",
"Built to Burn",
"Built to Burn",
"Radiant Channeling",
"Radiant Channeling",
"Radiant Channeling",
"Supernova",
"Supernova",
"Supernova",
"Stability Control",
"Stability Control",
"Stability Control",
"Throw into the Sun",
"Throw into the Sun",
"Throw into the Sun",
"What Could Be",
"What Could Be",
"What Could Be",
],
Keycards = [
"Limit Breaker",
"Awakened Security System",
],
Divers = [
"Brilliant Martyr",
"Enthusiastic Bot-Poke",
],
Description = "Built deck as a joke, but it kind of feels nuts in limited testing.\nMulligan everything for Radiant Channeling and Supernova. You are hoping that limited removal keeps you alive.\nIf they heavy buff something out from your removal range, you might still have enough reserve to Throw into the Sun that big target.\nIf you survive, start scaling your board with Awakened Security System or Limit Breaker.",
Factions = [
"Sungrace",
"Singularity",
],
IsVisible = true,
DeckCode = "AUMU65TFOJTGY33XNFXGOICTMVRXK4TJOR4SAQ3POB4QWY3PNZZXI4TVMN2GKZBRACQAAANZAEBZEAI6AQFTSAYCAMOQGBADAEBQCAZ2AMCAGGQDAQBQCAY",
DeckType = "custom",
},
new()
{ {
Name = "Rewind Me", Name = "Rewind Me",
Cards = [ Cards = [
+1 -1
View File
@@ -491,7 +491,7 @@ public static class DocDatabase
{ {
Title = "Daily Wins", Title = "Daily Wins",
Category = "Quest", Category = "Quest",
Content = "", Content = "1: 30cc 30xp \n2: 20cc 25xp \n3: 20cc 20xp \n4: 10cc 20xp \n5: 10cc 15xp \n6-12 are all simply 5xp. \n\nSo the daily total win reward for 12 wins is 90cc/145xp.",
Frontmatter = new() Frontmatter = new()
{ {
{ "category", "Quest" }, { "category", "Quest" },
+62
View File
@@ -0,0 +1,62 @@
import os
CARD_ROOT = "chrono.docs"
CATEGORIES = ["Agent", "Spell", "Immortalized", "Token"]
card_files = []
for cat in CATEGORIES:
cat_path = os.path.join(CARD_ROOT, cat)
if os.path.isdir(cat_path):
for root, dirs, files in os.walk(cat_path):
for f in sorted(files):
if f.endswith(".md"):
card_files.append(os.path.join(root, f))
card_files.sort()
print(f"Found {len(card_files)} card files")
updated = 0
skipped = 0
for filepath in card_files:
name = os.path.basename(filepath).replace(".md", "")
with open(filepath, "r", encoding="utf-8") as f:
content = f.read()
if content.count("---") < 2:
print(f"SKIP (no frontmatter): {filepath}")
continue
front = content.split("---")[1]
has_name = False
for line in front.split("\n"):
if line.startswith("name:"):
has_name = True
break
if has_name:
skipped += 1
continue
lines = content.split("\n")
first_sep = None
for i, line in enumerate(lines):
if line.strip() == "---":
first_sep = i
break
if first_sep is None:
print(f"SKIP (no ---): {filepath}")
continue
new_lines = lines[:first_sep + 1]
new_lines.append(f"name: {name}")
new_lines.extend(lines[first_sep + 1:])
with open(filepath, "w", encoding="utf-8") as f:
f.write("\n".join(new_lines))
updated += 1
print(f"Done. Updated: {updated}, Skipped (already had): {skipped}")
+141
View File
@@ -0,0 +1,141 @@
import os, re, json, urllib.request, urllib.error
API_URL = "https://runeterra.ar/api/cards/get/en_us?game=chrono"
HEADERS = {
"Content-Type": "application/json",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
}
def normalize(name):
return name.lower().replace('"', "").replace("'", "").replace("\u2019", "'").replace("\u2018", "'").strip()
CARD_ROOT = "chrono.docs"
FACTION_DIRS = [
"Agent/[[Lifeblood]]", "Agent/[[Phasetide]]", "Agent/[[Splintergleam]]",
"Agent/[[Starshard]]", "Agent/[[Synthos]]", "Agent/[[Voidmen]]",
"Spell/[[Lifeblood]]", "Spell/[[Phasetide]]", "Spell/[[Splintergleam]]",
"Spell/[[Starshard]]", "Spell/[[Synthos]]", "Spell/[[Voidmen]]",
"Immortalized/[[Lifeblood]]", "Immortalized/[[Phasetide]]",
"Immortalized/[[Splintergleam]]", "Immortalized/[[Starshard]]",
"Immortalized/[[Synthos]]", "Immortalized/[[Voidmen]]",
"Token/[[Lifeblood]]", "Token/[[Phasetide]]",
"Token/[[Splintergleam]]", "Token/[[Starshard]]",
"Token/[[Synthos]]", "Token/[[Voidmen]]",
]
card_files = []
for faction_dir in FACTION_DIRS:
full_path = os.path.join(CARD_ROOT, faction_dir)
if os.path.isdir(full_path):
for f in sorted(os.listdir(full_path)):
if f.endswith(".md"):
card_files.append(os.path.join(full_path, f))
card_files.sort()
print(f"Found {len(card_files)} card files")
def fetch_card_data(card_name):
search_terms = [card_name]
first_word = card_name.split()[0] if card_name.split() else card_name
search_terms.append(first_word)
# Try searching for each word in the name
for word in card_name.split():
if word not in search_terms:
search_terms.append(word)
# Try searching for quoted form if name contains quotes
quoted = re.findall(r'"([^"]*)"', card_name)
if quoted:
search_terms.append(quoted[0])
# For "Violent", also try "Violet"
if "violent" in card_name.lower():
search_terms.append(card_name.lower().replace("violent", "Violet"))
search_terms.append("Violet")
seen = set()
for term in search_terms:
if term in seen:
continue
seen.add(term)
body = json.dumps({"search": term}).encode("utf-8")
req = urllib.request.Request(API_URL, data=body, headers=HEADERS)
try:
with urllib.request.urlopen(req, timeout=10) as resp:
data = json.loads(resp.read())
cards = data.get("cards", [])
if not cards:
continue
ncard_name = normalize(card_name)
for c in cards:
if normalize(c.get("name", "")) == ncard_name:
return c.get("rarity"), c.get("artistName")
for c in cards:
for ac in c.get("associatedCards", []):
if normalize(ac.get("name", "")) == ncard_name:
return ac.get("rarity"), ac.get("artistName")
for c in cards:
if ncard_name in normalize(c.get("name", "")) and c.get("type") != "Immortalized Agent":
return c.get("rarity"), c.get("artistName")
for c in cards:
for ac in c.get("associatedCards", []):
if ncard_name in normalize(ac.get("name", "")):
return ac.get("rarity"), ac.get("artistName")
except urllib.error.HTTPError as e:
err_body = e.read().decode()
print(f"[HTTP {e.code}] {err_body[:200]}", end=" ")
return None, None
return None, None
not_found = []
found_count = 0
skipped_count = 0
for i, filepath in enumerate(card_files, 1):
filename = os.path.basename(filepath).replace(".md", "")
print(f"[{i}/{len(card_files)}] {filename}...", end=" ")
with open(filepath, "r", encoding="utf-8") as f:
content = f.read()
# Check if rarity and artist already exist in frontmatter
if "rarity:" in content.split("---")[1].strip() if content.count("---") >= 2 else False:
# Extract existing values to print
front = content.split("---")[1]
r = ""
a = ""
for line in front.split("\n"):
if line.startswith("rarity:"):
r = line.split(":", 1)[1].strip()
if line.startswith("artist:"):
a = line.split(":", 1)[1].strip()
print(f"rarity={r}, artist={a} (skipped)")
skipped_count += 1
continue
rarity, artist = fetch_card_data(filename)
if rarity is None or artist is None:
print("NOT FOUND")
not_found.append(filename)
continue
print(f"rarity={rarity}, artist={artist}")
# Insert after 'category:' line
lines = content.split("\n")
new_lines = []
inserted = False
for line in lines:
new_lines.append(line)
if line.startswith("category:") and not inserted:
new_lines.append(f"rarity: {rarity}")
new_lines.append(f"artist: {artist}")
inserted = True
with open(filepath, "w", encoding="utf-8") as f:
f.write("\n".join(new_lines))
found_count += 1
print(f"\nDone. Found+updated: {found_count}, Skipped (already had): {skipped_count}, Not found: {len(not_found)}")
if not_found:
print("Not found cards:")
for n in not_found:
print(f" - {n}")
+19
View File
@@ -0,0 +1,19 @@
import json, urllib.request
b = json.dumps({}).encode()
r = urllib.request.Request(
"https://runeterra.ar/api/cards/get/en_us?game=chrono",
data=b,
headers={"Content-Type": "application/json", "User-Agent": "Mozilla/5.0"},
)
d = json.loads(urllib.request.urlopen(r, timeout=10).read())
print(f"Total cards in default response: {len(d['cards'])}")
for c in d["cards"]:
name = c["name"]
if "viol" in name.lower() or "scoot" in name.lower() or "ripper" in name.lower():
print(f"MATCH: {name} - {c['rarity']} - {c['artistName']}")
for ac in c.get("associatedCards", []):
acname = ac["name"]
if "viol" in acname.lower() or "scoot" in acname.lower() or "ripper" in acname.lower():
print(f" associated: {acname} - {ac['rarity']} - {ac['artistName']}")
+18
View File
@@ -0,0 +1,18 @@
import json, urllib.request
searches = ["Violent", "Scoot", "Ripper", "Inquisitioner", "Sparkles"]
HEADERS = {"Content-Type": "application/json", "User-Agent": "Mozilla/5.0"}
for s in searches:
b = json.dumps({"search": s}).encode()
r = urllib.request.Request(
"https://runeterra.ar/api/cards/get/en_us?game=chrono",
data=b,
headers=HEADERS,
)
d = json.loads(urllib.request.urlopen(r, timeout=10).read())
print(f"Search '{s}': {len(d['cards'])} results")
for c in d["cards"]:
print(f" {c['name']} - {c['rarity']} - {c['artistName']}")
for ac in c.get("associatedCards", []):
print(f" ac: {ac['name']} - {ac['rarity']} - {ac['artistName']}")
+46
View File
@@ -0,0 +1,46 @@
import json, urllib.request
HEADERS = {"Content-Type": "application/json", "User-Agent": "Mozilla/5.0"}
# Search for Scoot Sparkles base form
b = json.dumps({"search": "Scoot"}).encode()
r = urllib.request.Request(
"https://runeterra.ar/api/cards/get/en_us?game=chrono",
data=b,
headers=HEADERS,
)
d = json.loads(urllib.request.urlopen(r, timeout=10).read())
for c in d["cards"]:
print(f"Card: '{c['name']}'")
for ac in c.get("associatedCards", []):
print(f" Assoc: name='{ac['name']}', rarity={ac['rarity']}, artist={ac['artistName']}")
print()
# Search for Ripper
b2 = json.dumps({"search": "Ripper"}).encode()
r2 = urllib.request.Request(
"https://runeterra.ar/api/cards/get/en_us?game=chrono",
data=b2,
headers=HEADERS,
)
d2 = json.loads(urllib.request.urlopen(r2, timeout=10).read())
for c in d2["cards"]:
print(f"Card: '{c['name']}'")
for ac in c.get("associatedCards", []):
print(f" Assoc: name='{ac['name']}', rarity={ac['rarity']}, artist={ac['artistName']}")
print()
# Search for Violent/Violet
b3 = json.dumps({"search": "Inquisitioner"}).encode()
r3 = urllib.request.Request(
"https://runeterra.ar/api/cards/get/en_us?game=chrono",
data=b3,
headers=HEADERS,
)
d3 = json.loads(urllib.request.urlopen(r3, timeout=10).read())
for c in d3["cards"]:
print(f"Card: '{c['name']}'")
for ac in c.get("associatedCards", []):
print(f" Assoc: name='{ac['name']}', rarity={ac['rarity']}, artist={ac['artistName']}")
+32 -59
View File
@@ -10,46 +10,18 @@
{ {
"id": "852a1aaf6b54ec43", "id": "852a1aaf6b54ec43",
"type": "leaf", "type": "leaf",
"state": {
"type": "bases",
"state": {
"file": "_Store.base",
"viewName": "Table"
},
"icon": "lucide-table",
"title": "_Store"
}
},
{
"id": "711239c069fbdec8",
"type": "leaf",
"state": { "state": {
"type": "markdown", "type": "markdown",
"state": { "state": {
"file": "Rule/Energy Reserves.md", "file": "Deck/Overflowing Security.md",
"mode": "source", "mode": "source",
"source": false "source": false
}, },
"icon": "lucide-file", "icon": "lucide-file",
"title": "Energy Reserves" "title": "Overflowing Security"
}
},
{
"id": "a2a9bf0db5bd1fb6",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "Pass/Beta Season 1 Track.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "Beta Season 1 Track"
} }
} }
], ]
"currentTab": 2
} }
], ],
"direction": "vertical" "direction": "vertical"
@@ -81,7 +53,7 @@
"state": { "state": {
"type": "search", "type": "search",
"state": { "state": {
"query": "deckType: store", "query": "The Ripper",
"matchingCase": false, "matchingCase": false,
"explainSearch": false, "explainSearch": false,
"collapseAll": false, "collapseAll": false,
@@ -106,7 +78,8 @@
} }
], ],
"direction": "horizontal", "direction": "horizontal",
"width": 331.5 "width": 331.5,
"collapsed": true
}, },
"right": { "right": {
"id": "47f3bcd7aed212ab", "id": "47f3bcd7aed212ab",
@@ -211,38 +184,37 @@
"bases:Create new base": false "bases:Create new base": false
} }
}, },
"active": "a2a9bf0db5bd1fb6", "active": "852a1aaf6b54ec43",
"lastOpenFiles": [ "lastOpenFiles": [
"Pass", "Deck/Big Energy.md",
"Deck/Overflowing Security.md",
"Agent/[[Lifeblood]]/Aardvark Precinct Captain.md",
"Agent/[[Lifeblood]]/Egg Tender.md",
"Quest/Daily Wins.md",
"Quest/Deal 30 Damage with Overpower Agents.md",
"Quest/Weekly Wins.md",
"Quest/Overflow 10 Times.md",
"Rule/Slow.md",
"Rule/Energy Reserves.md",
"Pass/Onboarding Track.md", "Pass/Onboarding Track.md",
"Pass/Beta Season 1 Track.md", "Pass/Beta Season 1 Track.md",
"Rule/Energy Reserves.md", "Pass",
"Keyword/Overflow.md", "Keyword/Overflow.md",
"_Store.base",
"Faction/Sungrace.md",
"Overload.md",
"Faction/Splintergleam.md",
"Faction/Phasetide.md",
"Faction/Lifeblood.md",
"Deck/Example.md",
"Deck/Big Energy.md",
"_Timeline.base",
"Deck/Aggro.md",
"Deck/Kyln Control.md",
"Deck/Rewind.md",
"Deck/Somnus Spam.md",
"Deck/Sunbleed.md",
"Deck/Untitled.md",
"Deck/Tempo Deplete.md", "Deck/Tempo Deplete.md",
"Deck/Rewind Me.md", "Deck/Sunbleed.md",
"Store/Core Set Packs x50.md", "Deck/Somnus Spam.md",
"Deck/Rewind.md",
"Deck/Kyln Control.md",
"Deck/Example.md",
"Deck/Aggro.md",
"Note.md",
"Rule/Immediate.md",
"Rule/Fast.md",
"_Store.base",
"_Timeline.base",
"Store/Core Set Packs x1.md", "Store/Core Set Packs x1.md",
"_Spells.base", "Store/Core Set Packs x5.md",
"Rule/Slow.md", "Store/Core Set Packs x10.md",
"Speed/Slow.md",
"Speed/Immediate.md",
"Speed/Fast.md",
"Speed",
"_Quests.base", "_Quests.base",
"Quest", "Quest",
"Store", "Store",
@@ -250,6 +222,7 @@
"_Factions.base", "_Factions.base",
"Decks/Rewind Me.canvas", "Decks/Rewind Me.canvas",
"_Debuff.base", "_Debuff.base",
"_Keyword.base",
"images/Wolf.png", "images/Wolf.png",
"images/Seedling.png", "images/Seedling.png",
"images/Pocket Scout.png", "images/Pocket Scout.png",
@@ -1,5 +1,8 @@
--- ---
name: Aardvark Precinct Captain
category: Agent category: Agent
artist: Arthur Rosa
rarity: Divergent
cost: 2 cost: 2
attack: 0 attack: 0
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Burrowing Beetles
category: Agent category: Agent
artist: Arthur Rosa
rarity: Common
cost: 1 cost: 1
attack: 1 attack: 1
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Egg Tender
category: Agent category: Agent
artist: BEIKI
rarity: Divergent
cost: 1 cost: 1
attack: 0 attack: 0
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Fervent Mycologist
category: Agent category: Agent
artist: Guilherme Faria
rarity: Common
cost: 1 cost: 1
attack: 1 attack: 1
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Gardener Apprentice
category: Agent category: Agent
artist: Bi Pi
rarity: Divergent
cost: 1 cost: 1
attack: 1 attack: 1
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Glade Grazers
category: Agent category: Agent
artist: Bi Pi
rarity: Rare
cost: 2 cost: 2
attack: 0 attack: 0
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Glasswinged Monarch
category: Agent category: Agent
artist: Kurt Daryll Ludaes
rarity: Lost
cost: 6 cost: 6
attack: 4 attack: 4
health: 4 health: 4
@@ -1,5 +1,8 @@
--- ---
name: Harbinger of Power
category: Agent category: Agent
artist: Karl Angelo Brito
rarity: Common
cost: 5 cost: 5
attack: 5 attack: 5
health: 5 health: 5
@@ -1,5 +1,8 @@
--- ---
name: Hungry Tyrannosaur
category: Agent category: Agent
artist: Paul Takahashi
rarity: Common
cost: 8 cost: 8
attack: 8 attack: 8
health: 7 health: 7
@@ -1,5 +1,8 @@
--- ---
name: Panicked Refugee
category: Agent category: Agent
artist: Karl Angelo Brito
rarity: Common
cost: 3 cost: 3
attack: 2 attack: 2
health: 2 health: 2
@@ -1,5 +1,8 @@
--- ---
name: Pterosaur Rider
category: Agent category: Agent
artist: Paul Takahashi
rarity: Rare
cost: 4 cost: 4
attack: 3 attack: 3
health: 3 health: 3
@@ -1,5 +1,8 @@
--- ---
name: Sap Sapper
category: Agent category: Agent
artist: Arthur Rosa
rarity: Lost
cost: 4 cost: 4
attack: 2 attack: 2
health: 4 health: 4
@@ -1,5 +1,8 @@
--- ---
name: Sapling Dryad
category: Agent category: Agent
artist: Arthur Rosa
rarity: Lost
cost: 2 cost: 2
attack: 1 attack: 1
health: 2 health: 2
@@ -1,5 +1,8 @@
--- ---
name: Sleepy Druid
category: Agent category: Agent
artist: BEIKI
rarity: Rare
cost: 3 cost: 3
attack: 2 attack: 2
health: 2 health: 2
@@ -1,5 +1,8 @@
--- ---
name: Spark of Bounty
category: Agent category: Agent
artist: Paul Takahashi
rarity: Rare
cost: 5 cost: 5
attack: 4 attack: 4
health: 4 health: 4
@@ -1,5 +1,8 @@
--- ---
name: Territorial Pack
category: Agent category: Agent
artist: Bi Pi
rarity: Common
cost: 2 cost: 2
attack: 1 attack: 1
health: 2 health: 2
@@ -1,5 +1,8 @@
--- ---
name: Zealot of the Hunt
category: Agent category: Agent
artist: Karl Angelo Brito
rarity: Divergent
cost: 6 cost: 6
attack: 7 attack: 7
health: 5 health: 5
@@ -1,5 +1,8 @@
--- ---
name: Bareknuckle Inquisitor
category: Agent category: Agent
artist: Arthur Rosa
rarity: Divergent
cost: 5 cost: 5
attack: 3 attack: 3
health: 8 health: 8
@@ -1,5 +1,8 @@
--- ---
name: Bearer of the Broth
category: Agent category: Agent
artist: Jeffrey Viloria
rarity: Rare
cost: 4 cost: 4
attack: 2 attack: 2
health: 4 health: 4
@@ -1,5 +1,8 @@
--- ---
name: Curious Acolyte
category: Agent category: Agent
artist: Kurt Daryll Ludaes
rarity: Divergent
description: When I am [[Phased]] or [[Rewound]], [[Draw]] 1. description: When I am [[Phased]] or [[Rewound]], [[Draw]] 1.
immortalizeWhen: I am [[Phased]] or [[Rewound]]. immortalizeWhen: I am [[Phased]] or [[Rewound]].
immortalizeTo: "[[Zel, the First Diver]]" immortalizeTo: "[[Zel, the First Diver]]"
@@ -1,5 +1,8 @@
--- ---
name: Divergence Assassin
category: Agent category: Agent
artist: Arthur Rosa
rarity: Lost
cost: 6 cost: 6
attack: 6 attack: 6
health: 3 health: 3
@@ -1,5 +1,8 @@
--- ---
name: Fervent Follower
category: Agent category: Agent
artist: Simon Carr
rarity: Rare
cost: 1 cost: 1
attack: 1 attack: 1
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Heretic Whistleblower
category: Agent category: Agent
artist: Bi Pi
rarity: Rare
cost: 3 cost: 3
attack: 2 attack: 2
health: 4 health: 4
@@ -1,5 +1,8 @@
--- ---
name: Holder of the Instruments
category: Agent category: Agent
artist: Simon Carr
rarity: Common
cost: 1 cost: 1
attack: 2 attack: 2
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Holy Cleaner
category: Agent category: Agent
artist: Millena Ramos
rarity: Common
cost: 3 cost: 3
attack: 2 attack: 2
health: 3 health: 3
@@ -1,5 +1,8 @@
--- ---
name: Karmic Debtor
category: Agent category: Agent
artist: Bi Pi
rarity: Rare
cost: 4 cost: 4
attack: 2 attack: 2
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Nonlethal Special Forces
category: Agent category: Agent
artist: Zed Edge
rarity: Divergent
cost: 4 cost: 4
attack: 3 attack: 3
health: 3 health: 3
@@ -1,5 +1,8 @@
--- ---
name: Seeker of Truth
category: Agent category: Agent
artist: Zed Edge
rarity: Common
cost: 2 cost: 2
attack: 2 attack: 2
health: 6 health: 6
@@ -1,5 +1,8 @@
--- ---
name: Shattersmith
category: Agent category: Agent
artist: TheLastEmber
rarity: Common
cost: 3 cost: 3
attack: 5 attack: 5
health: 5 health: 5
@@ -1,5 +1,8 @@
--- ---
name: Slow Convert
category: Agent category: Agent
artist: Xtian.Art
rarity: Divergent
cost: 6 cost: 6
attack: 2 attack: 2
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Stern Arbiter
category: Agent category: Agent
artist: Simon Carr
rarity: Lost
cost: 7 cost: 7
attack: 5 attack: 5
health: 5 health: 5
@@ -1,5 +1,8 @@
--- ---
name: Temple Analyst
category: Agent category: Agent
artist: Xtian.Art
rarity: Divergent
cost: 2 cost: 2
attack: 2 attack: 2
health: 3 health: 3
@@ -1,5 +1,8 @@
--- ---
name: Temple Guard Hound
category: Agent category: Agent
artist: Bi Pi
rarity: Common
cost: 1 cost: 1
attack: 2 attack: 2
health: 5 health: 5
@@ -1,5 +1,8 @@
--- ---
name: Braindead Bouncer
category: Agent category: Agent
artist: Romulo Reyes
rarity: Common
cost: 1 cost: 1
attack: 3 attack: 3
health: 2 health: 2
@@ -1,5 +1,8 @@
--- ---
name: Death Jockey
category: Agent category: Agent
artist: Romulo Reyes
rarity: Lost
cost: 5 cost: 5
attack: 4 attack: 4
health: 4 health: 4
@@ -1,5 +1,8 @@
--- ---
name: Destiny Ripper
category: Agent category: Agent
artist: BEIKI
rarity: Common
cost: 4 cost: 4
attack: 2 attack: 2
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Disciplined Student
category: Agent category: Agent
artist: Bi Pi
rarity: Divergent
cost: 3 cost: 3
attack: 2 attack: 2
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Forest Recluse
category: Agent category: Agent
artist: Paul Takahashi
rarity: Common
cost: 3 cost: 3
attack: 3 attack: 3
health: 2 health: 2
@@ -1,5 +1,8 @@
--- ---
name: Fuzzy Archivist
category: Agent category: Agent
artist: Bi Pi
rarity: Divergent
cost: 4 cost: 4
attack: 1 attack: 1
health: 3 health: 3
@@ -1,5 +1,8 @@
--- ---
name: Librarian's Assistant
category: Agent category: Agent
artist: Bi Pi
rarity: Rare
cost: 2 cost: 2
attack: 2 attack: 2
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Nameless Spirit
category: Agent category: Agent
artist: Paul Takahashi
rarity: Common
cost: 2 cost: 2
attack: 3 attack: 3
health: 2 health: 2
@@ -1,5 +1,8 @@
--- ---
name: Overburdened Scribe
category: Agent category: Agent
artist: Arthur Rosa
rarity: Lost
cost: 6 cost: 6
attack: 3 attack: 3
health: 4 health: 4
@@ -1,5 +1,8 @@
--- ---
name: Redactionist
category: Agent category: Agent
artist: Xtian.Art
rarity: Rare
cost: 4 cost: 4
attack: 4 attack: 4
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Rotting Rocker
category: Agent category: Agent
artist: Paul Takahashi
rarity: Divergent
cost: 3 cost: 3
attack: 3 attack: 3
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Sensory Deprivation Pod
category: Agent category: Agent
artist: Bi Pi
rarity: Rare
cost: 5 cost: 5
attack: 2 attack: 2
health: 3 health: 3
@@ -1,5 +1,8 @@
--- ---
name: Solemn Attendant
category: Agent category: Agent
artist: Simon Carr
rarity: Divergent
cost: 6 cost: 6
attack: 3 attack: 3
health: 3 health: 3
@@ -1,5 +1,8 @@
--- ---
name: Somber Astronomer
category: Agent category: Agent
artist: Kurt Daryll Ludaes
rarity: Common
cost: 1 cost: 1
attack: 1 attack: 1
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Telepathic Conduit
category: Agent category: Agent
artist: Bi Pi
rarity: Rare
cost: 2 cost: 2
attack: 1 attack: 1
health: 2 health: 2
@@ -1,5 +1,8 @@
--- ---
name: Telepathic Scavenger
category: Agent category: Agent
artist: Rhuan Gon
rarity: Common
cost: 4 cost: 4
attack: 2 attack: 2
health: 3 health: 3
@@ -1,5 +1,8 @@
--- ---
name: The Forgotten Tale
category: Agent category: Agent
artist: Romulo Reyes
rarity: Lost
cost: 6 cost: 6
attack: 3 attack: 3
health: 7 health: 7
@@ -1,5 +1,8 @@
--- ---
name: Awakened Security System
category: Agent category: Agent
artist: Bi Pi
rarity: Divergent
cost: 2 cost: 2
attack: 1 attack: 1
health: 3 health: 3
@@ -1,5 +1,8 @@
--- ---
name: Efficient Scrapbot
category: Agent category: Agent
artist: Arthur Rosa
rarity: Common
cost: 1 cost: 1
attack: 2 attack: 2
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Enhanced Retriever
category: Agent category: Agent
artist: Bi Pi
rarity: Rare
cost: 2 cost: 2
attack: 2 attack: 2
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Enlightened Refugee
category: Agent category: Agent
artist: Jeffrey Viloria
rarity: Divergent
cost: 3 cost: 3
attack: 2 attack: 2
health: 2 health: 2
@@ -1,5 +1,8 @@
--- ---
name: Enthusiastic Bot-Poke
category: Agent category: Agent
artist: Romulo Reyes
rarity: Rare
cost: 4 cost: 4
attack: 2 attack: 2
health: 3 health: 3
@@ -1,5 +1,8 @@
--- ---
name: Fractal Phantasm
category: Agent category: Agent
artist: Arthur Rosa
rarity: Lost
cost: 2 cost: 2
attack: 2 attack: 2
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Nascent Clone
category: Agent category: Agent
artist: Romulo Reyes
rarity: Lost
cost: 4 cost: 4
attack: 1 attack: 1
health: 3 health: 3
@@ -1,5 +1,8 @@
--- ---
name: Origination Engine
category: Agent category: Agent
artist: Bi Pi
rarity: Rare
cost: 8 cost: 8
attack: 6 attack: 6
health: 6 health: 6
@@ -1,5 +1,8 @@
--- ---
name: Recycler
category: Agent category: Agent
artist: Horugode
rarity: Common
cost: 4 cost: 4
attack: 2 attack: 2
health: 4 health: 4
@@ -1,5 +1,8 @@
--- ---
name: Rogue Amalgam
category: Agent category: Agent
artist: Arthur Rosa
rarity: Lost
cost: 7 cost: 7
attack: 3 attack: 3
health: 5 health: 5
@@ -1,5 +1,8 @@
--- ---
name: Roiling Amalgam
category: Agent category: Agent
artist: BEIKI
rarity: Rare
cost: 5 cost: 5
attack: 3 attack: 3
health: 5 health: 5
@@ -1,5 +1,8 @@
--- ---
name: Scattered Helpers
category: Agent category: Agent
artist: Arthur Rosa
rarity: Rare
cost: 2 cost: 2
attack: 0 attack: 0
health: 4 health: 4
@@ -1,5 +1,8 @@
--- ---
name: Scuttling Spares
category: Agent category: Agent
artist: Bi Pi
rarity: Common
cost: 3 cost: 3
attack: 3 attack: 3
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Traffic Conductor
category: Agent category: Agent
artist: Ritchie Cantuária
rarity: Common
cost: 2 cost: 2
attack: 2 attack: 2
health: 2 health: 2
@@ -1,5 +1,8 @@
--- ---
name: Blazing Shifter
category: Agent category: Agent
artist: Paul Takahashi
rarity: Divergent
cost: 4 cost: 4
attack: 2 attack: 2
health: 2 health: 2
@@ -1,5 +1,8 @@
--- ---
name: Bloodline Tracker
category: Agent category: Agent
artist: Simon Carr
rarity: Divergent
cost: 1 cost: 1
attack: 1 attack: 1
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Bright-Eyed Supplicant
category: Agent category: Agent
artist: Julien Fenoglio
rarity: Rare
cost: 3 cost: 3
attack: 2 attack: 2
health: 4 health: 4
@@ -1,5 +1,8 @@
--- ---
name: Brutal Reveler
category: Agent category: Agent
artist: Julien Fenoglio
rarity: Rare
cost: 7 cost: 7
attack: 6 attack: 6
health: 5 health: 5
@@ -1,5 +1,8 @@
--- ---
name: Bullseye Bounty Hunter
category: Agent category: Agent
artist: Zed Edge
rarity: Rare
cost: 4 cost: 4
attack: 4 attack: 4
health: 3 health: 3
@@ -1,5 +1,8 @@
--- ---
name: Denizen of Flames
category: Agent category: Agent
artist: um_predo
rarity: Rare
cost: 1 cost: 1
attack: 2 attack: 2
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Desperate Primordial
category: Agent category: Agent
artist: Xtian.Art
rarity: Common
cost: 2 cost: 2
attack: 4 attack: 4
health: 2 health: 2
@@ -1,5 +1,8 @@
--- ---
name: Devoted Bloodletter
category: Agent category: Agent
artist: Simon Carr
rarity: Rare
cost: 5 cost: 5
attack: 4 attack: 4
health: 5 health: 5
@@ -1,5 +1,8 @@
--- ---
name: Frontline Juggernaut
category: Agent category: Agent
artist: Paul Takahashi
rarity: Common
cost: 6 cost: 6
attack: 6 attack: 6
health: 5 health: 5
@@ -1,5 +1,8 @@
--- ---
name: Gilded Behemoth
category: Agent category: Agent
artist: Donnie Obina
rarity: Lost
cost: 7 cost: 7
attack: 5 attack: 5
health: 9 health: 9
@@ -1,5 +1,8 @@
--- ---
name: Glittering Gladiator
category: Agent category: Agent
artist: BEIKI
rarity: Common
cost: 1 cost: 1
attack: 1 attack: 1
health: 3 health: 3
@@ -1,5 +1,8 @@
--- ---
name: Hungry Engine
category: Agent category: Agent
artist: Simon Carr
rarity: Divergent
cost: 5 cost: 5
attack: 5 attack: 5
health: 5 health: 5
@@ -1,5 +1,8 @@
--- ---
name: Painforger
category: Agent category: Agent
artist: G.C.
rarity: Lost
cost: 2 cost: 2
attack: 1 attack: 1
health: 3 health: 3
@@ -1,5 +1,8 @@
--- ---
name: Persistent Squire
category: Agent category: Agent
artist: Karl Angelo Brito
rarity: Common
cost: 1 cost: 1
attack: 1 attack: 1
health: 2 health: 2
@@ -1,5 +1,8 @@
--- ---
name: Pit Dog
category: Agent category: Agent
artist: Bi Pi
rarity: Common
cost: 2 cost: 2
attack: 2 attack: 2
health: 4 health: 4
@@ -1,5 +1,8 @@
--- ---
name: Red Reaper
category: Agent category: Agent
artist: Zed Edge
rarity: Lost
cost: 5 cost: 5
attack: 3 attack: 3
health: 5 health: 5
@@ -1,5 +1,8 @@
--- ---
name: Stalwart Champion
category: Agent category: Agent
artist: Paul Takahashi
rarity: Common
cost: 3 cost: 3
attack: 3 attack: 3
health: 4 health: 4
@@ -1,5 +1,8 @@
--- ---
name: Toothy Pugilist
category: Agent category: Agent
artist: Julien Fenoglio
rarity: Common
cost: 4 cost: 4
attack: 3 attack: 3
health: 6 health: 6
@@ -1,5 +1,8 @@
--- ---
name: Brilliant Martyr
category: Agent category: Agent
artist: Arthur Rosa
rarity: Common
cost: 1 cost: 1
attack: 2 attack: 2
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Canine Adjutant
category: Agent category: Agent
artist: Bi Pi
rarity: Common
cost: 2 cost: 2
attack: 2 attack: 2
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Containment Breach
category: Agent category: Agent
artist: Arthur Rosa
rarity: Divergent
cost: 5 cost: 5
attack: 2 attack: 2
health: 6 health: 6
@@ -1,5 +1,8 @@
--- ---
name: Debris Collector
category: Agent category: Agent
artist: Arthur Rosa
rarity: Rare
cost: 4 cost: 4
attack: 1 attack: 1
health: 1 health: 1
@@ -1,5 +1,8 @@
--- ---
name: Devourer Spawn
category: Agent category: Agent
artist: Paul Takahashi
rarity: Lost
cost: 10 cost: 10
attack: 10 attack: 10
health: 10 health: 10
@@ -1,5 +1,8 @@
--- ---
name: Gunnery Captain
category: Agent category: Agent
artist: Arthur Rosa
rarity: Rare
cost: 7 cost: 7
attack: 5 attack: 5
health: 6 health: 6

Some files were not shown because too many files have changed in this diff Show More