147 lines
4.6 KiB
C#
147 lines
4.6 KiB
C#
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
|
||
{
|
||
/// <summary>
|
||
/// Interaction logic for MainWindow.xaml
|
||
/// </summary>
|
||
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();
|
||
}
|
||
}
|
||
}
|
||
} |