From e134b0001f73478cdefeef6cbb27dc9b6724cb24 Mon Sep 17 00:00:00 2001 From: August Johnson Date: Thu, 27 Jun 2024 05:49:10 -0700 Subject: [PATCH] Converting existing speeds. --- api_v2/migrations/0101_auto_20240627_1246.py | 179 +++++ api_v2/models/abilities.py | 2 + .../v2/wizards-of-the-coast/srd/Creature.json | 724 +++++++++--------- scripts/data_manipulation/v1_to_v2_data.py | 43 +- 4 files changed, 580 insertions(+), 368 deletions(-) create mode 100644 api_v2/migrations/0101_auto_20240627_1246.py diff --git a/api_v2/migrations/0101_auto_20240627_1246.py b/api_v2/migrations/0101_auto_20240627_1246.py new file mode 100644 index 00000000..14ae9bf7 --- /dev/null +++ b/api_v2/migrations/0101_auto_20240627_1246.py @@ -0,0 +1,179 @@ +# Generated by Django 3.2.20 on 2024-06-27 12:46 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api_v2', '0100_auto_20240619_1422'), + ] + + operations = [ + migrations.AlterField( + model_name='creature', + name='burrow', + field=models.FloatField(blank=True, help_text='Used to measure distance.', null=True, validators=[django.core.validators.MinValueValidator(0)]), + ), + migrations.AlterField( + model_name='creature', + name='climb', + field=models.FloatField(blank=True, help_text='Used to measure distance.', null=True, validators=[django.core.validators.MinValueValidator(0)]), + ), + migrations.AlterField( + model_name='creature', + name='fly', + field=models.FloatField(blank=True, help_text='Used to measure distance.', null=True, validators=[django.core.validators.MinValueValidator(0)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_acrobatics', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to acrobatics skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_animal_handling', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to animal handling skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_arcana', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to arcana skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_athletics', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to athletics skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_deception', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to deception skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_history', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to history skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_insight', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to insight skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_intimidation', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to intimidation skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_investigation', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to investigation skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_medicine', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to medicine skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_nature', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to nature skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_perception', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to perception skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_performance', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to performance skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_persuasion', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to persuasion skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_religion', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to religion skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_sleight_of_hand', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to sleight of hand skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_stealth', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to stealth skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='skill_bonus_survival', + field=models.SmallIntegerField(blank=True, help_text='Signed integer added to survival skill checks.', null=True, validators=[django.core.validators.MinValueValidator(-5), django.core.validators.MaxValueValidator(20)]), + ), + migrations.AlterField( + model_name='creature', + name='swim', + field=models.FloatField(blank=True, help_text='Used to measure distance.', null=True, validators=[django.core.validators.MinValueValidator(0)]), + ), + migrations.AlterField( + model_name='creature', + name='unit', + field=models.CharField(blank=True, choices=[('feet', 'feet'), ('miles', 'miles')], help_text='What distance unit the relevant field uses.', max_length=20, null=True), + ), + migrations.AlterField( + model_name='creature', + name='walk', + field=models.FloatField(blank=True, help_text='Used to measure distance.', validators=[django.core.validators.MinValueValidator(0)]), + ), + migrations.AlterField( + model_name='document', + name='distance_unit', + field=models.CharField(blank=True, choices=[('feet', 'feet'), ('miles', 'miles')], help_text='What distance unit the relevant field uses.', max_length=20, null=True), + ), + migrations.AlterField( + model_name='spell', + name='damage_types', + field=models.JSONField(blank=True, default=list, help_text='The types of damage done by the spell in a list.'), + ), + migrations.AlterField( + model_name='spell', + name='duration', + field=models.TextField(choices=[('instantaneous', 'instantaneous'), ('instantaneous or special', 'instantaneous or special'), ('1 turn', '1 turn'), ('1 round', '1 round'), ('concentration + 1 round', 'concentration + 1 round'), ('2 rounds', '2 rounds'), ('3 rounds', '3 rounds'), ('4 rounds', '4 rounds'), ('1d4+2 rounds', '1d4+2 rounds'), ('5 rounds', '5 rounds'), ('6 rounds', '6 rounds'), ('10 rounds', '10 rounds'), ('up to 1 minute', 'up to 1 minute'), ('1 minute', '1 minute'), ('1 minute, or until expended', '1 minute, or until expended'), ('1 minute, until expended', '1 minute, until expended'), ('1 minute', '1 minute'), ('5 minutes', '5 minutes'), ('10 minutes', '10 minutes'), ('1 minute or 1 hour', '1 minute or 1 hour'), ('up to 1 hour', 'up to 1 hour'), ('1 hour', '1 hour'), ('1 hour or until triggered', '1 hour or until triggered'), ('2 hours', '2 hours'), ('3 hours', '3 hours'), ('1d10 hours', '1d10 hours'), ('6 hours', '6 hours'), ('2-12 hours', '2-12 hours'), ('up to 8 hours', 'up to 8 hours'), ('8 hours', '8 hours'), ('1 hour/caster level', '1 hour/caster level'), ('10 hours', '10 hours'), ('12 hours', '12 hours'), ('24 hours or until the target attempts a third death saving throw', '24 hours or until the target attempts a third death saving throw'), ('24 hours', '24 hours'), ('1 day', '1 day'), ('3 days', '3 days'), ('5 days', '5 days'), ('7 days', '7 days'), ('10 days', '10 days'), ('13 days', '13 days'), ('30 days', '30 days'), ('1 year', '1 year'), ('special', 'special'), ('until dispelled or destroyed', 'until dispelled or destroyed'), ('until destroyed', 'until destroyed'), ('until dispelled', 'until dispelled'), ('until cured or dispelled', 'until cured or dispelled'), ('until dispelled or triggered', 'until dispelled or triggered'), ('permanent until discharged', 'permanent until discharged'), ('permanent; one generation', 'permanent; one generation'), ('permanent', 'permanent')], help_text='Description of the duration of the effect such as "instantaneous" or "1 minute"'), + ), + migrations.AlterField( + model_name='spell', + name='higher_level', + field=models.TextField(blank=True, help_text='Description of casting the spell at a different level.'), + ), + migrations.AlterField( + model_name='spell', + name='range', + field=models.FloatField(blank=True, help_text='Used to measure distance.', null=True, validators=[django.core.validators.MinValueValidator(0)]), + ), + migrations.AlterField( + model_name='spell', + name='range_unit', + field=models.CharField(blank=True, choices=[('feet', 'feet'), ('miles', 'miles')], help_text='What distance unit the relevant field uses.', max_length=20, null=True), + ), + migrations.AlterField( + model_name='spell', + name='shape_size', + field=models.FloatField(blank=True, help_text='Used to measure distance.', null=True, validators=[django.core.validators.MinValueValidator(0)]), + ), + migrations.AlterField( + model_name='spell', + name='shape_size_unit', + field=models.CharField(blank=True, choices=[('feet', 'feet'), ('miles', 'miles')], help_text='What distance unit the relevant field uses.', max_length=20, null=True), + ), + migrations.AlterField( + model_name='spell', + name='shape_type', + field=models.TextField(blank=True, choices=[('cone', 'Cone'), ('cube', 'Cube'), ('cylinder', 'Cylinder'), ('line', 'Line'), ('sphere', 'sphere')], help_text='The shape of the area of effect.', null=True), + ), + ] diff --git a/api_v2/models/abilities.py b/api_v2/models/abilities.py index a6578d7e..e391649a 100644 --- a/api_v2/models/abilities.py +++ b/api_v2/models/abilities.py @@ -34,6 +34,7 @@ def ability_modifier(score): # Define a field representing a saving throw def saving_throw_field(help_text): return models.SmallIntegerField( + blank=True, null=True, validators=[ MinValueValidator(SAVING_THROW_MINIMUM), @@ -43,6 +44,7 @@ def saving_throw_field(help_text): # Define a field representing a skill bonus def skill_bonus_field(help_text): return models.SmallIntegerField( + blank=True, null=True, validators=[ MinValueValidator(SKILL_BONUS_MINIMUM), diff --git a/data/v2/wizards-of-the-coast/srd/Creature.json b/data/v2/wizards-of-the-coast/srd/Creature.json index 389cbdca..3f1d9e60 100644 --- a/data/v2/wizards-of-the-coast/srd/Creature.json +++ b/data/v2/wizards-of-the-coast/srd/Creature.json @@ -40,13 +40,13 @@ "weight": "0.000", "armor_class": 17, "hit_points": 135, - "walk": 0.0, + "walk": 10.0, "unit": null, "hover": false, "fly": null, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "aberration", "category": "Monsters", "alignment": "lawful evil" @@ -93,13 +93,13 @@ "weight": "0.000", "armor_class": 19, "hit_points": 195, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters; Dragons, Chromatic", "alignment": "chaotic evil" @@ -146,11 +146,11 @@ "weight": "0.000", "armor_class": 19, "hit_points": 225, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, - "burrow": null, + "fly": 80.0, + "burrow": 30.0, "climb": null, "swim": null, "type": "dragon", @@ -199,11 +199,11 @@ "weight": "0.000", "armor_class": 18, "hit_points": 172, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, - "burrow": null, + "fly": 80.0, + "burrow": 40.0, "climb": null, "swim": null, "type": "dragon", @@ -252,13 +252,13 @@ "weight": "0.000", "armor_class": 19, "hit_points": 212, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters; Dragons, Metallic", "alignment": "lawful good" @@ -305,12 +305,12 @@ "weight": "0.000", "armor_class": 18, "hit_points": 184, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, - "climb": null, + "climb": 40.0, "swim": null, "type": "dragon", "category": "Monsters; Dragons, Metallic", @@ -358,13 +358,13 @@ "weight": "0.000", "armor_class": 19, "hit_points": 256, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters; Dragons, Metallic", "alignment": "lawful good" @@ -411,13 +411,13 @@ "weight": "0.000", "armor_class": 19, "hit_points": 207, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters; Dragons, Chromatic", "alignment": "lawful evil" @@ -464,12 +464,12 @@ "weight": "0.000", "armor_class": 19, "hit_points": 256, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, - "climb": null, + "climb": 40.0, "swim": null, "type": "dragon", "category": "Monsters; Dragons, Chromatic", @@ -517,10 +517,10 @@ "weight": "0.000", "armor_class": 19, "hit_points": 243, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, "swim": null, @@ -570,13 +570,13 @@ "weight": "0.000", "armor_class": 18, "hit_points": 200, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, - "burrow": null, + "fly": 80.0, + "burrow": 30.0, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters; Dragons, Chromatic", "alignment": "chaotic evil" @@ -625,8 +625,8 @@ "hit_points": 90, "walk": 0.0, "unit": null, - "hover": false, - "fly": null, + "hover": true, + "fly": 90.0, "burrow": null, "climb": null, "swim": null, @@ -676,13 +676,13 @@ "weight": "0.000", "armor_class": 22, "hit_points": 367, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters; Dragons, Chromatic", "alignment": "chaotic evil" @@ -729,11 +729,11 @@ "weight": "0.000", "armor_class": 22, "hit_points": 481, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, - "burrow": null, + "fly": 80.0, + "burrow": 40.0, "climb": null, "swim": null, "type": "dragon", @@ -782,11 +782,11 @@ "weight": "0.000", "armor_class": 20, "hit_points": 297, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, - "burrow": null, + "fly": 80.0, + "burrow": 40.0, "climb": null, "swim": null, "type": "dragon", @@ -835,13 +835,13 @@ "weight": "0.000", "armor_class": 22, "hit_points": 444, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters; Dragons, Metallic", "alignment": "lawful good" @@ -888,12 +888,12 @@ "weight": "0.000", "armor_class": 21, "hit_points": 350, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, - "climb": null, + "climb": 40.0, "swim": null, "type": "dragon", "category": "Monsters; Dragons, Metallic", @@ -941,13 +941,13 @@ "weight": "0.000", "armor_class": 22, "hit_points": 546, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters; Dragons, Metallic", "alignment": "lawful good" @@ -994,13 +994,13 @@ "weight": "0.000", "armor_class": 21, "hit_points": 385, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters; Dragons, Chromatic", "alignment": "lawful evil" @@ -1047,12 +1047,12 @@ "weight": "0.000", "armor_class": 22, "hit_points": 546, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, - "climb": null, + "climb": 40.0, "swim": null, "type": "dragon", "category": "Monsters; Dragons, Chromatic", @@ -1100,10 +1100,10 @@ "weight": "0.000", "armor_class": 22, "hit_points": 487, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, "swim": null, @@ -1153,13 +1153,13 @@ "weight": "0.000", "armor_class": 20, "hit_points": 333, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, - "burrow": null, + "fly": 80.0, + "burrow": 40.0, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters; Dragons, Chromatic", "alignment": "chaotic evil" @@ -1206,10 +1206,10 @@ "weight": "0.000", "armor_class": 17, "hit_points": 199, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, "swim": null, @@ -1259,7 +1259,7 @@ "weight": "0.000", "armor_class": 18, "hit_points": 33, - "walk": 0.0, + "walk": 25.0, "unit": null, "hover": false, "fly": null, @@ -1312,11 +1312,11 @@ "weight": "0.000", "armor_class": 14, "hit_points": 39, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, - "burrow": null, + "burrow": 10.0, "climb": null, "swim": null, "type": "monstrosity", @@ -1365,7 +1365,7 @@ "weight": "0.000", "armor_class": 17, "hit_points": 39, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -1418,10 +1418,10 @@ "weight": "0.000", "armor_class": 19, "hit_points": 262, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, "swim": null, @@ -1471,7 +1471,7 @@ "weight": "0.000", "armor_class": 15, "hit_points": 110, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -1524,7 +1524,7 @@ "weight": "0.000", "armor_class": 15, "hit_points": 52, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, "fly": null, @@ -1577,7 +1577,7 @@ "weight": "0.000", "armor_class": 13, "hit_points": 52, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -1630,12 +1630,12 @@ "weight": "0.000", "armor_class": 17, "hit_points": 168, - "walk": 0.0, + "walk": 50.0, "unit": null, "hover": false, "fly": null, "burrow": null, - "climb": null, + "climb": 40.0, "swim": null, "type": "monstrosity", "category": "Monsters", @@ -1683,13 +1683,13 @@ "weight": "0.000", "armor_class": 17, "hit_points": 33, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, - "swim": null, + "swim": 30.0, "type": "dragon", "category": "Monsters; Dragons, Chromatic", "alignment": "chaotic evil" @@ -1736,12 +1736,12 @@ "weight": "0.000", "armor_class": 7, "hit_points": 85, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, "fly": null, "burrow": null, - "climb": null, + "climb": 20.0, "swim": null, "type": "ooze", "category": "Monsters; Oozes", @@ -1789,11 +1789,11 @@ "weight": "0.000", "armor_class": 17, "hit_points": 52, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, - "burrow": null, + "fly": 60.0, + "burrow": 15.0, "climb": null, "swim": null, "type": "dragon", @@ -1842,10 +1842,10 @@ "weight": "0.000", "armor_class": 19, "hit_points": 142, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 40.0, "burrow": null, "climb": null, "swim": null, @@ -1895,11 +1895,11 @@ "weight": "0.000", "armor_class": 16, "hit_points": 16, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, - "burrow": null, + "fly": 60.0, + "burrow": 15.0, "climb": null, "swim": null, "type": "dragon", @@ -1948,13 +1948,13 @@ "weight": "0.000", "armor_class": 17, "hit_points": 32, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, - "swim": null, + "swim": 30.0, "type": "dragon", "category": "Monsters; Dragons, Metallic", "alignment": "lawful good" @@ -2001,7 +2001,7 @@ "weight": "0.000", "armor_class": 16, "hit_points": 27, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -2054,11 +2054,11 @@ "weight": "0.000", "armor_class": 17, "hit_points": 94, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, - "burrow": null, + "burrow": 40.0, "climb": null, "swim": null, "type": "monstrosity", @@ -2107,7 +2107,7 @@ "weight": "600.000", "armor_class": 9, "hit_points": 15, - "walk": 0.0, + "walk": 50.0, "unit": null, "hover": false, "fly": null, @@ -2160,7 +2160,7 @@ "weight": "0.000", "armor_class": 12, "hit_points": 45, - "walk": 0.0, + "walk": 50.0, "unit": null, "hover": false, "fly": null, @@ -2213,7 +2213,7 @@ "weight": "0.000", "armor_class": 16, "hit_points": 85, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -2266,10 +2266,10 @@ "weight": "0.000", "armor_class": 14, "hit_points": 114, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, "swim": null, @@ -2319,13 +2319,13 @@ "weight": "0.000", "armor_class": 16, "hit_points": 93, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, "burrow": null, "climb": null, - "swim": null, + "swim": 30.0, "type": "aberration", "category": "Monsters", "alignment": "chaotic evil" @@ -2372,7 +2372,7 @@ "weight": "0.000", "armor_class": 14, "hit_points": 133, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, "fly": null, @@ -2425,10 +2425,10 @@ "weight": "0.000", "armor_class": 14, "hit_points": 78, - "walk": 0.0, + "walk": 10.0, "unit": null, "hover": false, - "fly": null, + "fly": 40.0, "burrow": null, "climb": null, "swim": null, @@ -2478,7 +2478,7 @@ "weight": "0.000", "armor_class": 14, "hit_points": 200, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -2531,10 +2531,10 @@ "weight": "0.000", "armor_class": 11, "hit_points": 27, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, - "fly": null, + "fly": 40.0, "burrow": null, "climb": null, "swim": null, @@ -2584,12 +2584,12 @@ "weight": "0.000", "armor_class": 16, "hit_points": 22, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, - "climb": null, + "climb": 30.0, "swim": null, "type": "dragon", "category": "Monsters; Dragons, Metallic", @@ -2637,10 +2637,10 @@ "weight": "0.000", "armor_class": 19, "hit_points": 97, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 90.0, "burrow": null, "climb": null, "swim": null, @@ -2690,10 +2690,10 @@ "weight": "0.000", "armor_class": 11, "hit_points": 22, - "walk": 0.0, + "walk": 10.0, "unit": null, "hover": false, - "fly": null, + "fly": 30.0, "burrow": null, "climb": null, "swim": null, @@ -2743,10 +2743,10 @@ "weight": "0.000", "armor_class": 17, "hit_points": 136, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 90.0, "burrow": null, "climb": null, "swim": null, @@ -2796,10 +2796,10 @@ "weight": "0.000", "armor_class": 17, "hit_points": 161, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 90.0, "burrow": null, "climb": null, "swim": null, @@ -2902,7 +2902,7 @@ "weight": "0.000", "armor_class": 14, "hit_points": 52, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -2955,7 +2955,7 @@ "weight": "0.000", "armor_class": 10, "hit_points": 19, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -3008,13 +3008,13 @@ "weight": "0.000", "armor_class": 20, "hit_points": 341, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, "fly": null, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters", "alignment": "neutral" @@ -3061,7 +3061,7 @@ "weight": "0.000", "armor_class": 11, "hit_points": 18, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, "fly": null, @@ -3114,12 +3114,12 @@ "weight": "0.000", "armor_class": 19, "hit_points": 123, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, "burrow": null, - "climb": null, + "climb": 30.0, "swim": null, "type": "monstrosity", "category": "Monsters", @@ -3167,7 +3167,7 @@ "weight": "0.000", "armor_class": 11, "hit_points": 22, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -3220,7 +3220,7 @@ "weight": "0.000", "armor_class": 16, "hit_points": 26, - "walk": 0.0, + "walk": 25.0, "unit": null, "hover": false, "fly": null, @@ -3273,10 +3273,10 @@ "weight": "0.000", "armor_class": 12, "hit_points": 17, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 30.0, "burrow": null, "climb": null, "swim": null, @@ -3326,11 +3326,11 @@ "weight": "0.000", "armor_class": 17, "hit_points": 126, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, - "burrow": null, + "burrow": 30.0, "climb": null, "swim": null, "type": "elemental", @@ -3379,10 +3379,10 @@ "weight": "0.000", "armor_class": 17, "hit_points": 200, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, "swim": null, @@ -3432,7 +3432,7 @@ "weight": "0.000", "armor_class": 12, "hit_points": 76, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -3538,10 +3538,10 @@ "weight": "0.000", "armor_class": 18, "hit_points": 153, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, "swim": null, @@ -3591,12 +3591,12 @@ "weight": "0.000", "armor_class": 13, "hit_points": 44, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, "burrow": null, - "climb": null, + "climb": 30.0, "swim": null, "type": "monstrosity", "category": "Monsters", @@ -3644,7 +3644,7 @@ "weight": "0.000", "armor_class": 12, "hit_points": 85, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -3697,7 +3697,7 @@ "weight": "0.000", "armor_class": 13, "hit_points": 102, - "walk": 0.0, + "walk": 50.0, "unit": null, "hover": false, "fly": null, @@ -3750,7 +3750,7 @@ "weight": "0.000", "armor_class": 18, "hit_points": 162, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -3803,7 +3803,7 @@ "weight": "0.000", "armor_class": 9, "hit_points": 93, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -3858,8 +3858,8 @@ "hit_points": 17, "walk": 0.0, "unit": null, - "hover": false, - "fly": null, + "hover": true, + "fly": 50.0, "burrow": null, "climb": null, "swim": null, @@ -3909,7 +3909,7 @@ "weight": "0.000", "armor_class": 15, "hit_points": 138, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -3962,10 +3962,10 @@ "weight": "0.000", "armor_class": 15, "hit_points": 52, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, "swim": null, @@ -4015,7 +4015,7 @@ "weight": "0.000", "armor_class": 6, "hit_points": 84, - "walk": 0.0, + "walk": 15.0, "unit": null, "hover": false, "fly": null, @@ -4068,7 +4068,7 @@ "weight": "0.000", "armor_class": 13, "hit_points": 36, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -4123,8 +4123,8 @@ "hit_points": 45, "walk": 0.0, "unit": null, - "hover": false, - "fly": null, + "hover": true, + "fly": 40.0, "burrow": null, "climb": null, "swim": null, @@ -4174,7 +4174,7 @@ "weight": "0.000", "armor_class": 12, "hit_points": 22, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -4227,13 +4227,13 @@ "weight": "0.000", "armor_class": 9, "hit_points": 67, - "walk": 0.0, + "walk": 10.0, "unit": null, "hover": false, "fly": null, "burrow": null, "climb": null, - "swim": null, + "swim": 10.0, "type": "aberration", "category": "Monsters", "alignment": "neutral" @@ -4280,7 +4280,7 @@ "weight": "0.000", "armor_class": 17, "hit_points": 157, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -4333,7 +4333,7 @@ "weight": "0.000", "armor_class": 15, "hit_points": 22, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -4439,7 +4439,7 @@ "weight": "0.000", "armor_class": 15, "hit_points": 7, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -4492,13 +4492,13 @@ "weight": "0.000", "armor_class": 17, "hit_points": 60, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, - "swim": null, + "swim": 30.0, "type": "dragon", "category": "Monsters; Dragons, Metallic", "alignment": "lawful good" @@ -4545,7 +4545,7 @@ "weight": "0.000", "armor_class": 19, "hit_points": 114, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -4598,12 +4598,12 @@ "weight": "0.000", "armor_class": 8, "hit_points": 22, - "walk": 0.0, + "walk": 10.0, "unit": null, "hover": false, "fly": null, "burrow": null, - "climb": null, + "climb": 10.0, "swim": null, "type": "ooze", "category": "Monsters; Oozes", @@ -4651,13 +4651,13 @@ "weight": "0.000", "armor_class": 17, "hit_points": 38, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, - "swim": null, + "swim": 30.0, "type": "dragon", "category": "Monsters; Dragons, Chromatic", "alignment": "lawful evil" @@ -4704,7 +4704,7 @@ "weight": "0.000", "armor_class": 17, "hit_points": 82, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -4757,12 +4757,12 @@ "weight": "0.000", "armor_class": 14, "hit_points": 27, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, "burrow": null, - "climb": null, + "climb": 30.0, "swim": null, "type": "monstrosity", "category": "Monsters", @@ -4810,10 +4810,10 @@ "weight": "0.000", "armor_class": 12, "hit_points": 59, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, "swim": null, @@ -4863,7 +4863,7 @@ "weight": "0.000", "armor_class": 11, "hit_points": 11, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -4916,7 +4916,7 @@ "weight": "0.000", "armor_class": 18, "hit_points": 127, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -4969,10 +4969,10 @@ "weight": "0.000", "armor_class": 17, "hit_points": 136, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, "swim": null, @@ -5022,7 +5022,7 @@ "weight": "0.000", "armor_class": 18, "hit_points": 65, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -5075,10 +5075,10 @@ "weight": "0.000", "armor_class": 11, "hit_points": 38, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, - "fly": null, + "fly": 40.0, "burrow": null, "climb": null, "swim": null, @@ -5128,7 +5128,7 @@ "weight": "0.000", "armor_class": 15, "hit_points": 45, - "walk": 0.0, + "walk": 50.0, "unit": null, "hover": false, "fly": null, @@ -5181,7 +5181,7 @@ "weight": "0.000", "armor_class": 16, "hit_points": 136, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -5234,7 +5234,7 @@ "weight": "0.000", "armor_class": 13, "hit_points": 105, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -5287,10 +5287,10 @@ "weight": "0.000", "armor_class": 11, "hit_points": 19, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, "swim": null, @@ -5340,7 +5340,7 @@ "weight": "0.000", "armor_class": 18, "hit_points": 11, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -5393,10 +5393,10 @@ "weight": "0.000", "armor_class": 13, "hit_points": 5, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, - "fly": null, + "fly": 40.0, "burrow": null, "climb": null, "swim": null, @@ -5446,10 +5446,10 @@ "weight": "0.000", "armor_class": 18, "hit_points": 178, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, "swim": null, @@ -5499,13 +5499,13 @@ "weight": "0.000", "armor_class": 15, "hit_points": 172, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, "burrow": null, "climb": null, - "swim": null, + "swim": 30.0, "type": "monstrosity", "category": "Monsters", "alignment": "unaligned" @@ -5552,7 +5552,7 @@ "weight": "0.000", "armor_class": 18, "hit_points": 180, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -5605,10 +5605,10 @@ "weight": "0.000", "armor_class": 11, "hit_points": 21, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 30.0, "burrow": null, "climb": null, "swim": null, @@ -5658,10 +5658,10 @@ "weight": "0.000", "armor_class": 13, "hit_points": 10, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, - "fly": null, + "fly": 40.0, "burrow": null, "climb": null, "swim": null, @@ -5711,10 +5711,10 @@ "weight": "0.000", "armor_class": 14, "hit_points": 104, - "walk": 0.0, + "walk": 50.0, "unit": null, - "hover": false, - "fly": null, + "hover": true, + "fly": 50.0, "burrow": null, "climb": null, "swim": null, @@ -5764,7 +5764,7 @@ "weight": "0.000", "armor_class": 20, "hit_points": 210, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -5817,7 +5817,7 @@ "weight": "0.000", "armor_class": 12, "hit_points": 5, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -5870,13 +5870,13 @@ "weight": "0.000", "armor_class": 18, "hit_points": 472, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, "fly": null, "burrow": null, "climb": null, - "swim": null, + "swim": 60.0, "type": "monstrosity", "category": "Monsters", "alignment": "chaotic evil" @@ -5923,7 +5923,7 @@ "weight": "0.000", "armor_class": 13, "hit_points": 97, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -5976,7 +5976,7 @@ "weight": "0.000", "armor_class": 7, "hit_points": 13, - "walk": 0.0, + "walk": 15.0, "unit": null, "hover": false, "fly": null, @@ -6029,7 +6029,7 @@ "weight": "0.000", "armor_class": 17, "hit_points": 135, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -6082,13 +6082,13 @@ "weight": "0.000", "armor_class": 15, "hit_points": 22, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, "burrow": null, "climb": null, - "swim": null, + "swim": 30.0, "type": "humanoid", "category": "Monsters", "alignment": "neutral" @@ -6135,10 +6135,10 @@ "weight": "0.000", "armor_class": 11, "hit_points": 22, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 30.0, "burrow": null, "climb": null, "swim": null, @@ -6188,7 +6188,7 @@ "weight": "0.000", "armor_class": 14, "hit_points": 9, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -6241,10 +6241,10 @@ "weight": "0.000", "armor_class": 14, "hit_points": 68, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 50.0, "burrow": null, "climb": null, "swim": null, @@ -6294,7 +6294,7 @@ "weight": "0.000", "armor_class": 18, "hit_points": 189, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -6347,7 +6347,7 @@ "weight": "0.000", "armor_class": 12, "hit_points": 5, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -6400,7 +6400,7 @@ "weight": "0.000", "armor_class": 15, "hit_points": 127, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -6453,13 +6453,13 @@ "weight": "0.000", "armor_class": 11, "hit_points": 11, - "walk": 0.0, + "walk": 10.0, "unit": null, "hover": false, "fly": null, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "humanoid", "category": "Monsters", "alignment": "neutral" @@ -6506,13 +6506,13 @@ "weight": "0.000", "armor_class": 13, "hit_points": 45, - "walk": 0.0, + "walk": 10.0, "unit": null, "hover": false, "fly": null, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "monstrosity", "category": "Monsters", "alignment": "chaotic evil" @@ -6559,7 +6559,7 @@ "weight": "0.000", "armor_class": 12, "hit_points": 58, - "walk": 0.0, + "walk": 15.0, "unit": null, "hover": false, "fly": null, @@ -6612,7 +6612,7 @@ "weight": "0.000", "armor_class": 14, "hit_points": 76, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -6665,7 +6665,7 @@ "weight": "0.000", "armor_class": 12, "hit_points": 67, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -6718,7 +6718,7 @@ "weight": "0.000", "armor_class": 10, "hit_points": 11, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -6771,7 +6771,7 @@ "weight": "0.000", "armor_class": 11, "hit_points": 58, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, "fly": null, @@ -6824,7 +6824,7 @@ "weight": "0.000", "armor_class": 17, "hit_points": 97, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, "fly": null, @@ -6877,10 +6877,10 @@ "weight": "0.000", "armor_class": 18, "hit_points": 184, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, - "fly": null, + "fly": 30.0, "burrow": null, "climb": null, "swim": null, @@ -6930,7 +6930,7 @@ "weight": "0.000", "armor_class": 17, "hit_points": 112, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -6983,10 +6983,10 @@ "weight": "0.000", "armor_class": 13, "hit_points": 68, - "walk": 0.0, + "walk": 60.0, "unit": null, "hover": false, - "fly": null, + "fly": 90.0, "burrow": null, "climb": null, "swim": null, @@ -7036,12 +7036,12 @@ "weight": "0.000", "armor_class": 8, "hit_points": 45, - "walk": 0.0, + "walk": 10.0, "unit": null, "hover": false, "fly": null, "burrow": null, - "climb": null, + "climb": 10.0, "swim": null, "type": "ooze", "category": "Monsters; Oozes", @@ -7089,7 +7089,7 @@ "weight": "0.000", "armor_class": 11, "hit_points": 59, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -7142,7 +7142,7 @@ "weight": "0.000", "armor_class": 8, "hit_points": 85, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -7195,10 +7195,10 @@ "weight": "0.000", "armor_class": 16, "hit_points": 110, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 30.0, "burrow": null, "climb": null, "swim": null, @@ -7248,7 +7248,7 @@ "weight": "0.000", "armor_class": 13, "hit_points": 15, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -7301,7 +7301,7 @@ "weight": "0.000", "armor_class": 14, "hit_points": 114, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -7354,7 +7354,7 @@ "weight": "0.000", "armor_class": 13, "hit_points": 59, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -7407,10 +7407,10 @@ "weight": "0.000", "armor_class": 12, "hit_points": 59, - "walk": 0.0, + "walk": 60.0, "unit": null, "hover": false, - "fly": null, + "fly": 90.0, "burrow": null, "climb": null, "swim": null, @@ -7460,10 +7460,10 @@ "weight": "0.000", "armor_class": 19, "hit_points": 300, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, "swim": null, @@ -7513,10 +7513,10 @@ "weight": "0.000", "armor_class": 19, "hit_points": 200, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 120.0, "burrow": null, "climb": null, "swim": null, @@ -7566,13 +7566,13 @@ "weight": "0.000", "armor_class": 13, "hit_points": 68, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, "fly": null, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "beast", "category": "Monsters; Dinosaurs", "alignment": "unaligned" @@ -7619,7 +7619,7 @@ "weight": "0.000", "armor_class": 10, "hit_points": 11, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -7672,10 +7672,10 @@ "weight": "0.000", "armor_class": 13, "hit_points": 7, - "walk": 0.0, + "walk": 15.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, "swim": null, @@ -7725,11 +7725,11 @@ "weight": "0.000", "armor_class": 18, "hit_points": 247, - "walk": 0.0, + "walk": 50.0, "unit": null, "hover": false, "fly": null, - "burrow": null, + "burrow": 30.0, "climb": null, "swim": null, "type": "monstrosity", @@ -7778,7 +7778,7 @@ "weight": "0.000", "armor_class": 13, "hit_points": 7, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -7831,7 +7831,7 @@ "weight": "0.000", "armor_class": 16, "hit_points": 110, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -7884,12 +7884,12 @@ "weight": "0.000", "armor_class": 17, "hit_points": 75, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, - "climb": null, + "climb": 30.0, "swim": null, "type": "dragon", "category": "Monsters; Dragons, Chromatic", @@ -7937,11 +7937,11 @@ "weight": "0.000", "armor_class": 17, "hit_points": 195, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, - "burrow": null, + "burrow": 20.0, "climb": null, "swim": null, "type": "monstrosity", @@ -7990,7 +7990,7 @@ "weight": "0.000", "armor_class": 10, "hit_points": 13, - "walk": 0.0, + "walk": 60.0, "unit": null, "hover": false, "fly": null, @@ -8043,10 +8043,10 @@ "weight": "0.000", "armor_class": 15, "hit_points": 248, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, - "fly": null, + "fly": 120.0, "burrow": null, "climb": null, "swim": null, @@ -8096,12 +8096,12 @@ "weight": "0.000", "armor_class": 20, "hit_points": 93, - "walk": 0.0, + "walk": 10.0, "unit": null, "hover": false, "fly": null, "burrow": null, - "climb": null, + "climb": 10.0, "swim": null, "type": "monstrosity", "category": "Monsters", @@ -8149,7 +8149,7 @@ "weight": "0.000", "armor_class": 12, "hit_points": 33, - "walk": 0.0, + "walk": 10.0, "unit": null, "hover": false, "fly": null, @@ -8202,7 +8202,7 @@ "weight": "0.000", "armor_class": 14, "hit_points": 27, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -8255,13 +8255,13 @@ "weight": "0.000", "armor_class": 12, "hit_points": 22, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "humanoid", "category": "Monsters", "alignment": "lawful evil" @@ -8308,7 +8308,7 @@ "weight": "0.000", "armor_class": 15, "hit_points": 90, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -8361,7 +8361,7 @@ "weight": "0.000", "armor_class": 14, "hit_points": 31, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -8414,13 +8414,13 @@ "weight": "0.000", "armor_class": 14, "hit_points": 52, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "fey", "category": "Monsters; Hags", "alignment": "chaotic evil" @@ -8467,7 +8467,7 @@ "weight": "0.000", "armor_class": 12, "hit_points": 16, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -8520,13 +8520,13 @@ "weight": "0.000", "armor_class": 15, "hit_points": 136, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, "fly": null, "burrow": null, "climb": null, - "swim": null, + "swim": 20.0, "type": "plant", "category": "Monsters", "alignment": "unaligned" @@ -8573,7 +8573,7 @@ "weight": "0.000", "armor_class": 17, "hit_points": 142, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -8679,10 +8679,10 @@ "weight": "0.000", "armor_class": 17, "hit_points": 45, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, "swim": null, @@ -8732,7 +8732,7 @@ "weight": "0.000", "armor_class": 13, "hit_points": 13, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -8785,10 +8785,10 @@ "weight": "0.000", "armor_class": 21, "hit_points": 243, - "walk": 0.0, + "walk": 50.0, "unit": null, "hover": false, - "fly": null, + "fly": 150.0, "burrow": null, "climb": null, "swim": null, @@ -8840,8 +8840,8 @@ "hit_points": 22, "walk": 0.0, "unit": null, - "hover": false, - "fly": null, + "hover": true, + "fly": 50.0, "burrow": null, "climb": null, "swim": null, @@ -8891,7 +8891,7 @@ "weight": "0.000", "armor_class": 15, "hit_points": 75, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -8944,10 +8944,10 @@ "weight": "0.000", "armor_class": 15, "hit_points": 2, - "walk": 0.0, + "walk": 10.0, "unit": null, "hover": false, - "fly": null, + "fly": 40.0, "burrow": null, "climb": null, "swim": null, @@ -8997,10 +8997,10 @@ "weight": "0.000", "armor_class": 10, "hit_points": 21, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 30.0, "burrow": null, "climb": null, "swim": null, @@ -9050,10 +9050,10 @@ "weight": "0.000", "armor_class": 14, "hit_points": 2, - "walk": 0.0, + "walk": 10.0, "unit": null, "hover": false, - "fly": null, + "fly": 40.0, "burrow": null, "climb": null, "swim": null, @@ -9103,7 +9103,7 @@ "weight": "0.000", "armor_class": 17, "hit_points": 126, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -9156,7 +9156,7 @@ "weight": "0.000", "armor_class": 17, "hit_points": 178, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -9209,13 +9209,13 @@ "weight": "0.000", "armor_class": 16, "hit_points": 230, - "walk": 0.0, + "walk": 50.0, "unit": null, "hover": false, "fly": null, "burrow": null, "climb": null, - "swim": null, + "swim": 50.0, "type": "giant", "category": "Monsters; Giants", "alignment": "chaotic good" @@ -9262,10 +9262,10 @@ "weight": "0.000", "armor_class": 15, "hit_points": 66, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, "swim": null, @@ -9315,7 +9315,7 @@ "weight": "0.000", "armor_class": 25, "hit_points": 676, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, "fly": null, @@ -9368,7 +9368,7 @@ "weight": "0.000", "armor_class": 16, "hit_points": 138, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -9421,7 +9421,7 @@ "weight": "0.000", "armor_class": 13, "hit_points": 95, - "walk": 0.0, + "walk": 50.0, "unit": null, "hover": false, "fly": null, @@ -9474,7 +9474,7 @@ "weight": "0.000", "armor_class": 15, "hit_points": 84, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -9527,7 +9527,7 @@ "weight": "0.000", "armor_class": 13, "hit_points": 136, - "walk": 0.0, + "walk": 50.0, "unit": null, "hover": false, "fly": null, @@ -9580,7 +9580,7 @@ "weight": "0.000", "armor_class": 12, "hit_points": 67, - "walk": 0.0, + "walk": 50.0, "unit": null, "hover": false, "fly": null, @@ -9633,7 +9633,7 @@ "weight": "0.000", "armor_class": 16, "hit_points": 144, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -9686,7 +9686,7 @@ "weight": "0.000", "armor_class": 15, "hit_points": 82, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -9739,7 +9739,7 @@ "weight": "0.000", "armor_class": 5, "hit_points": 18, - "walk": 0.0, + "walk": 5.0, "unit": null, "hover": false, "fly": null, @@ -9792,10 +9792,10 @@ "weight": "0.000", "armor_class": 15, "hit_points": 104, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 60.0, "burrow": null, "climb": null, "swim": null, @@ -9845,7 +9845,7 @@ "weight": "0.000", "armor_class": 11, "hit_points": 19, - "walk": 0.0, + "walk": 60.0, "unit": null, "hover": false, "fly": null, @@ -9898,7 +9898,7 @@ "weight": "0.000", "armor_class": 13, "hit_points": 22, - "walk": 0.0, + "walk": 60.0, "unit": null, "hover": false, "fly": null, @@ -9951,13 +9951,13 @@ "weight": "0.000", "armor_class": 14, "hit_points": 114, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, "burrow": null, "climb": null, - "swim": null, + "swim": 90.0, "type": "elemental", "category": "Monsters; Elementals", "alignment": "neutral" @@ -10004,7 +10004,7 @@ "weight": "0.000", "armor_class": 10, "hit_points": 135, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -10057,7 +10057,7 @@ "weight": "0.000", "armor_class": 10, "hit_points": 78, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -10110,7 +10110,7 @@ "weight": "0.000", "armor_class": 12, "hit_points": 33, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -10163,7 +10163,7 @@ "weight": "0.000", "armor_class": 12, "hit_points": 120, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -10216,7 +10216,7 @@ "weight": "0.000", "armor_class": 11, "hit_points": 58, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -10269,13 +10269,13 @@ "weight": "0.000", "armor_class": 16, "hit_points": 32, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, - "fly": null, - "burrow": null, + "fly": 60.0, + "burrow": 15.0, "climb": null, - "swim": null, + "swim": 30.0, "type": "dragon", "category": "Monsters; Dragons, Chromatic", "alignment": "chaotic evil" @@ -10322,7 +10322,7 @@ "weight": "0.000", "armor_class": 14, "hit_points": 45, - "walk": 0.0, + "walk": 30.0, "unit": null, "hover": false, "fly": null, @@ -10377,8 +10377,8 @@ "hit_points": 22, "walk": 0.0, "unit": null, - "hover": false, - "fly": null, + "hover": true, + "fly": 50.0, "burrow": null, "climb": null, "swim": null, @@ -10430,8 +10430,8 @@ "hit_points": 67, "walk": 0.0, "unit": null, - "hover": false, - "fly": null, + "hover": true, + "fly": 60.0, "burrow": null, "climb": null, "swim": null, @@ -10481,10 +10481,10 @@ "weight": "0.000", "armor_class": 13, "hit_points": 110, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, "swim": null, @@ -10534,11 +10534,11 @@ "weight": "0.000", "armor_class": 19, "hit_points": 73, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, "fly": null, - "burrow": null, + "burrow": 20.0, "climb": null, "swim": null, "type": "elemental", @@ -10587,13 +10587,13 @@ "weight": "0.000", "armor_class": 18, "hit_points": 127, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters; Dragons, Chromatic", "alignment": "chaotic evil" @@ -10640,11 +10640,11 @@ "weight": "0.000", "armor_class": 18, "hit_points": 152, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, - "burrow": null, + "fly": 80.0, + "burrow": 40.0, "climb": null, "swim": null, "type": "dragon", @@ -10693,11 +10693,11 @@ "weight": "0.000", "armor_class": 17, "hit_points": 110, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, - "burrow": null, + "fly": 80.0, + "burrow": 20.0, "climb": null, "swim": null, "type": "dragon", @@ -10746,13 +10746,13 @@ "weight": "0.000", "armor_class": 18, "hit_points": 142, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters; Dragons, Metallic", "alignment": "lawful good" @@ -10799,12 +10799,12 @@ "weight": "0.000", "armor_class": 17, "hit_points": 119, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, - "climb": null, + "climb": 40.0, "swim": null, "type": "dragon", "category": "Monsters; Dragons, Metallic", @@ -10852,13 +10852,13 @@ "weight": "0.000", "armor_class": 18, "hit_points": 178, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters; Dragons, Metallic", "alignment": "lawful good" @@ -10905,13 +10905,13 @@ "weight": "0.000", "armor_class": 18, "hit_points": 136, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters; Dragons, Chromatic", "alignment": "lawful evil" @@ -10958,12 +10958,12 @@ "weight": "0.000", "armor_class": 18, "hit_points": 178, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, - "climb": null, + "climb": 40.0, "swim": null, "type": "dragon", "category": "Monsters; Dragons, Chromatic", @@ -11011,10 +11011,10 @@ "weight": "0.000", "armor_class": 18, "hit_points": 168, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, + "fly": 80.0, "burrow": null, "climb": null, "swim": null, @@ -11064,13 +11064,13 @@ "weight": "0.000", "armor_class": 17, "hit_points": 133, - "walk": 0.0, + "walk": 40.0, "unit": null, "hover": false, - "fly": null, - "burrow": null, + "fly": 80.0, + "burrow": 20.0, "climb": null, - "swim": null, + "swim": 40.0, "type": "dragon", "category": "Monsters; Dragons, Chromatic", "alignment": "chaotic evil" @@ -11117,7 +11117,7 @@ "weight": "0.000", "armor_class": 8, "hit_points": 22, - "walk": 0.0, + "walk": 20.0, "unit": null, "hover": false, "fly": null, diff --git a/scripts/data_manipulation/v1_to_v2_data.py b/scripts/data_manipulation/v1_to_v2_data.py index 2d7a6369..1174f855 100644 --- a/scripts/data_manipulation/v1_to_v2_data.py +++ b/scripts/data_manipulation/v1_to_v2_data.py @@ -1,8 +1,10 @@ from django.template.defaultfilters import slugify -from api.models import Spell as v1_model -from api_v2.models import Spell as v2_model +import json + +from api.models import Monster as v1_model +from api_v2.models import Creature as v2_model # Transformation function. @@ -29,13 +31,15 @@ def main(): ### START LOGIC FOR PARSING V1 DATA ### - _do_spell_distance(obj_v2=obj_v2) - _do_duration_remap(obj_v2=obj_v2) + if obj_v2 is not None: + copy_v2_speed_from_v1_creature(v1_obj=obj_v1, v2_obj=obj_v2) + obj_v2.full_clean() + obj_v2.save() ### DO VALIDATION OF THE OBJECT - obj_v2.full_clean() + #obj_v2.full_clean() # CAREFUL - obj_v2.save() + # END CAREFUL @@ -90,6 +94,33 @@ def get_v2_doc_from_v1_obj(v1_obj): } return doc_lookup[v1_obj.document.slug] +def copy_v2_speed_from_v1_creature(v1_obj, v2_obj): + assert('walk' in v1_obj.speed_json) + v2_obj.walk = float(json.loads(v1_obj.speed_json)['walk']) + + if v1_obj.slug == 'werebear': # This should be split into multiple creature entries. + v2_obj.walk = 30.0 + return + + if 'hover' in v1_obj.speed_json: + v2_obj.hover = True + + if 'fly' in v1_obj.speed_json: + v2_obj.fly = float(json.loads(v1_obj.speed_json)['fly']) + + if 'burrow' in v1_obj.speed_json: + v2_obj.burrow = float(json.loads(v1_obj.speed_json)['burrow']) + + if 'climb' in v1_obj.speed_json: + v2_obj.climb = float(json.loads(v1_obj.speed_json)['climb']) + + if 'swim' in v1_obj.speed_json: + v2_obj.swim = float(json.loads(v1_obj.speed_json)['swim']) + + if v1_obj.slug == 'werebear': + v2_obj.walk = 30.0 + + def get_distance_and_unit_from_range_text(spell): if spell.range_text == 'Self': return (0,None)