using UnityEngine; 
 | 
using System.Collections.Generic; 
 | 
using System; 
 | 
  
 | 
#if UNITY_EDITOR 
 | 
  
 | 
public class TestAction : RecordAction 
 | 
{ 
 | 
    protected int targetIndex; 
 | 
    protected int selfIndex; 
 | 
    protected int distance = 100; 
 | 
    protected float duration = 2f; 
 | 
  
 | 
    public TestAction(BattleField _battleField, int _targetIndex, int _selfIndex, int _distance, float _duration) 
 | 
        : base(RecordActionType.Death, _battleField, null) 
 | 
    { 
 | 
        targetIndex = _targetIndex; 
 | 
        selfIndex = _selfIndex; 
 | 
        distance = _distance; 
 | 
        duration = _duration; 
 | 
    } 
 | 
  
 | 
    public override bool IsFinished() 
 | 
    { 
 | 
        return isFinish; 
 | 
    } 
 | 
  
 | 
    public override void Run() 
 | 
    { 
 | 
        base.Run(); 
 | 
  
 | 
        if (!isRunOnce) 
 | 
        { 
 | 
            isRunOnce = true; 
 | 
  
 | 
            RectTransform target = battleField.GetTeamNode(BattleCamp.Blue, targetIndex); 
 | 
            MoveToTarget(target, new Vector2(distance, 0), duration, () => 
 | 
            { 
 | 
                BattleDebug.LogError(" reach to the target "); 
 | 
                isFinish = true; 
 | 
            }); 
 | 
  
 | 
            return; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    protected void MoveToTarget(RectTransform target, Vector2 offset, float duration, Action onComplete = null) 
 | 
    { 
 | 
        try 
 | 
        { 
 | 
            BattleObject caster = battleField.battleObjMgr.GetBattleObjectByIndex(BattleCamp.Red, selfIndex); 
 | 
            BattleDebug.LogError("Move to target , target is " + target.name); 
 | 
            caster.motionBase.PlayAnimation(MotionName.run, true); 
 | 
            var tweener = BattleUtility.MoveToTarget(caster.heroRectTrans, target, offset, () => 
 | 
            { 
 | 
                caster.motionBase.PlayAnimation(MotionName.idle, true); 
 | 
                onComplete?.Invoke(); 
 | 
            }); 
 | 
            battleField.battleTweenMgr.OnPlayTween(tweener); 
 | 
        } 
 | 
        catch (Exception e) 
 | 
        { 
 | 
            BattleDebug.LogError("Error in MoveToTarget: " + e.Message); 
 | 
            isFinish = true; 
 | 
        } 
 | 
    } 
 | 
} 
 | 
  
 | 
#endif 
 |