Merge remote-tracking branch 'core/master'

This commit is contained in:
Anthony Calosa
2021-11-10 07:31:47 +08:00
32 changed files with 314 additions and 11 deletions

View File

@@ -100,15 +100,19 @@ public class SacrificeEffect extends SpellAbilityEffect {
final boolean destroy = sa.hasParam("Destroy");
final boolean remSacrificed = sa.hasParam("RememberSacrificed");
final boolean optional = sa.hasParam("Optional");
CardZoneTable table = new CardZoneTable();
Map<AbilityKey, Object> params = AbilityKey.newMap();
params.put(AbilityKey.LastStateBattlefield, game.copyLastStateBattlefield());
if (valid.equals("Self") && game.getZoneOf(card) != null) {
if (game.getZoneOf(card).is(ZoneType.Battlefield)) {
if (game.getAction().sacrifice(card, sa, table, params) != null) {
if (remSacrificed) {
card.addRemembered(card);
if (!optional || activator.getController().confirmAction(sa, null,
Localizer.getInstance().getMessage("lblDoYouWantSacrificeThis", card.getName()))) {
if (game.getAction().sacrifice(card, sa, table, params) != null) {
if (remSacrificed) {
card.addRemembered(card);
}
}
}
}
@@ -147,12 +151,11 @@ public class SacrificeEffect extends SpellAbilityEffect {
if (sa.hasParam("Random")) {
choosenToSacrifice = Aggregates.random(validTargets, Math.min(amount, validTargets.size()), new CardCollection());
} else if (sa.hasParam("OptionalSacrifice") && !p.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantSacrifice"))) {
} else if (optional && !p.getController().confirmAction(sa, null, Localizer.getInstance().getMessage("lblDoYouWantSacrifice"))) {
choosenToSacrifice = CardCollection.EMPTY;
} else {
boolean isOptional = sa.hasParam("Optional");
boolean isStrict = sa.hasParam("StrictAmount");
int minTargets = isOptional ? 0 : amount;
int minTargets = optional ? 0 : amount;
boolean notEnoughTargets = isStrict && validTargets.size() < minTargets;
if (!notEnoughTargets) {

View File

@@ -3,7 +3,7 @@ ManaCost:3 B
Types:Creature Human Wizard
PT:2/1
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigSac | TriggerDescription$ When CARDNAME enters the battlefield, sacrifice another creature. You gain X life and draw X cards, where X is that creature's power.
SVar:TrigSac:DB$ Sacrifice | Amount$ 1 | SacValid$ Creature.Other | RememberSacrificed$ True | Mandatory$ True | SubAbility$ GainLife
SVar:TrigSac:DB$ Sacrifice | Amount$ 1 | SacValid$ Creature.Other | RememberSacrificed$ True | SubAbility$ GainLife
SVar:GainLife:DB$ GainLife | LifeAmount$ X | SubAbility$ DBDraw
SVar:DBDraw:DB$ Draw | NumCards$ X | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
@@ -11,5 +11,4 @@ SVar:X:RememberedLKI$CardPower
SVar:NeedsToPlay:Creature.YouCtrl
DeckHas:Ability$LifeGain
AI:RemoveDeck:All
SVar:Picture:http://www.wizards.com/global/images/magic/general/disciple_of_bolas.jpg
Oracle:When Disciple of Bolas enters the battlefield, sacrifice another creature. You gain X life and draw X cards, where X is that creature's power.

View File

@@ -1,7 +1,7 @@
Name:Empty the Laboratory
ManaCost:X U U
Types:Sorcery
A:SP$ Sacrifice | Defined$ You | Amount$ X | Mandatory$ True | SacValid$ Zombie | RememberSacrificed$ True | SubAbility$ DBDigUntil | StackDescription$ SpellDescription | SpellDescription$ Sacrifice X Zombies, then reveal cards from the top of your library until you reveal a number of Zombie creature cards equal to the number of Zombies sacrificed this way. Put those cards onto the battlefield and the rest on the bottom of your library in a random order.
A:SP$ Sacrifice | Defined$ You | Amount$ X | SacValid$ Zombie | RememberSacrificed$ True | SubAbility$ DBDigUntil | StackDescription$ SpellDescription | SpellDescription$ Sacrifice X Zombies, then reveal cards from the top of your library until you reveal a number of Zombie creature cards equal to the number of Zombies sacrificed this way. Put those cards onto the battlefield and the rest on the bottom of your library in a random order.
SVar:DBDigUntil:DB$ DigUntil | Amount$ Y | Valid$ Creature.Zombie | FoundDestination$ Library | NoMoveFound$ True | ImprintFound$ True | RevealedDestination$ Library | RevealedLibraryPosition$ -1 | RevealRandomOrder$ True | SubAbility$ DBChangeZone
SVar:DBChangeZone:DB$ ChangeZone | Defined$ Imprinted | Origin$ Library | Destination$ Battlefield | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True

View File

@@ -0,0 +1,21 @@
Name:Ballista Watcher
ManaCost:2 R R
Types:Creature Human Soldier Werewolf
PT:4/3
K:Daybound
A:AB$ DealDamage | Cost$ 2 R T | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to any target.
AlternateMode:DoubleFaced
Oracle:{2}{R}, {T}: Ballista Watcher deals 1 damage to any target.\nDaybound (If a player casts no spells during their own turn, it becomes night next turn.)
ALTERNATE
Name:Ballista Wielder
ManaCost:no cost
Colors:red
Types:Creature Werewolf
PT:5/5
K:Nightbound
A:AB$ DealDamage | Cost$ 2 R | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 1 | RememberDamaged$ True | SubAbility$ DBNoBlock | SpellDescription$ CARDNAME deals 1 damage to any target. A creature dealt damage this way can't block this turn.
SVar:DBNoBlock:DB$ Pump | ConditionDefined$ Remembered | ConditionPresent$ Creature | KW$ HIDDEN CARDNAME can't block. | Defined$ Remembered | SubAbility$ DBCleanup | StackDescription$ A creature dealt damage this way can't block this turn.
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
Oracle:{2}{R}: Ballista Wielder deals 1 damage to any target. A creature dealt damage this way can't block this turn.\nNightbound (If a player casts at least two spells during their own turn, it becomes day next turn.)

View File

@@ -0,0 +1,13 @@
Name:Bloodcrazed Socialite
ManaCost:3 B
Types:Creature Vampire
PT:3/3
K:Menace
T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | Execute$ DBToken | TriggerDescription$ When CARDNAME enters the battlefield, create a Blood token.
SVar:DBToken:DB$ Token | TokenScript$ c_a_blood_draw
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ Whenever CARDNAME attacks, you may sacrifice a Blood token. If you do, it gets +2/+2 until end of turn.
SVar:TrigPump:AB$ Pump | Cost$ Sac<1/Blood.token/Blood token> | Defined$ Self | NumAtt$ +2 | NumDef$ +2 | SpellDescription$ CARDNAME gets +2/+2 until end of turn.
DeckHas:Ability$Token & Ability$Sacrifice & Type$Blood
DeckHints:Type$Blood
SVar:HasAttackEffect:TRUE
Oracle:Menace\nWhen Bloodcrazed Socialite enters the battlefield, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.")\nWhenever Bloodcrazed Socialite attacks, you may sacrifice a Blood token. If you do, it gets +2/+2 until end of turn.

View File

@@ -0,0 +1,5 @@
Name:Cartographer's Survey
ManaCost:3 G
Types:Sorcery
A:SP$ Dig | DigNum$ 7 | ChangeNum$ 2 | Optional$ True | PrimaryPrompt$ You may choose up to two land cards | ChangeValid$ Land | DestinationZone$ Battlefield | Tapped$ True | RestRandomOrder$ True | StackDescription$ SpellDescription | SpellDescription$ Look at the top seven cards of your library. Put up to two land cards from among them onto the battlefield tapped. Put the rest on the bottom of your library in a random order.
Oracle:Look at the top seven cards of your library. Put up to two land cards from among them onto the battlefield tapped. Put the rest on the bottom of your library in a random order.

View File

@@ -0,0 +1,12 @@
Name:Courier Bat
ManaCost:2 B
Types:Creature Bat
PT:2/2
K:Flying
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | CheckSVar$ X | SVarCompare$ GE1 | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters the battlefield, if you gained life this turn, return up to one target creature card from your graveyard to your hand.
SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | TargetMin$ 0 | TargetMax$ 1 | TgtPrompt$ Choose up to one target creature card in your graveyard | ValidTgts$ Creature.YouOwn
SVar:X:Count$LifeYouGainedThisTurn
SVar:NeedsToPlayVar:X GE1
DeckHas:Ability$Graveyard
DeckHints:Ability$LifeGain
Oracle:Flying\nWhen CARDNAME enters the battlefield, if you gained life this turn, return up to one target creature card from your graveyard to your hand.

View File

@@ -0,0 +1,9 @@
Name:Dawnhart Disciple
ManaCost:1 G
Types:Creature Human Warlock
PT:2/2
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Human.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ Whenever another Human enters the battlefield under your control, CARDNAME gets +1/+1 until end of turn.
SVar:TrigPump:DB$ Pump | Defined$ Self | NumAtt$ +1 | NumDef$ +1
DeckHints:Type$Human
SVar:BuffedBy:Human
Oracle:Whenever another Human enters the battlefield under your control, Dawnhart Disciple gets +1/+1 until end of turn.

View File

@@ -0,0 +1,9 @@
Name:Daybreak Combatants
ManaCost:2 R
Types:Creature Human Warrior
PT:2/2
K:Haste
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigPump | TriggerDescription$ When CARDNAME enters the battlefield, target creature gets +2/+0 until end of turn.
SVar:TrigPump:DB$ Pump | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ Pump | NumAtt$ +2
SVar:PlayMain1:TRUE
Oracle:Haste\nWhen Daybreak Combatants enters the battlefield, target creature gets +2/+0 until end of turn.

View File

@@ -0,0 +1,11 @@
Name:Fleeting Spirit
ManaCost:1 W
Types:Creature Spirit
PT:3/1
A:AB$ Pump | Cost$ W ExileFromGrave<3/Card> | Defined$ Self | KW$ First strike | SpellDescription$ CARDNAME gains first strike until end of turn.
A:AB$ ChangeZone | Cost$ Discard<1/Card> | Defined$ Self | Origin$ Battlefield | Destination$ Exile | SubAbility$ DelTrig | SpellDescription$ Exile CARDNAME. Return it to the battlefield under its owner's control at the beginning of the next end step.
SVar:DelTrig:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ TrigReturn | TriggerDescription$ Return CARDNAME to the battlefield under its owner's control at the beginning of the next end step.
SVar:TrigReturn:DB$ ChangeZone | Origin$ Exile | Destination$ Battlefield | Defined$ Self
AI:RemoveDeck:All
DeckHas:Ability$Discard & Ability$Graveyard
Oracle:{W}, Exile three cards from your graveyard: Fleeting Spirit gains first strike until end of turn.\nDiscard a card: Exile Fleeting Spirit. Return it to the battlefield under its owner's control at the beginning of the next end step.

View File

@@ -0,0 +1,9 @@
Name:Flourishing Hunter
ManaCost:4 G G
Types:Creature Wolf Spirit
PT:6/6
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigGainLife | TriggerDescription$ When CARDNAME enters the battlefield, you gain life equal to the greatest toughness among other creatures you control.
SVar:TrigGainLife:DB$ GainLife | LifeAmount$ X
SVar:X:Count$GreatestToughness_Creature.YouCtrl+Other
DeckHas:Ability$LifeGain
Oracle:When Flourishing Hunter enters the battlefield, you gain life equal to the greatest toughness among other creatures you control.

View File

@@ -0,0 +1,11 @@
Name:Heron of Hope
ManaCost:3 W
Types:Creature Bird
PT:2/3
K:Flying
R:Event$ GainLife | ActiveZones$ Battlefield | ValidPlayer$ You | ReplaceWith$ GainLife | AiLogic$ DoubleLife | Description$ If you would gain life, you gain that much life plus 1 instead.
SVar:GainLife:DB$ ReplaceEffect | VarName$ LifeGained | VarValue$ X
SVar:X:ReplaceCount$LifeGained/Plus.1
A:AB$ Pump | Cost$ 1 W | Defined$ Self | KW$ Lifelink | SpellDescription$ CARDNAME gains lifelink until end of turn.
DeckHas:Ability$LifeGain
Oracle:Flying\nIf you would gain life, you gain that much life plus 1 instead.\n{1}{W}: Heron of Hope gains lifelink until end of turn.

View File

@@ -0,0 +1,7 @@
Name:Hungry Ridgewolf
ManaCost:1 R
Types:Creature Wolf
PT:2/2
S:Mode$ Continuous | Affected$ Card.Self | AddPower$ 1 | AddKeyword$ Trample | IsPresent$ Wolf.Other+YouCtrl,Werewolf.Other+YouCtrl | Description$ As long as you control another Wolf or Werewolf, CARDNAME gets +1/+0 and has trample.
DeckHints:Type$Wolf|Werewolf
Oracle:As long as you control another Wolf or Werewolf, Hungry Ridgewolf gets +1/+0 and has trample.

View File

@@ -0,0 +1,27 @@
Name:Infestation Expert
ManaCost:4 G
Types:Creature Human Werewolf
PT:3/4
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME enters the battlefield or attacks, create a 1/1 green Insect creature token.
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigToken | Secondary$ True | TriggerDescription$ Whenever CARDNAME enters the battlefield or attacks, create a 1/1 green Insect creature token.
SVar:TrigToken:DB$ Token | TokenAmount$ 1 | TokenScript$ g_1_1_insect
K:Daybound
AlternateMode:DoubleFaced
DeckHas:Ability$Token
SVar:HasAttackEffect:TRUE
Oracle:Whenever Infestation Expert enters the battlefield or attacks, create a 1/1 green Insect creature token.\nDaybound (If a player casts no spells during their own turn, it becomes night next turn.)
ALTERNATE
Name:Infested Werewolf
ManaCost:no cost
Colors:green
Types:Creature Werewolf
PT:4/5
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigToken | TriggerDescription$ Whenever CARDNAME enters the battlefield or attacks, create two 1/1 green Insect creature tokens.
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigToken | Secondary$ True | TriggerDescription$ Whenever CARDNAME enters the battlefield or attacks, create two 1/1 green Insect creature tokens.
SVar:TrigToken:DB$ Token | TokenAmount$ 2 | TokenScript$ g_1_1_insect
K:Nightbound
DeckHas:Ability$Token
SVar:HasAttackEffect:TRUE
Oracle:Whenever Infested Werewolf enters the battlefield or attacks, create two 1/1 green Insect creature tokens.\nNightbound (If a player casts at least two spells during their own turn, it becomes day next turn.)

View File

@@ -0,0 +1,32 @@
Name:Katilda, Dawnhart Martyr
ManaCost:1 W W
Types:Legendary Creature Spirit Warlock
PT:*/*
K:Flying
K:Lifelink
K:Protection from Vampires
K:Disturb:3 W W
S:Mode$ Continuous | EffectZone$ All | CharacteristicDefining$ True | SetPower$ X | SetToughness$ X | Description$ CARDNAME's power and toughness are each equal to the number of permanents you control that are Spirits and/or enchantments.
SVar:X:Count$Valid Spirit.YouCtrl,Enchantment.YouCtrl
SVar:NeedsToPlayVar:X GE2
SVar:BuffedBy:Enchantment,Spirit
DeckHints:Type$Spirit|Enchantment
DeckHas:Ability$LifeGain & Ability$Graveyard
AlternateMode:DoubleFaced
Oracle:Flying, lifelink, protection from Vampires\nKatilda, Dawnhart Martyr's power and toughness are each equal to the number of permanents you control that are Spirits and/or enchantments.\nDisturb {3}{W}{W} (You may cast this card from your graveyard transformed for its disturb cost.)
ALTERNATE
Name:Katilda's Rising Dawn
ManaCost:no cost
Colors:white
Types:Legendary Enchantment Aura
K:Enchant creature
A:SP$ Attach | ValidTgts$ Creature | TgtPrompt$ Select target creature | AILogic$ Pump
S:Mode$ Continuous | Affected$ Creature.EnchantedBy | AddPower$ X | AddToughness$ X | AddKeyword$ Flying & Lifelink & Protection from Vampires | Description$ Enchanted creature has flying, lifelink, and protection from Vampires, and it gets +X/+X, where X is the number of permanents you control that are Spirits and/or enchantments.
SVar:X:Count$Valid Spirit.YouCtrl,Enchantment.YouCtrl
SVar:BuffedBy:Enchantment,Spirit
R:Event$ Moved | ValidCard$ Card.Self | Destination$ Graveyard | ReplaceWith$ Exile | Description$ If CARDNAME would be put into a graveyard from anywhere, exile it instead.
SVar:Exile:DB$ ChangeZone | Hidden$ True | Origin$ All | Destination$ Exile | Defined$ ReplacedCard
DeckHas:Ability$LifeGain
Oracle:Enchant creature\nEnchanted creature has flying, lifelink, and protection from Vampires, and it gets +X/+X, where X is the number of permanents you control that are Spirits and/or enchantments.\nIf Katilda's Rising Dawn would be put into a graveyard from anywhere, exile it instead.

View File

@@ -0,0 +1,8 @@
Name:Kessig Flamebreather
ManaCost:1 R
Types:Creature Human Shaman
PT:1/3
T:Mode$ SpellCast | ValidCard$ Card.nonCreature | ValidActivatingPlayer$ You | Execute$ TrigDamage | TriggerZones$ Battlefield | TriggerDescription$ Whenever you cast a noncreature spell, CARDNAME deals 1 damage to each opponent.
SVar:TrigDamage:DB$ DealDamage | Defined$ Player.Opponent | NumDmg$ 1
SVar:BuffedBy:Card.nonLand+nonCreature
Oracle:Whenever you cast a noncreature spell, Kessig Flamebreather deals 1 damage to each opponent.

View File

@@ -0,0 +1,23 @@
Name:Lambholt Raconteur
ManaCost:3 R
Types:Creature Human Werewolf
PT:2/4
T:Mode$ SpellCast | ValidCard$ Card.nonCreature | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever you cast a noncreature spell, CARDNAME deals 1 damage to each opponent.
SVar:TrigDamage:DB$ DealDamage | NumDmg$ 1 | Defined$ Player.Opponent
K:Daybound
AlternateMode:DoubleFaced
SVar:BuffedBy:Card.nonCreature+nonLand
Oracle:Whenever you cast a noncreature spell, Lambholt Raconteur deals 1 damage to each opponent.\nDaybound (If a player casts no spells during their own turn, it becomes night next turn.)
ALTERNATE
Name:Lambholt Ravager
ManaCost:no cost
Colors:red
Types:Creature Werewolf
PT:4/4
T:Mode$ SpellCast | ValidCard$ Card.nonCreature | ValidActivatingPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDamage | TriggerDescription$ Whenever you cast a noncreature spell, CARDNAME deals 2 damage to each opponent.
SVar:TrigDamage:DB$ DealDamage | NumDmg$ 2 | Defined$ Player.Opponent
K:Nightbound
SVar:BuffedBy:Card.nonCreature+nonLand
Oracle:Whenever you cast a noncreature spell, Lambholt Ravager deals 2 damage to each opponent.\nNightbound (If a player casts at least two spells during their own turn, it becomes day next turn.)

View File

@@ -0,0 +1,9 @@
Name:Militia Rallier
ManaCost:2 W
Types:Creature Human Soldier
PT:3/3
K:CARDNAME can't attack alone.
T:Mode$ Attacks | ValidCard$ Card.Self | Execute$ TrigUntap | TriggerDescription$ Whenever CARDNAME attacks, untap target creature.
SVar:TrigUntap:DB$ Untap | ValidTgts$ Creature | TgtPrompt$ Select target creature
SVar:HasAttackEffect:TRUE
Oracle:Militia Rallier can't attack alone.\nWhenever Militia Rallier attacks, untap target creature.

View File

@@ -0,0 +1,19 @@
Name:Oakshade Stalker
ManaCost:2 G
Types:Creature Human Ranger Werewolf
PT:3/3
K:MayFlashCost:2
K:Daybound
AlternateMode:DoubleFaced
Oracle:You may cast this spell as though it had flash if you pay {2} more to cast it.\nDaybound (If a player casts no spells during their own turn, it becomes night next turn.)
ALTERNATE
Name:Moonlit Ambusher
ManaCost:no cost
Colors:green
Types:Creature Werewolf
PT:6/3
K:Nightbound
Oracle:Nightbound (If a player casts at least two spells during their own turn, it becomes day next turn.)

View File

@@ -0,0 +1,27 @@
Name:Restless Bloodseeker
ManaCost:1 B
Types:Creature Vampire
PT:1/3
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | CheckSVar$ X | SVarCompare$ GE1 | Execute$ DBToken | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your end step, if you gained life this turn, create a Blood token.
SVar:X:Count$LifeYouGainedThisTurn
SVar:DBToken:DB$ Token | TokenScript$ c_a_blood_draw
A:AB$ SetState | Cost$ Sac<2/Blood.token/Blood token> | Defined$ Self | SorcerySpeed$ True | Mode$ Transform | SpellDescription$ Transform CARDNAME. Activate only as a sorcery.
DeckHas:Ability$Token & Ability$Sacrifice & Type$Blood
DeckNeeds:Ability$LifeGain
AlternateMode:DoubleFaced
Oracle:At the beginning of your end step, if you gained life this turn, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.")\nSacrifice two Blood tokens: Transform Restless Bloodseeker. Activate only as a sorcery.
ALTERNATE
Name:Bloodsoaked Reveler
ManaCost:no cost
Colors:black
Types:Creature Vampire
PT:3/3
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | CheckSVar$ X | Execute$ DBToken | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your end step, if you gained life this turn, create a Blood token.
SVar:X:Count$LifeYouGainedThisTurn
SVar:DBToken:DB$ Token | TokenScript$ c_a_blood_draw
A:AB$ LoseLife | Cost$ 4 B | Defined$ Player.Opponent | LifeAmount$ 2 | SubAbility$ DBGainLife | SpellDescription$ Each opponent loses 2 life and you gain 2 life.
SVar:DBGainLife:DB$ GainLife | LifeAmount$ 2
DeckHas:Ability$LifeGain & Ability$Token & Ability$Sacrifice & Type$Blood
Oracle:At the beginning of your end step, if you gained life this turn, create a Blood token. (It's an artifact with "{1}, {T}, Discard a card, Sacrifice this artifact: Draw a card.")\nSacrifice two Blood tokens: Transform Restless Bloodseeker. Activate only as a sorcery.\n{4}{B}: Each opponent loses 2 life and you gain 2 life.

View File

@@ -0,0 +1,11 @@
Name:Stensia Uprising
ManaCost:2 R R
Types:Enchantment
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ At the beginning of your end step, create a 1/1 red Human creature token. Then if you control exactly thirteen permanents, you may sacrifice Stensia Uprising. When you do, it deals 7 damage to any target.
SVar:TrigToken:DB$ Token | TokenScript$ r_1_1_human | SubAbility$ DBSacrifice
SVar:DBSacrifice:DB$ Sacrifice | ConditionPresent$ Permanent.YouCtrl | ConditionCompare$ EQ13 | SacValid$ Self | Optional$ True | RememberSacrificed$ True | SubAbility$ DBImmediateTrig
SVar:DBImmediateTrig:DB$ ImmediateTrigger | ConditionDefined$ Remembered | ConditionPresent$ Card | Execute$ TrigDamage | SubAbility$ DBCleanup | TriggerDescription$ When you sacrifice CARDNAME, it deals 7 damage to any target.
SVar:TrigDamage:DB$ DealDamage | ValidTgts$ Creature,Player,Planeswalker | TgtPrompt$ Select any target | NumDmg$ 7
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
DeckHas:Ability$Token & Ability$Sacrifice
Oracle:At the beginning of your end step, create a 1/1 red Human creature token. Then if you control exactly thirteen permanents, you may sacrifice Stensia Uprising. When you do, it deals 7 damage to any target.

View File

@@ -0,0 +1,6 @@
Name:Thirst for Discovery
ManaCost:2 U
Types:Instant
A:SP$ Draw | NumCards$ 3 | SubAbility$ DBDiscard | SpellDescription$ Draw three cards.
SVar:DBDiscard:DB$ Discard | Defined$ You | NumCards$ 2 | Mode$ TgtChoose | UnlessType$ Basic Land | StackDescription$ SpellDescription | SpellDescription$ Then discard two cards unless you discard a basic land card.
Oracle:Draw three cards. Then discard two cards unless you discard a basic land card.

View File

@@ -0,0 +1,6 @@
Name:Wash Away
ManaCost:U
Types:Instant
A:SP$ Counter | TargetType$ Spell | TgtPrompt$ Select target spell that wasn't cast from its owner's hand | ValidTgts$ Card.wasNotCastFromHand | SpellDescription$ Counter target spell [that wasn't cast from its owner's hand].
A:SP$ Counter | Cost$ 1 U U | TargetType$ Spell | TgtPrompt$ Select target spell | ValidTgts$ Card | PrecostDesc$ Cleave | CostDesc$ {1}{U}{U} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.)
Oracle:Cleave {1}{U}{U} (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.)\nCounter target spell [that wasn't cast from its owner's hand].

View File

@@ -0,0 +1,8 @@
Name:Winged Portent
ManaCost:1 U U
Types:Instant
A:SP$ Draw | NumCards$ X | SpellDescription$ Draw a card for each creature [with flying] you control.
A:SP$ Draw | Cost$ 4 G U | NumCards$ Y | PrecostDesc$ Cleave | CostDesc$ {4}{G}{U} | NonBasicSpell$ True | SpellDescription$ (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.)
SVar:X:Count$Valid Creature.withFlying+YouCtrl
SVar:Y:Count$Valid Creature.YouCtrl
Oracle:Cleave {4}{G}{U} (You may cast this spell for its cleave cost. If you do, remove the words in square brackets.)\nDraw a card for each creature [with flying] you control.

View File

@@ -0,0 +1,8 @@
Name:Wretched Throng
ManaCost:1 U
Types:Creature Zombie Horror
PT:2/1
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChange | OptionalDecider$ You | TriggerDescription$ When CARDNAME dies, you may search your library for a card named Wretched Throng, reveal it, put it into your hand, then shuffle.
SVar:TrigChange:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card.namedWretched Throng | ChangeNum$ 1
DeckHints:Name$Wretched Throng
Oracle:When Wretched Throng dies, you may search your library for a card named Wretched Throng, reveal it, put it into your hand, then shuffle.

View File

@@ -1991,6 +1991,7 @@ lblPlayerRolledResult={0} würfelte {1}?
lblDoYouWantPayEcho=Möchtest du die Echokosten zahlen
lblPayEcho=Zahle Echokosten
lblDoYouWantSacrifice=Opfern durchführen?
lblDoYouWantSacrificeThis=Do you want to sacrifice {0}?
#SetStateEffect.java
lblFaceDownCardCantTurnFaceUp=Verdeckte Karte kann nicht umgedreht werden
#ShuffleEffect.java

View File

@@ -1992,6 +1992,7 @@ lblPlayerRolledResult={0} rolled {1}
lblDoYouWantPayEcho=Do you want to pay Echo
lblPayEcho=Pay Echo
lblDoYouWantSacrifice=Do you want to sacrifice?
lblDoYouWantSacrificeThis=Do you want to sacrifice {0}?
#SetStateEffect.java
lblFaceDownCardCantTurnFaceUp=Face-down card can''t turn face up
#ShuffleEffect.java

View File

@@ -1990,6 +1990,7 @@ lblPlayerRolledResult={0} lanzó {1}
lblDoYouWantPayEcho=¿Quieres pagar Eco
lblPayEcho=Pagar Eco
lblDoYouWantSacrifice=¿Quieres sacrificar?
lblDoYouWantSacrificeThis=¿Quieres sacrificar {0}?
#SetStateEffect.java
lblFaceDownCardCantTurnFaceUp=La carta boca abajo no se puede girar boca arriba
#ShuffleEffect.java

View File

@@ -1989,6 +1989,7 @@ lblPlayerRolledResult={0} ha ottenuto {1} col dado
lblDoYouWantPayEcho=Vuoi pagare Eco
lblPayEcho=Paga Eco
lblDoYouWantSacrifice=Vuoi sacrificare?
lblDoYouWantSacrifice=Vuoi sacrificare {0}?
#SetStateEffect.java
lblFaceDownCardCantTurnFaceUp=La carta a faccia in giù non può essere girata a faccia in su
#ShuffleEffect.java

View File

@@ -1989,6 +1989,7 @@ lblPlayerRolledResult={0}が {1}をロールしました
lblDoYouWantPayEcho=エコーコストを支払いますか:
lblPayEcho=エコーコストを支払います
lblDoYouWantSacrifice=生け贄にしますか?
lblDoYouWantSacrificeThis=Do you want to sacrifice {0}?
#SetStateEffect.java
lblFaceDownCardCantTurnFaceUp=裏向きのカードが表向きにできません
#ShuffleEffect.java

View File

@@ -1993,6 +1993,7 @@ lblPlayerRolledResult={0}掷骰结果为{1}
lblDoYouWantPayEcho=你想支付返响费用
lblPayEcho=支付返响费用
lblDoYouWantSacrifice=你想牺牲吗?
lblDoYouWantSacrificeThis=Do you want to sacrifice {0}?
#SetStateEffect.java
lblFaceDownCardCantTurnFaceUp=面朝下的牌不能面朝上
#ShuffleEffect.java

View File

@@ -1191,6 +1191,10 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
for (String part : splitUTypes) {
if (c.getType().hasStringType(part)) {
return true;
} else if (part.equals("Basic Land")) {
if (c.isBasicLand()) {
return true;
}
}
}
}
@@ -1201,9 +1205,9 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
StringBuilder promptType = new StringBuilder();
for (String part : splitUTypes) {
if (n==1) {
promptType.append(part);
promptType.append(part.toLowerCase());
} else {
promptType.append(" or ").append(part);
promptType.append(" or ").append(part.toLowerCase());
}
n++;
}