diff --git a/CTA/CustomTeamAssigner/CustomRoles.cs b/CTA/CustomTeamAssigner/CustomRoles.cs
index 9ff029dc4..c6dedebcb 100644
--- a/CTA/CustomTeamAssigner/CustomRoles.cs
+++ b/CTA/CustomTeamAssigner/CustomRoles.cs
@@ -361,6 +361,7 @@ public enum CustomRoles
// Coven
+ RegularCoven,
CovenLeader,
SpellCaster,
PotionMaster,
diff --git a/EHR.csproj b/EHR.csproj
index c7c0a547e..ab5ed3268 100644
--- a/EHR.csproj
+++ b/EHR.csproj
@@ -7,7 +7,7 @@
EHR
Gurge44
preview
- C:\Program Files\Epic Games\AmongUs
+ D:\AmongUs
true
True
$(MSBuildProjectName)
diff --git a/Modules/GhostRolesManager.cs b/Modules/GhostRolesManager.cs
index 7c92d065f..758dce0c8 100644
--- a/Modules/GhostRolesManager.cs
+++ b/Modules/GhostRolesManager.cs
@@ -33,7 +33,7 @@ internal static class GhostRolesManager
IGhostRole instance = CreateGhostRoleInstance(suitableRole);
pc.RpcSetCustomRole(suitableRole);
- pc.RpcSetRole(RoleTypes.GuardianAngel);
+ pc.RpcSetRoleDesync(RoleTypes.GuardianAngel, pc.GetClientId());
instance.OnAssign(pc);
Main.ResetCamPlayerList.Add(pc.PlayerId);
AssignedGhostRoles[pc.PlayerId] = (suitableRole, instance);
@@ -67,7 +67,7 @@ internal static class GhostRolesManager
var text = $"{Translator.GetString("GotGhostRoleNotify")}\n{info.Message}";
var notifyText = $"{Translator.GetString("GotGhostRoleNotify")}\n{info.Split}";
Utils.SendMessage(title: text, sendTo: pc.PlayerId, text: "\n");
- pc.Notify(notifyText, 5 + (5 * text.Count(x => x == '\n')));
+ pc.Notify(notifyText, 10 + (5 * text.Count(x => x == '\n')));
return;
(string Split, string Message) GetMessage(string baseMessage)
diff --git a/Modules/OptionHolder.cs b/Modules/OptionHolder.cs
index 2439a22b2..4017cf3ff 100644
--- a/Modules/OptionHolder.cs
+++ b/Modules/OptionHolder.cs
@@ -49,15 +49,6 @@ public static class Options
Tasks
}
- [SuppressMessage("ReSharper", "UnusedMember.Local")]
- enum ModLanguages
- {
- UseGameLanguage,
- Hungarian,
- Polish,
- Indonesian
- }
-
public static Dictionary GroupedOptions = [];
public static Dictionary> GroupedAddons = [];
@@ -1428,10 +1419,11 @@ public static class Options
PostLobbyCodeToEHRWebsite = new BooleanOptionItem(19422, "PostLobbyCodeToEHRDiscordServer", true, TabGroup.SystemSettings)
.SetHeader(true);
-
+
StoreCompletedAchievementsOnEHRDatabase = new BooleanOptionItem(19423, "StoreCompletedAchievementsOnEHRDatabase", true, TabGroup.SystemSettings);
RoleAssigningAlgorithm = new StringOptionItem(19409, "RoleAssigningAlgorithm", RoleAssigningAlgorithms, 4, TabGroup.SystemSettings, true)
+ .SetHeader(true)
.RegisterUpdateValueEvent((_, args) => IRandom.SetInstanceById(args.CurrentValue));
KPDCamouflageMode = new StringOptionItem(19500, "KPDCamouflageMode", CamouflageMode, 0, TabGroup.SystemSettings)
@@ -2687,6 +2679,15 @@ public static class Options
.SetColor(Color.yellow);
}
+ [SuppressMessage("ReSharper", "UnusedMember.Local")]
+ enum ModLanguages
+ {
+ UseGameLanguage,
+ Hungarian,
+ Polish,
+ Indonesian
+ }
+
public class OverrideTasksData
{
public static readonly Dictionary AllData = [];
diff --git a/Patches/ControlPatch.cs b/Patches/ControlPatch.cs
index 0e26a394b..6699b8e6c 100644
--- a/Patches/ControlPatch.cs
+++ b/Patches/ControlPatch.cs
@@ -86,7 +86,8 @@ internal static class ControllerManagerUpdatePatch
if (!AmongUsClient.Instance.AmHost) return;
- if (KeysDown(KeyCode.Return, KeyCode.C, KeyCode.LeftShift)) HudManager.Instance.Chat.SetVisible(true);
+ if (KeysDown(KeyCode.Return, KeyCode.C, KeyCode.LeftShift))
+ HudManager.Instance.Chat.SetVisible(true);
if (KeysDown(KeyCode.Return, KeyCode.L, KeyCode.LeftShift) && GameStates.IsInGame)
{
diff --git a/Resources/Lang/en_US.json b/Resources/Lang/en_US.json
index fa6b9b5da..518515718 100644
--- a/Resources/Lang/en_US.json
+++ b/Resources/Lang/en_US.json
@@ -4379,6 +4379,7 @@
"NKWC.XKills": "Kill X Players",
"NoteKiller.NumPlayersToKill": "Number of Players to Kill (X =)",
"NoteKiller.OthersSelfSuffix": "There's a {0} in the game. Your real name is <#00ffa5>{1}",
+ "NoteKiller.OthersSelfSuffixShort": "Real Name: <#00ffa5>{0}",
"DeathNoteCommand.CanNotGuess": "You've already tried to guess someone's real name and failed, so you can't guess again until the next meeting.",
"DeathNoteCommand.WrongName": "You've entered the wrong name.",
"DeathNoteCommand.PlayerNotFoundOrDead": "The player with this name was not found or is already dead.",
diff --git a/Roles/Neutral/NoteKiller.cs b/Roles/Neutral/NoteKiller.cs
index a65c39ffb..94ba9d411 100644
--- a/Roles/Neutral/NoteKiller.cs
+++ b/Roles/Neutral/NoteKiller.cs
@@ -207,7 +207,7 @@ public class NoteKiller : RoleBase
public override string GetSuffix(PlayerControl seer, PlayerControl target, bool hud = false, bool meeting = false)
{
if (seer.PlayerId == target.PlayerId && CustomRoles.NoteKiller.RoleExist() && seer.PlayerId != NoteKillerID && !meeting && RealNames.TryGetValue(seer.PlayerId, out var ownName))
- return string.Format(Translator.GetString("NoteKiller.OthersSelfSuffix"), CustomRoles.NoteKiller.ToColoredString(), ownName);
+ return MeetingStates.FirstMeeting ? string.Format(Translator.GetString("NoteKiller.OthersSelfSuffix"), CustomRoles.NoteKiller.ToColoredString(), ownName) : string.Format(Translator.GetString("NoteKiller.OthersSelfSuffixShort"), ownName);
if (seer.PlayerId != NoteKillerID || meeting || ShowClueEndTimeStamp == 0 || ShownClues.Count == 0) return string.Empty;
if (ShownClues.TryGetValue(target.PlayerId, out var clue)) return clue;