diff --git a/HearthDb/Card.cs b/HearthDb/Card.cs index 43b622d8..e41bbc9e 100644 --- a/HearthDb/Card.cs +++ b/HearthDb/Card.cs @@ -160,9 +160,15 @@ public string GetLocText(Locale lang) private int? _techLevel; public int TechLevel => _techLevel ??= Entity.GetTag(TECH_LEVEL); + private bool? _premium; + public bool Premium => _premium ??= Entity.GetTag(PREMIUM) > 0; + private bool? _isBaconPoolMinion; public bool IsBaconPoolMinion => _isBaconPoolMinion ??= Entity.GetTag(IS_BACON_POOL_MINION) > 0; + private bool? _baconBuddyMinion; + public bool BaconBuddyMinion => _baconBuddyMinion ??= Entity.GetTag(BACON_BUDDY) > 0; + private int? _battlegroundsArmorTier; public int BattlegroundArmorTier => _battlegroundsArmorTier ??= Entity.GetTag((GameTag)1723); diff --git a/HearthDb/Cards.cs b/HearthDb/Cards.cs index 9fde53b7..a3f21465 100644 --- a/HearthDb/Cards.cs +++ b/HearthDb/Cards.cs @@ -24,6 +24,9 @@ public static class Cards public static Dictionary BaconPoolMinions { get; private set; } = new Dictionary(); public static Dictionary BaconPoolMinionsByDbfId { get; private set; } = new Dictionary(); + public static Dictionary BaconBuddyMinions { get; private set; } = new Dictionary(); + public static Dictionary BaconBuddyMinionsByDbfId { get; private set; } = new Dictionary(); + public static Dictionary NormalToTripleCardIds { get; private set; } = new Dictionary(); public static Dictionary TripleToNormalCardIds { get; private set; } = new Dictionary(); @@ -107,6 +110,8 @@ public static void LoadBaseData(CardDefs.CardDefs cardDefs) var collectibleByDbfId = new Dictionary(); var baconPoolMinions = new Dictionary(); var baconPoolMinionsByDbfId = new Dictionary(); + var baconBuddyMinions = new Dictionary(); + var baconBuddyMinionsByDbfId = new Dictionary(); var cardIdToDbfId = new Dictionary(); var dbfIdToCardId = new Dictionary(); @@ -127,12 +132,18 @@ public static void LoadBaseData(CardDefs.CardDefs cardDefs) collectibleByDbfId[entity.DbfId] = card; } - if (card.IsBaconPoolMinion) + if (card.IsBaconPoolMinion) // IS_BACON_POOL_MINION tag is not on premium minion { baconPoolMinions[entity.CardId] = card; baconPoolMinionsByDbfId[entity.DbfId] = card; } + if (card.BaconBuddyMinion && !card.Premium) // BACON_BUDDY tag is on both regular and premium minions + { + baconBuddyMinions[entity.CardId] = card; + baconBuddyMinionsByDbfId[entity.DbfId] = card; + } + if (!IgnoreTripleIds.Contains(entity.CardId)) { var tripleDbfId = card.Entity.Tags.FirstOrDefault(x => x.EnumId == 1429); @@ -159,6 +170,8 @@ public static void LoadBaseData(CardDefs.CardDefs cardDefs) CollectibleByDbfId = collectibleByDbfId; BaconPoolMinions = baconPoolMinions; BaconPoolMinionsByDbfId = baconPoolMinionsByDbfId; + BaconBuddyMinions = baconBuddyMinions; + BaconBuddyMinionsByDbfId = baconBuddyMinionsByDbfId; CardIdToDbfId = cardIdToDbfId; DbfIdToCardId = dbfIdToCardId;