mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-14 09:48:02 +00:00
Merge remote-tracking branch 'core/master'
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.)
|
||||
13
forge-gui/res/cardsfolder/upcoming/bloodcrazed_socialite.txt
Normal file
13
forge-gui/res/cardsfolder/upcoming/bloodcrazed_socialite.txt
Normal 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.
|
||||
@@ -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.
|
||||
12
forge-gui/res/cardsfolder/upcoming/courier_bat.txt
Normal file
12
forge-gui/res/cardsfolder/upcoming/courier_bat.txt
Normal 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.
|
||||
9
forge-gui/res/cardsfolder/upcoming/dawnhart_disciple.txt
Normal file
9
forge-gui/res/cardsfolder/upcoming/dawnhart_disciple.txt
Normal 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.
|
||||
@@ -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.
|
||||
11
forge-gui/res/cardsfolder/upcoming/fleeting_spirit.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/fleeting_spirit.txt
Normal 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.
|
||||
@@ -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.
|
||||
11
forge-gui/res/cardsfolder/upcoming/heron_of_hope.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/heron_of_hope.txt
Normal 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.
|
||||
7
forge-gui/res/cardsfolder/upcoming/hungry_ridgewolf.txt
Normal file
7
forge-gui/res/cardsfolder/upcoming/hungry_ridgewolf.txt
Normal 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.
|
||||
@@ -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.)
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
@@ -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.)
|
||||
9
forge-gui/res/cardsfolder/upcoming/militia_rallier.txt
Normal file
9
forge-gui/res/cardsfolder/upcoming/militia_rallier.txt
Normal 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.
|
||||
@@ -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.)
|
||||
|
||||
@@ -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.
|
||||
11
forge-gui/res/cardsfolder/upcoming/stensia_uprising.txt
Normal file
11
forge-gui/res/cardsfolder/upcoming/stensia_uprising.txt
Normal 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.
|
||||
@@ -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.
|
||||
6
forge-gui/res/cardsfolder/upcoming/wash_away.txt
Normal file
6
forge-gui/res/cardsfolder/upcoming/wash_away.txt
Normal 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].
|
||||
8
forge-gui/res/cardsfolder/upcoming/winged_portent.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/winged_portent.txt
Normal 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.
|
||||
8
forge-gui/res/cardsfolder/upcoming/wretched_throng.txt
Normal file
8
forge-gui/res/cardsfolder/upcoming/wretched_throng.txt
Normal 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.
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1989,6 +1989,7 @@ lblPlayerRolledResult={0}が {1}をロールしました
|
||||
lblDoYouWantPayEcho=エコーコストを支払いますか:
|
||||
lblPayEcho=エコーコストを支払います
|
||||
lblDoYouWantSacrifice=生け贄にしますか?
|
||||
lblDoYouWantSacrificeThis=Do you want to sacrifice {0}?
|
||||
#SetStateEffect.java
|
||||
lblFaceDownCardCantTurnFaceUp=裏向きのカードが表向きにできません
|
||||
#ShuffleEffect.java
|
||||
|
||||
@@ -1993,6 +1993,7 @@ lblPlayerRolledResult={0}掷骰结果为{1}
|
||||
lblDoYouWantPayEcho=你想支付返响费用
|
||||
lblPayEcho=支付返响费用
|
||||
lblDoYouWantSacrifice=你想牺牲吗?
|
||||
lblDoYouWantSacrificeThis=Do you want to sacrifice {0}?
|
||||
#SetStateEffect.java
|
||||
lblFaceDownCardCantTurnFaceUp=面朝下的牌不能面朝上
|
||||
#ShuffleEffect.java
|
||||
|
||||
@@ -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++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user