Example #1
0
        public static int RandomInt(int min, int max, State2 state = null)
        {
            if (state == null && App.State != null)
            {
                state = App.State.Ext;
            }
            if (state == null)
            {
                return(UnityEngine.Random.Range(min, max));
            }
            if (state.RandomValues.Count == 0)
            {
                state.RandomizeNumbers();
            }
            while (state.RandomValues[0] > 1f)
            {
                state.RandomValues[0] = state.RandomValues[0] / 10f;
            }
            int num  = max - min;
            int num2 = (int)((float)num * state.RandomValues[0]);

            state.RandomValues.RemoveAt(0);
            state.RandomValues.Add(UnityEngine.Random.Range(0f, 0.9999f));
            return(num2 + min);
        }
        public LuckyType Draw()
        {
            if (App.State == null || App.State.PremiumBoni.LuckyDraws < 1)
            {
                return(LuckyType.None);
            }
            List <LuckyType> list = new List <LuckyType>();

            this.AddDraw(ref list, LuckyType.GP2, 40);
            this.AddDraw(ref list, LuckyType.GP5, 10);
            this.AddDraw(ref list, LuckyType.GP10, 5);
            this.AddDraw(ref list, LuckyType.GP25, 2);
            this.AddDraw(ref list, LuckyType.GP50, 1);
            this.AddDraw(ref list, LuckyType.GP100, 1);
            this.AddDraw(ref list, LuckyType.Liquid1, 8);
            this.AddDraw(ref list, LuckyType.Liquid2, 4);
            this.AddDraw(ref list, LuckyType.Chakra1, 8);
            this.AddDraw(ref list, LuckyType.Chakra2, 4);
            this.AddDraw(ref list, LuckyType.PetToken, 2);
            this.AddDraw(ref list, LuckyType.LuckyDraw, 10);
            this.AddDraw(ref list, LuckyType.USS, 6);
            this.AddDraw(ref list, LuckyType.CrystalSlot, 1);
            this.AddDraw(ref list, LuckyType.Dall, 4);
            this.AddDraw(ref list, LuckyType.DPhysical, 15);
            this.AddDraw(ref list, LuckyType.DMystic, 15);
            this.AddDraw(ref list, LuckyType.DCreating, 15);
            this.AddDraw(ref list, LuckyType.DBattle, 15);
            this.AddDraw(ref list, LuckyType.DDiv, 15);
            this.AddDraw(ref list, LuckyType.Div1, 50);
            this.AddDraw(ref list, LuckyType.Div5, 15);
            this.AddDraw(ref list, LuckyType.Growth1, 55);
            this.AddDraw(ref list, LuckyType.Growth2, 25);
            this.AddDraw(ref list, LuckyType.Growth5, 5);
            this.AddDraw(ref list, LuckyType.MightyFood1, 25);
            this.AddDraw(ref list, LuckyType.MightyFood2, 10);
            this.AddDraw(ref list, LuckyType.MightyFood5, 5);
            this.AddDraw(ref list, LuckyType.GP1, 130);
            LuckyType drawing = LuckyType.GP5;

            if (this.LastLuckyDraw != LuckyType.None)
            {
                drawing = list[State2.RandomInt(0, list.Count, App.State.Ext)];
            }
            if ((drawing == LuckyType.CrystalSlot && App.State.PremiumBoni.MaxCrystals == 6) || (drawing == LuckyType.CrystalSlot && !App.State.IsCrystalFactoryAvailable))
            {
                drawing = LuckyType.GP10;
            }
            Premium expr_20D = App.State.PremiumBoni;

            expr_20D.LuckyDraws = --expr_20D.LuckyDraws;
            this.LastLuckyDraw  = drawing;
            LuckyDrawCount luckyDrawCount = this.DrawCounts.FirstOrDefault((LuckyDrawCount x) => x.Type == drawing);

            if (luckyDrawCount == null)
            {
                luckyDrawCount      = new LuckyDrawCount();
                luckyDrawCount.Type = drawing;
                this.DrawCounts.Add(luckyDrawCount);
            }
            luckyDrawCount.Count++;
            return(drawing);
        }
Example #3
0
        internal static State2 Deserialize(string base64String)
        {
            if (string.IsNullOrEmpty(base64String))
            {
                Log.Error("State2.FromString with empty value!");
                return(new State2());
            }
            string[] parts           = Conv.StringPartsFromBase64(base64String, "State2");
            State2   state           = new State2();
            string   stringFromParts = Conv.getStringFromParts(parts, "b");

            string[] array = stringFromParts.Split(new char[]
            {
                '&'
            });
            string[] array2 = array;
            for (int i = 0; i < array2.Length; i++)
            {
                string text = array2[i];
                if (!string.IsNullOrEmpty(text))
                {
                    state.AllPets.Add(Pet.Deserialize(text));
                }
            }
            Pet.CheckIfAllAdded(ref state.AllPets);
            state.PunyFood      = Conv.getCDoubleFromParts(parts, "c", false);
            state.StrongFood    = Conv.getCDoubleFromParts(parts, "d", false);
            state.MightyFood    = Conv.getCDoubleFromParts(parts, "e", false);
            state.PetIdInAvatar = Conv.getIntFromParts(parts, "f");
            stringFromParts     = Conv.getStringFromParts(parts, "g");
            array = stringFromParts.Split(new char[]
            {
                '&'
            });
            string[] array3 = array;
            for (int j = 0; j < array3.Length; j++)
            {
                string value = array3[j];
                if (!string.IsNullOrEmpty(value))
                {
                    state.RandomValues.Add(Conv.StringToFloat(value));
                }
            }
            if (state.RandomValues == null || state.RandomValues.Count == 0)
            {
                state.RandomizeNumbers();
            }
            state.CurrentRandomNumber = Conv.getIntFromParts(parts, "h");
            state.FacebookClicked     = Conv.getStringFromParts(parts, "i").ToLower().Equals("true");
            state.TwitterClicked      = Conv.getStringFromParts(parts, "j").ToLower().Equals("true");
            state.Lucky = LuckyDraw.Deserialize(Conv.getStringFromParts(parts, "k"));
            state.ImportedSaveFromKongToSteam = Conv.getStringFromParts(parts, "l").ToLower().Equals("true");
            state.SteamCurrency   = (Currency)Conv.getIntFromParts(parts, "m");
            state.SteamCountry    = Conv.getStringFromParts(parts, "n");
            state.KongConvertId   = Conv.getIntFromParts(parts, "o");
            state.TimeSinceSteam  = Conv.getLongFromParts(parts, "p");
            state.AdPoints        = Conv.getCDoubleFromParts(parts, "q", false);
            state.AdsWatched      = Conv.getIntFromParts(parts, "r");
            state.TotalAdsWatched = Conv.getIntFromParts(parts, "s");
            state.AfkGame         = AfkyGame.FromString(Conv.getStringFromParts(parts, "t"));
            state.RateDialogShown = Conv.getStringFromParts(parts, "u").ToLower().Equals("true");
            state.Chocolate       = Conv.getCDoubleFromParts(parts, "v", false);
            state.Factory         = CrystalFactory.Deserialize(Conv.getStringFromParts(parts, "w"));
            stringFromParts       = Conv.getStringFromParts(parts, "x");
            array = stringFromParts.Split(new char[]
            {
                '&'
            });
            string[] array4 = array;
            for (int k = 0; k < array4.Length; k++)
            {
                string text2 = array4[k];
                if (!string.IsNullOrEmpty(text2))
                {
                    state.AllCampaigns.Add(PetCampaign.Deserialize(text2));
                }
            }
            if (state.AllCampaigns.Count == 0)
            {
                state.AllCampaigns = PetCampaign.Initial;
            }
            state.PetStones      = Conv.getCDoubleFromParts(parts, "y", false);
            state.PetStonesSpent = Conv.getCDoubleFromParts(parts, "z", false);
            if (state.RandomValues == null || state.RandomValues.Count == 0)
            {
                state.RandomizeNumbers();
            }
            if (state.TimeSinceSteam < 5184000000L)
            {
                state.TimeSinceSteam = 5184000000L;
            }
            state.PetPowerMultiGods      = Conv.getCDoubleFromParts(parts, "A", false);
            state.PetPowerMultiCampaigns = Conv.getCDoubleFromParts(parts, "B", false);
            return(state);
        }
        internal static void Rebirth()
        {
            Monument monument3 = App.State.AllMonuments.FirstOrDefault((Monument x) => x.TypeEnum == Monument.MonumentType.black_hole);

            if (monument3 != null && monument3.Upgrade.Level > 0)
            {
                int num = monument3.Upgrade.Level.ToInt();
                if (num > 50)
                {
                    num = 50;
                }
                App.State.PremiumBoni.GodPower             += num;
                App.State.Statistic.GPFromBlackHoleUpgrade += num;
                GuiBase.ShowBigMessage("You received " + num + " God Power from your black hole upgrades!");
            }
            if (App.State.Statistic.HasStartedNoRbChallenge)
            {
                GuiBase.ShowToast("Because of your rebirth, you lost your No Rebirth Challenge!");
                App.State.Statistic.HasStartedNoRbChallenge = false;
            }
            App.State.Statistic.Last5RebirthTimes.Add(App.State.Statistic.TimePlayedSinceRebirth);
            if (App.State.Statistic.Last5RebirthTimes.Count > 5)
            {
                App.State.Statistic.Last5RebirthTimes.RemoveAt(0);
            }
            bool    shouldSubmitScore = App.State.ShouldSubmitScore;
            CDouble cDouble           = App.State.Statistic.ApplyTimeMulti(App.State.Multiplier.RebirthMulti * App.State.Statistic.StatisticRebirthMultiplier);

            if (App.State.Statistic.AvgTimeLastRebirths() < 900 || App.State.Statistic.RandomDividerLastRebirth < 1)
            {
                App.State.Statistic.CalcuRandomDivider();
            }
            else
            {
                App.State.Statistic.RandomDividerLastRebirth = 1;
            }
            bool flag = false;

            foreach (Creation current in App.State.AllCreations)
            {
                if (current.GodToDefeat.IsDefeated)
                {
                    App.State.Statistic.GodDefeatedBeforeRebirth = current.GodToDefeat.Name;
                    if (current.TypeEnum == Creation.CreationType.Universe)
                    {
                        flag = true;
                    }
                }
            }
            if (flag)
            {
                App.State.Statistic.GodDefeatedBeforeRebirth = "P. Baal v " + (App.State.PrinnyBaal.Level - 1);
            }
            string  base64String = App.State.Statistic.Serialize();
            CDouble cDouble2     = App.State.Ext.AfkGame.ExpMulti;
            CDouble cDouble3     = App.State.Ext.AfkGame.Power.Level / 10000000;

            if (cDouble3 > 1)
            {
                cDouble3 = 1;
            }
            cDouble2 += cDouble3;
            CDouble                 achievementMultiPhysical = App.State.Multiplier.MultiBoniPhysicalRebirth * cDouble;
            CDouble                 achievementMultiMystic   = App.State.Multiplier.MultiBoniMysticRebirth * cDouble;
            CDouble                 achievementMultiBattle   = App.State.Multiplier.MultiBoniBattleRebirth * cDouble;
            CDouble                 achievementMultiCreating = App.State.Multiplier.MultiBoniCreatingRebirth * cDouble;
            int                     maxShadowClonesRebirth   = App.State.Clones.MaxShadowClonesRebirth;
            int                     absoluteMaximum          = App.State.Clones.AbsoluteMaximum;
            Premium                 premiumBoni  = App.State.PremiumBoni;
            AvatarOptions           avatar       = App.State.Avatar;
            List <Monument>         allMonuments = App.State.AllMonuments;
            List <GeneratorUpgrade> upgrades     = App.State.Generator.Upgrades;
            PlayerKredProblems      kredProblems = App.State.KredProblems;
            Planet                  homePlanet   = App.State.HomePlanet;
            long                    creatingSpeedBoniDuration = App.State.CreatingSpeedBoniDuration;
            string                  avatarName          = App.State.AvatarName;
            List <float>            randomValues        = App.State.Ext.RandomValues;
            int                     currentRandomNumber = App.State.Ext.CurrentRandomNumber;
            Critical                crits = App.State.Crits;

            crits.Eyes         = crits.Eyes * App.State.PremiumBoni.TbsProgressAfterRebirth / 100;
            crits.Feet         = crits.Feet * App.State.PremiumBoni.TbsProgressAfterRebirth / 100;
            crits.Mouth        = crits.Mouth * App.State.PremiumBoni.TbsProgressAfterRebirth / 100;
            crits.Tail         = crits.Tail * App.State.PremiumBoni.TbsProgressAfterRebirth / 100;
            crits.Wings        = crits.Wings * App.State.PremiumBoni.TbsProgressAfterRebirth / 100;
            crits.EyesNoMirror = crits.EyesNoMirror * App.State.PremiumBoni.TbsProgressAfterRebirth / 100;
            List <Creation> allCreations        = App.State.AllCreations;
            Settings        gameSettings        = App.State.GameSettings;
            string          kongUserId          = App.State.KongUserId;
            string          kongUserName        = App.State.KongUserName;
            string          steamId             = App.State.SteamId;
            string          steamName           = App.State.SteamName;
            string          androidId           = App.State.AndroidId;
            string          androidName         = App.State.AndroidName;
            bool            isSocialDialogShown = App.State.IsSocialDialogShown;
            List <Skill>    allSkills           = App.State.AllSkills;
            List <Pet>      allPets             = App.State.Ext.AllPets;

            foreach (Pet current2 in allPets)
            {
                current2.FeedTimer        = 43200000L;
                current2.Exp              = 0;
                current2.Level            = 1;
                current2.ShadowCloneCount = 0;
                current2.CloneBattle      = 1;
                current2.CloneMystic      = 1;
                current2.ClonePhysical    = 1;
                current2.CalculateValues();
            }
            State2       ext                          = App.State.Ext;
            List <Might> allMights                    = App.State.AllMights;
            long         timeStampGameClosed          = App.State.TimeStampGameClosed;
            long         timeStampGameClosedOfflineMS = App.State.TimeStampGameClosedOfflineMS;
            CDouble      cDouble4                     = 0;

            foreach (Crystal current3 in App.State.Ext.Factory.EquippedCrystals)
            {
                CDouble cDouble5 = current3.Level;
                if (current3.Type == ModuleType.Ultimate)
                {
                    cDouble5 *= 2;
                }
                if (current3.Type == ModuleType.God)
                {
                    cDouble5 *= 3;
                }
                cDouble4 += cDouble5;
            }
            App.State = new GameState(true, App.State.Statistic.AchievementChallengesFinished.ToInt());
            App.State.GameSettings.AutofillDefenders = false;
            App.State.TimeStampGameClosed            = timeStampGameClosed;
            App.State.TimeStampGameClosedOfflineMS   = timeStampGameClosedOfflineMS;
            App.State.Ext.AfkGame.InitExpCost();
            App.State.Ext.SteamCurrency               = ext.SteamCurrency;
            App.State.Ext.SteamCountry                = ext.SteamCountry;
            App.State.Ext.TimeSinceSteam              = ext.TimeSinceSteam;
            App.State.Ext.AdPoints                    = ext.AdPoints;
            App.State.Ext.AdsWatched                  = ext.AdsWatched;
            App.State.Ext.TotalAdsWatched             = ext.TotalAdsWatched;
            App.State.Ext.ImportedSaveFromKongToSteam = ext.ImportedSaveFromKongToSteam;
            App.State.Ext.KongConvertId               = ext.KongConvertId;
            App.State.Ext.TwitterClicked              = ext.TwitterClicked;
            App.State.Ext.FacebookClicked             = ext.FacebookClicked;
            App.State.Ext.PetIdInAvatar               = ext.PetIdInAvatar;
            App.State.Ext.Lucky            = ext.Lucky;
            App.State.Ext.RateDialogShown  = ext.RateDialogShown;
            App.State.Ext.PetStonesSpent   = ext.PetStonesSpent;
            App.State.Ext.AfkGame.ExpMulti = cDouble2;
            App.State.KongUserId           = kongUserId;
            App.State.KongUserName         = kongUserName;
            App.State.SteamId             = steamId;
            App.State.SteamName           = steamName;
            App.State.AndroidId           = androidId;
            App.State.AndroidName         = androidName;
            App.State.IsTutorialShown     = true;
            App.State.IsGuestMsgShown     = true;
            App.State.IsSocialDialogShown = isSocialDialogShown;
            App.State.Multiplier.AchievementMultiPhysical = achievementMultiPhysical;
            App.State.Multiplier.AchievementMultiMystic   = achievementMultiMystic;
            App.State.Multiplier.AchievementMultiBattle   = achievementMultiBattle;
            App.State.Multiplier.AchievementMultiCreating = achievementMultiCreating;
            App.State.Clones.MaxShadowClones         = maxShadowClonesRebirth;
            App.State.Clones.AbsoluteMaximum         = absoluteMaximum;
            App.State.Multiplier.GodMultiFromRebirth = cDouble;
            App.State.Statistic = Statistic.FromString(base64String);
            Statistic expr_981 = App.State.Statistic;

            expr_981.TotalRebirths = ++expr_981.TotalRebirths;
            App.State.Statistic.TimePlayedSinceRebirth = 0L;
            App.State.Statistic.BlackHoleGPTimer       = 0;
            App.State.Ext.AfkGame.Exp = App.State.Statistic.TotalRebirths * 30 * App.State.Ext.AfkGame.ExpMulti;
            App.State.AddMultisFromGod();
            App.State.KredProblems = kredProblems;
            App.State.Crits        = crits;
            App.State.CreatingSpeedBoniDuration = creatingSpeedBoniDuration;
            int num2 = App.State.Statistic.TotalShadowClonesCreated.ToInt() / 1000;

            if (num2 > 950)
            {
                num2 = 950;
            }
            App.State.CloneAttackDivider = 1000 - num2;
            int num3 = App.State.Statistic.TotalShadowClonesDied.ToInt() / 500;

            if (num3 > 950)
            {
                num3 = 950;
            }
            App.State.CloneDefenseDivider = 1000 - num3;
            App.State.CloneHealthDivider  = 1000 - num3;
            App.State.InitAchievementNames();
            App.State.PremiumBoni = premiumBoni;
            App.State.PremiumBoni.ChakraPillV2InUse    = false;
            App.State.PremiumBoni.GodlyLiquidV2InUse   = false;
            App.State.PremiumBoni.TotalMightIsUnlocked = false;
            App.State.PremiumBoni.CrystalGPTimeCurrent = 0;
            App.State.PremiumBoni.CrystalPower        += cDouble4;
            App.State.ShouldSubmitScore             = shouldSubmitScore;
            App.State.GameSettings                  = gameSettings;
            App.State.GameSettings.AutoBuyCreations = false;
            App.State.Avatar                  = avatar;
            App.State.Ext.RandomValues        = randomValues;
            App.State.Ext.CurrentRandomNumber = currentRandomNumber;
            using (List <Creation> .Enumerator enumerator4 = App.State.AllCreations.GetEnumerator())
            {
                while (enumerator4.MoveNext())
                {
                    Creation creation  = enumerator4.Current;
                    Creation creation3 = allCreations.FirstOrDefault((Creation x) => x.TypeEnum == creation.TypeEnum);
                    if (creation3 != null)
                    {
                        creation.GodToDefeat.IsDefeatedForFirstTime = creation3.GodToDefeat.IsDefeatedForFirstTime;
                        creation.GodToDefeat.IsDefeatedPetChallenge = creation3.GodToDefeat.IsDefeatedPetChallenge;
                        creation.NextAtCount = creation3.NextAtCount;
                        creation.AutoBuy     = creation3.AutoBuy;
                    }
                }
            }
            using (List <Skill> .Enumerator enumerator5 = App.State.AllSkills.GetEnumerator())
            {
                while (enumerator5.MoveNext())
                {
                    Skill element = enumerator5.Current;
                    Skill skill   = allSkills.FirstOrDefault((Skill x) => x.EnumValue == element.EnumValue);
                    if (skill != null)
                    {
                        element.Extension.KeyPress   = skill.Extension.KeyPress;
                        element.Extension.UsageCount = skill.Extension.UsageCount;
                    }
                }
            }
            using (List <Monument> .Enumerator enumerator6 = App.State.AllMonuments.GetEnumerator())
            {
                while (enumerator6.MoveNext())
                {
                    Monument monument  = enumerator6.Current;
                    Monument monument2 = allMonuments.FirstOrDefault((Monument x) => x.TypeEnum == monument.TypeEnum);
                    if (monument2 != null)
                    {
                        monument.StopAtString         = monument2.StopAtString;
                        monument.Upgrade.StopAtString = monument2.Upgrade.StopAtString;
                    }
                }
            }
            using (List <GeneratorUpgrade> .Enumerator enumerator7 = App.State.Generator.Upgrades.GetEnumerator())
            {
                while (enumerator7.MoveNext())
                {
                    GeneratorUpgrade divGenUpgrade    = enumerator7.Current;
                    GeneratorUpgrade generatorUpgrade = upgrades.FirstOrDefault((GeneratorUpgrade x) => x.type == divGenUpgrade.type);
                    if (generatorUpgrade != null)
                    {
                        divGenUpgrade.StopAt = generatorUpgrade.StopAt;
                    }
                }
            }
            using (List <Might> .Enumerator enumerator8 = App.State.AllMights.GetEnumerator())
            {
                while (enumerator8.MoveNext())
                {
                    Might might  = enumerator8.Current;
                    Might might2 = allMights.FirstOrDefault((Might x) => x.TypeEnum == might.TypeEnum);
                    if (might2 != null)
                    {
                        might.NextAt = might2.NextAt;
                    }
                }
            }
            App.State.Ext.PetPowerMultiCampaigns = ext.PetPowerMultiCampaigns;
            App.State.Ext.PetPowerMultiGods      = ext.PetPowerMultiGods;
            App.State.Ext.PetStones    = ext.PetStones;
            App.State.Ext.AllCampaigns = ext.AllCampaigns;
            foreach (PetCampaign current4 in App.State.Ext.AllCampaigns)
            {
                current4.Cancel();
            }
            App.State.AvatarName                           = avatarName;
            App.State.HomePlanet.IsCreated                 = homePlanet.IsCreated;
            App.State.HomePlanet.UpgradeLevel              = homePlanet.UpgradeLevel;
            App.State.HomePlanet.UltimateBeings            = UltimateBeing.Initial;
            App.State.HomePlanet.UltimateBeingsV2          = UltimateBeingV2.Initial;
            App.State.HomePlanet.UpgradeLevelArtyChallenge = homePlanet.UpgradeLevelArtyChallenge;
            if (App.State.Statistic.UltimateBaalChallengesFinished > 0 || App.State.Statistic.ArtyChallengesFinished > 0)
            {
                App.State.HomePlanet.UltimateBeingsV2[0].IsAvailable   = true;
                App.State.HomePlanet.UltimateBeingsV2[0].TimesDefeated = homePlanet.UltimateBeingsV2[0].TimesDefeated;
                App.State.HomePlanet.UltimateBeingsV2[1].TimesDefeated = homePlanet.UltimateBeingsV2[1].TimesDefeated;
                App.State.HomePlanet.UltimateBeingsV2[2].TimesDefeated = homePlanet.UltimateBeingsV2[2].TimesDefeated;
                App.State.HomePlanet.UltimateBeingsV2[3].TimesDefeated = homePlanet.UltimateBeingsV2[3].TimesDefeated;
                App.State.HomePlanet.UltimateBeingsV2[4].TimesDefeated = homePlanet.UltimateBeingsV2[4].TimesDefeated;
            }
            App.State.HomePlanet.InitUBMultipliers();
            App.State.HomePlanet.TotalGainedGodPower = homePlanet.TotalGainedGodPower;
            using (List <UltimateBeing> .Enumerator enumerator10 = App.State.HomePlanet.UltimateBeings.GetEnumerator())
            {
                while (enumerator10.MoveNext())
                {
                    UltimateBeing being         = enumerator10.Current;
                    UltimateBeing ultimateBeing = homePlanet.UltimateBeings.FirstOrDefault((UltimateBeing x) => x.Tier == being.Tier);
                    being.IsAvailable = ultimateBeing.IsAvailable;
                    being.ComeBack();
                    being.HPPercent = 0.0;
                }
            }
            App.State.GameSettings.AutoBuyCreations = false;
            App.State.GameSettings.AutoBuyCreationsForMonumentsBeforeRebirth = App.State.GameSettings.AutoBuyCreationsForMonuments;
            App.State.GameSettings.AutoBuyCreationsForMonuments = false;
            foreach (UltimateBeingV2 current5 in App.State.HomePlanet.UltimateBeingsV2)
            {
                current5.IsDefeated = false;
            }
            App.State.Ext.AllPets = allPets;
            if (App.State.PremiumBoni.PetFoodAfterRebirth)
            {
                App.State.Ext.PunyFood   = ext.PunyFood;
                App.State.Ext.MightyFood = ext.MightyFood;
                App.State.Ext.StrongFood = ext.StrongFood;
            }
            App.State.Ext.Chocolate = ext.Chocolate;
            App.State.Statistic.CalculateTotalPetGrowth(App.State.Ext.AllPets);
            App.SaveGameState();
            Creation creation2 = App.State.AllCreations.FirstOrDefault((Creation x) => x.TypeEnum == Creation.CreationType.Shadow_clone);

            App.State.GameSettings.LastCreation = creation2;
            if (creation2 != null)
            {
                creation2.IsActive = true;
            }
            if (App.State.Statistic.HasStartedUltimateBaalChallenge && App.State.Statistic.CountRebirthsInUBC)
            {
                Statistic expr_133F = App.State.Statistic;
                expr_133F.RebirthsAfterUBC = ++expr_133F.RebirthsAfterUBC;
            }
            if (App.State.Statistic.HasStartedArtyChallenge)
            {
                Statistic expr_136D = App.State.Statistic;
                expr_136D.RebirthsAfterUAC = ++expr_136D.RebirthsAfterUAC;
                if (App.State.Statistic.RebirthsAfterUAC > 5)
                {
                    App.State.Statistic.HasStartedArtyChallenge = false;
                    App.State.Statistic.RebirthsAfterUAC        = 0;
                    App.State.Statistic.TimeAfterUACStarted     = 0;
                    App.State.HomePlanet.IsCreated = true;
                    if (App.State.HomePlanet.UpgradeLevelArtyChallenge > App.State.HomePlanet.UpgradeLevel)
                    {
                        App.State.HomePlanet.UpgradeLevel = App.State.HomePlanet.UpgradeLevelArtyChallenge;
                    }
                    if (App.State.Statistic.UniverseChallengesFinished > 0 && App.State.HomePlanet.UpgradeLevel < App.State.Statistic.UniverseChallengesFinished + 5)
                    {
                        App.State.HomePlanet.UpgradeLevel = App.State.Statistic.UniverseChallengesFinished + 5;
                    }
                    App.State.HomePlanet.UpgradeLevelArtyChallenge = 0;
                    foreach (UltimateBeing current6 in App.State.HomePlanet.UltimateBeings)
                    {
                        if (current6.Tier <= App.State.HomePlanet.UpgradeLevel)
                        {
                            current6.IsAvailable = true;
                        }
                    }
                    Premium premiumBoni2 = App.State.PremiumBoni;
                    App.State.PremiumBoni = Premium.FromString(App.State.Statistic.PremiumStatsBeforeUBCChallenge);
                    App.State.PremiumBoni.AddPremiumAfterChallenge(premiumBoni2);
                    App.State.Statistic.PremiumStatsBeforeUBCChallenge = string.Empty;
                    App.State.Statistic.HighestGodInUAC = 0;
                    App.State.Clones.AbsoluteMaximum    = App.State.Statistic.AbsoluteMaxClonesBeforeUBCChallenge.ToInt();
                    App.State.Clones.MaxShadowClones    = App.State.Statistic.MaxClonesBeforeUBCChallenge.ToInt();
                    string[] array = App.State.Statistic.SkillUsageCountBeforeUAC.Split(new char[]
                    {
                        ','
                    });
                    for (int i = 0; i < array.Length; i++)
                    {
                        int num4 = 0;
                        int.TryParse(array[i], out num4);
                        if (App.State.AllSkills.Count > i)
                        {
                            App.State.AllSkills[i].Extension.UsageCount += (long)num4;
                        }
                    }
                    App.State.Statistic.SkillUsageCountBeforeUAC = string.Empty;
                    App.State.PremiumBoni.CheckIfGPIsAdjusted();
                    App.SaveGameState();
                    GuiBase.ShowToast("Your Challenge failed! You received back the God Power and God Power upgrades you had before the challenge.");
                }
            }
            Leaderboards.SubmitStat(LeaderBoardType.Rebirths, App.State.Statistic.TotalRebirths.ToInt(), false);
            SpecialFightUi.SortSkills();
            TBSUi.Reset();
            PlanetUi.Instance.Reset();
            if (!App.State.Statistic.HasStartedUltimateBaalChallenge && !App.State.Statistic.HasStartedArtyChallenge && App.State.Statistic.HighestGodDefeated > 3 && !App.State.IsSocialDialogShown)
            {
                MainUi.ShowSocialDialog = true;
            }
            MainUi.Instance.Init(true);
        }