Merge branch 'master' into AI-The-Dark

This commit is contained in:
tool4ever
2022-10-12 15:20:28 +02:00
committed by GitHub
60 changed files with 90 additions and 95 deletions

View File

@@ -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

View File

@@ -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) {

View File

@@ -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);

View File

@@ -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")) {

View File

@@ -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);

View File

@@ -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.
*

View File

@@ -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;

View File

@@ -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.

View File

@@ -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.

View File

@@ -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

View File

@@ -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.

View File

@@ -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.)

View File

@@ -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.

View File

@@ -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}.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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}.

View File

@@ -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

View File

@@ -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}.

View File

@@ -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

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.)

View File

@@ -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}.

View File

@@ -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}.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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}

View File

@@ -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

View File

@@ -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."

View File

@@ -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."

View File

@@ -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}

View File

@@ -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.

View File

@@ -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.

View File

@@ -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}

View File

@@ -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.

View File

@@ -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.)

View File

@@ -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

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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}

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.)

View File

@@ -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.

View File

@@ -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."

View File

@@ -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}

View File

@@ -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.

View File

@@ -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.

View File

@@ -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.

View File

@@ -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;
}