fix(ASTS) 修复释放一技能时移动会造成本体移动的问题

This commit is contained in:
chicrobot committed 2026-01-31 00:54:03 +08:00
1 parent 8aa2a00cd1
commit 8f4616bbe7
1 file changed
+26 -7
+26 -7
View File
@@ -749,8 +749,17 @@ export default class AttackSkillTestScene extends Phaser.Scene {
this.castPuppetSkill3Second();
}
break;
case 4: // 技能4:傀儡快速移动并拉本体
case 4: // 技能4:傀儡快速移动并拉本体 / 切换到本体控制(当处于技能3控制状态时)
if (this.puppet && this.isControllingPuppet) {
// 检查是否处于3技能第二次按下后的控制期间
const isInSkill3Control = this.puppetSkill3State && this.puppetSkill3State.hasSecondCast;
if (isInSkill3Control) {
// 处于3技能控制期间:只切换到本体控制,不执行移动和拉近逻辑
// 切换到本体控制(保持傀儡存在)
this.switchToYuange(false);
} else {
// 正常情况:执行傀儡快速移动并拉本体的逻辑
// 使用轮盘相对方向计算目标位置
const maxDistance = 200;
const distance = Math.sqrt(directionX * directionX + directionY * directionY);
@@ -799,14 +808,23 @@ export default class AttackSkillTestScene extends Phaser.Scene {
yuange.setVelocity(0, 0);
}
}
break;
}
} else {
// 控制本体时的技能
switch (skillIndex) {
case 1: // 技能1:扔出傀儡或收回傀儡
// 禁用移动能力
yuange.canMove = false;
// 停顿
yuange.setVelocity(0, 0);
// 延迟(0.2秒)后释放技能
this.time.delayedCall(200, () => {
if (this.puppet) {
// 有傀儡存在:立即收回并销毁傀儡
// 有傀儡存在:收回并销毁傀儡
this.switchToYuange();
} else {
// 没有傀儡:创建新傀儡
@@ -851,12 +869,13 @@ export default class AttackSkillTestScene extends Phaser.Scene {
// 自动锁定相机到傀儡
mod.setCameraLocked(true);
});
// 技能释放完成后,恢复移动能力
setTimeout(() => {
yuange.canMove = true;
}, 100);
}
// 立即恢复透明度
yuange.alpha = 1;
}, [], this);
break;
case 2: // 技能2:扇形飞镖攻击
this.castFanDartSkill();