using System.Collections; 
 | 
using System.Collections.Generic; 
 | 
using DG.Tweening; 
 | 
using UnityEngine.UI; 
 | 
using UnityEngine; 
 | 
  
 | 
public class SkillTips : MonoBehaviour 
 | 
{ 
 | 
    public const float tweenDuration = 0.5f; 
 | 
  
 | 
    public const float delayDuration = 0.6f; 
 | 
  
 | 
    public const float beginingX = 400f; 
 | 
  
 | 
    [SerializeField]public Image imgIcon; 
 | 
  
 | 
    [SerializeField]public Image imgSkillName; 
 | 
  
 | 
    [SerializeField] public Image imageBg; 
 | 
  
 | 
    private Tween tween1; 
 | 
    private Tween tween2; 
 | 
    private Tween tween3; 
 | 
  
 | 
    public void PlayMotion(BattleField battleField, bool isRed, TeamHero teamHero, SkillConfig skillConfig) 
 | 
    { 
 | 
        if (teamHero == null || skillConfig == null) 
 | 
        { 
 | 
            return; 
 | 
        } 
 | 
  
 | 
        if (skillConfig.FuncType != 2) 
 | 
            return; 
 | 
  
 | 
        KillAllTweens(); 
 | 
  
 | 
        imgIcon.sprite = UILoader.LoadSprite("HeroHead", teamHero.skinConfig.SquareIcon); 
 | 
        imgSkillName.sprite = UILoader.LoadSprite("SkillNameIcon", skillConfig.SkillTipsName); 
 | 
  
 | 
        // 保证开始时所有图片为可见(alpha=1) 
 | 
        if (imageBg != null) { var c = imageBg.color; c.a = 1f; imageBg.color = c; } 
 | 
        if (imgIcon != null) { var c = imgIcon.color; c.a = 1f; imgIcon.color = c; } 
 | 
        if (imgSkillName != null) { var c = imgSkillName.color; c.a = 1f; imgSkillName.color = c; } 
 | 
  
 | 
        gameObject.SetActive(true); 
 | 
        float posY = transform.localPosition.y; 
 | 
        transform.localPosition = isRed ? new Vector3(-beginingX, posY, 0f) : new Vector3(beginingX, posY, 0f); 
 | 
        tween1 = transform.DOLocalMoveX(0, tweenDuration / battleField.speedRatio, false).SetEase(Ease.Linear).OnComplete(() => 
 | 
        { 
 | 
            tween1 = null; 
 | 
            tween3 = DOVirtual.DelayedCall(delayDuration / battleField.speedRatio, () => 
 | 
            { 
 | 
                tween3 = null; 
 | 
  
 | 
                // tween2 改为做减淡(对 imageBg、imgIcon、imgSkillName 同步淡出) 
 | 
                float fadeDuration = tweenDuration / battleField.speedRatio; 
 | 
                Sequence seq = DOTween.Sequence(); 
 | 
                if (imageBg != null) 
 | 
                    seq.Join(imageBg.DOFade(0f, fadeDuration).SetEase(Ease.InQuad)); 
 | 
                if (imgIcon != null) 
 | 
                    seq.Join(imgIcon.DOFade(0f, fadeDuration).SetEase(Ease.InQuad)); 
 | 
                if (imgSkillName != null) 
 | 
                    seq.Join(imgSkillName.DOFade(0f, fadeDuration).SetEase(Ease.InQuad)); 
 | 
  
 | 
                seq.OnComplete(() => 
 | 
                { 
 | 
                    tween2 = null; 
 | 
                    // 恢复图片 alpha,保证下次显示时可见 
 | 
                    if (imageBg != null) { var cc = imageBg.color; cc.a = 1f; imageBg.color = cc; } 
 | 
                    if (imgIcon != null) { var cc = imgIcon.color; cc.a = 1f; imgIcon.color = cc; } 
 | 
                    if (imgSkillName != null) { var cc = imgSkillName.color; cc.a = 1f; imgSkillName.color = cc; } 
 | 
  
 | 
                    transform.localPosition = isRed ? new Vector3(-beginingX, posY, 0f) : new Vector3(beginingX, posY, 0f); 
 | 
                    gameObject.SetActive(false); 
 | 
                }); 
 | 
  
 | 
                tween2 = seq; 
 | 
                battleField.battleTweenMgr.OnPlayTween(tween2); 
 | 
            }); 
 | 
            battleField.battleTweenMgr.OnPlayTween(tween3); 
 | 
        }); 
 | 
        battleField.battleTweenMgr.OnPlayTween(tween1); 
 | 
    } 
 | 
     
 | 
    public void KillAllTweens() 
 | 
    { 
 | 
        if (tween1 != null) 
 | 
        { 
 | 
            tween1.Kill(); 
 | 
            tween1 = null; 
 | 
        } 
 | 
        if (tween2 != null) 
 | 
        { 
 | 
            tween2.Kill(); 
 | 
            tween2 = null; 
 | 
        } 
 | 
        if (tween3 != null) 
 | 
        { 
 | 
            tween3.Kill(); 
 | 
            tween3 = null; 
 | 
        } 
 | 
  
 | 
        // 被强制停止时也需要恢复 alpha 
 | 
        if (imageBg != null) { var cc = imageBg.color; cc.a = 1f; imageBg.color = cc; } 
 | 
        if (imgIcon != null) { var cc = imgIcon.color; cc.a = 1f; imgIcon.color = cc; } 
 | 
        if (imgSkillName != null) { var cc = imgSkillName.color; cc.a = 1f; imgSkillName.color = cc; } 
 | 
    } 
 | 
  
 | 
} 
 |