static void Prefix(ref SimpleInfoScreen __instance, GameObject target) { if (target != null && target.GetComponent <Klei.AI.Traits>() != null && target.GetComponent <KPrefabID>() != null && target.HasTag(GameTags.Creature)) { InitTraitsPanel(__instance); TraitsPanel.gameObject.SetActive(true); TraitsPanel.HeaderLabel.text = "TRAITS"; TraitsDrawer.BeginDrawing(); foreach (Trait trait in target.GetComponent <Klei.AI.Traits>().TraitList) { if (!Traits.AllTraits.IsSupportedTrait(trait.Id)) { continue; } var color = trait.PositiveTrait ? Constants.POSITIVE_COLOR : Constants.NEGATIVE_COLOR; TraitsDrawer.NewLabel($"<color=#{color.ToHexString()}>{trait.Name}</color>").Tooltip(trait.GetTooltip()); } TraitsDrawer.EndDrawing(); } else { TraitsPanel?.gameObject?.SetActive(false); } }
private void RefreshBio() { MinionIdentity component = selectedTarget.GetComponent <MinionIdentity>(); if (!(bool)component) { bioPanel.SetActive(false); } else { bioPanel.SetActive(true); bioPanel.GetComponent <CollapsibleDetailContentPanel>().HeaderLabel.text = UI.DETAILTABS.PERSONALITY.GROUPNAME_BIO; bioDrawer.BeginDrawing().NewLabel(DUPLICANTS.NAMETITLE + component.name).NewLabel((string)DUPLICANTS.ARRIVALTIME + ((float)GameClock.Instance.GetCycle() - component.arrivalTime) + " Cycles") .Tooltip(string.Format(DUPLICANTS.ARRIVALTIME_TOOLTIP, component.arrivalTime, component.name)) .NewLabel(DUPLICANTS.GENDERTITLE + string.Format(Strings.Get($"STRINGS.DUPLICANTS.GENDER.{component.genderStringKey.ToUpper()}.NAME"), component.gender)) .NewLabel(string.Format(Strings.Get($"STRINGS.DUPLICANTS.PERSONALITIES.{component.nameStringKey.ToUpper()}.DESC"), component.name)) .Tooltip(string.Format(Strings.Get(string.Format("STRINGS.DUPLICANTS.DESC_TOOLTIP", component.nameStringKey.ToUpper())), component.name)); MinionResume component2 = selectedTarget.GetComponent <MinionResume>(); if ((Object)component2 != (Object)null && component2.AptitudeBySkillGroup.Count > 0) { bioDrawer.NewLabel(UI.DETAILTABS.PERSONALITY.RESUME.APTITUDES.NAME + "\n").Tooltip(string.Format(UI.DETAILTABS.PERSONALITY.RESUME.APTITUDES.TOOLTIP, selectedTarget.name)); foreach (KeyValuePair <HashedString, float> item in component2.AptitudeBySkillGroup) { if (item.Value != 0f) { SkillGroup skillGroup = Db.Get().SkillGroups.Get(item.Key); bioDrawer.NewLabel(" • " + skillGroup.Name).Tooltip(string.Format(DUPLICANTS.ROLES.GROUPS.APTITUDE_DESCRIPTION, skillGroup.Name, item.Value)); } } } bioDrawer.EndDrawing(); } }
private void RefreshAttributes() { MinionIdentity component = selectedTarget.GetComponent <MinionIdentity>(); if (!(bool)component) { attributesPanel.SetActive(false); } else { attributesPanel.SetActive(true); attributesPanel.GetComponent <CollapsibleDetailContentPanel>().HeaderLabel.text = UI.DETAILTABS.STATS.GROUPNAME_ATTRIBUTES; List <AttributeInstance> list = new List <AttributeInstance>(selectedTarget.GetAttributes().AttributeTable); List <AttributeInstance> list2 = list.FindAll((AttributeInstance a) => a.Attribute.ShowInUI == Attribute.Display.Skill); attributesDrawer.BeginDrawing(); if (list2.Count > 0) { foreach (AttributeInstance item in list2) { attributesDrawer.NewLabel($"{item.Name}: {item.GetFormattedValue()}").Tooltip(item.GetAttributeValueTooltip()); } } attributesDrawer.EndDrawing(); } }
private void RefreshStress() { MinionIdentity identity = (!((UnityEngine.Object)selectedTarget != (UnityEngine.Object)null)) ? null : selectedTarget.GetComponent <MinionIdentity>(); if ((UnityEngine.Object)identity == (UnityEngine.Object)null) { stressPanel.SetActive(false); } else { List <ReportManager.ReportEntry.Note> stressNotes = new List <ReportManager.ReportEntry.Note>(); stressPanel.SetActive(true); stressPanel.GetComponent <CollapsibleDetailContentPanel>().HeaderLabel.text = UI.DETAILTABS.STATS.GROUPNAME_STRESS; ReportManager.ReportEntry reportEntry = ReportManager.Instance.TodaysReport.reportEntries.Find((ReportManager.ReportEntry entry) => entry.reportType == ReportManager.ReportType.StressDelta); stressDrawer.BeginDrawing(); float num = 0f; stressNotes.Clear(); int num2 = reportEntry.contextEntries.FindIndex((ReportManager.ReportEntry entry) => entry.context == identity.GetProperName()); ReportManager.ReportEntry reportEntry2 = (num2 == -1) ? null : reportEntry.contextEntries[num2]; if (reportEntry2 != null) { reportEntry2.IterateNotes(delegate(ReportManager.ReportEntry.Note note) { stressNotes.Add(note); }); stressNotes.Sort((ReportManager.ReportEntry.Note a, ReportManager.ReportEntry.Note b) => a.value.CompareTo(b.value)); for (int i = 0; i < stressNotes.Count; i++) { DetailsPanelDrawer detailsPanelDrawer = stressDrawer; string[] obj = new string[6]; ReportManager.ReportEntry.Note note2 = stressNotes[i]; obj[0] = ((!(note2.value > 0f)) ? string.Empty : UIConstants.ColorPrefixRed); ReportManager.ReportEntry.Note note3 = stressNotes[i]; obj[1] = note3.note; obj[2] = ": "; ReportManager.ReportEntry.Note note4 = stressNotes[i]; obj[3] = Util.FormatTwoDecimalPlace(note4.value); obj[4] = "%"; ReportManager.ReportEntry.Note note5 = stressNotes[i]; obj[5] = ((!(note5.value > 0f)) ? string.Empty : UIConstants.ColorSuffix); detailsPanelDrawer.NewLabel(string.Concat(obj)); float num3 = num; ReportManager.ReportEntry.Note note6 = stressNotes[i]; num = num3 + note6.value; } } stressDrawer.NewLabel(((!(num > 0f)) ? string.Empty : UIConstants.ColorPrefixRed) + string.Format(UI.DETAILTABS.DETAILS.NET_STRESS, Util.FormatTwoDecimalPlace(num)) + ((!(num > 0f)) ? string.Empty : UIConstants.ColorSuffix)); stressDrawer.EndDrawing(); } }
static void Prefix(ref SimpleInfoScreen __instance, GameObject target) { if (target != null && (target.GetComponent <Klei.AI.Traits>() != null || target.GetComponent <AIGeneticTraits>() != null) && (target.HasTag(GameTags.Creature) || target.HasTag(GameTags.Egg))) { InitTraitsPanel(__instance); TraitsPanel.gameObject.SetActive(true); TraitsPanel.HeaderLabel.text = "GENETIC TRAITS"; TraitsDrawer.BeginDrawing(); List <Trait> traits = null; if (target.HasTag(GameTags.Egg) && target.GetComponent <AIGeneticTraits>() != null) { traits = target.GetComponent <AIGeneticTraits>().TraitList; } else { traits = target.GetComponent <Klei.AI.Traits>().TraitList; } foreach (Trait trait in traits) { if (!GeneticTraits.GeneticTraits.IsSupportedTrait(trait.Id)) { continue; } var color = trait.PositiveTrait ? Constants.POSITIVE_COLOR : Constants.NEGATIVE_COLOR; TraitsDrawer.NewLabel($"<color=#{color.ToHexString()}>{trait.Name}</color>").Tooltip(trait.GetTooltip()); var traitComponent = GeneticTraits.GeneticTraits.getTrait(trait.Id); if (traitComponent.CustomDescription) { var textholders = target.GetComponents <StringHolderComponent>(); if (textholders != null) { var text = textholders.Where(x => x.id == trait.Id).First(); if (text.text != null) { TraitsDrawer.NewLabel(text.text); } } } } TraitsDrawer.EndDrawing(); } else { TraitsPanel?.gameObject?.SetActive(false); } }
private void RefreshResume() { MinionResume component = selectedTarget.GetComponent <MinionResume>(); if (!(bool)component) { resumePanel.SetActive(false); } else { resumePanel.SetActive(true); resumePanel.GetComponent <CollapsibleDetailContentPanel>().HeaderLabel.text = string.Format(UI.DETAILTABS.PERSONALITY.GROUPNAME_RESUME, selectedTarget.name.ToUpper()); resumeDrawer.BeginDrawing(); List <Skill> list = new List <Skill>(); foreach (KeyValuePair <string, bool> item2 in component.MasteryBySkillID) { if (item2.Value) { Skill item = Db.Get().Skills.Get(item2.Key); list.Add(item); } } resumeDrawer.NewLabel(UI.DETAILTABS.PERSONALITY.RESUME.MASTERED_SKILLS).Tooltip(UI.DETAILTABS.PERSONALITY.RESUME.MASTERED_SKILLS_TOOLTIP); if (list.Count == 0) { resumeDrawer.NewLabel(" • " + UI.DETAILTABS.PERSONALITY.RESUME.NO_MASTERED_SKILLS.NAME).Tooltip(string.Format(UI.DETAILTABS.PERSONALITY.RESUME.NO_MASTERED_SKILLS.TOOLTIP, selectedTarget.name)); } else { foreach (Skill item3 in list) { string text = string.Empty; foreach (SkillPerk perk in item3.perks) { text = text + " • " + perk.Name + "\n"; } resumeDrawer.NewLabel(" • " + item3.Name).Tooltip(item3.description + "\n" + text); } } resumeDrawer.EndDrawing(); } }
private void RefreshTraits() { MinionIdentity component = selectedTarget.GetComponent <MinionIdentity>(); if (!(bool)component) { traitsPanel.SetActive(false); } else { traitsPanel.SetActive(true); traitsPanel.GetComponent <CollapsibleDetailContentPanel>().HeaderLabel.text = UI.DETAILTABS.STATS.GROUPNAME_TRAITS; traitsDrawer.BeginDrawing(); foreach (Trait trait in selectedTarget.GetComponent <Traits>().TraitList) { traitsDrawer.NewLabel(trait.Name).Tooltip(trait.GetTooltip()); } traitsDrawer.EndDrawing(); } }
private void Refresh() { drawer.BeginDrawing(); RefreshDetails(); drawer.EndDrawing(); }