void ChangeTarget()
    {
        List <T> targetList = Targets;

        if (targets.Count > 0)
        {
            if (currentTarget != null)
            {
                int index = targetList.IndexOf(currentTarget);

                currentTarget = targetList [(index + 1) % targets.Count];
                SwitchHighlightedProbability((index + 1) % targets.Count);
            }
            else
            {
                currentTarget = targetList [0];
                SwitchHighlightedProbability(0);
            }
            camAuto.MoveCameraParallelToZeroPlane(currentTarget.CurrentHex.Position, 0.2f);

            LineMouseUI(contestant, currentTarget.CurrentHex);
        }
        else
        {
            Debug.Log("No valid targets");
            camAuto.MoveCameraParallelToZeroPlane(contestant.CurrentHex.Position, 0.2f);
        }
    }
    public IEnumerator SelectContestant(Contestant c)
    {
        if (selected != null)
        {
            selected.HideMovementHexes();
            DisableMoveUI();

            if (onDeselected != null)
            {
                onDeselected(selected);
            }
        }

        selected = c;

        camAuto.MoveCameraParallelToZeroPlane(selected.CurrentHex.Position, 0.2f);

        while (selected.Moving)
        {
            yield return(null);
        }

        selected.ShowMovementHexes();

        if (onSelected != null)
        {
            onSelected(c);
        }
    }