public static void BlockSentences(this CampaignGameStarter gameInitializer, Func <bool> condition, params string[] sentenceIds) { foreach (var sentenceId in sentenceIds) { var sentence = gameInitializer.GetSentence(sentenceId); if (sentence != null) { var sentenceCondition = sentence.OnCondition; sentence.OnCondition = () => { return(condition() && (sentenceCondition == null || sentenceCondition())); }; } } }