/sc2-planner

Primary LanguageTypeScriptMIT LicenseMIT

SC2 Planner

This is a (hopefully better) remake of the original (but deprecated) sc2planner from scratch, written in React and Typescript.

You can create build orders for StarCraft 2 Legacy of the Void, and this web-application will simulate/calculate the time at which those actions can be executed.

Live Demo

You can find a live version here

Examples

Terran

Reaper expand into reactored hellions and banshee

A version of the 211 16 marine drop

Protoss

Gateway expand into 1 gas 7 gate chargelot allin

Zerg

17 Hatch, 17 pool, 16 gas

Hotkeys

With the arrow keys (left and right) you can navigate through the build order. Holding shift will jump by 5, and holding ctrl will jump to the start with left arrow or to the end with right arrow.

Development - Building it yourself

Requirements

Node 14 or newer is required to create this static website.

Python 3.8 or newer is required to run pre-commit hooks.

Setup

npm install
pip install poetry --user
poetry install
poetry run pre-commit install

Deploy

Test

npm run test

End-to-end test

poetry run pytest test/test_e2e.py

Develop

To start dev server:

npm run start

Then go to localhost:3000

Build and deploy

To deploy in /build directory:

npm run build

Pre-commit hooks

To run pre-commit hooks manually, run

poetry run pre-commit install
poetry run pre-commit run --all-files

Update

To update to the current patch, a freshly generated data.json from SC2 Techtree is required and needs to be placed in src/constants/data.json. If a new unit, structure or upgrade was introduced, then its icon needs to be placed in the src/icons/png directory. Console asserts might be printed in the browser console if the number of units or upgrades changed in a patch.

Copyright

Most image assets are owned by Blizzard and are used according to http://blizzard.com/company/about/legal-faq.html.

©Blizzard Entertainment, Inc. All rights reserved. Wings of Liberty, Heart of the Swarm, Legacy of the Void, StarCraft, Brood War, Battle.net, and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries.

Other

Prettify all .ts and .tsx files:

npm run format

TODO

Tasks that still need to be done, also see the issues page:

  • Improve GUI looks
  • Add SALT encoding and decoding
  • Grey out actions / icons that are currently not available (locked by techtree)
  • Sort zerg townhalls by how much larva it has (build units from hatchery first which has the most free larva)
  • Sort terran production structures by: has reactor, has no addon, has techlab when trying to queue new units that do not require a techlab.