示例#1
0
        public void InitTraits()
        {
            if (!Loaded)
            {
                Loaded = true;

                ConfigNode[] configNodes = GameDatabase.Instance.GetConfigNodes("EXPERIENCE_TRAIT");
                for (int i = 0; i < configNodes.Count(); i++)
                {
                    ExperienceTraitConfig experienceTraitConfig = ExperienceTraitConfig.Create(configNodes[i]);
                    if (experienceTraitConfig != null)
                    {
                        TraitTitle tt;
                        if (experienceTraitConfig.Name != null &&
                            experienceTraitConfig.Name != "Tourist" && experienceTraitConfig.Name != "Unknown")

                        {
                            if (experienceTraitConfig.Title != null)
                            {
                                tt = new TraitTitle(experienceTraitConfig.Name, experienceTraitConfig.Title);
                            }
                            else
                            {
                                tt = new TraitTitle(experienceTraitConfig.Name, experienceTraitConfig.Name);
                            }
                            traitTitles.Add(experienceTraitConfig.Name, tt);
                        }
                    }
                }
            }
        }
示例#2
0
        /// <summary>
        /// Get all the kerbal classes in the game. Doesn't include "tourist", since technically
        /// speaking that's not a class.
        /// </summary>
        /// <returns></returns>
        private static HashSet <string> FindKerbalClasses()
        {
            HashSet <string>       kerbalClasses = new HashSet <string>();
            ExperienceSystemConfig systemConfig  = new ExperienceSystemConfig();

            for (int traitIndex = 0; traitIndex < systemConfig.Categories.Count; ++traitIndex)
            {
                ExperienceTraitConfig traitConfig = systemConfig.Categories[traitIndex];
                Logging.Log("Adding kerbal class: " + traitConfig.Name);
                kerbalClasses.Add(traitConfig.Name);
            }
            kerbalClasses.Add(TouristClass); // since the game doesn't list "tourist" as an actual class
            return(kerbalClasses);
        }
示例#3
0
        /// <summary>
        /// Get all kerbal effect types.
        /// </summary>
        /// <param name="kerbalClasses"></param>
        /// <returns></returns>
        private static HashSet <string> FindKerbalEffects()
        {
            HashSet <string>       kerbalEffects = new HashSet <string>();
            ExperienceSystemConfig systemConfig  = new ExperienceSystemConfig();

            for (int traitIndex = 0; traitIndex < systemConfig.Categories.Count; ++traitIndex)
            {
                ExperienceTraitConfig traitConfig = systemConfig.Categories[traitIndex];
                if (traitConfig.Effects == null)
                {
                    continue;
                }
                for (int effectIndex = 0; effectIndex < traitConfig.Effects.Count; ++effectIndex)
                {
                    ExperienceEffectConfig effectConfig = traitConfig.Effects[effectIndex];
                    if (!kerbalEffects.Contains(effectConfig.Name))
                    {
                        Logging.Log("Adding kerbal effect: " + effectConfig.Name);
                        kerbalEffects.Add(effectConfig.Name);
                    }
                }
            }
            return(kerbalEffects);
        }
示例#4
0
        protected string TraitTitle(string traitName)
        {
            ExperienceTraitConfig config = KerbalRoster.ExperienceConfig.Categories.Where(c => c.Name == traitName).FirstOrDefault();

            return(config != null ? config.Title : traitName);
        }
示例#5
0
        protected string TraitTitle(string traitName)
        {
            ExperienceTraitConfig config = GameDatabase.Instance.ExperienceConfigs.Categories.Where(c => c.Name == traitName).FirstOrDefault();

            return(config != null ? config.Title : traitName);
        }