Welcome to Creature Squad, a simple browser game derived from baseball statistics and implemented with Knockout and TypeScript. Source code is available at GitHub.

Creature Squad is primarily a game of chance. Game play takes
place on a board in the center of the screen made of 10 rows, each
of which are independent of each other. Your objective is to fill
in squares on the board and then push those squares past the third
column into the scoring zone.

Outs | 1st | 2nd | 3rd | Runs |

X

X

X

X

X

X

X

X

1

1

1

Each team gets 5 rounds (or more if the score is tied.) A round
ends when your total number of outs after a turn is 30 or greater.
Unlike in baseball, **the points still count** even if you
reach 30 outs, so the best rounds are usually those where you land
at 28 or 29 and can get one more turn.

For each turn, you have two options: attack and sacrifice.

**Attack**is almost always the best option; you will only want to sacrifice in certain situations. The result of an attack is calculated independently for each row by using the current character's stats, which are based on the statistics of actual major league batters. (The default Team 1 lineup mirrors the 2016 Chicago Cubs and Team 2 is based on their World Series opponent Cleveland.)- Each character has two numbers displayed: the success percentage (OBP), which reflects how often they avoid outs, and the power rate (SLG), which is related to how far into a row their squares end up (including outs, but excluding walks.) On large screens, these numbers will be shown for each character; on small screens, they will be shown for the current character only, at the top of the screen.
- The possible results for each row are:
- Single: The attack lands on the 1st column, and any square
that's already in the row moves forward 1 or 2 spaces.

- Double: The attack lands on the 2nd column, and any square that's already in the row moves forward 2 or 3 spaces.
- Triple: The attack lands on the 3rd column, and any square
that's already in the row moves to the end and scores.

- Home Run: The attack and all other squares in the row
score immediately.

- Walk: The attack lands on the 1st column. Any squares in
the row move forward only if they are "pushed" forward by
the incoming square.

- Out: The attack does not land on any of the columns, and an out is recorded (marked by an X in the leftmost column.) However, there is a 1 in 5 chance that any squares in the row will still move forward 1 space.
**Sacrifice**: If you choose this option, you will get an out in every row (for a total of 10). However, for each row, there is a 50/50 chance that the squares in that row will move forward one space. You might want to consider using a sacrifice when one of the following is true:

- The character about to attack does not have a very good chance of success (for example, Tomas only has an 18.5% success percentage, so on average he will get an out on 81.5% of the rows, or 8.15 outs per turn.)
- You are at somewhere around 28 outs, so this is probably your last turn before the end of the round, and there are a bunch of squares in the third column.

You can define your own teams in the team setup window.

Each team is a JSON array. Each element in the array can have the
following attributes:

- name
- fullName (optional, otherwise "name" will be used)
- thumbnail (optional)
- image (optional, otherwise "thumbnail" will be used)
- bgcolor (optional, otherwise one will be chosen based on the name)
- description (an array of strings - each will be a paragraph on the character description window)
- statistics
- Format 1 (you can find these for any given batter at a site
like baseball-reference.com):

- at_bats
- total_hits
- doubles
- triples
- home_runs
- walks
- hit_by_pitch
- sacrifice_hits

- sacrifice_flies
- intentional_walks
- Format 2 (all fields are optional):
- singles
- doubles
- triples
- home_runs
- intentional_walks (these will be ignored during the game)
- unintentional_walks
- hit_by_pitch
- sacrifice_hits (these will be ignored during the game)
- sacrifice_flies

- other_outs

Character images, names, icons, and descriptions are © 2017 libertyernie, and are available under a Creative Commons Attribution-NonCommercial 4.0 International License.

Everything else is © 2017 libertyernie, and is available under the terms
of the GNU Affero General Public License as published by the Free
Software Foundation, either version 3
of the License, or (at your option) any later version.

Source code is available at: https://github.com/libertyernie/CreatureSquad