コード例 #1
0
            static void Postfix(CounterArea __instance)
            {
                // Hacker display saved colors on the admin panel
                bool showHackerInfo = Hacker.hacker != null && Hacker.hacker == PlayerControl.LocalPlayer && Hacker.hackerTimer > 0;

                if (players.ContainsKey(__instance.RoomType))
                {
                    List <Color> colors = players[__instance.RoomType];

                    for (int i = 0; i < __instance.KIFEIHAMMJC.Count; i++)
                    {
                        PoolableBehavior icon     = __instance.KIFEIHAMMJC[i];
                        SpriteRenderer   renderer = icon.GetComponent <SpriteRenderer>();

                        if (renderer != null)
                        {
                            if (defaultIcon == null)
                            {
                                defaultIcon = renderer.sprite;
                            }
                            if (showHackerInfo && colors.Count > i && Hacker.getAdminTableIconSprite() != null)
                            {
                                renderer.sprite = Hacker.getAdminTableIconSprite();
                                renderer.color  = colors[i];
                            }
                            else
                            {
                                renderer.sprite = defaultIcon;
                                renderer.color  = Color.white;
                            }
                        }
                    }
                }
            }
コード例 #2
0
            static void Postfix(CounterArea __instance)
            {
                // Spy display saved colors on the admin panel
                if (Spy.spy == null || Spy.spy != PlayerControl.LocalPlayer)
                {
                    return;
                }

                if (players.ContainsKey(__instance.RoomType))
                {
                    List <Color> colors = players[__instance.RoomType];

                    for (int i = 0; i < __instance.myIcons.Count; i++)
                    {
                        PoolableBehavior icon     = __instance.myIcons[i];
                        SpriteRenderer   renderer = icon.GetComponent <SpriteRenderer>();

                        if (renderer != null && colors.Count > i && Spy.getAdminTableIconSprite() != null)
                        {
                            renderer.sprite = Spy.getAdminTableIconSprite();
                            renderer.color  = colors[i];
                        }
                    }
                }
            }
コード例 #3
0
            static void Postfix(CounterArea __instance)
            {
                // Hacker display saved colors on the admin panel
                bool showHackerInfo = Hacker.hacker != null && Hacker.hacker == PlayerControl.LocalPlayer && Hacker.hackerTimer > 0;

                if (players.ContainsKey(__instance.RoomType))
                {
                    List <Color> colors = players[__instance.RoomType];

                    for (int i = 0; i < __instance.myIcons.Count; i++)
                    {
                        PoolableBehavior icon     = __instance.myIcons[i];
                        SpriteRenderer   renderer = icon.GetComponent <SpriteRenderer>();

                        if (renderer != null)
                        {
                            if (defaultMat == null)
                            {
                                defaultMat = renderer.material;
                            }
                            if (newMat == null)
                            {
                                newMat = UnityEngine.Object.Instantiate <Material>(defaultMat);
                            }
                            if (showHackerInfo && colors.Count > i)
                            {
                                renderer.material = newMat;
                                var color = colors[i];
                                renderer.material.SetColor("_BodyColor", color);
                                var id = Palette.PlayerColors.IndexOf(color);
                                if (id < 0)
                                {
                                    renderer.material.SetColor("_BackColor", color);
                                }
                                else
                                {
                                    renderer.material.SetColor("_BackColor", Palette.ShadowColors[id]);
                                }
                                renderer.material.SetColor("_VisorColor", Palette.VisorColor);
                            }
                            else
                            {
                                renderer.material = defaultMat;
                            }
                        }
                    }
                }
            }
コード例 #4
0
ファイル: AdminPatch.cs プロジェクト: haoming37/TheOtherRoles
            static void Postfix(CounterArea __instance)
            {
                // Hacker display saved colors on the admin panel
                bool showHackerInfo = Hacker.hacker != null && Hacker.hacker == PlayerControl.LocalPlayer && Hacker.hackerTimer > 0;

                if (playerColors.ContainsKey(__instance.RoomType))
                {
                    List <Color> colors         = playerColors[__instance.RoomType];
                    List <Color> impostorColors = new List <Color>();
                    List <Color> mimicKColors   = new List <Color>();
                    List <Color> deadBodyColors = new List <Color>();
                    foreach (var p in PlayerControl.AllPlayerControls)
                    {
                        // var color = p.myRend.material.GetColor("_BodyColor");
                        var color = Palette.PlayerColors[p.Data.DefaultOutfit.ColorId];
                        if (p.isImpostor())
                        {
                            impostorColors.Add(color);
                            if (p.isRole(RoleType.MimicK))
                            {
                                mimicKColors.Add(color);
                            }
                        }
                        else if (p.isDead())
                        {
                            deadBodyColors.Add(color);
                        }
                    }

                    for (int i = 0; i < __instance.myIcons.Count; i++)
                    {
                        PoolableBehavior icon     = __instance.myIcons[i];
                        SpriteRenderer   renderer = icon.GetComponent <SpriteRenderer>();

                        if (renderer != null)
                        {
                            if (defaultMat == null)
                            {
                                defaultMat = renderer.material;
                            }
                            if (newMat == null)
                            {
                                newMat = UnityEngine.Object.Instantiate <Material>(defaultMat);
                            }
                            if (showHackerInfo && colors.Count > i)
                            {
                                renderer.material = newMat;
                                var color = colors[i];
                                renderer.material.SetColor("_BodyColor", color);
                                var id = Palette.PlayerColors.IndexOf(color);
                                if (id < 0)
                                {
                                    renderer.material.SetColor("_BackColor", color);
                                }
                                else
                                {
                                    renderer.material.SetColor("_BackColor", Palette.ShadowColors[id]);
                                }
                                renderer.material.SetColor("_VisorColor", Palette.VisorColor);
                            }
                            else if ((PlayerControl.LocalPlayer.isRole(RoleType.EvilHacker) && EvilHacker.canHasBetterAdmin) || PlayerControl.LocalPlayer.isRole(RoleType.MimicA))
                            {
                                renderer.material = newMat;
                                var color = colors[i];
                                if (impostorColors.Contains(color))
                                {
                                    if (mimicKColors.Contains(color))
                                    {
                                        color = Palette.PlayerColors[3];
                                    }
                                    else
                                    {
                                        color = Palette.ImpostorRed;
                                    }
                                    renderer.material.SetColor("_BodyColor", color);
                                    var id = Palette.PlayerColors.IndexOf(color);
                                    if (id < 0)
                                    {
                                        renderer.material.SetColor("_BackColor", color);
                                    }
                                    else
                                    {
                                        renderer.material.SetColor("_BackColor", Palette.ShadowColors[id]);
                                    }
                                    renderer.material.SetColor("_VisorColor", Palette.VisorColor);
                                }
                                else if (deadBodyColors.Contains(color))
                                {
                                    color = Palette.Black;
                                    renderer.material.SetColor("_BodyColor", color);
                                    var id = Palette.PlayerColors.IndexOf(color);
                                    if (id < 0)
                                    {
                                        renderer.material.SetColor("_BackColor", color);
                                    }
                                    else
                                    {
                                        renderer.material.SetColor("_BackColor", Palette.ShadowColors[id]);
                                    }
                                    renderer.material.SetColor("_VisorColor", Palette.VisorColor);
                                }
                                else
                                {
                                    renderer.material = defaultMat;
                                }
                            }
                            else
                            {
                                renderer.material = defaultMat;
                            }
                        }
                    }
                }
            }