# █████████████████████████████████████████ # █────██────█────█────█───█────█────█────█ # █─██──█─██─█─██─█─██─██─██─██─█─██─█─██─█ # █─██──█─██─█────█─██─██─██─██─█────█─██─█ # █─██──█─██─█─█─██─██─██─██─██─█─█─██─██─█ # █────██────█─█─██────██─██────█─█─██────█ # █████████████████████████████████████████ # # # Copyright 2022 t.me/Dorotoro # https://www.gnu.org/licenses/agpl-3.0.html # # meta banner: https://raw.githubusercontent.com/dorotorothequickend/DorotoroModules/main/banners/Dor%D0%BEtoroSimpleRoleplay.png # meta developer: @DorotoroMods from .. import loader, utils import random @loader.tds class SimpleRolePlay(loader.Module): """Базовые команды для текстовых ролевых игр.""" strings = { "name": "Simple RolePlay", "symbol": "Символ который используется в конце и в начале /me. (например, звезда)", "not_args": "😰 Вы неправильно вписали действие или же не указали его вовсе. Попробуйте еще раз.", } def __init__(self): self.config = loader.ModuleConfig( loader.ConfigValue( "symbol", None, doc=lambda: self.strings("symbol") ), ) @loader.command() async def me(self, message): "<действие> - сообщает об исполнителе команды от первого лица. Пример использования: .me открыл браузер. Также есть доп. настройка в .config" args = utils.get_args_raw(message) if not args: return await utils.answer(message, self.strings("not_args")) me = self.client.hikka_me nickname = f'{me.first_name} {me.last_name if me.last_name else ""}' cfg = self.config["symbol"] if cfg: await utils.answer(message, f"🌀 {cfg}{nickname} {args}{cfg}") else: await utils.answer(message, f"🌀 {nickname} {args}") @loader.command() async def do(self, message): "<действие> - предназначена для описания событий и подробностей игрового мира в настоящем времени, не относящихся конкретно к определённым людям. Пример использования: .do В кармане Дороторо лежит пистолет и пара гранат." args = utils.get_args_raw(message) if not args: await utils.answer(message, self.strings("not_args")) me = self.client.hikka_me nickname = f'{me.first_name} {me.last_name if me.last_name else ""}' await utils.answer(message, f"🌀 {args} - | {nickname}") @loader.command() async def otry(self, message): "<действие> - предназначена для решения спорных и неоднозначных ситуаций, где события могут развиваться по нескольким сценариям, либо если требуется случайная вероятность удачи того или иного действия. Пример использования: .try завёл машину." args = utils.get_args_raw(message) if not args: await utils.answer(message, self.strings("not_args")) me = self.client.hikka_me nickname = f'{me.first_name} {me.last_name if me.last_name else ""}' tryr = random.choice([ " Удачно ", " Неудачно " ]) await utils.answer(message, f"🌀 {nickname} {args} - | {tryr}") @loader.command() async def todo(self, message): "<действие> <фраза>- совмещает описание окружающей обстановки, действие от 3го лица (см. описание .do) с одновременной фразой своего персонажа. Пример использования: .todo Спокойной ночи. засыпая" args = utils.get_args(message) if not args: await utils.answer(message, self.strings("not_args")) arg1, arg2 = args[0], " ".join(args[1:]) me = self.client.hikka_me nickname = f'{me.first_name} {me.last_name if me.last_name else ""}' await utils.answer(message, f"🌀 '{arg1}', - сказал {nickname}, {arg2}.")