diff --git a/.gitattributes b/.gitattributes index 9d0839e5e4a..cd79d3ff66c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1204,6 +1204,7 @@ res/cardsfolder/b/boros_swiftblade.txt svneol=native#text/plain res/cardsfolder/b/borrowing_100000_arrows.txt svneol=native#text/plain res/cardsfolder/b/borrowing_the_east_wind.txt svneol=native#text/plain res/cardsfolder/b/bosh_iron_golem.txt svneol=native#text/plain +res/cardsfolder/b/bosh_iron_golem_avatar.txt -text res/cardsfolder/b/bosk_banneret.txt svneol=native#text/plain res/cardsfolder/b/bottle_gnomes.txt svneol=native#text/plain res/cardsfolder/b/bottle_of_suleiman.txt svneol=native#text/plain diff --git a/res/cardsfolder/b/bosh_iron_golem_avatar.txt b/res/cardsfolder/b/bosh_iron_golem_avatar.txt new file mode 100644 index 00000000000..42574e9d401 --- /dev/null +++ b/res/cardsfolder/b/bosh_iron_golem_avatar.txt @@ -0,0 +1,10 @@ +Name:Bosh, Iron Golem Avatar +ManaCost:no cost +Types:Vanguard +HandLifeModifier:+0/-2 +A:AB$ DealDamage | ActivationZone$ Command | Announce$ X | Cost$ X Sac<1/Artifact.cmcEQX/artifact with converted mana cost X> | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ X | References$ X | SpellDescription$ CARDNAME deals X damage to target creature or player. +SVar:X:Count$xPaid +SVar:Rarity:Special +SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/bosh_iron_golem_avatar.jpg +SetInfo:VAN|Special|http://magiccards.info/extras/other/vanguard-mtgo/bosh-iron-golem.jpg +Oracle:Hand +0, life -2\n{X}, Sacrifice an artifact with converted mana cost X: Bosh, Iron Golem Avatar deals X damage to target creature or player. \ No newline at end of file diff --git a/src/main/java/forge/card/ability/effects/AnimateEffect.java b/src/main/java/forge/card/ability/effects/AnimateEffect.java index d7225a4a407..6617731251f 100644 --- a/src/main/java/forge/card/ability/effects/AnimateEffect.java +++ b/src/main/java/forge/card/ability/effects/AnimateEffect.java @@ -328,7 +328,7 @@ public class AnimateEffect extends AnimateEffectBase { } sb.append("become"); if (tgts.size() == 1) { - sb.append("s a"); + sb.append("s "); } // if power is -1, we'll assume it's not just setting toughness if (power != -1) { diff --git a/src/main/java/forge/card/cost/CostSacrifice.java b/src/main/java/forge/card/cost/CostSacrifice.java index daffbf85781..d3df4a05ba9 100644 --- a/src/main/java/forge/card/cost/CostSacrifice.java +++ b/src/main/java/forge/card/cost/CostSacrifice.java @@ -92,16 +92,18 @@ public class CostSacrifice extends CostPartWithList { public final boolean canPay(final SpellAbility ability, final Card source, final Player activator, final Cost cost, final GameState game) { // You can always sac all if (!this.isTargetingThis()) { + // If the sacrificed type is dependant on an annoucement, can't necesarily rule out the CanPlay call + boolean needsAnnoucement = ability.hasParam("Announce") && this.getType().contains(ability.getParam("Announce")); + List typeList = new ArrayList(activator.getCardsIn(ZoneType.Battlefield)); typeList = CardLists.getValidCards(typeList, this.getType().split(";"), activator, source); - final Integer amount = this.convertAmount(); if (activator.hasKeyword("You can't sacrifice creatures to cast spells or activate abilities.")) { typeList = CardLists.getNotType(typeList, "Creature"); } - if ((amount != null) && (typeList.size() < amount)) { + if (!needsAnnoucement && (amount != null) && (typeList.size() < amount)) { return false; }