new keywords: Whenever CARDNAME blocks a creature, destroy

I've added two keywords:
Whenever CARDNAME blocks a creature, destroy that creature at end of combat:<Restrictions>
Whenever CARDNAME becomes blocked by a creature, destroy that creature at end of combat:<Restrictions>
Restrictions are parsed with isValidCard.
Code:
Whenever CARDNAME blocks a creature, destroy that creature at end of combat:<Restrictions>
Whenever CARDNAME becomes blocked by a creature, destroy that creature at end of combat:<Restrictions>
Restrictions are parsed with isValidCard.
Code:
- Code: Select all
if(b.hasStartOfKeyword("Whenever CARDNAME blocks a creature, destroy that creature at end of combat")) {
int KeywordPosition = b.getKeywordPosition("Whenever CARDNAME blocks a creature, destroy that creature at end of combat");
String parse = b.getKeyword().get(KeywordPosition).toString();
String k[] = parse.split(":");
final String restrictions[] = k[1].split(",");
if(a.isValidCard(restrictions)) {
final Card attacker = a;
final Ability ability = new Ability(b, "0") {
@Override
public void resolve() {
if(AllZone.GameAction.isCardInPlay(attacker)) {
AllZone.GameAction.destroy(attacker);
}
}
};
StringBuilder sb = new StringBuilder();
sb.append(b).append(" - destroy blocked creature.");
ability.setStackDescription(sb.toString());
final Command atEOC = new Command() {
private static final long serialVersionUID = 5854485314766349980L;
public void execute() {
AllZone.Stack.add(ability);
}
};
AllZone.EndOfCombat.addAt(atEOC);
}
}// Whenever CARDNAME blocks a creature, destroy that creature at end of combat
if(a.hasStartOfKeyword("Whenever CARDNAME becomes blocked by a creature, destroy that creature at end of combat")) {
int KeywordPosition = a.getKeywordPosition("Whenever CARDNAME becomes blocked by a creature, destroy that creature at end of combat");
String parse = a.getKeyword().get(KeywordPosition).toString();
String k[] = parse.split(":");
final String restrictions[] = k[1].split(",");
if(b.isValidCard(restrictions)) {
final Card blocker = b;
final Ability ability = new Ability(a, "0") {
@Override
public void resolve() {
AllZone.GameAction.destroy(blocker);
}
};
StringBuilder sb = new StringBuilder();
sb.append(a).append(" - destroy blocking creature.");
ability.setStackDescription(sb.toString());
final Command atEOC = new Command() {
private static final long serialVersionUID = -9077416427198135373L;
public void execute() {
if(AllZone.GameAction.isCardInPlay(blocker)) AllZone.Stack.add(ability);
}
};
AllZone.EndOfCombat.addAt(atEOC);
}
}//Whenever CARDNAME becomes blocked by a creature, destroy that creature at end of combat
- Code: Select all
Name:Abomination
ManaCost:3 B B
Types:Creature Horror
Text:Whenever Abomination blocks or becomes blocked by a green or white creature, destroy that creature at end of combat.
PT:2/6
K:Whenever CARDNAME blocks a creature, destroy that creature at end of combat:Creature.Green,Creature.White
K:Whenever CARDNAME becomes blocked by a creature, destroy that creature at end of combat:Creature.Green,Creature.White
Name:Gorgon Recluse
ManaCost:3 B B
Types:Creature Gorgon
Text:Whenever Gorgon Recluse blocks or becomes blocked by a nonblack creature, destroy that creature at end of combat.
PT:2/4
K:Whenever CARDNAME blocks a creature, destroy that creature at end of combat:Creature.nonBlack
K:Whenever CARDNAME becomes blocked by a creature, destroy that creature at end of combat:Creature.nonBlack
K:Madness:B B