public override Activity ToSdkObject() { var activity = new WaitActivity(this.Name, this.WaitTimeInSeconds); SetProperties(activity); return(activity); }
protected override Activity CreateActivityInternal(IActivityCreationContext context, StimulusContext stimulusContext, GameEntity entity) { entity.ReplaceSleeping(30); var sleepActivity = new WaitActivity(context.ActionFactory, 30, "Sleep", entityArg => entity.hasSleeping); return(sleepActivity); }
protected virtual void Dispose(bool Disposing) { if (Disposing) { WaitSync.Dispose(); WaitActivity.Dispose(); WaitSched.Dispose(); } }
private async void Action_Clicked(object sender, EventArgs e) { switch (ota.Status) { case OTA.OTAStatus.ServerError: case OTA.OTAStatus.UpToDate: ota.updateURL = urlInput.Text; await ota.CheckUpdate(); break; case OTA.OTAStatus.UpdateAvailable: Wait = new WaitActivity(); DeviceDisplay.KeepScreenOn = true; bool r = false; await Navigation.PushModalAsync(Wait); try { BleDevice.UpdateConnectionInterval(ConnectionInterval.High); int MtuSize = await BleDevice.RequestMtuAsync(250); r = await ota.Update(Math.Max(23, MtuSize - 4)); } finally { await Navigation.PopModalAsync(); DeviceDisplay.KeepScreenOn = false; } if (r) { var adapter = CrossBluetoothLE.Current.Adapter; //adapter.DeviceConnectionLost //adapter.DeviceDisconnected -= Adapter_DeviceDisconnected; await adapter.DisconnectDeviceAsync(BleDevice); await DisplayAlert("Congratulations!", "FOTA successfully completed", "OK"); await Navigation.PopAsync(); } break; default: break; } }
public IGameAction GetAction(GameEntity entity) { // todo: remove this and use BlockedUntil. But for sure? Maybe this check is better? // now it causes problems when an animating actor is leaving sight (animation doesn't finish -> infinite loop) if (entity.view.Controller.Animator.IsAnimating) { return(null); } if (entity.hasPreparedAction) { IGameAction actionToReturn = entity.preparedAction.Action; entity.RemovePreparedAction(); return(actionToReturn); } if (!entity.hasActivity) { float score; Skill skill = _utilityAi.ResolveSkillWhenIdle(out score, entity); Activity newActivity; try { newActivity = skill.ActivityCreator.CreateActivity(_activityCreationContext, score, null, entity); } catch (Exception e) { Debug.LogError(e.Message + ", stack trace: " + e.StackTrace); newActivity = new WaitActivity(_actionFactory, 2, "Wait"); } entity.AddActivity(newActivity); newActivity.OnStart(entity); } IActivity activity = entity.activity.Activity; ActivityStep activityStep = activity.CheckAndResolveStep(entity); if (activityStep.State == ActivityState.FinishedSuccess || activityStep.State == ActivityState.FinishedFailure) { entity.RemoveActivity(); } IGameAction actionFromActivity = activityStep.GameAction; return(actionFromActivity); }
public IGameAction GetAction(GameEntity entity) { // todo: remove this and use BlockedUntil. But for sure? Maybe this check is better? // now it may cause problems when an animating actor is leaving sight (animation doesn't finish -> infinite loop) if (entity.view.Controller.Animator.IsAnimating) { return(null); } if (entity.hasPreparedAction) { IGameAction actionToReturn = entity.preparedAction.Action; entity.RemovePreparedAction(); return(actionToReturn); } (Skill skill, float score)newSkillAndScore = default; if (entity.hasActivity && entity.hasSkills && entity.hasStimuli) { List <Stimulus> stimuliReceived = entity.stimuli.Stimuli.ToList(); newSkillAndScore = _activityResolver.ResolveNewSkillIfApplicable(entity, stimuliReceived); } else if (!entity.hasActivity) { newSkillAndScore = _utilityAi.ResolveSkillWhenIdle(entity); } if (newSkillAndScore.skill != null) { Activity newActivity; try { newActivity = newSkillAndScore.skill.ActivityCreator.CreateActivity(_activityCreationContext, newSkillAndScore.score, null, entity); } catch (Exception e) { Debug.LogError(e.Message + ", stack trace: " + e.StackTrace); newActivity = new WaitActivity(_actionFactory, 2, "Wait"); } if (entity.hasActivity) { entity.activity.Activity.OnFailure(entity); } entity.ReplaceActivity(newActivity); newActivity.OnStart(entity); } IActivity activity = entity.activity.Activity; ActivityStep activityStep = activity.CheckAndResolveStep(entity); if (activityStep.State == ActivityState.FinishedSuccess || activityStep.State == ActivityState.FinishedFailure) { entity.RemoveActivity(); } IGameAction actionFromActivity = activityStep.GameAction; return(actionFromActivity); }