// BOSS 战关卡(击败 BOSS 即通关) import { G, rep, E, plat, ent } from './kit.js'; export default [ { id: 'b1', name: 'THE GUY', type: 'boss', diff: 3, bg: 'boss', width: 48, hint: 'X 键射击。他放扇形弹+砸地冲击波,站在平台边缘躲开再输出。', startGun: true, bosses: [{ kind: 'guy', hp: 72 }], grid: G(48, [ rep('#', 48), // 0 E(48), E(48), E(48), E(48), E(48), E(48), E(48),// 1-7 '#' + rep('.', 5) + '######' + rep('.', 24) + '######', // 8 E(48), E(48), E(48), // 9-11 '#' + rep('.', 15) + '######' + rep('.', 8) + '######', // 12 E(48), E(48), E(48), // 13-15 '#' + rep('.', 5) + '######' + rep('.', 24) + '######', // 16 E(48), E(48), E(48), // 17-19 ent(48, [2, 'S'], [24, 'B']), // 20 rep('#', 48), // 21 ]), }, { id: 'b2', name: 'MECHA KID', type: 'boss', diff: 4, bg: 'boss', width: 48, hint: '冲刺时贴地必死。跳上高台躲,等他停下再打。', startGun: true, bosses: [{ kind: 'mecha', hp: 96 }], grid: G(48, [ rep('#', 48), // 0 E(48), E(48), E(48), E(48), // 1-4 '#' + rep('.', 12) + '######' + rep('.', 10) + '######', // 5 E(48), E(48), E(48), // 6-8 '#' + rep('.', 3) + '######' + rep('.', 28) + '######', // 9 E(48), E(48), E(48), // 10-12 '#' + rep('.', 15) + '######' + rep('.', 8) + '######', // 13 E(48), E(48), E(48), // 14-16 '#' + rep('.', 3) + '######' + rep('.', 28) + '######', // 17 E(48), E(48), E(48), // 18-19 ent(48, [2, 'S'], [24, 'B']), // 20 rep('#', 48), // 21 ]), }, { id: 'b3', name: 'THE DEVIL', type: 'boss', diff: 5, bg: 'boss', width: 48, hint: '三阶段:追踪弹 → 激光横扫 → 环形弹幕。地上还有刺。活下来。', startGun: true, bosses: [{ kind: 'devil', hp: 128 }], grid: G(48, [ rep('#', 48), // 0 E(48), E(48), E(48), // 1-3 '#' + rep('.', 5) + '######' + rep('.', 24) + '######', // 4 E(48), E(48), E(48), // 5-7 '#' + rep('.', 15) + '######' + rep('.', 8) + '######', // 8 E(48), E(48), E(48), // 9-11 '#' + rep('.', 3) + '######' + rep('.', 28) + '######', // 12 E(48), E(48), E(48), // 13-15 '#' + rep('.', 15) + '######' + rep('.', 8) + '######', // 16 E(48), E(48), E(48), // 17-19 ent(48, [2, 'S'], [24, 'B'], [12, '^'], [13, '^'], [34, '^'], [35, '^']), // 20 rep('#', 48), // 21 ]), }, ];