mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 20:58:03 +00:00
ChangeZoneEffect: Don't modify tapped when replaced
This commit is contained in:
committed by
Michael Kamensky
parent
bb6c5f8e44
commit
32240b6004
@@ -344,6 +344,7 @@ public class GameAction {
|
|||||||
c.updateStateForView();
|
c.updateStateForView();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -373,7 +374,7 @@ public class GameAction {
|
|||||||
if (saTargeting != null) {
|
if (saTargeting != null) {
|
||||||
saTargeting.getTargets().replaceTargetCard(c, cards);
|
saTargeting.getTargets().replaceTargetCard(c, cards);
|
||||||
}
|
}
|
||||||
// Replace host rememberd cards
|
// Replace host remembered cards
|
||||||
// But not replace RememberLKI, since it wants to refer to the last known info.
|
// But not replace RememberLKI, since it wants to refer to the last known info.
|
||||||
Card hostCard = cause.getHostCard();
|
Card hostCard = cause.getHostCard();
|
||||||
if (!cause.hasParam("RememberLKI") && hostCard.isRemembered(c)) {
|
if (!cause.hasParam("RememberLKI") && hostCard.isRemembered(c)) {
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public class AnimateEffect extends AnimateEffectBase {
|
|||||||
|
|
||||||
//if host is not on the battlefield don't apply
|
//if host is not on the battlefield don't apply
|
||||||
if (("UntilHostLeavesPlay".equals(sa.getParam("Duration")) || "UntilLoseControlOfHost".equals(sa.getParam("Duration")))
|
if (("UntilHostLeavesPlay".equals(sa.getParam("Duration")) || "UntilLoseControlOfHost".equals(sa.getParam("Duration")))
|
||||||
&& !sa.getHostCard().isInPlay()) {
|
&& !source.isInPlay()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ public class AssignGroupEffect extends SpellAbilityEffect {
|
|||||||
Player chooser = sa.getActivatingPlayer();
|
Player chooser = sa.getActivatingPlayer();
|
||||||
if (sa.hasParam("Chooser")) {
|
if (sa.hasParam("Chooser")) {
|
||||||
final String choose = sa.getParam("Chooser");
|
final String choose = sa.getParam("Chooser");
|
||||||
chooser = AbilityUtils.getDefinedPlayers(sa.getHostCard(), choose, sa).get(0);
|
chooser = AbilityUtils.getDefinedPlayers(host, choose, sa).get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
Multimap<SpellAbility, GameObject> result = ArrayListMultimap.create();
|
Multimap<SpellAbility, GameObject> result = ArrayListMultimap.create();
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class BlockEffect extends SpellAbilityEffect {
|
|||||||
|
|
||||||
List<Card> attackers = new ArrayList<>();
|
List<Card> attackers = new ArrayList<>();
|
||||||
if (sa.hasParam("DefinedAttacker")) {
|
if (sa.hasParam("DefinedAttacker")) {
|
||||||
for (final Card attacker : AbilityUtils.getDefinedCards(sa.getHostCard(), sa.getParam("DefinedAttacker"), sa)) {
|
for (final Card attacker : AbilityUtils.getDefinedCards(host, sa.getParam("DefinedAttacker"), sa)) {
|
||||||
if (combat.isAttacking(attacker))
|
if (combat.isAttacking(attacker))
|
||||||
attackers.add(attacker);
|
attackers.add(attacker);
|
||||||
}
|
}
|
||||||
@@ -37,7 +37,7 @@ public class BlockEffect extends SpellAbilityEffect {
|
|||||||
|
|
||||||
List<Card> blockers = new ArrayList<>();
|
List<Card> blockers = new ArrayList<>();
|
||||||
if (sa.hasParam("DefinedBlocker")) {
|
if (sa.hasParam("DefinedBlocker")) {
|
||||||
for (final Card blocker : AbilityUtils.getDefinedCards(sa.getHostCard(), sa.getParam("DefinedBlocker"), sa)) {
|
for (final Card blocker : AbilityUtils.getDefinedCards(host, sa.getParam("DefinedBlocker"), sa)) {
|
||||||
if (blocker.isCreature() && blocker.isInZone(ZoneType.Battlefield))
|
if (blocker.isCreature() && blocker.isInZone(ZoneType.Battlefield))
|
||||||
blockers.add(blocker);
|
blockers.add(blocker);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,8 +42,10 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void resolve(SpellAbility sa) {
|
public void resolve(SpellAbility sa) {
|
||||||
|
final Card source = sa.getHostCard();
|
||||||
|
|
||||||
//if host is not on the battlefield don't apply
|
//if host is not on the battlefield don't apply
|
||||||
if ("UntilHostLeavesPlay".equals(sa.getParam("Duration")) && !sa.getHostCard().isInPlay()) {
|
if ("UntilHostLeavesPlay".equals(sa.getParam("Duration")) && !source.isInPlay()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,7 +55,6 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect {
|
|||||||
CardCollection cards;
|
CardCollection cards;
|
||||||
List<Player> tgtPlayers = getTargetPlayers(sa);
|
List<Player> tgtPlayers = getTargetPlayers(sa);
|
||||||
final Game game = sa.getActivatingPlayer().getGame();
|
final Game game = sa.getActivatingPlayer().getGame();
|
||||||
final Card source = sa.getHostCard();
|
|
||||||
|
|
||||||
if ((!sa.usesTargeting() && !sa.hasParam("Defined")) || sa.hasParam("UseAllOriginZones")) {
|
if ((!sa.usesTargeting() && !sa.hasParam("Defined")) || sa.hasParam("UseAllOriginZones")) {
|
||||||
cards = new CardCollection(game.getCardsIn(origin));
|
cards = new CardCollection(game.getCardsIn(origin));
|
||||||
@@ -122,7 +123,7 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (sa.hasParam("ForgetOtherRemembered")) {
|
if (sa.hasParam("ForgetOtherRemembered")) {
|
||||||
sa.getHostCard().clearRemembered();
|
source.clearRemembered();
|
||||||
}
|
}
|
||||||
|
|
||||||
final String remember = sa.getParam("RememberChanged");
|
final String remember = sa.getParam("RememberChanged");
|
||||||
@@ -203,9 +204,6 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect {
|
|||||||
if (sa.hasParam("ExileFaceDown")) {
|
if (sa.hasParam("ExileFaceDown")) {
|
||||||
movedCard.turnFaceDown(true);
|
movedCard.turnFaceDown(true);
|
||||||
}
|
}
|
||||||
if (sa.hasParam("Tapped")) {
|
|
||||||
movedCard.setTapped(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (remember != null) {
|
if (remember != null) {
|
||||||
|
|||||||
@@ -97,13 +97,13 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
// Player whose cards will change zones
|
// Player whose cards will change zones
|
||||||
List<Player> fetchers = null;
|
List<Player> fetchers = null;
|
||||||
if (sa.hasParam("DefinedPlayer")) {
|
if (sa.hasParam("DefinedPlayer")) {
|
||||||
fetchers = AbilityUtils.getDefinedPlayers(sa.getHostCard(), sa.getParam("DefinedPlayer"), sa);
|
fetchers = AbilityUtils.getDefinedPlayers(host, sa.getParam("DefinedPlayer"), sa);
|
||||||
}
|
}
|
||||||
if (fetchers == null && sa.hasParam("ValidTgts") && sa.usesTargeting()) {
|
if (fetchers == null && sa.hasParam("ValidTgts") && sa.usesTargeting()) {
|
||||||
fetchers = Lists.newArrayList(sa.getTargets().getTargetPlayers());
|
fetchers = Lists.newArrayList(sa.getTargets().getTargetPlayers());
|
||||||
}
|
}
|
||||||
if (fetchers == null) {
|
if (fetchers == null) {
|
||||||
fetchers = Lists.newArrayList(sa.getHostCard().getController());
|
fetchers = Lists.newArrayList(host.getController());
|
||||||
}
|
}
|
||||||
|
|
||||||
final String fetcherNames = Lang.joinHomogenous(fetchers, Player.Accessors.FN_GET_NAME);
|
final String fetcherNames = Lang.joinHomogenous(fetchers, Player.Accessors.FN_GET_NAME);
|
||||||
@@ -111,7 +111,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
// Player who chooses the cards to move
|
// Player who chooses the cards to move
|
||||||
List<Player> choosers = Lists.newArrayList();
|
List<Player> choosers = Lists.newArrayList();
|
||||||
if (sa.hasParam("Chooser")) {
|
if (sa.hasParam("Chooser")) {
|
||||||
choosers = AbilityUtils.getDefinedPlayers(sa.getHostCard(), sa.getParam("Chooser"), sa);
|
choosers = AbilityUtils.getDefinedPlayers(host, sa.getParam("Chooser"), sa);
|
||||||
}
|
}
|
||||||
if (choosers.isEmpty()) {
|
if (choosers.isEmpty()) {
|
||||||
choosers.add(sa.getActivatingPlayer());
|
choosers.add(sa.getActivatingPlayer());
|
||||||
@@ -502,7 +502,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
|
|
||||||
Player chooser = player;
|
Player chooser = player;
|
||||||
if (sa.hasParam("Chooser")) {
|
if (sa.hasParam("Chooser")) {
|
||||||
chooser = AbilityUtils.getDefinedPlayers(sa.getHostCard(), sa.getParam("Chooser"), sa).get(0);
|
chooser = AbilityUtils.getDefinedPlayers(hostCard, sa.getParam("Chooser"), sa).get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (final Card tgtC : tgtCards) {
|
for (final Card tgtC : tgtCards) {
|
||||||
@@ -636,8 +636,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
hostCard.removeRemembered(gameCard);
|
hostCard.removeRemembered(gameCard);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Auras without Candidates stay in their current
|
// Auras without Candidates stay in their current location
|
||||||
// location
|
|
||||||
if (gameCard.isAura()) {
|
if (gameCard.isAura()) {
|
||||||
final SpellAbility saAura = gameCard.getFirstAttachSpell();
|
final SpellAbility saAura = gameCard.getFirstAttachSpell();
|
||||||
if (saAura != null) {
|
if (saAura != null) {
|
||||||
@@ -679,12 +678,6 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
game.getCombat().getBandOfAttacker(movedCard).setBlocked(false);
|
game.getCombat().getBandOfAttacker(movedCard).setBlocked(false);
|
||||||
combatChanged = true;
|
combatChanged = true;
|
||||||
}
|
}
|
||||||
if (sa.hasParam("Tapped") || sa.hasParam("Ninjutsu")) {
|
|
||||||
movedCard.setTapped(true);
|
|
||||||
}
|
|
||||||
if (sa.hasParam("Untapped")) {
|
|
||||||
movedCard.setTapped(false);
|
|
||||||
}
|
|
||||||
movedCard.setTimestamp(ts);
|
movedCard.setTimestamp(ts);
|
||||||
} else {
|
} else {
|
||||||
// might set before card is moved only for nontoken
|
// might set before card is moved only for nontoken
|
||||||
@@ -812,7 +805,6 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
triggerList.triggerChangesZoneAll(game, sa);
|
triggerList.triggerChangesZoneAll(game, sa);
|
||||||
counterTable.triggerCountersPutAll(game);
|
counterTable.triggerCountersPutAll(game);
|
||||||
|
|
||||||
|
|
||||||
if (sa.hasParam("AtEOT") && !triggerList.isEmpty()) {
|
if (sa.hasParam("AtEOT") && !triggerList.isEmpty()) {
|
||||||
registerDelayedTrigger(sa, sa.getParam("AtEOT"), triggerList.allCards());
|
registerDelayedTrigger(sa, sa.getParam("AtEOT"), triggerList.allCards());
|
||||||
}
|
}
|
||||||
@@ -1292,11 +1284,6 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
setFaceDownState(c, sa);
|
setFaceDownState(c, sa);
|
||||||
}
|
}
|
||||||
movedCard = game.getAction().moveToPlay(c, c.getController(), sa, moveParams);
|
movedCard = game.getAction().moveToPlay(c, c.getController(), sa, moveParams);
|
||||||
if (sa.hasParam("Tapped")) {
|
|
||||||
movedCard.setTapped(true);
|
|
||||||
} else if (sa.hasParam("Untapped")) {
|
|
||||||
c.setTapped(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
movedCard.setTimestamp(ts);
|
movedCard.setTimestamp(ts);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ public class ChoosePlayerEffect extends SpellAbilityEffect {
|
|||||||
final TargetRestrictions tgt = sa.getTargetRestrictions();
|
final TargetRestrictions tgt = sa.getTargetRestrictions();
|
||||||
|
|
||||||
final FCollectionView<Player> choices = sa.hasParam("Choices") ? AbilityUtils.getDefinedPlayers(
|
final FCollectionView<Player> choices = sa.hasParam("Choices") ? AbilityUtils.getDefinedPlayers(
|
||||||
sa.getHostCard(), sa.getParam("Choices"), sa) : sa.getActivatingPlayer().getGame().getPlayersInTurnOrder();
|
card, sa.getParam("Choices"), sa) : sa.getActivatingPlayer().getGame().getPlayersInTurnOrder();
|
||||||
|
|
||||||
final String choiceDesc = sa.hasParam("ChoiceTitle") ? sa.getParam("ChoiceTitle") : Localizer.getInstance().getMessage("lblChoosePlayer");
|
final String choiceDesc = sa.hasParam("ChoiceTitle") ? sa.getParam("ChoiceTitle") : Localizer.getInstance().getMessage("lblChoosePlayer");
|
||||||
final boolean random = sa.hasParam("Random");
|
final boolean random = sa.hasParam("Random");
|
||||||
|
|||||||
@@ -51,11 +51,11 @@ public class ClashEffect extends SpellAbilityEffect {
|
|||||||
final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
|
final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
|
||||||
runParams.put(AbilityKey.Player, player);
|
runParams.put(AbilityKey.Player, player);
|
||||||
runParams.put(AbilityKey.Won, player.equals(winner) ? "True" : "False");
|
runParams.put(AbilityKey.Won, player.equals(winner) ? "True" : "False");
|
||||||
sa.getHostCard().getGame().getTriggerHandler().runTrigger(TriggerType.Clashed, runParams, false);
|
source.getGame().getTriggerHandler().runTrigger(TriggerType.Clashed, runParams, false);
|
||||||
final Map<AbilityKey, Object> runParams2 = AbilityKey.newMap();
|
final Map<AbilityKey, Object> runParams2 = AbilityKey.newMap();
|
||||||
runParams2.put(AbilityKey.Player, opponent);
|
runParams2.put(AbilityKey.Player, opponent);
|
||||||
runParams2.put(AbilityKey.Won, opponent.equals(winner) ? "True" : "False");
|
runParams2.put(AbilityKey.Won, opponent.equals(winner) ? "True" : "False");
|
||||||
sa.getHostCard().getGame().getTriggerHandler().runTrigger(TriggerType.Clashed, runParams2, false);
|
source.getGame().getTriggerHandler().runTrigger(TriggerType.Clashed, runParams2, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -99,8 +99,8 @@ public class ControlExchangeEffect extends SpellAbilityEffect {
|
|||||||
object2.setController(player1, tStamp);
|
object2.setController(player1, tStamp);
|
||||||
object1.setController(player2, tStamp);
|
object1.setController(player2, tStamp);
|
||||||
if (sa.hasParam("RememberExchanged")) {
|
if (sa.hasParam("RememberExchanged")) {
|
||||||
sa.getHostCard().addRemembered(object1);
|
host.addRemembered(object1);
|
||||||
sa.getHostCard().addRemembered(object2);
|
host.addRemembered(object2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class CountersPutAllEffect extends SpellAbilityEffect {
|
|||||||
final Card host = sa.getHostCard();
|
final Card host = sa.getHostCard();
|
||||||
final Player activator = sa.getActivatingPlayer();
|
final Player activator = sa.getActivatingPlayer();
|
||||||
final String type = sa.getParam("CounterType");
|
final String type = sa.getParam("CounterType");
|
||||||
final int counterAmount = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("CounterNum"), sa);
|
final int counterAmount = AbilityUtils.calculateAmount(host, sa.getParam("CounterNum"), sa);
|
||||||
final String valid = sa.getParam("ValidCards");
|
final String valid = sa.getParam("ValidCards");
|
||||||
final ZoneType zone = sa.hasParam("ValidZone") ? ZoneType.smartValueOf(sa.getParam("ValidZone")) : ZoneType.Battlefield;
|
final ZoneType zone = sa.hasParam("ValidZone") ? ZoneType.smartValueOf(sa.getParam("ValidZone")) : ZoneType.Battlefield;
|
||||||
final boolean etbcounter = sa.hasParam("ETB");
|
final boolean etbcounter = sa.hasParam("ETB");
|
||||||
@@ -52,7 +52,7 @@ public class CountersPutAllEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
CardCollectionView cards = game.getCardsIn(zone);
|
CardCollectionView cards = game.getCardsIn(zone);
|
||||||
cards = CardLists.getValidCards(cards, valid, host.getController(), sa.getHostCard(), sa);
|
cards = CardLists.getValidCards(cards, valid, host.getController(), host, sa);
|
||||||
|
|
||||||
if (sa.usesTargeting()) {
|
if (sa.usesTargeting()) {
|
||||||
final Player pl = sa.getTargets().getFirstTargetedPlayer();
|
final Player pl = sa.getTargets().getFirstTargetedPlayer();
|
||||||
|
|||||||
@@ -155,16 +155,16 @@ public class CountersPutEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
Player chooser = activator;
|
Player chooser = activator;
|
||||||
if (sa.hasParam("Chooser")) {
|
if (sa.hasParam("Chooser")) {
|
||||||
List<Player> choosers = AbilityUtils.getDefinedPlayers(sa.getHostCard(), sa.getParam("Chooser"), sa);
|
List<Player> choosers = AbilityUtils.getDefinedPlayers(card, sa.getParam("Chooser"), sa);
|
||||||
if (choosers.isEmpty()) {
|
if (choosers.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
chooser = choosers.get(0);
|
chooser = choosers.get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int n = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParamOrDefault("ChoiceAmount",
|
int n = AbilityUtils.calculateAmount(card, sa.getParamOrDefault("ChoiceAmount",
|
||||||
"1"), sa);
|
"1"), sa);
|
||||||
int m = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParamOrDefault("MinChoiceAmount",
|
int m = AbilityUtils.calculateAmount(card, sa.getParamOrDefault("MinChoiceAmount",
|
||||||
sa.getParamOrDefault("ChoiceAmount", "1")), sa);
|
sa.getParamOrDefault("ChoiceAmount", "1")), sa);
|
||||||
|
|
||||||
// no choices allowed
|
// no choices allowed
|
||||||
@@ -405,10 +405,10 @@ public class CountersPutEffect extends SpellAbilityEffect {
|
|||||||
Player placer = activator;
|
Player placer = activator;
|
||||||
if (sa.hasParam("Placer")) {
|
if (sa.hasParam("Placer")) {
|
||||||
final String pstr = sa.getParam("Placer");
|
final String pstr = sa.getParam("Placer");
|
||||||
placer = AbilityUtils.getDefinedPlayers(sa.getHostCard(), pstr, sa).get(0);
|
placer = AbilityUtils.getDefinedPlayers(card, pstr, sa).get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int counterAmount = AbilityUtils.calculateAmount(sa.getHostCard(), amount, sa);
|
int counterAmount = AbilityUtils.calculateAmount(card, amount, sa);
|
||||||
|
|
||||||
GameEntityCounterTable table = new GameEntityCounterTable();
|
GameEntityCounterTable table = new GameEntityCounterTable();
|
||||||
|
|
||||||
@@ -422,7 +422,7 @@ public class CountersPutEffect extends SpellAbilityEffect {
|
|||||||
List<String> keywords = Arrays.asList(sa.getParam("SharedKeywords").split(" & "));
|
List<String> keywords = Arrays.asList(sa.getParam("SharedKeywords").split(" & "));
|
||||||
List<ZoneType> zones = ZoneType.listValueOf(sa.getParam("SharedKeywordsZone"));
|
List<ZoneType> zones = ZoneType.listValueOf(sa.getParam("SharedKeywordsZone"));
|
||||||
String[] restrictions = sa.hasParam("SharedRestrictions") ? sa.getParam("SharedRestrictions").split(",") : new String[]{"Card"};
|
String[] restrictions = sa.hasParam("SharedRestrictions") ? sa.getParam("SharedRestrictions").split(",") : new String[]{"Card"};
|
||||||
keywords = CardFactoryUtil.sharedKeywords(keywords, restrictions, zones, sa.getHostCard());
|
keywords = CardFactoryUtil.sharedKeywords(keywords, restrictions, zones, card);
|
||||||
for (String k : keywords) {
|
for (String k : keywords) {
|
||||||
resolvePerType(sa, placer, CounterType.getType(k), counterAmount, table);
|
resolvePerType(sa, placer, CounterType.getType(k), counterAmount, table);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ public class CountersRemoveEffect extends SpellAbilityEffect {
|
|||||||
|
|
||||||
int cntToRemove = 0;
|
int cntToRemove = 0;
|
||||||
if (!num.equals("All") && !num.equals("Any")) {
|
if (!num.equals("All") && !num.equals("Any")) {
|
||||||
cntToRemove = AbilityUtils.calculateAmount(sa.getHostCard(), num, sa);
|
cntToRemove = AbilityUtils.calculateAmount(card, num, sa);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sa.hasParam("Optional")) {
|
if (sa.hasParam("Optional")) {
|
||||||
|
|||||||
@@ -52,14 +52,14 @@ public class DamageAllEffect extends DamageBaseEffect {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void resolve(SpellAbility sa) {
|
public void resolve(SpellAbility sa) {
|
||||||
final List<Card> definedSources = AbilityUtils.getDefinedCards(sa.getHostCard(), sa.getParam("DamageSource"), sa);
|
final Card source = sa.getHostCard();
|
||||||
|
final List<Card> definedSources = AbilityUtils.getDefinedCards(source, sa.getParam("DamageSource"), sa);
|
||||||
final Card card = definedSources.get(0);
|
final Card card = definedSources.get(0);
|
||||||
final Card sourceLKI = card.getGame().getChangeZoneLKIInfo(card);
|
final Card sourceLKI = card.getGame().getChangeZoneLKIInfo(card);
|
||||||
final Card source = sa.getHostCard();
|
|
||||||
final Game game = sa.getActivatingPlayer().getGame();
|
final Game game = sa.getActivatingPlayer().getGame();
|
||||||
|
|
||||||
final String damage = sa.getParam("NumDmg");
|
final String damage = sa.getParam("NumDmg");
|
||||||
final int dmg = AbilityUtils.calculateAmount(sa.getHostCard(), damage, sa);
|
final int dmg = AbilityUtils.calculateAmount(source, damage, sa);
|
||||||
|
|
||||||
final boolean rememberCard = sa.hasParam("RememberDamaged") || sa.hasParam("RememberDamagedCreature");
|
final boolean rememberCard = sa.hasParam("RememberDamaged") || sa.hasParam("RememberDamagedCreature");
|
||||||
final boolean rememberPlayer = sa.hasParam("RememberDamaged") || sa.hasParam("RememberDamagedPlayer");
|
final boolean rememberPlayer = sa.hasParam("RememberDamaged") || sa.hasParam("RememberDamagedPlayer");
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public class DamagePreventAllEffect extends DamagePreventEffectBase {
|
|||||||
public void resolve(SpellAbility sa) {
|
public void resolve(SpellAbility sa) {
|
||||||
final Card source = sa.getHostCard();
|
final Card source = sa.getHostCard();
|
||||||
final Game game = sa.getActivatingPlayer().getGame();
|
final Game game = sa.getActivatingPlayer().getGame();
|
||||||
final int numDam = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("Amount"), sa);
|
final int numDam = AbilityUtils.calculateAmount(source, sa.getParam("Amount"), sa);
|
||||||
|
|
||||||
String players = "";
|
String players = "";
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public class MustBlockEffect extends SpellAbilityEffect {
|
|||||||
|
|
||||||
List<Card> cards;
|
List<Card> cards;
|
||||||
if (sa.hasParam("DefinedAttacker")) {
|
if (sa.hasParam("DefinedAttacker")) {
|
||||||
cards = AbilityUtils.getDefinedCards(sa.getHostCard(), sa.getParam("DefinedAttacker"), sa);
|
cards = AbilityUtils.getDefinedCards(host, sa.getParam("DefinedAttacker"), sa);
|
||||||
} else {
|
} else {
|
||||||
cards = Lists.newArrayList(host);
|
cards = Lists.newArrayList(host);
|
||||||
}
|
}
|
||||||
@@ -37,7 +37,7 @@ public class MustBlockEffect extends SpellAbilityEffect {
|
|||||||
Player chooser = activator;
|
Player chooser = activator;
|
||||||
if (sa.hasParam("Chooser")) {
|
if (sa.hasParam("Chooser")) {
|
||||||
final String choose = sa.getParam("Chooser");
|
final String choose = sa.getParam("Chooser");
|
||||||
chooser = AbilityUtils.getDefinedPlayers(sa.getHostCard(), choose, sa).get(0);
|
chooser = AbilityUtils.getDefinedPlayers(host, choose, sa).get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
CardCollectionView choices = game.getCardsIn(ZoneType.Battlefield);
|
CardCollectionView choices = game.getCardsIn(ZoneType.Battlefield);
|
||||||
@@ -81,7 +81,7 @@ public class MustBlockEffect extends SpellAbilityEffect {
|
|||||||
|
|
||||||
String attacker = null;
|
String attacker = null;
|
||||||
if (sa.hasParam("DefinedAttacker")) {
|
if (sa.hasParam("DefinedAttacker")) {
|
||||||
final List<Card> cards = AbilityUtils.getDefinedCards(sa.getHostCard(), sa.getParam("DefinedAttacker"), sa);
|
final List<Card> cards = AbilityUtils.getDefinedCards(host, sa.getParam("DefinedAttacker"), sa);
|
||||||
attacker = cards.get(0).toString();
|
attacker = cards.get(0).toString();
|
||||||
} else {
|
} else {
|
||||||
attacker = host.toString();
|
attacker = host.toString();
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class RevealEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else if (sa.hasParam("RevealDefined")) {
|
} else if (sa.hasParam("RevealDefined")) {
|
||||||
revealed.addAll(AbilityUtils.getDefinedCards(sa.getHostCard(), sa.getParam("RevealDefined"), sa));
|
revealed.addAll(AbilityUtils.getDefinedCards(host, sa.getParam("RevealDefined"), sa));
|
||||||
} else {
|
} else {
|
||||||
CardCollection valid = new CardCollection(cardsInHand);
|
CardCollection valid = new CardCollection(cardsInHand);
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class SacrificeAllEffect extends SpellAbilityEffect {
|
|||||||
|
|
||||||
CardCollectionView list;
|
CardCollectionView list;
|
||||||
if (sa.hasParam("Defined")) {
|
if (sa.hasParam("Defined")) {
|
||||||
list = AbilityUtils.getDefinedCards(sa.getHostCard(), sa.getParam("Defined"), sa);
|
list = AbilityUtils.getDefinedCards(card, sa.getParam("Defined"), sa);
|
||||||
} else {
|
} else {
|
||||||
list = game.getCardsIn(ZoneType.Battlefield);
|
list = game.getCardsIn(ZoneType.Battlefield);
|
||||||
if (sa.hasParam("ValidCards")) {
|
if (sa.hasParam("ValidCards")) {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public class SetInMotionEffect extends SpellAbilityEffect {
|
|||||||
int repeats = 1;
|
int repeats = 1;
|
||||||
|
|
||||||
if (sa.hasParam("RepeatNum")) {
|
if (sa.hasParam("RepeatNum")) {
|
||||||
repeats = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("RepeatNum"), sa);
|
repeats = AbilityUtils.calculateAmount(source, sa.getParam("RepeatNum"), sa);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < repeats; i++) {
|
for (int i = 0; i < repeats; i++) {
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class SkipTurnEffect extends SpellAbilityEffect {
|
|||||||
final Game game = hostCard.getGame();
|
final Game game = hostCard.getGame();
|
||||||
final String name = hostCard.getName() + "'s Effect";
|
final String name = hostCard.getName() + "'s Effect";
|
||||||
final String image = hostCard.getImageKey();
|
final String image = hostCard.getImageKey();
|
||||||
final int numTurns = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("NumTurns"), sa);
|
final int numTurns = AbilityUtils.calculateAmount(hostCard, sa.getParam("NumTurns"), sa);
|
||||||
String repeffstr = "Event$ BeginTurn | ActiveZones$ Command | ValidPlayer$ You " +
|
String repeffstr = "Event$ BeginTurn | ActiveZones$ Command | ValidPlayer$ You " +
|
||||||
"| Description$ Skip your next " + (numTurns > 1 ? Lang.getNumeral(numTurns) + " turns." : "turn.");
|
"| Description$ Skip your next " + (numTurns > 1 ? Lang.getNumeral(numTurns) + " turns." : "turn.");
|
||||||
String effect = "DB$ StoreSVar | SVar$ NumTurns | Type$ CountSVar | Expression$ NumTurns/Minus.1";
|
String effect = "DB$ StoreSVar | SVar$ NumTurns | Type$ CountSVar | Expression$ NumTurns/Minus.1";
|
||||||
|
|||||||
@@ -68,19 +68,19 @@ public class TwoPilesEffect extends SpellAbilityEffect {
|
|||||||
|
|
||||||
Player separator = card.getController();
|
Player separator = card.getController();
|
||||||
if (sa.hasParam("Separator")) {
|
if (sa.hasParam("Separator")) {
|
||||||
separator = AbilityUtils.getDefinedPlayers(sa.getHostCard(), sa.getParam("Separator"), sa).get(0);
|
separator = AbilityUtils.getDefinedPlayers(card, sa.getParam("Separator"), sa).get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
Player chooser = tgtPlayers.get(0);
|
Player chooser = tgtPlayers.get(0);
|
||||||
if (sa.hasParam("Chooser")) {
|
if (sa.hasParam("Chooser")) {
|
||||||
chooser = AbilityUtils.getDefinedPlayers(sa.getHostCard(), sa.getParam("Chooser"), sa).get(0);
|
chooser = AbilityUtils.getDefinedPlayers(card, sa.getParam("Chooser"), sa).get(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (final Player p : tgtPlayers) {
|
for (final Player p : tgtPlayers) {
|
||||||
if ((tgt == null) || p.canBeTargetedBy(sa)) {
|
if ((tgt == null) || p.canBeTargetedBy(sa)) {
|
||||||
CardCollectionView pool0;
|
CardCollectionView pool0;
|
||||||
if (sa.hasParam("DefinedCards")) {
|
if (sa.hasParam("DefinedCards")) {
|
||||||
pool0 = AbilityUtils.getDefinedCards(sa.getHostCard(), sa.getParam("DefinedCards"), sa);
|
pool0 = AbilityUtils.getDefinedCards(card, sa.getParam("DefinedCards"), sa);
|
||||||
} else {
|
} else {
|
||||||
pool0 = p.getCardsIn(zone);
|
pool0 = p.getCardsIn(zone);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user