fan-card title symmetry; pips → Minor; tray Sig card

- title slot: <h3> → <p>; font-size 0.1 → 0.087 (deck) / 0.093 → 0.08 (sig/sea); text-wrap: balance — kills upright/reversal asymmetry & all per-card squeeze hacks
- trump 8 hyphen → U+2011, trump 9 space → U+00A0 (mig 0021) so titles wrap as intended
- pips (Earthman 1–10) → MINOR arcana (mig 0022); StageCard._arcanaDisplay() picks the right label
- PICK SEA: re-clicking a deposited slot now restores the server-rolled reversed state (sea.js _populate toggle)
- tray Sig card: render same .sig-stage-card.sea-sig-card (rank + icon, -5deg) as Sea center; --sig-card-w sized off --tray-cell-size
- title_squeeze_class kept as no-op for template compat
- 0020 (Self-Unimportance rename) included from prior turn

Code architected by Disco DeDisco <discodedisco@outlook.com>
Git commit message Co-Authored-By:
Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Disco DeDisco
2026-05-01 02:06:55 -04:00
parent c264b6e3ee
commit 3410f073f0
13 changed files with 233 additions and 48 deletions

View File

@@ -0,0 +1,41 @@
"""Trump 8 rename: Losing Self-Importance → Self-Unimportance.
The renamed form fits on one fan-card line above the Sublimating/Sedimentary
qualifier without a scaleX squeeze.
"""
from django.db import migrations
def forward(apps, schema_editor):
TarotCard = apps.get_model("epic", "TarotCard")
DeckVariant = apps.get_model("epic", "DeckVariant")
try:
earthman = DeckVariant.objects.get(slug="earthman")
except DeckVariant.DoesNotExist:
return
TarotCard.objects.filter(
deck_variant=earthman, arcana="MAJOR", number=8,
).update(name="Self-Unimportance", slug="self-unimportance")
def reverse(apps, schema_editor):
TarotCard = apps.get_model("epic", "TarotCard")
DeckVariant = apps.get_model("epic", "DeckVariant")
try:
earthman = DeckVariant.objects.get(slug="earthman")
except DeckVariant.DoesNotExist:
return
TarotCard.objects.filter(
deck_variant=earthman, arcana="MAJOR", number=8,
).update(name="Losing Self-Importance", slug="losing-self-importance")
class Migration(migrations.Migration):
dependencies = [
("epic", "0019_explicit_virtues_italic_word"),
]
operations = [
migrations.RunPython(forward, reverse_code=reverse),
]

View File

@@ -0,0 +1,61 @@
"""Long-title wrap fixes for trumps 8 and 9.
Trump 8 "Self-Unimportance" → swap the hyphen for U+2011 (non-breaking
hyphen) so it stays glued and the title sits on one line above
Sublimating / Sedimentary.
Trump 9 "Erasing Personal History" → insert U+00A0 (non-breaking space)
between "Personal" and "History" so the browser keeps them together,
forcing "Erasing" alone on line 1 and "Personal History," on line 2.
"""
from django.db import migrations
# Trump 8
OLD_8 = "Self-Unimportance"
NEW_8 = "SelfUnimportance"
# Trump 9
OLD_9 = "Erasing Personal History"
NEW_9 = "Erasing Personal History"
def forward(apps, schema_editor):
TarotCard = apps.get_model("epic", "TarotCard")
DeckVariant = apps.get_model("epic", "DeckVariant")
try:
earthman = DeckVariant.objects.get(slug="earthman")
except DeckVariant.DoesNotExist:
return
TarotCard.objects.filter(
deck_variant=earthman, arcana="MAJOR", number=8,
).update(name=NEW_8)
TarotCard.objects.filter(
deck_variant=earthman, arcana="MAJOR", number=9,
).update(name=NEW_9)
def reverse(apps, schema_editor):
TarotCard = apps.get_model("epic", "TarotCard")
DeckVariant = apps.get_model("epic", "DeckVariant")
try:
earthman = DeckVariant.objects.get(slug="earthman")
except DeckVariant.DoesNotExist:
return
TarotCard.objects.filter(
deck_variant=earthman, arcana="MAJOR", number=8,
).update(name=OLD_8)
TarotCard.objects.filter(
deck_variant=earthman, arcana="MAJOR", number=9,
).update(name=OLD_9)
class Migration(migrations.Migration):
dependencies = [
("epic", "0020_self_unimportance"),
]
operations = [
migrations.RunPython(forward, reverse_code=reverse),
]

View File

@@ -0,0 +1,42 @@
"""Reclassify Earthman pip cards (number 1-10) from MIDDLE to MINOR arcana.
The 0004 reseed initially lumped pips + court cards under MIDDLE; pips
should be MINOR arcana, with MIDDLE reserved for the Earthman court
cards (Maid/Jack/Queen/King at numbers 11-14).
"""
from django.db import migrations
def forward(apps, schema_editor):
TarotCard = apps.get_model("epic", "TarotCard")
DeckVariant = apps.get_model("epic", "DeckVariant")
try:
earthman = DeckVariant.objects.get(slug="earthman")
except DeckVariant.DoesNotExist:
return
TarotCard.objects.filter(
deck_variant=earthman, arcana="MIDDLE", number__lte=10,
).update(arcana="MINOR")
def reverse(apps, schema_editor):
TarotCard = apps.get_model("epic", "TarotCard")
DeckVariant = apps.get_model("epic", "DeckVariant")
try:
earthman = DeckVariant.objects.get(slug="earthman")
except DeckVariant.DoesNotExist:
return
TarotCard.objects.filter(
deck_variant=earthman, arcana="MINOR", number__lte=10,
).update(arcana="MIDDLE")
class Migration(migrations.Migration):
dependencies = [
("epic", "0021_trump9_nbsp"),
]
operations = [
migrations.RunPython(forward, reverse_code=reverse),
]