diff --git a/star-raid/js/boss_art.js b/star-raid/js/boss_art.js index 1bfe5da..2da0fba 100644 --- a/star-raid/js/boss_art.js +++ b/star-raid/js/boss_art.js @@ -44,7 +44,15 @@ function drawPiano(b,t,fl,split){ for(const sd of[-1,1]){const px2=sd*(112+off0); circ(px2,2,5.5,"#33436a");circ(px2-1.5,0,2.5,"#55648a"); px(px2-1.5,4,3,8,"#1b2434"); - px(px2-1,10,2,3,b.pedT>0?"#ffffff":(sd<0?"#b98cff":"#43e8ff"));}} + px(px2-1,10,2,3,b.pedT>0?"#ffffff":(sd<0?"#b98cff":"#43e8ff")); + // 大激光蓄力动画(1秒前摇:红光脉冲+向下蔓延蓄力线) + const prog=sd<0?((b.pedLasL||0)/60):((b.pedLasR||0)/60); + if(prog>0){const a=Math.min(prog,1); + ctx.save();ctx.globalAlpha=Math.min(a*0.6,0.85); + circ(px2,10,2+a*5,"#ff3355"); // 炮塔口红光脉冲,随蓄力扩大 + const len=Math.floor(a*55); + if(len>1){px(px2-0.5,12,1,len,"#ff3355");} // 向下蓄力线(纹路蔓延) + ctx.restore();}}} // —— 舰桥+雷达(随半壳滑开) —— for(const sd of[-1,1]){ctx.save();ctx.translate(sd*split*30,0); px(sd<0?-10:0,-32,10,10,"#1b2434"); diff --git a/star-raid/js/enemies.js b/star-raid/js/enemies.js index a215c7a..21ac062 100644 --- a/star-raid/js/enemies.js +++ b/star-raid/js/enemies.js @@ -350,15 +350,15 @@ function updateBoss(){ } } const lck=(b.laserT||0)>0; // 巨宽核心激光期间压制其他攻击 - // 钢琴:大炮塔惩罚激光——玩家站在炮塔正下方蓄力1秒后发射99999伤害大激光 + // 钢琴:大炮塔惩罚激光——玩家站在炮塔水平正下方蓄力1秒后发射99999伤害大激光(不管上下远近,只管左右) if(b.idx===4&&!lck){ const off0=b.phase>=1?16:0,p=G.p; const leftX=b.x-(112+off0),rightX=b.x+(112+off0); - if(p.dead<=0&&Math.abs(p.x-leftX)<14&&p.y>b.y&&p.y=60){bossBeam(leftX,b.y+10,leftX,H+8,6,"#ff3355",10,40,99999,{b,ox:-(112+off0),oy:10,followX2:true});b.pedLasL=0;SFX.warn();} }else b.pedLasL=0; - if(p.dead<=0&&Math.abs(p.x-rightX)<14&&p.y>b.y&&p.y=60){bossBeam(rightX,b.y+10,rightX,H+8,6,"#ff3355",10,40,99999,{b,ox:(112+off0),oy:10,followX2:true});b.pedLasR=0;SFX.warn();} }else b.pedLasR=0;