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; } } } } }
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]; } } } }
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; } } } } }
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; } } } } }