public override IEnumerator PlayInternal(CinematicDirector player) { Typewriter target = player.objectMap.GetObjectByName(mTarget).GetComponent <Typewriter>(); if (!mWaitForInteraction) { yield return(target.ShowTextCoroutine(mText, 1f)); } else { target.ShowText(mText, 1f); // Provide a little lag time yield return(new WaitForSeconds(0.25f)); bool keepWaiting = true; BasicActionSet actionSet = Game.instance.actionSet; while (keepWaiting) { if (target.isAnimating) { if (actionSet.Activate.WasPressed || actionSet.Spell.WasPressed) { target.ForceFinish(); } } else { if (actionSet.Activate.WasPressed || actionSet.Spell.WasPressed) { keepWaiting = false; if (!mKeepOpen) { target.HideText(); } } } yield return(null); } } yield break; }