void Start()
        {
            this.Log("Start");
            if (gameSettings.Enabled)
            {
                button.Visible = true;

                CrewRoster crewRoster = HighLogic.CurrentGame.CrewRoster;
                var        knownCrew  = gameSettings.knownCrew;
                foreach (ProtoCrewMember crewMember in crewRoster)
                {
                    if (crewMember.rosterStatus != ProtoCrewMember.RosterStatus.ASSIGNED && knownCrew.ContainsKey(crewMember.name))
                    {
                        this.Log("Deleting crew member: " + crewMember.name);
                        knownCrew.Remove(crewMember.name);
                    }
                }

                GameEvents.onCrewOnEva.Add(OnCrewOnEva);
                GameEvents.onCrewBoardVessel.Add(OnCrewBoardVessel);
                GameEvents.onGameSceneLoadRequested.Add(OnGameSceneLoadRequested);
            }
            else
            {
                button.Visible = false;
                monitoringWindow.SetVisible(false);
                Destroy(this);
            }
        }
Beispiel #2
0
        void Start()
        {
            this.Log("Start, new game = " + gameSettings.IsNewSave);
            button.Visible = true;

            if (gameSettings.IsNewSave)
            {
                this.Log("New save detected!");
                configWindow.SetVisible(true);
                gameSettings.IsNewSave = false;
            }

            AddLifeSupport als = new AddLifeSupport(globalSettings);

            als.run();

            CrewRoster crewRoster = HighLogic.CurrentGame.CrewRoster;
            var        knownCrew  = gameSettings.knownCrew;

            foreach (ProtoCrewMember crewMember in crewRoster)
            {
                if (crewMember.rosterStatus != ProtoCrewMember.RosterStatus.ASSIGNED && knownCrew.ContainsKey(crewMember.name))
                {
                    this.Log("Deleting crew member: " + crewMember.name);
                    knownCrew.Remove(crewMember.name);
                }
            }
        }
        protected override void DrawWindowContents(int windowID)
        {
            scrollPosition = GUILayout.BeginScrollView(scrollPosition);
            GUILayout.BeginVertical();

            double     currentTime = Planetarium.GetUniversalTime();
            CrewRoster crewRoster  = HighLogic.CurrentGame.CrewRoster;

            GUILayout.Label("Number of crew: " + crewRoster.GetList().Count, headerStyle);

            foreach (ProtoCrewMember crewMember in crewRoster)
            {
                string respawnTime = "";
                if (crewMember.rosterStatus == ProtoCrewMember.RosterStatus.MISSING)
                {
                    respawnTime = ", Respawn in " + Utilities.FormatTime(crewMember.UTaR - currentTime);
                }

                string vessel = (crewMember.KerbalRef != null) ? crewMember.KerbalRef.InVessel.vesselName : "Unknown";
                string part   = (crewMember.KerbalRef != null) ? crewMember.KerbalRef.InPart.ToString() : "Unknown";
                GUILayout.Label(crewMember.name + ", " + crewMember.rosterStatus + ", " + vessel + ", " + part + respawnTime, labelStyle);
            }

            GUILayout.EndVertical();
            GUILayout.EndScrollView();

            GUILayout.Space(8);
        }
Beispiel #4
0
        public string GetRandomName(CrewRoster roster)
        {
            int i = 10;
            string name;
            do {
                name = names [Random.Range (0, names.Count)];
                i--;
            } while (i > 0 && NameInRoster (name, roster));

            return name;
        }
Beispiel #5
0
 private bool NameInRoster(string name, CrewRoster roster)
 {
     bool found = false;
     foreach (ProtoCrewMember crew in roster) {
         if (crew.name == name) {
             found = true;
         }
     }
     foreach (ProtoCrewMember crew in roster.Applicants) {
         if (crew.name == name) {
             found = true;
         }
     }
     return found;
 }