public void EndDuel(bool force) { if (State == GameState.End) { return; } if (State == GameState.Duel) { if (!Replay.Disabled) { Replay.End(); byte[] replayData = Replay.GetContent(); BinaryWriter packet = GamePacketFactory.Create(StocMessage.Replay); packet.Write(replayData); if (Config.GetInt("SRVProReplayMode", 0) != 1) { SendToAll(packet); } else { SendToPlayers(packet); } } _duel.End(); } if (IsMatch && !force && !MatchIsEnd()) { IsReady[0] = false; IsReady[1] = false; State = GameState.Side; SideTimer = DateTime.UtcNow; SendToPlayers(GamePacketFactory.Create(StocMessage.ChangeSide)); SendToObservers(GamePacketFactory.Create(StocMessage.WaitingSide)); } else { CalculateWinner(); End(); } }
public void EndDuel(bool force) { if (State == GameState.End) { return; } if (State == GameState.Duel) { if (!Replay.Disabled) { Replay.End(); byte[] replayData = Replay.GetContent(); GamePacketWriter packet = new GamePacketWriter(StocMessage.Replay); packet.Write(replayData); SendToAll(packet); } _duel.End(); } if (_swapped) { _swapped = false; if (IsTag) { Player temp = Players[0]; Players[0] = Players[2]; Players[2] = temp; temp = Players[1]; Players[1] = Players[3]; Players[3] = temp; Players[0].Type = 0; Players[1].Type = 1; Players[2].Type = 2; Players[3].Type = 3; } else { Player temp = Players[0]; Players[0] = Players[1]; Players[1] = temp; Players[0].Type = 0; Players[1].Type = 1; } } if (IsMatch && !force && !MatchIsEnd()) { IsReady[0] = false; IsReady[1] = false; State = GameState.Side; SideTimer = DateTime.UtcNow; SendToPlayers(new GamePacketWriter(StocMessage.ChangeSide)); SendToObservers(new GamePacketWriter(StocMessage.WaitingSide)); } else { CalculateWinner(); End(); } }