Move death worker to WorkDeath()

This commit is contained in:
Ilya 2021-02-10 21:54:30 +03:00
parent 8d62442107
commit 4e721afba1

View File

@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
using System.Linq;
using MafiaCommon.Packets;
using MafiaCommon;
@ -56,6 +55,36 @@ namespace MafiaServer
}
}
private void WorkDeath(PlayerSocketWorker player)
{
switch (player.Role)
{
case Role.Don:
_mafia.Remove(player);
if (_mafia.Count == 0)
{
foreach (PlayerSocketWorker p in _players)
{
player.sendPacket(new EndGamePacket(true,_playerRolesAtStart));
}
isStarted = false;
_gameState = GameState.NotStarted;
}
else
{
_mafia[0].Role = Role.Don;
if (_gameState == GameState.VotingNight)
{
_mafia[0].sendPacket(new MessageReceivePacket(ChatType.Active,true,"System","Дон покинул игру, ты новый дон!"));
}
}
break;
}
player.Role = Role.Died;
}
private void PlayerOnOnPlayerVoteEvent(PlayerSocketWorker sender, int id)
{
if (_votesRemain.Contains(sender))
@ -114,7 +143,7 @@ namespace MafiaServer
_gameState = GameState.Day;
PlayerSocketWorker killed = _players.FindPlayerById(selId);
killed.Role = Role.Died;
WorkDeath(killed);
foreach (PlayerSocketWorker player in _players)
{
player.sendPacket(new GameStageChangedPacket(GameState.Day));
@ -130,28 +159,7 @@ namespace MafiaServer
{
player.sendPacket(new PlayerDisconnectedPacket(true,sender.Id,_players.Count,Settings.Config().MaxPlayers));
}
if (sender.Role == Role.Don)
{
_mafia.Remove(sender);
if (_mafia.Count == 0)
{
foreach (PlayerSocketWorker player in _players)
{
player.sendPacket(new EndGamePacket(true,_playerRolesAtStart));
}
isStarted = false;
_gameState = GameState.NotStarted;
}
else
{
_mafia[0].Role = Role.Don;
if (_gameState == GameState.VotingNight)
{
_mafia[0].sendPacket(new MessageReceivePacket(ChatType.Active,true,"System","Дон покинул игру, ты новый дон!"));
}
}
}
WorkDeath(sender);
}
public void Start()
@ -250,28 +258,7 @@ namespace MafiaServer
{
player.sendPacket(new PlayerDisconnectedPacket(true,sender.Id,_players.Count,Settings.Config().MaxPlayers));
}
if (sender.Role == Role.Don)
{
_mafia.Remove(sender);
if (_mafia.Count == 0)
{
foreach (PlayerSocketWorker player in _players)
{
player.sendPacket(new EndGamePacket(true,_playerRolesAtStart));
}
isStarted = false;
_gameState = GameState.NotStarted;
}
else
{
_mafia[0].Role = Role.Don;
if (_gameState == GameState.VotingNight)
{
_mafia[0].sendPacket(new MessageReceivePacket(ChatType.Active,true,"System","Дон покинул игру, ты новый дон!"));
}
}
}
WorkDeath(sender);
}
private void PlayerOnOnPlayerSendMessageEvent(PlayerSocketWorker sender, ChatType chatType, string text)