// 耐久(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 }, ], }, ];