Beispiel #1
0
        public void Disconnect(SkirmishSlot slot)
        {
            var peer = _manager.ConnectedPeerList.FirstOrDefault(p => p.EndPoint == slot.EndPoint);

            if (peer != null)
            {
                _manager.DisconnectPeer(peer);
            }
        }
Beispiel #2
0
 public SkirmishGameSettings(bool isHost)
 {
     IsHost = isHost;
     Slots  = new SkirmishSlot[MaxNumberOfPlayers];
     for (var i = 0; i < Slots.Length; i++)
     {
         Slots[i] = new SkirmishSlot(i);
     }
     Status = SkirmishGameStatus.Configuring;
 }
Beispiel #3
0
        public SkirmishManager(Game game)
        {
            _game = game;

            for (var a = 0; a < 8; a++)
            {
                var slot = new SkirmishSlot();
                slot.Type = SkirmishSlot.SlotType.Closed;
                slot.id   = a;
                _slots.Add(slot);
            }
        }
Beispiel #4
0
 public static void Serialize(NetDataWriter writer, SkirmishSlot slot)
 {
     writer.Put(slot.Index);
     writer.Put((byte)slot.State);
     writer.Put(slot.PlayerName);
     writer.Put(slot.ColorIndex);
     writer.Put(slot.FactionIndex);
     writer.Put(slot.Team);
     writer.Put(slot.Ready);
     if (slot.State == SkirmishSlotState.Human)
     {
         writer.Put(slot.EndPoint);
         writer.Put(slot.ProcessId);
     }
 }
Beispiel #5
0
        public static SkirmishSlot Deserialize(NetDataReader reader)
        {
            var slot = new SkirmishSlot(reader.GetInt())
            {
                State         = (SkirmishSlotState)reader.GetByte(),
                ColorIndex    = reader.GetSByte(),
                FactionIndex  = reader.GetByte(),
                Team          = reader.GetSByte(),
                StartPosition = reader.GetByte(),
            };

            if (slot.State == SkirmishSlotState.Human)
            {
                slot.ClientId   = reader.GetString();
                slot.PlayerName = reader.GetString();
                slot.EndPoint   = reader.GetNetEndPoint();
            }

            return(slot);
        }
Beispiel #6
0
        public static SkirmishSlot Deserialize(NetDataReader reader)
        {
            var slot = new SkirmishSlot()
            {
                Index        = reader.GetInt(),
                State        = (SkirmishSlotState)reader.GetByte(),
                PlayerName   = reader.GetString(),
                ColorIndex   = reader.GetByte(),
                FactionIndex = reader.GetByte(),
                Team         = reader.GetByte(),
                Ready        = reader.GetBool()
            };

            if (slot.State == SkirmishSlotState.Human)
            {
                slot.EndPoint  = reader.GetNetEndPoint();
                slot.ProcessId = reader.GetInt();
            }

            return(slot);
        }
Beispiel #7
0
 private void SkirmishClientConnectPacketReceived(SkirmishClientConnectPacket packet, SkirmishSlot slot)
 {
     slot.ClientId   = packet.ClientId;
     slot.PlayerName = packet.PlayerName;
 }
Beispiel #8
0
        private void SkirmishClientUpdatePacketReceived(SkirmishClientUpdatePacket packet, SkirmishSlot slot)
        {
            if (slot != null)
            {
                slot.PlayerName   = packet.PlayerName;
                slot.Team         = packet.Team;
                slot.FactionIndex = packet.FactionIndex;
                slot.ColorIndex   = packet.ColorIndex;

                if (packet.StartPosition == 0 || packet.StartPosition == slot.StartPosition || !Settings.Slots.Any(s => s.StartPosition == packet.StartPosition))
                {
                    slot.StartPosition = packet.StartPosition;
                }
            }
        }
Beispiel #9
0
 private void SkirmishClientUpdatePacketReceived(SkirmishClientUpdatePacket packet, SkirmishSlot slot)
 {
     if (slot != null)
     {
         slot.PlayerName   = packet.PlayerName;
         slot.Ready        = packet.Ready;
         slot.Team         = packet.Team;
         slot.FactionIndex = packet.FactionIndex;
         slot.ColorIndex   = packet.ColorIndex;
     }
 }