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 }
//set player public void AssignPlayer(BattleCarsPlayerNet _player) => player = _player;
/// <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 }