Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Упростить синтаксис для создания небольших диалогов #4

Open
SDesya74 opened this issue Aug 15, 2022 · 3 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@SDesya74
Copy link
Contributor

Сейчас, в ситуации, когда надо описать небольшую вариативность выбора, надо писать следующий код:

:menu Выберите ответ в тесте
:opt(#variant_1) Вариант 1
:opt(#variant_2) Вариант 2


#variant_1

Вы угадали!

:move #after_test


#variant_2

Вы не угадали :(

:move #after_test


#after_test

Текст после теста

Таким образом, создаётся по секции диалога на каждый вариант выбора в меню, что работает, когда выборов в диалоге мало. Но как только выборов становится много, или они становятся глубоко вложенными, отображать это в плоском виде становится крайне неудобно.

Есть предложение от @USBashka, позволяющее описывать минисекции инлайном, отделяя отступами варианты, примерно так:

:menu Выберите ответ в тесте
:opt Вариант 1
  Вы угадали!
:opt Вариант 2
  Вы не угадали :(

Текст после теста

Он мне нравится, в целом, но он добавляет значимый отступ, который сильно усложняет парсер и делает отступ значимым, что усложнит написание диалогов. Нужны схожие предложения, которые не обладают упомянутыми недостатками.

@SDesya74 SDesya74 added the enhancement New feature or request label Aug 15, 2022
@SDesya74 SDesya74 self-assigned this Aug 15, 2022
@mech-barry
Copy link

Вот такой вариант

:menu Выберите ответ в тесте
:opt Вариант 1
(1)Вы угадали!
:menu Выберите второй ответ в тесте
:opt Вариант 1.1
Вы угадали!
:opt Вариант 1.2
Вы не угадали :(
:opt Вариант 2
Вы не угадали :(
:menu Выберите второй ответ в тесте
:opt Вариант 2.1
Вы угадали!
:opt Вариант 2.2

Дальнейший текст

@SDesya74
Copy link
Contributor Author

SDesya74 commented Aug 15, 2022

:opt Вариант 1.2
Вы не угадали :(
:opt Вариант 2
Вы не угадали :(

Как отличить, что Вариант 1.2 относится к вложенному меню, а Вариант 2 к внешнему? В меню же не обязательно 2 варианта, их может быть сколько угодно

Мне кажется, для такого надо завести закрывающий тег для :menu и :opt, чтобы было понятно что к чему относится

@mech-barry
Copy link

mech-barry commented Aug 15, 2022

Входные параметры (DracoIsAlive=1:Начало1; DracoIsAlive=0:Начало2)

#Начало1
Гарри: Привет, не мог бы ты передать привет Драко?
Я знаю, мы с ним в последнее время не в ладах, но я всё ещё желаю ему лучшего
Гойл: Босс не желает с Вами разговаривать, мистер Поттер.
Я передам ему Ваши слова, но попрошу вас уйти.
Гарри: Что ж, это тоже отлично. Тогда передай ему следующее
(Я всё ещё хочу стать его другом: Дружба;
Мне очень жаль, что так случилось с его отцом: Сожаление;
Дважды два равно пять: ЗагадочнаяМатематика;
HermioneIsReadyToMeet=1,Гермиона хотела бы встретиться с ним завтра: ПриветОтГермионы)

#Дружба
:changes (изменение переменных)
Гарри: Я всё ещё хочу стать его другом
Гойл: Думаю, [Насмешливо/любые другие модификаторы текста и сопутствующей анимации: он это и так отлично знает]. Если захотите сказать ему что-то более полезное, я передам. Мистер Поттер?
(Мне очень жаль, что так случилось с его отцом: Сожаление;
Дважды два равно пять: ЗагадочнаяМатематика;
HermioneIsReadyToMeet=1,Гермиона хотела бы встретиться с ним завтра: ПриветОтГермионы;
Нет, больше ничего. Хорошего дня, Гойл!: ОкончаниеРазговора)

#ОкончаниеРазговора
Гарри: Нет, больше ничего. Хорошего дня, Гойл!
:exit (выходные переменные)

@SDesya74 SDesya74 added this to the 0.2 milestone Aug 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants