Example #1
0
        /// <summary>
        /// Move to another bot
        /// </summary>
        /// <param name="player">a player to move to</param>
        /// <param name="range">the closeness required</param>
        public static async Task <bool> MoveToPlayer(Message player, float range)
        {
            if (!ZetaDia.IsInGame || !player.IsInSameGame || !player.IsInSameWorld)
            {
                return(false);
            }

            if (player.Distance > range)
            {
                Log.Verbose("Moving to Player {0} CurrentDistance={1} DistanceRequired={2} ",
                            player.HeroAlias, player.Distance, range);

                await MoveTo(() => AutoFollow.GetUpdatedMessage(player), player.HeroAlias, range,
                             t =>
                {
                    if (!player.IsInSameWorld)
                    {
                        return(true);
                    }

                    if (t.Distance > Settings.Coordination.TeleportDistance && !RiftHelper.IsInGreaterRift)
                    {
                        return(true);
                    }

                    if (t.Distance < Settings.Coordination.CatchUpDistance && Targetting.RoutineWantsToAttackUnit())
                    {
                        return(true);
                    }

                    return(false);
                });

                return(true);
            }

            Log.Debug("Player {0} is close enough CurrentDistance={1} DistanceRequired={2} ",
                      player.HeroAlias, player.Distance, range);

            return(true);
        }
Example #2
0
        /// <summary>
        /// Move to another bot
        /// </summary>
        /// <param name="player">a player to move to</param>
        /// <param name="range">the closeness required</param>
        public static async Task <bool> MoveToPlayer(Message player, float range)
        {
            if (!ZetaDia.IsInGame || !player.IsInSameGame || !player.IsInSameWorld || player.IsInGreaterRift)
            {
                return(false);
            }

            if (player.Distance > range)
            {
                Log.Verbose("Moving to Player {0} CurrentDistance={1} DistanceRequired={2} ",
                            player.HeroName, player.Distance, range);

                await MoveTo(() => AutoFollow.GetUpdatedMessage(player), player.HeroName, range, t => !player.IsInSameWorld || t.Distance > Settings.Coordination.TeleportDistance);

                return(true);
            }

            Log.Debug("Player {0} is close enough CurrentDistance={1} DistanceRequired={2} ",
                      player.HeroName, player.Distance, range);

            return(true);
        }