mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 10:18:01 +00:00
Merge branch 'a22_draft' into 'master'
A22: Draft mechanic and cards See merge request core-developers/forge!5914
This commit is contained in:
@@ -64,7 +64,7 @@ public abstract class CardTraitBase extends GameObject implements IHasCardView,
|
||||
* Keys that should not changed
|
||||
*/
|
||||
private static final ImmutableList<String> noChangeKeys = ImmutableList.<String>builder()
|
||||
.add("TokenScript", "LegacyImage", "TokenImage", "NewName").build();
|
||||
.add("TokenScript", "LegacyImage", "TokenImage", "NewName", "ChooseFromList").build();
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package forge.game.ability.effects;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@@ -54,6 +55,7 @@ public class ChooseCardNameEffect extends SpellAbilityEffect {
|
||||
}
|
||||
|
||||
boolean randomChoice = sa.hasParam("AtRandom");
|
||||
boolean draft = sa.hasParam("Draft"); //for digital "draft from spellbook" mechanic
|
||||
boolean chooseFromDefined = sa.hasParam("ChooseFromDefinedCards");
|
||||
boolean chooseFromList = sa.hasParam("ChooseFromList");
|
||||
boolean chooseFromOneTimeList = sa.hasParam("ChooseFromOneTimeList");
|
||||
@@ -61,6 +63,8 @@ public class ChooseCardNameEffect extends SpellAbilityEffect {
|
||||
if (!randomChoice) {
|
||||
if (sa.hasParam("SelectPrompt")) {
|
||||
message = sa.getParam("SelectPrompt");
|
||||
} else if (draft) {
|
||||
message = Localizer.getInstance().getMessage("lblChooseCardDraft");
|
||||
} else if (null == validDesc) {
|
||||
message = Localizer.getInstance().getMessage("lblChooseACardName");
|
||||
} else {
|
||||
@@ -105,8 +109,16 @@ public class ChooseCardNameEffect extends SpellAbilityEffect {
|
||||
chosen = p.getController().chooseCardName(sa, faces, message);
|
||||
} else if (chooseFromList) {
|
||||
String [] names = sa.getParam("ChooseFromList").split(",");
|
||||
if (sa.hasParam("Draft")) {
|
||||
List<String> options = Arrays.asList(names);
|
||||
Collections.shuffle(options);
|
||||
List<String> draftChoices = options.subList(0,3);
|
||||
names = draftChoices.toArray(new String[0]);
|
||||
}
|
||||
List<ICardFace> faces = new ArrayList<>();
|
||||
for (String name : names) {
|
||||
// Cardnames that include "," must use ";" instead in ChooseFromList$ (i.e. Tovolar; Dire Overlord)
|
||||
name = name.replace(";", ",");
|
||||
faces.add(StaticData.instance().getCommonCards().getFaceByName(name));
|
||||
}
|
||||
if (randomChoice) {
|
||||
@@ -142,8 +154,10 @@ public class ChooseCardNameEffect extends SpellAbilityEffect {
|
||||
|
||||
host.setNamedCard(chosen);
|
||||
if (!randomChoice) {
|
||||
p.getGame().getAction().notifyOfValue(sa, host, Localizer.getInstance().getMessage("lblPlayerPickedChosen", p.getName(), chosen), p);
|
||||
p.setNamedCard(chosen);
|
||||
if (!draft) { //drafting is secret
|
||||
p.getGame().getAction().notifyOfValue(sa, host, Localizer.getInstance().getMessage("lblPlayerPickedChosen", p.getName(), chosen), p);
|
||||
}
|
||||
}
|
||||
if (sa.hasParam("NoteFor")) {
|
||||
p.addNoteForName(sa.getParam("NoteFor"), "Name:" + chosen);
|
||||
|
||||
@@ -12,34 +12,47 @@ import forge.game.zone.ZoneType;
|
||||
public class MakeCardEffect extends SpellAbilityEffect {
|
||||
@Override
|
||||
public void resolve(SpellAbility sa) {
|
||||
final Player player = sa.getActivatingPlayer();
|
||||
final Game game = player.getGame();
|
||||
for (final Player player : getTargetPlayers(sa)) {
|
||||
final Game game = player.getGame();
|
||||
|
||||
String name = sa.getParamOrDefault("Name", sa.getHostCard().getName());
|
||||
if (name.equals("ChosenName")) {
|
||||
name = sa.getHostCard().getChosenName();
|
||||
}
|
||||
final ZoneType zone = ZoneType.smartValueOf(sa.getParamOrDefault("Zone", "Library"));
|
||||
int amount = sa.hasParam("Amount") ? Integer.parseInt(sa.getParam("Amount")) : 1;
|
||||
String name = sa.getParamOrDefault("Name", "");
|
||||
if (name.equals("ChosenName")) {
|
||||
if (sa.getHostCard().hasChosenName()) {
|
||||
name = sa.getHostCard().getChosenName();
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
|
||||
CardCollection cards = new CardCollection();
|
||||
|
||||
while (amount > 0) {
|
||||
Card card = Card.fromPaperCard(StaticData.instance().getCommonCards().getUniqueByName(name), player);
|
||||
if (!sa.hasParam("NotToken")) { card.setTokenCard(true); }
|
||||
game.getAction().moveTo(ZoneType.None, card, sa);
|
||||
cards.add(card);
|
||||
amount--;
|
||||
}
|
||||
|
||||
for (final Card c : cards) {
|
||||
game.getAction().moveTo(zone, c, sa);
|
||||
if (sa.hasParam("RememberMade")) {
|
||||
sa.getHostCard().addRemembered(c);
|
||||
}
|
||||
}
|
||||
if (zone.equals(ZoneType.Library)) {
|
||||
player.shuffle(sa);
|
||||
final ZoneType zone = ZoneType.smartValueOf(sa.getParamOrDefault("Zone", "Library"));
|
||||
int amount = sa.hasParam("Amount") ? Integer.parseInt(sa.getParam("Amount")) : 1;
|
||||
|
||||
CardCollection cards = new CardCollection();
|
||||
|
||||
if (!name.equals("")) {
|
||||
while (amount > 0) {
|
||||
Card card = Card.fromPaperCard(StaticData.instance().getCommonCards().getUniqueByName(name), player);
|
||||
if (!sa.hasParam("NotToken")) {
|
||||
card.setTokenCard(true);
|
||||
}
|
||||
game.getAction().moveTo(ZoneType.None, card, sa);
|
||||
cards.add(card);
|
||||
amount--;
|
||||
}
|
||||
|
||||
for (final Card c : cards) {
|
||||
game.getAction().moveTo(zone, c, sa);
|
||||
if (sa.hasParam("RememberMade")) {
|
||||
sa.getHostCard().addRemembered(c);
|
||||
}
|
||||
if (sa.hasParam("ImprintMade")) {
|
||||
sa.getHostCard().addImprintedCard(c);
|
||||
}
|
||||
}
|
||||
if (zone.equals(ZoneType.Library)) {
|
||||
player.shuffle(sa);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,6 +58,8 @@ public class RevealEffect extends SpellAbilityEffect {
|
||||
|
||||
} else if (sa.hasParam("RevealDefined")) {
|
||||
revealed.addAll(AbilityUtils.getDefinedCards(host, sa.getParam("RevealDefined"), sa));
|
||||
} else if (sa.hasParam("RevealAllValid")) {
|
||||
revealed.addAll(CardLists.getValidCards(cardsInHand, sa.getParam("RevealAllValid"), p, host, sa));
|
||||
} else {
|
||||
CardCollection valid = new CardCollection(cardsInHand);
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@ package forge.game.ability.effects;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import forge.game.ability.AbilityUtils;
|
||||
import forge.game.ability.SpellAbilityEffect;
|
||||
import forge.game.card.Card;
|
||||
import forge.game.card.CardCollectionView;
|
||||
import forge.game.card.*;
|
||||
import forge.game.player.Player;
|
||||
import forge.game.spellability.SpellAbility;
|
||||
import forge.game.spellability.TargetRestrictions;
|
||||
@@ -45,7 +45,10 @@ public class RevealHandEffect extends SpellAbilityEffect {
|
||||
if (optional && !p.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantRevealYourHand"))) {
|
||||
continue;
|
||||
}
|
||||
final CardCollectionView hand = p.getCardsIn(ZoneType.Hand);
|
||||
CardCollectionView hand = p.getCardsIn(ZoneType.Hand);
|
||||
if (sa.hasParam("RevealType")) {
|
||||
hand = CardLists.filter(hand, CardPredicates.isType(sa.getParam("RevealType")));
|
||||
}
|
||||
sa.getActivatingPlayer().getController().reveal(hand, ZoneType.Hand, p);
|
||||
if (sa.hasParam("RememberRevealed")) {
|
||||
for (final Card c : hand) {
|
||||
|
||||
11
forge-gui/res/cardsfolder/upcoming/arms_scavenger.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/arms_scavenger.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
Name:Arms Scavenger
|
||||
ManaCost:1 R
|
||||
Types:Creature Human Warrior
|
||||
PT:2/2
|
||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDraft | TriggerDescription$ At the beginning of your upkeep, draft a card from CARDNAME's spellbook, then exile it. Until the end of turn, you may play that card.
|
||||
SVar:TrigDraft:DB$ NameCard | Draft$ True | Defined$ You | ChooseFromList$ Boots of Speed,Cliffhaven Kitesail,Colossus Hammer,Dueling Rapier,Spare Dagger,Tormentor's Helm,Goldvein Pick,Jousting Lance,Mask of Immolation,Mirror Shield,Relic Axe,Rogue's Gloves,Scavenged Blade,Shield of the Realm,Ceremonial Knife | SubAbility$ DBMakeCard
|
||||
SVar:DBMakeCard:DB$ MakeCard | Name$ ChosenName | Zone$ Exile | RememberMade$ True | SubAbility$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ Play | ExileOnMoved$ Exile | SubAbility$ DBCleanup
|
||||
SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ Until the end of turn, you may play that card.
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearNamedCard$ True
|
||||
Oracle:At the beginning of your upkeep, draft a card from Arms Scavenger's spellbook, then exile it. Until the end of turn, you may play that card.
|
||||
10
forge-gui/res/cardsfolder/upcoming/break_expectations.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/break_expectations.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Break Expectations
|
||||
ManaCost:B
|
||||
Types:Sorcery
|
||||
A:SP$ Reveal | ValidTgts$ Player | TgtPrompt$ Select target player | RevealAllValid$ Card.cmcGE2+TargetedPlayerCtrl | SubAbility$ DBExile | StackDescription$ SpellDescription | SpellDescription$ Target player reveals all cards with mana value 2 or greater in their hand. You choose a card from among those cards. Exile that card. If a card was exiled this way, that player drafts a card from CARDNAME's spellbook and reveals it.
|
||||
SVar:DBExile:DB$ ChangeZone | DefinedPlayer$ Targeted | Chooser$ You | Origin$ Hand | Destination$ Exile | ChangeNum$ 1 | ChangeType$ Card.cmcGE2+TargetedPlayerCtrl | Mandatory$ True | AlreadyRevealed$ True | RememberChanged$ True | AILogic$ BestCard | SubAbility$ DBDraft | StackDescription$ None
|
||||
SVar:DBDraft:DB$ NameCard | ConditionDefined$ Remembered | ConditionPresent$ Card | ConditionCompare$ GE1 | Draft$ True | Defined$ Targeted | ChooseFromList$ Colossal Plow,Millstone,Whirlermaker,Magistrate's Scepter,Replicating Ring,Raiders' Karve,Weapon Rack,Relic Amulet,Orazca Relic,Fifty Feet of Rope,Pyre of Heroes,Treasure Chest,Leather Armor,Spiked Pit Trap,Gingerbrute | SubAbility$ DBMakeCard | StackDescription$ None
|
||||
SVar:DBMakeCard:DB$ MakeCard | Defined$ Targeted | Name$ ChosenName | Zone$ Hand | ImprintMade$ True | SubAbility$ DBReveal
|
||||
SVar:DBReveal:DB$ Reveal | Defined$ Targeted | RevealDefined$ Imprinted | SubAbility$ DBCleanup | StackDescription$ None
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True | ClearNamedCard$ True
|
||||
Oracle:Target player reveals all cards with mana value 2 or greater in their hand. You choose a card from among those cards. Exile that card. If a card was exiled this way, that player drafts a card from Break Expectations's spellbook and reveals it.
|
||||
10
forge-gui/res/cardsfolder/upcoming/cursebound_witch.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/cursebound_witch.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Cursebound Witch
|
||||
ManaCost:B
|
||||
Types:Creature Human Warlock
|
||||
PT:1/2
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigDraft | TriggerDescription$ When CARDNAME dies, draft a card from CARDNAME's spellbook.
|
||||
SVar:TrigDraft:DB$ NameCard | Draft$ True | Defined$ You | ChooseFromList$ Witch's Cauldron,Witch's Vengeance,Witch's Oven,Witch's Cottage,Witch's Familiar,Curse of Leeches,Cauldron Familiar,Black Cat,Sorcerer's Broom,Bloodhunter Bat,Unwilling Ingredient,Expanded Anatomy,Cruel Reality,Torment of Scarabs,Trespasser's Curse | SubAbility$ DBMakeCard
|
||||
SVar:DBMakeCard:DB$ MakeCard | Name$ ChosenName | Zone$ Hand | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearNamedCard$ True
|
||||
SVar:SacMe:2
|
||||
Oracle:When Cursebound Witch dies, draft a card from Cursebound Witch's spellbook.
|
||||
11
forge-gui/res/cardsfolder/upcoming/faithful_disciple.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/faithful_disciple.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
Name:Faithful Disciple
|
||||
ManaCost:1 W
|
||||
Types:Creature Human Cleric
|
||||
PT:2/2
|
||||
K:Vigilance
|
||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigDraft | TriggerDescription$ When CARDNAME dies, draft a card from CARDNAME's spellbook.
|
||||
SVar:TrigDraft:DB$ NameCard | Draft$ True | Defined$ You | ChooseFromList$ Anointed Procession,Cathars' Crusade,Authority of the Consuls,Sigil of the Empty Throne,All That Glitters,Banishing Light,Divine Visitation,Duelist's Heritage,Glorious Anthem,Gauntlets of Light,Teleportation Circle,Angelic Gift,Spectral Steel,Cleric Class,Angelic Exaltation | SubAbility$ DBMakeCard
|
||||
SVar:DBMakeCard:DB$ MakeCard | Name$ ChosenName | Zone$ Hand | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearNamedCard$ True
|
||||
SVar:SacMe:2
|
||||
Oracle:Vigilance\nWhen Faithful Disciple dies, draft a card from Faithful Disciple's spellbook.
|
||||
11
forge-gui/res/cardsfolder/upcoming/ishkanah_broodmother.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/ishkanah_broodmother.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
Name:Ishkanah, Broodmother
|
||||
ManaCost:3 G
|
||||
Types:Legendary Creature Spider
|
||||
PT:3/5
|
||||
K:Reach
|
||||
S:Mode$ Continuous | Affected$ Creature.Spider+Other+YouCtrl | AddPower$ 1 | AddToughness$ 2 | Description$ Other Spiders you control get +1/+2.
|
||||
A:AB$ NameCard | Cost$ 1 BG ExileFromGrave<2/card> | Draft$ True | Defined$ You | ChooseFromList$ Twin-Silk Spider,Drider,Brood Weaver,Glowstone Recluse,Gnottvold Recluse,Hatchery Spider,Mammoth Spider,Netcaster Spider,Sentinel Spider,Snarespinner,Sporecap Spider,Spidery Grasp,Spider Spawning,Prey Upon,Arachnoform | SubAbility$ DBMakeCard | SpellDescription$ Draft a card from CARDNAME's spellbook.
|
||||
SVar:DBMakeCard:DB$ MakeCard | Name$ ChosenName | Zone$ Hand | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearNamedCard$ True
|
||||
DeckHints:Type$Spider
|
||||
Oracle:Reach\nOther Spiders you control get +1/+2.\n{1}{B/G}, Exile two cards from your graveyard: Draft a card from Ishkanah, Broodmother's spellbook.
|
||||
13
forge-gui/res/cardsfolder/upcoming/ominous_traveler.txt
Normal file
13
forge-gui/res/cardsfolder/upcoming/ominous_traveler.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
Name:Ominous Traveler
|
||||
ManaCost:2
|
||||
Types:Creature Human
|
||||
PT:1/1
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDraft | TriggerDescription$ When CARDNAME enters the battlefield, draft a card from CARDNAME's spellbook. That card perpetually gains "You may spend mana as though it were mana of any color to cast this spell" and "When you cast this spell, return a card named Ominous Traveler you control to its owner's hand."
|
||||
SVar:TrigDraft:DB$ NameCard | Draft$ True | Defined$ You | ChooseFromList$ Dominating Vampire,Vampire Socialite,Stromkirk Bloodthief,Falkenrath Pit Fighter,Wolfkin Outcast,Howlpack Piper,Tovolar; Dire Overlord,Patrician Geist,Shipwreck Sifters,Steelclad Spirit,Heron-Blessed Geist,Archghoul of Thraben,Champion of the Perished,Headless Rider,Bladestitched Skaab | SubAbility$ DBMakeCard
|
||||
SVar:DBMakeCard:DB$ MakeCard | Name$ ChosenName | Zone$ Hand | RememberMade$ True | SubAbility$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | RememberObjects$ Remembered | Triggers$ CastTrigger | StaticAbilities$ SpendAnyMana | Duration$ Permanent | Name$ Ominous Traveler's Perpetual Effect | SubAbility$ DBCleanup
|
||||
SVar:SpendAnyMana:Mode$ Continuous | Affected$ Card.IsRemembered | AffectedZone$ Battlefield,Hand,Graveyard,Exile,Stack,Library,Command | AddHiddenKeyword$ May spend mana as though it were mana of any color to cast CARDNAME | Description$ You may spend mana as though it were mana of any color to cast this spell.
|
||||
SVar:CastTrigger:Mode$ SpellCast | ValidCard$ Card.IsRemembered | Execute$ TrigReturn | TriggerDescription$ When you cast this spell, return a card named Ominous Traveler you control to its owner's hand.
|
||||
SVar:TrigReturn:DB$ ChangeZone | ChangeType$ Card.namedOminous Traveler+YouCtrl | ChangeNum$ 1 | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearNamedCard$ True
|
||||
Oracle:When Ominous Traveler enters the battlefield, draft a card from Ominous Traveler's spellbook. That card perpetually gains "You may spend mana as though it were mana of any color to cast this spell" and "When you cast this spell, return a card named Ominous Traveler you control to its owner's hand."
|
||||
13
forge-gui/res/cardsfolder/upcoming/slayers_bounty.txt
Normal file
13
forge-gui/res/cardsfolder/upcoming/slayers_bounty.txt
Normal file
@@ -0,0 +1,13 @@
|
||||
Name:Slayer's Bounty
|
||||
ManaCost:W
|
||||
Types:Legendary Artifact Clue
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPeek | TriggerDescription$ When CARDNAME enters the battlefield, look at the creature cards in target opponent's hand.
|
||||
SVar:TrigPeek:DB$ RevealHand | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | RevealType$ Creature
|
||||
T:Mode$ Sacrificed | ValidCard$ Clue.YouCtrl | Execute$ TrigDraft | TriggerZones$ Battlefield | TriggerDescription$ Whenever you CARDNAME or another Clue, draft a card from CARDNAME's spellbook.
|
||||
SVar:TrigDraft:DB$ NameCard | Draft$ True | Defined$ You | ChooseFromList$ Bounty Agent,Outflank,Bound in Gold,Bring to Trial,Glass Casket,Reprobation,Collar the Culprit,Compulsory Rest,Expel,Fairgrounds Warden,Iron Verdict,Luminous Bonds,Raise the Alarm,Seal Away,Summary Judgment | SubAbility$ DBMakeCard
|
||||
SVar:DBMakeCard:DB$ MakeCard | Name$ ChosenName | Zone$ Hand | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearNamedCard$ True
|
||||
A:AB$ Draw | Cost$ 2 Sac<1/CARDNAME> | NumCards$ 1 | SpellDescription$ Draw a card.
|
||||
DeckHas:Ability$Sacrifice
|
||||
DeckHints:Ability$Investigate & Type$Clue
|
||||
Oracle:When Slayer's Bounty enters the battlefield, look at the creature cards in target opponent's hand.\nWhenever you sacrifice Slayer's Bounty or another Clue, draft a card from Slayer's Bounty's spellbook.\n{2}, Sacrifice Slayer's Bounty: Draw a card.
|
||||
@@ -0,0 +1,16 @@
|
||||
Name:Tibalt, Wicked Tormenter
|
||||
ManaCost:3 R R
|
||||
Types:Legendary Planeswalker Tibalt
|
||||
Loyalty:3
|
||||
A:AB$ Mana | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | Produced$ R | Amount$ 2 | SubAbility$ DBDraft | SpellDescription$ Add {R}{R}.
|
||||
SVar:DBDraft:DB$ NameCard | Draft$ True | Defined$ You | ChooseFromList$ Chained Brute,Charmbreaker Devils,Festival Crasher,Forge Devil,Frenzied Devils,Havoc Jester,Hellrider,Hobblefiend,Pitchburn Devils,Sin Prodder,Spiteful Prankster,Tibalt's Rager,Torch Fiend,Brimstone Vandal,Devil's Play | SubAbility$ DBMakeCard | StackDescription$ SpellDescription | SpellDescription$ Draft a card from CARDNAME's spellbook, then exile it.
|
||||
SVar:DBMakeCard:DB$ MakeCard | Name$ ChosenName | Zone$ Exile | RememberMade$ True | SubAbility$ DBEffect
|
||||
SVar:DBEffect:DB$ Effect | RememberObjects$ RememberedCard | StaticAbilities$ Play | ExileOnMoved$ Exile | SubAbility$ DBCleanup | SpellDescription$ Until end of turn, you may cast that card.
|
||||
SVar:Play:Mode$ Continuous | MayPlay$ True | EffectZone$ Command | Affected$ Card.IsRemembered | AffectedZone$ Exile | Description$ Until the end of turn, you may cast that card.
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearNamedCard$ True
|
||||
A:AB$ DealDamage | Cost$ AddCounter<1/LOYALTY> | Planeswalker$ True | ValidTgts$ Creature,Planeswalker | TgtPrompt$ Select target creature or planeswalker | NumDmg$ 3 | UnlessCost$ DamageYou<3> | UnlessPayer$ TargetedController | UnlessResolveSubs$ WhenPaid | SubAbility$ DBDiscardDraw | StackDescription$ CARDNAME deals 3 damage to {c:Targeted} unless {p:TargetedController} has NICKNAME deal 3 damage to them. | SpellDescription$ CARDNAME deals 3 damage to target creature or planeswalker unless its controller has NICKNAME deal 3 damage to them.
|
||||
SVar:DBDiscardDraw:DB$ Draw | NumCards$ 1 | UnlessCost$ Discard<1/Card> | UnlessPayer$ You | UnlessSwitched$ True | OrString$ Draw a card. | StackDescription$ SpellDescription | SpellDescription$ If they do, you may discard a card. If you do, draw card.
|
||||
A:AB$ Token | Cost$ SubCounter<X/LOYALTY> | Planeswalker$ True | TokenAmount$ X | TokenScript$ r_1_1_devil_burn | SpellDescription$ Create X 1/1 red Devil creature tokens with "When this creature dies, it deals 1 damage to any target."
|
||||
SVar:X:Count$xPaid
|
||||
DeckHas:Ability$Discard & Ability$Token
|
||||
Oracle:[+1]: Add {R}{R}. Draft a card from Tibalt, Wicked Tormenter's spellbook, then exile it. Until end of turn, you may cast that card.\n[+1]: Tibalt, Wicked Tormenter deals 3 damage to target creature or planeswalker unless its controller has Tibalt deal 3 damage to them. If they do, you may discard a card. If you do, draw card.\n[−X]: Create X 1/1 red Devil creature tokens with "When this creature dies, it deals 1 damage to any target."
|
||||
10
forge-gui/res/cardsfolder/upcoming/tireless_angler.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/tireless_angler.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
Name:Tireless Angler
|
||||
ManaCost:2 U
|
||||
Types:Creature Human Rogue
|
||||
PT:1/4
|
||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Island.YouCtrl | TriggerZones$ Battlefield | Execute$ TrigDraft | TriggerDescription$ Whenever an Island enters the battlefield under your control, draft a card from CARDNAME's spellbook.
|
||||
SVar:TrigDraft:DB$ NameCard | Draft$ True | Defined$ You | ChooseFromList$ Fleet Swallower,Moat Piranhas,Mystic Skyfish,Nadir Kraken,Pouncing Shoreshark,Sea-Dasher Octopus,Spined Megalodon,Stinging Lionfish,Voracious Greatshark,Archipelagore,Serpent of Yawning Depths,Wormhole Serpent,Sigiled Starfish,Riptide Turtle,Ruin Crab | SubAbility$ DBMakeCard
|
||||
SVar:DBMakeCard:DB$ MakeCard | Name$ ChosenName | Zone$ Hand | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearNamedCard$ True
|
||||
SVar:BuffedBy:Island
|
||||
Oracle:Whenever an Island enters the battlefield under your control, draft a card from Tireless Angler's spellbook.
|
||||
@@ -1837,6 +1837,7 @@ lblSelectCreatureWithTotalPowerLessOrEqualTo=Wähle Kreatur(en) mit Gesamtstärk
|
||||
lblTotalPowerNum=Gesamtstärke: {0}
|
||||
lblCancelChooseConfirm=Auswahl abbrechen?
|
||||
#ChooseCardNameEffect.java
|
||||
lblChooseCardDraft=Choose a card to draft
|
||||
lblChooseACardName=Wähle einen Kartennamen
|
||||
lblChooseASpecificCard=Wähle einen {0} Kartenname.
|
||||
lblPlayerPickedChosen={0} wählt {1}
|
||||
|
||||
@@ -1838,6 +1838,7 @@ lblSelectCreatureWithTotalPowerLessOrEqualTo=Select creature(s) with total power
|
||||
lblTotalPowerNum=Total Power: {0}
|
||||
lblCancelChooseConfirm=Cancel Choose?
|
||||
#ChooseCardNameEffect.java
|
||||
lblChooseCardDraft=Choose a card to draft
|
||||
lblChooseACardName=Choose a card name
|
||||
lblChooseASpecificCard=Choose a {0} card name.
|
||||
lblPlayerPickedChosen={0} picked {1}
|
||||
|
||||
@@ -1836,6 +1836,7 @@ lblSelectCreatureWithTotalPowerLessOrEqualTo=Selecciona la(s) criatura(s) con un
|
||||
lblTotalPowerNum=Fuerza total: {0}
|
||||
lblCancelChooseConfirm=¿Cancelar elegir?
|
||||
#ChooseCardNameEffect.java
|
||||
lblChooseCardDraft=Choose a card to draft
|
||||
lblChooseACardName=Elige un nombre de carta
|
||||
lblChooseASpecificCard=Elige un nombre de carta {0}.
|
||||
lblPlayerPickedChosen={0} escogió {1}
|
||||
|
||||
@@ -1835,6 +1835,7 @@ lblSelectCreatureWithTotalPowerLessOrEqualTo=Seleziona creature con forza comple
|
||||
lblTotalPowerNum=Forza totale: {0}
|
||||
lblCancelChooseConfirm=Annulli la scelta?
|
||||
#ChooseCardNameEffect.java
|
||||
lblChooseCardDraft=Choose a card to draft
|
||||
lblChooseACardName=Scegli il nome di una carta
|
||||
lblChooseASpecificCard=Scegli il nome di una carta {0}.
|
||||
lblPlayerPickedChosen={0} ha scelto {1}
|
||||
|
||||
@@ -1835,6 +1835,7 @@ lblSelectCreatureWithTotalPowerLessOrEqualTo=パワーの合計が {0}以下に
|
||||
lblTotalPowerNum=パワーの合計:{0}
|
||||
lblCancelChooseConfirm=選びを中止しますか?
|
||||
#ChooseCardNameEffect.java
|
||||
lblChooseCardDraft=Choose a card to draft
|
||||
lblChooseACardName=カード名 1つを選ぶ
|
||||
lblChooseASpecificCard={0}カード名 1つを選ぶ
|
||||
lblPlayerPickedChosen={0}が {1}を選択した
|
||||
|
||||
@@ -1839,6 +1839,7 @@ lblSelectCreatureWithTotalPowerLessOrEqualTo=选择一些生物其力量只和
|
||||
lblTotalPowerNum=总力量:{0}
|
||||
lblCancelChooseConfirm=取消选择?
|
||||
#ChooseCardNameEffect.java
|
||||
lblChooseCardDraft=Choose a card to draft
|
||||
lblChooseACardName=选择一个牌名
|
||||
lblChooseASpecificCard=选择一个{0}牌名
|
||||
lblPlayerPickedChosen={0}选取了{1}
|
||||
|
||||
Reference in New Issue
Block a user