private void Populate() { Character currentCharacter = SelectedCharacter(); if (currentCharacter == null) { WindowTitle.text = "No Character Selected"; return; } if (edit) { WindowTitle.text = "Edit " + currentCharacter.Name; } else { WindowTitle.text = "View " + currentCharacter.Name; } Name.text = currentCharacter.Name; MaxHP.text = currentCharacter.MaxHP.ToString(); Speed.text = currentCharacter.Speed.ToString(); Experience.text = currentCharacter.Experience.ToString(); if (!edit) { Name.interactable = false; MaxHP.interactable = false; Speed.interactable = false; Experience.interactable = false; Abilities.interactable = false; Skills.interactable = false; Modifiers.interactable = false; } else { Name.interactable = true; MaxHP.interactable = true; Speed.interactable = true; Experience.interactable = true; Abilities.interactable = true; Skills.interactable = true; Modifiers.interactable = true; } if (Abilities == null) { return; } string[] abilities = currentCharacter.GetAbilities(); foreach (string ability in abilities) { InputRow instance = Abilities.AddRow(); instance.RowElements[0].GetComponent <Text>().text = ability; instance.RowElements[1].GetComponent <InputField>().text = currentCharacter.GetAbilityBase(ability).ToString(); instance.RowElements[2].GetComponent <Toggle>().isOn = currentCharacter.HasProficiency(ability); if (!edit) { instance.RowElements[1].GetComponent <InputField>().interactable = false; instance.RowElements[2].GetComponent <Toggle>().interactable = false; instance.interactable = false; } } if (Skills == null) { return; } string[] skills = currentCharacter.GetSkills(); foreach (string skill in skills) { InputRow instance = Skills.AddRow(); instance.RowElements[0].GetComponent <Text>().text = skill; instance.RowElements[1].GetComponent <InputField>().text = currentCharacter.GetSkillType(skill); instance.RowElements[2].GetComponent <Toggle>().isOn = currentCharacter.HasProficiency(skill); if (!edit) { instance.RowElements[1].GetComponent <InputField>().interactable = false; instance.RowElements[2].GetComponent <Toggle>().interactable = false; instance.interactable = false; } } if (Modifiers == null) { return; } string[] modifierTypes = currentCharacter.Modifiers.GetTypes(); foreach (string type in modifierTypes) { foreach (Modifier mod in currentCharacter.Modifiers.Get(type)) { InputRow instance = Modifiers.AddRow(); instance.RowElements[0].GetComponent <InputField>().SetTextWithoutNotify(mod.Name); instance.RowElements[1].GetComponent <InputField>().SetTextWithoutNotify(mod.Type); instance.RowElements[2].GetComponent <Toggle>().isOn = mod.Active; instance.RowElements[3].GetComponent <InputField>().SetTextWithoutNotify(mod.Expr); instance.RowElements[4].GetComponent <InputField>().SetTextWithoutNotify(mod.Condition); if (!edit) { instance.RowElements[0].GetComponent <InputField>().interactable = false; instance.RowElements[1].GetComponent <InputField>().interactable = false; instance.RowElements[2].GetComponent <Toggle>().interactable = false; instance.RowElements[3].GetComponent <InputField>().interactable = false; instance.RowElements[4].GetComponent <InputField>().interactable = false; instance.interactable = false; } } } }