Skip to content

Darker333/xwing-data2-legacy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,455 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

X-Wing Data 2

An easy-to-use collection of all data from X-Wing: The Miniatures Game (Second Edition) by Atomic Mass Games.

If you're looking for data and images of X-Wing First Edition, you can find that here: 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).

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

Expansion suffixes per type: Pilots: pilotname-shipname-factionname-productsku Upgrades: upgradename-slotname-productsku Conditions: conditionname-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 format
  • yarn run format

Scripts to work with the repository

Script Description
yarn run format Format all .json files in the data folder using Prettier
yarn run changelog A...B Generate a changelog between commits A and B, to be used in the release description on GitHub.
Example usage: yarn run changelog 1.24.0...1.25.0
yarn run validate:json Validate that all .json files contain valid JSON
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
  2. Ensure there are no merge conflicts with master (rebase on top of master or merge it into your branch)
  3. Ensure tests pass: yarn run validate:tests
  4. 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. Bump the version number in package.json and data/manifest.json according to the Versioning rules listed below
  2. Push the package.json and data/manifest.json changes to GitHub and/or merge them to the master branch
  3. Create a new release on GitHub and use the following:
    • Tag version: The tag you just created
    • Target: master branch
    • Release title: The version number
    • Describe this release: The output of the yarn run changelog PREVIOUS_VERSION...HEAD command (replace PREVIOUS_VERSION with the latest available tag)
  4. All done! 🎉

Versioning

This project uses SemVer. Given a MAJOR.MINOR.PATCH version number, we will increment the:

  • MAJOR version when existing content is changed in such a way that it can break consumers of the data
  • MINOR version when new content is added in a backwards-compatible manner, or existing content is changed in a backwards-compatible manner
  • PATCH version when fixing mistakes in existing content

History

See the Releases tab in Github.

License

MIT


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.

About

Fork for independent data changes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 87.4%
  • Python 12.6%