Added StackDescription param to Animate AF and cleaned up Bone Shaman's stack description.

This commit is contained in:
moomarc
2012-06-11 10:56:39 +00:00
parent 9f5f271a9c
commit 1b00682670
2 changed files with 65 additions and 59 deletions

View File

@@ -3,7 +3,7 @@ ManaCost:2 R R
Types:Creature Giant Shaman Types:Creature Giant Shaman
Text:no text Text:no text
PT:3/3 PT:3/3
A:AB$ Animate | Cost$ B | Defined$ Self | staticAbilities$ BoneShamanStatic | SpellDescription$ Until end of turn, CARDNAME gains "Creatures dealt damage by Bone Shaman this turn can't be regenerated this turn." A:AB$ Animate | Cost$ B | Defined$ Self | staticAbilities$ BoneShamanStatic | StackDescription$ CARDNAME gains "Creatures dealt damage by CARDNAME this turn can't be regenerated this turn." | SpellDescription$ Until end of turn, CARDNAME gains "Creatures dealt damage by CARDNAME this turn can't be regenerated this turn."
SVar:BoneShamanStatic:Mode$ Continuous | Affected$ Creature.DamagedBy | AddHiddenKeyword$ HIDDEN CARDNAME can't be regenerated. | Description$ Creatures dealt damage by CARDNAME this turn can't be regenerated this turn. SVar:BoneShamanStatic:Mode$ Continuous | Affected$ Creature.DamagedBy | AddHiddenKeyword$ HIDDEN CARDNAME can't be regenerated. | Description$ Creatures dealt damage by CARDNAME this turn can't be regenerated this turn.
SVar:RemAIDeck:True SVar:RemAIDeck:True
SVar:RemRandomDeck:True SVar:RemRandomDeck:True

View File

@@ -220,73 +220,79 @@ public final class AbilityFactoryAnimate {
sb.append(sa.getSourceCard().getName()).append(" - "); sb.append(sa.getSourceCard().getName()).append(" - ");
} }
final Target tgt = sa.getTarget(); if (params.containsKey("StackDescription")) {
ArrayList<Card> tgts; sb.append(params.get("StackDescription").replaceAll("CARDNAME", host.getName()));
if (tgt != null) {
tgts = tgt.getTargetCards();
} else {
tgts = AbilityFactory.getDefinedCards(sa.getSourceCard(), params.get("Defined"), sa);
} }
else {
for (final Card c : tgts) { final Target tgt = sa.getTarget();
sb.append(c).append(" "); ArrayList<Card> tgts;
} if (tgt != null) {
sb.append("become"); tgts = tgt.getTargetCards();
if (tgts.size() == 1) { } else {
sb.append("s a"); tgts = AbilityFactory.getDefinedCards(sa.getSourceCard(), params.get("Defined"), sa);
} }
// if power is -1, we'll assume it's not just setting toughness
if (power != -1) {
sb.append(" ").append(power).append("/").append(toughness);
}
if (colors.size() > 0) { for (final Card c : tgts) {
sb.append(c).append(" ");
}
sb.append("become");
if (tgts.size() == 1) {
sb.append("s a");
}
// if power is -1, we'll assume it's not just setting toughness
if (power != -1) {
sb.append(" ").append(power).append("/").append(toughness);
}
if (colors.size() > 0) {
sb.append(" ");
}
if (colors.contains("ChosenColor")) {
sb.append("color of that player's choice");
} else {
for (int i = 0; i < colors.size(); i++) {
sb.append(colors.get(i));
if (i < (colors.size() - 1)) {
sb.append(" and ");
}
}
}
sb.append(" "); sb.append(" ");
} if (types.contains("ChosenType")) {
if (colors.contains("ChosenColor")) { sb.append("type of player's choice ");
sb.append("color of that player's choice"); } else {
} else { for (int i = types.size() - 1; i >= 0; i--) {
for (int i = 0; i < colors.size(); i++) { sb.append(types.get(i));
sb.append(colors.get(i)); sb.append(" ");
if (i < (colors.size() - 1)) { }
}
if (keywords.size() > 0) {
sb.append("with ");
}
for (int i = 0; i < keywords.size(); i++) {
sb.append(keywords.get(i));
if (i < (keywords.size() - 1)) {
sb.append(" and "); sb.append(" and ");
} }
} }
} // sb.append(abilities)
sb.append(" "); // sb.append(triggers)
if (types.contains("ChosenType")) { if (!permanent) {
sb.append("type of player's choice "); if (params.containsKey("UntilEndOfCombat")) {
} else { sb.append(" until end of combat.");
for (int i = types.size() - 1; i >= 0; i--) { } else if (params.containsKey("UntilHostLeavesPlay")) {
sb.append(types.get(i)); sb.append(" until ").append(host).append(" leaves the battlefield.");
sb.append(" "); } else if (params.containsKey("UntilYourNextUpkeep")) {
} sb.append(" until your next upkeep.");
} } else if (params.containsKey("UntilControllerNextUntap")) {
if (keywords.size() > 0) { sb.append(" until its controller's next untap step.");
sb.append("with "); } else {
} sb.append(" until end of turn.");
for (int i = 0; i < keywords.size(); i++) { }
sb.append(keywords.get(i));
if (i < (keywords.size() - 1)) {
sb.append(" and ");
}
}
// sb.append(abilities)
// sb.append(triggers)
if (!permanent) {
if (params.containsKey("UntilEndOfCombat")) {
sb.append(" until end of combat.");
} else if (params.containsKey("UntilHostLeavesPlay")) {
sb.append(" until ").append(host).append(" leaves the battlefield.");
} else if (params.containsKey("UntilYourNextUpkeep")) {
sb.append(" until your next upkeep.");
} else if (params.containsKey("UntilControllerNextUntap")) {
sb.append(" until its controller's next untap step.");
} else { } else {
sb.append(" until end of turn."); sb.append(".");
} }
} else {
sb.append(".");
} }
final AbilitySub abSub = sa.getSubAbility(); final AbilitySub abSub = sa.getSubAbility();