public static void Postfix(ResearchProjectDef __instance, ResearchProjectTagDef tag, ref bool __result) { // 'Greylist' certain research projects based on start tags - just saves XML work if (__result) { var researchProjectDefExtension = ResearchProjectDefExtension.Get(__instance); if (!researchProjectDefExtension.greylistedTags.NullOrEmpty() && researchProjectDefExtension.greylistedTags.Contains(tag)) { __result = false; } } }
private static bool AutoCompleteResearch(bool original, ResearchProjectDef research) { if (original && research != null) { // Check the faction def starting tags and research DefModExtension greylist tags; return false if there are any matches var researchProjectDefExtension = ResearchProjectDefExtension.Get(research); if (!researchProjectDefExtension.greylistedTags.NullOrEmpty()) { var startingTags = Faction.OfPlayer.def.startingResearchTags; return(!startingTags.Any(t => researchProjectDefExtension.greylistedTags.Contains(t))); } } return(original); }