- Added Cut the Tethers

This commit is contained in:
swordshine
2013-04-02 05:29:40 +00:00
parent aa46a48888
commit d83b6b7e66
3 changed files with 22 additions and 1 deletions

1
.gitattributes vendored
View File

@@ -2243,6 +2243,7 @@ res/cardsfolder/c/cursed_totem.txt svneol=native#text/plain
res/cardsfolder/c/custody_battle.txt -text svneol=unset#text/plain res/cardsfolder/c/custody_battle.txt -text svneol=unset#text/plain
res/cardsfolder/c/customs_depot.txt svneol=native#text/plain res/cardsfolder/c/customs_depot.txt svneol=native#text/plain
res/cardsfolder/c/cut_the_earthly_bond.txt svneol=native#text/plain res/cardsfolder/c/cut_the_earthly_bond.txt svneol=native#text/plain
res/cardsfolder/c/cut_the_tethers.txt -text
res/cardsfolder/c/cutthroat_il_dal.txt svneol=native#text/plain res/cardsfolder/c/cutthroat_il_dal.txt svneol=native#text/plain
res/cardsfolder/c/cyclical_evolution.txt svneol=native#text/plain res/cardsfolder/c/cyclical_evolution.txt svneol=native#text/plain
res/cardsfolder/c/cyclonic_rift.txt -text res/cardsfolder/c/cyclonic_rift.txt -text

View File

@@ -0,0 +1,8 @@
Name:Cut the Tethers
ManaCost:2 U U
Types:Sorcery
A:SP$ RepeatEach | Cost$ 2 U U | RepeatSubAbility$ DBReturn | RepeatCards$ Creature.Spirit | SpellDescription$ For each Spirit, return it to its owner's hand unless that player pays 3.
SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Battlefield | Destination$ Hand | UnlessCost$ 3 | UnlessPayer$ RememberedController
SVar:Picture:http://www.wizards.com.sixxs.org/global/images/magic/general/cut_the_tethers.jpg
Oracle:For each Spirit, return it to its owner's hand unless that player pays {3}.
SetInfo:CHK Uncommon

View File

@@ -405,6 +405,16 @@ public final class GameActionUtil {
// Only human player pays this way // Only human player pays this way
final Player p = ability.getActivatingPlayer(); final Player p = ability.getActivatingPlayer();
final Card source = ability.getSourceCard(); final Card source = ability.getSourceCard();
Card current = null; // Used in spells with RepeatEach effect to distinguish cards, Cut the Tethers
if (!source.getRemembered().isEmpty() && source.isSpell()) {
if (source.getRemembered().get(0) instanceof Card) {
current = (Card) source.getRemembered().get(0);
}
}
if (!source.getImprinted().isEmpty() && source.isSpell()) {
current = source.getImprinted().get(0);
}
final List<CostPart> parts = cost.getCostParts(); final List<CostPart> parts = cost.getCostParts();
ArrayList<CostPart> remainingParts = new ArrayList<CostPart>(cost.getCostParts()); ArrayList<CostPart> remainingParts = new ArrayList<CostPart>(cost.getCostParts());
CostPart costPart = null; CostPart costPart = null;
@@ -554,7 +564,9 @@ public final class GameActionUtil {
if (!(costPart instanceof CostPartMana )) if (!(costPart instanceof CostPartMana ))
throw new RuntimeException("GameActionUtil.payCostDuringAbilityResolve - The remaining payment type is not Mana."); throw new RuntimeException("GameActionUtil.payCostDuringAbilityResolve - The remaining payment type is not Mana.");
InputPayment toSet = new InputPayManaExecuteCommands(p, source + "\r\n", ability.getManaCost()); InputPayment toSet = current == null
? new InputPayManaExecuteCommands(p, source + "\r\n", ability.getManaCost())
: new InputPayManaExecuteCommands(p, source + "\r\n" + "Current Card: " + current + "\r\n" , ability.getManaCost());
FThreads.setInputAndWait(toSet); FThreads.setInputAndWait(toSet);
return toSet.isPaid(); return toSet.isPaid();
} }