From 54a5b08612c21a987433b4135354dfe5ec8c8766 Mon Sep 17 00:00:00 2001 From: Marg <51059123+MargaretTheFool@users.noreply.github.com> Date: Thu, 26 Dec 2024 12:32:56 -0500 Subject: [PATCH] update /icon and all coven can see coven icons --- Resources/Lang/en_US.json | 2 +- Roles/Coven/Illusionist.cs | 9 +++++++++ Roles/Coven/Jinx.cs | 9 +++++++++ Roles/Coven/Medusa.cs | 9 +++++++++ Roles/Coven/VoodooMaster.cs | 9 +++++++++ 5 files changed, 37 insertions(+), 1 deletion(-) diff --git a/Resources/Lang/en_US.json b/Resources/Lang/en_US.json index e6f02507d..4d38d353e 100644 --- a/Resources/Lang/en_US.json +++ b/Resources/Lang/en_US.json @@ -2321,7 +2321,7 @@ "Command.qq": "→ Lobby will be posted on QQ website (China only)", "Command.dump": "→ Output Log to Desktop", "Command.death": "→ Display info on how you died", - "Command.icons": "
╳ - The Player was marked by the Blackmailer and can't talk during the Meeting
☆ - Used by Captain to display themselves. Only Crewmates can see the Captain's star
乂 - This player was hexed by the Hex Master and will die if the Hex Master isn't killed or ejected by the end of the Meeting.
♦ - Used by Lawyer or Executioner or Follower.
♥ - Used by Lovers or Romantic.
✚ - Used by Medic to mark their target.
⦿ - This player is in a duel with the Pirate.
!? - This player was marked by the Quizmaster and must answer the question correctly to survive.
☜ - Used by Schrödinger's cat to mark their teammate.
◈ - This player marked by the Shroud and will die if the Shroud is not killed or ejected by the end of the meeting.
⚠ - This player is a Snitch or Solsticer who has finished their tasks.
★ - Used by Super Star or Cyber or Marshall.
† - This player was spelled and will die if the Witch is not killed by the end of the meeting.
∇ - Used by Kamikaze to mark their targets.
■ - Used by Lightning to mark their quantum ghosts.
⊠ - Used by Jailer to mark their prisoner.
● - Used by Baker to mark who has Bread.
♠ - Used by Soul Collector to mark who's death they're predicting.
⦿ - Used by Plaguebearer to mark who they have plagued.
<#ac42f2>♣ - Shown on the Coven member with the Necronomicon.", + "Command.icons": "
╳ - The Player was marked by the Blackmailer and can't talk during the Meeting
☆ - Used by Captain to display themselves. Only Crewmates can see the Captain's star
乂 - This player was hexed by the Hex Master and will die if the Hex Master isn't killed or ejected by the end of the Meeting.
♦ - Used by Lawyer or Executioner or Follower.
♥ - Used by Lovers or Romantic.
✚ - Used by Medic to mark their target.
⦿ - This player is in a duel with the Pirate.
!? - This player was marked by the Quizmaster and must answer the question correctly to survive.
☜ - Used by Schrödinger's cat to mark their teammate.
◈ - This player marked by the Shroud and will die if the Shroud is not killed or ejected by the end of the meeting.
⚠ - This player is a Snitch or Solsticer who has finished their tasks.
★ - Used by Super Star or Cyber or Marshall.
† - This player was spelled and will die if the Witch is not killed by the end of the meeting.
∇ - Used by Kamikaze to mark their targets.
■ - Used by Lightning to mark their quantum ghosts.
⊠ - Used by Jailer to mark their prisoner.
● - Used by Baker to mark who has Bread.
♠ - Used by Soul Collector to mark who's death they're predicting.
⦿ - Used by Plaguebearer to mark who they have plagued.
♣ - Shown on the Coven member with the Necronomicon. This is only shown to Coven.
⌘ - This player is Jinxed. This is only shown to Coven.
ø - This player is Illusioned. This is only shown to Coven.
♻ - This player is Stoned. This is only shown to Coven.
✂ - This player is a Voodoo Doll. This is only shown to Coven.", "Command.start": "[Seconds] → Start the game", "Command.iconinfo": "→ Display info on in-meeting icons", diff --git a/Roles/Coven/Illusionist.cs b/Roles/Coven/Illusionist.cs index 5655ee1dc..0ed362352 100644 --- a/Roles/Coven/Illusionist.cs +++ b/Roles/Coven/Illusionist.cs @@ -142,4 +142,13 @@ private void OnPlayerDead(PlayerControl killer, PlayerControl deadPlayer, bool i public override string GetMark(PlayerControl seer, PlayerControl seen = null, bool isForMeeting = false) => (IllusionedPlayers.TryGetValue(seer.PlayerId, out var Targets) && Targets.Contains(seen.PlayerId)) ? ColorString(GetRoleColor(CustomRoles.Illusionist), "") : string.Empty; + public override string GetMarkOthers(PlayerControl seer, PlayerControl target, bool isForMeeting = false) + { + if (_Player == null) return string.Empty; + if (IllusionedPlayers[_Player.PlayerId].Contains(target.PlayerId) && seer.GetCustomRole().IsCovenTeam() && seer.PlayerId != _Player.PlayerId) + { + return ColorString(GetRoleColor(CustomRoles.Illusionist), ""); + } + return string.Empty; + } } diff --git a/Roles/Coven/Jinx.cs b/Roles/Coven/Jinx.cs index fe5e1366c..782d1c7a5 100644 --- a/Roles/Coven/Jinx.cs +++ b/Roles/Coven/Jinx.cs @@ -172,6 +172,15 @@ or CustomRoles.Veteran } public override string GetMark(PlayerControl seer, PlayerControl seen = null, bool isForMeeting = false) => IsJinxed(seen.PlayerId) ? ColorString(GetRoleColor(CustomRoles.Jinx), "⌘") : string.Empty; + public override string GetMarkOthers(PlayerControl seer, PlayerControl target, bool isForMeeting = false) + { + if (_Player == null) return string.Empty; + if (IsJinxed(target.PlayerId) && seer.GetCustomRole().IsCovenTeam() && seer.PlayerId != _Player.PlayerId) + { + return ColorString(GetRoleColor(CustomRoles.Jinx), "⌘"); + } + return string.Empty; + } public override void SetKillCooldown(byte id) => Main.AllPlayerKillCooldown[id] = KillCooldown.GetFloat(); diff --git a/Roles/Coven/Medusa.cs b/Roles/Coven/Medusa.cs index 4c6e6c643..b5d95fb25 100644 --- a/Roles/Coven/Medusa.cs +++ b/Roles/Coven/Medusa.cs @@ -149,6 +149,15 @@ public static void SetStoned(PlayerControl player, IGameOptions opt) } } public override string GetMark(PlayerControl seer, PlayerControl seen = null, bool isForMeeting = false) => StonedPlayers[seer.PlayerId].Contains(seen.PlayerId) ? ColorString(GetRoleColor(CustomRoles.Medusa), "♻") : string.Empty; + public override string GetMarkOthers(PlayerControl seer, PlayerControl target, bool isForMeeting = false) + { + if (_Player == null) return string.Empty; + if (StonedPlayers[_Player.PlayerId].Contains(target.PlayerId) && seer.GetCustomRole().IsCovenTeam() && seer.PlayerId != _Player.PlayerId) + { + return ColorString(GetRoleColor(CustomRoles.Medusa), "♻"); + } + return string.Empty; + } public override void SetAbilityButtonText(HudManager hud, byte playerId) { hud.ReportButton.OverrideText(GetString("MedusaReportButtonText")); diff --git a/Roles/Coven/VoodooMaster.cs b/Roles/Coven/VoodooMaster.cs index f19874723..a8a525205 100644 --- a/Roles/Coven/VoodooMaster.cs +++ b/Roles/Coven/VoodooMaster.cs @@ -66,6 +66,15 @@ public override void SetAbilityButtonText(HudManager hud, byte playerId) => hud.KillButton.OverrideText(GetString("ShamanButtonText")); public override string GetMark(PlayerControl seer, PlayerControl seen = null, bool isForMeeting = false) => Dolls[seer.PlayerId].Contains(seen.PlayerId) ? ColorString(GetRoleColor(CustomRoles.VoodooMaster), "✂") : string.Empty; + public override string GetMarkOthers(PlayerControl seer, PlayerControl target, bool isForMeeting = false) + { + if (_Player == null) return string.Empty; + if (Dolls[_Player.PlayerId].Contains(target.PlayerId) && seer.GetCustomRole().IsCovenTeam() && seer.PlayerId != _Player.PlayerId) + { + return ColorString(GetRoleColor(CustomRoles.VoodooMaster), "✂"); + } + return string.Empty; + } public override string GetProgressText(byte playerId, bool comms) => ColorString(AbilityLimit >= 1 ? GetRoleColor(CustomRoles.VoodooMaster).ShadeColor(0.25f) : Color.gray, $"({AbilityLimit})"); public override bool ForcedCheckMurderAsKiller(PlayerControl killer, PlayerControl target)