示例#1
0
        static void Postfix(VitalsMinigame __instance)
        {
            // Hacker show time since death
            bool showHackerInfo = Hacker.hacker != null && Hacker.hacker == PlayerControl.LocalPlayer && Hacker.hackerTimer > 0;

            for (int k = 0; k < __instance.MCCBOPIEOEC.Length; k++)
            {
                VitalsPanel          vitalsPanel = __instance.MCCBOPIEOEC[k];
                GameData.OFKOJOKOOAK OFKOJOKOOAK = GameData.Instance.AllPlayers[k];

                if (vitalsPanel.IsDead)
                {
                    DeadPlayer deadPlayer = deadPlayers?.Where(x => x.player?.PlayerId == OFKOJOKOOAK?.GMBAIPNOKLP)?.FirstOrDefault();
                    if (deadPlayer != null && deadPlayer.timeOfDeath != null)
                    {
                        float timeSinceDeath = ((float)(DateTime.UtcNow - deadPlayer.timeOfDeath).TotalMilliseconds);

                        if (showHackerInfo)
                        {
                            vitalsPanel.Text.Text = Math.Round(timeSinceDeath / 1000) + "s";
                        }
                        else
                        {
                            vitalsPanel.Text.Text = DestroyableSingleton <TranslationController> .CMJOLNCMAPD.GetString(Palette.OCCIKHJPJPK[(int)OFKOJOKOOAK.JFHFMIKFHGG], new UnhollowerBaseLib.Il2CppReferenceArray <Il2CppSystem.Object>(0));
                        }
                    }
                }
            }
        }
示例#2
0
            static void Postfix(VitalsMinigame __instance)
            {
                // Hacker show time since death
                if (Hacker.hacker != null && Hacker.hacker == PlayerControl.LocalPlayer && Hacker.hackerTimer > 0)
                {
                    for (int k = 0; k < __instance.vitals.Length; k++)
                    {
                        VitalsPanel         vitalsPanel = __instance.vitals[k];
                        GameData.PlayerInfo player      = GameData.Instance.AllPlayers[k];

                        // Hacker update
                        if (vitalsPanel.IsDead)
                        {
                            DeadPlayer deadPlayer = deadPlayers?.Where(x => x.player?.PlayerId == player?.PlayerId)?.FirstOrDefault();
                            if (deadPlayer != null && deadPlayer.timeOfDeath != null && k < hackerTexts.Count && hackerTexts[k] != null)
                            {
                                float timeSinceDeath = ((float)(DateTime.UtcNow - deadPlayer.timeOfDeath).TotalMilliseconds);
                                hackerTexts[k].gameObject.SetActive(true);
                                hackerTexts[k].text = Math.Round(timeSinceDeath / 1000) + "s";
                            }
                        }
                    }
                }
                else
                {
                    foreach (TMPro.TextMeshPro text in hackerTexts)
                    {
                        if (text != null && text.gameObject != null)
                        {
                            text.gameObject.SetActive(false);
                        }
                    }
                }
            }
示例#3
0
        static void Postfix(VitalsMinigame __instance)
        {
            // Spy show time since death
            bool showSpyInfo = Spy.spy != null && Spy.spy == PlayerControl.LocalPlayer && Spy.spyTimer > 0;

            for (int k = 0; k < __instance.vitals.Length; k++)
            {
                VitalsPanel         vitalsPanel = __instance.vitals[k];
                GameData.PlayerInfo playerInfo  = GameData.Instance.AllPlayers[k];

                if (vitalsPanel.IsDead)
                {
                    DeadPlayer deadPlayer = deadPlayers?.Where(x => x.player?.PlayerId == playerInfo?.PlayerId)?.FirstOrDefault();
                    if (deadPlayer != null && deadPlayer.timeOfDeath != null)
                    {
                        float timeSinceDeath = ((float)(DateTime.UtcNow - deadPlayer.timeOfDeath).TotalMilliseconds);

                        if (showSpyInfo)
                        {
                            vitalsPanel.Text.Text = Math.Round(timeSinceDeath / 1000) + "s";
                        }
                        else
                        {
                            vitalsPanel.Text.Text = DestroyableSingleton <TranslationController> .Instance.GetString(Palette.ShortColorNames[(int)playerInfo.ColorId], new UnhollowerBaseLib.Il2CppReferenceArray <Il2CppSystem.Object>(0));
                        }
                    }
                }
            }
        }
        static void Postfix(VitalsMinigame __instance)
        {
            // Hacker show time since death
            bool showHackerInfo = Hacker.hacker != null && Hacker.hacker == PlayerControl.LocalPlayer && Hacker.hackerTimer > 0;

            for (int k = 0; k < __instance.vitals.Length; k++)
            {
                VitalsPanel         vitalsPanel = __instance.vitals[k];
                GameData.PlayerInfo player      = GameData.Instance.AllPlayers[k];

                // Crowded scaling
                float scale = 10f / Mathf.Max(10, __instance.vitals.Length);
                vitalsPanel.transform.localPosition = new Vector3((float)k * 0.6f * scale + -2.7f, 0.2f, -1f);
                vitalsPanel.transform.localScale    = new Vector3(scale, scale, vitalsPanel.transform.localScale.z);

                // Hacker update
                if (vitalsPanel.IsDead)
                {
                    DeadPlayer deadPlayer = deadPlayers?.Where(x => x.player?.PlayerId == player?.PlayerId)?.FirstOrDefault();
                    if (deadPlayer != null && deadPlayer.timeOfDeath != null)
                    {
                        float timeSinceDeath = ((float)(DateTime.UtcNow - deadPlayer.timeOfDeath).TotalMilliseconds);

                        if (showHackerInfo)
                        {
                            vitalsPanel.Text.text = Math.Round(timeSinceDeath / 1000) + "s";
                        }
                        else if (__instance.vitals.Length > 10)
                        {
                            vitalsPanel.Text.text = player.PlayerName.Length >= 4 ? player.PlayerName.Substring(0, 4).ToUpper() : player.PlayerName.ToUpper();
                        }
                        else
                        {
                            vitalsPanel.Text.text = DestroyableSingleton <TranslationController> .Instance.GetString(Palette.ShortColorNames[(int)player.ColorId], new UnhollowerBaseLib.Il2CppReferenceArray <Il2CppSystem.Object>(0));
                        }
                    }
                }
            }
        }
        static void Postfix(VitalsMinigame __instance)
        {
            // Spy show time since death
            if (Spy.spy == null || Spy.spy != PlayerControl.LocalPlayer)
            {
                return;
            }
            for (int k = 0; k < __instance.vitals.Length; k++)
            {
                VitalsPanel         vitalsPanel = __instance.vitals[k];
                GameData.PlayerInfo playerInfo  = GameData.Instance.AllPlayers[k];

                if (vitalsPanel.IsDead)
                {
                    DeadPlayer deadPlayer = deadPlayers?.Where(x => x.player?.PlayerId == playerInfo?.PlayerId)?.FirstOrDefault();
                    if (deadPlayer != null && deadPlayer.timeOfDeath != null)
                    {
                        float timeSinceDeath = ((float)(DateTime.UtcNow - deadPlayer.timeOfDeath).TotalMilliseconds);
                        vitalsPanel.Text.Text = Math.Round(timeSinceDeath / 1000) + "s";
                    }
                }
            }
        }