diff --git a/star-raid/js/enemies.js b/star-raid/js/enemies.js index 6b28706..0ee4fd4 100644 --- a/star-raid/js/enemies.js +++ b/star-raid/js/enemies.js @@ -437,18 +437,21 @@ function bossMain(b,def,fm){ ks.hotList=null;ks.hot=-1;SFX.eshoot();}} ks.t--; if(ks.t<=0&&ks.hotT<=0){ - if(ks.i>=ks.seq.length){ // 布下一局:完全随机选模式(6种:0~5,勿写成6——会多占齐射档位稀释乱序),局间无间隔 - ks.mode=rndi(0,5); + if(ks.i>=ks.seq.length){ // 布下一局:加权随机——扫/来回各合1/4,乱序/齐射各1/4;局间无间隔 + const m=Math.random(); + if(m<0.25)ks.mode=rndi(0,1); // 两个扫:合1/4(各1/8) + else if(m<0.5)ks.mode=rndi(2,3); // 两个来回:合1/4(各1/8) + else if(m<0.75)ks.mode=4; // 乱序:1/4(锁玩家+随机键) + else ks.mode=5; // 齐射:1/4 if(ks.mode===0){ks.seq=[];for(let i=0;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连不射其余全射,只发射一次 - ks.i=0;ks.t=ks.mode<=3?Math.round(18/fm):0; // 扫/滑四种模式开局前蓄力0.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;ik!==kNear&&k!==kNear2); ks.hotList=[kNear,kNear2].concat(pool.slice(0,2+ph*2)); ks.hotT=9;ks.hotT0=9;ks.t=Math.round((ph?7:10)/fm);} - else if(cur===-3){const safeStart=rndi(0,n-4);const all=[];for(let i=0;i=safeStart+4)all.push(i);ks.hotList=all;ks.hotT=9;ks.hotT0=9;ks.t=Math.round((ph?10:15)/fm);} // 齐射P1:4连不射 - else{ks.hot=cur;ks.hotT=1;ks.hotT0=1;ks.t=Math.max(1,Math.round((ph?1:2)/fm));} // 顺/反扫/滑奏:快速 + else{ks.hot=cur;ks.hotT=1;ks.hotT0=1;ks.t=Math.max(1,Math.round((ph?1:2)/fm));} // 顺/反扫/来回:快速 } } b.mainT=4;break;}