private void RemotePlayerSurrend(SurrendEvent e) { if (remotePlayers.ContainsKey(e.ID)) { remotePlayers[e.ID].Stat = PlayerStat.Spectator; } }
private void PlayerSurrend(SurrendEvent e) { User surrendUser = RoomManager.instance.RoomInfo.Personnel[e.ID]; if (e.ID == this.player.ID) { PacketManager.instance.PutPacket(new Packet(GameManager.instance.Me.ID, Packet.Target.ALL, Packet.Type.SYNC_SURREND, new byte[1] { GameManager.instance.Me.ID })); GameManager.instance.ShowMessage("당신은 항복하였습니다!", 1.0f, MessageType.Important); if (RoomManager.instance.RoomInfo.HeadCount == 1) { GameOver(this.goaler); return; } GameManager.instance.ShowMessage("당신은 관전자!!", 1.0f, MessageType.Commmon); player.Stat = PlayerStat.Spectator; } else { GameManager.instance.ShowMessage("sdfsdf 님이 항복하였습니다!", 1.0f, MessageType.Important); } this.surrender.Add(surrendUser); if (GameManager.instance.NetPart == SocketPart.Server) { if (surrender.Count == (RoomManager.instance.RoomInfo.HeadCount - 1) || RoomManager.instance.RoomInfo.HeadCount == 1) { foreach (User u in RoomManager.instance.RoomInfo.Personnel.Values) { if (u.ID != e.ID && !goaler.Contains(u)) { goaler.Add(u); } } goaler.Sort(delegate(User one, User two) { float oneX = RemotePlayerController.instance.RemotePlayers[one.ID].Pos.x; float twoY = RemotePlayerController.instance.RemotePlayers[two.ID].Pos.y; if (oneX > twoY) { return(1); } else if (oneX == twoY) { return(0); } else { return(-1); } }); GameOver(this.goaler); } } }