Example #1
0
        public void updateSlotType(PreGameSlotInfo slot, IPeer peer)
        {
            PreGamePlayerSlot oldSlot = playerSlots[slot.slotID];

            if (isAdminOrHost(peer) == false && oldSlot.peer != null && peer.Id != oldSlot.peer.peer.Id) //Only allow admin or the same peer to change slot
            {
                return;
            }

            PreGamePeer localPeer = getMatchingPeer(peer.Id);

            if (localPeer == null)  //Quick fix to wait until player joins game
            {
                MainThread.createTimedAction(() => { updateSlotType(slot, peer); }, 0.1f);
                return;
            }

            if (slot.type == PreGameSlotType.Player)
            {
                localPeer.removePlayerSlot(slot.slotID);
                setplayerSlotEmpty(slot.slotID);
            }
            else
            {
                localPeer.addPlayerSlot(slot.slotID);
                changePlayerSlot(slot.slotID, slot.type, slot.playerInfo, getMatchingPeer(peer.Id), getIsPreReady(slot.type, localPeer));
            }

            broadcastUpdate();
        }
Example #2
0
        private void removeOldPeerFromSlot(int slotID, PreGamePeer newPeer)
        {
            PreGamePlayerSlot slot = playerSlots[slotID];

            if (slot.peer != null && newPeer != slot.peer)
            {
                slot.peer.removePlayerSlot(slotID);
            }
        }