Пример #1
0
        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);
            }
        }
Пример #2
0
    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();
        }
    }
Пример #4
0
    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();
        }
    }
Пример #5
0
 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();
        }
    }
Пример #7
0
    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();
 }