private void PopulateBanSelector(int pointIndex) { var firstBanId = _listBpSteps[2].Contains(pointIndex) ? _listBpSteps[0].First() : _listBpSteps[5].First(); var secondBanId = _listBpSteps[2].Contains(pointIndex) ? _listBpSteps[1].First() : _listBpSteps[6].First(); if (!HeroSelectorViewModels.First(v => v.Id == firstBanId).InteractionVisible) { var vm = HeroSelectorViewModels.First(v => v.Id == firstBanId); vm.InteractionVisible = true; vm.Select(L("NO_CHOOSE")); } else if (HeroSelectorViewModels.First(v => v.Id == firstBanId).SelectedItemInfo == null) { HeroSelectorViewModels.First(v => v.Id == firstBanId).Select(L("NO_CHOOSE")); } if (!HeroSelectorViewModels.First(v => v.Id == secondBanId).InteractionVisible) { var vm = HeroSelectorViewModels.First(v => v.Id == secondBanId); vm.InteractionVisible = true; vm.Select(L("NO_CHOOSE")); } else if (HeroSelectorViewModels.First(v => v.Id == secondBanId).SelectedItemInfo == null) { HeroSelectorViewModels.First(v => v.Id == secondBanId).Select(L("NO_CHOOSE")); } BpStatus.CurrentStep = _listBpSteps[2].Contains(pointIndex) ? 2 : 7; }
public void ForceFirstPickProcess() { var secondBanId = _listBpSteps[1].First(); if (BpStatus.CurrentStep == 1) { if (HeroSelectorViewModels.First(v => v.Id == secondBanId).SelectedItemInfo == null) { HeroSelectorViewModels.First(v => v.Id == secondBanId).Select(L("NO_CHOOSE")); HeroSelectorViewModels.First(v => v.Id == secondBanId).ConfirmSelection(); } } }
private void ForceFourthBanProcess() { var firstBanId = _listBpSteps[5].First(); var secondBanId = _listBpSteps[6].First(); if (!HeroSelectorViewModels.First(v => v.Id == secondBanId).InteractionVisible) { if (HeroSelectorViewModels.First(v => v.Id == firstBanId).SelectedItemInfo == null) { HeroSelectorViewModels.First(v => v.Id == firstBanId).Select(L("NO_CHOOSE")); HeroSelectorViewModels.First(v => v.Id == firstBanId).ConfirmSelection(); } } }
public void ShowHeroSelector(int pointIndex, string name = null) { if (!HeroSelectorViewModels.Any()) { PopulateCachedHeroSelectorWindows(); } if ((_listBpSteps[2].Contains(pointIndex) || _listBpSteps[7].Contains(pointIndex)) && name != null) { PopulateBanSelector(pointIndex); } var vm = HeroSelectorViewModels.First(v => v.Id == pointIndex); vm.InteractionVisible = true; if (name != null) { var heroInUi = vm.ItemsInfos.First( m => m.Id == App.OcrHeroInfos.First(om => om.Name == name).Id.ToString()).Name; vm.Select(heroInUi); vm.ConfirmSelection(); } }
public void Handle(ItemSelectedMessage message) { try { if (message.ItemInfo == null) { if (IsAutoMode || BpStatus.CurrentStep <= 0) { return; } if (BpStatus.StepSelectedIndex.Any()) { foreach (var i in _listBpSteps[BpStatus.CurrentStep]) { var vm = HeroSelectorViewModels.First(v => v.Id == i); vm.Selected = false; vm.SelectedItemInfo = null; } BpStatus.StepSelectedIndex.Clear(); } else { foreach (var i in _listBpSteps[BpStatus.CurrentStep]) { var vm = HeroSelectorViewModels.First(v => v.Id == i); vm.InteractionVisible = false; } BpStatus.CurrentStep--; { var i = _listBpSteps[BpStatus.CurrentStep].Last(); var vm = HeroSelectorViewModels.First(v => v.Id == i); vm.Selected = false; vm.SelectedItemInfo = null; if (_listBpSteps[BpStatus.CurrentStep].Count > 1) { var vmSelected = HeroSelectorViewModels.First(v => v.Id != _listBpSteps[BpStatus.CurrentStep].First()); if (vmSelected != null) { BpStatus.StepSelectedIndex = new HashSet <int>() { vmSelected.Id } } ; else { BpStatus.StepSelectedIndex.Clear(); } } else { BpStatus.StepSelectedIndex.Clear(); } } } InvokeScript("update", new List <Tuple <string, string> > { Tuple.Create("chose", string.Join("|", HeroSelectorViewModels .Where(vm => vm.SelectedItemInfo != null) .Select(vm => vm.SelectedItemInfo.Id))), Tuple.Create("map", BpStatus.Map), Tuple.Create("lang", App.Language) }); return; } var idList = new List <string>(); foreach (var vm in HeroSelectorViewModels) { if (vm.SelectedItemInfo != null) { idList.Add(vm.SelectedItemInfo.Id); } } if (App.CustomConfigurationSettings.UploadBanSample && BanSteps.Contains(message.SelectorId) && !string.IsNullOrEmpty(message.ItemInfo?.Id) && message.ItemInfo.Id != "0") { if (_lastIds[message.SelectorId] != message.ItemInfo?.Id) { Task.Run(() => UploadSampleAsync(message.ItemInfo.Id, BanSteps.IndexOf(message.SelectorId))); _lastIds[message.SelectorId] = message.ItemInfo?.Id; } } InvokeScript("update", new List <Tuple <string, string> > { Tuple.Create("chose", string.Join("|", idList)), Tuple.Create("map", BpStatus.Map), Tuple.Create("lang", App.Language) }); if (BpStatus.StepSelectedIndex.Contains(message.SelectorId) || // 修改本轮选过的英雄 !_listBpSteps[BpStatus.CurrentStep].Contains(message.SelectorId)) // 修改其他轮选过的英雄 { // 修改英雄选择,无需处理 } else { // 新英雄选择,判断本轮是否已选够英雄 BpStatus.StepSelectedIndex.Add(message.SelectorId); if (BpStatus.StepSelectedIndex.Count == _listBpSteps[BpStatus.CurrentStep].Count) { // 选够了,下一步 if (BpStatus.CurrentStep < 9) { BpStatus.CurrentStep++; ProcessStep(); } } } } catch (Exception) { // TODO Ignore for test, please remove the catch } }