Exemple #1
0
 public void RenewMovePath(Vector3 path, eBATTLE_MOVE_STATUS eMoveStatus)
 {
     this.m_bArrived = false;
     if (this.m_eMoveStatus == eBATTLE_MOVE_STATUS.eBATTLE_MOVE_STATUS_NORMAL)
     {
         this.m_AStarPath.Insert(0, this.m_vTargetPos);
         this.m_MoveStatus.Insert(0, eBATTLE_MOVE_STATUS.eBATTLE_MOVE_STATUS_NORMAL);
     }
     if (this.m_eMoveStatus == eBATTLE_MOVE_STATUS.eBATTLE_MOVE_STATUS_CHANGEPOS)
     {
         this.SetTargetPos(path.x, path.y, path.z);
         this.m_pkChar.m_k3DChar.SetLookAt(path.x, path.y, path.z, true);
         this.m_pkChar.m_k3DChar.MoveTo(path.x, path.y, path.z);
     }
     else
     {
         int num = this.m_MoveStatus.IndexOf(eBATTLE_MOVE_STATUS.eBATTLE_MOVE_STATUS_NORMAL);
         if (num >= 0)
         {
             this.m_AStarPath.Insert(num, path);
             this.m_MoveStatus.Insert(num, eMoveStatus);
         }
         if (this.m_eMoveStatus == eBATTLE_MOVE_STATUS.eBATTLE_MOVE_STATUS_WAIT)
         {
             this.m_eMoveStatus = eBATTLE_MOVE_STATUS.eBATTLE_MOVE_STATUS_MAX;
         }
         this.ProcessCharMove(true);
     }
 }
Exemple #2
0
    public void ProcessCharMove(bool bStartMove)
    {
        if (this.m_bArrived)
        {
            return;
        }
        if (this.m_eMoveStatus == eBATTLE_MOVE_STATUS.eBATTLE_MOVE_STATUS_WAIT)
        {
            return;
        }
        if (this.m_pkChar.m_k3DChar == null)
        {
            return;
        }
        bool flag = false;

        if (bStartMove)
        {
            flag = true;
        }
        else if (!this.m_pkChar.m_k3DChar.IsMoveToTarget())
        {
            flag = true;
        }
        if (flag && this.m_AStarPath.Count > 0)
        {
            Vector3 vector = this.m_AStarPath[0];
            this.m_AStarPath.RemoveAt(0);
            this.SetTargetPos(vector.x, vector.y, vector.z);
            this.m_eMoveStatus = this.m_MoveStatus[0];
            this.m_MoveStatus.RemoveAt(0);
            this.m_pkChar.m_k3DChar.SetLookAt(new Vector3(vector.x, vector.y, vector.z));
            this.m_pkChar.m_k3DChar.MoveTo(vector.x, vector.y, vector.z);
        }
    }
Exemple #3
0
    public void ForceStopChar(bool bSetAni, float x, float z)
    {
        if (this.m_bArrived)
        {
            return;
        }
        if (this.m_pkChar == null)
        {
            return;
        }
        if (this.m_pkChar.m_k3DChar == null)
        {
            return;
        }
        if (this.m_pkChar.IsReadyCharAction())
        {
            if (x <= 0f || z > 0f)
            {
            }
            this.SetCharPos(this.m_pkChar.m_k3DChar.GetRootGameObject());
            this.m_pkChar.m_k3DChar.MoveStop(bSetAni);
        }
        this.ClearPath();
        this.m_bArrived  = true;
        this.m_bFastMove = false;
        this.m_pkChar.SetIncreaseSpeed(0f);
        this.ClearArrowMarksAll();
        NrTSingleton <NkClientLogic> .Instance.InitPickChar();

        if (this.m_pkChar.GetCurrentOrder() == eBATTLE_ORDER.eBATTLE_ORDER_MOVE)
        {
            this.m_pkChar.SetCurrentOrder(eBATTLE_ORDER.eBATTLE_ORDER_NONE);
        }
        this.m_eMoveStatus = eBATTLE_MOVE_STATUS.eBATTLE_MOVE_STATUS_MAX;
    }
Exemple #4
0
    public void AddAstarPath(float x, float y, float z, eBATTLE_MOVE_STATUS eSTATUS)
    {
        Vector3 item = new Vector3(x, y, z);

        if (eSTATUS == eBATTLE_MOVE_STATUS.eBATTLE_MOVE_STATUS_STOP)
        {
            this.ClearPath();
            this.m_MoveStatus.Clear();
            this.m_eMoveStatus = eBATTLE_MOVE_STATUS.eBATTLE_MOVE_STATUS_MAX;
        }
        this.m_AStarPath.Add(item);
        this.m_MoveStatus.Add(eSTATUS);
    }