Example #1
0
 public static bool GetTerrainPoint(float x, float z, float curHeight, out Vector3 result)
 {
     if (!MySceneManager.Instance.IsSceneExist)
     {
         result = new Vector3(x, curHeight, z);
         return(false);
     }
     return(XUtility.GetTerrainPoint(x, z, curHeight, out result));
 }
Example #2
0
    public static bool GetRoughPathPoint(float desX, float desZ, float accuracy, out List <Vector3> pathPoint)
    {
        XUtility.mRoughPathPoint.Clear();
        pathPoint = XUtility.mRoughPathPoint;
        Vector3 position;

        if (!XUtility.GetTerrainPoint(desX, desZ, 0f, out position))
        {
            return(false);
        }
        NavMeshHit navMeshHit;

        if (!NavMesh.SamplePosition(position, ref navMeshHit, 500f, -1))
        {
            return(false);
        }
        position = navMeshHit.get_position();
        Vector3 position2 = EntityWorld.Instance.EntSelf.Actor.FixTransform.get_position();

        if (!NavMesh.SamplePosition(EntityWorld.Instance.EntSelf.Actor.FixTransform.get_position(), ref navMeshHit, 500f, -1))
        {
            return(false);
        }
        Vector3     position3   = navMeshHit.get_position();
        NavMeshPath navMeshPath = new NavMeshPath();

        if (!NavMesh.CalculatePath(position2, position, -1, navMeshPath))
        {
            return(false);
        }
        if (navMeshPath.get_corners().Length < 2)
        {
            return(false);
        }
        pathPoint.AddRange(navMeshPath.get_corners());
        if (XUtility.DistanceNoY(position3, navMeshPath.get_corners()[0]) > accuracy)
        {
            pathPoint.Insert(0, position3);
        }
        if (XUtility.DistanceNoY(position2, position3) > accuracy)
        {
            pathPoint.Insert(0, position2);
        }
        return(true);
    }
Example #3
0
        public void Treat(BattleAction_Treat data, bool isServerData)
        {
            if (data.beTreatedSoldierId != this.owner.ID)
            {
                return;
            }
            Vector3 casterPosition = Vector3.get_zero();

            if (EntityWorld.Instance.AllEntities.ContainsKey(data.treatSrcSoldierId))
            {
                bool flag;
                if (EntityWorld.Instance.AllEntities[data.treatSrcSoldierId].Actor)
                {
                    flag           = true;
                    casterPosition = EntityWorld.Instance.AllEntities[data.treatSrcSoldierId].Actor.FixTransform.get_position();
                }
                else
                {
                    flag = (data.pos != null);
                    if (flag)
                    {
                        casterPosition = XUtility.GetTerrainPoint(data.pos.x * 0.01f, data.pos.y * 0.01f, 0f);
                    }
                }
                this.owner.SetHPChange(HPChangeMessage.GetTreatMessage(data.treatHp, data.treatSrcType, this.owner, EntityWorld.Instance.AllEntities[data.treatSrcSoldierId], flag, casterPosition));
            }
            else
            {
                bool flag = data.pos != null;
                if (flag)
                {
                    casterPosition = XUtility.GetTerrainPoint(data.pos.x * 0.01f, data.pos.y * 0.01f, 0f);
                }
                this.owner.SetHPChange(HPChangeMessage.GetTreatMessage(data.treatHp, data.treatSrcType, this.owner, null, flag, casterPosition));
            }
            this.owner.Hp = data.hp;
        }
Example #4
0
 public static Vector3 GetTerrainPoint(float x, float z, float curHeight)
 {
     return(XUtility.GetTerrainPoint(x, z, curHeight));
 }