132 lines
6.9 KiB
JavaScript
132 lines
6.9 KiB
JavaScript
// 耐久(Endurance)关卡:长距离连续考验,存档点稀疏
|
|
import { G, rep, E, plat, ent, flr } from './kit.js';
|
|
|
|
export default [
|
|
// ---------------- 1 ----------------
|
|
{
|
|
id: 'e1', name: 'LONG ROAD', type: 'endur', diff: 3, bg: 'endur', width: 100,
|
|
hint: '100 格长路,8 个刺坑,只有 5 个存档点。别急。',
|
|
messages: ['才刚刚开始'],
|
|
grid: G(100, [
|
|
rep('#', 100), // 0
|
|
E(100), E(100), E(100), E(100), E(100), // 1-5
|
|
E(100), E(100), E(100), E(100), E(100), // 6-10
|
|
E(100), // 11
|
|
ent(100, [15, 'v'], [17, 'v'], [30, 'v'], [32, 'v'], [55, 'v'], [57, 'v'], [75, 'v'], [77, 'v']), // 12
|
|
ent(100, [43, 'F'], [90, 'F']), // 13
|
|
'#' + rep('.', 40) + '######' + rep('.', 41) + '######', // 14
|
|
E(100), E(100), // 15-16
|
|
ent(100, [2, 'S'], [16, 'G'], [30, 'G'], [52, 'G'], [76, 'G'], [98, 'X'], // 17
|
|
[26, '^'], [27, '^'], [40, '^'], [41, '^'], [63, '^'], [64, '^'], [78, '^'], [79, '^']),
|
|
flr(['#', 9], ['^', 3], ['#', 7], ['^', 4], ['#', 11], ['^', 3], ['#', 6], ['^', 5],
|
|
['#', 9], ['^', 3], ['#', 8], ['^', 4], ['#', 10], ['^', 3], ['#', 6], ['^', 5], ['#', 3]), // 18
|
|
]),
|
|
},
|
|
|
|
// ---------------- 2 ----------------
|
|
{
|
|
id: 'e2', name: 'TURRET HELL', type: 'endur', diff: 4, bg: 'endur', width: 88,
|
|
hint: '炮台沿路扫射。踩空就是刺海,别站在开阔地。',
|
|
turrets: [
|
|
{ dir: 'right', period: 78, speed: 2.8, offset: 0 },
|
|
{ dir: 'left', period: 92, speed: 2.6, offset: 25 },
|
|
{ dir: 'right', period: 70, speed: 3.0, offset: 10 },
|
|
{ dir: 'left', period: 86, speed: 2.7, offset: 40 },
|
|
{ dir: 'right', period: 74, speed: 2.9, offset: 20 },
|
|
{ dir: 'aim', period: 110, speed: 2.4, offset: 55 },
|
|
],
|
|
grid: G(88, [
|
|
rep('#', 88), // 0
|
|
E(88), E(88), E(88), E(88), E(88), E(88), // 1-6
|
|
E(88), E(88), E(88), // 7-9
|
|
E(88), // 10
|
|
ent(88, [83, 'X']), // 11
|
|
plat(88, 82, 5), // 12
|
|
E(88), // 13
|
|
plat(88, 78, 5), // 14
|
|
E(88), // 15
|
|
ent(88, [83, 'G']), // 16
|
|
plat(88, 82, 5), // 17
|
|
E(88), // 18
|
|
plat(88, 78, 5), // 19
|
|
E(88), // 20
|
|
ent(88, [2, 'S'], [4, 'O'], [10, 'G'], [20, 'O'], [30, 'G'], [36, 'O'],
|
|
[50, 'G'], [52, 'O'], [68, 'O'], [70, 'G'], [84, 'O']), // 21
|
|
'#' + '.' + rep('#####...', 10) + '#####', // 22
|
|
'#' + rep('^', 87), // 23
|
|
rep('#', 88), // 24
|
|
]),
|
|
},
|
|
|
|
// ---------------- 3 ----------------
|
|
{
|
|
id: 'e3', name: 'THE PIT', type: 'endur', diff: 4, bg: 'endur', width: 64,
|
|
hint: '先从左侧竖井下到底,游过水下刺池,再从右边一路爬回顶端。',
|
|
messages: ['下面有东西在等你'],
|
|
grid: G(64, [
|
|
rep('#', 64), // 0
|
|
E(64), E(64), // 1-2
|
|
ent(64, [57, 'X']), // 3
|
|
'#' + '..' + 'S' + rep('.', 52) + rep('#', 7), // 4 出生 + 右·顶台
|
|
'#.' + rep('#', 7), // 5 左
|
|
'#' + rep('.', 50) + 'G', // 6
|
|
'#' + rep('.', 48) + rep('#', 7), // 7 右
|
|
'#' + rep('.', 10) + rep('#', 7), // 8 左
|
|
'#' + rep('.', 58) + 'G', // 9
|
|
'#' + '...' + 'G' + rep('.', 51) + rep('#', 7), // 10 右
|
|
'#.' + rep('#', 7), // 11 左
|
|
'#' + rep('.', 50) + 'G', // 12
|
|
'#' + rep('.', 48) + rep('#', 7), // 13 右
|
|
'#' + rep('.', 10) + rep('#', 7), // 14 左
|
|
E(64), // 15
|
|
'#' + '...' + 'G' + rep('.', 51) + rep('#', 7), // 16 右
|
|
'#.' + rep('#', 7), // 17 左
|
|
E(64), // 18
|
|
'#' + rep('.', 48) + rep('#', 7), // 19 右
|
|
'#' + rep('.', 10) + rep('#', 7), // 20 左
|
|
E(64), // 21
|
|
'#' + rep('.', 12) + 'G' + rep('.', 42) + rep('#', 7), // 22 右
|
|
'#' + rep('.', 10) + rep('#', 7), // 23 左·井底台
|
|
'#' + rep('.', 50) + 'G', // 24 出水台
|
|
'#' + rep('.', 17) + rep('~', 31) + rep('#', 7) + rep('.', 8), // 25
|
|
'#' + rep('.', 17) + rep('~', 31) + rep('.', 14), // 26
|
|
'#' + rep('.', 17) + rep('~', 31) + rep('.', 14), // 27
|
|
'#' + rep('^', 63), // 28
|
|
rep('#', 64), // 29
|
|
]),
|
|
},
|
|
|
|
// ---------------- 4 ----------------
|
|
{
|
|
id: 'e4', name: 'MARATHON', type: 'endur', diff: 5, bg: 'endur', width: 120,
|
|
hint: '120 格:冰面、炮台、刺坑、移动平台全都有。5 个存档,自求多福。',
|
|
turrets: [
|
|
{ dir: 'right', period: 76, speed: 2.9, offset: 0 },
|
|
{ dir: 'left', period: 88, speed: 2.7, offset: 30 },
|
|
{ dir: 'right', period: 68, speed: 3.1, offset: 15 },
|
|
{ dir: 'aim', period: 120, speed: 2.3, offset: 50 },
|
|
{ dir: 'left', period: 80, speed: 2.8, offset: 25 },
|
|
],
|
|
grid: G(120, [
|
|
rep('#', 120), // 0
|
|
E(120), E(120), E(120), E(120), E(120), // 1-5
|
|
E(120), E(120), E(120), E(120), E(120), // 6-10
|
|
E(120), E(120), E(120), E(120), E(120), // 11-15
|
|
E(120), // 16
|
|
ent(120, [20, 'v'], [22, 'v'], [36, 'v'], [38, 'v'], [52, 'v'], [54, 'v'],
|
|
[70, 'v'], [72, 'v'], [88, 'v'], [90, 'v'], [104, 'v'], [106, 'v']), // 17
|
|
E(120), E(120), E(120), E(120), // 18-21
|
|
ent(120, [2, 'S'], [20, 'O'], [24, 'G'], [36, 'O'], [40, 'G'], [52, 'O'],
|
|
[66, 'G'], [70, 'O'], [88, 'G'], [100, 'O'], [104, 'G'], [116, 'X'],
|
|
[17, '^'], [18, '^'], [54, '^'], [55, '^'], [72, '^'], [73, '^'], [105, '^'], [106, '^']), // 22
|
|
flr(['%', 10], ['^', 4], ['#', 12], ['^', 5], ['%', 12], ['^', 4],
|
|
['#', 10], ['^', 5], ['#', 15], ['^', 4], ['%', 10], ['^', 5],
|
|
['#', 12], ['^', 4], ['#', 7]), // 23
|
|
rep('#', 120), // 24
|
|
]),
|
|
movers: [
|
|
{ x: 57, y: 22, w: 3, h: 1, path: [[57, 22], [63, 22]], speed: 1.3 },
|
|
],
|
|
},
|
|
];
|