Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
540 commits
Select commit Hold shift + click to select a range
04876dd
Add limits to conditions
danrs Dec 1, 2022
9541509
Fix unclear initiatives
danrs Dec 1, 2022
fc29472
Fix inconsistent quote marks
danrs Dec 1, 2022
89891e2
Clarify xws id generation
danrs Dec 1, 2022
439c725
bump version
danrs Dec 1, 2022
e3ba613
add missing cannon to galek
Dec 1, 2022
9120a43
Bump decode-uri-component from 0.2.0 to 0.2.2
dependabot[bot] Dec 3, 2022
63fa94f
Update rz-2-a-wing.json
Radroggor Dec 3, 2022
1f3bef7
Update delta-7b-aethersprite.json
Radroggor Dec 3, 2022
5731290
Update kihraxz-fighter.json
Radroggor Dec 3, 2022
ebdafb4
Update v-19-torrent-starfighter.json
Radroggor Dec 3, 2022
5a1abfc
Update t-65-x-wing.json
Radroggor Dec 4, 2022
a9f6895
Update rogue-class-starfighter.json
Radroggor Dec 4, 2022
703d2cf
Update rogue-class-starfighter.json
Radroggor Dec 4, 2022
bbe19fa
Update clone-z-95-headhunter.json
Radroggor Dec 4, 2022
e575df6
Update ut-60d-u-wing.json
Radroggor Dec 4, 2022
edc94ae
Update hmp-droid-gunship.json
Radroggor Dec 5, 2022
6651efa
Update vulture-class-droid-fighter.json
Radroggor Dec 5, 2022
6dbd5c7
Update arc-170-starfighter.json
Radroggor Dec 5, 2022
27c5aa3
Update tie-ba-interceptor.json
Radroggor Dec 5, 2022
66f2777
Update tie-wi-whisper-modified-interceptor.json
Radroggor Dec 5, 2022
277f559
Update tie-vn-silencer.json
Radroggor Dec 5, 2022
f6f1ef8
Update scavenged-yt-1300.json
Radroggor Dec 5, 2022
ebeceee
Update resistance-transport.json
Radroggor Dec 5, 2022
e099585
Update kihraxz-fighter.json
Radroggor Dec 5, 2022
85e3666
Update z-95-af4-headhunter.json
Radroggor Dec 5, 2022
75bd6f1
Update quadrijet-transfer-spacetug.json
Radroggor Dec 5, 2022
47c1a30
Update tie-sk-striker.json
Radroggor Dec 5, 2022
26825f1
Update tie-advanced-v1.json
Radroggor Dec 5, 2022
73f52aa
Update a-sf-01-b-wing.json
Radroggor Dec 5, 2022
55f1249
Update tie-wi-whisper-modified-interceptor.json
Radroggor Dec 5, 2022
799cbb1
Update delta-7-aethersprite.json
Radroggor Dec 5, 2022
4383879
Merge branch 'guidokessels:master' into master
Dec 6, 2022
bd83977
Merge pull request #590 from guidokessels/errata
danrs Dec 7, 2022
91bebf7
Merge pull request #591 from chrisalleng/master
danrs Dec 7, 2022
f0410d0
Merge pull request #592 from J1mBob/patch-88
danrs Dec 7, 2022
98ac40a
Merge pull request #594 from guidokessels/dependabot/npm_and_yarn/dec…
danrs Dec 7, 2022
b19b29d
Merge branch 'master' into master
danrs Dec 7, 2022
3ae1954
Merge pull request #596 from Radroggor/master
danrs Dec 7, 2022
313c3a3
Bump json5 from 2.2.1 to 2.2.3
dependabot[bot] Jan 9, 2023
f1e22d9
Merge pull request #602 from guidokessels/dependabot/npm_and_yarn/jso…
danrs Jan 18, 2023
0466fa1
Fix rebel quickbuilds and add expansion quickbuilds
danrs Apr 10, 2023
d8a418e
Add epic upgrades to quickbuild schema
danrs Apr 10, 2023
03319c4
Add epic upgrade slots to schema helper
danrs Apr 10, 2023
409318c
fix quick build schema
danrs Apr 10, 2023
a86e57d
Added missing hyperdrive to qb schema
danrs Apr 10, 2023
6fa4d0e
Update image links to InfiniteArenas
AlexRaubach Apr 17, 2023
d0291b1
Update FO and Empire image links
AlexRaubach Apr 18, 2023
9c65f7c
Update Rebel, Resistance, Scum, Republic images
AlexRaubach Apr 18, 2023
d09e975
Merge pull request #606 from guidokessels/quick-build
danrs Apr 29, 2023
60108de
Merge pull request #607 from AlexRaubach/Seperatists
danrs Apr 29, 2023
b23087e
Bump jsdom and jest
dependabot[bot] Dec 7, 2022
a0878f2
Updated yarn.lock and rebased
danrs Apr 29, 2023
632286c
Update node version
danrs Apr 29, 2023
a55a512
Merge pull request #567 from guidokessels/dependabot/npm_and_yarn/jsd…
danrs Apr 29, 2023
a13806d
bump version
danrs Apr 29, 2023
ef1f041
Merge pull request #609 from guidokessels/bump-version
danrs Apr 29, 2023
30de79e
Point all images from old FFG/official squad builder to infinite arenas
May 1, 2023
af46cd1
Remove alternate art references
May 1, 2023
45e331c
typo fix in package.json
May 1, 2023
e971aa7
Json formatting fix
May 1, 2023
a14545b
json typos
May 1, 2023
1179e6c
Remove reference to FFG parsing script
May 2, 2023
74271a7
remove cost from 7B
May 8, 2023
64e771f
pilot artwork fixes
May 14, 2023
0a528c5
version bump, extreme maneuvers image fix
May 16, 2023
a76f922
Merge pull request #610 from chrisalleng/master
danrs May 16, 2023
dd56b18
update to 2023/06/09 points
May 19, 2023
afe3ecf
Merge branch 'master' of https://github.com/chrisalleng/xwing-data2
May 19, 2023
b31f6d1
2023 June 9 point corrections
May 20, 2023
2345152
2023 June 9 points fixes
May 20, 2023
5cff32e
add rebel starter (swz106)
May 20, 2023
6299a76
Merge pull request #611 from chrisalleng/master
danrs May 21, 2023
63db868
Fix Strut-Lock Override title
J1mBob May 23, 2023
ffb8f27
Corrected Evasion Sequence 7 title
J1mBob May 23, 2023
f45ce39
Add ST-70 ship icon path
J1mBob Jun 4, 2023
5bc064a
Add Rogue-class ship icon
J1mBob Jun 4, 2023
bb2a2a5
Corrected limited of Reaper Sq Scout
J1mBob Jun 14, 2023
0d7b8c3
Corrected instinctive aim typo in Luke BoY
J1mBob Jun 21, 2023
bb779eb
Merge pull request #1 from guidokessels/master
Radroggor Jul 2, 2023
7b9ac6b
Update modified-yt-1300-light-freighter.json
Radroggor Jul 2, 2023
713c5c7
Update tie-sa-bomber.json
Radroggor Jul 2, 2023
a667f96
Update t-65-x-wing.json
Radroggor Jul 2, 2023
5db6ef1
Update clone-z-95-headhunter.json
Radroggor Jul 2, 2023
a0b0898
Update configuration.json
Radroggor Jul 2, 2023
c9f1eed
Update modification.json
Radroggor Jul 2, 2023
017fec7
Update t-65-x-wing.json
Radroggor Jul 3, 2023
fca69d0
Update t-65-x-wing.json
Radroggor Jul 3, 2023
5860774
Update btl-a4-y-wing.json
Radroggor Jul 3, 2023
d894eb5
Update btl-a4-y-wing.json
Radroggor Jul 3, 2023
4111ad6
Fixed Blade and Blue SV and LV values
Ampmann Jul 9, 2023
14c7639
Fixed LV for Hera and Wedge
Ampmann Jul 9, 2023
91096e1
Bump semver from 5.7.1 to 5.7.2
dependabot[bot] Jul 11, 2023
4eb5c27
Fixed Lando Falcon SV
Ampmann Jul 12, 2023
1cf7533
Fixed Beskar Reinforced Plating cost
Ampmann Jul 12, 2023
b766316
Fixed Proton Bomb and Proximity Mine costs
Ampmann Jul 12, 2023
f627035
Added missing force to Aayla Secura
J1mBob Jul 16, 2023
20050e7
Added Automated Loaders from TIE/sa SL's
J1mBob Jul 17, 2023
cca348a
Added talents from TIE/sa Standard Loadouts
J1mBob Jul 17, 2023
c97d9d7
Added Standard Loadouts from TIE/sa re-release
J1mBob Jul 17, 2023
870ac6a
Fixed Crit to Critical Hit
J1mBob Jul 17, 2023
685e7d6
Scum - Y-wing - Leema Kai - No Talent
Ampmann Jul 22, 2023
0384654
BoY Falcon
Ampmann Jul 27, 2023
ceb414d
TIE Adv X1 BoY and ssp
Ampmann Jul 27, 2023
ea6932f
Updated Interceptor BoY
Ampmann Jul 27, 2023
c6e6acc
Updated TIE/ln BoY and ssp
Ampmann Jul 27, 2023
889dd61
Updated BoY and ssp Y-wings
Ampmann Jul 27, 2023
067255a
Updated BoY and ssp X-wings
Ampmann Jul 27, 2023
b278232
Updated ssp A-wings
Ampmann Jul 27, 2023
3c8f26a
Updated ssp on starter Bombers
Ampmann Jul 27, 2023
c69e5fc
Add missing charges to Bo-Katan and Pre Vizsla
J1mBob Jul 30, 2023
79ff7b0
Add missing charges to Zam Wesell
J1mBob Jul 30, 2023
a6a08bd
Merge pull request #645 from J1mBob/patch-109
danrs Aug 2, 2023
3a9a9d5
Merge pull request #616 from J1mBob/patch-100
danrs Aug 2, 2023
864d89a
Merge pull request #644 from J1mBob/patch-108
danrs Aug 2, 2023
ddc98a1
Merge pull request #632 from J1mBob/patch-107
danrs Aug 2, 2023
a6549ca
Merge pull request #625 from guidokessels/dependabot/npm_and_yarn/sem…
danrs Aug 2, 2023
449f0d0
Merge pull request #621 from Radroggor/master
danrs Aug 2, 2023
9a20ffb
Merge pull request #642 from Ampmann/patch-13
danrs Aug 2, 2023
ac9eff1
Merge pull request #641 from Ampmann/patch-8
danrs Aug 2, 2023
d8b3d36
Merge pull request #640 from Ampmann/patch-7
danrs Aug 2, 2023
a2955a7
Merge pull request #639 from Ampmann/patch-12
danrs Aug 2, 2023
ae2ecdf
Merge pull request #638 from Ampmann/patch-11
danrs Aug 2, 2023
ff30e17
Merge pull request #637 from Ampmann/patch-10
danrs Aug 2, 2023
e3e8c1b
Merge pull request #636 from Ampmann/patch-9
danrs Aug 2, 2023
bcd7f32
Merge pull request #633 from Ampmann/patch-1
danrs Aug 2, 2023
f278b25
Merge pull request #631 from J1mBob/patch-106
danrs Aug 2, 2023
6b14d1e
Merge pull request #630 from J1mBob/patch-105
danrs Aug 2, 2023
2120620
Merge pull request #629 from J1mBob/patch-104
danrs Aug 2, 2023
c2a433b
Merge pull request #628 from Ampmann/patch-6
danrs Aug 2, 2023
40eb38e
Merge pull request #627 from Ampmann/patch-5
danrs Aug 2, 2023
eb9861e
Merge pull request #626 from Ampmann/patch-4
danrs Aug 2, 2023
179463c
Merge pull request #624 from Ampmann/patch-3
danrs Aug 2, 2023
0686fca
Merge pull request #614 from J1mBob/patch-92
danrs Aug 2, 2023
c57d9fe
Merge pull request #623 from Ampmann/patch-2
danrs Aug 2, 2023
1dc5085
Merge pull request #618 from J1mBob/patch-102
danrs Aug 2, 2023
c7e7cfc
Merge pull request #617 from J1mBob/patch-101
danrs Aug 2, 2023
196a102
Merge pull request #615 from J1mBob/patch-99
danrs Aug 2, 2023
de998fa
Merge pull request #643 from Ampmann/patch-14
danrs Aug 2, 2023
b3c0c1f
Merge pull request #613 from J1mBob/patch-91
danrs Aug 2, 2023
bb6922a
Reverts new formatting for ssp and boy
Apollonaut13 Aug 7, 2023
17ad8d1
Reverts new formatting for ssp
Apollonaut13 Aug 7, 2023
e1f4455
Reverts ssp and boy update
Apollonaut13 Aug 7, 2023
238c461
Reverts new formatting for ssp and boy
Apollonaut13 Aug 7, 2023
042281b
Reverts new formatting for boy
Apollonaut13 Aug 7, 2023
f0bb3a4
Revert "Updated ssp on starter Bombers"
danrs Aug 8, 2023
d8b9a83
Merge pull request #652 from guidokessels/revert-643-patch-14
danrs Aug 8, 2023
a9a7701
Merge pull request #647 from Apollonaut13/master-4
danrs Aug 8, 2023
52ab24f
Merge pull request #648 from Apollonaut13/master-2
danrs Aug 8, 2023
90e8dfe
Merge pull request #649 from Apollonaut13/master-1
danrs Aug 8, 2023
2fcdbcf
Merge pull request #650 from Apollonaut13/master-3
danrs Aug 8, 2023
8554835
Merge pull request #651 from Apollonaut13/master-5
danrs Aug 8, 2023
b2b3464
Reverts ssp and boy update for BoY Vader and Maarek SSP.
Apollonaut13 Aug 8, 2023
29db078
Merge pull request #653 from Apollonaut13/master-6
danrs Aug 8, 2023
eecfec3
Missed one x1 Vader variant.
Apollonaut13 Aug 11, 2023
7a678ae
Corrected typo in Jag SOC ability
J1mBob Aug 12, 2023
e24753d
add yt2400/tie bomber cards, starter images
Aug 27, 2023
70a29b7
Merge branch 'master' of https://github.com/chrisalleng/xwing-data2
Aug 27, 2023
2eb5f8c
remove missing tie bomber artwork
Aug 27, 2023
ae9eb2d
formatting fixes
Aug 27, 2023
7306e88
vader-swz105 id fix
Aug 28, 2023
9a1f2c8
hansolo-battleofyavin id fix
Aug 28, 2023
9286a25
update leebo cost
Aug 30, 2023
732a046
Merge pull request #659 from chrisalleng/master
danrs Aug 31, 2023
29a6da6
Merge pull request #655 from J1mBob/master-1
danrs Aug 31, 2023
2ec401b
Merge pull request #654 from Apollonaut13/master-7
danrs Aug 31, 2023
b6bf508
Add the S&V YT-2400 to the manifest
Aug 14, 2023
af477fa
Add SL art for Dutch and Horton
J1mBob Sep 6, 2023
8089041
fix pilot xws ids
Sep 22, 2023
232955b
use faction xws internally instead of faction name
Sep 22, 2023
3278271
fix parser find/replace error
Sep 22, 2023
842c612
Merge pull request #663 from chrisalleng/master
danrs Sep 24, 2023
df94b11
Merge pull request #660 from awsaba/add-yt-2400-scum-to-manifest
danrs Sep 24, 2023
6735cf4
Merge pull request #661 from J1mBob/patch-110
danrs Sep 24, 2023
3b28aec
Add missing condition for Tracking Fob
J1mBob Oct 2, 2023
9d39a61
Bump @babel/traverse from 7.20.5 to 7.23.2
dependabot[bot] Oct 18, 2023
7c0189c
Fixed Tierny white lock action
J1mBob Oct 25, 2023
f0ea49d
Merge pull request #665 from danrs/dependabot/npm_and_yarn/babel/trav…
danrs Oct 28, 2023
d0516e1
Merge pull request #664 from J1mBob/patch-111
danrs Oct 28, 2023
4a107f7
Merge pull request #666 from J1mBob/patch-112
danrs Oct 28, 2023
a577378
Fix typo Odd Ball SOC ability
J1mBob Oct 31, 2023
17cf632
fix typo in wartime loadout
Dec 2, 2023
048b2ae
fix charge count on jul jerjerrod
marty-Wallace Dec 2, 2023
7a5f102
Merge pull request #669 from J1mBob/patch-113
danrs Dec 6, 2023
1cd9afc
Merge pull request #670 from marty-Wallace/fix-charge-count
danrs Dec 6, 2023
0dcb92e
Merge pull request #671 from marty-Wallace/fix-wartime-loadout-typo
danrs Dec 6, 2023
aeb6214
Add R2-A3 from BOE
J1mBob Feb 4, 2024
9ddcd53
Add Airen Cracken from BOE
J1mBob Feb 4, 2024
7af1a28
Add Feedback Emitter from BOE
J1mBob Feb 4, 2024
144583c
Add first three Mods from BOE
J1mBob Feb 4, 2024
cc7fd93
Add Blank Signature from BOE
J1mBob Feb 4, 2024
cd4d234
Add first batch of talents from BOE
J1mBob Feb 4, 2024
86c7d17
Add Millennium Falcon title from BOE
J1mBob Feb 4, 2024
1eb381e
Added Yorr and Jendon from BOE
J1mBob Feb 4, 2024
c00a4ff
Add Sapphire 2 and Soontir Fel from BOE
J1mBob Feb 4, 2024
cff1dbe
Adjusted Feroph loadout for 2Feb24 points update
J1mBob Feb 4, 2024
d646b0d
Adjusted loadouts for 2Feb24 points update
J1mBob Feb 4, 2024
8ca6ab5
Update loadouts for 2Feb24 points change
J1mBob Feb 4, 2024
e2df7de
Added Lando BOE and adjusted Han loadout 2Feb24 points update
J1mBob Feb 4, 2024
0c599e4
Add Tycho Celchu from BOE
J1mBob Feb 4, 2024
bbe9b87
Adjust Keo Venzee loadout for 2Feb24 points update
J1mBob Feb 4, 2024
5b545b2
Add Wedge from BOE
J1mBob Feb 4, 2024
8e31aa8
Update Zorii Bliss loadout for 2Feb24 points update
J1mBob Feb 4, 2024
59e7599
Update L’ulo L’ampar for 2Feb24 points
J1mBob Feb 4, 2024
2908543
Update Jessika Pava loadout for 2Feb24 points update
J1mBob Feb 4, 2024
c911697
Update Padmé Amidala loadout for 2Feb24 points update
J1mBob Feb 4, 2024
74cd68f
Fixed Crit to Critical Hit
J1mBob Feb 4, 2024
65d7937
fixed Crit to Critical Hit
J1mBob Feb 4, 2024
dc41e42
Merge pull request #674 from J1mBob/patch-114
danrs Feb 20, 2024
319bf7a
Added BOE pilots
J1mBob Mar 3, 2024
28afb88
Add BOE B-wing pilots
J1mBob Mar 3, 2024
7ac45f1
Add Yendor and Kendy BOE pilots
J1mBob Mar 3, 2024
0734438
Add Tycho and Gemmer BOE pilots
J1mBob Mar 3, 2024
a27288d
Add remaining BOE talents
J1mBob Mar 3, 2024
243c0b2
Add remaining BOE mods
J1mBob Mar 3, 2024
10c491f
Add Precision-Tuned Cannons from BOE
J1mBob Mar 3, 2024
5219940
Add remaining BOE astromechs
J1mBob Mar 3, 2024
c5f491d
fix Slam to SLAM
J1mBob Mar 3, 2024
2b24aea
Fix Slam to SLAM
J1mBob Mar 3, 2024
4009567
fixed second SLAM
J1mBob Mar 3, 2024
7e22c53
Merge pull request #682 from J1mBob/patch-117
doweaver Mar 14, 2024
915f86a
Merge pull request #681 from J1mBob/patch-118
doweaver Mar 14, 2024
c2bd293
Merge pull request #680 from J1mBob/patch-119
doweaver Mar 14, 2024
22b5e31
Merge pull request #679 from J1mBob/patch-120
doweaver Mar 14, 2024
3bcd650
Merge pull request #678 from J1mBob/patch-121
doweaver Mar 14, 2024
b747a01
Merge pull request #677 from J1mBob/patch-122
doweaver Mar 14, 2024
ea8af36
Merge pull request #676 from J1mBob/patch-123
doweaver Mar 14, 2024
5e3c54b
Merge pull request #675 from J1mBob/patch-116
doweaver Mar 14, 2024
356bf0d
Add BoE TIE Bombers
doweaver Mar 15, 2024
f2ee7cf
Merge pull request #683 from xwingtmg/doweaver/boebombers
doweaver Mar 15, 2024
2bb4ec8
Add Maus Monare from Battle Over Endor
Mar 17, 2024
4688b9e
Update data/pilots/galactic-empire/tie-in-interceptor.json
doweaver Mar 17, 2024
c2414bc
Merge pull request #684 from awsaba/awsaba/add-mausmonare-battleovere…
doweaver Mar 17, 2024
37f1b39
phantom/gunboat print and play
Sep 13, 2024
70052a4
add old phantoms/gunboats to standard
Sep 13, 2024
1c75729
typo fix
Sep 13, 2024
4b26c9f
typo fix
Sep 13, 2024
e5b994f
Merge branch 'master' of https://github.com/chrisalleng/xwing-data2
Sep 13, 2024
2e89676
Update data/pilots/galactic-empire/tie-ph-phantom.json
Sep 14, 2024
c5538f8
Update data/pilots/galactic-empire/tie-ph-phantom.json
Sep 14, 2024
92ffde8
Update data/pilots/galactic-empire/tie-ph-phantom.json
Sep 14, 2024
d2b2214
Update data/upgrades/missile.json
Sep 14, 2024
62ad5ec
Update data/upgrades/modification.json
Sep 14, 2024
0b4c3dc
Update data/upgrades/sensor.json
Sep 14, 2024
04faa64
Merge pull request #700 from chrisalleng/master
doweaver Sep 14, 2024
607de29
yasb is running away from our xws values, we have to chase them!
Sep 20, 2024
ed1befc
Merge pull request #701 from chrisalleng/master
doweaver Sep 20, 2024
1835128
add gunboat configs to standard
Jan 21, 2025
745375c
Merge branch 'master' of https://github.com/chrisalleng/xwing-data2
Jan 21, 2025
0dc446f
Merge pull request #702 from chrisalleng/master
doweaver Jan 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [12.x]
node-version: [20.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
Expand Down
9 changes: 0 additions & 9 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
/scripts/ffgcards-de.json
/scripts/ffgcards-en.json
/scripts/ffgcards-es.json
/scripts/ffgcards-fr.json
/scripts/ffgmetadata-de.json
/scripts/ffgmetadata-en.json
/scripts/ffgmetadata-es.json
/scripts/ffgmetadata-fr.json

# Logs
logs
*.log
Expand Down
43 changes: 24 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,44 +1,41 @@
# X-Wing Data 2

An easy-to-use collection of all data from [X-Wing: The Miniatures Game (Second Edition)](https://www.fantasyflightgames.com/en/products/x-wing-second-edition/) by [Fantasy Flight Games](http://fantasyflightgames.com/).
An easy-to-use collection of all data from [X-Wing: The Miniatures Game (Second Edition)](https://www.atomicmassgames.com/xwing-documents) by [Atomic Mass Games](https://www.atomicmassgames.com/).

If you're looking for data and images of X-Wing First Edition, you can find that here: [xwing-data](https://github.com/guidokessels/xwing-data).

## XWS ids

Every ship, pilot, upgrade, etc. has a `xws` field that contains an unique id. These ids are used in the [X-Wing Squadron Specification (or `XWS`)](https://github.com/elistevens/xws-spec/).
Every ship, pilot, upgrade, etc. has a `xws` field that contains a unique id. These ids are used in the [X-Wing Squadron Specification (or `XWS`)](https://github.com/elistevens/xws-spec/). Note that ids are only unique per card type (as explained below): a pilot can safely have the same id as an upgrade, for example.

New XWS ids are generated using the following steps:

1. Take the English-language name as printed on the card
2. Lowercase the name
3. Convert non-ASCII characters to closest ASCII equivalent (to remove umlauts, etc.)
4. Remove non-alphanumeric characters
5. Check for collisions, and add expansion suffixes until there is no more collision
1. Lowercase the name
1. Convert non-ASCII characters to closest ASCII equivalent (to remove umlauts, etc.)
1. Remove non-alphanumeric characters
1. If the pilot has a standardized loadout, add the expansion name as a suffix (eg wampa-battleofyavin)
1. Check for collisions with other ids of the same type, and add expansion suffixes until there is no more collision

Expansion suffixes per type:
Pilots: `pilotname-shipname-factionname-productsku`
Upgrades: `upgradename-slotname-productsku`
Conditions: `conditionname-productsku`
Pilots: `pilotname-shipname-factionname-expansionname-productsku`
Upgrades: `upgradename-slotname-expansionname-productsku`
Conditions: `conditionname-expansionname-productsku`

XWS ids have to be unique per type (pilot/upgrade/condition/etc) and do not collide with ids of other types. So there can be a `hansolo` _pilot_ and a `hansolo` _upgrade_, but there cannot be two upgrades with the `hansolo` xws id (regardless of the slot of those upgrades). One of those cards would get the `-slotname` suffix (for example: `hansolo-gunner`).

## Scripts

There are a few scripts that make it easier to work on the data.

You can run these scripts using `npm` or `yarn`. For example:

- `npm run hyperspace`
- `yarn run hyperspace`
You can run these scripts using `npm` or `yarn`.

### Scripts to update data

| Script | Description |
| --------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `yarn run hyperspace` | Syncs the `hyperspace` status of all cards with the FFG squadbuilder |
| `yarn run ffgscrape` | Syncs all data with the FFG squadbuilder (and alerts on missing cards) |
| `yarn run ffg2xws` | Generates the [`data/ffg-xws.json`](https://github.com/guidokessels/xwing-data2/blob/master/data/ffg-xws.json) file |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `yarn ts-node ./scripts/amg/parser.ts` | Scrape ship_points.xlsx and upgrade_points.xlsx for points and format legality (Excel sheets creaed from AMG PDFs using https://www.ilovepdf.com/pdf_to_excel |


### Scripts to work with the repository

Expand All @@ -50,11 +47,19 @@ You can run these scripts using `npm` or `yarn`. For example:
| `yarn run validate:tests` | Run all unit tests |
| `yarn run validate:tests:watch` | Run all unit tests in watch mode |

## Creating a pull request

Before opening a pull request, see the following checklist:

1. Use sensible commit messages. Good: `add rebel fangs`. Bad: `create fang-fighter.json`
1. Ensure there are no merge conflicts with `master` (rebase on top of `master` or merge it into your branch)
1. Ensure tests pass: `yarn run validate:tests`
1. Use a sensible PR message, eg `add pride of mandalore rebel content`. PR messages can be the same as commit messages for single-commit PRs.

## Creating a release

Go through these steps to create a new release:

1. Make sure to run `yarn run ffg2xws` to verify that `data/ffg-xws.json` has been updated
1. Bump the version number in `package.json` and `data/manifest.json` according to the [Versioning](#Versioning) rules listed below
1. Push the `package.json` and `data/manifest.json` changes to GitHub and/or merge them to the `master` branch
1. [Create a new release](https://github.com/guidokessels/xwing-data2/releases/new) on GitHub and use the following:
Expand Down Expand Up @@ -82,4 +87,4 @@ See the [Releases tab](https://github.com/guidokessels/xwing-data2/releases) in

---

Star Wars, X-Wing: The Miniatures Game and all related properties, images and text are owned by Fantasy Flight Games, Lucasfilm Ltd., and/or Disney.
Star Wars: X-Wing and all related properties, images and text are owned by Atomic Mass Games, Lucasfilm Ltd., and/or Disney.
39 changes: 13 additions & 26 deletions data/actions/actions.json
Original file line number Diff line number Diff line change
@@ -1,67 +1,54 @@
[
{
"name": "Boost",
"xws": "boost",
"ffg": 1
"xws": "boost"
},
{
"name": "Focus",
"xws": "focus",
"ffg": 2
"xws": "focus"
},
{
"name": "Evade",
"xws": "evade",
"ffg": 3
"xws": "evade"
},
{
"name": "Lock",
"xws": "lock",
"ffg": 4
"xws": "lock"
},
{
"name": "Barrel Roll",
"xws": "barrelroll",
"ffg": 5
"xws": "barrelroll"
},
{
"name": "Reinforce",
"xws": "reinforce",
"ffg": 6
"xws": "reinforce"
},
{
"name": "Cloak",
"xws": "cloak",
"ffg": 7
"xws": "cloak"
},
{
"name": "Coordinate",
"xws": "coordinate",
"ffg": 8
"xws": "coordinate"
},
{
"name": "Calculate",
"xws": "calculate",
"ffg": 9
"xws": "calculate"
},
{
"name": "Jam",
"xws": "jam",
"ffg": 10
"xws": "jam"
},
{
"name": "Reload",
"xws": "reload",
"ffg": 12
"xws": "reload"
},
{
"name": "Slam",
"xws": "slam",
"ffg": 13
"xws": "slam"
},
{
"name": "Rotate Arc",
"xws": "rotatearc",
"ffg": 14
"xws": "rotatearc"
}
]
99 changes: 88 additions & 11 deletions data/conditions/conditions.json
Original file line number Diff line number Diff line change
@@ -1,64 +1,141 @@
[
{
"name": "Hunted",
"limited": 1,
"ability": "After you are destroyed, you must choose another friendly ship and assign this condition to it, if able.",
"xws": "hunted"
},
{
"name": "I'll Show You the Dark Side",
"limited": 1,
"ability": "When this card is assigned, if there is no faceup damage card on it, the player who assigned it searches the damage deck for 1 Pilot damage card and places it faceup on this card. Then shuffle the damage deck. When you would suffer 1 [Critical Hit] damage, you are instead dealt the faceup damage card on this card. Then, remove this card.",
"xws": "illshowyouthedarkside",
"image": "https://images-cdn.fantasyflightgames.com/filer_public/d1/43/d143413b-c3ee-4eca-b489-9ca1f463980a/swz18_ill-show-you_a3.png"
"image": "https://infinitearenas.com/xw2/images/conditions/illshowyouthedarkside.png"
},
{
"name": "Listening Device",
"limited": 1,
"ability": "During the System Phase, if an enemy ship with the Informant upgrade is at range 0-2, flip your dial faceup.",
"xws": "listeningdevice"
"xws": "listeningdevice",
"image": "https://infinitearenas.com/xw2/images/conditions/listeningdevice.png"
},
{
"name": "Optimized Prototype",
"limited": 1,
"ability": "While you perform a [Front Arc] primary attack against a ship locked by a friendly ship with the Director Krennic upgrade, you may spend 1 [Hit], [Critical Hit], or [Focus] result. If you do, choose one: the defender loses 1 shield, or the defender flips 1 of its facedown damage cards.",
"xws": "optimizedprototype",
"image": "https://images-cdn.fantasyflightgames.com/filer_public/0d/94/0d94dd35-08eb-493c-b4bd-c077be0e2292/swx75_card2_optimized-prototype.png"
"image": "https://infinitearenas.com/xw2/images/conditions/optimizedprototype.png"
},
{
"name": "Rattled",
"limited": 1,
"ability": "After a bomb or mine at range 0-1 detonates, suffer 1 [Critical Hit] damage. Then, remove this card. ACTION: If there are no bombs or mines at range 0-1, remove this card.",
"xws": "rattled"
"xws": "rattled",
"image": "https://infinitearenas.com/xw2/images/conditions/rattled.png"
},
{
"name": "Suppressive Fire",
"limited": 1,
"ability": "While you perform an attack against a ship other than Captain Rex, roll 1 fewer attack die. After Captain Rex defends, remove this card. At the end of the Combat phase, if Captain Rex did not perform an attack this phase, remove this card. After Captain Rex is destroyed, remove this card.",
"xws": "suppressivefire"
"xws": "suppressivefire",
"image": "https://infinitearenas.com/xw2/images/conditions/suppressivefire.png"
},
{
"name": "Decoyed",
"limited": 1,
"ability": "While you defend, each friendly Naboo Handmaiden in the attack arc may spend 1 evade token to change one of your results to an [Evade] result. If you are a Naboo Royal N-1 Starfighter, each friendly Naboo Handmaiden in the attack may spend 1 evade token to add 1 [Evade] result instead.",
"xws": "decoyed"
"xws": "decoyed",
"image": "https://infinitearenas.com/xw2/images/conditions/decoyed.png"
},
{
"name": "Compromising Intel",
"limited": 1,
"ability": "During the System Phase, if the enemy Vi Moradi is at range 0-3, flip your dial faceup. While you defend or perform an attack against the enemy Vi Moradi, you cannot spend focus tokens.",
"xws": "compromisingintel"
"xws": "compromisingintel",
"image": "https://infinitearenas.com/xw2/images/conditions/compromisingintel.png"
},
{
"name": "It's the Resistance",
"limited": 1,
"ability": "Setup: Start in reserve. When you deploy, you are placed within range 1 of any table edge and beyond range 3 of any enemy ship. At the start of the round, if all of the friendly GA-97's [Charge] are active, you must deploy. Then remove this card. After the friendly GA-97 is destroyed, you must deploy. Then gain 1 disarm token and remove this card.",
"xws": "itstheresistance"
"xws": "itstheresistance",
"image": "https://infinitearenas.com/xw2/images/conditions/itstheresistance.png"
},
{
"name": "Fearful Prey",
"limited": 1,
"ability": "After you defend against an enemy Fearsome Predator, if you did not spend at least 1 green token during the attack, gain 1 strain token.",
"xws": "fearfulprey"
"xws": "fearfulprey",
"image": "https://infinitearenas.com/xw2/images/conditions/fearfulprey.png"
},
{
"name": "You'd Better Mean Business",
"limited": 1,
"ability": "This condition is assigned facedown. Reveal it after you defend. After you defend, you may spend 2 [Charge] from Zam Wesell. If you do, perform a bonus attack against the attacker. At the end of the Engagement Phase, if this card is facedown and you are in an enemy ship's firing arc, you may reveal this card. If you do, Zam Wesell recovers 2 [Charge]. At the start of the System Phase, remove this condition.",
"xws": "youdbettermeanbusiness"
"xws": "youdbettermeanbusiness",
"image": "https://infinitearenas.com/xw2/images/conditions/youdbettermeanbusiness.png"
},
{
"name": "You Should Thank Me",
"limited": 1,
"ability": "This condition is assigned facedown. Reveal it after you defend. After you defend, Zam Wesell recovers 1 [Charge]. Then, you may acquire a lock on the attacker. At the end of the Engagement Phase, if this card is facedown and you are in an enemy's firing arc, you may reveal this card and spend 2 [Charge] from Zam Wesell. If you do, you may perform a bonus attack. At the start of the System Phase, remove this condition.",
"xws": "youshouldthankme"
"xws": "youshouldthankme",
"image": "https://infinitearenas.com/xw2/images/conditions/youshouldthankme.png"
},
{
"name": "False Friend",
"limited": 1,
"ability": "During the System Phase, if an enemy ship with the Tal Merrik upgrade is at range 0-2 or an enemy remote is at range 0-2, flip your dial faceup. Action: Gain 1 deplete token and 1 stress token to discard this condition.",
"xws": "falsefriend",
"image": "https://infinitearenas.com/xw2/images/conditions/falsefriend.png"
},
{
"name": "Merciless Pursuit",
"limited": 2,
"ability": "After you perform an attack, if the defender is equipped with The Child, you may acquire a lock on the defender.",
"xws": "mercilesspursuit",
"image": "https://infinitearenas.com/xw2/images/conditions/mercilesspursuit.png"
},
{
"name": "Marked for Elimination",
"limited": 1,
"ability": "While you defend, if the attacker is equipped with Tracking Fob and has a lock on you, you cannot spend green tokens.",
"xws": "markedforelimination",
"image": "https://infinitearenas.com/xw2/images/conditions/markedforelimination.png"
},
{
"name": "Guarded",
"limited": 1,
"ability": "While you defend, if you are not in the attacker's [Bullseye Arc], roll 1 additional defense die for each friendly calculating or evading MagnaGuard Protector in the attack arc.",
"xws": "guarded",
"image": "https://infinitearenas.com/xw2/images/conditions/guarded.png"
},
{
"name": "Trials of the Darksaber",
"limited": 1,
"ability": "While you perform an attack at attack range 0-2, you may spend 1 [Critical Hit] result. If you do, if the defending ship's player has more scored [Victory] than you, they lose 1 scored [Victory]. Place that [Victory] on this card. After you defend, if you are destroyed by an enemy ship at attack range 0-2, assign the Trials Of The Darksaber condition to the attacker (all [Victory] remain on this card). At the end of the game, this ship scores all [Victory] on this card.",
"xws": "trialsofthedarksaber",
"image": "https://infinitearenas.com/xw2/images/conditions/trialsofthedarksaber.png"
},
{
"name": "Primed for Speed",
"limited": 3,
"ability": "Add a white [SLAM] action to your action bar. After you perform a [SLAM] action, you must suffer 1 [Hit] damage to remove 1 disarm token.",
"xws": "primedforspeed",
"image": "https://infinitearenas.com/xw2/images/conditions/primedforspeed.png"
},
{
"name": "Broken Trust",
"limited": 1,
"ability": "Treat friendly ships as allied. Non-enemy ships treat you as allied. While performing an attack, before declaring the defender, each allied ship in the attack arc that is not stressed gains 1 stress token. After you defend or perform an attack, if the defender was dealt at least 1 faceup damage card, or was destroyed, remove this condition.",
"xws": "brokentrust",
"image": "https://infinitearenas.com/xw2/images/conditions/brokentrust.png"
},
{
"name": "Sickening Maneuver",
"limited": 1,
"ability": "You can execute red maneuvers even while stressed. After you reveal a bank [[Bank Left] or [Bank Right]] or turn [[Turn Left] or [Turn Right]] maneuver, you must gain 1 strain and execute the maneuver as a slideslip. After you reveal a straight [[Straight]] maneuver, you must execute that maneuver as a red koiogran turn [[Koiogran Turn]]. After you execute a maneuver, remove this condition.",
"xws": "sickeningmaneuver",
"image": "https://infinitearenas.com/xw2/images/conditions/sickeningmaneuver.png"
}
]
21 changes: 7 additions & 14 deletions data/factions/factions.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,43 +2,36 @@
{
"name": "Rebel Alliance",
"xws": "rebelalliance",
"ffg": 1,
"icon": "https://sb-cdn.fantasyflightgames.com/factions/Rebel.png"
"icon": "https://infinitearenas.com/xw2/images/artwork/faction-icons/Rebel.png"
},
{
"name": "Galactic Empire",
"xws": "galacticempire",
"ffg": 2,
"icon": "https://sb-cdn.fantasyflightgames.com/factions/Imperial.png"
"icon": "https://infinitearenas.com/xw2/images/artwork/faction-icons/Imperial.png"
},
{
"name": "Scum and Villainy",
"xws": "scumandvillainy",
"ffg": 3,
"icon": "https://sb-cdn.fantasyflightgames.com/factions/Scum.png"
"icon": "https://infinitearenas.com/xw2/images/artwork/faction-icons/Scum.png"
},
{
"name": "Resistance",
"xws": "resistance",
"ffg": 4,
"icon": "https://sb-cdn.fantasyflightgames.com/factions/ResistanceIcon.png"
"icon": "https://infinitearenas.com/xw2/images/artwork/faction-icons/ResistanceIcon.png"
},
{
"name": "First Order",
"xws": "firstorder",
"ffg": 5,
"icon": "https://sb-cdn.fantasyflightgames.com/factions/FirstOrderIcon.png"
"icon": "https://infinitearenas.com/xw2/images/artwork/faction-icons/FirstOrderIcon.png"
},
{
"name": "Galactic Republic",
"xws": "galacticrepublic",
"ffg": 6,
"icon": "https://sb-cdn.fantasyflightgames.com/factions/RepublicIcon.png"
"icon": "https://infinitearenas.com/xw2/images/artwork/faction-icons/RepublicIcon.png"
},
{
"name": "Separatist Alliance",
"xws": "separatistalliance",
"ffg": 7,
"icon": "https://sb-cdn.fantasyflightgames.com/factions/SeparatistIcon.png"
"icon": "https://infinitearenas.com/xw2/images/artwork/faction-icons/SeparatistIcon.png"
}
]
Loading