38 lines
1.2 KiB
C#
38 lines
1.2 KiB
C#
|
using Cal.DataTable;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using UnityEngine;
|
|||
|
|
|||
|
namespace ET
|
|||
|
{
|
|||
|
public class BuyInShopNode : AINode
|
|||
|
{
|
|||
|
public override bool Check(Unit unit)
|
|||
|
{
|
|||
|
UnitScene unitScene = unit.GetComponent<UnitScene>();
|
|||
|
if (unitScene.MapId / 100 == Sys_SceneId.Scene_MainCity)
|
|||
|
return true;
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
public override async ETVoid Run(Unit unit, ETCancellationToken cancelToken)
|
|||
|
{
|
|||
|
NPCBase nPCBase = NPCBaseCategory.Instance.Get(NPCBaseId.普通商店);
|
|||
|
var targetPos = new Vector2(nPCBase.PosX, nPCBase.PosY);
|
|||
|
if (AppConfig.inst.isTest)
|
|||
|
Log.Info($"【{UserComponent.Instance.Get(unit.Id)?.NickName} ({unit.Id})】移动到商人");
|
|||
|
bool ret = await MoveHelper.MoveTo(unit, targetPos, cancelToken); // 移动到目标点, 返回false表示协程取消
|
|||
|
if (!ret)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
// 停留两秒, 注意这里要能取消,任何协程都要能取消
|
|||
|
ret = await TimerComponent.Instance.WaitAsync(1000, cancelToken);
|
|||
|
if (!ret)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|