private void PopulateAspects() { bool attributesPopulated = false; bool skillsPopulated = false; if (Archetype != null) { if (Archetype.AttributeIDs != null) { Dictionary <int, float> distributions = new Dictionary <int, float>(); for (int i = 0; i < Archetype.AttributeIDs.Count; i++) { if (INE.Char.ValidAspect(Archetype.AttributeIDs[i], AspectType.Attributes)) { distributions.Add(Archetype.AttributeIDs[i], 0); } } Attributes = new INEAspectGroup(distributions, AspectType.Attributes); attributesPopulated = true; } if (Archetype.SkillIDs != null) { Dictionary <int, float> distributions = new Dictionary <int, float>(); for (int i = 0; i < Archetype.SkillIDs.Count; i++) { if (INE.Char.ValidAspect(Archetype.SkillIDs[i], AspectType.Skills)) { distributions.Add(Archetype.SkillIDs[i], 0); } } Skills = new INEAspectGroup(distributions, AspectType.Skills); skillsPopulated = true; } } if (!attributesPopulated) { Attributes = new INEAspectGroup(AspectType.Attributes); } if (!skillsPopulated) { Skills = new INEAspectGroup(AspectType.Skills); } }
//Set Aspects is just to connect UI, it does no other initial value setup other than determining the starting posistion of the target slider public void SetAspects(CharacterBuilderUI parent, INEAspectGroup aspectGroup) { if (parent != null && aspectGroup != null) { Parent = parent; AspectGroup = aspectGroup; AspectsUI = new Dictionary <int, AspectItemUI>(); foreach (KeyValuePair <int, INEAspect> aspect in AspectGroup.Aspects) { if (aspect.Value != null) { RectTransform newPrefab = Instantiate(AspectPrefab); AspectsUI.Add(aspect.Key, newPrefab.GetComponent <AspectItemUI>()); newPrefab.transform.SetParent(AspectListParent.transform, false); AspectsUI[aspect.Key].SetAspect(this, aspect.Key, AspectGroup.AspectName(aspect.Key), aspect.Value.TargetDistribution); } } } }