Go to file
Deukhoofd 16ac69171d Added Find Battle Unranked 2016-02-10 03:10:17 +01:00
api Lots of stuff 2016-02-01 23:19:30 +01:00
client Added Find Battle Unranked 2016-02-10 03:10:17 +01:00
config Lots of stuff 2016-02-01 23:19:30 +01:00
migrations Lots of stuff 2016-02-01 23:19:30 +01:00
public Added Find Battle Unranked 2016-02-10 03:10:17 +01:00
server Added Find Battle Unranked 2016-02-10 03:10:17 +01:00
shared Added Smogon tiering system, made team invisible clause, sorted all pokemon 2016-02-04 23:30:39 +01:00
test Lots of stuff 2016-02-01 23:19:30 +01:00
.gitignore Lots of stuff 2016-02-01 23:19:30 +01:00
.nodemonignore Lots of stuff 2016-02-01 23:19:30 +01:00
Capfile Lots of stuff 2016-02-01 23:19:30 +01:00
Gemfile Lots of stuff 2016-02-01 23:19:30 +01:00
Gemfile.lock Lots of stuff 2016-02-01 23:19:30 +01:00
Gruntfile.coffee Lots of stuff 2016-02-01 23:19:30 +01:00
LICENSE Lots of stuff 2016-02-01 23:19:30 +01:00
Makefile Lots of stuff 2016-02-01 23:19:30 +01:00
README.md Lots of stuff 2016-02-01 23:19:30 +01:00
Vagrantfile Lots of stuff 2016-02-01 23:19:30 +01:00
assets.coffee Lots of stuff 2016-02-01 23:19:30 +01:00
aws_config.json Lots of stuff 2016-02-01 23:19:30 +01:00
aws_config.json.example Lots of stuff 2016-02-01 23:19:30 +01:00
bootstrap.sh Lots of stuff 2016-02-01 23:19:30 +01:00
icomoon-selection.json Lots of stuff 2016-02-01 23:19:30 +01:00
index.coffee Lots of stuff 2016-02-01 23:19:30 +01:00
nodetime.json Lots of stuff 2016-02-01 23:19:30 +01:00
npm-shrinkwrap.json Lots of stuff 2016-02-01 23:19:30 +01:00
package.json Lots of stuff 2016-02-01 23:19:30 +01:00
start.js Lots of stuff 2016-02-01 23:19:30 +01:00

README.md

pokebattle-sim Build Status

A competitive Pokemon battle simulator playable in the browser.

Set up

Installation

git clone git://github.com/sarenji/pokebattle-sim.git
cd pokebattle-sim
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.