- Added Scythe Specter

This commit is contained in:
swordshine
2013-03-16 06:41:02 +00:00
parent 12098550d7
commit d48f0a9184
5 changed files with 47 additions and 2 deletions

1
.gitattributes vendored
View File

@@ -9122,6 +9122,7 @@ res/cardsfolder/s/scuttling_death.txt svneol=native#text/plain
res/cardsfolder/s/scuzzback_marauders.txt svneol=native#text/plain
res/cardsfolder/s/scuzzback_scrapper.txt svneol=native#text/plain
res/cardsfolder/s/scythe_of_the_wretched.txt -text
res/cardsfolder/s/scythe_specter.txt -text
res/cardsfolder/s/scythe_tiger.txt -text
res/cardsfolder/s/sea_drake.txt svneol=native#text/plain
res/cardsfolder/s/sea_eagle.txt svneol=native#text/plain

View File

@@ -0,0 +1,14 @@
Name:Scythe Specter
ManaCost:4 B B
Types:Creature Specter
PT:4/4
K:Flying
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDiscard | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, each opponent discards a card. Each player who discarded a card with the highest converted mana cost among cards discarded this way loses life equal to that converted mana cost.
SVar:TrigDiscard:AB$ Discard | Cost$ 0 | Mode$ TgtChoose | NumCards$ 1 | Defined$ Player.Opponent | RememberDiscarded$ True | SubAbility$ DBRepeatLoseLife
SVar:DBRepeatLoseLife:DB$ RepeatEach | UseImprinted$ True | RepeatCards$ Card.greatestRememberedCMC | Zone$ Battlefield,Graveyard,Exile,Library,Hand | RepeatSubAbility$ DBLoseLife | SubAbility$ DBCleanup
SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ X | References$ X | Defined$ ImprintedController
SVar:X:Imprinted$CardManaCost
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:Picture:http://www.wizards.com/global/images/magic/general/scythe_specter.jpg
Oracle:Flying\nWhenever Scythe Specter deals combat damage to a player, each opponent discards a card. Each player who discarded a card with the highest converted mana cost among cards discarded this way loses life equal to that converted mana cost.
SetInfo:COM Rare

View File

@@ -7102,6 +7102,27 @@ public class Card extends GameEntity implements Comparable<Card> {
}
}
}
} else if (property.startsWith("greatestRememberedCMC")) {
final List<Card> list = new ArrayList<Card>();
for (final Object o : source.getRemembered()) {
if (o instanceof Card) {
list.add(Singletons.getModel().getGame().getCardState((Card) o));
}
}
if (!list.contains(this)) {
return false;
}
for (final Card crd : list) {
if (crd.getRules() != null && crd.getRules().getSplitType() == CardSplitType.Split) {
if (crd.getCMC(Card.SplitCMCMode.LeftSplitCMC) > this.getCMC() || crd.getCMC(Card.SplitCMCMode.RightSplitCMC) > this.getCMC()) {
return false;
}
} else {
if (crd.getCMC() > this.getCMC()) {
return false;
}
}
}
} else if (property.startsWith("lowestCMC")) {
final List<Card> list = Singletons.getModel().getGame().getCardsIn(ZoneType.Battlefield);
for (final Card crd : list) {

View File

@@ -731,6 +731,10 @@ public class AbilityUtils {
players.add(((Card) rem).getController());
}
}
} else if (defined.equals("ImprintedController")) {
for (final Card rem : card.getImprinted()) {
players.add(rem.getController());
}
} else if (defined.startsWith("Triggered")) {
final SpellAbility root = sa.getRootAbility();
Object o = null;

View File

@@ -1,5 +1,6 @@
package forge.card.ability.effects;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -39,8 +40,12 @@ public class RepeatEachEffect extends SpellAbilityEffect {
List<Card> repeatCards = null;
if (sa.hasParam("RepeatCards")) {
ZoneType zone = sa.hasParam("Zone") ? ZoneType.smartValueOf(sa.getParam("Zone")) : ZoneType.Battlefield;
List<ZoneType> zone = new ArrayList<ZoneType>();
if (sa.hasParam("Zone")) {
zone = ZoneType.listValueOf(sa.getParam("Zone"));
} else {
zone.add(ZoneType.Battlefield);
}
repeatCards = CardLists.getValidCards(game.getCardsIn(zone),
sa.getParam("RepeatCards"), source.getController(), source);
loopOverCards = true;