protected void CreateVesselListParameter()
        {
            if (vesselList.Any())
            {
                if (vesselList.Count() == 1)
                {
                    vesselListParam = new ParameterDelegate <Vessel>(hideVesselName ? "" : Localizer.Format("#cc.param.VesselParameterGroup.default", ContractVesselTracker.GetDisplayName(vesselList.First())), v =>
                    {
                        bool check = VesselCanBeConsidered(v);
                        if (!hideVesselName)
                        {
                            vesselListParam.SetTitle(Localizer.Format((FlightGlobals.ActiveVessel == v && trackedVessel != null ? "#cc.param.VesselParameterGroup.default" : "#cc.param.VesselParameterGroup.trackedVessel"),
                                                                      ContractVesselTracker.GetDisplayName(vesselList.First())));
                        }
                        return(check);
                    });
                    vesselListParam.Optional     = true;
                    vesselListParam.fakeOptional = true;

                    AddParameter(vesselListParam);
                }
                else
                {
                    vesselListParam = new ParameterDelegate <Vessel>(hideVesselName ? "" : Localizer.GetStringByTag("#cc.param.VesselParameterGroup.anyVesselListEmpty"), v =>
                    {
                        bool check = VesselCanBeConsidered(v);
                        if (!hideVesselName)
                        {
                            if (check)
                            {
                                vesselListParam.SetTitle(Localizer.Format("#cc.param.VesselParameterGroup.anyVesselList", ParameterDelegate <Vessel> .GetDelegateText(vesselListParam)));
                            }
                            else
                            {
                                Localizer.GetStringByTag("#cc.param.VesselParameterGroup.anyVesselListEmpty");
                            }
                        }
                        return(check);
                    });
                    vesselListParam.Optional     = true;
                    vesselListParam.fakeOptional = true;

                    foreach (string vessel in vesselList)
                    {
                        ContractParameter childParam = new ParameterDelegate <Vessel>(ContractVesselTracker.GetDisplayName(vessel), v => false);
                        vesselListParam.AddParameter(childParam);
                    }

                    AddParameter(vesselListParam);
                }
            }
        }
        protected override string GetParameterTitle()
        {
            // Set the first part of the output
            string output;

            if (!string.IsNullOrEmpty(title))
            {
                output = title;
            }
            else
            {
                // Set the vessel name
                if ((waiting || state == ParameterState.Complete) && trackedVessel != null)
                {
                    output = Localizer.Format("#cc.param.VesselParameterGroup.default", trackedVessel.vesselName);
                }
                else if (!string.IsNullOrEmpty(define))
                {
                    output = Localizer.Format("#cc.param.VesselParameterGroup.newVessel", define);
                }
                else if (vesselList.Any())
                {
                    output = Localizer.Format("#cc.param.VesselParameterGroup.default",
                                              LocalizationUtil.LocalizeList <string>(LocalizationUtil.Conjunction.OR, vesselList.AsEnumerable(), vesselName =>
                    {
                        if (ContractVesselTracker.Instance != null)
                        {
                            return(ContractVesselTracker.GetDisplayName(vesselName));
                        }
                        else
                        {
                            LoggingUtil.LogWarning(this, "Unable to get vessel display name for '{0}' - ContractVesselTracker is null.  This is likely caused by another ScenarioModule crashing, preventing others from loading.", vesselName);
                            return(vesselName);
                        }
                    }
                                                                                     ));
                }
                else
                {
                    output = Localizer.GetStringByTag("#cc.param.VesselParameterGroup.anyVessel");
                }

                // If we're complete and a custom title hasn't been provided, try to get a better title
                if (state == ParameterState.Complete && ParameterCount == 1 && trackedVessel != null)
                {
                    output = Localizer.Format("#cc.param.VesselParameterGroup.complete", trackedVessel.vesselName, GetParameter(0).Title);
                }
            }

            return(output);
        }
        protected override string GetParameterTitle()
        {
            string output = null;

            if (string.IsNullOrEmpty(title))
            {
                if (vesselIdentifier != null)
                {
                    if (countMax == 1)
                    {
                        output = "Kill no Kerbals";
                    }
                    else
                    {
                        output = "Kill no more than " + countMax + " Kerbals";
                    }
                    output += " on vessel " + ContractVesselTracker.GetDisplayName(vesselIdentifier.identifier);
                }
                else if (!kerbals.Any())
                {
                    if (countMax == 1)
                    {
                        output = "Kill no Kerbals";
                    }
                    else
                    {
                        output = "Kill no more than " + countMax + " Kerbals";
                    }
                }
                else
                {
                    output = "Do not kill";
                    if (state != ParameterState.Incomplete || ParameterCount == 1)
                    {
                        if (ParameterCount == 1)
                        {
                            hideChildren = true;
                        }

                        output += ": " + ParameterDelegate <ProtoCrewMember> .GetDelegateText(this);
                    }
                }
            }
            else
            {
                output = title;
            }

            return(output);
        }
        protected override string GetParameterTitle()
        {
            string output = "";

            if (string.IsNullOrEmpty(title))
            {
                if (vessels.Count == 1)
                {
                    output = ContractVesselTracker.GetDisplayName(vessels[0]) + ": Not destroyed";
                }
                else if (vessels.Count != 0)
                {
                    output = "Vessels not destroyed: ";
                    bool first = true;
                    foreach (string vessel in vessels)
                    {
                        output += (first ? "" : ", ") + ContractVesselTracker.GetDisplayName(vessel);
                        first   = false;
                    }
                }
                else if (Parent is VesselParameterGroup && ((VesselParameterGroup)Parent).VesselList.Any())
                {
                    IEnumerable <string> vesselList = ((VesselParameterGroup)Parent).VesselList;
                    if (vesselList.Count() == 1)
                    {
                        output = ContractVesselTracker.GetDisplayName(vesselList.First()) + ": Not destroyed";
                    }
                    else
                    {
                        output = "Vessels not destroyed: ";
                        bool first = true;
                        foreach (string vessel in vesselList)
                        {
                            output += (first ? "" : ", ") + ContractVesselTracker.GetDisplayName(vessel);
                            first   = false;
                        }
                    }
                }
                else
                {
                    output = "No vessels destroyed";
                }
            }
            else
            {
                output = title;
            }
            return(output);
        }
Exemplo n.º 5
0
        protected override string GetParameterTitle()
        {
            string output;

            if (string.IsNullOrEmpty(title))
            {
                output = "Vessel: Not " + ContractVesselTracker.GetDisplayName(vesselKey);
            }
            else
            {
                output = title;
            }

            return(output);
        }
Exemplo n.º 6
0
        protected override string GetParameterTitle()
        {
            string output;

            if (string.IsNullOrEmpty(title))
            {
                output = Localizer.Format("#cc.param.IsNotVessel", ContractVesselTracker.GetDisplayName(vesselKey));
            }
            else
            {
                output = title;
            }

            return(output);
        }
Exemplo n.º 7
0
        protected override string GetParameterTitle()
        {
            string output;

            if (string.IsNullOrEmpty(title))
            {
                output  = (hasConnectivity ? "Direct connection to: " : "No direct connection to: ");
                output += ContractVesselTracker.GetDisplayName(vesselKey);
            }
            else
            {
                output = title;
            }

            return(output);
        }
Exemplo n.º 8
0
        protected override string GetParameterTitle()
        {
            string output = "";

            if (string.IsNullOrEmpty(title))
            {
                if (Parent is VesselParameterGroup)
                {
                    output = Localizer.Format("#cc.param.Rendezvous.1", vessels.Count > 0 ? ContractVesselTracker.GetDisplayName(vessels[0]) : Localizer.GetStringByTag("#cc.param.vessel.Any"));
                }
                else
                {
                    output = Localizer.Format("#cc.param.Rendezvous.2", ContractVesselTracker.GetDisplayName(vessels[0]), vessels.Count > 1 ? ContractVesselTracker.GetDisplayName(vessels[1]) : Localizer.GetStringByTag("#cc.param.vessel.any"));
                }
            }
            else
            {
                output = title;
            }
            return(output);
        }
Exemplo n.º 9
0
        protected override string GetParameterTitle()
        {
            string output = "";

            if (string.IsNullOrEmpty(title))
            {
                if (Parent is VesselParameterGroup)
                {
                    output = "Rendezvous with: ";
                    if (vessels.Count > 0)
                    {
                        output += ContractVesselTracker.GetDisplayName(vessels[0]);
                    }
                    else
                    {
                        output += "Any vessel";
                    }
                }
                else
                {
                    output = "Rendezvous: " + ContractVesselTracker.GetDisplayName(vessels[0]) + " and ";
                    if (vessels.Count > 1)
                    {
                        output += ContractVesselTracker.GetDisplayName(vessels[1]);
                    }
                    else
                    {
                        output += "any vessel";
                    }
                }
            }
            else
            {
                output = title;
            }
            return(output);
        }
Exemplo n.º 10
0
        protected override string GetParameterTitle()
        {
            string output = "";

            if (string.IsNullOrEmpty(title))
            {
                if (vessels.Count == 1)
                {
                    output = Localizer.Format("#cc.param.VesselNotDestroyed", ContractVesselTracker.GetDisplayName(vessels[0]));
                }
                else if (vessels.Count != 0)
                {
                    output = Localizer.Format("#cc.param.VesselNotDestroyed", LocalizationUtil.LocalizeList <string>(LocalizationUtil.Conjunction.OR, vessels, v => ContractVesselTracker.GetDisplayName(v)));
                }
                else if (Parent is VesselParameterGroup && ((VesselParameterGroup)Parent).VesselList.Any())
                {
                    IEnumerable <string> vesselList = ((VesselParameterGroup)Parent).VesselList;
                    if (vesselList.Count() == 1)
                    {
                        output = Localizer.Format("#cc.param.VesselNotDestroyed", ContractVesselTracker.GetDisplayName(vesselList.First()));
                    }
                    else
                    {
                        output = Localizer.Format("#cc.param.VesselNotDestroyed", LocalizationUtil.LocalizeList <string>(LocalizationUtil.Conjunction.OR, vesselList, v => ContractVesselTracker.GetDisplayName(v)));
                    }
                }
                else
                {
                    output = Localizer.GetStringByTag("#cc.param.VesselNotDestroyed.any");
                }
            }
            else
            {
                output = title;
            }
            return(output);
        }
Exemplo n.º 11
0
        protected override string GetParameterTitle()
        {
            string output;

            if (string.IsNullOrEmpty(title))
            {
                output = Localizer.Format(hasConnectivity ? "#cc.remotetech.param.VesselConnectivity" : "#cc.remotetech.param.VesselConnectivity.x", ContractVesselTracker.GetDisplayName(vesselKey));
            }
            else
            {
                output = title;
            }

            return(output);
        }
        protected override string GetParameterTitle()
        {
            string output = null;

            if (string.IsNullOrEmpty(title))
            {
                if (vesselIdentifier != null)
                {
                    output = Localizer.Format("#cc.param.KerbalDeaths.vessel", countMax - 1, ContractVesselTracker.GetDisplayName(vesselIdentifier.identifier));
                }
                else if (!kerbals.Any())
                {
                    output = Localizer.Format("#cc.param.KerbalDeaths.generic", countMax - 1);
                }
                else
                {
                    output = Localizer.Format("#cc.param.KerbalDeaths.specific");
                    if (state != ParameterState.Incomplete || ParameterCount == 1)
                    {
                        if (ParameterCount == 1)
                        {
                            output       = StringBuilderCache.Format("{0}: {1}", output, ParameterDelegate <ProtoCrewMember> .GetDelegateText(this));
                            hideChildren = true;
                        }
                    }
                }
            }
            else
            {
                output = title;
            }

            return(output);
        }
        protected override string GetParameterTitle()
        {
            // Set the first part of the output
            string output;

            if (!string.IsNullOrEmpty(title))
            {
                output = title;
            }
            else
            {
                // Set the vessel name
                output = "Vessel: ";
                if ((waiting || state == ParameterState.Complete) && trackedVessel != null)
                {
                    output += trackedVessel.vesselName;
                }
                else if (!string.IsNullOrEmpty(define))
                {
                    output += define + " (new)";
                }
                else if (vesselList.Any())
                {
                    bool first = true;
                    foreach (string vesselName in vesselList)
                    {
                        if (!first)
                        {
                            output += " OR ";
                        }
                        if (ContractVesselTracker.Instance != null)
                        {
                            output += ContractVesselTracker.GetDisplayName(vesselName);
                        }
                        else
                        {
                            LoggingUtil.LogWarning(this, "Unable to get vessel display name for '" + vesselName + "' - ContractVesselTracker is null.  This is likely caused by another ScenarioModule crashing, preventing others from loading.");
                            output += vesselName;
                        }
                        first = false;
                    }
                }
                else
                {
                    output += "Any";
                }
            }

            // If we're complete and a custom title hasn't been provided, try to get a better title
            if (state == ParameterState.Complete && string.IsNullOrEmpty(title))
            {
                if (ParameterCount == 1)
                {
                    output = "";
                    if (trackedVessel != null)
                    {
                        output += "Vessel: " + trackedVessel.vesselName + ": ";
                    }
                    output += GetParameter(0).Title;
                }
            }

            return(output);
        }
        protected void CreateVesselListParameter()
        {
            if (vesselList.Any())
            {
                if (vesselList.Count() == 1)
                {
                    vesselListParam = new ParameterDelegate <Vessel>(hideVesselName ? "" : "Vessel: " + ContractVesselTracker.GetDisplayName(vesselList.First()), v =>
                    {
                        bool check = VesselCanBeConsidered(v);
                        if (!hideVesselName)
                        {
                            vesselListParam.SetTitle((FlightGlobals.ActiveVessel == v && trackedVessel != null ? "" : "Tracked ") + "Vessel: " + ContractVesselTracker.GetDisplayName(vesselList.First()));
                        }
                        return(check);
                    });
                    vesselListParam.Optional     = true;
                    vesselListParam.fakeOptional = true;

                    AddParameter(vesselListParam);
                }
                else
                {
                    vesselListParam = new ParameterDelegate <Vessel>(hideVesselName ? "" : "Vessel: Any of the following:", v =>
                    {
                        bool check = VesselCanBeConsidered(v);
                        if (!hideVesselName)
                        {
                            vesselListParam.SetTitle("Vessel: Any of the following:" + (check ? " " + ParameterDelegate <Vessel> .GetDelegateText(vesselListParam) : ""));
                        }
                        return(check);
                    });
                    vesselListParam.Optional     = true;
                    vesselListParam.fakeOptional = true;

                    foreach (string vessel in vesselList)
                    {
                        ContractParameter childParam = new ParameterDelegate <Vessel>(ContractVesselTracker.GetDisplayName(vessel), v => false);
                        vesselListParam.AddParameter(childParam);
                    }

                    AddParameter(vesselListParam);
                }
            }
        }
 protected void CreateDelegates()
 {
     foreach (string vessel in vessels)
     {
         AddParameter(new ParameterDelegate <string>("Target: " + (ContractVesselTracker.Instance != null ? ContractVesselTracker.GetDisplayName(vessel) : vessel),
                                                     ignored => CheckTargetDestroyed(vessel), ParameterDelegateMatchType.VALIDATE_ALL, true));
     }
 }