Weapons. Migrations.

This commit is contained in:
tcaxle
2020-04-11 14:01:52 +01:00
parent 54ab35444e
commit 7b76481d1d
30 changed files with 988 additions and 3 deletions

View File

@@ -0,0 +1,34 @@
# Generated by Django 3.0.5 on 2020-04-11 13:01
import app.models
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('app', '0008_auto_20200411_1255'),
]
operations = [
migrations.AddField(
model_name='itemweaponmelee',
name='category',
field=app.models.SingleChoiceField(blank=True, choices=[('L', 'Light'), ('M', 'Medium'), ('H', 'Heavy')], max_length=100, verbose_name='Category'),
),
migrations.AddField(
model_name='itemweaponmelee',
name='tags',
field=app.models.MultiChoiceField(blank=True, choices=[('General', (('ONE HANDED', 'One Handed'), ('TWO HANDED', 'Two Handed'), ('BASHING', 'Bashing'), ('CONCEALABLE', 'Concealable'), ('LETHAL', 'Lethal'), ('MOUNTED', 'Mounted'), ('PIERCING', 'Piercing'), ('SPECIAL', 'Special'))), ('Melee', (('MELEE', 'Melee'), ('BALANCED', 'Balanced'), ('BRAWL', 'Brawl'), ('CHOPPING', 'Chopping'), ('DISARMING', 'Disarming'), ('FLEXIBLE', 'Flexible'), ('IMPROVISED', 'Improvised'), ('GRAPPLING', 'Grappling'), ('MARTIAL ARTS', 'Martial Arts'), ('NATURAL', 'Natural'), ('REACHING', 'Reaching'), ('SHIELD', 'Shield'), ('SMASHING', 'Smashing'), ('WORN', 'Worn'))), ('Thrown', (('THROWN', 'Occult'), ('CUTTING', 'Cutting'), ('POISONABLE', 'Poisonable'), ('SUBTLE', 'Subtle'))), ('Archery', (('ARCHERY', 'Archery'), ('CROSSBOW', 'Crossbow'), ('FLAME', 'Flame'), ('POWERFUL', 'Powerful'), ('SLOW', 'Slow')))], max_length=100, verbose_name='Tags'),
),
migrations.AddField(
model_name='itemweaponranged',
name='category',
field=app.models.SingleChoiceField(blank=True, choices=[('L', 'Light'), ('M', 'Medium'), ('H', 'Heavy')], max_length=100, verbose_name='Category'),
),
migrations.AddField(
model_name='itemweaponranged',
name='tags',
field=app.models.MultiChoiceField(blank=True, choices=[('General', (('ONE HANDED', 'One Handed'), ('TWO HANDED', 'Two Handed'), ('BASHING', 'Bashing'), ('CONCEALABLE', 'Concealable'), ('LETHAL', 'Lethal'), ('MOUNTED', 'Mounted'), ('PIERCING', 'Piercing'), ('SPECIAL', 'Special'))), ('Melee', (('MELEE', 'Melee'), ('BALANCED', 'Balanced'), ('BRAWL', 'Brawl'), ('CHOPPING', 'Chopping'), ('DISARMING', 'Disarming'), ('FLEXIBLE', 'Flexible'), ('IMPROVISED', 'Improvised'), ('GRAPPLING', 'Grappling'), ('MARTIAL ARTS', 'Martial Arts'), ('NATURAL', 'Natural'), ('REACHING', 'Reaching'), ('SHIELD', 'Shield'), ('SMASHING', 'Smashing'), ('WORN', 'Worn'))), ('Thrown', (('THROWN', 'Occult'), ('CUTTING', 'Cutting'), ('POISONABLE', 'Poisonable'), ('SUBTLE', 'Subtle'))), ('Archery', (('ARCHERY', 'Archery'), ('CROSSBOW', 'Crossbow'), ('FLAME', 'Flame'), ('POWERFUL', 'Powerful'), ('SLOW', 'Slow')))], max_length=100, verbose_name='Tags'),
),
]

View File

@@ -1,4 +1,5 @@
from django.db import models
import multiselectfield
#==============================================================================#
#-------------------------------- OPTION LISTS --------------------------------#
@@ -87,7 +88,7 @@ CATEGORIES = [
("H", "Heavy"),
]
TAGS_WEAPON = [
TAGS_WEAPONS = [
(
"General", (
("ONE HANDED", "One Handed"),
@@ -181,6 +182,14 @@ class SingleChoiceField(models.CharField):
kwargs['max_length'] = 100
super().__init__(*args, **kwargs)
class MultiChoiceField(multiselectfield.MultiSelectField):
def __init__(self, verbose_name, choices, *args, **kwargs):
kwargs['verbose_name'] = verbose_name
kwargs['choices'] = choices
kwargs['blank'] = True
kwargs['max_length'] = 100
super().__init__(*args, **kwargs)
class NamedIntegerField(models.IntegerField):
def __init__(self, verbose_name, desc=None, *args, **kwargs):
kwargs['verbose_name'] = verbose_name
@@ -196,6 +205,7 @@ class NamedCharField(models.CharField):
kwargs['max_length'] = 100
super().__init__(*args, **kwargs)
#==============================================================================#
#--------------------------------- MODIFIERS ----------------------------------#
#==============================================================================#
@@ -233,8 +243,8 @@ class itemWeaponBase(itemBase):
class Meta:
abstract = True
# category
# tags
category = SingleChoiceField("Category", CATEGORIES)
tags = MultiChoiceField("Tags", TAGS_WEAPONS)
accuracy = NamedIntegerField("Accuracy")
damage = NamedIntegerField("Damage")
defense = NamedIntegerField("Defense")