示例#1
0
        protected ResearchProjectDef ApplyPointsToResearch(float points)
        {
            ResearchManager researchManager = Find.ResearchManager;

            if (!researchManager.AnyProjectIsAvailable)
            {
                return(null);
            }
            ResearchProjectDef research;
            IEnumerable <ResearchProjectDef> researchList = (from x in DefDatabase <ResearchProjectDef> .AllDefsListForReading
                                                             where x.CanStartNow
                                                             select x);

            ResearchProjectDef currentResearch = researchManager.currentProj;

            researchList.TryRandomElementByWeight((ResearchProjectDef x) => 1 / x.baseCost, out research);

            //points need to multiplied
            points *= 121f;

            researchManager.currentProj = research;
            researchManager.ResearchPerformed(points, null);
            researchManager.currentProj = currentResearch;

            return(research);
        }