diff --git a/data/ffg-xws.json b/data/ffg-xws.json index b6cbb7a4..c2391e72 100644 --- a/data/ffg-xws.json +++ b/data/ffg-xws.json @@ -670,7 +670,30 @@ "652": "proudtradition", "653": "proudtradition", "654": "deuteriumpowercells", - "655": "kazsfireball" + "655": "kazsfireball", + "670": "deadeyeshot", + "671": "automatedtargetpriority", + "672": "sensorbuoysuite", + "673": "multimissilepods", + "674": "syncedlasercannons", + "675": "aaylasecura", + "676": "kitfisto", + "677": "plokoon", + "678": "yoda", + "679": "fives", + "680": "wolfpack", + "681": "ghostcompany", + "682": "kalani", + "683": "commandermalarus", + "684": "commandermalarus", + "685": "agentterex", + "686": "agentterex", + "687": "commanderpyre", + "688": "clonecaptainrex", + "689": "suppressivegunner", + "690": "concussionbombs", + "691": "repulsorliftstabilizers", + "692": "repulsorliftstabilizers" }, "factions": { "1": "rebelalliance", diff --git a/data/upgrades/cannon.json b/data/upgrades/cannon.json index ab45ea78..fc66929f 100644 --- a/data/upgrades/cannon.json +++ b/data/upgrades/cannon.json @@ -123,5 +123,23 @@ "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/59d4a52e3a534dd090259bd5546e7bab.png" } ] + }, + { + "sides": [ + { + "ffg": 674, + "title": "Synced Laser Cannons", + "type": "Cannon", + "slots": ["Cannon", "Cannon"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/70d44704aaa8bb8d1f1e2bc904b18c77.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/6927e82e460670044786cd46327cb891.png", + "ability": "Attack: If you are calculating, the defender does not apply the range bonus." + } + ], + "name": "Synced Laser Cannons", + "cost": { "value": 6 }, + "limited": 0, + "xws": "syncedlasercannons", + "hyperspace": true } ] diff --git a/data/upgrades/configuration.json b/data/upgrades/configuration.json index 9609657e..3226a0c9 100644 --- a/data/upgrades/configuration.json +++ b/data/upgrades/configuration.json @@ -212,15 +212,7 @@ ], "cost": { "variable": "initiative", - "values": { - "0": 6, - "1": 9, - "2": 12, - "3": 15, - "4": 18, - "5": 21, - "6": 24 - } + "values": { "0": 6, "1": 9, "2": 12, "3": 15, "4": 18, "5": 21, "6": 24 } }, "restrictions": [{ "ships": ["delta7aethersprite"] }], "hyperspace": false @@ -340,5 +332,32 @@ } ], "cost": { "value": 2 } + }, + { + "sides": [ + { + "ffg": 691, + "title": "Repulsorlift Stabilizers (Active)", + "type": "Configuration", + "slots": ["Configuration"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/37c67b48073cea976e4b6a6949976aee.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/57074bd7f510c9c4fd3717894e0239a0.png", + "ability": "After you reveal a bank ([Bank Left] or [Bank Right]) or turn ([Turn Left] or [Turn Right]) maneuver, you must perform that maneuver as a sideslip, then flip this card. After you fully execute a non-sideslip maneuver, you may flip this card." + }, + { + "ffg": 692, + "title": "Repulsorlift Stabilizers (Inactive)", + "type": "Configuration", + "slots": ["Configuration"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/b16d22d90b1b5048a15cf1734334d8fa.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/d159e1d6ffc15eda188f858292dc9c2b.png", + "ability": "Setup: Equip this side faceup. Reduce the difficulty of your straight ([Straight]) maneuvers. After you fully execute a maneuver, you may flip this card." + } + ], + "name": "Repulsorlift Stabilizers", + "cost": { "value": 3 }, + "limited": 0, + "xws": "repulsorliftstabilizers", + "hyperspace": true } ] diff --git a/data/upgrades/crew.json b/data/upgrades/crew.json index 44415e87..c68f1837 100644 --- a/data/upgrades/crew.json +++ b/data/upgrades/crew.json @@ -1534,10 +1534,10 @@ "name": "Aayla Secura", "limited": 1, "xws": "aaylasecura", - "hyperspace": false, + "hyperspace": true, "sides": [ { - "ability": "While an enemy ship in your [Bullseye Arc] performs an attack...", + "ability": "While an enemy ship in your [Bullseye Arc] performs an attack, if the defender is friendly and at range 0-2, the defender may change 1 blank result to a [Focus] result.", "title": "Aayla Secura", "type": "Crew", "slots": ["Crew"], @@ -1550,23 +1550,40 @@ "linked": { "type": "Coordinate", "difficulty": "Purple" } } } - ] + ], + "ffg": 675, + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/c1d9f86978058e101f6cf112c3946655.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/c75b7f3eaadb889b7b94d020c0d81d29.png" } - ] + ], + "cost": { "value": 16 } }, { "name": "Agent Terex", "limited": 1, "xws": "agentterex", - "hyperspace": false, + "hyperspace": true, "sides": [ { - "ability": "Setup: Equip this side faceup and place 3 calculate tokens on this card. At the start of the Engagement Phase, you may choose a friendly ship at range 0-3 and remve 1 calculate token from this card to have that ship gain a matching token. Then, if there are no calculate tokens on this card, flip it.", + "ability": "Setup: Equip this side faceup and place 3 calculate tokens on this card. At the start of the Engagement Phase, you may choose a friendly ship at range 0-3 and remove 1 calculate token from this card to have that ship gain a matching token. Then, if there are no calculate tokens on this card, flip it.", "title": "Agent Terex", "type": "Crew", - "slots": ["Crew"] + "slots": ["Crew"], + "ffg": 686, + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/6e7153cd20c808370bbd80d871cf85c3.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/46f1700aa15a7a4e25b3d19b4ad97818.png" + }, + { + "slots": ["Crew"], + "ffg": 685, + "title": "Agent Terex (Cyborg)", + "type": "Crew", + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/87f139d19477b1ab35c2dc2ab578eedc.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/8d74e6cb42cd9717409451bafda8467b.png", + "ability": "During the System Phase, roll 1 attack die. On a [Hit] or [Critical Hit] result, gain 1 calculate token. Otherwise gain 1 jam token. Action: Transfer 1 calculate token or 1 jam token to a ship at range 0-3." } - ] + ], + "cost": { "value": 6 } }, { "name": "K-2SO", @@ -1600,10 +1617,10 @@ "name": "Plo Koon", "limited": 1, "xws": "plokoon", - "hyperspace": false, + "hyperspace": true, "sides": [ { - "ability": "At the start of the End Phase, if you are reinforced, you may choose 1 friendly ship at range 0 or in your [Left Arc] or [Right Arc] at range 1. That ship removes 1 deplete token or strain token, or repairs 1 faceup damage card.", + "ability": "At the start of the End Phase, if you are reinforced, you may choose 1 friendly ship at range 0 or in your [Left Arc] or [Right Arc] at range 1. That ship removes 1 deplete or strain token, or repairs 1 faceup damage card.", "title": "Plo Koon", "type": "Crew", "slots": ["Crew"], @@ -1612,9 +1629,13 @@ "type": "action", "value": { "type": "Reinforce", "difficulty": "Purple" } } - ] + ], + "ffg": 677, + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/7551a4c70f701c81e3e79ea9bb5a4237.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/1f07b416e509fa27d4005c8d25452e06.png" } - ] + ], + "cost": { "value": 10 } }, { "name": "Toryn Farr", @@ -1640,5 +1661,140 @@ } ], "cost": { "value": 4 } + }, + { + "sides": [ + { + "ffg": 676, + "title": "Kit Fisto", + "type": "Crew", + "slots": ["Crew"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/2b1f84f53e0a2fe6f49dbdef202b6adb.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/d531840147286ab5b43eb5989d6eb8ec.png", + "ability": "At the start of the Engagement Phase, you may choose 1 friendly ship at range 0-1 and spend 1 [Force]. If you do, it may perform a red [Evade] action." + } + ], + "name": "Kit Fisto", + "cost": { "value": 9 }, + "limited": 1, + "xws": "kitfisto", + "hyperspace": true + }, + { + "sides": [ + { + "ffg": 678, + "title": "Yoda", + "type": "Crew", + "slots": ["Crew"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/0f0e3e5576ed1df0e5e2b8ccee638dec.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/7b0fd38f53c20d4a8d1e0ffd97c949ab.png", + "ability": "After another friendly ship at range 0-2 fully executes a purple maneuver or performs a purple action, you may spend 1 [Force]. If you do, that ship recovers 1 [Force]." + } + ], + "name": "Yoda", + "cost": { "value": 15 }, + "limited": 1, + "xws": "yoda", + "hyperspace": true + }, + { + "sides": [ + { + "ffg": 679, + "title": "\"Fives\"", + "type": "Crew", + "slots": ["Crew"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/706062dbbf35d8d46c1e1f4b7dad8661.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/e15010d96446e208166336cffb78f94d.png", + "ability": "After you perform an attack that missed, if the defender's initiative is equal to or greater than your initiative, place 1 evade or focus token on this card. Before you engage, you may remove 1 token from this card to gain 1 matching token." + } + ], + "name": "\"Fives\"", + "cost": { "value": 3 }, + "limited": 1, + "xws": "fives", + "hyperspace": true + }, + { + "sides": [ + { + "ffg": 680, + "title": "Wolfpack", + "type": "Crew", + "slots": ["Crew", "Gunner"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/d5a7c585a6f5f06e76c7b927392b61c1.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/63ef9ffc007432e395b3bfa406a879ec.png", + "ability": "After a friendly ship at range 0-3 defends, if the attacker is in your firing arc, the defender may gain 1 strain token to acquire a lock on the attacker." + } + ], + "name": "Wolfpack", + "cost": { "value": 4 }, + "limited": 1, + "xws": "wolfpack", + "hyperspace": true + }, + { + "sides": [ + { + "ffg": 684, + "title": "Commander Malarus", + "type": "Crew", + "slots": ["Crew"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/70fb233cb4aee8f02716292268d0b9c1.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/842e172f79c8af94b3dde0cfc769b74a.png", + "ability": "Setup: Equip this side faceup. While a friendly non-limited ship at range 0-1 performs a primary attack, that ship may reroll 1 blank result. If it does and the attack does not hit, you must flip this card." + }, + { + "ffg": 683, + "title": "Commander Malarus (Perfected)", + "type": "Crew", + "slots": ["Crew"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/c304667782eb50cd85af9fb996a924c9.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/d8dabcfeadffbe5ef9eeb1ba4973f714.png", + "ability": "While you perform an attack, if the defender is in your [Bullseye Arc], you must convert all [Focus] results to [Hit] results and gain 1 stress token. Then, if you have 2 or more stress tokens, suffer 1 [Hit] damage." + } + ], + "name": "Commander Malarus", + "cost": { "value": 7 }, + "limited": 1, + "xws": "commandermalarus", + "hyperspace": true + }, + { + "sides": [ + { + "ffg": 681, + "title": "Ghost Company", + "type": "Crew", + "slots": ["Crew", "Gunner"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/673fb3c6f002702406456c1b135eda01.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/333dab28d3d96dd2d7a48339d470aae4.png", + "ability": "After you perform a primary attack, if you are focused, you may perform a [Single Turret Arc] attack against a ship you have not attacked this round as a bonus attack." + } + ], + "name": "Ghost Company", + "cost": { "value": 5 }, + "limited": 1, + "xws": "ghostcompany", + "hyperspace": true + }, + { + "sides": [ + { + "ffg": 687, + "title": "Commander Pyre", + "type": "Crew", + "slots": ["Crew"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/7d1c00624b8253b9157856764d2c1004.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/95166cc0044f721aec2933ae972b2898.png", + "ability": "Setup: After placing forces, choose an enemy ship. It gains 2 stress tokens. While you defend, if the attacker is stressed, you may reroll 1 defense die." + } + ], + "name": "Commander Pyre", + "cost": { "value": 5 }, + "limited": 1, + "xws": "commanderpyre", + "hyperspace": true } ] diff --git a/data/upgrades/device.json b/data/upgrades/device.json index 4b5c9ec5..7c49049b 100644 --- a/data/upgrades/device.json +++ b/data/upgrades/device.json @@ -222,5 +222,23 @@ } ], "cost": { "value": 5 } + }, + { + "sides": [ + { + "ffg": 690, + "title": "Concussion Bombs", + "type": "Device", + "slots": ["Device"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/960df489d295d30765d019cf42a1f450.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/3b836493f5b17c47e44807c283bc4b04.png", + "ability": "During the System Phase, if any of this card's [Charge] are inactive, you must spend 1 [Charge] to drop 1 concussion bomb, if able. Otherwise, you may spend 1 [Charge] to drop 1 concussion bomb." + } + ], + "name": "Concussion Bombs", + "cost": { "value": 3 }, + "limited": 0, + "xws": "concussionbombs", + "hyperspace": true } ] diff --git a/data/upgrades/gunner.json b/data/upgrades/gunner.json index cd8b6ab9..41bad4fa 100644 --- a/data/upgrades/gunner.json +++ b/data/upgrades/gunner.json @@ -430,5 +430,44 @@ "limited": 1, "hyperspace": false, "xws": "ahsokatano" + }, + { + "sides": [ + { + "ffg": 688, + "title": "Clone Captain Rex", + "type": "Gunner", + "slots": ["Gunner"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/245421ccca34a8495ab2b1176215763d.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/d5557710e25d5770248736e4743d08ad.png", + "ability": "While you perform an attack, you may spend 1 [Focus] result. If you do, each friendly ship that has the defender in its [Bullseye Arc] may gain 1 strain to perform a [Focus] action." + } + ], + "name": "Clone Captain Rex", + "cost": { "value": 4 }, + "limited": 1, + "xws": "clonecaptainrex", + "hyperspace": true + }, + { + "sides": [ + { + "ffg": 689, + "title": "Suppressive Gunner", + "type": "Gunner", + "slots": ["Gunner"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/4902fa74cccbaadfa2108ef7670bcbfe.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/ded967f8af64da8948746e6351238484.png", + "ability": "While you perform an attack, you may spend 1 [Focus] result. If you do, the defender gains 1 deplete token unless it chooses to suffer 1 [Hit] damage." + } + ], + "name": "Suppressive Gunner", + "cost": { + "variable": "size", + "values": { "Small": 8, "Medium": 7, "Large": 6 } + }, + "limited": 0, + "xws": "suppressivegunner", + "hyperspace": true } ] diff --git a/data/upgrades/missile.json b/data/upgrades/missile.json index c9f9d23c..317d94c7 100644 --- a/data/upgrades/missile.json +++ b/data/upgrades/missile.json @@ -271,14 +271,18 @@ "name": "Multi-Missile Pods", "limited": 0, "xws": "multimissilepods", - "hyperspace": false, + "hyperspace": true, "sides": [ { - "ability": "Attack ([Calculate] or [Lock]): Spend 1 [Charge]. If the defender is in your [Front Arc], you may spend 1 [Charge] to roll 1 additional attack die. If the defender is in your [Bullseye Arc], you map spend up to 2 [Charge] to roll that many additional attack dice instead.", + "ability": "Attack ([Calculate] or [Lock]): Spend 1 [Charge]. If the defender is in your [Front Arc], you may spend 1 [Charge] to roll 1 additional attack die. If the defender is in your [Bullseye Arc], you may spend up to 2 [Charge] to roll that many additional attack dice instead.", "title": "Multi-Missile Pods", "type": "Missile", - "slots": ["Missile", "Missile"] + "slots": ["Missile", "Missile"], + "ffg": 673, + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/af81354b305251139da023c343c9f70f.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/5abef5ee3d6e4acf94cd77280375aa72.png" } - ] + ], + "cost": { "value": 8 } } ] diff --git a/data/upgrades/tactical-relay.json b/data/upgrades/tactical-relay.json index 8e1b3104..670dc304 100644 --- a/data/upgrades/tactical-relay.json +++ b/data/upgrades/tactical-relay.json @@ -92,5 +92,23 @@ ], "cost": { "value": 11 }, "hyperspace": true + }, + { + "sides": [ + { + "ffg": 682, + "title": "Kalani", + "type": "Tactical Relay", + "slots": ["Tactical Relay"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/903cb81e543eb48cd7ae6872f214cb24.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/f7d014b30966a8e308aad5d1336d50dd.png", + "ability": "After an enemy ship executes a maneuver, if it is in the [Bullseye Arc] of a friendly ship at range 0-3, you may spend 1 [Charge]. If you do, that friendly ship acquires a lock on that enemy ship, then gains 1 stress token." + } + ], + "name": "Kalani", + "cost": { "value": 5 }, + "limited": 1, + "xws": "kalani", + "hyperspace": true } ] diff --git a/data/upgrades/talent.json b/data/upgrades/talent.json index 8a9af49a..91ec9bf7 100644 --- a/data/upgrades/talent.json +++ b/data/upgrades/talent.json @@ -577,5 +577,23 @@ } ], "cost": { "value": 2 } + }, + { + "sides": [ + { + "ffg": 670, + "title": "Deadeye Shot", + "type": "Talent", + "slots": ["Talent"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/9f2bb1378eecd7358ebb4fd42b3f2f65.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/99f10f4dd059aae2529ec0863a6cc47e.png", + "ability": "While you perform a primary attack, if the defender is in your [Bullseye Arc], you may spend 1 [Hit] result or change 1 [Critical Hit] result to a [Hit] result. If you do, the defender exposes 1 of its damage cards." + } + ], + "name": "Deadeye Shot", + "cost": { "value": 1 }, + "limited": 0, + "xws": "deadeyeshot", + "hyperspace": true } ] diff --git a/data/upgrades/tech.json b/data/upgrades/tech.json index 6029674f..7ae63556 100644 --- a/data/upgrades/tech.json +++ b/data/upgrades/tech.json @@ -142,7 +142,7 @@ "hyperspace": true, "sides": [ { - "ability": "During the System Phase, you may spend 1 [Charge] and gain 1 disarm token to recover 1 [Shield]. Before you would gain 1 non-lock token, if you are not stressed, you may spend 1 [Charge] to gain 1 stress token instead.", + "ability": "During the System Phase, you may spend 1 [Charge] and gain 1 disarm token to recover 1 shield. Before you would gain 1 non-lock token, if you are not stressed, you may spend 1 [Charge] to gain 1 stress token instead.", "charges": { "value": 2, "recovers": 0 }, "title": "Deuterium Power Cells", "type": "Tech", @@ -153,5 +153,41 @@ } ], "cost": { "value": 9 } + }, + { + "sides": [ + { + "ffg": 671, + "title": "Automated Target Priority", + "type": "Tech", + "slots": ["Tech"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/d0f9614d25d622b900f5ceafc8028fbd.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/49d9da05371e92cafec65512526b85c3.png", + "ability": "While you perform an attack, you must choose a defender at the closest valid attack range. After you perform an attack that missed, place 1 calculate token on this card. Before you engage, you may remove 1 calculate token from this card to gain a matching token." + } + ], + "name": "Automated Target Priority", + "cost": { "value": 1 }, + "limited": 0, + "xws": "automatedtargetpriority", + "hyperspace": true + }, + { + "sides": [ + { + "ffg": 672, + "title": "Sensor Buoy Suite", + "type": "Tech", + "slots": ["Tech"], + "artwork": "https://sb-cdn.fantasyflightgames.com/card_art/8962c76fb021f876c97b6044b7da827b.jpg", + "image": "https://sb-cdn.fantasyflightgames.com/card_images/en/f8fd5c5d87f0512c774b6ac4d0c83f2e.png", + "ability": "Setup: Before placing forces, place 2 sensor buoy remotes beyond range 2 of any edge. Before you engage, you may acquire a lock on a ship at range 0-1 of a friendly sensor buoy, ignoring range restrictions." + } + ], + "name": "Sensor Buoy Suite", + "cost": { "value": 4 }, + "limited": 1, + "xws": "sensorbuoysuite", + "hyperspace": true } ] diff --git a/scripts/ffgprocess.js b/scripts/ffgprocess.js index 8b416eeb..28825653 100644 --- a/scripts/ffgprocess.js +++ b/scripts/ffgprocess.js @@ -336,11 +336,45 @@ function processCard(card) { // For upgrades, some fields are stored in the parent object // while other fields are specific to the upgrade card's side - // Only apply a card name change when looking at side[0] + // Card-specific tweaks: + // + // FFG treats Calibrated Laser Targeting as a Mod/Config, but we use Config/Mod + // FFG treats Deuterium Power Cells as Mod/Tech, but we use Tech/Mod + if (card.id === 549 || card.id === 654) { + card.upgrade_types = card.upgrade_types.reverse(); + } + // Lando's Millennium Falcon [Title] doesn't properly capitalize ship name + if (card.id === 390) { + card.ability_text = card.ability_text.replace( + "escape craft", + "Escape Craft" + ); + } + + // Only apply a card name or xws change when looking at side[0] if (upgradeRef.sides[0] == ref) { // Replace `(Open)` and `(Closed)` in dual-side cards - const name = card.name.replace(/\((Open|Closed)\)/, "").trim(); + let name = card.name + .replace(/\((Open|Closed|Active|Perfected|Cyborg)\)/, "") + .trim(); + + // Card-specific tweaks: + // + // Correct name for Palpatine/Sidious + if (card.id === 556) { + name = "Palpatine/Sidious"; + } + modified = applyDiff(upgradeRef, "name", name) || modified; + + if (!upgradeRef.xws) { + modified = + applyDiff( + upgradeRef, + "xws", + name.toLowerCase().replace(/[^0-9a-z]/g, "") + ) || modified; + } } if (cost == null) { if (!upgradeRef.cost || !("variable" in upgradeRef.cost)) { @@ -524,7 +558,18 @@ metadata["ship_types"].forEach(shipType => { // Process every scraped card scrapedData["cards"].forEach(card => { if (!processCard(card)) { - notFound.push({ id: card.id, name: card.name }); + const type = card.card_type_id === 2 ? "upgrade" : "pilot"; + const cardData = { ffgId: card.id, name: card.name }; + if (type === "upgrade") { + cardData["slot"] = upgradeTypes.find( + upgradeType => upgradeType.ffg == card.upgrade_types[0] + ).xws; + } else { + cardData["ship"] = metadata["ship_types"].find( + shipType => shipType.id === card.ship_type + ).name; + } + notFound.push(cardData); } });