yyl
2026-01-28 d1ec6bf485cf9179d157554eaef7a2339233dd03
Main/System/Battle/Skill/SkillBase.cs
@@ -225,13 +225,13 @@
            if (change)
            {
                MoveSpeed = 1125f;
                caster.motionBase.ShowIllusionShadow(true, color);
                caster.ShowIllusionShadow(true, color);
            }
        }
        else
        {
            MoveSpeed = 750f;
            caster.motionBase.ShowIllusionShadow(false);
            caster.ShowIllusionShadow(false);
        }
    }
@@ -303,7 +303,7 @@
    {
        if (hintConfig != null)
        {
            battleObject.heroInfoBar.ShowTips(((char)hintConfig.prefix).ToString(), true, false, 1.25f);
            battleObject.ShowTips(((char)hintConfig.prefix).ToString(), true, false, 1.25f);
        }
    }
@@ -427,10 +427,10 @@
            return;
        }
        caster.motionBase.PlayAnimation(MotionName.run, true);
        var tweener = BattleUtility.MoveToTarget(caster.heroRectTrans, target, offset, () =>
        caster.PlayAnimation(MotionName.run, true);
        var tweener = BattleUtility.MoveToTarget(caster.GetRectTransform(), target, offset, () =>
        {
            caster.motionBase.PlayAnimation(MotionName.idle, true);
            caster.PlayAnimation(MotionName.idle, true);
            _onComplete?.Invoke();
        }, speed);
        battleField.battleTweenMgr.OnPlayTween(tweener);
@@ -441,9 +441,7 @@
    {
        if (skillConfig.CastDistance < 0)
        {
            Vector3 scale = caster.heroGo.transform.localScale;
            scale.x = Mathf.Abs(scale.x) * forward;
            caster.heroGo.transform.localScale = scale;
            caster.SetFacing(forward);
        }
        _onComplete?.Invoke();
    }
@@ -453,7 +451,7 @@
    {
        TurnBack(null, 1f);
        OnAllAttackMoveFinished();
        caster.motionBase.PlayAnimation(MotionName.idle, true);
        caster.PlayAnimation(MotionName.idle, true);
    }
    // 所有攻击移动完成后的处理:恢复UI显示状态
@@ -464,7 +462,7 @@
        foreach (BattleObject bo in allList)
        {
            bo.layerMgr.SetFront();
            bo.heroInfoBar.SetActive(true);
            bo.GetHeroInfoBar()?.SetActive(true);
        }
        battleField.battleRootNode.skillMaskNode.SetActive(false);
    }
@@ -472,7 +470,7 @@
    // 执行技能释放动画和逻辑:播放施法动作并提供回调
    protected TrackEntry CastImpl(Action onComplete = null)
    {
        return caster.motionBase.PlaySkillAnimation(skillConfig, this, tagUseSkillAttack.BattleType == 4, onComplete);
        return caster.PlaySkillAnimation(skillConfig, this, tagUseSkillAttack.BattleType == 4, onComplete);
    }
    // 技能开始回调:处理死亡、子技能、技能效果初始化
@@ -656,7 +654,7 @@
        var highlightSet = new HashSet<BattleObject>(highlightList);
        // 先把施法者的 InfoBar 隐藏(原逻辑保留)
        caster.heroInfoBar.SetActive(false);
        caster.GetHeroInfoBar()?.SetActive(false);
        foreach (BattleObject bo in allList)
        {
@@ -673,7 +671,7 @@
            }
            // 目标(含 HurtListEx)都应显示 InfoBar
            bo.heroInfoBar.SetActive(isTarget);
            bo.GetHeroInfoBar()?.SetActive(isTarget);
        }
        battleField.battleRootNode.skillMaskNode.SetActive(true);
@@ -790,7 +788,7 @@
                        DamageNumConfig hintConfig = DamageNumConfig.Get(BattleConst.BreakArmor);
                        Hint(battleObject, hintConfig);
                        battleField.battleEffectMgr.PlayEffect(battleObject, 
                            BattleConst.BreakArmorEffectID, battleObject.heroRectTrans, battleObject.Camp,
                            BattleConst.BreakArmorEffectID, battleObject.GetRectTransform(), battleObject.Camp,
                            battleObject.teamHero.modelScale);
                    }
                }
@@ -802,7 +800,7 @@
                        DamageNumConfig hintConfig = DamageNumConfig.Get(BattleConst.Parry);
                        Hint(battleObject, hintConfig);
                        battleField.battleEffectMgr.PlayEffect(battleObject, 
                            BattleConst.ParryEffectID, battleObject.heroRectTrans, battleObject.Camp,
                            BattleConst.ParryEffectID, battleObject.GetRectTransform(), battleObject.Camp,
                            battleObject.teamHero.modelScale);
                    }
                }
@@ -1022,7 +1020,7 @@
            
            BattleDrops battleDrops = new BattleDrops()
            {
                rectTransform = deadTarget.heroRectTrans,
                rectTransform = deadTarget.GetRectTransform(),
                dropItemPackIndex = itemIndexList,
                expDrops = expAssign[i]
            };
@@ -1323,30 +1321,22 @@
        }
        // 3. 清理 DOTween 动画(防止移动回调在战斗结束后执行)
        if (caster != null && caster.heroRectTrans != null)
        if (caster != null)
        {
            DG.Tweening.DOTween.Kill(caster.heroRectTrans);
            caster.StopMoveAnimation();
        }
        // 4. 重置施法者状态
        if (caster != null)
        {
            // 重置位置到原点
            if (caster.heroRectTrans != null)
            {
                caster.heroRectTrans.anchoredPosition = Vector2.zero;
            }
            caster.ResetPosition();
            
            // 重置朝向
            if (caster.heroGo != null)
            {
                Vector3 scale = caster.heroGo.transform.localScale;
                scale.x = Mathf.Abs(scale.x);
                caster.heroGo.transform.localScale = scale;
            }
            caster.ResetFacing();
            // 取消幻影效果
            caster.motionBase?.ShowIllusionShadow(false);
            caster.ShowIllusionShadow(false);
        }
        // 5. 恢复 UI 状态
@@ -1359,7 +1349,7 @@
                foreach (BattleObject bo in allList)
                {
                    bo.layerMgr?.SetFront();
                    bo.heroInfoBar?.SetActive(true);
                    bo.GetHeroInfoBar()?.SetActive(true);
                }
            }