CNO: Hide before showing

This commit is contained in:
Gurge44 committed 2026-05-19 12:32:31 +02:00
1 parent a81a1b5089
commit f687636cab
13 files changed
+40 -43

No files matched your search

+1 -1
View File
@@ -29,7 +29,7 @@ public static class RRTimeTester
Redo:
HUDText = $"<#ffff00><size=200%>{otherSystemTypesName}</size></color>";
PlayerControl.LocalPlayer.TP(map.Positions.GetValueOrDefault(systemTypes, systemTypes.GetRoomClass().transform.position));
yield return new WaitForSeconds(0.5f);
yield return new WaitForSecondsRealtime(0.5f);
while (PlayerControl.LocalPlayer.IsInRoom(systemTypes)) yield return null;
stopwatch.Restart();
while (PlayerControl.LocalPlayer.onLadder || PlayerControl.LocalPlayer.inMovingPlat || !PlayerControl.LocalPlayer.IsInRoom(otherSystemTypes))
+1 -1
View File
@@ -280,7 +280,7 @@ internal static class SoloPVP
if (target.inVent || target.MyPhysics.Animations.IsPlayingEnterVentAnimation())
{
LateTask.New(() => target.MyPhysics.RpcExitVent(target.GetClosestVent().Id), 0.6f, log: false);
yield return new WaitForSeconds(1.3f);
yield return new WaitForSecondsRealtime(1.3f);
}
while (target.inVent || target.inMovingPlat || target.onLadder || target.MyPhysics.Animations.IsPlayingAnyLadderAnimation() || target.MyPhysics.Animations.IsPlayingEnterVentAnimation())
+21 -23
View File
@@ -259,7 +259,7 @@ namespace EHR
catch { }
}
protected void CreateNetObject(string sprite, Vector2 position)
protected void CreateNetObject(string sprite, Vector2 position, IEnumerable<PlayerControl> hideFrom = null, PlayerControl onlyVisibleTo = null)
{
if (GameStates.IsEnded || !AmongUsClient.Instance.AmHost || TryReusePooledObject(sprite, position)) return;
@@ -396,6 +396,12 @@ namespace EHR
playerControl.CachedPlayerData = PlayerControl.LocalPlayer.Data;
if (hideFrom != null || onlyVisibleTo)
{
yield return new WaitForSecondsRealtime(0.3f);
Hide(onlyVisibleTo ? Main.EnumerateAlivePlayerControls().Without(onlyVisibleTo) : hideFrom);
}
yield return new WaitForSecondsRealtime(0.15f);
if (this is not ShapeshiftMenuElement)
@@ -410,7 +416,7 @@ namespace EHR
string visorId = PlayerControl.LocalPlayer.Data.Outfits[PlayerOutfitType.Default].VisorId;
var sender = CustomRpcSender.Create("CustomNetObject.CreateNetObject", SendOption.Reliable, log: false);
MessageWriter writer = sender.stream;
sender.StartMessage();
sender.StartMessage(onlyVisibleTo ? onlyVisibleTo.OwnerId : -1);
PlayerControl.LocalPlayer.Data.Outfits[PlayerOutfitType.Default].PlayerName = "<size=14><br></size>" + sprite;
PlayerControl.LocalPlayer.Data.Outfits[PlayerOutfitType.Default].ColorId = 0;
PlayerControl.LocalPlayer.Data.Outfits[PlayerOutfitType.Default].HatId = "";
@@ -514,11 +520,10 @@ namespace EHR
private readonly long SpawnTimeStamp;
private bool Gone;
public TornadoObject(Vector2 position, IEnumerable<byte> visibleList)
public TornadoObject(Vector2 position, PlayerControl tornado)
{
SpawnTimeStamp = Utils.TimeStamp;
CreateNetObject("<line-height=97%><cspace=0.16em><#0000>WW</color><mark=#bababa>WWWW</mark><#0000>WW\nW</color><mark=#bababa>WW</mark><mark=#8c8c8c>WW</mark><mark=#bababa>WW</mark><#0000>W</color>\n<mark=#bababa>WW</mark><mark=#8c8c8c>WWWW</mark><mark=#bababa>WW</mark>\n<mark=#bababa>W</mark><mark=#8c8c8c>WW</mark><mark=#636363>WW</mark><mark=#8c8c8c>WW</mark><mark=#bababa>W</mark>\n<mark=#bababa>W</mark><mark=#8c8c8c>WW</mark><mark=#636363>WW</mark><mark=#8c8c8c>WW</mark><mark=#bababa>W</mark>\n<mark=#bababa>WW</mark><mark=#8c8c8c>WWWW</mark><mark=#bababa>WW</mark>\n<#0000>W</color><mark=#bababa>WW</mark><mark=#8c8c8c>WW</mark><mark=#bababa>WW</mark><#0000>W\nWW</color><mark=#bababa>WWWW</mark><#0000>WW", position);
LateTask.New(() => Hide(Main.EnumerateAlivePlayerControls().ExceptBy(visibleList, x => x.PlayerId)), 0.4f);
CreateNetObject("<line-height=97%><cspace=0.16em><#0000>WW</color><mark=#bababa>WWWW</mark><#0000>WW\nW</color><mark=#bababa>WW</mark><mark=#8c8c8c>WW</mark><mark=#bababa>WW</mark><#0000>W</color>\n<mark=#bababa>WW</mark><mark=#8c8c8c>WWWW</mark><mark=#bababa>WW</mark>\n<mark=#bababa>W</mark><mark=#8c8c8c>WW</mark><mark=#636363>WW</mark><mark=#8c8c8c>WW</mark><mark=#bababa>W</mark>\n<mark=#bababa>W</mark><mark=#8c8c8c>WW</mark><mark=#636363>WW</mark><mark=#8c8c8c>WW</mark><mark=#bababa>W</mark>\n<mark=#bababa>WW</mark><mark=#8c8c8c>WWWW</mark><mark=#bababa>WW</mark>\n<#0000>W</color><mark=#bababa>WW</mark><mark=#8c8c8c>WW</mark><mark=#bababa>WW</mark><#0000>W\nWW</color><mark=#bababa>WWWW</mark><#0000>WW", position, onlyVisibleTo: tornado);
}
protected override void OnFixedUpdate()
@@ -550,10 +555,9 @@ namespace EHR
internal sealed class PlayerDetector : CustomNetObject
{
public PlayerDetector(Vector2 position, List<byte> visibleList, out int id)
public PlayerDetector(Vector2 position, PlayerControl druid, out int id)
{
CreateNetObject("<line-height=97%><cspace=0.16em><#0000>WW</color><mark=#33e6b0>W</mark><#0000>WW</color><mark=#33e6b0>W</mark><#0000>WW\nW</color><mark=#33e6b0>W</mark><#0000>WWWW</color><mark=#33e6b0>W</mark><#0000>W</color>\n<mark=#33e6b0>W</mark><#0000>WW</color><mark=#33e6b0>WW</mark><#0000>WW</color><mark=#33e6b0>W</mark>\n<mark=#33e6b0>W</mark><#0000>W</color><mark=#33e6b0>W</mark><mark=#000000>WW</mark><mark=#33e6b0>W</mark><#0000>W</color><mark=#33e6b0>W</mark>\n<mark=#33e6b0>W</mark><#0000>W</color><mark=#33e6b0>W</mark><mark=#000000>WW</mark><mark=#33e6b0>W</mark><#0000>W</color><mark=#33e6b0>W</mark>\n<mark=#33e6b0>W</mark><#0000>WW</color><mark=#33e6b0>WW</mark><#0000>WW</color><mark=#33e6b0>W</mark>\n<#0000>W</color><mark=#33e6b0>W</mark><#0000>WWWW</color><mark=#33e6b0>W</mark><#0000>W\nWW</color><mark=#33e6b0>W</mark><#0000>WW</color><mark=#33e6b0>W</mark><#0000>WW", position);
LateTask.New(() => Hide(Main.EnumerateAlivePlayerControls().ExceptBy(visibleList, x => x.PlayerId)), 0.4f);
CreateNetObject("<line-height=97%><cspace=0.16em><#0000>WW</color><mark=#33e6b0>W</mark><#0000>WW</color><mark=#33e6b0>W</mark><#0000>WW\nW</color><mark=#33e6b0>W</mark><#0000>WWWW</color><mark=#33e6b0>W</mark><#0000>W</color>\n<mark=#33e6b0>W</mark><#0000>WW</color><mark=#33e6b0>WW</mark><#0000>WW</color><mark=#33e6b0>W</mark>\n<mark=#33e6b0>W</mark><#0000>W</color><mark=#33e6b0>W</mark><mark=#000000>WW</mark><mark=#33e6b0>W</mark><#0000>W</color><mark=#33e6b0>W</mark>\n<mark=#33e6b0>W</mark><#0000>W</color><mark=#33e6b0>W</mark><mark=#000000>WW</mark><mark=#33e6b0>W</mark><#0000>W</color><mark=#33e6b0>W</mark>\n<mark=#33e6b0>W</mark><#0000>WW</color><mark=#33e6b0>WW</mark><#0000>WW</color><mark=#33e6b0>W</mark>\n<#0000>W</color><mark=#33e6b0>W</mark><#0000>WWWW</color><mark=#33e6b0>W</mark><#0000>W\nWW</color><mark=#33e6b0>W</mark><#0000>WW</color><mark=#33e6b0>W</mark><#0000>WW", position, onlyVisibleTo: druid);
id = Id;
}
}
@@ -562,12 +566,11 @@ namespace EHR
{
public readonly Adventurer.Resource Resource;
internal AdventurerItem(Vector2 position, Adventurer.Resource resource, IEnumerable<byte> visibleList)
internal AdventurerItem(Vector2 position, Adventurer.Resource resource, PlayerControl adventurer)
{
Resource = resource;
(char Icon, Color Color) data = Adventurer.ResourceDisplayData[resource];
CreateNetObject($"<size=300%><font=\"VCR SDF\"><line-height=67%>{Utils.ColorString(data.Color, data.Icon.ToString())}</line-height></font></size>", position);
LateTask.New(() => Hide(Main.EnumerateAlivePlayerControls().ExceptBy(visibleList, x => x.PlayerId)), 0.4f);
CreateNetObject($"<size=300%><font=\"VCR SDF\"><line-height=67%>{Utils.ColorString(data.Color, data.Icon.ToString())}</line-height></font></size>", position, onlyVisibleTo: adventurer);
}
}
@@ -575,8 +578,7 @@ namespace EHR
{
internal Toilet(Vector2 position, IEnumerable<PlayerControl> hideList)
{
CreateNetObject("<line-height=97%><cspace=0.16em><#0000>W</color><mark=#e6e6e6>WWWWWWWW</mark><#0000>W</color>\n<mark=#e6e6e6>W</mark><mark=#d3d4ce>WWWWWWWW</mark><mark=#e6e6e6>W</mark>\n<mark=#e6e6e6>W</mark><mark=#d3d4ce>WWWWWWWW</mark><mark=#e6e6e6>W</mark>\n<#0000>W</color><mark=#e6e6e6>W</mark><mark=#d3d4ce>WWWWWW</mark><mark=#e6e6e6>W</mark><#0000>W\nW</color><mark=#e6e6e6>WW</mark><mark=#d3d4ce>W</mark><mark=#dedede>WW</mark><mark=#d3d4ce>W</mark><mark=#e6e6e6>WW</mark><#0000>W\nW</color><mark=#bfbfbf>W</mark><mark=#454545>W</mark><mark=#333333>WWWWWW</mark><mark=#bfbfbf>W</mark>\n<#0000>W</color><mark=#bfbfbf>WW</mark><mark=#454545>WWWWWW</mark><mark=#bfbfbf>W</mark>\n<#0000>WW</color><mark=#bfbfbf>WWWWWWWW</mark>\n<#0000>WWW</color><mark=#dedede>WWWW</mark><#0000>WWW\nWWWW</color><mark=#dedede>WW</mark><#0000>WWWW", position);
LateTask.New(() => Hide(hideList), 0.4f);
CreateNetObject("<line-height=97%><cspace=0.16em><#0000>W</color><mark=#e6e6e6>WWWWWWWW</mark><#0000>W</color>\n<mark=#e6e6e6>W</mark><mark=#d3d4ce>WWWWWWWW</mark><mark=#e6e6e6>W</mark>\n<mark=#e6e6e6>W</mark><mark=#d3d4ce>WWWWWWWW</mark><mark=#e6e6e6>W</mark>\n<#0000>W</color><mark=#e6e6e6>W</mark><mark=#d3d4ce>WWWWWW</mark><mark=#e6e6e6>W</mark><#0000>W\nW</color><mark=#e6e6e6>WW</mark><mark=#d3d4ce>W</mark><mark=#dedede>WW</mark><mark=#d3d4ce>W</mark><mark=#e6e6e6>WW</mark><#0000>W\nW</color><mark=#bfbfbf>W</mark><mark=#454545>W</mark><mark=#333333>WWWWWW</mark><mark=#bfbfbf>W</mark>\n<#0000>W</color><mark=#bfbfbf>WW</mark><mark=#454545>WWWWWW</mark><mark=#bfbfbf>W</mark>\n<#0000>WW</color><mark=#bfbfbf>WWWWWWWW</mark>\n<#0000>WWW</color><mark=#dedede>WWWW</mark><#0000>WWW\nWWWW</color><mark=#dedede>WW</mark><#0000>WWWW", position, hideList);
}
}
@@ -596,10 +598,9 @@ namespace EHR
internal sealed class SprayedArea : CustomNetObject
{
public SprayedArea(Vector2 position, IEnumerable<byte> visibleList)
public SprayedArea(Vector2 position, PlayerControl sprayer)
{
CreateNetObject("<line-height=97%><cspace=0.16em><#0000>WW</color><mark=#ffd000>WW</mark><#0000>WW\nW</color><mark=#ffd000>WWWW</mark><#0000>W</color>\n<mark=#ffd000>WWWWWW</mark>\n<mark=#ffd000>WWWWWW</mark>\n<#0000>W</color><mark=#ffd000>WWWW</mark><#0000>W\nWW</color><mark=#ffd000>WW</mark><#0000>WW", position);
LateTask.New(() => Hide(Main.EnumerateAlivePlayerControls().ExceptBy(visibleList, x => x.PlayerId)), 0.4f);
CreateNetObject("<line-height=97%><cspace=0.16em><#0000>WW</color><mark=#ffd000>WW</mark><#0000>WW\nW</color><mark=#ffd000>WWWW</mark><#0000>W</color>\n<mark=#ffd000>WWWWWW</mark>\n<mark=#ffd000>WWWWWW</mark>\n<#0000>W</color><mark=#ffd000>WWWW</mark><#0000>W\nWW</color><mark=#ffd000>WW</mark><#0000>WW", position, onlyVisibleTo: sprayer);
}
public override void OnMeeting()
@@ -612,8 +613,7 @@ namespace EHR
{
public CatcherTrap(Vector2 position, PlayerControl catcher)
{
CreateNetObject("<line-height=97%><cspace=0.16em><#0000>WW</color><mark=#ccffda>WW</mark><#0000>WW\nW</color><mark=#ccffda>WWWW</mark><#0000>W</color>\n<mark=#ccffda>WWWWWW</mark>\n<mark=#ccffda>WWWWWW</mark>\n<#0000>W</color><mark=#ccffda>WWWW</mark><#0000>W\nWW</color><mark=#ccffda>WW</mark><#0000>WW", position);
LateTask.New(() => Hide(Main.EnumerateAlivePlayerControls().Without(catcher)), 0.4f);
CreateNetObject("<line-height=97%><cspace=0.16em><#0000>WW</color><mark=#ccffda>WW</mark><#0000>WW\nW</color><mark=#ccffda>WWWW</mark><#0000>W</color>\n<mark=#ccffda>WWWWWW</mark>\n<mark=#ccffda>WWWWWW</mark>\n<#0000>W</color><mark=#ccffda>WWWW</mark><#0000>W\nWW</color><mark=#ccffda>WW</mark><#0000>WW", position, onlyVisibleTo: catcher);
}
public override void OnMeeting()
@@ -642,8 +642,7 @@ namespace EHR
{
public SoulObject(Vector2 position, PlayerControl whisperer)
{
CreateNetObject("<size=80%><line-height=97%><cspace=0.16em><#0000>WW</color><mark=#fcfcfc>WWW</mark><#0000>W\nW</color><mark=#fcfcfc>WWWWW</mark>\n<mark=#fcfcfc>WWWW</mark><mark=#cfcfcf>WW</mark>\n<mark=#fcfcfc>WWWWWW</mark>\n<#0000>W</color><mark=#fcfcfc>WWWWW</mark>\n<#0000>W</color><mark=#fcfcfc>WWW</mark><#0000>W</color><mark=#fcfcfc>W", position);
LateTask.New(() => Hide(Main.EnumerateAlivePlayerControls().Without(whisperer)), 0.4f);
CreateNetObject("<size=80%><line-height=97%><cspace=0.16em><#0000>WW</color><mark=#fcfcfc>WWW</mark><#0000>W\nW</color><mark=#fcfcfc>WWWWW</mark>\n<mark=#fcfcfc>WWWW</mark><mark=#cfcfcf>WW</mark>\n<mark=#fcfcfc>WWWWWW</mark>\n<#0000>W</color><mark=#fcfcfc>WWWWW</mark>\n<#0000>W</color><mark=#fcfcfc>WWW</mark><#0000>W</color><mark=#fcfcfc>W", position, onlyVisibleTo: whisperer);
}
}
@@ -875,10 +874,9 @@ namespace EHR
internal sealed class ShapeshiftMenuElement : CustomNetObject
{
public ShapeshiftMenuElement(byte visibleTo)
public ShapeshiftMenuElement(PlayerControl guesser)
{
CreateNetObject(string.Empty, new Vector2(0f, 0f));
LateTask.New(() => Hide(Main.EnumeratePlayerControls().Where(x => x.PlayerId != visibleTo)), 0.4f);
CreateNetObject(string.Empty, new Vector2(0f, 0f), onlyVisibleTo: guesser);
}
}
-1
View File
@@ -17,7 +17,6 @@ namespace EHR;
internal static class EAC
{
public static int DeNum;
public static readonly HashSet<string> InvalidReports = [];
public static readonly Dictionary<byte, Stopwatch> TimeSinceLastTaskCompletion = [];
public static void WarnHost(int denum = 1)
+1 -1
View File
@@ -1498,7 +1498,7 @@ public static class GuessManager
cno = ExistingCNOs[i - alivePlayerControlsLength];
else
{
cno = new ShapeshiftMenuElement(guesserId);
cno = new ShapeshiftMenuElement(guesser);
ExistingCNOs.Add(cno);
}
-1
View File
@@ -4262,7 +4262,6 @@ public static class Utils
}
LateTask.New(() => Asthmatic.RunChecks = true, 2f, log: false);
EAC.InvalidReports.Clear();
CustomNetObject.AfterMeeting();
+1 -1
View File
@@ -118,7 +118,7 @@ internal class Tornado : RoleBase
long now = TimeStamp;
Tornados.TryAdd(info, now);
SendRPCAddTornado(true, info.Location, info.RoomName, now);
_ = new TornadoObject(info.Location, [pc.PlayerId]);
_ = new TornadoObject(info.Location, pc);
}
public override void OnCheckPlayerPosition(PlayerControl pc)
+2 -2
View File
@@ -144,7 +144,7 @@ public class Druid : RoleBase
(Vector2 location, string roomName) = pc.GetPositionInfo();
Triggers.TryAdd(location, roomName);
SendRPCAddTrigger(true, pc.PlayerId, location, roomName);
_ = new PlayerDetector(location, [pc.PlayerId], out int id);
_ = new PlayerDetector(location, pc, out int id);
TriggerIds.TryAdd(location, id);
}
else
@@ -156,7 +156,7 @@ public class Druid : RoleBase
(Vector2 location, string roomName) = pc.GetPositionInfo();
Triggers.TryAdd(location, roomName);
SendRPCAddTrigger(true, id, location, roomName);
_ = new PlayerDetector(location, [pc.PlayerId], out int oid);
_ = new PlayerDetector(location, pc, out int oid);
TriggerIds.TryAdd(location, oid);
}, onTick: () => pc.Notify(string.Format(GetString("DruidTimeLeft"), (int)Math.Ceiling(DelayTimer.Remaining.TotalSeconds)), 2f, overrideAll: true), onCanceled: () => DelayTimer = null);
}
+4 -4
View File
@@ -298,7 +298,7 @@ internal class Adventurer : RoleBase
Vector2 pos = pc.Pos();
LocateArrow.Add(AdventurerPC.PlayerId, pos);
ResourceLocations[Resource.Random] = pos;
_ = new AdventurerItem(pos, Resource.Random, [AdventurerPC.PlayerId]);
_ = new AdventurerItem(pos, Resource.Random, AdventurerPC);
LastRandomResourceTimeStamp = now;
Utils.NotifyRoles(SpecifySeer: AdventurerPC, SpecifyTarget: AdventurerPC);
}
@@ -330,7 +330,7 @@ internal class Adventurer : RoleBase
LocateArrow.Add(AdventurerPC.PlayerId, pcPos);
ResourceLocations[Resource.Grouping] = pcPos;
_ = new AdventurerItem(pcPos, Resource.Grouping, [AdventurerPC.PlayerId]);
_ = new AdventurerItem(pcPos, Resource.Grouping, AdventurerPC);
LastGroupingResourceTimeStamp = now;
Utils.NotifyRoles(SpecifySeer: AdventurerPC, SpecifyTarget: AdventurerPC);
}
@@ -380,7 +380,7 @@ internal class Adventurer : RoleBase
Vector2 pos = shapeshifter.Pos();
av.ResourceLocations[Resource.ShapeshiftSkin] = pos;
HideObject(Resource.ShapeshiftSkin);
_ = new AdventurerItem(pos, Resource.ShapeshiftSkin, [av.AdventurerPC.PlayerId]);
_ = new AdventurerItem(pos, Resource.ShapeshiftSkin, av.AdventurerPC);
}
public static void OnAnyoneDead(PlayerControl target)
@@ -392,7 +392,7 @@ internal class Adventurer : RoleBase
Vector2 pos = target.Pos();
av.ResourceLocations[Resource.DeadBody] = pos;
HideObject(Resource.DeadBody);
_ = new AdventurerItem(pos, Resource.DeadBody, [av.AdventurerPC.PlayerId]);
_ = new AdventurerItem(pos, Resource.DeadBody, av.AdventurerPC);
}
}
}
+1 -1
View File
@@ -224,7 +224,7 @@ public class Swapper : RoleBase
{
if (Starspawn.IsDayBreak) return;
if (CNO == null) CNO = CanSwapSelf.GetBool() ? new ShapeshiftMenuElement(shapeshifter.PlayerId) : null;
if (CNO == null) CNO = CanSwapSelf.GetBool() ? new ShapeshiftMenuElement(shapeshifter) : null;
else if (CNO.playerControl.NetId == target.NetId) target = shapeshifter;
SwapMsg(shapeshifter, $"/sw {target.PlayerId}");
@@ -73,7 +73,6 @@ internal class TimeMaster : RoleBase
public override void Add(byte playerId)
{
On = true;
BackTrack = [];
DesyncCommsActive = false;
playerId.SetAbilityUseLimit(TimeMasterMaxUses.GetFloat());
}
@@ -83,6 +82,8 @@ internal class TimeMaster : RoleBase
On = false;
Rewinding = false;
RevivedPlayers = [];
TargetPosition = [];
BackTrack = [];
}
public override void ApplyGameOptions(IGameOptions opt, byte playerId)
@@ -163,7 +164,7 @@ internal class TimeMaster : RoleBase
foreach ((byte playerId, Vector2 pos) in track)
{
PlayerControl player = playerId.GetPlayer();
if (player == null || !player.IsAlive()) continue;
if (!player || !player.IsAlive()) continue;
player.TP(pos);
}
@@ -182,6 +183,7 @@ internal class TimeMaster : RoleBase
ps.Player.RpcRevive();
ps.Player.TP(deadBody.TruePosition);
ps.Player.Notify(Translator.GetString("RevivedByTimeMaster"), 15f);
RevivedPlayers.Add(deadBody.ParentId);
}
if (TimeMasterRevivedKillerAlert.GetBool())
@@ -260,7 +262,6 @@ internal class TimeMaster : RoleBase
{
DesyncCommsActive = false;
hasValue = true;
activateSabComms = false;
}
if (!hasValue) return;
+1 -1
View File
@@ -138,7 +138,7 @@ internal class Sprayer : RoleBase
if (!IsEnable || SprayerId.GetAbilityUseLimit() <= 0 || SprayerPC.HasAbilityCD()) return;
Vector2 pos = SprayerPC.Pos();
Traps[pos] = new(pos, [SprayerId]);
Traps[pos] = new(pos, SprayerPC);
SprayerPC.RpcRemoveAbilityUse();
if (SprayerId.GetAbilityUseLimit() > 0) SprayerPC.AddAbilityCD(CD.GetInt());
+3 -3
View File
@@ -44,9 +44,9 @@ public class Magistrate : RoleBase
System.Collections.IEnumerator Coroutine()
{
while (GameStates.IsMeeting || ExileController.Instance || AntiBlackout.SkipTasks) yield return new WaitForSeconds(5f);
yield return new WaitForSeconds(1f);
while (GameStates.IsMeeting || ExileController.Instance || AntiBlackout.SkipTasks) yield return new WaitForSeconds(2f);
while (GameStates.IsMeeting || ExileController.Instance || AntiBlackout.SkipTasks) yield return new WaitForSecondsRealtime(5f);
yield return new WaitForSecondsRealtime(1f);
while (GameStates.IsMeeting || ExileController.Instance || AntiBlackout.SkipTasks) yield return new WaitForSecondsRealtime(2f);
if (GameStates.IsEnded || !GameStates.InGame) yield break;
AfterMeetingTasks();
}