Add woodland adventure, crafting quests and verified loot recovery

This commit is contained in:
cthangover committed 2026-10-27 01:07:34 +01:00
1 parent 915cb885b6
commit c2a5074337
36 files changed
+1483 -10

No files matched your search

@@ -0,0 +1,37 @@
when "rpg_ward_done == 1" -> :after
when "item('rpg_plus/ward_lantern') >= 1" -> :choose
ptext "Пустое гнездо. Свет сюда уже приносили. Уносили тоже." key=rpg_plus/woodland/beacon/1
ptext "Нужен сторожевой фонарь: янтарь, две смолы, две связки веток. Верстак у деревенского колодца." key=rpg_plus/woodland/beacon/2
end
:choose
ptext "— ДОЛГ ПО СВЕТУ: ТРИДЦАТЬ ЛЕТ. — Голос под корнями шелестит бумагой. — КТО ОПЛАЧИВАЕТ?" key=rpg_plus/woodland/beacon/3
select ""
option "Вернуть свет лесу. Пусть деревня научится зажигать свой." key=rpg_plus/woodland/beacon/4 -> :free
option "Оставить фонарь деревне, заключить честный договор." key=rpg_plus/woodland/beacon/5 -> :pact
option "Сначала подумать" key=rpg_plus/woodland/beacon/6 -> :end
:free
action item.remove id=rpg_plus/ward_lantern
flag rpg_ward_choice free
ptext "Ты ставишь фонарь на камень и открываешь створки. Янтарь прорастает тонкими корнями." key=rpg_plus/woodland/beacon/7
ptext "— ПРИНЯТО. — Пауза. — КВИТАНЦИЯ НЕ ПРЕДУСМОТРЕНА." key=rpg_plus/woodland/beacon/8
goto -> :done
:pact
action item.remove id=rpg_plus/ward_lantern
flag rpg_ward_choice pact
ptext "— Один фонарь на деревню. Взамен — ни одного топора за старой тропой. И учёт без старосты." key=rpg_plus/woodland/beacon/9
ptext "— СОГЛАСОВАНО. — На камне проступает отпечаток ладони. Слишком много пальцев. Ты всё равно прикладываешь свою." key=rpg_plus/woodland/beacon/10
:done
flag rpg_ward_done 1
action quest.set_status quest_id=woodland_ward status=Progress
action quest.set_data_status quest_id=woodland_ward level=4
action stat.exp who=rpg_hero value=20
ptext "Обратно идти легче. Не потому, что стало безопасно. Просто теперь дорога знает твоё имя." key=rpg_plus/woodland/beacon/11
end
:after
when "rpg_ward_choice == 'free'" -> :green
ptext "В фонаре горит ровный свет. Кто-то под корнями старательно вычёркивает строки." key=rpg_plus/woodland/beacon/12
end
:green
ptext "На камне растут молодые листья. Ведомость проросла." key=rpg_plus/woodland/beacon/13
:end
end
@@ -0,0 +1,11 @@
when "rpg_courier_found == 1" -> :after
ptext "— Посылку я доставил. — Курьер показывает пустую сумку. — Получатель не подписал. У получателя корни." key=rpg_plus/woodland/courier/1
ptext "Он протягивает записку: «Лес не злится. Он считает. Верните свет или начните платить честно»." key=rpg_plus/woodland/courier/2
flag rpg_courier_found 1
action quest.set_status quest_id=woodland_courier status=Progress
action quest.set_data_status quest_id=woodland_courier level=1
ptext "— Травнице отнеси. А я посижу. По договору мне положен обед. Договора при себе нет, но обед положен." key=rpg_plus/woodland/courier/3
end
:after
ptext "— Иди. Я следом. Сначала найду, кому предъявить корни." key=rpg_plus/woodland/courier/4
end
@@ -0,0 +1,46 @@
# The elder's reward is guarded separately from the battle flag: revisits cannot pay twice.
when "rpg_ward_paid == 1" -> :after
when "rpg_ward_done == 1" -> :reward
when "item('rpg_plus/ward_lantern') >= 1" -> :ready
when "rpg_wolf_dead == 1" -> :lantern
ptext "— Волк режет коз. Лес гасит фонари. Ведомость требует одного виновного. Волк уже внесён." key=rpg_plus/woodland/elder/1
select ""
option "Волк умеет гасить фонари?" key=rpg_plus/woodland/elder/2 -> :truth
option "Где его искать?" key=rpg_plus/woodland/elder/3 -> :work
:truth
ptext "— Нет. Но писать «неизвестное» — это ещё три бланка." key=rpg_plus/woodland/elder/4
ptext "Староста кладёт на стол обломок фонаря. Внутри — пустое гнездо размером с кулак." key=rpg_plus/woodland/elder/5
ptext "— Раньше в святилище горел янтарь. Потом мы решили, что светить деревне полезнее. Лес оказался другого мнения." key=rpg_plus/woodland/elder/6
:work
flag rpg_quest_taken 1
action quest.set_status quest_id=woodland_ward status=Progress
action quest.set_data_status quest_id=woodland_ward level=1
ptext "— На восток, за пруд. Волк сидит у пещеры. Прогони его. Если найдёшь янтарь — не продавай. Один раз мы уже заработали." key=rpg_plus/woodland/elder/7
end
:lantern
action quest.set_status quest_id=woodland_ward status=Progress
action quest.set_data_status quest_id=woodland_ward level=2
ptext "— Янтарь у тебя? Значит, лес перестал доверять даже волкам." key=rpg_plus/woodland/elder/8
ptext "— У колодца верстак. Янтарь, две смолы, две связки веток — получится сторожевой фонарь. Смола остаётся от слизней; торговец тоже держит запас." key=rpg_plus/woodland/elder/9
ptext "— Потом через пещеру к святилищу. Свету там найдётся работа. Только не спрашивай меня, какая." key=rpg_plus/woodland/elder/10
end
:ready
action quest.set_data_status quest_id=woodland_ward level=3
ptext "— Собрал? Тогда через пещеру к святилищу. И не поднимай створки, пока не решишь, кому светить." key=rpg_plus/woodland/elder/ready
end
:reward
flag rpg_ward_paid 1
action quest.set_status quest_id=woodland_ward status=End
action stat.exp who=rpg_hero value=35
action item.add id=money/coin count=35
when "rpg_ward_choice == 'free'" -> :free
ptext "— Деревня снова спит. — Староста отсчитывает тридцать пять монет. — Впервые за месяц никто не написал жалобу на темноту." key=rpg_plus/woodland/elder/11
ptext "— Теперь хотя бы будем знать, сколько берём." key=rpg_plus/woodland/elder/12
end
:free
ptext "Староста гасит настольную лампу. За окном светлеет." key=rpg_plus/woodland/elder/13
ptext "— Налог на свет отменяю. — Он отсчитывает тридцать пять монет. — Не делай такого лица. На темноту пока тоже не ввожу." key=rpg_plus/woodland/elder/14
end
:after
ptext "— Ведомость закрыта. Козы живы. Если найдёшь ещё одну древнюю тайну — сначала узнай, кто её обслуживает." key=rpg_plus/woodland/elder/15
end
@@ -0,0 +1,3 @@
ptext "У очага никто не требует подвига. Редкое место." key=rpg_plus/woodland/hearth/1
action stat.restore who=party
end
@@ -0,0 +1,48 @@
when "rpg_salve_given != 1" -> :salve_start
when "rpg_courier_paid == 1" -> :after
when "rpg_courier_found == 1" -> :letter
goto -> :waiting
:salve_start
when "rpg_salve_asked == 1" -> :medicine
ptext "— Руки обожгла о старый фонарь. Староста сказал: обычная смола. Обычная смола не кусается." key=rpg_plus/woodland/herbalist/1
flag rpg_salve_asked 1
action quest.set_status quest_id=woodland_apothecary status=Progress
action quest.set_data_status quest_id=woodland_apothecary level=1
ptext "— Смешай гриб со смолой от слизня на верстаке у колодца. Мазь принеси мне. Название не пугайся: «лесная» — это состав, не гарантия." key=rpg_plus/woodland/herbalist/2
:medicine
when "item('rpg_plus/salve') >= 1" -> :offer
ptext "— Нужна лесная мазь. Гриб и смола. Если материалов нет — торговец у восточного дома поможет за монеты." key=rpg_plus/woodland/herbalist/3
end
:offer
select ""
option "Отдать лесную мазь" key=rpg_plus/woodland/herbalist/4 -> :deliver
option "Оставить пока себе" key=rpg_plus/woodland/herbalist/5 -> :bye
:deliver
action item.remove id=rpg_plus/salve
flag rpg_salve_given 1
action quest.set_status quest_id=woodland_apothecary status=End
action item.add id=money/coin count=12
action item.add id=rpg_plus/resin count=2
action stat.exp who=rpg_hero value=10
ptext "Травница отвинчивает крышку зубами и молча мажет руки. Только после этого достаёт кошель." key=rpg_plus/woodland/herbalist/6
ptext "— Двенадцать монет. И ещё работа: курьер понёс к святилищу запасной фитиль. Не вернулся. Ищи на юге леса." key=rpg_plus/woodland/herbalist/7
action quest.set_status quest_id=woodland_courier status=Progress
when "rpg_courier_found == 1" -> :letter
end
:waiting
ptext "— Курьер всё ещё в лесу. Южнее тропы. Он носит зелёный жилет и дурные предчувствия." key=rpg_plus/woodland/herbalist/8
end
:letter
flag rpg_courier_paid 1
action quest.set_status quest_id=woodland_courier status=End
action item.add id=rpg_plus/resin count=3
action item.add id=money/coin count=15
action stat.exp who=rpg_hero value=12
ptext "Она читает записку дважды. На второй раз переворачивает: оборот пуст." key=rpg_plus/woodland/herbalist/9
ptext "— «Лес не злится. Он считает». — Она прячет бумагу. — Для фонаря хватит двух смол. Третью оставь себе. За доставку." key=rpg_plus/woodland/herbalist/10
end
:after
ptext "— Руки зажили. Курьер жив. Если хочешь отдохнуть — очаг у колодца. Без рецепта." key=rpg_plus/woodland/herbalist/11
end
:bye
end
@@ -0,0 +1,7 @@
scene: rpg_village
priority: 5
is_one_run: true
save_allowed: true
---
action quest.set_status quest_id=woodland_ward status=Progress
end
@@ -0,0 +1,10 @@
when "rpg_ward_choice == 'pact'" -> :pact
when "rpg_ward_choice == 'free'" -> :free
ptext "— Считаю фонари. Вчера семь. Сегодня шесть. Седьмой считает меня." key=rpg_plus/woodland/lamplighter/1
end
:pact
ptext "— Три раза протёр новый фонарь. Ни разу не потребовал козу. Успех." key=rpg_plus/woodland/lamplighter/2
end
:free
ptext "— В лесу светлее. В деревне темнее. Зато свет теперь без процентов." key=rpg_plus/woodland/lamplighter/3
end
@@ -0,0 +1,12 @@
scene: rpg_woodland_shrine
priority: 10
is_one_run: true
save_allowed: true
---
title "Лес помнит" key=rpg_plus/map/shrine
ptext "За аркой кто-то ведёт счёт. На слове «деревня» сбивается и начинает заново." key=rpg_plus/woodland/shrine/1
when "rpg_ward_done == 1" -> :end
action quest.set_status quest_id=woodland_ward status=Progress
action quest.set_data_status quest_id=woodland_ward level=3
:end
end
@@ -0,0 +1,2 @@
ptext "На камне вырезано: «К святилищу — через пещеру на востоке. Не выносить свет. Не вносить поправки»." key=rpg_plus/woodland/waystone/1
end
@@ -0,0 +1,3 @@
ptext "На верстаке лежит инструкция: «Не пробовать. Не нюхать. Если изделие заговорило — мастер не виноват»." key=rpg_plus/woodland/workbench/1
action craft.open station=rpg_plus/workbench
end