mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
Merge branch 'master' into AI-The-Dark
This commit is contained in:
@@ -518,7 +518,7 @@ public class ComputerUtilCombat {
|
||||
return true;
|
||||
}
|
||||
|
||||
return resultingPoison(ai, combat) > 9;
|
||||
return resultingPoison(ai, combat) >= ai.getGame().getRules().getPoisonCountersToLose();
|
||||
}
|
||||
|
||||
// This calculates the amount of damage a blockgang can deal to the attacker
|
||||
|
||||
@@ -5,6 +5,8 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
import com.google.common.base.Predicates;
|
||||
import com.google.common.collect.Iterables;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import forge.ai.ComputerUtil;
|
||||
@@ -97,7 +99,21 @@ public class CountersMultiplyAi extends SpellAbilityAi {
|
||||
|
||||
@Override
|
||||
protected boolean doTriggerAINoCost(Player ai, SpellAbility sa, boolean mandatory) {
|
||||
return !sa.usesTargeting() || setTargets(ai, sa) || mandatory;
|
||||
if (!sa.usesTargeting()) {
|
||||
return true;
|
||||
}
|
||||
if (setTargets(ai, sa)) {
|
||||
return true;
|
||||
} else if (mandatory) {
|
||||
CardCollection list = CardLists.getTargetableCards(ai.getGame().getCardsIn(ZoneType.Battlefield), sa);
|
||||
if (list.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
Card safeMatch = Iterables.getFirst(Iterables.filter(list, Predicates.not(CardPredicates.hasCounters())), null);
|
||||
sa.getTargets().add(safeMatch == null ? list.getFirst() : safeMatch);
|
||||
return true;
|
||||
}
|
||||
return mandatory;
|
||||
}
|
||||
|
||||
private CounterType getCounterType(SpellAbility sa) {
|
||||
|
||||
@@ -3667,7 +3667,6 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
||||
public final void addType(final String type0) {
|
||||
currentState.addType(type0);
|
||||
}
|
||||
|
||||
public final void addType(final Iterable<String> type0) {
|
||||
currentState.addType(type0);
|
||||
}
|
||||
@@ -3876,8 +3875,8 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
||||
currentState.getView().updateHasChangeColors(!Iterables.isEmpty(getChangedCardColors()));
|
||||
}
|
||||
|
||||
public final void setColor(final String color) {
|
||||
currentState.setColor(color);
|
||||
public final void setColor(final String... color) {
|
||||
setColor(ColorSet.fromNames(color).getColor());
|
||||
}
|
||||
public final void setColor(final byte color) {
|
||||
currentState.setColor(color);
|
||||
|
||||
@@ -662,31 +662,30 @@ public class CardFactory {
|
||||
final CardCloneStates result = new CardCloneStates(in, sa);
|
||||
|
||||
final String newName = sa.getParamOrDefault("NewName", null);
|
||||
String shortColors = "";
|
||||
ColorSet colors = null;
|
||||
|
||||
if (sa.hasParam("AddTypes")) {
|
||||
types.addAll(Arrays.asList(sa.getParam("AddTypes").split(" & ")));
|
||||
}
|
||||
|
||||
if (sa.hasParam("SetCreatureTypes")) {
|
||||
creatureTypes = ImmutableList.copyOf(sa.getParam("SetCreatureTypes").split(" "));
|
||||
}
|
||||
|
||||
if (sa.hasParam("AddKeywords")) {
|
||||
keywords.addAll(Arrays.asList(sa.getParam("AddKeywords").split(" & ")));
|
||||
}
|
||||
|
||||
if (sa.hasParam("AddColors")) {
|
||||
shortColors = CardUtil.getShortColorsString(Arrays.asList(sa.getParam("AddColors")
|
||||
.split(" & ")));
|
||||
}
|
||||
|
||||
if (sa.hasParam("RemoveKeywords")) {
|
||||
removeKeywords.addAll(Arrays.asList(sa.getParam("RemoveKeywords").split(" & ")));
|
||||
}
|
||||
|
||||
if (sa.hasParam("SetColor")) {
|
||||
shortColors = CardUtil.getShortColorsString(Arrays.asList(sa.getParam("SetColor").split(",")));
|
||||
if (sa.hasParam("AddColors")) {
|
||||
colors = ColorSet.fromNames(sa.getParam("AddColors").split(","));
|
||||
}
|
||||
|
||||
if (sa.hasParam("SetCreatureTypes")) {
|
||||
creatureTypes = ImmutableList.copyOf(sa.getParam("SetCreatureTypes").split(" "));
|
||||
if (sa.hasParam("SetColor")) {
|
||||
colors = ColorSet.fromNames(sa.getParam("SetColor").split(","));
|
||||
}
|
||||
|
||||
// TODO handle Volrath's Shapeshifter
|
||||
@@ -734,11 +733,11 @@ public class CardFactory {
|
||||
}
|
||||
|
||||
if (sa.hasParam("AddColors")) {
|
||||
state.addColor(shortColors);
|
||||
state.addColor(colors.getColor());
|
||||
}
|
||||
|
||||
if (sa.hasParam("SetColor")) {
|
||||
state.setColor(shortColors);
|
||||
state.setColor(colors.getColor());
|
||||
}
|
||||
|
||||
if (sa.hasParam("NonLegendary")) {
|
||||
|
||||
@@ -32,7 +32,6 @@ import forge.card.CardType;
|
||||
import forge.card.CardTypeView;
|
||||
import forge.card.MagicColor;
|
||||
import forge.card.mana.ManaCost;
|
||||
import forge.card.mana.ManaCostParser;
|
||||
import forge.game.CardTraitBase;
|
||||
import forge.game.ForgeScript;
|
||||
import forge.game.GameObject;
|
||||
@@ -170,20 +169,10 @@ public class CardState extends GameObject implements IHasSVars {
|
||||
public final byte getColor() {
|
||||
return color;
|
||||
}
|
||||
public final void addColor(final String color) {
|
||||
final ManaCostParser parser = new ManaCostParser(color);
|
||||
final ManaCost cost = new ManaCost(parser);
|
||||
addColor(cost.getColorProfile());
|
||||
}
|
||||
public final void addColor(final byte color) {
|
||||
this.color |= color;
|
||||
view.updateColors(card);
|
||||
}
|
||||
public final void setColor(final String color) {
|
||||
final ManaCostParser parser = new ManaCostParser(color);
|
||||
final ManaCost cost = new ManaCost(parser);
|
||||
setColor(cost.getColorProfile());
|
||||
}
|
||||
public final void setColor(final byte color) {
|
||||
this.color = color;
|
||||
view.updateColors(card);
|
||||
|
||||
@@ -94,14 +94,6 @@ public final class CardUtil {
|
||||
return !kw.startsWith("Protection") && !NON_STACKING_LIST.contains(kw);
|
||||
}
|
||||
|
||||
public static String getShortColorsString(final Iterable<String> colors) {
|
||||
StringBuilder colorDesc = new StringBuilder();
|
||||
for (final String col : colors) {
|
||||
colorDesc.append(MagicColor.toShortString(col)).append(" ");
|
||||
}
|
||||
return colorDesc.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* getThisTurnEntered.
|
||||
*
|
||||
|
||||
@@ -308,7 +308,7 @@ public class TokenInfo {
|
||||
if (sa.hasParam("TokenColors")) {
|
||||
String colors = sa.getParam("TokenColors");
|
||||
colors = colors.replace("ChosenColor", host.getChosenColor());
|
||||
result.setColor(MagicColor.toShortString(colors));
|
||||
result.setColor(colors.split(","));
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
@@ -5,5 +5,5 @@ PT:5/5
|
||||
K:Trample
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return another creature you control to its owner's hand.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.Other+YouCtrl
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+cmcLE5+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+cmcLE5
|
||||
Oracle:Trample\nWhen Ambush Krotiq enters the battlefield, return another creature you control to its owner's hand.
|
||||
|
||||
@@ -9,5 +9,5 @@ SVar:MoveToGraveyard:DB$ ChangeZone | Origin$ All | Destination$ Graveyard | Def
|
||||
SVar:MoveToBattlefield:DB$ ChangeZone | Origin$ All | Destination$ Battlefield | Defined$ ReplacedCard | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ1 | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Remembered$Amount
|
||||
SVar:NeedsToPlay:Mountain.YouCtrl+inZoneBattlefield+untapped
|
||||
SVar:NeedsToPlay:Mountain.YouCtrl+untapped
|
||||
Oracle:If Balduvian Trading Post would enter the battlefield, sacrifice an untapped Mountain instead. If you do, put Balduvian Trading Post onto the battlefield. If you don't, put it into its owner's graveyard.\n{T}: Add {C}{R}.\n{1}, {T}: Balduvian Trading Post deals 1 damage to target attacking creature.
|
||||
|
||||
@@ -4,8 +4,8 @@ Types:Enchantment
|
||||
K:ETBReplacement:Other:ChooseP
|
||||
SVar:ChooseP:DB$ ChoosePlayer | Defined$ You | Choices$ Player | AILogic$ Curse | RememberChosen$ True | SubAbility$ ChoosePTwo | SpellDescription$ As CARDNAME enters the battlefield, choose two players.
|
||||
SVar:ChoosePTwo:DB$ ChoosePlayer | Defined$ You | Choices$ NonChosenPlayer | AILogic$ Curse
|
||||
R:Event$ DamageDone | ActiveZones$ Battlefield | ValidSource$ Card.RememberedPlayerCtrl | ValidTarget$ Permanent.ChosenCtrl,Player.Chosen | ReplaceWith$ DmgTwice | Description$ If a source controlled by one of the chosen players would deal damage to the other chosen player or a permanent that player controls, that source deals double that damage to that player or permanent instead.
|
||||
R:Event$ DamageDone | ActiveZones$ Battlefield | ValidSource$ Card.ChosenCtrl | ValidTarget$ Permanent.RememberedPlayerCtrl,Player.IsRemembered | ReplaceWith$ DmgTwice | Secondary$ True | Description$ If a source controlled by one of the chosen players would deal damage to the other chosen player or a permanent that player controls, that source deals double that damage to that player or permanent instead.
|
||||
R:Event$ DamageDone | ActiveZones$ Battlefield | ValidSource$ Card.RememberedPlayerCtrl,Emblem.RememberedPlayerCtrl | ValidTarget$ Permanent.ChosenCtrl,Player.Chosen | ReplaceWith$ DmgTwice | Description$ If a source controlled by one of the chosen players would deal damage to the other chosen player or a permanent that player controls, that source deals double that damage to that player or permanent instead.
|
||||
R:Event$ DamageDone | ActiveZones$ Battlefield | ValidSource$ Card.ChosenCtrl,Emblem.ChosenCtrl | ValidTarget$ Permanent.RememberedPlayerCtrl,Player.IsRemembered | ReplaceWith$ DmgTwice | Secondary$ True | Description$ If a source controlled by one of the chosen players would deal damage to the other chosen player or a permanent that player controls, that source deals double that damage to that player or permanent instead.
|
||||
SVar:DmgTwice:DB$ ReplaceEffect | VarName$ DamageAmount | VarValue$ X
|
||||
SVar:X:ReplaceCount$DamageAmount/Twice
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ DBCleanup | Static$ True
|
||||
|
||||
@@ -6,5 +6,5 @@ K:Flying
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return a blue or black creature you control to its owner's hand.
|
||||
A:AB$ ChangeZone | Cost$ PayLife<1> | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return CARDNAME to its owner's hand.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.Black+YouCtrl,Creature.Blue+YouCtrl | AILogic$ NeverBounceItself
|
||||
SVar:NeedsToPlay:Creature.Black+YouCtrl+cmcLE2+inZoneBattlefield,Creature.Blue+YouCtrl+cmcLE2+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.Black+YouCtrl+cmcLE2,Creature.Blue+YouCtrl+cmcLE2
|
||||
Oracle:Flying\nWhen Cavern Harpy enters the battlefield, return a blue or black creature you control to its owner's hand.\nPay 1 life: Return Cavern Harpy to its owner's hand.
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:1
|
||||
Types:Artifact Equipment
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigAttach | TriggerDescription$ When CARDNAME enters the battlefield, attach it to target creature you control.
|
||||
SVar:TrigAttach:DB$ Attach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl
|
||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddKeyword$ Flying | Description$ Equipped creature has flying.
|
||||
K:Equip:2
|
||||
Oracle:When Cliffhaven Kitesail enters the battlefield, attach it to target creature you control.\nEquipped creature has flying.\nEquip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.)
|
||||
|
||||
@@ -5,5 +5,5 @@ PT:7/5
|
||||
K:Fear
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSac | TriggerDescription$ When CARDNAME enters the battlefield, sacrifice a creature.
|
||||
SVar:TrigSac:DB$ Sacrifice | Defined$ You | SacValid$ Creature | AILogic$ ExceptSelf
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+cmcLE5+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+cmcLE5
|
||||
Oracle:Fear (This creature can't be blocked except by artifact creatures and/or black creatures.)\nWhen Commander Greven il-Vec enters the battlefield, sacrifice a creature.
|
||||
|
||||
@@ -5,5 +5,5 @@ K:CARDNAME enters the battlefield tapped.
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSacUnless | TriggerDescription$ When CARDNAME enters the battlefield, sacrifice it unless you return an untapped Island you control to its owner's hand.
|
||||
SVar:TrigSacUnless:DB$ Sacrifice | Defined$ Self | UnlessCost$ Return<1/Island.untapped/untapped Island> | UnlessPayer$ You
|
||||
A:AB$ Mana | Cost$ T | Produced$ C U | SpellDescription$ Add {C}{U}.
|
||||
SVar:NeedsToPlay:Land.Island+YouCtrl+inZoneBattlefield+untapped
|
||||
SVar:NeedsToPlay:Land.Island+YouCtrl+untapped
|
||||
Oracle:Coral Atoll enters the battlefield tapped.\nWhen Coral Atoll enters the battlefield, sacrifice it unless you return an untapped Island you control to its owner's hand.\n{T}: Add {C}{U}.
|
||||
|
||||
@@ -5,5 +5,6 @@ PT:0/0
|
||||
K:ETBReplacement:Other:Imprint
|
||||
SVar:Imprint:DB$ ChangeZone | Imprint$ True | ChangeType$ Creature | ChangeNum$ 1 | Origin$ Graveyard | Destination$ Exile | Mandatory$ True | Hidden$ True | Chooser$ You | SpellDescription$ Imprint - As CARDNAME enters the battlefield, exile a creature card from a graveyard.
|
||||
A:AB$ Clone | Cost$ tapXType<2/Creature> | Defined$ Imprinted | Duration$ UntilEndOfTurn | ImprintRememberedNoCleanup$ True | AddTypes$ Vehicle & Artifact | StackDescription$ Until end of turn, CARDNAME becomes a copy of {c:Imprinted}, except it's a Vehicle artifact in addition to its other types. | SpellDescription$ Until end of turn, CARDNAME becomes a copy of the exiled card, except it's a Vehicle artifact in addition to its other types.
|
||||
SVar:NeedsToPlay:Creature.inZoneGraveyard
|
||||
SVar:NeedsToPlayVar:Check GE1
|
||||
SVar:Check:Count$ValidGraveyard Creature
|
||||
Oracle:Imprint — As Dermotaxi enters the battlefield, exile a creature card from a graveyard.\nTap two untapped creatures you control: Until end of turn, Dermotaxi becomes a copy of the exiled card, except it's a Vehicle artifact in addition to its other types.
|
||||
|
||||
@@ -7,6 +7,6 @@ SVar:DBToken:DB$ Token | TokenAmount$ Y | TokenScript$ w_4_4_angel_flying | Toke
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:X:Count$Valid Creature.YouCtrl
|
||||
SVar:Y:Remembered$Amount
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+inZoneBattlefield+untapped
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+untapped
|
||||
SVar:PlayMain1:ALWAYS
|
||||
Oracle:Tap any number of untapped creatures you control. Create a 4/4 white Angel creature token with flying for each creature tapped this way.
|
||||
|
||||
@@ -7,5 +7,5 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S
|
||||
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigDiscard | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, look at that player's hand and choose a card from it. The player discards that card.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.Black+YouCtrl,Creature.Blue+YouCtrl | AILogic$ NeverBounceItself
|
||||
SVar:TrigDiscard:DB$ Discard | Defined$ TriggeredTarget | NumCards$ 1 | Mode$ RevealYouChoose
|
||||
SVar:NeedsToPlay:Creature.Black+YouCtrl+cmcLE3+inZoneBattlefield,Creature.Blue+YouCtrl+cmcLE3+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.Black+YouCtrl+cmcLE3,Creature.Blue+YouCtrl+cmcLE3
|
||||
Oracle:Flying\nWhen Doomsday Specter enters the battlefield, return a blue or black creature you control to its owner's hand.\nWhenever Doomsday Specter deals combat damage to a player, look at that player's hand and choose a card from it. The player discards that card.
|
||||
|
||||
@@ -5,5 +5,5 @@ K:CARDNAME enters the battlefield tapped.
|
||||
A:AB$ Mana | Cost$ T | Produced$ C R | SpellDescription$ Add {C}{R}.
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSacUnless | TriggerDescription$ When CARDNAME enters the battlefield, sacrifice it unless you return an untapped Mountain you control to its owner's hand.
|
||||
SVar:TrigSacUnless:DB$ Sacrifice | Defined$ Self | UnlessCost$ Return<1/Mountain.untapped/untapped Mountain> | UnlessPayer$ You
|
||||
SVar:NeedsToPlay:Mountain.YouCtrl+inZoneBattlefield+untapped
|
||||
SVar:NeedsToPlay:Mountain.YouCtrl+untapped
|
||||
Oracle:Dormant Volcano enters the battlefield tapped.\nWhen Dormant Volcano enters the battlefield, sacrifice it unless you return an untapped Mountain you control to its owner's hand.\n{T}: Add {C}{R}.
|
||||
|
||||
@@ -7,7 +7,7 @@ SVar:X:Count$Valid Creature.attacking+YouCtrl
|
||||
SVar:BuffedBy:Creature.attacking
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigAttach | TriggerDescription$ When CARDNAME enters the battlefield, attach it to target creature you control.
|
||||
SVar:TrigAttach:DB$ Attach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control.
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl
|
||||
AI:RemoveDeck:All
|
||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Double Strike & Trample | Description$ Equipped creature gets +1/+1 and has double strike and trample.
|
||||
K:Equip:3
|
||||
|
||||
@@ -5,5 +5,5 @@ K:CARDNAME enters the battlefield tapped.
|
||||
A:AB$ Mana | Cost$ T | Produced$ C B | SpellDescription$ Add {C}{B}.
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSacUnless | TriggerDescription$ When CARDNAME enters the battlefield, sacrifice it unless you return an untapped Swamp you control to its owner's hand.
|
||||
SVar:TrigSacUnless:DB$ Sacrifice | Defined$ Self | UnlessCost$ Return<1/Swamp.untapped/untapped Swamp> | UnlessPayer$ You
|
||||
SVar:NeedsToPlay:Swamp.YouCtrl+inZoneBattlefield+untapped
|
||||
SVar:NeedsToPlay:Swamp.YouCtrl+untapped
|
||||
Oracle:Everglades enters the battlefield tapped.\nWhen Everglades enters the battlefield, sacrifice it unless you return an untapped Swamp you control to its owner's hand.\n{T}: Add {C}{B}.
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:W W
|
||||
Types:Instant
|
||||
A:SP$ ChooseSource | Cost$ W W | Choices$ Card,Emblem | AILogic$ NeedsPrevention | SubAbility$ DBEffect | SpellDescription$ The next time a source of your choice would deal damage to you this turn, instead that source deals that much damage to you and CARDNAME deals that much damage to that source's controller.
|
||||
SVar:DBEffect:DB$ Effect | ReplacementEffects$ SelflessDamage | ImprintCards$ Self | SubAbility$ DBCleanup | ConditionDefined$ ChosenCard | ConditionPresent$ Card,Emblem | ConditionCompare$ GE1
|
||||
SVar:SelflessDamage:Event$ DamageDone | ValidTarget$ You | ValidSource$ Card.ChosenCard,Emblem.ChosenCard | ReplaceWith$ SelflessDmg | Description$ The next time a source of your choice would deal damage to you this turn, instead that source deals that much damage to you and this card deals that much damage to that source's controller.
|
||||
SVar:SelflessDamage:Event$ DamageDone | ValidTarget$ You | ValidSource$ Card.ChosenCardStrict,Emblem.ChosenCard | ReplaceWith$ SelflessDmg | Description$ The next time a source of your choice would deal damage to you this turn, instead that source deals that much damage to you and this card deals that much damage to that source's controller.
|
||||
SVar:SelflessDmg:DB$ ReplaceEffect | VarName$ Affected | VarValue$ You | VarType$ Player | SubAbility$ EyeforEye
|
||||
SVar:EyeforEye:DB$ DealDamage | Defined$ ReplacedSourceController | DamageSource$ EffectSource | NumDmg$ X | SubAbility$ ExileEffect
|
||||
SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile
|
||||
|
||||
@@ -6,5 +6,5 @@ SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ g_4_4_phyrexian_beast | T
|
||||
SVar:DBFight:DB$ Fight | Defined$ Imprinted | ExtraDefined$ Remembered | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:DBCleanup2:DB$ Cleanup | ClearImprinted$ True
|
||||
SVar:NeedsToPlay:Creature.OppCtrl+inZoneBattlefield+powerLE3
|
||||
SVar:NeedsToPlay:Creature.OppCtrl+powerLE3
|
||||
Oracle:For each creature your opponents control, create a 4/4 green Phyrexian Beast creature token. Each of those Beasts fights a different one of those creatures.
|
||||
|
||||
@@ -5,5 +5,5 @@ PT:3/4
|
||||
K:Flash
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return a green or white creature you control to its owner's hand.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.White+YouCtrl,Creature.Green+YouCtrl | AILogic$ NeverBounceItself
|
||||
SVar:NeedsToPlay:Creature.White+cmcLE3+YouCtrl+inZoneBattlefield,Creature.Green+cmcLE3+YouCtrl+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.White+cmcLE3+YouCtrl,Creature.Green+cmcLE3+YouCtrl
|
||||
Oracle:Flash\nWhen Fleetfoot Panther enters the battlefield, return a green or white creature you control to its owner's hand.
|
||||
|
||||
@@ -9,6 +9,6 @@ T:Mode$ CounterRemoved | ValidCard$ Card.Self | TriggerZones$ Exile | CounterTyp
|
||||
SVar:TrigPut:DB$ PutCounter | ValidTgts$ Creature | TgtPrompt$ Select target creature | CounterType$ P1P1 | CounterNum$ 1
|
||||
SVar:X:Count$xPaid
|
||||
SVar:Y:Count$Valid Creature.YouCtrl$CardCounters.P1P1
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl
|
||||
DeckHints:Ability$Counters
|
||||
Oracle:Fungal Behemoth's power and toughness are each equal to the number of +1/+1 counters on creatures you control.\nSuspend X—{X}{G}{G}. X can't be 0. (Rather than cast this card from your hand, you may pay {X}{G}{G} and exile it with X time counters on it. At the beginning of your upkeep, remove a time counter. When the last is removed, cast it without paying its mana cost. It has haste.)\nWhenever a time counter is removed from Fungal Behemoth while it's exiled, you may put a +1/+1 counter on target creature.
|
||||
|
||||
@@ -4,5 +4,5 @@ Types:Creature Kavu
|
||||
PT:3/4
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return a red or green creature you control to its owner's hand.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.Red+YouCtrl,Creature.Green+YouCtrl | AILogic$ NeverBounceItself
|
||||
SVar:NeedsToPlay:Creature.Red+YouCtrl+cmcLE3+inZoneBattlefield+notnamedHorned Kavu,Creature.Green+YouCtrl+cmcLE3+inZoneBattlefield+notnamedHorned Kavu
|
||||
SVar:NeedsToPlay:Creature.Red+YouCtrl+cmcLE3+notnamedHorned Kavu,Creature.Green+YouCtrl+cmcLE3+notnamedHorned Kavu
|
||||
Oracle:When Horned Kavu enters the battlefield, return a red or green creature you control to its owner's hand.
|
||||
|
||||
@@ -4,7 +4,7 @@ Types:Artifact Equipment
|
||||
K:Flash
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigAttach | TriggerDescription$ When CARDNAME enters the battlefield, attach it to target creature you control.
|
||||
SVar:TrigAttach:DB$ Attach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl
|
||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | AddKeyword$ First Strike | Condition$ PlayerTurn | Description$ As long as it's your turn, equipped creature gets +2/+0 and has first strike.
|
||||
K:Equip:4
|
||||
Oracle:Flash\nWhen Javelin of Lightning enters the battlefield, attach it to target creature you control.\nAs long as it's your turn, equipped creature gets +2/+0 and has first strike.\nEquip {4} ({4}: Attach to target creature you control. Equip only as a sorcery.)
|
||||
|
||||
@@ -5,5 +5,5 @@ K:CARDNAME enters the battlefield tapped.
|
||||
A:AB$ Mana | Cost$ T | Produced$ C G | SpellDescription$ Add {C}{G}.
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSacUnless | TriggerDescription$ When CARDNAME enters the battlefield, sacrifice it unless you return an untapped Forest you control to its owner's hand.
|
||||
SVar:TrigSacUnless:DB$ Sacrifice | Defined$ Self | UnlessCost$ Return<1/Forest.untapped/untapped Forest> | UnlessPayer$ You
|
||||
SVar:NeedsToPlay:Forest.YouCtrl+inZoneBattlefield+untapped
|
||||
SVar:NeedsToPlay:Forest.YouCtrl+untapped
|
||||
Oracle:Jungle Basin enters the battlefield tapped.\nWhen Jungle Basin enters the battlefield, sacrifice it unless you return an untapped Forest you control to its owner's hand.\n{T}: Add {C}{G}.
|
||||
|
||||
@@ -5,5 +5,5 @@ K:CARDNAME enters the battlefield tapped.
|
||||
A:AB$ Mana | Cost$ T | Produced$ C W | SpellDescription$ Add {C}{W}.
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSacUnless | TriggerDescription$ When CARDNAME enters the battlefield, sacrifice it unless you return an untapped Plains you control to its owner's hand.
|
||||
SVar:TrigSacUnless:DB$ Sacrifice | Defined$ Self | UnlessCost$ Return<1/Plains.untapped/untapped Plains> | UnlessPayer$ You
|
||||
SVar:NeedsToPlay:Plains.YouCtrl+inZoneBattlefield+untapped
|
||||
SVar:NeedsToPlay:Plains.YouCtrl+untapped
|
||||
Oracle:Karoo enters the battlefield tapped.\nWhen Karoo enters the battlefield, sacrifice it unless you return an untapped Plains you control to its owner's hand.\n{T}: Add {C}{W}.
|
||||
|
||||
@@ -5,5 +5,5 @@ PT:3/2
|
||||
S:Mode$ CantBlockBy | ValidAttacker$ Creature.Self | Description$ CARDNAME can't be blocked.
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return a creature you control to its owner's hand.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.YouCtrl | AILogic$ NeverBounceItself
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+cmcLE4+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+cmcLE4
|
||||
Oracle:Keymaster Rogue can't be blocked.\nWhen Keymaster Rogue enters the battlefield, return a creature you control to its owner's hand.
|
||||
|
||||
@@ -5,5 +5,5 @@ PT:2/3
|
||||
K:Flying
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return a permanent you control to its owner's hand.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Permanent.YouCtrl | AILogic$ NeverBounceItself
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+cmcLE2+inZoneBattlefield,Permanent.nonLand+YouCtrl+cmcLE1
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+cmcLE2,Permanent.nonLand+YouCtrl+cmcLE1
|
||||
Oracle:Flying\nWhen Kor Skyfisher enters the battlefield, return a permanent you control to its owner's hand.
|
||||
|
||||
@@ -16,5 +16,6 @@ SVar:TrigLandPlayed:Mode$ LandPlayed | ValidCard$ Land.IsRemembered | Static$ Tr
|
||||
SVar:TrigCast:Mode$ SpellCast | ValidCard$ Card.IsRemembered | Static$ True | TriggerZones$ Command | Execute$ TrigRemoveSelf
|
||||
SVar:TrigRemoveSelf:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
SVar:NeedsToPlay:Card.inZoneGraveyard+OppOwn
|
||||
SVar:NeedsToPlayVar:Check GE1
|
||||
SVar:Check:Count$ValidGraveyard Card.OppOwn
|
||||
Oracle:When Kotose, the Silent Spider enters the battlefield, exile target card other than a basic land card from an opponent's graveyard. Search that player's graveyard, hand, and library for any number of cards with the same name as that card and exile them. Then that player shuffles. For as long as you control Kotose, you may play one of the exiled cards, and you may spend mana as though it were mana of any color to cast it.
|
||||
|
||||
@@ -6,5 +6,5 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDiscard | TriggerDescription$ When CARDNAME enters the battlefield, each player discards a card.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.Black+YouCtrl,Creature.Blue+YouCtrl | AILogic$ NeverBounceItself
|
||||
SVar:TrigDiscard:DB$ Discard | Defined$ Player | NumCards$ 1 | Mode$ TgtChoose
|
||||
SVar:NeedsToPlay:Creature.Black+YouCtrl+cmcLE3+inZoneBattlefield,Creature.Blue+YouCtrl+cmcLE3+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.Black+YouCtrl+cmcLE3,Creature.Blue+YouCtrl+cmcLE3
|
||||
Oracle:When Marsh Crocodile enters the battlefield, return a blue or black creature you control to its owner's hand.\nWhen Marsh Crocodile enters the battlefield, each player discards a card.
|
||||
|
||||
@@ -5,5 +5,5 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S
|
||||
SVar:TrigAttach:DB$ Attach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control
|
||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | AddToughness$ 2 | AddKeyword$ Flying & First Strike | Description$ Equipped creature gets +2/+2 and has flying and first strike.
|
||||
K:Equip:2 W W
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl
|
||||
Oracle:When Maul of the Skyclaves enters the battlefield, attach it to target creature you control.\nEquipped creature gets +2/+2 and has flying and first strike.\nEquip {2}{W}{W}
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:B
|
||||
Types:Artifact Equipment
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigAttach | TriggerDescription$ When CARDNAME enters the battlefield, attach it to target creature you control.
|
||||
SVar:TrigAttach:DB$ Attach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl
|
||||
S:Mode$ Continuous | Affected$ Card.EquippedBy | AddPower$ X | AddToughness$ Y | Description$ Equipped creature gets +1/+0. It gets +3/+1 instead as long as an opponent has eight or more cards in their graveyard.
|
||||
SVar:X:Count$Compare Z GE8.3.1
|
||||
SVar:Y:Count$Compare Z GE8.1.0
|
||||
|
||||
@@ -8,5 +8,5 @@ SVar:DBCopy:DB$ Clone | Choices$ Creature.Other | AddTypes$ Illusion | AddTrigge
|
||||
SVar:PhantasmalImageTgtTrig:Mode$ BecomesTarget | ValidTarget$ Card.Self | Execute$ PhantasmalImageSac | TriggerDescription$ When this creature becomes the target of a spell or ability, sacrifice it.
|
||||
SVar:PhantasmalImageSac:DB$ Sacrifice | Defined$ Self
|
||||
SVar:Targeting:Dies
|
||||
SVar:NeedsToPlay:Creature.inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature
|
||||
Oracle:You may have Phantasmal Image enter the battlefield as a copy of any creature on the battlefield, except it's an Illusion in addition to its other types and it has "When this creature becomes the target of a spell or ability, sacrifice it."
|
||||
|
||||
@@ -6,5 +6,5 @@ K:ETBReplacement:Copy:DBCopy:Optional
|
||||
SVar:DBCopy:DB$ Clone | Choices$ Creature.Other | AddTriggers$ ProgenitorTrig | AddSVars$ ProgenitorCopy,ProgenitorTrig | SpellDescription$ You may have Progenitor Mimic enter the battlefield as a copy of any creature on the battlefield, except it has "At the beginning of your upkeep, if this creature isn't a token, create a token that's a copy of this creature."
|
||||
SVar:ProgenitorTrig:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ ProgenitorCopy | IsPresent$ Card.Self+nonToken | TriggerDescription$ At the beginning of your upkeep, if CARDNAME isn't a token, create a token that's a copy of CARDNAME."
|
||||
SVar:ProgenitorCopy:DB$ CopyPermanent | Defined$ Self | NumCopies$ 1
|
||||
SVar:NeedsToPlay:Creature.inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature
|
||||
Oracle:You may have Progenitor Mimic enter the battlefield as a copy of any creature on the battlefield, except it has "At the beginning of your upkeep, if this creature isn't a token, create a token that's a copy of this creature."
|
||||
|
||||
@@ -6,7 +6,7 @@ SVar:TrigAttach:DB$ Attach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select tar
|
||||
S:Mode$ Continuous | Affected$ Card.EquippedBy | AddPower$ X | AddKeyword$ Menace | Description$ Equipped creature gets +1/+0 for each creature in your party and has menace. (Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.)
|
||||
SVar:X:Count$Party
|
||||
K:Equip:2 B R
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl
|
||||
DeckHas:Ability$Party
|
||||
DeckHints:Type$Cleric|Rogue|Warrior|Wizard
|
||||
Oracle:When Ravager's Mace enters the battlefield, attach it to target creature you control.\nEquipped creature gets +1/+0 for each creature in your party and has menace. (Your party consists of up to one each of Cleric, Rogue, Warrior, and Wizard.)\nEquip {2}{B}{R}
|
||||
|
||||
@@ -7,5 +7,5 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.Black+YouCtrl,Creature.Red+YouCtrl | AILogic$ NeverBounceItself
|
||||
SVar:TrigSac:DB$ Sacrifice | Defined$ Player | SacValid$ Land
|
||||
AI:RemoveDeck:Random
|
||||
SVar:NeedsToPlay:Creature.Black+cmcLE3+YouCtrl+inZoneBattlefield,Creature.Red+cmcLE3+YouCtrl+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.Black+cmcLE3+YouCtrl,Creature.Red+cmcLE3+YouCtrl
|
||||
Oracle:When Razing Snidd enters the battlefield, return a black or red creature you control to its owner's hand.\nWhen Razing Snidd enters the battlefield, each player sacrifices a land.
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Reckless Cohort
|
||||
ManaCost:1 R
|
||||
Types:Creature Human Warrior Ally
|
||||
PT:2/2
|
||||
S:Mode$ MustAttack | ValidCreature$ Card.Self | IsPresent$ Valid Ally.Other+YouCtrl | PresentCompare$ EQ0 | Description$ CARDNAME attacks each combat if able unless you control another Ally.
|
||||
S:Mode$ MustAttack | ValidCreature$ Card.Self | IsPresent$ Ally.Other+YouCtrl | PresentCompare$ EQ0 | Description$ CARDNAME attacks each combat if able unless you control another Ally.
|
||||
SVar:BuffedBy:Ally
|
||||
DeckHints:Type$Ally
|
||||
Oracle:Reckless Cohort attacks each combat if able unless you control another Ally.
|
||||
|
||||
@@ -8,6 +8,6 @@ SVar:X:Count$Compare Y GE1.2.1
|
||||
SVar:Y:Targeted$Valid Warrior
|
||||
SVar:Y:Count$Valid Warrior.AttachedBy
|
||||
K:Equip:2
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl
|
||||
DeckHints:Type$Warrior
|
||||
Oracle:When Relic Axe enters the battlefield, attach it to target creature you control.\nEquipped creature gets +1/+1. If it's a Warrior, it gets +2/+1 instead.\nEquip {2}
|
||||
|
||||
@@ -5,5 +5,5 @@ PT:4/4
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigBounce | TriggerDescription$ At the beginning of your upkeep, return a creature you control to its owner's hand.
|
||||
SVar:TrigBounce:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.YouCtrl | ChangeNum$ 1
|
||||
AI:RemoveDeck:Random
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl
|
||||
Oracle:At the beginning of your upkeep, return a creature you control to its owner's hand.
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:1 R
|
||||
Types:Artifact Equipment
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigAttach | TriggerDescription$ When CARDNAME enters the battlefield, attach it to target creature you control.
|
||||
SVar:TrigAttach:DB$ Attach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl
|
||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 2 | Description$ Equipped creature gets +2/+0.
|
||||
K:Equip:2 R
|
||||
Oracle:When Scavenged Blade enters the battlefield, attach it to target creature you control.\nEquipped creature gets +2/+0.\nEquip {2}{R} ({2}{R}: Attach to target creature you control. Equip only as a sorcery.)
|
||||
|
||||
@@ -2,7 +2,7 @@ Name:Shanna, Sisay's Legacy
|
||||
ManaCost:G W
|
||||
Types:Legendary Creature Human Warrior
|
||||
PT:0/0
|
||||
S:Mode$ CantTarget | ValidCard$ Card.Self | ValidSource$ Card | ValidSA$ Activated,Triggered | Activator$ Player.Opponent | Description$ CARDNAME can't be the target of abilities your opponents control.
|
||||
S:Mode$ CantTarget | ValidCard$ Card.Self | ValidSA$ Activated,Triggered | Activator$ Player.Opponent | Description$ CARDNAME can't be the target of abilities your opponents control.
|
||||
S:Mode$ Continuous | Affected$ Card.Self | AddPower$ X | AddToughness$ X | Description$ CARDNAME gets +1/+1 for each creature you control.
|
||||
SVar:X:Count$Valid Creature.YouCtrl
|
||||
SVar:BuffedBy:Creature
|
||||
|
||||
@@ -5,5 +5,5 @@ PT:7/7
|
||||
K:Trample
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return a red or green creature you control to its owner's hand.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.Red+YouCtrl,Creature.Green+YouCtrl | AILogic$ NeverBounceItself
|
||||
SVar:NeedsToPlay:Creature.Red+YouCtrl+cmcLE5+inZoneBattlefield,Creature.Green+YouCtrl+cmcLE5+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.Red+YouCtrl+cmcLE5,Creature.Green+YouCtrl+cmcLE5
|
||||
Oracle:Trample\nWhen Shivan Wurm enters the battlefield, return a red or green creature you control to its owner's hand.
|
||||
|
||||
@@ -5,5 +5,5 @@ PT:1/1
|
||||
K:Flying
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return a creature you control to its owner's hand.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.YouCtrl | AILogic$ NeverBounceItself
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+token+powerLE2+inZoneBattlefield,Creature.YouCtrl+nonToken+cmcLE2+powerLE1+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl
|
||||
Oracle:Flying\nWhen Shrieking Drake enters the battlefield, return a creature you control to its owner's hand.
|
||||
|
||||
@@ -5,5 +5,5 @@ PT:3/3
|
||||
K:Flying
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return a white or blue creature you control to its owner's hand.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.White+YouCtrl,Creature.Blue+YouCtrl | AILogic$ NeverBounceItself
|
||||
SVar:NeedsToPlay:Creature.White+YouCtrl+cmcLE3+inZoneBattlefield,Creature.Blue+YouCtrl+cmcLE3+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.White+YouCtrl+cmcLE3,Creature.Blue+YouCtrl+cmcLE3
|
||||
Oracle:Flying\nWhen Silver Drake enters the battlefield, return a white or blue creature you control to its owner's hand.
|
||||
|
||||
@@ -6,6 +6,6 @@ SVar:TrigAttach:DB$ Attach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select tar
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Land.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Landfall - Whenever a land enters the battlefield under your control, equipped creature gets +2/+2 until end of turn.
|
||||
SVar:TrigPump:DB$ Pump | Defined$ Equipped | NumAtt$ 2 | NumDef$ 2
|
||||
K:Equip:2 G
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl
|
||||
SVar:BuffedBy:Land
|
||||
Oracle:When Skyclave Pick-Axe enters the battlefield, attach it to target creature you control.\nLandfall — Whenever a land enters the battlefield under your control, equipped creature gets +2/+2 until end of turn.\nEquip {2}{G}
|
||||
|
||||
@@ -6,5 +6,5 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDealDamage | TriggerDescription$ When CARDNAME enters the battlefield, it deals 1 damage to target player or planeswalker.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | ChangeType$ Creature.Red+YouCtrl,Creature.Green+YouCtrl | ChangeNum$ 1 | Mandatory$ True | AILogic$ NeverBounceItself
|
||||
SVar:TrigDealDamage:DB$ DealDamage | ValidTgts$ Player,Planeswalker | TgtPrompt$ Select target player or planeswalker | NumDmg$ 1
|
||||
SVar:NeedsToPlay:Creature.Red+YouCtrl+cmcLE4+inZoneBattlefield,Creature.Green+YouCtrl+cmcLE4+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.Red+YouCtrl+cmcLE4,Creature.Green+YouCtrl+cmcLE4
|
||||
Oracle:When Sparkcaster enters the battlefield, return a red or green creature you control to its owner's hand.\nWhen Sparkcaster enters the battlefield, it deals 1 damage to target player or planeswalker.
|
||||
|
||||
@@ -5,5 +5,5 @@ PT:5/1
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSac | TriggerDescription$ When CARDNAME enters the battlefield, sacrifice a creature.
|
||||
SVar:TrigSac:DB$ Sacrifice | Defined$ You | SacValid$ Creature
|
||||
A:AB$ Regenerate | Cost$ B | SpellDescription$ Regenerate CARDNAME.
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+cmcLE3+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+cmcLE3
|
||||
Oracle:When Spined Fluke enters the battlefield, sacrifice a creature.\n{B}: Regenerate Spined Fluke.
|
||||
|
||||
@@ -5,5 +5,5 @@ PT:4/4
|
||||
K:First Strike
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return a green or white creature you control to its owner's hand.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.White+YouCtrl,Creature.Green+YouCtrl | AILogic$ NeverBounceItself
|
||||
SVar:NeedsToPlay:Creature.White+YouCtrl+cmcLE4+inZoneBattlefield,Creature.Green+YouCtrl+cmcLE4+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.White+YouCtrl+cmcLE4,Creature.Green+YouCtrl+cmcLE4
|
||||
Oracle:First strike\nWhen Steel Leaf Paladin enters the battlefield, return a green or white creature you control to its owner's hand.
|
||||
|
||||
@@ -8,5 +8,5 @@ T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.S
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.YouCtrl | ChangeNum$ 1 | AILogic$ NeverBounceItself
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange2 | TriggerDescription$ When CARDNAME enters the battlefield, exile target card from a graveyard.
|
||||
SVar:TrigChange2:DB$ ChangeZone | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Card | TgtPrompt$ Select target card from any graveyard
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+cmcLE3+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+nonToken
|
||||
Oracle:Flash\nFlying\nWhen Stonecloaker enters the battlefield, return a creature you control to its owner's hand.\nWhen Stonecloaker enters the battlefield, exile target card from a graveyard.
|
||||
|
||||
@@ -5,5 +5,5 @@ PT:3/2
|
||||
S:Mode$ CantBlockBy | ValidAttacker$ Creature.Self | Description$ CARDNAME can't be blocked.
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return a creature you control to its owner's hand.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.YouCtrl | AILogic$ NeverBounceItself
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+cmcLE4+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+nonToken
|
||||
Oracle:Storm Sculptor can't be blocked.\nWhen Storm Sculptor enters the battlefield, return a creature you control to its owner's hand.
|
||||
|
||||
@@ -3,7 +3,7 @@ ManaCost:1
|
||||
Types:Artifact Equipment
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigAttach | TriggerDescription$ When CARDNAME enters the battlefield, attach it to target creature you control.
|
||||
SVar:TrigAttach:DB$ Attach | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl
|
||||
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 1 | AddToughness$ 1 | Description$ Equipped creature gets +1/+1.
|
||||
K:Equip:3
|
||||
Oracle:When Utility Knife enters the battlefield, attach it to target creature you control.\nEquipped creature gets +1/+1.\nEquip {3} ({3}: Attach to target creature you control. Equip only as a sorcery.)
|
||||
|
||||
@@ -3,6 +3,6 @@ ManaCost:1 U R
|
||||
Types:Legendary Creature Tyranid Human
|
||||
PT:3/2
|
||||
K:Ward:2
|
||||
T:Mode$ DamageDone | ValidSource$ Card.Other+YouCtrl | ValidTarget$ Player,Permanent | TriggerZones$ Battlefield | DamageAmount$ EQ1 | Execute$ TrigDamage | TriggerDescription$ Three Autostubs — Whenever another source you control deals exactly 1 damage to a permanent or player, CARDNAME deals 2 damage to that permanent or player.
|
||||
T:Mode$ DamageDone | ValidSource$ Card.Other+YouCtrl,Emblem.YouCtrl | ValidTarget$ Player,Permanent | TriggerZones$ Battlefield | DamageAmount$ EQ1 | Execute$ TrigDamage | TriggerDescription$ Three Autostubs — Whenever another source you control deals exactly 1 damage to a permanent or player, CARDNAME deals 2 damage to that permanent or player.
|
||||
SVar:TrigDamage:DB$ DealDamage | NumDmg$ 2 | Defined$ TriggeredTarget
|
||||
Oracle:Ward {2} (Whenever this creature becomes the target of a spell or ability an opponent controls, counter it unless that player pays {2}.)\nThree Autostubs — Whenever another source you control deals exactly 1 damage to a permanent or player, Ghyrson Starn, Kelermorph deals 2 damage to that permanent or player.
|
||||
|
||||
@@ -4,8 +4,8 @@ Types:Creature Shapeshifter
|
||||
PT:0/0
|
||||
# Make Svars for granting abilities and triggers on clones distinct to avoid SVars getting overwritten when cloning a clone
|
||||
K:ETBReplacement:Copy:ChooseCreature:Optional
|
||||
SVar:ChooseCreature:DB$ ChooseCard | Defined$ You | Amount$ 1 | Choices$ Creature.Other | SubAbility$ DBCopy | RememberChosen$ True | AILogic$ Clone | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any creature on the battlefield, except it doesn't copy that creature's color and it has "At the beginning of your upkeep, you may have this creature become a copy of target creature, except it doesn't copy that creature's color and it has this ability."
|
||||
SVar:DBCopy:DB$ Clone | Defined$ Remembered | Colors$ Blue | OverwriteColors$ True | AddTriggers$ VesDopUpkeepTrig | AddSVars$ VesDopCopy,VesDopUpkeepTrig
|
||||
SVar:ChooseCreature:DB$ ChooseCard | Defined$ You | Amount$ 1 | Choices$ Creature.Other | SubAbility$ DBCopy | AILogic$ Clone | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any creature on the battlefield, except it doesn't copy that creature's color and it has "At the beginning of your upkeep, you may have this creature become a copy of target creature, except it doesn't copy that creature's color and it has this ability."
|
||||
SVar:DBCopy:DB$ Clone | Defined$ ChosenCard | SetColor$ Blue | AddTriggers$ VesDopUpkeepTrig | AddSVars$ VesDopCopy,VesDopUpkeepTrig
|
||||
SVar:VesDopUpkeepTrig:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ VesDopCopy | TriggerDescription$ At the beginning of your upkeep, you may have this creature become a copy of target creature, except it doesn't copy that creature's color and it has this ability.
|
||||
SVar:VesDopCopy:DB$ Clone | ValidTgts$ Creature | TgtPrompt$ Select target creature to copy. | Optional$ True | Colors$ Blue | OverwriteColors$ True | GainThisAbility$ True | AddSVars$ VesDopCopy | AILogic$ CloneBestCreature
|
||||
SVar:VesDopCopy:DB$ Clone | ValidTgts$ Creature | TgtPrompt$ Select target creature to copy. | Optional$ True | SetColor$ Blue | GainThisAbility$ True | AddSVars$ VesDopCopy | AILogic$ CloneBestCreature
|
||||
Oracle:You may have Vesuvan Doppelganger enter the battlefield as a copy of any creature on the battlefield, except it doesn't copy that creature's color and it has "At the beginning of your upkeep, you may have this creature become a copy of target creature, except it doesn't copy that creature's color and it has this ability."
|
||||
|
||||
@@ -5,6 +5,6 @@ PT:0/0
|
||||
K:ETBReplacement:Copy:DBCopy:Optional
|
||||
SVar:DBCopy:DB$ Clone | Choices$ Creature.Other | Embalm$ True | SpellDescription$ You may have CARDNAME enter the battlefield as a copy of any creature on the battlefield, except if CARDNAME was embalmed, the token has no mana cost, it's white, and it's a Zombie in addition to its other types.
|
||||
K:Embalm:3 U U
|
||||
SVar:NeedsToPlay:Creature.inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature
|
||||
DeckHas:Ability$Token
|
||||
Oracle:You may have Vizier of Many Faces enter the battlefield as a copy of any creature on the battlefield, except if Vizier of Many Faces was embalmed, the token has no mana cost, it's white, and it's a Zombie in addition to its other types.\nEmbalm {3}{U}{U}
|
||||
|
||||
@@ -4,6 +4,6 @@ Types:Creature Lizard
|
||||
PT:6/3
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDamage | TriggerDescription$ When CARDNAME enters the battlefield, it deals 3 damage to target creature you control.
|
||||
SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature.YouCtrl | NumDmg$ 3 | TgtPrompt$ Select target creature you control
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl
|
||||
AI:RemoveDeck:Random
|
||||
Oracle:When Whiptail Moloch enters the battlefield, it deals 3 damage to target creature you control.
|
||||
|
||||
@@ -5,5 +5,5 @@ PT:2/2
|
||||
K:Flash
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return a creature you control to its owner's hand.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.YouCtrl | ChangeNum$ 1 | AILogic$ NeverBounceItself
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+token+powerLE1+toughnessLE3,Creature.YouCtrl+cmcLE2+powerLE1+toughnessLE3+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+nonToken
|
||||
Oracle:Flash\nWhen Whitemane Lion enters the battlefield, return a creature you control to its owner's hand.
|
||||
|
||||
@@ -4,5 +4,5 @@ Types:Creature Elemental
|
||||
PT:4/4
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, return another creature you control to its owner's hand.
|
||||
SVar:TrigChange:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | ChangeType$ Creature.Other+YouCtrl
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+cmcLE5+inZoneBattlefield
|
||||
SVar:NeedsToPlay:Creature.YouCtrl+nonToken
|
||||
Oracle:When Yarok's Wavecrasher enters the battlefield, return another creature you control to its owner's hand.
|
||||
|
||||
@@ -110,7 +110,6 @@ public abstract class GameLobby implements IHasGameType {
|
||||
final boolean archenemyRemoved = triesToChangeArchenemy && !event.getArchenemy().booleanValue();
|
||||
final boolean hasArchenemyChanged = triesToChangeArchenemy && slot.isArchenemy() != event.getArchenemy().booleanValue();
|
||||
|
||||
|
||||
final boolean changed = slot.apply(event) || hasArchenemyChanged;
|
||||
|
||||
// Change archenemy teams
|
||||
@@ -134,7 +133,6 @@ public abstract class GameLobby implements IHasGameType {
|
||||
listener.update(index,event.getType());
|
||||
}
|
||||
|
||||
|
||||
if (changed) {
|
||||
updateView(false);
|
||||
}
|
||||
@@ -362,7 +360,7 @@ public abstract class GameLobby implements IHasGameType {
|
||||
}
|
||||
|
||||
for (final LobbySlot slot : activeSlots) {
|
||||
if (!slot.isReady() && slot.getType() != LobbySlotType.OPEN) {
|
||||
if (!slot.isReady()) {
|
||||
SOptionPane.showMessageDialog(Localizer.getInstance().getMessage("lblPlayerIsNotReady", slot.getName()));
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user