# Generated by Django 2.0.1 on 2018-01-14 20:05

import django.core.validators
from django.db import migrations, models
import django.db.models.deletion
import multiselectfield.db.fields


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Character',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=150, verbose_name='Name')),
                ('gender', models.CharField(blank=True, max_length=150, verbose_name='Gender')),
                ('age', models.CharField(blank=True, max_length=1500, verbose_name='Age')),
                ('height', models.PositiveIntegerField(blank=True, verbose_name='Height')),
                ('weight', models.PositiveIntegerField(blank=True, verbose_name='Weight')),
                ('hair_color', models.CharField(blank=True, max_length=150, verbose_name='Hair Color')),
                ('eye_color', models.CharField(blank=True, max_length=150, verbose_name='Eye Color')),
                ('description', models.TextField(blank=True, verbose_name='Description')),
                ('alignment', models.CharField(choices=[('Lawful Good', 'Lawful Good'), ('Neutral Good', 'Neutral Good'), ('Chaotic Good', 'Chaotic Good'), ('Lawful Neutral', 'Lawful Neutral'), ('True Neutral', 'True Neutral'), ('Chaotic Neutral', 'Chaotic Neutral'), ('Lawful Evil', 'Lawful Evil'), ('Neutral Evil', 'Neutral Evil'), ('Chaotic Evil', 'Chaotic Evil')], max_length=150)),
                ('strength', models.IntegerField(default=10, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(18)], verbose_name='Strength')),
                ('dexterity', models.IntegerField(default=10, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(18)], verbose_name='Dexterity')),
                ('constitution', models.IntegerField(default=10, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(18)], verbose_name='Constitution')),
                ('intelligence', models.IntegerField(default=10, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(18)], verbose_name='Intelligence')),
                ('wisdom', models.IntegerField(default=10, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(18)], verbose_name='Wisdom')),
                ('charisma', models.IntegerField(default=10, validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(18)], verbose_name='Charisma')),
            ],
        ),
        migrations.CreateModel(
            name='CharacterClass',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=150, verbose_name='Name')),
                ('description', models.TextField(blank=True, null=True, verbose_name='Description')),
                ('hit_points', models.PositiveIntegerField(default=0, verbose_name='Hit Points')),
                ('stamina', models.PositiveIntegerField(default=0, verbose_name='Stamina Points')),
                ('skill_ranks', models.PositiveIntegerField(default=0, verbose_name='Skill Ranks Per Level')),
                ('armor', multiselectfield.db.fields.MultiSelectField(choices=[('Light Armor', 'Light Armor'), ('Heavy Armor', 'Heavy Armor'), ('Powered Armor', 'Powered Armor')], max_length=150, verbose_name='Armor Proficiencies')),
                ('weapon', multiselectfield.db.fields.MultiSelectField(choices=[('Basic Melee', 'Basic Melee'), ('Advanced Melee', 'Advanced Melee'), ('Small Arms', 'Small Arms'), ('Large Arms', 'Longarms'), ('Heavy Weapons', 'Heavy Weapons'), ('Sniper Weapons', 'Sniper Weapons'), ('Grenades', 'Grenades')], max_length=150, verbose_name='Weapon Proficiencies')),
                ('bab', models.CharField(choices=[('High', 'High'), ('Low', 'Low')], max_length=150, verbose_name='Base Attack Bonus')),
                ('fort', models.CharField(choices=[('High', 'High'), ('Low', 'Low')], max_length=25, verbose_name='Fortitude Save')),
                ('ref', models.CharField(choices=[('High', 'High'), ('Low', 'Low')], max_length=25, verbose_name='Reflex Save')),
                ('will', models.CharField(choices=[('High', 'High'), ('Low', 'Low')], max_length=25, verbose_name='Willpower Save')),
                ('skills', multiselectfield.db.fields.MultiSelectField(choices=[('Acrobatics', 'Acrobatics'), ('Athletics', 'Athletics'), ('Bluff', 'Bluff'), ('Computers', 'Computers'), ('Culture', 'Culture'), ('Diplomacy', 'Diplomacy'), ('Disguise', 'Disguise'), ('Engineering', 'Engineering'), ('Intimidate', 'Intimidate'), ('Life Science', 'Life Science'), ('Medicine', 'Medicine'), ('Mysticism', 'Mysticism'), ('Perception', 'Perception'), ('Physical Science', 'Physical Science'), ('Piloting', 'Piloting'), ('Profession', 'Profession'), ('Sense Motive', 'Sense Motive'), ('Sleight of Hand', 'Sleight of Hand'), ('Stealth', 'Stealth'), ('Survival', 'Survival')], max_length=212, verbose_name='Class Skills')),
            ],
        ),
        migrations.CreateModel(
            name='Feature',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=150, verbose_name='Name')),
                ('description', models.TextField(verbose_name='Description')),
                ('level', models.PositiveIntegerField(default=1, validators=[django.core.validators.MinValueValidator(1)], verbose_name='Level Requirement')),
            ],
            options={
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='Race',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=150, verbose_name='Name')),
                ('strength', models.IntegerField(default=0, verbose_name='Strength')),
                ('dexterity', models.IntegerField(default=0, verbose_name='Dexterity')),
                ('constitution', models.IntegerField(default=0, verbose_name='Constitution')),
                ('intelligence', models.IntegerField(default=0, verbose_name='Intelligence')),
                ('wisdom', models.IntegerField(default=0, verbose_name='Wisdom')),
                ('charisma', models.IntegerField(default=0, verbose_name='Charisma')),
                ('hit_points', models.PositiveIntegerField(default=0, verbose_name='Hit Points')),
                ('size', models.CharField(choices=[('Tiny', 'Tiny'), ('Small', 'Small'), ('Medium', 'Medium'), ('Large', 'Large')], max_length=15, verbose_name='Size')),
                ('type', models.CharField(choices=[('Humanoid', 'Humanoid')], max_length=15, verbose_name='Type')),
                ('subtype', models.CharField(choices=[('Android', 'Android'), ('Human', 'Human'), ('Kasatha', 'Kasatha'), ('Lashunta', 'Lashunta'), ('Shirren', 'Shirren'), ('Vesk', 'Vesk'), ('Ysoki', 'Ysoki'), ('Verthani', 'Verthani')], max_length=15, verbose_name='Subtype')),
                ('initial_description', models.TextField(blank=True, null=True, verbose_name='Initial Description')),
                ('physical_description', models.TextField(blank=True, null=True, verbose_name='Physical Description')),
                ('homeworld', models.TextField(blank=True, null=True, verbose_name='Home World')),
                ('society_alignment', models.TextField(blank=True, null=True, verbose_name='Society and Alignment')),
                ('relations', models.TextField(blank=True, null=True, verbose_name='Relations')),
                ('adventurers', models.TextField(blank=True, null=True, verbose_name='Adventurers')),
                ('names', models.TextField(blank=True, null=True, verbose_name='Names')),
                ('first_racial_feature', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='race_feature_one', to='generator.Feature')),
                ('fourth_racial_feature', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='race_feature_four', to='generator.Feature')),
                ('second_racial_feature', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='race_feature_two', to='generator.Feature')),
                ('third_racial_feature', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='race_feature_three', to='generator.Feature')),
            ],
        ),
        migrations.CreateModel(
            name='Skill',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('ability', multiselectfield.db.fields.MultiSelectField(choices=[('Str', 'Strength'), ('Dex', 'Dexterity'), ('Con', 'Constitution'), ('Int', 'Intelligence'), ('Wis', 'Wisdom'), ('Cha', 'Charisma')], max_length=25, verbose_name='Ability')),
                ('ap', models.BooleanField(default=False, verbose_name='Armor Check Penalty')),
                ('training', models.BooleanField(default=False, verbose_name='Untrained?')),
            ],
        ),
        migrations.CreateModel(
            name='Theme',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=150, verbose_name='Theme Name')),
                ('description', models.TextField(blank=True, null=True, verbose_name='Description')),
                ('strength', models.IntegerField(default=0, verbose_name='Strength')),
                ('dexterity', models.IntegerField(default=0, verbose_name='Dexterity')),
                ('constitution', models.IntegerField(default=0, verbose_name='Constitution')),
                ('intelligence', models.IntegerField(default=0, verbose_name='Intelligence')),
                ('wisdom', models.IntegerField(default=0, verbose_name='Wisdom')),
                ('charisma', models.IntegerField(default=0, verbose_name='Charisma')),
                ('first_theme_feature', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='theme_feature_one', to='generator.Feature')),
                ('fourth_theme_feature', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='theme_feature_four', to='generator.Feature')),
                ('second_theme_feature', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='theme_feature_two', to='generator.Feature')),
                ('third_theme_feature', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='theme_feature_three', to='generator.Feature')),
            ],
            options={
                'ordering': ['name'],
            },
        ),
        migrations.AddField(
            model_name='character',
            name='character_class',
            field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='character_class', to='generator.CharacterClass'),
        ),
        migrations.AddField(
            model_name='character',
            name='race',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='race', to='generator.Race'),
        ),
        migrations.AddField(
            model_name='character',
            name='theme',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='theme', to='generator.Theme'),
        ),
    ]
