private static Tech AISelectFavoriteTech(StrategicAI ai, IList <Tech> techs) { if (techs.Count == 0) { return((Tech)null); } List <Tech> techList = new List <Tech>(); int num = AIResearchFramework.AICalcTechCost(ai, techs[0]); foreach (Tech tech in (IEnumerable <Tech>)techs) { if (num == AIResearchFramework.AICalcTechCost(ai, tech)) { techList.Add(tech); } else { if (AIResearchFramework.AIGetTurnsToComplete(ai, tech) <= 15) { techList.Add(tech); break; } break; } } return(techList[ai.Random.Next(techList.Count)]); }
private static bool AICanSelectBinaryResponseTech(StrategicAI ai) { Tech researchingTech = AIResearchFramework.AIGetResearchingTech(ai); if (researchingTech != null) { return(AIResearchFramework.AIGetTurnsToComplete(ai, researchingTech) > 5); } return(true); }
private bool AIIsShortTermTech(StrategicAI ai, Tech tech) { return(AIResearchFramework.AIGetTurnsToComplete(ai, tech) < 15); }
private static int AICalcTechCost(StrategicAI ai, Tech tech) { return(AIResearchFramework.AICalcTechCost(AIResearchFramework.AICalcCombinedTechStyleCost(ai, tech), (double)tech.AICostFactors.Faction(ai.Player.Faction.Name), (double)AIResearchFramework.AIGetTurnsToComplete(ai, tech))); }