<s> from hearthbreaker . cards . base import MinionCard <EOL> from hearthbreaker . game_objects import Minion <EOL> from hearthbreaker . tags . action import Draw , Damage , Give , Heal , ChangeTarget , AddCard <EOL> from hearthbreaker . tags . base import Aura , Effect , Battlecry , ActionTag , Buff <EOL> from hearthbreaker . tags . card_source import CollectionSource <EOL> from hearthbreaker . tags . condition import Adjacent , HasOverload , IsType , OneIn , NotCurrentTarget , OpponentMinionCountIsGreaterThan , And <EOL> from hearthbreaker . tags . event import TurnEnded , CardPlayed , MinionDied , Attack <EOL> from hearthbreaker . tags . selector import MinionSelector , PlayerSelector , HeroSelector , CharacterSelector , BothPlayer , UserPicker , SelfSelector , RandomPicker , EnemyPlayer , RandomAmount <EOL> from hearthbreaker . constants import CHARACTER_CLASS , CARD_RARITY , MINION_TYPE <EOL> from hearthbreaker . tags . status import ChangeAttack , ChangeHealth , Windfury <EOL> class AlAkirTheWindlord ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:8> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . LEGENDARY ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:3> , <NUM_LIT:5> , windfury = True , charge = True , divine_shield = True , taunt = True ) <EOL> class DustDevil ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:1> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . COMMON , overload = <NUM_LIT:2> ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:3> , <NUM_LIT:1> , windfury = True ) <EOL> class EarthElemental ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:5> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . EPIC , overload = <NUM_LIT:3> ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:7> , <NUM_LIT:8> , taunt = True ) <EOL> class FireElemental ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:6> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . COMMON , <EOL> battlecry = Battlecry ( Damage ( <NUM_LIT:3> ) , CharacterSelector ( players = BothPlayer ( ) , picker = UserPicker ( ) ) ) ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:6> , <NUM_LIT:5> ) <EOL> class FlametongueTotem ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:2> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . COMMON , <EOL> minion_type = MINION_TYPE . TOTEM ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:0> , <NUM_LIT:3> , auras = [ Aura ( ChangeAttack ( <NUM_LIT:2> ) , MinionSelector ( Adjacent ( ) ) ) ] ) <EOL> class ManaTideTotem ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:3> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . RARE , <EOL> minion_type = MINION_TYPE . TOTEM ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:0> , <NUM_LIT:3> , effects = [ Effect ( TurnEnded ( ) , ActionTag ( Draw ( ) , PlayerSelector ( ) ) ) ] ) <EOL> class UnboundElemental ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:3> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . COMMON ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:2> , <NUM_LIT:4> , effects = [ Effect ( CardPlayed ( HasOverload ( ) ) , ActionTag ( Give ( ChangeAttack ( <NUM_LIT:1> ) ) , <EOL> SelfSelector ( ) ) ) , <EOL> Effect ( CardPlayed ( HasOverload ( ) ) , ActionTag ( Give ( ChangeHealth ( <NUM_LIT:1> ) ) , <EOL> SelfSelector ( ) ) ) ] ) <EOL> class Windspeaker ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:4> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . COMMON , <EOL> battlecry = Battlecry ( Give ( Windfury ( ) ) , MinionSelector ( picker = UserPicker ( ) ) ) ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:3> , <NUM_LIT:3> ) <EOL> class HealingTotem ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:1> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . FREE , False , MINION_TYPE . TOTEM ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:0> , <NUM_LIT:2> , effects = [ Effect ( TurnEnded ( ) , ActionTag ( Heal ( <NUM_LIT:1> ) , MinionSelector ( condition = None ) ) ) ] ) <EOL> class SearingTotem ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:1> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . FREE , False , MINION_TYPE . TOTEM ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:1> , <NUM_LIT:1> ) <EOL> class StoneclawTotem ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:1> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . FREE , False , MINION_TYPE . TOTEM ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:0> , <NUM_LIT:2> , taunt = True ) <EOL> class WrathOfAirTotem ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:1> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . FREE , False , MINION_TYPE . TOTEM ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:0> , <NUM_LIT:2> , spell_damage = <NUM_LIT:1> ) <EOL> class SpiritWolf ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:2> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . RARE , False ) <EOL> def create_minion ( self , p ) : <EOL> return Minion ( <NUM_LIT:2> , <NUM_LIT:3> , taunt = True ) <EOL> class VitalityTotem ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:2> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . RARE , minion_type = MINION_TYPE . TOTEM ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:0> , <NUM_LIT:3> , effects = [ Effect ( TurnEnded ( ) , ActionTag ( Heal ( <NUM_LIT:4> ) , HeroSelector ( ) ) ) ] ) <EOL> class SiltfinSpiritwalker ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:4> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . EPIC , <EOL> minion_type = MINION_TYPE . MURLOC , overload = <NUM_LIT:1> ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:2> , <NUM_LIT:5> , effects = [ Effect ( MinionDied ( IsType ( MINION_TYPE . MURLOC ) ) , <EOL> ActionTag ( Draw ( ) , PlayerSelector ( ) ) ) ] ) <EOL> class WhirlingZapomatic ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:2> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . COMMON , <EOL> minion_type = MINION_TYPE . MECH ) <EOL> def create_minion ( self , p ) : <EOL> return Minion ( <NUM_LIT:3> , <NUM_LIT:2> , windfury = True ) <EOL> class DunemaulShaman ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:4> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . RARE , overload = <NUM_LIT:1> ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:5> , <NUM_LIT:4> , windfury = True , effects = [ Effect ( Attack ( ) , <EOL> ActionTag ( ChangeTarget ( CharacterSelector ( NotCurrentTarget ( ) , <EOL> EnemyPlayer ( ) , <EOL> RandomPicker ( ) ) ) , <EOL> SelfSelector ( ) , <EOL> And ( OneIn ( <NUM_LIT:2> ) , OpponentMinionCountIsGreaterThan ( <NUM_LIT:0> ) ) ) ) ] ) <EOL> class Neptulon ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:7> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . LEGENDARY , overload = <NUM_LIT:3> , <EOL> battlecry = Battlecry ( AddCard ( CollectionSource ( [ IsType ( MINION_TYPE . MURLOC ) ] ) , <NUM_LIT:4> ) , <EOL> PlayerSelector ( ) ) ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:7> , <NUM_LIT:7> ) <EOL> class FireguardDestroyer ( MinionCard ) : <EOL> def __init__ ( self ) : <EOL> super ( ) . __init__ ( "<STR_LIT>" , <NUM_LIT:4> , CHARACTER_CLASS . SHAMAN , CARD_RARITY . COMMON , overload = <NUM_LIT:1> , <EOL> battlecry = Battlecry ( Give ( Buff ( ChangeAttack ( RandomAmount ( <NUM_LIT:1> , <NUM_LIT:4> ) ) ) ) , SelfSelector ( ) ) ) <EOL> def create_minion ( self , player ) : <EOL> return Minion ( <NUM_LIT:3> , <NUM_LIT:6> ) </s>
