def create_minion(self, player): def increase_attack(card): minion.increase_attack(1) minion = Minion(1, 3) player.bind("spell_cast", increase_attack) minion.bind_once("silenced", lambda: player.unbind("spell_cast", increase_attack)) return minion
def create_minion(self, player): def draw_card(): player.draw() minion = Minion(0, 3, MINION_TYPE.TOTEM) player.bind("turn_ended", draw_card) minion.bind_once("silenced", lambda: player.unbind("turn_ended", draw_card)) return minion
def create_minion(self, player): def buff_minion(): minion.increase_health(1) minion.change_attack(1) minion = Minion(2, 4) player.bind("overloaded", buff_minion) minion.bind_once("silenced", lambda: player.unbind("overloaded", buff_minion)) return minion
def create_minion(self, player): def poisonous(amount, target): if type(target) is Minion and not target.dead: target.die(self) minion = Minion(2, 3, MINION_TYPE.BEAST) minion.bind("did_damage", poisonous) minion.bind_once("silenced", lambda: minion.unbind("did_damage", poisonous)) return minion
def create_minion(self, player): def poisonous(amount, target): if type(target) is Minion and not target.dead: target.die(self) minion = Minion(1, 1) minion.stealth = True minion.bind("did_damage", poisonous) minion.bind_once("silenced", lambda: minion.unbind("did_damage", poisonous)) return minion
def create_minion(self, player): def draw_card(): player.draw() minion = Minion(1, 3) player.game.bind("minion_healed", draw_card) minion.bind_once("silenced", lambda: player.game.unbind("minion_healed", draw_card)) return minion
def create_minion(self, player): def silence(): player.heal_multiplier //= 2 player.spell_multiplier //= 2 minion = Minion(7, 7) minion.bind_once("silenced", silence) player.heal_multiplier *= 2 player.spell_multiplier *= 2 return minion
def create_minion(self, player): def attack_equal_to_health(): return minion.health def silence(): minion.calculate_attack = old_calculate minion = Minion(0, 5) old_calculate = minion.calculate_attack minion.calculate_attack = attack_equal_to_health minion.bind_once("silenced", silence) return minion
def create_minion(self, player): class Filter: def __init__(self): self.amount = 1 self.filter = lambda c: c.is_spell() self.min = 0 filter = Filter() minion = Minion(3, 2) minion.bind_once("silence", lambda: player.mana_filters.remove(filter)) minion.bind_once("died", lambda x: player.mana_filters.remove(filter)) player.mana_filters.append(filter) return minion
def create_minion(self, player): def increase_stats(): if len(player.secrets) > 0: minion.change_attack(2) minion.increase_health(2) def silence(): player.unbind("turn_ended", increase_stats) minion = Minion(3, 3) player.bind("turn_ended", increase_stats) minion.bind_once("silenced", silence) return minion
def create_minion(self, player): def heal_damaged_friendly_character(): targets = hsgame.targeting.find_friendly_spell_target(player.game, lambda character: character.health != character.calculate_max_health()) if len(targets) != 0: targets[player.game.random(0, len(targets) - 1)].heal(player.effective_heal_power(3), minion) minion = Minion(0, 5) player.bind("turn_started", heal_damaged_friendly_character) minion.bind_once("silenced", lambda: player.unbind("turn_started", heal_damaged_friendly_character)) return minion
def create_minion(self, player): def silence(): player.heal_does_damage = False # If another Auchenai Soulpriest is alive and not silenced, keep # heal_does_damage as True for m in player.minions: if m.card.name == "Auchenai Soulpriest" and not m.silenced and m is not minion: player.heal_does_damage = True minion = Minion(3, 5) minion.bind_once("silenced", silence) player.heal_does_damage = True return minion
def create_minion(self, player): def reduce_mana(card): def increase_mana(c): c.mana += 1 if card.is_spell(): if card.mana > 0: card.mana -= 1 minion.bind("silence", increase_mana, card) minion.bind("died", lambda x, c: increase_mana(c), card) minion = Minion(3, 2) for hand_card in player.hand: reduce_mana(hand_card) player.bind("card_drawn", reduce_mana) minion.bind_once("silence", lambda: player.unbind("card_drawn", reduce_mana)) minion.bind_once("died", lambda x: player.unbind("card_drawn", reduce_mana)) return minion