Fixing ui bugs, added cutscenes

This commit is contained in:
Vladislav Khorev 2026-06-27 22:05:19 +03:00
parent 9aeb0b1194
commit 5516d02e2c
18 changed files with 2100 additions and 222 deletions

View File

@ -0,0 +1,929 @@
{
"cutscenes": [
{
"id": "lection_cutscene001",
"skippable": true,
"durationMs": 37000,
"fadeOutMs": 500,
"fadeInMs": 500,
"endFadeOutMs": 0,
"endFadeInMs": 2000,
"onFadeInCallback": "on_lection_cutscene_fadein_callback",
"imageSegments": [
{
"path": "resources/black.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 37052,
"fadeInMs": 0,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 6133,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "Linear",
"from": {
"centerX": 0.51,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.58,
"centerY": 0.5,
"scale": 1.15
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida1_x.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 6150,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "Linear",
"from": {
"centerX": 0.52,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.575,
"centerY": 0.5,
"scale": 1.15
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 6167,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "Linear",
"from": {
"centerX": 0.56,
"centerY": 0.36,
"scale": 1.3
},
"to": {
"centerX": 0.5,
"centerY": 0.37,
"scale": 1.4
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 6000,
"endMs": 15100,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.56,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1.1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida3_x.png",
"width": 1280,
"height": 720,
"startMs": 6050,
"endMs": 15166,
"fadeInMs": 1100,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.52,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1.1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 6066,
"endMs": 15083,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.3,
"scale": 1.3
},
"to": {
"centerX": 0.58,
"centerY": 0.3,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 14436,
"endMs": 21470,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.59,
"centerY": 0.5,
"scale": 1.3
},
"to": {
"centerX": 0.49,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida2_x.png",
"width": 1280,
"height": 720,
"startMs": 15348,
"endMs": 21481,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.53,
"centerY": 0.5,
"scale": 1.3
},
"to": {
"centerX": 0.49,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 15388,
"endMs": 21587,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.45,
"centerY": 0.2,
"scale": 1.3
},
"to": {
"centerX": 0.6,
"centerY": 0.2,
"scale": 1.26
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 26588,
"endMs": 32621,
"fadeInMs": 500,
"fadeOutMs": 500,
"easing": "Linear",
"from": {
"centerX": 0.64,
"centerY": 0.7,
"scale": 2
},
"to": {
"centerX": 0.5,
"centerY": 0.7,
"scale": 2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida3_x.png",
"width": 1280,
"height": 720,
"startMs": 26637,
"endMs": 32621,
"fadeInMs": 500,
"fadeOutMs": 500,
"easing": "Linear",
"from": {
"centerX": 0.63,
"centerY": 0.7,
"scale": 2
},
"to": {
"centerX": 0.51,
"centerY": 0.7,
"scale": 2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 20744,
"endMs": 26861,
"fadeInMs": 1000,
"fadeOutMs": 700,
"easing": "EaseOutSine",
"from": {
"centerX": 0.25,
"centerY": 0.8,
"scale": 2.3
},
"to": {
"centerX": 0.3,
"centerY": 0.8,
"scale": 2.3
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 32546,
"endMs": 36229,
"fadeInMs": 500,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.45,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida2_x.png",
"width": 1280,
"height": 720,
"startMs": 32542,
"endMs": 35675,
"fadeInMs": 500,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.43,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 32497,
"endMs": 35580,
"fadeInMs": 0,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.35,
"scale": 1.2
},
"to": {
"centerX": 0.5,
"centerY": 0.4,
"scale": 1.2
}
}
],
"lines": [
{
"speaker": "Аида Дженибековна",
"text": "Опаздывающие, заходите скорее и занимайте свои места! Лекция начинается!",
"durationMs": 4000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "В эпизоде \"Семетей\" трилогии \"Манас\", изменники Канчоро и Кыяз захватывают власть над кыргызами.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Чтобы спасти раненого богатыря Семетея, фея Кёкмончок с помощью заклинания уводит его в иной мир.",
"durationMs": 3201,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Этот мир описан в эпосе Манас как Кайып или Аль-Гайб, но некоторые ученые называют его миром теней.",
"durationMs": 3202,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "В этом мире обитают феи, духи и джинны. Простым смертным в этот мир дорога закрыта.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Время там течет по другому - за один день в теневом мире могут пройти годы жизни обычного мира.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Обычно, мир теней никак не пересекается с нашим миром живых людей.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Но в критические моменты для народа, обитатели теневого мира могут приходить в наш мир.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Совсем недавно закончилась пандемия, а сегодня мир захлестнули кровавые войны.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "В такие кризисные моменты истории, грань между мирами становится особенно тонкой.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "На сегодня лекция завершена. Все свободны! Задания на этот модуль вы получите индивидуально!",
"durationMs": 4000,
"waitForConfirm": false,
"luaCallback": ""
}
]
},
{
"id": "computer_cutscene001",
"skippable": true,
"durationMs": 12000,
"fadeOutMs": 500,
"fadeInMs": 500,
"endFadeOutMs": 0,
"endFadeInMs": 500,
"onFadeInCallback": "on_sleep_cutscene",
"imageSegments": [
{
"path": "resources/black.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 13000,
"fadeInMs": 0,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_background.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 11984,
"fadeInMs": 0,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_books.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 11550,
"fadeInMs": 0,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.46,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.58,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_chair.png",
"width": 1280,
"height": 720,
"startMs": 17,
"endMs": 10767,
"fadeInMs": 0,
"fadeOutMs": 300,
"easing": "Linear",
"from": {
"centerX": 0.47,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.57,
"centerY": 0.5,
"scale": 1.3
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_gg001.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 3083,
"fadeInMs": 0,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.47,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1.15
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_gg002.png",
"width": 1280,
"height": 720,
"startMs": 1850,
"endMs": 4883,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1.15
},
"to": {
"centerX": 0.53,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_gg003.png",
"width": 1280,
"height": 720,
"startMs": 3950,
"endMs": 7083,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.49,
"centerY": 0.5,
"scale": 1.05
},
"to": {
"centerX": 0.55,
"centerY": 0.5,
"scale": 1.1
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_gg004.png",
"width": 1280,
"height": 720,
"startMs": 6050,
"endMs": 10100,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.47,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.53,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_foreground.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 10100,
"fadeInMs": 0,
"fadeOutMs": 3000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
}
],
"lines": [
{
"speaker": "",
"text": "Я сел за компьютер и начал писать эссе по книге",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Книга была очень скучной. Как будто кто-то наложил на книгу чары сна.",
"durationMs": 4000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Неудивительно что я стал понемногу засыпать...",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
}
]
},
{
"id": "darklands_exit001",
"skippable": true,
"durationMs": 12500,
"fadeOutMs": 0,
"fadeInMs": 500,
"endFadeOutMs": 0,
"endFadeInMs": 500,
"onFadeInCallback": "on_darklands_over",
"imageSegments": [
{
"path": "resources/w/cutscenes/cutscene_exit_darklands/img.png",
"width": 1280,
"height": 720,
"startMs": 999,
"endMs": 10115,
"fadeInMs": 0,
"fadeOutMs": 0,
"easing": "EaseInOutQuad",
"from": {
"centerX": 0.85,
"centerY": 0.35,
"scale": 3
},
"to": {
"centerX": 0.6,
"centerY": 0.5,
"scale": 1.3
}
},
{
"path": "resources/w/cutscenes/cutscene_exit_darklands/img2.png",
"width": 1280,
"height": 720,
"startMs": 3000,
"endMs": 10567,
"fadeInMs": 2000,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.85,
"centerY": 0.44,
"scale": 2.4
},
"to": {
"centerX": 0.68,
"centerY": 0.53,
"scale": 1.5
}
},
{
"path": "resources/black.png",
"width": 1280,
"height": 720,
"startMs": 9400,
"endMs": 12500,
"fadeInMs": 1000,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/white.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 2033,
"fadeInMs": 0,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
}
],
"lines": [
{
"speaker": "",
"text": "Мгновенно как я упал без сил, что-то сверкнуло.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Я очнулся и понял, что я по-прежнему в универе.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Все тело болело, как будто я всю ночь таскал мешки с цементом.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "А еще мне сильно хотелось спать...",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
}
]
},
{
"id": "sleep_cutscene001",
"skippable": true,
"durationMs": 9000,
"fadeOutMs": 500,
"fadeInMs": 500,
"endFadeOutMs": 0,
"endFadeInMs": 500,
"onFadeInCallback": "on_sleep_cutscene",
"imageSegments": [
{
"path": "resources/w/cutscenes/cutscene_sleep/img.png",
"width": 1280,
"height": 720,
"startMs": 933,
"endMs": 8033,
"fadeInMs": 0,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.55,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.75,
"centerY": 0.5,
"scale": 3
}
},
{
"path": "resources/black.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 2117,
"fadeInMs": 0,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/black.png",
"width": 1280,
"height": 720,
"startMs": 4967,
"endMs": 9000,
"fadeInMs": 1000,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
}
],
"lines": [
{
"speaker": "",
"text": "Я лег спать и уснул.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Долгожданный сон полностью восстановил мои силы.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Я проснулся на следующий день уже после обеда.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
}
]
},
{
"id": "game_complete_cutscene001",
"skippable": true,
"durationMs": 12000,
"fadeOutMs": 0,
"fadeInMs": 500,
"endFadeOutMs": 0,
"endFadeInMs": 0,
"onFadeInCallback": "",
"imageSegments": [
{
"path": "resources/black.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 13500,
"fadeInMs": 0,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene3/img.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 11117,
"fadeInMs": 2000,
"fadeOutMs": 2000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.53,
"scale": 2.3
},
"to": {
"centerX": 0.5,
"centerY": 0.65,
"scale": 1.3
}
}
],
"lines": [
{
"speaker": "",
"text": "Все призраки исчезли, вокруг стало тихо.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Кажется, у меня получилось изгнать призрака.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Теперь надо добавить этот пункт к себе в резюме.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "В тот момент я еще не знал, что мои приключения еще только начинаются...",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
}
]
}
]
}

View File

@ -0,0 +1,929 @@
{
"cutscenes": [
{
"id": "lection_cutscene001",
"skippable": true,
"durationMs": 37000,
"fadeOutMs": 500,
"fadeInMs": 500,
"endFadeOutMs": 0,
"endFadeInMs": 2000,
"onFadeInCallback": "on_lection_cutscene_fadein_callback",
"imageSegments": [
{
"path": "resources/black.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 37052,
"fadeInMs": 0,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 6133,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "Linear",
"from": {
"centerX": 0.51,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.58,
"centerY": 0.5,
"scale": 1.15
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida1_x.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 6150,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "Linear",
"from": {
"centerX": 0.52,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.575,
"centerY": 0.5,
"scale": 1.15
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 6167,
"fadeInMs": 0,
"fadeOutMs": 2000,
"easing": "Linear",
"from": {
"centerX": 0.56,
"centerY": 0.36,
"scale": 1.3
},
"to": {
"centerX": 0.5,
"centerY": 0.37,
"scale": 1.4
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 6000,
"endMs": 15100,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.56,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1.1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida3_x.png",
"width": 1280,
"height": 720,
"startMs": 6050,
"endMs": 15166,
"fadeInMs": 1100,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.52,
"centerY": 0.5,
"scale": 1.2
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1.1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 6066,
"endMs": 15083,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.3,
"scale": 1.3
},
"to": {
"centerX": 0.58,
"centerY": 0.3,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 14436,
"endMs": 21470,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.59,
"centerY": 0.5,
"scale": 1.3
},
"to": {
"centerX": 0.49,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida2_x.png",
"width": 1280,
"height": 720,
"startMs": 15348,
"endMs": 21481,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.53,
"centerY": 0.5,
"scale": 1.3
},
"to": {
"centerX": 0.49,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 15388,
"endMs": 21587,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.45,
"centerY": 0.2,
"scale": 1.3
},
"to": {
"centerX": 0.6,
"centerY": 0.2,
"scale": 1.26
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 26588,
"endMs": 32621,
"fadeInMs": 500,
"fadeOutMs": 500,
"easing": "Linear",
"from": {
"centerX": 0.64,
"centerY": 0.7,
"scale": 2
},
"to": {
"centerX": 0.5,
"centerY": 0.7,
"scale": 2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida3_x.png",
"width": 1280,
"height": 720,
"startMs": 26637,
"endMs": 32621,
"fadeInMs": 500,
"fadeOutMs": 500,
"easing": "Linear",
"from": {
"centerX": 0.63,
"centerY": 0.7,
"scale": 2
},
"to": {
"centerX": 0.51,
"centerY": 0.7,
"scale": 2
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 20744,
"endMs": 26861,
"fadeInMs": 1000,
"fadeOutMs": 700,
"easing": "EaseOutSine",
"from": {
"centerX": 0.25,
"centerY": 0.8,
"scale": 2.3
},
"to": {
"centerX": 0.3,
"centerY": 0.8,
"scale": 2.3
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_wall_x.png",
"width": 1280,
"height": 720,
"startMs": 32546,
"endMs": 36229,
"fadeInMs": 500,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.45,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_aida2_x.png",
"width": 1280,
"height": 720,
"startMs": 32542,
"endMs": 35675,
"fadeInMs": 500,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.43,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene1/cutscene1_heads_x.png",
"width": 1280,
"height": 720,
"startMs": 32497,
"endMs": 35580,
"fadeInMs": 0,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.35,
"scale": 1.2
},
"to": {
"centerX": 0.5,
"centerY": 0.4,
"scale": 1.2
}
}
],
"lines": [
{
"speaker": "Аида Дженибековна",
"text": "Опаздывающие, заходите скорее и занимайте свои места! Лекция начинается!",
"durationMs": 4000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "В эпизоде \"Семетей\" трилогии \"Манас\", изменники Канчоро и Кыяз захватывают власть над кыргызами.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Чтобы спасти раненого богатыря Семетея, фея Кёкмончок с помощью заклинания уводит его в иной мир.",
"durationMs": 3201,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Этот мир описан в эпосе Манас как Кайып или Аль-Гайб, но некоторые ученые называют его миром теней.",
"durationMs": 3202,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "В этом мире обитают феи, духи и джинны. Простым смертным в этот мир дорога закрыта.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Время там течет по другому - за один день в теневом мире могут пройти годы жизни обычного мира.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Обычно, мир теней никак не пересекается с нашим миром живых людей.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Но в критические моменты для народа, обитатели теневого мира могут приходить в наш мир.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "Совсем недавно закончилась пандемия, а сегодня мир захлестнули кровавые войны.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "В такие кризисные моменты истории, грань между мирами становится особенно тонкой.",
"durationMs": 3200,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "Аида Дженибековна",
"text": "На сегодня лекция завершена. Все свободны! Задания на этот модуль вы получите индивидуально!",
"durationMs": 4000,
"waitForConfirm": false,
"luaCallback": ""
}
]
},
{
"id": "computer_cutscene001",
"skippable": true,
"durationMs": 12000,
"fadeOutMs": 500,
"fadeInMs": 500,
"endFadeOutMs": 0,
"endFadeInMs": 500,
"onFadeInCallback": "on_sleep_cutscene",
"imageSegments": [
{
"path": "resources/black.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 13000,
"fadeInMs": 0,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_background.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 11984,
"fadeInMs": 0,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_books.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 11550,
"fadeInMs": 0,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.46,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.58,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_chair.png",
"width": 1280,
"height": 720,
"startMs": 17,
"endMs": 10767,
"fadeInMs": 0,
"fadeOutMs": 300,
"easing": "Linear",
"from": {
"centerX": 0.47,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.57,
"centerY": 0.5,
"scale": 1.3
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_gg001.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 3083,
"fadeInMs": 0,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.47,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1.15
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_gg002.png",
"width": 1280,
"height": 720,
"startMs": 1850,
"endMs": 4883,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1.15
},
"to": {
"centerX": 0.53,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_gg003.png",
"width": 1280,
"height": 720,
"startMs": 3950,
"endMs": 7083,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.49,
"centerY": 0.5,
"scale": 1.05
},
"to": {
"centerX": 0.55,
"centerY": 0.5,
"scale": 1.1
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_gg004.png",
"width": 1280,
"height": 720,
"startMs": 6050,
"endMs": 10100,
"fadeInMs": 1000,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.47,
"centerY": 0.5,
"scale": 1.1
},
"to": {
"centerX": 0.53,
"centerY": 0.5,
"scale": 1.2
}
},
{
"path": "resources/w/cutscenes/cutscene2/cs2_foreground.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 10100,
"fadeInMs": 0,
"fadeOutMs": 3000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
}
],
"lines": [
{
"speaker": "",
"text": "Я сел за компьютер и начал писать эссе по книге",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Книга была очень скучной. Как будто кто-то наложил на книгу чары сна.",
"durationMs": 4000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Неудивительно что я стал понемногу засыпать...",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
}
]
},
{
"id": "darklands_exit001",
"skippable": true,
"durationMs": 12500,
"fadeOutMs": 0,
"fadeInMs": 500,
"endFadeOutMs": 0,
"endFadeInMs": 500,
"onFadeInCallback": "on_darklands_over",
"imageSegments": [
{
"path": "resources/w/cutscenes/cutscene_exit_darklands/img.png",
"width": 1280,
"height": 720,
"startMs": 999,
"endMs": 10115,
"fadeInMs": 0,
"fadeOutMs": 0,
"easing": "EaseInOutQuad",
"from": {
"centerX": 0.87,
"centerY": 0.35,
"scale": 3.35
},
"to": {
"centerX": 0.7,
"centerY": 0.5,
"scale": 1.8
}
},
{
"path": "resources/w/cutscenes/cutscene_exit_darklands/img2.png",
"width": 1280,
"height": 720,
"startMs": 3000,
"endMs": 10567,
"fadeInMs": 2000,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.9,
"centerY": 0.49,
"scale": 3.75
},
"to": {
"centerX": 0.85,
"centerY": 0.53,
"scale": 2.95
}
},
{
"path": "resources/black.png",
"width": 1280,
"height": 720,
"startMs": 9400,
"endMs": 12500,
"fadeInMs": 1000,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/white.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 2033,
"fadeInMs": 0,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
}
],
"lines": [
{
"speaker": "",
"text": "Мгновенно как я упал без сил, что-то сверкнуло.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Я очнулся и понял, что я по-прежнему в универе.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Все тело болело, как будто я всю ночь таскал мешки с цементом.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "А еще мне сильно хотелось спать...",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
}
]
},
{
"id": "sleep_cutscene001",
"skippable": true,
"durationMs": 9000,
"fadeOutMs": 500,
"fadeInMs": 500,
"endFadeOutMs": 0,
"endFadeInMs": 500,
"onFadeInCallback": "on_sleep_cutscene",
"imageSegments": [
{
"path": "resources/w/cutscenes/cutscene_sleep/img.png",
"width": 1280,
"height": 720,
"startMs": 933,
"endMs": 8033,
"fadeInMs": 0,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.55,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.75,
"centerY": 0.5,
"scale": 3
}
},
{
"path": "resources/black.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 2117,
"fadeInMs": 0,
"fadeOutMs": 1000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/black.png",
"width": 1280,
"height": 720,
"startMs": 4967,
"endMs": 9000,
"fadeInMs": 1000,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
}
],
"lines": [
{
"speaker": "",
"text": "Я лег спать и уснул.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Долгожданный сон полностью восстановил мои силы.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Я проснулся на следующий день уже после обеда.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
}
]
},
{
"id": "game_complete_cutscene001",
"skippable": true,
"durationMs": 12000,
"fadeOutMs": 0,
"fadeInMs": 500,
"endFadeOutMs": 0,
"endFadeInMs": 0,
"onFadeInCallback": "",
"imageSegments": [
{
"path": "resources/black.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 13500,
"fadeInMs": 0,
"fadeOutMs": 0,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
},
"to": {
"centerX": 0.5,
"centerY": 0.5,
"scale": 1
}
},
{
"path": "resources/w/cutscenes/cutscene3/img.png",
"width": 1280,
"height": 720,
"startMs": 0,
"endMs": 11117,
"fadeInMs": 2000,
"fadeOutMs": 2000,
"easing": "Linear",
"from": {
"centerX": 0.5,
"centerY": 0.53,
"scale": 2.3
},
"to": {
"centerX": 0.5,
"centerY": 0.65,
"scale": 1.3
}
}
],
"lines": [
{
"speaker": "",
"text": "Все призраки исчезли, вокруг стало тихо.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Кажется, у меня получилось изгнать призрака.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "Теперь надо добавить этот пункт к себе в резюме.",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
},
{
"speaker": "",
"text": "В тот момент я еще не знал, что мои приключения еще только начинаются...",
"durationMs": 3000,
"waitForConfirm": false,
"luaCallback": ""
}
]
}
]
}

BIN
resources/w/cutscenes/cutscene3/img.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
resources/w/cutscenes/cutscene_exit_darklands/img2.png (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -95,9 +95,9 @@
"type": "StaticImage",
"name": "toast001",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 80,
"width": 504,
"height": 132,
"y": 0,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_received001.png"
},
@ -105,9 +105,9 @@
"type": "StaticImage",
"name": "toast002",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 200,
"width": 504,
"height": 132,
"y": 104,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_removed001.png"
},
@ -115,19 +115,19 @@
"type": "StaticImage",
"name": "toast003",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 320,
"width": 504,
"height": 132,
"y": 208,
"visible" : false,
"texture": "resources/w/ui/img/toast/objective_completed001.png"
"texture": "resources/w/ui/img/toast/quest_completed001.png"
},
{
"type": "TextView",
"name": "toast001text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 170,
"x": 8,
"y": 62,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -149,8 +149,8 @@
"name": "toast002text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 290,
"x": 8,
"y": 166,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -172,8 +172,8 @@
"name": "toast003text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 410,
"x": 8,
"y": 270,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,

View File

@ -139,9 +139,9 @@
"type": "StaticImage",
"name": "toast001",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 80,
"width": 504,
"height": 132,
"y": 0,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_received001.png"
},
@ -149,9 +149,9 @@
"type": "StaticImage",
"name": "toast002",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 200,
"width": 504,
"height": 132,
"y": 104,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_removed001.png"
},
@ -159,19 +159,19 @@
"type": "StaticImage",
"name": "toast003",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 320,
"width": 504,
"height": 132,
"y": 208,
"visible" : false,
"texture": "resources/w/ui/img/toast/objective_completed001.png"
"texture": "resources/w/ui/img/toast/quest_completed001.png"
},
{
"type": "TextView",
"name": "toast001text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 170,
"x": 8,
"y": 62,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -193,8 +193,8 @@
"name": "toast002text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 290,
"x": 8,
"y": 166,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -216,8 +216,8 @@
"name": "toast003text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 410,
"x": 8,
"y": 270,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,

View File

@ -139,9 +139,9 @@
"type": "StaticImage",
"name": "toast001",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 80,
"width": 504,
"height": 132,
"y": 0,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_received001.png"
},
@ -149,9 +149,9 @@
"type": "StaticImage",
"name": "toast002",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 200,
"width": 504,
"height": 132,
"y": 104,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_removed001.png"
},
@ -159,19 +159,19 @@
"type": "StaticImage",
"name": "toast003",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 320,
"width": 504,
"height": 132,
"y": 208,
"visible" : false,
"texture": "resources/w/ui/img/toast/objective_completed001.png"
"texture": "resources/w/ui/img/toast/quest_completed001.png"
},
{
"type": "TextView",
"name": "toast001text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 170,
"x": 8,
"y": 62,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -193,8 +193,8 @@
"name": "toast002text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 290,
"x": 8,
"y": 166,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -216,8 +216,8 @@
"name": "toast003text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 410,
"x": 8,
"y": 270,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,

View File

@ -112,9 +112,9 @@
"type": "StaticImage",
"name": "toast001",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 80,
"width": 504,
"height": 132,
"y": 0,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_received001.png"
},
@ -122,9 +122,9 @@
"type": "StaticImage",
"name": "toast002",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 200,
"width": 504,
"height": 132,
"y": 104,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_removed001.png"
},
@ -132,19 +132,19 @@
"type": "StaticImage",
"name": "toast003",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 320,
"width": 504,
"height": 132,
"y": 208,
"visible" : false,
"texture": "resources/w/ui/img/toast/objective_completed001.png"
"texture": "resources/w/ui/img/toast/quest_completed001.png"
},
{
"type": "TextView",
"name": "toast001text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 170,
"x": 8,
"y": 62,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -166,8 +166,8 @@
"name": "toast002text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 290,
"x": 8,
"y": 166,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -189,8 +189,8 @@
"name": "toast003text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 410,
"x": 8,
"y": 270,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,

View File

@ -95,9 +95,9 @@
"type": "StaticImage",
"name": "toast001",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 80,
"width": 504,
"height": 132,
"y": 0,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_received001.png"
},
@ -105,9 +105,9 @@
"type": "StaticImage",
"name": "toast002",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 200,
"width": 504,
"height": 132,
"y": 104,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_removed001.png"
},
@ -115,19 +115,19 @@
"type": "StaticImage",
"name": "toast003",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 320,
"width": 504,
"height": 132,
"y": 208,
"visible" : false,
"texture": "resources/w/ui/img/toast/objective_completed001.png"
"texture": "resources/w/ui/img/toast/quest_completed001.png"
},
{
"type": "TextView",
"name": "toast001text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 170,
"x": 8,
"y": 62,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -149,8 +149,8 @@
"name": "toast002text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 290,
"x": 8,
"y": 166,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -172,8 +172,8 @@
"name": "toast003text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 410,
"x": 8,
"y": 270,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,

View File

@ -142,9 +142,9 @@
"type": "StaticImage",
"name": "toast001",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 80,
"width": 504,
"height": 132,
"y": 0,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_received001.png"
},
@ -152,9 +152,9 @@
"type": "StaticImage",
"name": "toast002",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 200,
"width": 504,
"height": 132,
"y": 104,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_removed001.png"
},
@ -162,19 +162,19 @@
"type": "StaticImage",
"name": "toast003",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 320,
"width": 504,
"height": 132,
"y": 208,
"visible" : false,
"texture": "resources/w/ui/img/toast/objective_completed001.png"
"texture": "resources/w/ui/img/toast/quest_completed001.png"
},
{
"type": "TextView",
"name": "toast001text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 170,
"x": 8,
"y": 62,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -196,8 +196,8 @@
"name": "toast002text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 290,
"x": 8,
"y": 166,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -219,8 +219,8 @@
"name": "toast003text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 410,
"x": 8,
"y": 270,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,

View File

@ -165,9 +165,9 @@
"type": "StaticImage",
"name": "toast001",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 80,
"width": 504,
"height": 132,
"y": 0,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_received001.png"
},
@ -175,9 +175,9 @@
"type": "StaticImage",
"name": "toast002",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 200,
"width": 504,
"height": 132,
"y": 104,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_removed001.png"
},
@ -185,19 +185,19 @@
"type": "StaticImage",
"name": "toast003",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 320,
"width": 504,
"height": 132,
"y": 208,
"visible" : false,
"texture": "resources/w/ui/img/toast/objective_completed001.png"
"texture": "resources/w/ui/img/toast/quest_completed001.png"
},
{
"type": "TextView",
"name": "toast001text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 170,
"x": 8,
"y": 62,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -219,8 +219,8 @@
"name": "toast002text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 290,
"x": 8,
"y": 166,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -242,8 +242,8 @@
"name": "toast003text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 410,
"x": 8,
"y": 270,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,

View File

@ -158,9 +158,9 @@
"type": "StaticImage",
"name": "toast001",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 80,
"width": 504,
"height": 132,
"y": 0,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_received001.png"
},
@ -168,9 +168,9 @@
"type": "StaticImage",
"name": "toast002",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 200,
"width": 504,
"height": 132,
"y": 104,
"visible" : false,
"texture": "resources/w/ui/img/toast/item_removed001.png"
},
@ -178,19 +178,19 @@
"type": "StaticImage",
"name": "toast003",
"horizontal_gravity": "center",
"width": 672,
"height": 176,
"y": 320,
"width": 504,
"height": 132,
"y": 208,
"visible" : false,
"texture": "resources/w/ui/img/toast/objective_completed001.png"
"texture": "resources/w/ui/img/toast/quest_completed001.png"
},
{
"type": "TextView",
"name": "toast001text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 170,
"x": 8,
"y": 62,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -212,8 +212,8 @@
"name": "toast002text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 290,
"x": 8,
"y": 166,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,
@ -235,8 +235,8 @@
"name": "toast003text",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"y": 410,
"x": 8,
"y": 270,
"x": 54,
"width": 400,
"height": 100,
"visible" : false,

View File

@ -53,7 +53,7 @@
"width": 600,
"height": 137,
"text": "Серебряный нож.",
"fontSize": 60,
"fontSize": 48,
"fontPath": "resources/fonts/DroidSans.ttf",
"textCentered": false,
"topAligned": true,

View File

@ -54,31 +54,39 @@
1.0
]
},
{
"type": "LinearLayout",
"orientation": "horizontal",
"spacing": 10,
"horizontal_gravity": "center",
"vertical_gravity": "top",
"x": 36,
"y": 370,
"width": 640,
"height": 80,
"children": [
{
"type": "StaticImage",
"name": "objective1checkbox",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"width": 60,
"height": 60,
"x": -255,
"y": 380,
"texture": "resources/w/ui/img/journal/quest_objective_completed.png"
},
{
"type": "LinearLayout",
"orientation": "horizontal",
"spacing": 0,
"horizontal_gravity": "center",
"vertical_gravity": "top",
"vertical_align": "bottom",
"name": "objective1nameLayout",
"paddingY": 0,
"width": 540.0,
"height": 60.0,
"x": 56,
"y": 370,
"children": [
{
"type": "TextView",
"name": "objective1name",
"paddingY": 20,
"width": 740.0,
"height": 80.0,
"textPaddingY": 20.0,
"horizontal_gravity": "center",
"vertical_gravity": "top",
"paddingY": -20,
"width": 540.0,
"height": 60.0,
"text": "Цель 1 Цель 1 Цель 1 Цель 1",
"fontSize": 32,
"fontPath": "resources/fonts/DroidSans.ttf",
@ -94,32 +102,39 @@
}
]
},
{
"type": "LinearLayout",
"orientation": "horizontal",
"spacing": 10,
"horizontal_gravity": "center",
"vertical_gravity": "top",
"x": 36,
"y": 450,
"width": 640,
"height": 80,
"children": [
{
"type": "StaticImage",
"name": "objective2checkbox",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"width": 60,
"height": 60,
"x": -255,
"y": 460,
"texture": "resources/w/ui/img/journal/quest_objective_blank.png"
},
{
"type": "LinearLayout",
"orientation": "horizontal",
"name": "objective2nameLayout",
"spacing": 0,
"horizontal_gravity": "center",
"vertical_gravity": "top",
"vertical_align": "bottom",
"width": 540.0,
"height": 80.0,
"x": 56,
"y": 450,
"children": [
{
"type": "TextView",
"name": "objective2name",
"paddingY": 20,
"width": 740.0,
"height": 80.0,
"horizontal_gravity": "center",
"vertical_gravity": "top",
"paddingY": 0,
"width": 540.0,
"height": 60.0,
"text": "Цель 2",
"textPaddingY": 20.0,
"fontSize": 32,
"fontPath": "resources/fonts/DroidSans.ttf",
"textCentered": false,
@ -134,32 +149,39 @@
}
]
},
{
"type": "LinearLayout",
"orientation": "horizontal",
"spacing": 10,
"horizontal_gravity": "center",
"vertical_gravity": "top",
"x": 36,
"y": 530,
"width": 640,
"height": 80,
"children": [
{
"type": "StaticImage",
"name": "objective3checkbox",
"horizontal_gravity": "center",
"vertical_gravity": "top",
"width": 60,
"height": 60,
"x": -255,
"y": 540,
"texture": "resources/w/ui/img/journal/quest_objective_blank.png"
},
{
"type": "LinearLayout",
"orientation": "horizontal",
"spacing": 0,
"horizontal_gravity": "center",
"vertical_gravity": "top",
"vertical_align": "bottom",
"name": "objective3nameLayout",
"paddingY": 0,
"width": 540.0,
"height": 60.0,
"x": 56,
"y": 530,
"children": [
{
"type": "TextView",
"name": "objective3name",
"paddingY": 20,
"width": 740.0,
"height": 80.0,
"horizontal_gravity": "center",
"vertical_gravity": "top",
"width": 540.0,
"height": 60.0,
"text": "Цель 3",
"textPaddingY": 20.0,
"fontSize": 32,
"fontPath": "resources/fonts/DroidSans.ttf",
"textCentered": false,
@ -184,7 +206,7 @@
"horizontal_gravity": "center",
"vertical_gravity": "top",
"text": "А все бегут бегут бегут бегут бегут бегут бегут бегут бегут бегут бегут а мы идем.",
"fontSize": 32,
"fontSize": 24,
"fontPath": "resources/fonts/DroidSans.ttf",
"textCentered": false,
"topAligned": false,

View File

@ -168,10 +168,9 @@ namespace ZL
dialogueSystem.init(renderer, CONST_ZIP_FILE);
dialogueSystem.loadDatabase(params.dialoguesJsonPath);
dialogueSystem.loadCutsceneDatabase("resources/dialogue/cutscenes006.json");
dialogueSystem.loadCutsceneDatabase("resources/dialogue/cutscenes008.json");
dialogueSystem.setQuestJournal(journal);
npcNameText = std::make_unique<TextRenderer>();
if (!npcNameText->init(renderer, "resources/fonts/DroidSans.ttf", 24, CONST_ZIP_FILE)) {
std::cerr << "Failed to init NPC name TextRenderer" << std::endl;

View File

@ -480,6 +480,7 @@ namespace ZL {
}
void MenuManager::selectInventoryItem(int index) {
std::cout << "MenuManager::selectInventoryItem: " << index << std::endl;
const auto& items = inventory->getItems();
if (index < 0 || index >= static_cast<int>(items.size())) return;
@ -1337,6 +1338,7 @@ namespace ZL {
static const char* kCheckboxes[3] = { "objective1checkbox", "objective2checkbox", "objective3checkbox" };
static const char* kObjNames[3] = { "objective1name", "objective2name", "objective3name" };
static const char* kObjNameLayouts[3] = { "objective1nameLayout", "objective2nameLayout", "objective3nameLayout" };
std::vector<const Quest::QuestObjective*> visibleObjs;
for (const auto& obj : def.objectives)
@ -1347,6 +1349,7 @@ namespace ZL {
const auto& obj = *visibleObjs[i];
const bool isActive = (&obj - def.objectives.data() == quest->activeObjectiveIndex);
auto img = uiManager.findStaticImage(kCheckboxes[i]);
auto textView = uiManager.findTextView(kObjNames[i]);
if (img) img->texture = obj.completed ? texObjectiveCompleted_ : texObjectiveBlank_;
std::array<float, 4> color;
if (obj.completed) {
@ -1356,6 +1359,18 @@ namespace ZL {
} else {
color = { 0.996f, 0.977f, 0.761f, 0.9f };
}
const int numLines = countWrappedLines(obj.text, *textView->textRenderer, 540);
if (numLines == 1)
{
uiManager.findNode(kObjNameLayouts[i])->height = 80.0f;
}
else
{
uiManager.findNode(kObjNameLayouts[i])->height = 60.0f;
}
uiManager.setText(kObjNames[i], obj.text);
uiManager.setTextColor(kObjNames[i], color);
uiManager.setNodeVisible(kCheckboxes[i], true);

View File

@ -111,7 +111,7 @@ void CutsceneOverlay::draw(Renderer& renderer, const ZL::Dialogue::PresentationM
const float W = Environment::projectionWidth;
const float H = Environment::projectionHeight;
const UiRect subtitleRect{ W * 0.12f, 22.0f, W * 0.76f, 110.0f };
const UiRect subtitleRect{ W * 0.12f, 22.0f, W * 0.76f, 142.0f };
lastCutsceneAdvanceRect = subtitleRect;
@ -175,28 +175,6 @@ void CutsceneOverlay::draw(Renderer& renderer, const ZL::Dialogue::PresentationM
renderer.DrawVertexRenderStruct(subtitleQuad.mesh);
}
if (model.cutsceneSkippable && cutsceneSkipHintVisible) {
/*const UiRect hintBg{W - 250.0f, H - 62.0f, 226.0f, 42.0f};
skipHintBgQuad.rebuild(hintBg);
glBindTexture(GL_TEXTURE_2D, choiceOptionalTexture->getTexID());
renderer.DrawVertexRenderStruct(skipHintBgQuad.mesh);
const UiRect progressBg{ W - 232.0f, H - 34.0f, 190.0f, 7.0f };
skipProgressBgQuad.rebuild(progressBg);
renderer.DrawVertexRenderStruct(skipProgressBgQuad.mesh);
if (cutsceneSkipHolding) {
const float progress = std::clamp(
static_cast<float>(cutsceneSkipHoldElapsedMs) / static_cast<float>(CutsceneSkipHoldDurationMs),
0.0f, 1.0f
);
const UiRect progressFill{ progressBg.x, progressBg.y, progressBg.w * progress, progressBg.h };
skipProgressFillQuad.rebuild(progressFill);
glBindTexture(GL_TEXTURE_2D, choiceMainTexture->getTexID());
renderer.DrawVertexRenderStruct(skipProgressFillQuad.mesh);
}*/
}
renderer.PopMatrix();
renderer.PopProjectionMatrix();
renderer.shaderManager.PopShader();

View File

@ -293,12 +293,12 @@ void DialogueOverlay::drawPortrait(Renderer& renderer, const PresentationModel&
if (model.mode == PresentationMode::Choice) {
const float choiceTexAspect = static_cast<float>(choiceMainTexture->getWidth())
/ static_cast<float>(choiceMainTexture->getHeight());
const float choiceW = W - leftPad - rightPad;
const float choiceW = W - leftPad - rightPad + 32;
const float choiceH = choiceW / choiceTexAspect;
const float choiceSpacing = 8.f;
const float choiceSpacing = -18.f;
const float totalChoicesH = (choiceH + choiceSpacing) * static_cast<float>(model.choices.size()) - choiceSpacing;
const float choiceStartY = panelTopY - 34.f - totalChoicesH; // below name row
const float choiceStartY = panelTopY - 80.f - totalChoicesH; // below name row
if (choiceQuads.size() < model.choices.size()) {
choiceQuads.resize(model.choices.size());
@ -313,7 +313,7 @@ void DialogueOverlay::drawPortrait(Renderer& renderer, const PresentationModel&
for (size_t i = 0; i < model.choices.size(); ++i) {
const float cy = choiceStartY + (choiceH + choiceSpacing) * static_cast<float>(model.choices.size() - 1 - i);
UiRect rect{ leftPad, cy, choiceW, choiceH };
UiRect rect{ leftPad-16.f, cy, choiceW, choiceH };
lastChoiceRects.push_back(rect);
choiceQuads[i].rebuild(rect);
@ -338,7 +338,7 @@ void DialogueOverlay::drawPortrait(Renderer& renderer, const PresentationModel&
const std::string wrappedChoice = wrapTextToWidth(model.choices[i].text, *choiceRenderer, rect.w - 20.0f, 1.0f);
choiceRenderer->drawText(
wrappedChoice, rect.x + 20.f, rect.y + choiceH * 0.35f, 1.5f, false,
wrappedChoice, rect.x + 20.f, rect.y + choiceH * 0.35f+5.f, 1.4f, false,
isHighlighted ? std::array<float, 4>{1.0f, 1.0f, 1.0f, 1.0f} : color
);
}