Exemple #1
0
    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
Exemple #2
0
 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)
Exemple #3
0
 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)
Exemple #4
0
    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)
Exemple #5
0
 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
Exemple #6
0
 def play_from_graveyard(self):
     if self.controller.you_may("Play %s using retrace" % self):
         override(self, "modifyNewRole", modifyNewRole)
         return True
     else:
         return False
Exemple #7
0
 def modifyNewRole(self, new, zone):
     if str(zone) == "stack":
         override(new, "_get_additional_costs",
                  lambda self: DiscardCost(cardtype=isLandCard))
Exemple #8
0
 def play_from_graveyard(self):
     if self.controller.you_may("Play %s using retrace"%self):
         override(self, "modifyNewRole", modifyNewRole)
         return True
     else: return False
Exemple #9
0
 def modifyNewRole(self, new, zone):
     if str(zone) == "stack":
         override(new, "_get_additional_costs", lambda self: DiscardCost(cardtype=isLandCard))