public IEnumerator SetupDialogue(TooltipId[] dialogue)
    {
        if (_waitType == WaitType.InGamePause)
        {
            _playerControl.WaitForTooltip(true);
        }
        if (_waitType == WaitType.VillageSpeech)
        {
            _playerControl.WaitForVillageSpeech();
        }
        _bFirstDialogue = true;
        _bLastDialogue  = false;
        int numItems = dialogue.Length;

        foreach (TooltipId speech in dialogue)
        {
            numItems--;
            if (numItems == 0)
            {
                _bLastDialogue = true;
            }
            if (_bFirstDialogue)
            {
                _tooltipControl.RestoreOriginalScale();
                yield return(_tooltipControl.StartCoroutine("OpenTooltip"));
            }
            yield return(StartCoroutine("ShowTooltip", speech));

            _bFirstDialogue = false;
        }
        if (_waitType == WaitType.InGamePause)
        {
            _playerControl.WaitForTooltip(false);
            _playerControl.TooltipResume();
        }
        else if (_waitType == WaitType.VillageSpeech)
        {
            _playerControl.WaitForVillageSpeech();  // TODO only need to clear the input
        }
        _tooltipControl.StartCoroutine("CloseTooltip");
        EventListener.TooltipActioned();
    }