public override async Task <bool> StartTask() { Delay = Delay > 0 ? Delay : 2; if (await base.StartTask()) { return(true); } _interactTask = new InteractionCoroutine(ActorId, TimeSpan.FromSeconds(30), TimeSpan.FromSeconds(Delay), InteractAttempts, IgnoreSanityChecks, StartAnimation, EndAnimation, MarkerHash); return(false); }
public override async Task <bool> StartTask() { if (SceneSnoId != 0) { _task = new MoveToSceneCoroutine(QuestId, ZetaDia.Globals.WorldSnoId, SceneSnoId, Zerg); return(false); } if (!string.IsNullOrEmpty(SceneName)) { _task = new MoveToSceneCoroutine(QuestId, ZetaDia.Globals.WorldSnoId, SceneName, Zerg); return(false); } return(true); }
public override async Task <bool> StartTask() { if (StartReset) { Core.Scenes.Reset(); } var ignoreSceneNames = IgnoreScenes?.Select(s => s.Name).ToList(); var levelAreaIds = new HashSet <SNOLevelArea> { ZetaDia.CurrentLevelAreaSnoId }; _exploreTask = new ExplorationCoroutine(levelAreaIds, ignoreSceneNames, null, false, UseSceneRegions); return(false); }
public override async Task <bool> StartTask() { if (MarkerHash != 0) { if (MarkerType != default(WorldMarkerType)) { _task = new MoveToMapMarkerCoroutine(QuestId, ZetaDia.Globals.WorldSnoId, MarkerHash, MarkerType, Zerg); return(false); } _task = new MoveToMapMarkerCoroutine(QuestId, ZetaDia.Globals.WorldSnoId, MarkerHash, Zerg); return(false); } if (MarkerType != default(WorldMarkerType)) { _task = new MoveToMapMarkerCoroutine(QuestId, ZetaDia.Globals.WorldSnoId, MarkerType, Zerg); return(false); } return(true); }
public bool TrySetRelativeDestination(Vector3 relPos, int sceneId, string sceneName) { if (relPos == Vector3.Zero) { return(false); } if (sceneId > 0) { _movementTask = new MoveToScenePositionCoroutine(sceneId, relPos, !UseNavigation); return(true); } if (string.IsNullOrEmpty(sceneName)) { return(false); } _movementTask = new MoveToScenePositionCoroutine(sceneName, relPos, !UseNavigation); return(true); }
private async Task <bool> InProgress() { _currentStep = Bounty.Coroutines.FirstOrDefault(b => !b.IsDone); if (_currentStep == null) { //TODO if boss bounty and completed run this //new MoveToObjectCoroutine(347558,AdvDia.CurrentWorldSnoId,433670), //new InteractWithGizmoCoroutine(347558,AdvDia.CurrentWorldSnoId,433670,0,5), _lastGenericBountySubroutine = null; State = BountyData.IsAvailable ? States.Failed : States.Completed; return(false); } //if (step is EnterLevelAreaCoroutine) //{ // var enterLevelAreaStep = step as EnterLevelAreaCoroutine; // if (enterLevelAreaStep.SourceWorldId != AdvDia.CurrentWorldSnoId || // enterLevelAreaStep.DestinationWorldId != AdvDia.CurrentWorldSnoId) // { // Bounty.Reset(); // Reset(); // base.State = BountyCoroutine.States.TakingWaypoint; // return false; // } //} _lastGenericBountySubroutine = _currentStep; BotMain.SetCurrentStatusTextProvider(() => { if (_lastGenericBountySubroutine != null) { return(_lastGenericBountySubroutine.StatusText); } return(string.Empty); }); await _currentStep.GetCoroutine(); return(false); }
public override async Task <bool> StartTask() { _task = new MoveThroughDeathGates(QuestId, ZetaDia.Globals.WorldSnoId, Count); return(false); }
public override async Task <bool> StartTask() { _task = new ClearAreaForNSecondsCoroutine(QuestId, Seconds, ActorId, MarkerHash, (int)Radius); return(false); }
public override async Task <bool> StartTask() { _task = new ClearLevelAreaCoroutine(QuestId, true); return(false); }
private void CreateClearAreaTask() { _clearAreaTask = new ClearAreaForNSecondsCoroutine(QuestId, 5, 0, 0, 10); }
/// <summary> /// /// </summary> /// <param name="callNode">AST node of subroutine call</param> /// <param name="requireReturn">Requires subroutine return value</param> private void CheckSubCall(ASTCallStatementNode callNode, bool requireReturn) { //check define ISubroutine sub = (ISubroutine)_symbolTable.FindSymbol(callNode.ProcedureName); if (sub == null) { _messages.Add(new MessageRecord( MsgCode.UndefinedSub, callNode.SourcePath, callNode.StartLine, callNode.StartPos, callNode.ProcedureName )); } else { //check return value if (requireReturn) { if (!sub.Return) { _messages.Add(new MessageRecord( MsgCode.ReturnNotFound, callNode.SourcePath, callNode.StartLine, callNode.StartPos, callNode.ProcedureName )); } } //check arguments count int argCnt = sub.ArgumentsCount; if (callNode.Arguments != null) { if (argCnt > callNode.Arguments.Children.Count) { _messages.Add(new MessageRecord( MsgCode.TooFewArguments, callNode.SourcePath, callNode.StartLine, callNode.StartPos, argCnt, callNode.Arguments.Children.Count )); } if (argCnt < callNode.Arguments.Children.Count) { _messages.Add(new MessageRecord( MsgCode.TooManyArguments, callNode.SourcePath, callNode.StartLine, callNode.StartPos, argCnt, callNode.Arguments.Children.Count )); } //check arguments foreach (var a in callNode.Arguments.Expressions) { CheckExpression(a); } } else //no arguments { if (argCnt != 0) { _messages.Add(new MessageRecord( MsgCode.TooFewArguments, callNode.SourcePath, callNode.StartLine, callNode.StartPos, argCnt, 0 )); } } } }