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