From ba03fd80b462832f450893cb8c75529c6a020266 Mon Sep 17 00:00:00 2001
From: tcaxle
Date: Thu, 16 Apr 2020 00:07:58 +0100
Subject: [PATCH] Big prog
---
app/admin.py | 1 +
app/migrations/0001_initial.py | 76 +++----
app/migrations/0002_auto_20200415_2109.py | 24 +++
.../0002_characterexaltbase_motescommitted.py | 19 --
app/migrations/0003_auto_20200415_1929.py | 38 ----
app/models.py | 48 ++++-
exalted/settings.py | 2 +-
templates/characterDetail.html | 197 ++++++++++++++----
8 files changed, 253 insertions(+), 152 deletions(-)
create mode 100644 app/migrations/0002_auto_20200415_2109.py
delete mode 100644 app/migrations/0002_characterexaltbase_motescommitted.py
delete mode 100644 app/migrations/0003_auto_20200415_1929.py
diff --git a/app/admin.py b/app/admin.py
index a0cee05..3a0901a 100644
--- a/app/admin.py
+++ b/app/admin.py
@@ -16,6 +16,7 @@ admin.site.register(charmSolar)
admin.site.register(charmLunar)
admin.site.register(charmLunarShape)
admin.site.register(charmEvocation)
+admin.site.register(charmMartialArt)
admin.site.register(merit)
diff --git a/app/migrations/0001_initial.py b/app/migrations/0001_initial.py
index ba244ae..07d9ff9 100644
--- a/app/migrations/0001_initial.py
+++ b/app/migrations/0001_initial.py
@@ -1,4 +1,4 @@
-# Generated by Django 3.0.5 on 2020-04-13 00:12
+# Generated by Django 3.0.5 on 2020-04-15 20:45
import app.models
from django.db import migrations, models
@@ -90,6 +90,7 @@ class Migration(migrations.Migration):
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('description', app.models.DescriptionField(blank=True, max_length=1000, verbose_name='Description')),
('intensity', app.models.SingleChoiceField(blank=True, choices=[('Minor', 'Minor'), ('Major', 'Major'), ('Defining', 'Defining')], max_length=100, verbose_name='Intensity')),
+ ('character', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='intimacy_set', to='app.characterBase', verbose_name='Character')),
('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_app.intimacybase_set+', to='contenttypes.ContentType')),
],
options={
@@ -144,6 +145,7 @@ class Migration(migrations.Migration):
('motesPersonal', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Personal Motes')),
('motesPeripheralMax', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Maximum Peripheral Motes')),
('motesPeripheral', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Current Peripheral Motes')),
+ ('motesCommitted', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Committed Motes')),
('limitTrigger', models.TextField(blank='False', max_length=1000, verbose_name='Limit Trigger')),
('limitBreak', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Limit Break')),
('experienceExaltedTotal', app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Total Exalted Experience')),
@@ -375,6 +377,18 @@ class Migration(migrations.Migration):
},
bases=('app.characterexaltbase',),
),
+ migrations.CreateModel(
+ name='charmEvocation',
+ fields=[
+ ('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')),
+ ('key', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.itemBase', verbose_name='Artifact')),
+ ],
+ options={
+ 'abstract': False,
+ 'base_manager_name': 'objects',
+ },
+ bases=('app.charmbase',),
+ ),
migrations.CreateModel(
name='charmLunar',
fields=[
@@ -517,24 +531,11 @@ class Migration(migrations.Migration):
bases=('app.ownershipbase',),
),
migrations.CreateModel(
- name='ownershipIntimacyTie',
+ name='ownershipCharmSolar',
fields=[
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
- ('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipIntimacyTie_set', to='app.characterBase', verbose_name='Owner')),
- ('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipIntimacyTieTarget_set', to='app.intimacyTie', verbose_name='Tie')),
- ],
- options={
- 'abstract': False,
- 'base_manager_name': 'objects',
- },
- bases=('app.ownershipbase',),
- ),
- migrations.CreateModel(
- name='ownershipIntimacyPrincipal',
- fields=[
- ('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
- ('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipIntimacyPrincipal_set', to='app.characterBase', verbose_name='Owner')),
- ('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipIntimacyPrincipalTarget_set', to='app.intimacyPrincipal', verbose_name='Principal')),
+ ('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmSolar_set', to='app.characterExaltSolar', verbose_name='Solar Exalted Owner')),
+ ('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmSolarTarget_set', to='app.charmSolar', verbose_name='Solar Charm')),
],
options={
'abstract': False,
@@ -547,33 +548,7 @@ class Migration(migrations.Migration):
fields=[
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmMartialArt_set', to='app.characterExaltBase', verbose_name='Exalted Owner')),
- ('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmMartialArtTarget_set', to='app.characterExaltBase', verbose_name='Martial Arts Charm')),
- ],
- options={
- 'abstract': False,
- 'base_manager_name': 'objects',
- },
- bases=('app.ownershipbase',),
- ),
- migrations.CreateModel(
- name='ownershipCharmEvocation',
- fields=[
- ('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
- ('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmEvocation_set', to='app.characterExaltBase', verbose_name='Exalted Owner')),
- ('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmEvocationTarget_set', to='app.characterExaltBase', verbose_name='Evocation')),
- ],
- options={
- 'abstract': False,
- 'base_manager_name': 'objects',
- },
- bases=('app.ownershipbase',),
- ),
- migrations.CreateModel(
- name='ownershipCharmSolar',
- fields=[
- ('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
- ('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmSolar_set', to='app.characterExaltSolar', verbose_name='Solar Exalted Owner')),
- ('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmSolarTarget_set', to='app.characterExaltSolar', verbose_name='Solar Charm')),
+ ('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmMartialArtTarget_set', to='app.charmMartialArt', verbose_name='Martial Arts Charm')),
],
options={
'abstract': False,
@@ -586,7 +561,7 @@ class Migration(migrations.Migration):
fields=[
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunarShape_set', to='app.characterExaltLunar', verbose_name='Lunar Exalted Owner')),
- ('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunarShapeTarget_set', to='app.characterExaltLunar', verbose_name='Lunar Shape')),
+ ('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunarShapeTarget_set', to='app.charmLunarShape', verbose_name='Lunar Shape')),
],
options={
'abstract': False,
@@ -599,7 +574,7 @@ class Migration(migrations.Migration):
fields=[
('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunar_set', to='app.characterExaltLunar', verbose_name='Lunar Exalted Owner')),
- ('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunarTarget_set', to='app.characterExaltLunar', verbose_name='Lunar Charm')),
+ ('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmLunarTarget_set', to='app.charmLunar', verbose_name='Lunar Charm')),
],
options={
'abstract': False,
@@ -608,15 +583,16 @@ class Migration(migrations.Migration):
bases=('app.ownershipbase',),
),
migrations.CreateModel(
- name='charmEvocation',
+ name='ownershipCharmEvocation',
fields=[
- ('charmbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.charmBase')),
- ('key', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.itemBase', verbose_name='Artifact')),
+ ('ownershipbase_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='app.ownershipBase')),
+ ('owner', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmEvocation_set', to='app.characterExaltBase', verbose_name='Exalted Owner')),
+ ('target', app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='ownershipCharmEvocationTarget_set', to='app.charmEvocation', verbose_name='Evocation')),
],
options={
'abstract': False,
'base_manager_name': 'objects',
},
- bases=('app.charmbase',),
+ bases=('app.ownershipbase',),
),
]
diff --git a/app/migrations/0002_auto_20200415_2109.py b/app/migrations/0002_auto_20200415_2109.py
new file mode 100644
index 0000000..957fdb9
--- /dev/null
+++ b/app/migrations/0002_auto_20200415_2109.py
@@ -0,0 +1,24 @@
+# Generated by Django 3.0.5 on 2020-04-15 21:09
+
+import app.models
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('app', '0001_initial'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='charmlunarshape',
+ name='shapeType',
+ field=app.models.SingleChoiceField(blank=True, choices=[('Human', 'Human'), ('Animal', 'Animal')], max_length=100, verbose_name='Shape Type'),
+ ),
+ migrations.AddField(
+ model_name='charmlunarshape',
+ name='size',
+ field=app.models.SingleChoiceField(blank=True, choices=[('Normal', 'Normal')], max_length=100, verbose_name='Size'),
+ ),
+ ]
diff --git a/app/migrations/0002_characterexaltbase_motescommitted.py b/app/migrations/0002_characterexaltbase_motescommitted.py
deleted file mode 100644
index 08cad14..0000000
--- a/app/migrations/0002_characterexaltbase_motescommitted.py
+++ /dev/null
@@ -1,19 +0,0 @@
-# Generated by Django 3.0.5 on 2020-04-13 13:15
-
-import app.models
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('app', '0001_initial'),
- ]
-
- operations = [
- migrations.AddField(
- model_name='characterexaltbase',
- name='motesCommitted',
- field=app.models.NamedIntegerField(default=0, help_text=None, verbose_name='Committed Motes'),
- ),
- ]
diff --git a/app/migrations/0003_auto_20200415_1929.py b/app/migrations/0003_auto_20200415_1929.py
deleted file mode 100644
index dc40ef0..0000000
--- a/app/migrations/0003_auto_20200415_1929.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# Generated by Django 3.0.5 on 2020-04-15 19:29
-
-import app.models
-from django.db import migrations
-import django.db.models.deletion
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('app', '0002_characterexaltbase_motescommitted'),
- ]
-
- operations = [
- migrations.RemoveField(
- model_name='ownershipintimacytie',
- name='owner',
- ),
- migrations.RemoveField(
- model_name='ownershipintimacytie',
- name='ownershipbase_ptr',
- ),
- migrations.RemoveField(
- model_name='ownershipintimacytie',
- name='target',
- ),
- migrations.AddField(
- model_name='intimacybase',
- name='character',
- field=app.models.NamedForeignKeyField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='app.characterBase', verbose_name='Character'),
- ),
- migrations.DeleteModel(
- name='ownershipIntimacyPrincipal',
- ),
- migrations.DeleteModel(
- name='ownershipIntimacyTie',
- ),
- ]
diff --git a/app/models.py b/app/models.py
index d88169d..3b23673 100644
--- a/app/models.py
+++ b/app/models.py
@@ -124,6 +124,7 @@ TAGS_WEAPONS = [
),
(
"Thrown", (
+ ("Thrown", "Thrown"),
("Occult", "Occult"),
("Cutting", "Cutting"),
("Poisonable", "Poisonable"),
@@ -218,6 +219,15 @@ CASTES_LUNAR = [
("Castless", "Castless")
]
+SHAPE_SIZES = [
+ ("Normal", "Normal"),
+]
+
+SHAPE_TYPES = [
+ ("Human", "Human"),
+ ("Animal", "Animal"),
+]
+
#==============================================================================#
#------------------------------- CUSTOM MODELS --------------------------------#
#==============================================================================#
@@ -923,6 +933,11 @@ class characterBase(PolymorphicModel):
return ["Healthy"] + ["-0" for i in range(self.health0)] + ["-1" for i in range(self.health1)] + ["-1" for i in range(self.health1)] + ["-4", "i"]
def healthLevel(self):
return self.healthTrack()[self.healthIndex]
+ def healthDots(self):
+ output = []
+ for i in range(len(self.healthTrack()) - 1):
+ output.append((self.healthTrack()[i+1], i < self.healthIndex))
+ return output
#============ STATICS =============#
def resolve(self, speciality=None, mod=0):
@@ -1035,7 +1050,7 @@ class characterExaltLunar(characterExaltBase):
#========= SHAPESHIFTING ==========#
spiritShape = models.CharField(verbose_name="Spirit Shape", max_length=100)
# Reverse relation
- def shapeSet(self):
+ def lunarShapeSet(self):
output = []
try:
ownerships = self.ownershipCharmLunarShape_set.all()
@@ -1161,30 +1176,49 @@ class charmBase(effectBase):
keywords = MultiChoiceField("Charm Keywords", CHARM_KEYWORDS)
class charmMartialArt(charmBase):
+ def type(self):
+ return "Martial Art"
levelKey = NamedIntegerField("Martial Arts Level")
key = None
class charmEvocation(charmBase):
+ def type(self):
+ return "Evocation"
levelKey = 0
key = NamedForeignKeyField("Artifact", itemBase)
class charmSolar(charmBase):
+ def type(self):
+ return "Solar"
levelKey = NamedIntegerField("Ability Level")
key = SingleChoiceField("Key Ability", ABILITIES)
class charmLunar(charmBase):
+ def type(self):
+ return "Lunar"
levelKey = NamedIntegerField("Attribute Level")
key = SingleChoiceField("Key Attribute", ATTRIBUTES)
class charmLunarShape(charmBase):
levelKey = 0
+ def type(self):
+ return "Lunar Shape"
key = None
+ size = SingleChoiceField("Size", SHAPE_SIZES)
+ shapeType = SingleChoiceField("Shape Type", SHAPE_TYPES)
#==============================================================================#
#----------------------------------- MERITS -----------------------------------#
#==============================================================================#
class merit(effectBase):
dots = DotField("Dots")
+ def dotsDisplay(self):
+ output = []
+ for i in range(self.dots):
+ output.append(True)
+ for i in range(5 - self.dots):
+ output.append(False)
+ return output
#==============================================================================#
#-------------------------------- SPECIALITIES --------------------------------#
@@ -1200,7 +1234,7 @@ class intimacyBase(PolymorphicModel):
description = DescriptionField()
intensity = SingleChoiceField("Intensity", INTENSITIES)
- character = NamedForeignKeyField("Character", characterBase)
+ character = NamedForeignKeyField("Character", characterBase, related_name="intimacy_set")
class intimacyTie(intimacyBase):
target = NamedCharField("Target")
@@ -1226,19 +1260,19 @@ class ownershipItemArmor(ownershipBase):
owner = NamedForeignKeyField("Owner", characterBase, related_name="ownershipItemArmor_set")
class ownershipCharmMartialArt(ownershipBase):
- target = NamedForeignKeyField("Martial Arts Charm", characterExaltBase, related_name="ownershipCharmMartialArtTarget_set")
+ target = NamedForeignKeyField("Martial Arts Charm", charmMartialArt, related_name="ownershipCharmMartialArtTarget_set")
owner = NamedForeignKeyField("Exalted Owner", characterExaltBase, related_name="ownershipCharmMartialArt_set")
class ownershipCharmEvocation(ownershipBase):
- target = NamedForeignKeyField("Evocation", characterExaltBase, related_name="ownershipCharmEvocationTarget_set")
+ target = NamedForeignKeyField("Evocation", charmEvocation, related_name="ownershipCharmEvocationTarget_set")
owner = NamedForeignKeyField("Exalted Owner", characterExaltBase, related_name="ownershipCharmEvocation_set")
class ownershipCharmSolar(ownershipBase):
- target = NamedForeignKeyField("Solar Charm", characterExaltSolar, related_name="ownershipCharmSolarTarget_set")
+ target = NamedForeignKeyField("Solar Charm", charmSolar, related_name="ownershipCharmSolarTarget_set")
owner = NamedForeignKeyField("Solar Exalted Owner", characterExaltSolar, related_name="ownershipCharmSolar_set")
class ownershipCharmLunar(ownershipBase):
- target = NamedForeignKeyField("Lunar Charm", characterExaltLunar, related_name="ownershipCharmLunarTarget_set")
+ target = NamedForeignKeyField("Lunar Charm", charmLunar, related_name="ownershipCharmLunarTarget_set")
owner = NamedForeignKeyField("Lunar Exalted Owner", characterExaltLunar, related_name="ownershipCharmLunar_set")
class ownershipCharmLunarShape(ownershipBase):
- target = NamedForeignKeyField("Lunar Shape", characterExaltLunar, related_name="ownershipCharmLunarShapeTarget_set")
+ target = NamedForeignKeyField("Lunar Shape", charmLunarShape, related_name="ownershipCharmLunarShapeTarget_set")
owner = NamedForeignKeyField("Lunar Exalted Owner", characterExaltLunar, related_name="ownershipCharmLunarShape_set")
class ownershipMerit(ownershipBase):
diff --git a/exalted/settings.py b/exalted/settings.py
index 51a82f3..cf05ab4 100644
--- a/exalted/settings.py
+++ b/exalted/settings.py
@@ -25,7 +25,7 @@ SECRET_KEY = '1ry9e5wz$6(c-)btw70c41woraos)5nzqfbw2^kvpzpi)gy#6v'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
-ALLOWED_HOSTS = ["192.168.1.205", "localhost", "127.0.0.1"]
+ALLOWED_HOSTS = ["192.168.1.205", "localhost", "127.0.0.1", "tcaxle.ddns.net", "xle.sh"]
# Application definition
diff --git a/templates/characterDetail.html b/templates/characterDetail.html
index 23395fe..1c45fdb 100644
--- a/templates/characterDetail.html
+++ b/templates/characterDetail.html
@@ -546,13 +546,12 @@
{% if object.specialitySet %}
{% for speciality in object.specialitySet %}
-
+
{{ speciality }}
-
-
+
{% endfor %}
{% else %}
- No specialities found.
+
No specialities found.
{% endif %}
{% endblock %}
@@ -622,10 +621,22 @@
{% if object.meritSet %}
{% for merit in object.meritSet %}
- {{ merit }}
+
+ {{ merit }}
+
+ {% for dot in merit.dotsDisplay %}
+ {% if dot %}
+
+ {% else %}
+
+ {% endif %}
+ {% endfor %}
+
+
+
{% endfor %}
{% else %}
- No merits found.
+
No merits found.
{% endif %}
{% endblock %}
@@ -646,7 +657,9 @@
{% endfor %}
- {{ object.limitTrigger }}
+
+ {{ object.limitTrigger }}
+
{% endblock %}
@@ -700,7 +713,7 @@
Weapons & Armor
-
+
Weapon |
ACC |
@@ -708,29 +721,28 @@
DEF |
OVW |
ATT |
- Range/Parry |
{% if object.itemWeaponSet %}
{% for weapon in object.itemWeaponSet %}
{{ weapon.name }} |
+ {% if weapon.rangeClose %}
+ {{ weapon.rangeClose }}/{{ weapon.rangeShort }}/{{ weapon.rangeMedium }}/{{ weapon.rangeLong }}/{{ weapon.rangeExtreme }} |
+ {% else %}
{{ weapon.accuracy }} |
+ {% endif %}
{{ weapon.damage }} |
{{ weapon.defense }} |
{{ weapon.overwhelming }} |
{{ weapon.attunement }} |
- {% if weapon.rangeClose %}
- {{ weapon.rangeClose }}/{{ weapon.rangeShort }}/{{ weapon.rangeMedium }}/{{ weapon.rangeLong }}/{{ weapon.rangeExtreme }} |
- {% else %}
- |
- {% endif %}
{% endfor %}
{% else %}
No weapons found. |
{% endif %}
-
+
+
Armor |
SOAK |
@@ -808,6 +820,34 @@
{{ object.joinBattle }}
+
+
+
+ {% for level,dot in object.healthDots %}
+
+
+ {% if dot %}
+
+
+
+ {% else %}
+
+
+
+ {% endif %}
+
+
+
+ {{ level }}
+
+
+
+ {% endfor %}
+
+
+
+
+
{% endblock %}
@@ -816,30 +856,14 @@
Intimacies
-
+
- Principal |
- Intensity |
-
- {% if object.intimacyPrincipal_set.all %}
- {% for tie in object.intimacyPrincipal_set.all %}
-
- {{ tie.description }} |
- {{ tie.intensity }} |
-
- {% endfor %}
- {% else %}
- No principals found. |
- {% endif %}
-
-
-
- Tie |
+ Intimacy |
Target |
Intensity |
- {% if object.intimacyTie_set.all %}
- {% for tie in object.intimacyTie_set.all %}
+ {% if object.intimacy_set.all %}
+ {% for tie in object.intimacy_set.all %}
{{ tie.description }} |
{{ tie.target }} |
@@ -847,7 +871,7 @@
{% endfor %}
{% else %}
- No ties found. |
+ No intimacies found. |
{% endif %}
@@ -858,13 +882,112 @@
Charms
+
+
+ Charm |
+ Type |
+ Duration |
+ Keywords |
+ Description |
+
+ {% if object.charmSet %}
+ {% for charm in object.charmSet %}
+
+ {{ charm.name }} |
+ {{ charm.charmType }} |
+ {{ charm.duration }} |
+ {{ charm.keywords }} |
+ {{ charm.description }} |
+
+ {% endfor %}
+ {% else %}
+ No charms found. |
+ {% endif %}
+
+ {% if object.lunarShapeSet %}
+
+
+
+ Shape |
+ Type |
+ Size |
+ Description |
+
+ {% for charm in object.lunarShapeSet %}
+
+ {{ charm.name }} |
+ {{ charm.shapeType }} |
+ {{ charm.size }} |
+ {{ charm.description }} |
+
+ {% endfor %}
+
+ {% endif %}
+ {% if object.evocationSet %}
+
+
+
+ Evocation |
+ Type |
+ Duration |
+ Keywords |
+ Description |
+
+ {% for charm in object.evocationSet %}
+
+ {{ charm.name }} |
+ {{ charm.charmType }} |
+ {{ charm.duration }} |
+ {{ charm.keywords }} |
+ {{ charm.description }} |
+
+ {% endfor %}
+
+ {% endif %}
+ {% if object.martialArtSet %}
+
+
+
+ Charm |
+ Type |
+ Duration |
+ Keywords |
+ Description |
+
+ {% for charm in object.martialArtSet %}
+
+ {{ charm.name }} |
+ {{ charm.charmType }} |
+ {{ charm.duration }} |
+ {{ charm.keywords }} |
+ {{ charm.description }} |
+
+ {% endfor %}
+
+ {% endif %}
{% endblock %}
{% block items %}
- Items
+ Inventory
+
+
+ Item |
+ Description |
+
+ {% if object.itemSet %}
+ {% for item in object.itemSet %}
+
+ {{ item.name }} |
+ {{ item.description }} |
+
+ {% endfor %}
+ {% else %}
+ No items found. |
+ {% endif %}
+
{% endblock %}