Пример #1
0
 private static void ShowTextBox(string textToShow, bool isFromInfoArea = false)
 {
     if (!string.IsNullOrEmpty(textToShow))
     {
         GUIStyle style = GUI.skin.GetStyle("Label");
         style.fontSize  = GuiBase.FontSize(15);
         style.alignment = TextAnchor.UpperLeft;
         float    x      = Input.mousePosition.x;
         float    num    = (float)Screen.height - Input.mousePosition.y;
         Vector2  vector = new Vector2(x, num);
         float    num2   = GuiBase.Width(275f);
         float    width  = GuiBase.Width(260f);
         string   text   = string.Empty;
         string   text2  = string.Empty;
         string[] array  = textToShow.Split(new string[]
         {
             "lowerText"
         }, StringSplitOptions.None);
         if (array.Length != 2)
         {
             text = textToShow;
         }
         else
         {
             text  = array[0];
             text2 = array[1];
         }
         float num3 = style.CalcHeight(new GUIContent(text), width) + GuiBase.Height(10f);
         float num4 = 0f;
         if (!string.IsNullOrEmpty(text2))
         {
             num4 = style.CalcHeight(new GUIContent(text2), width) + GuiBase.Height(10f);
         }
         float num5 = vector.x - num2 - 5f;
         float num6 = vector.y - num3 - num4 + GuiBase.Height(20f);
         float num7 = num2;
         if (x < num7 || AfkUi.Instance.ShowAfk)
         {
             num5 = vector.x + GuiBase.Width(20f);
         }
         if (num < num3 + num4)
         {
             num6 = vector.y - GuiBase.Height(10f);
         }
         if (isFromInfoArea)
         {
             num5  = GuiBase.Width(10f);
             num6 -= GuiBase.Height(30f);
         }
         GUI.Box(new Rect(num5, num6, num2, num3), string.Empty);
         GUI.Label(new Rect(num5 + GuiBase.Width(10f), num6 + GuiBase.Height(5f), width, num3 - GuiBase.Height(10f)), text);
         if (!string.IsNullOrEmpty(text2))
         {
             style.fontSize = GuiBase.FontSize(13);
             num4           = style.CalcHeight(new GUIContent(text2), width) + GuiBase.Height(10f);
             GUI.Box(new Rect(num5, num6 + num3, num2, num4), string.Empty);
             GUI.Label(new Rect(num5 + GuiBase.Width(10f), num6 + num3 + GuiBase.Height(5f), width, num4), text2);
         }
     }
 }
Пример #2
0
        private static void ShowTextBoxOnTop(string infotext)
        {
            GUI.Box(new Rect(GuiBase.Width(290f), GuiBase.Height(10f), GuiBase.Width(660f), GuiBase.Height(95f)), string.Empty);
            GUIStyle style = GUI.skin.GetStyle("Label");

            style.fontSize  = GuiBase.FontSize(12);
            style.alignment = TextAnchor.UpperLeft;
            int num  = 12;
            int num2 = 300;
            int num3 = 650;

            string[] array = infotext.Split(new string[]
            {
                "lowerText"
            }, StringSplitOptions.None);
            string text = string.Empty;

            if (array.Length > 0)
            {
                text = array[0];
            }
            if (array.Length == 2)
            {
                text = text + "\n" + array[1].Replace("\n", " - ");
                if (text.Contains(" - Defense") || text.Contains("Clones) - "))
                {
                    text = text.Replace(" - Defense", "\nDefense:");
                    text = text.Replace("Clones) - ", "Clones)\n");
                }
            }
            GUI.Label(new Rect(GuiBase.Width((float)num2), GuiBase.Height((float)num), GuiBase.Width((float)num3), GuiBase.Height(110f)), text);
        }
Пример #3
0
 protected override void ShowLabels(int marginTop, GUIStyle labelStyle)
 {
     labelStyle.alignment = TextAnchor.MiddleLeft;
     labelStyle.fontStyle = FontStyle.Normal;
     labelStyle.fontSize  = GuiBase.FontSize(16);
     GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height(40f), GuiBase.Width(200f), GuiBase.Height(30f)), new GUIContent("Stop after finish", "If this is on, clones will be removed from monuments when it is finished. This will ignore the number in 'Stop at'."));
     App.State.GameSettings.StopMonumentBuilding = GUI.Toggle(new Rect(GuiBase.Width(200f), GuiBase.Height(47f), GuiBase.Width(300f), GuiBase.Height(30f)), App.State.GameSettings.StopMonumentBuilding, new GUIContent(string.Empty));
     if (App.State.IsBuyUnlocked)
     {
         string text = "If this is on, missing creations will be bought automatically if you have enough divinity.";
         if (App.State.PremiumBoni.AutoBuyCostReduction < 20)
         {
             text = string.Concat(new object[]
             {
                 text,
                 "\nBut beware: there is an additional ",
                 20 - App.State.PremiumBoni.AutoBuyCostReduction,
                 "% transaction fee!"
             });
         }
         GUI.Label(new Rect(GuiBase.Width(365f), GuiBase.Height(40f), GuiBase.Width(220f), GuiBase.Height(30f)), new GUIContent("Auto buy missing creations", text));
         App.State.GameSettings.AutoBuyCreationsForMonuments = GUI.Toggle(new Rect(GuiBase.Width(593f), GuiBase.Height(47f), GuiBase.Width(300f), GuiBase.Height(30f)), App.State.GameSettings.AutoBuyCreationsForMonuments, new GUIContent(string.Empty));
     }
     labelStyle.alignment = TextAnchor.UpperCenter;
     labelStyle.fontStyle = FontStyle.Bold;
     labelStyle.fontSize  = GuiBase.FontSize(18);
     marginTop           += 5;
     GUI.Label(new Rect(GuiBase.Width(15f), GuiBase.Height((float)marginTop), GuiBase.Width(220f), GuiBase.Height(30f)), new GUIContent("Monument", "All monuments share the same multiplier. That means, if one monument multiplies a stat with 1 + 200 and another one multiplies it with 1 + 400, it would be a total multiplier of 601."));
     GUI.Label(new Rect(GuiBase.Width(220f), GuiBase.Height((float)marginTop), GuiBase.Width(80f), GuiBase.Height(30f)), "Count", labelStyle);
     GUI.Label(new Rect(GuiBase.Width(290f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), new GUIContent("Next At", "If your monument count is at least as much as the count in the input-field, the clones will be moved to the next monument if the next monument has neither 0 as an input nor the level has reached that number. '0' is not limited."), labelStyle);
     GUI.Label(new Rect(GuiBase.Width(380f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), "Clones", labelStyle);
     labelStyle.fontSize = GuiBase.FontSize(16);
 }
Пример #4
0
        public void show()
        {
            GUIStyle style = GUI.skin.GetStyle("Label");

            style.alignment = TextAnchor.UpperLeft;
            style.fontSize  = GuiBase.FontSize(16);
            GUI.BeginGroup(new Rect(GuiBase.Width(290f), GuiBase.Height(110f), GuiBase.Width(660f), GuiBase.Height(480f)));
            GUI.Box(new Rect(GuiBase.Width(0f), GuiBase.Height(0f), GuiBase.Width(660f), GuiBase.Height(480f)), string.Empty);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(15f), GuiBase.Width(400f), GuiBase.Height(30f)), new GUIContent("For more in depth guides, please visit the forum"));
            if (GUI.Button(new Rect(GuiBase.Width(420f), GuiBase.Height(15f), GuiBase.Width(80f), GuiBase.Height(30f)), new GUIContent("Forum", "In the Sticky: Game Guides there are various guides for the game.")))
            {
                App.OpenWebsite("http://www.kongregate.com/forums/2874-idling-to-rule-the-gods/topics/609942-game-guides");
            }
            if (GUI.Button(new Rect(GuiBase.Width(520f), GuiBase.Height(15f), GuiBase.Width(80f), GuiBase.Height(30f)), new GUIContent("Wiki", "A wiki with info and tips about this game.")))
            {
                App.OpenWebsite("http://itrtg.wikia.com/wiki/Idling_to_Rule_the_Gods_Wiki");
            }
            TextAsset textAsset = Resources.Load("faq") as TextAsset;
            string    text      = textAsset.text;
            GUIStyle  gUIStyle  = new GUIStyle();

            gUIStyle.richText = true;
            int num = (int)style.CalcHeight(new GUIContent(text), GuiBase.Width(590f));

            this.scrollPosition = GuiBase.TouchScrollView(new Rect(GuiBase.Width(0f), GuiBase.Height(55f), GuiBase.Width(640f), GuiBase.Height(400f)), this.scrollPosition, new Rect(0f, GuiBase.Height(15f), GuiBase.Width(620f), (float)num + GuiBase.Height(60f)));
            style.fontStyle     = FontStyle.Normal;
            style.alignment     = TextAnchor.UpperLeft;
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(30f), GuiBase.Width(590f), (float)num + GuiBase.Height(60f)), text);
            GUI.EndScrollView();
            GUI.EndGroup();
        }
Пример #5
0
        public static void ShowDialog(string header, string text, Action leftButton, Action rightButton, string leftButtonText = "Yes", string rightButtonText = "No", bool fullScreen = false, bool notInMainThread = false)
        {
            GuiBase.FullScreenDialogIsShowing = fullScreen;
            GuiBase.LeftDialogIsShowing       = !fullScreen;
            GuiBase.leftAction       = leftButton;
            GuiBase.rightAction      = rightButton;
            GuiBase.leftDialogHeader = header;
            GuiBase.leftDialogText   = text;
            GuiBase.lButtonText      = leftButtonText;
            GuiBase.rButtonText      = rightButtonText;
            if (notInMainThread)
            {
                return;
            }
            GUIStyle style = GUI.skin.GetStyle("Label");

            style.fontSize = GuiBase.FontSize(16);
            float width = GuiBase.Width(255f);
            float num   = style.CalcHeight(new GUIContent(text), width);
            float num2  = num + GuiBase.Height(100f);

            if (fullScreen)
            {
                GUI.Box(new Rect(GuiBase.Width(0f), GuiBase.Height(0f), (float)Screen.width, (float)Screen.height), string.Empty);
                GUI.BeginGroup(new Rect(GuiBase.Width(342f), (float)(Screen.height / 2) - num2 / 2f, GuiBase.Width(275f), num2));
                GUI.Box(new Rect(0f, 0f, GuiBase.Width(275f), num2), string.Empty);
            }
            else
            {
                GUI.BeginGroup(new Rect(GuiBase.Width(10f), (float)(Screen.height / 2) - num2 / 2f + GuiBase.Height(40f), GuiBase.Width(285f), num2));
                GUI.Box(new Rect(0f, 0f, GuiBase.Width(275f), num2), string.Empty);
            }
            style.fontSize  = GuiBase.FontSize(18);
            style.alignment = TextAnchor.MiddleCenter;
            style.fontStyle = FontStyle.Bold;
            GUI.Label(new Rect(GuiBase.Width(10f), GuiBase.Height(5f), GuiBase.Width(255f), GuiBase.Height(50f)), header);
            style.fontSize  = GuiBase.FontSize(16);
            style.fontStyle = FontStyle.Normal;
            style.alignment = TextAnchor.UpperLeft;
            GUI.Label(new Rect(GuiBase.Width(10f), GuiBase.Height(50f), width, num), text);
            if (GUI.Button(new Rect(GuiBase.Width(10f), num + GuiBase.Height(60f), GuiBase.Width(125f), GuiBase.Height(30f)), GuiBase.lButtonText))
            {
                GuiBase.FullScreenDialogIsShowing = false;
                GuiBase.LeftDialogIsShowing       = false;
                leftButton();
            }
            if (GUI.Button(new Rect(GuiBase.Width(140f), num + GuiBase.Height(60f), GuiBase.Width(125f), GuiBase.Height(30f)), rightButtonText))
            {
                GuiBase.FullScreenDialogIsShowing = false;
                GuiBase.LeftDialogIsShowing       = false;
                if (rightButton != null)
                {
                    rightButton();
                }
            }
            GUI.EndGroup();
        }
 private static void AddHeader(string text, int marginTop, GUIStyle labelStyle)
 {
     labelStyle.fontStyle = FontStyle.Bold;
     labelStyle.alignment = TextAnchor.UpperCenter;
     labelStyle.fontSize  = GuiBase.FontSize(18);
     GUI.Label(new Rect(0f, GuiBase.Height((float)marginTop), GuiBase.Width(600f), GuiBase.Height(30f)), text);
     labelStyle.fontSize  = GuiBase.FontSize(15);
     labelStyle.alignment = TextAnchor.UpperLeft;
     labelStyle.fontStyle = FontStyle.Normal;
 }
Пример #7
0
        protected override void ShowLabels(int marginTop, GUIStyle labelStyle)
        {
            labelStyle.alignment = TextAnchor.MiddleLeft;
            labelStyle.fontStyle = FontStyle.Normal;
            labelStyle.fontSize  = GuiBase.FontSize(16);
            if (this.totalPhysicalGain == null)
            {
                this.totalPhysicalGain = new CDouble();
            }
            GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height(42f), GuiBase.Width(340f), GuiBase.Height(30f)), new GUIContent("Total Physical / s: " + this.totalPhysicalGain.ToGuiText(true), "The total amount of physical you receive each second from all physical trainings."), labelStyle);
            string text = "Next at";

            if (App.State.GameSettings.UseStopAt)
            {
                text = "Stop at";
            }
            GUI.Label(new Rect(GuiBase.Width(390f), GuiBase.Height(42f), GuiBase.Width(60f), GuiBase.Height(30f)), new GUIContent(text, "Clones will be removed automatically if the level on the right input field is reached. \nIt is not that useful, but some people like to have even numbers."));
            if (App.CurrentPlattform == Plattform.Android)
            {
                GUIStyle textField = Gui.ChosenSkin.textField;
                if (GUI.Button(new Rect(GuiBase.Width(470f), GuiBase.Height(43f), GuiBase.Width(100f), GuiBase.Height(25f)), this.StopAtString, textField))
                {
                    base.ShowNumberInput(text, App.State.GameSettings.StopClonesAtTrainings, 9223372036854775807L, delegate(CDouble x)
                    {
                        this.StopAtString = x.ToString();
                        if (App.State.GameSettings.SyncTrainingSkill)
                        {
                            App.State.GameSettings.StopClonesAtSkills = App.State.GameSettings.StopClonesAtTrainings;
                        }
                    });
                }
            }
            else
            {
                this.StopAtString = GUI.TextField(new Rect(GuiBase.Width(470f), GuiBase.Height(43f), GuiBase.Width(100f), GuiBase.Height(25f)), this.StopAtString);
                if (App.State.GameSettings.SyncTrainingSkill)
                {
                    App.State.GameSettings.StopClonesAtSkills = App.State.GameSettings.StopClonesAtTrainings;
                }
            }
            App.State.GameSettings.IsStopAtOnTrainings = GUI.Toggle(new Rect(GuiBase.Width(593f), GuiBase.Height(46f), GuiBase.Width(60f), GuiBase.Height(30f)), App.State.GameSettings.IsStopAtOnTrainings, string.Empty);
            marginTop           += 5;
            labelStyle.alignment = TextAnchor.UpperCenter;
            labelStyle.fontStyle = FontStyle.Bold;
            labelStyle.fontSize  = GuiBase.FontSize(18);
            GUI.Label(new Rect(GuiBase.Width(15f), GuiBase.Height((float)marginTop), GuiBase.Width(220f), GuiBase.Height(30f)), "Training");
            GUI.Label(new Rect(GuiBase.Width(230f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), "Level", labelStyle);
            GUI.Label(new Rect(GuiBase.Width(330f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), "Clones", labelStyle);
            labelStyle.fontSize = GuiBase.FontSize(16);
            GUI.Label(new Rect(GuiBase.Width(510f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), new GUIContent("Sync", "If is this is on, clicking + or - will automatically add or remove the same number of clones from skills, if there are clones on the skill, and the skill is unlocked."), labelStyle);
            App.State.GameSettings.SyncTrainingSkill = GUI.Toggle(new Rect(GuiBase.Width(593f), GuiBase.Height((float)(marginTop + 4)), GuiBase.Width(60f), GuiBase.Height(30f)), App.State.GameSettings.SyncTrainingSkill, string.Empty);
        }
Пример #8
0
 public new void Show(bool isAchievement)
 {
     if (!App.State.IsMonumentUnlocked)
     {
         GUI.Box(new Rect(GuiBase.Width(290f), GuiBase.Height(110f), GuiBase.Width(660f), GuiBase.Height(480f)), string.Empty);
         GUIStyle style = GUI.skin.GetStyle("Label");
         style.fontSize  = GuiBase.FontSize(16);
         style.alignment = TextAnchor.MiddleCenter;
         GUI.Label(new Rect(GuiBase.Width(310f), GuiBase.Height(150f), GuiBase.Width(640f), GuiBase.Height(30f)), "You need to defeat Diana to unlock monuments.", style);
         return;
     }
     this.IsAchievement = isAchievement;
     base.Show(false);
 }
        private void show()
        {
            GUIStyle style = GUI.skin.GetStyle("Label");

            GUI.BeginGroup(new Rect(GuiBase.Width(280f), GuiBase.Height(110f), GuiBase.Width(670f), GuiBase.Height(480f)));
            GUI.Box(new Rect(GuiBase.Width(10f), GuiBase.Height(0f), GuiBase.Width(660f), GuiBase.Height(480f)), string.Empty);
            style.fontSize  = GuiBase.FontSize(18);
            style.fontStyle = FontStyle.Bold;
            style.alignment = TextAnchor.UpperCenter;
            GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height(20f), GuiBase.Width(660f), GuiBase.Height(40f)), "Keyboard Shortcuts");
            style.fontSize  = GuiBase.FontSize(16);
            style.fontStyle = FontStyle.Normal;
            style.alignment = TextAnchor.UpperLeft;
            int num = 50;

            this.AddInfoLabel("F1 : Show Shortcuts", ref num, 30);
            this.AddInfoLabel("F2 : Show FAQ", ref num, 30);
            this.AddInfoLabel("F3 : Open the Chat", ref num, 30);
            this.AddInfoLabel("1 : Show Create", ref num, 30);
            this.AddInfoLabel("2 : Show Monuments", ref num, 30);
            this.AddInfoLabel("3 : Show Divinity", ref num, 30);
            this.AddInfoLabel("4 : Show Planet", ref num, 30);
            this.AddInfoLabel("5 : Show Physical", ref num, 30);
            this.AddInfoLabel("6 : Show Skills", ref num, 30);
            this.AddInfoLabel("7 : Show Might", ref num, 30);
            this.AddInfoLabel("8 : Show TBS", ref num, 30);
            this.AddInfoLabel("9 : Show Monster", ref num, 30);
            this.AddInfoLabel("0 : Show Gods", ref num, 30);
            num = 50;
            this.AddInfoLabel("Shift + 1 : Show Special", ref num, 300);
            this.AddInfoLabel("Shift + 2 : Show Statistics", ref num, 300);
            this.AddInfoLabel("Shift + 3 : Show Settings", ref num, 300);
            this.AddInfoLabel("Shift + 4 : Show Story", ref num, 300);
            this.AddInfoLabel("Shift + 5 : Show Pets", ref num, 300);
            if (App.CurrentPlattform == Plattform.Steam)
            {
                this.AddInfoLabel("Esc: Change resolution or quit game", ref num, 300);
            }
            this.AddInfoLabel("Some well-known code: ???", ref num, 300);
            GUI.Label(new Rect(GuiBase.Width(300f), GuiBase.Height((float)num), GuiBase.Width(360f), GuiBase.Height(70f)), "Shift + r : Remove all shadow clones from Monument, Might, Divinity and Planet");
            num += 50;
            GUI.Label(new Rect(GuiBase.Width(300f), GuiBase.Height((float)num), GuiBase.Width(360f), GuiBase.Height(70f)), "Shift + a : Set Clones to add / remove to 'Max'");
            num += 30;
            GUI.Label(new Rect(GuiBase.Width(300f), GuiBase.Height((float)num), GuiBase.Width(360f), GuiBase.Height(70f)), "Right click a number button: reduce the current number by that count.");
            num += 50;
            GUI.Label(new Rect(GuiBase.Width(300f), GuiBase.Height((float)num), GuiBase.Width(360f), GuiBase.Height(70f)), "Right click + at physical / skills: add 28 clones");
            num += 50;
            GUI.EndGroup();
        }
        private void ShowBattleFinished()
        {
            GUIStyle style = GUI.skin.GetStyle("Label");

            style.fontSize  = GuiBase.FontSize(16);
            style.alignment = TextAnchor.UpperCenter;
            style.fontStyle = FontStyle.Bold;
            GUI.Label(new Rect(GuiBase.Width(10f), GuiBase.Height(20f), GuiBase.Width(640f), GuiBase.Height(45f)), "Battle finished");
            style.fontStyle = FontStyle.Normal;
            style.alignment = TextAnchor.UpperLeft;
            style.fontSize  = GuiBase.FontSize(14);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(50f), GuiBase.Width(640f), GuiBase.Height(45f)), this.Battle.BattleRewardText);
            if (GUI.Button(new Rect(GuiBase.Width(200f), GuiBase.Height(100f), GuiBase.Width(100f), GuiBase.Height(30f)), "Finish"))
            {
                this.Battle.IsBattleFinished = false;
            }
            string text = "Show Battle log";

            if (this.showLog)
            {
                text = "Hide Battle log";
            }
            if (GUI.Button(new Rect(GuiBase.Width(20f), GuiBase.Height(100f), GuiBase.Width(150f), GuiBase.Height(30f)), text))
            {
                this.showLog = !this.showLog;
            }
            if (this.showLog)
            {
                int           num           = 150;
                StringBuilder stringBuilder = new StringBuilder();
                foreach (string current in this.Battle.FightingLog)
                {
                    stringBuilder.Append(current).Append("\n");
                }
                string text2 = stringBuilder.ToString();
                int    num2  = (int)style.CalcHeight(new GUIContent(text2), GuiBase.Width(600f));
                SpecialFightUi.scrollPosition = GuiBase.TouchScrollView(new Rect(GuiBase.Width(20f), GuiBase.Height(150f), GuiBase.Width(630f), GuiBase.Height(320f)), SpecialFightUi.scrollPosition, new Rect(0f, GuiBase.Height(150f), GuiBase.Width(600f), GuiBase.Height((float)num2)));
                GUI.Label(new Rect(GuiBase.Width(0f), GuiBase.Height((float)(num - 2)), GuiBase.Width(600f), (float)num2), text2, style);
                GUI.EndScrollView();
            }
        }
        protected override void ShowLabels(int marginTop, GUIStyle labelStyle)
        {
            this.SyncScrollbars  = false;
            labelStyle.alignment = TextAnchor.MiddleLeft;
            labelStyle.fontStyle = FontStyle.Normal;
            labelStyle.fontSize  = GuiBase.FontSize(16);
            string text = "Every 4 Might will increase your Physical, Mystic, Battle and Creating by 1%. \nYou will gain 1 Might for each level gained in this tab.\nTotal Might will not reset on rebirth but you will have to unlock the tab again.\nThe levels below will reset after rebirth.";

            if (App.State.Statistic.OnekChallengesFinished > 0)
            {
                int num = App.State.Statistic.OnekChallengesFinished.ToInt();
                if (num > 40)
                {
                    num = 40;
                }
                text = string.Concat(new object[]
                {
                    text,
                    "\nSpeed multiplier: ",
                    num * 5,
                    " %"
                });
            }
            GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)(marginTop - 48)), GuiBase.Width(400f), GuiBase.Height(30f)), new GUIContent(string.Concat(new object[]
            {
                "Total Might: ",
                App.State.PremiumBoni.TotalMight,
                " (",
                App.State.PremiumBoni.TotalMight / 4L,
                "%)"
            }), text));
            marginTop           += 5;
            labelStyle.fontStyle = FontStyle.Bold;
            labelStyle.alignment = TextAnchor.UpperCenter;
            labelStyle.fontSize  = GuiBase.FontSize(18);
            GUI.Label(new Rect(GuiBase.Width(15f), GuiBase.Height((float)marginTop), GuiBase.Width(220f), GuiBase.Height(30f)), "Might");
            GUI.Label(new Rect(GuiBase.Width(220f), GuiBase.Height((float)marginTop), GuiBase.Width(80f), GuiBase.Height(30f)), "Level", labelStyle);
            GUI.Label(new Rect(GuiBase.Width(290f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), new GUIContent("Next At", "If the level of the might is at least as much as the count in the input-field, the clones will move to the next one. '0' is not limited."), labelStyle);
            GUI.Label(new Rect(GuiBase.Width(380f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), "Clones", labelStyle);
            labelStyle.fontSize = GuiBase.FontSize(16);
        }
Пример #12
0
        protected void showAchievementReached()
        {
            if ((GuiBase.achievementToShow == null && string.IsNullOrEmpty(GuiBase.unlockedContent)) || !App.State.GameSettings.ShowAchievementPopups)
            {
                return;
            }
            GUIStyle style = GUI.skin.GetStyle("Label");

            style.fontSize  = GuiBase.FontSize(16);
            style.alignment = TextAnchor.UpperLeft;
            if (App.State.GameSettings.AchievementsOnTop)
            {
                GUI.BeginGroup(new Rect(GuiBase.Width(540f), GuiBase.Height(10f), GuiBase.Width(410f), GuiBase.Height(240f)));
            }
            else
            {
                GUI.BeginGroup(new Rect(0f, GuiBase.Height(270f), GuiBase.Width(410f), GuiBase.Height(240f)));
            }
            Rect position = new Rect(GuiBase.Width(10f), 0f, GuiBase.Width(400f), GuiBase.Height(120f));

            if (!string.IsNullOrEmpty(GuiBase.unlockedContent))
            {
                GUI.Box(position, "New content unlocked!");
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(35f), GuiBase.Width(360f), GuiBase.Height(80f)), GuiBase.unlockedContent);
            }
            else
            {
                GUI.Box(position, "Achievement reached!");
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(30f), GuiBase.Width(60f), GuiBase.Height(60f)), GuiBase.achievementToShow.ImageReached);
                GUI.Label(new Rect(GuiBase.Width(80f), GuiBase.Height(35f), GuiBase.Width(300f), GuiBase.Height(80f)), GuiBase.achievementToShow.Description);
            }
            long num = DateTime.Now.Ticks / 10000L;

            if (num - GuiBase.achievementShowTimer > 5000L || (position.Contains(Event.current.mousePosition) && Event.current.button == 0 && Event.current.type == EventType.MouseDown))
            {
                GuiBase.achievementToShow = null;
                GuiBase.unlockedContent   = string.Empty;
            }
            GUI.EndGroup();
        }
Пример #13
0
        protected override void ShowLabels(int marginTop, GUIStyle labelStyle)
        {
            this.SyncScrollbars       = false;
            labelStyle.alignment      = TextAnchor.MiddleLeft;
            labelStyle.fontStyle      = FontStyle.Bold;
            labelStyle.fontSize       = GuiBase.FontSize(18);
            PlanetUi.ToolbarIntPlanet = GUI.Toolbar(new Rect(GuiBase.Width(320f), GuiBase.Height(45f), GuiBase.Width(330f), GuiBase.Height(25f)), PlanetUi.ToolbarIntPlanet, this.toolbarStringsPlanet);
            marginTop += 5;
            string text = "Info";

            if (this.showInfo)
            {
                text = "Back";
            }
            if (GUI.Button(new Rect(GuiBase.Width(560f), GuiBase.Height((float)marginTop), GuiBase.Width(80f), GuiBase.Height(30f)), text))
            {
                this.showInfo = !this.showInfo;
            }
            GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)marginTop), GuiBase.Width(500f), GuiBase.Height(30f)), "Crystal Factory");
            labelStyle.fontSize  = GuiBase.FontSize(16);
            labelStyle.fontStyle = FontStyle.Normal;
        }
Пример #14
0
 public static void ShowBigMessage()
 {
     if (!string.IsNullOrEmpty(GuiBase.BigMessageText))
     {
         GUIStyle style = GUI.skin.GetStyle("Label");
         style.fontSize  = GuiBase.FontSize(16);
         style.alignment = TextAnchor.UpperLeft;
         int num = (int)style.CalcHeight(new GUIContent(GuiBase.BigMessageText), GuiBase.Width(500f));
         if (num < 320)
         {
             num = 320;
         }
         GUI.BeginGroup(new Rect(0f, 0f, (float)Screen.width, (float)Screen.height));
         GUI.Box(new Rect(0f, 0f, (float)Screen.width, (float)Screen.height), string.Empty);
         GUI.Label(new Rect(GuiBase.Width(350f), GuiBase.Height(20f), GuiBase.Width(400f), GuiBase.Height(40f)), GuiBase.Logo);
         GuiBase.BigMessageScrollBar = GuiBase.TouchScrollView(new Rect(GuiBase.Width(120f), GuiBase.Height(100f), GuiBase.Width(650f), GuiBase.Height(400f)), GuiBase.BigMessageScrollBar, new Rect(GuiBase.Width(120f), GuiBase.Height(100f), GuiBase.Width(620f), (float)num));
         GUI.Label(new Rect(GuiBase.Width(240f), GuiBase.Height(100f), GuiBase.Width(500f), GuiBase.Height((float)num)), GuiBase.BigMessageText);
         GUI.EndScrollView();
         if (GUI.Button(new Rect(GuiBase.Width(415f), GuiBase.Height(520f), GuiBase.Width(100f), GuiBase.Height(30f)), "Close"))
         {
             if (string.IsNullOrEmpty(GuiBase.SecondMessage))
             {
                 GuiBase.BigMessageIsShowing = false;
                 GuiBase.BigMessageText      = string.Empty;
             }
             else
             {
                 GuiBase.BigMessageText = GuiBase.SecondMessage;
                 GuiBase.SecondMessage  = string.Empty;
             }
         }
         GUI.EndGroup();
     }
     else
     {
         GuiBase.BigMessageIsShowing = false;
     }
 }
        private void ShowAutoBuyOptions()
        {
            GUIStyle style  = GUI.skin.GetStyle("TextField");
            GUIStyle style2 = GUI.skin.GetStyle("Label");
            GUIStyle style3 = GUI.skin.GetStyle("Button");

            style.fontSize  = GuiBase.FontSize(16);
            style3.fontSize = GuiBase.FontSize(16);
            GUI.Box(new Rect(GuiBase.Width(290f), GuiBase.Height(110f), GuiBase.Width(660f), GuiBase.Height(480f)), string.Empty);
            style2.fontSize  = GuiBase.FontSize(16);
            style2.alignment = TextAnchor.UpperLeft;
            int num = 330;

            GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height(125f), GuiBase.Width(400f), GuiBase.Height(80f)), "Select which creations you want to autobuy. \nEven if a setting here is on, it won't autobuy them if the main setting on the creations page is off.");
            if (GUI.Button(new Rect(GuiBase.Width(800f), GuiBase.Height(125f), GuiBase.Width(100f), GuiBase.Height(30f)), new GUIContent("Back")))
            {
                this.showAutoBuyOptions = false;
            }
            this.scrollPosAutobuy = GuiBase.TouchScrollView(new Rect(GuiBase.Width((float)num), GuiBase.Height(205f), GuiBase.Width(560f), GuiBase.Height(350f)), this.scrollPosAutobuy, new Rect(0f, GuiBase.Height(0f), GuiBase.Width(520f), GuiBase.Height((float)this.marginTop)));
            num            = 0;
            this.marginTop = 0;
            foreach (Creation current in App.State.AllCreations)
            {
                if (current.TypeEnum != Creation.CreationType.Shadow_clone)
                {
                    GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)this.marginTop), GuiBase.Width(450f), GuiBase.Height(30f)), current.Name);
                    current.AutoBuy = GUI.Toggle(new Rect(GuiBase.Width((float)(num + 170)), GuiBase.Height((float)(this.marginTop + 2)), GuiBase.Width(70f), GuiBase.Height(30f)), current.AutoBuy, new GUIContent(string.Empty));
                    this.marginTop += 35;
                    if (current.TypeEnum == Creation.CreationType.Village)
                    {
                        this.marginTop = 0;
                        num            = 270;
                    }
                }
            }
            GUI.EndScrollView();
            style.alignment = TextAnchor.UpperCenter;
        }
Пример #16
0
 protected override void ShowLabels(int marginTop, GUIStyle labelStyle)
 {
     labelStyle.alignment = TextAnchor.MiddleLeft;
     labelStyle.fontStyle = FontStyle.Normal;
     labelStyle.fontSize  = GuiBase.FontSize(16);
     if (this.totalBattleGain == null)
     {
         this.totalBattleGain = new CDouble();
     }
     GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height(42f), GuiBase.Width(340f), GuiBase.Height(30f)), new GUIContent("Total Battle / s: " + this.totalBattleGain.ToGuiText(true), "The total amount of battle you receive each second from all fights." + App.State.DivGainText), labelStyle);
     GUI.Label(new Rect(GuiBase.Width(400f), GuiBase.Height(42f), GuiBase.Width(200f), GuiBase.Height(30f)), new GUIContent("Add clones if defeated", "If this is on and you are fighting an enemy who can kill your clones, new clones will be added automatically if you have enough."), labelStyle);
     App.State.GameSettings.AutoAddClones = GUI.Toggle(new Rect(GuiBase.Width(593f), GuiBase.Height(46f), GuiBase.Width(300f), GuiBase.Height(30f)), App.State.GameSettings.AutoAddClones, string.Empty);
     marginTop           += 5;
     labelStyle.alignment = TextAnchor.UpperCenter;
     labelStyle.fontStyle = FontStyle.Bold;
     labelStyle.fontSize  = GuiBase.FontSize(18);
     GUI.Label(new Rect(GuiBase.Width(15f), GuiBase.Height((float)marginTop), GuiBase.Width(220f), GuiBase.Height(30f)), "Enemy");
     GUI.Label(new Rect(GuiBase.Width(230f), GuiBase.Height((float)marginTop), GuiBase.Width(110f), GuiBase.Height(30f)), "Defeated", labelStyle);
     GUI.Label(new Rect(GuiBase.Width(340f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), "Clones", labelStyle);
     labelStyle.fontSize  = GuiBase.FontSize(16);
     labelStyle.fontStyle = FontStyle.Normal;
     GUI.Label(new Rect(GuiBase.Width(450f), GuiBase.Height((float)marginTop), GuiBase.Width(150f), GuiBase.Height(30f)), new GUIContent("Next if 1 cloned", "If this is on, all but 1 clone will move to the next fight, if you only need 1 clone to fight a monster."), labelStyle);
     App.State.GameSettings.NextFightIf1Cloned = GUI.Toggle(new Rect(GuiBase.Width(593f), GuiBase.Height((float)marginTop), GuiBase.Width(300f), GuiBase.Height(30f)), App.State.GameSettings.NextFightIf1Cloned, string.Empty);
 }
        public void Show()
        {
            if (GodUi.scrollBarsToZero)
            {
                this.scrollPosition    = Vector2.zero;
                GodUi.scrollBarsToZero = false;
            }
            GUIStyle style = GUI.skin.GetStyle("Label");

            style.alignment = TextAnchor.UpperLeft;
            style.fontSize  = GuiBase.FontSize(18);
            GUI.BeginGroup(new Rect(GuiBase.Width(280f), GuiBase.Height(110f), GuiBase.Width(670f), GuiBase.Height(480f)));
            GUI.Box(new Rect(GuiBase.Width(10f), GuiBase.Height(0f), GuiBase.Width(660f), GuiBase.Height(480f)), string.Empty);
            style.alignment = TextAnchor.UpperCenter;
            int num  = 20;
            int num2 = 400;

            if (App.State.Statistic.HasStartedUltimatePetChallenge)
            {
                GUI.Label(new Rect(GuiBase.Width(0f), GuiBase.Height((float)num), GuiBase.Width(550f), GuiBase.Height(30f)), new GUIContent("Pet Power: " + App.State.Ext.GetTotalPetPower(false).ToGuiText(true), "The power of all pets who are available to fight gods combined."), style);
                GUI.Label(new Rect(GuiBase.Width(0f), GuiBase.Height((float)(num + 25)), GuiBase.Width(550f), GuiBase.Height(30f)), new GUIContent("Multi from gods: " + App.State.Ext.PetPowerMultiGods.ToGuiText(true), "This is a multiplier to the pet power and will multiply with 4 for each god defeated. This won't reset after rebirthing."), style);
                GUI.Label(new Rect(GuiBase.Width(0f), GuiBase.Height((float)(num + 50)), GuiBase.Width(550f), GuiBase.Height(30f)), new GUIContent("Multi from pet pills: " + App.State.Ext.PetPowerMultiCampaigns.ToGuiText(true), "You can find Pet Pills in item campaigns for additional multipliers. This won't reset after rebirthing."), style);
                GUI.Label(new Rect(GuiBase.Width(0f), GuiBase.Height((float)(num + 75)), GuiBase.Width(550f), GuiBase.Height(30f)), new GUIContent("Multi from monuments: " + App.State.Ext.PetPowerMultiMonuments().ToGuiText(true), "Your monuments will even give multipliers to your pets! Sadly, all of this is lost after rebirthing."), style);
                GUI.Label(new Rect(GuiBase.Width(0f), GuiBase.Height((float)(num + 100)), GuiBase.Width(550f), GuiBase.Height(30f)), new GUIContent("Total Pet Power: " + App.State.Ext.GetTotalPetPower(true).ToGuiText(true), "The total power your pets have to fight the gods. The damage you do is (total power / 3 - god defense) / 5000 * milliseconds. \nCriticals from TBS are also possible."), style);
                num += 115;
                int num3 = 20;
                int num4 = num;
                int num5 = 0;
                foreach (Pet current in App.State.Ext.AllPets)
                {
                    if (current.CurrentHealth > 0 && !current.IsInCampaign)
                    {
                        GUI.Label(new Rect(GuiBase.Width((float)num3), GuiBase.Height((float)PetUi.GetPetTop(current.TypeEnum, num4)), GuiBase.Width(40f), GuiBase.Height(40f)), new GUIContent(current.Image, "Pets who are available for fighting against the gods. Pets with no health or who are in campaigns can't participate."));
                        num5++;
                        num4 += 5;
                        if (num5 > App.State.Ext.AllPets.Count / 2)
                        {
                            num4 -= 10;
                        }
                        num3 += 20;
                    }
                }
                num  += 120;
                num2 -= 220;
            }
            GUIStyle style2 = GUI.skin.GetStyle("Button");

            style2.fontSize = GuiBase.FontSize(18);
            style.fontStyle = FontStyle.Bold;
            GUI.Label(new Rect(GuiBase.Width(25f), GuiBase.Height((float)num), GuiBase.Width(200f), GuiBase.Height(30f)), "God");
            GUI.Label(new Rect(GuiBase.Width(210f), GuiBase.Height((float)num), GuiBase.Width(200f), GuiBase.Height(30f)), "Unlocks", style);
            style.fontStyle = FontStyle.Normal;
            num            += 35;
            if (App.State.PremiumBoni.TotalMightIsUnlocked && GUI.Button(new Rect(GuiBase.Width(520f), GuiBase.Height(10f), GuiBase.Width(140f), GuiBase.Height(30f)), "Unleash Might"))
            {
                if (SpecialFightUi.IsFighting)
                {
                    GuiBase.ShowToast("Please finish your special fight first°");
                }
                else
                {
                    int num6 = 0;
                    foreach (Might current2 in App.State.AllMights)
                    {
                        if (current2.IsUsable && current2.UseCoolDown == 0L && current2.DurationLeft <= 0L)
                        {
                            current2.Unleash();
                            num6++;
                        }
                    }
                    if (num6 > 0)
                    {
                        GuiBase.ShowToast("Multi unleash!");
                    }
                    else
                    {
                        GuiBase.ShowToast("Skills are on cooldown, please wait a bit.");
                    }
                }
            }
            this.scrollPosition = GuiBase.TouchScrollView(new Rect(GuiBase.Width(0f), GuiBase.Height((float)num), GuiBase.Width(650f), GuiBase.Height((float)num2)), this.scrollPosition, new Rect(0f, GuiBase.Height((float)num), GuiBase.Width(620f), GuiBase.Height((float)(this.marginTop - num))));
            if (this.marginTop < 390)
            {
                GUIStyle style3 = GUI.skin.GetStyle("scrollview");
                style3.normal.background = null;
            }
            this.marginTop = num;
            bool flag = true;

            for (int i = 0; i < App.State.AllCreations.Count; i++)
            {
                Creation creation = App.State.AllCreations[i];
                if (!creation.GodToDefeat.IsDefeated)
                {
                    flag = false;
                }
            }
            if (App.State.PrinnyBaal.IsUnlocked && flag)
            {
                style.fontSize = GuiBase.FontSize(16);
                GuiBase.CreateProgressBar(this.marginTop, App.State.PrinnyBaal.getPercentOfHP(), App.State.PrinnyBaal.Name, App.State.PrinnyBaal.Description, GuiBase.progressBg, GuiBase.progressFgRed);
                if (App.State.PrinnyBaal.IsFighting)
                {
                    GUI.Toggle(new Rect(GuiBase.Width(430f), GuiBase.Height((float)this.marginTop), GuiBase.Width(110f), GuiBase.Height(30f)), true, "Fighting...", GUI.skin.GetStyle("Button"));
                    style.alignment = TextAnchor.MiddleLeft;
                    GUI.Label(new Rect(GuiBase.Width(35f), GuiBase.Height((float)(this.marginTop + 35)), GuiBase.Width(400f), GuiBase.Height(30f)), "Your damage /s: " + App.State.PrinnyBaal.DamageSec.ToGuiText(true), style);
                    style.alignment = TextAnchor.UpperCenter;
                    if (GUI.Button(new Rect(GuiBase.Width(550f), GuiBase.Height((float)this.marginTop), GuiBase.Width(70f), GuiBase.Height(30f)), "Stop"))
                    {
                        GodUi.EnableCreating();
                    }
                    this.marginTop += 35;
                }
                else if (GUI.Button(new Rect(GuiBase.Width(430f), GuiBase.Height((float)this.marginTop), GuiBase.Width(110f), GuiBase.Height(30f)), "Fight"))
                {
                    App.State.PrinnyBaal.IsFighting = true;
                    GodUi.DisableCreation();
                }
            }
            else
            {
                for (int j = 0; j < App.State.AllCreations.Count; j++)
                {
                    Creation creation2 = App.State.AllCreations[j];
                    if (!creation2.GodToDefeat.IsDefeated)
                    {
                        style.fontSize = GuiBase.FontSize(16);
                        GuiBase.CreateProgressBar(this.marginTop, creation2.GodToDefeat.getPercentOfHP(), creation2.GodToDefeat.Name, creation2.Description, GuiBase.progressBg, GuiBase.progressFgRed);
                        GUI.Label(new Rect(GuiBase.Width(210f), GuiBase.Height((float)this.marginTop), GuiBase.Width(200f), GuiBase.Height(30f)), creation2.Name, style);
                        if (creation2.IsActive)
                        {
                            GUI.Toggle(new Rect(GuiBase.Width(430f), GuiBase.Height((float)this.marginTop), GuiBase.Width(110f), GuiBase.Height(30f)), true, "Fighting...", GUI.skin.GetStyle("Button"));
                            style.alignment = TextAnchor.MiddleLeft;
                            GUI.Label(new Rect(GuiBase.Width(35f), GuiBase.Height((float)(this.marginTop + 35)), GuiBase.Width(400f), GuiBase.Height(30f)), "Your damage /s: " + creation2.GodToDefeat.DamageSec.ToGuiText(true), style);
                            style.alignment = TextAnchor.UpperCenter;
                            if (GUI.Button(new Rect(GuiBase.Width(550f), GuiBase.Height((float)this.marginTop), GuiBase.Width(70f), GuiBase.Height(30f)), "Stop"))
                            {
                                GodUi.EnableCreating();
                            }
                            this.marginTop += 35;
                        }
                        else if (GUI.Button(new Rect(GuiBase.Width(430f), GuiBase.Height((float)this.marginTop), GuiBase.Width(110f), GuiBase.Height(30f)), "Fight"))
                        {
                            bool flag2 = true;
                            foreach (Creation current3 in App.State.AllCreations)
                            {
                                if (current3.TypeEnum < creation2.TypeEnum && !current3.GodToDefeat.IsDefeated)
                                {
                                    flag2 = false;
                                }
                            }
                            if (!flag2)
                            {
                                GuiBase.ShowToast("You need to defeat all previous gods first!");
                            }
                            else
                            {
                                App.State.PrinnyBaal.IsFighting = false;
                                bool isActive = creation2.IsActive;
                                GodUi.DisableCreation();
                                creation2.IsActive = !isActive;
                            }
                        }
                        this.marginTop += 35;
                    }
                }
            }
            GUI.EndScrollView();
            GUI.EndGroup();
        }
Пример #18
0
        public static void Show()
        {
            if (KredOffersUi.ShowAds)
            {
                KredOffersUi.ShowAdUi();
                return;
            }
            GUIStyle style  = GUI.skin.GetStyle("Label");
            GUIStyle style2 = GUI.skin.GetStyle("Button");

            style2.fontSize = GuiBase.FontSize(16);
            style.alignment = TextAnchor.UpperLeft;
            style.fontSize  = GuiBase.FontSize(15);
            GUI.Box(new Rect(GuiBase.Width(290f), GuiBase.Height(110f), GuiBase.Width(660f), GuiBase.Height(480f)), string.Empty);
            if (Kongregate.IsWaitingForPurchase)
            {
                GUI.Label(new Rect(GuiBase.Width(310f), GuiBase.Height(130f), GuiBase.Width(630f), GuiBase.Height(70f)), "Waiting for the result...");
                return;
            }
            KredOffersUi.scrollPosition = GuiBase.TouchScrollView(new Rect(GuiBase.Width(280f), GuiBase.Height(120f), GuiBase.Width(660f), GuiBase.Height(430f)), KredOffersUi.scrollPosition, new Rect(0f, GuiBase.Height(20f), GuiBase.Width(620f), GuiBase.Height((float)KredOffersUi.marginTop)));
            KredOffersUi.marginTop      = 25;
            GUI.Label(new Rect(GuiBase.Width(25f), GuiBase.Height((float)(KredOffersUi.marginTop + 5)), GuiBase.Width(400f), GuiBase.Height(30f)), "Want some rewards without spending Kreds?");
            if (GUI.Button(new Rect(GuiBase.Width(445f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Click here")))
            {
                KredOffersUi.ShowAds = true;
            }
            KredOffersUi.marginTop += 55;
            if (!App.State.PremiumBoni.HasPurchasedGodPowerOnce)
            {
                style.fontStyle = FontStyle.Bold;
                style.fontSize  = GuiBase.FontSize(18);
                GUI.Label(new Rect(GuiBase.Width(25f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(630f), GuiBase.Height(70f)), "For your first 'God Power' purchase you will receive twice the amount!");
                style.fontSize          = GuiBase.FontSize(15);
                style.fontStyle         = FontStyle.Normal;
                KredOffersUi.marginTop += 35;
            }
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(300f)));
            KredOffersUi.AddHeader("God Power", 20, style);
            int num = App.State.PremiumBoni.GodPowerPurchaseBonusPercent();

            if (num > 0)
            {
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(120f)), "The more you play and the more you purchase, the more God Power you will receive from purchases.\nCurrent bonus: " + num + "%\nYou will receive what is shown on the buttons, even if the purchase dialog afterwards shows less.");
            }
            else
            {
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "Gain the power of gods!\nWith god power you can buy various permanent bonuses in the god power page.");
            }
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(170f), GuiBase.Width(150f), GuiBase.Height(30f)), "You have: " + App.State.PremiumBoni.GodPower);
            GUI.Label(new Rect(GuiBase.Width(150f), GuiBase.Height(162f), GuiBase.Width(40f), GuiBase.Height(40f)), KredOffersUi.godPower);
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(60f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            int num2 = 5 * (num + 100) / 100;

            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy " + num2 + " for 25")))
            {
                Kongregate.PurchaseItem(Premium.ID_GOD_POWER5);
            }
            num2 = 25 * (num + 100) / 100;
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(100f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(100f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy " + num2 + " for 110")))
            {
                Kongregate.PurchaseItem(Premium.ID_GOD_POWER25);
            }
            num2 = 50 * (num + 100) / 100;
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(140f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(140f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy " + num2 + " for 210")))
            {
                Kongregate.PurchaseItem("jeahitsmine");
            }
            num2 = 100 * (num + 100) / 100;
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(180f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(180f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy " + num2 + " for 399")))
            {
                Kongregate.PurchaseItem(Premium.ID_GOD_POWER100);
            }
            KredOffersUi.marginTop += 225;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(250f)));
            KredOffersUi.AddHeader("Lucky Draws", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(55f)), "Try out your luck!");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(185f), GuiBase.Width(400f), GuiBase.Height(35f)), "You have: " + App.State.PremiumBoni.LuckyDraws.GuiText);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(210f), GuiBase.Width(400f), GuiBase.Height(35f)), "You can open up at most 50 a day.");
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(60f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 1 for 10")))
            {
                Kongregate.PurchaseItem(Premium.ID_LUCKY_DRAW);
            }
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(100f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(100f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 10 for 90")))
            {
                Kongregate.PurchaseItem(Premium.ID_LUCKY_DRAW10);
            }
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(140f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(140f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 50 for 398")))
            {
                Kongregate.PurchaseItem(Premium.ID_LUCKY_DRAW50);
            }
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(180f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.luckyDraw);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(180f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Open one")))
            {
                GuiBase.ShowToast(App.State.PremiumBoni.UseLuckyDraw());
            }
            if (App.State.PremiumBoni.TimeForNextLuckyDraw < 0)
            {
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(95f), GuiBase.Width(200f), GuiBase.Height(25f)), "Get your free draw now!");
                if (GUI.Button(new Rect(GuiBase.Width(240f), GuiBase.Height(100f), GuiBase.Width(130f), GuiBase.Height(32f)), new GUIContent("Get free draw!")))
                {
                    App.State.PremiumBoni.GetFreeLuckyDraw();
                }
            }
            else
            {
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(95f), GuiBase.Width(200f), GuiBase.Height(50f)), "Time until your free draw is ready: " + Conv.MsToGuiText(App.State.PremiumBoni.TimeForNextLuckyDraw.ToLong(), true));
            }
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(140f), GuiBase.Width(450f), GuiBase.Height(50f)), App.State.Ext.Lucky.LastDrawText);
            KredOffersUi.marginTop += 240;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(220f)));
            KredOffersUi.AddHeader("Daily Packs", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(55f)), "Get one additional Lucky Draw and 2 God Power once a day for 15 or 30 days!");
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(60f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 15 for 50")))
            {
                Kongregate.PurchaseItem(Premium.ID_DAILY_PACK_15);
            }
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(100f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(100f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 30 for 90")))
            {
                Kongregate.PurchaseItem(Premium.ID_DAILY_PACK);
            }
            int num3 = 110;

            if (App.State.PremiumBoni.DailyPackDaysLeft > 0)
            {
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(150f), GuiBase.Width(400f), GuiBase.Height(30f)), "Packs Left: " + App.State.PremiumBoni.DailyPackDaysLeft.GuiText);
                if (App.State.PremiumBoni.TimeForNextDailyPack <= 0L)
                {
                    GUI.Label(new Rect(GuiBase.Width(580f), GuiBase.Height(150f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.dailyPack);
                    if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(150f), GuiBase.Width(120f), GuiBase.Height(32f)), new GUIContent("Open Pack")))
                    {
                        App.State.PremiumBoni.GetDailyPack();
                    }
                }
                else
                {
                    GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(110f), GuiBase.Width(260f), GuiBase.Height(50f)), "Time until the next pack arrives: " + Conv.MsToGuiText(App.State.PremiumBoni.TimeForNextDailyPack, true));
                }
                num3 = 180;
            }
            KredOffersUi.marginTop += num3;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(300f)));
            KredOffersUi.AddHeader("Pet Token", 20, style);
            int num4 = 60;

            if (!App.State.PremiumBoni.BoughtLimitedPetToken)
            {
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height((float)num4), GuiBase.Width(400f), GuiBase.Height(100f)), "Limited Offer. You can only buy this once!");
                GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height((float)num4), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
                if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height((float)num4), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 1 for 49")))
                {
                    Kongregate.PurchaseItem(Premium.ID_PET_TOKEN_LIMITED);
                }
                KredOffersUi.marginTop += 40;
                num4 += 40;
            }
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height((float)num4), GuiBase.Width(400f), GuiBase.Height(100f)), "Unlock special Pets!\nYou can see the pets in Fight -> Pets.");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height((float)(num4 + 70)), GuiBase.Width(150f), GuiBase.Height(30f)), "You have: " + App.State.PremiumBoni.PetToken.GuiText);
            GUI.Label(new Rect(GuiBase.Width(150f), GuiBase.Height((float)(num4 + 62)), GuiBase.Width(50f), GuiBase.Height(50f)), KredOffersUi.imgPetToken);
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height((float)num4), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height((float)num4), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 1 for 150")))
            {
                Kongregate.PurchaseItem(Premium.ID_PET_TOKEN);
            }
            num4 += 40;
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height((float)num4), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height((float)num4), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 3 for 399")))
            {
                Kongregate.PurchaseItem(Premium.ID_PET_TOKEN3);
            }
            KredOffersUi.marginTop += 180;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(300f)));
            KredOffersUi.AddHeader("Improved Crystal Upgrade", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "Adds 25% to the starting upgrade chance for all crystals (can't go higher than 95%)!\nYou can get this only once.");
            if (App.State.PremiumBoni.HasCrystalImprovement)
            {
                GUI.Label(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "You own this already!");
            }
            else
            {
                GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(60f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
                if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy for 135")))
                {
                    Kongregate.PurchaseItem(Premium.ID_CRYSTAL_CHANCE);
                }
            }
            KredOffersUi.marginTop += 120;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(300f)));
            KredOffersUi.AddHeader("Crystal Equip Slot", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "Adds one more equip slot for your crystals!\n");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(83f), GuiBase.Width(400f), GuiBase.Height(100f)), "Currently you can equip " + App.State.PremiumBoni.MaxCrystals.GuiText + " crystals at once.");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(106f), GuiBase.Width(400f), GuiBase.Height(100f)), "You can buy up to " + (6 - App.State.PremiumBoni.MaxCrystals).GuiText + " more slots.");
            if (App.State.PremiumBoni.MaxCrystals >= 6)
            {
                GUI.Label(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "Your slots are maxed!");
            }
            else
            {
                GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(60f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
                if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy for 90")))
                {
                    Kongregate.PurchaseItem(Premium.ID_CRYSTAL_SLOT);
                }
            }
            KredOffersUi.marginTop += 135;
            GUI.EndGroup();
            if (App.State.PremiumBoni.ImprovedNextAt)
            {
                GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(300f)));
                KredOffersUi.AddHeader("Improved Next At for challenges", 20, style);
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "If you buy this, improved next at will also work in challenges!\n");
                if (App.State.PremiumBoni.ChallengeImprovedNextAt)
                {
                    GUI.Label(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "You own this already!");
                }
                else
                {
                    GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(60f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
                    if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy for 175")))
                    {
                        Kongregate.PurchaseItem(Premium.ID_CHALLENGE_NEXT_AT);
                    }
                }
                KredOffersUi.marginTop += 100;
                GUI.EndGroup();
            }
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(300f)));
            KredOffersUi.AddHeader("Refrigerator", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "Keeps your food save. If you buy this, you won't lose your pet food after rebirthing!\n");
            if (App.State.PremiumBoni.PetFoodAfterRebirth)
            {
                GUI.Label(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "You own this already!");
            }
            else
            {
                GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(60f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
                if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy for 175")))
                {
                    Kongregate.PurchaseItem(Premium.ID_FOOD_AFTER_REBIRTH);
                }
            }
            KredOffersUi.marginTop += 110;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(300f)));
            KredOffersUi.AddHeader("Unlimited Gender Change", 20, style);
            if (App.State.PremiumBoni.HasUnlimitedGenderChange)
            {
                string str = "male";
                if (App.State.Avatar.IsFemale)
                {
                    str = "female";
                }
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(390f), GuiBase.Height(100f)), "Change your gender. Your current gender is " + str);
                if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(140f), GuiBase.Height(28f)), new GUIContent("Change")))
                {
                    App.State.Avatar.GenderChosen = false;
                    HeroImage.Init(true);
                }
                KredOffersUi.marginTop += 20;
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(100f), GuiBase.Width(390f), GuiBase.Height(100f)), "Change your name. Your current name is " + App.State.AvatarName);
                if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(100f), GuiBase.Width(140f), GuiBase.Height(28f)), new GUIContent("Change")))
                {
                    App.State.ChangeAvatarName = true;
                }
            }
            else
            {
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "If you buy this, you can change your name and gender for free as often as you want!\n");
                GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(60f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
                if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy for 149")))
                {
                    Kongregate.PurchaseItem(Premium.ID_UGC);
                }
            }
            KredOffersUi.marginTop += 150;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(180f)));
            KredOffersUi.AddHeader("Ultimate shadow summon", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(55f)), "Creating shadow clones is too slow? With this you will max them instantly!");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(140f), GuiBase.Width(400f), GuiBase.Height(30f)), "You have: " + App.State.PremiumBoni.UltimateShadowSummonCount);
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(60f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 1 for 15")))
            {
                Kongregate.PurchaseItem(Premium.ID_SHADOW_SUMMON);
            }
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(100f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(100f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 10 for 120")))
            {
                Kongregate.PurchaseItem(Premium.ID_SHADOW_SUMMON10);
            }
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(140f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.imgShadowSummon);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(140f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Use 1")))
            {
                App.State.PremiumBoni.UseUltimateShadowSummon();
            }
            KredOffersUi.marginTop += 170;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(180f)));
            KredOffersUi.AddHeader("Godly liquid", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(55f)), "Doubles your speed when creating creations (and clones) for 90 minutes. (Multiplies with godly liquid V2)");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(110f), GuiBase.Width(400f), GuiBase.Height(30f)), "Duration left: " + Conv.MsToGuiText(App.State.PremiumBoni.GodlyLiquidDuration, true));
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(140f), GuiBase.Width(400f), GuiBase.Height(30f)), "You have: " + App.State.PremiumBoni.GodlyLiquidCount);
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(60f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 1 for 10")))
            {
                Kongregate.PurchaseItem("nightmare");
            }
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(100f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(100f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 10 for 90")))
            {
                Kongregate.PurchaseItem("myfirstid");
            }
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(140f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.imgGodlyLiquid);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(140f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Use 1")))
            {
                App.State.PremiumBoni.UseGodlyLiquid();
            }
            KredOffersUi.marginTop += 170;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(180f)));
            KredOffersUi.AddHeader("Godly liquid V2", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(55f)), "Doubles your speed when creating creations (and clones) until your next rebirth.");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(110f), GuiBase.Width(400f), GuiBase.Height(30f)), "Is in use: " + App.State.PremiumBoni.GodlyLiquidV2InUse);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(140f), GuiBase.Width(400f), GuiBase.Height(30f)), "You have: " + App.State.PremiumBoni.GodlyLiquidV2Count);
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(60f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 1 for 33")))
            {
                Kongregate.PurchaseItem(Premium.ID_GODLY_LIQUID_REBIRTH);
            }
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(100f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(100f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 10 for 299")))
            {
                Kongregate.PurchaseItem(Premium.ID_GODLY_LIQUID_REBIRTH10);
            }
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(140f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.imgGodlyLiquidV2);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(140f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Use 1")))
            {
                App.State.PremiumBoni.UseGodlyLiquidRebirth();
            }
            KredOffersUi.marginTop += 170;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(180f)));
            KredOffersUi.AddHeader("Chakra pill", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(65f)), "Increases your chakra to let your clones build faster.\nDoubles the speed to build monuments and upgrades for 90 minutes. (Multiplies with chakra pill V2)");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(120f), GuiBase.Width(400f), GuiBase.Height(30f)), "Duration left: " + Conv.MsToGuiText(App.State.PremiumBoni.ChakraPillDuration, true));
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(150f), GuiBase.Width(400f), GuiBase.Height(30f)), "You have: " + App.State.PremiumBoni.ChakraPillCount);
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(70f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(70f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 1 for 10")))
            {
                Kongregate.PurchaseItem("xzp");
            }
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(110f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(110f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 10 for 90")))
            {
                Kongregate.PurchaseItem("helloworld");
            }
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(150f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.imgChakraPill);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(150f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Use 1")))
            {
                App.State.PremiumBoni.UseChakraPill();
            }
            KredOffersUi.marginTop += 180;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)KredOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(180f)));
            KredOffersUi.AddHeader("Chakra pill V2", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(65f)), "Increases your chakra to let your clones build faster.\nDoubles the speed to build monuments and upgrades until your next rebirth.");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(120f), GuiBase.Width(400f), GuiBase.Height(30f)), "Is in use: " + App.State.PremiumBoni.ChakraPillV2InUse);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(150f), GuiBase.Width(400f), GuiBase.Height(30f)), "You have: " + App.State.PremiumBoni.ChakraPillV2Count);
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(70f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(70f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 1 for 33")))
            {
                Kongregate.PurchaseItem(Premium.ID_CHAKRA_PILL_REBIRTH);
            }
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(110f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.kreds);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(110f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Buy 10 for 299")))
            {
                Kongregate.PurchaseItem(Premium.ID_CHAKRA_PILL_REBIRTH10);
            }
            GUI.Label(new Rect(GuiBase.Width(590f), GuiBase.Height(150f), GuiBase.Width(32f), GuiBase.Height(32f)), KredOffersUi.imgChakraPillV2);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(150f), GuiBase.Width(140f), GuiBase.Height(32f)), new GUIContent("Use 1")))
            {
                App.State.PremiumBoni.UseChakraPillRebirth();
            }
            KredOffersUi.marginTop += 180;
            GUI.EndGroup();
            GUI.EndScrollView();
        }
Пример #19
0
        private static void ShowAdUi()
        {
            GUIStyle style  = GUI.skin.GetStyle("Label");
            GUIStyle style2 = GUI.skin.GetStyle("Button");

            style2.fontSize = GuiBase.FontSize(16);
            style.alignment = TextAnchor.UpperLeft;
            style.fontSize  = GuiBase.FontSize(16);
            GUI.Box(new Rect(GuiBase.Width(290f), GuiBase.Height(110f), GuiBase.Width(660f), GuiBase.Height(480f)), string.Empty);
            int num  = 125;
            int num2 = 305;

            if (GUI.Button(new Rect(GuiBase.Width((float)(num2 + 420)), GuiBase.Height((float)num), GuiBase.Width(140f), GuiBase.Height(28f)), new GUIContent("Back")))
            {
                KredOffersUi.ShowAds = false;
            }
            GUI.Label(new Rect(GuiBase.Width((float)num2), GuiBase.Height((float)(num + 5)), GuiBase.Width(400f), GuiBase.Height(60f)), "For every Ad you watch, you will receive 1 Ad point. You can spend Ad points for various benefits below.");
            bool flag = App.State.Ext.AdsWatched >= 20;

            if (!App.CanShowAds || flag)
            {
                num += 45;
                GUI.Label(new Rect(GuiBase.Width((float)num2), GuiBase.Height((float)(num + 5)), GuiBase.Width(500f), GuiBase.Height(60f)), "You currently have " + App.State.Ext.AdPoints.ToInt() + " Ad points.\nCurrently there are no Ads available. Please come back later.");
            }
            else
            {
                num += 45;
                if (GUI.Button(new Rect(GuiBase.Width((float)(num2 + 420)), GuiBase.Height((float)num), GuiBase.Width(140f), GuiBase.Height(28f)), new GUIContent("Watch Ad")))
                {
                    Kongregate.ShowIncentivizedAd();
                }
                GUI.Label(new Rect(GuiBase.Width((float)num2), GuiBase.Height((float)(num + 5)), GuiBase.Width(400f), GuiBase.Height(60f)), "You currently have " + App.State.Ext.AdPoints.ToInt() + " Ad points.");
            }
            num += 50;
            if (!App.State.Statistic.HasStartedUltimateBaalChallenge && !App.State.Statistic.HasStartedArtyChallenge)
            {
                if (App.State.Multiplier.DrawMultiPhysical < 10000000000L)
                {
                    KredOffersUi.addSpendPointsButton(ref num, KredOffersUi.Reward.physical, "Increase your Physical by 10% until you rebirth", 1, "Maxed at 100 billion and not useable in UBC / UAC");
                }
                if (App.State.Multiplier.DrawMultiMystic < 10000000000L)
                {
                    KredOffersUi.addSpendPointsButton(ref num, KredOffersUi.Reward.mystic, "Increase your Mystic by 10% until you rebirth", 1, "Maxed at 100 billion and not useable in UBC / UAC");
                }
                if (App.State.Multiplier.DrawMultiBattle < 10000000000L)
                {
                    KredOffersUi.addSpendPointsButton(ref num, KredOffersUi.Reward.battle, "Increase your Battle by 10% until you rebirth", 1, "Maxed at 100 billion and not useable in UBC / UAC");
                }
                if (App.State.Multiplier.DrawMultiCreating < 10000000000L)
                {
                    KredOffersUi.addSpendPointsButton(ref num, KredOffersUi.Reward.creating, "Increase your Creating by 10% until you rebirth", 1, "Maxed at 100 billion and not useable in UBC / UAC");
                }
                if (App.State.Multiplier.DrawMultiPhysical < 10000000000L && App.State.Multiplier.DrawMultiMystic < 10000000000L && App.State.Multiplier.DrawMultiBattle < 10000000000L && App.State.Multiplier.DrawMultiCreating < 10000000000L)
                {
                    KredOffersUi.addSpendPointsButton(ref num, KredOffersUi.Reward.all, "Increase all 4 stats by 10% until you rebirth", 3, "Maxed at 100 billion");
                }
            }
            CDouble cDouble = App.State.DivinityGainSec(true) * 1200;

            KredOffersUi.addSpendPointsButton(ref num, KredOffersUi.Reward.div1, "Get " + cDouble.GuiText + " Divinity", 1, string.Empty);
            KredOffersUi.addSpendPointsButton(ref num, KredOffersUi.Reward.div2, "Get " + (cDouble * 2.5).GuiText + " Divinity", 2, string.Empty);
            KredOffersUi.addSpendPointsButton(ref num, KredOffersUi.Reward.creatingSpeed, "Increase your creating speed to 300% for 10 minutes", 2, string.Empty);
            KredOffersUi.addSpendPointsButton(ref num, KredOffersUi.Reward.puny, "Get one Puny Food", 2, string.Empty);
            KredOffersUi.addSpendPointsButton(ref num, KredOffersUi.Reward.strong, "Get one Strong Food", 4, string.Empty);
            KredOffersUi.addSpendPointsButton(ref num, KredOffersUi.Reward.mighty, "Get one Mighty Food", 6, string.Empty);
            KredOffersUi.addSpendPointsButton(ref num, KredOffersUi.Reward.lucky, "Get one Lucky Draw", 10, string.Empty);
        }
        private void show()
        {
            GUIStyle style = GUI.skin.GetStyle("Label");

            style.alignment = TextAnchor.UpperLeft;
            style.fontSize  = GuiBase.FontSize(16);
            GUI.BeginGroup(new Rect(GuiBase.Width(290f), GuiBase.Height(110f), GuiBase.Width(660f), GuiBase.Height(480f)));
            GUI.Box(new Rect(GuiBase.Width(0f), GuiBase.Height(0f), GuiBase.Width(660f), GuiBase.Height(480f)), string.Empty);
            int num  = 20;
            int num2 = 20;

            if (GUI.Button(new Rect(GuiBase.Width(550f), GuiBase.Height((float)num2), GuiBase.Width(80f), GuiBase.Height(30f)), "Back"))
            {
                if (this.showAndroidConnect)
                {
                    this.showAndroidConnect = false;
                }
                else if (this.showSteamConnect)
                {
                    this.showSteamConnect = false;
                }
                else if (this.showKongregateConnect)
                {
                    this.showKongregateConnect = false;
                }
                else
                {
                    InfoArea.ShowConnect = false;
                }
            }
            style.fontStyle = FontStyle.Bold;
            GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)num2), GuiBase.Width(600f), GuiBase.Height(30f)), "Connect your online save");
            style.fontStyle = FontStyle.Normal;
            num2           += 35;
            bool flag  = App.State.SteamIdLong > 0L;
            bool flag2 = App.State.KongUserIdLong > 0L;
            bool flag3 = !string.IsNullOrEmpty(App.State.AndroidId);

            GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)num2), GuiBase.Width(600f), GuiBase.Height(230f)), "If you play the game on multiple plattforms, you can connect your online save here.\nWhen you switch from one plattform to a different one, please 'Save Online' on the plattform before you close the game, then click 'Load Online' on the other plattform as the first thing you do.\n\nYou need to have an online save on each plattform for it to work. So make sure to click 'Save Online' on all plattforms, before you try to connect the saves!");
            num2 += 195;
            if (this.showSteamConnect)
            {
                this.ShowSteamConnect(num, num2);
                GUI.EndGroup();
                return;
            }
            if (this.showAndroidConnect)
            {
                this.ShowAndroidConnect(num, num2);
                GUI.EndGroup();
                return;
            }
            if (this.showKongregateConnect)
            {
                this.ShowKongregateConnect(num, num2);
                GUI.EndGroup();
                return;
            }
            if (flag)
            {
                if (App.CurrentPlattform == Plattform.Steam && App.State.Ext.ImportedSaveFromKongToSteam)
                {
                    GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)(num2 - 30)), GuiBase.Width(600f), GuiBase.Height(230f)), "You loaded your Kongregate save to your Steam version, so this save can't get any steam achievements or highscores. If you want to change that, you need to reset your game.");
                    num2 += 55;
                }
                GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)num2), GuiBase.Width(600f), GuiBase.Height(230f)), string.Concat(new object[]
                {
                    "Your online save is connected to Steam\nSteam Id: ",
                    App.State.SteamIdLong + -36546L,
                    " - Steam Name: ",
                    App.State.SteamName
                }));
                if (App.CurrentPlattform != Plattform.Steam && GUI.Button(new Rect(GuiBase.Width(500f), GuiBase.Height((float)(num2 + 5)), GuiBase.Width(130f), GuiBase.Height(30f)), "Disconnect"))
                {
                    App.State.SteamId   = string.Empty;
                    App.State.SteamName = string.Empty;
                }
            }
            else
            {
                GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)num2), GuiBase.Width(600f), GuiBase.Height(230f)), "Your online save is not connected to Steam");
                if (GUI.Button(new Rect(GuiBase.Width(500f), GuiBase.Height((float)(num2 + 5)), GuiBase.Width(130f), GuiBase.Height(30f)), "Connect Now"))
                {
                    this.showSteamConnect = true;
                }
            }
            num2 += 55;
            if (flag2)
            {
                GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)num2), GuiBase.Width(600f), GuiBase.Height(230f)), string.Concat(new object[]
                {
                    "Your online save is connected to Kongregate\nKongregate Id: ",
                    App.State.KongUserIdLong + -36546L,
                    " - Kongregate Name: ",
                    App.State.KongUserName
                }));
                if (App.CurrentPlattform != Plattform.Kongregate && GUI.Button(new Rect(GuiBase.Width(500f), GuiBase.Height((float)(num2 + 5)), GuiBase.Width(130f), GuiBase.Height(30f)), "Disconnect"))
                {
                    App.State.KongUserId   = string.Empty;
                    App.State.KongUserName = string.Empty;
                }
            }
            else
            {
                GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)num2), GuiBase.Width(600f), GuiBase.Height(230f)), "Your online save is not connected to Kongregate");
                if (GUI.Button(new Rect(GuiBase.Width(500f), GuiBase.Height((float)(num2 + 5)), GuiBase.Width(130f), GuiBase.Height(30f)), "Connect Now"))
                {
                    this.showKongregateConnect = true;
                }
            }
            num2 += 55;
            if (!string.IsNullOrEmpty(App.State.AndroidId))
            {
                GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)num2), GuiBase.Width(600f), GuiBase.Height(230f)), "Your online save is connected to Android\nAndroid Id: " + App.State.AndroidId + " - Android Name: " + App.State.AndroidName);
                if (App.CurrentPlattform != Plattform.Android && GUI.Button(new Rect(GuiBase.Width(500f), GuiBase.Height((float)(num2 + 5)), GuiBase.Width(130f), GuiBase.Height(30f)), "Disconnect"))
                {
                    App.State.AndroidId   = string.Empty;
                    App.State.AndroidName = string.Empty;
                }
            }
            else
            {
                GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)num2), GuiBase.Width(600f), GuiBase.Height(230f)), "Your online save is not connected to Android");
                if (GUI.Button(new Rect(GuiBase.Width(500f), GuiBase.Height((float)(num2 + 5)), GuiBase.Width(130f), GuiBase.Height(30f)), "Connect Now"))
                {
                    this.showAndroidConnect = true;
                }
            }
            num2 += 50;
            GUI.EndGroup();
        }
        private void show()
        {
            if (this.lastScreenWidth != (float)Screen.width)
            {
                this.lastScreenWidth = (float)Screen.width;
                TBSUi.ScreenChanged  = true;
            }
            this.lastScreenWidth = (float)Screen.width;
            if (this.timeMs == 0L)
            {
                this.timeMs = UpdateStats.CurrentTimeMillis();
            }
            GUIStyle style = GUI.skin.GetStyle("Label");

            style.alignment = TextAnchor.UpperLeft;
            style.fontSize  = GuiBase.FontSize(20);
            GUI.BeginGroup(new Rect(GuiBase.Width(290f), GuiBase.Height(110f), GuiBase.Width(660f), GuiBase.Height(480f)));
            GUI.Box(new Rect(GuiBase.Width(0f), GuiBase.Height(0f), GuiBase.Width(660f), GuiBase.Height(480f)), string.Empty);
            if (App.State.Statistic.HighestGodDefeated < 28 || App.State.Statistic.HasStartedArtyChallenge)
            {
                GUI.Label(new Rect(GuiBase.Width(140f), GuiBase.Height(150f), GuiBase.Width(640f), GuiBase.Height(30f)), "You need to defeat Baal to enter 'The Baal Slayer'.", style);
                GUI.EndGroup();
                return;
            }
            style.fontStyle = FontStyle.Bold;
            GUI.Label(new Rect(GuiBase.Width(245f), GuiBase.Height(10f), GuiBase.Width(250f), GuiBase.Height(30f)), new GUIContent("The Baal Slayer"));
            style.fontSize = GuiBase.FontSize(16);
            string text = "Info";

            if (this.showInfo)
            {
                text = "Back";
            }
            if (!this.showBP && GUI.Button(new Rect(GuiBase.Width(450f), GuiBase.Height(10f), GuiBase.Width(65f), GuiBase.Height(30f)), text))
            {
                this.showInfo = !this.showInfo;
            }
            string text2 = "Baal Power";

            if (this.showBP)
            {
                text2 = "Back";
            }
            if (!this.showInfo && GUI.Button(new Rect(GuiBase.Width(530f), GuiBase.Height(10f), GuiBase.Width(100f), GuiBase.Height(30f)), text2))
            {
                this.showBP = !this.showBP;
            }
            if (this.showInfo)
            {
                style.fontStyle = FontStyle.Normal;
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(80f), GuiBase.Width(580f), GuiBase.Height(400f)), "Hit different body-parts to increase the critical chance and damage when fighting gods. Critical damage will always ignore the defense.\nAll P. Baals have 100% critical chance and 500% critical damage. Now you can beat that!\nClick 'Start' and then 'Hit' when the blue progress is within the white box. If your timing is right, it increases the level of the nearest body part by 1, if it is wrong, it decreases the level by 1.\nThe difficulty increases with higher levels.\nEvery level from Wings, Tail, Mouth and Feet will increase the critical damage by 1% and every level to the eyes will increase the chance by 1. \nThe eyes are special, you have to hit an invisible white box where it is mirrored on the blue line. Alternatively you can play it normal but then you only get 1 score each level and 1 % crit every 2.5 levels.\nThe maximum chance is 100% and the maximum damage is 1000%");
            }
            else if (this.showBP)
            {
                this.showBPOptions();
            }
            else
            {
                GUI.Label(new Rect(GuiBase.Width(40f), GuiBase.Height(50f), GuiBase.Width(250f), GuiBase.Height(30f)), "Critical Chance % " + App.State.Crits.CriticalPercent(App.State.GameSettings.TBSEyesIsMirrored));
                GUI.Label(new Rect(GuiBase.Width(240f), GuiBase.Height(50f), GuiBase.Width(250f), GuiBase.Height(30f)), "Critical Damage % " + App.State.Crits.CriticalDamage);
                GUI.Label(new Rect(GuiBase.Width(450f), GuiBase.Height(50f), GuiBase.Width(250f), GuiBase.Height(30f)), new GUIContent("Score " + App.State.Crits.Score(App.State.GameSettings.TBSEyesIsMirrored), "Eyes count 4x if mirrored and all other levels count 1x. This is added to your statistic multi and highscore."));
                style.fontStyle = FontStyle.Normal;
                GUI.DrawTexture(new Rect(GuiBase.Width(210f), GuiBase.Height(120f), GuiBase.Width(250f), GuiBase.Height(250f)), TBSUi.prinny);
                string arg     = string.Empty;
                string tooltip = string.Empty;
                int    num     = App.State.Crits.EyesNoMirror;
                if (App.State.GameSettings.TBSEyesIsMirrored)
                {
                    arg     = " (mirrored)";
                    tooltip = "This one is mirrored. Hit where the white box would be mirrored from the blue line in the center.";
                    num     = App.State.Crits.Eyes;
                }
                GUI.Label(new Rect(GuiBase.Width(220f), GuiBase.Height(140f), GuiBase.Width(175f), GuiBase.Height(30f)), new GUIContent("Eyes Lv " + num + arg, tooltip));
                GUI.Label(new Rect(GuiBase.Width(165f), GuiBase.Height(230f), GuiBase.Width(100f), GuiBase.Height(30f)), "Wings Lv " + App.State.Crits.Wings);
                GUI.Label(new Rect(GuiBase.Width(210f), GuiBase.Height(330f), GuiBase.Width(100f), GuiBase.Height(30f)), "Tail Lv " + App.State.Crits.Tail);
                GUI.Label(new Rect(GuiBase.Width(390f), GuiBase.Height(320f), GuiBase.Width(100f), GuiBase.Height(30f)), "Feet Lv " + App.State.Crits.Feet);
                GUI.Label(new Rect(GuiBase.Width(400f), GuiBase.Height(150f), GuiBase.Width(100f), GuiBase.Height(30f)), "Mouth Lv " + App.State.Crits.Mouth);
                long timeProgressed = UpdateStats.CurrentTimeMillis() - this.timeMs;
                this.timeMs = UpdateStats.CurrentTimeMillis();
                if (App.State.GameSettings.TBSEyesIsMirrored)
                {
                    App.State.Crits.Eyes = this.CreateProgressGame(50, 80, this.eyesGame, App.State.Crits.Eyes, TBSUi.HitType.eyes, timeProgressed);
                }
                else
                {
                    App.State.Crits.EyesNoMirror = this.CreateProgressGame(50, 80, this.eyesNonMirrorGame, App.State.Crits.EyesNoMirror, TBSUi.HitType.eyes_non_mirror, timeProgressed);
                }
                App.State.Crits.Wings = this.CreateProgressGame(30, 210, this.wingsGame, App.State.Crits.Wings, TBSUi.HitType.top, timeProgressed);
                App.State.Crits.Tail  = this.CreateProgressGame(100, 360, this.tailGame, App.State.Crits.Tail, TBSUi.HitType.left, timeProgressed);
                App.State.Crits.Feet  = this.CreateProgressGame(350, 350, this.feetGame, App.State.Crits.Feet, TBSUi.HitType.right, timeProgressed);
                App.State.Crits.Mouth = this.CreateProgressGame(480, 180, this.mouthGame, App.State.Crits.Mouth, TBSUi.HitType.bottom, timeProgressed);
                TBSUi.ScreenChanged   = false;
                App.State.GameSettings.TBSEyesIsMirrored = GUI.Toggle(new Rect(GuiBase.Width(220f), GuiBase.Height(110f), GuiBase.Width(300f), GuiBase.Height(30f)), App.State.GameSettings.TBSEyesIsMirrored, new GUIContent("Mirrored Eyes", "If this is on, you need to hit the white box from the eyes mirrored from the blue line. While mirrored you get 1 % crit each level and 4 score. If it is not mirrored you get 1% crit every 2.5 levels and 1 score each level."));
            }
            GUI.EndGroup();
        }
        protected void ShowScrollViewElements(int marginTop, GUIStyle labelStyle)
        {
            DivinityGenerator generator = App.State.Generator;

            if (!App.State.Generator.IsBuilt)
            {
                labelStyle.fontSize  = GuiBase.FontSize(16);
                labelStyle.alignment = TextAnchor.UpperCenter;
                GuiBase.CreateProgressBar(marginTop, generator.getPercent(), generator.Name, generator.Description + generator.MissingItems, GuiBase.progressBg, GuiBase.progressFgBlue);
                labelStyle.fontSize = GuiBase.FontSize(18);
                GUI.Label(new Rect(GuiBase.Width(230f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), string.Empty + generator.Level, labelStyle);
                GUI.Label(new Rect(GuiBase.Width(330f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), string.Empty + generator.ShadowCloneCount, labelStyle);
                if (GUI.Button(new Rect(GuiBase.Width(470f), GuiBase.Height((float)marginTop), GuiBase.Width(40f), GuiBase.Height(30f)), "+"))
                {
                    generator.AddCloneCount((int)this.ClonesToAdd);
                }
                if (GUI.Button(new Rect(GuiBase.Width(540f), GuiBase.Height((float)marginTop), GuiBase.Width(40f), GuiBase.Height(30f)), "-"))
                {
                    generator.RemoveCloneCount((int)this.ClonesToAdd);
                }
            }
            else if (!DivinityGeneratorUi.AddIsOpen)
            {
                labelStyle.alignment = TextAnchor.UpperCenter;
                marginTop           += 170;
                labelStyle.fontSize  = GuiBase.FontSize(18);
                labelStyle.fontStyle = FontStyle.Bold;
                GUI.Label(new Rect(GuiBase.Width(15f), GuiBase.Height((float)marginTop), GuiBase.Width(220f), GuiBase.Height(30f)), "Upgrade");
                GUI.Label(new Rect(GuiBase.Width(210f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), "Level", labelStyle);
                GUI.Label(new Rect(GuiBase.Width(280f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), "Stop At", labelStyle);
                GUI.Label(new Rect(GuiBase.Width(370f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), "Clones", labelStyle);
                marginTop           += 45;
                labelStyle.fontStyle = FontStyle.Normal;
                foreach (GeneratorUpgrade current in generator.Upgrades)
                {
                    labelStyle.fontSize = GuiBase.FontSize(16);
                    GuiBase.CreateProgressBar(marginTop, current.getPercent(), current.Name, current.Description + current.MissingItems, GuiBase.progressBg, GuiBase.progressFgGreen);
                    labelStyle.fontSize = GuiBase.FontSize(18);
                    GUI.Label(new Rect(GuiBase.Width(210f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), string.Empty + current.Level.CommaFormatted, labelStyle);
                    GUI.Label(new Rect(GuiBase.Width(370f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), string.Empty + current.ShadowCloneCount.CommaFormatted, labelStyle);
                    if (App.CurrentPlattform == Plattform.Android)
                    {
                        GeneratorUpgrade up        = current;
                        GUIStyle         textField = Gui.ChosenSkin.textField;
                        if (GUI.Button(new Rect(GuiBase.Width(305f), GuiBase.Height((float)marginTop), GuiBase.Width(55f), GuiBase.Height(25f)), up.StopAt + string.Empty, textField))
                        {
                            base.ShowNumberInput("Stop at for " + up.Name + " " + up.Name, up.StopAt, 2147483647, delegate(CDouble x)
                            {
                                up.StopAt = x.ToInt();
                            });
                        }
                    }
                    else
                    {
                        string s = GUI.TextField(new Rect(GuiBase.Width(305f), GuiBase.Height((float)marginTop), GuiBase.Width(55f), GuiBase.Height(25f)), current.StopAt.ToString());
                        int.TryParse(s, out current.StopAt);
                        if (current.StopAt < 0)
                        {
                            current.StopAt = 0;
                        }
                    }
                    if (GUI.Button(new Rect(GuiBase.Width(500f), GuiBase.Height((float)marginTop), GuiBase.Width(40f), GuiBase.Height(30f)), "+"))
                    {
                        current.AddCloneCount((int)this.ClonesToAdd);
                    }
                    if (GUI.Button(new Rect(GuiBase.Width(560f), GuiBase.Height((float)marginTop), GuiBase.Width(40f), GuiBase.Height(30f)), "-"))
                    {
                        current.RemoveCloneCount((int)this.ClonesToAdd);
                    }
                    marginTop += 35;
                }
            }
            else
            {
                for (int i = 1; i < App.State.AllCreations.Count; i++)
                {
                    Creation creation = App.State.AllCreations[i];
                    labelStyle.fontSize = GuiBase.FontSize(16);
                    GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)marginTop), GuiBase.Width(160f), GuiBase.Height(30f)), new GUIContent(creation.Name, "Capacity for one: " + creation.BuyCost.ToGuiText(true)), labelStyle);
                    GUI.Label(new Rect(GuiBase.Width(180f), GuiBase.Height((float)marginTop), GuiBase.Width(160f), GuiBase.Height(30f)), creation.Count.ToGuiText(true), labelStyle);
                    CDouble cDouble = App.State.GameSettings.DivGenCreatiosToAdd;
                    if (cDouble == 0)
                    {
                        cDouble = 10000;
                    }
                    if (cDouble > creation.Count)
                    {
                        cDouble = creation.Count;
                    }
                    CDouble cDouble2 = cDouble * creation.BuyCost;
                    if (cDouble2 > App.State.Generator.FreeCapacity)
                    {
                        cDouble       = App.State.Generator.FreeCapacity / creation.BuyCost;
                        cDouble.Value = Math.Floor(cDouble.Value);
                        cDouble2      = cDouble * creation.BuyCost;
                    }
                    GUI.Label(new Rect(GuiBase.Width(325f), GuiBase.Height((float)marginTop), GuiBase.Width(160f), GuiBase.Height(30f)), cDouble2.ToGuiText(true), labelStyle);
                    GUIStyle style = GUI.skin.GetStyle("Button");
                    style.fontSize = GuiBase.FontSize(16);
                    if (GUI.Button(new Rect(GuiBase.Width(480f), GuiBase.Height((float)marginTop), GuiBase.Width(130f), GuiBase.Height(30f)), cDouble.ToGuiText(true)) && cDouble > 0)
                    {
                        App.State.Generator.FilledCapacity += cDouble2;
                        creation.Count -= cDouble;
                    }
                    marginTop += 35;
                }
            }
        }
Пример #23
0
        protected override void ShowScrollViewElements(int marginTop, GUIStyle labelStyle)
        {
            if (this.showInfo)
            {
                labelStyle.alignment = TextAnchor.UpperLeft;
                string text = "\r\nYou can adjust defender clones who will defend against incoming ultimate beings. This fight is just like if you attack them by yourself, but you won't lose hp.\r\nIf you win, you will receive Energy. If you lose, they will steal level 1 crystals (1 - 5 or each kind depending on the UB who attacks) and energy. With energy you can upgrade your modules. If you have upgraded modules, you can adjust shadow clones and they will produce crystals every 10 minutes with the same kind of the module.\r\nYour modules will still generate crystals when you are offline, but UBs won't attack you.\r\n\r\nThey will always produce level 1 crystals which can be upgraded if you have enough of them. You will lose crystals depending on a percentage basis which increases by 5% after every upgrade.\r\nWhen you upgrade crystals, there are two buttons. 'Upgrade Opt' will upgrade your crystals so you won't lose any crystal. For example an ultimate crystal starts at 60%. That means if you have have 8 crystals, only the 'Upgrade All' button is available.  After clicking it, you will lose 4 crystals because 60% of 8 is 4.8 and the number is rounded down.\r\nIf you have at least 10, the 'Upgrade Opt' will appear and would upgrade 6 out of 10 with 4 crystals lost. If you have 11, it would upgrade still 10 with 4 lost and it keeps 1 left over.\r\n\r\nIf you equip crystals, you will get a boost which is shown in their tooltip. You can only equip one of a kind, and the highest grade will be equipped. If you upgrade a crystal of the same kind later to a higher grade, you need to unequip your old one and equip it again for the higher grade to take effect.\r\nYou can only equip 2 different crystals at the beginning. This can be increased if you buy a slot upgrade until at most 6 slots. There is also a very rare chance to receive a slot upgrade with a lucky draw.\r\nWhen you rebirth, all your equipped crystals will give you crystal power depending on their grade. Your crystal power increases various stats which is shown in the god power page.\r\n";
                this.scrollViewHeight = (int)labelStyle.CalcHeight(new GUIContent(text), GuiBase.Width(600f));
                GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)(marginTop - 2)), GuiBase.Width(600f), (float)this.scrollViewHeight), text, labelStyle);
                return;
            }
            double percent = 1.0;

            if (App.State.Ext.Factory.TimeUntilAttack > 0L)
            {
                percent = 1.0 - (double)App.State.Ext.Factory.TimeUntilAttack / 3600000.0;
            }
            string str = string.Empty;

            if (App.State.PremiumBoni.CrystalBonusDefender > 0)
            {
                str = "\nDefender clones will only take " + (100 - App.State.PremiumBoni.CrystalBonusDefender) + " % damage because of equipped crystals.";
            }
            GuiBase.CreateProgressBar(marginTop, percent, "Defender Clones", "Ultimate beings will attack your crystal factory 10 minutes after they become available to fight in the UBs-Tab.\nIf two are available at the same time, there will be a pause of 10 minutes after each fight.\nIf your clones defeat them, you will get the same boost as if you would fight them yourself.\nIf you lose, they will steal some of your energy or level 1 crystals!" + str, GuiBase.progressBg, GuiBase.progressFgRed);
            if (App.State.Ext.Factory.DefenderFightsText.Length > 0 && GUI.Button(new Rect(GuiBase.Width(260f), GuiBase.Height((float)marginTop), GuiBase.Width(60f), GuiBase.Height(30f)), new GUIContent("Log", "Shows a short log of the last UB battles vs your defender clones.")))
            {
                GuiBase.ShowBigMessage(App.State.Ext.Factory.DefenderFightsText.ToString());
                App.State.Ext.Factory.DefenderFightsText = new StringBuilder();
            }
            labelStyle.alignment = TextAnchor.MiddleCenter;
            GUI.Label(new Rect(GuiBase.Width(340f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), App.State.Ext.Factory.DefenderClones.CommaFormatted, labelStyle);
            labelStyle.alignment = TextAnchor.UpperLeft;
            if (GUI.Button(new Rect(GuiBase.Width(450f), GuiBase.Height((float)marginTop), GuiBase.Width(40f), GuiBase.Height(30f)), "+"))
            {
                App.State.Ext.Factory.AddCloneCount(App.State.GameSettings.ClonesToAddCount);
            }
            if (GUI.Button(new Rect(GuiBase.Width(500f), GuiBase.Height((float)marginTop), GuiBase.Width(40f), GuiBase.Height(30f)), "-"))
            {
                App.State.Ext.Factory.RemoveCloneCount(App.State.GameSettings.ClonesToAddCount);
            }
            marginTop += 35;
            if (App.State.Statistic.HasStarted1kChallenge)
            {
                GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)marginTop), GuiBase.Width(500f), GuiBase.Height(30f)), "UBs won't attack in 1KC.", labelStyle);
            }
            else
            {
                GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)marginTop), GuiBase.Width(500f), GuiBase.Height(30f)), "Next UB attack in: " + Conv.MsToGuiText(App.State.Ext.Factory.TimeUntilAttack, true), labelStyle);
            }
            App.State.GameSettings.AutofillDefenders = GUI.Toggle(new Rect(GuiBase.Width(340f), GuiBase.Height((float)(marginTop + 5)), GuiBase.Width(100f), GuiBase.Height(30f)), App.State.GameSettings.AutofillDefenders, new GUIContent("Autofill", "Automatically fills up your defender clones if you have enough idle clones up to this number"));
            int num = (App.State.Clones.MaxShadowClones - App.State.GameSettings.SavedClonesForFight).ToInt();

            if (App.CurrentPlattform == Plattform.Android)
            {
                GUIStyle textField = Gui.ChosenSkin.textField;
                if (GUI.Button(new Rect(GuiBase.Width(480f), GuiBase.Height((float)(marginTop + 3)), GuiBase.Width(100f), GuiBase.Height(25f)), App.State.GameSettings.MaxDefenderClones.ToString(), textField))
                {
                    base.ShowNumberInput("Maximum number of clones to autofill", App.State.GameSettings.MaxDefenderClones, num, delegate(CDouble x)
                    {
                        App.State.GameSettings.MaxDefenderClones = x.ToInt();
                    });
                }
            }
            else
            {
                string s = GUI.TextField(new Rect(GuiBase.Width(480f), GuiBase.Height((float)(marginTop + 5)), GuiBase.Width(100f), GuiBase.Height(25f)), App.State.GameSettings.MaxDefenderClones.ToString());
                int.TryParse(s, out App.State.GameSettings.MaxDefenderClones);
                if (App.State.GameSettings.MaxDefenderClones > num)
                {
                    App.State.GameSettings.MaxDefenderClones = num;
                }
                if (App.State.GameSettings.MaxDefenderClones < 0)
                {
                    App.State.GameSettings.MaxDefenderClones = 0;
                }
            }
            marginTop           += 40;
            labelStyle.fontSize  = GuiBase.FontSize(18);
            labelStyle.fontStyle = FontStyle.Bold;
            GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)marginTop), GuiBase.Width(200f), GuiBase.Height(30f)), new GUIContent("Energy", "Each UB you defeat will give you energy. You can use this energy to upgrade your modules."));
            GUI.Label(new Rect(GuiBase.Width(320f), GuiBase.Height((float)marginTop), GuiBase.Width(200f), GuiBase.Height(30f)), new GUIContent(App.State.Ext.Factory.Energy.GuiText, string.Empty));
            labelStyle.fontStyle = FontStyle.Normal;
            labelStyle.fontSize  = GuiBase.FontSize(16);
            marginTop           += 40;
            labelStyle.alignment = TextAnchor.MiddleCenter;
            labelStyle.fontStyle = FontStyle.Bold;
            GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)marginTop), GuiBase.Width(185f), GuiBase.Height(30f)), new GUIContent("Modules", "You can produce crystals with each module. The count of the produced crystal to be produced is the same as the module level."));
            GUI.Label(new Rect(GuiBase.Width(227f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), new GUIContent("Level", "A module can only create level 1 crystals. For each level one crystal is produced for each progressbar filled.\nEach level also increases the upgrade chance of crystals of this kind by 1%. This increase is capped at 25% for god or ultimate modules, no cap for the others. The chance can't go lower than 5%, or higher is 95%"));
            GUI.Label(new Rect(GuiBase.Width(340f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), new GUIContent("Clones", "Adjusted clones will fill the module constantly with light, air and water so the module can produce crystals.\nThe first 4 modules need 10k clones,the ultimate module needs 30k, and the god module 50k for every level.\nClicking + or - will fill in all you need or remove all clones."));
            App.State.GameSettings.AutoBuyForCrystal = GUI.Toggle(new Rect(GuiBase.Width(450f), GuiBase.Height((float)(marginTop + 4)), GuiBase.Width(300f), GuiBase.Height(25f)), App.State.GameSettings.AutoBuyForCrystal, new GUIContent("Autobuy", "If this is on, and you have defeated Nephthys, the game will automatically buy the creations you need to produce crystals."));
            labelStyle.fontStyle = FontStyle.Normal;
            marginTop           += 35;
            foreach (FactoryModule current in App.State.Ext.Factory.AllModules)
            {
                if (current.Crystals.Count > 0)
                {
                }
                GuiBase.CreateProgressBar(marginTop, (double)current.CurrentDuration / (double)current.BaseDuration, current.Name + " Module", current.InfoText, GuiBase.progressBg, GuiBase.progressFgGreen);
                GUI.Label(new Rect(GuiBase.Width(227f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), string.Empty + current.LevelText, labelStyle);
                if (current.Level < current.MaxLevel && GUI.Button(new Rect(GuiBase.Width(225f), GuiBase.Height((float)marginTop), GuiBase.Width(35f), GuiBase.Height(30f)), "+"))
                {
                    current.ChangeLevel(true);
                    current.AddNeededClones();
                }
                if (current.Level > 1 && GUI.Button(new Rect(GuiBase.Width(300f), GuiBase.Height((float)marginTop), GuiBase.Width(35f), GuiBase.Height(30f)), "-"))
                {
                    current.ChangeLevel(false);
                    current.AddNeededClones();
                }
                if (current.MaxLevel > 0)
                {
                    GUI.Label(new Rect(GuiBase.Width(340f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), current.ShadowClones.CommaFormatted, labelStyle);
                    if (GUI.Button(new Rect(GuiBase.Width(450f), GuiBase.Height((float)marginTop), GuiBase.Width(35f), GuiBase.Height(30f)), "+"))
                    {
                        current.AddNeededClones();
                    }
                    if (GUI.Button(new Rect(GuiBase.Width(495f), GuiBase.Height((float)marginTop), GuiBase.Width(35f), GuiBase.Height(30f)), "-"))
                    {
                        current.RemoveAllClones();
                    }
                }
                else
                {
                    GUI.Label(new Rect(GuiBase.Width(365f), GuiBase.Height((float)marginTop), GuiBase.Width(150f), GuiBase.Height(30f)), "Please upgrade first", labelStyle);
                }
                if (GUI.Button(new Rect(GuiBase.Width(540f), GuiBase.Height((float)marginTop), GuiBase.Width(80f), GuiBase.Height(30f)), new GUIContent("Upgrade", "You need " + current.UpgradeCost.GuiText + " Energy to upgrade this module.")))
                {
                    if (current.Upgrade(ref App.State.Ext.Factory.Energy))
                    {
                        GuiBase.ShowToast(current.Name + " has now a max level of " + current.MaxLevel.GuiText + "!");
                    }
                    else
                    {
                        GuiBase.ShowToast("You don't have enough energy!");
                    }
                }
                marginTop += 35;
            }
            marginTop += 35;
            GUI.Label(new Rect(GuiBase.Width(450f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), new GUIContent("Show All", "If this is off, it will show only the crystals with the highest grade."), labelStyle);
            this.showAll = GUI.Toggle(new Rect(GuiBase.Width(543f), GuiBase.Height((float)(marginTop + 4)), GuiBase.Width(60f), GuiBase.Height(30f)), this.showAll, string.Empty);
            using (List <FactoryModule> .Enumerator enumerator2 = App.State.Ext.Factory.AllModules.GetEnumerator())
            {
                while (enumerator2.MoveNext())
                {
                    FactoryModule module  = enumerator2.Current;
                    Crystal       crystal = App.State.Ext.Factory.EquippedCrystals.FirstOrDefault((Crystal x) => x.Type == module.Type);
                    if (module.Crystals.Count > 0 || crystal != null)
                    {
                        labelStyle.alignment = TextAnchor.UpperLeft;
                        GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)marginTop), GuiBase.Width(200f), GuiBase.Height(30f)), new GUIContent(module.Type + " Crystals"), labelStyle);
                        labelStyle.alignment = TextAnchor.MiddleCenter;
                        if (crystal == null)
                        {
                            if (GUI.Button(new Rect(GuiBase.Width(230f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), new GUIContent("Equip", "Equip the highest grade of your " + module.Type + " Crystals.")))
                            {
                                if (SpecialFightUi.IsFighting)
                                {
                                    GuiBase.ShowToast("Please finish your special fight first!");
                                }
                                else
                                {
                                    App.State.PremiumBoni.MaxCrystals.Round();
                                    if (App.State.PremiumBoni.MaxCrystals <= App.State.Ext.Factory.EquippedCrystals.Count)
                                    {
                                        GuiBase.ShowToast("You can only equip " + App.State.PremiumBoni.MaxCrystals + " crystals at once!");
                                    }
                                    else
                                    {
                                        Crystal crystal2 = module.Crystals[module.Crystals.Count - 1];
                                        crystal2.Count.Round();
                                        if (crystal2.Count == 0)
                                        {
                                            GuiBase.ShowToast("You don't have any crystals you can equip...");
                                        }
                                        else
                                        {
                                            if (crystal2.Count > 1)
                                            {
                                                crystal2.Count -= 1;
                                            }
                                            else
                                            {
                                                module.Crystals.RemoveAt(module.Crystals.Count - 1);
                                            }
                                            App.State.Ext.Factory.EquippedCrystals.Add(crystal2);
                                        }
                                    }
                                    App.State.PremiumBoni.CheckCrystalBonus(App.State);
                                    if (App.State.GameSettings.MaxAfterEquipCrystal)
                                    {
                                        App.State.GameSettings.CreationToCreateCount = App.State.PremiumBoni.CreationCountBoni(true).ToInt() + 1;
                                    }
                                }
                            }
                        }
                        else if (GUI.Button(new Rect(GuiBase.Width(230f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), new GUIContent("Unequip", "Equip the highest grade of your " + module.Type + " Crystals.")))
                        {
                            App.State.Ext.Factory.EquippedCrystals.Remove(crystal);
                            module.AddCrystal(crystal, 1);
                        }
                        marginTop += 35;
                    }
                    for (int i = 0; i < module.Crystals.Count; i++)
                    {
                        if (i < module.Crystals.Count)
                        {
                            if (this.showAll || i >= module.Crystals.Count - 1)
                            {
                                Crystal crystal3 = module.Crystals[i];
                                if (crystal3.Count > 0)
                                {
                                    GUI.Label(new Rect(GuiBase.Width(60f), GuiBase.Height((float)marginTop), GuiBase.Width(50f), GuiBase.Height(30f)), new GUIContent(crystal3.Image, crystal3.Description));
                                    GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height((float)marginTop), GuiBase.Width(50f), GuiBase.Height(30f)), string.Empty + crystal3.Level.GuiText + "*", labelStyle);
                                    GUI.Label(new Rect(GuiBase.Width(90f), GuiBase.Height((float)marginTop), GuiBase.Width(100f), GuiBase.Height(30f)), " x " + crystal3.Count.GuiText, labelStyle);
                                    int maxLevel = crystal3.MaxLevel;
                                    if (crystal3.Level < maxLevel)
                                    {
                                        CDouble cDouble               = crystal3.GetOptimalCount(App.State, module.MaxLevel);
                                        string  text2                 = string.Empty;
                                        CDouble cDouble2              = crystal3.UpgradeChance(App.State, module.MaxLevel, true);
                                        CDouble cDouble3              = crystal3.UpgradeChance(App.State, module.MaxLevel, false);
                                        CDouble countKeepLeftovers    = crystal3.GetCountKeepLeftovers(App.State, module.MaxLevel, crystal3.Count);
                                        CDouble crystalsAfterUpgrade  = crystal3.GetCrystalsAfterUpgrade(App.State, module.MaxLevel, cDouble);
                                        CDouble crystalsAfterUpgrade2 = crystal3.GetCrystalsAfterUpgrade(App.State, module.MaxLevel, countKeepLeftovers);
                                        if (cDouble2.ToInt() > cDouble3)
                                        {
                                            text2 = cDouble3.GuiText + " (capped out of your total chance of " + cDouble2.GuiText + ")";
                                        }
                                        else
                                        {
                                            text2 = cDouble3.GuiText;
                                        }
                                        labelStyle.alignment = TextAnchor.MiddleLeft;
                                        GUI.Label(new Rect(GuiBase.Width(200f), GuiBase.Height((float)marginTop), GuiBase.Width(150f), GuiBase.Height(30f)), " upgrade: " + cDouble3.GuiText + "%", labelStyle);
                                        if (cDouble <= crystal3.Count)
                                        {
                                            if (GUI.Button(new Rect(GuiBase.Width(370f), GuiBase.Height((float)marginTop), GuiBase.Width(110f), GuiBase.Height(30f)), new GUIContent("Upgrade Opt", string.Concat(new object[]
                                            {
                                                "If you upgrade your grade ",
                                                crystal3.Level,
                                                " ",
                                                crystal3.Type,
                                                " crystals to the next grade, ",
                                                text2,
                                                " % of your crystals can be upgraded, the others are lost. This upgrades your crystals with losing the least amount and keeps a left over. You will use ",
                                                cDouble,
                                                " crystals which will be upgraded to ",
                                                crystalsAfterUpgrade.GuiText,
                                                " of the next grade.\nMaxed with grade ",
                                                maxLevel,
                                                ".\n"
                                            }))))
                                            {
                                                module.UpgradeCrystal(App.State, crystal3, module.MaxLevel, cDouble);
                                            }
                                            GUI.Label(new Rect(GuiBase.Width(310f), GuiBase.Height((float)marginTop), GuiBase.Width(210f), GuiBase.Height(30f)), "(" + crystalsAfterUpgrade.GuiText + ")", labelStyle);
                                        }
                                        else if (countKeepLeftovers <= crystal3.Count && countKeepLeftovers > 0)
                                        {
                                            if (GUI.Button(new Rect(GuiBase.Width(370f), GuiBase.Height((float)marginTop), GuiBase.Width(110f), GuiBase.Height(30f)), new GUIContent("Upgrade Keep", string.Concat(new object[]
                                            {
                                                "If you upgrade your grade ",
                                                crystal3.Level,
                                                " ",
                                                crystal3.Type,
                                                " crystals to the next grade, ",
                                                text2,
                                                " % of your crystals can be upgraded, the others are lost. This upgrades your crystals similar to 'Upgrade All', keeps the left over instead of wasting it. You will use ",
                                                countKeepLeftovers,
                                                " crystals which will be upgraded to ",
                                                crystalsAfterUpgrade2.GuiText,
                                                " of the next grade.\nMaxed with grade ",
                                                maxLevel,
                                                ".\n"
                                            }))))
                                            {
                                                module.UpgradeCrystal(App.State, crystal3, module.MaxLevel, countKeepLeftovers);
                                            }
                                            GUI.Label(new Rect(GuiBase.Width(310f), GuiBase.Height((float)marginTop), GuiBase.Width(220f), GuiBase.Height(30f)), "(" + crystalsAfterUpgrade2.GuiText + ")", labelStyle);
                                        }
                                        labelStyle.alignment = TextAnchor.MiddleCenter;
                                        CDouble crystalsAfterUpgrade3 = crystal3.GetCrystalsAfterUpgrade(App.State, module.MaxLevel, crystal3.Count);
                                        if (crystalsAfterUpgrade3 >= 1)
                                        {
                                            if (GUI.Button(new Rect(GuiBase.Width(490f), GuiBase.Height((float)marginTop), GuiBase.Width(110f), GuiBase.Height(30f)), new GUIContent("Upgrade All", string.Concat(new object[]
                                            {
                                                "If you upgrade your grade ",
                                                crystal3.Level,
                                                " ",
                                                crystal3.Type,
                                                " crystals to the next grade, ",
                                                text2,
                                                " % of your crystals can be upgraded, the others are lost. This will use up all your crystals of this grade and keeps no left over. You will use ",
                                                crystal3.Count.GuiText,
                                                " crystals which will be upgraded to ",
                                                crystalsAfterUpgrade3,
                                                " of the next grade.\nMaxed with grade ",
                                                maxLevel,
                                                ".\n"
                                            }))))
                                            {
                                                module.UpgradeCrystal(App.State, crystal3, module.MaxLevel, crystal3.Count);
                                            }
                                        }
                                        else
                                        {
                                            GUI.Label(new Rect(GuiBase.Width(370f), GuiBase.Height((float)marginTop), GuiBase.Width(300f), GuiBase.Height(30f)), new GUIContent("Not enough crystals.", string.Concat(new object[]
                                            {
                                                cDouble3,
                                                " % of the crystals can be upgraded, the others are lost.\nYou need to have at least ",
                                                crystal3.GetMinimumNeeded(App.State, module.MaxLevel),
                                                " grade ",
                                                crystal3.Level,
                                                " ",
                                                crystal3.Type,
                                                " crystals to be able to upgrade them."
                                            })), labelStyle);
                                        }
                                    }
                                    marginTop += 35;
                                }
                            }
                        }
                    }
                }
            }
            this.scrollViewHeight = marginTop - 140;
        }
        public void Show()
        {
            GUIStyle style = GUI.skin.GetStyle("Label");

            style.fontSize = GuiBase.FontSize(16);
            if (!App.State.Generator.IsAvailable)
            {
                GUI.Box(new Rect(GuiBase.Width(290f), GuiBase.Height(110f), GuiBase.Width(660f), GuiBase.Height(480f)), string.Empty);
                style.alignment = TextAnchor.MiddleCenter;
                GUI.Label(new Rect(GuiBase.Width(310f), GuiBase.Height(150f), GuiBase.Width(640f), GuiBase.Height(30f)), "You need to build a Temple of God to unlock the divinity generator.", style);
                return;
            }
            if (DivinityGeneratorUi.AddIsOpen)
            {
                this.scrollViewHeight = (int)GuiBase.Height(1000f);
            }
            else
            {
                this.scrollViewHeight = 0;
            }
            GUI.BeginGroup(new Rect(GuiBase.Width(280f), GuiBase.Height(110f), GuiBase.Width(670f), GuiBase.Height(480f)));
            GUI.Box(new Rect(GuiBase.Width(10f), GuiBase.Height(0f), GuiBase.Width(660f), GuiBase.Height(80f)), string.Empty);
            style.alignment = TextAnchor.UpperLeft;
            GUIStyle style2 = GUI.skin.GetStyle("TextField");

            style2.fontSize  = GuiBase.FontSize(14);
            style2.alignment = TextAnchor.MiddleCenter;
            GUIContent content = new GUIContent("Clones to add / remove", "Click on the buttons for standard values or in the input field, then input the number of clones each click on + / - should add / remove.");

            if (DivinityGeneratorUi.AddIsOpen)
            {
                content = new GUIContent("Creations to add", "The number of creations you want to sacrifice and generate divinity out of it.");
            }
            GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height(11f), GuiBase.Width(285f), GuiBase.Height(30f)), content);
            int num  = 210;
            int num2 = 65;

            if (DivinityGeneratorUi.AddIsOpen)
            {
                num  = 170;
                num2 = 105;
            }
            if (App.CurrentPlattform == Plattform.Android)
            {
                GUIStyle textField = Gui.ChosenSkin.textField;
                if (GUI.Button(new Rect(GuiBase.Width((float)num), GuiBase.Height(10f), GuiBase.Width((float)num2), GuiBase.Height(25f)), this.CloneCountString, textField))
                {
                    base.ShowNumberInput("Clones to add / remove", App.State.GameSettings.ClonesToAddCount, 9223372036854775807L, delegate(CDouble x)
                    {
                        this.CloneCountString = x.ToString();
                    });
                }
            }
            else
            {
                this.CloneCountString = GUI.TextField(new Rect(GuiBase.Width((float)num), GuiBase.Height(10f), GuiBase.Width((float)num2), GuiBase.Height(25f)), this.CloneCountString);
            }
            if (GUI.Button(new Rect(GuiBase.Width(290f), GuiBase.Height(10f), GuiBase.Width(45f), GuiBase.Height(25f)), "1"))
            {
                this.SetCountAfterButton(1);
            }
            if (GUI.Button(new Rect(GuiBase.Width(340f), GuiBase.Height(10f), GuiBase.Width(45f), GuiBase.Height(25f)), "10"))
            {
                this.SetCountAfterButton(10);
            }
            if (GUI.Button(new Rect(GuiBase.Width(390f), GuiBase.Height(10f), GuiBase.Width(45f), GuiBase.Height(25f)), "100"))
            {
                this.SetCountAfterButton(100);
            }
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(10f), GuiBase.Width(45f), GuiBase.Height(25f)), "1K"))
            {
                this.SetCountAfterButton(1000);
            }
            if (GUI.Button(new Rect(GuiBase.Width(490f), GuiBase.Height(10f), GuiBase.Width(45f), GuiBase.Height(25f)), "10K"))
            {
                this.SetCountAfterButton(10000);
            }
            if (GUI.Button(new Rect(GuiBase.Width(540f), GuiBase.Height(10f), GuiBase.Width(50f), GuiBase.Height(25f)), "100K"))
            {
                this.SetCountAfterButton(100000);
            }
            if (GUI.Button(new Rect(GuiBase.Width(595f), GuiBase.Height(10f), GuiBase.Width(53f), GuiBase.Height(25f)), "MAX"))
            {
                if (!DivinityGeneratorUi.AddIsOpen)
                {
                    this.CloneCountString = App.State.Clones.MaxShadowClones.ToString();
                }
                else
                {
                    this.CloneCountString = "999999999999999";
                }
            }
            GUI.Box(new Rect(GuiBase.Width(10f), GuiBase.Height(85f), GuiBase.Width(660f), GuiBase.Height(395f)), string.Empty);
            int num3 = 90;

            this.ShowLabels(num3, style);
            style.fontStyle = FontStyle.Normal;
            num3           += 45;
            if (DivinityGeneratorUi.AddIsOpen)
            {
                num3 += 70;
                DivinityGeneratorUi.ScrollPosition = GuiBase.TouchScrollView(new Rect(GuiBase.Width(0f), GuiBase.Height((float)num3), GuiBase.Width(650f), GuiBase.Height(255f)), DivinityGeneratorUi.ScrollPosition, new Rect(0f, GuiBase.Height((float)num3), GuiBase.Width(620f), GuiBase.Height((float)this.scrollViewHeight)));
            }
            this.ShowScrollViewElements(num3, style);
            if (DivinityGeneratorUi.AddIsOpen)
            {
                GUI.EndScrollView();
            }
            GUI.EndGroup();
        }
 protected void ShowLabels(int marginTop, GUIStyle labelStyle)
 {
     if (App.State.IsBuyUnlocked)
     {
         string text = "If this is on, missing creations will be bought automatically if you have enough divinity.";
         if (App.State.PremiumBoni.AutoBuyCostReduction < 20)
         {
             text = string.Concat(new object[]
             {
                 text,
                 "\nBut beware: there is an additional ",
                 20 - App.State.PremiumBoni.AutoBuyCostReduction,
                 "% transaction fee!"
             });
         }
         GUI.Label(new Rect(GuiBase.Width(365f), GuiBase.Height(42f), GuiBase.Width(220f), GuiBase.Height(30f)), new GUIContent("Auto buy missing creations", text));
         App.State.GameSettings.AutoBuyCreationsForDivGen = GUI.Toggle(new Rect(GuiBase.Width(593f), GuiBase.Height(47f), GuiBase.Width(300f), GuiBase.Height(30f)), App.State.GameSettings.AutoBuyCreationsForDivGen, new GUIContent(string.Empty));
     }
     if (App.State.Generator.IsBuilt)
     {
         labelStyle.fontSize  = GuiBase.FontSize(18);
         labelStyle.fontStyle = FontStyle.Bold;
         labelStyle.alignment = TextAnchor.MiddleCenter;
         GUI.Label(new Rect(GuiBase.Width(15f), GuiBase.Height((float)marginTop), GuiBase.Width(650f), GuiBase.Height(30f)), new GUIContent("Divinity Generator", "The divinity generator can convert your creations into divinity. You need to fill in creations for it to work."));
         marginTop           += 45;
         labelStyle.fontSize  = GuiBase.FontSize(16);
         labelStyle.fontStyle = FontStyle.Normal;
         labelStyle.alignment = TextAnchor.UpperLeft;
         GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)marginTop), GuiBase.Width(250f), GuiBase.Height(30f)), new GUIContent("Capacity / In use", "The total capacity and the capacity in use. The base will increase for each god defeated after Zeus (stays after rebirth)."));
         GUI.Label(new Rect(GuiBase.Width(200f), GuiBase.Height((float)marginTop), GuiBase.Width(300f), GuiBase.Height(30f)), App.State.Generator.Capacity.ToGuiText(true) + " / " + App.State.Generator.FilledCapacity.ToGuiText(true));
         GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height(42f), GuiBase.Width(200f), GuiBase.Height(30f)), new GUIContent("Stop after finish", "If this is on, clones will be removed from generator upgrade when it is finished."));
         App.State.GameSettings.StopDivinityGenBuilding = GUI.Toggle(new Rect(GuiBase.Width(200f), GuiBase.Height(47f), GuiBase.Width(300f), GuiBase.Height(30f)), App.State.GameSettings.StopDivinityGenBuilding, new GUIContent(string.Empty));
         if (!DivinityGeneratorUi.AddIsOpen)
         {
             if (GUI.Button(new Rect(GuiBase.Width(540f), GuiBase.Height((float)marginTop), GuiBase.Width(50f), GuiBase.Height(30f)), new GUIContent("Add", "Add your creations to use them up for more divinity.")))
             {
                 DivinityGeneratorUi.AddIsOpen = true;
             }
             marginTop += 25;
             GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)marginTop), GuiBase.Width(220f), GuiBase.Height(30f)), new GUIContent("Time till empty", "It takes that long until the capacity in use is 0. It does not take the worker clones into consideration!"));
             CDouble convertSec = App.State.Generator.ConvertSec;
             if (this.count == 30)
             {
                 this.count            = 0;
                 this.secLeftTillEmpty = (long)(App.State.Generator.FilledCapacity * 1000 / App.State.Generator.ConvertSec).ToInt();
             }
             this.count++;
             GUI.Label(new Rect(GuiBase.Width(200f), GuiBase.Height((float)marginTop), GuiBase.Width(220f), GuiBase.Height(30f)), Conv.MsToGuiText(this.secLeftTillEmpty, true));
             marginTop += 25;
             GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)marginTop), GuiBase.Width(220f), GuiBase.Height(30f)), new GUIContent("Divinity each convert", "The number from Convert will be multiplied with this number for the divinity gain."));
             GUI.Label(new Rect(GuiBase.Width(200f), GuiBase.Height((float)marginTop), GuiBase.Width(220f), GuiBase.Height(30f)), App.State.Generator.DivinityEachCapacity.ToString());
             marginTop += 25;
             GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)marginTop), GuiBase.Width(220f), GuiBase.Height(30f)), new GUIContent("Converts / s", "Each second this number will be converted into divinity. The base will increase for each god defeated after Zeus (stays after rebirth)."));
             GUI.Label(new Rect(GuiBase.Width(200f), GuiBase.Height((float)marginTop), GuiBase.Width(220f), GuiBase.Height(30f)), convertSec.ToGuiText(true));
             marginTop += 25;
             GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)marginTop), GuiBase.Width(220f), GuiBase.Height(30f)), new GUIContent("Divinity / s", "The amount of divinity the generator will generate each second."));
             string text2 = App.State.Generator.DivinitySecWithWorker.ToGuiText(true);
             if (App.State.PremiumBoni.CrystalBonusDivinity > 0)
             {
                 text2 = text2 + " (" + App.State.Generator.DivinitySecWithWorkerCrystal.GuiText + ")";
             }
             string tooltip = string.Empty;
             if (App.State.PremiumBoni.CrystalBonusDivinity > 0)
             {
                 tooltip = App.State.PremiumBoni.CrystalBonusDivinity.GuiText + "% more income from equipped crystals";
             }
             GUI.Label(new Rect(GuiBase.Width(200f), GuiBase.Height((float)marginTop), GuiBase.Width(340f), GuiBase.Height(30f)), new GUIContent(text2, tooltip));
             marginTop += 25;
             GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)marginTop), GuiBase.Width(220f), GuiBase.Height(30f)), new GUIContent("Worker Clones", "You can adjust some clones to auto-fill your generator. They can only use stones to refill the generator, so be sure to have enough! (It is hard to carry things like light or oceans for them). One shadow clone can fill in " + App.State.Generator.CloneFillSpeedText + "\nIf you allocate more clones than the break even point, the leftover clones will fill the capacity of the divinity generator. If it is full, they will increase the divinity gain by 1% every 5000 clones (maxed at 400% additional bonus)."));
             GUI.Label(new Rect(GuiBase.Width(200f), GuiBase.Height((float)marginTop), GuiBase.Width(220f), GuiBase.Height(30f)), string.Empty + App.State.Generator.ShadowCloneCount.CommaFormatted);
             if (GUI.Button(new Rect(GuiBase.Width(470f), GuiBase.Height((float)marginTop), GuiBase.Width(40f), GuiBase.Height(30f)), "+"))
             {
                 App.State.Generator.AddCloneCount((int)this.ClonesToAdd);
             }
             if (GUI.Button(new Rect(GuiBase.Width(530f), GuiBase.Height((float)marginTop), GuiBase.Width(40f), GuiBase.Height(30f)), "-"))
             {
                 App.State.Generator.RemoveCloneCount((int)this.ClonesToAdd);
             }
             if (GUI.Button(new Rect(GuiBase.Width(590f), GuiBase.Height((float)marginTop), GuiBase.Width(50f), GuiBase.Height(30f)), new GUIContent("CAP")))
             {
                 App.State.Generator.UseBreakEvenWorkerCount();
             }
         }
         else
         {
             if (GUI.Button(new Rect(GuiBase.Width(540f), GuiBase.Height((float)marginTop), GuiBase.Width(60f), GuiBase.Height(30f)), "Close"))
             {
                 DivinityGeneratorUi.AddIsOpen = false;
             }
             marginTop           += 35;
             labelStyle.fontSize  = GuiBase.FontSize(18);
             labelStyle.fontStyle = FontStyle.Bold;
             GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height((float)marginTop), GuiBase.Width(150f), GuiBase.Height(30f)), "Creation");
             GUI.Label(new Rect(GuiBase.Width(180f), GuiBase.Height((float)marginTop), GuiBase.Width(150f), GuiBase.Height(30f)), "Count", labelStyle);
             GUI.Label(new Rect(GuiBase.Width(325f), GuiBase.Height((float)marginTop), GuiBase.Width(150f), GuiBase.Height(30f)), "Capacity", labelStyle);
             GUI.Label(new Rect(GuiBase.Width(480f), GuiBase.Height((float)marginTop), GuiBase.Width(150f), GuiBase.Height(30f)), "Add", labelStyle);
             labelStyle.fontSize  = GuiBase.FontSize(16);
             labelStyle.fontStyle = FontStyle.Normal;
         }
     }
 }
        public void Show(GUIStyle labelStyle)
        {
            labelStyle.alignment = TextAnchor.UpperCenter;
            GUIStyle style = GUI.skin.GetStyle("Button");

            style.fontSize = GuiBase.FontSize(14);
            GUI.BeginGroup(new Rect(0f, 0f, (float)Screen.width, (float)Screen.height));
            GUI.Box(new Rect(0f, 0f, (float)Screen.width, (float)Screen.height), string.Empty);
            GUI.Label(new Rect(GuiBase.Width(300f), GuiBase.Height(20f), GuiBase.Width(400f), GuiBase.Height(40f)), GuiBase.Logo);
            this.ShowAfk = GUI.Toggle(new Rect(GuiBase.Width(780f), GuiBase.Height(20f), GuiBase.Width(80f), GuiBase.Height(30f)), this.ShowAfk, new GUIContent("AFK", "Click to go on afk mode. Progress will be 100% but the cpu usage is lower."));
            GUI.Label(new Rect(GuiBase.Width(250f), GuiBase.Height(80f), GuiBase.Width(500f), GuiBase.Height(250f)), "Afk Mode is on. While this is on, you can't do anything but watching this beautiful screen. The game also progresses fully and uses less cpu.\n");
            GUI.Label(new Rect(GuiBase.Width(235f), GuiBase.Height(180f), GuiBase.Width(500f), GuiBase.Height(25f)), new GUIContent("Your Power level: " + App.State.PowerLevel.ToGuiText(true), "Your total power, including Physical, Mystic, Battle and Creating.\nIt's an indicator of how strong you are compared to other gods. But whether you can defeat one depends on your individual values."));
            int num  = 50;
            int num2 = 220;

            this.ShowAfkyGod = GUI.Toggle(new Rect(GuiBase.Width(400f), GuiBase.Height((float)num2), GuiBase.Width(120f), GuiBase.Height(30f)), this.ShowAfkyGod, new GUIContent("Show Afky God", "This is just a minigame and has not much to do with the rest of the game."));
            if (this.ShowAfkyGod)
            {
                AfkyGame game = App.State.Ext.AfkGame;
                num2 += 30;
                labelStyle.alignment = TextAnchor.UpperLeft;
                GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)num2), GuiBase.Width(100f), GuiBase.Height(40f)), "Firing Speed");
                GUI.Label(new Rect(GuiBase.Width((float)(num + 120)), GuiBase.Height((float)num2), GuiBase.Width(400f), GuiBase.Height(40f)), game.FiringSpeed.Level.GuiText);
                if (game.FiringSpeed.Level >= 3800)
                {
                    game.FiringSpeed.Level = 3800;
                    GUI.Label(new Rect(GuiBase.Width((float)(num + 250)), GuiBase.Height((float)num2), GuiBase.Width(100f), GuiBase.Height(40f)), "Maxed");
                }
                else
                {
                    this.AddLvUpButtons(game, num + 250, num2, ref game.FiringSpeed, null);
                }
                num2 += 25;
                string tooltip = string.Empty;
                if (game.Power.Level > 1000000)
                {
                    tooltip = string.Empty + game.Power.Level;
                }
                GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)num2), GuiBase.Width(100f), GuiBase.Height(40f)), new GUIContent("Power", tooltip));
                GUI.Label(new Rect(GuiBase.Width((float)(num + 120)), GuiBase.Height((float)num2), GuiBase.Width(400f), GuiBase.Height(40f)), game.Power.Level.GuiText);
                this.AddLvUpButtons(game, num + 250, num2, ref game.Power, null);
                num2 += 25;
                GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)num2), GuiBase.Width(100f), GuiBase.Height(40f)), "Clone Hp");
                GUI.Label(new Rect(GuiBase.Width((float)(num + 120)), GuiBase.Height((float)num2), GuiBase.Width(400f), GuiBase.Height(40f)), game.CloneHp.Level.GuiText);
                this.AddLvUpButtons(game, num + 250, num2, ref game.CloneHp, delegate
                {
                    GuiBase.ShowDialog("Max", "Do you really want to spend all your exp on clone hp?", delegate
                    {
                        game.Exp -= game.CloneHp.LevelUp(game.Exp, 0, true);
                        this.CheckHighestPower(game);
                    }, delegate
                    {
                    }, "Yes", "No", false, false);
                });
                num2 += 25;
                GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)num2), GuiBase.Width(100f), GuiBase.Height(40f)), "Clone Count");
                GUI.Label(new Rect(GuiBase.Width((float)(num + 120)), GuiBase.Height((float)num2), GuiBase.Width(400f), GuiBase.Height(40f)), game.CloneCount.Level.GuiText);
                this.AddLvUpButtons(game, num + 250, num2, ref game.CloneCount, delegate
                {
                    GuiBase.ShowDialog("Max", "Do you really want to spend all your exp on clone count?", delegate
                    {
                        game.Exp -= game.CloneCount.LevelUp(game.Exp, 0, true);
                        this.CheckHighestPower(game);
                    }, delegate
                    {
                    }, "Yes", "No", false, false);
                });
                num2 += 25;
                GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)num2), GuiBase.Width(100f), GuiBase.Height(40f)), new GUIContent("Experience", "Exp multiplier = " + App.State.Ext.AfkGame.ExpMulti.ToGuiText(false)));
                GUI.Label(new Rect(GuiBase.Width((float)(num + 120)), GuiBase.Height((float)num2), GuiBase.Width(400f), GuiBase.Height(40f)), game.Exp.GuiText);
                int num3 = this.toolbarInt;
                if (UpdateStats.TimeLeftForEvent < 0L)
                {
                    this.toolbarInt = GUI.Toolbar(new Rect(GuiBase.Width((float)(num + 250)), GuiBase.Height((float)(num2 + 2)), GuiBase.Width(275f), GuiBase.Height(25f)), this.toolbarInt, this.toolbarStrings);
                }
                bool flag = this.afkyman == null || this.toolbarInt != num3;
                num2 = 300;
                num  = 590;
                GUI.Label(new Rect(GuiBase.Width((float)num), GuiBase.Height((float)num2), GuiBase.Width(100f), GuiBase.Height(40f)), "Clones Killed");
                GUI.Label(new Rect(GuiBase.Width((float)(num + 120)), GuiBase.Height((float)num2), GuiBase.Width(400f), GuiBase.Height(40f)), game.KilledClones.GuiText);
                num2 += 75;
                if (flag)
                {
                    if (this.toolbarInt == 0)
                    {
                        this.afkyman      = (Texture2D)Resources.Load("Gui/afkyman", typeof(Texture2D));
                        this.afkymanShoot = (Texture2D)Resources.Load("Gui/afkymanshoot", typeof(Texture2D));
                        this.auraballInit = (Texture2D)Resources.Load("Gui/auraball_init", typeof(Texture2D));
                        this.clone        = (Texture2D)Resources.Load("Gui/afky_clone", typeof(Texture2D));
                        this.cloneDead    = (Texture2D)Resources.Load("Gui/afky_clone_dead", typeof(Texture2D));
                        this.auraball     = (Texture2D)Resources.Load("Gui/auraball", typeof(Texture2D));
                    }
                    else if (this.toolbarInt == 1)
                    {
                        this.afkyman      = (Texture2D)Resources.Load("Gui/afkyman_c", typeof(Texture2D));
                        this.afkymanShoot = (Texture2D)Resources.Load("Gui/afkymanshoot_c", typeof(Texture2D));
                        this.auraballInit = (Texture2D)Resources.Load("Gui/auraball_c", typeof(Texture2D));
                        this.clone        = (Texture2D)Resources.Load("Gui/afky_clone_c", typeof(Texture2D));
                        this.cloneDead    = (Texture2D)Resources.Load("Gui/afky_clone_dead_c", typeof(Texture2D));
                        this.auraball     = (Texture2D)Resources.Load("Gui/auraball_c", typeof(Texture2D));
                    }
                    else if (this.toolbarInt == 2)
                    {
                        this.afkyman      = (Texture2D)Resources.Load("Gui/afkyman", typeof(Texture2D));
                        this.afkymanShoot = (Texture2D)Resources.Load("Gui/afkymanshoot", typeof(Texture2D));
                        this.auraballInit = (Texture2D)Resources.Load("Gui/auraball_init_v", typeof(Texture2D));
                        this.clone        = (Texture2D)Resources.Load("Gui/afky_clone", typeof(Texture2D));
                        this.cloneDead    = (Texture2D)Resources.Load("Gui/afky_clone_dead", typeof(Texture2D));
                        this.auraball     = (Texture2D)Resources.Load("Gui/auraball_v", typeof(Texture2D));
                    }
                }
                if (UpdateStats.TimeLeftForEvent > 0L && !AfkUi.EventInited)
                {
                    AfkUi.EventInited = true;
                    this.afkyman      = (Texture2D)Resources.Load("Gui/afkyman", typeof(Texture2D));
                    this.afkymanShoot = (Texture2D)Resources.Load("Gui/afkymanshoot", typeof(Texture2D));
                    this.auraballInit = (Texture2D)Resources.Load("Gui/auraball_init_v", typeof(Texture2D));
                    this.clone        = (Texture2D)Resources.Load("Gui/afky_clone", typeof(Texture2D));
                    this.cloneDead    = (Texture2D)Resources.Load("Gui/afky_clone_dead", typeof(Texture2D));
                    this.auraball     = (Texture2D)Resources.Load("Gui/auraball_v", typeof(Texture2D));
                }
                if (game.FiringPhase)
                {
                    GUI.Label(new Rect(GuiBase.Width(220f), GuiBase.Height((float)num2), GuiBase.Width(200f), GuiBase.Height(200f)), this.afkymanShoot);
                }
                else
                {
                    GUI.Label(new Rect(GuiBase.Width(220f), GuiBase.Height((float)num2), GuiBase.Width(200f), GuiBase.Height(200f)), this.afkyman);
                    GUI.Label(new Rect(GuiBase.Width(260f), GuiBase.Height((float)(num2 + 40)), GuiBase.Width(80f), GuiBase.Height(80f)), this.auraballInit);
                }
                for (int i = game.AuraballPositions.Count - 1; i >= 0; i--)
                {
                    GUI.Label(new Rect(GuiBase.Width(game.AuraballPositions[i].Pos), GuiBase.Height(410f), GuiBase.Width(80f), GuiBase.Height(80f)), this.auraball);
                }
                int num4 = game.CloneCount.Level.ToInt();
                if (num4 > 10)
                {
                    num4 = 10;
                }
                for (int j = 0; j < num4; j++)
                {
                    if (game.deadCloneTimer > 0f && j < game.ShootKillCount && game.ShootKillCount > 0)
                    {
                        GUI.Label(new Rect(GuiBase.Width((float)(game.PosFirstClone + j * 25)), GuiBase.Height((float)num2), GuiBase.Width(200f), GuiBase.Height(200f)), this.cloneDead);
                    }
                    else
                    {
                        GUI.Label(new Rect(GuiBase.Width((float)(game.PosFirstClone + j * 25)), GuiBase.Height((float)num2), GuiBase.Width(200f), GuiBase.Height(200f)), this.clone);
                    }
                }
                if (game.deadCloneTimer > 0f)
                {
                    GUI.Label(new Rect(GuiBase.Width(710f), GuiBase.Height(320f), GuiBase.Width(310f), GuiBase.Height(200f)), " + " + game.ShootKillCount.GuiText);
                    GUI.Label(new Rect(GuiBase.Width(170f), GuiBase.Height(375f), GuiBase.Width(200f), GuiBase.Height(200f)), " + " + game.CloneExpTotal.ToGuiText(false));
                }
            }
            GUI.EndGroup();
        }
Пример #27
0
        protected void Show(bool syncScrollbars)
        {
            if (!AreaRightUi.IsCloneCountInitialized)
            {
                AreaRightUi.cloneCountString        = App.State.GameSettings.ClonesToAddCount.ToString();
                AreaRightUi.IsCloneCountInitialized = true;
            }
            if (this.Init())
            {
                return;
            }
            this.SyncScrollbars = syncScrollbars;
            GUI.BeginGroup(new Rect(GuiBase.Width(280f), GuiBase.Height(110f), GuiBase.Width(670f), GuiBase.Height(480f)));
            GUI.Box(new Rect(GuiBase.Width(10f), GuiBase.Height(0f), GuiBase.Width(660f), GuiBase.Height(80f)), string.Empty);
            GUIStyle style = GUI.skin.GetStyle("Label");

            style.alignment = TextAnchor.UpperLeft;
            style.fontSize  = GuiBase.FontSize(16);
            GUIStyle style2 = GUI.skin.GetStyle("TextField");

            style2.fontSize  = GuiBase.FontSize(14);
            style2.alignment = TextAnchor.MiddleCenter;
            GUI.Label(new Rect(GuiBase.Width(30f), GuiBase.Height(11f), GuiBase.Width(220f), GuiBase.Height(30f)), new GUIContent("Clones to add / remove", "Click on the buttons for standard values or in the input field, then input the number of clones each click on + / - should add / remove."));
            if (App.CurrentPlattform == Plattform.Android)
            {
                GUIStyle textField = Gui.ChosenSkin.textField;
                if (GUI.Button(new Rect(GuiBase.Width(210f), GuiBase.Height(10f), GuiBase.Width(65f), GuiBase.Height(25f)), AreaRightUi.CloneCountString, textField))
                {
                    base.ShowNumberInput("Clones to add / remove", App.State.GameSettings.ClonesToAddCount, App.State.Clones.MaxShadowClones, delegate(CDouble x)
                    {
                        AreaRightUi.CloneCountString = x.ToString();
                    });
                }
            }
            else
            {
                AreaRightUi.CloneCountString = GUI.TextField(new Rect(GuiBase.Width(210f), GuiBase.Height(10f), GuiBase.Width(65f), GuiBase.Height(25f)), AreaRightUi.CloneCountString, style2);
            }
            if (GUI.Button(new Rect(GuiBase.Width(290f), GuiBase.Height(10f), GuiBase.Width(45f), GuiBase.Height(25f)), "1"))
            {
                this.SetCountAfterButton(1);
            }
            if (GUI.Button(new Rect(GuiBase.Width(340f), GuiBase.Height(10f), GuiBase.Width(45f), GuiBase.Height(25f)), "10"))
            {
                this.SetCountAfterButton(10);
            }
            if (GUI.Button(new Rect(GuiBase.Width(390f), GuiBase.Height(10f), GuiBase.Width(45f), GuiBase.Height(25f)), "100"))
            {
                this.SetCountAfterButton(100);
            }
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(10f), GuiBase.Width(45f), GuiBase.Height(25f)), "1K"))
            {
                this.SetCountAfterButton(1000);
            }
            if (GUI.Button(new Rect(GuiBase.Width(490f), GuiBase.Height(10f), GuiBase.Width(45f), GuiBase.Height(25f)), "10K"))
            {
                this.SetCountAfterButton(10000);
            }
            if (GUI.Button(new Rect(GuiBase.Width(540f), GuiBase.Height(10f), GuiBase.Width(50f), GuiBase.Height(25f)), "100K"))
            {
                this.SetCountAfterButton(100000);
            }
            if (GUI.Button(new Rect(GuiBase.Width(595f), GuiBase.Height(10f), GuiBase.Width(53f), GuiBase.Height(25f)), "MAX"))
            {
                AreaRightUi.CloneCountString = App.State.Clones.MaxShadowClones.ToString();
            }
            GUI.Box(new Rect(GuiBase.Width(10f), GuiBase.Height(85f), GuiBase.Width(660f), GuiBase.Height(395f)), string.Empty);
            int num = 90;

            style.alignment = TextAnchor.UpperCenter;
            style.fontStyle = FontStyle.Bold;
            this.ShowLabels(num, style);
            style.fontStyle = FontStyle.Normal;
            num            += 45;
            if (App.State.GameSettings.SyncScrollbars && this.SyncScrollbars)
            {
                AreaRightUi.scrollPositionStatic = GuiBase.TouchScrollView(new Rect(GuiBase.Width(0f), GuiBase.Height((float)num), GuiBase.Width(650f), GuiBase.Height(330f)), AreaRightUi.scrollPositionStatic, new Rect(0f, GuiBase.Height((float)num), GuiBase.Width(620f), GuiBase.Height((float)this.scrollViewHeight)));
            }
            else
            {
                this.scrollPosition = GuiBase.TouchScrollView(new Rect(GuiBase.Width(0f), GuiBase.Height((float)num), GuiBase.Width(650f), GuiBase.Height(330f)), this.scrollPosition, new Rect(0f, GuiBase.Height((float)num), GuiBase.Width(620f), GuiBase.Height((float)this.scrollViewHeight)));
            }
            this.ShowScrollViewElements(num, style);
            GUI.EndScrollView();
            GUI.EndGroup();
        }
        private void show()
        {
            GUIStyle style = GUI.skin.GetStyle("Label");

            style.alignment = TextAnchor.UpperLeft;
            style.fontSize  = GuiBase.FontSize(16);
            GUI.BeginGroup(new Rect(GuiBase.Width(290f), GuiBase.Height(110f), GuiBase.Width(660f), GuiBase.Height(480f)));
            GUI.Box(new Rect(GuiBase.Width(0f), GuiBase.Height(0f), GuiBase.Width(660f), GuiBase.Height(480f)), string.Empty);
            this.scrollPosition = GuiBase.TouchScrollView(new Rect(GuiBase.Width(0f), GuiBase.Height(15f), GuiBase.Width(640f), GuiBase.Height(460f)), this.scrollPosition, new Rect(0f, GuiBase.Height(15f), GuiBase.Width(620f), GuiBase.Height((float)this.scrollHeight)));
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(10f), GuiBase.Width(600f), GuiBase.Height(50f)), new GUIContent("Some stats of your game. All multis will apply when rebirthing and can't be higher than your god multiplier."));
            style.fontStyle = FontStyle.Normal;
            int num = 70;

            if (UpdateStats.TimeLeftForEvent > 0L)
            {
                num = this.AddLine(num, "Time left until next chocolate", Conv.MsToGuiText(App.State.Statistic.TimeUntilNextChocolate, true), "This event will end in: " + Conv.MsToGuiText(UpdateStats.TimeLeftForEvent, false), 30);
            }
            num  = this.AddLine(num, "Time played since rebirth", Conv.MsToGuiText(App.State.Statistic.TimePlayedSinceRebirth, true), "You need 1 hour to reach 100% rebirth multiplier. After that every 30 minutes played will increase your total rebirth multiplier by 1%. This time will count both offline and online time.", 30);
            num  = this.AddLine(num, "Time online", Conv.MsToGuiText(App.State.Statistic.TimePlayed, true) + this.Multiboni(App.State.Statistic.MultiTimePlayed), "The total time the game was open. Every 10 minutes will increase your statistic multi by 1.", 30);
            num  = this.AddLine(num, "Time offline", Conv.MsToGuiText(App.State.Statistic.TimeOffline, false) + this.Multiboni(App.State.Statistic.MultiTimeOffline), "The time you were offline after you started to play this game. Every 40 minutes will increase your statistic multi by 1. To prevent cheating, the time only works if you are online before you close the game.", 30);
            num += 20;
            num  = this.AddLine(num, "Rebirths", App.State.Statistic.TotalRebirths.Serialize() + this.Multiboni(App.State.Statistic.MultiTotalRebirths), "The number of times you pushed the Rebirth button. Each rebirth increases your statistic multi by 1000.", 30);
            num  = this.AddLine(num, "Training levels", App.State.Statistic.TotalTrainingLevels.ToGuiText(true) + this.Multiboni(App.State.Statistic.MultiTotalTrainingLevels), "The total number of levels you gained by trainings. Every 10,000 levels increases your statistic multi by 1.", 30);
            num  = this.AddLine(num, "Skill levels", App.State.Statistic.TotalSkillLevels.ToGuiText(true) + this.Multiboni(App.State.Statistic.MultiTotalSkillLevels), "The total number of levels you gained by learning skills. Every 10,000 levels increases your statistic multi by 1.", 30);
            num  = this.AddLine(num, "Enemies defeated", App.State.Statistic.TotalEnemiesDefeated.ToGuiText(true) + this.Multiboni(App.State.Statistic.MultiTotalEnemiesDefeated), "The total number of enemies you defeated. Every 200,000 enemies you defeat increases your statistic multi by 1.", 30);
            num  = this.AddLine(num, "Creations", App.State.Statistic.TotalCreations.ToGuiText(true) + this.Multiboni(App.State.Statistic.MultiTotalCreations), "The total number of things you created. Every 1000 creations increases your statistic multi by 1.", 30);
            num  = this.AddLine(num, "Shadow clones created", App.State.Statistic.TotalShadowClonesCreated.ToGuiText(true) + this.Multiboni(App.State.Statistic.MultiTotalShadowClonesCreated), "All the shadow clones you created. Every 1000 clones created reduces their attack divider by 1 (after rebirth, min divider 50).  Every 2000 increases your statistic multi by 1.", 30);
            num  = this.AddLine(num, "Shadow clones died", App.State.Statistic.TotalShadowClonesDied.ToGuiText(true) + this.Multiboni(App.State.Statistic.MultiTotalShadowClonesDied), "All shadow clones who died fighting enemies. Every 500 clones who died reduces their defense and hp divider by 1 (after rebirth, min divider 50).  Every 500 increases your statistic multi by 1.", 30);
            num += 20;
            num  = this.AddLine(num, "Achievements", App.State.Statistic.TotalAchievements.GuiText + this.Multiboni(App.State.Statistic.MultiTotalAchievements), "The total number of achievements you got. Each achievement will increase your statistic multi by 5.", 30);
            num  = this.AddLine(num, "Gods defeated", App.State.Statistic.TotalGodsDefeated.ToGuiText(true) + this.Multiboni(App.State.Statistic.MultiTotalGodsDefeated), "The total number of gods you defeated. Each defeated god increases your statistic multi by 50.", 30);
            num  = this.AddLine(num, "Divinity used", App.State.Statistic.TotalMoneySpent.ToGuiText(true) + this.Multiboni(App.State.Statistic.MultiTotalMoneySpent), "The total divinity you traded in for creations. The more you trade in, the higher your statistic multi.", 30);
            num  = this.AddLine(num, "Upgrades", App.State.Statistic.TotalUpgrades.GuiText + this.Multiboni(App.State.Statistic.MultiTotalUpgrades), "The number of times you did upgrade a monument. Each upgrade increases your statistic multi by 5. Upgrading is available after defeating Freya.", 30);
            string str = string.Empty;

            if (App.State.Statistic.HighestGodDefeated > 28)
            {
                if (App.State.Statistic.HighestGodDefeated == 29)
                {
                    str = "P. Baal";
                }
                else
                {
                    str = "P. Baal v " + (App.State.Statistic.HighestGodDefeated - 28);
                }
            }
            else
            {
                str = EnumName.Name((God.GodType)App.State.Statistic.HighestGodDefeated.ToInt());
            }
            string str2 = string.Empty;

            if (!string.IsNullOrEmpty(App.State.Statistic.GodDefeatedBeforeRebirth))
            {
                str2 = "\nOn your last rebirth, you defeated " + App.State.Statistic.GodDefeatedBeforeRebirth;
            }
            num  = this.AddLine(num, "Strongest god defeated", str + this.Multiboni(App.State.Statistic.MultiHighestGodDefeated), "The strongest god you have defeated. Each higher tier increases your statistic multi by 50 (5000 after Baal)." + str2, 30);
            num += 20;
            num  = this.AddLine(num, "Ultimate Beings defeated", App.State.Statistic.UBsDefeated + this.Multiboni(App.State.Statistic.MultiUBsDefeated), "How many Ultimate Beings you have defeated. Each one increases your statistic multi by 40.", 30);
            num  = this.AddLine(num, "Total Powersurge levels", App.State.Statistic.TotalPowersurge.ToGuiText(true) + this.Multiboni(App.State.Statistic.MultiTotalPowersurge), "How many times you upgraded a level in Powersurge. Each level increases your statistic multi by 1.", 30);
            num  = this.AddLine(num, "Most shadow clones defeated", App.State.Statistic.MostDefeatedShadowClones + this.Multiboni(App.State.Statistic.MultiMostClonesDefeated), "The most shadow clones you have defeated in one special fight. Increases your statistic multi by 500 x defeated count x defeated count.", 30);
            num  = this.AddLine(num, "TBS Score", App.State.Statistic.TBSScore + this.Multiboni(App.State.Statistic.MultiTBSScore), "Your score in the TBS - Game. Increases your statistic multi by 100 x score.", 30);
            if (App.CurrentPlattform != Plattform.Android)
            {
                num = this.AddLine(num, "Highscore Godly Shoot", App.State.Statistic.GodlyShootScore.ToInt() + this.Multiboni(App.State.Statistic.MultiGodlyShootScore), "The highest score you reached in 'Godly Shoot'. Each one increases your statistic multi by 500.", 30);
                num = this.AddLine(num, "Highscore Godly Shoot Boss", App.State.Statistic.GodlyShootScoreBoss.ToInt() + this.Multiboni(App.State.Statistic.MultiGodlyShootScoreBoss), "The highest score you reached in 'Godly Shoot' in Boss mode. Each one increases your statistic multi by 250.", 30);
            }
            num  = this.AddLine(num, "AFK Clones killed", App.State.Statistic.AfkyClonesKilled.GuiText + this.Multiboni(App.State.Statistic.MultiAfkyClonesKilled), "The total number of clones your afky God has killed. Increases your statistic multi by 1 every 1000. Capped at 25 million.", 30);
            num  = this.AddLine(num, "Highest Afky God Power", App.State.Statistic.AfkyGodPower.GuiText + this.Multiboni(App.State.Statistic.MultiAfkyGodPower), "The highest Power your Afky God ever had. Increases your statistic multi by 1 every 10. Capped at 25 million.", 30);
            num += 20;
            CDouble cDouble = App.State.PremiumBoni.TotalMight;

            num = this.AddLine(num, "Total Might gained", cDouble.GuiText + this.Multiboni(App.State.Statistic.MultiTotalMight), "How many times you upgraded a level in the Might-Tab. Each one increases your statistic multi by 10.", 30);
            CDouble cDouble2 = App.State.PremiumBoni.TotalGodPowerSpent;

            num  = this.AddLine(num, "Total God Power spent", cDouble2.GuiText + this.Multiboni(App.State.Statistic.MultiTotalGPsUsed), "How many God Power you have spent. Each one increases your statistic multi by 20.\nGP spent for permanent upgrades: " + App.State.PremiumBoni.PermanentGPSpent, 30);
            num  = this.AddLine(num, "Total Pet Growth", App.State.Statistic.TotalPetGrowth.GuiText + this.Multiboni(App.State.Statistic.MultiPetGrowth), "The total combined growth of all the pets you own.", 30);
            num += 20;
            num  = this.AddLine(num, "All Achievements Challenges", App.State.Statistic.AchievementChallengesFinished + this.Multiboni(App.State.Statistic.MultiAchievementChallenge), "How often you finished an All Achievements Challenge. You will receive 750,000 statistic multi and your achievements will increase your multipliers by 1% more for each one. \nIt will also reduce the levels for trainings and fights you need to reach an achievement by 1% (Maxed at 50%).", 30);
            num  = this.AddLine(num, "Double Rebirth Challenges", App.State.Statistic.DoubleRebirthChallengesFinished + this.Multiboni(App.State.Statistic.MultiDBChallenge), "How often you have defeated Baal after a Double Rebirth Challenge. You will receive 500,000 statistic multi and your might will level up one time (up to a max of 50) for each one.", 30);
            string right = Conv.MsToGuiText(App.State.Statistic.FastestDRCallenge.ToLong(), true);

            if (App.State.Statistic.FastestDRCallenge <= 0)
            {
                right = "No challenge finished.";
            }
            string str3 = string.Empty;

            if (App.State.Statistic.HasStartedDoubleRebirthChallenge)
            {
                str3 = "\nTime since you started the challenge: " + Conv.MsToGuiText(App.State.Statistic.TimeAfterDRCStarted.ToLong(), true);
            }
            num = this.AddLine(num, "Fastest DRC", right, "The fastest time you completed a 'Double Rebirth Challenge'" + str3, 30);
            num = this.AddLine(num, "1K Challenges", App.State.Statistic.OnekChallengesFinished + this.Multiboni(App.State.Statistic.Multi1KChallenge), "How often you have defeated Baal in a 1K Challenge. You will receive 1.5 million statistic multi and your clones will level up might 5% faster for each one. (level 40 is max)", 30);
            string right2 = Conv.MsToGuiText(App.State.Statistic.Fastest1KCCallenge.ToLong(), true);

            if (App.State.Statistic.Fastest1KCCallenge <= 0)
            {
                right2 = "No challenge finished.";
            }
            str3 = string.Empty;
            if (App.State.Statistic.HasStarted1kChallenge)
            {
                str3 = "\nTime since you started the challenge: " + Conv.MsToGuiText(App.State.Statistic.TimeAfter1KCStarted.ToLong(), true);
            }
            num = this.AddLine(num, "Fastest 1KC", right2, "The fastest time you completed a '1K Challenge'" + str3, 30);
            num = this.AddLine(num, "No Rebirth Challenges", App.State.Statistic.NoRbChallengesFinished + this.Multiboni(App.State.Statistic.MultiNoRbChallenge), "How often you have defeated Baal in a No Rebirth Challenge. You will receive 10 million statistic multi and you can fight Ultimate Beings 1% faster. (20% is max)", 30);
            string right3 = Conv.MsToGuiText(App.State.Statistic.FastestNoRbCCallenge.ToLong(), true);

            if (App.State.Statistic.FastestNoRbCCallenge <= 0)
            {
                right3 = "No challenge finished.";
            }
            if (App.State.Statistic.HasStartedNoRbChallenge)
            {
                str3 = "\nTime since you started the challenge: " + Conv.MsToGuiText(App.State.Statistic.TimeAfterNoRbStarted.ToLong(), true);
            }
            num  = this.AddLine(num, "Fastest No Rebirth Challenge", right3, "The fastest time you completed a 'No Rebirth Challenge'" + str3, 30);
            num += 20;
            num  = this.AddLine(num, "Ultimate Universe Challenges", App.State.Statistic.UniverseChallengesFinished + this.Multiboni(App.State.Statistic.MultiUUChallenge), "How often you finished an 'Ultimate Universe Challenge'. Your Planet level will increase by 1 for each finished Challenge (level 50 is max).", 30);
            string right4 = Conv.MsToGuiText(App.State.Statistic.FastestUUCallenge.ToLong(), true);

            if (App.State.Statistic.FastestUUCallenge <= 0)
            {
                right4 = "No challenge finished.";
            }
            str3 = string.Empty;
            if (App.State.Statistic.HasStartedUniverseChallenge)
            {
                str3 = "\nTime since you started the challenge: " + Conv.MsToGuiText(App.State.Statistic.TimeAfterUUCStarted.ToLong(), true);
            }
            num = this.AddLine(num, "Fastest UUC", right4, "The fastest time you completed an 'Ultimate Universe Challenge'" + str3, 30);
            num = this.AddLine(num, "Ultimate Pet Challenges", App.State.Statistic.UltimatePetChallengesFinished + this.Multiboni(App.State.Statistic.MultiUPChallenge), "How often you beat Baal with your pets. You will receive 2 million statistic multi and receive 5% more rewards from pet campaigns (maxed at 20).", 30);
            string right5 = Conv.MsToGuiText(App.State.Statistic.FastestUPCallenge.ToLong(), true);

            if (App.State.Statistic.FastestUPCallenge <= 0)
            {
                right5 = "No challenge finished.";
            }
            str3 = string.Empty;
            if (App.State.Statistic.HasStartedUltimatePetChallenge)
            {
                str3 = "\nTime since you started the challenge: " + Conv.MsToGuiText(App.State.Statistic.TimeAfterUPCStarted.ToLong(), true);
            }
            num = this.AddLine(num, "Fastest UPC", right5, "The fastest time you completed an 'Ultimate Pet Challenge'" + str3, 30);
            num = this.AddLine(num, "Black Holes Challenges", App.State.Statistic.BlackHoleChallengesFinished + this.Multiboni(App.State.Statistic.MultiBHChallenge), "How often you have finished the challenge. You will receive 750,000 statistic multi.\nFor each challenge finished, blackholes are 2% cheaper to build and each blackhole up to the number of BHCs completed provides an additional 5% chance for 1 GP each hour.\nCan't go higher than 200% for 2 additional GP each hour.", 30);
            string right6 = Conv.MsToGuiText(App.State.Statistic.FastestBHCallenge.ToLong(), true);

            if (App.State.Statistic.FastestBHCallenge <= 0)
            {
                right6 = "No challenge finished.";
            }
            str3 = string.Empty;
            if (App.State.Statistic.HasStartedBlackHoleChallenge)
            {
                str3 = "\nTime since you started the challenge: " + Conv.MsToGuiText(App.State.Statistic.TimeAfterBHCStarted.ToLong(), true);
            }
            num  = this.AddLine(num, "Fastest BHC", right6, "The fastest time you completed a 'Black Hole Challenge'" + str3, 30);
            num += 20;
            num  = this.AddLine(num, "Ultimate Baal Challenges", App.State.Statistic.UltimateBaalChallengesFinished + this.Multiboni(App.State.Statistic.MultiUBChallenge), "How often you beat Baal after an Ultimate Baal Challenge. You will receive 5 million statistic multi and P.Baals will grow weaker by 1% for each one (50% is minimum).", 30);
            string right7 = Conv.MsToGuiText(App.State.Statistic.FastestUBCallenge.ToLong(), true);

            if (App.State.Statistic.FastestUBCallenge <= 0)
            {
                right7 = "No challenge finished.";
            }
            str3 = string.Empty;
            if (App.State.Statistic.HasStartedUltimateBaalChallenge)
            {
                str3 = string.Concat(new object[]
                {
                    "\nTime since you started the challenge: ",
                    Conv.MsToGuiText(App.State.Statistic.TimeAfterUBCStarted.ToLong(), true),
                    ", currently you are on the ",
                    App.State.Statistic.RebirthsAfterUBC,
                    ". rebirth."
                });
            }
            num = this.AddLine(num, "Fastest UBC", right7, "The fastest time you completed a 'Ultimate Baal Challenge'" + str3, 30);
            string right8 = "-";

            if (App.State.Statistic.MinRebirthsAfterUBC > 0)
            {
                right8 = App.State.Statistic.MinRebirthsAfterUBC.ToGuiText(true);
            }
            num = this.AddLine(num, "Minimum Rebirths used for UBC", right8, "Can you defeat baal in one rebirth?", 30);
            num = this.AddLine(num, "Ultimate Arty Challenges", App.State.Statistic.ArtyChallengesFinished + this.Multiboni(App.State.Statistic.MultiUAChallenge), "How often you beat Baal after an Ultimate Arty Challenge within 4 rebirths. You will receive 20 million statistic multi and P.Baals will grow weaker by 2% for each one (50% is minimum).", 30);
            string right9 = Conv.MsToGuiText(App.State.Statistic.FastestUACallenge.ToLong(), true);

            if (App.State.Statistic.FastestUACallenge <= 0)
            {
                right9 = "No challenge finished.";
            }
            str3 = string.Empty;
            if (App.State.Statistic.HasStartedUltimateBaalChallenge)
            {
                str3 = string.Concat(new object[]
                {
                    "\nTime since you started the challenge: ",
                    Conv.MsToGuiText(App.State.Statistic.TimeAfterUACStarted.ToLong(), true),
                    ", currently you are on the ",
                    App.State.Statistic.RebirthsAfterUAC,
                    ". rebirth."
                });
            }
            num    = this.AddLine(num, "Fastest UAC", right9, "The fastest time you completed an 'Ultimate Arty Challenge'" + str3, 30);
            right8 = "-";
            if (App.State.Statistic.MinRebirthsAfterUAC > 0)
            {
                right8 = App.State.Statistic.MinRebirthsAfterUAC.ToGuiText(true);
            }
            num  = this.AddLine(num, "Minimum Rebirths used for UAC", right8, "Can you defeat baal in one rebirth?", 30);
            num += 20;
            num  = this.AddLine(num, "Monuments created", App.State.Statistic.MonumentsCreated.GuiText, "The number of monuments you created. They work as a multiplier for all other statistic multiplier. Monuments are unlocked after defeating Diana.", 30);
            num  = this.AddLine(num, "Total Multiplier ", string.Concat(new object[]
            {
                App.State.Statistic.StatisticRebirthMultiplierBase.ToGuiText(true),
                " x ",
                App.State.Statistic.MultiMonumentsCreated + 1,
                " = ",
                (App.State.Statistic.StatisticRebirthMultiplierBase * (App.State.Statistic.MultiMonumentsCreated + 1)).ToGuiText(true)
            }), "Total multiplier out of all statistics. Also multiplied with " + App.State.PremiumBoni.StatisticMulti.ToGuiText(true) + " from god power purchases but it is capped at: " + App.State.Multiplier.RebirthMulti.ToGuiText(true), 50);
            num += 25;
            GUI.EndScrollView();
            GUI.EndGroup();
            this.scrollHeight = num;
        }
        public static void Show()
        {
            GUIStyle style  = GUI.skin.GetStyle("Label");
            GUIStyle style2 = GUI.skin.GetStyle("Button");

            style2.fontSize = GuiBase.FontSize(16);
            style.alignment = TextAnchor.UpperLeft;
            style.fontSize  = GuiBase.FontSize(15);
            GUI.Box(new Rect(GuiBase.Width(290f), GuiBase.Height(110f), GuiBase.Width(660f), GuiBase.Height(480f)), string.Empty);
            if (SteamHelper.IsWaitingForPurchase || App.State.PremiumBoni.ItemIdToPurchase != Purchase.None)
            {
                GUI.Label(new Rect(GuiBase.Width(310f), GuiBase.Height(130f), GuiBase.Width(630f), GuiBase.Height(70f)), "Waiting for the result...");
                return;
            }
            SteamOffersUi.scrollPosition = GuiBase.TouchScrollView(new Rect(GuiBase.Width(280f), GuiBase.Height(120f), GuiBase.Width(660f), GuiBase.Height(430f)), SteamOffersUi.scrollPosition, new Rect(0f, GuiBase.Height(20f), GuiBase.Width(620f), GuiBase.Height((float)SteamOffersUi.marginTop)));
            SteamOffersUi.marginTop      = 20;
            if (!App.State.PremiumBoni.HasPurchasedGodPowerOnce)
            {
                style.fontStyle = FontStyle.Bold;
                style.fontSize  = GuiBase.FontSize(18);
                GUI.Label(new Rect(GuiBase.Width(25f), GuiBase.Height((float)SteamOffersUi.marginTop), GuiBase.Width(630f), GuiBase.Height(70f)), "For your first 'God Power' purchase you will receive twice the amount!");
                style.fontSize           = GuiBase.FontSize(15);
                style.fontStyle          = FontStyle.Normal;
                SteamOffersUi.marginTop += 40;
            }
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)SteamOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(300f)));
            SteamOffersUi.AddHeader("God Power", 20, style);
            int num = App.State.PremiumBoni.GodPowerPurchaseBonusPercent();

            if (num > 0)
            {
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(120f)), "The more you play and the more you purchase, the more God Power you will receive from purchases.\nCurrent bonus: " + num + "%\nYou will receive what is shown on the buttons, even if the purchase dialog afterwards shows less.");
            }
            else
            {
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "Gain the power of gods!\nWith god power you can buy various permanent bonuses in the god power page.");
            }
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(180f), GuiBase.Width(150f), GuiBase.Height(30f)), "You have: " + App.State.PremiumBoni.GodPower);
            GUI.Label(new Rect(GuiBase.Width(150f), GuiBase.Height(162f), GuiBase.Width(40f), GuiBase.Height(40f)), SteamOffersUi.godPower);
            int count = 5 * (num + 100) / 100;

            SteamOffersUi.addPurchaseButton(440, 60, Purchase.GodPower5, count);
            count = 25 * (num + 100) / 100;
            SteamOffersUi.addPurchaseButton(440, 100, Purchase.GodPower25, count);
            count = 50 * (num + 100) / 100;
            SteamOffersUi.addPurchaseButton(440, 140, Purchase.GodPower50, count);
            count = 100 * (num + 100) / 100;
            SteamOffersUi.addPurchaseButton(440, 180, Purchase.GodPower100, count);
            SteamOffersUi.marginTop += 225;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)SteamOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(260f)));
            SteamOffersUi.AddHeader("Lucky Draws", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(55f)), "Try out your luck!");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(185f), GuiBase.Width(400f), GuiBase.Height(30f)), "You have: " + App.State.PremiumBoni.LuckyDraws.GuiText);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(210f), GuiBase.Width(400f), GuiBase.Height(35f)), "You can open up at most 50 a day.");
            SteamOffersUi.addPurchaseButton(440, 60, Purchase.LuckyDraw, 1);
            SteamOffersUi.addPurchaseButton(440, 100, Purchase.LuckyDraw10, 10);
            SteamOffersUi.addPurchaseButton(440, 140, Purchase.LuckyDraw50, 50);
            GUI.Label(new Rect(GuiBase.Width(580f), GuiBase.Height(180f), GuiBase.Width(32f), GuiBase.Height(32f)), SteamOffersUi.luckyDraw);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(180f), GuiBase.Width(120f), GuiBase.Height(32f)), new GUIContent("Open one")))
            {
                GuiBase.ShowToast(App.State.PremiumBoni.UseLuckyDraw());
            }
            if (App.State.PremiumBoni.TimeForNextLuckyDraw < 0)
            {
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(95f), GuiBase.Width(200f), GuiBase.Height(25f)), "Get your free draw now!");
                if (GUI.Button(new Rect(GuiBase.Width(240f), GuiBase.Height(100f), GuiBase.Width(130f), GuiBase.Height(32f)), new GUIContent("Get free draw!")))
                {
                    App.State.PremiumBoni.GetFreeLuckyDraw();
                }
            }
            else
            {
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(95f), GuiBase.Width(200f), GuiBase.Height(50f)), "Time until your free draw is ready: " + Conv.MsToGuiText(App.State.PremiumBoni.TimeForNextLuckyDraw.ToLong(), true));
            }
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(140f), GuiBase.Width(450f), GuiBase.Height(50f)), App.State.Ext.Lucky.LastDrawText);
            SteamOffersUi.marginTop += 220;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)SteamOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(220f)));
            SteamOffersUi.AddHeader("Daily Packs", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(55f)), "Get one additional Lucky Draw and 2 God Power once a day for 15 or 30 days!");
            SteamOffersUi.addPurchaseButton(440, 60, Purchase.DailyPack15, 15);
            SteamOffersUi.addPurchaseButton(440, 100, Purchase.DailyPack, 30);
            int num2 = 110;

            if (App.State.PremiumBoni.DailyPackDaysLeft > 0)
            {
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(150f), GuiBase.Width(400f), GuiBase.Height(30f)), "Packs Left: " + App.State.PremiumBoni.DailyPackDaysLeft.GuiText);
                if (App.State.PremiumBoni.TimeForNextDailyPack < 0L)
                {
                    GUI.Label(new Rect(GuiBase.Width(580f), GuiBase.Height(150f), GuiBase.Width(32f), GuiBase.Height(32f)), SteamOffersUi.dailyPack);
                    if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(150f), GuiBase.Width(120f), GuiBase.Height(32f)), new GUIContent("Open Pack")))
                    {
                        App.State.PremiumBoni.GetDailyPack();
                    }
                }
                else
                {
                    GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(110f), GuiBase.Width(260f), GuiBase.Height(50f)), "Time until the next pack arrives: " + Conv.MsToGuiText(App.State.PremiumBoni.TimeForNextDailyPack, true));
                }
                num2 = 180;
            }
            SteamOffersUi.marginTop += num2;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)SteamOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(300f)));
            SteamOffersUi.AddHeader("Pet Token", 20, style);
            int num3 = 60;

            if (!App.State.PremiumBoni.BoughtLimitedPetToken)
            {
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height((float)num3), GuiBase.Width(400f), GuiBase.Height(100f)), "Limited Offer. You can only buy this once!");
                SteamOffersUi.addPurchaseButton(440, num3, Purchase.PetTokenLimited, 1);
                SteamOffersUi.marginTop += 40;
                num3 += 40;
            }
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height((float)num3), GuiBase.Width(400f), GuiBase.Height(100f)), "Unlock special Pets!\nYou can see the pets in Fight -> Pets.");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height((float)(num3 + 70)), GuiBase.Width(150f), GuiBase.Height(30f)), "You have: " + App.State.PremiumBoni.PetToken.GuiText);
            GUI.Label(new Rect(GuiBase.Width(150f), GuiBase.Height((float)(num3 + 62)), GuiBase.Width(50f), GuiBase.Height(50f)), SteamOffersUi.imgPetToken);
            SteamOffersUi.addPurchaseButton(440, num3, Purchase.PetToken, 1);
            num3 += 40;
            SteamOffersUi.addPurchaseButton(440, num3, Purchase.PetToken3, 3);
            SteamOffersUi.marginTop += 180;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)SteamOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(300f)));
            SteamOffersUi.AddHeader("Improved Crystal Upgrade", 20, style);
            num3 = 60;
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "Adds 25% to the starting upgrade chance for all crystals (can't go higher than 95%)!\nYou can get this only once.");
            if (App.State.PremiumBoni.HasCrystalImprovement)
            {
                GUI.Label(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "You own this already!");
            }
            else
            {
                SteamOffersUi.addPurchaseButton(440, num3, Purchase.CrystalUpgradeChance, 1);
            }
            SteamOffersUi.marginTop += 120;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)SteamOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(300f)));
            SteamOffersUi.AddHeader("Crystal Equip Slot", 20, style);
            num3 = 60;
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "Adds one more equip slot for your crystals!\n");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(83f), GuiBase.Width(400f), GuiBase.Height(100f)), "Currently you can equip " + App.State.PremiumBoni.MaxCrystals.GuiText + " crystals at once.");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(106f), GuiBase.Width(400f), GuiBase.Height(100f)), "You can buy up to " + (6 - App.State.PremiumBoni.MaxCrystals).GuiText + " more slots.");
            if (App.State.PremiumBoni.MaxCrystals >= 6)
            {
                GUI.Label(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "Your slots are maxed!");
            }
            else
            {
                SteamOffersUi.addPurchaseButton(440, num3, Purchase.CrystalSlot, 1);
            }
            SteamOffersUi.marginTop += 135;
            GUI.EndGroup();
            if (App.State.PremiumBoni.ImprovedNextAt || App.State.Statistic.HasStartedArtyChallenge || App.State.Statistic.HasStartedUltimateBaalChallenge)
            {
                num3 = 60;
                GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)SteamOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(300f)));
                SteamOffersUi.AddHeader("Improved Next At for challenges", 20, style);
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "If you buy this, improved next at will also work in challenges!\n");
                if (App.State.PremiumBoni.ChallengeImprovedNextAt)
                {
                    GUI.Label(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "You own this already!");
                }
                else
                {
                    SteamOffersUi.addPurchaseButton(440, num3, Purchase.ChallengeNext, 1);
                }
                SteamOffersUi.marginTop += 100;
                GUI.EndGroup();
            }
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)SteamOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(300f)));
            SteamOffersUi.AddHeader("Refrigerator", 20, style);
            num3 = 60;
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "Keeps your food safe. If you buy this, you won't lose your pet food after rebirthing!\n");
            if (App.State.PremiumBoni.PetFoodAfterRebirth)
            {
                GUI.Label(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "You own this already!");
            }
            else
            {
                SteamOffersUi.addPurchaseButton(440, num3, Purchase.FoodRebirth, 1);
            }
            SteamOffersUi.marginTop += 120;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)SteamOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(300f)));
            SteamOffersUi.AddHeader("Unlimited Gender Change", 20, style);
            if (App.State.PremiumBoni.HasUnlimitedGenderChange)
            {
                string str = "male";
                if (App.State.Avatar.IsFemale)
                {
                    str = "female";
                }
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(390f), GuiBase.Height(100f)), "Change your gender. Your current gender is " + str);
                if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(60f), GuiBase.Width(120f), GuiBase.Height(28f)), new GUIContent("Change")))
                {
                    App.State.Avatar.GenderChosen = false;
                    HeroImage.Init(true);
                }
                SteamOffersUi.marginTop += 20;
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(100f), GuiBase.Width(390f), GuiBase.Height(100f)), "Change your name. Your current name is " + App.State.AvatarName);
                if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(100f), GuiBase.Width(120f), GuiBase.Height(28f)), new GUIContent("Change")))
                {
                    App.State.ChangeAvatarName = true;
                }
            }
            else
            {
                GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(100f)), "If you buy this, you can change your name and gender for free as often as you want!\n");
                SteamOffersUi.addPurchaseButton(440, 60, Purchase.GenderChange, 1);
            }
            SteamOffersUi.marginTop += 150;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)SteamOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(185f)));
            SteamOffersUi.AddHeader("Ultimate shadow summon", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(55f)), "Creating shadow clones is too slow? With this you will max them instantly!");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(140f), GuiBase.Width(400f), GuiBase.Height(30f)), "You have: " + App.State.PremiumBoni.UltimateShadowSummonCount);
            SteamOffersUi.addPurchaseButton(440, 60, Purchase.ShadowSummon, 1);
            SteamOffersUi.addPurchaseButton(440, 100, Purchase.ShadowSummon10, 10);
            GUI.Label(new Rect(GuiBase.Width(580f), GuiBase.Height(140f), GuiBase.Width(32f), GuiBase.Height(32f)), SteamOffersUi.imgShadowSummon);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(140f), GuiBase.Width(120f), GuiBase.Height(32f)), new GUIContent("Use 1")))
            {
                App.State.PremiumBoni.UseUltimateShadowSummon();
            }
            SteamOffersUi.marginTop += 170;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)SteamOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(185f)));
            SteamOffersUi.AddHeader("Godly liquid", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(55f)), "Doubles your speed when creating creations (and clones) for 90 minutes. (Multiplies with godly liquid V2)");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(110f), GuiBase.Width(400f), GuiBase.Height(30f)), "Duration left: " + Conv.MsToGuiText(App.State.PremiumBoni.GodlyLiquidDuration, true));
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(140f), GuiBase.Width(400f), GuiBase.Height(30f)), "You have: " + App.State.PremiumBoni.GodlyLiquidCount);
            SteamOffersUi.addPurchaseButton(440, 60, Purchase.GodlyLiquid, 1);
            SteamOffersUi.addPurchaseButton(440, 100, Purchase.GodlyLiquid10, 10);
            GUI.Label(new Rect(GuiBase.Width(580f), GuiBase.Height(140f), GuiBase.Width(32f), GuiBase.Height(32f)), SteamOffersUi.imgGodlyLiquid);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(140f), GuiBase.Width(120f), GuiBase.Height(32f)), new GUIContent("Use 1")))
            {
                App.State.PremiumBoni.UseGodlyLiquid();
            }
            SteamOffersUi.marginTop += 170;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)SteamOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(185f)));
            SteamOffersUi.AddHeader("Godly liquid V2", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(55f)), "Doubles your speed when creating creations (and clones) until your next rebirth.");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(110f), GuiBase.Width(400f), GuiBase.Height(30f)), "Is in use: " + App.State.PremiumBoni.GodlyLiquidV2InUse);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(140f), GuiBase.Width(400f), GuiBase.Height(30f)), "You have: " + App.State.PremiumBoni.GodlyLiquidV2Count);
            SteamOffersUi.addPurchaseButton(440, 60, Purchase.GodlyLiquidRebirth, 1);
            SteamOffersUi.addPurchaseButton(440, 100, Purchase.GodlyLiquidRebirth10, 10);
            GUI.Label(new Rect(GuiBase.Width(580f), GuiBase.Height(140f), GuiBase.Width(32f), GuiBase.Height(32f)), SteamOffersUi.imgGodlyLiquidV2);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(140f), GuiBase.Width(120f), GuiBase.Height(32f)), new GUIContent("Use 1")))
            {
                App.State.PremiumBoni.UseGodlyLiquidRebirth();
            }
            SteamOffersUi.marginTop += 170;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)SteamOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(185f)));
            SteamOffersUi.AddHeader("Chakra pill", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(65f)), "Increases your chakra to let your clones build faster.\nDoubles the speed to build monuments and upgrades for 90 minutes. (Multiplies with chakra pill V2)");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(120f), GuiBase.Width(400f), GuiBase.Height(30f)), "Duration left: " + Conv.MsToGuiText(App.State.PremiumBoni.ChakraPillDuration, true));
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(150f), GuiBase.Width(400f), GuiBase.Height(30f)), "You have: " + App.State.PremiumBoni.ChakraPillCount);
            SteamOffersUi.addPurchaseButton(440, 60, Purchase.ChakraPill, 1);
            SteamOffersUi.addPurchaseButton(440, 100, Purchase.ChakraPill10, 10);
            GUI.Label(new Rect(GuiBase.Width(580f), GuiBase.Height(150f), GuiBase.Width(32f), GuiBase.Height(32f)), SteamOffersUi.imgChakraPill);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(150f), GuiBase.Width(120f), GuiBase.Height(32f)), new GUIContent("Use 1")))
            {
                App.State.PremiumBoni.UseChakraPill();
            }
            SteamOffersUi.marginTop += 180;
            GUI.EndGroup();
            GUI.BeginGroup(new Rect(GuiBase.Width(5f), GuiBase.Height((float)SteamOffersUi.marginTop), GuiBase.Width(670f), GuiBase.Height(185f)));
            SteamOffersUi.AddHeader("Chakra pill V2", 20, style);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(60f), GuiBase.Width(400f), GuiBase.Height(65f)), "Increases your chakra to let your clones build faster.\nDoubles the speed to build monuments and upgrades until your next rebirth.");
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(120f), GuiBase.Width(400f), GuiBase.Height(30f)), "Is in use: " + App.State.PremiumBoni.ChakraPillV2InUse);
            GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(150f), GuiBase.Width(400f), GuiBase.Height(30f)), "You have: " + App.State.PremiumBoni.ChakraPillV2Count);
            SteamOffersUi.addPurchaseButton(440, 60, Purchase.ChakraPillRebirth, 1);
            SteamOffersUi.addPurchaseButton(440, 100, Purchase.ChakraPillRebirth10, 10);
            GUI.Label(new Rect(GuiBase.Width(580f), GuiBase.Height(150f), GuiBase.Width(32f), GuiBase.Height(32f)), SteamOffersUi.imgChakraPillV2);
            if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(150f), GuiBase.Width(120f), GuiBase.Height(32f)), new GUIContent("Use 1")))
            {
                App.State.PremiumBoni.UseChakraPillRebirth();
            }
            SteamOffersUi.marginTop += 180;
            GUI.EndGroup();
            GUI.EndScrollView();
        }
        private void show()
        {
            GUIStyle style = GUI.skin.GetStyle("Label");

            style.fontSize  = GuiBase.FontSize(16);
            style.alignment = TextAnchor.UpperLeft;
            GUIStyle style2 = GUI.skin.GetStyle("Button");

            style2.fontSize = GuiBase.FontSize(16);
            GUI.BeginGroup(new Rect(GuiBase.Width(290f), GuiBase.Height(110f), GuiBase.Width(660f), GuiBase.Height(480f)));
            GUI.Box(new Rect(GuiBase.Width(0f), GuiBase.Height(0f), GuiBase.Width(660f), GuiBase.Height(480f)), string.Empty);
            if (this.Battle.IsBattleFinished)
            {
                this.ShowBattleFinished();
            }
            else
            {
                if (!this.Battle.IsFighting && !App.State.GameSettings.AutoFightIsOn)
                {
                    if (this.moreInfo)
                    {
                        if (GUI.Button(new Rect(GuiBase.Width(520f), GuiBase.Height(10f), GuiBase.Width(90f), GuiBase.Height(30f)), new GUIContent("Back", string.Empty)))
                        {
                            this.moreInfo = false;
                        }
                        style.fontSize = GuiBase.FontSize(14);
                        GUI.Label(new Rect(GuiBase.Width(20f), GuiBase.Height(10f), GuiBase.Width(620f), GuiBase.Height(300f)), "Mystic is useless in this fight.\nEnemy attack and hp is calculated from your power level.\nThe divinity you gain is (divinity gained from battles every second * 2 + divinity gained from generator) * 200 for Jacky, 300 for Cthulhu, 500 for doppel, 500 + 1000 for D.evelope, 4*gods defeated for gods, 10,30,60,100… for shadow clones.\nSkillPower = 1 x skill level until 100k + 0.05 x skill level until 1100k + 0.01 x skill level after 1100k.\nThe damage you do is: SkillPower * base damage * damage increase shown on top (the percent one) * Player attack / 1 billion * number of hits.\n");
                        style.fontSize = GuiBase.FontSize(16);
                    }
                    else
                    {
                        if (GUI.Button(new Rect(GuiBase.Width(40f), GuiBase.Height(100f), GuiBase.Width(180f), GuiBase.Height(30f)), new GUIContent("Fight " + this.Battle.Enemies.Endless.Name, this.Battle.Enemies.Endless.Description)))
                        {
                            this.Battle.StartFight(BattleState.BattleType.endless);
                        }
                        if (GUI.Button(new Rect(GuiBase.Width(240f), GuiBase.Height(100f), GuiBase.Width(180f), GuiBase.Height(30f)), new GUIContent("Fight " + this.Battle.Enemies.Jacky.Name, this.Battle.Enemies.Jacky.Description)))
                        {
                            this.Battle.StartFight(BattleState.BattleType.jacky);
                        }
                        if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(100f), GuiBase.Width(180f), GuiBase.Height(30f)), new GUIContent("Fight " + this.Battle.Enemies.Cthulhu.Name, this.Battle.Enemies.Cthulhu.Description)))
                        {
                            this.Battle.StartFight(BattleState.BattleType.cthulhu);
                        }
                        if (GUI.Button(new Rect(GuiBase.Width(40f), GuiBase.Height(140f), GuiBase.Width(180f), GuiBase.Height(30f)), new GUIContent("Fight " + this.Battle.Enemies.Doppelganger.Name, this.Battle.Enemies.Doppelganger.Description)))
                        {
                            this.Battle.StartFight(BattleState.BattleType.doppel);
                        }
                        if (GUI.Button(new Rect(GuiBase.Width(240f), GuiBase.Height(140f), GuiBase.Width(180f), GuiBase.Height(30f)), new GUIContent("Fight " + this.Battle.Enemies.Developer.Name, this.Battle.Enemies.Developer.Description)))
                        {
                            this.Battle.StartFight(BattleState.BattleType.developer);
                        }
                        if (GUI.Button(new Rect(GuiBase.Width(440f), GuiBase.Height(140f), GuiBase.Width(180f), GuiBase.Height(30f)), new GUIContent("Fight Gods", "Fight all the other gods. Unlike all other fights, their stats are constant and not scaled by your power.\nThey do not count for any statistic.")))
                        {
                            this.Battle.StartFight(BattleState.BattleType.gods);
                        }
                        GUI.Label(new Rect(GuiBase.Width(40f), GuiBase.Height(10f), GuiBase.Width(470f), GuiBase.Height(100f)), "Using skills 3 times in battle reduces the clone cap of Physical and Skill training of the same tier by one. This means you need less clones for the same power-gain. Lasts through rebirths.");
                        if (GUI.Button(new Rect(GuiBase.Width(520f), GuiBase.Height(10f), GuiBase.Width(100f), GuiBase.Height(30f)), new GUIContent("More Info", string.Empty)))
                        {
                            this.moreInfo = true;
                        }
                    }
                }
                else if (App.State.GameSettings.AutoFightIsOn)
                {
                    style.fontStyle = FontStyle.Bold;
                    style.alignment = TextAnchor.MiddleCenter;
                    long time = SpecialFightUi.timeLeft;
                    if (App.State.CreatingSpeedBoniDuration > 0L)
                    {
                        time = SpecialFightUi.timeLeft / 3L;
                        GUI.Label(new Rect(GuiBase.Width(10f), GuiBase.Height(20f), GuiBase.Width(640f), GuiBase.Height(50f)), "Trainingspeed is 300% for the next " + Conv.MsToGuiText(App.State.CreatingSpeedBoniDuration, true) + "!");
                    }
                    GUI.Label(new Rect(GuiBase.Width(10f), GuiBase.Height(50f), GuiBase.Width(640f), GuiBase.Height(50f)), "Automode is on. \nNext skill training is in " + Conv.MsToGuiSec(time));
                    style.alignment = TextAnchor.UpperLeft;
                    style.fontStyle = FontStyle.Normal;
                }
                else
                {
                    string text = App.State.AvatarName;
                    if (string.IsNullOrEmpty(text))
                    {
                        text = "Guest";
                    }
                    if (GUI.Button(new Rect(GuiBase.Width(10f), GuiBase.Height(10f), GuiBase.Width(80f), GuiBase.Height(30f)), new GUIContent("Flee")))
                    {
                        this.Battle.IsFighting = false;
                        this.Battle.ResetSkillCoolDowns(true);
                        GuiBase.ShowToast("You ran away!\nThe cooldowns are resetted to 0 but to prevent exploiting that the usage count of all skills with a higher cooldown than 500 ms is reduced by 1.");
                    }
                    style.fontStyle = FontStyle.Bold;
                    this.CreateProgressBar(120, 11, 185, this.Battle.PlayerHp.Double, App.State.MaxHealth.Double, text, this.Battle.PlayerHp.ToGuiText(true) + " / " + this.Battle.PlayerMaxHP.ToGuiText(true), style);
                    style.fontSize = GuiBase.FontSize(22);
                    GUI.Label(new Rect(GuiBase.Width(325f), GuiBase.Height(10f), GuiBase.Width(60f), GuiBase.Height(30f)), "VS");
                    style.fontSize = GuiBase.FontSize(16);
                    this.CreateProgressBar(375, 11, 185, this.Battle.CurrentEnemy.HP.Double, this.Battle.CurrentEnemy.HPMax.Double, this.Battle.CurrentEnemy.Name, this.Battle.CurrentEnemy.HP.ToGuiText(true) + " / " + this.Battle.CurrentEnemy.HPMax.ToGuiText(true), style);
                    style.fontStyle = FontStyle.Normal;
                    style.fontSize  = GuiBase.FontSize(16);
                    style.fontStyle = FontStyle.Bold;
                    GUI.Label(new Rect(GuiBase.Width(10f), GuiBase.Height(50f), GuiBase.Width(640f), GuiBase.Height(30f)), "Your total Damage: " + this.Battle.TotalPlayerDamage.ToGuiText(true));
                    style.fontStyle = FontStyle.Normal;
                    style.fontSize  = GuiBase.FontSize(14);
                    GUI.Label(new Rect(GuiBase.Width(10f), GuiBase.Height(75f), GuiBase.Width(640f), GuiBase.Height(45f)), "Your Damage: " + this.Battle.DamageIncrease + " %");
                    GUI.Label(new Rect(GuiBase.Width(220f), GuiBase.Height(75f), GuiBase.Width(640f), GuiBase.Height(45f)), "Enemy Damage: " + this.Battle.DamageDecrease + " %");
                    GUI.Label(new Rect(GuiBase.Width(430f), GuiBase.Height(75f), GuiBase.Width(640f), GuiBase.Height(45f)), "Dodge Chance = " + this.Battle.DodgeChance + " %");
                    GUI.Label(new Rect(GuiBase.Width(10f), GuiBase.Height(95f), GuiBase.Width(640f), GuiBase.Height(45f)), "Counter Chance = " + this.Battle.CounterChance + " %");
                    GUI.Label(new Rect(GuiBase.Width(220f), GuiBase.Height(95f), GuiBase.Width(640f), GuiBase.Height(45f)), "God Speed: " + this.Battle.GodSpeedModeDuration + " ms");
                    GUI.Label(new Rect(GuiBase.Width(430f), GuiBase.Height(95f), GuiBase.Width(640f), GuiBase.Height(45f)), "Gear Eyes: " + this.Battle.GearEyesDuration + " ms");
                    GUI.Label(new Rect(GuiBase.Width(10f), GuiBase.Height(115f), GuiBase.Width(640f), GuiBase.Height(45f)), "Double Damage = " + this.Battle.DoubleUp);
                    GUI.Label(new Rect(GuiBase.Width(220f), GuiBase.Height(115f), GuiBase.Width(640f), GuiBase.Height(45f)), "Damage Block = " + this.Battle.DamageBlock);
                    GUI.Label(new Rect(GuiBase.Width(430f), GuiBase.Height(115f), GuiBase.Width(640f), GuiBase.Height(45f)), "Damage Reflect = " + this.Battle.DamageReflect);
                    GUI.Label(new Rect(GuiBase.Width(10f), GuiBase.Height(150f), GuiBase.Width(640f), GuiBase.Height(45f)), this.Battle.SkillUseText);
                    GUI.Label(new Rect(GuiBase.Width(10f), GuiBase.Height(185f), GuiBase.Width(640f), GuiBase.Height(45f)), this.Battle.EnemyDamageText);
                }
                if (!this.Battle.IsFighting)
                {
                    this.showToolTips = GUI.Toggle(new Rect(GuiBase.Width(20f), GuiBase.Height(190f), GuiBase.Width(200f), GuiBase.Height(30f)), this.showToolTips, new GUIContent("Show skill tooltips"));
                    this.sortSkills   = GUI.Toggle(new Rect(GuiBase.Width(220f), GuiBase.Height(190f), GuiBase.Width(140f), GuiBase.Height(30f)), this.sortSkills, new GUIContent("Sort skills", "If this is on, skills are sorted top to bottom in order of damage skills, buff skills, dodge/block skills, other skills."));
                    App.State.GameSettings.AutoFightIsOn = GUI.Toggle(new Rect(GuiBase.Width(370f), GuiBase.Height(190f), GuiBase.Width(200f), GuiBase.Height(30f)), App.State.GameSettings.AutoFightIsOn, new GUIContent("Auto", "If this is on, every skill will be used once a minute while you are online and not fighting."));
                    if (App.State.GameSettings.SpecialFightSkillsSorted != this.sortSkills)
                    {
                        App.State.GameSettings.SpecialFightSkillsSorted = this.sortSkills;
                        this.Init();
                    }
                }
                style2.fontSize = GuiBase.FontSize(13);
                int num  = 220;
                int num2 = 10;
                int num3 = 0;
                this.skillsToShow = App.State.AllSkills;
                if (this.sortSkills)
                {
                    this.skillsToShow = SpecialFightUi.sortedSkills;
                }
                foreach (Skill current in this.skillsToShow)
                {
                    string text2 = "You need to unlock this skill first!";
                    if (current.IsAvailable)
                    {
                        text2 = current.Extension.Description;
                    }
                    if (!this.showToolTips)
                    {
                        text2 = string.Empty;
                    }
                    if (current.Extension.CoolDownCurrent > 0L)
                    {
                        this.CreateProgressBar(num2, num, 160, (double)current.Extension.CoolDownCurrent, (double)current.Extension.CoolDownBase, Conv.MsToGuiSec(current.Extension.CoolDownCurrent), text2, style);
                    }
                    else
                    {
                        string text3 = current.Name;
                        if (App.CurrentPlattform != Plattform.Android)
                        {
                            if (current.TypeEnum == Skill.SkillType.unlimited_creation_works && current.IsAvailable)
                            {
                                text3 = "UCW (" + EnumName.Name(current.Extension.KeyPress) + ")";
                            }
                            else if (current.TypeEnum == Skill.SkillType.elemental_manipulation && current.IsAvailable)
                            {
                                text3 = "Elemental m. (" + EnumName.Name(current.Extension.KeyPress) + ")";
                            }
                            else
                            {
                                text3 = text3 + " (" + EnumName.Name(current.Extension.KeyPress) + ")";
                            }
                        }
                        if (GUI.Button(new Rect(GuiBase.Width((float)num2), GuiBase.Height((float)num), GuiBase.Width(152f), GuiBase.Height(30f)), new GUIContent(text3, text2)))
                        {
                            if (!this.Battle.IsFighting)
                            {
                                if (App.CurrentPlattform == Plattform.Android)
                                {
                                    GuiBase.ShowToast("Start the fight first!");
                                }
                                else
                                {
                                    this.skillToSelectKey = current;
                                    GuiBase.ShowToast("Press a key now to bind it to " + current.Name);
                                }
                            }
                            else if (current.IsAvailable)
                            {
                                this.Battle.UseSkill(current, false);
                            }
                        }
                    }
                    num2 += 161;
                    num3++;
                    if (num3 % 4 == 0)
                    {
                        num2 = 10;
                        num += 35;
                    }
                }
            }
            GUI.EndGroup();
        }