BattleSim/README.md

2.8 KiB

Insurgence Battle Simulator

A competitive Pokemon battle simulator playable in the browser. Based on https://github.com/sarenji/pokebattle-sim

Set up

Installation

git clone https://gitlab.com/Deukhoofd/BattleSim.git
cd BattleSim
npm install

Next, you need to install two dependencies: redis and PostgreSQL 9.1.

Redis

On Mac OS X with homebrew, you can do:

brew install redis

On Windows, there is a Redis port that works fairly well: https://github.com/rgl/redis/downloads

PostgreSQL

PostgreSQL has installable versions for every major OS. In particular, for Mac OS X, there is Postgres.app.

When you install PostgreSQL, you should create a database for pokebattle, called pokebattle_sim. You can do this two ways:

# command-line:
$ createdb pokebattle_sim

# or via SQL client:
CREATE DATABASE pokebattle_sim;

Next, you must migrate the database. Simply run:

npm install -g knex
knex migrate:latest

If you get an error complaining that the postgres role doesn't exist, run this: createuser -s -r postgres.

Run server

We use Grunt to handle our development. First, you must npm install -g grunt-cli to get the grunt runner. Then you can type

grunt

to automatically compile all client-side files and run nodemon for you.

We also support Vagrant if you are on a Windows machine and so desire.

Run tests

npm test
# or
npm install -g mocha
mocha

Or if you're in the Vagrant VM, you can just run

mocha

Deployment

First, you must get SSH access to the server. Then, to deploy:

cap staging deploy
# test on staging
cap production deploy

Guide

pokebattle-sim is a one-page app. The server serves the client.

api/             Hosts the code for the API that we host.
client/          Main client code. Contains JS and CSS.
config/          For Capistrano and deployment.
public/          Public-facing dir. Generated files, fonts, images.
server/          Server, battle, move, Pokemon logic, etc.
shared/          Files shared between server and client.
test/            Automated tests for server and client.
views/           All views that are rendered server-side go here.
Gruntfile.coffee Contains all tasks for pokebattle-sim, like compiling.
start.js         The main entry point of pokebattle-sim.

Contributing

All contributions to the simulator logic must come with tests. If a contribution does not come with a test that fails before your contribution and passes after, your contribution will be rejected.

Other contributions (e.g. to the client) are much less strict!

Issues

Report issues in GitHub's issue tracker.