This repository has been archived on 2024-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
Telegram/modules/event.py

408 lines
38 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# IF YOU'RE READING THIS DURING THE EVENT AND BEFORE COMPLETING IT - LEAVE NOW!
# ANALYZING THIS CODE WILL RUIN YOUR EXPERIENCE, SO PLEASE COMPLETE THE QUEST
# BEFORE GOING THERE. OTHERWISE THIS WILL BE CONSIDERED AS CHEATING, AND YOUR
# QUEST WILL BE RUINED FOREVER. PLEASE TAKE THIS WARNING SERIOUSLY.
from datetime import datetime
from os import path
from modules.database import db
from pyrogram import filters
from pyrogram.client import Client
from pyrogram.types import Message, User
from pyrogram.enums import ParseMode
from app import app
from modules.logging import logWrite
from modules.utils import configGet
collections = db.list_collection_names()
if not "event" in collections:
db.create_collection("event")
col_event = db.get_collection("event")
async def stage_passer(
previous: int, current: int, user: User, requires_previous: bool = True
) -> bool:
if requires_previous:
if col_event.find_one({"user": user.id, "stage": previous}) is None:
return False
if col_event.find_one({"user": user.id, "stage": current}) is None:
logWrite(
f"User {user.first_name} ({user.id}) has completed event stage {current}"
)
col_event.insert_one(
{"user": user.id, "stage": current, "date": datetime.now()}
)
if current == -1:
await app.send_message(
configGet("admin", "groups"),
f"Користувач **{user.first_name}** (`{user.id}`) пройшов етап BONUS",
)
else:
await app.send_message(
configGet("admin", "groups"),
f"Користувач **{user.first_name}** (`{user.id}`) пройшов етап №{current}",
)
return True
# Stage 1
@app.on_message(
~filters.scheduled
& filters.command(["aufwiedersehen"], prefixes=["/"])
& filters.private
)
async def cmd_event_1(app: Client, msg: Message):
if not await stage_passer(0, 1, msg.from_user, requires_previous=False):
return
await msg.reply_text(
"""Ви відразу поїхали на місце злочину, найкрупніше відділення мережі ресторанів фаст-фуду "KFP". Як Кіара й розповіла, ніяких слідів пограбування не було. Допитавши кількох працівників, ви не дізналися нічого корисного. Камери спостереження теж не дали ніякої корисної інформації.
Засмучені тим, що не дізналися нічого, ви вийшли на вулицю подихати свіжим повітрям, вільним від сильного запаху смаженої курятини. На всяк випадок, ви вирішили обійти ресторан декілька разів, але не помітили нічого підозрілого. Тяжко видохнувши, ви присіли на скамійку та озирнулися довкола.
Ресторан стояв поруч із великим озером, і навколо не було інших будинків. Найближча споруда до нього була невеличка рибацька хатка безпосередньо на березі. Подумав про те, що це краще, ніж нічого, ви підійшли до неї та постукалися. Вам ніхто не відповів. Ви обійшли цю хатку - і нарешті побачили хоч щось цікаве. На стіні, прихованій від поглядів, була маленька панелька, яку недосвідчене око й не помітило б. Ви підійшли, віддвинули її та здивувалися, побачив, що за нею був девайс для введення коду із цифровою клавіатурою. Код був із трьох цифр, і ніяких підказок не було. Цікавості заради, ви почали вводити рандомні комбінації: "001", "666", "420"... Четвертою комбінацією було "999" - і, на диво, вона спрацювала. Девайс заблимав зеленим - і ви побачили, як з-під землі з'явився люк. Ви віддвинули його - і спустилися по драбині вниз, до якогось дивного підземного проходу.
Пройшовши по ньому буквально двадцять кроків, ви побачили двері, а поруч із ними - ще один девайс для вводу пароля. Цього разу це були англійські букви, і в паролі їх було 6. Тут вже простим перебором не задовольнишся, тому ви почали шукати якісь підказки. На щастя, одну ви знайшли, з іншої сторони дверей була невеличка ніша, в якій лежав червоно-білий прапорець та [дивна фотографія](https://docs.google.com/document/d/1X3hj1mD0cPL6ZKgtFrOxHmiQtwCFnHQrBjsn0_gfR7s/edit?usp=sharing).
Ви відразу зрозуміли, кому належить ця хатка, та ввели правильний шестилітерний пароль.""",
disable_web_page_preview=True,
)
# Stage 2
@app.on_message(
~filters.scheduled & filters.command(["tonjok"], prefixes=["/"]) & filters.private
)
async def cmd_event_2(app: Client, msg: Message):
if not await stage_passer(1, 2, msg.from_user):
return
await msg.reply_text(
"""Ви дуже здивувалися, коли побачили, що таємна кімната виявилася... Бібліотекою. Просто для того, щоб впевнитися, що тут не відбувається нічого кримінального, ви відкрили першу ж книгу, що попалася на очі.
На обкладинці була намальована сором'язлива Оллі в нижній білизні. Ви почервоніли і прочитали назвуу. "Noise Complaint 3: Shutting Up Your Loud Zombie Neighbor (With French Kisses)". Це виявився юрійний фанфік! Ви швиденько пролистали його, почервоніли ще більше - і вирішили залишити кімнату. Що б тут не відбувалося, навряд чи це стосується викрадених яєць.
На щастя, коли ви піднялися назад на поверхню, хазяйка хатки ще не повернулася. На всяк випадок, ви залишили записку: "Ми розслідуємо злочин про викрадення пасхальних яєць. Якщо ваші яйця були вкрадені, будь ласка, зверніться до найближчого відділення Оодзора Кейсацу."
Не знайшовши ніяких нових доказів, ви вирішили повернутися до відділення. Там вас зустріла Субару в дуже поганому настрої. Ви коротко розповіли їй про те, що відбувалося протягом дня, і вона поскаржилася, що її набір яєць на Пасху теж був вкрадений!
Це вже виглядає як серійні крадіжки! Субару вирішила послати вас до Рейне, дізнатися, чи стала вона жертвою крадіїв теж. Оскільки та не дуже любить незнайомих людей, Субару дала вам таємний пароль, який треба буде сказати Рейне - назву юніта, що складається з Оодзори, Таканаші та Паволії."""
)
# Stage 3
@app.on_message(
~filters.scheduled
& filters.command(["turducken"], prefixes=["/"])
& filters.private
)
async def cmd_event_3(app: Client, msg: Message):
if not await stage_passer(2, 3, msg.from_user):
return
await msg.reply_text(
"""Прийшовши до будинку Рейне, ви не змогли потрапити всередину, бо ваші дзвінки були проігноровані. Роздивившись ворота поуважніше, ви побачили збоку невеличку табличку із написом "ВСЬОГО ЗА ТРИ ПРОСТИХ КЛІКИ ВИ ТЕЖ МОЖЕТЕ ДОЄДНАТИСЯ, MUDAH SEKALI" і кодовий замок із шести літер."""
)
# Stage 4
@app.on_message(
~filters.scheduled & filters.command(["joinda"], prefixes=["/"]) & filters.private
)
async def cmd_event_4(app: Client, msg: Message):
if not await stage_passer(3, 4, msg.from_user):
return
await msg.reply_text(
"""Пройшовши через ворота, ви постукали у двері і сказали таємний пароль від Субару. Двері відчинилися, і ви почули голос Рейне. "Заходь у останні двері ліворуч". На дверях чомусь була намальована велика червона цифра 5 та поруч був дуже дивний механізм. Ви не встигли роздивитися цей "замок", як двері почали повільно відчинятися. Зайшовши всередину ви опинилися у Кавуновій Кімнаті™, посеред якої сиділа Рейне. Ви почали задавати питання про яйця, але Кавунова Кімната™ не виходила з вашої голови, наче ви десь її бачили... І тут ви згадали! Така сама кімната була в тому фанфіку! На жаль, ви мали необережність сказати це вголос, і Рейне образилася на вас через те, що ви зайшли в її бібліотеку без дозволу. Із криками "ТА НІХТО НЕ КРАВ МОЇ ЯЙЦЯ!" вона випинує вас надвір, і ви вирішуєте іти до наступної Холоторі.
Ви вирішили завітати до Мумей. Діставшись її дому, ви довго стояли перед входом та думали, чи варто взагалі заходити. Її дім - це гігантська темна печера, що веде в невідоме. Але ваш обов’язок кличе, тому, дістав свій ліхтарик, ви ризикнули зайти. Блукая тунелями печери, ви постійно натикалися на розвилки. Перші два перехрестя ви пройшли прямо, не завертаючи нікуди. Але на третьому вас чекали підозрілі червоні плями на стінах, і ви вирішили, що краще повернутися та обрати інший маршрут. Ви повертали то вліво, то вправо, то вліво, то вправо, і врешті-решт опинилися в тупику. На стіні висіла табличка з двома буквами: “B” та “A”, а під нею лежали полотно, перо та баночка з тією самою червоною рідиною. На самому ж полотні було 6 пустих клітинок. Чи варто вам спробувати щось написати чи просто розвернутися та піти іншою дорогою?
<i>(Введіть команду /next, якщо хочете продовжити розслідування, або введіть зашифровану команду /******, щоб побачити бонусну сцену, яка не впливає на геймплей.)</i>""",
parse_mode=ParseMode.HTML,
)
# Stage 5
@app.on_message(
~filters.scheduled & filters.command(["next"], prefixes=["/"]) & filters.private
)
async def cmd_event_5(app: Client, msg: Message):
if not await stage_passer(4, 5, msg.from_user):
return
await msg.reply_text(
"""Ви повернулися на самий початок шляху і пішли в той напрямок, який ще не дослідили. На диво, ця дорога вела прямо. Коли ви йшли, вам по дорозі траплялися дивні камінчики, які ви вирішили збирати. На кінці шляху вас чекали великі двері, наче в бункері. Коло них був девайс для вводу коду з 3 цифр. Ви подивилися ще раз на камінчики, які зібрали та на символи на них:
一1403
二2308
三156
四2103
五0412
六154
七2203
八0408
九149
Подумав, ви вирішили ввести потрібні цифри від найменшої до найбільшої - і двері почали відчинятися…"""
)
# Stage 6
@app.on_message(
~filters.scheduled & filters.command(["238"], prefixes=["/"]) & filters.private
)
async def cmd_event_6(app: Client, msg: Message):
if not await stage_passer(5, 6, msg.from_user):
return
await msg.reply_text(
"""Всередині ви побачили гігантську ферму, явно штучно зроблену, та Кроніі з Фауну, які поливали саженці. Вони здивувалися, побачивши вас, але ви швидко показали своє поліцейське посвідчення та пояснили ситуацію. Дівчата сказали, що ніякі яйця в Мумей ніхто не крав і що самі вони нічого не чули. Перед тим, як ви пішли далі, вони з ігривою посмішкою задали вам питання, сказав, що дадуть вам підказку, якщо ви правильно дасте відповідь.
- Поліцейський-кун, ти ж злякався, коли йшов сюди? Ти думав, що це кров була на стінах? Але ні, ця фарба була зроблена з іншого. А з чого саме?
Ви подивилися навколо та, побачивши, що більше всього росло на фермі, дали впевнену відповідь."""
)
# Stage 7
@app.on_message(
~filters.scheduled & filters.command(["berries"], prefixes=["/"]) & filters.private
)
async def cmd_event_7(app: Client, msg: Message):
if not await stage_passer(6, 7, msg.from_user):
return
await msg.reply_text(
"""Кроніі та Фауна, як обіцяли, дали вам підказку. Коли ви сказали, що ви опитуєте всіх Голоторі, вони зрозуміли, що далі ви підете до Луї. Але базу Голоксу просто так не знайти, тому дівчата підказали вам локацію. Ви прийшли на місце і опинилися перед звичайним собі житловим будинком у спальному районі. Ви знайшли вхід до підвалу та ввели код від двері (1111), який вам повідомили дівчата з ГолоРади. “Дивно, якось занадто легко як для секретної бази”, - подумали ви та зайшли всередину. Підвал виглядав абсолютно звичайно, єдине, що виділялося, - це залізні двері без ручки. Коло них на вас чекала чергова кодова панель. На цей раз із буквенною клавіатурою. Ви подивилися на символи на двері, “常夜”, та ввели правильний пароль."""
)
# Stage 8
@app.on_message(
~filters.scheduled & filters.command(["repaint"], prefixes=["/"]) & filters.private
)
async def cmd_event_8(app: Client, msg: Message):
if not await stage_passer(7, 8, msg.from_user):
return
await msg.reply_text(
"""Тільки-но двері відчинилися, ви побачили перед собою Луї у формі Голоксу та в шикарних окулярах, що нагадували вам окуляри Каміни із Ґуррен Лаґанну, а на плечі в неї сидів її секретар, Ґанмо. Її насторожило, що робітник поліції увірвався на секретну базу Голоксу. Ви поспішили її заспокоїти, та сказали що ви розслідуєте зникнення яєць у Холоторі. Луї відповіла, що її яйця в повному порядку і ніхто їх не крав, а от просто так відпустити вас вона тепер не може, бо ви знаєте, де знаходиться секретний штаб. Після цих слів вона простягнула якусь склянку із рідиною, що виглядала як препарати, які носить із собою Койорі. Після того, як випили вміст тієї склянки, ви знепритомніли, а коли прийшли до тями, то сиділи поруч із поліцейським відділенням. У вас зникли спогади про те, як ви йшли до бази Голоксу, але ви чітко запам'ятали, що яйця у Луї ніхто не крав. Озирнувшись по сторонам, ви побачили, що вас кличе до себе Субару. Зайшовши до неї в кабінет, ви дізналися, що поки ви бігали в пошуках Холоторі, у відділення хтось доставив таємничу коробку із кодовим замком та записку, причеплену до неї.
У записці був написаний ось такий текст (хоча це більше походило на набір літер):
__Lq Pdufk ru Dsulo
Wkhvh wklqjv gr derxqg
D fhuwdlq exqqb
Ohdyhv wkhvh rq wkh jurxqg__
А на зворотній стороні був намальований символ 三
На кодовому замку ж треба ввести код із 9-и літер без пробілів."""
)
# Stage 9
@app.on_message(
~filters.scheduled
& filters.command(["easteregg"], prefixes=["/"])
& filters.private
)
async def cmd_event_9(app: Client, msg: Message):
if not await stage_passer(8, 9, msg.from_user):
return
await msg.reply_text(
"""Усередині коробки була рація. Субару негайно вихопила її та натиснула на кнопку зв’язку.
- Прийом-прийом! Я не знаю, хто ти і що тобі потрібно, але поверни яйця! Я їй чесно сама висид… Пофарбувала!
- AH↓HA↑HA↓HA↑HA↓
- ПЕКОРА?! Я так і знала, що це ти!
- Моя люба Субару, ти так сильно старалася, що я не можу відмовити тобі! Приїжджай, забирай їх назад. Якщо знайдеш, звісно! AH↓HA↑HA↓HA↑HA↓
На цьому зв’язок обірвався. Субару почала крутити рацію, шукаючи, чи є щось, що з нею не так. Ви запропонували відкрити відділення для батарейок, і дійсно, там були два папірця. Один із них - це було міні-фото Каели, на якому маркером було написано: “******** doko?” На другому було написано рваним почерком: “07 Jan 22, Mute City, never forget”. Окрім того, ви помітили, що в коробці лежав маленький шматочок якогось білого мінералу. Зібрав до купи всі підказки, ви повідомили шефу, куди вам треба їхати.""",
parse_mode=ParseMode.DISABLED,
)
# Stage 10
@app.on_message(
~filters.scheduled & filters.command(["atlantis"], prefixes=["/"]) & filters.private
)
async def cmd_event_10(app: Client, msg: Message):
if not await stage_passer(9, 10, msg.from_user):
return
await msg.reply_text(
"""Ви разом із Субару під’їхали до руїн Атлантиди. Хоча, чи можна це назвати руїнами, коли Ґура просто не добудувала? В будь-якому випадку, на найвищому п’єдесталі стояв кошик, в якому лежали пасхальні яйця Субару, цілі та непошкоджені! Ваша шеф радісно підбігла до нього, але швидко засмутилася, коли побачила серед яєць планшет. Вона увімкнула його - і на заставці екрану було лого Усада Кенсецу. Планшет був повністю пустим, єдиним файлом було відео без назви. Субару увімкнула його - і на екрані з’явився знайомий кролячий силует.
- AH↓HA↑HA↓HA↑HA↓ Як бачиш, Субару, твої дорогоцінні яйця в повній безпеці! Та й кому вони взагалі потрібні, коли є набагато рідкісніший та особливіший делікатес?
Камера віддвинулася від Пекори і показала стіл, на якому стояла гігантська паска, прикрашена немов би золотом та дорогоцінними камнями. Камера протримала її в фокусі пару секунд, а потім перевелася назад на Пекору.
- До вашої уваги, гордість пекарні Короне, Голо-паска! Якщо я не помиляюся, мала бути презентована особисто Яґо на параді в центрі міста цього вечора. Уявляю собі, як йому зараз сумно від того, що вона зникла. Тепер всі точно побачать його некомпетентність та визнають, що лише Пекора варта звання мера Голо-сіті! AH↓HA↑HA↓HA↑HA↓HA↑HA↓HA↑HA↓
Субару стиснула кулаки та почала кричати в екран, забувши про те, що це запис, а не прямий ефір. Нарешті, Пекора закінчила сміятися і продовжила:
- Моя люба Субару, не плач. Я благородний крадій і дам тобі шанс побути сьогодні героєм та врятувати святковий парад! Якщо хочеш знайти мене та відібрати в мене паску, то рекомендую почати з того, щоб знайти брехуна! Але ти можеш __24__ рази __поговорити__ з усіма мешканцями __Голо__-сіті - тобі все одно не вистачить кмітливості! Адіос!
На цьому відео закінчилося. Ви заспокоїли Субару та звернули її увагу на те, що деякі слова Пекори були сказані іншою інтонацією. Подумав і згадав події сьогоднішнього дня, ви зрозуміли, до кого треба заїхати в першу чергу.
__(У команду треба вписати лише ім’я дівчинки.)__"""
)
# Stage 11
@app.on_message(
~filters.scheduled & filters.command(["kiara"], prefixes=["/"]) & filters.private
)
async def cmd_event_11(app: Client, msg: Message):
if not await stage_passer(10, 11, msg.from_user):
return
await msg.reply_text(
"""Прийшовши до Кіари, ви почали вимагати від неї пояснень. Вона зізналася, що просто не могла відмовити Пекорі, але вона дасть нам наступну підказку. Після цього Кіара почала нишпорити у шафі і через деякий час дістала звідти скриньку із дивними символами. "Цю коробку мені подарувала __Аме__ після __найпершого походу__ в новий світ Амеверсу. Сюди я й поклала підказки, що мені передала Пекора. Якщо зможеш відкрити - вони твої". На шкатулці були зображені [такі символи](https://docs.google.com/document/d/1w2ARMWpUIkNpmSNWFJVGobIMVh2scgSy2hgyHssGLtA/edit?usp=sharing), під якими був кодовий замок із 8 цифр.""",
disable_web_page_preview=True,
)
# Stage 12
@app.on_message(
~filters.scheduled & filters.command(["11022021"], prefixes=["/"]) & filters.private
)
async def cmd_event_12(app: Client, msg: Message):
if not await stage_passer(11, 12, msg.from_user):
return
await msg.reply_text(
"""У скриньці був папірець з географічними координатами. Субару поїхала пояснювати ситуацію до Яґо, тому далі ви були самі по собі. Ви приїхали на місце і побачили самотній дуб, що ріс посеред парку. У дуплі дуба на вас чекала нова скринька. На її кришці було написано почерком Пекори наступне:
__6 листопада
Греміла битва.
Червоні ведмеді
Та білі вовки -
Ніхто не переміг.
У той день
Я була другою.
Якою була надія?__
Скриньку закривав кодовий замок лише з двох цифер. У вас взагалі не було ідей, але ви не могли підвести Субару, оскільки вона поклалася на вас! Ви сіли під дубом та почали думати, але так і не змогли знайти відповідь. Ви ледве не заплакали від безсилля, коли до вас підійшла Шішіро Ботан, що прогулювалася парком.
- Що, офіцере, не можете одужати геній Усада Кенсецу? Не переймайтеся, я їй відразу сказала, що це занадто складно. Але Пекора любить чесну боротьбу, тому вона й попросила мене дивитися одним оком за цією локацію та дати підказку, якщо тобі буде важко. У той день моїм лідером була ніхто інша як Субару, а номер мій був 28. Далі розберешся, шукай у записах! Отож, бувай, хай тобі щастить, пой!
Шішірон залишила вас, а ви панічно почали діставати смартфон та відкривати ютуб. Ви зрозуміли, про що йшла мова, тому легко змогли ввести правильний номер."""
)
# Stage 13
@app.on_message(
~filters.scheduled & filters.command(["24"], prefixes=["/"]) & filters.private
)
async def cmd_event_13(app: Client, msg: Message):
if not await stage_passer(12, 13, msg.from_user):
return
await msg.reply_text(
"""Відкривши скриньку, ви побачили всередині... Карі з бараниною?.. Спочатку ви нічого не зрозуміли, але незабаром відчули на собі (чи все ж таки на карі?) голодний погляд Ботан, яка все ще знаходилася поруч. Ви вирішили віддати їй цю смачну страву, за що левиця, задоволено посміхаючись, видала вам рацію та маленьку коробочку у формі ССРБ із кодовим замком на 3 цифри. Рація постійно видавала звуки, схожі на якийсь код, а на коробці було викарбувано "A—>Z, Z—>A". Виписавши сигнали рації морзянкою, ви отримали таке повідомлення:
--.. --. --. ... ...- .... --. --.. .. --. .-.. ..- ... ...- .. --.- .-.. ..-. .. -- ...- -... .... --. --.. .. .. -... -- .-. - ... --. .-.. . ...- .. .--. -... .-. . .... .-.. -. --.. -- -... .-- --.. -... .... ... --.. . ...- -.- --.. .... .... ...- .-- --. ...- --- --- -. ...- --. ... ...- -. .-. -- ..-. --. ...- .-. --. ... --.. -.- -.- ...- -- ...- .--
Швиденько розгадавши цю загадку, ви ввели правильний код.""",
parse_mode=ParseMode.DISABLED,
)
# Stage 14
@app.on_message(
~filters.scheduled & filters.command(["003"], prefixes=["/"]) & filters.private
)
async def cmd_event_14(app: Client, msg: Message):
if not await stage_passer(13, 14, msg.from_user):
return
await msg.reply_text(
"""Чергові координати привели вас до закинутого автокінотеатру. Ви увійшли на територію та побачили сцену, на якій я показували фільми. Проектор виводив на екран [дивну таблицю](https://docs.google.com/document/d/1_Mf9w52vDG0sQZ-xKn1pg4tdsLHwiq97O-nHxYELUkI/edit?usp=sharing):
Також на сцені стояв великий сейф із кодовим замком з 16 символів. З одного боку сейфу було написано наступне:
パッと光って咲いた 花火を見てた
きっとまだ 終わらない夏が
曖昧な心を 解かして繋いだ
この夜が続いて欲しかった
А з іншого - просто “Thank you doragon!”. Зверху ж був наступний напис: “1D2?...”
Ви довго думали, але змогли розшифрувати цю загадку, знову скориставшись ютубом!
__(Відповідь треба вводити цифрами та великими англійськими літерами.)__"""
)
# Stage 15
@app.on_message(
~filters.scheduled
& filters.command(["1D2C3E4H5B6F7G8A"], prefixes=["/"])
& filters.private
)
async def cmd_event_15(app: Client, msg: Message):
if not await stage_passer(14, 15, msg.from_user):
return
await msg.reply_text(
"""У сейфі лежала паперова мапа Голо-сіті, на якій червоним колом була відмічена споруда посеред промзони. Ви негайно вирушили туди. Цією будівлею виявився чи то ангар, чи то склад, що належав УсаКену. Всі вікна до нього були закриті металевими пластинами, а єдиним входом всередину були масивні ангарні двері. Звісно ж, силою їй відчинити не вдалося. Ретельно перевіривши стіни будівлі зовні, ви помітили, що в одному місці цеглини були розшатані. Ви обережно дістали пару цеглин - і ву-аля, перед вами був черговий девайс для вводу коду. Але цього разу це була повноцінна комп’ютерна клавіатура, і ніякого ліміту символів не було.
Ви почали трошки панікувати, адже ніяких підказок навколо ви не помітили, аж тут вам на телефон подзвонила Субару. Ви швидко взяли трубку:
- Офіцере, я тільки що отримала якийсь незрозумілий файл особисто від Пекори! Пересилаю його тобі, розберися - і швиденько, бо через годину вже початок параду!
Ви --[відкрили файл](https://drive.google.com/file/d/1oex8GriQBsimIsUvOGo83IuFp2JBtNJd/view?usp=sharing)--, потупили декілька хвилин, але врешті-решт змогли зрозуміти загадку та ввели правильний пароль!"""
)
# Stage 16
@app.on_message(
~filters.scheduled & filters.command(["hinotori"], prefixes=["/"]) & filters.private
)
async def cmd_event_16(app: Client, msg: Message):
if not await stage_passer(15, 16, msg.from_user):
return
await msg.reply_text(
"""Коли ви ввели пароль, двері відчинилися. Всередині панувала кромішня темрява, і, судячи з ехо від ваших кроків, приміщення було повністю пустим. Раптом, над вами загорілися прожектори, і кімната залилася сліпучим білим світлом. Звідкись з-під даху роздався скрип динаміків - і знайомий вам кролячий голос почав говорити:
- А ще трохи - і було б запізно. Дозвольте привітати вас із тим, що ви змогли розгадати всі мої загадки! Паска, що ви шукаєте, вже доставлена до офісу Субару. Що ж це ви так поспішали, що аж забули зачинити двері? Дякуючи цьому, я змогла знайти те, що так давно шукала! Але не хвилюйтеся, паску, що послужила такою чудовою заманкою, я вам повертаю цілою та непошкодженою. Ще побачимося! AH↓HA↑HA↓HA↑HA↓HA↑HA↓HA↑HA↓
Як ви і думали, по поверненню до офіса Субару, ви виявили повний бардак. Всі шкафи були вивернуті, а документи розкидані по всій кімнаті. Очевидно, це свідчило про крадіж. Дехто провів тут багато часу, раз зміг поперевертати кожен куточок. І хоч парад Голо-сіті був врятований, а нинішня справа закрита, вас тепер мучило питання, що ж таке було необхідне Пекорі, що вона вдалася до таких заходів, щоб вас збити з пантелику та заплутати. Ви були впевнені, що дуже скоро ви про неї почуєте знову…"""
)
# Stage BONUS
@app.on_message(
~filters.scheduled & filters.command(["konami"], prefixes=["/"]) & filters.private
)
async def cmd_event_bonus(app: Client, msg: Message):
if not await stage_passer(4, -1, msg.from_user):
return
await msg.reply_photo(
path.join("assets", "event_easter_2023", "stage_bonus.jpg"),
caption="""Раптом, стіна почала рухатися, відкриваючи вам прохід. Ви повільно зайшли всередину і побачили якусь дівчину із кролячими вухами. Помітивши вас, вона повернулась і, посміхаючись, промовила:
- Вибач, але твоє яйце знаходиться в іншій печері. Тут тільки я і мій друг - П'ятнична Ніч.
Відвернувшись від вас, вона продовжила спілкуватися з великоднім яйцем, а ви, не бажаючи їй заважати, спішно покинули печеру і повернулися до найпершої розвилки.
__(Введіть команду /next для продовження сюжету.)__""",
)