Beispiel #1
0
        public void OnPlayerConnected(BattleCarsPlayerNet _player)
        {
            bool assigned = false; //this be break in foreach

            if (_player.isLocalPlayer)
            {
                localPlayer = _player;
            }

            List <LobbyPlayerSlot> slots = assignToLeft ? leftTeamSlots : rightTeamSlots;

            slots.ForEach(slot =>
            {
                if (assigned)
                {
                    return;
                }
                else if (!slot.IsTaken)
                {
                    slot.AssignPlayer(_player);
                    slot.SetSide(assignToLeft);
                    assigned = true;
                }
            });

            for (int i = 0; i < leftTeamSlots.Count; i++)
            {
                LobbyPlayerSlot slot = leftTeamSlots[i];
                if (slot.IsTaken)
                {
                    localPlayer.AssignPlayerToSlot(slot.IsLeft, i, slot.Player.playerId);
                }
            }
            for (int i = 0; i < rightTeamSlots.Count; i++)
            {
                LobbyPlayerSlot slot = rightTeamSlots[i];
                if (slot.IsTaken)
                {
                    localPlayer.AssignPlayerToSlot(slot.IsLeft, i, slot.Player.playerId);
                }
            }

            assignToLeft = !assignToLeft; //flip team
        }
Beispiel #2
0
 //set player
 public void AssignPlayer(BattleCarsPlayerNet _player) => player = _player;
Beispiel #3
0
        /// <summary>
        /// Assigns player to team and slot.
        /// </summary>
        public void AssignPlayerToSlot(BattleCarsPlayerNet _player, bool _left, int _slotId)
        {
            List <LobbyPlayerSlot> slots = _left ? leftTeamSlots : rightTeamSlots; //assign team

            slots[_slotId].AssignPlayer(_player);                                  //assign slot
        }