- Reflector Mage needs to use LKI for name remembering

This commit is contained in:
Sol
2016-04-27 21:39:08 +00:00
parent e873123a8a
commit fd315ca217
2 changed files with 35 additions and 51 deletions

View File

@@ -168,8 +168,13 @@ public class AbilityUtils {
cards.add(game.getCardState((Card) o));
}
}
}
else if (defined.equals("DirectRemembered")) {
} else if (defined.equals("RememberedLKI")) {
for (final Object o : hostCard.getRemembered()) {
if (o instanceof Card) {
cards.add((Card) o);
}
}
} else if (defined.equals("DirectRemembered")) {
if (!hostCard.hasRemembered()) {
final Card newCard = game.getCardState(hostCard);
for (final Object o : newCard.getRemembered()) {
@@ -184,33 +189,28 @@ public class AbilityUtils {
cards.add((Card) o);
}
}
}
else if (defined.equals("DelayTriggerRemembered")) {
} else if (defined.equals("DelayTriggerRemembered")) {
if (sa.getRootAbility().isTrigger()) {
for (Object o : sa.getRootAbility().getTriggerRemembered()) {
if (o instanceof Card) {
cards.add(game.getCardState((Card) o));
}
}
for (Object o : sa.getRootAbility().getTriggerRemembered()) {
if (o instanceof Card) {
cards.add(game.getCardState((Card) o));
}
}
}
}
else if (defined.equals("FirstRemembered")) {
} else if (defined.equals("FirstRemembered")) {
Object o = Iterables.getFirst(hostCard.getRemembered(), null);
if (o != null && o instanceof Card) {
cards.add(game.getCardState((Card) o));
}
}
else if (defined.equals("Clones")) {
} else if (defined.equals("Clones")) {
for (final Card clone : hostCard.getClones()) {
cards.add(game.getCardState(clone));
}
}
else if (defined.equals("Imprinted")) {
} else if (defined.equals("Imprinted")) {
for (final Card imprint : hostCard.getImprintedCards()) {
cards.add(game.getCardState(imprint));
}
}
else if (defined.startsWith("ThisTurnEntered")) {
} else if (defined.startsWith("ThisTurnEntered")) {
final String[] workingCopy = defined.split("_");
ZoneType destination, origin;
String validFilter;
@@ -226,67 +226,51 @@ public class AbilityUtils {
for (final Card cl : CardUtil.getThisTurnEntered(destination, origin, validFilter, hostCard)) {
cards.add(game.getCardState(cl));
}
}
else if (defined.equals("ChosenCard")) {
} else if (defined.equals("ChosenCard")) {
for (final Card chosen : hostCard.getChosenCards()) {
cards.add(game.getCardState(chosen));
}
}
else if (defined.startsWith("CardUID_")) {
} else if (defined.startsWith("CardUID_")) {
String idString = defined.substring(8);
for (final Card cardByID : game.getCardsInGame()) {
if (cardByID.getId() == Integer.valueOf(idString)) {
cards.add(game.getCardState(cardByID));
}
}
}
else {
} else {
CardCollection list = null;
if (defined.startsWith("SacrificedCards")) {
list = sa.getRootAbility().getPaidList("SacrificedCards");
}
else if (defined.startsWith("Sacrificed")) {
} else if (defined.startsWith("Sacrificed")) {
list = sa.getRootAbility().getPaidList("Sacrificed");
}
else if (defined.startsWith("DiscardedCards")) {
} else if (defined.startsWith("DiscardedCards")) {
list = sa.getRootAbility().getPaidList("DiscardedCards");
}
else if (defined.startsWith("Discarded")) {
} else if (defined.startsWith("Discarded")) {
list = sa.getRootAbility().getPaidList("Discarded");
}
else if (defined.startsWith("ExiledCards")) {
} else if (defined.startsWith("ExiledCards")) {
list = sa.getRootAbility().getPaidList("ExiledCards");
}
else if (defined.startsWith("Exiled")) {
} else if (defined.startsWith("Exiled")) {
list = sa.getRootAbility().getPaidList("Exiled");
}
else if (defined.startsWith("TappedCards")) {
} else if (defined.startsWith("TappedCards")) {
list = sa.getRootAbility().getPaidList("TappedCards");
}
else if (defined.startsWith("Tapped")) {
} else if (defined.startsWith("Tapped")) {
list = sa.getRootAbility().getPaidList("Tapped");
}
else if (defined.startsWith("UntappedCards")) {
} else if (defined.startsWith("UntappedCards")) {
list = sa.getRootAbility().getPaidList("UntappedCards");
}
else if (defined.startsWith("Untapped")) {
} else if (defined.startsWith("Untapped")) {
list = sa.getRootAbility().getPaidList("Untapped");
}
else if (defined.startsWith("Valid ")) {
} else if (defined.startsWith("Valid ")) {
String validDefined = defined.substring("Valid ".length());
list = CardLists.getValidCards(game.getCardsIn(ZoneType.Battlefield), validDefined.split(","), hostCard.getController(), hostCard, sa);
}
else if (defined.startsWith("ValidAll ")) {
} else if (defined.startsWith("ValidAll ")) {
String validDefined = defined.substring("ValidAll ".length());
list = CardLists.getValidCards(game.getCardsInGame(), validDefined.split(","), hostCard.getController(), hostCard, sa);
}
else if (defined.startsWith("Valid")) {
} else if (defined.startsWith("Valid")) {
String[] s = defined.split(" ");
String zone = s[0].substring("Valid".length());
String validDefined = s[1];
list = CardLists.getValidCards(game.getCardsIn(ZoneType.smartValueOf(zone)), validDefined.split(","), hostCard.getController(), hostCard, sa);
}
else {
} else {
return cards;
}

View File

@@ -3,8 +3,8 @@ ManaCost:1 W U
Types:Creature Human Wizard
PT:2/3
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters the battlefield, return target creature an opponent controls to its owner's hand. That creature's owner can't cast spells with the same name as that creature until your next turn.
SVar:TrigChangeZone:DB$ ChangeZone | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Hand | RememberChanged$ True | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered,RememberedOwner | StaticAbilities$ CantCast | Duration$ UntilYourNextTurn | SubAbility$ DBCleanup
SVar:TrigChangeZone:DB$ ChangeZone | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Hand | RememberLKI$ True | SubAbility$ DBEffect
SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedLKI,RememberedOwner | StaticAbilities$ CantCast | Duration$ UntilYourNextTurn | SubAbility$ DBCleanup
SVar:CantCast:Mode$ CantBeCast | ValidCard$ Card.nonLand+sharesNameWith Remembered | Caster$ Player.IsRemembered | EffectZone$ Command | Description$ That creature's owner can't cast spells with the same name as that creature until your next turn.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:PlayMain1:TRUE