mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
- Merge: Merge the latest trunk into SplitCards.
This commit is contained in:
@@ -3,7 +3,6 @@ ManaCost:2 G
|
|||||||
Types:Creature Elf Spirit
|
Types:Creature Elf Spirit
|
||||||
PT:2/2
|
PT:2/2
|
||||||
A:AB$ Mana | Cost$ ExileFromHand<1/CARDNAME> | Produced$ G | ActivationZone$ Hand | SpellDescription$ Add G to your mana pool.
|
A:AB$ Mana | Cost$ ExileFromHand<1/CARDNAME> | Produced$ G | ActivationZone$ Hand | SpellDescription$ Add G to your mana pool.
|
||||||
SVar:RemAIDeck:True
|
|
||||||
SVar:Rarity:Uncommon
|
SVar:Rarity:Uncommon
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/elvish_spirit_guide.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/elvish_spirit_guide.jpg
|
||||||
SetInfo:ALL|Uncommon|http://magiccards.info/scans/en/ai/69.jpg
|
SetInfo:ALL|Uncommon|http://magiccards.info/scans/en/ai/69.jpg
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ ManaCost:1 G U
|
|||||||
Types:Artifact Creature Human Rogue
|
Types:Artifact Creature Human Rogue
|
||||||
PT:2/2
|
PT:2/2
|
||||||
K:Cascade
|
K:Cascade
|
||||||
|
SVar:PlayMain1:TRUE
|
||||||
SVar:Rarity:Uncommon
|
SVar:Rarity:Uncommon
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/shardless_agent.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/shardless_agent.jpg
|
||||||
SetInfo:PC2|Uncommon|http://magiccards.info/scans/en/pc2/104.jpg
|
SetInfo:PC2|Uncommon|http://magiccards.info/scans/en/pc2/104.jpg
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ ManaCost:2 R
|
|||||||
Types:Creature Ape Spirit
|
Types:Creature Ape Spirit
|
||||||
PT:2/2
|
PT:2/2
|
||||||
A:AB$ Mana | Cost$ ExileFromHand<1/CARDNAME> | Produced$ R | ActivationZone$ Hand | SpellDescription$ Add R to your mana pool.
|
A:AB$ Mana | Cost$ ExileFromHand<1/CARDNAME> | Produced$ R | ActivationZone$ Hand | SpellDescription$ Add R to your mana pool.
|
||||||
SVar:RemAIDeck:True
|
|
||||||
SVar:Rarity:Common
|
SVar:Rarity:Common
|
||||||
SVar:Picture:http://www.wizards.com/global/images/magic/general/simian_spirit_guide.jpg
|
SVar:Picture:http://www.wizards.com/global/images/magic/general/simian_spirit_guide.jpg
|
||||||
SetInfo:PLC|Common|http://magiccards.info/scans/en/pc/122.jpg
|
SetInfo:PLC|Common|http://magiccards.info/scans/en/pc/122.jpg
|
||||||
|
|||||||
@@ -143,7 +143,6 @@ public class AbilityUtils {
|
|||||||
final Object crd = root.getTriggeringObject(defined.substring(9));
|
final Object crd = root.getTriggeringObject(defined.substring(9));
|
||||||
if (crd instanceof Card) {
|
if (crd instanceof Card) {
|
||||||
c = Singletons.getModel().getGame().getCardState((Card) crd);
|
c = Singletons.getModel().getGame().getCardState((Card) crd);
|
||||||
c = (Card) crd;
|
|
||||||
} else if (crd instanceof List<?>) {
|
} else if (crd instanceof List<?>) {
|
||||||
for (final Card cardItem : (List<Card>) crd) {
|
for (final Card cardItem : (List<Card>) crd) {
|
||||||
cards.add(cardItem);
|
cards.add(cardItem);
|
||||||
|
|||||||
@@ -81,6 +81,9 @@ public class SpellAbilityCondition extends SpellAbilityVariables {
|
|||||||
if (value.equals("Kicked")) {
|
if (value.equals("Kicked")) {
|
||||||
this.setKicked(true);
|
this.setKicked(true);
|
||||||
}
|
}
|
||||||
|
if (value.equals("AllTargetsLegal")) {
|
||||||
|
this.setAllTargetsLegal(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.containsKey("ConditionZone")) {
|
if (params.containsKey("ConditionZone")) {
|
||||||
@@ -196,6 +199,14 @@ public class SpellAbilityCondition extends SpellAbilityVariables {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (this.isAllTargetsLegal()) {
|
||||||
|
SpellAbility root = sa.getRootAbility();
|
||||||
|
for (Card c : root.getTarget().getTargetCards()) {
|
||||||
|
if (!CardFactoryUtil.isTargetStillValid(sa, c)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (this.isSorcerySpeed() && !activator.canCastSorcery()) {
|
if (this.isSorcerySpeed() && !activator.canCastSorcery()) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -69,6 +69,7 @@ public class SpellAbilityVariables {
|
|||||||
this.threshold = sav.isThreshold();
|
this.threshold = sav.isThreshold();
|
||||||
this.metalcraft = sav.isThreshold();
|
this.metalcraft = sav.isThreshold();
|
||||||
this.hellbent = sav.isHellbent();
|
this.hellbent = sav.isHellbent();
|
||||||
|
this.allTargetsLegal = sav.isAllTargetsLegal();
|
||||||
this.prowl = new ArrayList<String>(sav.getProwl());
|
this.prowl = new ArrayList<String>(sav.getProwl());
|
||||||
this.isPresent = sav.getIsPresent();
|
this.isPresent = sav.getIsPresent();
|
||||||
this.presentCompare = sav.getPresentCompare();
|
this.presentCompare = sav.getPresentCompare();
|
||||||
@@ -137,6 +138,8 @@ public class SpellAbilityVariables {
|
|||||||
/** The Kicked. */
|
/** The Kicked. */
|
||||||
private boolean kicked = false;
|
private boolean kicked = false;
|
||||||
|
|
||||||
|
private boolean allTargetsLegal = false;
|
||||||
|
|
||||||
/** The prowl. */
|
/** The prowl. */
|
||||||
private ArrayList<String> prowl = new ArrayList<String>();
|
private ArrayList<String> prowl = new ArrayList<String>();
|
||||||
|
|
||||||
@@ -519,6 +522,21 @@ public class SpellAbilityVariables {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the allTargetsLegal
|
||||||
|
*/
|
||||||
|
public boolean isAllTargetsLegal() {
|
||||||
|
return allTargetsLegal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param allTargetsLegal0 the allTargetsLegal to set
|
||||||
|
*/
|
||||||
|
public void setAllTargetsLegal(boolean allTargets) {
|
||||||
|
this.allTargetsLegal = allTargets;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* Setter for the field <code>prowl</code>.
|
* Setter for the field <code>prowl</code>.
|
||||||
|
|||||||
@@ -248,7 +248,7 @@ public class GameAction {
|
|||||||
copied.getCharacteristics().resetCardColor();
|
copied.getCharacteristics().resetCardColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (zoneFrom.is(ZoneType.Battlefield)) {
|
if (zoneFrom.is(ZoneType.Battlefield) && !c.isToken()) {
|
||||||
copied.setSuspendCast(false);
|
copied.setSuspendCast(false);
|
||||||
copied.setState(CardCharacteristicName.Original);
|
copied.setState(CardCharacteristicName.Original);
|
||||||
// Soulbond unpairing
|
// Soulbond unpairing
|
||||||
|
|||||||
@@ -460,6 +460,7 @@ public class ComputerUtilMana {
|
|||||||
private static List<Card> getAvailableMana(final Player ai, final boolean checkPlayable) {
|
private static List<Card> getAvailableMana(final Player ai, final boolean checkPlayable) {
|
||||||
final GameState game = Singletons.getModel().getGame();
|
final GameState game = Singletons.getModel().getGame();
|
||||||
final List<Card> list = ai.getCardsIn(ZoneType.Battlefield);
|
final List<Card> list = ai.getCardsIn(ZoneType.Battlefield);
|
||||||
|
list.addAll(ai.getCardsIn(ZoneType.Hand));
|
||||||
final List<Card> manaSources = CardLists.filter(list, new Predicate<Card>() {
|
final List<Card> manaSources = CardLists.filter(list, new Predicate<Card>() {
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(final Card c) {
|
public boolean apply(final Card c) {
|
||||||
|
|||||||
Reference in New Issue
Block a user