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> MoveToSpot(ExGatherTag tag)
        {
            tag.StatusText = "Moving to " + this;

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

            var result =
                await
                StealthLocation.MoveTo(
                    UseMesh,
                    radius : tag.Radius,
                    name : "Stealth Location",
                    stopCallback : tag.MovementStopCallback,
                    dismountAtDestination : true);

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

                await tag.CastAura(Ability.Stealth, AbilityAura.Stealth);

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

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

            if (approachLocation == Vector3.Zero)
            {
                if (HotSpots == null || HotSpots.Count == 0)
                {
                    return(false);
                }

                approachLocation = HotSpots.Shuffle().First();
            }

            var result = await approachLocation.MoveToPointWithin(dismountAtDestination : Stealth);

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

                if (Stealth)
                {
                    await tag.CastAura(Ability.Stealth, AbilityAura.Stealth);

                    result = await NodeLocation.MoveToNoMount(UseMesh, tag.Distance, tag.Node.EnglishName, tag.MovementStopCallback);
                }
                else
                {
                    result =
                        await
                        NodeLocation.MoveTo(
                            UseMesh,
                            radius : tag.Distance,
                            name : tag.Node.EnglishName,
                            stopCallback : tag.MovementStopCallback);
                }
            }

            return(result);
        }