Ring tempts you (#3453)

* Ring tempts you WIP

* add ring triggers

* Update RingTemptsYouEffect.java

* Add files via upload

* Update TriggerRingbearerChosen.java

* Update token-images.txt

* Update TrackableProperty.java

* Update CardView.java

* Update CardRenderer.java

* Update RingTemptsYouEffect.java

fix crash

* Update Card.java

* Update CardView.java

* Update TrackableProperty.java

* Update StaticAbilityContinuous.java

* Update StaticEffect.java

* Update RingTemptsYouEffect.java

* update sprite_manaicons.png

* Update FSkinProp.java

* Update FSkinImage.java

* Update CardFaceSymbols.java

* Update CardRenderer.java

* update trigger

* update desktop symbol, add aragorn company leader

* update cleanup, add bilbo, add birthday escape

* update cleanup

* add 3 cards

* add five cards

* add two cards

* update aragorn,update bombadil, add two cards

* add ten cards

* Update horses_of_the_bruinen.txt

* add dunedain rangers + cleanup

* Update gollums_bite.txt

* update cleanup

* add six cards

* delete unnecessary file

* Update rangers_firebrand.txt

* add two cards, add RingTemptedYou playerproperty

* update frodo, add three cards

* update sauron, samwise, add two cards

* Update sauron_the_dark_lord.txt

* update validplayer

* add six cards

* update smeagol

* update sauron ransom two piles

* add four cards

* add three cards

* update card scripts

* Update war_of_the_last_alliance.txt

* update scripts, update ringbearer

* update CardDetailUtil

* remove unused param

* Update affected

* remove unnecesary variables

* update

* update scripts

* update RingTemptsYouEffect

* fix cantblockby RingTemptsYouEffect.java

* The Ring: use numTemptYou for RingLevel

* Update dunedain_rangers.txt

* Update jaces_defeat.txt

* update lord of the nazgul

* fix theRing CardView

* update ringEffect, update translation

* update translation

* update gamestate

* replace switch with if else

* fix effect

* update gamestate, translation

* update restartgameeffect, remove unneeded clearRingBearer

---------

Co-authored-by: Anthony Calosa <anthonycalosa@gmail.com>
Co-authored-by: tool4ever <therealtoolkit@hotmail.com>
Co-authored-by: Hans Mackowiak <hanmac@gmx.de>
This commit is contained in:
Chris H
2023-07-26 13:07:41 -04:00
committed by GitHub
parent 69748ab0fb
commit abb2ff3cdf
106 changed files with 1038 additions and 231 deletions

View File

@@ -59,6 +59,7 @@ public abstract class GameState {
private String persistentMana = "";
private int landsPlayed = 0;
private int landsPlayedLastTurn = 0;
private int numRingTemptedYou = 0;
private String precast = null;
private String putOnStack = null;
private final Map<ZoneType, String> cardTexts = new EnumMap<>(ZoneType.class);
@@ -135,6 +136,7 @@ public abstract class GameState {
sb.append(TextUtil.concatNoSpace(prefix + "life=", String.valueOf(p.life), "\n"));
sb.append(TextUtil.concatNoSpace(prefix + "landsplayed=", String.valueOf(p.landsPlayed), "\n"));
sb.append(TextUtil.concatNoSpace(prefix + "landsplayedlastturn=", String.valueOf(p.landsPlayedLastTurn), "\n"));
sb.append(TextUtil.concatNoSpace(prefix + "numringtemptedyou=", String.valueOf(p.numRingTemptedYou), "\n"));
if (!p.counters.isEmpty()) {
sb.append(TextUtil.concatNoSpace(prefix + "counters=", p.counters, "\n"));
}
@@ -164,6 +166,7 @@ public abstract class GameState {
p.landsPlayedLastTurn = player.getLandsPlayedLastTurn();
p.counters = countersToString(player.getCounters());
p.manaPool = processManaPool(player.getManaPool());
p.numRingTemptedYou = player.getNumRingTemptedYou();
playerStates.add(p);
}
@@ -269,6 +272,9 @@ public abstract class GameState {
if (c.isCommander()) {
newText.append("|IsCommander");
}
if (c.isRingBearer()) {
newText.append("|IsRingBearer");
}
if (cardsReferencedByID.contains(c)) {
newText.append("|Id:").append(c.getId());
@@ -518,6 +524,8 @@ public abstract class GameState {
getPlayerState(categoryName).landsPlayed = Integer.parseInt(categoryValue);
} else if (categoryName.endsWith("landsplayedlastturn")) {
getPlayerState(categoryName).landsPlayedLastTurn = Integer.parseInt(categoryValue);
} else if (categoryName.endsWith("numringtemptedyou")) {
getPlayerState(categoryName).numRingTemptedYou = Integer.parseInt(categoryValue);
} else if (categoryName.endsWith("play") || categoryName.endsWith("battlefield")) {
getPlayerState(categoryName).cardTexts.put(ZoneType.Battlefield, categoryValue);
} else if (categoryName.endsWith("hand")) {
@@ -1110,6 +1118,7 @@ public abstract class GameState {
}
p.setCommanders(Lists.newArrayList());
p.clearTheRing();
Map<ZoneType, CardCollectionView> playerCards = new EnumMap<>(ZoneType.class);
for (Entry<ZoneType, String> kv : state.cardTexts.entrySet()) {
@@ -1120,6 +1129,7 @@ public abstract class GameState {
if (state.life >= 0) p.setLife(state.life, null);
p.setLandsPlayedThisTurn(state.landsPlayed);
p.setLandsPlayedLastTurn(state.landsPlayedLastTurn);
p.setNumRingTemptedYou(state.numRingTemptedYou);
p.clearPaidForSA();
@@ -1175,6 +1185,14 @@ public abstract class GameState {
if (!state.counters.isEmpty()) {
applyCountersToGameEntity(p, state.counters);
}
if (state.numRingTemptedYou > 0) {
//setup all levels
for (int i = 1; i <= state.numRingTemptedYou; i++) {
if (i > 4)
break;
p.setRingLevel(i);
}
}
}
/**
@@ -1300,6 +1318,9 @@ public abstract class GameState {
List<Card> cmd = Lists.newArrayList(player.getCommanders());
cmd.add(c);
player.setCommanders(cmd);
} else if (info.startsWith("IsRingBearer")) {
c.setRingBearer(true);
player.setRingBearer(c);
} else if (info.startsWith("Id:")) {
int id = Integer.parseInt(info.substring(3));
idToCard.put(id, c);

View File

@@ -159,6 +159,7 @@ public enum SpellApiToAi {
.put(ApiType.Reveal, RevealAi.class)
.put(ApiType.RevealHand, RevealHandAi.class)
.put(ApiType.ReverseTurnOrder, AlwaysPlayAi.class)
.put(ApiType.RingTemptsYou, AlwaysPlayAi.class)
.put(ApiType.RollDice, RollDiceAi.class)
.put(ApiType.RollPlanarDice, RollPlanarDiceAi.class)
.put(ApiType.RunChaos, AlwaysPlayAi.class)

View File

@@ -1012,6 +1012,9 @@ public class GameAction {
partner.updateStateForView();
}
// run Game Commands early
c.runChangeControllerCommands();
game.getTriggerHandler().suppressMode(TriggerType.ChangesZone);
oldBattlefield.remove(c);
@@ -1027,7 +1030,7 @@ public class GameAction {
game.getTriggerHandler().runTrigger(TriggerType.ChangesController, runParams, false);
game.getTriggerHandler().clearSuppression(TriggerType.ChangesZone);
c.runChangeControllerCommands();
}
// Temporarily disable (if mode = true) actively checking static abilities.

View File

@@ -3501,6 +3501,10 @@ public class AbilityUtils {
if (value.equals("DungeonsCompleted")) {
return doXMath(player.getCompletedDungeons().size(), m, source, ctb);
}
if (value.equals("RingTemptedYou")) {
return doXMath(player.getNumRingTemptedYou(), m, source, ctb);
}
if (value.startsWith("DungeonCompletedNamed")) {
String [] full = value.split("_");
String name = full[1];

View File

@@ -158,6 +158,8 @@ public enum ApiType {
Reveal (RevealEffect.class),
RevealHand (RevealHandEffect.class),
ReverseTurnOrder (ReverseTurnOrderEffect.class),
RingTemptsYou (RingTemptsYouEffect.class),
RollDice (RollDiceEffect.class),
RollPlanarDice (RollPlanarDiceEffect.class),
RunChaos (RunChaosEffect.class),

View File

@@ -587,11 +587,15 @@ public class CountersPutEffect extends SpellAbilityEffect {
GameEntityCounterTable table = new GameEntityCounterTable();
if (sa.hasParam("TriggeredCounterMap")) {
Integer counterMapValue = null;
if (sa.hasParam("CounterMapValues")) {
counterMapValue = Integer.valueOf(sa.getParam("CounterMapValues"));
}
@SuppressWarnings("unchecked")
Map<CounterType, Integer> counterMap = (Map<CounterType, Integer>) sa
.getTriggeringObject(AbilityKey.CounterMap);
for (Map.Entry<CounterType, Integer> e : counterMap.entrySet()) {
resolvePerType(sa, placer, e.getKey(), e.getValue(), table, false);
resolvePerType(sa, placer, e.getKey(), counterMapValue == null ? e.getValue() : counterMapValue, table, false);
}
} else if (sa.hasParam("SharedKeywords")) {
List<String> keywords = Arrays.asList(sa.getParam("SharedKeywords").split(" & "));

View File

@@ -20,12 +20,13 @@ import forge.game.zone.ZoneType;
import forge.util.Lang;
import forge.util.Localizer;
import forge.util.MyRandom;
import org.apache.commons.lang3.StringUtils;
public class DigUntilEffect extends SpellAbilityEffect {
/* (non-Javadoc)
* @see forge.card.abilityfactory.SpellEffect#getStackDescription(java.util.Map, forge.card.spellability.SpellAbility)
*/
* @see forge.card.abilityfactory.SpellEffect#getStackDescription(java.util.Map, forge.card.spellability.SpellAbility)
*/
@Override
protected String getStackDescription(SpellAbility sa) {
final StringBuilder sb = new StringBuilder();
@@ -33,7 +34,9 @@ public class DigUntilEffect extends SpellAbilityEffect {
String desc = sa.getParamOrDefault("ValidDescription", "Card");
int untilAmount = 1;
boolean isNumeric = true;
if (sa.hasParam("Amount")) {
isNumeric = StringUtils.isNumeric(sa.getParam("Amount"));
untilAmount = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("Amount"), sa);
}
@@ -42,7 +45,8 @@ public class DigUntilEffect extends SpellAbilityEffect {
final ZoneType revealed = ZoneType.smartValueOf(sa.getParam("RevealedDestination"));
sb.append(ZoneType.Exile.equals(revealed) ? "exiles cards from their library until they exile " :
"reveals cards from their library until revealing ");
sb.append(Lang.nounWithNumeralExceptOne(untilAmount, desc + " card"));
String noun = "Card".equals(desc) ? " card" : desc + " card";
sb.append(isNumeric ? Lang.nounWithNumeralExceptOne(untilAmount, noun) : "X " + noun);
if (untilAmount != 1) {
sb.append("s");
}
@@ -57,19 +61,30 @@ public class DigUntilEffect extends SpellAbilityEffect {
final ZoneType found = ZoneType.smartValueOf(sa.getParam("FoundDestination"));
if (found != null) {
sb.append(untilAmount > 1 ? "those cards" : "that card");
sb.append(untilAmount > 1 || !isNumeric ? "those cards" : "that card");
sb.append(" ");
if (ZoneType.Hand.equals(found)) {
sb.append("into their hand ");
}
if (ZoneType.Battlefield.equals(found)) {
sb.append("onto the battlefield ");
if (sa.hasParam("Tapped"))
sb.append("tapped ");
}
if (ZoneType.Graveyard.equals(revealed)) {
sb.append("and all other cards into their graveyard.");
}
if (ZoneType.Exile.equals(revealed)) {
sb.append("and exile all other cards revealed this way.");
}
if (ZoneType.Library.equals(revealed)) {
int revealedLibPos = AbilityUtils.calculateAmount(sa.getHostCard(), sa.getParam("RevealedLibraryPosition"), sa);
sb.append("and the rest on ").append(revealedLibPos < 0 ? "the bottom " : "on top ");
sb.append("of their library").append(sa.hasParam("RevealRandomOrder") ? " in a random order." : ".");
}
} else if (revealed != null) {
if (ZoneType.Hand.equals(revealed)) {
sb.append("all cards revealed this way into their hand");

View File

@@ -70,6 +70,9 @@ public class RestartGameEffect extends SpellAbilityEffect {
p.setLifeLostLastTurn(0);
p.resetCommanderStats();
p.resetCompletedDungeons();
p.resetRingTemptedYou();
p.clearRingBearer();
p.clearTheRing();
p.setBlessing(false);
p.clearController();

View File

@@ -0,0 +1,60 @@
package forge.game.ability.effects;
import forge.GameCommand;
import forge.game.Game;
import forge.game.ability.AbilityKey;
import forge.game.card.Card;
import forge.game.card.CardCollection;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;
import forge.game.trigger.TriggerType;
import forge.util.Localizer;
import java.util.Map;
public class RingTemptsYouEffect extends EffectEffect {
@Override
protected String getStackDescription(SpellAbility sa) {
return Localizer.getInstance().getMessage("lblTheRingTempts", sa.getActivatingPlayer());
}
@Override
public void resolve(SpellAbility sa) {
Player p = sa.getActivatingPlayer();
Game game = p.getGame();
Card card = sa.getHostCard();
if (p.getTheRing() == null)
p.createTheRing(card);
//increment ring tempted you for property
p.incrementRingTemptedYou();
p.setRingLevel(p.getNumRingTemptedYou());
// Then choose a ring-bearer (You may keep the same one). Auto pick if <2 choices.
CardCollection creatures = p.getCreaturesInPlay();
Card ringBearer = p.getController().chooseSingleEntityForEffect(creatures, sa, Localizer.getInstance().getMessageorUseDefault("lblChooseRingBearer", "Choose your Ring-bearer"), false, null);
p.setRingBearer(ringBearer);
// 701.52a That creature becomes your Ring-bearer until another player gains control of it.
if (ringBearer != null) {
GameCommand loseCommand = new GameCommand() {
private static final long serialVersionUID = 1L;
@Override
public void run() {
if (ringBearer.isRingBearer()) {
p.clearRingBearer();
}
}
};
ringBearer.addChangeControllerCommand(loseCommand);
ringBearer.addLeavesPlayCommand(loseCommand);
}
// Run triggers
final Map<AbilityKey, Object> runParams = AbilityKey.mapFromPlayer(p);
runParams.put(AbilityKey.Card, ringBearer);
game.getTriggerHandler().runTrigger(TriggerType.RingTemptsYou, runParams, false);
}
}

View File

@@ -30,7 +30,7 @@ public class TwoPilesEffect extends SpellAbilityEffect {
sb.append("Separate all ").append(valid).append(" cards ");
sb.append(Lang.joinHomogenous(getTargetPlayers(sa)));
sb.append("controls into two piles.");
sb.append(" controls into two piles.");
return sb.toString();
}

View File

@@ -209,7 +209,7 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
private boolean copiedSpell = false;
private boolean unearthed;
private boolean ringbearer;
private boolean monstrous;
private boolean renowned;
@@ -225,7 +225,6 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
private int timesCrewedThisTurn = 0;
private int classLevel = 1;
private long bestowTimestamp = -1;
private long transformedTimestamp = 0;
private long mutatedTimestamp = -1;
@@ -6032,6 +6031,16 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
public boolean wasDiscarded() { return discarded; }
public void setDiscarded(boolean state) { discarded = state; }
public final boolean isRingBearer() {
return ringbearer;
}
public final void setRingBearer(final boolean ringbearer0) {
ringbearer = ringbearer0;
view.updateRingBearer(this);
}
public final void clearRingBearer() {
setRingBearer(false);
}
public final boolean isMonstrous() {
return monstrous;
}

View File

@@ -167,6 +167,10 @@ public class CardProperty {
if (!card.isAdventureCard()) {
return false;
}
} else if (property.equals("IsRingbearer")) {
if (!card.isRingBearer()) {
return false;
}
} else if (property.equals("IsTriggerRemembered")) {
boolean found = false;
for (Object o : spellAbility.getTriggerRemembered()) {

View File

@@ -466,6 +466,15 @@ public class CardView extends GameEntityView {
set(TrackableProperty.ClassLevel, c.getClassLevel());
}
public int getRingLevel() {
return get(TrackableProperty.RingLevel);
}
void updateRingLevel(Card c) {
Player p = c.getController();
if (p != null && p.getTheRing() == c)
set(TrackableProperty.RingLevel, p.getNumRingTemptedYou());
}
private String getRemembered() {
return get(TrackableProperty.Remembered);
}
@@ -925,6 +934,7 @@ public class CardView extends GameEntityView {
updateZoneText(c);
updateDamage(c);
updateSpecialize(c);
updateRingLevel(c);
if (c.getIntensity(false) > 0) {
updateIntensity(c);
@@ -1064,6 +1074,14 @@ public class CardView extends GameEntityView {
set(TrackableProperty.BlockAny, c.canBlockAny());
}
public boolean isRingBearer() {
return get(TrackableProperty.IsRingBearer);
}
void updateRingBearer(Card c) {
set(TrackableProperty.IsRingBearer, c.isRingBearer());
}
Set<String> getCantHaveKeyword() {
return get(TrackableProperty.CantHaveKeyword);
}

View File

@@ -34,6 +34,7 @@ import java.util.Set;
import java.util.SortedSet;
import forge.game.event.*;
import forge.game.spellability.AbilitySub;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
@@ -166,12 +167,14 @@ public class Player extends GameEntity implements Comparable<Player> {
private int startingHandSize = 7;
private boolean unlimitedHandSize = false;
private Card lastDrawnCard;
private Card ringBearer, theRing;
private String namedCard = "";
private String namedCard2 = "";
private int simultaneousDamage = 0;
private int lastTurnNr = 0;
private int numRingTemptedYou = 0;
private final Map<String, FCollection<String>> notes = Maps.newHashMap();
private final Map<String, Integer> notedNum = Maps.newHashMap();
@@ -1829,7 +1832,28 @@ public class Player extends GameEntity implements Comparable<Player> {
lastDrawnCard = c;
return lastDrawnCard;
}
public final Card getRingBearer() {
return ringBearer;
}
public final Card getTheRing() {
return theRing;
}
public final void clearTheRing() {
theRing = null;
}
public final void setRingBearer(Card bearer) {
if (bearer == null)
return;
clearRingBearer();
ringBearer = bearer;
ringBearer.setRingBearer(true);
}
public void clearRingBearer() {
if (ringBearer == null)
return;
ringBearer.setRingBearer(false);
ringBearer = null;
}
public final String getNamedCard() {
return namedCard;
}
@@ -1927,6 +1951,19 @@ public class Player extends GameEntity implements Comparable<Player> {
completedDungeons.clear();
}
public final int getNumRingTemptedYou() {
return numRingTemptedYou;
}
public final void incrementRingTemptedYou() {
numRingTemptedYou++;
}
public final void setNumRingTemptedYou(int value) {
numRingTemptedYou = value;
}
public final void resetRingTemptedYou() {
numRingTemptedYou = 0;
}
public final List<Card> getPlaneswalkedToThisTurn() {
return planeswalkedToThisTurn;
}
@@ -3116,7 +3153,72 @@ public class Player extends GameEntity implements Comparable<Player> {
eff.addStaticAbility(mayBePlayedAbility);
return eff;
}
public void createTheRing(Card host) {
final PlayerZone com = getZone(ZoneType.Command);
if (theRing == null) {
theRing = new Card(game.nextCardId(), null, game);
theRing.setOwner(this);
theRing.setImmutable(true);
String image = ImageKeys.getTokenKey("the_ring");
if (host != null) {
theRing.setImageKey("t:the_ring_" + host.getSetCode().toLowerCase());
theRing.setSetCode(host.getSetCode());
} else {
theRing.setImageKey(image);
}
theRing.setName("The Ring");
theRing.updateStateForView();
com.add(theRing);
this.updateZoneForView(com);
}
}
public void setRingLevel(int level) {
if (getTheRing() == null)
createTheRing(null);
if (level == 1) {
String legendary = "Mode$ Continuous | EffectZone$ Command | Affected$ Card.YouCtrl+IsRingbearer | AddType$ Legendary | Description$ Your Ring-bearer is legendary.";
String cantBeBlocked = "Mode$ CantBlockBy | EffectZone$ Command | ValidAttacker$ Card.YouCtrl+IsRingbearer | ValidBlockerRelative$ Creature.powerGTX | Description$ Your Ring-bearer can't be blocked by creatures with greater power.";
getTheRing().addStaticAbility(legendary);
StaticAbility st = getTheRing().addStaticAbility(cantBeBlocked);
st.setSVar("X", "Count$CardPower");
} else if (level == 2) {
final String attackTrig = "Mode$ Attacks | ValidCard$ Card.YouCtrl+IsRingbearer | TriggerDescription$ Whenever your ring-bearer attacks, draw a card, then discard a card. | TriggerZones$ Command";
final String drawEffect = "DB$ Draw | Defined$ You | NumCards$ 1";
final String discardEffect = "DB$ Discard | Defined$ You | NumCards$ 1 | Mode$ TgtChoose";
final Trigger attackTrigger = TriggerHandler.parseTrigger(attackTrig, getTheRing(), true);
SpellAbility drawExecute = AbilityFactory.getAbility(drawEffect, getTheRing());
AbilitySub discardExecute = (AbilitySub) AbilityFactory.getAbility(discardEffect, getTheRing());
drawExecute.setSubAbility(discardExecute);
attackTrigger.setOverridingAbility(drawExecute);
getTheRing().addTrigger(attackTrigger);
} else if (level == 3) {
final String becomesBlockedTrig = "Mode$ AttackerBlockedByCreature | ValidCard$ Card.YouCtrl+IsRingbearer| ValidBlocker$ Creature | TriggerZones$ Command | TriggerDescription$ Whenever your Ring-bearer becomes blocked a creature, that creature's controller sacrifices it at the end of combat.";
final String endOfCombatTrig = "DB$ DelayedTrigger | Mode$ Phase | Phase$ EndCombat | RememberObjects$ TriggeredBlockerLKICopy | TriggerDescription$ At end of combat, the controller of the creature that blocked CARDNAME sacrifices that creature.";
final String sacBlockerEffect = "DB$ Destroy | Defined$ DelayTriggerRememberedLKI | Sacrifice$ True";
final Trigger becomesBlockedTrigger = TriggerHandler.parseTrigger(becomesBlockedTrig, getTheRing(), true);
SpellAbility endCombatExecute = AbilityFactory.getAbility(endOfCombatTrig, getTheRing());
AbilitySub sacExecute = (AbilitySub) AbilityFactory.getAbility(sacBlockerEffect, getTheRing());
endCombatExecute.setAdditionalAbility("Execute", sacExecute);
becomesBlockedTrigger.setOverridingAbility(endCombatExecute);
getTheRing().addTrigger(becomesBlockedTrigger);
} else if (level == 4) {
final String damageTrig = "Mode$ DamageDone | ValidSource$ Card.YouCtrl+IsRingbearer | ValidTarget$ Player | CombatDamage$ True | TriggerZones$ Command | TriggerDescription$ Whenever your Ring-bearer deals combat damage to a player, each opponent loses 3 life.";
final String loseEffect = "DB$ LoseLife | Defined$ Opponent | LifeAmount$ 3";
final Trigger damageTrigger = TriggerHandler.parseTrigger(damageTrig, getTheRing(), true);
SpellAbility loseExecute = AbilityFactory.getAbility(loseEffect, getTheRing());
damageTrigger.setOverridingAbility(loseExecute);
getTheRing().addTrigger(damageTrigger);
}
getTheRing().updateStateForView();
}
public void changeOwnership(Card card) {
// If lost then gained, just clear out of lost.
// If gained then lost, just clear out of gained.

View File

@@ -0,0 +1,42 @@
package forge.game.trigger;
import forge.game.ability.AbilityKey;
import forge.game.card.Card;
import forge.game.spellability.SpellAbility;
import forge.util.Localizer;
import java.util.Map;
public class TriggerRingTemptsYou extends Trigger {
public TriggerRingTemptsYou(Map<String, String> params, Card host, boolean intrinsic) {
super(params, host, intrinsic);
}
@Override
public boolean performTest(Map<AbilityKey, Object> runParams) {
if (!matchesValidParam("ValidPlayer", runParams.get(AbilityKey.Player))) {
return false;
}
if (!matchesValidParam("ValidCard", runParams.get(AbilityKey.Card))) {
return false;
}
return true;
}
/** {@inheritDoc} */
@Override
public final void setTriggeringObjects(final SpellAbility sa, Map<AbilityKey, Object> runParams) {
sa.setTriggeringObjectsFrom(runParams, AbilityKey.Player, AbilityKey.Card);
}
@Override
public String getImportantStackObjects(SpellAbility sa) {
StringBuilder sb = new StringBuilder();
sb.append(Localizer.getInstance().getMessage("lblPlayer")).append(": ");
sb.append(sa.getTriggeringObject(AbilityKey.Player)).append(", ");
return sb.toString();
}
}

View File

@@ -1,183 +1,184 @@
package forge.game.trigger;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;
import forge.game.card.Card;
/**
* TODO: Write javadoc for this type.
*
*/
public enum TriggerType {
Abandoned(TriggerAbandoned.class),
AbilityCast(TriggerSpellAbilityCastOrCopy.class),
AbilityResolves(TriggerAbilityResolves.class),
AbilityTriggered(TriggerAbilityTriggered.class),
Adapt(TriggerAdapt.class),
Always(TriggerAlways.class),
Attached(TriggerAttached.class),
AttackerBlocked(TriggerAttackerBlocked.class),
AttackerBlockedOnce(TriggerAttackerBlockedOnce.class),
AttackerBlockedByCreature(TriggerAttackerBlockedByCreature.class),
AttackersDeclared(TriggerAttackersDeclared.class),
AttackersDeclaredOneTarget(TriggerAttackersDeclared.class),
AttackerUnblocked(TriggerAttackerUnblocked.class),
AttackerUnblockedOnce(TriggerAttackerUnblockedOnce.class),
Attacks(TriggerAttacks.class),
BecomeMonarch(TriggerBecomeMonarch.class),
BecomeMonstrous(TriggerBecomeMonstrous.class),
BecomeRenowned(TriggerBecomeRenowned.class),
BecomesCrewed(TriggerBecomesCrewed.class),
BecomesTarget(TriggerBecomesTarget.class),
BecomesTargetOnce(TriggerBecomesTargetOnce.class),
BlockersDeclared(TriggerBlockersDeclared.class),
Blocks(TriggerBlocks.class),
Championed(TriggerChampioned.class),
ChangesController(TriggerChangesController.class),
ChangesZone(TriggerChangesZone.class),
ChangesZoneAll(TriggerChangesZoneAll.class),
ChaosEnsues(TriggerChaosEnsues.class),
Clashed(TriggerClashed.class),
ClassLevelGained(TriggerClassLevelGained.class),
ConjureAll(TriggerConjureAll.class),
CounterAdded(TriggerCounterAdded.class),
CounterAddedOnce(TriggerCounterAddedOnce.class),
CounterPlayerAddedAll(TriggerCounterPlayerAddedAll.class),
CounterAddedAll(TriggerCounterAddedAll.class),
Countered(TriggerCountered.class),
CounterRemoved(TriggerCounterRemoved.class),
CounterRemovedOnce(TriggerCounterRemovedOnce.class),
Crewed(TriggerCrewed.class),
Cycled(TriggerCycled.class),
DamageAll(TriggerDamageAll.class),
DamageDealtOnce(TriggerDamageDealtOnce.class),
DamageDone(TriggerDamageDone.class),
DamageDoneOnce(TriggerDamageDoneOnce.class),
DamageDoneOnceByController(TriggerDamageDoneOnceByController.class),
DamagePrevented(TriggerDamagePrevented.class),
DamagePreventedOnce(TriggerDamagePreventedOnce.class),
DayTimeChanges (TriggerDayTimeChanges.class),
Destroyed(TriggerDestroyed.class),
Devoured(TriggerDevoured.class),
Discarded(TriggerDiscarded.class),
DiscardedAll(TriggerDiscardedAll.class),
Drawn(TriggerDrawn.class),
DungeonCompleted(TriggerCompletedDungeon.class),
Evolved(TriggerEvolved.class),
ExcessDamage(TriggerExcessDamage.class),
Enlisted(TriggerEnlisted.class),
Exerted(TriggerExerted.class),
Exiled(TriggerExiled.class),
Exploited(TriggerExploited.class),
Explores(TriggerExplores.class),
Fight(TriggerFight.class),
FightOnce(TriggerFightOnce.class),
FlippedCoin(TriggerFlippedCoin.class),
Foretell(TriggerForetell.class),
Immediate(TriggerImmediate.class),
Investigated(TriggerInvestigated.class),
IsForetold(TriggerIsForetold.class),
LandPlayed(TriggerLandPlayed.class),
LifeGained(TriggerLifeGained.class),
LifeLost(TriggerLifeLost.class),
LifeLostAll(TriggerLifeLostAll.class),
LosesGame(TriggerLosesGame.class),
ManaAdded(TriggerManaAdded.class),
MilledAll(TriggerMilledAll.class),
Mutates(TriggerMutates.class),
NewGame(TriggerNewGame.class),
PayCumulativeUpkeep(TriggerPayCumulativeUpkeep.class),
PayEcho(TriggerPayEcho.class),
PayLife(TriggerPayLife.class),
Phase(TriggerPhase.class),
PhaseIn(TriggerPhaseIn.class),
PhaseOut(TriggerPhaseOut.class),
PlanarDice(TriggerPlanarDice.class),
PlaneswalkedFrom(TriggerPlaneswalkedFrom.class),
PlaneswalkedTo(TriggerPlaneswalkedTo.class),
Proliferate(TriggerProliferate.class),
Regenerated(TriggerRegenerated.class),
Revealed(TriggerRevealed.class),
RolledDie(TriggerRolledDie.class),
RolledDieOnce(TriggerRolledDieOnce.class),
RoomEntered(TriggerEnteredRoom.class),
Sacrificed(TriggerSacrificed.class),
Scry(TriggerScry.class),
SearchedLibrary(TriggerSearchedLibrary.class),
SeekAll(TriggerSeekAll.class),
SetInMotion(TriggerSetInMotion.class),
Shuffled(TriggerShuffled.class),
Specializes(TriggerSpecializes.class),
SpellAbilityCast(TriggerSpellAbilityCastOrCopy.class),
SpellAbilityCopy(TriggerSpellAbilityCastOrCopy.class),
SpellCast(TriggerSpellAbilityCastOrCopy.class),
SpellCastOrCopy(TriggerSpellAbilityCastOrCopy.class),
SpellCopy(TriggerSpellAbilityCastOrCopy.class),
Surveil(TriggerSurveil.class),
TakesInitiative(TriggerTakesInitiative.class),
Taps(TriggerTaps.class),
TapsForMana(TriggerTapsForMana.class),
TokenCreated(TriggerTokenCreated.class),
TokenCreatedOnce(TriggerTokenCreatedOnce.class),
Trains(TriggerTrains.class),
Transformed(TriggerTransformed.class),
TurnBegin(TriggerTurnBegin.class),
TurnFaceUp(TriggerTurnFaceUp.class),
Unattach(TriggerUnattach.class),
Untaps(TriggerUntaps.class),
Vote(TriggerVote.class);
private final Constructor<? extends Trigger> constructor;
TriggerType(Class<? extends Trigger> clasz) {
constructor = findConstructor(clasz);
}
private static Constructor<? extends Trigger> findConstructor(Class<? extends Trigger> clasz) {
@SuppressWarnings("unchecked")
Constructor<? extends Trigger>[] cc = (Constructor<? extends Trigger>[]) clasz.getDeclaredConstructors();
for (Constructor<? extends Trigger> c : cc) {
Class<?>[] pp = c.getParameterTypes();
if (pp[0].isAssignableFrom(Map.class)) {
return c;
}
}
throw new RuntimeException("No constructor found that would take Map as 1st parameter in class " + clasz.getName());
}
/**
* TODO: Write javadoc for this method.
* @param value
* @return
*/
public static TriggerType smartValueOf(String value) {
final String valToCompate = value.trim();
for (final TriggerType v : TriggerType.values()) {
if (v.name().compareToIgnoreCase(valToCompate) == 0) {
return v;
}
}
throw new RuntimeException("Element " + value + " not found in TriggerType enum");
}
/**
* TODO: Write javadoc for this method.
* @param mapParams
* @param host
* @param intrinsic
* @return
*/
public Trigger createTrigger(Map<String, String> mapParams, Card host, boolean intrinsic) {
try {
Trigger res = constructor.newInstance(mapParams, host, intrinsic);
res.setMode(this);
return res;
} catch (IllegalArgumentException | InstantiationException | IllegalAccessException | InvocationTargetException e) {
throw new RuntimeException(e);
}
}
}
package forge.game.trigger;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.util.Map;
import forge.game.card.Card;
/**
* TODO: Write javadoc for this type.
*
*/
public enum TriggerType {
Abandoned(TriggerAbandoned.class),
AbilityCast(TriggerSpellAbilityCastOrCopy.class),
AbilityResolves(TriggerAbilityResolves.class),
AbilityTriggered(TriggerAbilityTriggered.class),
Adapt(TriggerAdapt.class),
Always(TriggerAlways.class),
Attached(TriggerAttached.class),
AttackerBlocked(TriggerAttackerBlocked.class),
AttackerBlockedOnce(TriggerAttackerBlockedOnce.class),
AttackerBlockedByCreature(TriggerAttackerBlockedByCreature.class),
AttackersDeclared(TriggerAttackersDeclared.class),
AttackersDeclaredOneTarget(TriggerAttackersDeclared.class),
AttackerUnblocked(TriggerAttackerUnblocked.class),
AttackerUnblockedOnce(TriggerAttackerUnblockedOnce.class),
Attacks(TriggerAttacks.class),
BecomeMonarch(TriggerBecomeMonarch.class),
BecomeMonstrous(TriggerBecomeMonstrous.class),
BecomeRenowned(TriggerBecomeRenowned.class),
BecomesCrewed(TriggerBecomesCrewed.class),
BecomesTarget(TriggerBecomesTarget.class),
BecomesTargetOnce(TriggerBecomesTargetOnce.class),
BlockersDeclared(TriggerBlockersDeclared.class),
Blocks(TriggerBlocks.class),
Championed(TriggerChampioned.class),
ChangesController(TriggerChangesController.class),
ChangesZone(TriggerChangesZone.class),
ChangesZoneAll(TriggerChangesZoneAll.class),
ChaosEnsues(TriggerChaosEnsues.class),
Clashed(TriggerClashed.class),
ClassLevelGained(TriggerClassLevelGained.class),
ConjureAll(TriggerConjureAll.class),
CounterAdded(TriggerCounterAdded.class),
CounterAddedOnce(TriggerCounterAddedOnce.class),
CounterPlayerAddedAll(TriggerCounterPlayerAddedAll.class),
CounterAddedAll(TriggerCounterAddedAll.class),
Countered(TriggerCountered.class),
CounterRemoved(TriggerCounterRemoved.class),
CounterRemovedOnce(TriggerCounterRemovedOnce.class),
Crewed(TriggerCrewed.class),
Cycled(TriggerCycled.class),
DamageAll(TriggerDamageAll.class),
DamageDealtOnce(TriggerDamageDealtOnce.class),
DamageDone(TriggerDamageDone.class),
DamageDoneOnce(TriggerDamageDoneOnce.class),
DamageDoneOnceByController(TriggerDamageDoneOnceByController.class),
DamagePrevented(TriggerDamagePrevented.class),
DamagePreventedOnce(TriggerDamagePreventedOnce.class),
DayTimeChanges (TriggerDayTimeChanges.class),
Destroyed(TriggerDestroyed.class),
Devoured(TriggerDevoured.class),
Discarded(TriggerDiscarded.class),
DiscardedAll(TriggerDiscardedAll.class),
Drawn(TriggerDrawn.class),
DungeonCompleted(TriggerCompletedDungeon.class),
Evolved(TriggerEvolved.class),
ExcessDamage(TriggerExcessDamage.class),
Enlisted(TriggerEnlisted.class),
Exerted(TriggerExerted.class),
Exiled(TriggerExiled.class),
Exploited(TriggerExploited.class),
Explores(TriggerExplores.class),
Fight(TriggerFight.class),
FightOnce(TriggerFightOnce.class),
FlippedCoin(TriggerFlippedCoin.class),
Foretell(TriggerForetell.class),
Immediate(TriggerImmediate.class),
Investigated(TriggerInvestigated.class),
IsForetold(TriggerIsForetold.class),
LandPlayed(TriggerLandPlayed.class),
LifeGained(TriggerLifeGained.class),
LifeLost(TriggerLifeLost.class),
LifeLostAll(TriggerLifeLostAll.class),
LosesGame(TriggerLosesGame.class),
ManaAdded(TriggerManaAdded.class),
MilledAll(TriggerMilledAll.class),
Mutates(TriggerMutates.class),
NewGame(TriggerNewGame.class),
PayCumulativeUpkeep(TriggerPayCumulativeUpkeep.class),
PayEcho(TriggerPayEcho.class),
PayLife(TriggerPayLife.class),
Phase(TriggerPhase.class),
PhaseIn(TriggerPhaseIn.class),
PhaseOut(TriggerPhaseOut.class),
PlanarDice(TriggerPlanarDice.class),
PlaneswalkedFrom(TriggerPlaneswalkedFrom.class),
PlaneswalkedTo(TriggerPlaneswalkedTo.class),
Proliferate(TriggerProliferate.class),
Regenerated(TriggerRegenerated.class),
Revealed(TriggerRevealed.class),
RingTemptsYou(TriggerRingTemptsYou.class),
RolledDie(TriggerRolledDie.class),
RolledDieOnce(TriggerRolledDieOnce.class),
RoomEntered(TriggerEnteredRoom.class),
Sacrificed(TriggerSacrificed.class),
Scry(TriggerScry.class),
SearchedLibrary(TriggerSearchedLibrary.class),
SeekAll(TriggerSeekAll.class),
SetInMotion(TriggerSetInMotion.class),
Shuffled(TriggerShuffled.class),
Specializes(TriggerSpecializes.class),
SpellAbilityCast(TriggerSpellAbilityCastOrCopy.class),
SpellAbilityCopy(TriggerSpellAbilityCastOrCopy.class),
SpellCast(TriggerSpellAbilityCastOrCopy.class),
SpellCastOrCopy(TriggerSpellAbilityCastOrCopy.class),
SpellCopy(TriggerSpellAbilityCastOrCopy.class),
Surveil(TriggerSurveil.class),
TakesInitiative(TriggerTakesInitiative.class),
Taps(TriggerTaps.class),
TapsForMana(TriggerTapsForMana.class),
TokenCreated(TriggerTokenCreated.class),
TokenCreatedOnce(TriggerTokenCreatedOnce.class),
Trains(TriggerTrains.class),
Transformed(TriggerTransformed.class),
TurnBegin(TriggerTurnBegin.class),
TurnFaceUp(TriggerTurnFaceUp.class),
Unattach(TriggerUnattach.class),
Untaps(TriggerUntaps.class),
Vote(TriggerVote.class);
private final Constructor<? extends Trigger> constructor;
TriggerType(Class<? extends Trigger> clasz) {
constructor = findConstructor(clasz);
}
private static Constructor<? extends Trigger> findConstructor(Class<? extends Trigger> clasz) {
@SuppressWarnings("unchecked")
Constructor<? extends Trigger>[] cc = (Constructor<? extends Trigger>[]) clasz.getDeclaredConstructors();
for (Constructor<? extends Trigger> c : cc) {
Class<?>[] pp = c.getParameterTypes();
if (pp[0].isAssignableFrom(Map.class)) {
return c;
}
}
throw new RuntimeException("No constructor found that would take Map as 1st parameter in class " + clasz.getName());
}
/**
* TODO: Write javadoc for this method.
* @param value
* @return
*/
public static TriggerType smartValueOf(String value) {
final String valToCompate = value.trim();
for (final TriggerType v : TriggerType.values()) {
if (v.name().compareToIgnoreCase(valToCompate) == 0) {
return v;
}
}
throw new RuntimeException("Element " + value + " not found in TriggerType enum");
}
/**
* TODO: Write javadoc for this method.
* @param mapParams
* @param host
* @param intrinsic
* @return
*/
public Trigger createTrigger(Map<String, String> mapParams, Card host, boolean intrinsic) {
try {
Trigger res = constructor.newInstance(mapParams, host, intrinsic);
res.setMode(this);
return res;
} catch (IllegalArgumentException | InstantiationException | IllegalAccessException | InvocationTargetException e) {
throw new RuntimeException(e);
}
}
}

View File

@@ -55,6 +55,7 @@ public enum TrackableProperty {
Token(TrackableTypes.BooleanType),
TokenCard(TrackableTypes.BooleanType),
IsCommander(TrackableTypes.BooleanType),
IsRingBearer(TrackableTypes.BooleanType),
CommanderAltType(TrackableTypes.StringType),
Damage(TrackableTypes.IntegerType),
AssignedDamage(TrackableTypes.IntegerType),
@@ -74,6 +75,7 @@ public enum TrackableProperty {
ChosenSector(TrackableTypes.StringType),
Sector(TrackableTypes.StringType),
ClassLevel(TrackableTypes.IntegerType),
RingLevel(TrackableTypes.IntegerType),
CurrentRoom(TrackableTypes.StringType),
Intensity(TrackableTypes.IntegerType),
Remembered(TrackableTypes.StringType),

View File

@@ -152,6 +152,7 @@ public class CardFaceSymbols {
//ability icons
MANA_IMAGES.put("commander", FSkin.getImage(FSkinProp.IMG_ABILITY_COMMANDER));
MANA_IMAGES.put("ringbearer", FSkin.getImage(FSkinProp.IMG_ABILITY_RINGBEARER));
MANA_IMAGES.put("toxic", FSkin.getImage(FSkinProp.IMG_ABILITY_TOXIC));
MANA_IMAGES.put("deathtouch", FSkin.getImage(FSkinProp.IMG_ABILITY_DEATHTOUCH));
MANA_IMAGES.put("defender", FSkin.getImage(FSkinProp.IMG_ABILITY_DEFENDER));

View File

@@ -555,6 +555,10 @@ public class CardPanel extends SkinnedPanel implements CardContainer, IDisposabl
CardFaceSymbols.drawAbilitySymbol("commander", g, abiX, abiY, abiScale, abiScale);
abiY += abiSpace;
}
if (card.isRingBearer()) {
CardFaceSymbols.drawAbilitySymbol("ringbearer", g, abiX, abiY, abiScale, abiScale);
abiY += abiSpace;
}
if (card.getCurrentState().hasFlying()) {
CardFaceSymbols.drawAbilitySymbol("flying", g, abiX, abiY, abiScale, abiScale);
abiY += abiSpace;

View File

@@ -420,6 +420,7 @@ public enum FSkinImage implements FImage {
//COMMANDER
IMG_ABILITY_COMMANDER (FSkinProp.IMG_ABILITY_COMMANDER, SourceFile.ABILITIES),
IMG_ABILITY_RINGBEARER (FSkinProp.IMG_ABILITY_RINGBEARER, SourceFile.MANAICONS),
//TOXIC
IMG_ABILITY_TOXIC (FSkinProp.IMG_ABILITY_TOXIC, SourceFile.ICONS),

View File

@@ -129,6 +129,7 @@ public class CardFaceSymbols {
Forge.getAssets().manaImages().put("foil20", FSkinImage.FOIL_20);
Forge.getAssets().manaImages().put("commander", FSkinImage.IMG_ABILITY_COMMANDER);
Forge.getAssets().manaImages().put("ringbearer", FSkinImage.IMG_ABILITY_RINGBEARER);
Forge.getAssets().manaImages().put("toxic", FSkinImage.IMG_ABILITY_TOXIC);
Forge.getAssets().manaImages().put("deathtouch", FSkinImage.IMG_ABILITY_DEATHTOUCH);
Forge.getAssets().manaImages().put("defender", FSkinImage.IMG_ABILITY_DEFENDER);

View File

@@ -756,7 +756,13 @@ public class CardRenderer {
//Class level
if (card.getCurrentState().getType().hasStringType("Class") && ZoneType.Battlefield.equals(card.getZone())) {
List<String> markers = new ArrayList<>();
markers.add("LV:" + card.getClassLevel());
markers.add("CL:" + card.getClassLevel());
drawMarkersTabs(markers, g, x, y - markersHeight, w, h, true);
}
//Ring level
if (card.getRingLevel() > 0) {
List<String> markers = new ArrayList<>();
markers.add("RL:" + card.getRingLevel());
drawMarkersTabs(markers, g, x, y - markersHeight, w, h, true);
}
@@ -872,6 +878,11 @@ public class CardRenderer {
abiY += abiSpace;
abiCount += 1;
}
if (card.isRingBearer()) {
CardFaceSymbols.drawSymbol("ringbearer", g, abiX, abiY, abiScale, abiScale);
abiY += abiSpace;
abiCount += 1;
}
if (card.getCurrentState().hasFlying()) {
CardFaceSymbols.drawSymbol("flying", g, abiX, abiY, abiScale, abiScale);
abiY += abiSpace;

View File

@@ -0,0 +1,10 @@
Name:Aragorn, Company Leader
ManaCost:1 G U
Types:Legendary Creature Human Ranger
PT:3/3
T:Mode$ RingTemptsYou | ValidCard$ Creature.YouCtrl+Other | TriggerZones$ Battlefield | Execute$ TrigPutCounters | TriggerDescription$ Whenever the Ring tempts you, if you chose a creature other than CARDNAME as your Ring-bearer, put your choice of a counter from among first strike, vigilance, deathtouch, and lifelink on NICKNAME.
SVar:TrigPutCounters:DB$ PutCounter | CounterType$ First Strike,Vigilance,Deathtouch,Lifelink | Defined$ Self
T:Mode$ CounterPlayerAddedAll | ValidObject$ Card.Self+inRealZoneBattlefield | TriggerZones$ Battlefield | ValidSource$ You | Execute$ TrigPutCountersOther | TriggerDescription$ Whenever you put one or more counters on NICKNAME, put one of each of those kinds of counters on up to one other target creature.
SVar:TrigPutCountersOther:DB$ PutCounter | Placer$ TriggeredSource | TriggeredCounterMap$ True | CounterMapValues$ 1 | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Select up to one target other creature | ValidTgts$ Creature.Other
DeckHas:Ability$Counters
Oracle:Whenever the Ring tempts you, if you chose a creature other than Aragorn, Company Leader as your Ring-bearer, put your choice of a counter from among first strike, vigilance, deathtouch, and lifelink on Aragorn.\nWhenever you put one or more counters on Aragorn, put one of each of those kinds of counters on up to one other target creature.

View File

@@ -0,0 +1,11 @@
Name:Bilbo, Retired Burglar
ManaCost:1 U R
Types:Legendary Creature Halfling Rogue
PT:1/3
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTempt | TriggerDescription$ When CARDNAME enters or leaves the battlefield, the Ring tempts you.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | ValidCard$ Card.Self | Execute$ TrigTempt | Secondary$ True | TriggerDescription$ When CARDNAME enters or leaves the battlefield, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigTreasure | TriggerDescription$ Whenever NICKNAME deals combat damage to a player, create a Treasure token.
SVar:TrigTreasure:DB$ Token | TokenAmount$ 1 | TokenScript$ c_a_treasure_sac | TokenOwner$ You
DeckHas:Ability$Counters|Token
Oracle:When Bilbo, Retired Burglar enters or leaves the battlefield, the Ring tempts you.\nWhenever Bilbo deals combat damage to a player, create a Treasure token.

View File

@@ -0,0 +1,6 @@
Name:Birthday Escape
ManaCost:U
Types:Sorcery
A:SP$ Draw | Defined$ You | NumCards$ 1 | SubAbility$ TrigTempt | StackDescription$ SpellDescription | SpellDescription$ Draw a card. The Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:Draw a card. The Ring tempts you.

View File

@@ -4,7 +4,7 @@ Types:Plane Equilor
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | TriggerZones$ Command | ValidCard$ Creature | Execute$ TrigPump | TriggerDescription$ Whenever a creature enters the battlefield, it gains double strike and haste until end of turn.
SVar:TrigPump:DB$ Pump | Defined$ TriggeredCard | KW$ Double Strike & Haste
T:Mode$ ChaosEnsues | TriggerZones$ Command | Execute$ RolledChaos | TriggerDescription$ Whenever chaos ensues, exile target nontoken creature you control, then return it to the battlefield under your control.
SVar:RolledChaos:DB$ ChangeZone | ValidTgts$ Creature.nonToken+YouCtrl | TgtPrompt$ Select target non-Token creature you control | Origin$ Battlefield | Destination$ Exile | RememberTargets$ True | ForgetOtherTargets$ True | SubAbility$ RestorationReturn
SVar:RolledChaos:DB$ ChangeZone | ValidTgts$ Creature.nonToken+YouCtrl | TgtPrompt$ Select target nontoken creature you control | Origin$ Battlefield | Destination$ Exile | RememberTargets$ True | ForgetOtherTargets$ True | SubAbility$ RestorationReturn
SVar:RestorationReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | GainControl$ True
SVar:AIRollPlanarDieParams:Mode$ Always | MinTurn$ 3 | RollInMain1$ True
Oracle:Whenever a creature enters the battlefield, it gains double strike and haste until end of turn.\nWhenever chaos ensues, exile target nontoken creature you control, then return it to the battlefield under your control.

View File

@@ -0,0 +1,7 @@
Name:Bombadil's Song
ManaCost:1 G
Types:Instant
A:SP$ Pump | ValidTgts$ Creature.YouCtrl | NumAtt$ 1 | NumDef$ 1 | TgtPrompt$ Select target creature you control | KW$ Hexproof | SubAbility$ TrigTempt | SpellDescription$ Target creature you control gets +1/+1 and gains hexproof until end of turn. The Ring tempts you. (A creature with hexproof can't be the target of spells or abilities your opponents control.)
SVar:TrigTempt:DB$ RingTemptsYou
DeckHas:Keyword$Hexproof
Oracle:Target creature you control gets +1/+1 and gains hexproof until end of turn. The Ring tempts you. (A creature with hexproof can't be the target of spells or abilities your opponents control.)

View File

@@ -8,4 +8,4 @@ K:Flying
K:First Strike
K:Lifelink
DeckHas:Ability$Counters|LifeGain
Oracle:Backup 1 (When this creature enters the battlefield, put a +1/+1 counter on target creature. If thats another creature, it gains the following abilities until end of turn.)\nFlying, first strike, lifelink
Oracle:Backup 1 (When this creature enters the battlefield, put a +1/+1 counter on target creature. If that's another creature, it gains the following abilities until end of turn.)\nFlying, first strike, lifelink

View File

@@ -13,4 +13,4 @@ SVar:X:Count$RememberedSize/Twice
A:AB$ ChangeZone | Cost$ 1 U | Origin$ Battlefield | Destination$ Library | LibraryPosition$ 2 | SpellDescription$ Put CARDNAME into its owner's library third from the top.
DeckHas:Ability$Discard
SVar:HasAttackEffect:TRUE
Oracle:Whenever Borborygmos and Fblthp enters the battlefield or attacks, draw a card, then you may discard any number of land cards. When you discard one or more cards this way, Borborygmos and Fblthp deals twice that much damage to target creature.\n{1}{U}: Put Borborygmos and Fblthp into its owners library third from the top.
Oracle:Whenever Borborygmos and Fblthp enters the battlefield or attacks, draw a card, then you may discard any number of land cards. When you discard one or more cards this way, Borborygmos and Fblthp deals twice that much damage to target creature.\n{1}{U}: Put Borborygmos and Fblthp into its owner's library third from the top.

View File

@@ -0,0 +1,10 @@
Name:Boromir, Warden of the Tower
ManaCost:2 W
Types:Legendary Creature Human Soldier
PT:3/3
K:Vigilance
T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ Opponent | TriggerZones$ Battlefield | Execute$ TrigCounter | ValidSA$ Spell.ManaSpent EQ0 | TriggerDescription$ Whenever an opponent casts a spell, if no mana was spent to cast it, counter that spell.
SVar:TrigCounter:DB$ Counter | Defined$ TriggeredSpellAbility
A:AB$ PumpAll | Cost$ Sac<1/CARDNAME> | ValidCards$ Creature.YouCtrl | KW$ Indestructible | SubAbility$ TrigTempt | SpellDescription$ Creatures you control gain indestructible until end of turn. The Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:Vigilance\nWhenever an opponent casts a spell, if no mana was spent to cast it, counter that spell.\nSacrifice Boromir, Warden of the Tower: Creatures you control gain indestructible until end of turn. The Ring tempts you.

View File

@@ -0,0 +1,8 @@
Name:Breaking of the Fellowship
ManaCost:1 R
Types:Sorcery
A:SP$ Pump | Cost$ R | ValidTgts$ Creature.OppCtrl | AILogic$ PowerDmg | TgtPrompt$ Select target creature an opponent controls | SubAbility$ MutinyDamage | StackDescription$ None | SpellDescription$ Target creature an opponent controls deals damage equal to its power to another target creature that player controls. The Ring tempts you.
SVar:MutinyDamage:DB$ DealDamage | ValidTgts$ Creature | TargetUnique$ True | TargetsWithDefinedController$ ParentTargetedController | AILogic$ PowerDmg | NumDmg$ X | DamageSource$ ParentTarget | SubAbility$ TrigTempt
SVar:X:ParentTargeted$CardPower
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:Target creature an opponent controls deals damage equal to its power to another target creature that player controls. The Ring tempts you.

View File

@@ -0,0 +1,8 @@
Name:Call of the Ring
ManaCost:1 B
Types:Enchantment
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigTempt | TriggerDescription$ At the beginning of your upkeep, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
T:Mode$ RingTemptsYou | ValidCard$ Creature.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever you choose a creature as your Ring-bearer, you may pay 2 life. If you do, draw a card.
SVar:TrigDraw:AB$ Draw | Cost$ PayLife<2>
Oracle:At the beginning of your upkeep, the Ring tempts you.\nWhenever you choose a creature as your Ring-bearer, you may pay 2 life. If you do, draw a card.

View File

@@ -0,0 +1,6 @@
Name:Claim the Precious
ManaCost:1 B B
Types:Sorcery
A:SP$ Destroy | Cost$ 1 B B | ValidTgts$ Creature | TgtPrompt$ Select target creature | SubAbility$ TrigTempt | SpellDescription$ Destroy target creature. The Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:Destroy target creature. The Ring tempts you.

View File

@@ -3,4 +3,4 @@ ManaCost:2 B
Types:Instant
K:Convoke
A:SP$ Pump | ValidTgts$ Creature | NumAtt$ -3 | NumDef$ -3 | IsCurse$ True | SpellDescription$ Target creature gets -3/-3 until end of turn.
Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creatures color.)\nTarget creature gets -3/-3 until end of turn.
Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for {1} or one mana of that creature's color.)\nTarget creature gets -3/-3 until end of turn.

View File

@@ -4,4 +4,4 @@ Types:Creature Phyrexian Bear Rhino
PT:8/8
K:Trample
K:Hexproof
Oracle:Trample\nHexproof (This creature cant be the target of spells or abilities your opponents control.)
Oracle:Trample\nHexproof (This creature can't be the target of spells or abilities your opponents control.)

View File

@@ -0,0 +1,6 @@
Name:Dreadful as the Storm
ManaCost:2 U
Types:Instant
A:SP$ Animate | ValidTgts$ Creature | TgtPrompt$ Select target creature | Power$ 5 | Toughness$ 5 | SubAbility$ TrigTempt | SpellDescription$ Target creature has base power and toughness 5/5 until end of turn. The Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:Target creature has base power and toughness 5/5 until end of turn. The Ring tempts you.

View File

@@ -0,0 +1,7 @@
Name:Dunedain Rangers
ManaCost:3 G
Types:Creature Human Ranger
PT:4/4
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Land.YouCtrl | TriggerZones$ Battlefield | IsPresent$ Card.YouCtrl+IsRingbearer | PresentCompare$ EQ0 | Execute$ TrigTempt | TriggerDescription$ Landfall — Whenever a land enters the battlefield under your control, if you don't control a Ring-bearer, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:Landfall — Whenever a land enters the battlefield under your control, if you don't control a Ring-bearer, the Ring tempts you.

View File

@@ -0,0 +1,9 @@
Name:Elrond, Lord of Rivendell
ManaCost:2 U
Types:Legendary Creature Elf Noble
PT:3/2
T:Mode$ ChangesZone | ValidCard$ Card.Self,Creature.YouCtrl+Other | Origin$ Any | Destination$ Battlefield | Execute$ TrigScry | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME or another creature enters the battlefield under your control, scry 1. If this is the second time this ability has resolved this turn, the Ring tempts you.
SVar:TrigScry:DB$ Scry | ScryNum$ 1 | SubAbility$ TrigTempt
SVar:TrigTempt:DB$ RingTemptsYou | ConditionCheckSVar$ Resolved | ConditionSVarCompare$ EQ2
SVar:Resolved:Count$ResolvedThisTurn
Oracle:Whenever Elrond, Lord of Rivendell or another creature enters the battlefield under your control, scry 1. If this is the second time this ability has resolved this turn, the Ring tempts you.

View File

@@ -0,0 +1,8 @@
Name:Enraged Huorn
ManaCost:4 G
Types:Creature Treefolk
PT:4/5
K:Trample
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTempt | TriggerDescription$ When CARDNAME enters the battlefield, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:Trample\nWhen Enraged Huorn enters the battlefield, the Ring tempts you.

View File

@@ -4,7 +4,7 @@ Types:Creature Vampire Knight
PT:2/3
K:Menace
K:Lifelink
T:Mode$ DamageDone | ValidSource$ Knight.YouCtrl | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigPutCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever a Knight you control deals combat damage to a player, put a +1/+1 counter on that creature and create a Blood token. (Its an artifact with {1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.)
T:Mode$ DamageDone | ValidSource$ Knight.YouCtrl | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigPutCounter | TriggerZones$ Battlefield | TriggerDescription$ Whenever a Knight you control deals combat damage to a player, put a +1/+1 counter on that creature and create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.")
SVar:TrigPutCounter:DB$ PutCounter | Defined$ TriggeredSourceLKICopy | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBToken
SVar:DBToken:DB$ Token | TokenScript$ c_a_blood_draw
DeckHas:Ability$LifeGain|Token|Counters & Type$Blood|Artifact

View File

@@ -0,0 +1,11 @@
Name:Faramir, Field Commander
ManaCost:3 W
Types:Legendary Creature Human Soldier
PT:3/3
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | CheckSVar$ X | SVarCompare$ GE1 | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ At the beginning of your end step, if a creature died under your control this turn, draw a card.
T:Mode$ RingTemptsYou | ValidCard$ Creature.YouCtrl+Other | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever the Ring tempts you, if you chose a creature other than CARDNAME as your Ring-bearer, create a 1/1 white Human Soldier creature token.
SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ w_1_1_human_soldier | TokenOwner$ You
SVar:X:Count$ThisTurnEntered_Graveyard_from_Battlefield_Creature.YouCtrl
SVar:TrigDraw:DB$ Draw | NumCards$ 1
DeckHas:Ability$Token
Oracle:At the beginning of your end step, if a creature died under your control this turn, draw a card.\nWhenever the Ring tempts you, if you chose a creature other than Faramir, Field Commander as your Ring-bearer, create a 1/1 white Human Soldier creature token.

View File

@@ -0,0 +1,9 @@
Name:Fiery Inscription
ManaCost:2 R
Types:Enchantment
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTempt | TriggerDescription$ When CARDNAME enters the battlefield, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ Whenever you cast an instant or sorcery spell, CARDNAME deals 1 damage to each opponent.
SVar:TrigDealDamage:DB$ DealDamage | Defined$ Player.Opponent | NumDmg$ 2
DeckHints:Type$Instant|Sorcery
Oracle:When Fiery Inscription enters the battlefield, the Ring tempts you.\nWhenever you cast an instant or sorcery spell, Fiery Inscription deals 2 damage to each opponent.

View File

@@ -0,0 +1,12 @@
Name:Frodo, Adventurous Hobbit
ManaCost:W B
Types:Legendary Creature Halfling Scout
PT:1/3
K:Partner:Sam, Loyal Attendant:Sam
K:Vigilance
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigTempt | CheckSVar$ YouLifeGained | SVarCompare$ GE3 | TriggerDescription$ Whenever CARDNAME attacks, if you gained 3 or more life this turn, the Ring tempts you. Then if NICKNAME is your Ring-bearer and the Ring has tempted you two or more times this game, draw a card.
SVar:TrigTempt:DB$ RingTemptsYou | SubAbility$ DBDraw
SVar:DBDraw:DB$ Draw | NumCards$ 1 | ConditionCheckSVar$ NumRingTempted | ConditionSVarCompare$ GE2 | ConditionPresent$ Card.Self+IsRingbearer | ConditionCompare$ GE1
SVar:YouLifeGained:Count$LifeYouGainedThisTurn
SVar:NumRingTempted:PlayerCountPropertyYou$RingTemptedYou
Oracle:Partner with Sam, Loyal Attendant\nVigilance\nWhenever Frodo, Adventurous Hobbit attacks, if you gained 3 or more life this turn, the Ring tempts you. Then if Frodo is your Ring-bearer and the Ring has tempted you two or more times this game, draw a card.

View File

@@ -0,0 +1,8 @@
Name:Frodo Baggins
ManaCost:G W
Types:Legendary Creature Halfling Scout
PT:1/3
T:Mode$ ChangesZone | ValidCard$ Card.Self,Creature.Other+Legendary+YouCtrl | Origin$ Any | Destination$ Battlefield | TriggerZones$ Battlefield | Execute$ TrigTempt | TriggerDescription$ Whenever CARDNAME or another legendary creature enters the battlefield under your control, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
S:Mode$ Continuous | Affected$ Card.Self+IsRingbearer | AddHiddenKeyword$ CARDNAME must be blocked if able. | Description$ As long as NICKNAME is your Ring-bearer, it must be blocked if able.
Oracle:Whenever Frodo Baggins or another legendary creature enters the battlefield under your control, the Ring tempts you.\nAs long as Frodo is your Ring-bearer, it must be blocked if able.

View File

@@ -0,0 +1,13 @@
Name:Frodo, Sauron's Bane
ManaCost:W
Types:Legendary Creature Halfling Citizen
PT:1/2
A:AB$ Animate | Cost$ WB WB | ConditionPresent$ Card.Self+Citizen | Types$ Halfling,Scout | RemoveCreatureTypes$ True | Duration$ Permanent | Power$ 2 | Toughness$ 3 | Keywords$ Lifelink | SpellDescription$ If CARDNAME is a Citizen, it becomes a Halfling Scout with base power and toughness 2/3 and lifelink.
A:AB$ Animate | Cost$ B B B | ConditionPresent$ Card.Self+Scout | Types$ Halfling,Rogue | RemoveCreatureTypes$ True | Duration$ Permanent | Triggers$ TrigDamageDone | SpellDescription$ If NICKNAME is a Scout, it becomes a Halfling Rogue with "Whenever this creature deals combat damage to a player, that player loses the game if the Ring has tempted you four or more times this game. Otherwise, the Ring tempts you."
SVar:TrigDamageDone:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigBranch | TriggerDescription$ Whenever this creature deals combat damage to a player, that player loses the game if the Ring has tempted you four or more times this game. Otherwise, the Ring tempts you.
SVar:TrigBranch:DB$ Branch | BranchConditionSVar$ NumRingTempted | BranchConditionSVarCompare$ GE4 | TrueSubAbility$ TrigTheyLose | FalseSubAbility$ TrigTempt
SVar:TrigTheyLose:DB$ LosesGame | Defined$ TriggeredTarget
SVar:TrigTempt:DB$ RingTemptsYou
SVar:NumRingTempted:PlayerCountPropertyYou$RingTemptedYou
DeckHas:Ability$LifeGain
Oracle:{W/B}{W/B}: If Frodo, Sauron's Bane is a Citizen, it becomes a Halfling Scout with base power and toughness 2/3 and lifelink.\n{B}{B}{B}: If Frodo is a Scout, it becomes a Halfling Rogue with "Whenever this creature deals combat damage to a player, that player loses the game if the Ring has tempted you four or more times this game. Otherwise, the Ring tempts you."

View File

@@ -0,0 +1,9 @@
Name:Galadriel of Lothlorien
ManaCost:1 G U
Types:Legendary Creature Elf Noble
PT:3/3
T:Mode$ RingTemptsYou | ValidCard$ Creature.YouCtrl+Other | TriggerZones$ Battlefield | Execute$ TrigScry | TriggerDescription$ Whenever the Ring tempts you, if you chose a creature other than CARDNAME as your Ring-bearer, scry 3.
SVar:TrigScry:DB$ Scry | ScryNum$ 3
T:Mode$ Scry | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ DBReveal | TriggerDescription$ Whenever you scry, you may reveal the top card of your library. If a land card is revealed this way, put it onto the battlefield tapped.
SVar:DBReveal:DB$ Dig | DigNum$ 1 | Reveal$ True | Optional$ True | ChangeNum$ 1 | ChangeValid$ Land | DestinationZone$ Battlefield | Tapped$ True | DestinationZone2$ Library | LibraryPosition2$ 0
Oracle:Whenever the Ring tempts you, if you chose a creature other than Galadriel of Lothlorien as your Ring-bearer, scry 3.\nWhenever you scry, you may reveal the top card of your library. If a land card is revealed this way, put it onto the battlefield tapped.

View File

@@ -0,0 +1,9 @@
Name:Gandalf, Friend of the Shire
ManaCost:3 U
Types:Legendary Creature Avatar Wizard
PT:2/4
K:Flash
S:Mode$ CastWithFlash | ValidCard$ Sorcery | ValidSA$ Spell | Caster$ You | Description$ You may cast sorcery spells as though they had flash.
T:Mode$ RingTemptsYou | ValidCard$ Creature.YouCtrl+Other | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever the Ring tempts you, if you chose a creature other than CARDNAME as your Ring-bearer, draw a card.
SVar:TrigDraw:DB$ Draw | NumCards$ 1
Oracle:Flash\nYou may cast sorcery spells as though they had flash.\nWhenever the Ring tempts you, if you chose a creature other than Gandalf, Friend of the Shire as your Ring-bearer, draw a card.

View File

@@ -0,0 +1,6 @@
Name:Glorious Gale
ManaCost:1 U
Types:Instant
A:SP$ Counter | Cost$ 1 U | TargetType$ Spell | TgtPrompt$ Select target creature spell | RememberCountered$ True | ValidTgts$ Card.Creature | SubAbility$ TrigTempt | SpellDescription$ Counter target creature spell. If it was a legendary spell, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou | ConditionDefined$ Targeted | ConditionPresent$ Spell.Legendary
Oracle:Counter target creature spell. If it was a legendary spell, the Ring tempts you.

View File

@@ -0,0 +1,9 @@
Name:Gollum, Patient Plotter
ManaCost:1 B
Types:Legendary Creature Halfling Horror
PT:3/1
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Battlefield | Execute$ TrigTempt | TriggerDescription$ When CARDNAME leaves the battlefield, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
A:AB$ ChangeZone | Cost$ B Sac<1/Creature> | Origin$ Graveyard | Destination$ Hand | ActivationZone$ Graveyard | SorcerySpeed$ True | SpellDescription$ Return NICKNAME from your graveyard to your hand. Activate only as a sorcery. | CostDesc$ Sacrifice a creature:
SVar:AIPreference:SacCost$Creature.token,Creature.cmcLE1
Oracle:When Gollum, Patient Plotter leaves the battlefield, the Ring tempts you.\n{B}, Sacrifice a creature: Return Gollum from your graveyard to your hand. Activate only as a sorcery.

View File

@@ -0,0 +1,6 @@
Name:Gollum's Bite
ManaCost:B
Types:Instant
A:SP$ Pump | Cost$ B | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ -2 | NumDef$ -2 | IsCurse$ True | SpellDescription$ Target creature gets -2/-2 until end of turn.
A:AB$ RingTemptsYou | Cost$ 3 B ExileFromGrave<1/CARDNAME> | SorcerySpeed$ True | ActivationZone$ Graveyard | SpellDescription$ The Ring tempts you. Activate only as a sorcery.
Oracle:Target creature gets -2/-2 until end of turn.\n{3}{B}, Exile Gollum's Bite from your graveyard: The Ring tempts you. Activate only as a sorcery.

View File

@@ -0,0 +1,7 @@
Name:Horses of the Bruinen
ManaCost:3 U U
Types:Sorcery
A:SP$ ChangeZone | Cost$ 3 U U | TargetMin$ 0 | TargetMax$ 2 | ValidTgts$ Creature | TgtPrompt$ Select target creature | Origin$ Battlefield | Destination$ Hand | SubAbility$ DBScry | SpellDescription$ Return up to two target creatures to their owners' hands.
SVar:DBScry:DB$ Scry | ScryNum$ 1 | SubAbility$ TrigTempt
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:Return up to two target creatures to their owners' hands. Scry 1. The Ring tempts you.

View File

@@ -0,0 +1,10 @@
Name:In the Darkness Bind Them
ManaCost:2 U B R
Types:Enchantment Saga
K:Saga:4:DBToken,DBToken,DBToken,DBGainControl
SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ b_3_3_wraith_menace | TokenOwner$ You | SubAbility$ TrigTempt | SpellDescription$ Create a 3/3 black Wraith creature token with menace. The Ring tempts you.
SVar:DBGainControl:DB$ GainControl | ValidTgts$ Creature.OppCtrl | SubAbility$ TrigTempt | TgtPrompt$ Select target creature an opponent controls to gain control of. | TargetMin$ 0 | TargetMax$ OneEach | TargetsWithDifferentControllers$ True | LoseControl$ EOT | Untap$ True | AddKWs$ Haste | SpellDescription$ For each opponent, gain control of up to one target creature that player controls until end of turn. Untap those creatures. They gain haste until end of turn. The Ring tempts you.
SVar:OneEach:PlayerCountOpponents$Amount
SVar:TrigTempt:DB$ RingTemptsYou
DeckHas:Ability$Token
Oracle:(As this Saga enters and after your draw step, add a lore counter. Sacrifice after IV.)\nI, II, III — Create a 3/3 black Wraith creature token with menace. The Ring tempts you.\nIV — For each opponent, gain control of up to one target creature that player controls until end of turn. Untap those creatures. They gain haste until end of turn. The Ring tempts you.

View File

@@ -0,0 +1,7 @@
Name:Inherited Envelope
ManaCost:3
Types:Artifact
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTempt | TriggerDescription$ When CARDNAME enters the battlefield, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
A:AB$ Mana | Cost$ T | Produced$ Any | SpellDescription$ Add one mana of any color.
Oracle:When Inherited Envelope enters the battlefield, the Ring tempts you.\n{T}: Add one mana of any color.

View File

@@ -2,6 +2,6 @@ Name:Jace's Defeat
ManaCost:1 U
Types:Instant
A:SP$ Counter | Cost$ 1 U | TargetType$ Spell | TgtPrompt$ Select target Blue spell | ValidTgts$ Card.Blue | SubAbility$ DBScry | SpellDescription$ Counter target blue spell. If it was a Jace planeswalker spell, scry 2.
SVar:DBScry:DB$ Scry | ScryNum$ 2 | ConditionDefined$ Targeted | ConditionPresent$ Planeswalker.Jace
SVar:DBScry:DB$ Scry | ScryNum$ 2 | ConditionDefined$ Targeted | ConditionPresent$ Spell.Jace+Planeswalker
AI:RemoveDeck:Random
Oracle:Counter target blue spell. If it was a Jace planeswalker spell, scry 2.

View File

@@ -0,0 +1,7 @@
Name:Mirrormere Guardian
ManaCost:2 G
Types:Creature Dwarf Soldier
PT:4/2
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigTempt | TriggerDescription$ When CARDNAME dies, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:When Mirrormere Guardian dies, the Ring tempts you.

View File

@@ -0,0 +1,13 @@
Name:Nazgul
ManaCost:2 B
Types:Creature Wraith Knight
PT:1/2
K:Deathtouch
K:DeckLimit:9:A deck can have up to nine cards named CARDNAME.
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTempt | TriggerDescription$ When CARDNAME enters the battlefield, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
T:Mode$ RingTemptsYou | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigCounters | TriggerDescription$ Whenever the Ring tempts you, put a +1/+1 counter on each Wraith you control.
SVar:TrigCounters:DB$ PutCounterAll | ValidCards$ Creature.Wraith+YouCtrl | CounterType$ P1P1 | CounterNum$ 1
DeckNeeds:Name$Nazgul
DeckHas:Ability$Token
Oracle:Deathtouch\nWhen Nazgul enters the battlefield, the Ring tempts you.\nWhenever the Ring tempts you, put a +1/+1 counter on each Wraith you control.\nA deck can have up to nine cards named Nazgul.

View File

@@ -5,7 +5,6 @@ PT:2/4
K:Transmute:1 B B
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigEachOpp | TriggerDescription$ When CARDNAME enters the battlefield, each opponent loses 1 life for each creature they control.
SVar:TrigEachOpp:DB$ RepeatEach | RepeatPlayers$ Player.Opponent | RepeatSubAbility$ TrigLoseLife
SVar:TrigLoseLife:DB$ LoseLife | Defined$ Player.IsRemembered | LifeAmount$ X | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:TrigLoseLife:DB$ LoseLife | Defined$ Player.IsRemembered | LifeAmount$ X
SVar:X:Count$Valid Creature.RememberedPlayerCtrl
Oracle:When Netherborn Phalanx enters the battlefield, each opponent loses 1 life for each creature they control.\nTransmute {1}{B}{B} ({1}{B}{B}, Discard this card: Search your library for a card with the same mana value as this card, reveal it, put it into your hand, then then shuffle. Transmute only as a sorcery.)

View File

@@ -0,0 +1,9 @@
Name:Now for Wrath, Now for Ruin!
ManaCost:3 W
Types:Sorcery
A:SP$ PutCounterAll | Cost$ 3 W | ValidCards$ Creature.YouCtrl | CounterType$ P1P1 | CounterNum$ 1 | SubAbility$ DBPumpAll | SpellDescription$ Put a +1/+1 counter on each creature you control. They gain vigilance until end of turn. The Ring tempts you.
SVar:DBPumpAll:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Vigilance | SubAbility$ TrigTempt
SVar:TrigTempt:DB$ RingTemptsYou
SVar:PlayMain1:TRUE
DeckHas:Ability$Counters
Oracle:Put a +1/+1 counter on each creature you control. They gain vigilance until end of turn. The Ring tempts you.

View File

@@ -0,0 +1,12 @@
Name:One Ring to Rule Them All
ManaCost:2 B B
Types:Enchantment Saga
K:Saga:3:DBTempt,DBDestroy,DBEachOpp
SVar:DBTempt:DB$ RingTemptsYou | SubAbility$ DBMill | SpellDescription$ The Ring tempts you, then each player mills cards equal to your Ring-bearer's power.
SVar:DBMill:DB$ Mill | NumCards$ X | Defined$ Player
SVar:X:Count$Valid Creature.YouCtrl+IsRingbearer$CardPower
SVar:DBDestroy:DB$ DestroyAll | ValidCards$ Creature.nonLegendary | SpellDescription$ Destroy all nonlegendary creatures.
SVar:DBEachOpp:DB$ RepeatEach | RepeatPlayers$ Player.Opponent | RepeatSubAbility$ TrigLoseLife | SpellDescription$ Each opponent loses 1 life for each creature card in that player's graveyard.
SVar:TrigLoseLife:DB$ LoseLife | Defined$ Player.IsRemembered | LifeAmount$ Y
SVar:Y:Count$ValidGraveyard Creature.RememberedPlayerCtrl
Oracle:(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)\nI — The Ring tempts you, then each player mills cards equal to your Ring-bearer's power.\nII — Destroy all nonlegendary creatures.\nIII — Each opponent loses 1 life for each creature card in that player's graveyard.

View File

@@ -4,4 +4,4 @@ Types:Artifact Equipment
K:Convoke
K:Equip:2
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 3 | AddToughness$ 1 | AddKeyword$ Trample | Description$ Equipped creature gets +3/+1 and has trample.
Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for 1 or one mana of that creatures color.)\nEquipped creature gets +3/+1 and has trample.\nEquip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.)
Oracle:Convoke (Your creatures can help cast this spell. Each creature you tap while casting this spell pays for 1 or one mana of that creature's color.)\nEquipped creature gets +3/+1 and has trample.\nEquip {2} ({2}: Attach to target creature you control. Equip only as a sorcery.)

View File

@@ -0,0 +1,6 @@
Name:Ranger's Firebrand
ManaCost:R
Types:Sorcery
A:SP$ DealDamage | Cost$ R | ValidTgts$ Any | NumDmg$ 2 | SubAbility$ TrigTempt | SpellDescription$ CARDNAME deals 2 damage to any target. The Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:Ranger's Firebrand deals 2 damage to any target. The Ring tempts you.

View File

@@ -0,0 +1,10 @@
Name:Rangers of Ithilien
ManaCost:2 U U
Types:Creature Human Ranger
PT:3/3
K:Vigilance
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, gain control of up to one target creature with lesser power for as long as you control CARDNAME. Then the Ring tempts you.
SVar:TrigChange:DB$ GainControl | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Choose target creature | ValidTgts$ Creature.powerLTZ | SubAbility$ TrigTempt | LoseControl$ LeavesPlay,LoseControl | SpellDescription$ Gain control of up to one target creature with lesser power for as long as you control CARDNAME. Then the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
SVar:Z:Count$CardPower
Oracle:Vigilance\nWhen Rangers of Ithilien enters the battlefield, gain control of up to one target creature with lesser power for as long as you control Rangers of Ithilien. Then the Ring tempts you.

View File

@@ -0,0 +1,7 @@
Name:Relentless Rohirrim
ManaCost:3 R
Types:Creature Human Knight
PT:4/3
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTempt | TriggerDescription$ When CARDNAME enters the battlefield, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:When Relentless Rohirrim enters the battlefield, the Ring tempts you.

View File

@@ -0,0 +1,6 @@
Name:Ringsight
ManaCost:1 U B
Types:Sorcery
A:SP$ RingTemptsYou | SubAbility$ TrigSearch | SpellDescription$ The Ring tempts you. Search your library for a card that shares a color with a legendary creature you control, reveal it, put it into your hand, then shuffle.
SVar:TrigSearch:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card.SharesColorWith Creature.Legendary+YouCtrl
Oracle:The Ring tempts you. Search your library for a card that shares a color with a legendary creature you control, reveal it, put it into your hand, then shuffle.

View File

@@ -0,0 +1,10 @@
Name:Ringwraiths
ManaCost:4 B B
Types:Creature Wraith Knight
PT:5/5
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ When CARDNAME enters the battlefield, target creature an opponent controls gets -3/-3 until end of turn. If that creature is legendary, its controller loses 3 life.
SVar:TrigPump:DB$ Pump | NumAtt$ -3 | NumDef$ -3 | IsCurse$ True | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature | SubAbility$ TrigLose
SVar:TrigLose:DB$ LoseLife | Defined$ TargetedController | LifeAmount$ 3 | ConditionDefined$ Targeted | ConditionPresent$ Legendary
T:Mode$ RingTemptsYou | Execute$ TrigReturn | TriggerZones$ Graveyard | TriggerDescription$ When the Ring tempts you, return CARDNAME from your graveyard to your hand.
SVar:TrigReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | Defined$ Self
Oracle:When Ringwraiths enters the battlefield, target creature an opponent controls gets -3/-3 until end of turn. If that creature is legendary, its controller loses 3 life.\nWhen the Ring tempts you, return Ringwraiths from your graveyard to your hand.

View File

@@ -0,0 +1,8 @@
Name:Rohirrim Lancer
ManaCost:R
Types:Creature Human Knight
PT:1/1
K:Menace
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigTempt | TriggerDescription$ When CARDNAME dies, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:Menace (This creature cant be blocked except by two or more creatures.)\nWhen Rohirrim Lancer dies, the Ring tempts you.

View File

@@ -2,7 +2,7 @@ Name:Saint Traft and Rem Karolus
ManaCost:U R W
Types:Legendary Creature Spirit Human
PT:3/4
T:Mode$ Taps | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME becomes tapped, create a 1/1 red Human creature token if this is the first time this ability has resolved this turn. If its the second time, create a 1/1 blue Spirit creature token with flying. If its the third time, create a 4/4 white Angel creature token with flying.
T:Mode$ Taps | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME becomes tapped, create a 1/1 red Human creature token if this is the first time this ability has resolved this turn. If it's the second time, create a 1/1 blue Spirit creature token with flying. If it's the third time, create a 4/4 white Angel creature token with flying.
SVar:TrigToken:DB$ Token | TokenScript$ r_1_1_human | ConditionCheckSVar$ Resolved | ConditionSVarCompare$ EQ1 | SubAbility$ DBTokenBis
SVar:DBTokenBis:DB$ Token | TokenScript$ u_1_1_spirit_flying | ConditionCheckSVar$ Resolved | ConditionSVarCompare$ EQ2 | SubAbility$ DBTokenTrice
SVar:DBTokenTrice:DB$ Token | TokenScript$w_4_4_angel_flying | ConditionCheckSVar$ Resolved | ConditionSVarCompare$ EQ3

View File

@@ -0,0 +1,6 @@
Name:Sam's Desperate Rescue
ManaCost:B
Types:Sorcery
A:SP$ ChangeZone | Cost$ B | Origin$ Graveyard | Destination$ Hand | SubAbility$ TrigTempt | TgtPrompt$ Choose target creature card in your graveyard | ValidTgts$ Creature.YouCtrl | SpellDescription$ Return target creature card from your graveyard to your hand. The Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:Return target creature card from your graveyard to your hand. The Ring tempts you.

View File

@@ -0,0 +1,10 @@
Name:Samwise the Stouthearted
ManaCost:1 W
Types:Legendary Creature Halfling Peasant
PT:2/1
K:Flash
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters the battlefield, choose up to one target permanent card in your graveyard that was put there from the battlefield this turn. Return it to your hand. Then the Ring tempts you.
SVar:TrigChangeZone:DB$ ChangeZone | ValidTgts$ Permanent.YouOwn+ThisTurnEnteredFrom_Battlefield | Origin$ Graveyard | Destination$ Hand | SubAbility$ TrigTempt | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Choose target permanent card in your graveyard that was put there from the battlefield this turn
SVar:TrigTempt:DB$ RingTemptsYou
DeckHas:Ability$Graveyard
Oracle:Flash\nWhen Samwise the Stouthearted enters the battlefield, choose up to one target permanent card in your graveyard that was put there from the battlefield this turn. Return it to your hand. Then the Ring tempts you.

View File

@@ -0,0 +1,13 @@
Name:Sauron, Lord of the Rings
ManaCost:5 U B R
Types:Legendary Creature Avatar Horror
PT:9/9
K:Trample
T:Mode$ SpellCast | ValidCard$ Card.Self | Execute$ TrigAmass | TriggerDescription$ When you cast this spell, amass Orcs 5, mill five cards, then return a creature card from your graveyard to the battlefield.
SVar:TrigAmass:DB$ Amass | Type$ Orc | Num$ 5 | SubAbility$ TrigMill
SVar:TrigMill:DB$ Mill | Defined$ You | NumCards$ 5 | SubAbility$ DBReturn
SVar:DBReturn:DB$ ChangeZone | Origin$ Graveyard | Destination$ Battlefield | Mandatory$ True | ChangeType$ Creature.YouOwn | ChangeNum$ 1 | Hidden$ True
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.OppCtrl+IsCommander | TriggerZones$ Battlefield | Execute$ TrigTempt | TriggerDescription$ Whenever a commander an opponent controls dies, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
DeckHas:Ability$Token|Graveyard
Oracle:When you cast this spell, amass Orcs 5, mill five cards, then return a creature card from your graveyard to the battlefield.\nTrample\nWhenever a commander an opponent controls dies, the Ring tempts you.

View File

@@ -0,0 +1,13 @@
Name:Sauron, the Dark Lord
ManaCost:3 U B R
Types:Legendary Creature Avatar Horror
PT:7/6
K:Ward:Sac<1/Artifact.Legendary;Creature.Legendary/legendary artifact or legendary creature>
T:Mode$ SpellCast | ValidActivatingPlayer$ Opponent | TriggerZones$ Battlefield | Execute$ TrigAmass | TriggerDescription$ Whenever an opponent casts a spell, amass Orcs 1.
SVar:TrigAmass:DB$ Amass | Type$ Orc | Num$ 1
T:Mode$ DamageDone | ValidSource$ Army.YouCtrl | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigTempt | TriggerZones$ Battlefield | TriggerDescription$ Whenever an Army you control deals combat damage to a player, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
T:Mode$ RingTemptsYou | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDraw | TriggerDescription$ Whenever the Ring tempts you, you may discard your hand. If you do, draw four cards.
SVar:TrigDraw:AB$ Draw | Cost$ Discard<1/Hand> | NumCards$ 4
DeckHas:Ability$Token
Oracle:Ward—Sacrifice a legendary artifact or legendary creature.\nWhenever an opponent casts a spell, amass Orcs 1.\nWhenever an Army you control deals combat damage to a player, the Ring tempts you.\nWhenever the Ring tempts you, you may discard your hand. If you do, draw four cards.

View File

@@ -0,0 +1,8 @@
Name:Sauron's Ransom
ManaCost:1 U B
Types:Instant
A:SP$ TwoPiles | Defined$ You | Separator$ Opponent | Chooser$ You | DefinedCards$ Top_4_OfLibrary | ChosenPile$ DBHand | UnchosenPile$ DBGrave | FaceDown$ One | SubAbility$ TrigTempt | SpellDescription$ Choose an opponent. They look at the top four cards of your library and separate them into a face-down pile and a face-up pile. Put one pile into your hand and the other into your graveyard. The Ring tempts you.
SVar:DBHand:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Hand
SVar:DBGrave:DB$ ChangeZone | Defined$ Remembered | Origin$ Library | Destination$ Graveyard
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:Choose an opponent. They look at the top four cards of your library and separate them into a face-down pile and a face-up pile. Put one pile into your hand and the other into your graveyard. The Ring tempts you.

View File

@@ -6,4 +6,4 @@ K:Flying
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, create a token that's a copy of target artifact that player controls.
SVar:TrigToken:DB$ CopyPermanent | ValidTgts$ Artifact.ControlledBy TriggeredTarget | Defined$ Targeted
DeckHas:Ability$Token
Oracle:Flying\nWhenever Schema Thief deals combat damage to a player, create a token thats a copy of target artifact that player controls.
Oracle:Flying\nWhenever Schema Thief deals combat damage to a player, create a token that's a copy of target artifact that player controls.

View File

@@ -0,0 +1,12 @@
Name:Scroll of Isildur
ManaCost:2 U
Types:Enchantment Saga
K:Saga:3:DBGainControl,DBTap,DBDraw
SVar:DBGainControl:DB$ GainControl | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Choose target artifact | ValidTgts$ Artifact | SubAbility$ TrigTempt | LoseControl$ LeavesPlay,LoseControl | SpellDescription$ Gain control of up to one target artifact for as long as you control CARDNAME. The Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
SVar:DBTap:DB$ Tap | ValidTgts$ Creature | SubAbility$ DBCounter | TargetMin$ 0 | TargetMax$ 2 | TgtPrompt$ Select up to two target creatures | SpellDescription$ Tap up to two target creatures. Put a stun counter on each of them.
SVar:DBCounter:DB$ PutCounter | Defined$ Targeted | CounterType$ Stun | CounterNum$ 1
SVar:DBDraw:DB$ Draw | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | Defined$ You | NumCards$ X | SpellDescription$ Draw a card for each tapped creature target opponent controls.
SVar:X:Count$Valid Creature.tapped+TargetedPlayerCtrl
DeckHas:Ability$Counters
Oracle:(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)\nI — Gain control of up to one target artifact for as long as you control Scroll of Isildur. The Ring tempts you.\nII — Tap up to two target creatures. Put a stun counter on each of them.\nIII — Draw a card for each tapped creature target opponent controls.

View File

@@ -0,0 +1,9 @@
Name:Shortcut to Mushrooms
ManaCost:1 G
Types:Enchantment
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTempt | TriggerDescription$ When CARDNAME enters the battlefield, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Revolt$ True | Execute$ TrigPutCounter | TriggerDescription$ At the beginning of your end step, if a permanent you controlled left the battlefield this turn, put a +1/+1 counter on target creature you control.
SVar:TrigPutCounter:DB$ PutCounter | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | CounterType$ P1P1 | CounterNum$ 1
DeckHas:Ability$Counters
Oracle:When Shortcut to Mushrooms enters the battlefield, the Ring tempts you.\nAt the beginning of your end step, if a permanent you controlled left the battlefield this turn, put a +1/+1 counter on target creature you control.

View File

@@ -0,0 +1,8 @@
Name:Slip On the Ring
ManaCost:1 W
Types:Instant
A:SP$ ChangeZone | Cost$ 1 W | ValidTgts$ Creature.YouOwn | Origin$ Battlefield | Destination$ Exile | TgtPrompt$ Select target creature you own | RememberTargets$ True | SubAbility$ DBReturn | SpellDescription$ Exile target creature you own, then return it to the battlefield under your control. The Ring tempts you.
SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ All | Destination$ Battlefield | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | SubAbility$ TrigTempt
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:Exile target creature you own, then return it to the battlefield under your control. The Ring tempts you.

View File

@@ -0,0 +1,10 @@
Name:Smeagol, Helpful Guide
ManaCost:1 B G
Types:Legendary Creature Halfling Horror
PT:4/2
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | CheckSVar$ X | SVarCompare$ GE1 | TriggerZones$ Battlefield | Execute$ TrigTempt | TriggerDescription$ At the beginning of your end step, if a creature died under your control this turn, the Ring tempts you.
SVar:X:Count$ThisTurnEntered_Graveyard_from_Battlefield_Creature.YouCtrl
SVar:TrigTempt:DB$ RingTemptsYou
T:Mode$ RingTemptsYou | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDigUntil | TriggerDescription$ Whenever the Ring tempts you, target opponent reveals cards from the top of their library until they reveal a land card. Put that card onto the battlefield tapped under your control and the rest into their graveyard.
SVar:TrigDigUntil:DB$ DigUntil | Reveal$ True | ValidTgts$ Opponent | IsCurse$ True | Valid$ Land | ValidDescription$ land card | FoundDestination$ Battlefield | GainControl$ True | Tapped$ True | RevealedDestination$ Graveyard
Oracle:At the beginning of your end step, if a creature died under your control this turn, the Ring tempts you.\nWhenever the Ring tempts you, target opponent reveals cards from the top of their library until they reveal a land card. Put that card onto the battlefield tapped under your control and the rest into their graveyard.

View File

@@ -0,0 +1,6 @@
Name:Soothing of Smeagol
ManaCost:1 U
Types:Instant
A:SP$ ChangeZone | Cost$ 1 U | ValidTgts$ Creature.nonToken | TgtPrompt$ Select target nontoken creature | Origin$ Battlefield | Destination$ Hand | SubAbility$ TrigTempt | SpellDescription$ Return target nontoken creature to its owner's hand. The Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:Return target nontoken creature to its owner's hand. The Ring tempts you.

View File

@@ -0,0 +1,10 @@
Name:Stalwarts of Osgiliath
ManaCost:4 W
Types:Creature Human Soldier
PT:4/3
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTempt | TriggerDescription$ When CARDNAME enters the battlefield, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
T:Mode$ Drawn | ValidCard$ Card.YouCtrl | Number$ 2 | TriggerZones$ Battlefield | Execute$ TrigPutCounter | TriggerDescription$ Whenever you draw your second card each turn, put a +1/+1 counter on CARDNAME.
SVar:TrigPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
DeckHas:Ability$Counters
Oracle:When Stalwarts of Osgiliath enters the battlefield, the Ring tempts you.\nWhenever you draw your second card each turn, put a +1/+1 counter on Stalwarts of Osgiliath.

View File

@@ -0,0 +1,6 @@
Name:The Black Breath
ManaCost:2 B
Types:Sorcery
A:SP$ PumpAll | Cost$ 2 B | ValidCards$ Creature.OppCtrl | NumAtt$ -1 | NumDef$ -1 | IsCurse$ True | SubAbility$ TrigTempt | SpellDescription$ Creatures your opponents control get -1/-1 until end of turn. The Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:Creatures your opponents control get -1/-1 until end of turn. The Ring tempts you.

View File

@@ -0,0 +1,7 @@
Name:The Ring Goes South
ManaCost:3 G
Types:Sorcery
A:SP$ RingTemptsYou | SubAbility$ DBDigUntil | SpellDescription$ The Ring tempts you. Then reveal cards from the top of your library until you reveal X land cards, where X is the number of legendary creatures you control. Put those land cards onto the battlefield tapped and the rest on the bottom of your library in a random order.
SVar:DBDigUntil:DB$ DigUntil | Amount$ X | Valid$ Land | ValidDescription$ land | FoundDestination$ Battlefield | Tapped$ True | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True
SVar:X:Count$Valid Creature.Legendary+YouCtrl
Oracle:The Ring tempts you. Then reveal cards from the top of your library until you reveal X land cards, where X is the number of legendary creatures you control. Put those land cards onto the battlefield tapped and the rest on the bottom of your library in a random order.

View File

@@ -0,0 +1,10 @@
Name:There and Back Again
ManaCost:3 R R
Types:Enchantment Saga
K:Saga:3:DBCantBlock,DBSearch,DBToken
SVar:DBCantBlock:DB$ Pump | ValidTgts$ Creature | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Choose target creature | KW$ HIDDEN CARDNAME can't block. | SubAbility$ TrigTempt | IsCurse$ True | Duration$ UntilLoseControlOfHost | SpellDescription$ Up to one target creature can't block for as long as you control CARDNAME. The Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
SVar:DBSearch:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Mountain | SpellDescription$ Search your library for a Mountain card, put it onto the battlefield, then shuffle.
SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenScript$ smaug | SpellDescription$ Create Smaug, a legendary 6/6 red Dragon creature token with flying, haste, and "When this creature dies, create fourteen Treasure tokens."
DeckHas:Ability$Token
Oracle:(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)\nI — Up to one target creature can't block for as long as you control There and Back Again. The Ring tempts you.\nII — Search your library for a Mountain card, put it onto the battlefield, then shuffle.\nIII — Create Smaug, a legendary 6/6 red Dragon creature token with flying, haste, and "When this creature dies, create fourteen Treasure tokens."

View File

@@ -0,0 +1,7 @@
Name:Took Reaper
ManaCost:1 W
Types:Creature Halfling Peasant
PT:2/1
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigTempt | TriggerDescription$ When CARDNAME dies, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:When Took Reaper dies, the Ring tempts you.

View File

@@ -0,0 +1,7 @@
Name:Uruk-hai Berserker
ManaCost:2 B
Types:Creature Orc Berserker
PT:3/2
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigTempt | TriggerDescription$ When CARDNAME enters the battlefield, the Ring tempts you.
SVar:TrigTempt:DB$ RingTemptsYou
Oracle:When Uruk-hai Berserker enters the battlefield, the Ring tempts you.

View File

@@ -2,7 +2,7 @@ Name:Bill the Pony
ManaCost:3 W
Types:Legendary Creature Horse
PT:1/4
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigFood | TriggerDescription$ When CARDNAME enters the battlefield, create two Food tokens. (Theyre artifacts with "{2}, Sacrifice this artifact: You gain 3 life.")
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigFood | TriggerDescription$ When CARDNAME enters the battlefield, create two Food tokens. (They're artifacts with "{2}, Sacrifice this artifact: You gain 3 life.")
SVar:TrigFood:DB$ Token | TokenAmount$ 2 | TokenScript$ c_a_food_sac | TokenOwner$ You
A:AB$ Effect | Cost$ Sac<1/Food> | ValidTgts$ Creature.YouCtrl | RememberObjects$ Targeted | StaticAbilities$ CombatDamageToughness | ForgetOnMoved$ Battlefield | TgtPrompt$ Select target creature you control | SpellDescription$ Until end of turn, target creature you control assigns combat damage equal to its toughness rather than its power.
SVar:CombatDamageToughness:Mode$ CombatDamageToughness | ValidCard$ Card.IsRemembered | Description$ This creature assigns combat damage equal to its toughness rather than its power.

View File

@@ -3,7 +3,7 @@ ManaCost:3 U B
Types:Legendary Creature Wraith Noble
PT:4/4
K:Flying
S:Mode$ Continuous | Affected$ Creature.Wraith+YouCtrl | AddKeyword$ Protection from Ringbearers | Description$ Wraiths you control have protection from Ring-bearers.
S:Mode$ Continuous | Affected$ Creature.Wraith+YouCtrl | AddKeyword$ Protection:Card.IsRingbearer:Protection from Ring-bearers | Description$ Wraiths you control have protection from Ring-bearers.
T:Mode$ SpellCast | ValidCard$ Instant,Sorcery | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever you cast an instant or sorcery spell, create a 3/3 black Wraith creature token with menace. Then if you control nine or more Wraiths, Wraiths you control have base power and toughness 9/9 until end of turn.
SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ b_3_3_wraith_menace | TokenOwner$ You | SubAbility$ DBAnimateAll
SVar:DBAnimateAll:DB$ AnimateAll | ValidCards$ Wraith.YouCtrl | Power$ 9 | Toughness$ 9 | ConditionPresent$ Card.Wraith+YouCtrl | ConditionCompare$ GE9

View File

@@ -8,4 +8,4 @@ SVar:X:TriggeredStackInstance$CardManaCostLKI
S:Mode$ Continuous | Affected$ Goblin.YouCtrl,Orc.YouCtrl | AddKeyword$ Ward:2 | Description$ Goblins and Orcs you control have ward {2}.
DeckHas:Ability$Token|Counters & Type$Orc|Army
DeckHints:Type$Goblin|Orc
Oracle:Whenever you cast a noncreature spell, amass Orcs X, where X is that spells mana value. (Put X +1/+1 counters on an Army you control. Its also an Orc. If you dont control an Army, create a 0/0 black Orc Army creature token first.)\nGoblins and Orcs you control have ward {2}.
Oracle:Whenever you cast a noncreature spell, amass Orcs X, where X is that spell's mana value. (Put X +1/+1 counters on an Army you control. It's also an Orc. If you don't control an Army, create a 0/0 black Orc Army creature token first.)\nGoblins and Orcs you control have ward {2}.

View File

@@ -5,5 +5,5 @@ K:Equip:2
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddPower$ 1 | AddToughness$ 1 | AddKeyword$ Haste | Description$ Equipped creature gets +1/+1 and has haste.
T:Mode$ Phase | Phase$ BeginCombat | TriggerZones$ Battlefield | Execute$ TrigUntap | TriggerDescription$ At the beginning of each combat, untap equipped creature.
SVar:TrigUntap:DB$ Untap | Defined$ Equipped
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddKeyword$ First Strike | IsPresent$ Creature.EquippedBy+blockingValid Goblin,Creature.EquippedBy+blockingValid Orc,Goblin.blockingValid Creature.EquippedBy,Orc.blockingValid Creature.EquippedBy | Description$ Equipped creature has first strike as long as its blocking or blocked by a Goblin or Orc.
S:Mode$ Continuous | Affected$ Creature.EquippedBy | AddKeyword$ First Strike | IsPresent$ Creature.EquippedBy+blockingValid Goblin,Creature.EquippedBy+blockingValid Orc,Goblin.blockingValid Creature.EquippedBy,Orc.blockingValid Creature.EquippedBy | Description$ Equipped creature has first strike as long as it's blocking or blocked by a Goblin or Orc.
Oracle:Equipped creature gets +1/+1 and has haste.\nAt the beginning of each combat, untap equipped creature.\nEquipped creature has first strike as long as it's blocking or blocked by a Goblin or Orc.\nEquip {2}

View File

@@ -6,4 +6,4 @@ SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | De
A:AB$ ChangeZoneAll | Cost$ 2 T Sac<1/CARDNAME> | Origin$ Graveyard | Destination$ Exile | ValidTgts$ Player | TgtPrompt$ Select target player | ChangeType$ Card | SubAbility$ DBDraw | SpellDescription$ Exile target player's graveyard. Draw a card.
SVar:DBDraw:DB$ Draw
DeckHas:Ability$Graveyard|Sacrifice
Oracle:If a creature an opponent controls would die, exile it instead.\n{2}, {T}, Sacrifice Stone of Erech: Exile target players graveyard. Draw a card.
Oracle:If a creature an opponent controls would die, exile it instead.\n{2}, {T}, Sacrifice Stone of Erech: Exile target player's graveyard. Draw a card.

View File

@@ -8,7 +8,7 @@ K:Trample
K:Reach
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChange | TriggerDescription$ When CARDNAME enters the battlefield, search your library for up to two Forest cards, reveal them, put them into your hand, then shuffle.
SVar:TrigChange:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Forest | ChangeNum$ 2
A:AB$ ChangeZone | Cost$ 6 G G | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DBReturn | SorcerySpeed$ True | StackDescription$ SpellDescription | SpellDescription$ Exile CARDNAME, then return it to the battlefield transformed under its owners control. Activate only as a sorcery.
A:AB$ ChangeZone | Cost$ 6 G G | Origin$ Battlefield | Destination$ Exile | RememberChanged$ True | SubAbility$ DBReturn | SorcerySpeed$ True | StackDescription$ SpellDescription | SpellDescription$ Exile CARDNAME, then return it to the battlefield transformed under its owner's control. Activate only as a sorcery.
SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | Transformed$ True | ForgetOtherRemembered$ True | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
AlternateMode:DoubleFaced

View File

@@ -0,0 +1,9 @@
Name:War of the Last Alliance
ManaCost:3 W
Types:Enchantment Saga
K:Saga:3:DBSearch,DBSearch,DBPump
SVar:DBSearch:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Creature.Legendary | ChangeNum$ 1 | SpellDescription$ Search your library for a legendary creature card, reveal it, put it into your hand, then shuffle.
SVar:DBPump:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Double Strike | SubAbility$ TrigTempt | SpellDescription$ Creatures you control gain double strike until end of turn.
SVar:TrigTempt:DB$ RingTemptsYou
DeckNeeds:Type$Legendary & Type$Creature
Oracle:(As this Saga enters and after your draw step, add a lore counter. Sacrifice after III.)\nI, II — Search your library for a legendary creature card, reveal it, put it into your hand, then shuffle.\nIII — Creatures you control gain double strike until end of turn. The Ring tempts you.

View File

@@ -0,0 +1,11 @@
Name:Witch-king of Angmar
ManaCost:3 B B
Types:Legendary Creature Wraith Noble
PT:5/3
K:Flying
T:Mode$ DamageDoneOnce | ValidSource$ Creature | TriggerZones$ Battlefield | ValidTarget$ You | CombatDamage$ True | Execute$ TrigSac | TriggerDescription$ Whenever one or more creatures deal combat damage to you, each opponent sacrifices a creature that dealt combat damage to you this turn. The Ring tempts you.
SVar:TrigSac:DB$ Sacrifice | SacValid$ Creature.dealtCombatDamage You | Defined$ Player.Opponent | SubAbility$ TrigTempt
SVar:TrigTempt:DB$ RingTemptsYou
A:AB$ Pump | Cost$ Discard<1/Card> | Defined$ Self | KW$ Indestructible | SubAbility$ DBTap | SpellDescription$ CARDNAME gains indestructible until end of turn. Tap it.
SVar:DBTap:DB$ Tap | Defined$ Self
Oracle:Flying\nWhenever one or more creatures deal combat damage to you, each opponent sacrifices a creature that dealt combat damage to you this turn. The Ring tempts you.\nDiscard a card: Witch-king of Angmar gains indestructible until end of turn. Tap it.

View File

@@ -11,4 +11,4 @@ SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
A:AB$ Effect | Cost$ SubCounter<7/LOYALTY> | Planeswalker$ True | Ultimate$ True | Name$ Emblem - Wrenn and Realmbreaker | Image$ emblem_wrenn_and_realmbreaker | StaticAbilities$ PermanentRecycle | Stackable$ False | Duration$ Permanent | AILogic$ Always | SpellDescription$ You get an emblem with "You may play lands and cast permanent spells from your graveyard."
SVar:PermanentRecycle:Mode$ Continuous | EffectZone$ Command | Affected$ Card.Permanent+YouOwn | MayPlay$ True | AffectedZone$ Graveyard | Description$ You may play lands and cast permanent spells from your graveyard.
DeckHas:Ability$Graveyard
Oracle:Lands you control have "{T}: Add one mana of any color."\n[+1]: Up to one target land you control becomes a 3/3 Elemental creature with vigilance, hexproof, and haste until your next turn. Its still a land.\n[2]: Mill three cards. You may put a permanent card from among the milled cards into your hand.\n[7]: You get an emblem with "You may play lands and cast permanent spells from your graveyard."
Oracle:Lands you control have "{T}: Add one mana of any color."\n[+1]: Up to one target land you control becomes a 3/3 Elemental creature with vigilance, hexproof, and haste until your next turn. It's still a land.\n[2]: Mill three cards. You may put a permanent card from among the milled cards into your hand.\n[7]: You get an emblem with "You may play lands and cast permanent spells from your graveyard."

View File

@@ -1355,6 +1355,8 @@ lblGraveyard=Friedhof
lblAssignSectorCreature=Weise {0} einem Bereich zu
lblChooseSectorEffect=Wähle Bereich
lblChooseRollIgnore=Welchen Wurf ignorieren?
lblChooseRingBearer=Wählen Sie Ihren Ringträger
lblTheRingTempts=Der Ring verführt {0}
lblTop=Oben drauf
lblBottom=Unten drunter
lblNColorManaFromCard={0} {1} Mana von {2}

View File

@@ -1360,6 +1360,8 @@ lblGraveyard=Graveyard
lblAssignSectorCreature=Assign {0} to a sector
lblChooseSectorEffect=Choose a sector
lblChooseRollIgnore=Choose a roll to ignore
lblChooseRingBearer=Choose your Ring-bearer
lblTheRingTempts=The Ring tempts {0}
lblTop=Top
lblBottom=Bottom
lblNColorManaFromCard={0} {1} mana from {2}

View File

@@ -1353,9 +1353,11 @@ lblThereNoCardInPlayerZone=No hay cartas en {0} {1}
lblPutCardsOnTheTopLibraryOrGraveyard=¿Poner {0} en la parte superior de la biblioteca o en el cementerio?
lblLibrary=Biblioteca
lblGraveyard=Cementerio
lblAssignSectorCreature=Assign {0} to a sector
lblChooseSectorEffect=Choose a sector
lblChooseRollIgnore=Choose a roll to ignore
lblAssignSectorCreature=Asignar {0} a un sector
lblChooseSectorEffect=Elija un sector
lblChooseRollIgnore=Elija un rollo para ignorar
lblChooseRingBearer=Elige a tu portador de anillo
lblTheRingTempts=El anillo tienta {0}
lblTop=Superior
lblBottom=Fondo
lblNColorManaFromCard={0} {1} maná de {2}

View File

@@ -1356,8 +1356,11 @@ lblThereNoCardInPlayerZone=Il n''y a pas de cartes dans {0} {1}
lblPutCardsOnTheTopLibraryOrGraveyard=Placer {0} au-dessus de la bibliothèque ou du cimetière ?
lblLibrary=Bibliothèque
lblGraveyard=Cimetière
lblAssignSectorCreature=Assign {0} to a sectorlblChooseSectorEffect=Choose a sector
lblChooseRollIgnore=Choose a roll to ignore
lblAssignSectorCreature=Attribuer {0} à un secteur
lblChooseSectorEffect=Choisissez un secteur
lblChooseRollIgnore=Choisissez un rouleau pour ignorer
lblChooseRingBearer=Choisissez votre porte-anneau
lblTheRingTempts=L''anneau tente {0}
lblTop=Haut
lblBottom=Bas
lblNColorManaFromCard={0} {1} mana de {2}
@@ -2115,7 +2118,7 @@ lblRemoveFromGame=Supprimer la carte du jeu
lblRiggedRoll=Roll planaire gréé
lblWalkTo=Transplaner vers
lblAskAI=Demander une suggestion à l''IA
lblAskSimulationAI=Demander à l'IA de simulation une suggestion
lblAskSimulationAI=Demander à l''IA de simulation une suggestion
#PhaseType.java
lblUntapStep=Étape de dégagement
lblUpkeepStep=Étape d''entretien
@@ -2984,9 +2987,9 @@ lblToken=Jeton
lblBackToAdventure=Retour à l'aventure
lblDisableWinLose=Désactiver la superposition Winlose
lblExitToWoldMap=Sortir sur la carte du monde?
lblStartArena=Voulez-vous entrer dans l'arène?
lblStartArena=Voulez-vous entrer dans l''arène?
lblWouldYouLikeDestroy=Souhaitez-vous détruire {0}?
lblAdventureDescription=Le mode aventure est l'endroit où vous explorez le paysage en constante évolution de Shandalar, et des créatures duel pour gagner de l'or, des éclats, de l'équipement et de nouvelles cartes pour devenir les meilleurs et les récupérer tous!
lblAdventureDescription=Le mode aventure est l''endroit où vous explorez le paysage en constante évolution de Shandalar, et des créatures duel pour gagner de l'or, des éclats, de l'équipement et de nouvelles cartes pour devenir les meilleurs et les récupérer tous!
lblEmptyDeck=Jeu de cartes vide
lblNoAvailableSlots=Aucune fente disponible
lblAdventure=Aventure

View File

@@ -1353,9 +1353,11 @@ lblThereNoCardInPlayerZone=Non ci sono carte in {0} {1}
lblPutCardsOnTheTopLibraryOrGraveyard=Metti {0} in cima al grimorio o nel cimitero?
lblLibrary=Grimorio
lblGraveyard=Cimitero
lblAssignSectorCreature=Assign {0} to a sector
lblChooseSectorEffect=Choose a sector
lblChooseRollIgnore=Choose a roll to ignore
lblAssignSectorCreature=Assegna {0} a un settore
lblChooseSectorEffect=Scegli un settore
lblChooseRollIgnore=Scegli un tiro per ignorare
lblChooseRingBearer=Scegli il tuo anello
lblTheRingTempts=L''anello tenta {0}
lblTop=Cima
lblBottom=Fondo
lblNColorManaFromCard={0} {1} mana da {2}
@@ -2983,7 +2985,7 @@ lblToken=Gettone
lblBackToAdventure=Torna all'avventura
lblDisableWinLose=Disabilita overlay winlose
lblExitToWoldMap=Esci alla mappa del mondo?
lblStartArena=Vuoi andare nell'arena?
lblStartArena=Vuoi andare nell''arena?
lblWouldYouLikeDestroy=Vorresti distruggere {0}?
lblAdventureDescription=La modalità Adventure è dove esplori il paesaggio in continua evoluzione di Shandalar e le creature di duello per guadagnare oro, frammenti, attrezzature e nuove carte per diventare i migliori e raccoglierle tutte!
lblEmptyDeck=Mazzo di carte vuoto

View File

@@ -1354,9 +1354,11 @@ lblThereNoCardInPlayerZone={0} {1}にカードがありません
lblPutCardsOnTheTopLibraryOrGraveyard=ライブラリまたは墓地の一番上に{0}を置きますか?
lblLibrary=ライブラリー
lblGraveyard=墓地
lblAssignSectorCreature=Assign {0} to a sector
lblChooseSectorEffect=Choose a sector
lblChooseRollIgnore=Choose a roll to ignore
lblAssignSectorCreature={0}をセクターに割り当てます
lblChooseSectorEffect=セクターを選択してください
lblChooseRollIgnore=無視するロールを選択してください
lblChooseRingBearer=リングベアラーを選択してください
lblTheRingTempts=リングが誘惑されます {0}
lblTop=タップ
lblBottom=ボトム
lblNColorManaFromCard={2}から {0} {1} のマナ

View File

@@ -1384,9 +1384,11 @@ lblThereNoCardInPlayerZone=Sem cartas em {0} {1}
lblPutCardsOnTheTopLibraryOrGraveyard=Colocar {0} no topo do grimório ou cemitério?
lblLibrary=Grimório
lblGraveyard=Cemitério
lblAssignSectorCreature=Assign {0} to a sector
lblChooseSectorEffect=Choose a sector
lblChooseRollIgnore=Choose a roll to ignore
lblAssignSectorCreature=Atribuir {0} a um setor
lblChooseSectorEffect=Escolha um setor
lblChooseRollIgnore=Escolha um rolo para ignorar
lblChooseRingBearer=Escolha o seu portador de anel
lblTheRingTempts=O anel tenta {0}
lblTop=Topo
lblBottom=Fundo
lblNColorManaFromCard={0} {1} mana de {2}

Some files were not shown because too many files have changed in this diff Show More