merge
This commit is contained in:
commit
4de8f78eca
29 files changed
+2052
-111
No files matched your search
@@ -28,47 +28,72 @@
|
||||
"name": "inventory_items_panel",
|
||||
"x": 50.0,
|
||||
"y": 150.0,
|
||||
"width": 250.0,
|
||||
"height": 300.0,
|
||||
"width": 320.0,
|
||||
"height": 420.0,
|
||||
"children": [
|
||||
{
|
||||
"type": "StaticImage",
|
||||
"name": "panel_background",
|
||||
"width": 200,
|
||||
"height": 400,
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"width": 320.0,
|
||||
"height": 420.0,
|
||||
"texture": "resources/w/red.png"
|
||||
},
|
||||
{
|
||||
"type": "TextView",
|
||||
"name": "inventory_title_text",
|
||||
"x": 20.0,
|
||||
"y": 18.0,
|
||||
"width": 230.0,
|
||||
"height": 34.0,
|
||||
"text": "Inventory",
|
||||
"fontSize": 24,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"centered": false,
|
||||
"topAligned": true,
|
||||
"paddingX": 0.0,
|
||||
"paddingY": 0.0,
|
||||
"color": [1.0, 1.0, 1.0, 1.0]
|
||||
},
|
||||
{
|
||||
"type": "TextView",
|
||||
"name": "inventory_items_text",
|
||||
"x": -100.0,
|
||||
"y": -100.0,
|
||||
"width": 250.0,
|
||||
"height": 300.0,
|
||||
"x": 20.0,
|
||||
"y": 70.0,
|
||||
"width": 280.0,
|
||||
"height": 320.0,
|
||||
"text": "Inventory (Empty)",
|
||||
"fontSize": 18,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"centered": false,
|
||||
"topAligned": true,
|
||||
"wrap": true,
|
||||
"paddingX": 0.0,
|
||||
"paddingY": 0.0,
|
||||
"maxLines": 14,
|
||||
"color": [1.0, 1.0, 1.0, 1.0]
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "close_inventory_button",
|
||||
"x": 165.0,
|
||||
"y": 0.0,
|
||||
"width": 40.0,
|
||||
"height": 40.0,
|
||||
"text": "X",
|
||||
"fontSize": 20,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"textCentered": true,
|
||||
"color": [1.0, 1.0, 1.0, 1.0],
|
||||
"textures": {
|
||||
"normal": "resources/w/blue.png"
|
||||
}
|
||||
"name": "close_inventory_button",
|
||||
"x": 266.0,
|
||||
"y": 16.0,
|
||||
"width": 40.0,
|
||||
"height": 40.0,
|
||||
"text": "X",
|
||||
"fontSize": 20,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"textCentered": true,
|
||||
"color": [1.0, 1.0, 1.0, 1.0],
|
||||
"textures": {
|
||||
"normal": "resources/w/blue.png",
|
||||
"hover": "resources/w/blue.png",
|
||||
"pressed": "resources/w/blue.png"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,353 @@
|
||||
{
|
||||
"root": {
|
||||
"type": "FrameLayout",
|
||||
"name": "quest_journal_root",
|
||||
"width": "match_parent",
|
||||
"height": "match_parent",
|
||||
"children": [
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "quest_journal_button",
|
||||
"x": 220.0,
|
||||
"y": 50.0,
|
||||
"width": 170.0,
|
||||
"height": 60.0,
|
||||
"text": "Quests",
|
||||
"fontSize": 24,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"textCentered": true,
|
||||
"color": [1.0, 1.0, 1.0, 1.0],
|
||||
"textures": {
|
||||
"normal": "resources/w/red.png",
|
||||
"hover": "resources/w/red.png",
|
||||
"pressed": "resources/w/red.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "FrameLayout",
|
||||
"name": "quest_journal_panel",
|
||||
"x": 55.0,
|
||||
"y": 85.0,
|
||||
"width": 1170.0,
|
||||
"height": 590.0,
|
||||
"children": [
|
||||
{
|
||||
"type": "StaticImage",
|
||||
"name": "quest_panel_background",
|
||||
"x": 0.0,
|
||||
"y": 0.0,
|
||||
"width": 1170.0,
|
||||
"height": 590.0,
|
||||
"texture": "resources/black.png"
|
||||
},
|
||||
{
|
||||
"type": "TextView",
|
||||
"name": "quest_journal_title_text",
|
||||
"x": 0.0,
|
||||
"y": 18.0,
|
||||
"width": 1170.0,
|
||||
"height": 44.0,
|
||||
"text": "QUESTS",
|
||||
"fontSize": 32,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"centered": true,
|
||||
"topAligned": true,
|
||||
"paddingY": 2.0,
|
||||
"color": [1.0, 1.0, 1.0, 1.0]
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "quest_close_button",
|
||||
"x": 1110.0,
|
||||
"y": 20.0,
|
||||
"width": 38.0,
|
||||
"height": 38.0,
|
||||
"text": "X",
|
||||
"fontSize": 20,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"textCentered": true,
|
||||
"color": [1.0, 1.0, 1.0, 1.0],
|
||||
"textures": {
|
||||
"normal": "resources/w/blue.png",
|
||||
"hover": "resources/w/blue.png",
|
||||
"pressed": "resources/w/blue.png"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "StaticImage",
|
||||
"name": "quest_separator_left",
|
||||
"x": 390.0,
|
||||
"y": 88.0,
|
||||
"width": 2.0,
|
||||
"height": 470.0,
|
||||
"texture": "resources/w/red.png"
|
||||
},
|
||||
{
|
||||
"type": "StaticImage",
|
||||
"name": "quest_separator_right",
|
||||
"x": 770.0,
|
||||
"y": 88.0,
|
||||
"width": 2.0,
|
||||
"height": 470.0,
|
||||
"texture": "resources/w/red.png"
|
||||
},
|
||||
{
|
||||
"type": "TextView",
|
||||
"name": "quest_list_header_text",
|
||||
"x": 35.0,
|
||||
"y": 90.0,
|
||||
"width": 330.0,
|
||||
"height": 32.0,
|
||||
"text": "ЗАДАНИЯ",
|
||||
"fontSize": 22,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"centered": false,
|
||||
"topAligned": true,
|
||||
"paddingX": 4.0,
|
||||
"paddingY": 0.0,
|
||||
"color": [1.0, 0.88, 0.45, 1.0]
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "quest_slot_0",
|
||||
"x": 35.0,
|
||||
"y": 130.0,
|
||||
"width": 330.0,
|
||||
"height": 42.0,
|
||||
"text": "",
|
||||
"fontSize": 18,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"textCentered": false,
|
||||
"textPaddingX": 12.0,
|
||||
"color": [1.0, 1.0, 1.0, 1.0],
|
||||
"textures": { "normal": "resources/transparent.png", "hover": "resources/w/blue.png", "pressed": "resources/w/blue.png" }
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "quest_slot_1",
|
||||
"x": 35.0,
|
||||
"y": 178.0,
|
||||
"width": 330.0,
|
||||
"height": 42.0,
|
||||
"text": "",
|
||||
"fontSize": 18,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"textCentered": false,
|
||||
"textPaddingX": 12.0,
|
||||
"color": [1.0, 1.0, 1.0, 1.0],
|
||||
"textures": { "normal": "resources/transparent.png", "hover": "resources/w/blue.png", "pressed": "resources/w/blue.png" }
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "quest_slot_2",
|
||||
"x": 35.0,
|
||||
"y": 226.0,
|
||||
"width": 330.0,
|
||||
"height": 42.0,
|
||||
"text": "",
|
||||
"fontSize": 18,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"textCentered": false,
|
||||
"textPaddingX": 12.0,
|
||||
"color": [1.0, 1.0, 1.0, 1.0],
|
||||
"textures": { "normal": "resources/transparent.png", "hover": "resources/w/blue.png", "pressed": "resources/w/blue.png" }
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "quest_slot_3",
|
||||
"x": 35.0,
|
||||
"y": 274.0,
|
||||
"width": 330.0,
|
||||
"height": 42.0,
|
||||
"text": "",
|
||||
"fontSize": 18,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"textCentered": false,
|
||||
"textPaddingX": 12.0,
|
||||
"color": [1.0, 1.0, 1.0, 1.0],
|
||||
"textures": { "normal": "resources/transparent.png", "hover": "resources/w/blue.png", "pressed": "resources/w/blue.png" }
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "quest_slot_4",
|
||||
"x": 35.0,
|
||||
"y": 322.0,
|
||||
"width": 330.0,
|
||||
"height": 42.0,
|
||||
"text": "",
|
||||
"fontSize": 18,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"textCentered": false,
|
||||
"textPaddingX": 12.0,
|
||||
"color": [1.0, 1.0, 1.0, 1.0],
|
||||
"textures": { "normal": "resources/transparent.png", "hover": "resources/w/blue.png", "pressed": "resources/w/blue.png" }
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "quest_slot_5",
|
||||
"x": 35.0,
|
||||
"y": 370.0,
|
||||
"width": 330.0,
|
||||
"height": 42.0,
|
||||
"text": "",
|
||||
"fontSize": 18,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"textCentered": false,
|
||||
"textPaddingX": 12.0,
|
||||
"color": [1.0, 1.0, 1.0, 1.0],
|
||||
"textures": { "normal": "resources/transparent.png", "hover": "resources/w/blue.png", "pressed": "resources/w/blue.png" }
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "quest_slot_6",
|
||||
"x": 35.0,
|
||||
"y": 418.0,
|
||||
"width": 330.0,
|
||||
"height": 42.0,
|
||||
"text": "",
|
||||
"fontSize": 18,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"textCentered": false,
|
||||
"textPaddingX": 12.0,
|
||||
"color": [1.0, 1.0, 1.0, 1.0],
|
||||
"textures": { "normal": "resources/transparent.png", "hover": "resources/w/blue.png", "pressed": "resources/w/blue.png" }
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "quest_slot_7",
|
||||
"x": 35.0,
|
||||
"y": 466.0,
|
||||
"width": 330.0,
|
||||
"height": 42.0,
|
||||
"text": "",
|
||||
"fontSize": 18,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"textCentered": false,
|
||||
"textPaddingX": 12.0,
|
||||
"color": [1.0, 1.0, 1.0, 1.0],
|
||||
"textures": { "normal": "resources/transparent.png", "hover": "resources/w/blue.png", "pressed": "resources/w/blue.png" }
|
||||
},
|
||||
{
|
||||
"type": "TextButton",
|
||||
"name": "quest_slot_8",
|
||||
"x": 35.0,
|
||||
"y": 514.0,
|
||||
"width": 330.0,
|
||||
"height": 42.0,
|
||||
"text": "",
|
||||
"fontSize": 18,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"textCentered": false,
|
||||
"textPaddingX": 12.0,
|
||||
"color": [1.0, 1.0, 1.0, 1.0],
|
||||
"textures": { "normal": "resources/transparent.png", "hover": "resources/w/blue.png", "pressed": "resources/w/blue.png" }
|
||||
},
|
||||
{
|
||||
"type": "TextView",
|
||||
"name": "quest_middle_title_text",
|
||||
"x": 415.0,
|
||||
"y": 94.0,
|
||||
"width": 330.0,
|
||||
"height": 72.0,
|
||||
"text": "Выберите задание",
|
||||
"fontSize": 22,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"centered": false,
|
||||
"topAligned": true,
|
||||
"wrap": true,
|
||||
"paddingX": 8.0,
|
||||
"paddingY": 4.0,
|
||||
"maxLines": 2,
|
||||
"color": [1.0, 0.88, 0.45, 1.0]
|
||||
},
|
||||
{
|
||||
"type": "TextView",
|
||||
"name": "quest_meta_text",
|
||||
"x": 415.0,
|
||||
"y": 168.0,
|
||||
"width": 330.0,
|
||||
"height": 48.0,
|
||||
"text": "",
|
||||
"fontSize": 16,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"centered": false,
|
||||
"topAligned": true,
|
||||
"wrap": true,
|
||||
"paddingX": 8.0,
|
||||
"paddingY": 2.0,
|
||||
"maxLines": 2,
|
||||
"color": [0.72, 0.72, 0.72, 1.0]
|
||||
},
|
||||
{
|
||||
"type": "TextView",
|
||||
"name": "quest_objectives_header_text",
|
||||
"x": 415.0,
|
||||
"y": 232.0,
|
||||
"width": 330.0,
|
||||
"height": 32.0,
|
||||
"text": "ЦЕЛИ",
|
||||
"fontSize": 20,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"centered": false,
|
||||
"topAligned": true,
|
||||
"paddingX": 8.0,
|
||||
"paddingY": 0.0,
|
||||
"color": [1.0, 0.88, 0.45, 1.0]
|
||||
},
|
||||
{
|
||||
"type": "TextView",
|
||||
"name": "quest_objectives_text",
|
||||
"x": 415.0,
|
||||
"y": 272.0,
|
||||
"width": 330.0,
|
||||
"height": 285.0,
|
||||
"text": "",
|
||||
"fontSize": 17,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"centered": false,
|
||||
"topAligned": true,
|
||||
"wrap": true,
|
||||
"paddingX": 8.0,
|
||||
"paddingY": 4.0,
|
||||
"maxLines": 10,
|
||||
"color": [0.88, 0.88, 0.88, 1.0]
|
||||
},
|
||||
{
|
||||
"type": "TextView",
|
||||
"name": "quest_lore_title_text",
|
||||
"x": 795.0,
|
||||
"y": 94.0,
|
||||
"width": 330.0,
|
||||
"height": 38.0,
|
||||
"text": "Описание задания",
|
||||
"fontSize": 22,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"centered": false,
|
||||
"topAligned": true,
|
||||
"paddingX": 8.0,
|
||||
"paddingY": 0.0,
|
||||
"color": [1.0, 0.88, 0.45, 1.0]
|
||||
},
|
||||
{
|
||||
"type": "TextView",
|
||||
"name": "quest_description_text",
|
||||
"x": 795.0,
|
||||
"y": 145.0,
|
||||
"width": 330.0,
|
||||
"height": 410.0,
|
||||
"text": "",
|
||||
"fontSize": 18,
|
||||
"fontPath": "resources/fonts/DroidSans.ttf",
|
||||
"centered": false,
|
||||
"topAligned": true,
|
||||
"wrap": true,
|
||||
"paddingX": 8.0,
|
||||
"paddingY": 6.0,
|
||||
"maxLines": 15,
|
||||
"color": [0.92, 0.92, 0.92, 1.0]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,290 @@
|
||||
{
|
||||
"dialogues": [
|
||||
{
|
||||
"id": "test_cutscene_skip_hold_dialogue",
|
||||
"start": "cutscene_start",
|
||||
"nodes": [
|
||||
{
|
||||
"id": "cutscene_start",
|
||||
"type": "CutsceneStart",
|
||||
"cutsceneId": "test_cutscene_skip_hold_01",
|
||||
"next": "end_1"
|
||||
},
|
||||
{
|
||||
"id": "end_1",
|
||||
"type": "End"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "test_cutscene_images_hardcut_dialogue",
|
||||
"start": "cutscene_start",
|
||||
"nodes": [
|
||||
{
|
||||
"id": "cutscene_start",
|
||||
"type": "CutsceneStart",
|
||||
"cutsceneId": "test_cutscene_images_hardcut_01",
|
||||
"next": "end_1"
|
||||
},
|
||||
{
|
||||
"id": "end_1",
|
||||
"type": "End"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "test_cutscene_images_crossfade_dialogue",
|
||||
"start": "cutscene_start",
|
||||
"nodes": [
|
||||
{
|
||||
"id": "cutscene_start",
|
||||
"type": "CutsceneStart",
|
||||
"cutsceneId": "test_cutscene_images_crossfade_01",
|
||||
"next": "end_1"
|
||||
},
|
||||
{
|
||||
"id": "end_1",
|
||||
"type": "End"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "test_cutscene_images_silent_dialogue",
|
||||
"start": "cutscene_start",
|
||||
"nodes": [
|
||||
{
|
||||
"id": "cutscene_start",
|
||||
"type": "CutsceneStart",
|
||||
"cutsceneId": "test_cutscene_images_silent_01",
|
||||
"next": "end_1"
|
||||
},
|
||||
{
|
||||
"id": "end_1",
|
||||
"type": "End"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"cutscenes": [
|
||||
{
|
||||
"id": "test_cutscene_skip_hold_01",
|
||||
"background": "resources/first_cutscene.png",
|
||||
"skippable": true,
|
||||
"durationMs": 12000,
|
||||
"cameraTrack": [
|
||||
{
|
||||
"durationMs": 3000,
|
||||
"from": { "anchor": "Center", "zoom": 1.0, "rotationDeg": 0.0 },
|
||||
"to": { "anchor": "TopLeft", "zoom": 1.45, "rotationDeg": 0.0 },
|
||||
"easing": "EaseInOutSine"
|
||||
},
|
||||
{
|
||||
"durationMs": 3000,
|
||||
"from": { "anchor": "TopLeft", "zoom": 1.45, "rotationDeg": 0.0 },
|
||||
"to": { "anchor": "TopRight", "zoom": 1.45, "rotationDeg": 0.0 },
|
||||
"easing": "EaseInOutSine"
|
||||
},
|
||||
{
|
||||
"durationMs": 3000,
|
||||
"from": { "anchor": "TopRight", "zoom": 1.45, "rotationDeg": 0.0 },
|
||||
"to": { "anchor": "BottomRight", "zoom": 1.65, "rotationDeg": 0.0 },
|
||||
"easing": "EaseInCubic"
|
||||
},
|
||||
{
|
||||
"durationMs": 3000,
|
||||
"from": { "anchor": "BottomRight", "zoom": 1.65, "rotationDeg": 0.0 },
|
||||
"to": { "anchor": "BottomLeft", "zoom": 1.45, "rotationDeg": 0.0 },
|
||||
"easing": "EaseInOutSine"
|
||||
}
|
||||
],
|
||||
"lines": [
|
||||
{
|
||||
"speaker": "Narrator",
|
||||
"portrait": "",
|
||||
"text": "This cutscene is long enough to test hold-to-skip.",
|
||||
"durationMs": 2600
|
||||
},
|
||||
{
|
||||
"speaker": "Narrator",
|
||||
"portrait": "",
|
||||
"text": "A normal click must not skip it.",
|
||||
"durationMs": 2600
|
||||
},
|
||||
{
|
||||
"speaker": "Ghost",
|
||||
"portrait": "resources/ghost_avatar.png",
|
||||
"text": "Only the skip button with hold should work.",
|
||||
"durationMs": 2600
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "test_cutscene_images_hardcut_01",
|
||||
"background": "resources/first_cutscene.png",
|
||||
"skippable": true,
|
||||
"durationMs": 9000,
|
||||
"cameraTrack": [
|
||||
{
|
||||
"durationMs": 4500,
|
||||
"from": { "anchor": "Center", "zoom": 1.0, "rotationDeg": 0.0 },
|
||||
"to": { "anchor": "TopLeft", "zoom": 1.35, "rotationDeg": 0.0 },
|
||||
"easing": "EaseInOutSine"
|
||||
},
|
||||
{
|
||||
"durationMs": 4500,
|
||||
"from": { "anchor": "TopLeft", "zoom": 1.35, "rotationDeg": 0.0 },
|
||||
"to": { "anchor": "BottomRight", "zoom": 1.55, "rotationDeg": 0.0 },
|
||||
"easing": "EaseInOutSine"
|
||||
}
|
||||
],
|
||||
"images": [
|
||||
{
|
||||
"path": "resources/first_cutscene.png",
|
||||
"startMs": 0,
|
||||
"endMs": 4500,
|
||||
"fadeInMs": 0,
|
||||
"fadeOutMs": 0
|
||||
},
|
||||
{
|
||||
"path": "resources/second_cutscene.png",
|
||||
"startMs": 4500,
|
||||
"endMs": 9000,
|
||||
"fadeInMs": 0,
|
||||
"fadeOutMs": 0
|
||||
}
|
||||
],
|
||||
"lines": [
|
||||
{
|
||||
"speaker": "Narrator",
|
||||
"portrait": "",
|
||||
"text": "First image should switch sharply to the second one.",
|
||||
"durationMs": 2800
|
||||
},
|
||||
{
|
||||
"speaker": "Narrator",
|
||||
"portrait": "",
|
||||
"text": "No fade should be visible here.",
|
||||
"durationMs": 2800
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "test_cutscene_images_crossfade_01",
|
||||
"background": "resources/first_cutscene.png",
|
||||
"skippable": true,
|
||||
"durationMs": 10000,
|
||||
"cameraTrack": [
|
||||
{
|
||||
"durationMs": 2500,
|
||||
"from": { "anchor": "Center", "zoom": 1.0, "rotationDeg": 0.0 },
|
||||
"to": { "anchor": "Custom", "centerX": 0.35, "centerY": 0.30, "zoom": 1.45, "rotationDeg": 0.0 },
|
||||
"easing": "EaseInOutQuad"
|
||||
},
|
||||
{
|
||||
"durationMs": 2500,
|
||||
"from": { "anchor": "Custom", "centerX": 0.35, "centerY": 0.30, "zoom": 1.45, "rotationDeg": 0.0 },
|
||||
"to": { "anchor": "Custom", "centerX": 0.70, "centerY": 0.32, "zoom": 1.45, "rotationDeg": 0.0 },
|
||||
"easing": "EaseOutCubic"
|
||||
},
|
||||
{
|
||||
"durationMs": 2500,
|
||||
"from": { "anchor": "Custom", "centerX": 0.70, "centerY": 0.32, "zoom": 1.45, "rotationDeg": 0.0 },
|
||||
"to": { "anchor": "BottomRight", "zoom": 1.70, "rotationDeg": 0.0 },
|
||||
"easing": "EaseInCubic"
|
||||
},
|
||||
{
|
||||
"durationMs": 2500,
|
||||
"from": { "anchor": "BottomRight", "zoom": 1.70, "rotationDeg": 0.0 },
|
||||
"to": { "anchor": "BottomLeft", "zoom": 1.55, "rotationDeg": 0.0 },
|
||||
"easing": "EaseInOutSine"
|
||||
}
|
||||
],
|
||||
"images": [
|
||||
{
|
||||
"path": "resources/first_cutscene.png",
|
||||
"startMs": 0,
|
||||
"endMs": 6000,
|
||||
"fadeInMs": 0,
|
||||
"fadeOutMs": 0
|
||||
},
|
||||
{
|
||||
"path": "resources/second_cutscene.png",
|
||||
"startMs": 4500,
|
||||
"endMs": 10000,
|
||||
"fadeInMs": 1500,
|
||||
"fadeOutMs": 0
|
||||
}
|
||||
],
|
||||
"lines": [
|
||||
{
|
||||
"speaker": "Narrator",
|
||||
"portrait": "",
|
||||
"text": "The second image should fade over the first one.",
|
||||
"durationMs": 2600
|
||||
},
|
||||
{
|
||||
"speaker": "Ghost",
|
||||
"portrait": "resources/ghost_avatar.png",
|
||||
"text": "This test checks overlap and alpha blending.",
|
||||
"durationMs": 2600
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "test_cutscene_images_silent_01",
|
||||
"background": "resources/first_cutscene.png",
|
||||
"skippable": true,
|
||||
"durationMs": 11000,
|
||||
"cameraTrack": [
|
||||
{
|
||||
"durationMs": 2500,
|
||||
"from": { "anchor": "Center", "zoom": 1.0, "rotationDeg": 0.0 },
|
||||
"to": { "anchor": "TopLeft", "zoom": 1.35, "rotationDeg": 0.0 },
|
||||
"easing": "EaseInOutSine"
|
||||
},
|
||||
{
|
||||
"durationMs": 3000,
|
||||
"from": { "anchor": "TopLeft", "zoom": 1.35, "rotationDeg": 0.0 },
|
||||
"to": { "anchor": "TopRight", "zoom": 1.35, "rotationDeg": 0.0 },
|
||||
"easing": "EaseInOutSine"
|
||||
},
|
||||
{
|
||||
"durationMs": 3000,
|
||||
"from": { "anchor": "TopRight", "zoom": 1.35, "rotationDeg": 0.0 },
|
||||
"to": { "anchor": "BottomRight", "zoom": 1.55, "rotationDeg": 0.0 },
|
||||
"easing": "EaseOutCubic"
|
||||
},
|
||||
{
|
||||
"durationMs": 2500,
|
||||
"from": { "anchor": "BottomRight", "zoom": 1.55, "rotationDeg": 0.0 },
|
||||
"to": { "anchor": "BottomLeft", "zoom": 1.45, "rotationDeg": 0.0 },
|
||||
"easing": "EaseInOutQuad"
|
||||
}
|
||||
],
|
||||
"images": [
|
||||
{
|
||||
"path": "resources/first_cutscene.png",
|
||||
"startMs": 0,
|
||||
"endMs": 3500,
|
||||
"fadeInMs": 0,
|
||||
"fadeOutMs": 800
|
||||
},
|
||||
{
|
||||
"path": "resources/second_cutscene.png",
|
||||
"startMs": 3000,
|
||||
"endMs": 7500,
|
||||
"fadeInMs": 800,
|
||||
"fadeOutMs": 1000
|
||||
},
|
||||
{
|
||||
"path": "resources/loading.png",
|
||||
"startMs": 7000,
|
||||
"endMs": 11000,
|
||||
"fadeInMs": 1000,
|
||||
"fadeOutMs": 0
|
||||
}
|
||||
],
|
||||
"lines": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"quests": [
|
||||
{
|
||||
"id": "tutorial_open_journal",
|
||||
"title": "Журнал заданий",
|
||||
"category": "Tutorial",
|
||||
"status": "Completed",
|
||||
"recommendedLevel": 0,
|
||||
"description": "Теперь у героя есть журнал заданий. В нём можно просматривать текущие поручения, цели и подробные записи о событиях, которые уже произошли в мире игры.",
|
||||
"objectives": [
|
||||
{ "id": "open_journal", "text": "Открыть журнал заданий", "completed": true }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "side_lost_bag",
|
||||
"title": "Потерянная сумка",
|
||||
"category": "Side",
|
||||
"status": "Completed",
|
||||
"recommendedLevel": 1,
|
||||
"description": "Путник потерял сумку недалеко от лесной тропы. Внутри оказались вещи, важные для его дальнейшего пути. Возвращение сумки укрепило доверие местных жителей к герою.",
|
||||
"objectives": [
|
||||
{ "id": "find_bag", "text": "Найти сумку у лесной тропы", "completed": true },
|
||||
{ "id": "bring_bag", "text": "Вернуть сумку путнику", "completed": true }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "failed_missing_courier",
|
||||
"title": "След курьера",
|
||||
"category": "Side",
|
||||
"status": "Failed",
|
||||
"recommendedLevel": 2,
|
||||
"description": "Курьер исчез до того, как герой смог выйти на его след. Местные говорят, что на дороге остались только следы копыт и обрывок ремня. Возможность узнать, кто забрал посылку, была упущена.",
|
||||
"objectives": [
|
||||
{ "id": "ask_innkeeper", "text": "Расспросить трактирщика", "completed": true },
|
||||
{ "id": "find_courier", "text": "Найти курьера до наступления ночи", "completed": false }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "contract_old_well",
|
||||
"title": "Старый колодец",
|
||||
"category": "Contract",
|
||||
"status": "Active",
|
||||
"recommendedLevel": 2,
|
||||
"description": "На окраине деревни стоит старый колодец. Ночью из него слышны голоса, а утром вокруг находят мокрые следы. Местные боятся подходить к нему, но староста считает, что причина происходящего связана с давним проклятием.",
|
||||
"objectives": [
|
||||
{ "id": "inspect_well", "text": "Осмотреть старый колодец", "completed": false },
|
||||
{ "id": "search_tracks", "text": "Найти следы возле каменной ограды", "completed": false },
|
||||
{ "id": "report_elder", "text": "Вернуться к старосте", "completed": false }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "main_find_ghost",
|
||||
"title": "Следы призрака",
|
||||
"category": "Main",
|
||||
"status": "Active",
|
||||
"recommendedLevel": 1,
|
||||
"description": "В заброшенной части деревни появился странный призрак. Местные жители говорят, что он появляется только ночью и исчезает возле старого колодца. Похоже, дух пытается привести кого-то к месту, где много лет назад случилась трагедия.",
|
||||
"objectives": [
|
||||
{ "id": "talk_to_ghost", "text": "Поговорить с призраком возле старого дома", "completed": false },
|
||||
{ "id": "inspect_well", "text": "Осмотреть старый колодец", "completed": false },
|
||||
{ "id": "return_to_elder", "text": "Вернуться к старосте", "completed": false }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "main_black_letter",
|
||||
"title": "Письмо с чёрной печатью",
|
||||
"category": "Main",
|
||||
"status": "Active",
|
||||
"recommendedLevel": 3,
|
||||
"description": "В руки героя попало письмо с чёрной восковой печатью. Имя отправителя стёрто, но на бумаге остался запах дыма и дорогих трав. Письмо упоминает встречу у северных ворот и человека, который знает правду о призраке.",
|
||||
"objectives": [
|
||||
{ "id": "read_letter", "text": "Прочитать письмо", "completed": true },
|
||||
{ "id": "go_north_gate", "text": "Добраться до северных ворот", "completed": false },
|
||||
{ "id": "find_contact", "text": "Найти человека с серебряным кольцом", "completed": false }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "side_herbalist_help",
|
||||
"title": "Травы для лекаря",
|
||||
"category": "Side",
|
||||
"status": "Available",
|
||||
"recommendedLevel": 1,
|
||||
"description": "Лекарю нужны редкие болотные травы, чтобы приготовить настой для больных детей. Он предупредил, что растение раскрывается только на рассвете, а рядом часто появляются дикие звери.",
|
||||
"objectives": [
|
||||
{ "id": "collect_herbs", "text": "Собрать болотные травы на рассвете", "completed": false },
|
||||
{ "id": "bring_herbs", "text": "Отнести травы лекарю", "completed": false }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,11 @@
|
||||
//precision mediump float;
|
||||
uniform sampler2D Texture;
|
||||
uniform float uAlpha;
|
||||
varying vec2 texCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 color = texture2D(Texture, texCoord).rgba;
|
||||
color.a *= uAlpha;
|
||||
gl_FragColor = color;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
precision mediump float;
|
||||
uniform sampler2D Texture;
|
||||
uniform float uAlpha;
|
||||
varying vec2 texCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 color = texture2D(Texture, texCoord).rgba;
|
||||
color.a *= uAlpha;
|
||||
gl_FragColor = color;
|
||||
}
|
||||
@@ -1,3 +1,5 @@
|
||||
#version 120
|
||||
|
||||
attribute vec3 vPosition;
|
||||
attribute vec2 vTexCoord;
|
||||
attribute vec3 vNormal;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#version 120
|
||||
|
||||
attribute vec3 vPosition;
|
||||
attribute vec2 vTexCoord;
|
||||
attribute vec3 vNormal;
|
||||
|
||||
Reference in new issue
Block a user