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; }
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); } } }
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) { }