Ejemplo n.º 1
0
        private void WatchForReadyCheckChanges(Dictionary <long, HashSet <string> > readyPlayersBefore)
        {
            foreach (var player in readyPlayersBefore.Keys)
            {
                if (player == Game1.player.UniqueMultiplayerID)
                {
                    continue;                                             /* Don't care about current player */
                }
                ReadyPlayers.GetOrCreateDefault(player);

                var checksBefore = readyPlayersBefore[player];
                var checksNow    = ReadyPlayers[player];

                var newCheck     = checksNow.FirstOrDefault(c => !checksBefore.Contains(c));
                var removedCheck = checksBefore.FirstOrDefault(c => !checksNow.Contains(c));

                var playerName = PlayerHelpers.GetPlayerWithUniqueId(player).Name;

                var options = ConfigHelper.GetOptions();

                if (newCheck != null && newCheck != "wakeup")
                {
                    if (options.ShowReadyInfoInChatBox)
                    {
                        _helper.SelfInfoMessage($"{playerName} is now ready {GetFriendlyReadyCheckName(newCheck)}.");
                    }

                    if (options.ShowLastPlayerReadyInfoInChatBox)
                    {
                        WarnIfIAmLastPlayerReady(newCheck);
                    }
                }

                if (removedCheck != null && removedCheck != "wakeup" && options.ShowReadyInfoInChatBox)
                {
                    _helper.SelfInfoMessage($"{playerName} is no longer ready {GetFriendlyReadyCheckName(removedCheck)}.");
                }
            }
        }
Ejemplo n.º 2
0
 public bool IsPlayerWaiting(long playerId)
 {
     return(ReadyPlayers.GetOrCreateDefault(playerId).Any(r => r != "wakeup"));
 }