public static void BeginGame() { GameOn = true; GameHelper.ChooseRoles(); GameHelper.PlayerAmount = playerClients.Count; timer = new Timer(10000); timer.Elapsed += GameStartEnded; ((Views.ServerTerminal)RunningWindows.GetWindow("ServerTerminal")).Terminal("Game Started"); foreach (PlayerClient item in playerClients) { if (item.Role.Name == "Thanatos") { GameEventHandler.ThanatosExists = true; int target = new Random().Next(1, playerClients.Count + 1); ((Player.Roles.Standalone.Thanatos)item.Role).TargetID = target.ToString(); Server.Send(item, $"$ rl {item.Role.GetType().Name} {target}"); } else if (item.Role.Name == "Paranoid") { GameEventHandler.ParanoidExists = true; Server.Send(item, $"$ rl {item.Role.GetType().Name}"); } else { Server.Send(item, $"$ rl {item.Role.GetType().Name}"); } } timer.Start(); }
public async ValueTask UninitializeAsync <TWindow>(ILifetimeScope initializeScope) where TWindow : Window, IHostedWindow, new() { await BeginIHostedWindowScope <TWindow>((app) => app.Uninitialize(initializeScope)); RunningWindows.Remove(typeof(TWindow)); }
private void join_button(object sender, RoutedEventArgs e) { Button button = (Button)sender; RunningWindows.AddWindow(this); RunningWindows.MainWindow.DataContext = new GameScreen(); }
private void host_button(object sender, RoutedEventArgs e) { Button button = (Button)sender; RunningWindows.AddWindow(this); RunningWindows.MainWindow.DataContext = new ServerTerminal(); }
private static void GameStartEnded(object sender, ElapsedEventArgs e) // NIGHT START { Phase = GamePhase.Night; timer.Elapsed -= GameStartEnded; timer = new Timer(10000); timer.Elapsed += MorningStart; GameHelper.HandleNight(); ((Views.ServerTerminal)RunningWindows.GetWindow("ServerTerminal")).Terminal("Night Started"); timer.Start(); }
private static void VotingStart(object sender, ElapsedEventArgs e) { Phase = GamePhase.Voting; timer.Elapsed -= VotingStart; timer = new Timer(20000); timer.Elapsed += LynchStart; GameHelper.HandleVoting(); ((Views.ServerTerminal)RunningWindows.GetWindow("ServerTerminal")).Terminal("Voting Started"); timer.Start(); }
private static void DiscussionStart(object sender, ElapsedEventArgs e) { Phase = GamePhase.Discussion; timer.Elapsed -= DiscussionStart; timer = new Timer(10000); timer.Elapsed += VotingStart; GameHelper.HandleDiscussion(); ((Views.ServerTerminal)RunningWindows.GetWindow("ServerTerminal")).Terminal("Discussion Started"); timer.Start(); }
private static void KillHandler() { for (int i = 0; i < GameHelper.Commands.Count; i++) { if (GameHelper.Commands[i].Ability == Abilities.Kill) { int killed = Convert.ToInt32(GameHelper.Commands[i].To); GameHelper.Dead.Add(GameHelper.Commands[i].To); GameplayServer.Server.Send(GameplayServer.playerClients[killed - 1], "YOU DIED!"); } } ((Views.ServerTerminal)RunningWindows.GetWindow("ServerTerminal")).Terminal("kill done"); }
private static void InvestigateHandler() { for (int i = 0; i < GameHelper.Commands.Count; i++) { if (GameHelper.Commands[i].Ability == Abilities.Investigate) { int from = Convert.ToInt32(GameHelper.Commands[i].From); int to = Convert.ToInt32(GameHelper.Commands[i].To); PlayerClient playerClientFrom = GameplayServer.playerClients[from - 1]; PlayerClient playerClientTo = GameplayServer.playerClients[to - 1]; string message = $"Your target is a {playerClientTo.Role.Name}"; GameplayServer.Server.Send(playerClientFrom, message); } } ((Views.ServerTerminal)RunningWindows.GetWindow("ServerTerminal")).Terminal("Inves done"); }
public GameScreen() { InitializeComponent(); RunningWindows.GameScreen = this; Login login = (Login)RunningWindows.GetWindow("Login"); ClientName = login.nameText.Text; RunningWindows.MainWindow.Title = $"{login.nameText.Text} - {login.addressText.Text}:{login.portText.Text}"; try { client = new Client(login.addressText.Text, Convert.ToInt32(login.portText.Text), ClientName); } catch (Exception) { } }
private static void LynchStart(object sender, ElapsedEventArgs e) { Phase = GamePhase.Lynch; GameHelper.HandleLynch(); ((Views.ServerTerminal)RunningWindows.GetWindow("ServerTerminal")).Terminal("Lynch Started"); if (GameOn) { timer.Elapsed -= LynchStart; timer = new Timer(5000); timer.Elapsed += NightStart; timer.Start(); } else { timer.Stop(); ((Views.ServerTerminal)RunningWindows.GetWindow("ServerTerminal")).Terminal("Game Ended"); } }
private static void MorningStart(object sender, ElapsedEventArgs e) { Phase = GamePhase.Morning; GameHelper.HandleMorning(); ((Views.ServerTerminal)RunningWindows.GetWindow("ServerTerminal")).Terminal("Morning Started"); if (GameOn) { timer.Elapsed -= MorningStart; timer = new Timer(5000); timer.Elapsed += DiscussionStart; timer.Start(); } else { timer.Stop(); ((Views.ServerTerminal)RunningWindows.GetWindow("ServerTerminal")).Terminal("Game Ended"); } }
private static void TricksterHandler() { for (int i = 0; i < GameHelper.Commands.Count; i++) { if (GameHelper.Commands[i].Ability == Abilities.Trick) { for (int j = 0; j > GameHelper.Commands.Count; j++) { if (GameHelper.Commands[i].To == GameHelper.Commands[j].From) { Random r = new Random(); GameHelper.Commands[j].To = r.Next(1, GameplayServer.playerClients.Count + 1).ToString(); break; } } } } ((Views.ServerTerminal)RunningWindows.GetWindow("ServerTerminal")).Terminal("trick done"); }
private async ValueTask RegisterWindow <TWindow>(CancellationToken token = default) where TWindow : Window, IHostedWindow, new() { await InitSemaphore.WaitAsync(token); try { if (!RunningWindows.ContainsKey(typeof(TWindow))) { var window = await Application.Dispatcher.InvokeAsync(() => new TWindow()); RunningWindows.Add(typeof(TWindow), window); } } finally { InitSemaphore.Release(); } }
private static void BartenderHandler() { for (int i = 0; i < GameHelper.Commands.Count; i++) { if (GameHelper.Commands[i].Ability == Abilities.Bart) { for (int j = 0; j > GameHelper.Commands.Count; j++) { if (GameHelper.Commands[i].To == GameHelper.Commands[j].From) { int drunk = Convert.ToInt32(GameHelper.Commands[j].From); GameHelper.Commands.RemoveAt(j); GameplayServer.Server.Send(GameplayServer.playerClients[drunk - 1], "You were drunk last night"); break; } } } } ((Views.ServerTerminal)RunningWindows.GetWindow("ServerTerminal")).Terminal("bart done"); }
private static void HealHandler() { List <int> remove = new List <int>(); for (int i = 0; i < GameHelper.Commands.Count; i++) { if (GameHelper.Commands[i].Ability == Abilities.Heal) { for (int j = 0; j < GameHelper.Commands.Count; j++) { if (GameHelper.Commands[i].To == GameHelper.Commands[j].To && GameHelper.Commands[j].Ability == Abilities.Kill) { remove.Add(j); } } } } HandleRemove(remove); ((Views.ServerTerminal)RunningWindows.GetWindow("ServerTerminal")).Terminal("heal done"); }
public ServerTerminal() { InitializeComponent(); RunningWindows.MainWindow.Title = "Server Terminal"; Login loginWindow = (Login)RunningWindows.GetWindow("Login"); RunningWindows.AddWindow(this); string address = loginWindow.portText.Text; string port = loginWindow.portText.Text; if (string.IsNullOrEmpty(address)) { address = Dns.GetHostEntry(Dns.GetHostName()).AddressList[1].ToString(); } if (string.IsNullOrEmpty(port)) { port = "13000"; } server = new Server(address, Convert.ToInt32(port)); }