Esempio n. 1
0
        private void LoadConfigs()
        {
            if (_configsLoaded)
            {
                return;
            }
            _configsLoaded      = true;
            UpdateVanillaValues = Config.Bind(
                CommonName,
                CommonName + " UpdateVanillaValues",
                true,
                "Write default values in descriptions of settings. Will flip to false after doing it once.");

            BodyDefinition = new CustomBodyDefinition(this, CommonName);


            var skills = SurvivorDef.bodyPrefab.GetComponents <GenericSkill>();

            foreach (var genericSkill in skills)
            {
                foreach (var variant in genericSkill.skillFamily.variants)
                {
                    if (Skills.ContainsKey(variant.skillDef.skillIndex))
                    {
                        continue;
                    }

                    var skill = new CustomSkillDefinition(this, variant.skillDef.skillIndex,
                                                          Regex.Replace(Language.english.GetLocalizedStringByToken(variant.skillDef.skillNameToken),
                                                                        @"[^A-Za-z]+", string.Empty)
                                                          );
                    Skills.Add(skill.SkillIndex, skill);
                }
            }
        }
        protected CustomSurvivor(SurvivorIndex index, string characterName, string survivorNameToken,
                                 bool updateVanillaValues, ConfigFile configFile, ManualLogSource logger)
        {
            _updateVanillaValues = updateVanillaValues;
            SurvivorIndex        = index;
            Config = configFile;
            Logger = logger;

            CharacterName  = characterName;
            BodyDefinition = new CustomBodyDefinition(this, characterName, survivorNameToken);
            BodyDefinition.OnFieldChanged += OnBodyChangedPlaceholder;
        }
Esempio n. 3
0
        public void InitBaseConfigValues()
        {
            PrimarySkill   = new CustomSkillDefinition(this, PrimarySkillName);
            SecondarySkill = new CustomSkillDefinition(this, SecondarySkillName);
            UtilitySkill   = new CustomSkillDefinition(this, UtilitySkillName);
            SpecialSkill   = new CustomSkillDefinition(this, SpecialSkillName);
            foreach (string skillName in ExtraSkillNames)
            {
                ExtraSkills.Add(new CustomSkillDefinition(this, skillName));
            }

            BodyDefinition = new CustomBodyDefinition(this, CharacterName);
        }
        private void OnBodyChanged(CustomBodyDefinition skillDefinition, IFieldChanger changed)
        {
            CharacterBody body = SurvivorDef.bodyPrefab.GetComponent <CharacterBody>();

            changed.Apply(body);

            GameObject[] liveBodies = GameObject.FindGameObjectsWithTag("Player");
            foreach (var liveBody in liveBodies)
            {
                if (liveBody.name == SurvivorDef.bodyPrefab.name + "(Clone)")
                {
                    var liveChar = liveBody.GetComponent <CharacterBody>();
                    changed.Apply(liveChar);
                    liveChar.RecalculateStats();

                    Logger.LogInfo("Recalculated live body stats of " + SurvivorDef.name);
                }
            }
        }
Esempio n. 5
0
        private void OnBodyChanged(CustomBodyDefinition skillDefinition, IFieldChanger changed)
        {
            var prefabBody = SurvivorDef.bodyPrefab.GetComponent <CharacterBody>();

            changed.Apply(prefabBody);
            Logger.LogInfo(SurvivorDef.cachedName + "'s body changed.");

            foreach (var masterController in PlayerCharacterMasterController.instances)
            {
                var body = masterController.master.GetBody();
                if (body.name != SurvivorDef.bodyPrefab.name + "(Clone)")
                {
                    continue;
                }
                changed.Apply(body);
                body.RecalculateStats();

                Logger.LogInfo("Recalculated live body stats of " + SurvivorDef.cachedName);
            }
        }
 private void OnBodyChangedPlaceholder(CustomBodyDefinition skillDefinition, IFieldChanger changed)
 {
 }