public async Task <bool> Execute() { if (m_Context.LoggedInPlayers.Count() >= Settings.MIN_PLAYERS && !m_MinPlayersReached) { await Task.Delay(10); //allow last message to be sent Console.WriteLine("WaitingForPlayers: Required player count reached."); //reset game GameInfo.IntermissionTime = 0; GameInfo.IsGameOver = true; //wait for game to reset await Task.Delay(10); m_Warden.Start(); Chat.SendMessage("---------------------------------------------------"); Chat.SendMessage(" Required player count reached."); Chat.SendMessage(" Game will start in 10 seconds."); Chat.SendMessage("---------------------------------------------------"); m_MinPlayersReached = true; m_MinPlayersReachedTime = DateTime.UtcNow; } if (m_Context.LoggedInPlayers.Count < Settings.MIN_PLAYERS && m_MinPlayersReached) { Console.WriteLine("WaitingForPlayers: Not enough players. Aborting game."); Chat.SendMessage(">> Not enough players. Aborting game."); m_Warden.Stop(); m_MinPlayersReached = false; m_MinPlayersReachedTime = DateTime.MaxValue; } if (m_MinPlayersReached && DateTime.UtcNow >= m_MinPlayersReachedTime + new TimeSpan(0, 0, 10)) { Chat.SendMessage("---------------------------------------------------"); Chat.SendMessage(" Game Starting"); Chat.SendMessage("---------------------------------------------------"); return(true); } return(false); }
public static void WardenStart() { warden.Start(); }