def play_from_exile(source, controller): yield NoTarget() if controller.you_may("cast %s for %s rather than its mana cost" % (source.name, cost)): def modifyNewRole(self, new, zone): if str(zone) == "stack": new.set_casting_cost(cost) override(source, "modifyNewRole", modifyNewRole) if not source._playable_other_restrictions(): if not source.play(controller): source.move_to("graveyard") else: source.move_to("graveyard") yield
def retrace_effects(card): def modifyNewRole(self, new, zone): if str(zone) == "stack": override(new, "_get_additional_costs", lambda self: DiscardCost(cardtype=isLandCard)) def play_from_graveyard(self): if self.controller.you_may("Play %s using retrace"%self): override(self, "modifyNewRole", modifyNewRole) return True else: return False yield override(card, "_playable_zone", play_from_graveyard)
def flashback_effects(card): def modifyNewRole(self, new, zone): if str(zone) == "stack": new.set_casting_cost(cost) def play_from_graveyard(self): if self.controller.you_may("Play %s with flashback for %s"%(self, cost)): override(self, "modifyNewRole", modifyNewRole) return True else: return False yield override(card, "_playable_zone", play_from_graveyard)
def retrace_effects(card): def modifyNewRole(self, new, zone): if str(zone) == "stack": override(new, "_get_additional_costs", lambda self: DiscardCost(cardtype=isLandCard)) def play_from_graveyard(self): if self.controller.you_may("Play %s using retrace" % self): override(self, "modifyNewRole", modifyNewRole) return True else: return False yield override(card, "_playable_zone", play_from_graveyard)
def play_from_graveyard(self): if self.controller.you_may("Play %s with flashback for %s"%(self, cost)): override(self, "modifyNewRole", modifyNewRole) return True else: return False
def play_from_graveyard(self): if self.controller.you_may("Play %s using retrace" % self): override(self, "modifyNewRole", modifyNewRole) return True else: return False
def modifyNewRole(self, new, zone): if str(zone) == "stack": override(new, "_get_additional_costs", lambda self: DiscardCost(cardtype=isLandCard))
def play_from_graveyard(self): if self.controller.you_may("Play %s using retrace"%self): override(self, "modifyNewRole", modifyNewRole) return True else: return False