Esempio n. 1
0
        public KerbalTrait(Kerbal k, KerbalPortrait p)
        {
            portrait  = p;
            crew      = k;
            protoCrew = k.protoCrewMember;

            if (PortraitStats.ctiOk)
            {
                trait     = CTIWrapper.CTI.getTrait(protoCrew.experienceTrait.Config.Name);
                iconColor = (trait.Color != null) ? (Color)trait.Color : XKCDColors.White;
            }

            GameObject hover = p.hoverObjectsContainer;
            GameObject role  = hover.transform.GetChild(2).gameObject;

            setupGameObjects(role, hover, protoCrew);
            addEVAListener();

            if (protoCrew.experienceTrait.Config.Name == "Tourist")
            {
                touristUpdate();
            }

            cachedTooltip = portrait.tooltip.descriptionString;
        }
Esempio n. 2
0
        private void LateUpdate()
        {
            if (!FlightGlobals.ready)
            {
                return;
            }

            if (FlightGlobals.ActiveVessel == null)
            {
                return;
            }

            if (FlightGlobals.ActiveVessel.isEVA)
            {
                return;
            }

            if (reload)
            {
                reload = false;

                var crew = KerbalPortraitGallery.Instance.Portraits;

                for (int i = 0; i < crew.Count; i++)
                {
                    KerbalPortrait p = crew[i];

                    if (p == null)
                    {
                        continue;
                    }

                    Kerbal k = p.crewMember;

                    if (k == null)
                    {
                        return;
                    }

                    if (currentCrew.Contains(p.crewMemberName))
                    {
                        continue;
                    }

                    if (k.state == Kerbal.States.DEAD)
                    {
                        continue;
                    }

                    KerbalTrait K = new KerbalTrait(k, p);

                    if (K == null)
                    {
                        continue;
                    }

                    currentCrew.Add(p.crewMemberName, K);
                }
            }
        }