Example #1
0
def vigilance():
    keyword = "vigilance"
    def setAttacking(self):
        self.setCombat(True)
        self.attacking = True
        self.send(AttackerDeclaredEvent())
        return False
    return CardStaticAbility(effects=override_effect("setAttacking", setAttacking), keyword=keyword)
Example #2
0
def horsemanship():
    keyword = "horsemanship"
    return CardStaticAbility(effects=override_effect("canBeBlockedBy", lambda self, blocker: keyword in blocker.abilities), keyword=keyword)
Example #3
0
def shroud():
    keyword = "shroud"
    def canBeTargetedBy(self, targetter): return False
    return CardStaticAbility(effects=override_effect("canBeTargetedBy", canBeTargetedBy), keyword=keyword)
Example #4
0
def defender():
    keyword = "defender"
    def canAttack(self): return False
    return CardStaticAbility(effects=override_effect("canAttack", canAttack), keyword=keyword)
Example #5
0
def haste():
    keyword = "haste"
    def continuouslyOnBattlefield(self): return True
    return CardStaticAbility(effects=override_effect("continuouslyOnBattlefield", continuouslyOnBattlefield), keyword=keyword)
Example #6
0
def flying():
    keyword = "flying"
    def canBeBlockedBy(self, blocker):
        return ("flying" in blocker.abilities or "reach" in blocker.abilities)
    return CardStaticAbility(effects=override_effect("canBeBlockedBy", canBeBlockedBy), keyword=keyword)
Example #7
0
def landwalk(condition, keyword):
    def canBeBlocked(self):
        if isPlayer(self.opponent): other_battlefield = self.opponent.battlefield
        else: other_battlefield = self.opponent.controller.battlefield # planeswalker
        return len(other_battlefield.get(isLand.with_condition(condition))) == 0
    return CardStaticAbility(effects=override_effect("canBeBlocked", canBeBlocked), keyword=keyword)
Example #8
0
def this_card_can_only_block(keyword):
    def canBlockAttacker(self, attacker):
        return keyword in attacker.abilities
    return CardStaticAbility(effects=override_effect("canBlockAttacker", canBlockAttacker), txt="~ can only block creatures with %s."%keyword)
Example #9
0
def this_card_cant_block():
    def canBlock(self):
        return False
    return CardStaticAbility(effects=override_effect("canBlock", canBlock), txt="~ can't block.")
Example #10
0
def this_card_must_attack():
    def checkAttack(self, attackers, not_attacking):
        return self in attackers or not self.canAttack()
    return CardStaticAbility(effects=override_effect("checkAttack", checkAttack), txt="~ must attack each turn if able.")
Example #11
0
def fear():
    keyword = "fear"
    def canBeBlockedBy(self, blocker):
        return (blocker.color == Black or (blocker.types == Artifact and blocker.types == Creature))
    return CardStaticAbility(effects=override_effect("canBeBlockedBy", canBeBlockedBy), keyword=keyword)
Example #12
0
def intimidate():
    keyword = "intimidate"
    def canBeBlockedBy(self, blocker):
        return (any([blocker.color == color for color in self.color]) or (blocker.types == Artifact and blocker.types == Creature))
    return CardStaticAbility(effects=override_effect("canBeBlockedBy", canBeBlockedBy), keyword=keyword)
Example #13
0
def this_card_doesnt_untap():
    return CardStaticAbility(effects=override_effect("canUntapDuringUntapStep", lambda self: False), txt="~ doesn't untap during your untap step.")
Example #14
0
def doesntUntapAbility(txt):
    return CardStaticAbility(effects=override_effect("canUntapDuringUntapStep", lambda self: False), txt=txt)
Example #15
0
def hexproof():
    keyword = "hexproof"
    def canBeTargetedBy(self, targetter): return not targetter.controller in self.controller.opponents
    return CardStaticAbility(effects=override_effect("canBeTargetedBy", canBeTargetedBy), keyword=keyword)