Exemplo n.º 1
0
 private IEnumerator Start()
 {
     this.set_Validator(new global::h.N());
     if (SceneManager.GetActiveScene().name != Constants.Px())
     {
         EditDeckProvider provider = DataProvider.Get <EditDeckProvider>();
         if (provider.get_Mode() == DeckEditorModes.Quest || provider.get_Mode() == DeckEditorModes.Conquest || provider.get_Mode() == DeckEditorModes.Chaos)
         {
             Archetypes        archetypes = Finder.FindOrThrow <Archetypes>();
             AdventureProvider adventure  = AdventureProvider.Find();
             while (adventure.SelectedAdventure.get_DeckInfo() == null)
             {
                 yield return(null);
             }
             global::g.a a = new global::g.a(provider, archetypes, adventure.SelectedAdventure);
             this.subscriptionProvider.set_Data(a.get_Composition());
             global::d.M one  = Finder.FindOrThrow <AccountProvider>().get_Account().GetOne <global::d.M>();
             int         num  = (int)((ArenaTiers)9 - ((provider.get_Mode() == DeckEditorModes.Quest) ? one.get_PvERank() : one.get_PvPRank()));
             string      text = "rank=" + num + "\n";
             foreach (ArchetypeID key in adventure.SelectedAdventure.get_Collection().A)
             {
                 if (archetypes.get_All().ContainsKey(key))
                 {
                     text = text + archetypes.get_All()[key].GetOne <NameData>().get_Name() + "\r\n";
                 }
             }
             try
             {
                 File.WriteAllText((provider.get_Mode() == DeckEditorModes.Quest) ? "decks\\arena-solo.txt" : "decks\\arena.txt", text);
             }
             catch
             {
             }
             archetypes = null;
             adventure  = null;
             archetypes = null;
             adventure  = null;
         }
         provider = null;
         provider = null;
     }
     else
     {
         AsyncTournamentsProvider  asyncTournamentsProvider = AsyncTournamentsProvider.Find();
         AsyncTournamentDefinition selectedTournament       = asyncTournamentsProvider.get_SelectedTournament();
         if (selectedTournament != null && !selectedTournament.Run.AllowDeckSwitching)
         {
             Archetypes archetypes2 = Finder.FindOrThrow <Archetypes>();
             AsyncTournamentProgress tournamentProgress = asyncTournamentsProvider.GetTournamentProgress(selectedTournament.ID);
             if (tournamentProgress != null)
             {
                 SerializableDeck deck = tournamentProgress.Deck;
                 global::A.I      i    = new global::A.I(asyncTournamentsProvider, archetypes2, selectedTournament, deck);
                 this.subscriptionProvider.set_Data(i.get_Composition());
             }
         }
     }
     yield break;
     yield break;
 }
        protected override IEnumerator execute()
        {
            DeckEditScene    scene         = Finder.FindOrThrow <DeckEditScene>();
            EditDeckProvider sceneProvider = DataProvider.Get <EditDeckProvider>();
            CommandExecutor  executor      = Finder.FindOrThrow <CommandExecutor>();
            bool             flag          = true;
            LocalizedString  failure       = null;

            if (flag && scene.get_Tutorial() != null)
            {
                global::h.L request = new global::h.L();
                Coroutine   coroutine;
                scene.get_Tutorial().EndorseRequest(request, out coroutine);
                if (coroutine != null)
                {
                    yield return(coroutine);
                }
                flag    = !request.get_Denied();
                request = null;
            }
            if (flag)
            {
                if (scene.get_Validator().IsSaveValid(out failure))
                {
                    SaveDeckToServer save = new SaveDeckToServer(this.deckSave.editor.AsSerializableDeck());
                    yield return(executor.Execute(save));

                    if (save.get_Success())
                    {
                        DeckComponent deckComponent = Finder.FindOrThrow <Decks>().get_All()[save.get_SavedDeck().A];
                        if (!scene.get_Validator().DeckMeetsMinimumCount())
                        {
                            DataComposition dataComposition = global::h.o.Create(global::L.LT(Constants.FN()), global::L.LT(Constants.Fn(), new object[]
                            {
                                scene.get_Validator().DeckCountMinimum()
                            }), false, new string[]
                            {
                                Constants.FO()
                            });
                            dataComposition.Add <global::e.b>(new global::e.b(Constants.Fo()));
                            ShowDialog command = new ShowDialog(this.dialogPrefab, dataComposition);
                            yield return(executor.Execute(command));
                        }
                        this.Success = true;
                        this.deckSave.set_UnsavedChanges(false);
                        Archetypes archetypes = Finder.FindOrThrow <Archetypes>();
                        Pile       pile;
                        if (deckComponent != null && deckComponent.get_Piles().TryGetValue(Constants.K(), out pile))
                        {
                            string text = "";
                            foreach (KeyValuePair <ArchetypeID, int> keyValuePair2 in pile)
                            {
                                text = string.Concat(new object[]
                                {
                                    text,
                                    archetypes.get_All()[keyValuePair2.Key].GetOne <NameData>().get_Name(),
                                    " ",
                                    keyValuePair2.Value,
                                    "\r\n"
                                });
                            }
                            File.WriteAllText(Path.Combine("decks", deckComponent.get_Name() + ".txt"), text);
                        }
                        deckComponent = null;
                        pile          = null;
                        deckComponent = null;
                        pile          = null;
                    }
                    else
                    {
                        DataComposition dataComposition2 = global::h.o.Create(global::L.LT(Constants.FP()), global::L.LT(Constants.Fp()), false, new string[]
                        {
                            global::L.LT(Constants.FO())
                        });
                        dataComposition2.Add <global::e.b>(new global::e.b(Constants.Fo()));
                        ShowDialog command2 = new ShowDialog(this.dialogPrefab, dataComposition2);
                        yield return(executor.Execute(command2));

                        yield return(executor.Execute(new ChangeScene(sceneProvider.get_SceneToExitTo())));
                    }
                    save = null;
                }
            }
            else
            {
                this.Success = false;
                if (failure != null)
                {
                    yield return(executor.Execute(new FailFeedbackCommand(failure)));
                }
            }
            yield break;
            yield break;
        }