using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using DiscordRPC; using MafiaCommon.Packets; namespace MafiaGame { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { private static MainWindow _mainWindow; public static MainWindow Instance => _mainWindow; public MainWindow() { InitializeComponent(); _mainWindow = this; App.Instance.GetRpcClient().SetPresence(new RichPresence() { State = "В главном меню" }); } private void Exit_OnClick(object sender, RoutedEventArgs e) { App.Current.Shutdown(0); } private void Play_OnClick(object sender, RoutedEventArgs e) { IpInputGUIBack.IsEnabled = true; IpInputGUIConnect.IsEnabled = true; IpBox.IsEnabled = true; MainMenu.Visibility = Visibility.Hidden; IpInput.Visibility = Visibility.Visible; App.Instance.GetRpcClient().SetPresence(new RichPresence() { State = "Выбирает сервер" }); } private void ConnectToServer_OnClick(object sender, RoutedEventArgs e) { String ip = IpBox.Text; App.Instance.GetRpcClient().SetPresence(new RichPresence() { State = "Присоединяется к серверу" }); IpInputGUIBack.IsEnabled = false; IpInputGUIConnect.IsEnabled = false; IpBox.IsEnabled = false; Thread thread = new Thread(() => { App.Instance.Connection = new ServerConnection(ip); }); thread.Start(); } private void Back_OnClick(object sender, RoutedEventArgs e) { IpInput.Visibility = Visibility.Hidden; DisconnectScreen.Visibility = Visibility.Hidden; MainMenu.Visibility = Visibility.Visible; App.Instance.GetRpcClient().SetPresence(new RichPresence() { State = "В главном меню" }); } private void SettingsBack_OnClick(object sender, RoutedEventArgs e) { Settings.Save(); SettingsGUI.Visibility = Visibility.Hidden; MainMenu.Visibility = Visibility.Visible; App.Instance.GetRpcClient().SetPresence(new RichPresence() { State = "В главном меню" }); } private void Settings_OnClick(object sender, RoutedEventArgs e) { MainMenu.Visibility = Visibility.Hidden; SettingsGUI.Visibility = Visibility.Visible; NickBox.Text = Settings.Config().Nick; } private void NickBox_OnTextInput(object sender, TextChangedEventArgs e) { Settings.Config().Nick = NickBox.Text; } public void ShowGameQueueScreen() { MainMenu.Visibility = Visibility.Hidden; IpInput.Visibility = Visibility.Hidden; SettingsGUI.Visibility = Visibility.Hidden; DisconnectScreen.Visibility = Visibility.Hidden; GameQueue.Visibility = Visibility.Visible; } public void ShowDisconnectScreen(string reason) { ReasonText.Text = reason; MainMenu.Visibility = Visibility.Hidden; IpInput.Visibility = Visibility.Hidden; SettingsGUI.Visibility = Visibility.Hidden; GameQueue.Visibility = Visibility.Hidden; DisconnectScreen.Visibility = Visibility.Visible; } private void GameQueue_OnKeyUp(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { GameQueueChatSend_OnClick(null, null); } } private void GameQueueChatSend_OnClick(object sender, RoutedEventArgs e) { if (QueueChatInput.Text.Trim() != "") { App.Instance.Connection.SendMessage(ChatType.Queue, QueueChatInput.Text); QueueChatInput.Clear(); } } } }