From e2e1baf35d84081413d2d8b43592788009d06d4a Mon Sep 17 00:00:00 2001 From: JOJO <1498581755@qq.com> Date: Thu, 6 Aug 2026 14:36:38 +0800 Subject: [PATCH] =?UTF-8?q?=E9=92=A2=E7=90=B4Boss=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=EF=BC=9A=E6=81=A2=E5=A4=8D3=E9=94=AE=E5=AE=89=E5=85=A8?= =?UTF-8?q?=E5=8C=BA+=E4=BF=AE=E5=A4=8D=E5=A4=A7=E6=BF=80=E5=85=89TDZ?= =?UTF-8?q?=E4=B8=8E=E5=88=A4=E6=96=AD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 顺扫/反扫/顺滑奏/反滑奏恢复3键安全区(顺/滑最右3键安全,反/反滑最左3键安全) - 大激光惩罚:将lck声明移到判断之前,修复暂时性死区(TDZ)bug - 大激光判断改为纯相对位置表达式,消除中间变量 --- star-raid/js/enemies.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) 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连不射其余全射,只发射一次