コード例 #1
0
        public static void Update()
        {
            if (panel == null)
            {
                return;
            }

            if (DebugMod.GM.IsNonGameplayScene())
            {
                if (panel.active)
                {
                    panel.SetActive(false, true);
                }

                return;
            }

            if (DebugMod.settings.HelpPanelVisible && !panel.active)
            {
                panel.SetActive(true, false);
            }
            else if (!DebugMod.settings.HelpPanelVisible && panel.active)
            {
                panel.SetActive(false, true);
            }

            if (panel.active && page >= 0 && page < pageKeys.Count)
            {
                for (int i = 0; i < 11; i++)
                {
                    panel.GetButton(i.ToString()).SetActive(bindPages[pageKeys[page]].Count > i);
                }
            }
        }
コード例 #2
0
ファイル: Console.cs プロジェクト: PatchSalts/CartographyMod
        public static void Update()
        {
            if (panel == null)
            {
                return;
            }

            if (DebugMod.GM.IsNonGameplayScene())
            {
                if (panel.active)
                {
                    panel.SetActive(false, true);
                }

                return;
            }

            if (DebugMod.settings.ConsoleVisible && !panel.active)
            {
                panel.SetActive(true, false);
            }
            else if (!DebugMod.settings.ConsoleVisible && panel.active)
            {
                panel.SetActive(false, true);
            }

            if (panel.active)
            {
                string consoleString = "";
                int    lineCount     = 0;

                for (int i = history.Count - 1; i >= 0; i--)
                {
                    if (lineCount >= 8)
                    {
                        break;
                    }
                    consoleString = history[i] + "\n" + consoleString;
                    lineCount++;
                }

                panel.GetText("Console").UpdateText(consoleString);
            }
        }
コード例 #3
0
        public static void Update()
        {
            if (statePanel == null)
            {
                return;
            }

            if (DebugMod.GM.IsNonGameplayScene())
            {
                if (statePanel.active)
                {
                    statePanel.SetActive(false, true);
                }

                return;
            }

            if (DebugMod.settings.SaveStatePanelVisible && !statePanel.active)
            {
                statePanel.SetActive(true, false);
            }
            else if (!DebugMod.settings.SaveStatePanelVisible && statePanel.active)
            {
                statePanel.SetActive(false, true);
            }

            if (statePanel.active)
            {
                statePanel.GetText("currentmode").UpdateText(SaveStateManager.currentStateOperation);

                for (int i = 0; i < SaveStateManager.maxSaveStates; i++)
                {
                    statePanel.GetText(i.ToString()).UpdateText("open");
                }

                foreach (KeyValuePair <int, string[]> entry in SaveStateManager.GetSaveStatesInfo())
                {
                    statePanel.GetText(entry.Key.ToString()).UpdateText(string.Format("{0} - {1}", entry.Value[0], entry.Value[1]));
                }
            }
        }
コード例 #4
0
        public EnemyData(int hp, PlayMakerFSM fsm, Component spr, GameObject parent = null, GameObject go = null)
        {
            HP         = hp;
            maxHP      = hp;
            FSM        = fsm;
            Spr        = spr;
            gameObject = go;

            Texture2D tex = new Texture2D(120, 40);

            for (int x = 0; x < 120; x++)
            {
                for (int y = 0; y < 40; y++)
                {
                    if (x < 3 || x > 116 || y < 3 || y > 36)
                    {
                        tex.SetPixel(x, y, Color.black);
                    }
                    else
                    {
                        tex.SetPixel(x, y, Color.red);
                    }
                }
            }

            tex.Apply();

            Texture2D tex2   = new Texture2D(1, 1);
            Color     yellow = Color.yellow;

            yellow.a = .7f;
            tex2.SetPixel(1, 1, yellow);

            hpBar = new CanvasPanel(parent, tex, Vector2.zero, Vector2.zero, new Rect(0, 0, 120, 40));
            hpBar.AddText("HP", "", Vector2.zero, new Vector2(120, 40), GUIController.Instance.arial, 20, FontStyle.Normal, TextAnchor.MiddleCenter);
            hpBar.FixRenderOrder();

            hitbox = new CanvasPanel(parent, tex2, Vector2.zero, Vector2.zero, new Rect(0, 0, 1, 1));

            hpBar.SetActive(false, true);
            hitbox.SetActive(false, true);
        }
コード例 #5
0
        public static void Update()
        {
            if (panel == null)
            {
                return;
            }

            if (DebugMod.GM == null)
            {
                return;
            }

            if (DebugMod.GM.IsNonGameplayScene())
            {
                if (panel.active)
                {
                    panel.SetActive(false, true);
                }

                return;
            }

            if (DebugMod.settings.InfoPanelVisible && !panel.active)
            {
                panel.SetActive(true, false);
            }
            else if (!DebugMod.settings.InfoPanelVisible && panel.active)
            {
                panel.SetActive(false, true);
            }

            if (panel.active)
            {
                PlayerData.instance.CountGameCompletion();

                panel.GetText("Hero State").UpdateText(HeroController.instance.hero_state.ToString());
                panel.GetText("Velocity").UpdateText(HeroController.instance.current_velocity.ToString());
                panel.GetText("Nail Damage").UpdateText(DebugMod.RefKnightSlash.FsmVariables.GetFsmInt("damageDealt").Value + " (Flat " + PlayerData.instance.nailDamage + ", x" + DebugMod.RefKnightSlash.FsmVariables.GetFsmFloat("Multiplier").Value + ")");
                panel.GetText("HP").UpdateText(PlayerData.instance.health + " / " + PlayerData.instance.maxHealth);
                panel.GetText("MP").UpdateText((PlayerData.instance.MPCharge + PlayerData.instance.MPReserve).ToString());

                panel.GetText("Completion").UpdateText(PlayerData.instance.completionPercentage.ToString());
                panel.GetText("Grubs").UpdateText(PlayerData.instance.grubsCollected + " / 46");

                panel.GetText("isInvuln").UpdateText(GetStringForBool(HeroController.instance.cState.invulnerable));
                panel.GetText("Invincible").UpdateText(GetStringForBool(PlayerData.instance.isInvincible));
                panel.GetText("Invincitest").UpdateText(GetStringForBool(PlayerData.instance.invinciTest));
                panel.GetText("Damage State").UpdateText(HeroController.instance.damageMode.ToString());
                panel.GetText("Dead State").UpdateText(GetStringForBool(HeroController.instance.cState.dead));
                panel.GetText("Hazard Death").UpdateText(HeroController.instance.cState.hazardDeath.ToString());

                panel.GetText("Scene Name").UpdateText(DebugMod.GetSceneName());
                panel.GetText("Transition").UpdateText(GetStringForBool(HeroController.instance.cState.transitioning));

                string transState = HeroController.instance.transitionState.ToString();
                if (transState == "WAITING_TO_ENTER_LEVEL")
                {
                    transState = "LOADING";
                }
                if (transState == "WAITING_TO_TRANSITION")
                {
                    transState = "WAITING";
                }

                panel.GetText("Trans State").UpdateText(transState);
                panel.GetText("is Gameplay").UpdateText(GetStringForBool(DebugMod.GM.IsGameplayScene()));
                panel.GetText("Game State").UpdateText(GameManager.instance.gameState.ToString());
                panel.GetText("UI State").UpdateText(UIManager.instance.uiState.ToString());
                panel.GetText("Hero Paused").UpdateText(GetStringForBool(HeroController.instance.cState.isPaused));
                panel.GetText("Camera Mode").UpdateText(DebugMod.RefCamera.mode.ToString());

                panel.GetText("Accept Input").UpdateText(GetStringForBool(HeroController.instance.acceptingInput));
                panel.GetText("Relinquished").UpdateText(GetStringForBool(HeroController.instance.controlReqlinquished));
                panel.GetText("atBench").UpdateText(GetStringForBool(PlayerData.instance.atBench));

                panel.GetText("Dashing").UpdateText(GetStringForBool(HeroController.instance.cState.dashing));
                panel.GetText("Jumping").UpdateText(GetStringForBool((HeroController.instance.cState.jumping || HeroController.instance.cState.doubleJumping)));
                panel.GetText("Superdashing").UpdateText(GetStringForBool(HeroController.instance.cState.superDashing));
                panel.GetText("Falling").UpdateText(GetStringForBool(HeroController.instance.cState.falling));
                panel.GetText("Hardland").UpdateText(GetStringForBool(HeroController.instance.cState.willHardLand));
                panel.GetText("Swimming").UpdateText(GetStringForBool(HeroController.instance.cState.swimming));
                panel.GetText("Recoiling").UpdateText(GetStringForBool(HeroController.instance.cState.recoiling));

                panel.GetText("Wall lock").UpdateText(GetStringForBool(HeroController.instance.wallLocked));
                panel.GetText("Wall jumping").UpdateText(GetStringForBool(HeroController.instance.cState.wallJumping));
                panel.GetText("Wall touching").UpdateText(GetStringForBool(HeroController.instance.cState.touchingWall));
                panel.GetText("Wall sliding").UpdateText(GetStringForBool(HeroController.instance.cState.wallSliding));
                panel.GetText("Wall left").UpdateText(GetStringForBool(HeroController.instance.touchingWallL));
                panel.GetText("Wall right").UpdateText(GetStringForBool(HeroController.instance.touchingWallR));

                panel.GetText("Attacking").UpdateText(GetStringForBool(HeroController.instance.cState.attacking));
                panel.GetText("canCast").UpdateText(GetStringForBool(HeroController.instance.CanCast()));
                panel.GetText("canSuperdash").UpdateText(GetStringForBool(HeroController.instance.CanSuperDash()));
                panel.GetText("canQuickmap").UpdateText(GetStringForBool(HeroController.instance.CanQuickMap()));
                panel.GetText("canInventory").UpdateText(GetStringForBool(HeroController.instance.CanOpenInventory()));
                panel.GetText("canWarp").UpdateText(GetStringForBool(DebugMod.RefDreamNail.FsmVariables.GetFsmBool("Dream Warp Allowed").Value));
                panel.GetText("canDGate").UpdateText(GetStringForBool(DebugMod.RefDreamNail.FsmVariables.GetFsmBool("Can Dream Gate").Value));
                panel.GetText("gateAllow").UpdateText(GetStringForBool(DebugMod.RefDreamNail.FsmVariables.GetFsmBool("Dream Gate Allowed").Value));

                int time1 = Mathf.FloorToInt(Time.realtimeSinceStartup / 60f);
                int time2 = Mathf.FloorToInt(Time.realtimeSinceStartup - (float)(time1 * 60));

                panel.GetText("Right1").UpdateText(string.Format("{0:00}:{1:00}", time1, time2) + "\n" + DebugMod.GetLoadTime() + "s\n" + (Vector2)DebugMod.RefKnight.transform.position + "\n" + string.Format("L: {0} R: {1}", DebugMod.IH.inputActions.left.RawValue, DebugMod.IH.inputActions.right.RawValue));
                panel.GetText("Right2").UpdateText(DebugMod.IH.inputActions.moveVector.Vector.x + ", " + DebugMod.IH.inputActions.moveVector.Vector.y + "\n" + GetStringForBool(InputManager.AnyKeyIsPressed) + "\n" + GetStringForBool(DebugMod.IH.inputActions.left.IsPressed || DebugMod.IH.inputActions.right.IsPressed) + "\n" + DebugMod.IH.inputX);
            }
        }
コード例 #6
0
        public static void Update()
        {
            if (panel == null)
            {
                return;
            }

            if (DebugMod.GM.IsNonGameplayScene())
            {
                if (panel.active)
                {
                    panel.SetActive(false, true);
                }

                return;
            }

            if (DebugMod.settings.EnemiesPanelVisible && !panel.active)
            {
                panel.SetActive(true, false);
            }
            else if (!DebugMod.settings.EnemiesPanelVisible && panel.active)
            {
                panel.SetActive(false, true);
            }

            if (DebugMod.settings.EnemiesPanelVisible && UIManager.instance.uiState == UIState.PLAYING && (panel.GetPanel("Pause").active || !panel.GetPanel("Play").active))
            {
                panel.GetPanel("Pause").SetActive(false, true);
                panel.GetPanel("Play").SetActive(true, false);
            }
            else if (DebugMod.settings.EnemiesPanelVisible && UIManager.instance.uiState == UIState.PAUSED && (!panel.GetPanel("Pause").active || panel.GetPanel("Play").active))
            {
                panel.GetPanel("Pause").SetActive(true, false);
                panel.GetPanel("Play").SetActive(false, true);
            }

            if (!panel.active && enemyPool.Count > 0)
            {
                Reset();
            }

            if (panel.active)
            {
                CheckForAutoUpdate();

                string enemyNames = "";
                string enemyHP    = "";
                int    enemyCount = 0;

                for (int i = 0; i < enemyPool.Count; i++)
                {
                    EnemyData  dat = enemyPool[i];
                    GameObject obj = dat.gameObject;

                    if (obj == null || !obj.activeSelf)
                    {
                        if (obj == null)
                        {
                            dat.hpBar.Destroy();
                            dat.hitbox.Destroy();
                            enemyPool.RemoveAt(i);
                            i--;
                        }
                        else
                        {
                            dat.hpBar.SetPosition(new Vector2(-1000f, -1000f));
                        }
                    }
                    else
                    {
                        int hp = dat.HM.hp;

                        if (hp != dat.HP)
                        {
                            dat.SetHP(hp);

                            if (hpBars)
                            {
                                Texture2D tex = new Texture2D(120, 40);

                                for (int x = 0; x < 120; x++)
                                {
                                    for (int y = 0; y < 40; y++)
                                    {
                                        if (x < 3 || x > 116 || y < 3 || y > 36)
                                        {
                                            tex.SetPixel(x, y, Color.black);
                                        }
                                        else
                                        {
                                            if ((float)hp / (float)dat.maxHP >= (x - 2f) / 117f)
                                            {
                                                tex.SetPixel(x, y, Color.red);
                                            }
                                            else
                                            {
                                                tex.SetPixel(x, y, new Color(255f, 255f, 255f, 0f));
                                            }
                                        }
                                    }
                                }

                                tex.Apply();

                                dat.hpBar.UpdateBackground(tex, new Rect(0, 0, 120, 40));
                            }
                        }

                        if (hitboxes)
                        {
                            if ((dat.Spr as tk2dSprite).boxCollider2D != null)
                            {
                                BoxCollider2D boxCollider2D = (dat.Spr as tk2dSprite).boxCollider2D;
                                Bounds        bounds2       = boxCollider2D.bounds;

                                float   width    = Math.Abs(bounds2.max.x - bounds2.min.x);
                                float   height   = Math.Abs(bounds2.max.y - bounds2.min.y);
                                Vector2 position = Camera.main.WorldToScreenPoint(boxCollider2D.transform.position + new Vector3(boxCollider2D.offset.x, boxCollider2D.offset.y, 0f));
                                Vector2 size     = Camera.main.WorldToScreenPoint(boxCollider2D.transform.position + new Vector3(width, height, 0));
                                size -= position;

                                Quaternion rot = boxCollider2D.transform.rotation;
                                rot.eulerAngles = new Vector3(Mathf.Round(rot.eulerAngles.x / 90) * 90, Mathf.Round(rot.eulerAngles.y / 90) * 90, Mathf.Round(rot.eulerAngles.z / 90) * 90);
                                Vector2 pivot  = Camera.main.WorldToScreenPoint(boxCollider2D.transform.position);
                                Vector2 pointA = Camera.main.WorldToScreenPoint((Vector2)boxCollider2D.transform.position + boxCollider2D.offset);
                                pointA.x -= size.x / 2f;
                                pointA.y -= size.y / 2f;
                                Vector2 pointB = pointA + size;

                                pointA = (Vector2)(rot * (pointA - pivot)) + pivot;
                                pointB = (Vector2)(rot * (pointB - pivot)) + pivot;

                                position = new Vector2(pointA.x <pointB.x?pointA.x : pointB.x, pointA.y> pointB.y ? pointA.y : pointB.y);
                                size     = new Vector2(Math.Abs(pointA.x - pointB.x), Math.Abs(pointA.y - pointB.y));

                                size.x *= 1920f / Screen.width;
                                size.y *= 1080f / Screen.height;

                                position.x *= 1920f / Screen.width;
                                position.y *= 1080f / Screen.height;
                                position.y  = 1080f - position.y;

                                dat.hitbox.SetPosition(position);
                                dat.hitbox.ResizeBG(size);
                            }

                            if (!dat.hitbox.active)
                            {
                                dat.hitbox.SetActive(true, true);
                            }
                        }

                        if (hpBars)
                        {
                            Vector2 enemyPos = Camera.main.WorldToScreenPoint(obj.transform.position);
                            enemyPos.x *= 1920f / Screen.width;
                            enemyPos.y *= 1080f / Screen.height;

                            enemyPos.y = 1080f - enemyPos.y;

                            Bounds bounds = (dat.Spr as tk2dSprite).GetBounds();
                            enemyPos.y -= (Camera.main.WorldToScreenPoint(bounds.max).y *(1080f / Screen.height) - Camera.main.WorldToScreenPoint(bounds.min).y *(1080f / Screen.height)) / 2f;
                            enemyPos.x -= 60;

                            dat.hpBar.SetPosition(enemyPos);
                            dat.hpBar.GetText("HP").UpdateText(dat.HM.hp + "/" + dat.maxHP);

                            if (!dat.hpBar.active)
                            {
                                dat.hpBar.SetActive(true, true);
                            }
                        }

                        if (!hpBars && dat.hpBar.active)
                        {
                            dat.hpBar.SetActive(false, true);
                        }

                        if (!hitboxes && dat.hitbox.active)
                        {
                            dat.hitbox.SetActive(false, true);
                        }

                        if (++enemyCount <= 14)
                        {
                            enemyNames += obj.name + "\n";
                            enemyHP    += dat.HM.hp + "/" + dat.maxHP + "\n";
                        }
                    }
                }

                if (panel.GetPanel("Pause").active)
                {
                    for (int i = 1; i <= 14; i++)
                    {
                        if (i <= enemyCount)
                        {
                            panel.GetPanel("Pause").GetButton("Del" + i).SetActive(true);
                            panel.GetPanel("Pause").GetButton("Clone" + i).SetActive(true);
                            panel.GetPanel("Pause").GetButton("Inf" + i).SetActive(true);
                        }
                        else
                        {
                            panel.GetPanel("Pause").GetButton("Del" + i).SetActive(false);
                            panel.GetPanel("Pause").GetButton("Clone" + i).SetActive(false);
                            panel.GetPanel("Pause").GetButton("Inf" + i).SetActive(false);
                        }
                    }

                    panel.GetPanel("Pause").GetButton("Collision").SetTextColor(hitboxes ? new Color(244f / 255f, 127f / 255f, 32f / 255f) : Color.white);
                    panel.GetPanel("Pause").GetButton("HP Bars").SetTextColor(hpBars ? new Color(244f / 255f, 127f / 255f, 32f / 255f) : Color.white);
                    panel.GetPanel("Pause").GetButton("Auto").SetTextColor(autoUpdate ? new Color(244f / 255f, 127f / 255f, 32f / 255f) : Color.white);
                }

                if (enemyCount > 14)
                {
                    enemyNames += "And " + (enemyCount - 14) + " more";
                }

                panel.GetText("Enemy Names").UpdateText(enemyNames);
                panel.GetText("Enemy HP").UpdateText(enemyHP);
            }
        }
コード例 #7
0
        public static void Update()
        {
            if (panel == null)
            {
                return;
            }

            if (DebugMod.GM.IsNonGameplayScene())
            {
                if (panel.active)
                {
                    panel.SetActive(false, true);
                }

                return;
            }

            if (DebugMod.settings.TopMenuVisible && !panel.active)
            {
                panel.SetActive(true, false);
            }
            else if (!DebugMod.settings.TopMenuVisible && panel.active)
            {
                panel.SetActive(false, true);
            }

            if (panel.GetPanel("Skills Panel").active)
            {
                RefreshSkillsMenu();
            }

            if (panel.GetPanel("Items Panel").active)
            {
                RefreshItemsMenu();
            }

            if (panel.GetPanel("Charms Panel").active)
            {
                panel.GetButton("Overcharm", "Charms Panel").SetTextColor(PlayerData.instance.overcharmed ? new Color(244f / 255f, 127f / 255f, 32f / 255f) : Color.white);
                panel.GetButton("Kingsoul", "Charms Panel").UpdateText("Kingsoul: " + PlayerData.instance.royalCharmState);

                if (DebugMod.GrimmTroupe())
                {
                    panel.GetButton("Grimmchild", "Charms Panel").UpdateText("Grimmchild: " + PlayerData.instance.GetIntInternal("grimmChildLevel"));
                }
            }

            if (panel.GetPanel("Cheats Panel").active)
            {
                panel.GetButton("Infinite Jump", "Cheats Panel").SetTextColor(PlayerData.instance.infiniteAirJump ? new Color(244f / 255f, 127f / 255f, 32f / 255f) : Color.white);
                panel.GetButton("Infinite Soul", "Cheats Panel").SetTextColor(DebugMod.infiniteSoul ? new Color(244f / 255f, 127f / 255f, 32f / 255f) : Color.white);
                panel.GetButton("Infinite HP", "Cheats Panel").SetTextColor(DebugMod.infiniteHP ? new Color(244f / 255f, 127f / 255f, 32f / 255f) : Color.white);
                panel.GetButton("Invincibility", "Cheats Panel").SetTextColor(PlayerData.instance.isInvincible ? new Color(244f / 255f, 127f / 255f, 32f / 255f) : Color.white);
                panel.GetButton("Noclip", "Cheats Panel").SetTextColor(DebugMod.noclip ? new Color(244f / 255f, 127f / 255f, 32f / 255f) : Color.white);
                panel.GetButton("Lock KeyBinds", "Cheats Panel").SetTextColor(DebugMod.KeyBindLock ? new Color(244f / 255f, 127f / 255f, 32f / 255f) : Color.white);
            }

            if (panel.GetPanel("Bosses Panel").active)
            {
                panel.GetButton("Failed Champ", "Bosses Panel").SetTextColor(PlayerData.instance.falseKnightDreamDefeated ? new Color(244f / 255f, 127f / 255f, 32f / 255f) : Color.white);
                panel.GetButton("Soul Tyrant", "Bosses Panel").SetTextColor(PlayerData.instance.mageLordDreamDefeated ? new Color(244f / 255f, 127f / 255f, 32f / 255f) : Color.white);
                panel.GetButton("Lost Kin", "Bosses Panel").SetTextColor(PlayerData.instance.infectedKnightDreamDefeated ? new Color(244f / 255f, 127f / 255f, 32f / 255f) : Color.white);

                if (DebugMod.GrimmTroupe())
                {
                    panel.GetButton("NK Grimm", "Bosses Panel").SetTextColor((PlayerData.instance.GetBoolInternal("killedNightmareGrimm") || PlayerData.instance.GetBoolInternal("destroyedNightmareLantern")) ? new Color(244f / 255f, 127f / 255f, 32f / 255f) : Color.white);
                }
            }
            if (panel.GetPanel("DreamGate Panel").active)
            {
                panel.GetPanel("DreamGate Panel").GetButton("Delete Item").SetTextColor(DreamGate.delMenu ? new Color(244f / 255f, 127f / 255f, 32f / 255f) : Color.white);

                panel.GetPanel("DreamGate Panel").GetButton("Right1").UpdateText("");
                panel.GetPanel("DreamGate Panel").GetButton("Right2").UpdateText("");
                panel.GetPanel("DreamGate Panel").GetButton("Right3").UpdateText("");
                panel.GetPanel("DreamGate Panel").GetButton("Right4").UpdateText("");
                panel.GetPanel("DreamGate Panel").GetButton("Right5").UpdateText("");
                panel.GetPanel("DreamGate Panel").GetButton("Right6").UpdateText("");

                int i         = 0;
                int buttonNum = 1;

                foreach (string entryName in DreamGate.dgData.Keys)
                {
                    if (i >= DreamGate.scrollPosition)
                    {
                        panel.GetPanel("DreamGate Panel").GetButton("Right" + buttonNum).UpdateText(entryName);
                        buttonNum++;
                        if (buttonNum > 6)
                        {
                            break;
                        }
                    }

                    i++;
                }
            }
        }
コード例 #8
0
        public static void Update()
        {
            if (altPanel == null)
            {
                return;
            }

            if (DebugMod.GM.IsNonGameplayScene())
            {
                if (altPanel.active)
                {
                    altPanel.SetActive(false, true);
                }
                return;
            }

            // Not intended min/full info panel logic, but should show the two panels one at a time
            if (DebugMod.settings.MinInfoPanelVisible && !altPanel.active)
            {
                altPanel.SetActive(true, false);
            }
            else if (!DebugMod.settings.MinInfoPanelVisible && altPanel.active)
            {
                altPanel.SetActive(false, true);
            }

            if (altPanel.active)
            {
                PlayerData.instance.CountGameCompletion();

                altPanel.GetText("Vel").UpdateText(HeroController.instance.current_velocity.ToString());
                altPanel.GetText("Pos").UpdateText(GetHeroPos());

                altPanel.GetText("MP").UpdateText((PlayerData.instance.MPCharge + PlayerData.instance.MPReserve).ToString());
                altPanel.GetText("NailDmg").UpdateText(DebugMod.RefKnightSlash.FsmVariables.GetFsmInt("damageDealt").Value + " (Flat " + PlayerData.instance.nailDamage + ", x" + DebugMod.RefKnightSlash.FsmVariables.GetFsmFloat("Multiplier").Value + ")");
                altPanel.GetText("CanCdash").UpdateText(GetStringForBool(HeroController.instance.CanSuperDash()));

                altPanel.GetText("Completion").UpdateText(PlayerData.instance.completionPercentage.ToString() + "%");
                altPanel.GetText("Grubs").UpdateText(PlayerData.instance.grubsCollected + " / 46");

                altPanel.GetText("Scene Name").UpdateText(DebugMod.GetSceneName());

                if (SaveStateManager.quickState.IsSet())
                {
                    //string[] temp = ;
                    //altPanel.GetText("Current SaveState").UpdateText(string.Format("{0}\n{1}", temp[2], temp[1]));
                    altPanel.GetText("Current SaveState").UpdateText(SaveStateManager.quickState.GetSaveStateID());
                }
                else
                {
                    altPanel.GetText("Current SaveState").UpdateText("No savestate");
                }

                string slotSet = SaveStateManager.GetCurrentSlot().ToString();
                if (slotSet == "-1")
                {
                    slotSet = "unset";
                }

                //altPanel.GetText("Autoslot").UpdateText(string.Format("{0}",
                //            GetStringForBool(SaveStateManager.GetAutoSlot())));
                altPanel.GetText("Current slot").UpdateText(string.Format("{0}", slotSet));

                altPanel.GetText("Hardfall").UpdateText(GetStringForBool(HeroController.instance.cState.willHardLand));
            }
        }