private void Execute(bool isPaused, string buttonKey, Action <bool> handler) { var hasAppToggled = appState.Pause(isPaused); controller.IsPaused = isPaused; if (!hasAppToggled) { return; } if (isPaused) { var data = new DialogueData { Message = localization.Get(TextKeys.PAUSE_TEXT), BackgroundAlpha = 1f }; if (!string.IsNullOrEmpty(buttonKey)) { var buttonText = localization.Get(buttonKey); data.AddAction(buttonText, handler); } onShowDialogue.Dispatch(data); } else { onHideDialogue.Dispatch(); } }