more fixes

This commit is contained in:
Gurge44 committed 2025-05-28 17:14:29 +02:00
1 parent def7f3adee
commit bbfeff0e5f
4 files changed
+11 -23

No files matched your search

+1 -1
View File
@@ -44,7 +44,7 @@ public static class AFKDetector
{
if (!EnableDetector.GetBool() || !GameStates.IsInTask || pc == null || ExemptedPlayers.Contains(pc.PlayerId)) return;
float waitingTime = 10f;
float waitingTime = 15f;
if (MeetingStates.FirstMeeting) waitingTime += 5f;
if (!pc.IsAlive()) waitingTime += 5f;
if (pc.Is(CustomRoles.Truant) && !MeetingStates.FirstMeeting) waitingTime += Options.TruantWaitingTime.GetFloat();
+1 -2
View File
@@ -1002,6 +1002,7 @@ internal static class ExtendedPlayerControl
{
CheckInvalidMovementPatch.ExemptedPlayers.UnionWith([pc.PlayerId, dummyGhost.PlayerId]);
AFKDetector.TempIgnoredPlayers.UnionWith([pc.PlayerId, dummyGhost.PlayerId]);
LateTask.New(() => AFKDetector.TempIgnoredPlayers.ExceptWith([pc.PlayerId, dummyGhost.PlayerId]), 3f, log: false);
var murderPos = Pelican.GetBlackRoomPS();
@@ -1050,8 +1051,6 @@ internal static class ExtendedPlayerControl
sender.WriteVector2(ghostPos);
sender.Write((ushort)(dummyGhost.NetTransform.lastSequenceId + 8));
sender.EndRpc();
LateTask.New(() => AFKDetector.TempIgnoredPlayers.ExceptWith([pc.PlayerId, dummyGhost.PlayerId]), 1f, log: false);
}
sender.SendMessage();
+1 -2
View File
@@ -307,8 +307,7 @@ public static class HauntMenuMinigameSetFilterTextPatch
{
if (__instance.HauntTarget != null && Options.GhostCanSeeOtherRoles.GetBool() && (!Main.DiedThisRound.Contains(PlayerControl.LocalPlayer.PlayerId) || !Utils.IsRevivingRoleAlive()))
{
byte id = __instance.HauntTarget.PlayerId;
__instance.FilterText.text = Utils.GetDisplayRoleName(id) + Utils.GetProgressText(id);
__instance.FilterText.text = __instance.HauntTarget.GetCustomRole().ToColoredString();
return false;
}
+8 -18
View File
@@ -135,9 +135,7 @@ public class Enigma : RoleBase
}
else if (tasksCompleted >= EnigmaClueStage1Tasks.GetInt()) stage = 1;
List<EnigmaClue> clues = EnigmaClues.Where(a => a.ClueStage <= stage &&
!ShownClues[playerId].Any(b => b.EnigmaClueType == a.EnigmaClueType && b.ClueStage == a.ClueStage))
.ToList();
List<EnigmaClue> clues = EnigmaClues.FindAll(a => a.ClueStage <= stage && !ShownClues[playerId].Any(b => b.EnigmaClueType == a.EnigmaClueType && b.ClueStage == a.ClueStage));
if (clues.Count == 0) continue;
@@ -249,7 +247,7 @@ public class Enigma : RoleBase
public override string GetMessage(PlayerControl killer, bool showStageClue)
{
string killerName = killer.GetRealName();
string letter = killerName[rd.Next(0, killerName.Length - 1)].ToString().ToLower();
string letter = killerName.Where(char.IsLetter).RandomElement().ToString().ToLower();
switch (ClueStage)
{
@@ -257,14 +255,10 @@ public class Enigma : RoleBase
return GetStage1Clue(killer, letter);
case 2:
if (showStageClue) GetStage2Clue(letter);
return GetStage1Clue(killer, letter);
case 3:
if (showStageClue) return GetStage3Clue(killerName, letter);
if (rd.Next(0, 100) < EnigmaClueStage2Probability.GetInt()) return GetStage2Clue(letter);
return GetStage1Clue(killer, letter);
return rd.Next(100) < EnigmaClueStage2Probability.GetInt() ? GetStage2Clue(letter) : GetStage1Clue(killer, letter);
}
return null;
@@ -273,7 +267,7 @@ public class Enigma : RoleBase
private string GetStage1Clue(PlayerControl killer, string letter)
{
string randomLetter = GetRandomLetter(killer, letter);
int random = rd.Next(1, 2);
int random = rd.Next(2);
return random == 1 ? string.Format(GetString("EnigmaClueName1"), letter, randomLetter) : string.Format(GetString("EnigmaClueName1"), randomLetter, letter);
}
@@ -282,22 +276,18 @@ public class Enigma : RoleBase
return string.Format(GetString("EnigmaClueName2"), letter);
}
private string GetStage3Clue(string killerName, string letter)
private static string GetStage3Clue(string killerName, string letter)
{
var letter2 = string.Empty;
string tmpName = killerName.Replace(letter, string.Empty);
if (!string.IsNullOrEmpty(tmpName)) letter2 = tmpName[rd.Next(0, tmpName.Length - 1)].ToString().ToLower();
if (!string.IsNullOrEmpty(tmpName)) letter2 = tmpName.Where(char.IsLetter).RandomElement().ToString().ToLower();
return string.Format(GetString("EnigmaClueName3"), letter, letter2);
}
private string GetRandomLetter(PlayerControl killer, string letter)
private static string GetRandomLetter(PlayerControl killer, string letter)
{
PlayerControl[] alivePlayers = Main.AllAlivePlayerControls.Where(a => a.PlayerId != killer.PlayerId).ToArray();
PlayerControl rndPlayer = alivePlayers[rd.Next(0, alivePlayers.Length - 1)];
string rndPlayerName = rndPlayer.GetRealName().Replace(letter, "");
string letter2 = rndPlayerName[rd.Next(0, rndPlayerName.Length - 1)].ToString().ToLower();
return letter2;
return Main.AllAlivePlayerControls.Without(killer).RandomElement().GetRealName().Replace(letter, "").Where(char.IsLetter).RandomElement().ToString().ToLower();
}
}