diff --git a/Hearthstone Deck Tracker/Controls/Overlay/BattlegroundsMinions.xaml b/Hearthstone Deck Tracker/Controls/Overlay/BattlegroundsMinions.xaml
index 806d16975..5dc877839 100644
--- a/Hearthstone Deck Tracker/Controls/Overlay/BattlegroundsMinions.xaml
+++ b/Hearthstone Deck Tracker/Controls/Overlay/BattlegroundsMinions.xaml
@@ -17,6 +17,7 @@
+
_availableTiers = BattlegroundsUtils.GetAvailableTiers(null);
+ public void SetAvailableTiers(HashSet tiers)
+ {
+ _availableTiers = tiers;
+ for(var i = 0; i < 7; i++)
+ _tierIcons[i].SetAvailable(_availableTiers.Contains(i + 1));
+ }
+
public void Reset()
{
+ _availableTiers = BattlegroundsUtils.GetAvailableTiers(null);
+ for(var i = 0; i < 7; i++)
+ _tierIcons[i].SetAvailable(_availableTiers.Contains(i + 1));
Update(0, _db.Value.Races);
}
@@ -74,15 +85,16 @@ private void Update(int tier, IEnumerable availableRaces)
ActiveTier = tier;
foreach(var item in _tierIcons)
item.Active = tier == item.Tier;
- if(tier < 1 || tier > 6)
+
+ if(tier < 1 || tier > 7)
{
- for(var i = 0; i < 6; i++)
+ for(var i = 0; i < 7; i++)
_tierIcons[i].SetFaded(false);
Groups.Clear();
UnavailableTypes.UnavailableTypesVisibility = System.Windows.Visibility.Collapsed;
return;
}
- for(var i = 0; i < 6; i++)
+ for(var i = 0; i < 7; i++)
_tierIcons[i].SetFaded(i != tier - 1);
var resort = false;
diff --git a/Hearthstone Deck Tracker/Controls/Overlay/BattlegroundsTier.xaml.cs b/Hearthstone Deck Tracker/Controls/Overlay/BattlegroundsTier.xaml.cs
index 9a690a0e8..c939a31c2 100644
--- a/Hearthstone Deck Tracker/Controls/Overlay/BattlegroundsTier.xaml.cs
+++ b/Hearthstone Deck Tracker/Controls/Overlay/BattlegroundsTier.xaml.cs
@@ -57,7 +57,6 @@ public bool Active
}
private bool _faded;
-
public void SetFaded(bool faded)
{
if(faded == _faded || Active)
@@ -66,6 +65,15 @@ public void SetFaded(bool faded)
Update(true);
}
+ private bool _available = true;
+ public void SetAvailable(bool available)
+ {
+ if(available == _available)
+ return;
+ _available = available;
+ Update(true);
+ }
+
private void Update(bool updateRemove)
{
if(updateRemove)
@@ -77,7 +85,11 @@ private void Update(bool updateRemove)
private double GetOpacity()
{
- if(Active || _hovering || !_faded)
+ if(Active)
+ return 1;
+ if(!_available)
+ return _hovering ? 0.6 : 0.3;
+ if(_hovering || !_faded)
return 1;
return 0.3;
}
diff --git a/Hearthstone Deck Tracker/Hearthstone/BattlegroundsUtils.cs b/Hearthstone Deck Tracker/Hearthstone/BattlegroundsUtils.cs
index 389262f92..3bb5be6b5 100644
--- a/Hearthstone Deck Tracker/Hearthstone/BattlegroundsUtils.cs
+++ b/Hearthstone Deck Tracker/Hearthstone/BattlegroundsUtils.cs
@@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using static HearthDb.CardIds;
namespace Hearthstone_Deck_Tracker.Hearthstone
{
@@ -10,11 +11,11 @@ public static class BattlegroundsUtils
{
private static readonly Dictionary> _availableRacesCache = new Dictionary>();
- const string UntransformedArannaCardid = HearthDb.CardIds.NonCollectible.Neutral.ArannaStarseekerTavernBrawl1;
- const string TransformedArannaCardid = HearthDb.CardIds.NonCollectible.Neutral.ArannaStarseeker_ArannaUnleashedTokenTavernBrawl;
+ const string UntransformedArannaCardid = NonCollectible.Neutral.ArannaStarseekerTavernBrawl1;
+ const string TransformedArannaCardid = NonCollectible.Neutral.ArannaStarseeker_ArannaUnleashedTokenTavernBrawl;
- const string UntransformedQueenAzshara = HearthDb.CardIds.NonCollectible.Neutral.QueenAzsharaBATTLEGROUNDS;
- const string TransformedQueenAzshara = HearthDb.CardIds.NonCollectible.Neutral.QueenAzshara_NagaQueenAzsharaToken;
+ const string UntransformedQueenAzshara = NonCollectible.Neutral.QueenAzsharaBATTLEGROUNDS;
+ const string TransformedQueenAzshara = NonCollectible.Neutral.QueenAzshara_NagaQueenAzsharaToken;
private static readonly Dictionary TransformableHeroCardidTable = new Dictionary()
{
@@ -48,5 +49,13 @@ private static HashSet? AvailableRaces
}
public static string GetOriginalHeroId(string heroId) => TransformableHeroCardidTable.TryGetValue(heroId, out var mapped) ? mapped : heroId;
+
+ public static HashSet GetAvailableTiers(string? anomalyCardId) => anomalyCardId switch
+ {
+ NonCollectible.Neutral.BigLeague => new HashSet { 3, 4, 5, 6 },
+ NonCollectible.Neutral.LittleLeague => new HashSet { 1, 2, 3, 4 },
+ NonCollectible.Invalid.SecretsOfNorgannon => new HashSet { 1, 2, 3, 4, 5, 6, 7 },
+ _ => new HashSet { 1, 2, 3, 4, 5, 6 },
+ };
}
}
diff --git a/Hearthstone Deck Tracker/Resources/tier-7.png b/Hearthstone Deck Tracker/Resources/tier-7.png
new file mode 100644
index 000000000..bda1872e3
Binary files /dev/null and b/Hearthstone Deck Tracker/Resources/tier-7.png differ
diff --git a/Hearthstone Deck Tracker/Windows/OverlayWindow.xaml.cs b/Hearthstone Deck Tracker/Windows/OverlayWindow.xaml.cs
index c427420fd..06dca1811 100644
--- a/Hearthstone Deck Tracker/Windows/OverlayWindow.xaml.cs
+++ b/Hearthstone Deck Tracker/Windows/OverlayWindow.xaml.cs
@@ -452,6 +452,11 @@ internal void HideBattlegroundsHeroPanel()
internal void ShowBgsTopBar()
{
TurnCounter.Visibility = Config.Instance.ShowBattlegroundsTurnCounter ? Visible : Collapsed;
+
+ var anomalyDbfId = _game.GameEntity?.GetTag(GameTag.BACON_GLOBAL_ANOMALY_DBID);
+ var anomalyCardId = anomalyDbfId.HasValue ? Database.GetCardFromDbfId(anomalyDbfId.Value)?.Id : null;
+ BattlegroundsMinionsPanel.SetAvailableTiers(BattlegroundsUtils.GetAvailableTiers(anomalyCardId));
+
BattlegroundsMinionsPanel.Visibility = Config.Instance.ShowBattlegroundsTiers ? Visible : Collapsed;
_bgsTopBarBehavior.Show();