/// <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); }
/// <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); }