/// <summary> /// Called when the domain is unloaded. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="e"> /// The <see cref="EventArgs" /> instance containing the event data. /// </param> private static void CurrentDomainDomainUnload(object sender, EventArgs e) { var gameEndPacket = new GameEndPacket(client.CreateMessage()); gameEndPacket.Send(client); client.Shutdown(string.Empty); }
/// <summary> /// Called when the Game ends. /// </summary> /// <param name="args"> /// The <see cref="GameEndEventArgs" /> instance containing the event data. /// </param> private static void Game_OnEnd(GameEndEventArgs args) { var gameEndPacket = new GameEndPacket(client.CreateMessage()); gameEndPacket.Send(client); client.Shutdown(string.Empty); }
public void OnReceiveGameEndPacket(PacketId id, byte[] data) { GameEndPacket packet = new GameEndPacket(data); GameEndData packetData = packet.GetPacket(); //상대방이 게임을 종료했을 시 -> 게임 승리로 간주 if (packetData.request == GamePacketId.OpponentEnd) { networkManager.transportTCP.Disconnect(); MatchingManager.instance.MatchState = MatchingManager.MatchingState.Nothing; SceneManager.LoadScene("Lobby"); } }
private void BroadcastGameEndPacket(Player deadPlayer) { var contents = string.Format("Player \"{0}\" won!", players.FirstOrDefault(p => !ReferenceEquals(deadPlayer, p)).client.Name); var packet = new GameEndPacket(); packet.contents = contents; for (var i = 0; i < players.Count; i++) { players[i].client.Send(packet); } Ended?.Invoke(this); }
private void HandleGameEndPacket(GameEndPacket p) { SwitchScene <MultiplayerGameOverScene>(); }