diff --git a/Graveyard/FizzleView.cs b/Graveyard/FizzleView.cs index 24dcc23..0ec8881 100644 --- a/Graveyard/FizzleView.cs +++ b/Graveyard/FizzleView.cs @@ -31,7 +31,10 @@ public override bool Update(Card card) { Cards.AddRange(Core.Game.Player.Hand.OrderBy(e => e.ZonePosition).Select(e => Database.GetCardFromId(e.CardId))); } - else if (card.Id == SnapshotId) + else if (card.Id == SnapshotId + && Core.Game.Player.PlayerEntities + .Where(x => x.CardId == SnapshotId && (x.IsInHand || x.IsInDeck)) + .Count() == 0) { Cards.Clear(); } diff --git a/Graveyard/Graveyard.cs b/Graveyard/Graveyard.cs index 942ea25..a654972 100644 --- a/Graveyard/Graveyard.cs +++ b/Graveyard/Graveyard.cs @@ -1,10 +1,9 @@ -using Hearthstone_Deck_Tracker.API; -using Hearthstone_Deck_Tracker.Enums; using System.Collections.Generic; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Media; +using static HearthDb.CardIds.Collectible; using Card = Hearthstone_Deck_Tracker.Hearthstone.Card; using Core = Hearthstone_Deck_Tracker.API.Core; @@ -149,7 +148,7 @@ public void Dispose() Input.Dispose(); } - public void Clear() + public void ClearUI() { FriendlyPanel.Children.Clear(); EnemyPanel.Children.Clear(); @@ -178,14 +177,23 @@ public void Update() } } - /** + private IEnumerable _PlayerCardList = null; + private IEnumerable PlayerCardList => _PlayerCardList ?? (_PlayerCardList = Core.Game.Player.PlayerCardList.Concat(PlayerETCBand)); + private IEnumerable PlayerETCBand => Core.Game.Player.PlayerSideboardsDict + .Where(s => s.OwnerCardId == Neutral.ETCBandManager) + .FirstOrDefault() + .Cards; + + /** * Clear then recreate all Views. */ - public void Reset() + public void Reset() { - Clear(); + ClearUI(); + + _PlayerCardList = null; - if ((Core.Game.IsInMenu && Hearthstone_Deck_Tracker.Config.Instance.HideInMenu) || Core.Game.IsBattlegroundsMatch || Core.Game.IsMercenariesMatch) + if ((Core.Game.IsInMenu && Hearthstone_Deck_Tracker.Config.Instance.HideInMenu) || Core.Game.IsBattlegroundsMatch || Core.Game.IsMercenariesMatch) { // don't initialize in menu unless the overlay is visible // don't show graveyard for Battlegrounds or Mercenaries @@ -217,7 +225,7 @@ public void Reset() // Show "demo mode" when overlay is visible in menu if (Core.Game.IsInMenu) { - foreach (var card in Core.Game.Player.PlayerCardList) + foreach (var card in PlayerCardList) { if (card != null) { @@ -233,7 +241,7 @@ public void Reset() private ViewBase InitializeView(Panel parent, ViewConfig config, bool isDefault = false) { - var view = new ViewBuilder(config, Core.Game.Player.PlayerCardList).BuildView(); + var view = new ViewBuilder(config, PlayerCardList).BuildView(); if (view == null) return null; config.RegisterView(view, isDefault); diff --git a/Graveyard/Properties/AssemblyInfo.cs b/Graveyard/Properties/AssemblyInfo.cs index 268c377..98f91d6 100644 --- a/Graveyard/Properties/AssemblyInfo.cs +++ b/Graveyard/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.14.2.0")] -[assembly: AssemblyFileVersion("1.14.2.0")] +[assembly: AssemblyVersion("1.14.3.0")] +[assembly: AssemblyFileVersion("1.14.3.0")]