Example #1
0
 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>");
         }
     }
 }
Example #2
0
        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);
        }
Example #3
0
        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);
        }