This is a multi-package repository. That means that the codebase is separated into independently versioned packages for better code and infrastructure sharing.
Here is the list of packages with a brief description:
@warriorjs/core
is where the game mechanics are implemented; it exposes thewarriorjs.runLevel
function to run the given level with the given code and return the result of that run.@warriorjs/helper-get-level-config
exposes a helper function to get the config for a level defined in a tower, to use as input for the functions exposed by the core.@warriorjs/helper-get-level-score
exposes a helper function to get a level's score.@warriorjs/helper-get-grade-letter
exposes a helper function to get the letter for a numeric grade.@warriorjs/helper-get-level-config
exposes a helper function to get the config for a level defined in a tower, to use as input for the functions exposed by the core.@warriorjs/geography
exposes some constants and functions related to directioning (absolute and relative) of units and abilities in the game.@warriorjs/abilities
defines the abilities that are used in the official towers.@warriorjs/effects
defines the effects that are used in the official towers.@warriorjs/units
defines the units that are used in the official towers.@warriorjs/cli
is the original version of WarriorJS, playable from the terminal.
The towers available in WarriorJS are independent packages that add new universes (levels, abilities and units) to the game.
Package | Version |
---|---|
@warriorjs/tower-baby-steps |
|
@warriorjs/tower-tick-tick-boom |
@warriorjs/tower-baby-steps
is the entry-level tower. You should play this first.@warriorjs/tower-tick-tick-boom
is a more challenging tower.
You can find community maintained towers in npm.