Завершить контентную архитектуру этапа 4

This commit is contained in:
2026-08-18 22:03:38 +03:00
parent 2ddac2775f
commit 5051f316fe
39 changed files with 1954 additions and 259 deletions
@@ -0,0 +1 @@
{"formatVersion":1,"physicsVersion":1,"levels":["level-01.json","level-02.json","level-03.json","level-04.json","level-05.json","level-06.json","level-07.json","level-08.json","level-09.json","level-10.json"]}
@@ -0,0 +1,11 @@
{
"formatVersion":1,"physicsVersion":1,"number":1,
"copy":{"en":{"title":"The Volunteer","hint":"Reach the relic. Arrows move; the winged button jumps."},"ru":{"title":"Рыцарь-доброволец","hint":"Доберитесь до реликвии. Стрелки двигают; кнопка с крылом — прыжок."}},
"world":{"width":1920,"height":1080},"spawn":{"x":130,"y":760},
"goal":{"x":1690,"y":770,"width":86,"height":110},"targets":{"deaths":0,"seconds":30},
"platforms":[
{"box":{"x":0,"y":880,"width":1920,"height":200}},
{"box":{"x":640,"y":760,"width":230,"height":34}},
{"box":{"x":1060,"y":690,"width":250,"height":34}}
],"hazards":[],"switches":[],"doors":[]
}
@@ -0,0 +1,8 @@
{
"formatVersion":1,"physicsVersion":1,"number":2,
"copy":{"en":{"title":"A Useful End","hint":"The spikes keep every volunteer. Build a path from what remains."},"ru":{"title":"Полезный конец","hint":"Шипы сохраняют каждого добровольца. Проложите путь из того, что осталось."}},
"world":{"width":2050,"height":1080},"spawn":{"x":130,"y":760},
"goal":{"x":1830,"y":770,"width":86,"height":110},"targets":{"deaths":3,"seconds":55},
"platforms":[{"box":{"x":0,"y":880,"width":2050,"height":200}},{"box":{"x":1180,"y":740,"width":240,"height":34}}],
"hazards":[{"type":"SPIKES","box":{"x":610,"y":850,"width":260,"height":30}}],"switches":[],"doors":[]
}
@@ -0,0 +1,10 @@
{
"formatVersion":1,"physicsVersion":1,"number":3,
"copy":{"en":{"title":"Dead Weight","hint":"Leave a body on the brass plate so the next volunteer can pass."},"ru":{"title":"Мёртвый груз","hint":"Оставьте тело на латунной плите, чтобы следующий доброволец прошёл."}},
"world":{"width":2050,"height":1080},"spawn":{"x":130,"y":760},
"goal":{"x":1810,"y":770,"width":86,"height":110},"targets":{"deaths":1,"seconds":50},
"platforms":[{"box":{"x":0,"y":880,"width":2050,"height":200}}],
"hazards":[{"type":"SAW","box":{"x":565,"y":760,"width":92,"height":92},"impulseX":0,"impulseY":-150}],
"switches":[{"type":"PRESSURE","box":{"x":540,"y":860,"width":150,"height":20},"signalId":"gate","durationSeconds":0,"requiredMass":1}],
"doors":[{"box":{"x":1110,"y":570,"width":78,"height":310},"requiredSignals":["gate"]}]
}
@@ -0,0 +1,14 @@
{
"formatVersion":1,"physicsVersion":1,"number":4,
"copy":{"en":{"title":"The Long Lift","hint":"Touch the lever, then ride the moving platform to the upper gallery."},"ru":{"title":"Долгий подъём","hint":"Коснитесь рычага, затем поднимитесь на платформе к верхней галерее."}},
"world":{"width":2200,"height":1080},"spawn":{"x":130,"y":760},
"goal":{"x":1960,"y":390,"width":86,"height":110},"targets":{"deaths":0,"seconds":60},
"platforms":[
{"box":{"x":0,"y":880,"width":1500,"height":200}},
{"box":{"x":1820,"y":880,"width":380,"height":200}},
{"box":{"x":1660,"y":500,"width":540,"height":34}},
{"box":{"x":1040,"y":790,"width":260,"height":34},"travelX":0,"travelY":-390,"periodSeconds":5.2,"controlId":"lift"}
],
"hazards":[{"type":"PIT","box":{"x":1500,"y":880,"width":320,"height":200}}],
"switches":[{"type":"TOGGLE","box":{"x":520,"y":820,"width":72,"height":60},"signalId":"lift","durationSeconds":0,"requiredMass":1}],"doors":[]
}
@@ -0,0 +1,10 @@
{
"formatVersion":1,"physicsVersion":1,"number":5,
"copy":{"en":{"title":"Express Delivery","hint":"The saw throws to the right. Deliver a volunteer to the distant plate."},"ru":{"title":"Срочная доставка","hint":"Пила бросает вправо. Доставьте добровольца на дальнюю плиту."}},
"world":{"width":2300,"height":1080},"spawn":{"x":130,"y":760},
"goal":{"x":2080,"y":770,"width":86,"height":110},"targets":{"deaths":1,"seconds":65},
"platforms":[{"box":{"x":0,"y":880,"width":2300,"height":200}},{"box":{"x":850,"y":800,"width":330,"height":34}}],
"hazards":[{"type":"SAW","box":{"x":570,"y":760,"width":96,"height":96},"impulseX":500,"impulseY":-700}],
"switches":[{"type":"PRESSURE","box":{"x":930,"y":780,"width":160,"height":20},"signalId":"gate","durationSeconds":0,"requiredMass":1}],
"doors":[{"box":{"x":1390,"y":560,"width":82,"height":320},"requiredSignals":["gate"]}]
}
@@ -0,0 +1,12 @@
{
"formatVersion":1,"physicsVersion":1,"number":6,
"copy":{"en":{"title":"Cold Comfort","hint":"The frost makes a solid block. Use the frozen volunteer as a step."},"ru":{"title":"Холодное утешение","hint":"Мороз создаёт твёрдый блок. Используйте замёрзшего добровольца как ступень."}},
"world":{"width":2150,"height":1080},"spawn":{"x":130,"y":760},
"goal":{"x":1880,"y":500,"width":86,"height":110},"targets":{"deaths":1,"seconds":65},
"platforms":[
{"box":{"x":0,"y":880,"width":1120,"height":200}},
{"box":{"x":810,"y":590,"width":520,"height":34}},
{"box":{"x":1430,"y":610,"width":570,"height":34}}
],
"hazards":[{"type":"FREEZER","box":{"x":690,"y":776,"width":100,"height":104}}],"switches":[],"doors":[]
}
@@ -0,0 +1,9 @@
{
"formatVersion":1,"physicsVersion":1,"number":7,
"copy":{"en":{"title":"Live Wire","hint":"A fallen volunteer conducts the current and keeps the relay alive."},"ru":{"title":"Живой провод","hint":"Павший доброволец проводит ток и поддерживает реле."}},
"world":{"width":2150,"height":1080},"spawn":{"x":130,"y":760},
"goal":{"x":1930,"y":770,"width":86,"height":110},"targets":{"deaths":1,"seconds":55},
"platforms":[{"box":{"x":0,"y":880,"width":2150,"height":200}}],
"hazards":[{"type":"ELECTRIC","box":{"x":650,"y":780,"width":110,"height":100},"relayId":"power"}],"switches":[],
"doors":[{"box":{"x":1130,"y":560,"width":84,"height":320},"requiredSignals":["power"]}]
}
@@ -0,0 +1,18 @@
{
"formatVersion":1,"physicsVersion":1,"number":8,
"copy":{"en":{"title":"Borrowed Time","hint":"Jump for the far blue relay if the timed gate closes."},"ru":{"title":"Время взаймы","hint":"Прыгните к дальнему синему реле, если ворота по таймеру закроются."}},
"world":{"width":2450,"height":1080},"spawn":{"x":130,"y":760},
"goal":{"x":2220,"y":600,"width":86,"height":110},"targets":{"deaths":0,"seconds":38},
"platforms":[
{"box":{"x":0,"y":880,"width":1040,"height":200}},
{"box":{"x":1510,"y":880,"width":940,"height":200}},
{"box":{"x":1980,"y":710,"width":470,"height":34}},
{"box":{"x":910,"y":770,"width":320,"height":34},"travelX":380,"travelY":0,"periodSeconds":4.0,"controlId":"clock"}
],
"hazards":[{"type":"PIT","box":{"x":1040,"y":880,"width":470,"height":200}}],
"switches":[
{"type":"TIMED","box":{"x":560,"y":810,"width":90,"height":70},"signalId":"clock","durationSeconds":8.0,"requiredMass":1},
{"type":"TIMED","box":{"x":1600,"y":650,"width":90,"height":70},"signalId":"clock","durationSeconds":3.5,"requiredMass":1}
],
"doors":[{"box":{"x":1770,"y":560,"width":82,"height":320},"requiredSignals":["clock"]}]
}
@@ -0,0 +1,13 @@
{
"formatVersion":1,"physicsVersion":1,"number":9,
"copy":{"en":{"title":"Two Good Reasons","hint":"The final gate needs weight and power at the same time."},"ru":{"title":"Две веские причины","hint":"Последним воротам одновременно нужны вес и питание."}},
"world":{"width":2550,"height":1080},"spawn":{"x":130,"y":760},
"goal":{"x":2310,"y":770,"width":86,"height":110},"targets":{"deaths":2,"seconds":80},
"platforms":[{"box":{"x":0,"y":880,"width":2550,"height":200}}],
"hazards":[
{"type":"SPIKES","box":{"x":520,"y":850,"width":130,"height":30}},
{"type":"ELECTRIC","box":{"x":910,"y":780,"width":110,"height":100},"relayId":"power"}
],
"switches":[{"type":"PRESSURE","box":{"x":510,"y":842,"width":160,"height":38},"signalId":"weight","durationSeconds":0,"requiredMass":1}],
"doors":[{"box":{"x":1510,"y":540,"width":86,"height":340},"requiredSignals":["weight","power"]}]
}
@@ -0,0 +1,20 @@
{
"formatVersion":1,"physicsVersion":1,"number":10,
"copy":{"en":{"title":"The Last Procession","hint":"Launch, freeze, conduct, ascend. Every lesson opens the last relic."},"ru":{"title":"Последнее шествие","hint":"Разгонитесь, замёрзните, проведите ток, поднимитесь. Каждый урок открывает последнюю реликвию."}},
"world":{"width":3100,"height":1080},"spawn":{"x":130,"y":760},
"goal":{"x":2880,"y":330,"width":86,"height":110},"targets":{"deaths":3,"seconds":120},
"platforms":[
{"box":{"x":0,"y":880,"width":1940,"height":200}},
{"box":{"x":2140,"y":880,"width":960,"height":200}},
{"box":{"x":2420,"y":440,"width":680,"height":34}},
{"box":{"x":1800,"y":790,"width":290,"height":34},"travelX":0,"travelY":-410,"periodSeconds":10.0,"controlId":"lift"}
],
"hazards":[
{"type":"SAW","box":{"x":520,"y":760,"width":96,"height":96},"impulseX":700,"impulseY":-240},
{"type":"FREEZER","box":{"x":1110,"y":776,"width":100,"height":104}},
{"type":"ELECTRIC","box":{"x":1510,"y":780,"width":110,"height":100},"relayId":"power"},
{"type":"PIT","box":{"x":1940,"y":880,"width":200,"height":200}}
],
"switches":[{"type":"PRESSURE","box":{"x":860,"y":860,"width":160,"height":20},"signalId":"lift","durationSeconds":0,"requiredMass":1}],
"doors":[{"box":{"x":2310,"y":310,"width":82,"height":570},"requiredSignals":["power"]}]
}