RPG Plus: prologue, village and forest, trainer and seer, sample chest page and slime route, test suite
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
commit
4c5454d061
36 files changed
+1153
No files matched your search
@@ -0,0 +1,15 @@
|
||||
text "— Хочешь знать, что тебя ждёт? Дай руку. Не эту — ту, которой не воруешь." key=rpg_plus/seer/hello
|
||||
check luk 14 who=rpg_hero else=fail -> :ok
|
||||
|
||||
:ok
|
||||
text "— Волк у пещеры боится огня больше, чем стали. И бей туда, где у него нет щита. Это бесплатно. Остальное — нет." key=rpg_plus/seer/fortune
|
||||
when "!equipped(rpg_hero, 'classic/clover_charm')" -> :charm
|
||||
end
|
||||
|
||||
:charm
|
||||
text "— И найди себе оберег. Удача не держится за пустые руки. За полные, впрочем, тоже недолго." key=rpg_plus/seer/charm
|
||||
end
|
||||
|
||||
:fail
|
||||
text "— Туман... Ничего не вижу. Либо у тебя нет будущего, либо звёзды сегодня злые. Приходи завтра. Если будет завтра." key=rpg_plus/seer/fog
|
||||
end
|
||||
@@ -0,0 +1,19 @@
|
||||
text "— Новенький? Руки покажи. Ага... С этим можно работать. Если очень захотеть." key=rpg_plus/trainer/hello
|
||||
when "level(rpg_hero) >= 3" -> :veteran
|
||||
select ""
|
||||
option "Пойти на тренировочную площадку" key=rpg_plus/trainer/opt_yard -> :yard
|
||||
option "Не сейчас" key=rpg_plus/trainer/opt_later -> :bye
|
||||
|
||||
:veteran
|
||||
text "— А ты окреп. Третий уровень. Скоро меня учить начнёшь. Не начинай." key=rpg_plus/trainer/veteran
|
||||
select ""
|
||||
option "Пойти на тренировочную площадку" key=rpg_plus/trainer/opt_yard -> :yard
|
||||
option "Не сейчас" key=rpg_plus/trainer/opt_later -> :bye
|
||||
|
||||
:yard
|
||||
switch_scene rpg_plus_training_yard
|
||||
end
|
||||
|
||||
:bye
|
||||
text "— Приходи, когда руки зачешутся. Если волк загрызёт — можешь не приходить." key=rpg_plus/trainer/bye
|
||||
end
|
||||
@@ -0,0 +1,64 @@
|
||||
scene: rpg_plus_crossroads
|
||||
priority: 10
|
||||
is_one_run: true
|
||||
save_allowed: true
|
||||
---
|
||||
# The prologue is a visual novel scene: a background, lines and choices. The choice gives the hero an
|
||||
# archetype (stats_base: stat.archetype), starting gear (equipment: equip.put) and a first stat check
|
||||
# (stat_checks: check, when) — the same mechanics then work on the tile map, in battles and in the sheet.
|
||||
title "Перекрёсток" key=rpg_plus/prologue/title
|
||||
ptext "Указатель честно показывает в три стороны сразу. Идти не хочется ни в одну." key=rpg_plus/prologue/line1
|
||||
ptext "Внизу — деревня у Серого леса. Говорят, там нужен кто-нибудь, кто не боится волков. Или боится, но молча. В кошельке звенят двадцать пять монет — всё, что осталось от прошлой жизни." key=rpg_plus/prologue/line2
|
||||
action item.add id=money/coin count=25
|
||||
select "Кем ты был, пока не пришёл сюда?" key=rpg_plus/prologue/ask
|
||||
option "Солдатом. Меч — это просто." key=rpg_plus/prologue/opt_warrior -> :warrior
|
||||
option "Учеником мага. Огонь меня слушается." key=rpg_plus/prologue/opt_mage -> :mage
|
||||
option "Бродягой. Договориться можно с кем угодно." key=rpg_plus/prologue/opt_rogue -> :rogue
|
||||
|
||||
:warrior
|
||||
action stat.archetype who=rpg_hero id=classic/warrior
|
||||
action equip.put who=rpg_hero item=classic/wood_sword give=1
|
||||
ptext "Деревянный меч за спиной — всё, что тебе оставили в казарме. Кроме привычки бить первым." key=rpg_plus/prologue/warrior
|
||||
goto -> :road
|
||||
|
||||
:mage
|
||||
action stat.archetype who=rpg_hero id=classic/mage
|
||||
action equip.put who=rpg_hero item=classic/oak_staff give=1
|
||||
ptext "Посох тёплый, кристалл гудит. Учитель говорил, что огонь слушается умных. Про остальных он не успел рассказать." key=rpg_plus/prologue/mage
|
||||
goto -> :road
|
||||
|
||||
:rogue
|
||||
action stat.archetype who=rpg_hero id=classic/rogue
|
||||
action equip.put who=rpg_hero item=classic/dagger give=1
|
||||
ptext "Кинжал в рукаве, улыбка наготове. Двери открываются от улыбки. Те, что не открываются, — от кинжала." key=rpg_plus/prologue/rogue
|
||||
|
||||
:road
|
||||
ptext "У указателя сидит странница в лиловом плаще. Смотрит так, будто уже знает, чем всё кончится, и ей заранее скучно." key=rpg_plus/prologue/seer
|
||||
select "Что скажешь ей?" key=rpg_plus/prologue/seer_ask
|
||||
option "Вежливо спросить дорогу [Харизма 10]" key=rpg_plus/prologue/opt_ask_way -> :ask_way
|
||||
option "Молча пройти мимо" key=rpg_plus/prologue/opt_pass -> :leave
|
||||
|
||||
:ask_way
|
||||
# A charisma check: d20 + charisma against 10. The roll is shown as one line, then the story branches.
|
||||
check cha 10 who=rpg_hero else=snub -> :gift
|
||||
|
||||
:gift
|
||||
text "— Вежливый. Надо же. — Она бросает тебе оберег из клевера. — Держи. Удача любит тех, кто спрашивает. Недолго, но любит." key=rpg_plus/prologue/gift
|
||||
action item.add id=classic/clover_charm
|
||||
goto -> :leave
|
||||
|
||||
:snub
|
||||
text "— Найдёшь сам, — она отворачивается. — Все находят. Некоторые даже живыми." key=rpg_plus/prologue/snub
|
||||
|
||||
:leave
|
||||
when "archetype(rpg_hero, 'classic/mage')" -> :mage_hint
|
||||
ptext "Тропа сбегает к деревне. Туман расступается неохотно — будто знает, куда ты идёшь." key=rpg_plus/prologue/path
|
||||
goto -> :go
|
||||
|
||||
:mage_hint
|
||||
ptext "Посох тихо щёлкает искрой. Волки, говорят, огня не любят. Посох, похоже, не любит волков." key=rpg_plus/prologue/mage_hint
|
||||
|
||||
:go
|
||||
ptext "Твой лист — кнопка с книгой на панели сверху: статы, уровень, снаряжение. Надеть вещь можно из сумки." key=rpg_plus/prologue/sheet_hint
|
||||
switch_scene rpg_village
|
||||
end
|
||||
@@ -0,0 +1,47 @@
|
||||
scene: rpg_plus_training_yard
|
||||
priority: 10
|
||||
save_allowed: true
|
||||
---
|
||||
# A visual novel scene reached from the tile map (the trainer's dialog switches to it) and left by
|
||||
# switch_scene back to the map: the hero comes back to the cell he left. Exp, a strength check and a
|
||||
# reward that is given only once (story flags).
|
||||
text "— Ну, — наставник скрещивает руки. — Показывай. Только не убейся: я за тебя не отвечаю." key=rpg_plus/yard/intro
|
||||
|
||||
:menu
|
||||
select "Чем займёмся?" key=rpg_plus/yard/ask
|
||||
option "Отработать удары (+20 опыта, один раз)" key=rpg_plus/yard/opt_drill -> :drill
|
||||
option "Поднять бревно над головой [Сила 12]" key=rpg_plus/yard/opt_log -> :log
|
||||
option "Вернуться в деревню" key=rpg_plus/yard/opt_back -> :back
|
||||
|
||||
:drill
|
||||
when "rpg_plus_drilled == 1" -> :drilled
|
||||
action stat.exp who=rpg_hero value=20
|
||||
flag rpg_plus_drilled 1
|
||||
text "— Неплохо. Ещё сотня таких — и сойдёшь за бойца. Издалека." key=rpg_plus/yard/drill_done
|
||||
goto -> :menu
|
||||
|
||||
:drilled
|
||||
text "— На сегодня хватит. Мышцы растут, пока спишь. Иди спи." key=rpg_plus/yard/drilled
|
||||
goto -> :menu
|
||||
|
||||
:log
|
||||
check str 12 who=rpg_hero else=log_fail -> :log_ok
|
||||
|
||||
:log_ok
|
||||
when "rpg_plus_tonic == 1" -> :log_again
|
||||
action item.add id=classic/strength_tonic
|
||||
flag rpg_plus_tonic 1
|
||||
text "— Ха! Поднял. — Наставник бросает тебе склянку. — Тоник силы. Не благодари. И не пей натощак." key=rpg_plus/yard/log_ok
|
||||
goto -> :menu
|
||||
|
||||
:log_again
|
||||
text "— Опять? Хвастун. Тоника больше нет. Есть уважение. Немного." key=rpg_plus/yard/log_again
|
||||
goto -> :menu
|
||||
|
||||
:log_fail
|
||||
text "— Бревно победило. Бывает. Подрасти — или купи у торговца тоник силы. Говорят, помогает. Торговец говорит." key=rpg_plus/yard/log_fail
|
||||
goto -> :menu
|
||||
|
||||
:back
|
||||
switch_scene rpg_village
|
||||
end
|
||||
Reference in new issue
Block a user