Source: Acidic Swamp Ooze NAME_END 3 ATK_END 2 DEF_END 2 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Battlecry:</b> Destroy your opponent's weapon.

Target: class AcidicSwampOoze(MinionCard):§    def __init__(self):§        super().__init__("Acidic Swamp Ooze", 2, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, battlecry=Battlecry(Destroy(), WeaponSelector(EnemyPlayer())))§§    def create_minion(self, player):§        return Minion(3, 2)§


Source: Ancestral Healing NAME_END -1 ATK_END -1 DEF_END 0 COST_END -1 DUR_END Spell TYPE_END Shaman PLAYER_CLS_END NIL RACE_END Free RARITY_END Restore a minion to full Health and give it <b>Taunt</b>.

Target: class AncestralHealing(SpellCard):§    def __init__(self):§        super().__init__("Ancestral Healing", 0, CHARACTER_CLASS.SHAMAN, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§§        self.target.heal(player.effective_heal_power(self.target.calculate_max_health()), self)§        self.target.taunt = True§


Source: Animal Companion NAME_END -1 ATK_END -1 DEF_END 3 COST_END -1 DUR_END Spell TYPE_END Hunter PLAYER_CLS_END NIL RACE_END Common RARITY_END Summon a random Beast Companion.

Target: class AnimalCompanion(SpellCard):§    def __init__(self):§        super().__init__("Animal Companion", 3, CHARACTER_CLASS.HUNTER, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§§        beast_list = [hearthbreaker.cards.minions.hunter.Huffer(), hearthbreaker.cards.minions.hunter.Misha(), hearthbreaker.cards.minions.hunter.Leokk()]§        card = game.random_choice(beast_list)§        card.summon(player, player.game, len(player.minions))§§    def can_use(self, player, game):§        return super().can_use(player, game) and len(player.minions) < 7§


Source: Arcane Explosion NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Mage PLAYER_CLS_END NIL RACE_END Free RARITY_END Deal $1 damage to all enemy minions.

Target: class ArcaneExplosion(SpellCard):§    def __init__(self):§        super().__init__("Arcane Explosion", 2, CHARACTER_CLASS.MAGE, CARD_RARITY.FREE)§§    def use(self, player, game):§        super().use(player, game)§        for minion in copy.copy(game.other_player.minions):§            minion.damage(player.effective_spell_damage(1), self)§


Source: Arcane Intellect NAME_END -1 ATK_END -1 DEF_END 3 COST_END -1 DUR_END Spell TYPE_END Mage PLAYER_CLS_END NIL RACE_END Free RARITY_END Draw 2 cards.

Target: class ArcaneIntellect(SpellCard):§    def __init__(self):§        super().__init__("Arcane Intellect", 3, CHARACTER_CLASS.MAGE, CARD_RARITY.FREE)§§    def use(self, player, game):§        super().use(player, game)§        for c in range(0, 2):§            player.draw()§


Source: Arcane Missiles NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Mage PLAYER_CLS_END NIL RACE_END Free RARITY_END Deal $3 damage randomly split among all enemies.

Target: class ArcaneMissiles(SpellCard):§    def __init__(self):§        super().__init__("Arcane Missiles", 1, CHARACTER_CLASS.MAGE, CARD_RARITY.FREE)§§    def use(self, player, game):§        super().use(player, game)§        for i in range(0, player.effective_spell_damage(3)):§            targets = copy.copy(game.other_player.minions)§            targets.append(game.other_player.hero)§            target = game.random_choice(targets)§            target.damage(1, self)§


Source: Arcane Shot NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Hunter PLAYER_CLS_END NIL RACE_END Free RARITY_END Deal $2 damage.

Target: class ArcaneShot(SpellCard):§    def __init__(self):§        super().__init__("Arcane Shot", 1, CHARACTER_CLASS.HUNTER, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.damage(player.effective_spell_damage(2), self)§


Source: Arcanite Reaper NAME_END 5 ATK_END -1 DEF_END 5 COST_END 2 DUR_END Weapon TYPE_END Warrior PLAYER_CLS_END NIL RACE_END Common RARITY_END NIL

Target: class ArcaniteReaper(WeaponCard):§    def __init__(self):§        super().__init__("Arcanite Reaper", 5, CHARACTER_CLASS.WARRIOR, CARD_RARITY.COMMON)§§    def create_weapon(self, player):§        return Weapon(5, 2)§


Source: Assassinate NAME_END -1 ATK_END -1 DEF_END 5 COST_END -1 DUR_END Spell TYPE_END Rogue PLAYER_CLS_END NIL RACE_END Free RARITY_END Destroy an enemy minion.

Target: class Assassinate(SpellCard):§    def __init__(self):§        super().__init__("Assassinate", 5, CHARACTER_CLASS.ROGUE, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_enemy_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§§        self.target.die(self)§


Source: Backstab NAME_END -1 ATK_END -1 DEF_END 0 COST_END -1 DUR_END Spell TYPE_END Rogue PLAYER_CLS_END NIL RACE_END Free RARITY_END Deal $2 damage to an undamaged minion.

Target: class Backstab(SpellCard):§    def __init__(self):§        super().__init__("Backstab", 0, CHARACTER_CLASS.ROGUE, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_minion_spell_target, filter_func=lambda target: target.health == target.calculate_max_health() and target.spell_targetable())§§    def use(self, player, game):§        super().use(player, game)§§        self.target.damage(player.effective_spell_damage(2), self)§


Source: Blessing of Kings NAME_END -1 ATK_END -1 DEF_END 4 COST_END -1 DUR_END Spell TYPE_END Paladin PLAYER_CLS_END NIL RACE_END Common RARITY_END Give a minion +4/+4. <i>(+4 Attack/+4 Health)</i>

Target: class BlessingOfKings(SpellCard):§    def __init__(self):§        super().__init__("Blessing of Kings", 4, CHARACTER_CLASS.PALADIN, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.change_attack(4)§        self.target.increase_health(4)§


Source: Blessing of Might NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Paladin PLAYER_CLS_END NIL RACE_END Free RARITY_END Give a minion +3 Attack.

Target: class BlessingOfMight(SpellCard):§    def __init__(self):§        super().__init__("Blessing of Might", 1, CHARACTER_CLASS.PALADIN, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.change_attack(3)§


Source: Bloodfen Raptor NAME_END 3 ATK_END 2 DEF_END 2 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Beast RACE_END Free RARITY_END NIL

Target: class BloodfenRaptor(MinionCard):§    def __init__(self):§        super().__init__("Bloodfen Raptor", 2, CHARACTER_CLASS.ALL, CARD_RARITY.FREE, minion_type=MINION_TYPE.BEAST)§§    def create_minion(self, player):§        return Minion(3, 2)§


Source: Bloodlust NAME_END -1 ATK_END -1 DEF_END 5 COST_END -1 DUR_END Spell TYPE_END Shaman PLAYER_CLS_END NIL RACE_END Common RARITY_END Give your minions +3 Attack this turn.

Target: class Bloodlust(SpellCard):§    def __init__(self):§        super().__init__("Bloodlust", 5, CHARACTER_CLASS.SHAMAN, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§§        for minion in player.minions:§            minion.change_temp_attack(3)§


Source: Bluegill Warrior NAME_END 2 ATK_END 1 DEF_END 2 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Murloc RACE_END Common RARITY_END <b>Charge</b>

Target: class BluegillWarrior(MinionCard):§    def __init__(self):§        super().__init__("Bluegill Warrior", 2, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, minion_type=MINION_TYPE.MURLOC)§§    def create_minion(self, player):§        return Minion(2, 1, charge=True)§


Source: Boar NAME_END 1 ATK_END 1 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Beast RACE_END Common RARITY_END NIL

Target: class Boar(MinionCard):§    def __init__(self):§        super().__init__("Boar", 1, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, False, minion_type=MINION_TYPE.BEAST)§§    def create_minion(self, player):§        return Minion(1, 1)§


Source: Charge NAME_END -1 ATK_END -1 DEF_END 3 COST_END -1 DUR_END Spell TYPE_END Warrior PLAYER_CLS_END NIL RACE_END Free RARITY_END Give a friendly minion +2 Attack and <b>Charge</b>.

Target: class Charge(SpellCard):§    def __init__(self):§        super().__init__("Charge", 3, CHARACTER_CLASS.WARRIOR, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_friendly_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§§        self.target.change_attack(2)§        self.target.add_buff(Buff(_Charge()))§


Source: Chillwind Yeti NAME_END 4 ATK_END 5 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END NIL

Target: class ChillwindYeti(MinionCard):§    def __init__(self):§        super().__init__("Chillwind Yeti", 4, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(4, 5)§


Source: Claw NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Druid PLAYER_CLS_END NIL RACE_END Free RARITY_END Give your hero +2 Attack this turn and 2 Armor.

Target: class Claw(SpellCard):§    def __init__(self):§        super().__init__("Claw", 1, CHARACTER_CLASS.DRUID, CARD_RARITY.FREE)§§    def use(self, player, game):§        super().use(player, game)§        player.hero.change_temp_attack(2)§        player.hero.increase_armor(2)§


Source: Cleave NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Warrior PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $2 damage to two random enemy minions.

Target: class Cleave(SpellCard):§    def __init__(self):§        super().__init__("Cleave", 2, CHARACTER_CLASS.WARRIOR, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§§        minions = copy.copy(game.other_player.minions)§§        for i in range(0, 2):§            minion = game.random_choice(minions)§            minions.remove(minion)§            minion.damage(player.effective_spell_damage(2), self)§§    def can_use(self, player, game):§        return super().can_use(player, game) and len(game.other_player.minions) >= 2§


Source: Consecration NAME_END -1 ATK_END -1 DEF_END 4 COST_END -1 DUR_END Spell TYPE_END Paladin PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $2 damage to all enemies.

Target: class Consecration(SpellCard):§    def __init__(self):§        super().__init__("Consecration", 4, CHARACTER_CLASS.PALADIN, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§        for minion in copy.copy(game.other_player.minions):§            minion.damage(player.effective_spell_damage(2), self)§        game.other_player.hero.damage(player.effective_spell_damage(2), self)§


Source: Core Hound NAME_END 9 ATK_END 5 DEF_END 7 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Beast RACE_END Common RARITY_END NIL

Target: class CoreHound(MinionCard):§    def __init__(self):§        super().__init__("Core Hound", 7, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, minion_type=MINION_TYPE.BEAST)§§    def create_minion(self, player):§        return Minion(9, 5)§


Source: Corruption NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Warlock PLAYER_CLS_END NIL RACE_END Common RARITY_END Choose an enemy minion. At the start of your turn, destroy it.

Target: class Corruption(SpellCard):§    def __init__(self):§        super().__init__("Corruption", 1, CHARACTER_CLASS.WARLOCK, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_enemy_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.add_effect(Effect(TurnStarted(player=EnemyPlayer()), ActionTag(Kill(), SelfSelector())))§


Source: Dalaran Mage NAME_END 1 ATK_END 4 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Spell Damage +1</b>

Target: class DalaranMage(MinionCard):§    def __init__(self):§        super().__init__("Dalaran Mage", 3, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(1, 4, spell_damage=1)§


Source: Divine Spirit NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Priest PLAYER_CLS_END NIL RACE_END Common RARITY_END Double a minion's Health.

Target: class DivineSpirit(SpellCard):§    def __init__(self):§        super().__init__("Divine Spirit", 2, CHARACTER_CLASS.PRIEST, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§§        self.target.increase_health(self.target.health)§


Source: Dragonling Mechanic NAME_END 2 ATK_END 4 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Battlecry:</b> Summon a 2/1 Mechanical Dragonling.

Target: class DragonlingMechanic(MinionCard):§    def __init__(self):§        super().__init__("Dragonling Mechanic", 4, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, battlecry=Battlecry(Summon(MechanicalDragonling()), PlayerSelector()))§§    def create_minion(self, player):§        return Minion(2, 4)§


Source: Drain Life NAME_END -1 ATK_END -1 DEF_END 3 COST_END -1 DUR_END Spell TYPE_END Warlock PLAYER_CLS_END NIL RACE_END Free RARITY_END Deal $2 damage. Restore #2 Health to your hero.

Target: class DrainLife(SpellCard):§    def __init__(self):§        super().__init__("Drain Life", 3, CHARACTER_CLASS.WARLOCK, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.damage(player.effective_spell_damage(2), self)§        player.hero.heal(player.effective_heal_power(2), self)§


Source: Dread Infernal NAME_END 6 ATK_END 6 DEF_END 6 COST_END -1 DUR_END Minion TYPE_END Warlock PLAYER_CLS_END Demon RACE_END Common RARITY_END <b>Battlecry:</b> Deal 1 damage to ALL other characters.

Target: class DreadInfernal(MinionCard):§    def __init__(self):§        super().__init__("Dread Infernal", 6, CHARACTER_CLASS.WARLOCK, CARD_RARITY.COMMON, minion_type=MINION_TYPE.DEMON, battlecry=Battlecry(Damage(1), CharacterSelector(players=BothPlayer())))§§    def create_minion(self, player):§        return Minion(6, 6)§


Source: Elven Archer NAME_END 1 ATK_END 1 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Battlecry:</b> Deal 1 damage.

Target: class ElvenArcher(MinionCard):§    def __init__(self):§        super().__init__("Elven Archer", 1, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, battlecry=Battlecry(Damage(1), CharacterSelector(players=BothPlayer(), picker=UserPicker())))§§    def create_minion(self, player):§        return Minion(1, 1)§


Source: Excess Mana NAME_END -1 ATK_END -1 DEF_END 0 COST_END -1 DUR_END Spell TYPE_END Druid PLAYER_CLS_END NIL RACE_END NIL RARITY_END Draw a card. <i>(You can only have 10 Mana in your tray.)</i>

Target: class ExcessMana(SpellCard):§    def __init__(self):§        super().__init__("Excess Mana", 0, CHARACTER_CLASS.DRUID, CARD_RARITY.COMMON, False)§§    def use(self, player, game):§        super().use(player, game)§        player.draw()§


Source: Execute NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Warrior PLAYER_CLS_END NIL RACE_END Free RARITY_END Destroy a damaged enemy minion.

Target: class Execute(SpellCard):§    def __init__(self):§        super().__init__("Execute", 1, CHARACTER_CLASS.WARRIOR, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_enemy_minion_spell_target, filter_func=lambda target: target.health != target.calculate_max_health() and target.spell_targetable())§§    def use(self, player, game):§        super().use(player, game)§§        self.target.die(self)§


Source: Fan of Knives NAME_END -1 ATK_END -1 DEF_END 3 COST_END -1 DUR_END Spell TYPE_END Rogue PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $1 damage to all enemy minions. Draw a card.

Target: class FanOfKnives(SpellCard):§    def __init__(self):§        super().__init__("Fan of Knives", 3, CHARACTER_CLASS.ROGUE, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§§        for minion in copy.copy(game.other_player.minions):§            minion.damage(player.effective_spell_damage(1), self)§§        player.draw()§


Source: Fireball NAME_END -1 ATK_END -1 DEF_END 4 COST_END -1 DUR_END Spell TYPE_END Mage PLAYER_CLS_END NIL RACE_END Free RARITY_END Deal $6 damage.

Target: class Fireball(SpellCard):§    def __init__(self):§        super().__init__("Fireball", 4, CHARACTER_CLASS.MAGE, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.damage(player.effective_spell_damage(6), self)§


Source: Flamestrike NAME_END -1 ATK_END -1 DEF_END 7 COST_END -1 DUR_END Spell TYPE_END Mage PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $4 damage to all enemy minions.

Target: class Flamestrike(SpellCard):§    def __init__(self):§        super().__init__("Flamestrike", 7, CHARACTER_CLASS.MAGE, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§        for minion in copy.copy(game.other_player.minions):§            minion.damage(player.effective_spell_damage(4), self)§


Source: Flametongue Totem NAME_END 0 ATK_END 3 DEF_END 2 COST_END -1 DUR_END Minion TYPE_END Shaman PLAYER_CLS_END Totem RACE_END Common RARITY_END Adjacent minions have +2 Attack.

Target: class FlametongueTotem(MinionCard):§    def __init__(self):§        super().__init__("Flametongue Totem", 2, CHARACTER_CLASS.SHAMAN, CARD_RARITY.COMMON, minion_type=MINION_TYPE.TOTEM)§§    def create_minion(self, player):§        return Minion(0, 3, auras=[Aura(ChangeAttack(2), MinionSelector(Adjacent()))])§


Source: Frog NAME_END 0 ATK_END 1 DEF_END 0 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Beast RACE_END Common RARITY_END <b>Taunt</b>

Target: class Frog(MinionCard):§    def __init__(self):§        super().__init__("Frog", 0, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, False, minion_type=MINION_TYPE.BEAST)§§    def create_minion(self, p):§        return Minion(0, 1, taunt=True)§


Source: Frost Nova NAME_END -1 ATK_END -1 DEF_END 3 COST_END -1 DUR_END Spell TYPE_END Mage PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Freeze</b> all enemy minions.

Target: class FrostNova(SpellCard):§    def __init__(self):§        super().__init__("Frost Nova", 3, CHARACTER_CLASS.MAGE, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§        for minion in game.other_player.minions:§            minion.add_buff(Buff(Frozen()))§


Source: Frost Shock NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Shaman PLAYER_CLS_END NIL RACE_END Free RARITY_END Deal $1 damage to an enemy character and <b>Freeze</b> it.

Target: class FrostShock(SpellCard):§    def __init__(self):§        super().__init__("Frost Shock", 1, CHARACTER_CLASS.SHAMAN, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_enemy_spell_target)§§    def use(self, player, game):§        super().use(player, game)§§        self.target.damage(player.effective_spell_damage(1), self)§        self.target.add_buff(Buff(Frozen()))§


Source: Frostbolt NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Mage PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $3 damage to a character and <b>Freeze</b> it.

Target: class Frostbolt(SpellCard):§    def __init__(self):§        super().__init__("Frostbolt", 2, CHARACTER_CLASS.MAGE, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.damage(player.effective_spell_damage(3), self)§        self.target.add_buff(Buff(Frozen()))§


Source: Frostwolf Grunt NAME_END 2 ATK_END 2 DEF_END 2 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Taunt</b>

Target: class FrostwolfGrunt(MinionCard):§    def __init__(self):§        super().__init__("Frostwolf Grunt", 2, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(2, 2, taunt=True)§


Source: Goldshire Footman NAME_END 1 ATK_END 2 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Taunt</b>

Target: class GoldshireFootman(MinionCard):§    def __init__(self):§        super().__init__("Goldshire Footman", 1, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(1, 2, taunt=True)§


Source: Grimscale Oracle NAME_END 1 ATK_END 1 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Murloc RACE_END Common RARITY_END ALL other Murlocs have +1 Attack.

Target: class GrimscaleOracle(MinionCard):§    def __init__(self):§        super().__init__("Grimscale Oracle", 1, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, minion_type=MINION_TYPE.MURLOC)§§    def create_minion(self, player):§        return Minion(1, 1, auras=[Aura(ChangeAttack(1), MinionSelector(IsType(MINION_TYPE.MURLOC), BothPlayer()))])§


Source: Guardian of Kings NAME_END 5 ATK_END 6 DEF_END 7 COST_END -1 DUR_END Minion TYPE_END Paladin PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Battlecry:</b> Restore 6 Health to your hero.

Target: class GuardianOfKings(MinionCard):§    def __init__(self):§        super().__init__("Guardian of Kings", 7, CHARACTER_CLASS.PALADIN, CARD_RARITY.COMMON, battlecry=Battlecry(Heal(6), HeroSelector()))§§    def create_minion(self, player):§        return Minion(5, 6)§


Source: Gurubashi Berserker NAME_END 2 ATK_END 7 DEF_END 5 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END Whenever this minion takes damage, gain +3 Attack.

Target: class GurubashiBerserker(MinionCard):§    def __init__(self):§        super().__init__("Gurubashi Berserker", 5, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(2, 7, effects=[§            Effect(CharacterDamaged(condition=MinionIsTarget()), ActionTag(Give(ChangeAttack(3)), SelfSelector()))])§


Source: Hammer of Wrath NAME_END -1 ATK_END -1 DEF_END 4 COST_END -1 DUR_END Spell TYPE_END Paladin PLAYER_CLS_END NIL RACE_END Free RARITY_END Deal $3 damage. NL Draw a card.

Target: class HammerOfWrath(SpellCard):§    def __init__(self):§        super().__init__("Hammer of Wrath", 4, CHARACTER_CLASS.PALADIN, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_spell_target)§§    def use(self, player, game):§        super().use(player, game)§§        self.target.damage(player.effective_spell_damage(3), self)§        player.draw()§


Source: Hand of Protection NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Paladin PLAYER_CLS_END NIL RACE_END Free RARITY_END Give a minion <b>Divine Shield</b>.

Target: class HandOfProtection(SpellCard):§    def __init__(self):§        super().__init__("Hand of Protection", 1, CHARACTER_CLASS.PALADIN, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§§        self.target.divine_shield = True§


Source: Healing Totem NAME_END 0 ATK_END 2 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Shaman PLAYER_CLS_END Totem RACE_END Free RARITY_END At the end of your turn, restore 1 Health to all friendly minions.

Target: class HealingTotem(MinionCard):§    def __init__(self):§        super().__init__("Healing Totem", 1, CHARACTER_CLASS.SHAMAN, CARD_RARITY.FREE, False, MINION_TYPE.TOTEM)§§    def create_minion(self, player):§        return Minion(0, 2, effects=[Effect(TurnEnded(), ActionTag(Heal(1), MinionSelector(condition=None)))])§


Source: Healing Touch NAME_END -1 ATK_END -1 DEF_END 3 COST_END -1 DUR_END Spell TYPE_END Druid PLAYER_CLS_END NIL RACE_END Free RARITY_END Restore #8 Health.

Target: class HealingTouch(SpellCard):§    def __init__(self):§        super().__init__("Healing Touch", 3, CHARACTER_CLASS.DRUID, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.heal(player.effective_heal_power(8), self)§


Source: Hex NAME_END -1 ATK_END -1 DEF_END 3 COST_END -1 DUR_END Spell TYPE_END Shaman PLAYER_CLS_END NIL RACE_END Free RARITY_END Transform a minion into a 0/1 Frog with <b>Taunt</b>.

Target: class Hex(SpellCard):§    def __init__(self):§        super().__init__("Hex", 3, CHARACTER_CLASS.SHAMAN, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§§        frog = hearthbreaker.cards.minions.neutral.Frog()§        minion = frog.create_minion(None)§        minion.card = frog§        self.target.replace(minion)§


Source: Holy Light NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Paladin PLAYER_CLS_END NIL RACE_END Free RARITY_END Restore #6 Health.

Target: class HolyLight(SpellCard):§    def __init__(self):§        super().__init__("Holy Light", 2, CHARACTER_CLASS.PALADIN, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_spell_target)§§    def use(self, player, game):§        super().use(player, game)§§        self.target.heal(player.effective_heal_power(6), self)§


Source: Holy Nova NAME_END -1 ATK_END -1 DEF_END 5 COST_END -1 DUR_END Spell TYPE_END Priest PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $2 damage to all enemies. Restore #2 Health to all friendly characters.

Target: class HolyNova(SpellCard):§    def __init__(self):§        super().__init__("Holy Nova", 5, CHARACTER_CLASS.PRIEST, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§§        for minion in copy.copy(game.other_player.minions):§            minion.damage(player.effective_spell_damage(2), self)§§        for minion in player.minions:§            minion.heal(player.effective_heal_power(2), self)§


Source: Holy Smite NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Priest PLAYER_CLS_END NIL RACE_END Free RARITY_END Deal $2 damage.

Target: class HolySmite(SpellCard):§    def __init__(self):§        super().__init__("Holy Smite", 1, CHARACTER_CLASS.PRIEST, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_spell_target)§§    def use(self, player, game):§        super().use(player, game)§§        self.target.damage(player.effective_spell_damage(2), self)§


Source: Houndmaster NAME_END 4 ATK_END 3 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Hunter PLAYER_CLS_END NIL RACE_END Free RARITY_END Battlecry: Give a friendly Beast +2/+2 and Taunt.

Target: class Houndmaster(MinionCard):§    def __init__(self):§        super().__init__("Houndmaster", 4, CHARACTER_CLASS.HUNTER, CARD_RARITY.FREE, minion_type=MINION_TYPE.NONE, battlecry=Battlecry(Give([Buff(ChangeHealth(2)), Buff(ChangeAttack(2)), Buff(Taunt())]), MinionSelector(IsType(MINION_TYPE.BEAST), picker=UserPicker())))§§    def create_minion(self, player):§        return Minion(4, 3)§


Source: Huffer NAME_END 4 ATK_END 2 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Hunter PLAYER_CLS_END Beast RACE_END Common RARITY_END <b>Charge</b>

Target: class Huffer(MinionCard):§    def __init__(self):§        super().__init__("Huffer", 3, CHARACTER_CLASS.HUNTER, CARD_RARITY.COMMON, False, minion_type=MINION_TYPE.BEAST)§§    def create_minion(self, player):§        return Minion(4, 2, charge=True)§


Source: Humility NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Paladin PLAYER_CLS_END NIL RACE_END Common RARITY_END Change a minion's Attack to 1.

Target: class Humility(SpellCard):§    def __init__(self):§        super().__init__("Humility", 1, CHARACTER_CLASS.PALADIN, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§§        self.target.change_attack(1 - self.target.calculate_attack())§


Source: Hunter's Mark NAME_END -1 ATK_END -1 DEF_END 0 COST_END -1 DUR_END Spell TYPE_END Hunter PLAYER_CLS_END NIL RACE_END Common RARITY_END Change a minion's Health to 1.

Target: class HuntersMark(SpellCard):§    def __init__(self):§        super().__init__("Hunter's Mark", 0, CHARACTER_CLASS.HUNTER, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.set_health_to(1)§


Source: Ironforge Rifleman NAME_END 2 ATK_END 2 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Battlecry:</b> Deal 1 damage.

Target: class IronforgeRifleman(MinionCard):§    def __init__(self):§        super().__init__("Ironforge Rifleman", 3, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, minion_type=MINION_TYPE.NONE, battlecry=Battlecry(Damage(1), CharacterSelector(players=BothPlayer(), picker=UserPicker())))§§    def create_minion(self, player):§        return Minion(2, 2)§


Source: Ironfur Grizzly NAME_END 3 ATK_END 3 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Beast RACE_END Common RARITY_END <b>Taunt</b>

Target: class IronfurGrizzly(MinionCard):§    def __init__(self):§        super().__init__("Ironfur Grizzly", 3, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, minion_type=MINION_TYPE.BEAST)§§    def create_minion(self, player):§        return Minion(3, 3, taunt=True)§


Source: Kill Command NAME_END -1 ATK_END -1 DEF_END 3 COST_END -1 DUR_END Spell TYPE_END Hunter PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $3 damage. If you have a Beast, deal $5 damage instead.

Target: class KillCommand(SpellCard):§    def __init__(self):§        super().__init__("Kill Command", 3, CHARACTER_CLASS.HUNTER, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        beasts = hearthbreaker.targeting.find_friendly_minion_battlecry_target(§            player.game, lambda x: x.card.minion_type is MINION_TYPE.BEAST)§        if beasts is None:§            self.target.damage(player.effective_spell_damage(3), self)§        else:§            self.target.damage(player.effective_spell_damage(5), self)§


Source: Kobold Geomancer NAME_END 2 ATK_END 2 DEF_END 2 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Spell Damage +1</b>

Target: class KoboldGeomancer(MinionCard):§    def __init__(self):§        super().__init__("Kobold Geomancer", 2, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(2, 2, spell_damage=1)§


Source: Kor'kron Elite NAME_END 4 ATK_END 3 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Warrior PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Charge</b>

Target: class KorkronElite(MinionCard):§    def __init__(self):§        super().__init__("Kor'kron Elite", 4, CHARACTER_CLASS.WARRIOR, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(4, 3, charge=True)§


Source: Leokk NAME_END 2 ATK_END 4 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Hunter PLAYER_CLS_END Beast RACE_END Common RARITY_END Your other minions have +1 Attack.

Target: class Leokk(MinionCard):§    def __init__(self):§        super().__init__("Leokk", 3, CHARACTER_CLASS.HUNTER, CARD_RARITY.COMMON, False, minion_type=MINION_TYPE.BEAST)§§    def create_minion(self, player):§        return Minion(2, 4, auras=[Aura(ChangeAttack(1), MinionSelector())])§


Source: Light's Justice NAME_END 1 ATK_END -1 DEF_END 1 COST_END 4 DUR_END Weapon TYPE_END Paladin PLAYER_CLS_END NIL RACE_END Free RARITY_END NIL

Target: class LightsJustice(WeaponCard):§    def __init__(self):§        super().__init__("Light's Justice", 1, CHARACTER_CLASS.PALADIN, CARD_RARITY.FREE)§§    def create_weapon(self, player):§        return Weapon(1, 4)§


Source: Lord of the Arena NAME_END 6 ATK_END 5 DEF_END 6 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Taunt</b>

Target: class LordOfTheArena(MinionCard):§    def __init__(self):§        super().__init__("Lord of the Arena", 6, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(6, 5, taunt=True)§


Source: Mechanical Dragonling NAME_END 2 ATK_END 1 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Mech RACE_END Common RARITY_END NIL

Target: class MechanicalDragonling(MinionCard):§    def __init__(self):§        super().__init__("Mechanical Dragonling", 1, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, False, minion_type=MINION_TYPE.MECH)§§    def create_minion(self, player):§        return Minion(2, 1)§


Source: Mind Blast NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Priest PLAYER_CLS_END NIL RACE_END Free RARITY_END Deal $5 damage to the enemy hero.

Target: class MindBlast(SpellCard):§    def __init__(self):§        super().__init__("Mind Blast", 2, CHARACTER_CLASS.PRIEST, CARD_RARITY.FREE)§§    def use(self, player, game):§        super().use(player, game)§§        game.other_player.hero.damage(player.effective_spell_damage(5), self)§


Source: Mind Control NAME_END -1 ATK_END -1 DEF_END 10 COST_END -1 DUR_END Spell TYPE_END Priest PLAYER_CLS_END NIL RACE_END Common RARITY_END Take control of an enemy minion.

Target: class MindControl(SpellCard):§    def __init__(self):§        super().__init__("Mind Control", 10, CHARACTER_CLASS.PRIEST, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_enemy_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        new_minion = self.target.copy(player)§        self.target.remove_from_board()§        new_minion.add_to_board(len(player.minions))§§    def can_use(self, player, game):§        return super().can_use(player, game) and len(player.minions) < 7§


Source: Mind Vision NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Priest PLAYER_CLS_END NIL RACE_END Common RARITY_END Put a copy of a random card in your opponent's hand into your hand.

Target: class MindVision(SpellCard):§    def __init__(self):§        super().__init__("Mind Vision", 1, CHARACTER_CLASS.PRIEST, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§§        if (len(game.other_player.hand) > 0):§            card = copy.deepcopy(game.random_choice(game.other_player.hand))§            player.hand.append(card)§            card.player = player§


Source: Mirror Image NAME_END 0 ATK_END 2 DEF_END 0 COST_END -1 DUR_END Minion TYPE_END Mage PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Taunt</b>

Target: class MirrorImage(SpellCard):§    def __init__(self):§        super().__init__("Mirror Image", 1, CHARACTER_CLASS.MAGE, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§        for i in range(0, 2):§            MirrorImageMinion().summon(player, game, len(player.minions))§§    def can_use(self, player, game):§        return super().can_use(player, game) and len(player.minions) < 7§


Source: Mirror Image NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Mage PLAYER_CLS_END NIL RACE_END Common RARITY_END Summon two 0/2 minions with <b>Taunt</b>.

Target: class MirrorImage(SpellCard):§    def __init__(self):§        super().__init__("Mirror Image", 1, CHARACTER_CLASS.MAGE, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§        for i in range(0, 2):§            MirrorImageMinion().summon(player, game, len(player.minions))§§    def can_use(self, player, game):§        return super().can_use(player, game) and len(player.minions) < 7§


Source: Misha NAME_END 4 ATK_END 4 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Hunter PLAYER_CLS_END Beast RACE_END Common RARITY_END <b>Taunt</b>

Target: class Misha(MinionCard):§    def __init__(self):§        super().__init__("Misha", 3, CHARACTER_CLASS.HUNTER, CARD_RARITY.COMMON, False, minion_type=MINION_TYPE.BEAST)§§    def create_minion(self, player):§        return Minion(4, 4, taunt=True)§


Source: Moonfire NAME_END -1 ATK_END -1 DEF_END 0 COST_END -1 DUR_END Spell TYPE_END Druid PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $1 damage.

Target: class Moonfire(SpellCard):§    def __init__(self):§        super().__init__("Moonfire", 0, CHARACTER_CLASS.DRUID, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.damage(player.effective_spell_damage(1), self)§


Source: Murloc Raider NAME_END 2 ATK_END 1 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Murloc RACE_END Free RARITY_END NIL

Target: class MurlocRaider(MinionCard):§    def __init__(self):§        super().__init__("Murloc Raider", 1, CHARACTER_CLASS.ALL, CARD_RARITY.FREE, minion_type=MINION_TYPE.MURLOC)§§    def create_minion(self, player):§        return Minion(2, 1)§


Source: Murloc Scout NAME_END 1 ATK_END 1 DEF_END 0 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Murloc RACE_END Common RARITY_END NIL

Target: class MurlocScout(MinionCard):§    def __init__(self):§        super().__init__("Murloc Scout", 0, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, False, minion_type=MINION_TYPE.MURLOC)§§    def create_minion(self, player):§        return Minion(1, 1)§


Source: Murloc Tidehunter NAME_END 2 ATK_END 1 DEF_END 2 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Murloc RACE_END Common RARITY_END <b>Battlecry:</b> Summon a 1/1 Murloc Scout.

Target: class MurlocTidehunter(MinionCard):§    def __init__(self):§        super().__init__("Murloc Tidehunter", 2, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, minion_type=MINION_TYPE.MURLOC, battlecry=Battlecry(Summon(MurlocScout()), PlayerSelector()))§§    def create_minion(self, player):§        return Minion(2, 1)§


Source: Nightblade NAME_END 4 ATK_END 4 DEF_END 5 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Free RARITY_END <b>Battlecry: </b>Deal 3 damage to the enemy hero.

Target: class Nightblade(MinionCard):§    def __init__(self):§        super().__init__("Nightblade", 5, CHARACTER_CLASS.ALL, CARD_RARITY.FREE, battlecry=Battlecry(Damage(3), HeroSelector(EnemyPlayer())))§§    def create_minion(self, player):§        return Minion(4, 4)§


Source: Northshire Cleric NAME_END 1 ATK_END 3 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Priest PLAYER_CLS_END NIL RACE_END Free RARITY_END Whenever a minion is healed, draw a card.

Target: class NorthshireCleric(MinionCard):§    def __init__(self):§        super().__init__("Northshire Cleric", 1, CHARACTER_CLASS.PRIEST, CARD_RARITY.FREE)§§    def create_minion(self, player):§        return Minion(1, 3, effects=[Effect(CharacterHealed(condition=IsMinion(), player=BothPlayer()), ActionTag(Draw(), PlayerSelector()))])§


Source: Novice Engineer NAME_END 1 ATK_END 1 DEF_END 2 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Free RARITY_END <b>Battlecry:</b> Draw a card.

Target: class NoviceEngineer(MinionCard):§    def __init__(self):§        super().__init__("Novice Engineer", 2, CHARACTER_CLASS.ALL, CARD_RARITY.FREE, battlecry=Battlecry(Draw(), PlayerSelector()))§§    def create_minion(self, player):§        return Minion(1, 1)§


Source: Oasis Snapjaw NAME_END 2 ATK_END 7 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Beast RACE_END Free RARITY_END NIL

Target: class OasisSnapjaw(MinionCard):§    def __init__(self):§        super().__init__("Oasis Snapjaw", 4, CHARACTER_CLASS.ALL, CARD_RARITY.FREE, minion_type=MINION_TYPE.BEAST)§§    def create_minion(self, player):§        return Minion(2, 7)§


Source: Ogre Magi NAME_END 4 ATK_END 4 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Spell Damage +1</b>

Target: class OgreMagi(MinionCard):§    def __init__(self):§        super().__init__("Ogre Magi", 4, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(4, 4, spell_damage=1)§


Source: Raid Leader NAME_END 2 ATK_END 2 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Free RARITY_END Your other minions have +1 Attack.

Target: class RaidLeader(MinionCard):§    def __init__(self):§        super().__init__("Raid Leader", 3, CHARACTER_CLASS.ALL, CARD_RARITY.FREE)§§    def create_minion(self, player):§        return Minion(2, 2, auras=[Aura(ChangeAttack(1), MinionSelector())])§


Source: Razorfen Hunter NAME_END 2 ATK_END 3 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Battlecry:</b> Summon a 1/1 Boar.

Target: class RazorfenHunter(MinionCard):§    def __init__(self):§        super().__init__("Razorfen Hunter", 3, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, battlecry=Battlecry(Summon(Boar()), PlayerSelector()))§§    def create_minion(self, player):§        return Minion(2, 3)§


Source: Reckless Rocketeer NAME_END 5 ATK_END 2 DEF_END 6 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Free RARITY_END <b>Charge</b>

Target: class RecklessRocketeer(MinionCard):§    def __init__(self):§        super().__init__("Reckless Rocketeer", 6, CHARACTER_CLASS.ALL, CARD_RARITY.FREE)§§    def create_minion(self, player):§        return Minion(5, 2, charge=True)§


Source: River Crocolisk NAME_END 2 ATK_END 3 DEF_END 2 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Beast RACE_END Free RARITY_END NIL

Target: class RiverCrocolisk(MinionCard):§    def __init__(self):§        super().__init__("River Crocolisk", 2, CHARACTER_CLASS.ALL, CARD_RARITY.FREE, minion_type=MINION_TYPE.BEAST)§§    def create_minion(self, player):§        return Minion(2, 3)§


Source: Rockbiter Weapon NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Shaman PLAYER_CLS_END NIL RACE_END Free RARITY_END Give a friendly character +3 Attack this turn.

Target: class RockbiterWeapon(SpellCard):§    def __init__(self):§        super().__init__("Rockbiter Weapon", 1, CHARACTER_CLASS.SHAMAN, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_friendly_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.change_temp_attack(3)§


Source: Sacrificial Pact NAME_END -1 ATK_END -1 DEF_END 0 COST_END -1 DUR_END Spell TYPE_END Warlock PLAYER_CLS_END NIL RACE_END Common RARITY_END Destroy a Demon. Restore #5 Health to your hero.

Target: class SacrificialPact(SpellCard):§    def __init__(self):§        super().__init__("Sacrificial Pact", 0, CHARACTER_CLASS.WARLOCK, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_spell_target, filter_func=lambda character: character.card.minion_type == MINION_TYPE.DEMON)§§    def use(self, player, game):§        super().use(player, game)§        self.target.die(self)§        player.hero.heal(player.effective_heal_power(5), self)§


Source: Sap NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Rogue PLAYER_CLS_END NIL RACE_END Free RARITY_END Return an enemy minion to your opponent's hand.

Target: class Sap(SpellCard):§    def __init__(self):§        super().__init__("Sap", 2, CHARACTER_CLASS.ROGUE, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_enemy_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§§        self.target.bounce()§


Source: Savage Roar NAME_END -1 ATK_END -1 DEF_END 3 COST_END -1 DUR_END Spell TYPE_END Druid PLAYER_CLS_END NIL RACE_END Common RARITY_END Give your characters +2 Attack this turn.

Target: class SavageRoar(SpellCard):§    def __init__(self):§        super().__init__("Savage Roar", 3, CHARACTER_CLASS.DRUID, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§        for minion in player.minions:§            minion.change_temp_attack(2)§        player.hero.change_temp_attack(2)§


Source: Shadow Bolt NAME_END -1 ATK_END -1 DEF_END 3 COST_END -1 DUR_END Spell TYPE_END Warlock PLAYER_CLS_END NIL RACE_END Free RARITY_END Deal $4 damage to a minion.

Target: class ShadowBolt(SpellCard):§    def __init__(self):§        super().__init__("Shadow Bolt", 3, CHARACTER_CLASS.WARLOCK, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.damage(player.effective_spell_damage(4), self)§


Source: Shadow Word: Death NAME_END -1 ATK_END -1 DEF_END 3 COST_END -1 DUR_END Spell TYPE_END Priest PLAYER_CLS_END NIL RACE_END Common RARITY_END Destroy a minion with an Attack of 5 or more.

Target: class ShadowWordDeath(SpellCard):§    def __init__(self):§        super().__init__("Shadow Word: Death", 3, CHARACTER_CLASS.PRIEST, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_minion_spell_target, filter_func=lambda target: target.calculate_attack() >= 5 and target.spell_targetable())§§    def use(self, player, game):§        super().use(player, game)§§        self.target.die(self)§


Source: Shadow Word: Pain NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Priest PLAYER_CLS_END NIL RACE_END Free RARITY_END Destroy a minion with 3 or less Attack.

Target: class ShadowWordPain(SpellCard):§    def __init__(self):§        super().__init__("Shadow Word: Pain", 2, CHARACTER_CLASS.PRIEST, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_minion_spell_target, filter_func=lambda target: target.calculate_attack() <= 3 and target.spell_targetable())§§    def use(self, player, game):§        super().use(player, game)§§        self.target.die(self)§


Source: Shattered Sun Cleric NAME_END 3 ATK_END 2 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Battlecry:</b> Give a friendly minion +1/+1.

Target: class ShatteredSunCleric(MinionCard):§    def __init__(self):§        super().__init__("Shattered Sun Cleric", 3, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, battlecry=Battlecry(Give([Buff(ChangeAttack(1)), Buff(ChangeHealth(1))]), MinionSelector(picker=UserPicker())))§§    def create_minion(self, player):§        return Minion(3, 2)§


Source: Sheep NAME_END 1 ATK_END 1 DEF_END 0 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Beast RACE_END Common RARITY_END NIL

Target: class Sheep(MinionCard):§    def __init__(self):§        super().__init__("Sheep", 0, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, False, MINION_TYPE.BEAST)§§    def create_minion(self, p):§        return Minion(1, 1)§


Source: Shield Block NAME_END -1 ATK_END -1 DEF_END 3 COST_END -1 DUR_END Spell TYPE_END Warrior PLAYER_CLS_END NIL RACE_END Common RARITY_END Gain 5 Armor. NL Draw a card.

Target: class ShieldBlock(SpellCard):§    def __init__(self):§        super().__init__("Shield Block", 3, CHARACTER_CLASS.WARRIOR, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§        player.hero.increase_armor(5)§        player.draw()§


Source: Shiv NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Rogue PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $1 damage. Draw a card.

Target: class Shiv(SpellCard):§    def __init__(self):§        super().__init__("Shiv", 2, CHARACTER_CLASS.ROGUE, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_spell_target)§§    def use(self, player, game):§        super().use(player, game)§§        self.target.damage(player.effective_spell_damage(1), self)§        player.draw()§


Source: Silver Hand Recruit NAME_END 1 ATK_END 1 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Paladin PLAYER_CLS_END NIL RACE_END Free RARITY_END NIL

Target: class SilverHandRecruit(MinionCard):§    def __init__(self):§        super().__init__("Silver Hand Recruit", 1, CHARACTER_CLASS.PALADIN, CARD_RARITY.FREE, False)§§    def create_minion(self, player):§        return Minion(1, 1)§


Source: Soulfire NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Warlock PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $4 damage. Discard a random card.

Target: class Soulfire(SpellCard):§    def __init__(self):§        super().__init__("Soulfire", 1, CHARACTER_CLASS.WARLOCK, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.damage(player.effective_spell_damage(4), self)§        player.discard()§


Source: Sprint NAME_END -1 ATK_END -1 DEF_END 7 COST_END -1 DUR_END Spell TYPE_END Rogue PLAYER_CLS_END NIL RACE_END Common RARITY_END Draw 4 cards.

Target: class Sprint(SpellCard):§    def __init__(self):§        super().__init__("Sprint", 7, CHARACTER_CLASS.ROGUE, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§§        for i in range(0, 4):§            player.draw()§


Source: Starfire NAME_END -1 ATK_END -1 DEF_END 6 COST_END -1 DUR_END Spell TYPE_END Druid PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $5 damage. NL Draw a card.

Target: class Starfire(SpellCard):§    def __init__(self):§        super().__init__("Starfire", 6, CHARACTER_CLASS.DRUID, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.damage(player.effective_spell_damage(5), self)§        player.draw()§


Source: Starving Buzzard NAME_END 3 ATK_END 2 DEF_END 5 COST_END -1 DUR_END Minion TYPE_END Hunter PLAYER_CLS_END Beast RACE_END Common RARITY_END Whenever you summon a Beast, draw a card.

Target: class StarvingBuzzard(MinionCard):§    def __init__(self):§        super().__init__("Starving Buzzard", 5, CHARACTER_CLASS.HUNTER, CARD_RARITY.COMMON, minion_type=MINION_TYPE.BEAST)§§    def create_minion(self, player):§        return Minion(3, 2, effects=[Effect(MinionPlaced(IsType(MINION_TYPE.BEAST)), ActionTag(Draw(), PlayerSelector()))])§


Source: Stoneclaw Totem NAME_END 0 ATK_END 2 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Shaman PLAYER_CLS_END Totem RACE_END Free RARITY_END <b>Taunt</b>

Target: class StoneclawTotem(MinionCard):§    def __init__(self):§        super().__init__("Stoneclaw Totem", 1, CHARACTER_CLASS.SHAMAN, CARD_RARITY.FREE, False, MINION_TYPE.TOTEM)§§    def create_minion(self, player):§        return Minion(0, 2, taunt=True)§


Source: Stonetusk Boar NAME_END 1 ATK_END 1 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Beast RACE_END Free RARITY_END <b>Charge</b>

Target: class StonetuskBoar(MinionCard):§    def __init__(self):§        super().__init__("Stonetusk Boar", 1, CHARACTER_CLASS.ALL, CARD_RARITY.FREE, minion_type=MINION_TYPE.BEAST)§§    def create_minion(self, player):§        return Minion(1, 1, charge=True)§


Source: Stormpike Commando NAME_END 4 ATK_END 2 DEF_END 5 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Battlecry:</b> Deal 2 damage.

Target: class StormpikeCommando(MinionCard):§    def __init__(self):§        super().__init__("Stormpike Commando", 5, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, battlecry=Battlecry(Damage(2), CharacterSelector(players=BothPlayer(), picker=UserPicker())))§§    def create_minion(self, player):§        return Minion(4, 2)§


Source: Stormwind Champion NAME_END 6 ATK_END 6 DEF_END 7 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END Your other minions have +1/+1.

Target: class StormwindChampion(MinionCard):§    def __init__(self):§        super().__init__("Stormwind Champion", 7, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(6, 6, auras=[Aura(ChangeAttack(1), MinionSelector()), Aura(ChangeHealth(1), MinionSelector())])§


Source: Swipe NAME_END -1 ATK_END -1 DEF_END 4 COST_END -1 DUR_END Spell TYPE_END Druid PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $4 damage to an enemy and $1 damage to all other enemies.

Target: class Swipe(SpellCard):§    def __init__(self):§        super().__init__("Swipe", 4, CHARACTER_CLASS.DRUID, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_enemy_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.damage(4, self)§§        for minion in copy.copy(game.other_player.minions):§            if minion is not self.target:§                minion.damage(player.effective_spell_damage(1), self)§§        if self.target is not game.other_player.hero:§            game.other_player.hero.damage(player.effective_spell_damage(1), self)§


Source: Timber Wolf NAME_END 1 ATK_END 1 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Hunter PLAYER_CLS_END Beast RACE_END Free RARITY_END Your other Beasts have +1 Attack.

Target: class TimberWolf(MinionCard):§    def __init__(self):§        super().__init__("Timber Wolf", 1, CHARACTER_CLASS.HUNTER, CARD_RARITY.FREE, minion_type=MINION_TYPE.BEAST)§§    def create_minion(self, player):§        return Minion(1, 1, auras=[Aura(ChangeAttack(1), MinionSelector(IsType(MINION_TYPE.BEAST)))])§


Source: Totemic Might NAME_END -1 ATK_END -1 DEF_END 0 COST_END -1 DUR_END Spell TYPE_END Shaman PLAYER_CLS_END NIL RACE_END Common RARITY_END Give your Totems +2 Health.

Target: class TotemicMight(SpellCard):§    def __init__(self):§        super().__init__("Totemic Might", 0, CHARACTER_CLASS.SHAMAN, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§§        for minion in player.minions:§            if minion.card.minion_type == MINION_TYPE.TOTEM:§                minion.increase_health(2)§


Source: Tracking NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Hunter PLAYER_CLS_END NIL RACE_END Free RARITY_END Look at the top three cards of your deck. Draw one and discard the others.

Target: class Tracking(SpellCard):§    def __init__(self):§        super().__init__("Tracking", 1, CHARACTER_CLASS.HUNTER, CARD_RARITY.FREE)§§    def use(self, player, game):§        super().use(player, game)§        cards = []§        for card_index in range(0, 3):§            if player.can_draw():§                cards.append(player.deck.draw(game))§        if len(cards) > 0:§            chosen_card = player.agent.choose_option(cards, player)§            player.hand.append(chosen_card)§            player.hand[-1].player = player§            player.trigger("card_drawn", chosen_card)§


Source: Truesilver Champion NAME_END 4 ATK_END -1 DEF_END 4 COST_END 2 DUR_END Weapon TYPE_END Paladin PLAYER_CLS_END NIL RACE_END Common RARITY_END Whenever your hero attacks, restore 2 Health to it.

Target: class TruesilverChampion(WeaponCard):§    def __init__(self):§        super().__init__("Truesilver Champion", 4, CHARACTER_CLASS.PALADIN, CARD_RARITY.COMMON)§§    def create_weapon(self, player):§        return Weapon(4, 2, effects=[Effect(CharacterAttack(IsHero()), ActionTag(Heal(2), HeroSelector()))])§


Source: Tundra Rhino NAME_END 2 ATK_END 5 DEF_END 5 COST_END -1 DUR_END Minion TYPE_END Hunter PLAYER_CLS_END Beast RACE_END Common RARITY_END Your Beasts have <b>Charge</b>.

Target: class TundraRhino(MinionCard):§    def __init__(self):§        super().__init__("Tundra Rhino", 5, CHARACTER_CLASS.HUNTER, CARD_RARITY.COMMON, minion_type=MINION_TYPE.BEAST)§§    def create_minion(self, player):§        return Minion(2, 5, charge=True, auras=[Aura(Charge(), MinionSelector(IsType(MINION_TYPE.BEAST)))])§


Source: Vanish NAME_END -1 ATK_END -1 DEF_END 6 COST_END -1 DUR_END Spell TYPE_END Rogue PLAYER_CLS_END NIL RACE_END Common RARITY_END Return all minions to their owner's hand.

Target: class Vanish(SpellCard):§    def __init__(self):§        super().__init__("Vanish", 6, CHARACTER_CLASS.ROGUE, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§§        targets = copy.copy(game.other_player.minions)§        targets.extend(player.minions)§§        for minion in sorted(targets, key=lambda m: m.born):§            minion.bounce()§


Source: Voidwalker NAME_END 1 ATK_END 3 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Warlock PLAYER_CLS_END Demon RACE_END Free RARITY_END <b>Taunt</b>

Target: class Voidwalker(MinionCard):§    def __init__(self):§        super().__init__("Voidwalker", 1, CHARACTER_CLASS.WARLOCK, CARD_RARITY.FREE, minion_type=MINION_TYPE.DEMON)§§    def create_minion(self, player):§        return Minion(1, 3, taunt=True)§


Source: Warsong Commander NAME_END 2 ATK_END 3 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Warrior PLAYER_CLS_END NIL RACE_END Free RARITY_END Whenever you summon a minion with 3 or less Attack, give it <b>Charge</b>.

Target: class WarsongCommander(MinionCard):§    def __init__(self):§        super().__init__("Warsong Commander", 3, CHARACTER_CLASS.WARRIOR, CARD_RARITY.FREE)§§    def create_minion(self, player):§        return Minion(2, 3, effects=[Effect(MinionPlaced(AttackLessThanOrEqualTo(3)), ActionTag(Give(Charge()), TargetSelector()))])§


Source: Water Elemental NAME_END 3 ATK_END 6 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Mage PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Freeze</b> any character damaged by this minion.

Target: class WaterElemental(MinionCard):§    def __init__(self):§        super().__init__("Water Elemental", 4, CHARACTER_CLASS.MAGE, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(3, 6, effects=[Effect(DidDamage(), ActionTag(Give(Frozen()), TargetSelector()))])§


Source: Whirlwind NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Warrior PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $1 damage to ALL minions.

Target: class Whirlwind(SpellCard):§    def __init__(self):§        super().__init__("Whirlwind", 1, CHARACTER_CLASS.WARRIOR, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§        targets = copy.copy(game.other_player.minions)§        targets.extend(game.current_player.minions)§        for minion in targets:§            minion.damage(player.effective_spell_damage(1), self)§


Source: Wicked Knife NAME_END 1 ATK_END -1 DEF_END 1 COST_END 2 DUR_END Weapon TYPE_END Rogue PLAYER_CLS_END NIL RACE_END Free RARITY_END NIL

Target: class WickedKnife(WeaponCard):§    def __init__(self):§        super().__init__("Wicked Knife", 1, CHARACTER_CLASS.ROGUE, CARD_RARITY.FREE, False)§§    def create_weapon(self, player):§        return Weapon(1, 2)§


Source: Wild Growth NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Druid PLAYER_CLS_END NIL RACE_END Free RARITY_END Gain an empty Mana Crystal.

Target: class WildGrowth(SpellCard):§    def __init__(self):§        super().__init__("Wild Growth", 2, CHARACTER_CLASS.DRUID, CARD_RARITY.FREE)§§    def use(self, player, game):§        super().use(player, game)§        if player.max_mana < 10:§            player.max_mana += 1§        else:§            player.hand.append(ExcessMana())§            player.hand[-1].player = player§


Source: Windfury NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Shaman PLAYER_CLS_END NIL RACE_END Free RARITY_END Give a minion <b>Windfury</b>.

Target: class Windfury(SpellCard):§    def __init__(self):§        super().__init__("Windfury", 2, CHARACTER_CLASS.SHAMAN, CARD_RARITY.FREE, target_func=hearthbreaker.targeting.find_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§§        self.target.add_buff(Buff(_Windfury()))§


Source: Windspeaker NAME_END 3 ATK_END 3 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Shaman PLAYER_CLS_END NIL RACE_END Common RARITY_END Battlecry: Give a friendly minion Windfury.

Target: class Windspeaker(MinionCard):§    def __init__(self):§        super().__init__("Windspeaker", 4, CHARACTER_CLASS.SHAMAN, CARD_RARITY.COMMON, battlecry=Battlecry(Give(Windfury()), MinionSelector(picker=UserPicker())))§§    def create_minion(self, player):§        return Minion(3, 3)§


Source: Wolfrider NAME_END 3 ATK_END 1 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Free RARITY_END <b>Charge</b>

Target: class Wolfrider(MinionCard):§    def __init__(self):§        super().__init__("Wolfrider", 3, CHARACTER_CLASS.ALL, CARD_RARITY.FREE)§§    def create_minion(self, player):§        return Minion(3, 1, charge=True)§


Source: Alexstrasza's Champion NAME_END 2 ATK_END 3 DEF_END 2 COST_END -1 DUR_END Minion TYPE_END Warrior PLAYER_CLS_END NIL RACE_END Rare RARITY_END Battlecry: If you're holding a Dragon, gain +1 Attack and Charge.

Target: class AlexstraszasChampion(MinionCard):§    def __init__(self):§        super().__init__("Alexstrasza's Champion", 2, CHARACTER_CLASS.WARRIOR, CARD_RARITY.RARE, battlecry=(Battlecry(Give([Buff(ChangeAttack(1)), Buff(Charge())]), SelfSelector(), GreaterThan(Count(CardSelector(condition=IsType(MINION_TYPE.DRAGON))), value=0))))§§    def create_minion(self, player):§        return Minion(2, 3)§


Source: Ancestral Knowledge NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Shaman PLAYER_CLS_END NIL RACE_END Common RARITY_END Draw 2 cards. <b>Overload: (2)</b>

Target: class AncestralKnowledge(SpellCard):§    def __init__(self):§        super().__init__("Ancestral Knowledge", 2, CHARACTER_CLASS.SHAMAN, CARD_RARITY.COMMON, overload=2)§§    def use(self, player, game):§        super().use(player, game)§        for c in range(0, 2):§            player.draw()§


Source: Anub'arak NAME_END 8 ATK_END 4 DEF_END 9 COST_END -1 DUR_END Minion TYPE_END Rogue PLAYER_CLS_END NIL RACE_END Legendary RARITY_END <b>Deathrattle:</b> Return this to your hand and summon a 4/4 Nerubian.

Target: class Anubarak(MinionCard):§    def __init__(self):§        super().__init__("Anub'arak", 9, CHARACTER_CLASS.ROGUE, CARD_RARITY.LEGENDARY)§§    def create_minion(self, player):§        return Minion(8, 4, deathrattle=[Deathrattle(Bounce(), SelfSelector()), Deathrattle(Summon(Nerubian()), PlayerSelector())])§


Source: Arcane Blast NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Mage PLAYER_CLS_END NIL RACE_END Epic RARITY_END Deal $2 damage to a minion. This spell gets double bonus from <b>Spell Damage</b>.

Target: class ArcaneBlast(SpellCard):§    def __init__(self):§        super().__init__("Arcane Blast", 1, CHARACTER_CLASS.MAGE, CARD_RARITY.EPIC, target_func=hearthbreaker.targeting.find_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.damage(player.effective_spell_damage(2 + player.spell_damage), self)§


Source: Argent Horserider NAME_END 2 ATK_END 1 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END Charge NL Divine Shield

Target: class ArgentHorserider(MinionCard):§    def __init__(self):§        super().__init__("Argent Horserider", 3, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(2, 1, charge=True, divine_shield=True)§


Source: Argent Lance NAME_END 2 ATK_END -1 DEF_END 2 COST_END 2 DUR_END Weapon TYPE_END Paladin PLAYER_CLS_END NIL RACE_END Rare RARITY_END <b>Battlecry:</b> Reveal a minion in each deck. If yours costs more, +1 Durability.

Target: class ArgentLance(WeaponCard):§    def __init__(self):§        super().__init__("Argent Lance", 2, CHARACTER_CLASS.PALADIN, CARD_RARITY.RARE, battlecry=Battlecry(Joust(IncreaseDurability()), SelfSelector()))§§    def create_weapon(self, player):§        return Weapon(2, 2)§


Source: Argent Watchman NAME_END 2 ATK_END 4 DEF_END 2 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Rare RARITY_END Can't attack. NL <b>Inspire:</b> Can attack as normal this turn.

Target: class ArgentWatchman(MinionCard):§    def __init__(self):§        super().__init__("Argent Watchman", 2, CHARACTER_CLASS.ALL, CARD_RARITY.RARE)§§    def create_minion(self, player):§        return Minion(2, 4, buffs=[Buff(CantAttack())], effects=[Effect(UsedPower(), ActionTag(Give(BuffUntil(CanAttack(), TurnEnded())), SelfSelector()))])§


Source: Armored Warhorse NAME_END 5 ATK_END 3 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Beast RACE_END Rare RARITY_END Battlecry: Reveal a minion in each deck. If yours costs more, gain Charge.

Target: class ArmoredWarhorse(MinionCard):§    def __init__(self):§        super().__init__("Armored Warhorse", 4, CHARACTER_CLASS.ALL, CARD_RARITY.RARE, minion_type=MINION_TYPE.BEAST, battlecry=Battlecry(Joust(Give(Buff(Charge()))), SelfSelector()))§§    def create_minion(self, player):§        return Minion(5, 3)§


Source: Healing Totem NAME_END 0 ATK_END 2 DEF_END 0 COST_END -1 DUR_END Minion TYPE_END Shaman PLAYER_CLS_END NIL RACE_END NIL RARITY_END At the end of your turn, restore 1 Health to all friendly minions.

Target: class HealingTotem(MinionCard):§    def __init__(self):§        super().__init__("Healing Totem", 1, CHARACTER_CLASS.SHAMAN, CARD_RARITY.FREE, False, MINION_TYPE.TOTEM)§§    def create_minion(self, player):§        return Minion(0, 2, effects=[Effect(TurnEnded(), ActionTag(Heal(1), MinionSelector(condition=None)))])§


Source: Nerubian NAME_END 4 ATK_END 4 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Rogue PLAYER_CLS_END NIL RACE_END NIL RARITY_END NIL

Target: class Nerubian(MinionCard):§    def __init__(self):§        super().__init__("Nerubian", 3, CHARACTER_CLASS.ALL, CARD_RARITY.RARE, False)§§    def create_minion(self, p):§        return Minion(4, 4)§


Source: Searing Totem NAME_END 1 ATK_END 1 DEF_END 0 COST_END -1 DUR_END Minion TYPE_END Shaman PLAYER_CLS_END NIL RACE_END NIL RARITY_END NIL

Target: class SearingTotem(MinionCard):§    def __init__(self):§        super().__init__("Searing Totem", 1, CHARACTER_CLASS.SHAMAN, CARD_RARITY.FREE, False, MINION_TYPE.TOTEM)§§    def create_minion(self, player):§        return Minion(1, 1)§


Source: Stoneclaw Totem NAME_END 0 ATK_END 2 DEF_END 0 COST_END -1 DUR_END Minion TYPE_END Shaman PLAYER_CLS_END NIL RACE_END NIL RARITY_END <b>Taunt</b>

Target: class StoneclawTotem(MinionCard):§    def __init__(self):§        super().__init__("Stoneclaw Totem", 1, CHARACTER_CLASS.SHAMAN, CARD_RARITY.FREE, False, MINION_TYPE.TOTEM)§§    def create_minion(self, player):§        return Minion(0, 2, taunt=True)§


Source: Tournament Medic NAME_END 1 ATK_END 8 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Inspire:</b> Restore 2 Health to your hero.

Target: class TournamentMedic(MinionCard):§    def __init__(self):§        super().__init__("Tournament Medic", 4, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(1, 8, effects=[Effect(UsedPower(), ActionTag(Heal(2), HeroSelector()))])§


Source: Wrath of Air Totem NAME_END 0 ATK_END 2 DEF_END 0 COST_END -1 DUR_END Minion TYPE_END Shaman PLAYER_CLS_END NIL RACE_END NIL RARITY_END <b>Spell Damage +1</b>

Target: class WrathOfAirTotem(MinionCard):§    def __init__(self):§        super().__init__("Wrath of Air Totem", 1, CHARACTER_CLASS.SHAMAN, CARD_RARITY.FREE, False, MINION_TYPE.TOTEM)§§    def create_minion(self, player):§        return Minion(0, 2, spell_damage=1)§


Source: Ancestor's Call NAME_END -1 ATK_END -1 DEF_END 4 COST_END -1 DUR_END Spell TYPE_END Shaman PLAYER_CLS_END NIL RACE_END Epic RARITY_END Put a random minion from each player's hand into the battlefield.

Target: class AncestorsCall(SpellCard):§    def __init__(self):§        super().__init__("Ancestor's Call", 4, CHARACTER_CLASS.SHAMAN, CARD_RARITY.EPIC)§§    def can_use(self, player, game):§        return super().can_use(player, game) and (len(player.minions) < 7 or len(player.opponent.minions) < 7)§§    def use(self, player, game):§        super().use(player, game)§        for player in game.players:§            minions = [card for card in player.hand if card.is_minion()]§            if len(minions) and len(player.minions) < 7:§                minion_card = game.random_choice(minions)§                minion_card.unattach()§                player.hand.remove(minion_card)§                minion_card.summon(player, game, len(player.minions))§


Source: Anima Golem NAME_END 9 ATK_END 9 DEF_END 6 COST_END -1 DUR_END Minion TYPE_END Warlock PLAYER_CLS_END Mech RACE_END Epic RARITY_END At the end of each turn, destroy this minion if it's your only one.

Target: class AnimaGolem(MinionCard):§    def __init__(self):§        super().__init__("Anima Golem", 6, CHARACTER_CLASS.WARLOCK, CARD_RARITY.EPIC, minion_type=MINION_TYPE.MECH)§§    def create_minion(self, player):§        return Minion(9, 9, effects=[Effect(TurnEnded(MinionCountIs(1), BothPlayer()), ActionTag(Kill(), SelfSelector()))])§


Source: Antique Healbot NAME_END 3 ATK_END 3 DEF_END 5 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Mech RACE_END Common RARITY_END <b>Battlecry:</b> Restore 8 Health to your hero.

Target: class AntiqueHealbot(MinionCard):§    def __init__(self):§        super().__init__("Antique Healbot", 5, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, minion_type=MINION_TYPE.MECH, battlecry=Battlecry(Heal(8), HeroSelector()))§§    def create_minion(self, player):§        return Minion(3, 3)§


Source: Arcane Nullifier X-21 NAME_END 2 ATK_END 5 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Mech RACE_END Rare RARITY_END <b>Taunt</b> NL Can't be targeted by spells or Hero Powers.

Target: class ArcaneNullifierX21(MinionCard):§    def __init__(self):§        super().__init__("Arcane Nullifier X-21", 4, CHARACTER_CLASS.ALL, CARD_RARITY.RARE, minion_type=MINION_TYPE.MECH)§§    def create_minion(self, player):§        return Minion(2, 5, taunt=True, spell_targetable=False)§


Source: Armor Plating NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Neutral PLAYER_CLS_END NIL RACE_END NIL RARITY_END Give a minion +1 Health.

Target: class ArmorPlating(SpellCard):§    def __init__(self):§        super().__init__("Armor Plating", 1, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, False, target_func=hearthbreaker.targeting.find_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.increase_health(1)§


Source: Blingtron 3000 NAME_END 3 ATK_END 4 DEF_END 5 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Mech RACE_END Legendary RARITY_END <b>Battlecry:</b> Equip a random weapon for each player.

Target: class Blingtron3000(MinionCard):§    def __init__(self):§        super().__init__("Blingtron 3000", 5, CHARACTER_CLASS.ALL, CARD_RARITY.LEGENDARY, minion_type=MINION_TYPE.MECH, battlecry=Battlecry(Equip(CardQuery(conditions=[IsWeapon()])), PlayerSelector(players=BothPlayer())))§§    def create_minion(self, player):§        return Minion(3, 4)§


Source: Bolvar Fordragon NAME_END 1 ATK_END 7 DEF_END 5 COST_END -1 DUR_END Minion TYPE_END Paladin PLAYER_CLS_END NIL RACE_END Legendary RARITY_END Whenever a friendly minion dies while this is in your hand, gain +1 Attack.

Target: class BolvarFordragon(MinionCard):§    def __init__(self):§        super().__init__("Bolvar Fordragon", 5, CHARACTER_CLASS.PALADIN, CARD_RARITY.LEGENDARY, effects=[Effect(MinionDied(), ActionTag(Give(ChangeAttack(1)), SelfSelector()))])§§    def create_minion(self, player):§        return Minion(1, 7)§


Source: Bomb Lobber NAME_END 3 ATK_END 3 DEF_END 5 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Rare RARITY_END <b>Battlecry:</b> Deal 4 damage to a random enemy minion.

Target: class BombLobber(MinionCard):§    def __init__(self):§        super().__init__("Bomb Lobber", 5, CHARACTER_CLASS.ALL, CARD_RARITY.RARE, battlecry=Battlecry(Damage(4), MinionSelector(None, EnemyPlayer(), RandomPicker())))§§    def create_minion(self, player):§        return Minion(3, 3)§


Source: Boom Bot NAME_END 1 ATK_END 1 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Mech RACE_END NIL RARITY_END <b>Deathrattle</b>: Deal 1-4 damage to a random enemy.

Target: class BoomBot(MinionCard):§    def __init__(self):§        super().__init__("Boom Bot", 1, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, False, minion_type=MINION_TYPE.MECH)§§    def create_minion(self, player):§        return Minion(1, 1, deathrattle=Deathrattle(Damage(RandomAmount(1, 4)), CharacterSelector(players=EnemyPlayer(), picker=RandomPicker())))§


Source: Bouncing Blade NAME_END -1 ATK_END -1 DEF_END 3 COST_END -1 DUR_END Spell TYPE_END Warrior PLAYER_CLS_END NIL RACE_END Epic RARITY_END Deal $1 damage to a random minion. Repeat until a minion dies.

Target: class BouncingBlade(SpellCard):§    def __init__(self):§        super().__init__("Bouncing Blade", 3, CHARACTER_CLASS.WARRIOR, CARD_RARITY.EPIC)§§    def can_use(self, player, game):§        return super().can_use(player, game) and len(player.minions) + len(player.opponent.minions) >= 1§§    def use(self, player, game):§        super().use(player, game)§§        targets = player.minions[:] + player.opponent.minions[:]§        if len(targets):§            for bounces in range(80):§                target = game.random_choice(targets)§                target.damage(player.effective_spell_damage(1), self)§                if target.dead:§                    break§


Source: Call Pet NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Hunter PLAYER_CLS_END NIL RACE_END Rare RARITY_END Draw a card. NL If it's a Beast, it costs (4) less.

Target: class CallPet(SpellCard):§    def __init__(self):§        super().__init__("Call Pet", 2, CHARACTER_CLASS.HUNTER, CARD_RARITY.RARE)§§    def use(self, player, game):§        def reduce_cost(card):§            if card.is_minion() and card.minion_type == MINION_TYPE.BEAST:§                card.add_buff(Buff(ManaChange(-4)))§§        super().use(player, game)§        player.bind_once("card_drawn", reduce_cost)§        player.draw()§


Source: Chicken NAME_END 1 ATK_END 1 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Beast RACE_END NIL RARITY_END NIL

Target: class Chicken(MinionCard):§    def __init__(self):§        super().__init__("Chicken", 0, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, False, MINION_TYPE.BEAST)§§    def create_minion(self, p):§        return Minion(1, 1)§


Source: Clockwork Giant NAME_END 8 ATK_END 8 DEF_END 12 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Mech RACE_END Epic RARITY_END Costs (1) less for each card in your opponent's hand.

Target: class ClockworkGiant(MinionCard):§    def __init__(self):§        super().__init__("Clockwork Giant", 12, CHARACTER_CLASS.ALL, CARD_RARITY.EPIC, minion_type=MINION_TYPE.MECH, buffs=[Buff(ManaChange(Count(CardSelector(EnemyPlayer())), -1))])§§    def create_minion(self, player):§        return Minion(8, 8)§


Source: Clockwork Gnome NAME_END 2 ATK_END 1 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Mech RACE_END Common RARITY_END Deathrattle: Add a Spare Part card to your hand.

Target: class ClockworkGnome(MinionCard):§    def __init__(self):§        super().__init__("Clockwork Gnome", 1, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, minion_type=MINION_TYPE.MECH)§§    def create_minion(self, player):§        from hearthbreaker.cards.spells.neutral import spare_part_list§        return Minion(2, 1, deathrattle=Deathrattle(AddCard(CardQuery(source=CARD_SOURCE.LIST, source_list=spare_part_list)), PlayerSelector()))§


Source: Cobalt Guardian NAME_END 6 ATK_END 3 DEF_END 5 COST_END -1 DUR_END Minion TYPE_END Paladin PLAYER_CLS_END Mech RACE_END Rare RARITY_END Whenever you summon a Mech, gain <b>Divine Shield</b>.

Target: class CobaltGuardian(MinionCard):§    def __init__(self):§        super().__init__("Cobalt Guardian", 5, CHARACTER_CLASS.PALADIN, CARD_RARITY.RARE, minion_type=MINION_TYPE.MECH)§§    def create_minion(self, player):§        return Minion(6, 3, effects=[Effect(MinionSummoned(IsType(MINION_TYPE.MECH)), ActionTag(Give(DivineShield()), SelfSelector()))])§


Source: Cobra Shot NAME_END -1 ATK_END -1 DEF_END 5 COST_END -1 DUR_END Spell TYPE_END Hunter PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $3 damage to a minion and the enemy hero.

Target: class CobraShot(SpellCard):§    def __init__(self):§        super().__init__("Cobra Shot", 5, CHARACTER_CLASS.HUNTER, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.damage(player.effective_spell_damage(3), self)§        game.other_player.hero.damage(player.effective_spell_damage(3), self)§


Source: Coghammer NAME_END 2 ATK_END -1 DEF_END 3 COST_END 3 DUR_END Weapon TYPE_END Paladin PLAYER_CLS_END NIL RACE_END Epic RARITY_END Battlecry: Give a random friendly minion Divine Shield and Taunt.

Target: class Coghammer(WeaponCard):§    def __init__(self):§        super().__init__("Coghammer", 3, CHARACTER_CLASS.PALADIN, CARD_RARITY.EPIC, battlecry=Battlecry(Give([Buff(DivineShield()), Buff(Taunt())]), MinionSelector(picker=RandomPicker())))§§    def create_weapon(self, player):§        return Weapon(2, 3)§


Source: Cogmaster NAME_END 1 ATK_END 2 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END Has +2 Attack while you have a Mech.

Target: class Cogmaster(MinionCard):§    def __init__(self):§        super().__init__("Cogmaster", 1, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(1, 2, auras=[Aura(ChangeAttack(2), SelfSelector(), GreaterThan(Count(MinionSelector(IsType(MINION_TYPE.MECH))), value=0))])§


Source: Crush NAME_END -1 ATK_END -1 DEF_END 7 COST_END -1 DUR_END Spell TYPE_END Warrior PLAYER_CLS_END NIL RACE_END Epic RARITY_END Destroy a minion. If you have a damaged minion, this costs (4) less.

Target: class Crush(SpellCard):§    def __init__(self):§        super().__init__("Crush", 7, CHARACTER_CLASS.WARRIOR, CARD_RARITY.EPIC, target_func=hearthbreaker.targeting.find_minion_spell_target, buffs=[Buff(ManaChange(-4), GreaterThan(Count(MinionSelector(IsDamaged())), value=0))])§§    def use(self, player, game):§        super().use(player, game)§§        self.target.die(self)§


Source: Dark Wispers NAME_END -1 ATK_END -1 DEF_END 6 COST_END -1 DUR_END Spell TYPE_END Druid PLAYER_CLS_END NIL RACE_END Epic RARITY_END Choose One - Summon 5 Wisps; or Give a minion +5/+5 and Taunt.

Target: class DarkWispers(SpellCard):§    def __init__(self):§        super().__init__("Dark Wispers", 6, CHARACTER_CLASS.DRUID, CARD_RARITY.EPIC)§§    def can_use(self, player, game):§        return (super().can_use(player, game) and (len(player.minions) < 7 or hearthbreaker.targeting.find_minion_spell_target(game, lambda t: t.spell_targetable()) is not None))§§    def use(self, player, game):§        super().use(player, game)§§        class Buff5(ChoiceCard):§            def __init__(self):§                super().__init__("Give a minion +5/+5 and Taunt", 0, CHARACTER_CLASS.DRUID, CARD_RARITY.COMMON, False)§§            def can_use(self, player, game):§                return hearthbreaker.targeting.find_minion_spell_target(game, lambda t: t.spell_targetable()) is not None§§            def use(self, player, game):§                targets = hearthbreaker.targeting.find_minion_spell_target(game, lambda t: t.spell_targetable())§                target = player.agent.choose_target(targets)§                target.change_attack(5)§                target.increase_health(5)§                target.taunt = True§§        class Wisps5(ChoiceCard):§            def __init__(self):§                super().__init__("Summon 5 Wisps", 0, CHARACTER_CLASS.DRUID, CARD_RARITY.COMMON, False)§§            def can_use(self, player, game):§                return len(player.minions) < 7§§            def use(self, player, game):§                from hearthbreaker.cards.minions.neutral import Wisp§                for i in range(0, 5):§                    wisp = Wisp()§                    wisp.summon(player, game, len(player.minions))§§        if len(hearthbreaker.targeting.find_minion_spell_target(game, lambda t: t.spell_targetable())) == 0:§            option = Wisps5()§        else:§            option = player.agent.choose_option([Wisps5(), Buff5()], player)§        option.use(player, game)§


Source: Darkbomb NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Warlock PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $3 damage.

Target: class Darkbomb(SpellCard):§    def __init__(self):§        super().__init__("Darkbomb", 2, CHARACTER_CLASS.WARLOCK, CARD_RARITY.COMMON, target_func=hearthbreaker.targeting.find_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.damage(player.effective_spell_damage(3), self)§


Source: Demonheart NAME_END -1 ATK_END -1 DEF_END 5 COST_END -1 DUR_END Spell TYPE_END Warlock PLAYER_CLS_END NIL RACE_END Epic RARITY_END Deal $5 damage to a minion. If it's a friendly Demon, give it +5/+5 instead.

Target: class Demonheart(SpellCard):§    def __init__(self):§        super().__init__("Demonheart", 5, CHARACTER_CLASS.WARLOCK, CARD_RARITY.EPIC, target_func=hearthbreaker.targeting.find_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        targets = copy.copy(player.game.current_player.minions)§        if self.target.card.minion_type is MINION_TYPE.DEMON and self.target in targets:§            self.target.change_attack(5)§            self.target.increase_health(5)§        else:§            self.target.damage(player.effective_spell_damage(5), self)§


Source: Dr. Boom NAME_END 7 ATK_END 7 DEF_END 7 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Legendary RARITY_END Battlecry: Summon two 1/1 Boom Bots. WARNING: Bots may explode.

Target: class DoctorBoom(MinionCard):§    def __init__(self):§        super().__init__("Dr. Boom", 7, CHARACTER_CLASS.ALL, CARD_RARITY.LEGENDARY, battlecry=Battlecry(Summon(BoomBot(), 2), PlayerSelector()))§§    def create_minion(self, player):§        return Minion(7, 7)§


Source: Druid of the Fang NAME_END 7 ATK_END 7 DEF_END 5 COST_END -1 DUR_END Minion TYPE_END Druid PLAYER_CLS_END Beast RACE_END NIL RARITY_END NIL

Target: class DruidOfTheFang(MinionCard):§    def __init__(self):§        super().__init__("Druid of the Fang", 5, CHARACTER_CLASS.DRUID, CARD_RARITY.COMMON, battlecry=Battlecry(Transform(CobraForm()), SelfSelector(), GreaterThan(Count(MinionSelector(IsType(MINION_TYPE.BEAST))), value=0)))§§    def create_minion(self, player):§        return Minion(4, 4)§


Source: Druid of the Fang NAME_END 4 ATK_END 4 DEF_END 5 COST_END -1 DUR_END Minion TYPE_END Druid PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Battlecry:</b> If you have a Beast, transform this minion into a 7/7.

Target: class DruidOfTheFang(MinionCard):§    def __init__(self):§        super().__init__("Druid of the Fang", 5, CHARACTER_CLASS.DRUID, CARD_RARITY.COMMON, battlecry=Battlecry(Transform(CobraForm()), SelfSelector(), GreaterThan(Count(MinionSelector(IsType(MINION_TYPE.BEAST))), value=0)))§§    def create_minion(self, player):§        return Minion(4, 4)§


Source: Dunemaul Shaman NAME_END 5 ATK_END 4 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Shaman PLAYER_CLS_END NIL RACE_END Rare RARITY_END <b>Windfury, Overload: (1)</b> NL 50% chance to attack the wrong enemy.

Target: class DunemaulShaman(MinionCard):§    def __init__(self):§        super().__init__("Dunemaul Shaman", 4, CHARACTER_CLASS.SHAMAN, CARD_RARITY.RARE, overload=1)§§    def create_minion(self, player):§        return Minion(5, 4, windfury=True, effects=[Effect(Attack(), ActionTag(ChangeTarget(CharacterSelector(NotCurrentTarget(), EnemyPlayer(), RandomPicker())), SelfSelector(), And(OneIn(2), OpponentMinionCountIsGreaterThan(0))))])§


Source: Enhance-o Mechano NAME_END 3 ATK_END 2 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Mech RACE_END Epic RARITY_END Battlecry: Give your other minions Windfury, Taunt, or Divine Shield. NL (at random)

Target: class EnhanceoMechano(MinionCard):§    def __init__(self):§        super().__init__("Enhance-o Mechano", 4, CHARACTER_CLASS.ALL, CARD_RARITY.EPIC, minion_type=MINION_TYPE.MECH, battlecry=Battlecry(Give([ Buff(Windfury()), Buff(Taunt()), Buff(DivineShield())], RandomPicker()), MinionSelector()))§§    def create_minion(self, player):§        return Minion(3, 2)§


Source: Explosive Sheep NAME_END 1 ATK_END 1 DEF_END 2 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Mech RACE_END Common RARITY_END <b>Deathrattle:</b> Deal 2 damage to all minions.

Target: class ExplosiveSheep(MinionCard):§    def __init__(self):§        super().__init__("Explosive Sheep", 2, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, minion_type=MINION_TYPE.MECH)§§    def create_minion(self, player):§        return Minion(1, 1, deathrattle=Deathrattle(Damage(2), CharacterSelector(players=BothPlayer())), taunt=True)§


Source: Feign Death NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Hunter PLAYER_CLS_END NIL RACE_END Epic RARITY_END Trigger all <b>Deathrattles</b> on your minions.

Target: class FeignDeath(SpellCard):§    def __init__(self):§        super().__init__("Feign Death", 2, CHARACTER_CLASS.HUNTER, CARD_RARITY.EPIC)§§    def use(self, player, game):§        super().use(player, game)§§        for minion in sorted(player.minions, key=lambda m: m.born):§            for deathrattle in minion.deathrattle:§                deathrattle.do(minion)§            if player.double_deathrattle:§                for deathrattle in minion.deathrattle:§                    deathrattle.do(minion)§


Source: Fel Cannon NAME_END 3 ATK_END 5 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Warlock PLAYER_CLS_END Mech RACE_END Rare RARITY_END At the end of your turn, deal 2 damage to a non-Mech minion.

Target: class FelCannon(MinionCard):§    def __init__(self):§        super().__init__("Fel Cannon", 4, CHARACTER_CLASS.WARLOCK, CARD_RARITY.RARE, minion_type=MINION_TYPE.MECH)§§    def create_minion(self, player):§        return Minion(3, 5, effects=[Effect(TurnEnded(), ActionTag(Damage(2), MinionSelector(Not(IsType(MINION_TYPE.MECH, True)), BothPlayer(), RandomPicker())))])§


Source: Fel Reaver NAME_END 8 ATK_END 8 DEF_END 5 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Mech RACE_END Epic RARITY_END Whenever your opponent plays a card, remove the top 3 cards of your deck.

Target: class FelReaver(MinionCard):§    def __init__(self):§        super().__init__("Fel Reaver", 5, CHARACTER_CLASS.ALL, CARD_RARITY.EPIC, minion_type=MINION_TYPE.MECH)§§    def create_minion(self, player):§        return Minion(8, 8, effects=[Effect(CardPlayed(player=EnemyPlayer()), ActionTag(Discard(3, query=CardQuery(source=CARD_SOURCE.MY_DECK)), PlayerSelector()))])§


Source: Finicky Cloakfield NAME_END -1 ATK_END -1 DEF_END 1 COST_END -1 DUR_END Spell TYPE_END Neutral PLAYER_CLS_END NIL RACE_END NIL RARITY_END Give a friendly minion <b>Stealth</b> until your next turn.

Target: class FinickyCloakfield(SpellCard):§    def __init__(self):§        super().__init__("Finicky Cloakfield", 1, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, False, target_func=hearthbreaker.targeting.find_friendly_minion_spell_target)§§    def use(self, player, game):§        super().use(player, game)§        self.target.add_buff(BuffUntil(Stealth(), TurnStarted()))§


Source: Flame Leviathan NAME_END 7 ATK_END 7 DEF_END 7 COST_END -1 DUR_END Minion TYPE_END Mage PLAYER_CLS_END Mech RACE_END Legendary RARITY_END When you draw this, deal 2 damage to all characters.

Target: class FlameLeviathan(MinionCard):§    def __init__(self):§        super().__init__("Flame Leviathan", 7, CHARACTER_CLASS.MAGE, CARD_RARITY.LEGENDARY, minion_type=MINION_TYPE.MECH, effects=[Effect(Drawn(), ActionTag(Damage(2), CharacterSelector(None, BothPlayer())))])§§    def create_minion(self, player):§        return Minion(7, 7)§


Source: Flamecannon NAME_END -1 ATK_END -1 DEF_END 2 COST_END -1 DUR_END Spell TYPE_END Mage PLAYER_CLS_END NIL RACE_END Common RARITY_END Deal $4 damage to a random enemy minion.

Target: class Flamecannon(SpellCard):§    def __init__(self):§        super().__init__("Flamecannon", 2, CHARACTER_CLASS.MAGE, CARD_RARITY.COMMON)§§    def use(self, player, game):§        super().use(player, game)§§        targets = hearthbreaker.targeting.find_enemy_minion_battlecry_target(player.game, lambda x: True)§        target = game.random_choice(targets)§        target.damage(player.effective_spell_damage(4), self)§§    def can_use(self, player, game):§        return super().can_use(player, game) and len(game.other_player.minions) >= 1§


Source: Foe Reaper 4000 NAME_END 6 ATK_END 9 DEF_END 8 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Mech RACE_END Legendary RARITY_END Also damages the minions next to whomever he attacks.

Target: class FoeReaper4000(MinionCard):§    def __init__(self):§        super().__init__("Foe Reaper 4000", 8, CHARACTER_CLASS.ALL, CARD_RARITY.LEGENDARY, minion_type=MINION_TYPE.MECH)§§    def create_minion(self, player):§        return Minion(6, 9, effects=[Effect(Attack(IsMinion()), ActionTag(Damage(Attribute("attack", SelfSelector())), MinionSelector(TargetAdjacent(), EnemyPlayer())))])§


Source: Force-Tank MAX NAME_END 7 ATK_END 7 DEF_END 8 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Mech RACE_END Common RARITY_END <b>Divine Shield</b>

Target: class ForceTankMAX(MinionCard):§    def __init__(self):§        super().__init__("Force-Tank MAX", 8, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, minion_type=MINION_TYPE.MECH)§§    def create_minion(self, player):§        return Minion(7, 7, divine_shield=True)§


Source: Gahz'rilla NAME_END 6 ATK_END 9 DEF_END 7 COST_END -1 DUR_END Minion TYPE_END Hunter PLAYER_CLS_END Beast RACE_END Legendary RARITY_END Whenever this minion takes damage, double its Attack.

Target: class Gahzrilla(MinionCard):§    def __init__(self):§        super().__init__("Gahz'rilla", 7, CHARACTER_CLASS.HUNTER, CARD_RARITY.LEGENDARY, minion_type=MINION_TYPE.BEAST)§§    def create_minion(self, player):§        return Minion(6, 9, effects=[Effect(Damaged(), ActionTag(Give(Buff(DoubleAttack())), SelfSelector()))])§


Source: Gallywix's Coin NAME_END -1 ATK_END -1 DEF_END 0 COST_END -1 DUR_END Spell TYPE_END Neutral PLAYER_CLS_END NIL RACE_END NIL RARITY_END Gain 1 Mana Crystal this turn only. NL <i>(Won't trigger Gallywix.)</i>

Target: class GallywixsCoin(SpellCard):§    def __init__(self):§        super().__init__("Gallywix's Coin", 0, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON, False)§§    def use(self, player, game):§        super().use(player, game)§        if player.mana < 10:§            player.mana += 1§


Source: Gazlowe NAME_END 3 ATK_END 6 DEF_END 6 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Legendary RARITY_END Whenever you cast a 1-mana spell, add a random Mech to your hand.

Target: class Gazlowe(MinionCard):§    def __init__(self):§        super().__init__("Gazlowe", 6, CHARACTER_CLASS.ALL, CARD_RARITY.LEGENDARY)§§    def create_minion(self, player):§        return Minion(3, 6, effects=[Effect(SpellCast(ManaCost(1)), ActionTag(AddCard(CardQuery(conditions=[IsType(MINION_TYPE.MECH)])), PlayerSelector()))])§


Source: Gilblin Stalker NAME_END 2 ATK_END 3 DEF_END 2 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Stealth</b>

Target: class GilblinStalker(MinionCard):§    def __init__(self):§        super().__init__("Gilblin Stalker", 2, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(2, 3, stealth=True)§


Source: Glaivezooka NAME_END 2 ATK_END -1 DEF_END 2 COST_END 2 DUR_END Weapon TYPE_END Hunter PLAYER_CLS_END NIL RACE_END Common RARITY_END <b>Battlecry:</b> Give a random friendly minion +1 Attack.

Target: class Glaivezooka(WeaponCard):§    def __init__(self):§        super().__init__("Glaivezooka", 2, CHARACTER_CLASS.HUNTER, CARD_RARITY.COMMON, battlecry=Battlecry(Give(ChangeAttack(1)), MinionSelector(None, picker=RandomPicker())))§§    def create_weapon(self, player):§        return Weapon(2, 2)§


Source: Gnomeregan Infantry NAME_END 1 ATK_END 4 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Common RARITY_END Charge NL Taunt

Target: class GnomereganInfantry(MinionCard):§    def __init__(self):§        super().__init__("Gnomeregan Infantry", 3, CHARACTER_CLASS.ALL, CARD_RARITY.COMMON)§§    def create_minion(self, player):§        return Minion(1, 4, charge=True, taunt=True)§


Source: Goblin Blastmage NAME_END 5 ATK_END 4 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Mage PLAYER_CLS_END NIL RACE_END Rare RARITY_END <b>Battlecry:</b> If you have a Mech, deal 4 damage randomly split among all enemies.

Target: class GoblinBlastmage(MinionCard):§    def __init__(self):§        super().__init__("Goblin Blastmage", 4, CHARACTER_CLASS.MAGE, CARD_RARITY.RARE, battlecry=Battlecry(Damage(1), CharacterSelector(None, EnemyPlayer(), RandomPicker(4)), GreaterThan(Count(MinionSelector(IsType(MINION_TYPE.MECH))), value=0)))§§    def create_minion(self, player):§        return Minion(5, 4)§


Source: Goblin Sapper NAME_END 2 ATK_END 4 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Rare RARITY_END Has +4 Attack while your opponent has 6 or more cards in hand.

Target: class GoblinSapper(MinionCard):§    def __init__(self):§        super().__init__("Goblin Sapper", 3, CHARACTER_CLASS.ALL, CARD_RARITY.RARE)§§    def create_minion(self, player):§        return Minion(2, 4, buffs=[Buff(ChangeAttack(4), GreaterThan(Count(CardSelector(EnemyPlayer())), value=5))])§


Source: Grove Tender NAME_END 2 ATK_END 4 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Druid PLAYER_CLS_END NIL RACE_END Rare RARITY_END <b>Choose One -</b> Give each player a Mana Crystal; or Each player draws a card.

Target: class GroveTender(MinionCard):§    def __init__(self):§        super().__init__("Grove Tender", 3, CHARACTER_CLASS.DRUID, CARD_RARITY.RARE, choices=[§            Choice(GiftOfMana(), GiveManaCrystal(), PlayerSelector(players=BothPlayer())),§            Choice(GiftOfCards(), Draw(), PlayerSelector(players=BothPlayer()))§        ])§§    def create_minion(self, player):§        return Minion(2, 4)§


Source: Hemet Nesingwary NAME_END 6 ATK_END 3 DEF_END 5 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Legendary RARITY_END <b>Battlecry:</b> Destroy a Beast.

Target: class HemetNesingwary(MinionCard):§    def __init__(self):§        super().__init__("Hemet Nesingwary", 5, CHARACTER_CLASS.ALL, CARD_RARITY.LEGENDARY, battlecry=Battlecry(Kill(), MinionSelector(IsType(MINION_TYPE.BEAST), players=BothPlayer(), picker=UserPicker())))§§    def create_minion(self, player):§        return Minion(6, 3)§


Source: Hobgoblin NAME_END 2 ATK_END 3 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Epic RARITY_END Whenever you play a 1-Attack minion, give it +2/+2.

Target: class Hobgoblin(MinionCard):§    def __init__(self):§        super().__init__("Hobgoblin", 3, CHARACTER_CLASS.ALL, CARD_RARITY.EPIC)§§    def create_minion(self, player):§        return Minion(2, 3, effects=[Effect(MinionPlaced(BaseAttackEqualTo(1)), ActionTag(Give([Buff(ChangeHealth(2)), Buff(ChangeAttack(2))]), TargetSelector()))])§


Source: Illuminator NAME_END 2 ATK_END 4 DEF_END 3 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Rare RARITY_END If you control a <b>Secret</b> at the end of your turn, restore 4 health to your hero.

Target: class Illuminator(MinionCard):§    def __init__(self):§        super().__init__("Illuminator", 3, CHARACTER_CLASS.ALL, CARD_RARITY.RARE)§§    def create_minion(self, player):§        return Minion(2, 4, effects=[Effect(TurnEnded(HasSecret()), ActionTag(Heal(4), HeroSelector()))])§


Source: Imp NAME_END 1 ATK_END 1 DEF_END 1 COST_END -1 DUR_END Minion TYPE_END Warlock PLAYER_CLS_END Demon RACE_END NIL RARITY_END NIL

Target: class Imp(MinionCard):§    def __init__(self):§        super().__init__("Imp", 1, CHARACTER_CLASS.ALL, CARD_RARITY.RARE, False, minion_type=MINION_TYPE.DEMON)§§    def create_minion(self, player):§        return Minion(1, 1)§


Source: Imp-losion NAME_END -1 ATK_END -1 DEF_END 4 COST_END -1 DUR_END Spell TYPE_END Warlock PLAYER_CLS_END NIL RACE_END Rare RARITY_END Deal $2-$4 damage to a minion. Summon a 1/1 Imp for each damage dealt.

Target: class Implosion(SpellCard):§    def __init__(self):§        super().__init__("Imp-losion", 4, CHARACTER_CLASS.WARLOCK, CARD_RARITY.RARE, target_func=hearthbreaker.targeting.find_spell_target)§§    def use(self, player, game):§        super().use(player, game)§§        amount = player.effective_spell_damage(game.random_amount(2, 4))§        had_shield = self.target.divine_shield§§        self.target.damage(amount, self)§§        if not had_shield:§            for i in range(0, amount):§                imp = Imp()§                imp.summon(player, game, len(player.minions))§


Source: Jeeves NAME_END 1 ATK_END 4 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Mech RACE_END Rare RARITY_END At the end of each player's turn, that player draws until they have 3 cards.

Target: class Jeeves(MinionCard):§    def __init__(self):§        super().__init__("Jeeves", 4, CHARACTER_CLASS.ALL, CARD_RARITY.RARE, minion_type=MINION_TYPE.MECH)§§    def create_minion(self, player):§        return Minion(1, 4, effects=[Effect(TurnEnded(player=BothPlayer()), ActionTag(Draw(Difference(Count(CardSelector(players=CurrentPlayer())), value=3)), PlayerSelector(CurrentPlayer())))])§


Source: Junkbot NAME_END 1 ATK_END 5 DEF_END 5 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END Mech RACE_END Epic RARITY_END Whenever a friendly Mech dies, gain +2/+2.

Target: class Junkbot(MinionCard):§    def __init__(self):§        super().__init__("Junkbot", 5, CHARACTER_CLASS.ALL, CARD_RARITY.EPIC, minion_type=MINION_TYPE.MECH)§§    def create_minion(self, player):§        return Minion(1, 5, effects=[Effect(MinionDied(IsType(MINION_TYPE.MECH)), ActionTag(Give([Buff(ChangeAttack(2)), Buff(ChangeHealth(2))]), SelfSelector()))])§


Source: Kezan Mystic NAME_END 4 ATK_END 3 DEF_END 4 COST_END -1 DUR_END Minion TYPE_END Neutral PLAYER_CLS_END NIL RACE_END Rare RARITY_END Battlecry: Take control of a random enemy Secret.

Target: class KezanMystic(MinionCard):§    def __init__(self):§        super().__init__("Kezan Mystic", 4, CHARACTER_CLASS.ALL, CARD_RARITY.RARE, battlecry=Battlecry(ApplySecret(CARD_SOURCE.ENEMY_SECRETS), PlayerSelector()))§§    def create_minion(self, player):§        return Minion(4, 3)§