Ejemplo n.º 1
0
        private void ShowPredefinedRangesView(object obj)
        {
            PreDefinedRangesRequest.Raise(new PreDefinedRangesNotifcation()
            {
                Title = "Pre-Defined Ranges"
            },
                                          returned =>
            {
                if (returned != null && returned.ItemsList != null)
                {
                    Reset(null);

                    foreach (var s in returned.ItemsList)
                    {
                        var current = PreflopSelectorItems.FirstOrDefault(x => x.Caption.Equals(s));

                        if (current != null && current.IsEnabled)
                        {
                            current.IsSelected = true;
                            current.HandUpdateAndRefresh();
                        }
                    }

                    UpdateSlider();
                }
            });
        }
Ejemplo n.º 2
0
        private decimal GetSpecificRangePercentage(EquitySelectionMode equitySelectionMode)
        {
            var totalCombos = PreflopSelectorItems
                              .Where(x => x.EquitySelectionMode.HasValue)
                              .Sum(x => x.Combos);

            var rangeCombos = 0;

            switch (equitySelectionMode)
            {
            case DriveHUD.ViewModels.EquitySelectionMode.FoldCheck:
                rangeCombos = FoldCheckCombos;
                break;

            case DriveHUD.ViewModels.EquitySelectionMode.Bluff:
                rangeCombos = BluffCombos;
                break;

            case DriveHUD.ViewModels.EquitySelectionMode.Call:
                rangeCombos = CallCombos;
                break;

            case DriveHUD.ViewModels.EquitySelectionMode.ValueBet:
                rangeCombos = ValueBetCombos;
                break;
            }

            return(rangeCombos == totalCombos || totalCombos == 0 ?
                   (decimal)rangeCombos / TotalPossibleCombos :
                   (decimal)rangeCombos / totalCombos);
        }
Ejemplo n.º 3
0
        private void OnAltClick(object obj)
        {
            if (!(obj is EquityRangeSelectorItemViewModel item))
            {
                return;
            }

            int firstCardIndex = RanksLength - (int)item.FisrtCard - 1;

            TemporaryPreflopSelectorItems = new List <RangeSelectorItemViewModel>();

            int i = item.ItemType.Equals(RangeSelectorItemType.Pair) ? 0 : firstCardIndex + 1;

            for (; i < RanksLength; i++)
            {
                switch (item.ItemType)
                {
                case RangeSelectorItemType.Suited:
                    TemporaryPreflopSelectorItems.Add(PreflopSelectorItems.ElementAt(firstCardIndex * RanksLength + i));
                    break;

                case RangeSelectorItemType.OffSuited:
                    TemporaryPreflopSelectorItems.Add(PreflopSelectorItems.ElementAt(i * RanksLength + firstCardIndex));
                    break;

                case RangeSelectorItemType.Pair:
                    TemporaryPreflopSelectorItems.Add(PreflopSelectorItems.ElementAt(i * RanksLength + i));
                    break;
                }
                if (TemporaryPreflopSelectorItems.LastOrDefault() != null)
                {
                    if (TemporaryPreflopSelectorItems.LastOrDefault() == item)
                    {
                        break;
                    }
                }
            }

            TemporaryPreflopSelectorItems.ForEach(x =>
            {
                x.IsSelected = true;
                x.HandUpdateAndRefresh();
            });

            SelectedItem = item;
            SelectedItem.IsMainInSequence = true;
            SuitsForCaption = string.Join(",", this.TemporaryPreflopSelectorItems.Select(x => x.Caption));

            UpdateSlider();
        }
Ejemplo n.º 4
0
        private void Reset(object obj)
        {
            foreach (var item in PreflopSelectorItems.Where(x => x.IsSelected))
            {
                item.IsSelected = false;
            }

            if (SelectedItem != null)
            {
                SelectedItem.IsMainInSequence = false;
                SelectedItem = null;
            }

            UpdateSlider();
        }
Ejemplo n.º 5
0
        private void OnAutoRange(object obj)
        {
            if (source == null || !(_notification.CardsContainer is PlayerModel playerModel))
            {
                return;
            }

            var heroAutoRange = source.GetHeroAutoRange(playerModel.PlayerName);

            if (heroAutoRange == null)
            {
                return;
            }

            var mergeResult = (from range in PreflopSelectorItems
                               join heroRange in heroAutoRange on range.Caption equals heroRange.Caption
                               select new { Existing = range, Auto = heroRange }).ToArray();

            PreflopSelectorItems.ChangeTrackingEnabled = false;

            PreflopSelectorItems.ForEach(x =>
            {
                x.IsSelected = false;
            });

            foreach (var mergeItem in mergeResult)
            {
                mergeItem.Existing.IsSelected = true;
                mergeItem.Existing.SetEquitySelectionMode(mergeItem.Auto.EquitySelectionMode);

                var handSuitsMergeResult = (from existingHandSuit in mergeItem.Existing.HandSuitsModelList
                                            join autoHandSuit in mergeItem.Auto.HandSuitsModelList on existingHandSuit.HandSuit equals autoHandSuit.HandSuit
                                            select new { Existing = existingHandSuit, Auto = autoHandSuit }).ToArray();

                handSuitsMergeResult.ForEach(x =>
                {
                    x.Existing.SelectionMode = x.Auto.SelectionMode;
                });

                mergeItem.Existing.HandUpdate();
            }

            PreflopSelectorItems.ChangeTrackingEnabled = true;

            UpdateSlider();
            CombosRaisePropertyChanged();
        }
Ejemplo n.º 6
0
        private void SelectAllPairs(object obj)
        {
            for (int i = 0; i < RanksLength; i++)
            {
                var item = PreflopSelectorItems.ElementAt(i * RanksLength + i);

                if (!item.IsEnabled)
                {
                    continue;
                }

                item.IsSelected = true;
                item.HandUpdateAndRefresh();
            }

            SelectedItem = new EquityRangeSelectorItemViewModel();

            UpdateSlider();
        }
Ejemplo n.º 7
0
        private void OnCtrlClick(object obj)
        {
            if (!(obj is EquityRangeSelectorItemViewModel item))
            {
                return;
            }

            int firstCardIndex  = RanksLength - (int)item.FisrtCard - 1;
            int secondCardIndex = RanksLength - (int)item.SecondCard - 1;

            TemporaryPreflopSelectorItems = new List <RangeSelectorItemViewModel>();

            for (int i = 0; i < RanksLength; i++)
            {
                if (item.ItemType.Equals(RangeSelectorItemType.Suited))
                {
                    TemporaryPreflopSelectorItems.Add(PreflopSelectorItems.ElementAt(i * RanksLength + secondCardIndex));
                    TemporaryPreflopSelectorItems.Add(PreflopSelectorItems.ElementAt(firstCardIndex * RanksLength + i));
                }
                else
                {
                    TemporaryPreflopSelectorItems.Add(PreflopSelectorItems.ElementAt(i * RanksLength + firstCardIndex));
                    TemporaryPreflopSelectorItems.Add(PreflopSelectorItems.ElementAt(secondCardIndex * RanksLength + i));
                }
            }

            TemporaryPreflopSelectorItems.ForEach(x =>
            {
                x.IsSelected = true;
                x.HandUpdateAndRefresh();
            });

            SelectedItem = item;
            SelectedItem.IsMainInSequence = true;
            HandSuitsViewModel.SetAllVisible(SelectedItem.HandSuitsModelList);
            SuitsForCaption = string.Join(",", TemporaryPreflopSelectorItems.Select(x => x.Caption));

            UpdateSlider();
        }
Ejemplo n.º 8
0
        private void UpdateSlider()
        {
            _isSliderManualMove = false;

            var combos = PreflopSelectorItems.Where(x => !x.IsMainInSequence).Sum(model => model.HandSuitsModelList.Count(x => x.IsVisible && x.IsSelected));

            var mainSequnceItem = PreflopSelectorItems.FirstOrDefault(x => x.IsMainInSequence);

            if (mainSequnceItem != null)
            {
                combos += mainSequnceItem.Combos;
            }

            double prct = Math.Round((double)combos * 100 / TotalPossibleCombos, 1);

            SliderValue        = (int)prct * 10;
            SelectedPercentage = prct;

            _isSliderManualMove = true;

            RefreshHandsStatistic();
        }
Ejemplo n.º 9
0
        private void RefreshHandsStatistic()
        {
            var rangeItems = PreflopSelectorItems.Where(x => x.IsSelected).ToArray();

            var totalCombos = rangeItems.Sum(x => x.Combos);
            var ranges      = rangeItems.Select(x => x.Caption).ToList();

            var combosByHandType = source.GetCombosByHandType(ranges);

            foreach (var handStatistic in HandStatistics)
            {
                if (combosByHandType.ContainsKey(handStatistic.HandType))
                {
                    handStatistic.Combos = combosByHandType[handStatistic.HandType];
                }
                else
                {
                    handStatistic.Combos = 0;
                }
            }

            HandStatistics.ForEach(x => x.TotalCombos = totalCombos);
        }
Ejemplo n.º 10
0
        private void InitializePreflopSelectorItems()
        {
            var rankValues = Enum.GetValues(typeof(RangeCardRank))
                             .Cast <RangeCardRank>()
                             .Where(x => x != RangeCardRank.None)
                             .Reverse()
                             .ToArray();

            for (var i = 0; i < rankValues.Length; i++)
            {
                var startS = false;

                for (var j = 0; j < rankValues.Length; j++)
                {
                    var card1 = i < j?rankValues.ElementAt(i) : rankValues.ElementAt(j);

                    var card2 = i < j?rankValues.ElementAt(j) : rankValues.ElementAt(i);

                    if (startS)
                    {
                        PreflopSelectorItems.Add(new EquityRangeSelectorItemViewModel(card1, card2, RangeSelectorItemType.Suited));
                    }
                    else
                    {
                        if (!card1.Equals(card2))
                        {
                            PreflopSelectorItems.Add(new EquityRangeSelectorItemViewModel(card1, card2, RangeSelectorItemType.OffSuited));
                        }
                        else
                        {
                            PreflopSelectorItems.Add(new EquityRangeSelectorItemViewModel(card1, card2, RangeSelectorItemType.Pair));
                            startS = true;
                        }
                    }
                }
            }
        }
Ejemplo n.º 11
0
        private void Save(object obj)
        {
            if (SelectedItem != null && SelectedItem.IsMainInSequence)
            {
                //update suites
                SelectedItem = new EquityRangeSelectorItemViewModel();
            }

            _notification.CardsContainer.Ranges = new List <EquityRangeSelectorItemViewModel>(PreflopSelectorItems.Where(x => x.IsSelected));
            _notification.Confirmed             = true;

            FinishInteraction();
        }