private Tech AIBaseSelectNextTech( StrategicAI ai, List <PlayerTechInfo> desiredTech = null, Dictionary <string, int> familyWeights = null) { Tech tech = (((Tech)null ?? this.AISelectPartialTech(ai)) ?? AIResearchFramework.AISelectBinaryResponseTech(ai)) ?? this.AISelectDefaultTech(ai, desiredTech, familyWeights); Tech researchingTech = AIResearchFramework.AIGetResearchingTech(ai); if (tech != null && tech != researchingTech) { if (this._log != null) { if (researchingTech != null) { this._log.Print(string.Format("\n >>> {0} (replacing {1})\n", (object)tech.Id, (object)researchingTech.Id)); } else { this._log.Print(string.Format("\n >>> {0}\n", (object)tech.Id)); } } return(tech); } if (this._log != null) { this._log.ClearRecord(); } return((Tech)null); }