RMafia/MafiaGame/MainWindow.xaml.cs
2021-01-17 22:47:37 +03:00

147 lines
4.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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();
}
}
}
}