示例#1
0
        private CourseTemplate GenerateCourseMission(AvailablePart ap)
        {
            var  n     = new ConfigNode("FS_COURSE");
            bool found = TrainingDatabase.SynonymReplace(ap.name, out string name);

            n.AddValue("id", "msn_" + name);
            n.AddValue("name", "Mission: " + (found ? name : ap.title));
            n.AddValue("time", 1 + TrainingDatabase.GetTime(name + "-Mission") * 86400);
            n.AddValue("isTemporary", false);
            n.AddValue("timeUseStupid", true);
            n.AddValue("seatMax", ap.partPrefab.CrewCapacity * 2);
            n.AddValue("expiration", Settings.trainingMissionExpirationDays * 86400);
            n.AddValue("preReqs", $"{TrainingType_Proficiency}:{name}");

            ConfigNode r = n.AddNode("REWARD");
            ConfigNode l = r.AddNode("FLIGHTLOG");

            l.AddValue("0", $"{TrainingType_Mission},{name}");

            var c = new CourseTemplate(n);

            c.PopulateFromSourceNode();
            OfferedCourses.Add(c);

            return(c);
        }
示例#2
0
        private CourseTemplate GenerateCourseProf(AvailablePart ap, bool isTemporary)
        {
            var  n     = new ConfigNode("FS_COURSE");
            bool found = TrainingDatabase.SynonymReplace(ap.name, out string name);

            n.AddValue("id", "prof_" + name);
            n.AddValue("name", "Proficiency: " + (found ? name : ap.title));
            n.AddValue("time", 1d + (TrainingDatabase.GetTime(name) * 86400));
            n.AddValue("isTemporary", isTemporary);
            n.AddValue("conflicts", $"{TrainingType_Proficiency}:{name}");

            ConfigNode r = n.AddNode("REWARD");

            r.AddValue("XPAmt", Settings.trainingProficiencyXP);
            ConfigNode l = r.AddNode("FLIGHTLOG");

            l.AddValue("0", $"{TrainingType_Proficiency},{name}");

            var c = new CourseTemplate(n);

            c.PopulateFromSourceNode();
            OfferedCourses.Add(c);

            return(c);
        }
示例#3
0
        protected void GenerateCourseMission(AvailablePart ap)
        {
            ConfigNode n    = new ConfigNode("FS_COURSE");
            string     name = TrainingDatabase.SynonymReplace(ap.name);

            n.AddValue("id", "msn_" + name);
            n.AddValue("name", "Mission: " + name);
            n.AddValue("time", 1d + TrainingDatabase.GetTime(name + "-Mission") * 86400d);
            n.AddValue("isTemporary", false);
            n.AddValue("timeUseStupid", true);
            n.AddValue("seatMax", ap.partPrefab.CrewCapacity * 2);
            n.AddValue("expiration", settings.trainingMissionExpirationDays * 86400d);

            n.AddValue("preReqs", "TRAINING_proficiency:" + name);
            n.AddValue("conflicts", "TRAINING_mission:" + name);

            ConfigNode r = n.AddNode("REWARD");
            ConfigNode l = r.AddNode("FLIGHTLOG");

            l.AddValue("0", "TRAINING_mission," + name);

            CourseTemplate c = new CourseTemplate(n);

            c.PopulateFromSourceNode();
            OfferedCourses.Add(c);
        }
示例#4
0
        protected void GenerateCourseProf(AvailablePart ap)
        {
            ConfigNode n    = new ConfigNode("FS_COURSE");
            string     name = TrainingDatabase.SynonymReplace(ap.name);

            n.AddValue("id", "prof_" + name);
            n.AddValue("name", "Proficiency: " + name);
            n.AddValue("time", 1d + (TrainingDatabase.GetTime(name) * 86400d));
            n.AddValue("expiration", settings.trainingProficiencyExpirationYears * 86400d * 365d);
            n.AddValue("expirationUseStupid", true);

            n.AddValue("conflicts", "TRAINING_proficiency:" + name);

            ConfigNode r = n.AddNode("REWARD");

            r.AddValue("XPAmt", settings.trainingProficiencyXP);
            ConfigNode l = r.AddNode("FLIGHTLOG");

            l.AddValue("0", "TRAINING_proficiency," + name);

            CourseTemplate c = new CourseTemplate(n);

            c.PopulateFromSourceNode();
            OfferedCourses.Add(c);

            ConfigNode n2 = n.CreateCopy();

            n2.SetValue("id", "profR_" + name);
            n2.SetValue("name", "Refresher: " + name);
            n2.SetValue("time", 1d + TrainingDatabase.GetTime(name) * 86400d * settings.trainingProficiencyRefresherTimeMult);
            n2.AddValue("preReqsAny", "expired_TRAINING_proficiency:" + name + ",TRAINING_proficiency:" + name);
            n2.RemoveValue("conflicts");

            r = n2.GetNode("REWARD");
            r.SetValue("XPAmt", "0");
            ConfigNode exp = r.AddNode("EXPIRELOG");

            exp.AddValue("0", "TRAINING_proficiency," + name);

            c = new CourseTemplate(n2);
            c.PopulateFromSourceNode();
            OfferedCourses.Add(c);
        }
示例#5
0
        protected void GenerateCourseProf(AvailablePart ap)
        {
            ConfigNode n    = new ConfigNode("FS_COURSE");
            string     name = TrainingDatabase.SynonymReplace(ap.name);

            n.AddValue("id", "prof_" + name);
            n.AddValue("name", "Proficiency: " + name);
            n.AddValue("time", 1d + (TrainingDatabase.GetTime(name) * 86400d));

            n.AddValue("conflicts", "TRAINING_proficiency:" + name);

            ConfigNode r = n.AddNode("REWARD");

            r.AddValue("XPAmt", settings.trainingProficiencyXP);
            ConfigNode l = r.AddNode("FLIGHTLOG");

            l.AddValue("0", "TRAINING_proficiency," + name);

            CourseTemplate c = new CourseTemplate(n);

            c.PopulateFromSourceNode();
            OfferedCourses.Add(c);
        }