Skip to content

Instantly share code, notes, and snippets.

@sebastientromp
Last active August 25, 2024 05:52
Show Gist options
  • Save sebastientromp/9724688c21f3b0ade43601cabf95e676 to your computer and use it in GitHub Desktop.
Save sebastientromp/9724688c21f3b0ade43601cabf95e676 to your computer and use it in GitHub Desktop.
Rules for which trinkets can be offered offered

When discovering trinkets, 3 main rules seem to apply:

  • some trinkets are only offered if you are "in" a type, meaning you control at least 2 minions of that type on your board
  • some trinkets are only for menagerie, which means 3+ different types
  • there are a few special rules, which are more case-by-case

Being "in" a type

I'm trying to build a list of what trinkets work based on this rule. There is no official list anywhere, so I'm trying to get feedback and see what I have missed, or errors I have in my list.
The list is code, but should be human-readable:

// You can get these trinkets offered only if you have at least 2 minions in one of the associated tribes
// So for instance with the following:
// 		case CardIds.EssenceOfDreams_BG30_MagicItem_916:
// 			return [Race.DRAGON, Race.MURLOC]
// This means that you can only be offered the trinket if you have at least 2 minions of either DRAGON or MURLOC
// on your board
const buildBgsOnlyIfParticipatingInMinionTypes = (card: InternalReferenceCard): Race[] => {
	switch (card.id) {
		case CardIds.NomiSticker_BG30_MagicItem_544:
		case CardIds.NomiSticker_NomiStickerToken_BG30_MagicItem_544t:
			return [Race.ELEMENTAL];
		case CardIds.LavaLamp_BG30_MagicItem_951:
			return [Race.ELEMENTAL];
		case CardIds.FelbloodPortrait_BG30_MagicItem_869:
			return [Race.ELEMENTAL, Race.DEMON];
		case CardIds.AzeritePortrait_BG30_MagicItem_431:
			return [Race.ELEMENTAL];
		case CardIds.JarredFrostling_BG30_MagicItem_952:
			return [Race.ELEMENTAL];
		case CardIds.RewinderPortrait_BG30_MagicItem_868:
			return [Race.DEMON];
		case CardIds.FelbatPortrait_BG30_MagicItem_991:
			return [Race.DEMON];
		case CardIds.NetherPendant_BG30_MagicItem_541:
			return [Race.DEMON];
		case CardIds.SmugglerPortrait_BG30_MagicItem_825:
			return [Race.DRAGON];
		case CardIds.DragonwingGlider_BG30_MagicItem_900:
		case CardIds.DragonwingGlider_DragonwingGliderToken_BG30_MagicItem_900t:
			return [Race.DRAGON];
		case CardIds.BronzebeardPortrait_BG30_MagicItem_418:
			return [Race.DRAGON, Race.MURLOC];
		case CardIds.EssenceOfDreams_BG30_MagicItem_916:
			return [Race.DRAGON, Race.MURLOC];
		case CardIds.EmeraldDreamcatcher_BG30_MagicItem_542:
			return [Race.DRAGON];
		case CardIds.BelcherPortrait_BG30_MagicItem_432:
		case CardIds.BelcherPortrait_BelcherPortraitToken_BG30_MagicItem_432t:
			return [Race.MURLOC];
		case CardIds.NerglishPhrasebook_BG30_MagicItem_914:
		case CardIds.NerglishPhrasebook_NerglishPhrasebookToken_BG30_MagicItem_914t:
			return [Race.MURLOC];
		case CardIds.RockinMusicBox_BG30_MagicItem_430:
			return [Race.DRAGON, Race.MURLOC];
		case CardIds.ShamanPrayerBeads_BG30_MagicItem_982:
			return [Race.DRAGON, Race.MURLOC];
		case CardIds.TinyfinOnesie_BG30_MagicItem_441:
			return [Race.MURLOC];
		case CardIds.GreatBoarSticker_BG30_MagicItem_988:
		case CardIds.GreatBoarSticker_GreatBoarStickerToken_BG30_MagicItem_988t:
			return [Race.QUILBOAR];
		case CardIds.QuilligraphySet_BG30_MagicItem_410:
		case CardIds.QuilligraphySet_QuilligraphySetToken_BG30_MagicItem_410t2:
			return [Race.QUILBOAR];
		case CardIds.HoggyBank_BG30_MagicItem_411:
			return [Race.QUILBOAR];
		case CardIds.LorewalkerScroll_BG30_MagicItem_422:
		case CardIds.LorewalkerScroll_LorewalkerScrollToken_BG30_MagicItem_422t:
			return [Race.QUILBOAR, Race.NAGA];
		case CardIds.BloodGolemSticker_BG30_MagicItem_442:
			return [Race.QUILBOAR];
		case CardIds.JarOGems_BG30_MagicItem_546:
			return [Race.QUILBOAR];
		case CardIds.ConductorPortrait_BG30_MagicItem_402:
			return [Race.QUILBOAR];
		case CardIds.FishySticker_BG30_MagicItem_821:
		case CardIds.FishySticker_FishyStickerToken_BG30_MagicItem_821t2:
			return [Race.MECH, Race.BEAST, Race.UNDEAD]; // Really not sure about this?
		case CardIds.BlingtronsSunglasses_BG30_MagicItem_978:
			return [Race.MECH];
		case CardIds.AutomatonPortrait_BG30_MagicItem_303:
			return [Race.MECH];
		case CardIds.KaboomBotPortrait_BG30_MagicItem_803:
			return [Race.MECH];
		case CardIds.ChargingStaff_BG30_MagicItem_984:
		case CardIds.ChargingStaff_ChargingStaffToken_BG30_MagicItem_984t:
			return [Race.MECH];
		case CardIds.BoomController_BG30_MagicItem_440:
			return [Race.MECH];
		case CardIds.MechagonAdapter_BG30_MagicItem_910:
			return [Race.MECH];
		case CardIds.FridgeMagnet_BG30_MagicItem_545:
			return [Race.MECH];
		case CardIds.ArtisanalUrn_BG30_MagicItem_989:
		case CardIds.ArtisanalUrn_ArtisanalUrnToken_BG30_MagicItem_989t:
			return [Race.UNDEAD];
		case CardIds.ComfyCoffin_BG30_MagicItem_547:
		case CardIds.ComfyCoffin_ComfyCoffinToken_BG30_MagicItem_547t:
			return [Race.UNDEAD];
		case CardIds.StaffOfTheScourge_BG30_MagicItem_437:
			return [Race.UNDEAD];
		case CardIds.EternalPortrait_BG30_MagicItem_301:
			return [Race.UNDEAD];
		case CardIds.MugOfTheSireToken_BG30_MagicItem_438t:
			return [Race.UNDEAD];
		case CardIds.ShakerPortrait_BG30_MagicItem_828:
			return [Race.NAGA];
		case CardIds.RustyTrident_BG30_MagicItem_917:
			return [Race.NAGA];
		case CardIds.GlowscalePortrait_BG30_MagicItem_548:
			return [Race.NAGA];
		case CardIds.SpitescaleSushiRoll_BG30_MagicItem_920:
			return [Race.NAGA];
		case CardIds.ColorfulCompass_BG30_MagicItem_426:
		case CardIds.ColorfulCompass_ColorfulCompassToken_BG30_MagicItem_426t:
			return [Race.NAGA];
		case CardIds.BootyBayBrew_BG30_MagicItem_924:
		case CardIds.BootyBayBrew_BootyBayBrewToken_BG30_MagicItem_924t:
			return [Race.PIRATE];
		case CardIds.ShipInABottle_BG30_MagicItem_407:
			return [Race.PIRATE];
		case CardIds.DesignerEyepatch_BG30_MagicItem_439:
			return [Race.PIRATE];
		case CardIds.ElementiumChest_BG30_MagicItem_923:
			return [Race.PIRATE];
		case CardIds.LuckyTabby_BG30_MagicItem_931:
			return [Race.BEAST];
		case CardIds.RivendarePortrait_BG30_MagicItem_310:
			return [Race.BEAST];
		case CardIds.SlammaSticker_BG30_MagicItem_540:
			return [Race.BEAST];
		default:
			return [];
	}
};

Menagerie

So far I have only identified one - let me know if I'm mistaken :)

// You can only be offered these trinkets if you have at least one minion of 3 different tribes
const buildBgsOnlyIfParticipatingInMenagerie = (card: InternalReferenceCard): boolean => {
	switch (card.id) {
		case CardIds.EnforcerPortrait_BG30_MagicItem_971:
			return true;
		default:
			return false;
	}
};

Special rules

I have only this so far:

	if (card.id === CardIds.BobBlehead_BG30_MagicItem_998) {
		bgsInclusionRules.requireTavernTier3 = true;
	}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment