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