From 4e721afba15f44c96d8dd774143b66a9a78fa74a Mon Sep 17 00:00:00 2001 From: Ilya Date: Wed, 10 Feb 2021 21:54:30 +0300 Subject: [PATCH] Move death worker to WorkDeath() --- MafiaServer/Game.cs | 79 +++++++++++++++++++-------------------------- 1 file changed, 33 insertions(+), 46 deletions(-) diff --git a/MafiaServer/Game.cs b/MafiaServer/Game.cs index 1b6d645..2069abf 100644 --- a/MafiaServer/Game.cs +++ b/MafiaServer/Game.cs @@ -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)