Initial commit
First pass at a basic character builder

README is drafted. This commit also includes
a basic attribute-->stat mapping module, a
module for deriving stat scores, and a
top-level character_builder module that should
allow for easy simulation and testing.

Code is super simple for now. I want to remove
as many 'if' blocks as possible and just have
simple computations for stats, but I am going to
hold off on optimizing until I get some balancing
data. Next priority is to factor in equipment and
level.
Created separate directories and stubs

Basics for level-based attributes are now
in JSON. The 'levels' module will translate
character class and level information into
attribute scores.
Update README.md

Tweaking a few details in the README
Testing out asciidocs

I have never used them but I have
heard great things...
Converted other odt files to asciidocs

These docs are not at all finished. Also
this is my first time writing asciidocs,
so they suck a lot. I will need to clean
these up once I finish the actual content.
Added levels and classes to character builder

Character builder can now incorporate character
level and class into its output. Players can
see what sort of stats result from picking a
class, level, and then allocating the player
points to desired attributes. Pretty cool.

This is a first pass. Code is shitty - almost
no comments or error-checking, bad variable names,
no tests, etc. etc. Still need to add the 'random
allocation' method too.
Defined core 'Character' class

Character objects are going to be important,
obviously. This commit defines the class and
incorporates it into the character_builder.
I will create similar classes for things like
weapons, skills, spells, items, etc. etc. I
think I am passed the mock-up phase and will
try to use real objects for things going
forward.

I also added a cleanup.sh for pyc files. They
just annoy me and I'm paranoid about
fat-fingering 'rm *.pyc'. Not that it would be
a big deal if I did thanks to git...
Added 'Weapon' class

Trying to keep commits small. I'll do
separate commits for armor and items, then
likely another adding equipment to the
character builder.

I will need to flesh out the sample weapons.json
a bit. For now I am ok with this object definition.
Added sample armor and item json

I'm moving JSON files to a separate data
directory for cleanliness purposes.
Added load method for weapons

This can be the format for armors and
items. Allows for quick loading of weapon
info given the name string.
Laid groundwork for fully-equipped characters

This is a bit of weird commit. Were I less lazy
I'd break it up.

There are a few file renames for sanity purposes.
I made the top level builder program more logical;
the three builder methods now just return the
character and leave it to others to do stuff with
it. There are some unwritten methods referenced
in the fully_equipped_character builder method.
This represents how I intend to actually code that
functionality. It should be in the next commit.
There are also some tweaks to a few class modules.

There are also some empty json files --> 'everything'
and 'types'. Just an idea that occurred to me. More
on them later.
Added types.json and everything.json

Ok so lets try to commit early and often...

So this might be a terrible idea but I'm just
running with it for now.

The idea of everything.json is that it should give
you all the information you need to build any object
with a simple string name key lookup.

types.json simply reduces the clutter of everything.json
by accounting for type-wide attributes like weapon range
or armor defense dice.

These two json files largely make obsolete weapons.json,
items.json, and armors.json. At least, I think they do.
I am going to keep those files around for now.

everything.json! everything is cool when you're part of a
team!
First pass at fully-equipped character builder

Character Builder v3 now takes in a user-provided
inventory, allows the user to set equipment from
said inventory, and then applies equipment mods
to stats. Inventory weight also influences character
evade (it needs to also influence 'movement').

There is a set of stats we can call "Combat Profile"
which includes things like "ATK PWR", which represents
a character's raw attack strength (derived from their
MGT score) plus whatever base power and scaling their
equipped weapon brings.

This is a cool milestone but far FAR from done. Still
no error-checking or tests. Probably bugs out the yin
yang. Docs are woefully out of date / incomplete. Would
love to keep going but I am tired and in Mexico. Will
continue later.
Added a TODO

For anyone that wants to help me out -
see the TODO.
Simplified class / level progression

The idea of starting as some generic base
class and then moving on to a specialized
class, while not terribly unique or complex,
is nonetheless not the simplest starting
point. While my first game worked this way,
other people might prefer starting classes
to immediately confer attribute benefits.

It is pretty easy for a developer to fork
this project ad either revert or create their
own progression.
levels.json now goes up to level 10

Beefed it up a bit. For now, 'class' is not
a class. That is, there is no object for the
concept of character class. Class is just an
attribute of a character. It defines their
attribute bonuses at level up and will determine
what class skills they can access.
Added weapons, restricted equipment by class

Characters can now only equip weapons and armor
usable by their class. It fails in a shitty way
for now, but is sufficient to restrict the
builder programs. I also added some new weapons
and armor to everything.json
First pass at skill objects

Skills are more complex than I had assumed. I
am not sure I like this object definition but
for now it has what I want.
Characters now have a skill list attribute

Also spells will be a subset of skills.