/// <summary> /// Refresh the mission items /// </summary> public void RefreshMissionItems(long agentId) { // Clear out old items MissionItems.Clear(); BringMissionItem = string.Empty; var mission = GetAgentMission(agentId); if (mission == null) { return; } var missionName = FilterPath(mission.Name); var missionXmlPath = Path.Combine(Settings.Instance.MissionsPath, missionName + ".xml"); if (!File.Exists(missionXmlPath)) { return; } try { var xdoc = XDocument.Load(missionXmlPath); var items = ((IEnumerable)xdoc.XPathEvaluate("//action[(translate(@name, 'LOT', 'lot')='loot') or (translate(@name, 'LOTIEM', 'lotiem')='lootitem')]/parameter[translate(@name, 'TIEM', 'tiem')='item']/@value")).Cast <XAttribute>().Select(a => ((string)a ?? string.Empty).ToLower()); MissionItems.AddRange(items); BringMissionItem = (string)xdoc.Root.Element("bring") ?? string.Empty; BringMissionItem = BringMissionItem.ToLower(); } catch (Exception ex) { Logging.Log("Error loading mission XML file [" + ex.Message + "]"); } }
public void MissionHeaderClick() { if (MissionItems.Count == 0) { return; } MissionItems = new BindableCollection <MissionModel>(MissionItems.Reverse()); NotifyOfPropertyChange(() => MissionItems); IsOrdered = !IsOrdered; }
public async Task DownloadMission() { if (IsStopDownloadVisible == Visibility.Visible) { MessageBox.Show("Only one download instance is allowed!", "Information", MessageBoxButton.OK, MessageBoxImage.Information); return; } foreach (var item in MissionItems.ToList()) { if (item.IsSelected) { await Download.FileAsync(item.FileId, item, Helper.CtsStopDownloading.Token); } } }
public void ItemDropLv(DragEventArgs dragArgs) { if (!dragArgs.Data.GetDataPresent(typeof(List <MissionModel>))) { return; } var droppedItems = dragArgs.Data.GetData(typeof(List <MissionModel>)) as List <MissionModel>; foreach (var droppedItem in droppedItems) { if (IgnoredItems.Any(item => item.FileId == droppedItem.FileId)) { continue; } IgnoredItems.Add(new IgnoredModel() { Item = droppedItem.Mission, FileId = droppedItem.FileId }); MissionItems.Remove(droppedItem); if (IsDeleteIgnoredMfChecked) { try { File.Delete(Properties.GetArma3MissionFolderPath + droppedItem.Mission); } catch (IOException e) { MessageBox.Show(e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); } } } }
/// <summary> /// Refresh the mission items /// </summary> public void RefreshMissionItems(long agentId) { // Clear out old items MissionItems.Clear(); BringMissionItem = string.Empty; var mission = GetAgentMission(agentId); if (mission == null) { return; } if (factionName == null || factionName == "") { factionName = "Default"; } if (Settings.Instance.UseFittingManager) { //Set fitting to default DefaultFitting = (string)Settings.Instance.DefaultFitting.Fitting; Fitting = DefaultFitting; MissionShip = ""; ChangeMissionShipFittings = false; if (Settings.Instance.MissionFitting.Any(m => m.Mission.ToLower() == mission.Name.ToLower())) //priority goes to mission-specific fittings { string _missionFit; string _missionShip; MissionFitting _missionFitting; // if we've got multiple copies of the same mission, find the one with the matching faction if (Settings.Instance.MissionFitting.Any(m => m.Faction.ToLower() == factionName.ToLower() && (m.Mission.ToLower() == mission.Name.ToLower()))) { _missionFitting = Settings.Instance.MissionFitting.FirstOrDefault(m => m.Faction.ToLower() == factionName.ToLower() && (m.Mission.ToLower() == mission.Name.ToLower())); } else //otherwise just use the first copy of that mission { _missionFitting = Settings.Instance.MissionFitting.FirstOrDefault(m => m.Mission.ToLower() == mission.Name.ToLower()); } _missionFit = (string)_missionFitting.Fitting; _missionShip = (string)_missionFitting.Ship; if (!(_missionFit == "" && !(_missionShip == ""))) // if we've both specified a mission specific ship and a fitting, then apply that fitting to the ship { ChangeMissionShipFittings = true; Fitting = _missionFit; } else if (!((factionFit == null) || (factionFit == ""))) { Fitting = factionFit; } Logging.Log("Cache: Mission: " + _missionFitting.Mission + " - Faction: " + factionName + " - Fitting: " + _missionFit + " - Ship: " + _missionShip + " - ChangeMissionShipFittings: " + ChangeMissionShipFittings); MissionShip = _missionShip; } else if (!((factionFit == null) || (factionFit == ""))) // if no mission fittings defined, try to match by faction { Fitting = factionFit; } if (Fitting == "") // otherwise use the default { Fitting = DefaultFitting; } } var missionName = FilterPath(mission.Name); var missionXmlPath = Path.Combine(Settings.Instance.MissionsPath, missionName + ".xml"); if (!File.Exists(missionXmlPath)) { return; } try { var xdoc = XDocument.Load(missionXmlPath); var items = ((IEnumerable)xdoc.XPathEvaluate("//action[(translate(@name, 'LOT', 'lot')='loot') or (translate(@name, 'LOTIEM', 'lotiem')='lootitem')]/parameter[translate(@name, 'TIEM', 'tiem')='item']/@value")).Cast <XAttribute>().Select(a => ((string)a ?? string.Empty).ToLower()); MissionItems.AddRange(items); BringMissionItem = (string)xdoc.Root.Element("bring") ?? string.Empty; BringMissionItem = BringMissionItem.ToLower(); //load fitting setting from the mission file //Fitting = (string)xdoc.Root.Element("fitting") ?? "default"; } catch (Exception ex) { Logging.Log("Error loading mission XML file [" + ex.Message + "]"); } }