Beispiel #1
0
        public override async Task <bool> MoveToSpot(ExGatherTag tag)
        {
            tag.StatusText = "Moving to " + this;

            if (ApproachLocation == Vector3.Zero)
            {
                return(false);
            }

            var result =
                await
                ApproachLocation.MoveTo(
                    UseMesh,
                    radius : tag.Radius,
                    name : "Approach Location",
                    stopCallback : tag.MovementStopCallback);

            if (result)
            {
                await Coroutine.Yield();

                result = await NodeLocation.MoveToNoMount(UseMesh, tag.Distance, tag.Node.EnglishName, tag.MovementStopCallback);
            }

            return(result);
        }
        public override async Task <bool> MoveFromSpot(ExGatherTag tag)
        {
            tag.StatusText = "Moving from " + this;

            var result = true;

            if (ReturnToApproachLocation)
            {
                result &= await ApproachLocation.MoveToOnGroundNoMount(tag.Distance, tag.Node.EnglishName, tag.MovementStopCallback);
            }

            return(result);
        }
        public override async Task <bool> MoveToSpot(ExGatherTag tag)
        {
            tag.StatusText = "Moving to " + this;

            if (ApproachLocation == Vector3.Zero)
            {
                return(false);
            }

            var result =
                await
                ApproachLocation.MoveTo(
                    UseMesh,
                    radius : tag.Distance,
                    name : "Approach Location",
                    stopCallback : tag.MovementStopCallback);

            if (!result)
            {
                return(false);
            }

            var landed = MovementManager.IsDiving || await CommonTasks.Land();

            if (landed && Core.Player.IsMounted && !MovementManager.IsDiving)
            {
                ActionManager.Dismount();
            }

            Navigator.Stop();
            await Coroutine.Yield();

            result = await NodeLocation.MoveToOnGroundNoMount(tag.Distance, tag.Node.EnglishName, tag.MovementStopCallback);

            return(result);
        }