92 lines
4.4 KiB
JavaScript
92 lines
4.4 KiB
JavaScript
// 坑向(Troll / Trap)关卡:背叛玩家的一切直觉
|
|
import { G, rep, E, plat, ent, flr } from './kit.js';
|
|
|
|
export default [
|
|
// ---------------- 1 ----------------
|
|
{
|
|
id: 'r1', name: 'TRUST NO ONE', type: 'troll', diff: 3, bg: 'troll', width: 56,
|
|
hint: '路牌在骗你。那两颗"补给"也不怀好意。地板会塌。',
|
|
messages: ['← 地板很结实,放心走 →', '这颗苹果看起来很好吃'],
|
|
grid: G(56, [
|
|
rep('#', 56), // 0
|
|
E(56), E(56), E(56), E(56), E(56), E(56), // 1-6
|
|
E(56), E(56), E(56), E(56), E(56), E(56), // 7-12
|
|
E(56), // 13
|
|
ent(56, [20, 'D'], [38, 'D']), // 14
|
|
E(56), // 15
|
|
E(56), // 16
|
|
ent(56, [2, 'S'], [5, 'T'], [9, '*'], [22, 'G'], [36, '*'], [48, 'T'], [52, 'X']), // 17
|
|
flr(['#', 10], ['V', 8], ['#', 8], ['^', 5], ['#', 9], ['V', 6], ['#', 9]), // 18
|
|
]),
|
|
},
|
|
|
|
// ---------------- 2 ----------------
|
|
{
|
|
id: 'r2', name: 'FALSE GOAL', type: 'troll', diff: 4, bg: 'troll', width: 56,
|
|
hint: '地上那扇门是假的——走过去就死。真正的终点在右上角。',
|
|
messages: ['终点就在前面!→', '真的在上面。'],
|
|
grid: G(56, [
|
|
rep('#', 56), // 0
|
|
E(56), E(56), E(56), E(56), E(56), E(56), // 1-6
|
|
ent(56, [50, 'X']), // 7
|
|
plat(56, 48, 5), // 8
|
|
E(56), // 9
|
|
plat(56, 44, 5), // 10
|
|
E(56), // 11
|
|
plat(56, 38, 5), // 12
|
|
E(56), // 13
|
|
plat(56, 44, 5), // 14
|
|
E(56), // 15
|
|
plat(56, 38, 5), // 16
|
|
ent(56, [2, 'S'], [8, 'T'], [15, 'G'], [24, '^'], [25, '^'],
|
|
[30, 'X'], [36, 'G']), // 17
|
|
rep('#', 56), // 18
|
|
]),
|
|
events: [
|
|
{ x: 28, y: 14, w: 6, h: 5, once: false, actions: [{ type: 'kill' }] },
|
|
],
|
|
},
|
|
|
|
// ---------------- 3 ----------------
|
|
{
|
|
id: 'r3', name: 'BLIND', type: 'troll', diff: 4, bg: 'troll', width: 56,
|
|
hint: '摄像头接管了视野:你只能看见身边一小块地方。天上下刺也看不见。',
|
|
messages: ['摄像头已启动 ★'],
|
|
grid: G(56, [
|
|
rep('#', 56), // 0
|
|
E(56), E(56), E(56), E(56), E(56), E(56), // 1-6
|
|
E(56), E(56), E(56), E(56), E(56), E(56), // 7-12
|
|
E(56), // 13
|
|
ent(56, [18, 'D'], [30, 'D'], [44, 'D']), // 14
|
|
E(56), // 15
|
|
E(56), // 16
|
|
ent(56, [2, 'S'], [6, 'T'], [15, 'G'], [32, 'G'], [45, 'X']), // 17
|
|
flr(['#', 8], ['^', 3], ['#', 10], ['^', 4], ['#', 12], ['^', 3], ['#', 9], ['^', 4], ['#', 2]), // 18
|
|
]),
|
|
camzones: [{ x: 1, y: 14, w: 54, h: 5, mode: 'zoom', zoom: 2.6 }],
|
|
},
|
|
|
|
// ---------------- 4 ----------------
|
|
{
|
|
id: 'r4', name: 'TROLL PARADISE', type: 'troll', diff: 5, bg: 'troll', width: 64,
|
|
hint: '漩涡送你回起点,"补给"会杀你,地板会塌,天上还会下刺雨。',
|
|
messages: ['这是最后的考验(笑)', '前面的门是假的'],
|
|
grid: G(64, [
|
|
rep('#', 64), // 0
|
|
E(64), E(64), E(64), E(64), E(64), E(64), // 1-6
|
|
E(64), E(64), E(64), E(64), E(64), E(64), // 7-12
|
|
E(64), // 13
|
|
ent(64, [12, 'D'], [25, 'D'], [38, 'D'], [55, 'D']), // 14
|
|
E(64), // 15
|
|
E(64), // 16
|
|
ent(64, [2, 'S'], [5, 'T'], [7, '*'], [19, 'G'], [30, '*'],
|
|
[44, 'W'], [47, 'T'], [58, 'X']), // 17
|
|
flr(['#', 8], ['V', 6], ['#', 8], ['^', 4], ['#', 8], ['V', 6], ['#', 8], ['^', 3], ['#', 12]), // 18
|
|
]),
|
|
warps: [{ to: 'spawn' }],
|
|
events: [
|
|
{ x: 28, y: 14, w: 5, h: 5, once: false, actions: [{ type: 'spikes', x: 26, y: 0, count: 8, gap: 2 }] },
|
|
],
|
|
},
|
|
];
|