Exemple #1
0
        public override async Task <bool> MoveToLocation(ExFishTag 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();

                if (!Core.Player.HasAura((int)AbilityAura.Stealth))
                {
                    tag.DoAbility(ExFishTag.Abilities.Stealth);
                }

                result = await Location.MoveToNoMount(UseMesh, tag.Radius, tag.Name, 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);
        }
Exemple #3
0
        public override async Task <bool> MoveFromLocation(ExFishTag tag)
        {
            tag.StatusText = "Moving from " + this;

            var result = true;

            if (ReturnToStealthLocation)
            {
                result &= await StealthLocation.MoveToNoMount(UseMesh, tag.Radius, "Stealth Location", tag.MovementStopCallback);
            }

#if RB_CN
            if (UnstealthAfter && Core.Player.HasAura((int)AbilityAura.Stealth))
            {
                result &= tag.DoAbility(Ability.Stealth);                 // TODO: move into abilities map?
            }
#else
            if (UnstealthAfter && Core.Player.HasAura((int)AbilityAura.Sneak))
            {
                result &= tag.DoAbility(Ability.Sneak); // TODO: move into abilities map?
            }
#endif

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

            var result = true;

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

            if (UnstealthAfter && Core.Player.HasAura((int)AbilityAura.Stealth))
            {
                result &= await tag.CastAura(Ability.Stealth);
            }

            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)
            {
                return(false);
            }

            var landed = MovementManager.IsDiving || await NewNewLandingTask();

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

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

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

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

            return(result);
        }