示例#1
0
        protected virtual void ProcessResults(WaitableTask actionResult, TaskResult <string> serverResult, EncounterMetadata metadata)
        {
            if (serverResult.IsError())
            {
                actionResult.SetError(serverResult.Exception);
                return;
            }

            Debug.Log("Returned text from PHP: \n" + serverResult.Value);
            if (string.IsNullOrWhiteSpace(serverResult.Value))
            {
                actionResult.SetError(new Exception("No text returned from the server."));
                return;
            }

            var splitStr = serverResult.Value.Split('|');

            if (int.TryParse(splitStr[0], out var recordNumber))
            {
                metadata.RecordNumber = recordNumber;
            }

            actionResult.SetCompleted();
        }
        protected virtual void ProcessResults(User user, WaitableTask <IMenuEncountersInfo> result, TaskResult <List <MenuEncounter> > menuEncounters)
        {
            if (menuEncounters.Value == null)
            {
                result.SetError(null);
                return;
            }

            var menuEncountersInfo = new MenuEncountersInfo(user);

            foreach (var menuEncounter in menuEncounters.Value)
            {
                menuEncountersInfo.AddEncounter(menuEncounter);
            }

            result.SetResult(menuEncountersInfo);
        }
示例#3
0
 protected virtual void EncounterUnlocked(TaskResult result)
 {
 }
 protected virtual void OnColorThemeSelected(TaskResult<CharacterColorTheme> colorThemeResult)
 {
     if (colorThemeResult.HasValue())
         SetIcon(colorThemeResult.Value);
 }
        private void EncounterRetrieved(TaskResult <UserEncounter> encounter)
        {
            var loadedInfo = new ReaderSceneInfo(this);

            Result.SetResult(loadedInfo);
        }
 private void ProcessResults(WaitableTask <EncounterNonImageContent> result, TaskResult <string> serverResult)
 {
     result.SetResult(parser.Deserialize(serverResult.Value));
 }
示例#7
0
        private void ProcessResults(WaitableTask <Dictionary <int, EncounterBasicStatus> > result, TaskResult <string[]> fileTexts)
        {
            if (!fileTexts.HasValue())
            {
                result.SetResult(new Dictionary <int, EncounterBasicStatus>());
                return;
            }

            var statuses = new Dictionary <int, EncounterBasicStatus>();

            foreach (var fileText in fileTexts.Value)
            {
                var metadata = parser.Deserialize(fileText);
                if (statuses.ContainsKey(metadata.Key))
                {
                    Debug.LogError($"Duplicate saved status for key {metadata.Key}");
                    continue;
                }
                if (metadata.Value != null)
                {
                    statuses.Add(metadata.Key, metadata.Value);
                }
            }

            result.SetResult(statuses);
        }
        protected virtual void SetUserEncounter(WaitableTask <UserEncounter> result, User user, TaskResult <IMenuEncountersInfo> encounters, int recordNumber)
        {
            if (encounters.IsError())
            {
                result.SetError(encounters.Exception);
                return;
            }

            foreach (var encounter in encounters.Value.GetEncounters())
            {
                var typedMetadata = encounter.GetLatestTypedMetada();
                if (typedMetadata.Value.RecordNumber != recordNumber)
                {
                    continue;
                }

                ImageHolder.HoldImage(typedMetadata.Value.Sprite);
                var userEncounter = EncounterReader.GetUserEncounter(user, typedMetadata.Value, encounter.Status, typedMetadata.Key);
                userEncounter.CopyValueWhenCompleted(result);
                return;
            }

            result.SetError(new Exception("Could not find an encounter with the given record number."));
        }
 protected virtual void MetadataSelected(MenuSceneInfo sceneInfo, EncounterBasicStatus status, TaskResult <KeyValuePair <SaveType, EncounterMetadata> > metadata)
 => MetadataSelected(sceneInfo, status, metadata.Value);