예제 #1
0
 def trigger(self,
             minion: Minion,
             own_board: PlayerBoard,
             opposing_board: PlayerBoard,
             macaw_trigger: Optional[bool] = False):
     Deathrattle.summon_deathrattle_minions(
         own_board=own_board,
         summoning_minion=minion,
         summoned_minion_class=HalfShell,
         triggered_from_macaw=macaw_trigger)
예제 #2
0
 def trigger(self,
             minion: Minion,
             own_board: PlayerBoard,
             opposing_board: PlayerBoard,
             macaw_trigger: Optional[bool] = False):
     Deathrattle.summon_deathrattle_minions(
         own_board=own_board,
         summoning_minion=minion,
         summoned_minion_class=SkyPirate,
         triggered_from_macaw=macaw_trigger,
         should_attack=True)
예제 #3
0
    def trigger(self,
                minion: Minion,
                own_board: PlayerBoard,
                opposing_board: PlayerBoard,
                macaw_trigger: Optional[bool] = False):
        # TODO: Filter out death rattle minions with types not in the game
        not_allowed_minions = ["Ghastcoiler"]
        isSpawnable = lambda x: (len(x.deathrattles) > 0) and (
            x.name not in not_allowed_minions)

        minions_to_summon = 4 if minion.golden else 2
        Deathrattle.summon_random_minions(minion, own_board, minions_to_summon,
                                          isSpawnable, macaw_trigger)
예제 #4
0
 def trigger(self,
             minion: Minion,
             own_board: PlayerBoard,
             opposing_board: PlayerBoard,
             macaw_trigger: Optional[bool] = False):
     # Filter out un purchaseable elementals like curator token, water droplet, and elementals above current tech level
     not_allowed_elementals = ["Amalgam", "Water Droplet", "Gentle Djinni"]
     isSpawnable = lambda x: (MinionType.Elemental in x.types) and (
         x.name not in not_allowed_elementals)
     elementals_to_summon = 2 if minion.golden else 1
     # Golden genie summons two distinct random elementals
     Deathrattle.summon_random_minions(minion, own_board,
                                       elementals_to_summon, isSpawnable,
                                       macaw_trigger)
     for _ in range(elementals_to_summon):
         own_board.call_triggers(TriggerType.ON_CARD_PUT_IN_HAND, own_board)
예제 #5
0
 def trigger(self,
             minion: Minion,
             own_board: PlayerBoard,
             opposing_board: PlayerBoard,
             macaw_trigger: Optional[bool] = False):
     mechs_to_summon = min(len(own_board.dead_friendly_mechs),
                           4 if minion.golden else 2)
     for i in range(mechs_to_summon):
         mech_type = own_board.dead_friendly_mechs[i].__class__
         mech_golden = own_board.dead_friendly_mechs[i].golden
         Deathrattle.summon_deathrattle_minions(
             own_board,
             minion,
             mech_type,
             mech_golden,
             triggered_from_macaw=macaw_trigger)
예제 #6
0
 def trigger(self,
             minion: Minion,
             own_board: PlayerBoard,
             opposing_board: PlayerBoard,
             macaw_trigger: Optional[bool] = False):
     for i in range(6):
         summoned_bot = Deathrattle.summon_deathrattle_minions(
             own_board=own_board,
             summoning_minion=minion,
             summoned_minion_class=Microbot,
             minions_to_spawn=1,
             triggered_from_macaw=macaw_trigger)
         if not summoned_bot:
             buff_amount = (6 - i) * (2 if minion.golden else 1)
             for friendly_mech in [
                     x for x in own_board.minions
                     if MinionType.Mech in x.types
             ]:
                 friendly_mech.add_stats(buff_amount, buff_amount)
             break