protected virtual void MetadataSelected(MenuSceneInfo sceneInfo, EncounterBasicStatus status, KeyValuePair <SaveType, EncounterMetadata> metadata) { if (status == null) { status = new EncounterBasicStatus(); } ImageHolder.BeginHoldingData(); ImageHolder.HoldImage(metadata.Value.Sprite); var encounter = EncounterReader.GetUserEncounter(sceneInfo.User, metadata.Value, status, metadata.Key); var encounterSceneInfo = new LoadingReaderSceneInfo(sceneInfo.User, sceneInfo.LoadingScreen, encounter); SceneStarter.StartScene(encounterSceneInfo); }
protected virtual MenuEncounter GetMenuEncounter( KeyValuePair <int, Dictionary <SaveType, EncounterMetadata> > metadataGroup, WaitableTask <Dictionary <int, EncounterEditLock> > locks, WaitableTask <Dictionary <int, EncounterBasicStatus> > statuses) { EncounterBasicStatus status = null; if (statuses.Result.Value?.ContainsKey(metadataGroup.Key) == true) { status = statuses.Result.Value[metadataGroup.Key]; } var menuEncounter = new MenuEncounter(metadataGroup.Value, status); if (!locks.Result.IsError() && locks.Result.Value?.ContainsKey(metadataGroup.Key) == true) { menuEncounter.Lock = locks.Result.Value[metadataGroup.Key]; } return(menuEncounter); }
public MenuEncounter(Dictionary <SaveType, EncounterMetadata> metadata, EncounterBasicStatus status) { Metadata = metadata; Status = status; }
protected virtual void MetadataSelected(MenuSceneInfo sceneInfo, EncounterBasicStatus status, TaskResult <KeyValuePair <SaveType, EncounterMetadata> > metadata) => MetadataSelected(sceneInfo, status, metadata.Value);
public WaitableTask <UserEncounter> GetUserEncounter(User user, EncounterMetadata metadata, EncounterBasicStatus basicStatus, SaveType saveType) { var encounterData = dataReader.GetEncounter(user, metadata, saveType); var detailedStatus = detailedStatusReader.GetDetailedStatus(user, metadata, basicStatus); var encounter = new WaitableTask <UserEncounter>(); void processResults() => ProcessResults(user, encounter, encounterData, detailedStatus); encounterData.AddOnCompletedListener((result) => processResults()); detailedStatus.AddOnCompletedListener((result) => processResults()); return(encounter); }