Exemple #1
0
 static void ReportHistoryEntry(ActionProgramRun ap, HistoryEntry he, string prefix)
 {
     try
     {
         ConditionVariables values = new ConditionVariables();
         ActionVars.HistoryEventVars(values, he, prefix);
         ActionVars.ShipInformation(values, he.ShipInformation, prefix, true);
         ActionVars.SystemVars(values, he.System, prefix);
         ap.Add(values);
     }
     catch { }
 }
Exemple #2
0
        public override bool ExecuteAction(ActionProgramRun ap)
        {
            string res;

            if (ap.functions.ExpandString(UserData, out res) != ConditionFunctions.ExpandResult.Failed)
            {
                StringParser sp = new StringParser(res);

                string prefix  = "SH_";
                string cmdname = sp.NextQuotedWord();

                if (cmdname != null && cmdname.Equals("PREFIX", StringComparison.InvariantCultureIgnoreCase))
                {
                    prefix = sp.NextWord();

                    if (prefix == null)
                    {
                        ap.ReportError("Missing name after Prefix in Ship");
                        return(true);
                    }

                    cmdname = sp.NextQuotedWord();
                }

                if (cmdname != null)
                {
                    EliteDangerous.ShipInformationList lst = ap.actioncontroller.HistoryList.shipinformationlist;

                    ConditionVariables values = new ConditionVariables();

                    if (cmdname.Length > 0)
                    {
                        EliteDangerous.ShipInformation si = lst.GetShipByFullInfoMatch(cmdname);

                        if (si != null)
                        {
                            ActionVars.ShipInformation(values, si, prefix, true);
                        }

                        values[prefix + "Found"] = (si != null) ? "1" : "0";
                    }

                    values[prefix + "Ships"] = lst.Ships.Count.ToString(System.Globalization.CultureInfo.InvariantCulture);

                    int ind = 0;
                    foreach (EliteDangerous.ShipInformation si in lst.Ships.Values)
                    {
                        string p = prefix + "Ships[" + ind.ToString() + "]_";
                        ActionVars.ShipInformation(values, si, p, false);
                        ind++;
                    }

                    ap.Add(values);
                }
                else
                {
                    ap.ReportError("Missing ship name in Ship");
                }
            }
            else
            {
                ap.ReportError(res);
            }

            return(true);
        }