public void HudPlainStatBoxViewModelToolCanBeSerializedDeserializedWithProtobuf() { var hudLayoutToolExpected = new HudLayoutPlainBoxTool { Stats = new ReactiveList <StatInfo> { new StatInfo { Stat = Stat.VPIP }, new StatInfo { Stat = Stat.PFR }, new StatInfo { Stat = Stat.S3Bet }, new StatInfo { Stat = Stat.ColdCall } } }; var hudElement = new HudElementViewModel { Seat = 1, }; var hudToolViewModelExpected = hudLayoutToolExpected.CreateViewModel(hudElement) as HudPlainStatBoxViewModel; hudToolViewModelExpected.Width = 100; hudToolViewModelExpected.Height = 150; hudToolViewModelExpected.Position = new System.Windows.Point(10, 10); hudToolViewModelExpected.Opacity = 50; hudToolViewModelExpected.IsNoteIconEnabled = true; Assert.IsNotNull(hudToolViewModelExpected); var hudToolViewModelActual = SerializerHelper.GetSerializedDeserializedObject(hudToolViewModelExpected); Assert.That(hudToolViewModelActual.Id, Is.EqualTo(hudToolViewModelExpected.Id)); Assert.That(hudToolViewModelActual.ToolType, Is.EqualTo(hudToolViewModelExpected.ToolType)); Assert.That(hudToolViewModelActual.Stats.Count, Is.EqualTo(hudToolViewModelExpected.Stats.Count)); Assert.That(hudToolViewModelActual.Width, Is.EqualTo(hudToolViewModelExpected.Width)); Assert.That(hudToolViewModelActual.Height, Is.EqualTo(hudToolViewModelExpected.Height)); Assert.That(hudToolViewModelActual.Position, Is.EqualTo(hudToolViewModelExpected.Position)); Assert.That(hudToolViewModelActual.Opacity, Is.EqualTo(hudToolViewModelExpected.Opacity)); Assert.That(hudToolViewModelActual.IsNoteIconEnabled, Is.EqualTo(hudToolViewModelExpected.IsNoteIconEnabled)); }
public void HudLayoutPlainBoxToolCanBeSerializedDeserializedWithProtobuf() { var hudLayoutToolExpected = new HudLayoutPlainBoxTool { Stats = new ReactiveList <StatInfo> { new StatInfo { Stat = Stat.VPIP } } }; var hudLayoutToolActual = SerializerHelper.GetSerializedDeserializedObject(hudLayoutToolExpected); Assert.That(hudLayoutToolActual.Id, Is.EqualTo(hudLayoutToolExpected.Id)); Assert.That(hudLayoutToolActual.Stats.Count, Is.EqualTo(hudLayoutToolExpected.Stats.Count)); Assert.That(hudLayoutToolActual.Stats.FirstOrDefault().Stat, Is.EqualTo(hudLayoutToolExpected.Stats.FirstOrDefault().Stat)); }
/// <summary> /// Creates plain stat box view model /// </summary> /// <param name="creationInfo"><see cref="HudToolCreationInfo"/></param> /// <returns>Plain stat box view model</returns> private HudBaseToolViewModel CreatePlainStatBoxTool(HudToolCreationInfo creationInfo) { Check.Require(creationInfo.Layout != null, "Layout isn't defined. Plain stat box has not been created."); var layoutTool = new HudLayoutPlainBoxTool { Stats = new ReactiveList <StatInfo>(), UIPositions = GetHudUIPositions(EnumTableType.HU, EnumTableType.HU, creationInfo.Position) }; layoutTool.UIPositions.ForEach(x => { x.Width = HudDefaultSettings.PlainStatBoxWidth; x.Height = HudDefaultSettings.PlainStatBoxHeight; }); var toolViewModel = layoutTool.CreateViewModel(creationInfo.HudElement); toolViewModel.InitializePositions(); creationInfo.Layout.LayoutTools.Add(layoutTool); return(toolViewModel); }
/// <summary> /// Creates <see cref="HudLayoutInfoV2"/> for tests, all tools must be included /// </summary> /// <returns><see cref="HudLayoutInfoV2"/></returns> private static HudLayoutInfoV2 CreateHudLayoutInfo() { var hudLayoutInfo = new HudLayoutInfoV2 { TableType = EnumTableType.HU, Name = "TestLayout", Filter = new HudLayoutFilter { DataFreshness = 30, TableTypes = new[] { (int)EnumTableType.HU, (int)EnumTableType.Six } }, TrackMeterPositions = new List <HudPositionsInfo> { new HudPositionsInfo { GameType = EnumGameType.MTTHoldem, PokerSite = EnumPokerSites.Bodog, HudPositions = new List <HudPositionInfo> { new HudPositionInfo { Position = new System.Windows.Point(1, 15) } } } } }; var plainBoxTool = new HudLayoutPlainBoxTool { Positions = new List <HudPositionsInfo> { new HudPositionsInfo { GameType = EnumGameType.CashHoldem, HudPositions = new List <HudPositionInfo> { new HudPositionInfo { Position = new System.Windows.Point(1, 1), Seat = 1, Width = 2 } }, PokerSite = EnumPokerSites.Bodog } }, Stats = new ReactiveList <StatInfo> { new StatInfo { Stat = Stat.VPIP } } }; var textboxTool = new HudLayoutTextBoxTool { Text = "Test" }; var fourStatBoxTool = new HudLayoutFourStatsBoxTool { Positions = new List <HudPositionsInfo> { new HudPositionsInfo { GameType = EnumGameType.CashHoldem, HudPositions = new List <HudPositionInfo> { new HudPositionInfo { Position = new System.Windows.Point(1, 1), Seat = 1, Width = 2 } }, PokerSite = EnumPokerSites.Bodog } }, Stats = new ReactiveList <StatInfo> { new StatInfo { Stat = Stat.VPIP } } }; var tiltMeterTool = new HudLayoutTiltMeterTool(); var playerIconTool = new HudLayoutPlayerIconTool(); var graphTool = new HudLayoutGraphTool(); var gaugeIndicatorTool = new HudLayoutGaugeIndicator(); var bumperStickers = new HudLayoutBumperStickersTool(); var heatMap = new HudLayoutHeatMapTool(); hudLayoutInfo.LayoutTools = new List <HudLayoutTool> { plainBoxTool, textboxTool, fourStatBoxTool, tiltMeterTool, playerIconTool, graphTool, gaugeIndicatorTool, bumperStickers, heatMap }; return(hudLayoutInfo); }
private void MigratePlainLayout(HudLayoutInfo layout, HudLayoutInfoV2 layoutInfoV2) { var hudLayoutPlainBoxTool = new HudLayoutPlainBoxTool(); hudLayoutPlainBoxTool.UIPositions = (from seat in Enumerable.Range(1, (int)layout.TableType) let uiPosition = layout.UiPositionsInfo.FirstOrDefault(x => x.Seat == seat) let x = uiPosition != null ? uiPosition.Position.X + uiPositionShiftX : 0 let y = uiPosition != null ? uiPosition.Position.Y : 0 select new HudPositionInfo { Seat = seat, Position = new Point(x, y), Width = uiPosition != null ? uiPosition.Width : HudDefaultSettings.PlainStatBoxWidth, Height = HudDefaultSettings.PlainStatBoxHeight, }).ToList(); var clonedStats = layout.HudStats.Select(x => x.Clone()).ToList(); // insert line breaks if (clonedStats.Count > 4 && clonedStats.All(x => !(x is StatInfoBreak))) { var clonedStatsWithBreaks = new List <StatInfo>(); for (var i = 0; i < clonedStats.Count; i++) { if (i > 0 && i % 4 == 0) { clonedStatsWithBreaks.Add(new StatInfoBreak()); } clonedStatsWithBreaks.Add(clonedStats[i]); } clonedStats = clonedStatsWithBreaks; } hudLayoutPlainBoxTool.Stats = new ReactiveList <StatInfo>(clonedStats); hudLayoutPlainBoxTool.Positions = (from hudPositionsInfo in layout.HudPositionsInfo select new HudPositionsInfo { GameType = hudPositionsInfo.GameType, PokerSite = hudPositionsInfo.PokerSite, HudPositions = (from hudPosition in hudPositionsInfo.HudPositions let offset = GetOffset(hudPositionsInfo.PokerSite, hudPositionsInfo.GameType, layout.TableType, hudPosition.Seat) select new HudPositionInfo { Seat = hudPosition.Seat, Position = new Point(hudPosition.Position.X + offset.X, hudPosition.Position.Y + offset.Y) }).ToList() }).ToList(); var hudLayoutBumperStickersTool = new HudLayoutBumperStickersTool { UIPositions = (from position in hudLayoutPlainBoxTool.UIPositions select new HudPositionInfo { Seat = position.Seat, Position = new Point(position.Position.X, position.Position.Y - HudDefaultSettings.BumperStickersHeight), Width = HudDefaultSettings.BumperStickersWidth, Height = HudDefaultSettings.BumperStickersHeight }).ToList(), Positions = (from positionsInfo in hudLayoutPlainBoxTool.Positions select new HudPositionsInfo { PokerSite = positionsInfo.PokerSite, GameType = positionsInfo.GameType, HudPositions = (from position in positionsInfo.HudPositions select new HudPositionInfo { Seat = position.Seat, Position = new Point(position.Position.X, position.Position.Y - HudDefaultSettings.BumperStickersHeight) }).ToList() }).ToList() }; layoutInfoV2.LayoutTools = new List <HudLayoutTool> { hudLayoutPlainBoxTool, hudLayoutBumperStickersTool }; MigratePopups(layout, layoutInfoV2); }
private void MigrateRichLayout(HudLayoutInfo layout, HudLayoutInfoV2 layoutInfoV2) { // 4-stat box var hudLayout4StatBoxTool = new HudLayoutFourStatsBoxTool { IsVertical = layout.HudViewType != HudViewType.Horizontal, UIPositions = (from seat in Enumerable.Range(1, (int)layout.TableType) let uiPosition = layout.UiPositionsInfo.FirstOrDefault(x => x.Seat == seat) let shiftX = layout.HudViewType != HudViewType.Horizontal && IsRightOriented((int)layout.TableType, seat) ? ui4StatBoxVerticalShiftX : 0 let shiftY = layout.HudViewType == HudViewType.Horizontal ? ui4StatBoxHorizontalShiftY : 0 let x = uiPosition != null ? uiPosition.Position.X + shiftX : 0 let y = uiPosition != null ? uiPosition.Position.Y + shiftY : 0 let width = layout.HudViewType != HudViewType.Horizontal ? HudDefaultSettings.FourStatVerticalBoxWidth : HudDefaultSettings.FourStatBoxWidth let height = layout.HudViewType != HudViewType.Horizontal ? HudDefaultSettings.FourStatVerticalBoxHeight : HudDefaultSettings.FourStatBoxHeight select new HudPositionInfo { Seat = seat, Position = new Point(x, y + uiExtraShiftY), Width = width, Height = height, }).ToList(), Stats = new ReactiveList <StatInfo>(layout.HudStats .Where(x => x.Stat != Stat.PlayerInfoIcon && x.Stat != Stat.LineBreak) .Take(4) .Select(x => x.Clone())), Positions = (from hudPositionsInfo in layout.HudPositionsInfo select new HudPositionsInfo { GameType = hudPositionsInfo.GameType, PokerSite = hudPositionsInfo.PokerSite, HudPositions = (from hudPosition in hudPositionsInfo.HudPositions let shiftX = layout.HudViewType != HudViewType.Horizontal && IsRightOriented((int)layout.TableType, hudPosition.Seat) ? ui4StatBoxVerticalShiftX : 0 let shiftY = layout.HudViewType == HudViewType.Horizontal ? ui4StatBoxHorizontalShiftY : 0 let offset = GetOffset(hudPositionsInfo.PokerSite, hudPositionsInfo.GameType, layout.TableType, hudPosition.Seat) select new HudPositionInfo { Seat = hudPosition.Seat, Position = new Point(hudPosition.Position.X + offset.X + shiftX, hudPosition.Position.Y + offset.Y + shiftY) }).ToList() }).ToList() }; // add line breaks to vertical component var plainBoxStats = layout.HudStats .Where(x => !hudLayout4StatBoxTool.Stats.Any(p => p.Stat == x.Stat)) .Select(x => x.Clone()).ToList(); if (layout.HudViewType == HudViewType.Vertical_1) { var plainBoxStatsTemp = plainBoxStats.Where(x => x.Stat != Stat.LineBreak).ToList(); plainBoxStats = new List <StatInfo>(); for (var i = 0; i < plainBoxStatsTemp.Count; i++) { plainBoxStats.Add(plainBoxStatsTemp[i]); if (i != plainBoxStatsTemp.Count - 1) { plainBoxStats.Add(new StatInfoBreak()); } } } // plain box var hudLayoutPlainBoxTool = new HudLayoutPlainBoxTool { UIPositions = (from seat in Enumerable.Range(1, (int)layout.TableType) let uiPosition = layout.UiPositionsInfo.FirstOrDefault(x => x.Seat == seat) let shiftX = layout.HudViewType == HudViewType.Vertical_1 ? (IsRightOriented((int)layout.TableType, seat) ? uiPlainBoxVertical1RightOrientedShiftX : uiPlainBoxVertical1ShiftX) : 0 let shiftY = layout.HudViewType == HudViewType.Vertical_1 ? uiPlainBoxVerticalShiftY : uiPlainBoxShiftY + ui4StatBoxHorizontalShiftY let x = uiPosition != null ? uiPosition.Position.X + shiftX : 0 let y = uiPosition != null ? uiPosition.Position.Y + shiftY : 0 let width = layout.HudViewType == HudViewType.Vertical_1 ? uiPlainBoxVerticalWidth : HudDefaultSettings.FourStatBoxWidth let height = HudDefaultSettings.PlainStatBoxHeight select new HudPositionInfo { Seat = seat, Position = new Point(x, y + uiExtraShiftY), Width = width, Height = height }).ToList(), Stats = new ReactiveList <StatInfo>(plainBoxStats), Positions = (from hudPositionsInfo in layout.HudPositionsInfo select new HudPositionsInfo { GameType = hudPositionsInfo.GameType, PokerSite = hudPositionsInfo.PokerSite, HudPositions = (from hudPosition in hudPositionsInfo.HudPositions let shiftX = layout.HudViewType == HudViewType.Vertical_1 ? (IsRightOriented((int)layout.TableType, hudPosition.Seat) ? uiPlainBoxVertical1RightOrientedShiftX : uiPlainBoxVertical1ShiftX) : 0 let shiftY = layout.HudViewType == HudViewType.Vertical_1 ? uiPlainBoxVerticalShiftY : uiPlainBoxShiftY + ui4StatBoxHorizontalShiftY let offset = GetOffset(hudPositionsInfo.PokerSite, hudPositionsInfo.GameType, layout.TableType, hudPosition.Seat) select new HudPositionInfo { Seat = hudPosition.Seat, Position = new Point(hudPosition.Position.X + offset.X + shiftX, hudPosition.Position.Y + offset.Y + shiftY) }).ToList() }).ToList() }; // tilt meter var hudLayoutTiltMeterTool = new HudLayoutTiltMeterTool { UIPositions = (from seat in Enumerable.Range(1, (int)layout.TableType) let uiPosition = layout.UiPositionsInfo.FirstOrDefault(x => x.Seat == seat) let shiftX = IsRightOriented((int)layout.TableType, seat) ? uiTiltMeterRightOrientedShiftX : 0 let shiftY = uiTiltMeterShiftY let x = uiPosition != null ? uiPosition.Position.X + shiftX : 0 let y = uiPosition != null ? uiPosition.Position.Y + shiftY : 0 let width = HudDefaultSettings.TiltMeterWidth let height = HudDefaultSettings.TiltMeterHeight select new HudPositionInfo { Seat = seat, Position = new Point(x, y + uiExtraShiftY), Width = width, Height = height }).ToList(), Positions = (from hudPositionsInfo in layout.HudPositionsInfo select new HudPositionsInfo { GameType = hudPositionsInfo.GameType, PokerSite = hudPositionsInfo.PokerSite, HudPositions = (from hudPosition in hudPositionsInfo.HudPositions let shiftX = IsRightOriented((int)layout.TableType, hudPosition.Seat) ? uiTiltMeterRightOrientedShiftX : 0 let shiftY = uiTiltMeterShiftY let offset = GetOffset(hudPositionsInfo.PokerSite, hudPositionsInfo.GameType, layout.TableType, hudPosition.Seat) select new HudPositionInfo { Seat = hudPosition.Seat, Position = new Point(hudPosition.Position.X + offset.X + shiftX, hudPosition.Position.Y + offset.Y + shiftY) }).ToList() }).ToList() }; // player icon var hudLayoutPlayerIconTool = new HudLayoutPlayerIconTool { UIPositions = (from seat in Enumerable.Range(1, (int)layout.TableType) let uiPosition = layout.UiPositionsInfo.FirstOrDefault(x => x.Seat == seat) let shiftX = IsRightOriented((int)layout.TableType, seat) ? uiPlayerIconRightOrientedShiftX : uiPlayerIconShiftX let shiftY = uiPlayerIconShiftY let x = uiPosition != null ? uiPosition.Position.X + shiftX : 0 let y = uiPosition != null ? uiPosition.Position.Y + shiftY : 0 let width = HudDefaultSettings.PlayerIconWidth let height = HudDefaultSettings.PlayerIconHeight select new HudPositionInfo { Seat = seat, Position = new Point(x, y + uiExtraShiftY), Width = width, Height = height }).ToList(), Positions = (from hudPositionsInfo in layout.HudPositionsInfo select new HudPositionsInfo { GameType = hudPositionsInfo.GameType, PokerSite = hudPositionsInfo.PokerSite, HudPositions = (from hudPosition in hudPositionsInfo.HudPositions let shiftX = IsRightOriented((int)layout.TableType, hudPosition.Seat) ? uiPlayerIconRightOrientedShiftX : uiPlayerIconShiftX let shiftY = uiPlayerIconShiftY let offset = GetOffset(hudPositionsInfo.PokerSite, hudPositionsInfo.GameType, layout.TableType, hudPosition.Seat) select new HudPositionInfo { Seat = hudPosition.Seat, Position = new Point(hudPosition.Position.X + offset.X + shiftX, hudPosition.Position.Y + offset.Y + shiftY) }).ToList() }).ToList() }; var hudLayoutGraphTool = new HudLayoutGraphTool { ParentId = hudLayoutPlayerIconTool.Id, Stats = new ReactiveList <StatInfo> { CreateStatInfo(Stat.NetWon) } }; // bumper stickers var hudLayoutBumperStickersTool = new HudLayoutBumperStickersTool { UIPositions = (from seat in Enumerable.Range(1, (int)layout.TableType) let uiPosition = layout.UiPositionsInfo.FirstOrDefault(x => x.Seat == seat) let shiftX = layout.HudViewType == HudViewType.Vertical_1 ? (IsRightOriented((int)layout.TableType, seat) ? uiPlainBoxVertical1RightOrientedShiftX : uiPlainBoxVertical1ShiftX) : 0 let shiftY = layout.HudViewType == HudViewType.Vertical_1 ? uiPlainBoxVerticalShiftY : uiPlainBoxShiftY + ui4StatBoxHorizontalShiftY let x = uiPosition != null ? uiPosition.Position.X + shiftX : 0 let y = (uiPosition != null ? uiPosition.Position.Y + shiftY : 0) + uiBumperStickerShiftY let width = HudDefaultSettings.BumperStickersWidth let height = HudDefaultSettings.BumperStickersHeight select new HudPositionInfo { Seat = seat, Position = new Point(x, y + uiExtraShiftY), Width = width, Height = height }).ToList(), Positions = (from hudPositionsInfo in layout.HudPositionsInfo select new HudPositionsInfo { GameType = hudPositionsInfo.GameType, PokerSite = hudPositionsInfo.PokerSite, HudPositions = (from hudPosition in hudPositionsInfo.HudPositions let shiftX = layout.HudViewType == HudViewType.Vertical_1 ? (IsRightOriented((int)layout.TableType, hudPosition.Seat) ? uiPlainBoxVertical1RightOrientedShiftX : uiPlainBoxVertical1ShiftX) : 0 let shiftY = layout.HudViewType == HudViewType.Vertical_1 ? uiPlainBoxVerticalShiftY : uiPlainBoxShiftY + ui4StatBoxHorizontalShiftY let offset = GetOffset(hudPositionsInfo.PokerSite, hudPositionsInfo.GameType, layout.TableType, hudPosition.Seat) select new HudPositionInfo { Seat = hudPosition.Seat, Position = new Point(hudPosition.Position.X + offset.X + shiftX, hudPosition.Position.Y + offset.Y + shiftY + uiBumperStickerShiftY) }).ToList() }).ToList() }; layoutInfoV2.LayoutTools = new List <HudLayoutTool> { hudLayout4StatBoxTool, hudLayoutPlainBoxTool, hudLayoutTiltMeterTool, hudLayoutPlayerIconTool, hudLayoutGraphTool, hudLayoutBumperStickersTool }; MigratePopups(layout, layoutInfoV2); }