Remove MafiaGame
This commit is contained in:
parent
a4a06f5db3
commit
b8ff01b816
@ -1,10 +0,0 @@
|
||||
<Application x:Class="MafiaGame.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
Startup="App_OnStartup"
|
||||
Exit="App_OnExit"
|
||||
StartupUri="MainWindow.xaml">
|
||||
<Application.Resources>
|
||||
|
||||
</Application.Resources>
|
||||
</Application>
|
@ -1,63 +0,0 @@
|
||||
using System.Windows;
|
||||
using DiscordRPC;
|
||||
using DiscordRPC.Logging;
|
||||
using DiscordRPC.Message;
|
||||
|
||||
namespace MafiaGame
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for App.xaml
|
||||
/// </summary>
|
||||
public partial class App
|
||||
{
|
||||
public App()
|
||||
{
|
||||
App.Instance = this;
|
||||
}
|
||||
|
||||
public static App Instance;
|
||||
|
||||
private DiscordRpcClient _rpcClient;
|
||||
|
||||
public ServerConnection Connection;
|
||||
|
||||
public DiscordRpcClient GetRpcClient()
|
||||
{
|
||||
return _rpcClient;
|
||||
}
|
||||
|
||||
private void App_OnStartup(object sender, StartupEventArgs e)
|
||||
{
|
||||
_rpcClient = new DiscordRpcClient("800016130097152000", autoEvents: true);
|
||||
_rpcClient.RegisterUriScheme();
|
||||
_rpcClient.Logger = new ConsoleLogger() { Level = LogLevel.Warning };
|
||||
_rpcClient.OnJoinRequested += RpcClientOnOnJoinRequested;
|
||||
_rpcClient.OnJoin += RpcClientOnOnJoin;
|
||||
_rpcClient.SetSubscription(EventType.Join | EventType.JoinRequest);
|
||||
_rpcClient.Initialize();
|
||||
_rpcClient.SetPresence(new RichPresence()
|
||||
{
|
||||
State = "Запуск игры..."
|
||||
});
|
||||
|
||||
Settings.Initialize();
|
||||
Settings.Save();
|
||||
}
|
||||
|
||||
private void RpcClientOnOnJoin(object sender, JoinMessage args)
|
||||
{
|
||||
string secret = args.Secret;
|
||||
Connection = new ServerConnection(secret.Replace("/join", ""));
|
||||
}
|
||||
|
||||
private void RpcClientOnOnJoinRequested(object sender, JoinRequestMessage args)
|
||||
{
|
||||
_rpcClient.Respond(args, true);
|
||||
}
|
||||
|
||||
private void App_OnExit(object sender, ExitEventArgs e)
|
||||
{
|
||||
_rpcClient.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
using System.Windows;
|
||||
|
||||
[assembly: ThemeInfo(
|
||||
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
|
||||
//(used if a resource is not found in the page,
|
||||
// or application resource dictionaries)
|
||||
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
|
||||
//(used if a resource is not found in the page,
|
||||
// app, or any theme specific resource dictionaries)
|
||||
)]
|
@ -1,17 +0,0 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net5.0-windows</TargetFramework>
|
||||
<UseWPF>true</UseWPF>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="DiscordRichPresence" Version="1.0.169" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\MafiaCommon\MafiaCommon.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -1,7 +0,0 @@
|
||||
namespace MafiaGame
|
||||
{
|
||||
public class MainConfig
|
||||
{
|
||||
public string Nick = "the Player";
|
||||
}
|
||||
}
|
@ -1,381 +0,0 @@
|
||||
<Window x:Class="MafiaGame.MainWindow"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
Title="RMafia" Height="450" Width="800">
|
||||
<Grid>
|
||||
<Grid x:Name="MainMenu" Visibility="Visible">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="30*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="20*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="30*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="15*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="20*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Grid.Row="1" Grid.Column="2" HorizontalAlignment="Center">
|
||||
<Viewbox>
|
||||
<TextBlock Text="RMafia" FontSize="45"></TextBlock>
|
||||
</Viewbox>
|
||||
</TextBlock>
|
||||
<Button Grid.Row="3" Grid.Column="2" Click="Play_OnClick" FontSize="25">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Играть"></TextBlock>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
<Button Grid.Row="5" Grid.Column="2" FontSize="25" Click="Settings_OnClick">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Параметры"></TextBlock>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
<Button Grid.Row="7" Grid.Column="2" Click="Exit_OnClick" FontSize="25">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Выход"></TextBlock>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
</Grid>
|
||||
|
||||
<Grid x:Name="IpInput" Visibility="Hidden">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="30*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="40*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="30*"></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="30*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="15*"></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Grid.Column="1" Grid.Row="1" HorizontalAlignment="Center">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Введите IP" FontSize="35"></TextBlock>
|
||||
</Viewbox>
|
||||
</TextBlock>
|
||||
<TextBox Grid.Column="1" Grid.Row="3" x:Name="IpBox" FontSize="30"></TextBox>
|
||||
<Button Grid.Column="1" Grid.Row="5" Click="ConnectToServer_OnClick" x:Name="IpInputGuiConnect">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Подключиться" FontSize="25"></TextBlock>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
<Button Grid.Column="1" Grid.Row="7" Click="Back_OnClick" x:Name="IpInputGuiBack">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Назад" FontSize="25"></TextBlock>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
</Grid>
|
||||
|
||||
<Grid x:Name="SettingsGui" Visibility="Hidden">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="5*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="5*"></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Grid.Column="1" Grid.Row="1" HorizontalAlignment="Right">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Ник:" FontSize="25"></TextBlock>
|
||||
</Viewbox>
|
||||
</TextBlock>
|
||||
<TextBox Grid.Column="2" Grid.ColumnSpan="2" Grid.Row="1" FontSize="25" x:Name="NickBox" TextChanged="NickBox_OnTextInput"></TextBox>
|
||||
<Button Grid.Column="4" Grid.ColumnSpan="3" Grid.Row="11" Click="SettingsBack_OnClick">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Назад" FontSize="25"></TextBlock>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
</Grid>
|
||||
|
||||
<Grid x:Name="GameQueue" Visibility="Hidden" KeyUp="GameQueue_OnKeyUp">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="5*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="5*"></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="1" HorizontalAlignment="Center">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Ожидаем старта" FontSize="30"></TextBlock>
|
||||
</Viewbox>
|
||||
</TextBlock>
|
||||
<TextBlock Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="3" HorizontalAlignment="Center">
|
||||
<Viewbox>
|
||||
<TextBlock x:Name="QueueOnline"></TextBlock>
|
||||
</Viewbox>
|
||||
</TextBlock>
|
||||
<ListBox Grid.Column="5" Grid.ColumnSpan="5" Grid.Row="1" Grid.RowSpan="8" x:Name="QueueChat"></ListBox>
|
||||
<TextBox Grid.Column="5" Grid.ColumnSpan="4" Grid.Row="9" TextWrapping="Wrap" x:Name="QueueChatInput"></TextBox>
|
||||
<Button Grid.Column="9" Grid.Row="9" Click="GameQueueChatSend_OnClick">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Отправить!"></TextBlock>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
<Button Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="9" Click="GameQueueLeave_OnClick">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Выйти"></TextBlock>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
</Grid>
|
||||
|
||||
<Grid x:Name="DisconnectScreen" Visibility="Hidden">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="5*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="25*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="40*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="25*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="5*"></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="35*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Grid.Column="2" Grid.Row="1" HorizontalAlignment="Center">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Отключён от сервера" FontSize="30"></TextBlock>
|
||||
</Viewbox>
|
||||
</TextBlock>
|
||||
<TextBlock Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="3" x:Name="ReasonText" FontSize="25" HorizontalAlignment="Center" TextWrapping="Wrap"></TextBlock>
|
||||
<Button Grid.Column="2" Grid.Row="6" Click="Back_OnClick">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Назад" FontSize="25"></TextBlock>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
</Grid>
|
||||
|
||||
<Grid x:Name="GameVotingPassive" Visibility="Hidden">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="5*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="5*"></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="7" HorizontalAlignment="Center" FontSize="30" x:Name="GameVotingPassiveRole">
|
||||
<Viewbox>
|
||||
<TextBlock></TextBlock>
|
||||
</Viewbox>
|
||||
</TextBlock>
|
||||
<TextBlock Grid.Row="5" Grid.Column="2" Grid.ColumnSpan="7" Text="Спи спокойно, пока можешь" HorizontalAlignment="Center" FontSize="30">
|
||||
<Viewbox>
|
||||
<TextBlock></TextBlock>
|
||||
</Viewbox>
|
||||
</TextBlock>
|
||||
</Grid>
|
||||
|
||||
<Grid x:Name="GameVotingActive" Visibility="Hidden" KeyUp="GameVotingActive_OnKeyUp">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="5*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="5*"></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="7" HorizontalAlignment="Center" FontSize="30" x:Name="GameVotingActiveRole">
|
||||
<Viewbox>
|
||||
<TextBlock></TextBlock>
|
||||
</Viewbox>
|
||||
</TextBlock>
|
||||
<ListBox Grid.Column="5" Grid.ColumnSpan="5" Grid.Row="2" Grid.RowSpan="8" x:Name="GameVotingActiveChat"></ListBox>
|
||||
<TextBox Grid.Column="5" Grid.ColumnSpan="4" Grid.Row="10" TextWrapping="Wrap" x:Name="GameVotingActiveChatInput"></TextBox>
|
||||
<Button Grid.Column="9" Grid.Row="10" Click="GameVotingActiveChatSend_OnClick">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Отправить!"></TextBlock>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
<ListBox Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="2" Grid.RowSpan="8" x:Name="GameVotingActiveSelect" MouseDoubleClick="GameVotingActiveSelect_OnMouseDoubleClick" SelectionMode="Single"></ListBox>
|
||||
</Grid>
|
||||
|
||||
<Grid x:Name="GameEndScreen" Visibility="Hidden">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="5*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="25*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="40*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="25*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="5*"></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="35*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<TextBlock Grid.Column="2" Grid.Row="1" FontSize="30" HorizontalAlignment="Center">
|
||||
<Viewbox>
|
||||
<TextBlock x:Name="GameEndScreenWon"></TextBlock>
|
||||
</Viewbox>
|
||||
</TextBlock>
|
||||
<TextBlock Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="3" HorizontalAlignment="Center" TextWrapping="Wrap">
|
||||
<Viewbox>
|
||||
<TextBlock x:Name="GameEndScreenRoles" FontSize="25"></TextBlock>
|
||||
</Viewbox>
|
||||
</TextBlock>
|
||||
<Button Grid.Column="2" Grid.Row="6" Click="GameEndScreenBack_OnClick">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Назад" FontSize="25"></TextBlock>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
</Grid>
|
||||
<Grid x:Name="GameDay" Visibility="Hidden" KeyUp="GameDayWait_OnKeyUp">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="5*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="10*"></ColumnDefinition>
|
||||
<ColumnDefinition Width="5*"></ColumnDefinition>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="5*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
<RowDefinition Height="10*"></RowDefinition>
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="7" HorizontalAlignment="Center" TextAlignment="Center">
|
||||
<Viewbox>
|
||||
<TextBlock FontSize="30" x:Name="GameDayHotBar" Text="Обсуждай и думай"></TextBlock>
|
||||
</Viewbox>
|
||||
</TextBlock>
|
||||
<ListBox Grid.Column="5" Grid.ColumnSpan="5" Grid.Row="2" Grid.RowSpan="8" x:Name="GameDayChat"></ListBox>
|
||||
<TextBox Grid.Column="5" Grid.ColumnSpan="4" Grid.Row="10" TextWrapping="Wrap" x:Name="GameDayChatInput"></TextBox>
|
||||
<Button Grid.Column="9" Grid.Row="10" Click="GameDayChatSend_OnClick">
|
||||
<Viewbox>
|
||||
<TextBlock Text="Отправить!"></TextBlock>
|
||||
</Viewbox>
|
||||
</Button>
|
||||
<ListBox Grid.Column="1" Grid.ColumnSpan="3" Grid.Row="2" Grid.RowSpan="8" x:Name="GameDaySelect" MouseDoubleClick="GameDaySelect_OnMouseDoubleClick" SelectionMode="Single"></ListBox>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Window>
|
@ -1,280 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using DiscordRPC;
|
||||
using MafiaCommon;
|
||||
|
||||
namespace MafiaGame
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for MainWindow.xaml
|
||||
/// </summary>
|
||||
public partial class MainWindow
|
||||
{
|
||||
private static MainWindow _mainWindow;
|
||||
|
||||
public static MainWindow Instance => _mainWindow;
|
||||
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_mainWindow = this;
|
||||
|
||||
App.Instance.GetRpcClient().SetPresence(new RichPresence()
|
||||
{
|
||||
State = "В главном меню"
|
||||
});
|
||||
}
|
||||
|
||||
public void HideAll()
|
||||
{
|
||||
MainMenu.Visibility = Visibility.Hidden;
|
||||
SettingsGui.Visibility = Visibility.Hidden;
|
||||
IpInput.Visibility = Visibility.Hidden;
|
||||
GameQueue.Visibility = Visibility.Hidden;
|
||||
DisconnectScreen.Visibility = Visibility.Hidden;
|
||||
GameVotingPassive.Visibility = Visibility.Hidden;
|
||||
GameVotingActive.Visibility = Visibility.Hidden;
|
||||
GameEndScreen.Visibility = Visibility.Hidden;
|
||||
GameDay.Visibility = Visibility.Hidden;
|
||||
}
|
||||
|
||||
private void Exit_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Application.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();
|
||||
}
|
||||
}
|
||||
|
||||
public void ShowVotingPassive(string name)
|
||||
{
|
||||
GameQueue.Visibility = Visibility.Hidden;
|
||||
GameVotingPassive.Visibility = Visibility.Visible;
|
||||
GameVotingPassiveRole.Text = name;
|
||||
}
|
||||
|
||||
public void ShowVotingActive(string name)
|
||||
{
|
||||
GameQueue.Visibility = Visibility.Hidden;
|
||||
GameVotingActive.Visibility = Visibility.Visible;
|
||||
GameVotingActiveRole.Text = name;
|
||||
}
|
||||
|
||||
private void GameVotingActiveChatSend_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (GameVotingActiveChatInput.Text.Trim() != "")
|
||||
{
|
||||
App.Instance.Connection.SendMessage(ChatType.Active, GameVotingActiveChatInput.Text);
|
||||
GameVotingActiveChatInput.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
private void GameVotingActive_OnKeyUp(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.Key == Key.Enter)
|
||||
{
|
||||
GameVotingActiveChatSend_OnClick(null, null);
|
||||
}
|
||||
}
|
||||
|
||||
public void ShowGameEnd(bool isWon, List<PlayerRole> playerRoles)
|
||||
{
|
||||
GameEndScreenWon.Text = isWon ? "Ты победил!" : "Ты проиграл!";
|
||||
|
||||
string text = "";
|
||||
|
||||
foreach (PlayerRole playerRole in playerRoles)
|
||||
{
|
||||
string role = "Роль";
|
||||
switch (playerRole.Role)
|
||||
{
|
||||
case Role.Citizen:
|
||||
role = "Мирный житель";
|
||||
break;
|
||||
case Role.Mafia:
|
||||
role = "Мафия";
|
||||
break;
|
||||
case Role.Don:
|
||||
role = "Дон";
|
||||
break;
|
||||
}
|
||||
|
||||
text += playerRole.Name + " - " + role + Environment.NewLine;
|
||||
}
|
||||
|
||||
GameEndScreenRoles.Text = text;
|
||||
|
||||
HideAll();
|
||||
GameEndScreen.Visibility = Visibility.Visible;
|
||||
}
|
||||
|
||||
private void GameEndScreenBack_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
GameEndScreen.Visibility = Visibility.Hidden;
|
||||
GameQueue.Visibility = Visibility.Visible;
|
||||
}
|
||||
|
||||
private void GameQueueLeave_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
App.Instance.Connection.Disconnect();
|
||||
HideAll();
|
||||
MainMenu.Visibility = Visibility.Visible;
|
||||
App.Instance.GetRpcClient().SetPresence(new RichPresence()
|
||||
{
|
||||
State = "В главном меню"
|
||||
});
|
||||
}
|
||||
|
||||
private void GameVotingActiveSelect_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
ListBoxItem selected = (ListBoxItem)GameVotingActiveSelect.SelectedItem;
|
||||
App.Instance.Connection.Vote(Convert.ToInt32(((string)selected.Content).Split(")")[0]));
|
||||
}
|
||||
|
||||
private void GameDayWait_OnKeyUp(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.Key == Key.Enter)
|
||||
{
|
||||
GameDayChatSend_OnClick(null, null);
|
||||
}
|
||||
}
|
||||
|
||||
private void GameDayChatSend_OnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
if (GameDayChatInput.Text.Trim() != "")
|
||||
{
|
||||
App.Instance.Connection.SendMessage(ChatType.Day, GameDayChatInput.Text);
|
||||
GameDayChatInput.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
private void GameDaySelect_OnMouseDoubleClick(object sender, MouseButtonEventArgs e)
|
||||
{
|
||||
ListBoxItem selected = (ListBoxItem)GameDaySelect.SelectedItem;
|
||||
App.Instance.Connection.Vote(Convert.ToInt32(((string)selected.Content).Split(")")[0]));
|
||||
}
|
||||
|
||||
public void ShowDay(bool voting, Role role, List<Player> players)
|
||||
{
|
||||
GameDaySelect.IsEnabled = voting;
|
||||
GameDaySelect.Items.Clear();
|
||||
foreach (Player player in players)
|
||||
{
|
||||
ListBoxItem item = new ListBoxItem {Content = player.Id.ToString() + ") " + player.Name};
|
||||
GameDaySelect.Items.Add(item);
|
||||
}
|
||||
if (role == Role.Died)
|
||||
{
|
||||
GameDayHotBar.Text = "Коли умер, жди";
|
||||
}
|
||||
else
|
||||
{
|
||||
GameDayHotBar.Text = voting ? "Голосуй и молись" : "Обсуждай и думай";
|
||||
}
|
||||
|
||||
GameDay.Visibility = Visibility.Visible;
|
||||
}
|
||||
}
|
||||
}
|
@ -1,334 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using DiscordRPC;
|
||||
using MafiaCommon.Packets;
|
||||
using MafiaCommon;
|
||||
|
||||
namespace MafiaGame
|
||||
{
|
||||
public class ServerConnection
|
||||
{
|
||||
private readonly String _host = "localhost";
|
||||
private readonly int _port = 25743;
|
||||
private readonly Socket _socket;
|
||||
private readonly Thread _thread;
|
||||
private bool _breakFlag;
|
||||
private bool _connected;
|
||||
|
||||
public ServerConnection(String ip)
|
||||
{
|
||||
if (ip.Contains(':'))
|
||||
{
|
||||
_host = ip.Split(":")[0];
|
||||
_port = Convert.ToInt32(ip.Split(":")[1]);
|
||||
}
|
||||
else if (_host.Length != 0)
|
||||
{
|
||||
_host = ip;
|
||||
}
|
||||
|
||||
_thread = new Thread(ServerListener);
|
||||
|
||||
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
|
||||
try
|
||||
{
|
||||
_socket.Connect(_host, _port);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.ShowDisconnectScreen(e.Message);
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
_socket.Send(PacketConverter.ToBytes(new ConnectPacket(Settings.Config().Nick)));
|
||||
_thread.IsBackground = true;
|
||||
_thread.Start();
|
||||
_connected = true;
|
||||
}
|
||||
|
||||
public void SendMessage(ChatType chatType, string text)
|
||||
{
|
||||
_socket.Send(PacketConverter.ToBytes(new MessageSendPacket(chatType, text)));
|
||||
}
|
||||
|
||||
public void Disconnect()
|
||||
{
|
||||
_connected = false;
|
||||
_socket.Send(PacketConverter.ToBytes(new DisconnectPlayerPacket()));
|
||||
_thread.Interrupt();
|
||||
_socket.Close();
|
||||
}
|
||||
|
||||
public void Vote(int id)
|
||||
{
|
||||
_socket.Send(PacketConverter.ToBytes(new VotePacket(id)));
|
||||
}
|
||||
|
||||
private void ServerListener()
|
||||
{
|
||||
while (!_breakFlag)
|
||||
{
|
||||
StringBuilder builder = new StringBuilder();
|
||||
byte[] data = new byte[256];
|
||||
try
|
||||
{
|
||||
do
|
||||
{
|
||||
var bytes = _socket.Receive(data);
|
||||
builder.Append(Encoding.UTF8.GetString(data, 0, bytes));
|
||||
} while (_socket.Available > 0);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_socket.Close();
|
||||
if (_connected)
|
||||
{
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.HideAll();
|
||||
MainWindow.Instance.ShowDisconnectScreen(e.Message);
|
||||
});
|
||||
_connected = false;
|
||||
}
|
||||
_breakFlag = true;
|
||||
}
|
||||
|
||||
if (!_breakFlag)
|
||||
{
|
||||
Console.WriteLine(builder.ToString());
|
||||
|
||||
List<Packet> packets = PacketConverter.ToPacket(builder.ToString());
|
||||
foreach (Packet packet in packets)
|
||||
{
|
||||
WorkPacket(packet);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void WorkPacket(Packet packet)
|
||||
{
|
||||
switch (packet.PacketType)
|
||||
{
|
||||
case PacketType.Welcome:
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.QueueOnline.Text = ((WelcomePacket) packet).Players + "/" +
|
||||
((WelcomePacket) packet).MaxPlayers;
|
||||
MainWindow.Instance.ShowGameQueueScreen();
|
||||
Party party = new Party
|
||||
{
|
||||
ID = _host + ":" + _port,
|
||||
Size = ((WelcomePacket) packet).Players,
|
||||
Max = ((WelcomePacket) packet).MaxPlayers
|
||||
};
|
||||
Secrets secrets = new Secrets
|
||||
{
|
||||
JoinSecret = _host + ":" + _port + "/join",
|
||||
SpectateSecret = _host + ":" + _port + "/spectate"
|
||||
};
|
||||
App.Instance.GetRpcClient().SetPresence(new RichPresence()
|
||||
{
|
||||
State = ((WelcomePacket) packet).ServerName,
|
||||
Party = party,
|
||||
Secrets = secrets,
|
||||
Timestamps = Timestamps.Now,
|
||||
Details = "Ожидание старта"
|
||||
});
|
||||
});
|
||||
break;
|
||||
case PacketType.Disconnect:
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.ShowDisconnectScreen(((DisconnectPacket) packet).Reason);
|
||||
});
|
||||
_breakFlag = true;
|
||||
break;
|
||||
case PacketType.PlayerConnected:
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.QueueOnline.Text = ((PlayerConnectedPacket) packet).Players + "/" +
|
||||
((PlayerConnectedPacket) packet).MaxPlayers;
|
||||
});
|
||||
try
|
||||
{
|
||||
App.Instance.GetRpcClient().UpdatePartySize(((PlayerConnectedPacket) packet).Players);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e.Message);
|
||||
}
|
||||
|
||||
break;
|
||||
case PacketType.PlayerDisconnected:
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.QueueOnline.Text = ((PlayerDisconnectedPacket) packet).Players + "/" +
|
||||
((PlayerDisconnectedPacket) packet).MaxPlayers;
|
||||
});
|
||||
try
|
||||
{
|
||||
App.Instance.GetRpcClient().UpdatePartySize(((PlayerDisconnectedPacket) packet).Players);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e.Message);
|
||||
}
|
||||
|
||||
break;
|
||||
case PacketType.ServerShutdown:
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.ShowDisconnectScreen("Сервер выключен: " +
|
||||
((ServerShutdownPacket) packet).Reason);
|
||||
});
|
||||
_breakFlag = true;
|
||||
break;
|
||||
case PacketType.MessageReceivePacket:
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
ListBoxItem message = new ListBoxItem();
|
||||
if (((MessageReceivePacket) packet).IsSystem)
|
||||
{
|
||||
message.Content = ((MessageReceivePacket) packet).Text;
|
||||
}
|
||||
else
|
||||
{
|
||||
message.Content = ((MessageReceivePacket) packet).Author + ": " +
|
||||
((MessageReceivePacket) packet).Text;
|
||||
}
|
||||
|
||||
switch (((MessageReceivePacket) packet).ChatType)
|
||||
{
|
||||
case ChatType.Queue:
|
||||
MainWindow.Instance.QueueChat.Items.Add(message);
|
||||
MainWindow.Instance.QueueChat.ScrollIntoView(message);
|
||||
break;
|
||||
case ChatType.Active:
|
||||
MainWindow.Instance.GameVotingActiveChat.Items.Add(message);
|
||||
MainWindow.Instance.GameVotingActiveChat.ScrollIntoView(message);
|
||||
break;
|
||||
case ChatType.Day:
|
||||
MainWindow.Instance.GameDayChat.Items.Add(message);
|
||||
MainWindow.Instance.GameDayChat.ScrollIntoView(message);
|
||||
break;
|
||||
}
|
||||
});
|
||||
break;
|
||||
case PacketType.GameStartPacket:
|
||||
List<Player> players = ((GameStartPacket) packet).Players;
|
||||
switch (((GameStartPacket) packet).Role)
|
||||
{
|
||||
case Role.Citizen:
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.HideAll();
|
||||
MainWindow.Instance.ShowVotingPassive("Ты Мирный Житель");
|
||||
});
|
||||
break;
|
||||
case Role.Don:
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.HideAll();
|
||||
MainWindow.Instance.GameVotingActiveSelect.Items.Clear();
|
||||
MainWindow.Instance.ShowVotingActive("Ты Дон, выбери кого убить!");
|
||||
foreach (Player player in players)
|
||||
{
|
||||
ListBoxItem item = new ListBoxItem
|
||||
{
|
||||
Content = player.Id.ToString() + ") " + player.Name
|
||||
};
|
||||
MainWindow.Instance.GameVotingActiveSelect.Items.Add(item);
|
||||
}
|
||||
});
|
||||
break;
|
||||
case Role.Mafia:
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.HideAll();
|
||||
MainWindow.Instance.GameVotingActiveSelect.Items.Clear();
|
||||
MainWindow.Instance.ShowVotingActive("Ты Мафия, выбери кого убить!");
|
||||
foreach (Player player in players)
|
||||
{
|
||||
ListBoxItem item = new ListBoxItem
|
||||
{
|
||||
Content = player.Id.ToString() + ") " + player.Name
|
||||
};
|
||||
MainWindow.Instance.GameVotingActiveSelect.Items.Add(item);
|
||||
}
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
App.Instance.GetRpcClient().UpdateDetails("Ночь");
|
||||
break;
|
||||
case PacketType.EndGame:
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.ShowGameEnd(((EndGamePacket)packet).IsWon,((EndGamePacket)packet).PlayerRoles);
|
||||
});
|
||||
App.Instance.GetRpcClient().UpdateDetails("Ожидание старта");
|
||||
break;
|
||||
case PacketType.GameStateChanged:
|
||||
Application.Current.Dispatcher.Invoke(() => { MainWindow.Instance.HideAll(); });
|
||||
players = ((GameStageChangedPacket) packet).Players;
|
||||
switch (((GameStageChangedPacket) packet).GameState)
|
||||
{
|
||||
case GameState.Day:
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.ShowDay(false, ((GameStageChangedPacket) packet).Role,players);
|
||||
});
|
||||
App.Instance.GetRpcClient().UpdateDetails("День");
|
||||
break;
|
||||
case GameState.VotingDay:
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
MainWindow.Instance.ShowDay(true, ((GameStageChangedPacket) packet).Role,players);
|
||||
});
|
||||
App.Instance.GetRpcClient().UpdateDetails("Голосование!");
|
||||
break;
|
||||
case GameState.VotingNight:
|
||||
switch (((GameStageChangedPacket)packet).Role)
|
||||
{
|
||||
case Role.Citizen:
|
||||
case Role.Died:
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
var rol = ((GameStageChangedPacket)packet).Role == Role.Citizen ? "Мирный житель" : "Мёртв";
|
||||
MainWindow.Instance.ShowVotingPassive("Ты " +rol+ "!");
|
||||
});
|
||||
break;
|
||||
case Role.Mafia:
|
||||
case Role.Don:
|
||||
Application.Current.Dispatcher.Invoke(() =>
|
||||
{
|
||||
var rol = ((GameStageChangedPacket)packet).Role == Role.Mafia ? "Мафия" : "Дон";
|
||||
MainWindow.Instance.GameVotingActiveSelect.Items.Clear();
|
||||
MainWindow.Instance.ShowVotingActive("Ты "+rol+", выбери кого убить!");
|
||||
foreach (Player player in players)
|
||||
{
|
||||
ListBoxItem item = new ListBoxItem
|
||||
{
|
||||
Content = player.Id.ToString() + ") " + player.Name
|
||||
};
|
||||
MainWindow.Instance.GameVotingActiveSelect.Items.Add(item);
|
||||
}
|
||||
});
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
using System.IO;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace MafiaGame
|
||||
{
|
||||
public class Settings
|
||||
{
|
||||
private static MainConfig _config;
|
||||
|
||||
public static MainConfig Config()
|
||||
{
|
||||
return _config;
|
||||
}
|
||||
|
||||
public static void Initialize()
|
||||
{
|
||||
try
|
||||
{
|
||||
_config = JsonConvert.DeserializeObject<MainConfig>(File.ReadAllText("config.json"));
|
||||
}
|
||||
catch (FileNotFoundException)
|
||||
{
|
||||
_config = new MainConfig();
|
||||
File.Create("config.json").Close();
|
||||
}
|
||||
}
|
||||
|
||||
public static void Save()
|
||||
{
|
||||
File.WriteAllText("config.json",JsonConvert.SerializeObject(_config,Formatting.Indented));
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user