fertig-classic-games/data/swdbg-cards.json

297 lines
28 KiB
JSON

{
"_readme": [
"Star Wars: The Deckbuilding Game — full card data. This file is the single",
"source of truth for every card: edit stats/text here and the game engine",
"picks the changes up on the next page load (no rebuild needed).",
"",
"RULES DATA CAVEAT: the rules engine follows the official rulebook exactly,",
"but individual card stats/abilities below were reconstructed from memory and",
"public previews — verify them against the physical cards and edit freely.",
"",
"CARD FIELDS:",
" id unique lowercase key (do not change once art is mapped)",
" name display name",
" faction 'empire' | 'rebel' | 'neutral'",
" type 'unit' | 'capital' (capital ships stay in play, have hp)",
" unique true = 1-of, may be referenced by other cards",
" traits flavor tags referenced by abilities (Fighter, Trooper, ...)",
" cost purchase cost in resources",
" attack / resources / force printed values gained when played",
" hp capital ships only — damage needed to destroy it in play",
" count copies in the 90-card galaxy deck",
" target attack needed to bounty-hunt/sabotage it in the row (faction",
" cards only; neutral cards and capital ships use null)",
" reward what the defeater gains: {resources, force, draw} or null",
" ability machine-readable effect (see OPS below) or null",
" text display-only rules text — keep in sync with `ability`",
"",
"ABILITY SHAPE: { timing, op, ...params, cost?, requiresForce?, requiresCapital? }",
" timing 'action' = use once per turn while in play (the default)",
" 'constant' = always on while in play ('While ...')",
" 'onPlay' = triggers when the card is played",
" 'onBounty' = triggers when you defeat a galaxy-row card",
" 'onReveal' = bases only: when the base is revealed",
" cost { exileSelf: true } and/or { exileFromHand: 1 } paid before the op",
" requiresForce: true = usable only while the Force is with you",
" requiresCapital: true = usable only while you have a capital ship in play",
" nForce / amountForce = upgraded number while the Force is with you",
"",
"SUPPORTED OPS (the engine understands exactly these):",
" draw{n,nForce} draw cards",
" gainResources{n,nForce} add resources to your pool this turn",
" gainForce{n} move the Force marker toward you",
" gainAttack{n,nForce} this card gains attack this turn",
" damageBase{n,nForce} damage enemy base directly (ignores capitals)",
" repairBase{n} remove damage from your base",
" oppDiscard{n,randomForce} opponent discards (random while Force is w/ you)",
" discardRow{} discard a card from the galaxy row (no reward)",
" destroyCapital{} destroy a capital ship (in play or in the row)",
" exileCards{n,optional} exile up to n cards from your hand/discard",
" freePurchase{faction,maxCost,forceTopdeck} take a row card for free",
" recoverDiscard{filter} return a card from your discard to your hand",
" lookTop{mayDiscard} look at top of galaxy deck, optionally discard",
" revealTop{} reveal top of galaxy deck; if it matches your",
" faction gain 1 resource, if enemy you may",
" discard it, if neutral nothing happens",
" spyChoice{} opponent chooses: discard 1 OR you gain 1 Force",
" choose{options:[a,b]} pick one of two sub-abilities",
" traitBoost{trait,amount} constant: your units with trait get +attack",
" rowBonus{amount} constant: +attack when attacking the galaxy row",
" selfBoostWhileForce{amount} constant: +attack while the Force is with you",
" selfBoostWithTrait{trait,amount} constant: +attack while you have another",
" card with the trait in play",
" capitalDiscount{n} constant (bases): your capital ships cost less",
" onPlayTraitAttack{trait,amount} constant (bases): played units with the",
" trait gain +attack",
"",
"BASES: hp, starting (true = begin the game with it), ability (onReveal /",
"constant / action ops above), text. Beginner game uses these five per side;",
"add more entries to play Full Galaxy mode."
],
"meta": {
"basesToWin": 3,
"handSize": 5,
"galaxyRowSize": 6,
"forceSpaces": 3,
"forceStartsWith": "rebel"
},
"starters": {
"rebel": [
{ "id": "allianceshuttle", "count": 7 },
{ "id": "rebeltrooper", "count": 2 },
{ "id": "templeguardian", "count": 1 }
],
"empire": [
{ "id": "imperialshuttle", "count": 7 },
{ "id": "stormtrooper", "count": 2 },
{ "id": "inquisitor", "count": 1 }
]
},
"starterCards": [
{ "id": "allianceshuttle", "name": "Alliance Shuttle", "faction": "rebel", "type": "unit", "unique": false, "traits": ["Transport"], "cost": 0, "attack": 0, "resources": 1, "force": 0, "target": null, "reward": null, "ability": null,
"text": "The workhorse of the Rebellion's supply lines." },
{ "id": "rebeltrooper", "name": "Rebel Trooper", "faction": "rebel", "type": "unit", "unique": false, "traits": ["Trooper"], "cost": 0, "attack": 2, "resources": 0, "force": 0, "target": null, "reward": null, "ability": null,
"text": "Rebels don't wait for the odds to look good." },
{ "id": "templeguardian", "name": "Temple Guardian", "faction": "rebel", "type": "unit", "unique": false, "traits": ["Guardian"], "cost": 0, "attack": 1, "resources": 0, "force": 1, "target": null, "reward": null, "ability": null,
"text": "The Force is with me, and I am one with the Force." },
{ "id": "imperialshuttle", "name": "Imperial Shuttle", "faction": "empire", "type": "unit", "unique": false, "traits": ["Transport"], "cost": 0, "attack": 0, "resources": 1, "force": 0, "target": null, "reward": null, "ability": null,
"text": "Cleared for landing on platform 327." },
{ "id": "stormtrooper", "name": "Stormtrooper", "faction": "empire", "type": "unit", "unique": false, "traits": ["Trooper"], "cost": 0, "attack": 2, "resources": 0, "force": 0, "target": null, "reward": null, "ability": null,
"text": "Precision aim is a myth. Overwhelming numbers are not." },
{ "id": "inquisitor", "name": "Inquisitor", "faction": "empire", "type": "unit", "unique": false, "traits": ["Sith"], "cost": 0, "attack": 1, "resources": 0, "force": 1, "target": null, "reward": null, "ability": null,
"text": "There are things far worse than death." }
],
"outerRimPilot": {
"id": "outerrimpilot", "name": "Outer Rim Pilot", "faction": "neutral", "type": "unit", "unique": false, "traits": ["Pilot"], "cost": 2, "attack": 0, "resources": 2, "force": 0, "count": 10, "target": null, "reward": null,
"ability": { "timing": "action", "op": "gainResources", "n": 1, "cost": { "exileSelf": true } },
"text": "Exile Outer Rim Pilot to gain 1 resource."
},
"cards": [
{ "id": "tiefighter", "name": "TIE Fighter", "faction": "empire", "type": "unit", "unique": false, "traits": ["Fighter"], "cost": 1, "attack": 2, "resources": 0, "force": 0, "count": 5, "target": 1, "reward": { "resources": 1 },
"ability": { "timing": "action", "op": "draw", "n": 1, "requiresCapital": true },
"text": "If you have a capital ship in play, draw 1 card." },
{ "id": "scouttrooper", "name": "Scout Trooper", "faction": "empire", "type": "unit", "unique": false, "traits": ["Trooper"], "cost": 2, "attack": 2, "resources": 2, "force": 0, "count": 3, "target": 2, "reward": { "resources": 1 },
"ability": { "timing": "action", "op": "revealTop" },
"text": "Reveal the top card of the galaxy deck. If it is an Empire card, gain 1 resource. If it is a Rebel card, you may discard it." },
{ "id": "deathtrooper", "name": "Death Trooper", "faction": "empire", "type": "unit", "unique": false, "traits": ["Trooper"], "cost": 3, "attack": 3, "resources": 0, "force": 0, "count": 3, "target": 4, "reward": { "resources": 2 },
"ability": { "timing": "action", "op": "oppDiscard", "n": 1, "randomForce": true },
"text": "Your opponent discards a card from their hand (at random while the Force is with you)." },
{ "id": "tiebomber", "name": "TIE Bomber", "faction": "empire", "type": "unit", "unique": false, "traits": ["Fighter"], "cost": 3, "attack": 2, "resources": 0, "force": 0, "count": 3, "target": 3, "reward": { "resources": 1, "force": 1 },
"ability": { "timing": "action", "op": "damageBase", "n": 1, "nForce": 2 },
"text": "Deal 1 damage to the enemy base (2 damage instead while the Force is with you)." },
{ "id": "tieinterceptor", "name": "TIE Interceptor", "faction": "empire", "type": "unit", "unique": false, "traits": ["Fighter"], "cost": 4, "attack": 3, "resources": 0, "force": 0, "count": 2, "target": 4, "reward": { "resources": 2 },
"ability": { "timing": "constant", "op": "selfBoostWhileForce", "amount": 1 },
"text": "TIE Interceptor gains 1 attack while the Force is with you." },
{ "id": "atst", "name": "AT-ST", "faction": "empire", "type": "unit", "unique": false, "traits": ["Vehicle"], "cost": 4, "attack": 4, "resources": 0, "force": 0, "count": 2, "target": 5, "reward": { "resources": 2, "force": 1 },
"ability": null,
"text": "The chicken walker: ridiculous nickname, unfunny results." },
{ "id": "atat", "name": "AT-AT", "faction": "empire", "type": "unit", "unique": false, "traits": ["Vehicle"], "cost": 6, "attack": 6, "resources": 0, "force": 0, "count": 1, "target": 7, "reward": { "resources": 3, "force": 1 },
"ability": { "timing": "action", "op": "oppDiscard", "n": 1, "randomForce": true },
"text": "Your opponent discards a card from their hand (at random while the Force is with you)." },
{ "id": "generalveers", "name": "General Veers", "faction": "empire", "type": "unit", "unique": true, "traits": ["Officer"], "cost": 4, "attack": 2, "resources": 1, "force": 0, "count": 1, "target": 5, "reward": { "resources": 2, "force": 1 },
"ability": { "timing": "constant", "op": "traitBoost", "trait": "Vehicle", "amount": 2 },
"text": "Your Vehicles gain 2 attack while General Veers is in play." },
{ "id": "grandmofftarkin", "name": "Grand Moff Tarkin", "faction": "empire", "type": "unit", "unique": true, "traits": ["Officer"], "cost": 6, "attack": 2, "resources": 2, "force": 2, "count": 1, "target": 7, "reward": { "resources": 3, "force": 1 },
"ability": { "timing": "action", "op": "discardRow" },
"text": "You may discard a card from the galaxy row." },
{ "id": "directorkrennic", "name": "Director Krennic", "faction": "empire", "type": "unit", "unique": true, "traits": ["Officer"], "cost": 5, "attack": 3, "resources": 2, "force": 0, "count": 1, "target": 5, "reward": { "resources": 3, "force": 2 },
"ability": { "timing": "action", "op": "draw", "n": 1, "nBase": { "base": "deathstar", "n": 2 } },
"text": "Draw 1 card (2 cards instead if your base is the Death Star)." },
{ "id": "darthvader", "name": "Darth Vader", "faction": "empire", "type": "unit", "unique": true, "traits": ["Sith"], "cost": 8, "attack": 6, "resources": 0, "force": 2, "count": 1, "target": 9, "reward": { "resources": 3, "force": 3 },
"ability": { "timing": "constant", "op": "selfBoostWhileForce", "amount": 4 },
"text": "Darth Vader gains 4 attack while the Force is with you." },
{ "id": "emperorpalpatine", "name": "Emperor Palpatine", "faction": "empire", "type": "unit", "unique": true, "traits": ["Sith"], "cost": 8, "attack": 3, "resources": 0, "force": 3, "count": 1, "target": 9, "reward": { "resources": 3, "force": 3 },
"ability": { "timing": "action", "op": "choose", "options": [ { "op": "draw", "n": 2 }, { "op": "oppDiscard", "n": 1, "randomForce": true } ] },
"text": "Choose one: draw 2 cards, or your opponent discards a card from their hand (at random while the Force is with you)." },
{ "id": "gozanticruiser", "name": "Gozanti Cruiser", "faction": "empire", "type": "capital", "unique": false, "traits": ["Capital Ship"], "cost": 3, "attack": 0, "resources": 1, "force": 0, "hp": 3, "count": 2, "target": null, "reward": null,
"ability": null,
"text": "A slow freighter with just enough guns to matter." },
{ "id": "imperialcarrier", "name": "Imperial Carrier", "faction": "empire", "type": "capital", "unique": false, "traits": ["Capital Ship"], "cost": 5, "attack": 0, "resources": 3, "force": 0, "hp": 5, "count": 2, "target": null, "reward": null,
"ability": { "timing": "constant", "op": "traitBoost", "trait": "Fighter", "amount": 1 },
"text": "Your Fighters gain 1 attack while Imperial Carrier is in play." },
{ "id": "stardestroyer", "name": "Star Destroyer", "faction": "empire", "type": "capital", "unique": false, "traits": ["Capital Ship"], "cost": 7, "attack": 4, "resources": 1, "force": 0, "hp": 7, "count": 2, "target": null, "reward": null,
"ability": null,
"text": "The Imperial Navy's argument, delivered at length." },
{ "id": "rebelpathfinder", "name": "Rebel Pathfinder", "faction": "rebel", "type": "unit", "unique": false, "traits": ["Trooper"], "cost": 1, "attack": 1, "resources": 1, "force": 0, "count": 3, "target": 2, "reward": { "resources": 1 },
"ability": null,
"text": "First in, last out, rarely thanked." },
{ "id": "ywing", "name": "Y-Wing", "faction": "rebel", "type": "unit", "unique": false, "traits": ["Fighter"], "cost": 2, "attack": 2, "resources": 0, "force": 0, "count": 3, "target": 2, "reward": { "resources": 1 },
"ability": { "timing": "action", "op": "damageBase", "n": 1 },
"text": "Deal 1 damage to the enemy base." },
{ "id": "snowspeeder", "name": "Snowspeeder", "faction": "rebel", "type": "unit", "unique": false, "traits": ["Vehicle"], "cost": 2, "attack": 2, "resources": 0, "force": 0, "count": 2, "target": 3, "reward": { "resources": 1 },
"ability": { "timing": "constant", "op": "selfBoostWhileForce", "amount": 1 },
"text": "Snowspeeder gains 1 attack while the Force is with you." },
{ "id": "durosspy", "name": "Duros Spy", "faction": "rebel", "type": "unit", "unique": false, "traits": ["Trooper"], "cost": 2, "attack": 0, "resources": 2, "force": 0, "count": 2, "target": 2, "reward": { "force": 1 },
"ability": { "timing": "action", "op": "spyChoice" },
"text": "Your opponent chooses one: they discard a card from their hand, or you gain 1 Force." },
{ "id": "xwing", "name": "X-Wing", "faction": "rebel", "type": "unit", "unique": false, "traits": ["Fighter"], "cost": 3, "attack": 3, "resources": 0, "force": 0, "count": 3, "target": 3, "reward": { "resources": 1, "force": 1 },
"ability": { "timing": "action", "op": "draw", "n": 1, "requiresForce": true },
"text": "If the Force is with you, draw a card." },
{ "id": "rebelcommando", "name": "Rebel Commando", "faction": "rebel", "type": "unit", "unique": false, "traits": ["Trooper"], "cost": 3, "attack": 3, "resources": 0, "force": 0, "count": 3, "target": 3, "reward": { "resources": 2 },
"ability": { "timing": "action", "op": "oppDiscard", "n": 1, "randomForce": true },
"text": "Your opponent discards a card from their hand (at random while the Force is with you)." },
{ "id": "cassianandor", "name": "Cassian Andor", "faction": "rebel", "type": "unit", "unique": true, "traits": ["Trooper", "Spy"], "cost": 5, "attack": 5, "resources": 0, "force": 0, "count": 1, "target": 5, "reward": { "resources": 3, "force": 2 },
"ability": { "timing": "onBounty", "op": "oppDiscard", "n": 1 },
"text": "When Cassian Andor defeats a target in the galaxy row, your opponent discards 1 card from their hand." },
{ "id": "k2so", "name": "K-2SO", "faction": "rebel", "type": "unit", "unique": true, "traits": ["Droid"], "cost": 4, "attack": 3, "resources": 0, "force": 0, "count": 1, "target": 5, "reward": { "resources": 2, "force": 1 },
"ability": { "timing": "action", "op": "oppDiscard", "n": 1, "randomForce": true },
"text": "Your opponent discards a card from their hand (at random while the Force is with you)." },
{ "id": "chirrutimwe", "name": "Chirrut Îmwe", "faction": "rebel", "type": "unit", "unique": true, "traits": ["Guardian"], "cost": 3, "attack": 2, "resources": 0, "force": 2, "count": 1, "target": 4, "reward": { "force": 2 },
"ability": { "timing": "action", "op": "gainForce", "n": 1 },
"text": "Gain 1 Force." },
{ "id": "jynerso", "name": "Jyn Erso", "faction": "rebel", "type": "unit", "unique": true, "traits": ["Trooper"], "cost": 5, "attack": 4, "resources": 0, "force": 0, "count": 1, "target": 6, "reward": { "resources": 2, "force": 2 },
"ability": { "timing": "action", "op": "draw", "n": 1, "requiresForce": true },
"text": "If the Force is with you, draw a card." },
{ "id": "chewbacca", "name": "Chewbacca", "faction": "rebel", "type": "unit", "unique": true, "traits": ["Scoundrel"], "cost": 5, "attack": 4, "resources": 1, "force": 0, "count": 1, "target": 6, "reward": { "resources": 2, "force": 2 },
"ability": { "timing": "action", "op": "recoverDiscard", "filter": "unique" },
"text": "Return a unique card from your discard pile to your hand." },
{ "id": "hansolo", "name": "Han Solo", "faction": "rebel", "type": "unit", "unique": true, "traits": ["Scoundrel"], "cost": 7, "attack": 3, "resources": 2, "force": 0, "count": 1, "target": 8, "reward": { "resources": 3, "force": 2 },
"ability": { "timing": "action", "op": "draw", "n": 1 },
"text": "Draw a card." },
{ "id": "princessleia", "name": "Princess Leia", "faction": "rebel", "type": "unit", "unique": true, "traits": ["Officer"], "cost": 6, "attack": 2, "resources": 2, "force": 2, "count": 1, "target": 9, "reward": { "resources": 3, "force": 3 },
"ability": { "timing": "action", "op": "freePurchase", "faction": "rebel", "forceTopdeck": true },
"text": "Purchase a Rebel card from the galaxy row for free. If the Force is with you, place that card on top of your deck." },
{ "id": "lukeskywalker", "name": "Luke Skywalker", "faction": "rebel", "type": "unit", "unique": true, "traits": ["Jedi"], "cost": 8, "attack": 6, "resources": 0, "force": 2, "count": 1, "target": 8, "reward": { "resources": 4, "force": 4 },
"ability": { "timing": "action", "op": "destroyCapital", "requiresForce": true },
"text": "If the Force is with you, destroy a capital ship your opponent has in play." },
{ "id": "blockaderunner", "name": "Blockade Runner", "faction": "rebel", "type": "capital", "unique": false, "traits": ["Capital Ship"], "cost": 4, "attack": 1, "resources": 1, "force": 0, "hp": 4, "count": 2, "target": null, "reward": null,
"ability": null,
"text": "Though designed as a diplomatic courier, the Corellian CR90 corvette is often used to run planetary blockades." },
{ "id": "hammerheadcorvette", "name": "Hammerhead Corvette", "faction": "rebel", "type": "capital", "unique": false, "traits": ["Capital Ship"], "cost": 4, "attack": 0, "resources": 2, "force": 0, "hp": 4, "count": 1, "target": null, "reward": null,
"ability": { "timing": "action", "op": "destroyCapital", "cost": { "exileSelf": true } },
"text": "Exile this card to destroy a capital ship your opponent has in play, or an enemy capital ship in the galaxy row." },
{ "id": "medicalfrigate", "name": "Medical Frigate", "faction": "rebel", "type": "capital", "unique": false, "traits": ["Capital Ship"], "cost": 6, "attack": 0, "resources": 1, "force": 0, "hp": 5, "count": 1, "target": null, "reward": null,
"ability": { "timing": "action", "op": "repairBase", "n": 1 },
"text": "Repair 1 damage from your base." },
{ "id": "moncalamaricruiser", "name": "Mon Calamari Cruiser", "faction": "rebel", "type": "capital", "unique": false, "traits": ["Capital Ship"], "cost": 6, "attack": 3, "resources": 1, "force": 0, "hp": 6, "count": 1, "target": null, "reward": null,
"ability": null,
"text": "The backbone of the Rebel fleet, crewed by the galaxy's finest shipwrights." },
{ "id": "millenniumfalcon", "name": "Millennium Falcon", "faction": "rebel", "type": "capital", "unique": true, "traits": ["Capital Ship", "Freighter"], "cost": 7, "attack": 2, "resources": 1, "force": 0, "hp": 6, "count": 1, "target": null, "reward": null,
"ability": { "timing": "action", "op": "recoverDiscard", "filter": "unique" },
"text": "Return a unique card from your discard pile to your hand." },
{ "id": "z95headhunter", "name": "Z-95 Headhunter", "faction": "neutral", "type": "unit", "unique": false, "traits": ["Fighter"], "cost": 1, "attack": 1, "resources": 1, "force": 0, "count": 4, "target": null, "reward": null,
"ability": null,
"text": "Obsolete everywhere except where it counts." },
{ "id": "jawascavenger", "name": "Jawa Scavenger", "faction": "neutral", "type": "unit", "unique": false, "traits": ["Scavenger"], "cost": 1, "attack": 0, "resources": 1, "force": 0, "count": 3, "target": null, "reward": null,
"ability": { "timing": "action", "op": "exileCards", "n": 1, "optional": true },
"text": "Exile a card from your hand or discard pile. Utinni!" },
{ "id": "keldormystic", "name": "Kel Dor Mystic", "faction": "neutral", "type": "unit", "unique": false, "traits": ["Mystic"], "cost": 2, "attack": 0, "resources": 0, "force": 2, "count": 3, "target": null, "reward": null,
"ability": { "timing": "action", "op": "exileCards", "n": 1, "optional": true, "cost": { "exileSelf": true } },
"text": "Exile this card to exile 1 card from your hand or discard pile." },
{ "id": "rodiangunslinger", "name": "Rodian Gunslinger", "faction": "neutral", "type": "unit", "unique": false, "traits": ["Bounty Hunter"], "cost": 2, "attack": 2, "resources": 0, "force": 0, "count": 3, "target": null, "reward": null,
"ability": { "timing": "constant", "op": "rowBonus", "amount": 2 },
"text": "Rodian Gunslinger gains 2 attack while attacking a target in the galaxy row." },
{ "id": "hwk290", "name": "HWK-290", "faction": "neutral", "type": "unit", "unique": false, "traits": ["Freighter"], "cost": 2, "attack": 0, "resources": 2, "force": 0, "count": 2, "target": null, "reward": null,
"ability": { "timing": "action", "op": "lookTop", "mayDiscard": true },
"text": "Look at the top card of the galaxy deck. You may discard it." },
{ "id": "twileksmuggler", "name": "Twi'lek Smuggler", "faction": "neutral", "type": "unit", "unique": false, "traits": ["Smuggler"], "cost": 3, "attack": 0, "resources": 3, "force": 0, "count": 3, "target": null, "reward": null,
"ability": null,
"text": "No manifest, no questions, no refunds." },
{ "id": "fangfighter", "name": "Fang Fighter", "faction": "neutral", "type": "unit", "unique": false, "traits": ["Fighter"], "cost": 3, "attack": 3, "resources": 0, "force": 0, "count": 2, "target": null, "reward": null,
"ability": null,
"text": "Mandalorian engineering does not forgive." },
{ "id": "quarrenmercenary", "name": "Quarren Mercenary", "faction": "neutral", "type": "unit", "unique": false, "traits": ["Mercenary"], "cost": 4, "attack": 4, "resources": 0, "force": 0, "count": 3, "target": null, "reward": null,
"ability": null,
"text": "Loyal to the last credit." },
{ "id": "bossk", "name": "Bossk", "faction": "neutral", "type": "unit", "unique": true, "traits": ["Bounty Hunter"], "cost": 4, "attack": 3, "resources": 0, "force": 0, "count": 1, "target": null, "reward": null,
"ability": { "timing": "onBounty", "op": "gainResources", "n": 2 },
"text": "When you defeat a card in the galaxy row, gain 2 resources." },
{ "id": "ig88", "name": "IG-88", "faction": "neutral", "type": "unit", "unique": true, "traits": ["Droid", "Bounty Hunter"], "cost": 5, "attack": 5, "resources": 0, "force": 0, "count": 1, "target": null, "reward": null,
"ability": { "timing": "onBounty", "op": "exileCards", "n": 1, "optional": true },
"text": "When IG-88 defeats a target in the galaxy row, exile 1 card from your hand or discard pile." },
{ "id": "bobafett", "name": "Boba Fett", "faction": "neutral", "type": "unit", "unique": true, "traits": ["Bounty Hunter"], "cost": 6, "attack": 5, "resources": 0, "force": 0, "count": 1, "target": null, "reward": null,
"ability": { "timing": "onBounty", "op": "draw", "n": 1 },
"text": "When you defeat a card in the galaxy row, draw a card." },
{ "id": "jabbathehutt", "name": "Jabba the Hutt", "faction": "neutral", "type": "unit", "unique": true, "traits": ["Scoundrel"], "cost": 8, "attack": 2, "resources": 2, "force": 2, "count": 1, "target": null, "reward": null,
"ability": { "timing": "action", "op": "draw", "n": 1, "nForce": 2, "cost": { "exileFromHand": 1 } },
"text": "Exile 1 card from your hand to draw 1 card (2 cards instead if the Force is with you)." },
{ "id": "crocruiser", "name": "C-ROC Cruiser", "faction": "neutral", "type": "capital", "unique": false, "traits": ["Capital Ship"], "cost": 4, "attack": 0, "resources": 2, "force": 0, "hp": 4, "count": 2, "target": null, "reward": null,
"ability": null,
"text": "A smuggler's idea of a warship." },
{ "id": "khetanna", "name": "Khetanna", "faction": "neutral", "type": "capital", "unique": true, "traits": ["Capital Ship", "Barge"], "cost": 6, "attack": 2, "resources": 2, "force": 0, "hp": 5, "count": 1, "target": null, "reward": null,
"ability": null,
"text": "Jabba's sail barge: pleasure craft, prison, and gallows in one." }
],
"bases": {
"rebel": [
{ "id": "dantooine", "name": "Dantooine", "hp": 8, "starting": true, "ability": null,
"text": "Rebel Outpost. Begin the game with this base in play." },
{ "id": "hoth", "name": "Hoth", "hp": 10, "starting": false,
"ability": { "timing": "onReveal", "op": "draw", "n": 2 },
"text": "Echo Station. When you reveal this base, draw 2 cards." },
{ "id": "sullust", "name": "Sullust", "hp": 12, "starting": false,
"ability": { "timing": "onReveal", "op": "exileCards", "n": 2, "optional": true },
"text": "Staging Point. When you reveal this base, exile up to 2 cards from your hand or discard pile." },
{ "id": "moncala", "name": "Mon Cala", "hp": 12, "starting": false,
"ability": { "timing": "constant", "op": "capitalDiscount", "n": 1 },
"text": "Shipyards. Your capital ships cost 1 less resource." },
{ "id": "yavin4", "name": "Yavin IV", "hp": 14, "starting": false,
"ability": { "timing": "constant", "op": "onPlayTraitAttack", "trait": "Fighter", "amount": 1 },
"text": "Great Temple. When you play a Fighter, it gains 1 attack." }
],
"empire": [
{ "id": "lothal", "name": "Lothal", "hp": 8, "starting": true, "ability": null,
"text": "Imperial Outpost. Begin the game with this base in play." },
{ "id": "corellia", "name": "Corellia", "hp": 10, "starting": false,
"ability": { "timing": "constant", "op": "capitalDiscount", "n": 1 },
"text": "Shipyards. Your capital ships cost 1 less resource." },
{ "id": "coruscant", "name": "Coruscant", "hp": 12, "starting": false,
"ability": { "timing": "onReveal", "op": "gainResources", "n": 3 },
"text": "Imperial Center. When you reveal this base, gain 3 resources." },
{ "id": "deathstar", "name": "Death Star", "hp": 14, "starting": false,
"ability": { "timing": "action", "op": "damageBase", "n": 1 },
"text": "Battle Station. Once per turn: deal 1 damage to the enemy base." },
{ "id": "endor", "name": "Endor", "hp": 16, "starting": false, "ability": null,
"text": "Shield Generator. The toughest Imperial position in the galaxy." }
]
}
}