触手扫击修正:非扫击侧保持待机(不再双侧齐扫);触发=9秒一次左右随机+玩家靠近(横向52px/下方95px)立即触发对应侧

This commit is contained in:
JOJO 2026-08-06 01:11:00 +08:00
parent a821ea5c91
commit 946f0e072d

View File

@ -50,7 +50,7 @@ function tentSegs(b,side,opF){ // 触手7节局部坐标相对Boss中心
const pts=[];opF=opF===undefined?1:opF;
for(let i=0;i<7;i++){
let ang=Math.sin((b.t-i*2.2)*0.06)*0.07*side,stretch=1,glow=0;
if(b.tent){const s=tentPose(b.tent,side,b.t-i*2.2);ang=s.ang;stretch=s.stretch;glow=s.glow;}
if(b.tent&&b.tent.side===side){const s=tentPose(b.tent,side,b.t-i*2.2);ang=s.ang;stretch=s.stretch;glow=s.glow;} // 仅扫击侧动作,另一侧保持待机摆动
const f=i/6,L=40*stretch*f*opF;
pts.push({x:side*9+Math.sin(ang)*L,y:24+Math.cos(ang)*L,glow});
}
@ -312,7 +312,11 @@ function updateBoss(){
if(b.plT===90){b.warpChg=0;bossBeam(b.x,b.y+6,b.x,H+8,b.phase>=1?24:20,"#5cff9d",10,80,30,{b,ox:0,oy:6,followX2:true,sweep:1,amp:b.phase>=1?70:50});}
}
}
if(b.idx===10&&b.tent){const tn=b.tent; // 泰伦:触手扫击(前摇→横扫→顿挫→收回;触手即碰撞体)
if(b.idx===10){ // 泰伦触手扫击9秒一次左右随机 + 玩家靠近立即触发对应侧
if(b.phase>=1&&!b.tent){const p=G.p;
if(p.dead<=0&&Math.abs(p.x-b.x)<52&&p.y>b.y&&p.y<b.y+95){
b.tent={side:p.x<b.x?-1:1,warn:50,act:0,rec:0,trail:null};SFX.warn();}}
if(b.tent){const tn=b.tent; // 前摇→横扫→顿挫→收回;触手即碰撞体
if(tn.warn>0){tn.warn--;if(tn.warn<=0){tn.act=45;tn.hitDone=false;}}
else if(tn.act>0){tn.act--;
if(!tn.hitDone){ // 扫击+顿挫全期:玩家与触手各节线段做点-线段碰撞
@ -327,6 +331,7 @@ function updateBoss(){
}
else if(tn.rec>0){tn.rec--;if(tn.rec<=0)b.tent=null;}
}
}
const lck=(b.laserT||0)>0; // 巨宽核心激光期间压制其他攻击
// —— 主攻击 ——
b.mainT--;
@ -491,7 +496,7 @@ function bossMinor(b,mk,fm){
case "tentSweep": // 泰伦触手扫击P2+随机一侧触手前摇后拉蓄力→60°扇形挥鞭
if(b.phase<1){b.minorT=80;break;}
if(!b.tent){b.tent={side:pick([-1,1]),warn:50,act:0,rec:0,trail:null};SFX.warn();}
b.minorT=Math.round(560/fm);break;
b.minorT=Math.round(540/fm);break; // 自动扫击9秒一次
case "acidGas": // 泰伦酸蚀气体P3触手末端释放毒雾向下飘
if(b.phase<2){b.minorT=80;break;}
for(const sd of[-1,1])G.zones.push({x:b.x+sd*16,y:b.y+30,r:19,vy:0.75,life:520,col:"#a8ff5c",kind:"gas"});