Exemple #1
0
    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());
                    }
                }
            }
        }
    }