private string GetRemainingTimeWithGraceLabel(double timeLeft, double graceTime, string graceTimeDisplay, string inGraceTimeMessage, int effectWhenExpires) { if (effectWhenExpires == 0) { return("<color=#6FFF00>indefinite</color>"); } if (timeLeft > 0) { return(String.Format("<color=#6FFF00>{0} (+{1})</color>", LifeSupportUtilities.SmartDurationDisplay(timeLeft), graceTimeDisplay)); } else { var exceededTime = -timeLeft; if (exceededTime < graceTime / 2) { return(String.Format("<color=#FFE100>{0} ({1})</color>", LifeSupportUtilities.SmartDurationDisplay(graceTime - exceededTime), inGraceTimeMessage)); } else if (exceededTime < graceTime) { return(String.Format("<color=#FFAE00>{0} ({1})</color>", LifeSupportUtilities.SmartDurationDisplay(graceTime - exceededTime), inGraceTimeMessage)); } else // exceededTime > graceTime { return("<color=#FF5E5E>expired</color>"); } } }
private LifeSupportVesselDisplayStat GetEvaKerbalStats(Vessel kerbal) { var lblColor = "FFD966"; var vstat = new LifeSupportVesselDisplayStat(); vstat.VesselName = String.Format("<color=#{0}>{1}</color>", lblColor, kerbal.vesselName); vstat.LastUpdate = kerbal.missionTime; var sitString = "(EVA)"; var remEVATime = LifeSupportScenario.Instance.settings.GetSettings().EVATime - kerbal.missionTime; var timeString = LifeSupportUtilities.SmartDurationDisplay(Math.Max(0, remEVATime)); if (remEVATime > 0) { vstat.SummaryLabel = String.Format( "<color=#3DB1FF>{0}/{1} - </color><color=#9EE4FF>{2}</color><color=#3DB1FF> time remaining</color>" , kerbal.mainBody.bodyName , sitString , timeString.Substring(timeString.IndexOf(':') + 1)); } else { vstat.SummaryLabel = "<color=#FF8585>EVA Time Expired</color>"; } vstat.crew = new List <LifeSupportCrewDisplayStat>(); return(vstat); }
internal void ComputeHome(ProtoCrewMember c, LifeSupportStatus cls) { var crewHomeString = "indefinite"; var lblHome = "6FFF00"; var useHabPenalties = LifeSupportManager.GetNoHomeEffect(c.name) > 0; if (useHabPenalties) { var homeTimeLeft = cls.MaxOffKerbinTime - Planetarium.GetUniversalTime(); UpdateEarliestExpiration(homeTimeLeft); var isScout = c.HasEffect("ExplorerSkill") && homeTimeLeft >= LifeSupportScenario.Instance.settings.GetSettings().ScoutHabTime; var isPermaHab = homeTimeLeft >= LifeSupportScenario.Instance.settings.GetSettings().PermaHabTime; if (isScout || isPermaHab) { crewHomeString = "indefinite"; } else if (homeTimeLeft < 0) { lblHome = "FF5E5E"; crewHomeString = "expired"; } else { crewHomeString = LifeSupportUtilities.SmartDurationDisplay(homeTimeLeft); var secondsPerDay = LifeSupportUtilities.SecondsPerDay(); if (homeTimeLeft < secondsPerDay * 30) //15 days { lblHome = "FFE100"; } if (homeTimeLeft < secondsPerDay * 15) { lblHome = "FFAE00"; } } } HomeLabel = String.Format("<color=#{0}>{1}</color>", lblHome, crewHomeString); }