@firestone-hs/reference-data 2.0.82 → 2.0.83

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { CardIds, GameType, Race, ReferenceCard } from '../public-api';
1
+ import { AllCardsService, CardIds, GameType, Race, ReferenceCard } from '../public-api';
2
2
  export declare const ALL_BG_RACES: Race[];
3
3
  export declare const TOTAL_RACES_IN_GAME = 5;
4
4
  export declare const NON_BUYABLE_MINION_IDS: CardIds[];
@@ -26,6 +26,7 @@ export declare const getReferenceTribeCardId: (tribe: string | Race) => string;
26
26
  export declare const getHeroPower: (heroCardId: string, allCards: {
27
27
  getCard: (cardId: string | number) => ReferenceCard;
28
28
  }) => string;
29
+ export declare const getBuddy: (heroCardId: CardIds, allCards: AllCardsService) => CardIds | null;
29
30
  export declare const isBaconGhost: (cardId: string) => boolean;
30
31
  export declare const getEffectiveTribes: (card: ReferenceCard, groupMinionsIntoTheirTribeGroup: boolean) => readonly string[];
31
32
  export declare const getTribesForInclusion: (card: ReferenceCard, includeOwnTribe: boolean) => readonly Race[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEffectiveTribesEnum = exports.getTribesForInclusion = exports.getEffectiveTribes = exports.isBaconGhost = exports.getHeroPower = exports.getReferenceTribeCardId = exports.getTribeIcon = exports.getTribeName = exports.normalizeMinionCardId = exports.normalizeHeroCardId = exports.isBattlegroundsDuo = exports.isBattlegrounds = exports.defaultStartingHp = exports.BUDDIES_TRIBE_REQUIREMENTS = exports.NON_DISCOVERABLE_BUDDIES = exports.NON_BUYABLE_MINION_IDS = exports.TOTAL_RACES_IN_GAME = exports.ALL_BG_RACES = void 0;
3
+ exports.getEffectiveTribesEnum = exports.getTribesForInclusion = exports.getEffectiveTribes = exports.isBaconGhost = exports.getBuddy = exports.getHeroPower = exports.getReferenceTribeCardId = exports.getTribeIcon = exports.getTribeName = exports.normalizeMinionCardId = exports.normalizeHeroCardId = exports.isBattlegroundsDuo = exports.isBattlegrounds = exports.defaultStartingHp = exports.BUDDIES_TRIBE_REQUIREMENTS = exports.NON_DISCOVERABLE_BUDDIES = exports.NON_BUYABLE_MINION_IDS = exports.TOTAL_RACES_IN_GAME = exports.ALL_BG_RACES = void 0;
4
4
  const public_api_1 = require("../public-api");
5
5
  const hs_utils_1 = require("./hs-utils");
6
6
  exports.ALL_BG_RACES = [
@@ -535,6 +535,225 @@ const getHeroPower = (heroCardId, allCards) => {
535
535
  }
536
536
  };
537
537
  exports.getHeroPower = getHeroPower;
538
+ const getBuddy = (heroCardId, allCards) => {
539
+ switch (exports.normalizeHeroCardId(heroCardId, allCards)) {
540
+ case "TB_BaconShop_HERO_16":
541
+ return "TB_BaconShop_HERO_16_Buddy";
542
+ case "TB_BaconShop_HERO_76":
543
+ return "TB_BaconShop_HERO_76_Buddy";
544
+ case "TB_BaconShop_HERO_56":
545
+ return "TB_BaconShop_HERO_56_Buddy";
546
+ case "TB_BaconShop_HERO_59t":
547
+ case "TB_BaconShop_HERO_59":
548
+ return "TB_BaconShop_HERO_59_Buddy";
549
+ case "TB_BaconShop_HERO_45":
550
+ return "TB_BaconShop_HERO_45_Buddy";
551
+ case "BG22_HERO_001":
552
+ return "BG22_HERO_001_Buddy";
553
+ case "TB_BaconShop_HERO_64":
554
+ return "TB_BaconShop_HERO_64_Buddy";
555
+ case "TB_BaconShop_HERO_67":
556
+ return "TB_BaconShop_HERO_67_Buddy";
557
+ case "BG21_HERO_000":
558
+ return "BG21_HERO_000_Buddy";
559
+ case "TB_BaconShop_HERO_78":
560
+ return "TB_BaconShop_HERO_78_Buddy";
561
+ case "BG21_HERO_020":
562
+ return "BG21_HERO_020_Buddy";
563
+ case "TB_BaconShop_HERO_29":
564
+ return "TB_BaconShop_HERO_29_Buddy";
565
+ case "TB_BaconShop_HERO_36":
566
+ return "TB_BaconShop_HERO_36_Buddy";
567
+ case "BG20_HERO_103":
568
+ return "BG20_HERO_103_Buddy";
569
+ case "TB_BaconShop_HERO_52":
570
+ return "TB_BaconShop_HERO_52_Buddy";
571
+ case "TB_BaconShop_HERO_43":
572
+ return "TB_BaconShop_HERO_43_Buddy";
573
+ case "BG22_HERO_002":
574
+ return "BG22_HERO_002_Buddy";
575
+ case "TB_BaconShop_HERO_01":
576
+ return "TB_BaconShop_HERO_01_Buddy";
577
+ case "TB_BaconShop_HERO_42":
578
+ return "TB_BaconShop_HERO_42_Buddy";
579
+ case "TB_BaconShop_HERO_74":
580
+ return "TB_BaconShop_HERO_74_Buddy";
581
+ case "TB_BaconShop_HERO_55":
582
+ return "TB_BaconShop_HERO_55_Buddy";
583
+ case "TB_BaconShop_HERO_02":
584
+ return "TB_BaconShop_HERO_02_Buddy";
585
+ case "BG20_HERO_283":
586
+ return "BG20_HERO_283_Buddy";
587
+ case "TB_BaconShop_HERO_15":
588
+ return "TB_BaconShop_HERO_15_Buddy";
589
+ case "TB_BaconShop_HERO_95":
590
+ return "TB_BaconShop_HERO_95_Buddy";
591
+ case "BG20_HERO_242":
592
+ return "BG20_HERO_242_Buddy";
593
+ case "TB_BaconShop_HERO_08":
594
+ return "TB_BaconShop_HERO_08_Buddy";
595
+ case "TB_BaconShop_HERO_28":
596
+ return "TB_BaconShop_HERO_28_Buddy";
597
+ case "TB_BaconShop_HERO_71":
598
+ return "TB_BaconShop_HERO_71_Buddy";
599
+ case "TB_BaconShop_HERO_60":
600
+ return "TB_BaconShop_HERO_60_Buddy";
601
+ case "TB_BaconShop_HERO_38":
602
+ return "TB_BaconShop_HERO_38_Buddy";
603
+ case "BG20_HERO_280":
604
+ return "BG20_HERO_280_Buddy";
605
+ case "TB_BaconShop_HERO_25":
606
+ return "TB_BaconShop_HERO_25_Buddy";
607
+ case "TB_BaconShop_HERO_72":
608
+ return "TB_BaconShop_HERO_72_Buddy";
609
+ case "TB_BaconShop_HERO_37":
610
+ return "TB_BaconShop_HERO_37_Buddy";
611
+ case "TB_BaconShop_HERO_62":
612
+ return "TB_BaconShop_HERO_62_Buddy";
613
+ case "TB_BaconShop_HERO_58":
614
+ return "TB_BaconShop_HERO_58_Buddy";
615
+ case "BG20_HERO_202":
616
+ return "BG20_HERO_202_Buddy";
617
+ case "TB_BaconShop_HERO_49":
618
+ return "TB_BaconShop_HERO_49_Buddy";
619
+ case "TB_BaconShop_HERO_17":
620
+ return "TB_BaconShop_HERO_17_Buddy";
621
+ case "TB_BaconShop_HERO_70":
622
+ return "TB_BaconShop_HERO_70_Buddy";
623
+ case "BG20_HERO_301":
624
+ return "BG20_HERO_301_Buddy";
625
+ case "TB_BaconShop_HERO_57":
626
+ return "TB_BaconShop_HERO_57_Buddy";
627
+ case "TB_BaconShop_HERO_93":
628
+ return "TB_BaconShop_HERO_93_Buddy";
629
+ case "BG20_HERO_102":
630
+ return "BG20_HERO_102_Buddy";
631
+ case "TB_BaconShop_HERO_18":
632
+ return "TB_BaconShop_HERO_18_Buddy";
633
+ case "TB_BaconShop_HERO_34":
634
+ return "TB_BaconShop_HERO_34_Buddy";
635
+ case "TB_BaconShop_HERO_39":
636
+ return "TB_BaconShop_HERO_39_Buddy";
637
+ case "TB_BaconShop_HERO_14":
638
+ return "TB_BaconShop_HERO_14_Buddy";
639
+ case "TB_BaconShop_HERO_11":
640
+ return "TB_BaconShop_HERO_11_Buddy";
641
+ case "TB_BaconShop_HERO_75":
642
+ return "TB_BaconShop_HERO_75_Buddy";
643
+ case "TB_BaconShop_HERO_41":
644
+ return "TB_BaconShop_HERO_41_Buddy";
645
+ case "BG21_HERO_010":
646
+ return "BG21_HERO_010_Buddy";
647
+ case "TB_BaconShop_HERO_23":
648
+ return "TB_BaconShop_HERO_23_Buddy";
649
+ case "TB_BaconShop_HERO_90":
650
+ return "TB_BaconShop_HERO_90_Buddy";
651
+ case "TB_BaconShop_HERO_27":
652
+ return "TB_BaconShop_HERO_27_Buddy";
653
+ case "TB_BaconShop_HERO_40":
654
+ return "TB_BaconShop_HERO_40_Buddy";
655
+ case "TB_BaconShop_HERO_68":
656
+ return "TB_BaconShop_HERO_68_Buddy";
657
+ case "BG21_HERO_030":
658
+ return "BG21_HERO_030_Buddy";
659
+ case "BG20_HERO_282":
660
+ return "BG20_HERO_282_Buddy";
661
+ case "BG22_HERO_000":
662
+ return "BG22_HERO_000_Buddy";
663
+ case "TB_BaconShop_HERO_50":
664
+ return "TB_BaconShop_HERO_50_Buddy";
665
+ case "TB_BaconShop_HERO_33":
666
+ return "TB_BaconShop_HERO_33_Buddy";
667
+ case "TB_BaconShop_HERO_21":
668
+ return "TB_BaconShop_HERO_21_Buddy";
669
+ case "TB_BaconShop_HERO_22":
670
+ return "TB_BaconShop_HERO_22_Buddy";
671
+ case "TB_BaconShop_HERO_12":
672
+ return "TB_BaconShop_HERO_12_Buddy";
673
+ case "TB_BaconShop_HERO_94":
674
+ return "TB_BaconShop_HERO_94_Buddy";
675
+ case "TB_BaconShop_HERO_10":
676
+ return "TB_BaconShop_HERO_10_Buddy";
677
+ case "BG22_HERO_003":
678
+ return "BG22_HERO_003_Buddy";
679
+ case "BG20_HERO_201":
680
+ return "BG20_HERO_201_Buddy";
681
+ case "BG20_HERO_101":
682
+ return "BG20_HERO_101_Buddy";
683
+ case "TB_BaconShop_HERO_35":
684
+ return "TB_BaconShop_HERO_35_Buddy";
685
+ case "TB_BaconShop_HERO_53":
686
+ return "TB_BaconShop_HERO_53_Buddy";
687
+ case "TB_BaconShop_HERO_92":
688
+ return "TB_BaconShop_HERO_92_Buddy";
689
+ case "TB_BaconShop_HERO_91":
690
+ return "TB_BaconShop_HERO_91_Buddy";
691
+ case "BG22_HERO_004":
692
+ return "BG22_HERO_004_Buddy";
693
+ case "BG20_HERO_100":
694
+ return "BG20_HERO_100_Buddy";
695
+ case "BG22_HERO_305":
696
+ return "BG22_HERO_305_Buddy";
697
+ case "BG22_HERO_201":
698
+ return "BG22_HERO_201_Buddy";
699
+ case "BG22_HERO_200":
700
+ return "BG22_HERO_200_Buddy";
701
+ case "BG22_HERO_007":
702
+ return "BG22_HERO_007_Buddy";
703
+ case "BG23_HERO_201":
704
+ return "BG23_HERO_201_Buddy";
705
+ case "BG23_HERO_304":
706
+ return "BG23_HERO_304_Buddy";
707
+ case "BG23_HERO_305":
708
+ return "BG23_HERO_305_Buddy";
709
+ case "BG24_HERO_100":
710
+ return "BG24_HERO_100_Buddy";
711
+ case "BG23_HERO_306":
712
+ return "BG23_HERO_306_Buddy";
713
+ case "TB_BaconShop_HERO_702":
714
+ return "TB_BaconShop_HERO_702_Buddy";
715
+ case "BG24_HERO_204":
716
+ return "BG24_HERO_204_Buddy";
717
+ case "BG25_HERO_100":
718
+ return "BG25_HERO_100_Buddy";
719
+ case "BG25_HERO_103":
720
+ return "BG25_HERO_103_Buddy";
721
+ case "BG23_HERO_303":
722
+ return "BG23_HERO_303_Buddy";
723
+ case "BG25_HERO_105":
724
+ return "BG25_HERO_105_Buddy";
725
+ case "BG26_HERO_101":
726
+ return "BG26_HERO_101_Buddy";
727
+ case "BG26_HERO_102":
728
+ return "BG26_HERO_102_Buddy";
729
+ case "BG26_HERO_104":
730
+ return "BG26_HERO_104_Buddy";
731
+ case "BG27_HERO_801":
732
+ return "BG27_HERO_801_Buddy";
733
+ case "BG28_HERO_400":
734
+ return "BG28_HERO_400_Buddy";
735
+ case "BG28_HERO_801":
736
+ return "BG28_HERO_801_Buddy";
737
+ case "BG28_HERO_800":
738
+ return "BG28_HERO_800_Buddy";
739
+ case "BGDUO_HERO_100":
740
+ return "BGDUO_HERO_100_Buddy";
741
+ case "BGDUO_HERO_222":
742
+ return "BGDUO_HERO_222_Buddy";
743
+ case "BGDUO_HERO_223":
744
+ return "BGDUO_HERO_223_Buddy";
745
+ case "BGDUO_HERO_104":
746
+ return "BGDUO_HERO_104_Buddy";
747
+ case "BGDUO_HERO_101":
748
+ return "BGDUO_HERO_101_Buddy";
749
+ default:
750
+ if (!!heroCardId) {
751
+ console.error('missing buddy section for ', heroCardId);
752
+ }
753
+ return null;
754
+ }
755
+ };
756
+ exports.getBuddy = getBuddy;
538
757
  const isBaconGhost = (cardId) => {
539
758
  return (cardId === "TB_BaconShop_HERO_KelThuzad" ||
540
759
  cardId === "TB_BaconShop_HERO_Deathwhisper");
@@ -1 +1 @@
1
- {"version":3,"file":"bgs-utils.js","sourceRoot":"","sources":["../../src/services/bgs-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { CardIds, GameType, Race, ReferenceCard } from '../public-api';\r\nimport { getEffectiveTribesEnumBase } from './hs-utils';\r\n\r\nexport const ALL_BG_RACES = [\r\n\tRace.BEAST,\r\n\tRace.DEMON,\r\n\tRace.DRAGON,\r\n\tRace.MECH,\r\n\tRace.MURLOC,\r\n\tRace.PIRATE,\r\n\tRace.ELEMENTAL,\r\n\tRace.QUILBOAR,\r\n\tRace.NAGA,\r\n\tRace.UNDEAD,\r\n];\r\n\r\nexport const TOTAL_RACES_IN_GAME = 5;\r\n\r\nexport const NON_BUYABLE_MINION_IDS = [\r\n\tCardIds.Cuddlgam_TB_BaconShop_HP_033t_SKIN_A,\r\n\tCardIds.Cuddlgam_TB_BaconShop_HP_033t_SKIN_A_G,\r\n\tCardIds.AbominableAmalgam_TB_BaconShop_HP_033t_SKIN_D,\r\n\tCardIds.AbominableAmalgam_TB_BaconShop_HP_033t_SKIN_D_G,\r\n\tCardIds.BookEatingAmalgam_TB_BaconShop_HP_033t_SKIN_B,\r\n\tCardIds.BookEatingAmalgam_TB_BaconShop_HP_033t_SKIN_B_G,\r\n\t// CardIds.ArgentBraggart_BG_SCH_149,\r\n\t// CardIds.ArgentBraggart_TB_BaconUps_308,\r\n\tCardIds.AvatarOfNzoth_FishOfNzothToken,\r\n\tCardIds.FishOfNzoth,\r\n\tCardIds.CattlecarpOfNzoth_TB_BaconShop_HP_105t_SKIN_A,\r\n\tCardIds.CattlecarpOfNzoth_TB_BaconShop_HP_105t_SKIN_A_G,\r\n\tCardIds.SnakeTrap_SnakeLegacyToken,\r\n\tCardIds.SnakeTrap_SnakeVanillaToken,\r\n\tCardIds.ImprovedSnakeTrap_SnakeToken,\r\n\tCardIds.ElementEarth_StoneElementalToken,\r\n\tCardIds.BabyKrush_DevilsaurToken,\r\n\tCardIds.Devilsaur,\r\n\t// To remove once the cards list is properly updated\r\n\tCardIds.FriendOfAFriend_BG22_404,\r\n\tCardIds.FriendOfAFriend_BG22_404_G,\r\n\tCardIds.Onyxia_OnyxianWhelpToken,\r\n\tCardIds.MurlocWarleaderCore,\r\n\tCardIds.MurlocWarleaderVanilla,\r\n\t// 23.4, probably not needed since they are already tokens\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt2,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt3,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt4,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt5,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt6,\r\n\t// 24.0, same\r\n\tCardIds.EmperorCobraLegacy_BG_EX1_170,\r\n\tCardIds.EmperorCobraLegacy_BG_EX1_170_G,\r\n\tCardIds.EmperorCobraLegacy_EX1_170,\r\n\tCardIds.SnakeLegacyToken,\r\n\tCardIds.SnakeLegacy,\r\n\tCardIds.ElementEarth_StoneElementalToken,\r\n\tCardIds.BolvarFireblood_CORE_ICC_858,\r\n\tCardIds.BolvarFireblood_ICC_858,\r\n\t// 25.2\r\n\tCardIds.HandlessForsaken_HelpingHandToken_BG25_010t,\r\n\tCardIds.HandlessForsaken_HelpingHandToken_BG25_010_Gt,\r\n\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309t,\r\n\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309_Gt,\r\n\tCardIds.MechaJaraxxus_RustedReggieToken,\r\n\tCardIds.MechaJaraxxus_MagtheridonPrimeToken,\r\n\tCardIds.MechaJaraxxus_BaltharakToken,\r\n\tCardIds.RustedReggie,\r\n\tCardIds.MagtheridonPrime,\r\n\tCardIds.Baltharak,\r\n\tCardIds.Shudderskull_TB_BaconShop_HP_022t_SKIN_C,\r\n\tCardIds.Shudderskull_TB_BaconShop_HP_022t_SKIN_C_G,\r\n\tCardIds.OzumatsTentacle_BG23_HERO_201pt_SKIN_A,\r\n\tCardIds.OzumatsTentacle_BG23_HERO_201pt_SKIN_A_G,\r\n\t// 26.2\r\n\tCardIds.Manasaber_CublingToken_BG26_800t,\r\n\tCardIds.Manasaber_CublingToken_BG26_800_Gt,\r\n\tCardIds.TentacleOfOctosariToken_BG26_803t,\r\n\tCardIds.TentacleOfOctosariToken_BG26_803_Gt,\r\n\t//27.2\r\n\tCardIds.OozelingGladiator_SlimyShieldToken_BG27_002t,\r\n\tCardIds.SurfNSurf_CrabMountToken_BG27_004t,\r\n\tCardIds.SurfNSurf_CrabMountToken_BG27_004_Gt,\r\n\tCardIds.SurfNSurf_CrabToken_BG27_004t2,\r\n\tCardIds.SurfNSurf_CrabToken_BG27_004_Gt2,\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt,\r\n\tCardIds.MechanizedGiftHorse_MechaponyToken_BG27_008t2,\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt,\r\n\tCardIds.MechanizedGiftHorse_MechaponyToken_BG27_008_Gt2,\r\n\tCardIds.TavernTier2,\r\n\tCardIds.TavernTier3,\r\n\tCardIds.TavernTier4,\r\n\tCardIds.TavernTier5,\r\n\tCardIds.TavernTier6,\r\n\tCardIds.TavernTier7_TB_BaconShopTechUp07_Button,\r\n\tCardIds.TombPillager_WON_340,\r\n\t// 27.2.2\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008t,\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt,\r\n\t// 28.6\r\n\tCardIds.StableAmalgamation_TotallyNormalHorseToken_BG28_Reward_518t,\r\n\tCardIds.TotallyNormalHorse_BG28_Reward_518t_G,\r\n\tCardIds.BoonOfBeetles_BeetleToken_BG28_603t,\r\n\tCardIds.Beetle_BG28_603t_G,\r\n\tCardIds.ToxicTumbleweed_TumblingAssassinToken_BG28_641t,\r\n\tCardIds.TumblingAssassin_BG28_641t_G,\r\n\t// 29.2\r\n\tCardIds.SilverGoose_SilverFledglingToken_BG29_801t,\r\n\tCardIds.SilverGoose_SilverFledglingToken_BG29_801_Gt,\r\n\tCardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t,\r\n\tCardIds.ReplicatingMenace_MicrobotToken_TB_BaconUps_032t,\r\n\tCardIds.TheUninvitedGuest_ShadowToken_BG29_875t,\r\n\tCardIds.TheUninvitedGuest_ShadowToken_BG29_875_Gt,\r\n];\r\n\r\nexport const NON_DISCOVERABLE_BUDDIES = [\r\n\tCardIds.SpiritRaptor_BG22_HERO_001_Buddy,\r\n\tCardIds.RagingContender_TB_BaconShop_HERO_67_Buddy,\r\n\tCardIds.CaptainFairmount_BG21_HERO_000_Buddy,\r\n\tCardIds.FlightTrainer_BG20_HERO_283_Buddy,\r\n\tCardIds.JandicesApprentice_TB_BaconShop_HERO_71_Buddy,\r\n\tCardIds.CrimsonHandCenturion_TB_BaconShop_HERO_60_Buddy,\r\n\tCardIds.CrazyMonkey_TB_BaconShop_HERO_38_Buddy,\r\n\tCardIds.ShadowWarden_TB_BaconShop_HERO_62_Buddy,\r\n\tCardIds.NexusLord_TB_BaconShop_HERO_58_Buddy,\r\n\tCardIds.LeiFlamepaw_BG20_HERO_202_Buddy,\r\n\tCardIds.Watfin_BG23_HERO_303_Buddy,\r\n\tCardIds.NightmareEctoplasm_BG20_HERO_301_Buddy,\r\n\tCardIds.ManyWhelps_BG22_HERO_305_Buddy,\r\n\tCardIds.Tamuzo_BG23_HERO_201_Buddy,\r\n\tCardIds.MaxwellMightySteed_TB_BaconShop_HERO_40_Buddy,\r\n\tCardIds.Crabby_BG22_HERO_000_Buddy,\r\n\tCardIds.Mishmash_TB_BaconShop_HERO_33_Buddy,\r\n\tCardIds.PigeonLord_TB_BaconShop_HERO_12_Buddy,\r\n\tCardIds.VardensAquarrior_BG22_HERO_004_Buddy,\r\n\tCardIds.AcolyteOfYoggSaron_TB_BaconShop_HERO_35_Buddy,\r\n\tCardIds.SubmersibleChef_BG22_HERO_201_Buddy,\r\n];\r\n\r\nexport const BUDDIES_TRIBE_REQUIREMENTS = [\r\n\t{\r\n\t\tbuddy: CardIds.Vaelastrasz_TB_BaconShop_HERO_56_Buddy,\r\n\t\ttribe: Race.DRAGON,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.DeathsHeadSage_BG20_HERO_103_Buddy,\r\n\t\ttribe: Race.QUILBOAR,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.SparkfinSoothsayer_TB_BaconShop_HERO_55_Buddy,\r\n\t\ttribe: Race.MURLOC,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.SubScrubber_BG22_HERO_200_Buddy,\r\n\t\ttribe: Race.MECH,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.CoilfangElite_BG23_HERO_304_Buddy,\r\n\t\ttribe: Race.NAGA,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy,\r\n\t\ttribe: Race.DEMON,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.ElementiumSquirrelBomb_TB_BaconShop_HERO_17_Buddy,\r\n\t\ttribe: Race.MECH,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.TuskarrRaider_TB_BaconShop_HERO_18_Buddy,\r\n\t\ttribe: Race.PIRATE,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.Festergut_BG25_HERO_100_Buddy,\r\n\t\ttribe: Race.UNDEAD,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.ImperialDefender_BG22_HERO_007_Buddy,\r\n\t\ttribe: Race.NAGA,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.ValithriaDreamwalker_TB_BaconShop_HERO_53_Buddy,\r\n\t\ttribe: Race.DRAGON,\r\n\t},\r\n];\r\n\r\nexport const defaultStartingHp = (\r\n\tgameType: GameType,\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): number => {\r\n\tif (isBattlegrounds(gameType)) {\r\n\t\tconst normalized = normalizeHeroCardId(heroCardId, allCards);\r\n\t\treturn allCards.getCard(normalized).health || 30;\r\n\t}\r\n\treturn 30;\r\n};\r\n\r\nexport const isBattlegrounds = (gameType: GameType): boolean => {\r\n\treturn [\r\n\t\tGameType.GT_BATTLEGROUNDS,\r\n\t\tGameType.GT_BATTLEGROUNDS_FRIENDLY,\r\n\t\tGameType.GT_BATTLEGROUNDS_AI_VS_AI,\r\n\t\tGameType.GT_BATTLEGROUNDS_PLAYER_VS_AI,\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO,\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO_VS_AI,\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO_FRIENDLY,\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO_AI_VS_AI,\r\n\t].includes(gameType as GameType);\r\n};\r\n\r\nexport const isBattlegroundsDuo = (gameType: GameType): boolean => {\r\n\treturn [\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO,\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO_VS_AI,\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO_FRIENDLY,\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO_AI_VS_AI,\r\n\t].includes(gameType as GameType);\r\n};\r\n\r\nexport const normalizeHeroCardId = (\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): string => {\r\n\tif (!heroCardId) {\r\n\t\treturn heroCardId;\r\n\t}\r\n\r\n\tconst normalizedAfterSkin = normalizeHeroCardIdAfterSkin(heroCardId, allCards);\r\n\tswitch (normalizedAfterSkin) {\r\n\t\tcase 'TB_BaconShop_HERO_59t':\r\n\t\t\treturn 'TB_BaconShop_HERO_59';\r\n\t\tcase CardIds.QueenAzshara_NagaQueenAzsharaToken:\r\n\t\t\treturn CardIds.QueenAzshara_BG22_HERO_007;\r\n\t\tdefault:\r\n\t\t\treturn normalizedAfterSkin;\r\n\t}\r\n};\r\n\r\nconst normalizeHeroCardIdAfterSkin = (\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): string => {\r\n\tconst heroCard = allCards.getCard(heroCardId);\r\n\tif (!!heroCard?.battlegroundsHeroParentDbfId) {\r\n\t\tconst parentCard = allCards.getCard(heroCard.battlegroundsHeroParentDbfId);\r\n\t\tif (!!parentCard) {\r\n\t\t\treturn parentCard.id;\r\n\t\t}\r\n\t}\r\n\t// Fallback to regex\r\n\tconst bgHeroSkinMatch = heroCardId.match(/(.*)_SKIN_.*/);\r\n\tif (bgHeroSkinMatch) {\r\n\t\treturn bgHeroSkinMatch[1];\r\n\t}\r\n\treturn heroCardId;\r\n};\r\n\r\n// Used to make the mapping between premium / normal minions\r\nexport const normalizeMinionCardId = (\r\n\tcardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n) => {\r\n\tconst refCard = allCards.getCard(cardId);\r\n\tif (refCard?.battlegroundsNormalDbfId) {\r\n\t\tconst normalCard = allCards.getCard(refCard.battlegroundsNormalDbfId);\r\n\t\treturn normalCard?.id;\r\n\t}\r\n\treturn cardId;\r\n};\r\n\r\nexport const getTribeName = (tribe: Race, i18n: { translateString: (input: string) => string }): string =>\r\n\ti18n.translateString(`app.battlegrounds.tribes.${Race[tribe]?.toLowerCase()}`);\r\n\r\nexport const getTribeIcon = (tribe: string | Race): string => {\r\n\tconst referenceCardId = getReferenceTribeCardId(tribe);\r\n\treturn `https://static.zerotoheroes.com/hearthstone/cardart/256x/${referenceCardId}.jpg`;\r\n};\r\n\r\nexport const getReferenceTribeCardId = (tribe: string | Race): string => {\r\n\tlet referenceCardId: string;\r\n\ttribe = (tribe as string)?.padStart ? (tribe as string).toLowerCase() : tribe;\r\n\tswitch (tribe) {\r\n\t\tcase 'mech':\r\n\t\tcase Race.MECH:\r\n\t\t\treferenceCardId = CardIds.DeflectOBot_BGS_071;\r\n\t\t\tbreak;\r\n\t\tcase 'beast':\r\n\t\tcase Race.BEAST:\r\n\t\t\treferenceCardId = CardIds.GoldrinnTheGreatWolf_BGS_018;\r\n\t\t\tbreak;\r\n\t\tcase 'demon':\r\n\t\tcase Race.DEMON:\r\n\t\t\treferenceCardId = CardIds.ImpulsiveTrickster_BG21_006;\r\n\t\t\tbreak;\r\n\t\tcase 'dragon':\r\n\t\tcase Race.DRAGON:\r\n\t\t\treferenceCardId = CardIds.KalecgosArcaneAspect_BGS_041;\r\n\t\t\tbreak;\r\n\t\tcase 'murloc':\r\n\t\tcase Race.MURLOC:\r\n\t\t\treferenceCardId = CardIds.RockpoolHunter_BG_UNG_073;\r\n\t\t\tbreak;\r\n\t\tcase 'pirate':\r\n\t\tcase Race.PIRATE:\r\n\t\t\treferenceCardId = CardIds.Scallywag_BGS_061;\r\n\t\t\tbreak;\r\n\t\tcase 'elemental':\r\n\t\tcase Race.ELEMENTAL:\r\n\t\t\treferenceCardId = CardIds.Sellemental_BGS_115;\r\n\t\t\tbreak;\r\n\t\tcase 'naga':\r\n\t\tcase Race.NAGA:\r\n\t\t\treferenceCardId = CardIds.ShellCollector_BG23_002;\r\n\t\t\tbreak;\r\n\t\tcase 'quilboar':\r\n\t\tcase Race.QUILBOAR:\r\n\t\t\treferenceCardId = CardIds.SunBaconRelaxer_BG20_301;\r\n\t\t\tbreak;\r\n\t\tcase 'undead':\r\n\t\tcase Race.UNDEAD:\r\n\t\t\treferenceCardId = CardIds.RisenRider_BG25_001;\r\n\t\t\tbreak;\r\n\t\tcase 'all':\r\n\t\tcase Race.ALL:\r\n\t\t\treferenceCardId = CardIds.Amalgadon_BGS_069;\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\treferenceCardId = CardIds.PatientScout_BG24_715;\r\n\t\t\tbreak;\r\n\t}\r\n\treturn referenceCardId;\r\n};\r\n\r\nexport const getHeroPower = (\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): string => {\r\n\tconst normalized = normalizeHeroCardId(heroCardId, allCards);\r\n\tswitch (normalized) {\r\n\t\tcase 'TB_BaconShop_HERO_01':\r\n\t\t\treturn 'TB_BaconShop_HP_001';\r\n\t\tcase 'TB_BaconShop_HERO_02':\r\n\t\t\treturn 'TB_BaconShop_HP_011';\r\n\t\tcase 'TB_BaconShop_HERO_08':\r\n\t\t\treturn 'TB_BaconShop_HP_069';\r\n\t\tcase CardIds.RagnarosTheFirelord_TB_BaconShop_HERO_11:\r\n\t\t\treturn CardIds.DieInsects_TB_BaconShop_HP_087;\r\n\t\tcase 'TB_BaconShop_HERO_12':\r\n\t\t\treturn 'TB_BaconShop_HP_041';\r\n\t\tcase CardIds.QueenWagtoggle_TB_BaconShop_HERO_14:\r\n\t\t\treturn CardIds.WaxWarband;\r\n\t\tcase 'TB_BaconShop_HERO_15':\r\n\t\t\treturn 'TB_BaconShop_HP_010';\r\n\t\tcase 'TB_BaconShop_HERO_16':\r\n\t\t\treturn 'TB_BaconShop_HP_044';\r\n\t\tcase 'TB_BaconShop_HERO_17':\r\n\t\t\treturn 'TB_BaconShop_HP_015';\r\n\t\tcase 'TB_BaconShop_HERO_18':\r\n\t\t\treturn 'TB_BaconShop_HP_072';\r\n\t\tcase 'TB_BaconShop_HERO_20':\r\n\t\t\treturn 'TB_BaconShop_HP_018';\r\n\t\tcase 'TB_BaconShop_HERO_21':\r\n\t\t\treturn 'TB_BaconShop_HP_020';\r\n\t\tcase 'TB_BaconShop_HERO_22':\r\n\t\t\treturn 'TB_BaconShop_HP_024';\r\n\t\tcase CardIds.Shudderwock_TB_BaconShop_HERO_23:\r\n\t\t\treturn CardIds.SnickerSnack;\r\n\t\tcase 'TB_BaconShop_HERO_25':\r\n\t\t\treturn 'TB_BaconShop_HP_049';\r\n\t\tcase 'TB_BaconShop_HERO_27':\r\n\t\t\treturn 'TB_BaconShop_HP_014';\r\n\t\tcase 'TB_BaconShop_HERO_28':\r\n\t\t\treturn 'TB_BaconShop_HP_028';\r\n\t\tcase 'TB_BaconShop_HERO_30':\r\n\t\t\treturn 'TB_BaconShop_HP_043';\r\n\t\tcase 'TB_BaconShop_HERO_31':\r\n\t\t\treturn 'TB_BaconShop_HP_009';\r\n\t\tcase 'TB_BaconShop_HERO_33':\r\n\t\t\treturn 'TB_BaconShop_HP_033';\r\n\t\tcase 'TB_BaconShop_HERO_34':\r\n\t\t\treturn 'TB_BaconShop_HP_035';\r\n\t\tcase 'TB_BaconShop_HERO_35':\r\n\t\t\treturn 'TB_BaconShop_HP_039';\r\n\t\tcase 'TB_BaconShop_HERO_36':\r\n\t\t\treturn 'TB_BaconShop_HP_042';\r\n\t\tcase 'TB_BaconShop_HERO_37':\r\n\t\t\treturn 'TB_BaconShop_HP_036';\r\n\t\tcase 'TB_BaconShop_HERO_38':\r\n\t\t\treturn 'TB_BaconShop_HP_038';\r\n\t\tcase 'TB_BaconShop_HERO_39':\r\n\t\t\treturn 'TB_BaconShop_HP_040';\r\n\t\tcase 'TB_BaconShop_HERO_40':\r\n\t\t\treturn 'TB_BaconShop_HP_057';\r\n\t\tcase 'TB_BaconShop_HERO_41':\r\n\t\t\treturn 'TB_BaconShop_HP_046';\r\n\t\tcase 'TB_BaconShop_HERO_42':\r\n\t\t\treturn 'TB_BaconShop_HP_047';\r\n\t\tcase 'TB_BaconShop_HERO_43':\r\n\t\t\treturn 'TB_BaconShop_HP_048';\r\n\t\t// case 'TB_BaconShop_HERO_44':\r\n\t\t// \treturn 'TB_BaconShop_HP_050';\r\n\t\tcase 'TB_BaconShop_HERO_45':\r\n\t\t\treturn 'TB_BaconShop_HP_053';\r\n\t\tcase 'TB_BaconShop_HERO_47':\r\n\t\t\treturn 'TB_BaconShop_HP_051';\r\n\t\tcase 'TB_BaconShop_HERO_49':\r\n\t\t\treturn 'TB_BaconShop_HP_054';\r\n\t\tcase 'TB_BaconShop_HERO_50':\r\n\t\t\treturn 'TB_BaconShop_HP_077';\r\n\t\tcase 'TB_BaconShop_HERO_52':\r\n\t\t\treturn 'TB_BaconShop_HP_061';\r\n\t\tcase 'TB_BaconShop_HERO_53':\r\n\t\t\treturn 'TB_BaconShop_HP_062';\r\n\t\tcase 'TB_BaconShop_HERO_55':\r\n\t\t\treturn 'TB_BaconShop_HP_056';\r\n\t\tcase 'TB_BaconShop_HERO_56':\r\n\t\t\treturn 'TB_BaconShop_HP_064';\r\n\t\tcase 'TB_BaconShop_HERO_57':\r\n\t\t\treturn 'TB_BaconShop_HP_063';\r\n\t\tcase 'TB_BaconShop_HERO_58':\r\n\t\t\treturn 'TB_BaconShop_HP_052';\r\n\t\tcase 'TB_BaconShop_HERO_59t':\r\n\t\t\treturn 'TB_BaconShop_HP_065t2';\r\n\t\tcase 'TB_BaconShop_HERO_59':\r\n\t\t\treturn 'TB_BaconShop_HP_065';\r\n\t\tcase 'TB_BaconShop_HERO_60':\r\n\t\t\treturn 'TB_BaconShop_HP_066';\r\n\t\tcase 'TB_BaconShop_HERO_61':\r\n\t\t\treturn 'TB_BaconShop_HP_067';\r\n\t\tcase 'TB_BaconShop_HERO_62':\r\n\t\t\treturn 'TB_BaconShop_HP_068';\r\n\t\tcase 'TB_BaconShop_HERO_64':\r\n\t\t\treturn 'TB_BaconShop_HP_074';\r\n\t\tcase CardIds.CaptainHooktusk_TB_BaconShop_HERO_67:\r\n\t\t\treturn CardIds.TrashForTreasure;\r\n\t\tcase 'TB_BaconShop_HERO_68':\r\n\t\t\treturn 'TB_BaconShop_HP_076';\r\n\t\tcase 'TB_BaconShop_HERO_70':\r\n\t\t\treturn 'TB_BaconShop_HP_080';\r\n\t\tcase 'TB_BaconShop_HERO_71':\r\n\t\t\treturn 'TB_BaconShop_HP_084';\r\n\t\tcase 'TB_BaconShop_HERO_72':\r\n\t\t\treturn 'TB_BaconShop_HP_081';\r\n\t\tcase 'TB_BaconShop_HERO_74':\r\n\t\t\treturn 'TB_BaconShop_HP_082';\r\n\t\tcase CardIds.Chenvaala_TB_BaconShop_HERO_78:\r\n\t\t\treturn CardIds.Avalanche_TB_BaconShop_HP_088;\r\n\t\tcase CardIds.Rakanishu_TB_BaconShop_HERO_75:\r\n\t\t\treturn CardIds.TavernLighting;\r\n\t\tcase CardIds.Alakir:\r\n\t\t\treturn CardIds.SwattingInsects;\r\n\t\tcase CardIds.ZephrysTheGreat_TB_BaconShop_HERO_91:\r\n\t\t\treturn CardIds.ThreeWishes;\r\n\t\tcase CardIds.SilasDarkmoon_TB_BaconShop_HERO_90:\r\n\t\t\treturn CardIds.ComeOneComeAll;\r\n\t\tcase CardIds.Cthun_TB_BaconShop_HERO_29:\r\n\t\t\treturn CardIds.SaturdayCthuns;\r\n\t\tcase CardIds.Nzoth:\r\n\t\t\treturn CardIds.AvatarOfNzoth;\r\n\t\tcase CardIds.Yshaarj:\r\n\t\t\treturn CardIds.EmbraceYourRage;\r\n\t\tcase CardIds.Tickatus_TB_BaconShop_HERO_94:\r\n\t\t\treturn CardIds.PrizeWall;\r\n\t\tcase CardIds.Greybough_TB_BaconShop_HERO_95:\r\n\t\t\treturn CardIds.SproutItOut;\r\n\t\tcase CardIds.OverlordSaurfang_BG20_HERO_102:\r\n\t\t\treturn CardIds.OverlordSaurfang_ForTheHorde;\r\n\t\tcase CardIds.DeathSpeakerBlackthorn_BG20_HERO_103:\r\n\t\t\treturn CardIds.DeathSpeakerBlackthorn_Bloodbound;\r\n\t\tcase CardIds.Voljin_BG20_HERO_201:\r\n\t\t\treturn CardIds.Voljin_SpiritSwap_BG20_HERO_201p;\r\n\t\tcase CardIds.Xyrella_BG20_HERO_101:\r\n\t\t\treturn CardIds.Xyrella_SeeTheLight;\r\n\t\tcase CardIds.MutanusTheDevourer_BG20_HERO_301:\r\n\t\t\treturn CardIds.MutanusTheDevourer_Devour;\r\n\t\tcase CardIds.GuffRunetotem_BG20_HERO_242:\r\n\t\t\treturn CardIds.GuffRunetotem_NaturalBalance;\r\n\t\tcase CardIds.KurtrusAshfallen_BG20_HERO_280:\r\n\t\t\treturn CardIds.KurtrusAshfallen_GlaiveRicochet;\r\n\t\tcase CardIds.Galewing:\r\n\t\t\treturn CardIds.Galewing_DungarsGryphon;\r\n\t\tcase CardIds.TradePrinceGallywix_TB_BaconShop_HERO_10:\r\n\t\t\treturn CardIds.SmartSavings;\r\n\t\tcase CardIds.MasterNguyen:\r\n\t\t\treturn CardIds.MasterNguyen_PowerOfTheStorm;\r\n\t\tcase CardIds.CarielRoame_BG21_HERO_000:\r\n\t\t\treturn CardIds.CarielRoame_Conviction;\r\n\t\tcase CardIds.Sneed_BG21_HERO_030:\r\n\t\t\treturn CardIds.Sneed_SneedsReplicator;\r\n\t\tcase CardIds.CookieTheCook_BG21_HERO_020:\r\n\t\t\treturn CardIds.CookieTheCook_StirThePot;\r\n\t\tcase CardIds.TamsinRoame_BG20_HERO_282:\r\n\t\t\treturn CardIds.TamsinRoame_FragrantPhylactery;\r\n\t\tcase CardIds.ScabbsCutterbutter_BG21_HERO_010:\r\n\t\t\treturn CardIds.ScabbsCutterbutter_ISpy;\r\n\t\tcase CardIds.Brukan_BG22_HERO_001:\r\n\t\t\treturn CardIds.Brukan_EmbraceTheElements;\r\n\t\tcase CardIds.Drekthar_BG22_HERO_002:\r\n\t\t\treturn CardIds.Drekthar_LeadTheFrostwolves;\r\n\t\tcase CardIds.VanndarStormpike_BG22_HERO_003:\r\n\t\t\treturn CardIds.VanndarStormpike_LeadTheStormpikes;\r\n\t\tcase CardIds.TavishStormpike_BG22_HERO_000:\r\n\t\t\treturn CardIds.TavishStormpike_Deadeye;\r\n\t\tcase CardIds.VardenDawngrasp_BG22_HERO_004:\r\n\t\t\treturn CardIds.VardenDawngrasp_TwiceAsNice;\r\n\t\tcase CardIds.Rokara_BG20_HERO_100:\r\n\t\t\treturn CardIds.Rokara_GloryOfCombat;\r\n\t\tcase CardIds.Onyxia_BG22_HERO_305:\r\n\t\t\treturn CardIds.Onyxia_Broodmother;\r\n\t\tcase CardIds.AmbassadorFaelin_BG22_HERO_201:\r\n\t\t\treturn CardIds.AmbassadorFaelin_ExpeditionPlans;\r\n\t\tcase CardIds.IniStormcoil_BG22_HERO_200:\r\n\t\t\treturn CardIds.IniStormcoil_Mechgyver;\r\n\t\tcase CardIds.QueenAzshara_BG22_HERO_007:\r\n\t\t\treturn CardIds.QueenAzshara_AzsharasAmbition;\r\n\t\tcase CardIds.QueenAzshara_NagaQueenAzsharaToken:\r\n\t\t\treturn CardIds.QueenAzshara_NagaConquest;\r\n\t\tcase CardIds.Ozumat_BG23_HERO_201:\r\n\t\t\treturn CardIds.Ozumat_Tentacular;\r\n\t\tcase CardIds.LadyVashj_BG23_HERO_304:\r\n\t\t\treturn CardIds.LadyVashj_RelicsOfTheDeep;\r\n\t\tcase CardIds.HeistbaronTogwaggle_BG23_HERO_305:\r\n\t\t\treturn CardIds.HeistbaronTogwaggle_ThePerfectCrime;\r\n\t\tcase CardIds.MurlocHolmes_BG23_HERO_303:\r\n\t\t\treturn CardIds.MurlocHolmes_DetectiveForHire;\r\n\t\tcase CardIds.SireDenathrius_BG24_HERO_100:\r\n\t\t\treturn CardIds.SireDenathrius_Whodunitquestion;\r\n\t\tcase CardIds.SylvanasWindrunner_BG23_HERO_306:\r\n\t\t\treturn CardIds.SylvanasWindrunner_ReclaimedSouls;\r\n\t\tcase CardIds.TheJailer_TB_BaconShop_HERO_702:\r\n\t\t\treturn CardIds.RunicEmpowerment;\r\n\t\tcase CardIds.EnhanceOMechano_BG24_HERO_204:\r\n\t\t\treturn CardIds.EnhanceOMechano_Enhancification;\r\n\t\tcase CardIds.ProfessorPutricide_BG25_HERO_100:\r\n\t\t\treturn CardIds.ProfessorPutricide_BuildAnUndead;\r\n\t\tcase CardIds.TeronGorefiend_BG25_HERO_103:\r\n\t\t\treturn CardIds.TeronGorefiend_RapidReanimation;\r\n\t\tcase CardIds.ETCBandManager_BG25_HERO_105:\r\n\t\t\treturn CardIds.ETCBandManager_SignANewArtist;\r\n\t\tcase CardIds.RockMasterVoone_BG26_HERO_104:\r\n\t\t\treturn CardIds.RockMasterVoone_UpbeatHarmony;\r\n\t\tcase CardIds.IngeTheIronHymn:\r\n\t\t\treturn CardIds.IngeTheIronHymn_MajorHymn;\r\n\t\tcase CardIds.CapnHoggarr_BG26_HERO_101:\r\n\t\t\treturn CardIds.CapnHoggarr_ImTheCapnNow;\r\n\t\tcase CardIds.Diablo:\r\n\t\t\treturn CardIds.Diablo_RealmOfTerror;\r\n\t\tcase CardIds.ThorimStormlord_BG27_HERO_801:\r\n\t\t\treturn CardIds.ThorimStormlord_ChooseYourChampion_BG27_HERO_801p2;\r\n\t\tcase CardIds.SnakeEyes_BG28_HERO_400:\r\n\t\t\treturn CardIds.SnakeEyes_LuckyRoll_BG28_HERO_400p;\r\n\t\tcase CardIds.TaethelanBloodwatcher_BG28_HERO_800:\r\n\t\t\treturn CardIds.TaethelanBloodwatcher_ReliquaryResearch_BG28_HERO_800p;\r\n\t\tcase CardIds.DoctorHollidae_BG28_HERO_801:\r\n\t\t\treturn CardIds.DoctorHollidae_BlessingOfTheNineFrogs_BG28_HERO_801p;\r\n\t\tcase CardIds.Cho_BGDUO_HERO_222:\r\n\t\t\treturn CardIds.Cho_DoubleTrouble_BGDUO_HERO_222p;\r\n\t\tcase CardIds.Gall_BGDUO_HERO_223:\r\n\t\t\treturn CardIds.Gall_DoubleTrouble_BGDUO_HERO_223p;\r\n\t\tcase CardIds.TheNamelessOne_BGDUO_HERO_100:\r\n\t\t\treturn CardIds.TheNamelessOne_X_BGDUO_HERO_100p;\r\n\t\tcase CardIds.FlobbidinousFloop_BGDUO_HERO_101:\r\n\t\t\treturn CardIds.FlobbidinousFloop_GloriousGloop_BGDUO_HERO_101p;\r\n\t\tcase CardIds.MadamGoya_BGDUO_HERO_104:\r\n\t\t\treturn CardIds.MadamGoya_EfficientExchange_BGDUO_HERO_104p;\r\n\t\tcase CardIds.MarinTheManager_BG30_HERO_304:\r\n\t\t\treturn CardIds.MarinTheManager_FantasticTreasure_BG30_HERO_304p;\r\n\r\n\t\tcase '':\r\n\t\t\treturn null; // new heroes\r\n\t}\r\n};\r\n\r\nexport const isBaconGhost = (cardId: string): boolean => {\r\n\treturn (\r\n\t\tcardId === CardIds.Kelthuzad_TB_BaconShop_HERO_KelThuzad ||\r\n\t\tcardId === CardIds.LadyDeathwhisper_TB_BaconShop_HERO_Deathwhisper\r\n\t);\r\n};\r\n\r\nexport const getEffectiveTribes = (\r\n\tcard: ReferenceCard,\r\n\tgroupMinionsIntoTheirTribeGroup: boolean,\r\n): readonly string[] => {\r\n\tconst tribes: readonly Race[] = groupMinionsIntoTheirTribeGroup\r\n\t\t? getTribesForInclusion(card, true)\r\n\t\t: getEffectiveTribesEnum(card);\r\n\treturn tribes.map((tribe) => Race[tribe]);\r\n};\r\n\r\nexport const getTribesForInclusion = (card: ReferenceCard, includeOwnTribe: boolean): readonly Race[] => {\r\n\tif (!card) {\r\n\t\treturn [];\r\n\t}\r\n\tconst nativeRaces = card.races?.map((r) => Race[r]) ?? [];\r\n\tconst cardRaces = includeOwnTribe ? nativeRaces : [];\r\n\tswitch (card.id) {\r\n\t\t// Some cases are only included when specific tribes are\r\n\t\tcase CardIds.BirdBuddy_BG21_002:\r\n\t\tcase CardIds.BirdBuddy_BG21_002_G:\r\n\t\tcase CardIds.PackLeader_BGS_017:\r\n\t\tcase CardIds.PackLeader_TB_BaconUps_086:\r\n\t\tcase CardIds.VirmenSensei_CFM_816:\r\n\t\tcase CardIds.VirmenSensei_TB_BaconUps_074:\r\n\t\tcase CardIds.HoundmasterLegacy:\r\n\t\tcase CardIds.HoundmasterVanilla:\r\n\t\tcase CardIds.Houndmaster_TB_BaconUps_068:\r\n\t\tcase CardIds.Houndmaster_BG_DS1_070:\r\n\t\t\treturn [Race.BEAST, ...cardRaces];\r\n\t\tcase CardIds.ImpatientDoomsayer_BG21_007:\r\n\t\tcase CardIds.ImpatientDoomsayer_BG21_007_G:\r\n\t\tcase CardIds.SoulJuggler_BGS_002:\r\n\t\tcase CardIds.SoulJuggler_TB_BaconUps_075:\r\n\t\tcase CardIds.WrathWeaver_BGS_004:\r\n\t\tcase CardIds.WrathWeaver_TB_BaconUps_079:\r\n\t\tcase CardIds.CultistSthara_BG27_081:\r\n\t\tcase CardIds.CultistSthara_BG27_081_G:\r\n\t\t\treturn [Race.DEMON, ...cardRaces];\r\n\t\tcase CardIds.SeafoodSlinger_BG21_011:\r\n\t\tcase CardIds.SeafoodSlinger_BG21_011_G:\r\n\t\t\treturn [Race.MURLOC, ...cardRaces];\r\n\t\tcase CardIds.NadinaTheRed_BGS_040:\r\n\t\tcase CardIds.NadinaTheRed_TB_BaconUps_154:\r\n\t\tcase CardIds.WaxriderTogwaggle_BGS_035:\r\n\t\tcase CardIds.WaxriderTogwaggle_TB_BaconUps_105:\r\n\t\tcase CardIds.WhelpSmuggler_BG21_013:\r\n\t\tcase CardIds.WhelpSmuggler_BG21_013_G:\r\n\t\t\treturn [Race.DRAGON, ...cardRaces];\r\n\t\tcase CardIds.MajordomoExecutus_BGS_105:\r\n\t\tcase CardIds.MajordomoExecutus_TB_BaconUps_207:\r\n\t\tcase CardIds.MasterOfRealities_BG21_036:\r\n\t\tcase CardIds.MasterOfRealities_BG21_036_G:\r\n\t\tcase CardIds.NomiKitchenNightmare_BGS_104:\r\n\t\tcase CardIds.NomiKitchenNightmare_TB_BaconUps_201:\r\n\t\t\treturn [Race.ELEMENTAL, ...cardRaces];\r\n\t\tcase CardIds.KangorsApprentice_BGS_012:\r\n\t\tcase CardIds.KangorsApprentice_TB_BaconUps_087:\r\n\t\t\treturn [Race.MECH, ...cardRaces];\r\n\t\tcase CardIds.DefiantShipwright_BG21_018:\r\n\t\tcase CardIds.DefiantShipwright_BG21_018_G:\r\n\t\tcase CardIds.TheTideRazor_BGS_079:\r\n\t\tcase CardIds.TheTideRazor_TB_BaconUps_137:\r\n\t\t\treturn [Race.PIRATE, ...cardRaces];\r\n\t\tcase CardIds.AgamagganTheGreatBoar_BG20_205:\r\n\t\tcase CardIds.AgamagganTheGreatBoar_BG20_205_G:\r\n\t\tcase CardIds.ProphetOfTheBoar_BG20_203:\r\n\t\tcase CardIds.ProphetOfTheBoar_BG20_203_G:\r\n\t\t\treturn [Race.QUILBOAR, ...cardRaces];\r\n\t\tcase CardIds.OrgozoaTheTender_BG23_015:\r\n\t\tcase CardIds.OrgozoaTheTender_BG23_015_G:\r\n\t\t\treturn [Race.NAGA, ...cardRaces];\r\n\t\tcase CardIds.DisguisedGraverobber_BG28_303:\r\n\t\tcase CardIds.DisguisedGraverobber_BG28_303_G:\r\n\t\t\treturn [Race.UNDEAD, ...cardRaces];\r\n\t\tdefault:\r\n\t\t\treturn getEffectiveTribesEnum(card);\r\n\t}\r\n};\r\n\r\n// To avoid braking existing imports\r\nexport const getEffectiveTribesEnum = getEffectiveTribesEnumBase;\r\n"]}
1
+ {"version":3,"file":"bgs-utils.js","sourceRoot":"","sources":["../../src/services/bgs-utils.ts"],"names":[],"mappings":"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ACC,oCAAwD;QACzD;YACC,6BAAuD;QACxD;YACC,oCAAmD;QACpD;YACC,oCAAsD;QACvD;YACC,oCAA0D;QAC3D;YACC,oCAA6D;QAC9D;YACC,oCAA6D;QAC9D;YACC,6BAAiD;QAClD;YACC,oCAAsD;QACvD;YACC,oCAA0D;QAC3D;YACC,6BAA4C;QAC7C;YACC,oCAA4D;QAC7D;YACC,oCAA6D;QAC9D;YACC,oCAA6D;QAC9D;YACC,oCAA+D;QAChE;YACC,oCAAsD;QACvD;YACC,6BAAmD;QACpD;YACC,oCAA6D;QAC9D;YACC,oCAA2D;QAC5D;YACC,oCAAiD;QAClD;YACC,oCAAuD;QACxD;YACC,oCAAoD;QACrD;YACC,6BAA+C;QAChD;YACC,oCAA0D;QAC3D;YACC,oCAAiE;QAClE;YACC,oCAAgD;QACjD;YACC,6BAAsD;QACvD;YACC,oCAAkD;QACnD;YACC,oCAAoD;QACrD;YACC,6BAAmD;QACpD;YACC,oCAAwD;QACzD;YACC,oCAAwD;QACzD;YACC,oCAA0D;QAC3D;YACC,oCAAwD;QACzD;YACC,oCAAmD;QACpD;YACC,oCAAwD;QACzD;YACC,oCAAsD;QACvD;YACC,6BAAmD;QACpD;YACC,oCAAsD;QACvD;YACC,oCAAgD;QACjD;YACC,oCAAyD;QAC1D;YACC,oCAA6D;QAC9D;YACC,oCAAoD;QACrD;YACC,6BAAqD;QACtD;YACC,6BAA+C;QAChD;YACC,6BAA0C;QAC3C;YACC,oCAAsD;QACvD;YACC,oCAAmD;QACpD;YACC,oCAAyD;QAC1D;YACC,oCAAgD;QACjD;YACC,oCAAqD;QACtD;YACC,oCAA0D;QAC3D;YACC,oCAA0D;QAC3D;YACC,6BAAuD;QACxD;YACC,6BAAgD;QACjD;YACC,6BAA6C;QAC9C;YACC,oCAA6D;QAC9D;YACC,oCAA+D;QAChE;YACC,oCAAsD;QACvD;YACC,oCAAkD;QACnD;YACC,6BAAoD;QACrD;YACC,6BAAqD;QACtD;YACC,6BAA8C;QAC/C;YACC,6BAAmD;QACpD;YACC,6BAA+C;QAChD;YACC,6BAAoD;QACrD;YACC,6BAA0C;Q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","sourcesContent":["import { AllCardsService, CardIds, GameType, Race, ReferenceCard } from '../public-api';\r\nimport { getEffectiveTribesEnumBase } from './hs-utils';\r\n\r\nexport const ALL_BG_RACES = [\r\n\tRace.BEAST,\r\n\tRace.DEMON,\r\n\tRace.DRAGON,\r\n\tRace.MECH,\r\n\tRace.MURLOC,\r\n\tRace.PIRATE,\r\n\tRace.ELEMENTAL,\r\n\tRace.QUILBOAR,\r\n\tRace.NAGA,\r\n\tRace.UNDEAD,\r\n];\r\n\r\nexport const TOTAL_RACES_IN_GAME = 5;\r\n\r\nexport const NON_BUYABLE_MINION_IDS = [\r\n\tCardIds.Cuddlgam_TB_BaconShop_HP_033t_SKIN_A,\r\n\tCardIds.Cuddlgam_TB_BaconShop_HP_033t_SKIN_A_G,\r\n\tCardIds.AbominableAmalgam_TB_BaconShop_HP_033t_SKIN_D,\r\n\tCardIds.AbominableAmalgam_TB_BaconShop_HP_033t_SKIN_D_G,\r\n\tCardIds.BookEatingAmalgam_TB_BaconShop_HP_033t_SKIN_B,\r\n\tCardIds.BookEatingAmalgam_TB_BaconShop_HP_033t_SKIN_B_G,\r\n\t// CardIds.ArgentBraggart_BG_SCH_149,\r\n\t// CardIds.ArgentBraggart_TB_BaconUps_308,\r\n\tCardIds.AvatarOfNzoth_FishOfNzothToken,\r\n\tCardIds.FishOfNzoth,\r\n\tCardIds.CattlecarpOfNzoth_TB_BaconShop_HP_105t_SKIN_A,\r\n\tCardIds.CattlecarpOfNzoth_TB_BaconShop_HP_105t_SKIN_A_G,\r\n\tCardIds.SnakeTrap_SnakeLegacyToken,\r\n\tCardIds.SnakeTrap_SnakeVanillaToken,\r\n\tCardIds.ImprovedSnakeTrap_SnakeToken,\r\n\tCardIds.ElementEarth_StoneElementalToken,\r\n\tCardIds.BabyKrush_DevilsaurToken,\r\n\tCardIds.Devilsaur,\r\n\t// To remove once the cards list is properly updated\r\n\tCardIds.FriendOfAFriend_BG22_404,\r\n\tCardIds.FriendOfAFriend_BG22_404_G,\r\n\tCardIds.Onyxia_OnyxianWhelpToken,\r\n\tCardIds.MurlocWarleaderCore,\r\n\tCardIds.MurlocWarleaderVanilla,\r\n\t// 23.4, probably not needed since they are already tokens\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt2,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt3,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt4,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt5,\r\n\tCardIds.Tentacular_OzumatsTentacleToken_BG23_HERO_201pt6,\r\n\t// 24.0, same\r\n\tCardIds.EmperorCobraLegacy_BG_EX1_170,\r\n\tCardIds.EmperorCobraLegacy_BG_EX1_170_G,\r\n\tCardIds.EmperorCobraLegacy_EX1_170,\r\n\tCardIds.SnakeLegacyToken,\r\n\tCardIds.SnakeLegacy,\r\n\tCardIds.ElementEarth_StoneElementalToken,\r\n\tCardIds.BolvarFireblood_CORE_ICC_858,\r\n\tCardIds.BolvarFireblood_ICC_858,\r\n\t// 25.2\r\n\tCardIds.HandlessForsaken_HelpingHandToken_BG25_010t,\r\n\tCardIds.HandlessForsaken_HelpingHandToken_BG25_010_Gt,\r\n\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309t,\r\n\tCardIds.GeneralDrakkisath_SmolderwingToken_BG25_309_Gt,\r\n\tCardIds.MechaJaraxxus_RustedReggieToken,\r\n\tCardIds.MechaJaraxxus_MagtheridonPrimeToken,\r\n\tCardIds.MechaJaraxxus_BaltharakToken,\r\n\tCardIds.RustedReggie,\r\n\tCardIds.MagtheridonPrime,\r\n\tCardIds.Baltharak,\r\n\tCardIds.Shudderskull_TB_BaconShop_HP_022t_SKIN_C,\r\n\tCardIds.Shudderskull_TB_BaconShop_HP_022t_SKIN_C_G,\r\n\tCardIds.OzumatsTentacle_BG23_HERO_201pt_SKIN_A,\r\n\tCardIds.OzumatsTentacle_BG23_HERO_201pt_SKIN_A_G,\r\n\t// 26.2\r\n\tCardIds.Manasaber_CublingToken_BG26_800t,\r\n\tCardIds.Manasaber_CublingToken_BG26_800_Gt,\r\n\tCardIds.TentacleOfOctosariToken_BG26_803t,\r\n\tCardIds.TentacleOfOctosariToken_BG26_803_Gt,\r\n\t//27.2\r\n\tCardIds.OozelingGladiator_SlimyShieldToken_BG27_002t,\r\n\tCardIds.SurfNSurf_CrabMountToken_BG27_004t,\r\n\tCardIds.SurfNSurf_CrabMountToken_BG27_004_Gt,\r\n\tCardIds.SurfNSurf_CrabToken_BG27_004t2,\r\n\tCardIds.SurfNSurf_CrabToken_BG27_004_Gt2,\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt,\r\n\tCardIds.MechanizedGiftHorse_MechaponyToken_BG27_008t2,\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt,\r\n\tCardIds.MechanizedGiftHorse_MechaponyToken_BG27_008_Gt2,\r\n\tCardIds.TavernTier2,\r\n\tCardIds.TavernTier3,\r\n\tCardIds.TavernTier4,\r\n\tCardIds.TavernTier5,\r\n\tCardIds.TavernTier6,\r\n\tCardIds.TavernTier7_TB_BaconShopTechUp07_Button,\r\n\tCardIds.TombPillager_WON_340,\r\n\t// 27.2.2\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008t,\r\n\tCardIds.MechanizedGiftHorse_MechorseToken_BG27_008_Gt,\r\n\t// 28.6\r\n\tCardIds.StableAmalgamation_TotallyNormalHorseToken_BG28_Reward_518t,\r\n\tCardIds.TotallyNormalHorse_BG28_Reward_518t_G,\r\n\tCardIds.BoonOfBeetles_BeetleToken_BG28_603t,\r\n\tCardIds.Beetle_BG28_603t_G,\r\n\tCardIds.ToxicTumbleweed_TumblingAssassinToken_BG28_641t,\r\n\tCardIds.TumblingAssassin_BG28_641t_G,\r\n\t// 29.2\r\n\tCardIds.SilverGoose_SilverFledglingToken_BG29_801t,\r\n\tCardIds.SilverGoose_SilverFledglingToken_BG29_801_Gt,\r\n\tCardIds.ReplicatingMenace_MicrobotToken_BG_BOT_312t,\r\n\tCardIds.ReplicatingMenace_MicrobotToken_TB_BaconUps_032t,\r\n\tCardIds.TheUninvitedGuest_ShadowToken_BG29_875t,\r\n\tCardIds.TheUninvitedGuest_ShadowToken_BG29_875_Gt,\r\n];\r\n\r\nexport const NON_DISCOVERABLE_BUDDIES = [\r\n\tCardIds.SpiritRaptor_BG22_HERO_001_Buddy,\r\n\tCardIds.RagingContender_TB_BaconShop_HERO_67_Buddy,\r\n\tCardIds.CaptainFairmount_BG21_HERO_000_Buddy,\r\n\tCardIds.FlightTrainer_BG20_HERO_283_Buddy,\r\n\tCardIds.JandicesApprentice_TB_BaconShop_HERO_71_Buddy,\r\n\tCardIds.CrimsonHandCenturion_TB_BaconShop_HERO_60_Buddy,\r\n\tCardIds.CrazyMonkey_TB_BaconShop_HERO_38_Buddy,\r\n\tCardIds.ShadowWarden_TB_BaconShop_HERO_62_Buddy,\r\n\tCardIds.NexusLord_TB_BaconShop_HERO_58_Buddy,\r\n\tCardIds.LeiFlamepaw_BG20_HERO_202_Buddy,\r\n\tCardIds.Watfin_BG23_HERO_303_Buddy,\r\n\tCardIds.NightmareEctoplasm_BG20_HERO_301_Buddy,\r\n\tCardIds.ManyWhelps_BG22_HERO_305_Buddy,\r\n\tCardIds.Tamuzo_BG23_HERO_201_Buddy,\r\n\tCardIds.MaxwellMightySteed_TB_BaconShop_HERO_40_Buddy,\r\n\tCardIds.Crabby_BG22_HERO_000_Buddy,\r\n\tCardIds.Mishmash_TB_BaconShop_HERO_33_Buddy,\r\n\tCardIds.PigeonLord_TB_BaconShop_HERO_12_Buddy,\r\n\tCardIds.VardensAquarrior_BG22_HERO_004_Buddy,\r\n\tCardIds.AcolyteOfYoggSaron_TB_BaconShop_HERO_35_Buddy,\r\n\tCardIds.SubmersibleChef_BG22_HERO_201_Buddy,\r\n];\r\n\r\nexport const BUDDIES_TRIBE_REQUIREMENTS = [\r\n\t{\r\n\t\tbuddy: CardIds.Vaelastrasz_TB_BaconShop_HERO_56_Buddy,\r\n\t\ttribe: Race.DRAGON,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.DeathsHeadSage_BG20_HERO_103_Buddy,\r\n\t\ttribe: Race.QUILBOAR,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.SparkfinSoothsayer_TB_BaconShop_HERO_55_Buddy,\r\n\t\ttribe: Race.MURLOC,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.SubScrubber_BG22_HERO_200_Buddy,\r\n\t\ttribe: Race.MECH,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.CoilfangElite_BG23_HERO_304_Buddy,\r\n\t\ttribe: Race.NAGA,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy,\r\n\t\ttribe: Race.DEMON,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.ElementiumSquirrelBomb_TB_BaconShop_HERO_17_Buddy,\r\n\t\ttribe: Race.MECH,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.TuskarrRaider_TB_BaconShop_HERO_18_Buddy,\r\n\t\ttribe: Race.PIRATE,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.Festergut_BG25_HERO_100_Buddy,\r\n\t\ttribe: Race.UNDEAD,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.ImperialDefender_BG22_HERO_007_Buddy,\r\n\t\ttribe: Race.NAGA,\r\n\t},\r\n\t{\r\n\t\tbuddy: CardIds.ValithriaDreamwalker_TB_BaconShop_HERO_53_Buddy,\r\n\t\ttribe: Race.DRAGON,\r\n\t},\r\n];\r\n\r\nexport const defaultStartingHp = (\r\n\tgameType: GameType,\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): number => {\r\n\tif (isBattlegrounds(gameType)) {\r\n\t\tconst normalized = normalizeHeroCardId(heroCardId, allCards);\r\n\t\treturn allCards.getCard(normalized).health || 30;\r\n\t}\r\n\treturn 30;\r\n};\r\n\r\nexport const isBattlegrounds = (gameType: GameType): boolean => {\r\n\treturn [\r\n\t\tGameType.GT_BATTLEGROUNDS,\r\n\t\tGameType.GT_BATTLEGROUNDS_FRIENDLY,\r\n\t\tGameType.GT_BATTLEGROUNDS_AI_VS_AI,\r\n\t\tGameType.GT_BATTLEGROUNDS_PLAYER_VS_AI,\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO,\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO_VS_AI,\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO_FRIENDLY,\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO_AI_VS_AI,\r\n\t].includes(gameType as GameType);\r\n};\r\n\r\nexport const isBattlegroundsDuo = (gameType: GameType): boolean => {\r\n\treturn [\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO,\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO_VS_AI,\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO_FRIENDLY,\r\n\t\tGameType.GT_BATTLEGROUNDS_DUO_AI_VS_AI,\r\n\t].includes(gameType as GameType);\r\n};\r\n\r\nexport const normalizeHeroCardId = (\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): string => {\r\n\tif (!heroCardId) {\r\n\t\treturn heroCardId;\r\n\t}\r\n\r\n\tconst normalizedAfterSkin = normalizeHeroCardIdAfterSkin(heroCardId, allCards);\r\n\tswitch (normalizedAfterSkin) {\r\n\t\tcase 'TB_BaconShop_HERO_59t':\r\n\t\t\treturn 'TB_BaconShop_HERO_59';\r\n\t\tcase CardIds.QueenAzshara_NagaQueenAzsharaToken:\r\n\t\t\treturn CardIds.QueenAzshara_BG22_HERO_007;\r\n\t\tdefault:\r\n\t\t\treturn normalizedAfterSkin;\r\n\t}\r\n};\r\n\r\nconst normalizeHeroCardIdAfterSkin = (\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): string => {\r\n\tconst heroCard = allCards.getCard(heroCardId);\r\n\tif (!!heroCard?.battlegroundsHeroParentDbfId) {\r\n\t\tconst parentCard = allCards.getCard(heroCard.battlegroundsHeroParentDbfId);\r\n\t\tif (!!parentCard) {\r\n\t\t\treturn parentCard.id;\r\n\t\t}\r\n\t}\r\n\t// Fallback to regex\r\n\tconst bgHeroSkinMatch = heroCardId.match(/(.*)_SKIN_.*/);\r\n\tif (bgHeroSkinMatch) {\r\n\t\treturn bgHeroSkinMatch[1];\r\n\t}\r\n\treturn heroCardId;\r\n};\r\n\r\n// Used to make the mapping between premium / normal minions\r\nexport const normalizeMinionCardId = (\r\n\tcardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n) => {\r\n\tconst refCard = allCards.getCard(cardId);\r\n\tif (refCard?.battlegroundsNormalDbfId) {\r\n\t\tconst normalCard = allCards.getCard(refCard.battlegroundsNormalDbfId);\r\n\t\treturn normalCard?.id;\r\n\t}\r\n\treturn cardId;\r\n};\r\n\r\nexport const getTribeName = (tribe: Race, i18n: { translateString: (input: string) => string }): string =>\r\n\ti18n.translateString(`app.battlegrounds.tribes.${Race[tribe]?.toLowerCase()}`);\r\n\r\nexport const getTribeIcon = (tribe: string | Race): string => {\r\n\tconst referenceCardId = getReferenceTribeCardId(tribe);\r\n\treturn `https://static.zerotoheroes.com/hearthstone/cardart/256x/${referenceCardId}.jpg`;\r\n};\r\n\r\nexport const getReferenceTribeCardId = (tribe: string | Race): string => {\r\n\tlet referenceCardId: string;\r\n\ttribe = (tribe as string)?.padStart ? (tribe as string).toLowerCase() : tribe;\r\n\tswitch (tribe) {\r\n\t\tcase 'mech':\r\n\t\tcase Race.MECH:\r\n\t\t\treferenceCardId = CardIds.DeflectOBot_BGS_071;\r\n\t\t\tbreak;\r\n\t\tcase 'beast':\r\n\t\tcase Race.BEAST:\r\n\t\t\treferenceCardId = CardIds.GoldrinnTheGreatWolf_BGS_018;\r\n\t\t\tbreak;\r\n\t\tcase 'demon':\r\n\t\tcase Race.DEMON:\r\n\t\t\treferenceCardId = CardIds.ImpulsiveTrickster_BG21_006;\r\n\t\t\tbreak;\r\n\t\tcase 'dragon':\r\n\t\tcase Race.DRAGON:\r\n\t\t\treferenceCardId = CardIds.KalecgosArcaneAspect_BGS_041;\r\n\t\t\tbreak;\r\n\t\tcase 'murloc':\r\n\t\tcase Race.MURLOC:\r\n\t\t\treferenceCardId = CardIds.RockpoolHunter_BG_UNG_073;\r\n\t\t\tbreak;\r\n\t\tcase 'pirate':\r\n\t\tcase Race.PIRATE:\r\n\t\t\treferenceCardId = CardIds.Scallywag_BGS_061;\r\n\t\t\tbreak;\r\n\t\tcase 'elemental':\r\n\t\tcase Race.ELEMENTAL:\r\n\t\t\treferenceCardId = CardIds.Sellemental_BGS_115;\r\n\t\t\tbreak;\r\n\t\tcase 'naga':\r\n\t\tcase Race.NAGA:\r\n\t\t\treferenceCardId = CardIds.ShellCollector_BG23_002;\r\n\t\t\tbreak;\r\n\t\tcase 'quilboar':\r\n\t\tcase Race.QUILBOAR:\r\n\t\t\treferenceCardId = CardIds.SunBaconRelaxer_BG20_301;\r\n\t\t\tbreak;\r\n\t\tcase 'undead':\r\n\t\tcase Race.UNDEAD:\r\n\t\t\treferenceCardId = CardIds.RisenRider_BG25_001;\r\n\t\t\tbreak;\r\n\t\tcase 'all':\r\n\t\tcase Race.ALL:\r\n\t\t\treferenceCardId = CardIds.Amalgadon_BGS_069;\r\n\t\t\tbreak;\r\n\t\tdefault:\r\n\t\t\treferenceCardId = CardIds.PatientScout_BG24_715;\r\n\t\t\tbreak;\r\n\t}\r\n\treturn referenceCardId;\r\n};\r\n\r\nexport const getHeroPower = (\r\n\theroCardId: string,\r\n\tallCards: { getCard: (cardId: string | number) => ReferenceCard },\r\n): string => {\r\n\tconst normalized = normalizeHeroCardId(heroCardId, allCards);\r\n\tswitch (normalized) {\r\n\t\tcase 'TB_BaconShop_HERO_01':\r\n\t\t\treturn 'TB_BaconShop_HP_001';\r\n\t\tcase 'TB_BaconShop_HERO_02':\r\n\t\t\treturn 'TB_BaconShop_HP_011';\r\n\t\tcase 'TB_BaconShop_HERO_08':\r\n\t\t\treturn 'TB_BaconShop_HP_069';\r\n\t\tcase CardIds.RagnarosTheFirelord_TB_BaconShop_HERO_11:\r\n\t\t\treturn CardIds.DieInsects_TB_BaconShop_HP_087;\r\n\t\tcase 'TB_BaconShop_HERO_12':\r\n\t\t\treturn 'TB_BaconShop_HP_041';\r\n\t\tcase CardIds.QueenWagtoggle_TB_BaconShop_HERO_14:\r\n\t\t\treturn CardIds.WaxWarband;\r\n\t\tcase 'TB_BaconShop_HERO_15':\r\n\t\t\treturn 'TB_BaconShop_HP_010';\r\n\t\tcase 'TB_BaconShop_HERO_16':\r\n\t\t\treturn 'TB_BaconShop_HP_044';\r\n\t\tcase 'TB_BaconShop_HERO_17':\r\n\t\t\treturn 'TB_BaconShop_HP_015';\r\n\t\tcase 'TB_BaconShop_HERO_18':\r\n\t\t\treturn 'TB_BaconShop_HP_072';\r\n\t\tcase 'TB_BaconShop_HERO_20':\r\n\t\t\treturn 'TB_BaconShop_HP_018';\r\n\t\tcase 'TB_BaconShop_HERO_21':\r\n\t\t\treturn 'TB_BaconShop_HP_020';\r\n\t\tcase 'TB_BaconShop_HERO_22':\r\n\t\t\treturn 'TB_BaconShop_HP_024';\r\n\t\tcase CardIds.Shudderwock_TB_BaconShop_HERO_23:\r\n\t\t\treturn CardIds.SnickerSnack;\r\n\t\tcase 'TB_BaconShop_HERO_25':\r\n\t\t\treturn 'TB_BaconShop_HP_049';\r\n\t\tcase 'TB_BaconShop_HERO_27':\r\n\t\t\treturn 'TB_BaconShop_HP_014';\r\n\t\tcase 'TB_BaconShop_HERO_28':\r\n\t\t\treturn 'TB_BaconShop_HP_028';\r\n\t\tcase 'TB_BaconShop_HERO_30':\r\n\t\t\treturn 'TB_BaconShop_HP_043';\r\n\t\tcase 'TB_BaconShop_HERO_31':\r\n\t\t\treturn 'TB_BaconShop_HP_009';\r\n\t\tcase 'TB_BaconShop_HERO_33':\r\n\t\t\treturn 'TB_BaconShop_HP_033';\r\n\t\tcase 'TB_BaconShop_HERO_34':\r\n\t\t\treturn 'TB_BaconShop_HP_035';\r\n\t\tcase 'TB_BaconShop_HERO_35':\r\n\t\t\treturn 'TB_BaconShop_HP_039';\r\n\t\tcase 'TB_BaconShop_HERO_36':\r\n\t\t\treturn 'TB_BaconShop_HP_042';\r\n\t\tcase 'TB_BaconShop_HERO_37':\r\n\t\t\treturn 'TB_BaconShop_HP_036';\r\n\t\tcase 'TB_BaconShop_HERO_38':\r\n\t\t\treturn 'TB_BaconShop_HP_038';\r\n\t\tcase 'TB_BaconShop_HERO_39':\r\n\t\t\treturn 'TB_BaconShop_HP_040';\r\n\t\tcase 'TB_BaconShop_HERO_40':\r\n\t\t\treturn 'TB_BaconShop_HP_057';\r\n\t\tcase 'TB_BaconShop_HERO_41':\r\n\t\t\treturn 'TB_BaconShop_HP_046';\r\n\t\tcase 'TB_BaconShop_HERO_42':\r\n\t\t\treturn 'TB_BaconShop_HP_047';\r\n\t\tcase 'TB_BaconShop_HERO_43':\r\n\t\t\treturn 'TB_BaconShop_HP_048';\r\n\t\t// case 'TB_BaconShop_HERO_44':\r\n\t\t// \treturn 'TB_BaconShop_HP_050';\r\n\t\tcase 'TB_BaconShop_HERO_45':\r\n\t\t\treturn 'TB_BaconShop_HP_053';\r\n\t\tcase 'TB_BaconShop_HERO_47':\r\n\t\t\treturn 'TB_BaconShop_HP_051';\r\n\t\tcase 'TB_BaconShop_HERO_49':\r\n\t\t\treturn 'TB_BaconShop_HP_054';\r\n\t\tcase 'TB_BaconShop_HERO_50':\r\n\t\t\treturn 'TB_BaconShop_HP_077';\r\n\t\tcase 'TB_BaconShop_HERO_52':\r\n\t\t\treturn 'TB_BaconShop_HP_061';\r\n\t\tcase 'TB_BaconShop_HERO_53':\r\n\t\t\treturn 'TB_BaconShop_HP_062';\r\n\t\tcase 'TB_BaconShop_HERO_55':\r\n\t\t\treturn 'TB_BaconShop_HP_056';\r\n\t\tcase 'TB_BaconShop_HERO_56':\r\n\t\t\treturn 'TB_BaconShop_HP_064';\r\n\t\tcase 'TB_BaconShop_HERO_57':\r\n\t\t\treturn 'TB_BaconShop_HP_063';\r\n\t\tcase 'TB_BaconShop_HERO_58':\r\n\t\t\treturn 'TB_BaconShop_HP_052';\r\n\t\tcase 'TB_BaconShop_HERO_59t':\r\n\t\t\treturn 'TB_BaconShop_HP_065t2';\r\n\t\tcase 'TB_BaconShop_HERO_59':\r\n\t\t\treturn 'TB_BaconShop_HP_065';\r\n\t\tcase 'TB_BaconShop_HERO_60':\r\n\t\t\treturn 'TB_BaconShop_HP_066';\r\n\t\tcase 'TB_BaconShop_HERO_61':\r\n\t\t\treturn 'TB_BaconShop_HP_067';\r\n\t\tcase 'TB_BaconShop_HERO_62':\r\n\t\t\treturn 'TB_BaconShop_HP_068';\r\n\t\tcase 'TB_BaconShop_HERO_64':\r\n\t\t\treturn 'TB_BaconShop_HP_074';\r\n\t\tcase CardIds.CaptainHooktusk_TB_BaconShop_HERO_67:\r\n\t\t\treturn CardIds.TrashForTreasure;\r\n\t\tcase 'TB_BaconShop_HERO_68':\r\n\t\t\treturn 'TB_BaconShop_HP_076';\r\n\t\tcase 'TB_BaconShop_HERO_70':\r\n\t\t\treturn 'TB_BaconShop_HP_080';\r\n\t\tcase 'TB_BaconShop_HERO_71':\r\n\t\t\treturn 'TB_BaconShop_HP_084';\r\n\t\tcase 'TB_BaconShop_HERO_72':\r\n\t\t\treturn 'TB_BaconShop_HP_081';\r\n\t\tcase 'TB_BaconShop_HERO_74':\r\n\t\t\treturn 'TB_BaconShop_HP_082';\r\n\t\tcase CardIds.Chenvaala_TB_BaconShop_HERO_78:\r\n\t\t\treturn CardIds.Avalanche_TB_BaconShop_HP_088;\r\n\t\tcase CardIds.Rakanishu_TB_BaconShop_HERO_75:\r\n\t\t\treturn CardIds.TavernLighting;\r\n\t\tcase CardIds.Alakir:\r\n\t\t\treturn CardIds.SwattingInsects;\r\n\t\tcase CardIds.ZephrysTheGreat_TB_BaconShop_HERO_91:\r\n\t\t\treturn CardIds.ThreeWishes;\r\n\t\tcase CardIds.SilasDarkmoon_TB_BaconShop_HERO_90:\r\n\t\t\treturn CardIds.ComeOneComeAll;\r\n\t\tcase CardIds.Cthun_TB_BaconShop_HERO_29:\r\n\t\t\treturn CardIds.SaturdayCthuns;\r\n\t\tcase CardIds.Nzoth:\r\n\t\t\treturn CardIds.AvatarOfNzoth;\r\n\t\tcase CardIds.Yshaarj:\r\n\t\t\treturn CardIds.EmbraceYourRage;\r\n\t\tcase CardIds.Tickatus_TB_BaconShop_HERO_94:\r\n\t\t\treturn CardIds.PrizeWall;\r\n\t\tcase CardIds.Greybough_TB_BaconShop_HERO_95:\r\n\t\t\treturn CardIds.SproutItOut;\r\n\t\tcase CardIds.OverlordSaurfang_BG20_HERO_102:\r\n\t\t\treturn CardIds.OverlordSaurfang_ForTheHorde;\r\n\t\tcase CardIds.DeathSpeakerBlackthorn_BG20_HERO_103:\r\n\t\t\treturn CardIds.DeathSpeakerBlackthorn_Bloodbound;\r\n\t\tcase CardIds.Voljin_BG20_HERO_201:\r\n\t\t\treturn CardIds.Voljin_SpiritSwap_BG20_HERO_201p;\r\n\t\tcase CardIds.Xyrella_BG20_HERO_101:\r\n\t\t\treturn CardIds.Xyrella_SeeTheLight;\r\n\t\tcase CardIds.MutanusTheDevourer_BG20_HERO_301:\r\n\t\t\treturn CardIds.MutanusTheDevourer_Devour;\r\n\t\tcase CardIds.GuffRunetotem_BG20_HERO_242:\r\n\t\t\treturn CardIds.GuffRunetotem_NaturalBalance;\r\n\t\tcase CardIds.KurtrusAshfallen_BG20_HERO_280:\r\n\t\t\treturn CardIds.KurtrusAshfallen_GlaiveRicochet;\r\n\t\tcase CardIds.Galewing:\r\n\t\t\treturn CardIds.Galewing_DungarsGryphon;\r\n\t\tcase CardIds.TradePrinceGallywix_TB_BaconShop_HERO_10:\r\n\t\t\treturn CardIds.SmartSavings;\r\n\t\tcase CardIds.MasterNguyen:\r\n\t\t\treturn CardIds.MasterNguyen_PowerOfTheStorm;\r\n\t\tcase CardIds.CarielRoame_BG21_HERO_000:\r\n\t\t\treturn CardIds.CarielRoame_Conviction;\r\n\t\tcase CardIds.Sneed_BG21_HERO_030:\r\n\t\t\treturn CardIds.Sneed_SneedsReplicator;\r\n\t\tcase CardIds.CookieTheCook_BG21_HERO_020:\r\n\t\t\treturn CardIds.CookieTheCook_StirThePot;\r\n\t\tcase CardIds.TamsinRoame_BG20_HERO_282:\r\n\t\t\treturn CardIds.TamsinRoame_FragrantPhylactery;\r\n\t\tcase CardIds.ScabbsCutterbutter_BG21_HERO_010:\r\n\t\t\treturn CardIds.ScabbsCutterbutter_ISpy;\r\n\t\tcase CardIds.Brukan_BG22_HERO_001:\r\n\t\t\treturn CardIds.Brukan_EmbraceTheElements;\r\n\t\tcase CardIds.Drekthar_BG22_HERO_002:\r\n\t\t\treturn CardIds.Drekthar_LeadTheFrostwolves;\r\n\t\tcase CardIds.VanndarStormpike_BG22_HERO_003:\r\n\t\t\treturn CardIds.VanndarStormpike_LeadTheStormpikes;\r\n\t\tcase CardIds.TavishStormpike_BG22_HERO_000:\r\n\t\t\treturn CardIds.TavishStormpike_Deadeye;\r\n\t\tcase CardIds.VardenDawngrasp_BG22_HERO_004:\r\n\t\t\treturn CardIds.VardenDawngrasp_TwiceAsNice;\r\n\t\tcase CardIds.Rokara_BG20_HERO_100:\r\n\t\t\treturn CardIds.Rokara_GloryOfCombat;\r\n\t\tcase CardIds.Onyxia_BG22_HERO_305:\r\n\t\t\treturn CardIds.Onyxia_Broodmother;\r\n\t\tcase CardIds.AmbassadorFaelin_BG22_HERO_201:\r\n\t\t\treturn CardIds.AmbassadorFaelin_ExpeditionPlans;\r\n\t\tcase CardIds.IniStormcoil_BG22_HERO_200:\r\n\t\t\treturn CardIds.IniStormcoil_Mechgyver;\r\n\t\tcase CardIds.QueenAzshara_BG22_HERO_007:\r\n\t\t\treturn CardIds.QueenAzshara_AzsharasAmbition;\r\n\t\tcase CardIds.QueenAzshara_NagaQueenAzsharaToken:\r\n\t\t\treturn CardIds.QueenAzshara_NagaConquest;\r\n\t\tcase CardIds.Ozumat_BG23_HERO_201:\r\n\t\t\treturn CardIds.Ozumat_Tentacular;\r\n\t\tcase CardIds.LadyVashj_BG23_HERO_304:\r\n\t\t\treturn CardIds.LadyVashj_RelicsOfTheDeep;\r\n\t\tcase CardIds.HeistbaronTogwaggle_BG23_HERO_305:\r\n\t\t\treturn CardIds.HeistbaronTogwaggle_ThePerfectCrime;\r\n\t\tcase CardIds.MurlocHolmes_BG23_HERO_303:\r\n\t\t\treturn CardIds.MurlocHolmes_DetectiveForHire;\r\n\t\tcase CardIds.SireDenathrius_BG24_HERO_100:\r\n\t\t\treturn CardIds.SireDenathrius_Whodunitquestion;\r\n\t\tcase CardIds.SylvanasWindrunner_BG23_HERO_306:\r\n\t\t\treturn CardIds.SylvanasWindrunner_ReclaimedSouls;\r\n\t\tcase CardIds.TheJailer_TB_BaconShop_HERO_702:\r\n\t\t\treturn CardIds.RunicEmpowerment;\r\n\t\tcase CardIds.EnhanceOMechano_BG24_HERO_204:\r\n\t\t\treturn CardIds.EnhanceOMechano_Enhancification;\r\n\t\tcase CardIds.ProfessorPutricide_BG25_HERO_100:\r\n\t\t\treturn CardIds.ProfessorPutricide_BuildAnUndead;\r\n\t\tcase CardIds.TeronGorefiend_BG25_HERO_103:\r\n\t\t\treturn CardIds.TeronGorefiend_RapidReanimation;\r\n\t\tcase CardIds.ETCBandManager_BG25_HERO_105:\r\n\t\t\treturn CardIds.ETCBandManager_SignANewArtist;\r\n\t\tcase CardIds.RockMasterVoone_BG26_HERO_104:\r\n\t\t\treturn CardIds.RockMasterVoone_UpbeatHarmony;\r\n\t\tcase CardIds.IngeTheIronHymn:\r\n\t\t\treturn CardIds.IngeTheIronHymn_MajorHymn;\r\n\t\tcase CardIds.CapnHoggarr_BG26_HERO_101:\r\n\t\t\treturn CardIds.CapnHoggarr_ImTheCapnNow;\r\n\t\tcase CardIds.Diablo:\r\n\t\t\treturn CardIds.Diablo_RealmOfTerror;\r\n\t\tcase CardIds.ThorimStormlord_BG27_HERO_801:\r\n\t\t\treturn CardIds.ThorimStormlord_ChooseYourChampion_BG27_HERO_801p2;\r\n\t\tcase CardIds.SnakeEyes_BG28_HERO_400:\r\n\t\t\treturn CardIds.SnakeEyes_LuckyRoll_BG28_HERO_400p;\r\n\t\tcase CardIds.TaethelanBloodwatcher_BG28_HERO_800:\r\n\t\t\treturn CardIds.TaethelanBloodwatcher_ReliquaryResearch_BG28_HERO_800p;\r\n\t\tcase CardIds.DoctorHollidae_BG28_HERO_801:\r\n\t\t\treturn CardIds.DoctorHollidae_BlessingOfTheNineFrogs_BG28_HERO_801p;\r\n\t\tcase CardIds.Cho_BGDUO_HERO_222:\r\n\t\t\treturn CardIds.Cho_DoubleTrouble_BGDUO_HERO_222p;\r\n\t\tcase CardIds.Gall_BGDUO_HERO_223:\r\n\t\t\treturn CardIds.Gall_DoubleTrouble_BGDUO_HERO_223p;\r\n\t\tcase CardIds.TheNamelessOne_BGDUO_HERO_100:\r\n\t\t\treturn CardIds.TheNamelessOne_X_BGDUO_HERO_100p;\r\n\t\tcase CardIds.FlobbidinousFloop_BGDUO_HERO_101:\r\n\t\t\treturn CardIds.FlobbidinousFloop_GloriousGloop_BGDUO_HERO_101p;\r\n\t\tcase CardIds.MadamGoya_BGDUO_HERO_104:\r\n\t\t\treturn CardIds.MadamGoya_EfficientExchange_BGDUO_HERO_104p;\r\n\t\tcase CardIds.MarinTheManager_BG30_HERO_304:\r\n\t\t\treturn CardIds.MarinTheManager_FantasticTreasure_BG30_HERO_304p;\r\n\r\n\t\tcase '':\r\n\t\t\treturn null; // new heroes\r\n\t}\r\n};\r\n\r\nexport const getBuddy = (heroCardId: CardIds, allCards: AllCardsService): CardIds | null => {\r\n\tswitch (normalizeHeroCardId(heroCardId, allCards)) {\r\n\t\tcase CardIds.AFKay_TB_BaconShop_HERO_16:\r\n\t\t\treturn CardIds.SnackVendor_TB_BaconShop_HERO_16_Buddy;\r\n\t\tcase CardIds.Alakir:\r\n\t\t\treturn CardIds.SpiritOfAir_TB_BaconShop_HERO_76_Buddy;\r\n\t\tcase CardIds.Alexstrasza_TB_BaconShop_HERO_56:\r\n\t\t\treturn CardIds.Vaelastrasz_TB_BaconShop_HERO_56_Buddy;\r\n\t\tcase CardIds.ArannaStarseeker_ArannaUnleashedToken:\r\n\t\tcase CardIds.ArannaStarseeker_TB_BaconShop_HERO_59:\r\n\t\t\treturn CardIds.SklibbDemonHunter_TB_BaconShop_HERO_59_Buddy;\r\n\t\tcase CardIds.ArchVillainRafaam_TB_BaconShop_HERO_45:\r\n\t\t\treturn CardIds.LoyalHenchman_TB_BaconShop_HERO_45_Buddy;\r\n\t\tcase CardIds.Brukan_BG22_HERO_001:\r\n\t\t\treturn CardIds.SpiritRaptor_BG22_HERO_001_Buddy;\r\n\t\tcase CardIds.CaptainEudora_TB_BaconShop_HERO_64:\r\n\t\t\treturn CardIds.DagwikStickytoe_TB_BaconShop_HERO_64_Buddy;\r\n\t\tcase CardIds.CaptainHooktusk_TB_BaconShop_HERO_67:\r\n\t\t\treturn CardIds.RagingContender_TB_BaconShop_HERO_67_Buddy;\r\n\t\tcase CardIds.CarielRoame_BG21_HERO_000:\r\n\t\t\treturn CardIds.CaptainFairmount_BG21_HERO_000_Buddy;\r\n\t\tcase CardIds.Chenvaala_TB_BaconShop_HERO_78:\r\n\t\t\treturn CardIds.SnowElemental_TB_BaconShop_HERO_78_Buddy;\r\n\t\tcase CardIds.CookieTheCook_BG21_HERO_020:\r\n\t\t\treturn CardIds.SousChef_BG21_HERO_020_Buddy;\r\n\t\tcase CardIds.Cthun_TB_BaconShop_HERO_29:\r\n\t\t\treturn CardIds.TentacleOfCthun_TB_BaconShop_HERO_29_Buddy;\r\n\t\tcase CardIds.DancinDeryl:\r\n\t\t\treturn CardIds.AsherTheHaberdasher_TB_BaconShop_HERO_36_Buddy;\r\n\t\tcase CardIds.DeathSpeakerBlackthorn_BG20_HERO_103:\r\n\t\t\treturn CardIds.DeathsHeadSage_BG20_HERO_103_Buddy;\r\n\t\tcase CardIds.Deathwing_TB_BaconShop_HERO_52:\r\n\t\t\treturn CardIds.LadySinestra_TB_BaconShop_HERO_52_Buddy;\r\n\t\tcase CardIds.DinotamerBrann_TB_BaconShop_HERO_43:\r\n\t\t\treturn CardIds.BrannsEpicEgg_TB_BaconShop_HERO_43_Buddy;\r\n\t\tcase CardIds.Drekthar_BG22_HERO_002:\r\n\t\t\treturn CardIds.FrostwolfLieutenant_BG22_HERO_002_Buddy;\r\n\t\tcase CardIds.EdwinVancleef_TB_BaconShop_HERO_01:\r\n\t\t\treturn CardIds.Si7Scout_TB_BaconShop_HERO_01_Buddy;\r\n\t\tcase CardIds.EliseStarseeker_TB_BaconShop_HERO_42:\r\n\t\t\treturn CardIds.JrNavigator_TB_BaconShop_HERO_42_Buddy;\r\n\t\tcase CardIds.ForestWardenOmu_TB_BaconShop_HERO_74:\r\n\t\t\treturn CardIds.EvergreenBotani_TB_BaconShop_HERO_74_Buddy;\r\n\t\tcase CardIds.FungalmancerFlurgl:\r\n\t\t\treturn CardIds.SparkfinSoothsayer_TB_BaconShop_HERO_55_Buddy;\r\n\t\tcase CardIds.Galakrond:\r\n\t\t\treturn CardIds.ApostleOfGalakrond_TB_BaconShop_HERO_02_Buddy;\r\n\t\tcase CardIds.Galewing:\r\n\t\t\treturn CardIds.FlightTrainer_BG20_HERO_283_Buddy;\r\n\t\tcase CardIds.GeorgeTheFallen_TB_BaconShop_HERO_15:\r\n\t\t\treturn CardIds.KarlTheLost_TB_BaconShop_HERO_15_Buddy;\r\n\t\tcase CardIds.Greybough_TB_BaconShop_HERO_95:\r\n\t\t\treturn CardIds.WanderingTreant_TB_BaconShop_HERO_95_Buddy;\r\n\t\tcase CardIds.GuffRunetotem_BG20_HERO_242:\r\n\t\t\treturn CardIds.BabyKodo_BG20_HERO_242_Buddy;\r\n\t\tcase CardIds.IllidanStormrage_TB_BaconShop_HERO_08:\r\n\t\t\treturn CardIds.EclipsionIllidari_TB_BaconShop_HERO_08_Buddy;\r\n\t\tcase CardIds.InfiniteToki:\r\n\t\t\treturn CardIds.ClockworkAssistant_TB_BaconShop_HERO_28_Buddy;\r\n\t\tcase CardIds.JandiceBarov_TB_BaconShop_HERO_71:\r\n\t\t\treturn CardIds.JandicesApprentice_TB_BaconShop_HERO_71_Buddy;\r\n\t\tcase CardIds.KaelthasSunstrider_TB_BaconShop_HERO_60:\r\n\t\t\treturn CardIds.CrimsonHandCenturion_TB_BaconShop_HERO_60_Buddy;\r\n\t\tcase CardIds.KingMukla_TB_BaconShop_HERO_38:\r\n\t\t\treturn CardIds.CrazyMonkey_TB_BaconShop_HERO_38_Buddy;\r\n\t\tcase CardIds.KurtrusAshfallen_BG20_HERO_280:\r\n\t\t\treturn CardIds.LivingNightmare_BG20_HERO_280_Buddy;\r\n\t\tcase CardIds.LichBazhial:\r\n\t\t\treturn CardIds.UnearthedUnderling_TB_BaconShop_HERO_25_Buddy;\r\n\t\tcase CardIds.LordBarov_TB_BaconShop_HERO_72:\r\n\t\t\treturn CardIds.BarovsApprentice_TB_BaconShop_HERO_72_Buddy;\r\n\t\tcase CardIds.LordJaraxxus_TB_BaconShop_HERO_37:\r\n\t\t\treturn CardIds.Kilrek_TB_BaconShop_HERO_37_Buddy;\r\n\t\tcase CardIds.MaievShadowsong_TB_BaconShop_HERO_62:\r\n\t\t\treturn CardIds.ShadowWarden_TB_BaconShop_HERO_62_Buddy;\r\n\t\tcase CardIds.Malygos:\r\n\t\t\treturn CardIds.NexusLord_TB_BaconShop_HERO_58_Buddy;\r\n\t\tcase CardIds.MasterNguyen:\r\n\t\t\treturn CardIds.LeiFlamepaw_BG20_HERO_202_Buddy;\r\n\t\tcase CardIds.MillhouseManastorm_TB_BaconShop_HERO_49:\r\n\t\t\treturn CardIds.MagnusManastorm_TB_BaconShop_HERO_49_Buddy;\r\n\t\tcase CardIds.MillificentManastorm:\r\n\t\t\treturn CardIds.ElementiumSquirrelBomb_TB_BaconShop_HERO_17_Buddy;\r\n\t\tcase CardIds.MrBigglesworth_TB_BaconShop_HERO_70:\r\n\t\t\treturn CardIds.LilKT_TB_BaconShop_HERO_70_Buddy;\r\n\t\tcase CardIds.MutanusTheDevourer_BG20_HERO_301:\r\n\t\t\treturn CardIds.NightmareEctoplasm_BG20_HERO_301_Buddy;\r\n\t\tcase CardIds.Nozdormu_TB_BaconShop_HERO_57:\r\n\t\t\treturn CardIds.Chromie_TB_BaconShop_HERO_57_Buddy;\r\n\t\tcase CardIds.Nzoth:\r\n\t\t\treturn CardIds.BabyNzoth_TB_BaconShop_HERO_93_Buddy;\r\n\t\tcase CardIds.OverlordSaurfang_BG20_HERO_102:\r\n\t\t\treturn CardIds.DranoshSaurfang_BG20_HERO_102_Buddy;\r\n\t\tcase CardIds.PatchesThePirate_TB_BaconShop_HERO_18:\r\n\t\t\treturn CardIds.TuskarrRaider_TB_BaconShop_HERO_18_Buddy;\r\n\t\tcase CardIds.Patchwerk_TB_BaconShop_HERO_34:\r\n\t\t\treturn CardIds.Weebomination_TB_BaconShop_HERO_34_Buddy;\r\n\t\tcase CardIds.Pyramad:\r\n\t\t\treturn CardIds.TitanicGuardian_TB_BaconShop_HERO_39_Buddy;\r\n\t\tcase CardIds.QueenWagtoggle_TB_BaconShop_HERO_14:\r\n\t\t\treturn CardIds.ElderTaggawag_TB_BaconShop_HERO_14_Buddy;\r\n\t\tcase CardIds.RagnarosTheFirelord_TB_BaconShop_HERO_11:\r\n\t\t\treturn CardIds.Lucifron_TB_BaconShop_HERO_11_Buddy;\r\n\t\tcase CardIds.Rakanishu_TB_BaconShop_HERO_75:\r\n\t\t\treturn CardIds.LanternTender_TB_BaconShop_HERO_75_Buddy;\r\n\t\tcase CardIds.RenoJackson_TB_BaconShop_HERO_41:\r\n\t\t\treturn CardIds.SrTombDiver_TB_BaconShop_HERO_41_Buddy;\r\n\t\tcase CardIds.ScabbsCutterbutter_BG21_HERO_010:\r\n\t\t\treturn CardIds.WardenThelwater_BG21_HERO_010_Buddy;\r\n\t\tcase CardIds.Shudderwock_TB_BaconShop_HERO_23:\r\n\t\t\treturn CardIds.Muckslinger_TB_BaconShop_HERO_23_Buddy;\r\n\t\tcase CardIds.SilasDarkmoon_TB_BaconShop_HERO_90:\r\n\t\t\treturn CardIds.Burth_TB_BaconShop_HERO_90_Buddy;\r\n\t\tcase CardIds.Sindragosa_TB_BaconShop_HERO_27:\r\n\t\t\treturn CardIds.ThawedChampion_TB_BaconShop_HERO_27_Buddy;\r\n\t\tcase CardIds.SirFinleyMrrgglton_TB_BaconShop_HERO_40:\r\n\t\t\treturn CardIds.MaxwellMightySteed_TB_BaconShop_HERO_40_Buddy;\r\n\t\tcase CardIds.SkycapnKragg_TB_BaconShop_HERO_68:\r\n\t\t\treturn CardIds.Sharkbait_TB_BaconShop_HERO_68_Buddy;\r\n\t\tcase CardIds.Sneed_BG21_HERO_030:\r\n\t\t\treturn CardIds.PilotedWhirlOTron_BG21_HERO_030_Buddy;\r\n\t\tcase CardIds.TamsinRoame_BG20_HERO_282:\r\n\t\t\treturn CardIds.Monstrosity_BG20_HERO_282_Buddy;\r\n\t\tcase CardIds.TavishStormpike_BG22_HERO_000:\r\n\t\t\treturn CardIds.Crabby_BG22_HERO_000_Buddy;\r\n\t\tcase CardIds.TessGreymane_TB_BaconShop_HERO_50:\r\n\t\t\treturn CardIds.HunterOfOld_TB_BaconShop_HERO_50_Buddy;\r\n\t\tcase CardIds.TheCurator_TB_BaconShop_HERO_33:\r\n\t\t\treturn CardIds.Mishmash_TB_BaconShop_HERO_33_Buddy;\r\n\t\tcase CardIds.TheGreatAkazamzarak:\r\n\t\t\treturn CardIds.StreetMagician_TB_BaconShop_HERO_21_Buddy;\r\n\t\tcase CardIds.TheLichKing_TB_BaconShop_HERO_22:\r\n\t\t\treturn CardIds.Arfus_TB_BaconShop_HERO_22_Buddy;\r\n\t\tcase CardIds.TheRatKing_TB_BaconShop_HERO_12:\r\n\t\t\treturn CardIds.PigeonLord_TB_BaconShop_HERO_12_Buddy;\r\n\t\tcase CardIds.Tickatus_TB_BaconShop_HERO_94:\r\n\t\t\treturn CardIds.TicketCollector_TB_BaconShop_HERO_94_Buddy;\r\n\t\tcase CardIds.TradePrinceGallywix_TB_BaconShop_HERO_10:\r\n\t\t\treturn CardIds.BilgewaterMogul_TB_BaconShop_HERO_10_Buddy;\r\n\t\tcase CardIds.VanndarStormpike_BG22_HERO_003:\r\n\t\t\treturn CardIds.StormpikeLieutenant_BG22_HERO_003_Buddy;\r\n\t\tcase CardIds.Voljin_BG20_HERO_201:\r\n\t\t\treturn CardIds.MasterGadrin_BG20_HERO_201_Buddy;\r\n\t\tcase CardIds.Xyrella_BG20_HERO_101:\r\n\t\t\treturn CardIds.BabyElekk_BG20_HERO_101_Buddy;\r\n\t\tcase CardIds.YoggSaronHopesEnd_TB_BaconShop_HERO_35:\r\n\t\t\treturn CardIds.AcolyteOfYoggSaron_TB_BaconShop_HERO_35_Buddy;\r\n\t\tcase CardIds.Ysera_TB_BaconShop_HERO_53:\r\n\t\t\treturn CardIds.ValithriaDreamwalker_TB_BaconShop_HERO_53_Buddy;\r\n\t\tcase CardIds.Yshaarj:\r\n\t\t\treturn CardIds.BabyYshaarj_TB_BaconShop_HERO_92_Buddy;\r\n\t\tcase CardIds.ZephrysTheGreat_TB_BaconShop_HERO_91:\r\n\t\t\treturn CardIds.Phyresz_TB_BaconShop_HERO_91_Buddy;\r\n\t\tcase CardIds.VardenDawngrasp_BG22_HERO_004:\r\n\t\t\treturn CardIds.VardensAquarrior_BG22_HERO_004_Buddy;\r\n\t\tcase CardIds.Rokara_BG20_HERO_100:\r\n\t\t\treturn CardIds.IcesnarlTheMighty_BG20_HERO_100_Buddy;\r\n\t\tcase CardIds.Onyxia_BG22_HERO_305:\r\n\t\t\treturn CardIds.ManyWhelps_BG22_HERO_305_Buddy;\r\n\t\tcase CardIds.AmbassadorFaelin_BG22_HERO_201:\r\n\t\t\treturn CardIds.SubmersibleChef_BG22_HERO_201_Buddy;\r\n\t\tcase CardIds.IniStormcoil_BG22_HERO_200:\r\n\t\t\treturn CardIds.SubScrubber_BG22_HERO_200_Buddy;\r\n\t\tcase CardIds.QueenAzshara_BG22_HERO_007:\r\n\t\t\treturn CardIds.ImperialDefender_BG22_HERO_007_Buddy;\r\n\t\tcase CardIds.Ozumat_BG23_HERO_201:\r\n\t\t\treturn CardIds.Tamuzo_BG23_HERO_201_Buddy;\r\n\t\tcase CardIds.LadyVashj_BG23_HERO_304:\r\n\t\t\treturn CardIds.CoilfangElite_BG23_HERO_304_Buddy;\r\n\t\tcase CardIds.HeistbaronTogwaggle_BG23_HERO_305:\r\n\t\t\treturn CardIds.WaxadredTheDrippy_BG23_HERO_305_Buddy;\r\n\t\tcase CardIds.SireDenathrius_BG24_HERO_100:\r\n\t\t\treturn CardIds.ShadyAristocrat_BG24_HERO_100_Buddy;\r\n\t\tcase CardIds.SylvanasWindrunner_BG23_HERO_306:\r\n\t\t\treturn CardIds.NathanosBlightcaller_BG23_HERO_306_Buddy;\r\n\t\tcase CardIds.TheJailer_TB_BaconShop_HERO_702:\r\n\t\t\treturn CardIds.MawswornSoulkeeper_TB_BaconShop_HERO_702_Buddy;\r\n\t\tcase CardIds.EnhanceOMechano_BG24_HERO_204:\r\n\t\t\treturn CardIds.EnhanceOMedico_BG24_HERO_204_Buddy;\r\n\t\tcase CardIds.ProfessorPutricide_BG25_HERO_100:\r\n\t\t\treturn CardIds.Festergut_BG25_HERO_100_Buddy;\r\n\t\tcase CardIds.TeronGorefiend_BG25_HERO_103:\r\n\t\t\treturn CardIds.ShadowyConstruct_BG25_HERO_103_Buddy;\r\n\t\tcase CardIds.MurlocHolmes_BG23_HERO_303:\r\n\t\t\treturn CardIds.Watfin_BG23_HERO_303_Buddy;\r\n\t\tcase CardIds.ETCBandManager_BG25_HERO_105:\r\n\t\t\treturn CardIds.TalentScout_BG25_HERO_105_Buddy;\r\n\t\tcase CardIds.CapnHoggarr_BG26_HERO_101:\r\n\t\t\treturn CardIds.ShiningSailor_BG26_HERO_101_Buddy;\r\n\t\tcase CardIds.IngeTheIronHymn:\r\n\t\t\treturn CardIds.SolemnSerenader_BG26_HERO_102_Buddy;\r\n\t\tcase CardIds.RockMasterVoone_BG26_HERO_104:\r\n\t\t\treturn CardIds.AkaliRockRhino_BG26_HERO_104_Buddy;\r\n\t\tcase CardIds.ThorimStormlord_BG27_HERO_801:\r\n\t\t\treturn CardIds.VeranusStormlordsMount_BG27_HERO_801_Buddy;\r\n\t\tcase CardIds.SnakeEyes_BG28_HERO_400:\r\n\t\t\treturn CardIds.BoxCars_BG28_HERO_400_Buddy;\r\n\t\tcase CardIds.DoctorHollidae_BG28_HERO_801:\r\n\t\t\treturn CardIds.TheNineFrogs_BG28_HERO_801_Buddy;\r\n\t\tcase CardIds.TaethelanBloodwatcher_BG28_HERO_800:\r\n\t\t\treturn CardIds.ReliquaryAttendant_BG28_HERO_800_Buddy;\r\n\t\tcase CardIds.TheNamelessOne_BGDUO_HERO_100:\r\n\t\t\treturn CardIds.FacelessOne_BGDUO_HERO_100_Buddy;\r\n\t\tcase CardIds.Cho_BGDUO_HERO_222:\r\n\t\t\treturn CardIds.HalfusTheMighty_BGDUO_HERO_222_Buddy;\r\n\t\tcase CardIds.Gall_BGDUO_HERO_223:\r\n\t\t\treturn CardIds.HalfusTheWise_BGDUO_HERO_223_Buddy;\r\n\t\tcase CardIds.MadamGoya_BGDUO_HERO_104:\r\n\t\t\treturn CardIds.MisterChu_BGDUO_HERO_104_Buddy;\r\n\t\tcase CardIds.FlobbidinousFloop_BGDUO_HERO_101:\r\n\t\t\treturn CardIds.GloriousGloopling_BGDUO_HERO_101_Buddy;\r\n\t\tdefault:\r\n\t\t\tif (!!heroCardId) {\r\n\t\t\t\tconsole.error('missing buddy section for ', heroCardId);\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t}\r\n};\r\n\r\nexport const isBaconGhost = (cardId: string): boolean => {\r\n\treturn (\r\n\t\tcardId === CardIds.Kelthuzad_TB_BaconShop_HERO_KelThuzad ||\r\n\t\tcardId === CardIds.LadyDeathwhisper_TB_BaconShop_HERO_Deathwhisper\r\n\t);\r\n};\r\n\r\nexport const getEffectiveTribes = (\r\n\tcard: ReferenceCard,\r\n\tgroupMinionsIntoTheirTribeGroup: boolean,\r\n): readonly string[] => {\r\n\tconst tribes: readonly Race[] = groupMinionsIntoTheirTribeGroup\r\n\t\t? getTribesForInclusion(card, true)\r\n\t\t: getEffectiveTribesEnum(card);\r\n\treturn tribes.map((tribe) => Race[tribe]);\r\n};\r\n\r\n// TODO: use the card tags instead\r\nexport const getTribesForInclusion = (card: ReferenceCard, includeOwnTribe: boolean): readonly Race[] => {\r\n\tif (!card) {\r\n\t\treturn [];\r\n\t}\r\n\tconst nativeRaces = card.races?.map((r) => Race[r]) ?? [];\r\n\tconst cardRaces = includeOwnTribe ? nativeRaces : [];\r\n\tswitch (card.id) {\r\n\t\t// Some cases are only included when specific tribes are\r\n\t\tcase CardIds.BirdBuddy_BG21_002:\r\n\t\tcase CardIds.BirdBuddy_BG21_002_G:\r\n\t\tcase CardIds.PackLeader_BGS_017:\r\n\t\tcase CardIds.PackLeader_TB_BaconUps_086:\r\n\t\tcase CardIds.VirmenSensei_CFM_816:\r\n\t\tcase CardIds.VirmenSensei_TB_BaconUps_074:\r\n\t\tcase CardIds.HoundmasterLegacy:\r\n\t\tcase CardIds.HoundmasterVanilla:\r\n\t\tcase CardIds.Houndmaster_TB_BaconUps_068:\r\n\t\tcase CardIds.Houndmaster_BG_DS1_070:\r\n\t\t\treturn [Race.BEAST, ...cardRaces];\r\n\t\tcase CardIds.ImpatientDoomsayer_BG21_007:\r\n\t\tcase CardIds.ImpatientDoomsayer_BG21_007_G:\r\n\t\tcase CardIds.SoulJuggler_BGS_002:\r\n\t\tcase CardIds.SoulJuggler_TB_BaconUps_075:\r\n\t\tcase CardIds.WrathWeaver_BGS_004:\r\n\t\tcase CardIds.WrathWeaver_TB_BaconUps_079:\r\n\t\tcase CardIds.CultistSthara_BG27_081:\r\n\t\tcase CardIds.CultistSthara_BG27_081_G:\r\n\t\t\treturn [Race.DEMON, ...cardRaces];\r\n\t\tcase CardIds.SeafoodSlinger_BG21_011:\r\n\t\tcase CardIds.SeafoodSlinger_BG21_011_G:\r\n\t\t\treturn [Race.MURLOC, ...cardRaces];\r\n\t\tcase CardIds.NadinaTheRed_BGS_040:\r\n\t\tcase CardIds.NadinaTheRed_TB_BaconUps_154:\r\n\t\tcase CardIds.WaxriderTogwaggle_BGS_035:\r\n\t\tcase CardIds.WaxriderTogwaggle_TB_BaconUps_105:\r\n\t\tcase CardIds.WhelpSmuggler_BG21_013:\r\n\t\tcase CardIds.WhelpSmuggler_BG21_013_G:\r\n\t\t\treturn [Race.DRAGON, ...cardRaces];\r\n\t\tcase CardIds.MajordomoExecutus_BGS_105:\r\n\t\tcase CardIds.MajordomoExecutus_TB_BaconUps_207:\r\n\t\tcase CardIds.MasterOfRealities_BG21_036:\r\n\t\tcase CardIds.MasterOfRealities_BG21_036_G:\r\n\t\tcase CardIds.NomiKitchenNightmare_BGS_104:\r\n\t\tcase CardIds.NomiKitchenNightmare_TB_BaconUps_201:\r\n\t\t\treturn [Race.ELEMENTAL, ...cardRaces];\r\n\t\tcase CardIds.KangorsApprentice_BGS_012:\r\n\t\tcase CardIds.KangorsApprentice_TB_BaconUps_087:\r\n\t\t\treturn [Race.MECH, ...cardRaces];\r\n\t\tcase CardIds.DefiantShipwright_BG21_018:\r\n\t\tcase CardIds.DefiantShipwright_BG21_018_G:\r\n\t\tcase CardIds.TheTideRazor_BGS_079:\r\n\t\tcase CardIds.TheTideRazor_TB_BaconUps_137:\r\n\t\t\treturn [Race.PIRATE, ...cardRaces];\r\n\t\tcase CardIds.AgamagganTheGreatBoar_BG20_205:\r\n\t\tcase CardIds.AgamagganTheGreatBoar_BG20_205_G:\r\n\t\tcase CardIds.ProphetOfTheBoar_BG20_203:\r\n\t\tcase CardIds.ProphetOfTheBoar_BG20_203_G:\r\n\t\t\treturn [Race.QUILBOAR, ...cardRaces];\r\n\t\tcase CardIds.OrgozoaTheTender_BG23_015:\r\n\t\tcase CardIds.OrgozoaTheTender_BG23_015_G:\r\n\t\t\treturn [Race.NAGA, ...cardRaces];\r\n\t\tcase CardIds.DisguisedGraverobber_BG28_303:\r\n\t\tcase CardIds.DisguisedGraverobber_BG28_303_G:\r\n\t\t\treturn [Race.UNDEAD, ...cardRaces];\r\n\t\tdefault:\r\n\t\t\treturn getEffectiveTribesEnum(card);\r\n\t}\r\n};\r\n\r\n// To avoid braking existing imports\r\nexport const getEffectiveTribesEnum = getEffectiveTribesEnumBase;\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firestone-hs/reference-data",
3
- "version": "2.0.82",
3
+ "version": "2.0.83",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "build": "rm -rf dist && tsc",