Добавить первую волну мира Physics
This commit is contained in:
@@ -1 +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","level-11.json","level-12.json","level-13.json","level-14.json","level-15.json","level-16.json","level-17.json","level-18.json","level-19.json","level-20.json","level-21.json","level-22.json","level-23.json","level-24.json","level-25.json","level-26.json","level-27.json","level-28.json","level-29.json","level-30.json"]}
|
||||
{"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","level-11.json","level-12.json","level-13.json","level-14.json","level-15.json","level-16.json","level-17.json","level-18.json","level-19.json","level-20.json","level-21.json","level-22.json","level-23.json","level-24.json","level-25.json","level-26.json","level-27.json","level-28.json","level-29.json","level-30.json","level-31.json","level-32.json","level-33.json","level-34.json"]}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"formatVersion":1,"physicsVersion":1,"number":31,
|
||||
"id":"physics.mass-basics","worldId":"physics",
|
||||
"copy":{"en":{"title":"Weight Class","hint":"Push the marked counterweight onto the plate; mass, not the player, keeps the door open."},"ru":{"title":"Весовая категория","hint":"Затолкните отмеченный противовес на плиту: дверь удерживает масса, а не игрок."}},
|
||||
"world":{"width":2300,"height":1080},"spawn":{"x":130,"y":760},
|
||||
"goal":{"x":2070,"y":770,"width":86,"height":110},
|
||||
"collectible":{"x":1580,"y":790,"width":58,"height":58},
|
||||
"targets":{"deaths":0,"seconds":45},
|
||||
"objects":[{"type":"COUNTERWEIGHT","box":{"x":650,"y":780,"width":90,"height":100},"mass":3}],
|
||||
"platforms":[{"box":{"x":0,"y":880,"width":2300,"height":200}}],
|
||||
"hazards":[],
|
||||
"switches":[{"type":"PRESSURE","box":{"x":940,"y":860,"width":250,"height":20},"signalId":"mass-door","durationSeconds":0,"requiredMass":3}],
|
||||
"doors":[{"box":{"x":1370,"y":560,"width":84,"height":320},"requiredSignals":["mass-door"]}]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"formatVersion":1,"physicsVersion":1,"number":32,
|
||||
"id":"physics.stack-order","worldId":"physics",
|
||||
"copy":{"en":{"title":"Stack Order","hint":"Climb the supported object staircase in order, then jump onto the high gallery."},"ru":{"title":"Порядок стопки","hint":"Поднимитесь по опирающимся друг на друга объектам и прыгните на высокую галерею."}},
|
||||
"world":{"width":2500,"height":1080},"spawn":{"x":130,"y":760},
|
||||
"goal":{"x":2260,"y":490,"width":86,"height":110},
|
||||
"collectible":{"x":900,"y":555,"width":58,"height":58},
|
||||
"targets":{"deaths":0,"seconds":50},
|
||||
"objects":[
|
||||
{"type":"BOX","box":{"x":650,"y":800,"width":160,"height":80},"mass":1},
|
||||
{"type":"ROCK","box":{"x":700,"y":720,"width":140,"height":80},"mass":2},
|
||||
{"type":"ICE_BLOCK","box":{"x":760,"y":640,"width":120,"height":80},"mass":2}
|
||||
],
|
||||
"platforms":[
|
||||
{"box":{"x":0,"y":880,"width":1080,"height":200}},
|
||||
{"box":{"x":1030,"y":600,"width":1470,"height":480}}
|
||||
],
|
||||
"hazards":[],"switches":[],"doors":[]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"formatVersion":1,"physicsVersion":1,"number":33,
|
||||
"id":"physics.launch-window","worldId":"physics",
|
||||
"copy":{"en":{"title":"Launch Window","hint":"Read the saw launch once, clear the delivered body, then board the moving bridge at its near edge."},"ru":{"title":"Окно запуска","hint":"Один раз изучите бросок пилы, перепрыгните доставленное тело и садитесь на мост у ближнего края."}},
|
||||
"world":{"width":2900,"height":1080},"spawn":{"x":130,"y":760},
|
||||
"goal":{"x":2660,"y":390,"width":86,"height":110},
|
||||
"collectible":{"x":2050,"y":410,"width":58,"height":58},
|
||||
"targets":{"deaths":1,"seconds":55},
|
||||
"platforms":[
|
||||
{"box":{"x":0,"y":880,"width":2900,"height":200}},
|
||||
{"box":{"x":1750,"y":500,"width":1150,"height":34}},
|
||||
{"box":{"x":1350,"y":790,"width":300,"height":34},"travelX":0,"travelY":-390,"periodSeconds":5.0}
|
||||
],
|
||||
"hazards":[
|
||||
{"type":"SAW","box":{"x":600,"y":760,"width":96,"height":96},"impulseX":700,"impulseY":-420}
|
||||
],
|
||||
"switches":[],"doors":[]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"formatVersion":1,"physicsVersion":1,"number":34,
|
||||
"id":"physics.crusher-rhythm","worldId":"physics",
|
||||
"copy":{"en":{"title":"Press Cycle","hint":"Leave one low body on the plate, read the press cycle, and cross during its full rest."},"ru":{"title":"Цикл пресса","hint":"Оставьте одно низкое тело на плите, прочитайте цикл пресса и пройдите в полный покой."}},
|
||||
"world":{"width":2450,"height":1080},"spawn":{"x":130,"y":760},
|
||||
"goal":{"x":2210,"y":770,"width":86,"height":110},
|
||||
"collectible":{"x":1320,"y":790,"width":58,"height":58},
|
||||
"targets":{"deaths":1,"seconds":55},
|
||||
"platforms":[{"box":{"x":0,"y":880,"width":2450,"height":200}}],
|
||||
"hazards":[{"type":"CRUSHER","box":{"x":680,"y":690,"width":170,"height":190},
|
||||
"impulseX":40,"impulseY":100,"cycleSeconds":4.5,"activeSeconds":2.4,
|
||||
"speedX":0,"speedY":0,"visualStyle":"steel-press","audioCue":"crusher-impact"}],
|
||||
"switches":[{"type":"PRESSURE","box":{"x":650,"y":860,"width":230,"height":20},"signalId":"pressed-mass","durationSeconds":0,"requiredMass":1}],
|
||||
"doors":[]
|
||||
}
|
||||
@@ -85,7 +85,7 @@ public final class LevelContentToolTest {
|
||||
|
||||
assertEquals(0, exitCode);
|
||||
assertEquals("Validated production content matrix: worlds=4; planned=52; "
|
||||
+ "authored=13; releaseTotal=69\n",
|
||||
+ "authored=17; releaseTotal=69\n",
|
||||
output.toString(StandardCharsets.UTF_8));
|
||||
assertEquals("", errors.toString(StandardCharsets.UTF_8));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user