钢琴恢复4连不射,按用户7技能规格重排
- 恢复4连不射(留4安全键其余全射,-3):1/4概率,每次触发随机3~6轮(此前误删,致歉) - 删除误加的随机键齐射(-1) - 7技能:两侧红激光独立触发(未动) + 顺/反扫各1/8 + 顺/反来回各1/8 + 乱序1/4 + 4连不射1/4 - 乱序(2瞄准+2随机)/4连不射均为3~6轮;扫/来回前摇0.1s - 模拟40万局:扫25%/来回25%/乱序25%/4连不射25%
This commit is contained in:
parent
5bca18e0bc
commit
03e6173de2
@ -437,28 +437,28 @@ 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){ // 布下一局:按“每局激光量”均衡——扫18键/来回36键/乱序~18键/齐射~18键 → 概率2/7:1/7:2/7:2/7(火力各~25%);局间无间隔
|
||||
if(ks.i>=ks.seq.length){ // 布下一局:7技能——扫1/4(各1/8)、来回1/4(各1/8)、乱序1/4、4连不射1/4;局间无间隔
|
||||
const m=Math.random();
|
||||
if(m<2/7)ks.mode=rndi(0,1); // 两个扫:合2/7(各1/7)
|
||||
else if(m<3/7)ks.mode=rndi(2,3); // 两个来回:合1/7(各1/14)
|
||||
else if(m<5/7)ks.mode=4; // 乱序:2/7(锁玩家+随机键)
|
||||
else ks.mode=5; // 齐射:2/7
|
||||
if(m<0.25)ks.mode=rndi(0,1); // 顺扫/反扫:合1/4(各1/8),留3安全区
|
||||
else if(m<0.5)ks.mode=rndi(2,3); // 顺来回/反来回:合1/4(各1/8),留3安全区
|
||||
else if(m<0.75)ks.mode=4; // 乱序:2瞄准(玩家正上方)+2随机
|
||||
else ks.mode=5; // 4连不射:留4安全键其余全射
|
||||
if(ks.mode===0){ks.seq=[];for(let i=0;i<n-3;i++)ks.seq.push(i);} // 顺扫:0→17,最右3键安全
|
||||
else if(ks.mode===1){ks.seq=[];for(let i=n-1;i>=3;i--)ks.seq.push(i);} // 反扫:20→3,最左3键安全
|
||||
else if(ks.mode===2){ks.seq=[];for(let i=0;i<n-3;i++)ks.seq.push(i);for(let i=n-4;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<n;i++)ks.seq.push(i);} // 反来回:20→3→20,最左3键安全
|
||||
else if(ks.mode===4){ks.seq=[];for(let i=0;i<rndi(3,6);i++)ks.seq.push(-2);} // 乱序:每次触发随机3~6轮
|
||||
else{ks.seq=[];for(let i=0;i<rndi(3,6);i++)ks.seq.push(-1);} // 齐射:每次触发随机3~6轮(P1/P2统一随机键,键数随阶段)
|
||||
ks.i=0;ks.t=ks.mode<=3?Math.round(6/fm):0; // 扫/来回开局前蓄力0.1秒(原0.3秒),其余无间隔
|
||||
else{ks.seq=[];for(let i=0;i<rndi(3,6);i++)ks.seq.push(-3);} // 4连不射:每次触发随机3~6轮
|
||||
ks.i=0;ks.t=ks.mode<=3?Math.round(6/fm):0; // 扫/来回开局前蓄力0.1秒,其余无间隔
|
||||
}else{const cur=ks.seq[ks.i++];
|
||||
if(cur===-1){const pool=shuffled(n);ks.hotList=pool.slice(0,4+ph*2);ks.hotT=9;ks.hotT0=9;ks.t=Math.round((ph?21:30)/fm);} // 齐射:随机键
|
||||
else if(cur===-2){ // 乱序:2个随机+2个玩家正上方
|
||||
if(cur===-2){ // 乱序:2瞄准(玩家正上方相邻两键)+2随机
|
||||
const p=G.p,base=-(n-1)*5,relX=p.x-b.x;
|
||||
const kNear=clamp(Math.round((relX-base)/10),0,n-1);
|
||||
const kNear2=clamp(kNear+(relX<base+kNear*10?-1:1),0,n-1);
|
||||
const pool=shuffled(n).filter(k=>k!==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<n;i++)if(i<safeStart||i>=safeStart+4)all.push(i);ks.hotList=all;ks.hotT=9;ks.hotT0=9;ks.t=Math.round((ph?10:15)/fm);} // 4连不射:留4安全键其余全射
|
||||
else{ks.hot=cur;ks.hotT=1;ks.hotT0=1;ks.t=Math.max(1,Math.round((ph?1:2)/fm));} // 顺/反扫/来回:快速
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user