mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
@@ -842,7 +842,6 @@ public class GameAction {
|
||||
}
|
||||
|
||||
if (zoneTo.is(ZoneType.Stack)) {
|
||||
// zoneFrom maybe null if the spell is cast from "Ouside the game", ex. ability of Garth One-Eye
|
||||
c.setCastFrom(zoneFrom);
|
||||
if (cause != null && cause.isSpell() && c.equals(cause.getHostCard())) {
|
||||
c.setCastSA(cause);
|
||||
|
||||
@@ -854,7 +854,7 @@ public final class GameActionUtil {
|
||||
return;
|
||||
}
|
||||
|
||||
if (fromZone != null) { // and not a copy
|
||||
if (fromZone != null && !fromZone.is(ZoneType.None)) { // and not a copy
|
||||
// might have been an alternative lki host
|
||||
oldCard = ability.getCardState().getCard();
|
||||
|
||||
|
||||
@@ -21,12 +21,6 @@ import forge.util.Localizer;
|
||||
|
||||
public class PhasesEffect extends SpellAbilityEffect {
|
||||
|
||||
// ******************************************
|
||||
// ************** Phases ********************
|
||||
// ******************************************
|
||||
// Phases generally Phase Out. Time and Tide is the only card that can force
|
||||
// Phased Out cards in.
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see forge.card.abilityfactory.SpellEffect#resolve(java.util.Map, forge.card.spellability.SpellAbility)
|
||||
*/
|
||||
@@ -56,10 +50,8 @@ public class PhasesEffect extends SpellAbilityEffect {
|
||||
tgtCards = game.getCardsIn(ZoneType.Battlefield);
|
||||
}
|
||||
tgtCards = AbilityUtils.filterListByType(tgtCards, sa.getParam("AllValid"), sa);
|
||||
} else if (sa.hasParam("Defined")) {
|
||||
tgtCards = AbilityUtils.getDefinedCards(source, sa.getParam("Defined"), sa);
|
||||
} else {
|
||||
tgtCards = getTargetCards(sa);
|
||||
tgtCards = getDefinedCardsOrTargeted(sa);
|
||||
}
|
||||
if (sa.hasParam("AnyNumber")) {
|
||||
tgtCards = activator.getController().chooseCardsForEffect(tgtCards, sa,
|
||||
|
||||
@@ -169,6 +169,7 @@ public class PlayEffect extends SpellAbilityEffect {
|
||||
// so it gets added to stack
|
||||
card.setCopiedPermanent(card);
|
||||
card.setToken(true);
|
||||
card.setZone(controller.getZone(ZoneType.None));
|
||||
tgtCards = new CardCollection(card);
|
||||
} else {
|
||||
tgtCards = new CardCollection();
|
||||
|
||||
@@ -1700,7 +1700,7 @@ public class CardFactoryUtil {
|
||||
final String[] k = keyword.split(":");
|
||||
|
||||
String renownTrig = "Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player"
|
||||
+ " | IsPresent$ Card.Self+IsNotRenowned | CombatDamage$ True | Secondary$ True"
|
||||
+ " | IsPresent$ Card.Self+!IsRenowned | CombatDamage$ True | Secondary$ True"
|
||||
+ " | TriggerDescription$ Renown " + k[1] +" (" + inst.getReminderText() + ")";
|
||||
|
||||
final String effect = "DB$ PutCounter | Defined$ Self | "
|
||||
@@ -3229,7 +3229,7 @@ public class CardFactoryUtil {
|
||||
String desc = "Monstrosity " + magnitude;
|
||||
|
||||
String effect = "AB$ PutCounter | Cost$ " + manacost + " | ConditionPresent$ "
|
||||
+ "Card.Self+IsNotMonstrous | Monstrosity$ True | CounterNum$ " + magnitude
|
||||
+ "Card.Self+!IsMonstrous | Monstrosity$ True | CounterNum$ " + magnitude
|
||||
+ " | CounterType$ P1P1 | StackDescription$ SpellDescription";
|
||||
if (reduceCost != null) {
|
||||
effect += "| ReduceCost$ " + reduceCost;
|
||||
@@ -4149,7 +4149,7 @@ public class CardFactoryUtil {
|
||||
|
||||
SpellAbility saExile = AbilityFactory.getAbility(abExile, card);
|
||||
|
||||
String abEffect = "DB$ Effect | RememberObjects$ Self | StaticAbilities$ Play | ForgetOnMoved$ Exile | Duration$ Permanent | ConditionDefined$ Self | ConditionPresent$ Card.nonCopiedSpell+nonToken";
|
||||
String abEffect = "DB$ Effect | RememberObjects$ Self | StaticAbilities$ Play | ForgetOnMoved$ Exile | Duration$ Permanent | ConditionDefined$ Self | ConditionPresent$ Card.!copiedSpell+nonToken";
|
||||
AbilitySub saEffect = (AbilitySub)AbilityFactory.getAbility(abEffect, card);
|
||||
|
||||
StringBuilder sbPlay = new StringBuilder();
|
||||
|
||||
@@ -1456,10 +1456,6 @@ public class CardProperty {
|
||||
if (!card.isCopiedSpell()) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.startsWith("nonCopiedSpell")) {
|
||||
if (card.isCopiedSpell()) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.startsWith("hasXCost")) {
|
||||
ManaCost cost = card.getManaCost();
|
||||
if (cost == null || cost.countX() <= 0) {
|
||||
@@ -1481,10 +1477,6 @@ public class CardProperty {
|
||||
if (!source.getExploited().contains(card)) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.startsWith("unequalPT")) {
|
||||
if (card.getNetPower() == card.getNetToughness()) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.startsWith("equalPT")) {
|
||||
if (card.getNetPower() != card.getNetToughness()) {
|
||||
return false;
|
||||
@@ -1899,18 +1891,10 @@ public class CardProperty {
|
||||
if (card.getDevouredCards().isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.equals("HasNotDevoured")) {
|
||||
if (!card.getDevouredCards().isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.equals("IsMonstrous")) {
|
||||
if (!card.isMonstrous()) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.equals("IsNotMonstrous")) {
|
||||
if (card.isMonstrous()) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.equals("IsUnearthed")) {
|
||||
if (!card.isUnearthed()) {
|
||||
return false;
|
||||
@@ -1919,10 +1903,6 @@ public class CardProperty {
|
||||
if (!card.isRenowned()) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.equals("IsNotRenowned")) {
|
||||
if (card.isRenowned()) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.equals("IsSolved")) {
|
||||
if (!card.isSolved()) {
|
||||
return false;
|
||||
@@ -1945,10 +1925,6 @@ public class CardProperty {
|
||||
if (!card.isSuspected()) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.equals("IsUnsuspected")) {
|
||||
if (card.isSuspected()) {
|
||||
return false;
|
||||
}
|
||||
} else if (property.equals("IsRemembered")) {
|
||||
if (!source.isRemembered(card)) {
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user