public void FillList(IEnumerable <IScienceExperiment> list, ScienceTerminal.DetailPage detailPage)
    {
        int i = 0;

        foreach (var experiment in list)
        {
            if (i >= MissionList.childCount)
            {
                var newB  = GameObject.Instantiate(MissionList.GetChild(0), MissionList);
                var _this = this;
                newB.GetComponent <Button>().onClick.AddListener(() => { _this.FillDetail(experiment); });
            }
            Transform child = MissionList.GetChild(i);
            child.gameObject.SetActive(true);
            child.GetChild(0).GetComponent <Image>().sprite = experiment.Experiment.Sprite();
            child.GetChild(1).GetComponent <Text>().text    = experiment.Title();
            child.GetChild(2).gameObject.SetActive(experiment.Status == ExperimentStatus.Completed);
            child.GetChild(3).gameObject.SetActive(experiment.Status == ExperimentStatus.Accepted || experiment.Status == ExperimentStatus.ReadyForCompletion);
            i++;
        }
        for (int j = i; j < MissionList.childCount; j++)
        {
            MissionList.GetChild(j).gameObject.SetActive(false);
        }

        CurrentPageHeaderText.text = detailPage.ToString().ToUpperInvariant();
    }
示例#2
0
        private void Awake()
        {
            missionWorkers      = new Dictionary <Mission, MissionWorker>();
            notificationManager = NotificationManager.Instance;

            if (GameSettings.NewGame)
            {
                InitDefaultState();
            }
            else
            {
                LoadState();
            }

            dayChangedAction += DayChanged;
            GameTimeDayTickEvent.AddListener(dayChangedAction);

            onTickAction += onTick;
            GameTimeTickEvent.AddListener(onTickAction);

            employeeFiredAction += onEmployeeFired;
            EmployeeFiredEvent.AddListener(employeeFiredAction);

            missionList = ModHolder.Instance.GetMissionList();
            if (missionList == null)
            {
                missionList = ContentHub.Instance.DefaultMissionList;
            }
        }
示例#3
0
        private void Display()
        {
            MissionList ml = last_he?.MissionList;

            missionListCurrent.Clear();
            missionListPrevious.Clear();

            if (ml != null)
            {
                DateTime hetime = last_he.EventTimeUTC;

                List <MissionState> mcurrent = ml.GetAllCurrentMissions(hetime);

                foreach (MissionState ms in mcurrent)
                {
                    missionListCurrent.Add(ms, false);
                }

                missionListCurrent.Finish();

                List <MissionState> mprev = ml.GetAllExpiredMissions(hetime);

                var previousRows = new List <DataGridViewRow>(mprev.Count);

                foreach (MissionState ms in mprev)
                {
                    missionListPrevious.Add(ms, true);
                }

                missionListPrevious.Finish();
            }
        }
示例#4
0
        private void showMissionsForFactionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int row = dataGridViewFactions.RightClickRow;

            if (row >= 0)
            {
                FactionStatistics fs = dataGridViewFactions.Rows[row].Tag as FactionStatistics;

                ExtendedControls.ConfigurableForm f    = new ExtendedControls.ConfigurableForm();
                MissionListUserControl            mluc = new MissionListUserControl();

                mluc.Clear();
                MissionList ml = last_he?.MissionList;

                DateTime startdateutc = startDateTime.Checked ? EDDConfig.Instance.ConvertTimeToUTCFromSelected(startDateTime.Value) : new DateTime(1980, 1, 1);
                DateTime enddateutc   = endDateTime.Checked ? EDDConfig.Instance.ConvertTimeToUTCFromSelected(endDateTime.Value) : new DateTime(8999, 1, 1);

                if (ml != null)
                {
                    foreach (MissionState ms in ml.Missions.Values)
                    {
                        if (ms.State == MissionState.StateTypes.Completed && ms.Completed != null)
                        {
                            if (DateTime.Compare(ms.Completed.EventTimeUTC, startdateutc) >= 0 &&
                                DateTime.Compare(ms.Completed.EventTimeUTC, enddateutc) <= 0)
                            {
                                var faction = ms.Mission.Faction;
                                if (faction == fs.Name)
                                {
                                    mluc.Add(ms, true);
                                }
                            }
                        }
                    }

                    mluc.Finish();
                }

                string keyname = "UserControlFactionsShowMission";
                mluc.dataGridView.LoadColumnSettings(keyname, (a) => EliteDangerousCore.DB.UserDatabase.Instance.GetSettingInt(a, int.MinValue),
                                                     (b) => EliteDangerousCore.DB.UserDatabase.Instance.GetSettingDouble(b, double.MinValue));

                f.Add(new ExtendedControls.ConfigurableForm.Entry(mluc, "Grid", "", new System.Drawing.Point(3, 30), new System.Drawing.Size(800, 400), null)
                {
                    anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom
                });

                f.AddOK(new Point(800 - 100, 460), "OK", anchor: AnchorStyles.Right | AnchorStyles.Bottom);
                f.InstallStandardTriggers();

                f.AllowResize = true;

                f.ShowDialogCentred(FindForm(), FindForm().Icon, "Missions for ".T(EDTx.UserControlFactions_MissionsFor) + fs.Name, closeicon: true);

                mluc.dataGridView.SaveColumnSettings(keyname, (a, b) => EliteDangerousCore.DB.UserDatabase.Instance.PutSettingInt(a, b),
                                                     (c, d) => EliteDangerousCore.DB.UserDatabase.Instance.PutSettingDouble(c, d));
            }
        }
示例#5
0
        public void MissionListTest()
        {
            var missionList = new MissionList();

            for (int i = 0; i < missionList.GetMissionList().Count; i++)
            {
                Assert.AreEqual(typeof(string), missionList.GetMissionList()[i].Item1.GetType());
                Assert.IsInstanceOf(typeof(IMissions), missionList.GetMissionList()[i].Item2);
            }
        }
示例#6
0
        private void Awake()
        {
            missionList = ModHolder.Instance.GetMissionList();

            if (missionList == null)
            {
                missionList = ContentHub.Instance.DefaultMissionList;
            }

            findForceAppearMissions();
        }
示例#7
0
 public void Init(MissionListItem item)
 {
     listParent    = transform.parent.GetComponent <MissionList>();
     mission.text  = "Mission Name: " + item.missionName;
     payloads.text = "Number Of Payloads: " + item.numPayloads;
     rocket.text   = "Rocket Name: " + item.rocketName;
     country.text  = "Country of Origin: " + item.originCountry;
     ships         = item.ships;
     image.sprite  = item.icon;
     button.onClick.AddListener(LoadShips);
     activeCoroutines = coroutines = new List <Coroutine>();
 }
示例#8
0
 public FilterEntry(MissionState m)
 {
     Type = EntryType.Mission;
     Name = m.Mission.Name + ":" + m.Mission.Faction;
     if (m.Mission.Target.Length > 0)
     {
         Name += ":" + m.Mission.Target;
     }
     starttime     = m.Mission.EventTimeUTC;
     endtime       = m.Mission.Expiry;           // NOTE expiry time of mission, not used however to gate below, we use Mission
     MissionKey    = MissionList.Key(m.Mission);
     TargetFaction = m.Mission.TargetFaction;
 }
示例#9
0
        internal PlayerModel()
        {
            CurrentCargo = new CargoStorage();
            Missions	= new MissionList();
            Statistics	= new PlayerStatistics();

            LegalRecords = new LegalRecords();
            foreach (var allegiance in Enums.All_Allegiances)
                LegalRecords.Add(allegiance, new LegalRecord());

            MilitaryRanks = new MilitaryRecords { { Allegiance.Alliance, new MilitaryRecord() }, { Allegiance.Empire, new MilitaryRecord() } };
            IsPlayer = true;
        }
示例#10
0
        public async Task ShowUploadOverlay(MissionBase content)
        {
            var missions =
                await MissionList.GetMyMissions(DomainEvilGlobal.SelectedGame.ActiveGame);

            var vm = _uploadViewModelFactory();

            vm.ExistingMissions = missions.Select(x => x.Name).ToList();
            vm.UploadNewMission = !missions.Any();
            vm.Content          = content;

            MissionUploadViewModel = vm;
            ShowOverlay(MissionUploadViewModel);
        }
示例#11
0
        void ShowMissions(int row)
        {
            if (row >= 0)
            {
                FactionStatistics fs = dataGridViewFactions.Rows[row].Tag as FactionStatistics;

                ExtendedControls.ConfigurableForm f    = new ExtendedControls.ConfigurableForm();
                MissionListUserControl            mluc = new MissionListUserControl();

                mluc.Clear();
                MissionList ml = last_he?.MissionList;
                if (ml != null)
                {
                    foreach (MissionState ms in ml.Missions.Values)
                    {
                        if (ms.State == MissionState.StateTypes.Completed && ms.Completed != null)
                        {
                            var faction = ms.Mission.Faction;
                            if (faction == fs.Name)
                            {
                                mluc.Add(ms, true);
                            }
                        }
                    }

                    mluc.Finish();
                }

                f.Add(new ExtendedControls.ConfigurableForm.Entry(mluc, "Grid", "", new System.Drawing.Point(3, 30), new System.Drawing.Size(800, 400), null)
                {
                    anchor = AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top | AnchorStyles.Bottom
                });

                f.AddOK(new Point(800 - 100, 460), "OK", anchor: AnchorStyles.Right | AnchorStyles.Bottom);

                f.Trigger += (dialogname, controlname, xtag) =>
                {
                    if (controlname == "OK" || controlname == "Close")
                    {
                        f.ReturnResult(DialogResult.OK);
                    }
                };

                f.AllowResize = true;

                f.ShowDialogCentred(this.FindForm(), this.FindForm().Icon, "Missions for ".Tx(EDTx.UserControlMissionAccounting_MissionsFor) + fs.Name, closeicon: true);
            }
        }
示例#12
0
 internal void Merge(IEnumerable <Mission> additional)
 {
     foreach (var m in additional)
     {
         var existing = MissionList.FirstOrDefault((x) => x.ID == m.ID);
         if (existing != null)
         {
             existing.UnlockTime = m.UnlockTime;
             // Refresh cycle will trigger PropertyChanged
         }
         else
         {
             MissionList.Add(m);
         }
     }
 }
示例#13
0
        static public void MissionInformation(ActionLanguage.ActionProgramRun vars, MissionList ml, string prefix)
        {
            vars[prefix + "_MissionCount"] = ml.Missions.Count.ToStringInvariant();

            int i = 0;

            foreach (MissionState ms in ml.Missions.Values)
            {
                string mp = prefix + "Mission[" + i.ToStringInvariant() + "]_";

                vars[mp + "Name"]            = ms.Mission.Name;
                vars[mp + "NameLocalised"]   = ms.Mission.LocalisedName;
                vars[mp + "ID"]              = ms.Mission.MissionId.ToStringInvariant();
                vars[mp + "UTC"]             = ms.Mission.EventTimeUTC.ToStringUS();
                vars[mp + "Local"]           = ms.Mission.EventTimeLocal.ToStringUS();
                vars[mp + "ExpiryUTC"]       = ms.Mission.Expiry.ToStringUS();
                vars[mp + "ExpiryLocal"]     = ms.Mission.Expiry.ToLocalTime().ToStringUS();
                vars[mp + "System"]          = ms.OriginatingSystem;
                vars[mp + "Station"]         = ms.OriginatingStation;
                vars[mp + "Faction"]         = ms.Mission.Faction;
                vars[mp + "DestSystem"]      = ms.Mission.DestinationSystem;
                vars[mp + "DestStation"]     = ms.Mission.DestinationStation;
                vars[mp + "TargetFaction"]   = ms.Mission.TargetFaction;
                vars[mp + "Influence"]       = ms.Mission.Influence;
                vars[mp + "Reputation"]      = ms.Mission.Reputation;
                vars[mp + "Commodity"]       = ms.Mission.CommodityLocalised.Alt(ms.Mission.FriendlyCommodity);
                vars[mp + "Target"]          = ms.Mission.TargetLocalised.Alt(ms.Mission.TargetFriendly);
                vars[mp + "TargetLocalised"] = ms.Mission.TargetLocalised.Alt(ms.Mission.TargetLocalised);
                vars[mp + "TargetType"]      = ms.Mission.TargetTypeLocalised.Alt(ms.Mission.TargetTypeFriendly);
                vars[mp + "Passengers"]      = ms.Mission.PassengerCount.ToStringInvariant();
                vars[mp + "Completed"]       = (ms.Completed != null).ToStringIntValue();
                if (ms.Completed != null)
                {
                    vars[mp + "Reward"]          = ms.Completed.Reward.ToStringInvariant();
                    vars[mp + "Donation"]        = ms.Completed.Donation.ToStringInvariant();
                    vars[mp + "RewardCommodity"] = ms.Completed.CommoditiesList(false, false);
                    vars[mp + "RewardPermit"]    = ms.Completed.PermitsList(false, false);
                    vars[mp + "RewardMaterials"] = ms.Completed.MaterialList(false, false);
                }
                i++;
            }
        }
示例#14
0
        void LoadMissions()
        {
            if (!Directory.Exists(Locations.ArtemisMissionPath))
            {
                System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(ReLoadMissions));
            }
            else
            {
                MissionList.Clear();
                DirectoryInfo missionDir = new DirectoryInfo(Locations.ArtemisMissionPath);

                foreach (FileInfo f in missionDir.GetFiles("MISS_*.xml", SearchOption.AllDirectories))
                {
                    big_message m = new big_message(f.FullName);
                    if (m != null)
                    {
                        MissionList.Add(m);
                    }
                }
            }
        }
        private void Display()
        {
            MissionList ml = last_he?.MissionList;

            dataGridViewCurrent.Rows.Clear();
            dataGridViewPrevious.Rows.Clear();

            if (ml != null)
            {
                DateTime hetime = last_he.EventTimeUTC;

                List <MissionState> mcurrent = (from MissionState ms in ml.Missions.Values where ms.InProgressDateTime(hetime) orderby ms.Mission.EventTimeUTC descending select ms).ToList();

                var totalReward = 0;
                foreach (MissionState ms in mcurrent)
                {
                    object[] rowobj = { JournalFieldNaming.ShortenMissionName(ms.Mission.Name),
                                        EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.Mission.EventTimeUTC : ms.Mission.EventTimeLocal,
                                        EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.Mission.Expiry : ms.Mission.Expiry.ToLocalTime(),
                                        ms.OriginatingSystem + ":" + ms.OriginatingStation,
                                        ms.Mission.Faction,
                                        ms.DestinationSystemStation(),
                                        ms.Mission.TargetFaction,
                                        ms.Mission.Reward.GetValueOrDefault().ToString("N0"),
                                        ms.Info() };

                    if (ms.Mission.Reward.HasValue)
                    {
                        totalReward += ms.Mission.Reward.Value;
                    }

                    int rowno = dataGridViewCurrent.Rows.Add(rowobj);
                    dataGridViewCurrent.Rows[rowno].Tag = ms;
                }

                int count = mcurrent.Count();

                cColName.HeaderText  = (count > 0) ? (count.ToStringInvariant() + (count > 1 ? " Missions" : " Mission")) : "Name";
                cColValue.HeaderText = (totalReward != 0) ? $"Value (cr):\n{totalReward:N0}" : "Value (cr)";

//                cColValue.HeaderText = (count>0) ? (count.ToStringInvariant() + (count > 1 ? " Missions" : " Mission") + (totalReward>0 ? $", {totalReward:N0}" : "")) : "Value";

                List <MissionState> mprev = (from MissionState ms in ml.Missions.Values where !ms.InProgressDateTime(hetime) orderby ms.Mission.EventTimeUTC descending select ms).ToList();

                DateTime startdate = customDateTimePickerStart.Checked ? customDateTimePickerStart.Value : new DateTime(1980, 1, 1);
                DateTime enddate   = customDateTimePickerEnd.Checked ? customDateTimePickerEnd.Value : new DateTime(2999, 1, 1);

                long value = 0;
                int  completed = 0, abandonded = 0, failed = 0;

                foreach (MissionState ms in mprev)
                {
                    int cmps = EDDiscoveryForm.EDDConfig.DisplayUTC ? DateTime.Compare(ms.Mission.EventTimeUTC, startdate) : DateTime.Compare(ms.Mission.EventTimeLocal, startdate);

                    //System.Diagnostics.Debug.WriteLine(ms.Mission.EventTimeUTC.ToString() + " " + startdate.ToString() + " " + cmps);
                    if (cmps >= 0)
                    {
                        int cmpe = EDDiscoveryForm.EDDConfig.DisplayUTC ? DateTime.Compare(ms.Mission.EventTimeUTC, enddate) : DateTime.Compare(ms.Mission.EventTimeLocal, enddate);

                        if (cmpe <= 0)
                        {
                            if (ms.State == MissionState.StateTypes.Abandoned)
                            {
                                abandonded++;
                            }
                            else if (ms.State == MissionState.StateTypes.Completed)
                            {
                                completed++;
                            }
                            else if (ms.State == MissionState.StateTypes.Failed)
                            {
                                failed++;
                            }

                            object[] rowobj = { JournalFieldNaming.ShortenMissionName(ms.Mission.Name),
                                                EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.Mission.EventTimeUTC : ms.Mission.EventTimeLocal,
                                                EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.MissionEndTime : ms.MissionEndTime.ToLocalTime(),
                                                ms.OriginatingSystem + ":" + ms.OriginatingStation,
                                                ms.Mission.Faction,
                                                ms.DestinationSystemStation(),
                                                ms.Mission.TargetFaction,
                                                ms.StateText,
                                                ms.Info() };

                            int rowno = dataGridViewPrevious.Rows.Add(rowobj);
                            dataGridViewPrevious.Rows[rowno].Tag = ms;

                            value += ms.Value;
                        }
                    }
                }

                labelValue.Visible = (value != 0);
                labelValue.Text    = "Value: " + value.ToStringInvariant() + " C:" + completed.ToStringInvariant() + " A:" + abandonded.ToStringInvariant() + " F:" + failed.ToStringInvariant();
            }
        }
示例#16
0
        private void Display()
        {
            this.Factions = new Dictionary <string, FactionStatistics>();
            dataGridViewFactions.Rows.Clear();

            MissionList ml    = last_he?.MissionList;
            var         total = 0;

            if (ml != null)
            {
                foreach (MissionState ms in ml.Missions.Values)
                {
                    if (ms.State == MissionState.StateTypes.Completed && ms.Completed != null)
                    {
                        DateTime startdateutc = startDateTime.Checked ? EDDConfig.Instance.ConvertTimeToUTCFromSelected(startDateTime.Value) : new DateTime(1980, 1, 1);
                        DateTime enddateutc   = endDateTime.Checked ? EDDConfig.Instance.ConvertTimeToUTCFromSelected(endDateTime.Value) : new DateTime(8999, 1, 1);

                        if (DateTime.Compare(ms.Completed.EventTimeUTC, startdateutc) >= 0 &&
                            DateTime.Compare(ms.Completed.EventTimeUTC, enddateutc) <= 0)
                        {
                            //      System.Diagnostics.Debug.WriteLine(ms.Mission.Faction + " " + ms.Mission.Name + " " + ms.Completed.EventTimeUTC);
                            total++;
                            var faction = ms.Mission.Faction;
                            int inf     = 0;
                            int rep     = 0;
                            if (ms.Completed.FactionEffects != null)
                            {
                                foreach (var fe in ms.Completed.FactionEffects)
                                {
                                    if (fe.Faction == faction)
                                    {
                                        if (fe.ReputationTrend == "UpGood" && fe.Reputation?.Length > 0)
                                        {
                                            rep = fe.Reputation.Length;
                                        }

                                        foreach (var si in fe.Influence)
                                        {
                                            if (si.Trend == "UpGood" && si.Influence?.Length > 0)
                                            {
                                                inf += si.Influence.Length;
                                            }
                                        }
                                    }
                                }
                            }
                            long credits = ms.Completed.Reward != null ? (long)ms.Completed.Reward : 0;
                            FactionStatistics factionStats;
                            if (!this.Factions.TryGetValue(faction, out factionStats))
                            {
                                factionStats = new FactionStatistics(faction);
                                this.Factions.Add(faction, factionStats);
                            }
                            factionStats.AddMissions(1);
                            if (inf > 0)
                            {
                                factionStats.AddInfluence(inf);
                            }
                            if (rep > 0)
                            {
                                factionStats.AddReputation(rep);
                            }
                            if (credits > 0)
                            {
                                factionStats.AddCredits(credits);
                            }
                            if (ms.Completed.MaterialsReward != null)
                            {
                                foreach (var mr in ms.Completed.MaterialsReward)
                                {
                                    factionStats.AddReward(mr.Name_Localised, mr.Count);
                                }
                            }
                            if (ms.Completed.CommodityReward != null)
                            {
                                foreach (var cr in ms.Completed.CommodityReward)
                                {
                                    factionStats.AddReward(cr.Name_Localised, cr.Count);
                                }
                            }
                        }
                    }
                }
                if (total > 0)
                {
                    //System.Diagnostics.Debug.WriteLine(total + " missions");
                    var rows = new List <DataGridViewRow>(total);
                    foreach (FactionStatistics fs in this.Factions.Values)
                    {
                        var rewards = "";
                        foreach (var reward in fs.Rewards.Values)
                        {
                            if (rewards.Length > 0)
                            {
                                rewards += ", ";
                            }
                            rewards += reward.Count + " " + reward.Name;
                        }
                        object[] rowobj = { fs.Name, fs.Missions, fs.Influence, fs.Reputation, String.Format("{0:n0}", fs.Credits), rewards };
                        var      row    = dataGridViewFactions.RowTemplate.Clone() as DataGridViewRow;
                        row.CreateCells(dataGridViewFactions, rowobj);
                        row.Tag = fs;
                        rows.Add(row);
                    }
                    dataGridViewFactions.Rows.AddRange(rows.ToArray());
                }
            }
            labelValue.Text = total + " missions";
        }
示例#17
0
        private void Display()
        {
            MissionList ml = last_he?.MissionList;

            DataGridViewColumn sortcolprev   = dataGridViewPrevious.SortedColumn != null ? dataGridViewPrevious.SortedColumn : dataGridViewPrevious.Columns[1];
            SortOrder          sortorderprev = dataGridViewPrevious.SortedColumn != null ? dataGridViewPrevious.SortOrder : SortOrder.Descending;

            DataGridViewColumn sortcolcur   = dataGridViewCurrent.SortedColumn != null ? dataGridViewCurrent.SortedColumn : dataGridViewCurrent.Columns[1];
            SortOrder          sortordercur = dataGridViewCurrent.SortedColumn != null ? dataGridViewCurrent.SortOrder : SortOrder.Descending;

            dataGridViewCurrent.Rows.Clear();
            dataGridViewPrevious.Rows.Clear();

            if (ml != null)
            {
                DateTime hetime = last_he.EventTimeUTC;

                List <MissionState> mcurrent = ml.GetAllCurrentMissions(hetime);

                var totalReward = 0;
                foreach (MissionState ms in mcurrent)
                {
                    object[] rowobj = { JournalFieldNaming.ShortenMissionName(ms.Mission.Name),
                                        EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.Mission.EventTimeUTC : ms.Mission.EventTimeLocal,
                                        EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.Mission.Expiry : ms.Mission.Expiry.ToLocalTime(),
                                        ms.OriginatingSystem + ":" + ms.OriginatingStation,
                                        ms.Mission.Faction,
                                        ms.DestinationSystemStation(),
                                        ms.Mission.TargetFaction,
                                        ms.Mission.Reward.GetValueOrDefault().ToString("N0"),
                                        ms.Info() };

                    if (ms.Mission.Reward.HasValue)
                    {
                        totalReward += ms.Mission.Reward.Value;
                    }

                    int rowno = dataGridViewCurrent.Rows.Add(rowobj);
                    dataGridViewCurrent.Rows[rowno].Tag = ms;
                }

                int count = mcurrent.Count();

                cColName.HeaderText  = (count > 0) ? (count.ToStringInvariant() + (count > 1 ? " Missions".Tx(this, "MPlural") : " Mission".Tx(this, "MSingular"))) : "Name".Tx(this, "Name");
                cColValue.HeaderText = (totalReward != 0) ? string.Format("Value (cr):\n{0:N0}".Tx(this, "Value"), totalReward) : "Value (cr)".Tx(this, "ValueN");

                //                cColValue.HeaderText = (count>0) ? (count.ToStringInvariant() + (count > 1 ? " Missions" : " Mission") + (totalReward>0 ? $", {totalReward:N0}" : "")) : "Value";

                List <MissionState> mprev = ml.GetAllExpiredMissions(hetime);

                DateTime startdate = customDateTimePickerStart.Checked ? customDateTimePickerStart.Value : new DateTime(1980, 1, 1);
                DateTime enddate   = customDateTimePickerEnd.Checked ? customDateTimePickerEnd.Value : new DateTime(2999, 1, 1);

                long value = 0;
                int  completed = 0, abandonded = 0, failed = 0;

                foreach (MissionState ms in mprev)
                {
                    int cmps = EDDiscoveryForm.EDDConfig.DisplayUTC ? DateTime.Compare(ms.Mission.EventTimeUTC, startdate) : DateTime.Compare(ms.Mission.EventTimeLocal, startdate);

                    //System.Diagnostics.Debug.WriteLine(ms.Mission.EventTimeUTC.ToString() + " " + startdate.ToString() + " " + cmps);
                    if (cmps >= 0)
                    {
                        int cmpe = EDDiscoveryForm.EDDConfig.DisplayUTC ? DateTime.Compare(ms.Mission.EventTimeUTC, enddate) : DateTime.Compare(ms.Mission.EventTimeLocal, enddate);

                        if (cmpe <= 0)
                        {
                            if (ms.State == MissionState.StateTypes.Abandoned)
                            {
                                abandonded++;
                            }
                            else if (ms.State == MissionState.StateTypes.Completed)
                            {
                                completed++;
                            }
                            else if (ms.State == MissionState.StateTypes.Failed)
                            {
                                failed++;
                            }

                            object[] rowobj = { JournalFieldNaming.ShortenMissionName(ms.Mission.Name),
                                                EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.Mission.EventTimeUTC : ms.Mission.EventTimeLocal,
                                                EDDiscoveryForm.EDDConfig.DisplayUTC ? ms.MissionEndTime : ms.MissionEndTime.ToLocalTime(),
                                                ms.OriginatingSystem + ":" + ms.OriginatingStation,
                                                ms.Mission.Faction,
                                                ms.DestinationSystemStation(),
                                                ms.Mission.TargetFaction,
                                                ms.StateText,
                                                ms.Info() };

                            int rowno = dataGridViewPrevious.Rows.Add(rowobj);
                            dataGridViewPrevious.Rows[rowno].Tag = ms;

                            value += ms.Value;
                        }
                    }
                }

                labelValue.Visible = (value != 0);
                labelValue.Text    = "Value: ".Tx(this, "ValueC") + value.ToStringInvariant() + " C:" + completed.ToStringInvariant() + " A:" + abandonded.ToStringInvariant() + " F:" + failed.ToStringInvariant();

                //System.Diagnostics.Debug.WriteLine("Prev " + sortorderprev + " " + sortcolprev.Index);
                dataGridViewPrevious.Sort(sortcolprev, (sortorderprev == SortOrder.Descending) ? ListSortDirection.Descending : ListSortDirection.Ascending);
                dataGridViewPrevious.Columns[sortcolprev.Index].HeaderCell.SortGlyphDirection = sortorderprev;

                dataGridViewCurrent.Sort(sortcolcur, (sortordercur == SortOrder.Descending) ? ListSortDirection.Descending : ListSortDirection.Ascending);
                dataGridViewCurrent.Columns[sortcolcur.Index].HeaderCell.SortGlyphDirection = sortordercur;
            }
        }
示例#18
0
        private void ProcessMessage(ServerMessage message)
        {
            switch (message.Type)
            {
                case ServerMessage.MessageType.PlayerList:
                    var list = new PlayerList(message);
                    OnPlayerHandler(list);
                    break;
                case ServerMessage.MessageType.BanList:
                    var banList = new BanList(message);
                    OnBanHandler(banList);
                    break;

                case ServerMessage.MessageType.AdminList:
                    var adminList = new AdminList(message);
                    OnAdminHandler(adminList);
                    break;

                case ServerMessage.MessageType.MissionList:
                    var missinlist = new MissionList(message);
                    OnMissionHandler(missinlist);
                    break;

                case ServerMessage.MessageType.ChatMessage:
                    var chatMessage = new ChatMessage()
                    {
                        Date = DateTime.UtcNow,
                        Message = message.Message
                    };

                    OnChatMessageHandler(chatMessage);
                    break;

                case ServerMessage.MessageType.RconAdminLog:
                    OnRConAdminLog();
                    OnChatMessageHandler(new ChatMessage { Date = DateTime.UtcNow, Message = message.Message });
                    break;

                case ServerMessage.MessageType.PlayerLog:
                    OnPlayerLog();
                    OnChatMessageHandler(new ChatMessage { Date = DateTime.UtcNow, Message = message.Message });
                    break;

                case ServerMessage.MessageType.BanLog:
                    OnBanLog();
                    OnChatMessageHandler(new ChatMessage { Date = DateTime.UtcNow, Message = message.Message });
                    break;

                case ServerMessage.MessageType.Unknown:
                    var unknownMessage = new ChatMessage()
                    {
                        Date = DateTime.UtcNow,
                        Message = message.Message
                    };

                    OnChatMessageHandler(unknownMessage);
                    break;
                default:
                    break;
            }

            RegisterMessage(message);
        }
示例#19
0
        private async Task LoadMissionTask(string uri)
        {
            MissionList.Clear();
            int o = 0;

            while (true)
            {
                string reqUri         = uri + o;
                string responseString = await SendRequest.GET(reqUri);

                HtmlDocument doc = new HtmlDocument();
                doc.LoadHtml(responseString);

                HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes(@"//form[@name='frm_mis']/tr");

                int count = 0;

                Regex regex = new Regex(@"# \d+");
                for (int i = 0; i < nodes.Count; i++)
                {
                    if (i == 0 || i == nodes.Count - 1)
                    {
                        continue;
                    }

                    string complete = nodes[i].SelectSingleNode(@"./td[1]/table/tr[@class='m2']//a").GetAttributeValue("href", "");
                    string mark     = nodes[i].SelectSingleNode(@"./td[1]/table/tr[2]//a").GetAttributeValue("href", "");
                    string targetIP = nodes[i].SelectSingleNode(@"./td[2]/table/tr[1]//a/span[@class='green']").InnerText;
                    string type     = nodes[i].SelectSingleNode(@"./td[3]/a/span").InnerText;
                    string detail   = StringHelper.RemoveSpecial(nodes[i].SelectSingleNode(@"./td[4]//td[@align='justify']").InnerText);
                    string reward   = nodes[i].SelectSingleNode(@"./td[5]").InnerText;
                    string fileID   = "";
                    var    match    = regex.Match(detail);
                    if (match.Success)
                    {
                        fileID = match.Value.Replace("#", "").Trim();
                    }

                    MissionModel newData = new MissionModel()
                    {
                        Complete = complete,
                        Mark     = mark,
                        TargetIP = targetIP,
                        Type     = type,
                        Details  = detail,
                        Reward   = reward,
                        FileID   = fileID
                    };
                    MissionList.Add(newData);

                    count++;
                }

                if (count == 0)
                {
                    break;
                }

                o += 50;
            }
        }
示例#20
0
        private void Display()
        {
            DataGridViewColumn sortcol       = dataGridViewFactions.SortedColumn != null ? dataGridViewFactions.SortedColumn : dataGridViewFactions.Columns[0];
            SortOrder          sortorder     = dataGridViewFactions.SortOrder != SortOrder.None ? dataGridViewFactions.SortOrder : SortOrder.Ascending;
            string             toprowfaction = dataGridViewFactions.FirstDisplayedScrollingRowIndex >= 0 ? (dataGridViewFactions.Rows[dataGridViewFactions.FirstDisplayedScrollingRowIndex].Tag as FactionStatistics).Name : "";

            dataGridViewFactions.Rows.Clear();

            MissionList ml = last_he?.MissionList;

            DateTime startdateutc = startDateTime.Checked ? EDDConfig.Instance.ConvertTimeToUTCFromSelected(startDateTime.Value) : new DateTime(1980, 1, 1);
            DateTime enddateutc   = endDateTime.Checked ? EDDConfig.Instance.ConvertTimeToUTCFromSelected(endDateTime.Value) : new DateTime(8999, 1, 1);

            var factionslist = new Dictionary <string, FactionStatistics>();

            if (ml != null)
            {
                foreach (MissionState ms in ml.Missions.Values)
                {
                    if (ms.State == MissionState.StateTypes.Completed && ms.Completed != null)
                    {
                        if (DateTime.Compare(ms.Completed.EventTimeUTC, startdateutc) >= 0 &&
                            DateTime.Compare(ms.Completed.EventTimeUTC, enddateutc) <= 0)
                        {
                            var faction = ms.Mission.Faction;
                            FactionStatistics factionStats;
                            if (!factionslist.TryGetValue(faction, out factionStats))
                            {
                                factionStats = new FactionStatistics(faction);
                                factionslist.Add(faction, factionStats);
                            }
                            factionStats.AddMissions(1);
                            if (ms.Completed.FactionEffects != null)
                            {
                                foreach (var fe in ms.Completed.FactionEffects)
                                {
                                    if (fe.Faction == faction)
                                    {
                                        if (fe.ReputationTrend == "UpGood" && fe.Reputation?.Length > 0)
                                        {
                                            factionStats.AddReputation(fe.Reputation.Length);
                                        }

                                        foreach (var si in fe.Influence)
                                        {
                                            if (si.Trend == "UpGood" && si.Influence?.Length > 0)
                                            {
                                                factionStats.AddInfluence(si.Influence.Length);
                                                factionStats.AddSystemInfluence(si.SystemAddress, si.Influence.Length, ms.Completed.MissionId);
                                            }
                                        }
                                    }
                                }
                            }
                            long credits = ms.Completed.Reward != null ? (long)ms.Completed.Reward : 0;
                            if (credits > 0)
                            {
                                factionStats.AddCredits(credits);
                            }
                            if (ms.Completed.MaterialsReward != null)
                            {
                                foreach (var mr in ms.Completed.MaterialsReward)
                                {
                                    factionStats.AddReward(mr.Name_Localised, mr.Count);
                                }
                            }
                            if (ms.Completed.CommodityReward != null)
                            {
                                foreach (var cr in ms.Completed.CommodityReward)
                                {
                                    factionStats.AddReward(cr.Name_Localised, cr.Count);
                                }
                            }
                        }
                    }
                }
            }

            Stats mcs = null;

            if (startDateTime.Checked || endDateTime.Checked)                           // if we have a date range, can't rely on stats accumulated automatically
            {
                foreach (var he in HistoryList.FilterByDateRange(discoveryform.history.EntryOrder(), startdateutc, enddateutc))
                {
                    mcs = Stats.Process(he.journalEntry, mcs, he.StationFaction);
                }
            }
            else
            {
                mcs = last_he?.Stats;
            }

            if (mcs != null)
            {
                foreach (var fkvp in mcs.FactionInformation)
                {
                    if (!factionslist.TryGetValue(fkvp.Value.Faction, out FactionStatistics factionStats))
                    {
                        factionStats = new FactionStatistics(fkvp.Value.Faction);
                        factionslist.Add(fkvp.Value.Faction, factionStats);
                    }

                    factionslist[fkvp.Value.Faction].AddFactionStats(fkvp.Value);
                }
            }

            if (factionslist.Count > 0)
            {
                var rows = new List <DataGridViewRow>();
                foreach (FactionStatistics fs in factionslist.Values)
                {
                    var info = "";
                    foreach (var reward in fs.Rewards.Values)
                    {
                        info = info.AppendPrePad(reward.Count + " " + reward.Name, ", ");
                    }

                    if (fs.FactionStats.CapShipAwardAsVictimFaction > 0)
                    {
                        info = info.AppendPrePad("Capital ship Victims: ".T(EDTx.UserControlFactions_CapShipVictims) + fs.FactionStats.CapShipAwardAsVictimFaction, ", ");
                    }
                    if (fs.FactionStats.CapShipAwardAsAwaringFaction > 0)
                    {
                        info = info.AppendPrePad("Capital ship Award: ".T(EDTx.UserControlFactions_CapShipAward) + fs.FactionStats.CapShipAwardAsAwaringFaction + ":" + fs.FactionStats.CapShipAwardAsAwaringFactionValue.ToString("N0") + "cr", ", ");
                    }

                    object[] rowobj = { fs.Name,
                                        fs.Missions.ToString("N0"),                                 fs.Influence.ToString("N0"),                                   fs.Reputation.ToString("N0"),                                      fs.Credits.ToString("N0"),
                                        fs.FactionStats.BoughtCommodity.ToString("N0"),             fs.FactionStats.SoldCommodity.ToString("N0"),                  fs.FactionStats.BoughtMaterial.ToString("N0"),                     fs.FactionStats.SoldMaterial.ToString("N0"),
                                        fs.FactionStats.CrimesAgainst.ToString("N0"),
                                        fs.FactionStats.BountyKill.ToString("N0"),                  fs.FactionStats.BountyRewards.ToString("N0"),                  fs.FactionStats.BountyRewardsValue.ToString("N0"),
                                        fs.FactionStats.Interdicted.ToString("N0"),                 fs.FactionStats.Interdiction.ToString("N0"),
                                        fs.FactionStats.KillBondAwardAsVictimFaction.ToString("N0"),fs.FactionStats.KillBondAwardAsAwaringFaction.ToString("N0"),  fs.FactionStats.KillBondAwardAsAwaringFactionValue.ToString("N0"),
                                        info };

                    var row = dataGridViewFactions.RowTemplate.Clone() as DataGridViewRow;
                    row.CreateCells(dataGridViewFactions, rowobj);
                    row.Tag = fs;
                    rows.Add(row);
                }

                dataGridViewFactions.Rows.AddRange(rows.ToArray());

                dataGridViewFactions.Sort(sortcol, (sortorder == SortOrder.Descending) ? System.ComponentModel.ListSortDirection.Descending : System.ComponentModel.ListSortDirection.Ascending);
                dataGridViewFactions.Columns[sortcol.Index].HeaderCell.SortGlyphDirection = sortorder;

                if (toprowfaction.HasChars())
                {
                    for (int i = 0; i < dataGridViewFactions.RowCount; i++)
                    {
                        var fs = dataGridViewFactions.Rows[i].Tag as FactionStatistics;
                        if (fs.Name == toprowfaction)
                        {
                            dataGridViewFactions.SafeFirstDisplayedScrollingRowIndex(i);
                            break;
                        }
                    }
                }
            }

            labelValue.Text = factionslist.Count + " " + "Factions".T(EDTx.UserControlFactions_FactionsPlural);
        }
示例#21
0
 internal void setMissionList(NpcData npc, MissionList missionList)
 {
 }
示例#22
0
        private void Display(HistoryEntry he)
        {
            currentHE = he;

            MissionList ml = currentHE?.MissionList;

            pictureBox.ClearImageList();

            if (ml != null)
            {
                Color textcolour = IsTransparent ? discoveryform.theme.SPanelColor : discoveryform.theme.LabelColor;
                Color backcolour = IsTransparent ? Color.Transparent : this.BackColor;

                DateTime hetime = currentHE.EventTimeUTC;

                List <MissionState> mcurrent = ml.GetAllCurrentMissions(hetime);

                int  vpos        = 4;
                Font displayfont = discoveryform.theme.GetFont;

                foreach (MissionState ms in mcurrent)
                {
                    string text = "";

                    if (missionNameToolStripMenuItem.Checked)
                    {
                        text += JournalFieldNaming.ShortenMissionName(ms.Mission.Name);
                    }

                    if (missionDescriptionToolStripMenuItem.Checked && ms.Mission.LocalisedName.HasChars())
                    {
                        text = text.AppendPrePad(ms.Mission.LocalisedName, ", ");
                    }

                    if (startDateToolStripMenuItem.Checked)
                    {
                        text = text.AppendPrePad(EDDiscoveryForm.EDDConfig.ConvertTimeToSelectedFromUTC(ms.Mission.EventTimeUTC).ToString(), ", ");
                    }

                    if (endDateToolStripMenuItem.Checked)
                    {
                        text = text.AppendPrePad(EDDiscoveryForm.EDDConfig.ConvertTimeToSelectedFromUTC(ms.Mission.Expiry).ToString(), startDateToolStripMenuItem.Checked ? "-" : ", ");
                    }

                    string mainpart = BaseUtils.FieldBuilder.Build(
                        "< ", ms.DestinationSystemStation(),
                        " ", factionInformationToolStripMenuItem.Checked ? ms.Mission.TargetFaction : null,
                        "< ", ms.Mission.TargetLocalised,
                        "< ", ms.Mission.KillCount?.ToString("N") ?? null,
                        " ", ms.Mission.CommodityLocalised,
                        "< ", ms.Mission.Count,
                        " Left ".T(EDTx.UserControlMissionOverlay_IL), ms.CargoDepot?.ItemsToGo
                        );

                    text = text.AppendPrePad(mainpart, ", ");

                    if (rewardToolStripMenuItem.Checked && ms.Mission.Reward.HasValue && ms.Mission.Reward > 0)
                    {
                        text = text.AppendPrePad(BaseUtils.FieldBuilder.Build(" ;cr", ms.Mission.Reward.GetValueOrDefault().ToString("N0")), ", ");
                    }

                    StringFormat frmt = new StringFormat();

                    var ie = pictureBox.AddTextAutoSize(new Point(10, vpos), new Size(this.Width - 20, this.Height), text, displayfont, textcolour, backcolour, 1.0F, frmt: frmt);
                    vpos = ie.pos.Bottom + displayfont.ScalePixels(4);
                }
            }

            pictureBox.Render();
        }
示例#23
0
        private void Display()
        {
            MissionList ml = last_he?.MissionList;

            DataGridViewColumn sortcolprev   = dataGridViewPrevious.SortedColumn != null ? dataGridViewPrevious.SortedColumn : dataGridViewPrevious.Columns[1];
            SortOrder          sortorderprev = dataGridViewPrevious.SortedColumn != null ? dataGridViewPrevious.SortOrder : SortOrder.Descending;

            DataGridViewColumn sortcolcur   = dataGridViewCurrent.SortedColumn != null ? dataGridViewCurrent.SortedColumn : dataGridViewCurrent.Columns[1];
            SortOrder          sortordercur = dataGridViewCurrent.SortedColumn != null ? dataGridViewCurrent.SortOrder : SortOrder.Descending;

            dataGridViewCurrent.Rows.Clear();
            dataGridViewPrevious.Rows.Clear();

            if (ml != null)
            {
                DateTime hetime = last_he.EventTimeUTC;

                List <MissionState> mcurrent = ml.GetAllCurrentMissions(hetime);

                var totalReward = 0;
                var currentRows = new List <DataGridViewRow>(mcurrent.Count);
                foreach (MissionState ms in mcurrent)
                {
                    object[] rowobj = { JournalFieldNaming.ShortenMissionName(ms.Mission.LocalisedName),
                                        EDDiscoveryForm.EDDConfig.ConvertTimeToSelectedFromUTC(ms.Mission.EventTimeUTC),
                                        EDDiscoveryForm.EDDConfig.ConvertTimeToSelectedFromUTC(ms.Mission.Expiry),
                                        ms.OriginatingSystem + ": " + ms.OriginatingStation,
                                        ms.Mission.Faction,
                                        ms.DestinationSystemStation(),
                                        ms.Mission.TargetFaction,
                                        ms.Mission.Reward.GetValueOrDefault().ToString("N0"),
                                        ms.MissionInfoColumn() };

                    if (ms.Mission.Reward.HasValue)
                    {
                        totalReward += ms.Mission.Reward.Value;
                    }

                    var row = dataGridViewCurrent.RowTemplate.Clone() as DataGridViewRow;
                    row.CreateCells(dataGridViewCurrent, rowobj);
                    row.Tag = ms;
                    currentRows.Add(row);
                }

                dataGridViewCurrent.Rows.AddRange(currentRows.ToArray());

                int count = mcurrent.Count();

                cColName.HeaderText  = (count > 0) ? (count.ToString() + (count > 1 ? " Missions".T(EDTx.UserControlMissions_MPlural) : " Mission".T(EDTx.UserControlMissions_MSingular))) : "Name".T(EDTx.UserControlMissions_Name);
                cColValue.HeaderText = (totalReward != 0) ? string.Format("Value (cr):\n{0:N0}".T(EDTx.UserControlMissions_Value), totalReward) : "Value (cr)".T(EDTx.UserControlMissions_ValueN);

                //                cColValue.HeaderText = (count>0) ? (count.ToStringInvariant() + (count > 1 ? " Missions" : " Mission") + (totalReward>0 ? $", {totalReward:N0}" : "")) : "Value";

                List <MissionState> mprev = ml.GetAllExpiredMissions(hetime);

                DateTime startdateutc = customDateTimePickerStart.Checked ? EDDConfig.Instance.ConvertTimeToUTCFromSelected(customDateTimePickerStart.Value) : new DateTime(1980, 1, 1);
                DateTime enddateutc   = customDateTimePickerEnd.Checked ? EDDConfig.Instance.ConvertTimeToUTCFromSelected(customDateTimePickerEnd.Value) : new DateTime(8999, 1, 1);

                long value = 0;
                int  completed = 0, abandonded = 0, failed = 0;
                var  previousRows = new List <DataGridViewRow>(mprev.Count);

                foreach (MissionState ms in mprev)
                {
                    int cmps = DateTime.Compare(ms.Mission.EventTimeUTC, startdateutc);

                    //System.Diagnostics.Debug.WriteLine(ms.Mission.EventTimeUTC.ToString() + " " + startdate.ToString() + " " + cmps);
                    if (cmps >= 0)
                    {
                        int cmpe = DateTime.Compare(ms.Mission.EventTimeUTC, enddateutc);

                        if (cmpe <= 0)
                        {
                            if (ms.State == MissionState.StateTypes.Abandoned)
                            {
                                abandonded++;
                            }
                            else if (ms.State == MissionState.StateTypes.Completed)
                            {
                                completed++;
                            }
                            else if (ms.State == MissionState.StateTypes.Failed)
                            {
                                failed++;
                            }

                            object[] rowobj = { JournalFieldNaming.ShortenMissionName(ms.Mission.LocalisedName),
                                                EDDiscoveryForm.EDDConfig.ConvertTimeToSelectedFromUTC(ms.Mission.EventTimeUTC),
                                                EDDiscoveryForm.EDDConfig.ConvertTimeToSelectedFromUTC(ms.MissionEndTime),
                                                ms.OriginatingSystem + ": " + ms.OriginatingStation,
                                                ms.Mission.Faction,
                                                ms.DestinationSystemStation(),
                                                ms.Mission.TargetFaction,
                                                ms.StateText,
                                                ms.MissionInfoColumn() };

                            var row = dataGridViewPrevious.RowTemplate.Clone() as DataGridViewRow;
                            row.CreateCells(dataGridViewPrevious, rowobj);
                            row.Tag = ms;
                            previousRows.Add(row);

                            value += ms.Value;
                        }
                    }
                }

                dataGridViewPrevious.Rows.AddRange(previousRows.ToArray());

                labelValue.Visible = (value != 0);
                labelValue.Text    = "Value: ".T(EDTx.UserControlMissions_ValueC) + value.ToString("N0") + " C:" + completed.ToString("N0") + " A:" + abandonded.ToString("N0") + " F:" + failed.ToString("N0");

                //System.Diagnostics.Debug.WriteLine("Prev " + sortorderprev + " " + sortcolprev.Index);
                dataGridViewPrevious.Sort(sortcolprev, (sortorderprev == SortOrder.Descending) ? ListSortDirection.Descending : ListSortDirection.Ascending);
                dataGridViewPrevious.Columns[sortcolprev.Index].HeaderCell.SortGlyphDirection = sortorderprev;

                dataGridViewCurrent.Sort(sortcolcur, (sortordercur == SortOrder.Descending) ? ListSortDirection.Descending : ListSortDirection.Ascending);
                dataGridViewCurrent.Columns[sortcolcur.Index].HeaderCell.SortGlyphDirection = sortordercur;
            }
        }
示例#24
0
        private void ProcessMessage(ServerMessage message)
        {
            var logMessage = new LogMessage
            {
                Date    = DateTime.UtcNow,
                Message = message.Message
            };

            switch (message.Type)
            {
            case ServerMessageType.PlayerList:
                var list = new PlayerList(message);
                OnPlayerHandler(list);
                break;

            case ServerMessageType.BanList:
                var banList = new BanList(message);
                OnBanHandler(banList);
                break;

            case ServerMessageType.AdminList:
                var adminList = new AdminList(message);
                OnAdminHandler(adminList);
                break;

            case ServerMessageType.MissionList:
                var missinlist = new MissionList(message);
                OnMissionHandler(missinlist);
                break;

            case ServerMessageType.ChatMessage:
                var chatMessage = new ChatMessage
                {
                    Date    = DateTime.UtcNow,
                    Message = message.Message
                };

                OnChatMessageHandler(chatMessage);
                break;

            case ServerMessageType.RconAdminLog:
                OnRConAdminLog(logMessage);
                break;

            case ServerMessageType.PlayerLog:
                OnPlayerLog(logMessage);
                break;

            case ServerMessageType.BanLog:
                OnBanLog(logMessage);
                break;

            case ServerMessageType.Unknown:
                //var unknownMessage = new ChatMessage
                //{
                //    Date = DateTime.UtcNow,
                //    Message = message.Message
                //};

                //OnChatMessageHandler(unknownMessage);
                break;
            }

            RegisterMessage(message);
        }
示例#25
0
        public static MissionList LoadMissions(BinaryReader reader, int missionCount)
        {
            var missions = new MissionList();
            for (var i = 0; i < missionCount; i++)
            {
                var mission = new MissionModel();
                mission.Id = reader.ReadInt32();
                mission.Date = GetDateFromValue(reader.ReadInt32());
                mission.ClientName		= new string(reader.ReadChars(10)).TrimEnd();
                mission.RewardAmount	= reader.ReadInt16();
                mission.Type			= (MissionType)reader.ReadByte();
                mission.Difficulty		= (Difficulty)reader.ReadByte();
                mission.TargetStarSystem = Galaxy.StarSystems[reader.ReadByte(), reader.ReadByte()];
                switch (mission.Type)
                {
                    case MissionType.PackageDelivery:	mission.PackageDescription = new string(reader.ReadChars(20)).TrimEnd();	break;
                    case MissionType.GoodsDelivery	:	mission.GoodsToDeliver_Type = (Merchandise)reader.ReadByte();	mission.GoodsToDeliver_Amount = reader.ReadByte();	break;
                    case MissionType.Assassination	:	mission.AssassinationTarget = LoadNPC(reader);		break;
                }
                missions.Add(mission);
            }

            return missions;
        }