128 lines
4.5 KiB
Python
128 lines
4.5 KiB
Python
from django.db import migrations
|
||
|
||
|
||
def seed_story(apps, schema_editor):
|
||
Scene = apps.get_model("core", "Scene")
|
||
Choice = apps.get_model("core", "Choice")
|
||
Item = apps.get_model("core", "Item")
|
||
|
||
if Scene.objects.exists():
|
||
return
|
||
|
||
starter_item = Item.objects.create(
|
||
name="Серебряный знак Стылого Волка",
|
||
slot="trinket",
|
||
power=1,
|
||
description="Амулет, усиливающий чутьё на нечисть.",
|
||
)
|
||
blade = Item.objects.create(
|
||
name="Клинок мокрых троп",
|
||
slot="weapon",
|
||
power=3,
|
||
description="Лёгкий меч, выкованный для болотных дуэлей.",
|
||
)
|
||
|
||
prologue = Scene.objects.create(
|
||
title="Угольный тракт",
|
||
slug="prologue",
|
||
body=(
|
||
"Над трактом висит туман, а трактирщик шепчет о пропавших караванах. "
|
||
"Вам предлагают золото и место у огня, если вы проверите болото."
|
||
),
|
||
)
|
||
crossroads = Scene.objects.create(
|
||
title="Перепутье болот",
|
||
slug="crossroads",
|
||
body=(
|
||
"Дорога дробится на три тропы. В одной слышен шёпот, в другой — скрежет стали, "
|
||
"третья уходит в заросли, где поблескивает огонёк."
|
||
),
|
||
)
|
||
lair = Scene.objects.create(
|
||
title="Логово на мели",
|
||
slug="lair",
|
||
body=(
|
||
"Вы находите гнездо твари раньше, чем она замечает вас. Пахнет железом и болотной "
|
||
"травой. Время решить, как закончится охота."
|
||
),
|
||
)
|
||
ambush = Scene.objects.create(
|
||
title="Засада в камышах",
|
||
slug="ambush",
|
||
body=(
|
||
"Тварь поднимается прямо из воды. Ваша спина касается холодного дерева, а туман "
|
||
"съедает пути отступления."
|
||
),
|
||
)
|
||
village = Scene.objects.create(
|
||
title="Поселение Гнилых крыш",
|
||
slug="village",
|
||
body=(
|
||
"В деревне тихо. Староста готов говорить только после того, как вы разделите "
|
||
"с ним кружку чёрного настоя."
|
||
),
|
||
)
|
||
|
||
Choice.objects.create(
|
||
scene=prologue,
|
||
text="Принять заказ и выдвинуться к болоту.",
|
||
next_scene=crossroads,
|
||
)
|
||
Choice.objects.create(
|
||
scene=prologue,
|
||
text="Сначала расспросить старосту о пропавших.",
|
||
next_scene=village,
|
||
)
|
||
Choice.objects.create(
|
||
scene=crossroads,
|
||
text="Выслеживать тварь по следам (Фокус 12).",
|
||
required_skill="focus",
|
||
difficulty=12,
|
||
success_scene=lair,
|
||
fail_scene=ambush,
|
||
reward_item=blade,
|
||
)
|
||
Choice.objects.create(
|
||
scene=crossroads,
|
||
text="Зажечь факелы и идти напролом.",
|
||
next_scene=ambush,
|
||
)
|
||
Choice.objects.create(
|
||
scene=village,
|
||
text="Попросить алхимические сведения (Алхимия 12).",
|
||
required_skill="alchemy",
|
||
difficulty=12,
|
||
success_scene=crossroads,
|
||
fail_scene=prologue,
|
||
)
|
||
Choice.objects.create(
|
||
scene=ambush,
|
||
text="Отступить к тракту и перегруппироваться.",
|
||
next_scene=prologue,
|
||
)
|
||
Choice.objects.create(
|
||
scene=lair,
|
||
text="Проверить добычу и вернуться с трофеями.",
|
||
next_scene=prologue,
|
||
reward_item=starter_item,
|
||
)
|
||
|
||
|
||
def unseed_story(apps, schema_editor):
|
||
Scene = apps.get_model("core", "Scene")
|
||
Choice = apps.get_model("core", "Choice")
|
||
Item = apps.get_model("core", "Item")
|
||
Choice.objects.all().delete()
|
||
Scene.objects.all().delete()
|
||
Item.objects.all().delete()
|
||
|
||
|
||
class Migration(migrations.Migration):
|
||
dependencies = [
|
||
("core", "0001_initial"),
|
||
]
|
||
|
||
operations = [
|
||
migrations.RunPython(seed_story, unseed_story),
|
||
]
|