Пример #1
0
 private void getAllTechnologies()
 {
     //maj currenttech
     allTechResearched.Clear();
     if (HighLogic.CurrentGame.Mode != Game.Modes.SANDBOX)
     {
         ProtoScenarioModule protoScenario = HighLogic.CurrentGame.scenarios.Find(x => x.moduleName == "ResearchAndDevelopment");
         foreach (ConfigNode tech in protoScenario.GetData().GetNodes("Tech"))
         {
             string node = tech.GetValue("id");
             allTechResearched.Add(node);
         }
     }
 }
Пример #2
0
        public bool needReload()
        {
            if (HighLogic.CurrentGame.Mode == Game.Modes.SANDBOX)
            {
                //don't need to reload a sandbox!
                return(false);
            }

            List <string> researchedNow = new List <string>();

            researchedNow.AddRange(allTechResearched);
            ProtoScenarioModule protoScenario = HighLogic.CurrentGame.scenarios.Find(x => x.moduleName == "ResearchAndDevelopment");

            foreach (ConfigNode tech in protoScenario.GetData().GetNodes("Tech"))
            {
                string node = tech.GetValue("id");

                if (allTechResearched.Contains(node))
                {
                    researchedNow.Remove(node);
                }
                else
                {
                    //a new researched note!
                    return(true);
                }
            }

            //test if we load a revious save without an actuel tech
            if (researchedNow.Count == 0)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }