Level updates and campaign 2 assets
This commit is contained in:
parent
fba3ed040d
commit
a728a51cd2
Binary file not shown.
|
After Width: | Height: | Size: 2.6 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.4 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 2.9 MiB |
|
|
@ -8,6 +8,7 @@ import level07 from './level07.js';
|
||||||
import level08 from './level08.js';
|
import level08 from './level08.js';
|
||||||
import level09 from './level09.js';
|
import level09 from './level09.js';
|
||||||
import level10 from './level10.js';
|
import level10 from './level10.js';
|
||||||
|
import level11 from './level11.js';
|
||||||
|
|
||||||
// Campaigns group levels into themed "maps" for the level select screen.
|
// Campaigns group levels into themed "maps" for the level select screen.
|
||||||
// Each campaign gets its own background art (bgKey) and theme, so adding a
|
// Each campaign gets its own background art (bgKey) and theme, so adding a
|
||||||
|
|
@ -38,7 +39,7 @@ export const CAMPAIGNS = [
|
||||||
// Its old levels (level04-06) moved into campaign01 while it grows toward
|
// Its old levels (level04-06) moved into campaign01 while it grows toward
|
||||||
// 10; add campaign02's own levels here as they're built. An empty
|
// 10; add campaign02's own levels here as they're built. An empty
|
||||||
// campaign renders as a bare map with "0/0 cleared" - fine as scaffolding.
|
// campaign renders as a bare map with "0/0 cleared" - fine as scaffolding.
|
||||||
levels: [],
|
levels: [level11],
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,10 @@
|
||||||
// Scaffolding level - terrain is a copy of level06.
|
// Generated by editor.html - review before dropping into src/data/levels/.
|
||||||
// Build out the real layout in editor.html, then replace this file.
|
|
||||||
export default {
|
export default {
|
||||||
id: "level09",
|
id: "level09",
|
||||||
name: "The Switchback",
|
name: "Halfpipe Highway",
|
||||||
description: "Left, right, left, right. Stay calm.",
|
description: "Hold on for dear life kids!",
|
||||||
kidsAboard: 3,
|
kidsAboard: 3,
|
||||||
timeLimit: 41,
|
timeLimit: 42,
|
||||||
startPosition: { x: 200, y: 700 },
|
startPosition: { x: 200, y: 700 },
|
||||||
startAngle: 0,
|
startAngle: 0,
|
||||||
terrain: [
|
terrain: [
|
||||||
|
|
@ -51,200 +50,273 @@ export default {
|
||||||
{ x: 2260, y: 840 },
|
{ x: 2260, y: 840 },
|
||||||
{ x: 2330, y: 840 },
|
{ x: 2330, y: 840 },
|
||||||
{ x: 2400, y: 840 },
|
{ x: 2400, y: 840 },
|
||||||
{ x: 2470, y: 840 },
|
{ x: 2470, y: 842 },
|
||||||
{ x: 2540, y: 840 },
|
{ x: 2540, y: 848 },
|
||||||
{ x: 2610, y: 840 },
|
{ x: 2610, y: 862 },
|
||||||
{ x: 2680, y: 840 },
|
{ x: 2680, y: 884 },
|
||||||
{ x: 2750, y: 840 },
|
{ x: 2750, y: 918 },
|
||||||
{ x: 2820, y: 840 },
|
{ x: 2820, y: 956 },
|
||||||
{ x: 2890, y: 840 },
|
{ x: 2890, y: 996 },
|
||||||
{ x: 2960, y: 840 },
|
{ x: 2960, y: 1036 },
|
||||||
{ x: 3030, y: 840 },
|
{ x: 3030, y: 1076 },
|
||||||
{ x: 3100, y: 840 },
|
{ x: 3100, y: 1116 },
|
||||||
{ x: 3170, y: 840 },
|
{ x: 3170, y: 1156 },
|
||||||
{ x: 3240, y: 840 },
|
{ x: 3240, y: 1196 },
|
||||||
{ x: 3310, y: 840 },
|
{ x: 3310, y: 1236 },
|
||||||
{ x: 3380, y: 840 },
|
{ x: 3380, y: 1276 },
|
||||||
{ x: 3450, y: 840 },
|
{ x: 3450, y: 1316 },
|
||||||
{ x: 3520, y: 840 },
|
{ x: 3520, y: 1356 },
|
||||||
{ x: 3590, y: 840 },
|
{ x: 3590, y: 1396 },
|
||||||
{ x: 3660, y: 840 },
|
{ x: 3660, y: 1436 },
|
||||||
{ x: 3730, y: 840 },
|
{ x: 3730, y: 1476 },
|
||||||
{ x: 3800, y: 840 },
|
{ x: 3800, y: 1516 },
|
||||||
{ x: 3870, y: 842 },
|
{ x: 3870, y: 1562 },
|
||||||
{ x: 3940, y: 846 },
|
{ x: 3940, y: 1632 },
|
||||||
{ x: 4010, y: 850 },
|
{ x: 4010, y: 1730 },
|
||||||
{ x: 4080, y: 858 },
|
{ x: 4080, y: 1842 },
|
||||||
{ x: 4150, y: 868 },
|
{ x: 4150, y: 1954 },
|
||||||
{ x: 4220, y: 878 },
|
{ x: 4220, y: 2066 },
|
||||||
{ x: 4290, y: 890 },
|
{ x: 4290, y: 2178 },
|
||||||
{ x: 4360, y: 904 },
|
{ x: 4300, y: 2194 },
|
||||||
{ x: 4430, y: 916 },
|
{ x: 4306, y: 2204 },
|
||||||
{ x: 4500, y: 930 },
|
{ x: 4322, y: 2230 },
|
||||||
{ x: 4570, y: 944 },
|
{ x: 4348, y: 2270 },
|
||||||
{ x: 4640, y: 956 },
|
{ x: 4384, y: 2322 },
|
||||||
{ x: 4710, y: 970 },
|
{ x: 4428, y: 2382 },
|
||||||
{ x: 4780, y: 982 },
|
{ x: 4480, y: 2440 },
|
||||||
{ x: 4850, y: 992 },
|
{ x: 4540, y: 2494 },
|
||||||
{ x: 4920, y: 1002 },
|
{ x: 4606, y: 2540 },
|
||||||
{ x: 4990, y: 1010 },
|
{ x: 4678, y: 2578 },
|
||||||
{ x: 5060, y: 1014 },
|
{ x: 4756, y: 2612 },
|
||||||
{ x: 5130, y: 1018 },
|
{ x: 4838, y: 2642 },
|
||||||
{ x: 5200, y: 1020 },
|
{ x: 4924, y: 2670 },
|
||||||
{ x: 5270, y: 1020 },
|
{ x: 5012, y: 2692 },
|
||||||
{ x: 5340, y: 1020 },
|
{ x: 5104, y: 2710 },
|
||||||
{ x: 5410, y: 1020 },
|
{ x: 5198, y: 2726 },
|
||||||
{ x: 5480, y: 1020 },
|
{ x: 5292, y: 2736 },
|
||||||
{ x: 5550, y: 1020 },
|
{ x: 5386, y: 2744 },
|
||||||
{ x: 5620, y: 1020 },
|
{ x: 5480, y: 2748 },
|
||||||
{ x: 5690, y: 1020 },
|
{ x: 5574, y: 2748 },
|
||||||
{ x: 5760, y: 1020 },
|
{ x: 5664, y: 2746 },
|
||||||
{ x: 5830, y: 1020 },
|
{ x: 5754, y: 2740 },
|
||||||
{ x: 5900, y: 1020 },
|
{ x: 5840, y: 2730 },
|
||||||
{ x: 5970, y: 1020 },
|
{ x: 5922, y: 2718 },
|
||||||
{ x: 6040, y: 1020 },
|
{ x: 6000, y: 2702 },
|
||||||
{ x: 6110, y: 1020 },
|
{ x: 6072, y: 2684 },
|
||||||
{ x: 6180, y: 1020 },
|
{ x: 6140, y: 2664 },
|
||||||
{ x: 6250, y: 1020 },
|
{ x: 6200, y: 2640 },
|
||||||
{ x: 6320, y: 1020 },
|
{ x: 6254, y: 2612 },
|
||||||
{ x: 6390, y: 1020 },
|
{ x: 6298, y: 2584 },
|
||||||
{ x: 6460, y: 1020 },
|
{ x: 6336, y: 2552 },
|
||||||
{ x: 6530, y: 1020 },
|
{ x: 6362, y: 2518 },
|
||||||
{ x: 6600, y: 1020 },
|
{ x: 6380, y: 2482 },
|
||||||
{ x: 6670, y: 1018 },
|
{ x: 6450, y: 2352 },
|
||||||
{ x: 6740, y: 1014 },
|
{ x: 6520, y: 2250 },
|
||||||
{ x: 6810, y: 1010 },
|
{ x: 6590, y: 2180 },
|
||||||
{ x: 6880, y: 1002 },
|
{ x: 6660, y: 2136 },
|
||||||
{ x: 6950, y: 992 },
|
{ x: 6730, y: 2108 },
|
||||||
{ x: 7020, y: 982 },
|
{ x: 6800, y: 2090 },
|
||||||
{ x: 7090, y: 970 },
|
{ x: 6870, y: 2074 },
|
||||||
{ x: 7160, y: 956 },
|
{ x: 6940, y: 2058 },
|
||||||
{ x: 7230, y: 944 },
|
{ x: 7010, y: 2042 },
|
||||||
{ x: 7300, y: 930 },
|
{ x: 7080, y: 2026 },
|
||||||
{ x: 7370, y: 916 },
|
{ x: 7150, y: 2010 },
|
||||||
{ x: 7440, y: 904 },
|
{ x: 7220, y: 1994 },
|
||||||
{ x: 7510, y: 890 },
|
{ x: 7290, y: 1978 },
|
||||||
{ x: 7580, y: 878 },
|
{ x: 7360, y: 1962 },
|
||||||
{ x: 7650, y: 868 },
|
{ x: 7430, y: 1946 },
|
||||||
{ x: 7720, y: 858 },
|
{ x: 7500, y: 1930 },
|
||||||
{ x: 7790, y: 850 },
|
{ x: 7570, y: 1914 },
|
||||||
{ x: 7860, y: 846 },
|
{ x: 7640, y: 1898 },
|
||||||
{ x: 7930, y: 842 },
|
{ x: 7710, y: 1882 },
|
||||||
{ x: 8000, y: 840 },
|
{ x: 7780, y: 1866 },
|
||||||
{ x: 8070, y: 840 },
|
{ x: 7850, y: 1860 },
|
||||||
{ x: 8140, y: 840 },
|
{ x: 7920, y: 1880 },
|
||||||
{ x: 8210, y: 840 },
|
{ x: 7990, y: 1936 },
|
||||||
{ x: 8280, y: 840 },
|
{ x: 8060, y: 2006 },
|
||||||
{ x: 8350, y: 840 },
|
{ x: 8130, y: 2074 },
|
||||||
{ x: 8420, y: 840 },
|
{ x: 8200, y: 2144 },
|
||||||
{ x: 8490, y: 840 },
|
{ x: 8270, y: 2214 },
|
||||||
{ x: 8560, y: 840 },
|
{ x: 8280, y: 2224 },
|
||||||
{ x: 8630, y: 840 },
|
{ x: 8284, y: 2228 },
|
||||||
{ x: 8700, y: 840 },
|
{ x: 8294, y: 2238 },
|
||||||
{ x: 8770, y: 840 },
|
{ x: 8312, y: 2256 },
|
||||||
{ x: 8840, y: 840 },
|
{ x: 8334, y: 2278 },
|
||||||
{ x: 8910, y: 840 },
|
{ x: 8364, y: 2306 },
|
||||||
{ x: 8980, y: 840 },
|
{ x: 8398, y: 2336 },
|
||||||
{ x: 9050, y: 840 },
|
{ x: 8438, y: 2370 },
|
||||||
{ x: 9120, y: 840 },
|
{ x: 8480, y: 2400 },
|
||||||
{ x: 9190, y: 840 },
|
{ x: 8528, y: 2432 },
|
||||||
{ x: 9260, y: 840 },
|
{ x: 8578, y: 2460 },
|
||||||
{ x: 9330, y: 840 },
|
{ x: 8632, y: 2484 },
|
||||||
{ x: 9400, y: 840 },
|
{ x: 8688, y: 2508 },
|
||||||
{ x: 9470, y: 840 },
|
{ x: 8748, y: 2528 },
|
||||||
{ x: 9540, y: 840 },
|
{ x: 8808, y: 2546 },
|
||||||
{ x: 9610, y: 840 },
|
{ x: 8870, y: 2562 },
|
||||||
{ x: 9680, y: 840 },
|
{ x: 8932, y: 2572 },
|
||||||
{ x: 9750, y: 840 },
|
{ x: 8994, y: 2580 },
|
||||||
{ x: 9820, y: 840 },
|
{ x: 9056, y: 2584 },
|
||||||
{ x: 9890, y: 840 },
|
{ x: 9118, y: 2584 },
|
||||||
{ x: 9960, y: 840 },
|
{ x: 9180, y: 2582 },
|
||||||
{ x: 10030, y: 840 },
|
{ x: 9240, y: 2576 },
|
||||||
{ x: 10100, y: 840 },
|
{ x: 9298, y: 2566 },
|
||||||
{ x: 10170, y: 840 },
|
{ x: 9354, y: 2554 },
|
||||||
{ x: 10240, y: 840 },
|
{ x: 9406, y: 2538 },
|
||||||
{ x: 10310, y: 840 },
|
{ x: 9456, y: 2520 },
|
||||||
{ x: 10380, y: 840 },
|
{ x: 9502, y: 2498 },
|
||||||
{ x: 10450, y: 840 },
|
{ x: 9544, y: 2476 },
|
||||||
{ x: 10520, y: 840 },
|
{ x: 9582, y: 2448 },
|
||||||
{ x: 10590, y: 840 },
|
{ x: 9616, y: 2420 },
|
||||||
{ x: 10660, y: 840 },
|
{ x: 9642, y: 2388 },
|
||||||
{ x: 10730, y: 840 },
|
{ x: 9664, y: 2354 },
|
||||||
{ x: 10800, y: 840 },
|
{ x: 9680, y: 2318 },
|
||||||
{ x: 10870, y: 840 },
|
{ x: 9696, y: 2282 },
|
||||||
{ x: 10940, y: 840 },
|
{ x: 9718, y: 2234 },
|
||||||
{ x: 11010, y: 840 },
|
{ x: 9744, y: 2182 },
|
||||||
{ x: 11080, y: 840 },
|
{ x: 9778, y: 2120 },
|
||||||
{ x: 11150, y: 840 },
|
{ x: 9816, y: 2064 },
|
||||||
{ x: 11220, y: 840 },
|
{ x: 9858, y: 2016 },
|
||||||
{ x: 11290, y: 840 },
|
{ x: 9904, y: 1976 },
|
||||||
{ x: 11360, y: 840 },
|
{ x: 9954, y: 1946 },
|
||||||
{ x: 11430, y: 840 },
|
{ x: 10006, y: 1924 },
|
||||||
{ x: 11500, y: 840 },
|
{ x: 10062, y: 1910 },
|
||||||
{ x: 11570, y: 840 },
|
{ x: 10120, y: 1900 },
|
||||||
{ x: 11640, y: 840 },
|
{ x: 10180, y: 1894 },
|
||||||
{ x: 11710, y: 840 },
|
{ x: 10242, y: 1892 },
|
||||||
{ x: 11780, y: 840 },
|
{ x: 10304, y: 1892 },
|
||||||
{ x: 11808, y: 840 },
|
{ x: 10366, y: 1896 },
|
||||||
{ x: 11878, y: 836 },
|
{ x: 10428, y: 1904 },
|
||||||
{ x: 11948, y: 822 },
|
{ x: 10490, y: 1914 },
|
||||||
{ x: 12018, y: 800 },
|
{ x: 10552, y: 1930 },
|
||||||
{ x: 12088, y: 768 },
|
{ x: 10612, y: 1948 },
|
||||||
{ x: 12158, y: 728 },
|
{ x: 10672, y: 1972 },
|
||||||
{ x: 12200, y: 700 },
|
{ x: 10728, y: 1998 },
|
||||||
{ x: 12270, y: 700 },
|
{ x: 10782, y: 2028 },
|
||||||
] },
|
{ x: 10832, y: 2064 },
|
||||||
{ points: [
|
{ x: 10880, y: 2102 },
|
||||||
{ x: 13704, y: 1180 },
|
{ x: 10922, y: 2146 },
|
||||||
{ x: 13774, y: 1180 },
|
{ x: 10962, y: 2194 },
|
||||||
{ x: 13844, y: 1180 },
|
{ x: 10996, y: 2246 },
|
||||||
{ x: 13914, y: 1180 },
|
{ x: 11026, y: 2302 },
|
||||||
{ x: 13984, y: 1180 },
|
{ x: 11048, y: 2364 },
|
||||||
{ x: 14054, y: 1180 },
|
{ x: 11066, y: 2430 },
|
||||||
{ x: 14080, y: 1180 },
|
{ x: 11076, y: 2502 },
|
||||||
{ x: 14150, y: 1180 },
|
{ x: 11080, y: 2578 },
|
||||||
{ x: 14220, y: 1180 },
|
{ x: 11080, y: 2580 },
|
||||||
{ x: 14290, y: 1180 },
|
{ x: 11084, y: 2656 },
|
||||||
{ x: 14360, y: 1180 },
|
{ x: 11094, y: 2726 },
|
||||||
{ x: 14430, y: 1180 },
|
{ x: 11112, y: 2794 },
|
||||||
{ x: 14500, y: 1180 },
|
{ x: 11134, y: 2854 },
|
||||||
{ x: 14570, y: 1180 },
|
{ x: 11164, y: 2912 },
|
||||||
{ x: 14640, y: 1180 },
|
{ x: 11198, y: 2964 },
|
||||||
{ x: 14710, y: 1180 },
|
{ x: 11238, y: 3012 },
|
||||||
{ x: 14780, y: 1180 },
|
{ x: 11280, y: 3056 },
|
||||||
{ x: 14850, y: 1180 },
|
{ x: 11328, y: 3094 },
|
||||||
{ x: 14920, y: 1180 },
|
{ x: 11378, y: 3130 },
|
||||||
{ x: 14990, y: 1180 },
|
{ x: 11432, y: 3160 },
|
||||||
{ x: 15060, y: 1180 },
|
{ x: 11488, y: 3186 },
|
||||||
{ x: 15130, y: 1180 },
|
{ x: 11548, y: 3210 },
|
||||||
{ x: 15200, y: 1180 },
|
{ x: 11608, y: 3228 },
|
||||||
{ x: 15270, y: 1180 },
|
{ x: 11670, y: 3242 },
|
||||||
{ x: 15340, y: 1180 },
|
{ x: 11732, y: 3254 },
|
||||||
{ x: 15410, y: 1180 },
|
{ x: 11794, y: 3262 },
|
||||||
{ x: 15480, y: 1180 },
|
{ x: 11856, y: 3266 },
|
||||||
{ x: 15550, y: 1180 },
|
{ x: 11918, y: 3266 },
|
||||||
{ x: 15620, y: 1180 },
|
{ x: 11980, y: 3264 },
|
||||||
{ x: 15690, y: 1180 },
|
{ x: 12040, y: 3258 },
|
||||||
{ x: 15760, y: 1180 },
|
{ x: 12098, y: 3248 },
|
||||||
{ x: 15830, y: 1180 },
|
{ x: 12154, y: 3236 },
|
||||||
{ x: 15900, y: 1180 },
|
{ x: 12206, y: 3220 },
|
||||||
{ x: 15970, y: 1180 },
|
{ x: 12256, y: 3202 },
|
||||||
{ x: 16040, y: 1180 },
|
{ x: 12302, y: 3180 },
|
||||||
{ x: 16110, y: 1180 },
|
{ x: 12344, y: 3156 },
|
||||||
{ x: 16180, y: 1180 },
|
{ x: 12382, y: 3130 },
|
||||||
{ x: 16250, y: 1180 },
|
{ x: 12416, y: 3102 },
|
||||||
{ x: 16320, y: 1180 },
|
{ x: 12442, y: 3070 },
|
||||||
{ x: 16390, y: 1180 },
|
{ x: 12464, y: 3036 },
|
||||||
{ x: 16460, y: 1180 },
|
{ x: 12480, y: 3000 },
|
||||||
{ x: 16530, y: 1180 },
|
{ x: 12550, y: 2898 },
|
||||||
{ x: 16600, y: 1180 },
|
{ x: 12620, y: 2892 },
|
||||||
{ x: 16670, y: 1180 },
|
{ x: 12690, y: 2964 },
|
||||||
{ x: 16740, y: 1180 },
|
{ x: 12760, y: 3076 },
|
||||||
{ x: 16810, y: 1180 },
|
{ x: 12830, y: 3188 },
|
||||||
{ x: 16880, y: 1180 },
|
{ x: 12900, y: 3300 },
|
||||||
|
{ x: 12970, y: 3412 },
|
||||||
|
{ x: 12980, y: 3428 },
|
||||||
|
{ x: 13050, y: 3534 },
|
||||||
|
{ x: 13120, y: 3626 },
|
||||||
|
{ x: 13190, y: 3694 },
|
||||||
|
{ x: 13260, y: 3746 },
|
||||||
|
{ x: 13330, y: 3784 },
|
||||||
|
{ x: 13400, y: 3816 },
|
||||||
|
{ x: 13470, y: 3846 },
|
||||||
|
{ x: 13540, y: 3874 },
|
||||||
|
{ x: 13610, y: 3902 },
|
||||||
|
{ x: 13680, y: 3932 },
|
||||||
|
{ x: 13750, y: 3960 },
|
||||||
|
{ x: 13820, y: 3990 },
|
||||||
|
{ x: 13890, y: 4018 },
|
||||||
|
{ x: 13960, y: 4046 },
|
||||||
|
{ x: 14030, y: 4076 },
|
||||||
|
{ x: 14100, y: 4104 },
|
||||||
|
{ x: 14170, y: 4134 },
|
||||||
|
{ x: 14240, y: 4162 },
|
||||||
|
{ x: 14310, y: 4190 },
|
||||||
|
{ x: 14380, y: 4220 },
|
||||||
|
{ x: 14380, y: 4218 },
|
||||||
|
{ x: 14450, y: 4246 },
|
||||||
|
{ x: 14520, y: 4272 },
|
||||||
|
{ x: 14590, y: 4290 },
|
||||||
|
{ x: 14660, y: 4300 },
|
||||||
|
{ x: 14730, y: 4304 },
|
||||||
|
{ x: 14800, y: 4306 },
|
||||||
|
{ x: 14870, y: 4306 },
|
||||||
|
{ x: 14940, y: 4306 },
|
||||||
|
{ x: 15010, y: 4306 },
|
||||||
|
{ x: 15080, y: 4306 },
|
||||||
|
{ x: 15150, y: 4306 },
|
||||||
|
{ x: 15220, y: 4306 },
|
||||||
|
{ x: 15290, y: 4306 },
|
||||||
|
{ x: 15360, y: 4306 },
|
||||||
|
{ x: 15430, y: 4306 },
|
||||||
|
{ x: 15500, y: 4306 },
|
||||||
|
{ x: 15570, y: 4306 },
|
||||||
|
{ x: 15640, y: 4306 },
|
||||||
|
{ x: 15710, y: 4306 },
|
||||||
|
{ x: 15780, y: 4306 },
|
||||||
|
{ x: 15850, y: 4306 },
|
||||||
|
{ x: 15920, y: 4306 },
|
||||||
|
{ x: 15990, y: 4306 },
|
||||||
|
{ x: 16060, y: 4306 },
|
||||||
|
{ x: 16130, y: 4306 },
|
||||||
|
{ x: 16200, y: 4306 },
|
||||||
|
{ x: 16270, y: 4306 },
|
||||||
|
{ x: 16340, y: 4306 },
|
||||||
|
{ x: 16410, y: 4306 },
|
||||||
|
{ x: 16480, y: 4306 },
|
||||||
|
{ x: 16550, y: 4306 },
|
||||||
|
{ x: 16620, y: 4306 },
|
||||||
|
{ x: 16690, y: 4306 },
|
||||||
|
{ x: 16760, y: 4306 },
|
||||||
|
{ x: 16830, y: 4306 },
|
||||||
|
{ x: 16900, y: 4306 },
|
||||||
|
{ x: 16970, y: 4306 },
|
||||||
|
{ x: 17040, y: 4306 },
|
||||||
|
{ x: 17110, y: 4306 },
|
||||||
|
{ x: 17180, y: 4306 },
|
||||||
] },
|
] },
|
||||||
],
|
],
|
||||||
obstacles: [],
|
obstacles: [],
|
||||||
goal: { x: 16640, y: 940, width: 280, height: 640 },
|
items: [
|
||||||
cameraBounds: { x: -600, y: -100, width: 18280, height: 2080 },
|
{ type: "tv", mode: "gravity", x: 16079, y: 4033 },
|
||||||
|
{ type: "tv", mode: "gravity", x: 16288, y: 3992 },
|
||||||
|
{ type: "tv", mode: "gravity", x: 16613, y: 3933 },
|
||||||
|
],
|
||||||
|
bonusItems: [
|
||||||
|
{ type: "ctc", x: 7188, y: 1808 },
|
||||||
|
{ type: "guitar", x: 10396, y: 1708 },
|
||||||
|
{ type: "cash", x: 12654, y: 2583 },
|
||||||
|
],
|
||||||
|
goal: { x: 16940, y: 4067, width: 280, height: 640 },
|
||||||
|
cameraBounds: { x: -600, y: 0, width: 18580, height: 5106 },
|
||||||
};
|
};
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,899 @@
|
||||||
|
// Generated by editor.html - review before dropping into src/data/levels/.
|
||||||
|
export default {
|
||||||
|
id: "level11",
|
||||||
|
name: "Uh oh!",
|
||||||
|
description: "What have I gotten myself into?",
|
||||||
|
kidsAboard: 3,
|
||||||
|
timeLimit: 119,
|
||||||
|
startPosition: { x: 200, y: 700 },
|
||||||
|
startAngle: 0,
|
||||||
|
terrain: [
|
||||||
|
{ points: [
|
||||||
|
{ x: -400, y: 840 },
|
||||||
|
{ x: -330, y: 840 },
|
||||||
|
{ x: -260, y: 840 },
|
||||||
|
{ x: -190, y: 840 },
|
||||||
|
{ x: -120, y: 840 },
|
||||||
|
{ x: -50, y: 840 },
|
||||||
|
{ x: 20, y: 840 },
|
||||||
|
{ x: 90, y: 840 },
|
||||||
|
{ x: 160, y: 840 },
|
||||||
|
{ x: 230, y: 840 },
|
||||||
|
{ x: 300, y: 840 },
|
||||||
|
{ x: 370, y: 840 },
|
||||||
|
{ x: 440, y: 840 },
|
||||||
|
{ x: 510, y: 840 },
|
||||||
|
{ x: 580, y: 840 },
|
||||||
|
{ x: 650, y: 840 },
|
||||||
|
{ x: 720, y: 840 },
|
||||||
|
{ x: 790, y: 840 },
|
||||||
|
{ x: 860, y: 840 },
|
||||||
|
{ x: 930, y: 840 },
|
||||||
|
{ x: 1000, y: 840 },
|
||||||
|
{ x: 1070, y: 842 },
|
||||||
|
{ x: 1140, y: 846 },
|
||||||
|
{ x: 1210, y: 850 },
|
||||||
|
{ x: 1280, y: 858 },
|
||||||
|
{ x: 1350, y: 868 },
|
||||||
|
{ x: 1420, y: 878 },
|
||||||
|
{ x: 1490, y: 890 },
|
||||||
|
{ x: 1560, y: 904 },
|
||||||
|
{ x: 1630, y: 916 },
|
||||||
|
{ x: 1700, y: 930 },
|
||||||
|
{ x: 1770, y: 944 },
|
||||||
|
{ x: 1840, y: 956 },
|
||||||
|
{ x: 1910, y: 970 },
|
||||||
|
{ x: 1980, y: 982 },
|
||||||
|
{ x: 2050, y: 992 },
|
||||||
|
{ x: 2120, y: 1002 },
|
||||||
|
{ x: 2190, y: 1010 },
|
||||||
|
{ x: 2260, y: 1014 },
|
||||||
|
{ x: 2330, y: 1018 },
|
||||||
|
{ x: 2400, y: 1020 },
|
||||||
|
{ x: 2470, y: 1022 },
|
||||||
|
{ x: 2540, y: 1026 },
|
||||||
|
{ x: 2610, y: 1030 },
|
||||||
|
{ x: 2680, y: 1038 },
|
||||||
|
{ x: 2750, y: 1048 },
|
||||||
|
{ x: 2820, y: 1058 },
|
||||||
|
{ x: 2890, y: 1070 },
|
||||||
|
{ x: 2960, y: 1084 },
|
||||||
|
{ x: 3030, y: 1096 },
|
||||||
|
{ x: 3100, y: 1110 },
|
||||||
|
{ x: 3170, y: 1124 },
|
||||||
|
{ x: 3240, y: 1136 },
|
||||||
|
{ x: 3310, y: 1150 },
|
||||||
|
{ x: 3380, y: 1162 },
|
||||||
|
{ x: 3450, y: 1172 },
|
||||||
|
{ x: 3520, y: 1182 },
|
||||||
|
{ x: 3590, y: 1190 },
|
||||||
|
{ x: 3660, y: 1194 },
|
||||||
|
{ x: 3730, y: 1198 },
|
||||||
|
{ x: 3800, y: 1200 },
|
||||||
|
{ x: 3870, y: 1200 },
|
||||||
|
{ x: 3940, y: 1200 },
|
||||||
|
{ x: 4010, y: 1200 },
|
||||||
|
{ x: 4080, y: 1200 },
|
||||||
|
{ x: 4150, y: 1200 },
|
||||||
|
{ x: 4220, y: 1200 },
|
||||||
|
{ x: 4290, y: 1200 },
|
||||||
|
{ x: 4360, y: 1200 },
|
||||||
|
{ x: 4430, y: 1200 },
|
||||||
|
{ x: 4500, y: 1200 },
|
||||||
|
{ x: 4570, y: 1200 },
|
||||||
|
{ x: 4640, y: 1200 },
|
||||||
|
{ x: 4710, y: 1200 },
|
||||||
|
{ x: 4780, y: 1200 },
|
||||||
|
{ x: 4850, y: 1200 },
|
||||||
|
{ x: 4920, y: 1200 },
|
||||||
|
{ x: 4990, y: 1200 },
|
||||||
|
{ x: 5060, y: 1200 },
|
||||||
|
{ x: 5130, y: 1200 },
|
||||||
|
{ x: 5200, y: 1200 },
|
||||||
|
{ x: 5270, y: 1202 },
|
||||||
|
{ x: 5340, y: 1206 },
|
||||||
|
{ x: 5410, y: 1218 },
|
||||||
|
{ x: 5480, y: 1238 },
|
||||||
|
{ x: 5550, y: 1264 },
|
||||||
|
{ x: 5620, y: 1296 },
|
||||||
|
{ x: 5690, y: 1330 },
|
||||||
|
{ x: 5760, y: 1362 },
|
||||||
|
{ x: 5830, y: 1396 },
|
||||||
|
{ x: 5900, y: 1428 },
|
||||||
|
{ x: 5970, y: 1460 },
|
||||||
|
{ x: 6040, y: 1494 },
|
||||||
|
{ x: 6110, y: 1526 },
|
||||||
|
{ x: 6180, y: 1560 },
|
||||||
|
{ x: 6250, y: 1592 },
|
||||||
|
{ x: 6320, y: 1624 },
|
||||||
|
{ x: 6390, y: 1658 },
|
||||||
|
{ x: 6460, y: 1690 },
|
||||||
|
{ x: 6530, y: 1724 },
|
||||||
|
{ x: 6600, y: 1756 },
|
||||||
|
{ x: 6670, y: 1788 },
|
||||||
|
{ x: 6740, y: 1818 },
|
||||||
|
{ x: 6810, y: 1848 },
|
||||||
|
{ x: 6880, y: 1878 },
|
||||||
|
{ x: 6950, y: 1904 },
|
||||||
|
{ x: 7020, y: 1930 },
|
||||||
|
{ x: 7090, y: 1956 },
|
||||||
|
{ x: 7160, y: 1982 },
|
||||||
|
{ x: 7230, y: 2006 },
|
||||||
|
{ x: 7300, y: 2030 },
|
||||||
|
{ x: 7370, y: 2054 },
|
||||||
|
{ x: 7440, y: 2078 },
|
||||||
|
{ x: 7510, y: 2102 },
|
||||||
|
{ x: 7580, y: 2128 },
|
||||||
|
{ x: 7650, y: 2152 },
|
||||||
|
{ x: 7720, y: 2176 },
|
||||||
|
{ x: 7790, y: 2200 },
|
||||||
|
{ x: 7860, y: 2224 },
|
||||||
|
{ x: 7930, y: 2250 },
|
||||||
|
{ x: 8000, y: 2274 },
|
||||||
|
{ x: 8070, y: 2298 },
|
||||||
|
{ x: 8140, y: 2322 },
|
||||||
|
{ x: 8210, y: 2346 },
|
||||||
|
{ x: 8280, y: 2370 },
|
||||||
|
{ x: 8350, y: 2396 },
|
||||||
|
{ x: 8420, y: 2420 },
|
||||||
|
{ x: 8490, y: 2444 },
|
||||||
|
{ x: 8560, y: 2468 },
|
||||||
|
{ x: 8630, y: 2492 },
|
||||||
|
{ x: 8700, y: 2516 },
|
||||||
|
{ x: 8770, y: 2542 },
|
||||||
|
{ x: 8840, y: 2566 },
|
||||||
|
{ x: 8900, y: 2586 },
|
||||||
|
{ x: 8970, y: 2606 },
|
||||||
|
{ x: 9040, y: 2618 },
|
||||||
|
{ x: 9110, y: 2614 },
|
||||||
|
{ x: 9180, y: 2594 },
|
||||||
|
{ x: 9250, y: 2556 },
|
||||||
|
{ x: 9320, y: 2508 },
|
||||||
|
{ x: 9390, y: 2456 },
|
||||||
|
{ x: 9460, y: 2404 },
|
||||||
|
{ x: 9530, y: 2404 },
|
||||||
|
] },
|
||||||
|
{ points: [
|
||||||
|
{ x: 9880, y: 2346 },
|
||||||
|
{ x: 9950, y: 2364 },
|
||||||
|
{ x: 10020, y: 2408 },
|
||||||
|
{ x: 10090, y: 2466 },
|
||||||
|
{ x: 10160, y: 2524 },
|
||||||
|
{ x: 10230, y: 2568 },
|
||||||
|
{ x: 10300, y: 2586 },
|
||||||
|
{ x: 10370, y: 2604 },
|
||||||
|
{ x: 10440, y: 2626 },
|
||||||
|
{ x: 10510, y: 2654 },
|
||||||
|
{ x: 10580, y: 2686 },
|
||||||
|
{ x: 10650, y: 2722 },
|
||||||
|
{ x: 10720, y: 2760 },
|
||||||
|
{ x: 10790, y: 2798 },
|
||||||
|
{ x: 10860, y: 2834 },
|
||||||
|
{ x: 10930, y: 2872 },
|
||||||
|
{ x: 11000, y: 2910 },
|
||||||
|
{ x: 11070, y: 2946 },
|
||||||
|
{ x: 11140, y: 2984 },
|
||||||
|
{ x: 11210, y: 3022 },
|
||||||
|
{ x: 11280, y: 3058 },
|
||||||
|
{ x: 11350, y: 3096 },
|
||||||
|
{ x: 11420, y: 3134 },
|
||||||
|
{ x: 11440, y: 3144 },
|
||||||
|
{ x: 11510, y: 3178 },
|
||||||
|
{ x: 11580, y: 3206 },
|
||||||
|
{ x: 11650, y: 3226 },
|
||||||
|
{ x: 11720, y: 3240 },
|
||||||
|
{ x: 11790, y: 3244 },
|
||||||
|
{ x: 11860, y: 3246 },
|
||||||
|
{ x: 11930, y: 3246 },
|
||||||
|
{ x: 12000, y: 3246 },
|
||||||
|
{ x: 12070, y: 3246 },
|
||||||
|
{ x: 12140, y: 3246 },
|
||||||
|
{ x: 12210, y: 3246 },
|
||||||
|
{ x: 12280, y: 3246 },
|
||||||
|
{ x: 12350, y: 3246 },
|
||||||
|
{ x: 12420, y: 3246 },
|
||||||
|
{ x: 12448, y: 3246 },
|
||||||
|
{ x: 12518, y: 3242 },
|
||||||
|
{ x: 12588, y: 3228 },
|
||||||
|
{ x: 12658, y: 3206 },
|
||||||
|
{ x: 12728, y: 3174 },
|
||||||
|
{ x: 12798, y: 3134 },
|
||||||
|
{ x: 12840, y: 3106 },
|
||||||
|
{ x: 12842, y: 3182 },
|
||||||
|
{ x: 12844, y: 3254 },
|
||||||
|
{ x: 12850, y: 3320 },
|
||||||
|
{ x: 12856, y: 3382 },
|
||||||
|
{ x: 12864, y: 3438 },
|
||||||
|
{ x: 12876, y: 3490 },
|
||||||
|
{ x: 12886, y: 3538 },
|
||||||
|
{ x: 12900, y: 3582 },
|
||||||
|
{ x: 12914, y: 3622 },
|
||||||
|
{ x: 12930, y: 3656 },
|
||||||
|
{ x: 12946, y: 3686 },
|
||||||
|
{ x: 12964, y: 3714 },
|
||||||
|
{ x: 12982, y: 3736 },
|
||||||
|
{ x: 13002, y: 3754 },
|
||||||
|
{ x: 13022, y: 3770 },
|
||||||
|
{ x: 13042, y: 3780 },
|
||||||
|
{ x: 13062, y: 3788 },
|
||||||
|
{ x: 13082, y: 3792 },
|
||||||
|
{ x: 13104, y: 3792 },
|
||||||
|
{ x: 13124, y: 3790 },
|
||||||
|
{ x: 13146, y: 3784 },
|
||||||
|
{ x: 13166, y: 3774 },
|
||||||
|
{ x: 13188, y: 3762 },
|
||||||
|
{ x: 13208, y: 3748 },
|
||||||
|
{ x: 13226, y: 3728 },
|
||||||
|
{ x: 13246, y: 3708 },
|
||||||
|
{ x: 13264, y: 3684 },
|
||||||
|
{ x: 13282, y: 3658 },
|
||||||
|
{ x: 13298, y: 3628 },
|
||||||
|
{ x: 13312, y: 3596 },
|
||||||
|
{ x: 13328, y: 3562 },
|
||||||
|
{ x: 13340, y: 3526 },
|
||||||
|
{ x: 13354, y: 3484 },
|
||||||
|
{ x: 13372, y: 3434 },
|
||||||
|
{ x: 13392, y: 3384 },
|
||||||
|
{ x: 13416, y: 3332 },
|
||||||
|
{ x: 13442, y: 3288 },
|
||||||
|
{ x: 13472, y: 3250 },
|
||||||
|
{ x: 13502, y: 3222 },
|
||||||
|
{ x: 13536, y: 3198 },
|
||||||
|
{ x: 13570, y: 3182 },
|
||||||
|
{ x: 13606, y: 3170 },
|
||||||
|
{ x: 13644, y: 3162 },
|
||||||
|
{ x: 13682, y: 3156 },
|
||||||
|
{ x: 13720, y: 3154 },
|
||||||
|
{ x: 13760, y: 3154 },
|
||||||
|
{ x: 13800, y: 3158 },
|
||||||
|
{ x: 13838, y: 3166 },
|
||||||
|
{ x: 13878, y: 3176 },
|
||||||
|
{ x: 13916, y: 3192 },
|
||||||
|
{ x: 13954, y: 3210 },
|
||||||
|
{ x: 13990, y: 3232 },
|
||||||
|
{ x: 14024, y: 3260 },
|
||||||
|
{ x: 14058, y: 3290 },
|
||||||
|
{ x: 14088, y: 3324 },
|
||||||
|
{ x: 14118, y: 3364 },
|
||||||
|
{ x: 14144, y: 3408 },
|
||||||
|
{ x: 14168, y: 3456 },
|
||||||
|
{ x: 14188, y: 3508 },
|
||||||
|
{ x: 14206, y: 3564 },
|
||||||
|
{ x: 14220, y: 3626 },
|
||||||
|
{ x: 14232, y: 3692 },
|
||||||
|
{ x: 14238, y: 3764 },
|
||||||
|
{ x: 14240, y: 3840 },
|
||||||
|
{ x: 14310, y: 3880 },
|
||||||
|
{ x: 14380, y: 3920 },
|
||||||
|
{ x: 14450, y: 3960 },
|
||||||
|
{ x: 14520, y: 4000 },
|
||||||
|
{ x: 14590, y: 4040 },
|
||||||
|
{ x: 14660, y: 4080 },
|
||||||
|
{ x: 14730, y: 4120 },
|
||||||
|
{ x: 14800, y: 4160 },
|
||||||
|
{ x: 14870, y: 4200 },
|
||||||
|
{ x: 14940, y: 4240 },
|
||||||
|
{ x: 15010, y: 4280 },
|
||||||
|
{ x: 15080, y: 4320 },
|
||||||
|
{ x: 15150, y: 4360 },
|
||||||
|
{ x: 15220, y: 4400 },
|
||||||
|
{ x: 15290, y: 4440 },
|
||||||
|
{ x: 15360, y: 4480 },
|
||||||
|
{ x: 15430, y: 4520 },
|
||||||
|
{ x: 15500, y: 4560 },
|
||||||
|
{ x: 15570, y: 4600 },
|
||||||
|
{ x: 15640, y: 4640 },
|
||||||
|
{ x: 15710, y: 4678 },
|
||||||
|
{ x: 15780, y: 4710 },
|
||||||
|
{ x: 15850, y: 4734 },
|
||||||
|
{ x: 15920, y: 4748 },
|
||||||
|
{ x: 15990, y: 4754 },
|
||||||
|
{ x: 16060, y: 4756 },
|
||||||
|
{ x: 16130, y: 4756 },
|
||||||
|
{ x: 16200, y: 4756 },
|
||||||
|
{ x: 16270, y: 4756 },
|
||||||
|
{ x: 16340, y: 4756 },
|
||||||
|
{ x: 16410, y: 4756 },
|
||||||
|
{ x: 16480, y: 4756 },
|
||||||
|
{ x: 16550, y: 4756 },
|
||||||
|
{ x: 16620, y: 4756 },
|
||||||
|
{ x: 16690, y: 4756 },
|
||||||
|
{ x: 16760, y: 4756 },
|
||||||
|
{ x: 16830, y: 4756 },
|
||||||
|
{ x: 16900, y: 4756 },
|
||||||
|
{ x: 16970, y: 4756 },
|
||||||
|
{ x: 17040, y: 4756 },
|
||||||
|
{ x: 17110, y: 4756 },
|
||||||
|
{ x: 17180, y: 4754 },
|
||||||
|
{ x: 17250, y: 4750 },
|
||||||
|
{ x: 17320, y: 4742 },
|
||||||
|
{ x: 17390, y: 4732 },
|
||||||
|
{ x: 17460, y: 4720 },
|
||||||
|
{ x: 17530, y: 4708 },
|
||||||
|
{ x: 17600, y: 4696 },
|
||||||
|
{ x: 17670, y: 4682 },
|
||||||
|
{ x: 17740, y: 4670 },
|
||||||
|
{ x: 17810, y: 4656 },
|
||||||
|
{ x: 17880, y: 4642 },
|
||||||
|
{ x: 17950, y: 4630 },
|
||||||
|
{ x: 18020, y: 4618 },
|
||||||
|
{ x: 18090, y: 4608 },
|
||||||
|
{ x: 18160, y: 4598 },
|
||||||
|
{ x: 18230, y: 4590 },
|
||||||
|
{ x: 18300, y: 4584 },
|
||||||
|
{ x: 18370, y: 4580 },
|
||||||
|
{ x: 18440, y: 4580 },
|
||||||
|
{ x: 18510, y: 4580 },
|
||||||
|
{ x: 18580, y: 4574 },
|
||||||
|
{ x: 18650, y: 4564 },
|
||||||
|
{ x: 18720, y: 4548 },
|
||||||
|
{ x: 18790, y: 4526 },
|
||||||
|
{ x: 18860, y: 4500 },
|
||||||
|
{ x: 18930, y: 4474 },
|
||||||
|
{ x: 19000, y: 4446 },
|
||||||
|
{ x: 19070, y: 4418 },
|
||||||
|
{ x: 19140, y: 4392 },
|
||||||
|
{ x: 19210, y: 4364 },
|
||||||
|
{ x: 19280, y: 4338 },
|
||||||
|
{ x: 19350, y: 4310 },
|
||||||
|
{ x: 19420, y: 4282 },
|
||||||
|
{ x: 19490, y: 4256 },
|
||||||
|
{ x: 19560, y: 4228 },
|
||||||
|
{ x: 19630, y: 4202 },
|
||||||
|
{ x: 19700, y: 4174 },
|
||||||
|
{ x: 19770, y: 4146 },
|
||||||
|
{ x: 19840, y: 4120 },
|
||||||
|
{ x: 19910, y: 4096 },
|
||||||
|
{ x: 19980, y: 4074 },
|
||||||
|
{ x: 20050, y: 4058 },
|
||||||
|
{ x: 20120, y: 4048 },
|
||||||
|
{ x: 20190, y: 4044 },
|
||||||
|
{ x: 20260, y: 4044 },
|
||||||
|
{ x: 20330, y: 4044 },
|
||||||
|
{ x: 20400, y: 4044 },
|
||||||
|
{ x: 20470, y: 4044 },
|
||||||
|
{ x: 20540, y: 4044 },
|
||||||
|
{ x: 20610, y: 4044 },
|
||||||
|
{ x: 20680, y: 4044 },
|
||||||
|
{ x: 20750, y: 4044 },
|
||||||
|
{ x: 20820, y: 4044 },
|
||||||
|
{ x: 20848, y: 4044 },
|
||||||
|
{ x: 20918, y: 4040 },
|
||||||
|
{ x: 20988, y: 4026 },
|
||||||
|
{ x: 21058, y: 4004 },
|
||||||
|
{ x: 21128, y: 3972 },
|
||||||
|
{ x: 21198, y: 3932 },
|
||||||
|
{ x: 21240, y: 3904 },
|
||||||
|
{ x: 21310, y: 3904 },
|
||||||
|
] },
|
||||||
|
{ points: [
|
||||||
|
{ x: 21800, y: 3904 },
|
||||||
|
{ x: 21870, y: 3904 },
|
||||||
|
{ x: 21940, y: 3904 },
|
||||||
|
{ x: 22010, y: 3904 },
|
||||||
|
{ x: 22080, y: 3904 },
|
||||||
|
{ x: 22150, y: 3904 },
|
||||||
|
{ x: 22220, y: 3904 },
|
||||||
|
{ x: 22290, y: 3904 },
|
||||||
|
{ x: 22360, y: 3904 },
|
||||||
|
{ x: 22430, y: 3904 },
|
||||||
|
{ x: 22500, y: 3904 },
|
||||||
|
{ x: 22570, y: 3904 },
|
||||||
|
{ x: 22640, y: 3904 },
|
||||||
|
{ x: 22710, y: 3888 },
|
||||||
|
{ x: 22780, y: 3872 },
|
||||||
|
{ x: 22850, y: 3856 },
|
||||||
|
{ x: 22920, y: 3840 },
|
||||||
|
{ x: 22990, y: 3824 },
|
||||||
|
{ x: 23060, y: 3808 },
|
||||||
|
{ x: 23130, y: 3792 },
|
||||||
|
{ x: 23200, y: 3776 },
|
||||||
|
{ x: 23270, y: 3760 },
|
||||||
|
{ x: 23340, y: 3744 },
|
||||||
|
{ x: 23410, y: 3728 },
|
||||||
|
{ x: 23480, y: 3712 },
|
||||||
|
{ x: 23550, y: 3696 },
|
||||||
|
{ x: 23620, y: 3680 },
|
||||||
|
{ x: 23690, y: 3664 },
|
||||||
|
{ x: 23760, y: 3648 },
|
||||||
|
{ x: 23830, y: 3632 },
|
||||||
|
{ x: 23900, y: 3616 },
|
||||||
|
{ x: 23970, y: 3600 },
|
||||||
|
{ x: 24040, y: 3584 },
|
||||||
|
{ x: 24110, y: 3568 },
|
||||||
|
{ x: 24180, y: 3554 },
|
||||||
|
{ x: 24250, y: 3540 },
|
||||||
|
{ x: 24320, y: 3528 },
|
||||||
|
{ x: 24390, y: 3518 },
|
||||||
|
{ x: 24460, y: 3510 },
|
||||||
|
{ x: 24530, y: 3498 },
|
||||||
|
{ x: 24600, y: 3478 },
|
||||||
|
{ x: 24670, y: 3454 },
|
||||||
|
{ x: 24740, y: 3426 },
|
||||||
|
{ x: 24810, y: 3398 },
|
||||||
|
{ x: 24880, y: 3372 },
|
||||||
|
{ x: 24950, y: 3352 },
|
||||||
|
{ x: 25020, y: 3340 },
|
||||||
|
{ x: 25090, y: 3336 },
|
||||||
|
{ x: 25160, y: 3340 },
|
||||||
|
{ x: 25230, y: 3352 },
|
||||||
|
{ x: 25300, y: 3372 },
|
||||||
|
{ x: 25370, y: 3398 },
|
||||||
|
{ x: 25440, y: 3426 },
|
||||||
|
{ x: 25440, y: 3424 },
|
||||||
|
{ x: 25510, y: 3452 },
|
||||||
|
{ x: 25580, y: 3478 },
|
||||||
|
{ x: 25650, y: 3498 },
|
||||||
|
{ x: 25720, y: 3510 },
|
||||||
|
{ x: 25790, y: 3514 },
|
||||||
|
{ x: 25860, y: 3510 },
|
||||||
|
{ x: 25930, y: 3498 },
|
||||||
|
{ x: 26000, y: 3478 },
|
||||||
|
{ x: 26070, y: 3452 },
|
||||||
|
{ x: 26140, y: 3424 },
|
||||||
|
{ x: 26210, y: 3396 },
|
||||||
|
{ x: 26280, y: 3372 },
|
||||||
|
{ x: 26350, y: 3352 },
|
||||||
|
{ x: 26420, y: 3338 },
|
||||||
|
{ x: 26490, y: 3334 },
|
||||||
|
{ x: 26560, y: 3338 },
|
||||||
|
{ x: 26630, y: 3352 },
|
||||||
|
{ x: 26700, y: 3372 },
|
||||||
|
{ x: 26770, y: 3396 },
|
||||||
|
{ x: 26840, y: 3424 },
|
||||||
|
{ x: 26910, y: 3452 },
|
||||||
|
{ x: 26980, y: 3478 },
|
||||||
|
{ x: 27050, y: 3498 },
|
||||||
|
{ x: 27120, y: 3510 },
|
||||||
|
{ x: 27190, y: 3514 },
|
||||||
|
{ x: 27260, y: 3510 },
|
||||||
|
{ x: 27330, y: 3498 },
|
||||||
|
{ x: 27400, y: 3478 },
|
||||||
|
{ x: 27470, y: 3452 },
|
||||||
|
{ x: 27540, y: 3424 },
|
||||||
|
{ x: 27610, y: 3396 },
|
||||||
|
{ x: 27680, y: 3372 },
|
||||||
|
{ x: 27750, y: 3352 },
|
||||||
|
{ x: 27820, y: 3338 },
|
||||||
|
{ x: 27890, y: 3334 },
|
||||||
|
{ x: 27960, y: 3338 },
|
||||||
|
{ x: 28030, y: 3352 },
|
||||||
|
{ x: 28100, y: 3372 },
|
||||||
|
{ x: 28170, y: 3396 },
|
||||||
|
{ x: 28240, y: 3424 },
|
||||||
|
{ x: 28310, y: 3424 },
|
||||||
|
{ x: 28380, y: 3424 },
|
||||||
|
{ x: 28450, y: 3424 },
|
||||||
|
{ x: 28520, y: 3424 },
|
||||||
|
{ x: 28590, y: 3424 },
|
||||||
|
{ x: 28660, y: 3424 },
|
||||||
|
{ x: 28730, y: 3424 },
|
||||||
|
{ x: 28800, y: 3424 },
|
||||||
|
{ x: 28870, y: 3424 },
|
||||||
|
{ x: 28940, y: 3424 },
|
||||||
|
{ x: 29010, y: 3424 },
|
||||||
|
{ x: 29080, y: 3424 },
|
||||||
|
{ x: 29150, y: 3424 },
|
||||||
|
{ x: 29220, y: 3424 },
|
||||||
|
{ x: 29248, y: 3424 },
|
||||||
|
{ x: 29318, y: 3420 },
|
||||||
|
{ x: 29388, y: 3406 },
|
||||||
|
{ x: 29458, y: 3384 },
|
||||||
|
{ x: 29528, y: 3352 },
|
||||||
|
{ x: 29598, y: 3312 },
|
||||||
|
{ x: 29640, y: 3284 },
|
||||||
|
{ x: 29657, y: 3272 },
|
||||||
|
{ x: 29673, y: 3258 },
|
||||||
|
{ x: 29690, y: 3248 },
|
||||||
|
{ x: 29707, y: 3240 },
|
||||||
|
{ x: 29723, y: 3236 },
|
||||||
|
{ x: 29740, y: 3236 },
|
||||||
|
{ x: 29757, y: 3238 },
|
||||||
|
{ x: 29773, y: 3246 },
|
||||||
|
{ x: 29790, y: 3256 },
|
||||||
|
{ x: 29807, y: 3268 },
|
||||||
|
{ x: 29823, y: 3282 },
|
||||||
|
{ x: 29840, y: 3298 },
|
||||||
|
{ x: 29857, y: 3314 },
|
||||||
|
{ x: 29873, y: 3328 },
|
||||||
|
{ x: 29890, y: 3342 },
|
||||||
|
{ x: 29907, y: 3352 },
|
||||||
|
{ x: 29923, y: 3360 },
|
||||||
|
{ x: 29940, y: 3364 },
|
||||||
|
{ x: 29957, y: 3366 },
|
||||||
|
{ x: 29973, y: 3364 },
|
||||||
|
{ x: 29990, y: 3358 },
|
||||||
|
{ x: 30007, y: 3352 },
|
||||||
|
{ x: 30023, y: 3342 },
|
||||||
|
{ x: 30040, y: 3332 },
|
||||||
|
{ x: 30057, y: 3322 },
|
||||||
|
{ x: 30073, y: 3314 },
|
||||||
|
{ x: 30090, y: 3306 },
|
||||||
|
{ x: 30107, y: 3302 },
|
||||||
|
{ x: 30123, y: 3300 },
|
||||||
|
{ x: 30140, y: 3302 },
|
||||||
|
{ x: 30157, y: 3308 },
|
||||||
|
{ x: 30173, y: 3318 },
|
||||||
|
{ x: 30190, y: 3330 },
|
||||||
|
{ x: 30207, y: 3344 },
|
||||||
|
{ x: 30223, y: 3362 },
|
||||||
|
{ x: 30240, y: 3378 },
|
||||||
|
{ x: 30257, y: 3396 },
|
||||||
|
{ x: 30273, y: 3414 },
|
||||||
|
{ x: 30290, y: 3428 },
|
||||||
|
{ x: 30307, y: 3440 },
|
||||||
|
{ x: 30323, y: 3450 },
|
||||||
|
{ x: 30340, y: 3456 },
|
||||||
|
{ x: 30357, y: 3458 },
|
||||||
|
{ x: 30373, y: 3458 },
|
||||||
|
{ x: 30390, y: 3454 },
|
||||||
|
{ x: 30407, y: 3448 },
|
||||||
|
{ x: 30423, y: 3440 },
|
||||||
|
{ x: 30440, y: 3430 },
|
||||||
|
{ x: 30457, y: 3420 },
|
||||||
|
{ x: 30473, y: 3412 },
|
||||||
|
{ x: 30490, y: 3406 },
|
||||||
|
{ x: 30507, y: 3402 },
|
||||||
|
{ x: 30523, y: 3400 },
|
||||||
|
{ x: 30540, y: 3402 },
|
||||||
|
{ x: 30557, y: 3408 },
|
||||||
|
{ x: 30573, y: 3418 },
|
||||||
|
{ x: 30590, y: 3430 },
|
||||||
|
{ x: 30607, y: 3444 },
|
||||||
|
{ x: 30623, y: 3460 },
|
||||||
|
{ x: 30640, y: 3476 },
|
||||||
|
{ x: 30657, y: 3494 },
|
||||||
|
{ x: 30673, y: 3510 },
|
||||||
|
{ x: 30690, y: 3524 },
|
||||||
|
{ x: 30707, y: 3536 },
|
||||||
|
{ x: 30723, y: 3544 },
|
||||||
|
{ x: 30740, y: 3548 },
|
||||||
|
{ x: 30757, y: 3550 },
|
||||||
|
{ x: 30773, y: 3546 },
|
||||||
|
{ x: 30790, y: 3540 },
|
||||||
|
{ x: 30807, y: 3532 },
|
||||||
|
{ x: 30823, y: 3522 },
|
||||||
|
{ x: 30840, y: 3512 },
|
||||||
|
{ x: 30857, y: 3500 },
|
||||||
|
{ x: 30873, y: 3488 },
|
||||||
|
{ x: 30890, y: 3480 },
|
||||||
|
{ x: 30907, y: 3474 },
|
||||||
|
{ x: 30923, y: 3470 },
|
||||||
|
{ x: 30940, y: 3468 },
|
||||||
|
{ x: 30957, y: 3472 },
|
||||||
|
{ x: 30973, y: 3478 },
|
||||||
|
{ x: 30990, y: 3486 },
|
||||||
|
{ x: 31007, y: 3498 },
|
||||||
|
{ x: 31023, y: 3510 },
|
||||||
|
{ x: 31040, y: 3524 },
|
||||||
|
{ x: 31057, y: 3538 },
|
||||||
|
{ x: 31073, y: 3552 },
|
||||||
|
{ x: 31090, y: 3564 },
|
||||||
|
{ x: 31107, y: 3578 },
|
||||||
|
{ x: 31123, y: 3590 },
|
||||||
|
{ x: 31140, y: 3600 },
|
||||||
|
{ x: 31157, y: 3612 },
|
||||||
|
{ x: 31173, y: 3620 },
|
||||||
|
{ x: 31190, y: 3628 },
|
||||||
|
{ x: 31207, y: 3636 },
|
||||||
|
{ x: 31223, y: 3642 },
|
||||||
|
{ x: 31240, y: 3648 },
|
||||||
|
{ x: 31257, y: 3652 },
|
||||||
|
{ x: 31273, y: 3656 },
|
||||||
|
{ x: 31290, y: 3658 },
|
||||||
|
{ x: 31307, y: 3660 },
|
||||||
|
{ x: 31323, y: 3660 },
|
||||||
|
{ x: 31340, y: 3660 },
|
||||||
|
{ x: 31357, y: 3660 },
|
||||||
|
{ x: 31373, y: 3658 },
|
||||||
|
{ x: 31390, y: 3656 },
|
||||||
|
{ x: 31407, y: 3654 },
|
||||||
|
{ x: 31423, y: 3650 },
|
||||||
|
{ x: 31440, y: 3646 },
|
||||||
|
{ x: 31457, y: 3644 },
|
||||||
|
{ x: 31473, y: 3640 },
|
||||||
|
{ x: 31490, y: 3636 },
|
||||||
|
{ x: 31507, y: 3634 },
|
||||||
|
{ x: 31523, y: 3634 },
|
||||||
|
{ x: 31540, y: 3634 },
|
||||||
|
{ x: 31557, y: 3638 },
|
||||||
|
{ x: 31573, y: 3642 },
|
||||||
|
{ x: 31590, y: 3646 },
|
||||||
|
{ x: 31607, y: 3654 },
|
||||||
|
{ x: 31623, y: 3660 },
|
||||||
|
{ x: 31640, y: 3668 },
|
||||||
|
{ x: 31657, y: 3676 },
|
||||||
|
{ x: 31673, y: 3684 },
|
||||||
|
{ x: 31690, y: 3692 },
|
||||||
|
{ x: 31707, y: 3696 },
|
||||||
|
{ x: 31723, y: 3702 },
|
||||||
|
{ x: 31740, y: 3704 },
|
||||||
|
{ x: 31757, y: 3704 },
|
||||||
|
{ x: 31773, y: 3704 },
|
||||||
|
{ x: 31790, y: 3702 },
|
||||||
|
{ x: 31807, y: 3700 },
|
||||||
|
{ x: 31823, y: 3696 },
|
||||||
|
{ x: 31840, y: 3692 },
|
||||||
|
{ x: 31857, y: 3688 },
|
||||||
|
{ x: 31873, y: 3684 },
|
||||||
|
{ x: 31890, y: 3680 },
|
||||||
|
{ x: 31907, y: 3680 },
|
||||||
|
{ x: 31923, y: 3678 },
|
||||||
|
{ x: 31940, y: 3680 },
|
||||||
|
{ x: 31957, y: 3682 },
|
||||||
|
{ x: 31973, y: 3686 },
|
||||||
|
{ x: 31990, y: 3692 },
|
||||||
|
{ x: 32007, y: 3698 },
|
||||||
|
{ x: 32023, y: 3706 },
|
||||||
|
{ x: 32040, y: 3712 },
|
||||||
|
{ x: 32057, y: 3720 },
|
||||||
|
{ x: 32073, y: 3728 },
|
||||||
|
{ x: 32090, y: 3734 },
|
||||||
|
{ x: 32107, y: 3740 },
|
||||||
|
{ x: 32123, y: 3742 },
|
||||||
|
{ x: 32140, y: 3746 },
|
||||||
|
{ x: 32157, y: 3746 },
|
||||||
|
{ x: 32173, y: 3744 },
|
||||||
|
{ x: 32190, y: 3742 },
|
||||||
|
{ x: 32207, y: 3738 },
|
||||||
|
{ x: 32223, y: 3734 },
|
||||||
|
{ x: 32240, y: 3728 },
|
||||||
|
{ x: 32257, y: 3724 },
|
||||||
|
{ x: 32273, y: 3718 },
|
||||||
|
{ x: 32290, y: 3714 },
|
||||||
|
{ x: 32307, y: 3712 },
|
||||||
|
{ x: 32323, y: 3710 },
|
||||||
|
{ x: 32340, y: 3710 },
|
||||||
|
{ x: 32357, y: 3710 },
|
||||||
|
{ x: 32373, y: 3714 },
|
||||||
|
{ x: 32390, y: 3718 },
|
||||||
|
{ x: 32407, y: 3722 },
|
||||||
|
{ x: 32423, y: 3728 },
|
||||||
|
{ x: 32440, y: 3734 },
|
||||||
|
{ x: 32510, y: 3734 },
|
||||||
|
{ x: 32580, y: 3734 },
|
||||||
|
{ x: 32650, y: 3734 },
|
||||||
|
{ x: 32720, y: 3734 },
|
||||||
|
{ x: 32790, y: 3734 },
|
||||||
|
{ x: 32860, y: 3734 },
|
||||||
|
{ x: 32930, y: 3734 },
|
||||||
|
{ x: 33000, y: 3734 },
|
||||||
|
{ x: 33070, y: 3734 },
|
||||||
|
{ x: 33140, y: 3734 },
|
||||||
|
{ x: 33210, y: 3734 },
|
||||||
|
{ x: 33280, y: 3734 },
|
||||||
|
{ x: 33350, y: 3734 },
|
||||||
|
{ x: 33420, y: 3734 },
|
||||||
|
{ x: 33490, y: 3734 },
|
||||||
|
{ x: 33560, y: 3734 },
|
||||||
|
{ x: 33630, y: 3734 },
|
||||||
|
{ x: 33700, y: 3734 },
|
||||||
|
{ x: 33770, y: 3734 },
|
||||||
|
{ x: 33840, y: 3734 },
|
||||||
|
{ x: 33910, y: 3732 },
|
||||||
|
{ x: 33980, y: 3728 },
|
||||||
|
{ x: 34050, y: 3714 },
|
||||||
|
{ x: 34120, y: 3694 },
|
||||||
|
{ x: 34190, y: 3666 },
|
||||||
|
{ x: 34260, y: 3632 },
|
||||||
|
{ x: 34330, y: 3596 },
|
||||||
|
{ x: 34400, y: 3562 },
|
||||||
|
{ x: 34470, y: 3562 },
|
||||||
|
] },
|
||||||
|
{ points: [
|
||||||
|
{ x: 34820, y: 3574 },
|
||||||
|
{ x: 34890, y: 3586 },
|
||||||
|
{ x: 34960, y: 3614 },
|
||||||
|
{ x: 35030, y: 3654 },
|
||||||
|
{ x: 35100, y: 3692 },
|
||||||
|
{ x: 35170, y: 3722 },
|
||||||
|
{ x: 35240, y: 3734 },
|
||||||
|
{ x: 35310, y: 3774 },
|
||||||
|
{ x: 35380, y: 3814 },
|
||||||
|
{ x: 35450, y: 3852 },
|
||||||
|
{ x: 35520, y: 3886 },
|
||||||
|
{ x: 35590, y: 3918 },
|
||||||
|
{ x: 35660, y: 3944 },
|
||||||
|
{ x: 35730, y: 3966 },
|
||||||
|
{ x: 35800, y: 3980 },
|
||||||
|
{ x: 35870, y: 3990 },
|
||||||
|
{ x: 35940, y: 3994 },
|
||||||
|
{ x: 36010, y: 3990 },
|
||||||
|
{ x: 36080, y: 3980 },
|
||||||
|
{ x: 36150, y: 3966 },
|
||||||
|
{ x: 36220, y: 3944 },
|
||||||
|
{ x: 36290, y: 3918 },
|
||||||
|
{ x: 36360, y: 3886 },
|
||||||
|
{ x: 36430, y: 3852 },
|
||||||
|
{ x: 36500, y: 3814 },
|
||||||
|
{ x: 36570, y: 3774 },
|
||||||
|
{ x: 36640, y: 3734 },
|
||||||
|
{ x: 36710, y: 3698 },
|
||||||
|
{ x: 36780, y: 3664 },
|
||||||
|
{ x: 36850, y: 3628 },
|
||||||
|
{ x: 36920, y: 3594 },
|
||||||
|
{ x: 36990, y: 3558 },
|
||||||
|
{ x: 37060, y: 3524 },
|
||||||
|
{ x: 37130, y: 3488 },
|
||||||
|
{ x: 37200, y: 3454 },
|
||||||
|
{ x: 37270, y: 3454 },
|
||||||
|
] },
|
||||||
|
{ points: [
|
||||||
|
{ x: 37620, y: 3574 },
|
||||||
|
{ x: 37690, y: 3586 },
|
||||||
|
{ x: 37760, y: 3614 },
|
||||||
|
{ x: 37830, y: 3654 },
|
||||||
|
{ x: 37900, y: 3692 },
|
||||||
|
{ x: 37970, y: 3722 },
|
||||||
|
{ x: 38040, y: 3734 },
|
||||||
|
{ x: 38110, y: 3774 },
|
||||||
|
{ x: 38180, y: 3814 },
|
||||||
|
{ x: 38250, y: 3852 },
|
||||||
|
{ x: 38320, y: 3886 },
|
||||||
|
{ x: 38390, y: 3918 },
|
||||||
|
{ x: 38460, y: 3944 },
|
||||||
|
{ x: 38530, y: 3966 },
|
||||||
|
{ x: 38600, y: 3980 },
|
||||||
|
{ x: 38670, y: 3990 },
|
||||||
|
{ x: 38740, y: 3994 },
|
||||||
|
{ x: 38810, y: 3990 },
|
||||||
|
{ x: 38880, y: 3980 },
|
||||||
|
{ x: 38950, y: 3966 },
|
||||||
|
{ x: 39020, y: 3944 },
|
||||||
|
{ x: 39090, y: 3918 },
|
||||||
|
{ x: 39160, y: 3886 },
|
||||||
|
{ x: 39230, y: 3852 },
|
||||||
|
{ x: 39300, y: 3814 },
|
||||||
|
{ x: 39370, y: 3774 },
|
||||||
|
{ x: 39440, y: 3734 },
|
||||||
|
{ x: 39510, y: 3698 },
|
||||||
|
{ x: 39580, y: 3664 },
|
||||||
|
{ x: 39650, y: 3628 },
|
||||||
|
{ x: 39720, y: 3594 },
|
||||||
|
{ x: 39790, y: 3558 },
|
||||||
|
{ x: 39860, y: 3524 },
|
||||||
|
{ x: 39930, y: 3488 },
|
||||||
|
{ x: 40000, y: 3454 },
|
||||||
|
{ x: 40070, y: 3454 },
|
||||||
|
] },
|
||||||
|
{ points: [
|
||||||
|
{ x: 40420, y: 3574 },
|
||||||
|
{ x: 40490, y: 3586 },
|
||||||
|
{ x: 40560, y: 3614 },
|
||||||
|
{ x: 40630, y: 3654 },
|
||||||
|
{ x: 40700, y: 3692 },
|
||||||
|
{ x: 40770, y: 3722 },
|
||||||
|
{ x: 40840, y: 3734 },
|
||||||
|
{ x: 40910, y: 3774 },
|
||||||
|
{ x: 40980, y: 3814 },
|
||||||
|
{ x: 41050, y: 3852 },
|
||||||
|
{ x: 41120, y: 3886 },
|
||||||
|
{ x: 41190, y: 3918 },
|
||||||
|
{ x: 41260, y: 3944 },
|
||||||
|
{ x: 41330, y: 3966 },
|
||||||
|
{ x: 41400, y: 3980 },
|
||||||
|
{ x: 41470, y: 3990 },
|
||||||
|
{ x: 41540, y: 3994 },
|
||||||
|
{ x: 41610, y: 3990 },
|
||||||
|
{ x: 41680, y: 3980 },
|
||||||
|
{ x: 41750, y: 3966 },
|
||||||
|
{ x: 41820, y: 3944 },
|
||||||
|
{ x: 41890, y: 3918 },
|
||||||
|
{ x: 41960, y: 3886 },
|
||||||
|
{ x: 42030, y: 3852 },
|
||||||
|
{ x: 42100, y: 3814 },
|
||||||
|
{ x: 42170, y: 3774 },
|
||||||
|
{ x: 42240, y: 3734 },
|
||||||
|
{ x: 42310, y: 3698 },
|
||||||
|
{ x: 42380, y: 3664 },
|
||||||
|
{ x: 42450, y: 3628 },
|
||||||
|
{ x: 42520, y: 3594 },
|
||||||
|
{ x: 42590, y: 3558 },
|
||||||
|
{ x: 42660, y: 3524 },
|
||||||
|
{ x: 42730, y: 3488 },
|
||||||
|
{ x: 42800, y: 3454 },
|
||||||
|
{ x: 42870, y: 3454 },
|
||||||
|
] },
|
||||||
|
{ points: [
|
||||||
|
{ x: 43220, y: 3574 },
|
||||||
|
{ x: 43290, y: 3586 },
|
||||||
|
{ x: 43360, y: 3614 },
|
||||||
|
{ x: 43430, y: 3654 },
|
||||||
|
{ x: 43500, y: 3692 },
|
||||||
|
{ x: 43570, y: 3722 },
|
||||||
|
{ x: 43640, y: 3734 },
|
||||||
|
{ x: 43710, y: 3750 },
|
||||||
|
{ x: 43780, y: 3766 },
|
||||||
|
{ x: 43850, y: 3782 },
|
||||||
|
{ x: 43920, y: 3798 },
|
||||||
|
{ x: 43990, y: 3814 },
|
||||||
|
{ x: 44060, y: 3830 },
|
||||||
|
{ x: 44130, y: 3846 },
|
||||||
|
{ x: 44200, y: 3862 },
|
||||||
|
{ x: 44270, y: 3878 },
|
||||||
|
{ x: 44340, y: 3894 },
|
||||||
|
{ x: 44410, y: 3910 },
|
||||||
|
{ x: 44480, y: 3926 },
|
||||||
|
{ x: 44550, y: 3942 },
|
||||||
|
{ x: 44620, y: 3958 },
|
||||||
|
{ x: 44690, y: 3974 },
|
||||||
|
{ x: 44760, y: 3990 },
|
||||||
|
{ x: 44830, y: 4006 },
|
||||||
|
{ x: 44900, y: 4022 },
|
||||||
|
{ x: 44970, y: 4038 },
|
||||||
|
{ x: 45040, y: 4054 },
|
||||||
|
{ x: 45110, y: 4054 },
|
||||||
|
{ x: 45180, y: 4054 },
|
||||||
|
{ x: 45250, y: 4054 },
|
||||||
|
{ x: 45320, y: 4054 },
|
||||||
|
{ x: 45390, y: 4054 },
|
||||||
|
{ x: 45460, y: 4054 },
|
||||||
|
{ x: 45530, y: 4054 },
|
||||||
|
{ x: 45600, y: 4054 },
|
||||||
|
{ x: 45670, y: 4054 },
|
||||||
|
{ x: 45740, y: 4054 },
|
||||||
|
{ x: 45810, y: 4054 },
|
||||||
|
{ x: 45880, y: 4054 },
|
||||||
|
{ x: 45950, y: 4054 },
|
||||||
|
{ x: 46020, y: 4054 },
|
||||||
|
{ x: 46090, y: 4054 },
|
||||||
|
{ x: 46160, y: 4054 },
|
||||||
|
{ x: 46230, y: 4054 },
|
||||||
|
{ x: 46300, y: 4054 },
|
||||||
|
{ x: 46370, y: 4054 },
|
||||||
|
{ x: 46440, y: 4054 },
|
||||||
|
{ x: 46510, y: 4054 },
|
||||||
|
{ x: 46580, y: 4054 },
|
||||||
|
{ x: 46650, y: 4054 },
|
||||||
|
{ x: 46720, y: 4054 },
|
||||||
|
{ x: 46790, y: 4054 },
|
||||||
|
{ x: 46860, y: 4054 },
|
||||||
|
{ x: 46930, y: 4054 },
|
||||||
|
{ x: 47000, y: 4054 },
|
||||||
|
{ x: 47070, y: 4054 },
|
||||||
|
{ x: 47140, y: 4054 },
|
||||||
|
{ x: 47210, y: 4054 },
|
||||||
|
{ x: 47280, y: 4054 },
|
||||||
|
{ x: 47350, y: 4054 },
|
||||||
|
{ x: 47420, y: 4054 },
|
||||||
|
{ x: 47490, y: 4054 },
|
||||||
|
{ x: 47560, y: 4054 },
|
||||||
|
{ x: 47630, y: 4054 },
|
||||||
|
{ x: 47700, y: 4054 },
|
||||||
|
{ x: 47770, y: 4054 },
|
||||||
|
{ x: 47840, y: 4054 },
|
||||||
|
] },
|
||||||
|
],
|
||||||
|
obstacles: [],
|
||||||
|
items: [
|
||||||
|
{ type: "tv", mode: "gravity", x: 4563, y: 1067 },
|
||||||
|
{ type: "chair", mode: "gravity", x: 4279, y: 1058 },
|
||||||
|
{ type: "chair", mode: "gravity", x: 4796, y: 1042 },
|
||||||
|
{ type: "cone", mode: "gravity", x: 16321, y: 4583 },
|
||||||
|
{ type: "cone", mode: "gravity", x: 16563, y: 4525 },
|
||||||
|
{ type: "cone", mode: "gravity", x: 16871, y: 4550 },
|
||||||
|
{ type: "tv", mode: "float", x: 37346, y: 3083 },
|
||||||
|
{ type: "tv", mode: "float", x: 37979, y: 3367 },
|
||||||
|
{ type: "cone", mode: "float", x: 40179, y: 3058 },
|
||||||
|
{ type: "cone", mode: "float", x: 40779, y: 3317 },
|
||||||
|
{ type: "chair", mode: "float", x: 34529, y: 3300 },
|
||||||
|
{ type: "chair", mode: "float", x: 35038, y: 3433 },
|
||||||
|
{ type: "chair", mode: "float", x: 46904, y: 3933 },
|
||||||
|
{ type: "tv", mode: "float", x: 46688, y: 3892 },
|
||||||
|
],
|
||||||
|
bonusItems: [
|
||||||
|
{ type: "ctc", x: 21546, y: 3450 },
|
||||||
|
{ type: "ctc", x: 30488, y: 2908 },
|
||||||
|
{ type: "cash", x: 37663, y: 3200 },
|
||||||
|
{ type: "cash", x: 40488, y: 3200 },
|
||||||
|
{ type: "cash", x: 43246, y: 3250 },
|
||||||
|
{ type: "guitar", x: 25296, y: 3075 },
|
||||||
|
{ type: "guitar", x: 5538, y: 992 },
|
||||||
|
{ type: "cash", x: 10054, y: 2133 },
|
||||||
|
{ type: "ctc", x: 13729, y: 2933 },
|
||||||
|
{ type: "cash", x: 34788, y: 3258 },
|
||||||
|
{ type: "cash", x: 46429, y: 3875 },
|
||||||
|
],
|
||||||
|
goal: { x: 47600, y: 3813, width: 280, height: 640 },
|
||||||
|
cameraBounds: { x: -600, y: 0, width: 49240, height: 5556 },
|
||||||
|
};
|
||||||
|
|
@ -302,8 +302,8 @@ function dropGap(startX, startY, width, vScale) {
|
||||||
// "Halfpipe" - a backwards J. One smooth profile, left to right:
|
// "Halfpipe" - a backwards J. One smooth profile, left to right:
|
||||||
// a near-vertical drop straight down (the tangent at the entrance is
|
// a near-vertical drop straight down (the tangent at the entrance is
|
||||||
// exactly vertical) that eases into a rounded, halfpipe-style bottom,
|
// exactly vertical) that eases into a rounded, halfpipe-style bottom,
|
||||||
// then a near-vertical climb (again vertical at the very end) up to the
|
// then a steep climb (angled to HALFPIPE_EXIT_VERT at the very end) up
|
||||||
// exit.
|
// to the exit.
|
||||||
//
|
//
|
||||||
// The exit is deliberately BELOW the entrance: the climb is only HALF of
|
// The exit is deliberately BELOW the entrance: the climb is only HALF of
|
||||||
// the drop, so the section is a net decline (a half-pipe's exit wall is
|
// the drop, so the section is a net decline (a half-pipe's exit wall is
|
||||||
|
|
@ -311,37 +311,36 @@ function dropGap(startX, startY, width, vScale) {
|
||||||
// tall stem on the left, round hook at the bottom, short stub climbing
|
// tall stem on the left, round hook at the bottom, short stub climbing
|
||||||
// back up on the right.
|
// back up on the right.
|
||||||
//
|
//
|
||||||
// Built as a single cubic Bezier with vertical tangents at both ends
|
// Built as a single cubic Bezier: the entry control handle hangs straight
|
||||||
// (control handles hanging straight down from the entrance and the exit).
|
// down (vertical entry tangent), while the exit handle is angled up to
|
||||||
// A circular arc can't do this job - a circle tangent to both walls
|
// HALFPIPE_EXIT_VERT (0.80 = 80% vertical = 72° from horizontal) so the
|
||||||
// vertically would force the two junctions to the same height (a
|
// climb-out is steep but not quite vertical. A circular arc can't do this
|
||||||
// half-circle), so the different wall heights need a cubic, which is also
|
// job - a circle tangent to both walls would force the two junctions to
|
||||||
// the shape a vert-ramp transition actually uses.
|
// the same height (a half-circle), so the different wall heights need a
|
||||||
|
// cubic, which is also the shape a vert-ramp transition actually uses.
|
||||||
//
|
//
|
||||||
// P0 = entrance P1 = (P0.x, P0.y + drop) [entry handle]
|
// P0 = entrance P1 = (P0.x, P0.y + drop) [entry handle]
|
||||||
// P3 = exit P2 = (P3.x, P3.y + climb) [exit handle]
|
// P3 = exit P2 = (P3.x - climb*cosA, P3.y + climb*sinA) [exit handle]
|
||||||
//
|
// where A = HALFPIPE_EXIT_VERT * 90°
|
||||||
// Both handles hang straight down from their endpoint (entry handle from
|
|
||||||
// the entrance by `drop`, exit handle from the exit by `climb`), so both
|
|
||||||
// end tangents are vertical. Note P2 = (W, drop) - at the 2:1 ratio both
|
|
||||||
// handles happen to reach the same depth.
|
|
||||||
//
|
//
|
||||||
// x(t) = W * t^2 * (3 - 2t) (all x-control points in [0, W] =>
|
// x(t) = W * t^2 * (3 - 2t) (all x-control points in [0, W] =>
|
||||||
// strictly monotonic in x, so the terrain stays a valid y(x) curve)
|
// strictly monotonic in x, so the terrain stays a valid y(x) curve)
|
||||||
// y(t) = 3*drop*t*(1-t)^2 + 3*drop*t^2*(1-t) + (drop - climb)*t^3
|
|
||||||
//
|
//
|
||||||
// drop/climb (both vScale-scaled) are the end-handle lengths: they set how
|
// drop/climb (both vScale-scaled) are the end-handle lengths: they set how
|
||||||
// long the near-vertical ends are and how deep the rounded bottom sits
|
// long the near-vertical ends are and how deep the rounded bottom sits
|
||||||
// (the bottom lands ~0.83 * drop below the entrance at the 2:1 ratio,
|
// (~0.84 * drop below the entrance at the default 2:1 ratio, ~13% further
|
||||||
// ~13% further right of center). At the default 700-wide section the
|
// right of center). At the default 700-wide section the profile falls ~344
|
||||||
// profile falls ~350 base units ("drops for a ways") and the exit ends
|
// base units ("drops for a ways") and the exit ends ~210 below the
|
||||||
// ~210 below the entrance ("significantly lower"). The very first/last
|
// entrance ("significantly lower"). The sample count is chosen so that
|
||||||
// segment is steep but finite; the sample count is chosen so that even at
|
// even at the editor's minimum width the end segments stay wider than
|
||||||
// the editor's minimum width the end segments stay wider than
|
|
||||||
// Terrain._buildSegment's |dx| < 1 skip threshold.
|
// Terrain._buildSegment's |dx| < 1 skip threshold.
|
||||||
const HALFPIPE_DROP = 420;
|
const HALFPIPE_DROP = 420;
|
||||||
const HALFPIPE_CLIMB_RATIO = 0.5;
|
const HALFPIPE_CLIMB_RATIO = 0.5;
|
||||||
const HALFPIPE_SAMPLES = 24;
|
// Exit-wall verticalness as a fraction of a straight-up wall: 0.80 means
|
||||||
|
// the exit tangent is 80% of the way to vertical, i.e. 72° above
|
||||||
|
// horizontal. 1.0 would be a fully vertical exit (the old shape).
|
||||||
|
const HALFPIPE_EXIT_VERT = 0.80;
|
||||||
|
const HALFPIPE_SAMPLES = 32;
|
||||||
|
|
||||||
function halfpipe(startX, startY, width, vScale) {
|
function halfpipe(startX, startY, width, vScale) {
|
||||||
const drop = HALFPIPE_DROP * vScale;
|
const drop = HALFPIPE_DROP * vScale;
|
||||||
|
|
@ -349,15 +348,32 @@ function halfpipe(startX, startY, width, vScale) {
|
||||||
const net = drop - climb; // entrance -> exit (positive: exit is lower)
|
const net = drop - climb; // entrance -> exit (positive: exit is lower)
|
||||||
|
|
||||||
const endY = startY + net;
|
const endY = startY + net;
|
||||||
|
|
||||||
|
// Endpoint-anchored C1 cubic Bezier. The entrance handle hangs straight DOWN
|
||||||
|
// (vertical descent), while the exit handle is angled to HALFPIPE_EXIT_VERT
|
||||||
|
// (0.80 -> 72° from horizontal) so the climb-out is steep but not quite
|
||||||
|
// vertical:
|
||||||
|
// P0 = (0, 0)
|
||||||
|
// P1 = (0, drop) entrance handle -> 90° descent
|
||||||
|
// P2 = (width - climb*cos72, net + climb*sin72) exit handle -> 72° climb
|
||||||
|
// P3 = (width, net) exit
|
||||||
|
// Because the curve passes through P0 and P3 exactly, the endpoints are
|
||||||
|
// always pinned to (0,0) and (width,net) regardless of width.
|
||||||
|
const exitAngle = HALFPIPE_EXIT_VERT * Math.PI / 2; // 0.80 -> 72°
|
||||||
|
const exitDx = width - climb * Math.cos(exitAngle);
|
||||||
|
const exitDy = net + climb * Math.sin(exitAngle);
|
||||||
|
|
||||||
const points = [];
|
const points = [];
|
||||||
for (let i = 0; i <= HALFPIPE_SAMPLES; i++) {
|
for (let i = 0; i <= HALFPIPE_SAMPLES; i++) {
|
||||||
const t = i / HALFPIPE_SAMPLES;
|
const t = i / HALFPIPE_SAMPLES;
|
||||||
const x = startX + width * t * t * (3 - 2 * t);
|
const u = 1 - t;
|
||||||
const y = startY
|
// Cubic Bezier evaluated at parameter t (control points relative to start).
|
||||||
+ 3 * drop * t * (1 - t) * (1 - t)
|
const b1 = 3 * u * u * t; // weight on P1
|
||||||
+ 3 * drop * t * t * (1 - t)
|
const b2 = 3 * u * t * t; // weight on P2
|
||||||
+ net * t * t * t;
|
const b3 = t * t * t; // weight on P3
|
||||||
points.push({ x: Math.round(x), y: Math.round(y) });
|
const x = b2 * exitDx + b3 * width;
|
||||||
|
const y = b1 * drop + b2 * exitDy + b3 * net;
|
||||||
|
points.push({ x: Math.round(startX + x), y: Math.round(startY + y) });
|
||||||
}
|
}
|
||||||
// Snap the ends exactly so the section joins its neighbors seamlessly.
|
// Snap the ends exactly so the section joins its neighbors seamlessly.
|
||||||
points[0] = { x: startX, y: Math.round(startY) };
|
points[0] = { x: startX, y: Math.round(startY) };
|
||||||
|
|
@ -367,27 +383,31 @@ function halfpipe(startX, startY, width, vScale) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// "Reverse Halfpipe" - the halfpipe flipped upside down (an upside-down J).
|
// "Reverse Halfpipe" - the halfpipe flipped upside down (an upside-down J).
|
||||||
// One smooth profile, left to right: a near-vertical climb (vertical tangent
|
// One smooth profile, left to right: a steep climb (angled to
|
||||||
// at the entrance) that arcs up and over like a rainbow, then a
|
// REVERSE_HALFPIPE_ENTRY_VERT at the entrance) that arcs up and over like a
|
||||||
// near-vertical drop (vertical tangent at the exit) that ends BELOW the
|
// rainbow, then a near-vertical drop (vertical tangent at the exit) that
|
||||||
// entrance.
|
// ends BELOW the entrance.
|
||||||
//
|
//
|
||||||
// It's the exact vertical mirror of halfpipe about the line
|
// It's the mirror family of halfpipe: same x(t), same Bezier structure,
|
||||||
// y = startY + 176 (the midpoint of its own end-to-end span): same x(t),
|
// signs flipped, and the two ends swapped. Where halfpipe's entry is the
|
||||||
// same Bezier family, signs flipped, and the two ends swapped. Where
|
// long leg (drop) and exit the short one (climb), here the entry is the
|
||||||
// halfpipe's entry is the long leg (drop) and exit the short one (climb),
|
// short leg (rise, ~half the drop) and the exit the long one (drop), so
|
||||||
// here the entry is the short leg (rise, ~half the drop) and the exit the
|
// the section still nets lower on the right - the mirror of halfpipe's
|
||||||
// long one (drop), so the section still nets lower on the right - the
|
// net-decline shape. Like the halfpipe, its angled end is tuned to 80%
|
||||||
// mirror of halfpipe's net-decline shape.
|
// vertical (72 degrees) rather than fully vertical.
|
||||||
//
|
//
|
||||||
// Control handles stick straight UP from both endpoints (mirror of
|
// Control handles (both stick UP from their endpoints, mirror of the
|
||||||
// halfpipe's hanging handles):
|
// halfpipe's hanging handles):
|
||||||
//
|
//
|
||||||
// P0 = entrance P1 = (P0.x, P0.y - rise) [entry handle]
|
// P0 = entrance P1 = (P0.x + rise*cosA, P0.y - rise*sinA) [entry handle, angled]
|
||||||
// P3 = exit P2 = (P3.x, P3.y - drop) [exit handle]
|
// P3 = exit P2 = (P3.x, P3.y - drop) [exit handle, vertical]
|
||||||
|
// where A = REVERSE_HALFPIPE_ENTRY_VERT * 90 degrees
|
||||||
//
|
//
|
||||||
// x(t) = W * t^2 * (3 - 2t) (same as halfpipe, monotonic in x)
|
// x(t) = cubic Bezier with P1.x = rise*cosA, P2.x = P3.x = W
|
||||||
// y(t) = -3*rise*t*(1-t)^2 - 3*rise*t^2*(1-t) + (drop - rise)*t^3
|
// (control-point x's are non-decreasing, so strictly monotonic in x
|
||||||
|
// - same construction as the halfpipe, valid y(x) terrain)
|
||||||
|
// y(t) = -3*rise*sinA*t*(1-t)^2 - 3*rise*t^2*(1-t) + (drop - rise)*t^3
|
||||||
|
// (with rise*sinA the effective entry-handle depth)
|
||||||
//
|
//
|
||||||
// rise/drop (both vScale-scaled) are the end-handle lengths. At the
|
// rise/drop (both vScale-scaled) are the end-handle lengths. At the
|
||||||
// default 700-wide section the arch crests ~176 base units above the
|
// default 700-wide section the arch crests ~176 base units above the
|
||||||
|
|
@ -398,7 +418,12 @@ function halfpipe(startX, startY, width, vScale) {
|
||||||
// minimum width.
|
// minimum width.
|
||||||
const REVERSE_HALFPIPE_RISE = 210;
|
const REVERSE_HALFPIPE_RISE = 210;
|
||||||
const REVERSE_HALFPIPE_DROP = 420; // = 2 * RISE, the longer leg
|
const REVERSE_HALFPIPE_DROP = 420; // = 2 * RISE, the longer leg
|
||||||
const REVERSE_HALFPIPE_SAMPLES = 24;
|
// Entrance-wall verticalness as a fraction of a straight-up wall: 0.80
|
||||||
|
// means the entry tangent is 80% of the way to vertical, i.e. 72 degrees
|
||||||
|
// above horizontal (mirrors the halfpipe's exit). 1.0 would be fully
|
||||||
|
// vertical.
|
||||||
|
const REVERSE_HALFPIPE_ENTRY_VERT = 0.80;
|
||||||
|
const REVERSE_HALFPIPE_SAMPLES = 32;
|
||||||
|
|
||||||
function reverseHalfpipe(startX, startY, width, vScale) {
|
function reverseHalfpipe(startX, startY, width, vScale) {
|
||||||
const rise = REVERSE_HALFPIPE_RISE * vScale;
|
const rise = REVERSE_HALFPIPE_RISE * vScale;
|
||||||
|
|
@ -406,15 +431,32 @@ function reverseHalfpipe(startX, startY, width, vScale) {
|
||||||
const net = drop - rise; // positive: exit is lower than entrance
|
const net = drop - rise; // positive: exit is lower than entrance
|
||||||
|
|
||||||
const endY = startY + net;
|
const endY = startY + net;
|
||||||
|
|
||||||
|
// Endpoint-anchored C1 cubic Bezier. The exit handle sticks straight UP
|
||||||
|
// from the exit (vertical drop-out), while the entry handle is angled to
|
||||||
|
// REVERSE_HALFPIPE_ENTRY_VERT (0.80 -> 72 degrees from horizontal) so the
|
||||||
|
// climb-in is steep but not quite vertical:
|
||||||
|
// P0 = (0, 0)
|
||||||
|
// P1 = (rise*cosA, -rise*sinA) entrance handle -> 72 deg climb
|
||||||
|
// P2 = (width, -rise) exit handle -> vertical drop
|
||||||
|
// P3 = (width, net) exit
|
||||||
|
// Because the curve passes through P0 and P3 exactly, the endpoints are
|
||||||
|
// always pinned to (0,0) and (width,net) regardless of width.
|
||||||
|
const entryAngle = REVERSE_HALFPIPE_ENTRY_VERT * Math.PI / 2; // 0.80 -> 72 degrees
|
||||||
|
const entryDx = rise * Math.cos(entryAngle);
|
||||||
|
const entryRise = rise * Math.sin(entryAngle); // effective entry-handle depth
|
||||||
|
|
||||||
const points = [];
|
const points = [];
|
||||||
for (let i = 0; i <= REVERSE_HALFPIPE_SAMPLES; i++) {
|
for (let i = 0; i <= REVERSE_HALFPIPE_SAMPLES; i++) {
|
||||||
const t = i / REVERSE_HALFPIPE_SAMPLES;
|
const t = i / REVERSE_HALFPIPE_SAMPLES;
|
||||||
const x = startX + width * t * t * (3 - 2 * t);
|
const u = 1 - t;
|
||||||
const y = startY
|
// Cubic Bezier evaluated at parameter t (control points relative to start).
|
||||||
- 3 * rise * t * (1 - t) * (1 - t)
|
const b1 = 3 * u * u * t; // weight on P1
|
||||||
- 3 * rise * t * t * (1 - t)
|
const b2 = 3 * u * t * t; // weight on P2
|
||||||
+ net * t * t * t;
|
const b3 = t * t * t; // weight on P3
|
||||||
points.push({ x: Math.round(x), y: Math.round(y) });
|
const x = b1 * entryDx + b2 * width + b3 * width;
|
||||||
|
const y = -b1 * entryRise - b2 * rise + b3 * net;
|
||||||
|
points.push({ x: Math.round(startX + x), y: Math.round(startY + y) });
|
||||||
}
|
}
|
||||||
// Snap the ends exactly so the section joins its neighbors seamlessly.
|
// Snap the ends exactly so the section joins its neighbors seamlessly.
|
||||||
points[0] = { x: startX, y: Math.round(startY) };
|
points[0] = { x: startX, y: Math.round(startY) };
|
||||||
|
|
|
||||||
|
|
@ -302,7 +302,14 @@ export default class LevelSelectScene extends Phaser.Scene {
|
||||||
v: best,
|
v: best,
|
||||||
duration: Math.min(1500, 500 + Math.sqrt(best) * 40),
|
duration: Math.min(1500, 500 + Math.sqrt(best) * 40),
|
||||||
ease: 'Cubic.easeOut',
|
ease: 'Cubic.easeOut',
|
||||||
onUpdate: () => pill.setText(`★ ${Math.round(counter.v).toLocaleString()}`),
|
onUpdate: () => {
|
||||||
|
// The pill is destroyed by _buildCampaign when the campaign
|
||||||
|
// switches, but this tween targets a plain object (the counter)
|
||||||
|
// and outlives the pill - guard the setText (crashes on the
|
||||||
|
// destroyed Text's nulled texture frame).
|
||||||
|
if (pill.isDestroyed) return;
|
||||||
|
pill.setText(`★ ${Math.round(counter.v).toLocaleString()}`);
|
||||||
|
},
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue