Preparing for translations

This commit is contained in:
Vladislav Khorev 2026-07-05 17:53:13 +03:00
parent bd994a8690
commit a98f71676d
12 changed files with 145 additions and 6430 deletions

View File

@ -333,77 +333,77 @@
],
"lines": [
{
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"text": "Опаздывающие, заходите скорее и занимайте свои места! Лекция начинается!",
"durationMs": 4000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"text": "В эпизоде \"Семетей\" трилогии \"Манас\", изменники Канчоро и Кыяз захватывают власть над кыргызами.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"text": "Чтобы спасти раненого богатыря Семетея, фея Кёкмончок с помощью заклинания уводит его в иной мир.",
"durationMs": 3201,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"text": "Этот мир описан в эпосе Манас как Кайып или Аль-Гайб, но некоторые ученые называют его миром теней.",
"durationMs": 3202,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"text": "В этом мире обитают феи, духи и джинны. Простым смертным в этот мир дорога закрыта.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"text": "Время там течет по другому - за один день в теневом мире могут пройти годы жизни обычного мира.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"text": "Обычно, мир теней никак не пересекается с нашим миром живых людей.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"text": "Но в критические моменты для народа, обитатели теневого мира могут приходить в наш мир.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"text": "Совсем недавно закончилась пандемия, а сегодня мир захлестнули кровавые войны.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"text": "В такие кризисные моменты истории, грань между мирами становится особенно тонкой.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"text": "На сегодня лекция завершена. Все свободны! Задания на этот модуль вы получите индивидуально!",
"durationMs": 4000,
"waitForConfirm": false,

View File

@ -1,744 +0,0 @@
{
"dialogues": [
{
"id": "dialog_start001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Новый день! Я проснулся, позавтракал и готов поехать в универ! Надо проверить телефон, и не забыть взять свою записную книжку.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_phone001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Я не буду никуда идти без своего телефона и записной книжки!",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_chat_parents001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Отец",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Бекзат, сынок, мы c мамой тебе отправили немного денег, постарайся прожить на эти деньги до конца недели!",
"next": "line_2",
"chatBubble": "in"
},
{
"id": "line_2",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Спасибо!",
"next": "end_1",
"chatBubble": "out"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_chat_news001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Отец",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Жители Бишкека все чаще жалуются на депрессию и апатию. Смотрите свежее видео об этом на нашем канале!",
"next": "end_1",
"chatBubble": "in"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_chat_aiperi001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Бекзат, помнишь мы скидывались на торт для Аиды Джаныбековой? Я тогда еще приносила скатерть, тарелки и нож для торта. И я до сих пор не получила назад ничего.",
"next": "line_2",
"chatBubble": "in"
},
{
"id": "line_2",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Скатерть и тарелки вроде бы лежат в студзоне.",
"next": "line_3",
"chatBubble": "out"
},
{
"id": "line_3",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "А нож?",
"next": "line_4",
"chatBubble": "in"
},
{
"id": "line_4",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Нож, наверное, так и остался в учительской.",
"next": "line_5",
"chatBubble": "out"
},
{
"id": "line_5",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "А давай не \"наверное\"?",
"next": "line_6",
"chatBubble": "in"
},
{
"id": "line_6",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "А давай ты приедешь в универ, зайдешь в учительскую, заберешь нож и отдашь мне?",
"next": "line_7",
"chatBubble": "in"
},
{
"id": "line_7",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "У вас сегодня как раз Аида ведет лекцию. После лекции попросишь у нее ключи от учительской и заберешь нож.",
"next": "line_8",
"chatBubble": "in"
},
{
"id": "line_8",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Почему ты сама не можешь забрать?",
"next": "line_9",
"chatBubble": "out"
},
{
"id": "line_9",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Ты же знаешь, если я встречу Аиду, она 100% даст мне какое-нибудь сложное задание.",
"next": "line_10",
"chatBubble": "in"
},
{
"id": "line_10",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "И потом, это ты у меня брал нож, с чего я должна ходить искать его по всему универу?",
"next": "line_11",
"chatBubble": "in"
},
{
"id": "line_11",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Так что жду тебя в универе! Не вздумай прогулять!",
"next": "setflag_1",
"chatBubble": "in",
"questUnlock": "aiperi_knife"
},
{
"id": "setflag_1",
"type": "SetFlag",
"effects": [
{
"flag": "aiperi_knife_aware",
"value": 1
}
],
"next": "end_1"
},
{
"id": "end_1",
"luaCallback": "on_aiperi_dialog_over",
"type": "End"
}
]
},
{
"id": "dialog_chat_aiperi002",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Бекзат, ты где? Я жду тебя возле лестницы.",
"next": "end_1",
"chatBubble": "in"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_no_sleep001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Я сейчас не хочу спать.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_phone_pickup001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Отлично, вот и мой телефон! Надо проверить новые сообщения.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "door_bathroom_dialog001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Здесь у меня душ и туалет.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "door_bathroom_alik_dialog001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Я не буду лезть в ванную комнату к Алику.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "door_locked_dialog001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Дверь закрыта. Кажется, сюда все еще никто не заселился.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_journal_pickup001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Возьму журнал с собой! Там все мои записи.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_taxi001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Прежде чем выходить наружу, я должен заказать такси до универа.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_taxi002",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Я заказал такси до универа, машина уже ждет!",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_taxi004",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Я уже заказал такси, машина уже ждет!",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_second_floor001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "На втором этаже женское общежитие, мне там делать нечего.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_alik001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "Привет Бекзат! Давно я не видел тебя на парах!",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "door_alik_dialog001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Тук тук!",
"next": "line_2"
},
{
"id": "line_2",
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "Заходи!",
"next": "end_1"
},
{
"id": "end_1",
"type": "End",
"luaCallback": "alik_door_open_callback"
}
]
},
{
"id": "door_alik_dialog002",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Не стоит сейчас беспокоить Алика, лучше я зайду к нему днем.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_alik002",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "Привет Бекзат!",
"next": "line_2"
},
{
"id": "line_2",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Привет Алик! Разговор есть.",
"next": "line_3"
},
{
"id": "line_3",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "С тобой на курсе училась Бегимай, ты ее помнишь?",
"next": "line_4"
},
{
"id": "line_4",
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "Конечно помню! Я тебе даже больше расскажу.",
"next": "line_5"
},
{
"id": "line_5",
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "В тот день она принесла свою курсовую, чтобы сдать.",
"next": "line_6"
},
{
"id": "line_6",
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "Но в тот день в учительской происходила генеральная уборка.",
"next": "line_7"
},
{
"id": "line_7",
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "И получилось так, что ее курсовая оказалась в стопке бумаг на выброс.",
"next": "line_8"
},
{
"id": "line_8",
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "Курсовая работа пропала, Бегимай получила за нее ноль баллов, и не прошла отбор в Германию.",
"next": "line_9"
},
{
"id": "line_9",
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "Поэтому с горя она выпрыгнула из окна лекционного зала и убилась.",
"next": "line_10"
},
{
"id": "line_10",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "А ты откуда все это знаешь?",
"next": "line_11"
},
{
"id": "line_11",
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "Я видел как ее курсовую уносили вместе с другой макулатурой из учительской.",
"next": "line_12"
},
{
"id": "line_12",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "И где сейчас ее курсовая работа?",
"next": "line_13"
},
{
"id": "line_13",
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "За зданием универа есть контейнер с кучей бумажного мусора и макулатурой.",
"next": "line_14"
},
{
"id": "line_14",
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "Скорее всего, курсовая до сих пор лежит где-то там.",
"next": "line_15"
},
{
"id": "line_15",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Спасибо Алик! Ты мне очень помог.",
"next": "line_16"
},
{
"id": "line_16",
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "Да без проблем! Обращайся если что.",
"objectiveComplete": "ghost_lore.ghost_lore_alik",
"objectiveVisible": "ghost_lore.ghost_lore_alik",
"questUnlock": "ghost_coursework",
"next": "setflag_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_alik003",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "Привет Бекзат! Надеюсь ты нашел то что ищешь.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_video001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Ого, пока я залипал в телефоне, уже наступила ночь!",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_video002",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Я не буду сейчас смотреть видеоролики, давай лучше пойдем спать.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_video003",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Мне некогда деградировать сегодня, у меня много дел!",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
}
],
"cutscenes": [
{
"id": "sleep_cutscene001",
"background": "resources/test_cutscene001.png",
"onFadeInCallback": "on_sleep_cutscene",
"durationMs": 5000,
"fadeOutMs": 500,
"fadeInMs": 500,
"endFadeOutMs": 500,
"endFadeInMs": 500,
"cameraTrack": [
{
"durationMs": 3000,
"from": {
"focusX": 0.3,
"focusY": 0.5,
"zoom": 1.1,
"rotationDeg": 0.0
},
"to": {
"focusX": 0.7,
"focusY": 0.5,
"zoom": 1.0,
"rotationDeg": 0.0
},
"easing": "EaseInOutSine"
},
{
"durationMs": 3000,
"from": {
"focusX": 0.3,
"focusY": 0.5,
"zoom": 1.0,
"rotationDeg": 0.0
},
"to": {
"focusX": 0.7,
"focusY": 0.5,
"zoom": 1.1,
"rotationDeg": 0.0
},
"easing": "EaseInOutCubic"
}
],
"lines": [
{
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Я завалился спать и уснул.",
"durationMs": 3000
},
{
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "И я проспал аж до обеда.",
"durationMs": 3000
}
]
}
]
}

File diff suppressed because it is too large Load Diff

View File

@ -756,7 +756,7 @@
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "А ведь у нас в этом году новая преподавательница, Аида Дженибековна!",
"text": "А ведь у нас в этом году новая преподавательница, Аида Джаныбековна!",
"next": "line_27"
},
{
@ -828,7 +828,7 @@
"type": "Line",
"speaker": "Алик",
"portrait": "resources/dialogue/portrait_student_boy.png",
"text": "Говорят, ей не очень нравится наша новая преподавательница по манасоведению, Аида Дженибековна.",
"text": "Говорят, ей не очень нравится наша новая преподавательница по манасоведению, Аида Джаныбековна.",
"next": "line_23"
},
{

View File

@ -1,407 +0,0 @@
{
"dialogues": [
{
"id": "door_dialog001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Дверь закрыта на ключ.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_contaier001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Это куча строительного мусора, я не буду в ней копаться!",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_contaier003",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Я уже забрал курсовую работу Бегимай, больше мне незачем сюда лезть.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_contaier002",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Если Алик не соврал, курсовая работа Бегимай лежит где-то тут.",
"next": "line_2"
},
{
"id": "line_2",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "[Копается в куче мусора]",
"next": "line_3"
},
{
"id": "line_3",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Ага, нашел! Вот и она!",
"luaCallback": "dialog_contaier002_get_coursework",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_contaier003",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Я уже нашел в этой куче мусора то, что мне нужно.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_taxi001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Прежде чем выходить за ворота, я должен заказать такси до общаги.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_taxi002",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Я заказал такси до общаги, машина уже ждет!",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_taxi004",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Я уже заказал такси, машина уже ждет!",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_video001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Ого, пока я залипал в приложении, уже наступила ночь!",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_video002",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Я не буду сейчас смотреть видеоролики, давай лучше вернемся в общагу и пойдем спать.",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_video003",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Мне некогда деградировать сегодня, у меня много дел!",
"next": "end_1"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_chat_parents001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Отец",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Бекзат, сынок, мы c мамой тебе отправили немного денег, постарайся прожить на эти деньги до конца недели!",
"next": "line_2",
"chatBubble": "in"
},
{
"id": "line_2",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Спасибо!",
"next": "end_1",
"chatBubble": "out"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_chat_news001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Отец",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Жители Бишкека все чаще жалуются на депрессию и апатию. Смотрите свежее видео об этом на нашем канале!",
"next": "end_1",
"chatBubble": "in"
},
{
"id": "end_1",
"type": "End"
}
]
},
{
"id": "dialog_chat_aiperi001",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Бекзат, помнишь мы скидывались на торт для Аиды Джаныбековой? Я тогда еще приносила скатерть, тарелки и нож для торта. И я до сих пор не получила назад ничего.",
"next": "line_2",
"chatBubble": "in"
},
{
"id": "line_2",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Скатерть и тарелки вроде бы лежат в студзоне.",
"next": "line_3",
"chatBubble": "out"
},
{
"id": "line_3",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "А нож?",
"next": "line_4",
"chatBubble": "in"
},
{
"id": "line_4",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Нож, наверное, так и остался в учительской.",
"next": "line_5",
"chatBubble": "out"
},
{
"id": "line_5",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "А давай не \"наверное\"?",
"next": "line_6",
"chatBubble": "in"
},
{
"id": "line_6",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "А давай ты приедешь в универ, зайдешь в учительскую, заберешь нож и отдашь мне?",
"next": "line_7",
"chatBubble": "in"
},
{
"id": "line_7",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "У вас сегодня как раз Аида ведет лекцию. После лекции попросишь у нее ключи от учительской и заберешь нож.",
"next": "line_8",
"chatBubble": "in"
},
{
"id": "line_8",
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Почему ты сама не можешь забрать?",
"next": "line_9",
"chatBubble": "out"
},
{
"id": "line_9",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Ты же знаешь, если я встречу Аиду, она 100% даст мне какое-нибудь сложное задание.",
"next": "line_10",
"chatBubble": "in"
},
{
"id": "line_10",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "И потом, это ты у меня брал нож, с чего я должна ходить искать его по всему универу?",
"next": "line_11",
"chatBubble": "in"
},
{
"id": "line_11",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Так что жду тебя в универе! Не вздумай прогулять!",
"next": "setflag_1",
"chatBubble": "in",
"questUnlock": "aiperi_knife"
},
{
"id": "setflag_1",
"type": "SetFlag",
"effects": [
{
"flag": "aiperi_knife_aware",
"value": 1
}
],
"next": "end_1"
},
{
"id": "end_1",
"luaCallback": "on_aiperi_dialog_over",
"type": "End"
}
]
},
{
"id": "dialog_chat_aiperi002",
"start": "line_1",
"nodes": [
{
"id": "line_1",
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_phone.png",
"text": "Бекзат, ты где? Я жду тебя возле лестницы.",
"next": "end_1",
"chatBubble": "in"
},
{
"id": "end_1",
"type": "End"
}
]
}
]
}

View File

@ -420,7 +420,7 @@
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Кажется, на этой машине в универ приезжает Аида Дженибековна.",
"text": "Кажется, на этой машине в универ приезжает Аида Джаныбековна.",
"next": "end_1"
},
{

File diff suppressed because it is too large Load Diff

View File

@ -236,7 +236,7 @@
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_aiperi.png",
"text": "Да... Только не говори Аиде Дженибековой что я здесь.",
"text": "Да... Только не говори Аиде Джаныбековой что я здесь.",
"next": "line_18"
},
{
@ -268,7 +268,7 @@
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_aiperi.png",
"text": "Постарайся только Аиде Дженибековой особо на глаза не попадаться. ",
"text": "Постарайся только Аиде Джаныбековой особо на глаза не попадаться. ",
"next": "line_23"
},
{
@ -450,7 +450,7 @@
{
"id": "line_1",
"type": "Line",
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"portrait": "resources/dialogue/portrait_teacher.png",
"text": "Бекзат, что тебе нужно?",
"next": "condition_1"
@ -751,7 +751,7 @@
{
"id": "line_1",
"type": "Line",
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"portrait": "resources/dialogue/portrait_teacher.png",
"text": "Бекзат, ты что делаешь в учительской?",
"next": "line_7"
@ -817,7 +817,7 @@
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Извините, Аида Дженибековна, я могу пойти уже?",
"text": "Извините, Аида Джаныбековна, я могу пойти уже?",
"next": "line_13"
},
{
@ -839,7 +839,7 @@
{
"id": "line_2",
"type": "Line",
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"portrait": "resources/dialogue/portrait_teacher.png",
"text": "Подготовь эссе по теме \"Манас в изложении Жусупа Мамая\".",
"next": "line_15"
@ -855,7 +855,7 @@
{
"id": "line_3",
"type": "Line",
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"portrait": "resources/dialogue/portrait_teacher.png",
"text": "Книга про Жусупа Мамая лежит в библиотеке, но забирать ее из библиотеки нельзя.",
"next": "line_4"
@ -871,7 +871,7 @@
{
"id": "line_5",
"type": "Line",
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"portrait": "resources/dialogue/portrait_teacher.png",
"text": "Там в библиотеке есть компьютер, напиши презентацию прямо на нем.",
"next": "line_16"
@ -941,14 +941,14 @@
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Аида Дженибековна, вы помните Бегимай? Она вам курсовую хотела сдать.",
"text": "Аида Джаныбековна, вы помните Бегимай? Она вам курсовую хотела сдать.",
"objectiveComplete": "ghost_lore.ghost_lore_teacher",
"next": "line_2"
},
{
"id": "line_2",
"type": "Line",
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"portrait": "resources/dialogue/portrait_teacher.png",
"text": "Да, она говорила что приносила курсовую, но у меня ее нигде нет.",
"next": "line_3"
@ -956,7 +956,7 @@
{
"id": "line_3",
"type": "Line",
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"portrait": "resources/dialogue/portrait_teacher.png",
"text": "Если ты найдешь и покажешь мне ее курсовую работу, я выставлю ей оценку.",
"next": "end_1"
@ -1005,7 +1005,7 @@
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Аида Дженибековна, здравствуйте!",
"text": "Аида Джаныбековна, здравствуйте!",
"objectiveComplete": "ghost_lore.ghost_lore_teacher",
"next": "line_2"
},
@ -1020,7 +1020,7 @@
{
"id": "line_3",
"type": "Line",
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"portrait": "resources/dialogue/portrait_teacher.png",
"text": "Хорошо, давай посмотрим.",
"next": "line_4"
@ -1028,7 +1028,7 @@
{
"id": "line_4",
"type": "Line",
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"portrait": "resources/dialogue/portrait_teacher.png",
"text": "Да, я вижу что курсовая написана хорошо, я ставлю ей максимальный балл.",
"objectiveComplete": "ghost_coursework.ghost_coursework_mark",
@ -1037,7 +1037,7 @@
{
"id": "line_5",
"type": "Line",
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"portrait": "resources/dialogue/portrait_teacher.png",
"text": "Вот держи зачетку с оценкой.",
"objectiveComplete": "ghost_release.ghost_release_mark",
@ -1082,7 +1082,7 @@
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Иначе Аида Дженибековна меня убъет.",
"text": "Иначе Аида Джаныбековна меня убъет.",
"next": "end_1"
},
{
@ -2401,7 +2401,7 @@
"type": "Line",
"speaker": "Айпери",
"portrait": "resources/dialogue/portrait_aiperi.png",
"text": "Поэтому, с этого года у нас этот предмет ведет Аида Дженибековна.",
"text": "Поэтому, с этого года у нас этот предмет ведет Аида Джаныбековна.",
"next": "line_23"
},
{
@ -3083,7 +3083,7 @@
{
"id": "line_3",
"type": "Line",
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"portrait": "resources/dialogue/portrait_teacher.png",
"text": "Пока не выполнишь свое задание на модуль, можешь даже и не подходить ко мне.",
"next": "end_1"
@ -3103,7 +3103,7 @@
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Здравствуйте Аида Дженибековна!",
"text": "Здравствуйте Аида Джаныбековна!",
"objectiveComplete": "",
"next": "condition_8"
},
@ -3133,13 +3133,13 @@
"type": "Line",
"speaker": "Бекзат",
"portrait": "resources/dialogue/portrait_hero_neutral.png",
"text": "Прощу прощения Аида Дженибековна, я правда старался, но у меня возникли обстоятельства непреодолимой силы.",
"text": "Прощу прощения Аида Джаныбековна, я правда старался, но у меня возникли обстоятельства непреодолимой силы.",
"next": "line_3"
},
{
"id": "line_3",
"type": "Line",
"speaker": "Аида Дженибековна",
"speaker": "Аида Джаныбековна",
"portrait": "resources/dialogue/portrait_teacher.png",
"text": "И что же помешало тебе написать эссе?",
"next": "line_4"

View File

@ -0,0 +1,70 @@
{
"root": {
"type": "FrameLayout",
"width": "match_parent",
"height": "match_parent",
"children": [
{
"type": "StaticImage",
"name": "languageBkg",
"width": "match_parent",
"height": "match_parent",
"texture": "resources/w/ui/img/main/bkg.png"
},
{
"type": "LinearLayout",
"orientation": "vertical",
"horizontal_gravity": "center",
"vertical_gravity": "center",
"horizontal_align": "left",
"width": 500,
"height": 600,
"spacing": 20,
"children": [
{
"type": "TextView",
"name": "languageTitleText",
"width": 500,
"height": 60,
"text": "Язык / Language",
"fontSize": 40,
"textCentered": true,
"color": [1.0, 1.0, 1.0, 1.0]
},
{
"type": "TextButton",
"name": "languageRussianButton",
"width": 500,
"height": 80,
"text": "Русский",
"fontSize": 48,
"textCentered": true,
"color": [0.2, 0.9, 0.2, 1.0]
},
{
"type": "TextButton",
"name": "languageEnglishButton",
"width": 500,
"height": 80,
"text": "English",
"fontSize": 48,
"textCentered": true,
"color": [0.2, 0.9, 0.2, 1.0]
}
]
},
{
"type": "TextButton",
"name": "languageBackButton",
"horizontal_gravity": "center",
"vertical_gravity": "bottom",
"y": 40,
"width": 200,
"height": 60,
"text": "Назад",
"fontSize": 40,
"textCentered": true
}
]
}
}

View File

@ -52,7 +52,7 @@
"type": "TextButton",
"name": "menuStartButton",
"width": 300,
"height": 70,
"height": 60,
"text": "Начать игру",
"fontSize": 48,
"textCentered": true
@ -61,7 +61,7 @@
"type": "TextButton",
"name": "menuLoadButton",
"width": 300,
"height": 70,
"height": 60,
"text": "Загрузить игру",
"fontSize": 48,
"textCentered": true
@ -70,10 +70,19 @@
"type": "TextButton",
"name": "menuSettingsButton",
"width": 300,
"height": 70,
"height": 60,
"text": "Настройки",
"fontSize": 48,
"textCentered": true
},
{
"type": "TextButton",
"name": "menuLanguageButton",
"width": 300,
"height": 60,
"text": "Язык / Language",
"fontSize": 48,
"textCentered": true
},
{
"type": "TextButton",
@ -88,7 +97,7 @@
"type": "TextButton",
"name": "menuExitButton",
"width": 300,
"height": 70,
"height": 60,
"text": "Выход",
"fontSize": 48,
"textCentered": true

View File

@ -166,6 +166,7 @@ namespace ZL {
mainMenuRoot = loadUiFromFile("resources/w/ui/screen_main_menu.json", renderer, zipFile);
aboutScreenRoot = loadUiFromFile("resources/w/ui/screen_about.json", renderer, zipFile);
settingsScreenRoot = loadUiFromFile("resources/w/ui/screen_settings.json", renderer, zipFile);
languageScreenRoot = loadUiFromFile("resources/w/ui/screen_language.json", renderer, zipFile);
loadSavedGameScreenRoot = loadUiFromFile("resources/w/ui/screen_load.json", renderer, zipFile);
saveGameScreenRoot = loadUiFromFile("resources/w/ui/screen_save.json", renderer, zipFile);
@ -289,11 +290,15 @@ namespace ZL {
uiManager.setTextButtonCallback("menuSettingsButton", [this](const std::string&) {
showSettingsScreen();
});
uiManager.setTextButtonCallback("menuLanguageButton", [this](const std::string&) {
showLanguageScreen();
});
uiManager.setTextButtonCallback("menuLoadButton", [this](const std::string&) {
showLoadGameScreen();
});
#ifndef EMSCRIPTEN
uiManager.setTextButtonCallback("menuExitButton", [this](const std::string&) {
Environment::exitGameLoop = true;
@ -392,6 +397,26 @@ namespace ZL {
Environment::setFullscreen(!Environment::isFullscreen);
refreshFullscreenToggle();
});
uiManager.setTextButtonCallback("languageButton", [this](const std::string&) {
showLanguageScreen();
});
}
void MenuManager::showLanguageScreen() {
uiManager.pushMenuFromSavedRoot(languageScreenRoot);
uiManager.setTextButtonCallback("languageBackButton", [this](const std::string&) {
saveSettings();
uiManager.popMenu();
uiManager.updateAllLayouts();
});
uiManager.setTextButtonCallback("languageRussianButton", [this](const std::string&) {
});
uiManager.setTextButtonCallback("languageEnglishButton", [this](const std::string&) {
});
}
void MenuManager::showLoadGameScreen()

View File

@ -145,6 +145,7 @@ namespace ZL {
void showAboutScreen();
void showSettingsScreen();
void showLanguageScreen();
void showLoadGameScreen();
void showSaveGameScreen();
@ -233,6 +234,7 @@ namespace ZL {
std::shared_ptr<UiNode> mainMenuRoot;
std::shared_ptr<UiNode> aboutScreenRoot;
std::shared_ptr<UiNode> settingsScreenRoot;
std::shared_ptr<UiNode> languageScreenRoot;
std::shared_ptr<UiNode> loadSavedGameScreenRoot;
std::shared_ptr<UiNode> saveGameScreenRoot;