예제 #1
0
        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);
        }
예제 #2
0
        private static int AIGetTechProgress(StrategicAI ai, Tech tech)
        {
            PlayerTechInfo playerTechInfo = AIResearchFramework.AIGetPlayerTechInfo(ai, tech);

            if (playerTechInfo == null)
            {
                return(0);
            }
            return(playerTechInfo.Progress);
        }