diff --git a/DrawPool/DisplayControl.xaml b/DrawPool/DisplayControl.xaml index 0238c34..e600d5d 100644 --- a/DrawPool/DisplayControl.xaml +++ b/DrawPool/DisplayControl.xaml @@ -9,6 +9,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:props="clr-namespace:DrawPool.Properties" xmlns:themes="clr-namespace:Hearthstone_Deck_Tracker.Utility.Themes;assembly=HearthstoneDeckTracker" + VerticalAlignment="Top" FontStretch="Normal" Grid.IsSharedSizeScope="True" ScrollViewer.VerticalScrollBarVisibility="Auto" @@ -21,14 +22,11 @@ - - + diff --git a/DrawPool/DrawLogic/ElvenMinstrelControl.cs b/DrawPool/DrawLogic/ElvenMinstrelControl.cs index ef45b68..620bd82 100644 --- a/DrawPool/DrawLogic/ElvenMinstrelControl.cs +++ b/DrawPool/DrawLogic/ElvenMinstrelControl.cs @@ -41,7 +41,7 @@ public ElvenMinstrelControl() /// Returns the list of Minions Grouped by their Counts, for statistical purposes. /// /// The list of Minions Grouped by their Counts, for statistical purposes - internal List> GroupedMinion() => QueryDeck.GroupBy(c => c.Count).OrderByDescending(grp => grp.Count()).ToList(); + internal List> GroupedMinion() => QueryDeck.GroupBy(c => c.Count).OrderByDescending(grp => grp.Count()).OrderBy(g => g.Key).ToList(); /// @@ -60,27 +60,18 @@ public void DoMath() lblDeckMix.Content = WriteDeckMix(MinionCount(), Core.Game.Player.DeckCount); if (MinionCount() >= 1) { + lblProbability.Content = ""; var gm = GroupedMinion(); // Next, figure out our odds - lblProbability.Content = WriteDrawProbability( - gm.First>().First().Count, - MinionCount(), - 2); + lblProbability.Content = WriteDrawProbability(gm.First>().First().Count, MinionCount(), 2); if (gm.Count >= 2) { lblProbability.Content += " "; - lblProbability.Content += WriteDrawProbability( - gm[1].First().Count, - MinionCount(), - 2); - + lblProbability.Content += WriteDrawProbability(gm[1].First().Count, MinionCount(), 2); if (gm.Count >= 3) { lblProbability.Content += " "; - lblProbability.Content += WriteDrawProbability( - gm.Last>().First().Count, - MinionCount(), - 2); + lblProbability.Content += WriteDrawProbability(gm.Last>().First().Count, MinionCount(), 2); } } } @@ -129,7 +120,11 @@ public List BuildQueryDeck() c.Type == "Minion" && (c.Count - c.InHandCount) > 0 ) - .ToList().FixCreatedCards(); + .OrderBy(c => c.Cost) + .ThenBy(c => c.Count) + .ThenBy(c => c.Name) + .ToList() + .FixCreatedCards(); var dups = playerDeck .GroupBy(c => c.Id) @@ -151,7 +146,7 @@ public List BuildQueryDeck() } } playerDeck.RemoveAll(c => c.Count == 0); - return playerDeck.ToList(); + return playerDeck; } } } \ No newline at end of file diff --git a/DrawPool/DrawLogic/WhichwoodPiper.cs b/DrawPool/DrawLogic/WhichwoodPiper.cs deleted file mode 100644 index 2c067be..0000000 --- a/DrawPool/DrawLogic/WhichwoodPiper.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace DrawPool -{ - internal class WhichwoodPiper : IDraw - { - public string CardId { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } - } -} \ No newline at end of file diff --git a/DrawPool/DrawLogic/WitchWoodPiperControl.cs b/DrawPool/DrawLogic/WitchWoodPiperControl.cs index e7b3447..208c669 100644 --- a/DrawPool/DrawLogic/WitchWoodPiperControl.cs +++ b/DrawPool/DrawLogic/WitchWoodPiperControl.cs @@ -48,14 +48,18 @@ public WitchWoodPiperControl() /// The scoped list of Cards internal List BuildQueryDeck() { - return Core.Game.Player.PlayerCardList - .Where(c => c.Type == "Minion" && (c.Count - c.InHandCount) > 0) - .OrderBy(c => c.Cost) - .ThenBy(c => c.Count) - .ThenBy(c => c.Name) - .GroupBy(c => c.Cost) - .First() - .ToList(); + var cd= Core.Game.Player.PlayerCardList + .Where( + c => c.Type == "Minion" + && (c.Count - c.InHandCount) > 0 + ) + .OrderBy(c => c.Cost) + .ThenBy(c => c.Count) + .ThenBy(c => c.Name) + .GroupBy(c => c.Cost) + .First() + .ToList(); + return cd; } /// @@ -71,18 +75,24 @@ public void DoMath() { lblProbability.Content = ""; lblDeckMix.Content = WriteDeckMix(MinionCount(), Core.Game.Player.DeckCount); - if (QueryDeck.Count == 1 || QueryDeck.Count== MinionCount()) + if (QueryDeck.Count == 1 || QueryDeck.Count == MinionCount()) { lblProbability.Content = WriteDrawProbability(1, MinionCount(), 1); } - else if (QueryDeck.Count >= 2) - { - lblProbability.Content += " "; - lblProbability.Content += WriteDrawProbability(QueryDeck[1].Count, MinionCount(), 1); - if (QueryDeck.Count > 3) + else { + if (QueryDeck.Count >= 1) + { + lblProbability.Content = WriteDrawProbability(1, MinionCount(), 1); + } + if (QueryDeck.Count >= 2) { lblProbability.Content += " "; - lblProbability.Content += WriteDrawProbability(QueryDeck.Last().Count, MinionCount(), 1); + lblProbability.Content += WriteDrawProbability(QueryDeck[1].Count, MinionCount(), 1); + if (QueryDeck.Count >= 3) + { + lblProbability.Content += " "; + lblProbability.Content += WriteDrawProbability(QueryDeck.Last().Count, MinionCount(), 1); + } } } } diff --git a/DrawPool/DrawPoolWindow.xaml b/DrawPool/DrawPoolWindow.xaml index 061e6e6..8f7efd1 100644 --- a/DrawPool/DrawPoolWindow.xaml +++ b/DrawPool/DrawPoolWindow.xaml @@ -13,14 +13,12 @@ xmlns:themes="clr-namespace:Hearthstone_Deck_Tracker.Utility.Themes;assembly=HearthstoneDeckTracker" Title="Drawpool" MinWidth="200" - MinHeight="200" + MinHeight="150" MaxWidth="300" Padding="0" AutomationProperties.Name="Drawpool" BorderThickness="1" Focusable="True" - FontFamily="Segoe UI Semibold" - Foreground="White" Grid.IsSharedSizeScope="True" IsCloseButtonEnabled="False" IsMaxRestoreButtonEnabled="False" @@ -41,7 +39,7 @@ SizeToContent="WidthAndHeight" SnapsToDevicePixels="True" TextOptions.TextFormattingMode="Display" - TitleAlignment="Center" + TitleAlignment="Left" TitleCaps="False" Top="{Binding Source={x:Static props:Settings.Default}, Path=Top, Mode=TwoWay}" Topmost="True"> @@ -70,6 +68,7 @@ diff --git a/DrawPool/UserOptionsControl.xaml b/DrawPool/UserOptionsControl.xaml index 4976660..dc457a1 100644 --- a/DrawPool/UserOptionsControl.xaml +++ b/DrawPool/UserOptionsControl.xaml @@ -11,6 +11,7 @@ xmlns:props="clr-namespace:DrawPool.Properties" xmlns:sys="clr-namespace:System;assembly=mscorlib" MinWidth="200" + MinHeight="150" Margin="2" Background="Transparent" Grid.IsSharedSizeScope="True" diff --git a/ReadMe.md b/ReadMe.md index 84fd6d6..0afa78b 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -33,4 +33,7 @@ I hope to add in the mechanics for [Recruit](https://hearthstone.gamepedia.com/R ## Configuration -You can set where the window is displayed when the player hand hovers over the trigger card from the Options => Plug-in menu \ No newline at end of file + +* You can see and/or set where the window is displayed when the player hand hovers over the trigger card from the Options => Plug-in menu + +* You can also set the windows opacity, as well as which Drawpool modules to use. diff --git a/images/DrawpoolOptions.png b/images/DrawpoolOptions.png new file mode 100644 index 0000000..f3ebcbc Binary files /dev/null and b/images/DrawpoolOptions.png differ diff --git a/images/MinstrelDisplaySample.png b/images/MinstrelDisplaySample.png index 177c85a..7acd60a 100644 Binary files a/images/MinstrelDisplaySample.png and b/images/MinstrelDisplaySample.png differ diff --git a/images/PiperDisplaySample.png b/images/PiperDisplaySample.png index 91709c7..30db31e 100644 Binary files a/images/PiperDisplaySample.png and b/images/PiperDisplaySample.png differ