public void ShiftTarget(bool next) { var currentPlayers = matchPlayer.GetPlayers(); if (currentPlayers != null && currentPlayers.Count > 0) { currentPlayers.Sort((player1, player2) => player1.entityId - player2.entityId); if (currentTarget == null) { SetTarget(currentPlayers.First()); } else { int index = currentPlayers.FindIndex(player => currentTarget.entityId == player.entityId); if (index > -1) { index = (index + (next ? 1 : -1) + currentPlayers.Count) % currentPlayers.Count; SetTarget(currentPlayers[index]); } else { index = currentPlayers.FindIndex(player => currentTarget.entityId > player.entityId); if (index > -1) { SetTarget(currentPlayers[index]); } else { SetTarget(currentPlayers.First()); } } } } }