diff --git a/star-raid/js/enemies.js b/star-raid/js/enemies.js index e6bcf16..e11e693 100644 --- a/star-raid/js/enemies.js +++ b/star-raid/js/enemies.js @@ -349,20 +349,19 @@ function updateBoss(){ else if(tn.rec>0){tn.rec--;if(tn.rec<=0)b.tent=null;} } } + const lck=(b.laserT||0)>0; // 巨宽核心激光期间压制其他攻击 // 钢琴:大炮塔惩罚激光——玩家站在炮塔正下方蓄力1秒后发射99999伤害大激光 if(b.idx===2&&!lck){ const off0=b.phase>=1?16:0,p=G.p,warnW=14; - const leftX=b.x-(112+off0),rightX=b.x+(112+off0); - if(p.dead<=0&&Math.abs(p.x-leftX)b.y){ + if(p.dead<=0&&Math.abs(p.x-b.x+(112+off0))b.y){ b.pedLasL=(b.pedLasL||0)+1; - if(b.pedLasL>=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();} + if(b.pedLasL>=60){bossBeam(b.x-(112+off0),b.y+10,b.x-(112+off0),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)b.y){ + if(p.dead<=0&&Math.abs(p.x-b.x-(112+off0))b.y){ b.pedLasR=(b.pedLasR||0)+1; - if(b.pedLasR>=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();} + if(b.pedLasR>=60){bossBeam(b.x+(112+off0),b.y+10,b.x+(112+off0),H+8,6,"#ff3355",10,40,99999,{b,ox:(112+off0),oy:10,followX2:true});b.pedLasR=0;SFX.warn();} }else b.pedLasR=0; } - const lck=(b.laserT||0)>0; // 巨宽核心激光期间压制其他攻击 // —— 主攻击 —— b.mainT--; if(b.mainT<=0&&!lck)bossMain(b,def,fm); @@ -415,10 +414,10 @@ function bossMain(b,def,fm){ if(ks.t<=0&&ks.hotT<=0){ if(ks.i>=ks.seq.length){ // 布下一局:完全随机选模式(6种),局间无间隔 ks.mode=rndi(0,6); - if(ks.mode===0){ks.seq=[];for(let i=0;i=0;i--)ks.seq.push(i);} // 反扫:全21键 - else if(ks.mode===2){ks.seq=[];for(let i=0;i=0;i--)ks.seq.push(i);} // 顺滑奏:0→20→0(41键) - else if(ks.mode===3){ks.seq=[];for(let i=n-1;i>=0;i--)ks.seq.push(i);for(let i=1;i=3;i--)ks.seq.push(i);} // 反扫:20→3,最左3键安全 + else if(ks.mode===2){ks.seq=[];for(let i=0;i=0;i--)ks.seq.push(i);} // 顺滑奏:0→17→0,最右3键安全 + else if(ks.mode===3){ks.seq=[];for(let i=n-1;i>=3;i--)ks.seq.push(i);for(let i=3;i=1){ks.seq=[];for(let i=0;i<6+ph*2;i++)ks.seq.push(-1);} // 齐射P2:保持原逻辑(随机6键,多次) else{ks.seq=[-3];} // 齐射P1:4连不射其余全射,只发射一次