private bool AIHaveReplacementForTech(StrategicAI ai, Tech tech) { bool flag = false; foreach (AIResearchFramework.AITechReplacementRow replacement in this._replacements) { if (tech == replacement.Old) { PlayerTechInfo playerTechInfo = AIResearchFramework.AIGetPlayerTechInfo(ai, replacement.New); if (playerTechInfo != null) { switch (replacement.Contexts) { case AIResearchFramework.AITechReplacementContexts.Available: flag = AIResearchFramework.AIIsTechAvailable(playerTechInfo.State) || AIResearchFramework.AIHaveTech(playerTechInfo.State); break; case AIResearchFramework.AITechReplacementContexts.Researched: flag = AIResearchFramework.AIHaveTech(playerTechInfo.State); break; } if (flag) { break; } } } } return(flag); }