mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 12:48:00 +00:00
Merge branch 'Card-Forge:master' into Warhammer-8
This commit is contained in:
@@ -101,6 +101,7 @@ public class ChooseCardEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (final Player p : tgtPlayers) {
|
for (final Player p : tgtPlayers) {
|
||||||
|
boolean dontRevealToOwner = true;
|
||||||
if (sa.hasParam("EachBasicType")) {
|
if (sa.hasParam("EachBasicType")) {
|
||||||
// Get all lands,
|
// Get all lands,
|
||||||
List<Card> land = CardLists.filter(game.getCardsIn(ZoneType.Battlefield), Presets.LANDS);
|
List<Card> land = CardLists.filter(game.getCardsIn(ZoneType.Battlefield), Presets.LANDS);
|
||||||
@@ -220,6 +221,7 @@ public class ChooseCardEffect extends SpellAbilityEffect {
|
|||||||
} else if ((tgt == null) || p.canBeTargetedBy(sa)) {
|
} else if ((tgt == null) || p.canBeTargetedBy(sa)) {
|
||||||
if (sa.hasParam("AtRandom") && !choices.isEmpty()) {
|
if (sa.hasParam("AtRandom") && !choices.isEmpty()) {
|
||||||
Aggregates.random(choices, validAmount, chosen);
|
Aggregates.random(choices, validAmount, chosen);
|
||||||
|
dontRevealToOwner = false;
|
||||||
} else {
|
} else {
|
||||||
String title = sa.hasParam("ChoiceTitle") ? sa.getParam("ChoiceTitle") : Localizer.getInstance().getMessage("lblChooseaCard") + " ";
|
String title = sa.hasParam("ChoiceTitle") ? sa.getParam("ChoiceTitle") : Localizer.getInstance().getMessage("lblChooseaCard") + " ";
|
||||||
if (sa.hasParam ("ChoiceTitleAppendDefined")) {
|
if (sa.hasParam ("ChoiceTitleAppendDefined")) {
|
||||||
@@ -248,12 +250,14 @@ public class ChooseCardEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (sa.hasParam("Reveal") && !sa.hasParam("SecretlyChoose")) {
|
if (sa.hasParam("Reveal") && !sa.hasParam("SecretlyChoose")) {
|
||||||
game.getAction().reveal(chosen, p, true, sa.hasParam("RevealTitle") ? sa.getParam("RevealTitle") : Localizer.getInstance().getMessage("lblChosenCards") + " ");
|
game.getAction().reveal(chosen, p, dontRevealToOwner, sa.hasParam("RevealTitle") ?
|
||||||
|
sa.getParam("RevealTitle") : Localizer.getInstance().getMessage("lblChosenCards") + " ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(sa.hasParam("Reveal") && sa.hasParam("SecretlyChoose")) {
|
if (sa.hasParam("Reveal") && sa.hasParam("SecretlyChoose")) {
|
||||||
for (final Player p : tgtPlayers) {
|
for (final Player p : tgtPlayers) {
|
||||||
game.getAction().reveal(chosen, p, true, sa.hasParam("RevealTitle") ? sa.getParam("RevealTitle") : Localizer.getInstance().getMessage("lblChosenCards") + " ");
|
game.getAction().reveal(chosen, p, true, sa.hasParam("RevealTitle") ?
|
||||||
|
sa.getParam("RevealTitle") : Localizer.getInstance().getMessage("lblChosenCards") + " ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
host.setChosenCards(chosen);
|
host.setChosenCards(chosen);
|
||||||
|
|||||||
@@ -360,10 +360,15 @@ public class PlayEffect extends SpellAbilityEffect {
|
|||||||
tgtSA = tgtSA.copyWithNoManaCost();
|
tgtSA = tgtSA.copyWithNoManaCost();
|
||||||
} else if (sa.hasParam("PlayCost")) {
|
} else if (sa.hasParam("PlayCost")) {
|
||||||
Cost abCost;
|
Cost abCost;
|
||||||
if ("ManaCost".equals(sa.getParam("PlayCost"))) {
|
String cost = sa.getParam("PlayCost");
|
||||||
|
if (cost.equals("ManaCost")) {
|
||||||
abCost = new Cost(source.getManaCost(), false);
|
abCost = new Cost(source.getManaCost(), false);
|
||||||
} else {
|
} else {
|
||||||
abCost = new Cost(sa.getParam("PlayCost"), false);
|
if (cost.contains("ConvertedManaCost")) {
|
||||||
|
final String costcmc = Integer.toString(tgtCard.getCMC());
|
||||||
|
cost = cost.replace("ConvertedManaCost", costcmc);
|
||||||
|
}
|
||||||
|
abCost = new Cost(cost, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
tgtSA = tgtSA.copyWithDefinedCost(abCost);
|
tgtSA = tgtSA.copyWithDefinedCost(abCost);
|
||||||
|
|||||||
@@ -3,10 +3,9 @@ ManaCost:4 R R
|
|||||||
Types:Creature Efreet
|
Types:Creature Efreet
|
||||||
PT:6/4
|
PT:6/4
|
||||||
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ At the beginning of your upkeep, choose target nonland permanent you control and up to two target nonland permanents you don't control. Destroy one of them at random.
|
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigPump | TriggerDescription$ At the beginning of your upkeep, choose target nonland permanent you control and up to two target nonland permanents you don't control. Destroy one of them at random.
|
||||||
SVar:TrigPump:DB$ Pump | ValidTgts$ Permanent.nonLand+YouCtrl | TgtPrompt$ Select target nonland permanent you control | Mandatory$ True | RememberObjects$ Targeted | IsCurse$ True | SubAbility$ DBPump | StackDescription$ None
|
SVar:TrigPump:DB$ Pump | ValidTgts$ Permanent.nonLand+YouCtrl | TgtPrompt$ Select target nonland permanent you control | Mandatory$ True | IsCurse$ True | SubAbility$ DBPump
|
||||||
SVar:DBPump:DB$ Pump | ValidTgts$ Permanent.nonLand+YouDontCtrl | TgtPrompt$ Select target nonland permanent you don't control | TargetMin$ 0 | TargetMax$ 1 | RememberObjects$ Targeted | IsCurse$ True | SubAbility$ DBPump2 | StackDescription$ None
|
SVar:DBPump:DB$ Pump | ValidTgts$ Permanent.nonLand+YouDontCtrl | TgtPrompt$ Select up to two target nonland permanents you don't control | TargetMin$ 0 | TargetMax$ 2 | IsCurse$ True | SubAbility$ DBChooseRandom
|
||||||
SVar:DBPump2:DB$ Pump | ValidTgts$ Permanent.nonLand+YouDontCtrl | TgtPrompt$ Select another target nonland permanent you don't control | TargetMin$ 0 | TargetMax$ 1 | TargetUnique$ True | RememberObjects$ Targeted | IsCurse$ True | SubAbility$ DBChooseRandom | StackDescription$ None
|
SVar:DBChooseRandom:DB$ ChooseCard | AtRandom$ True | Reveal$ True | RevealTitle$ OVERRIDE Randomly chosen permanent: | DefinedCards$ TargetedCard | SubAbility$ DBDestroy
|
||||||
SVar:DBChooseRandom:DB$ ChooseCard | Defined$ You | Amount$ 1 | AtRandom$ True | Choices$ Card.IsRemembered | SubAbility$ DBDestroy
|
|
||||||
SVar:DBDestroy:DB$ Destroy | Defined$ ChosenCard | SubAbility$ DBCleanup
|
SVar:DBDestroy:DB$ Destroy | Defined$ ChosenCard | SubAbility$ DBCleanup
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearChosenCard$ True
|
||||||
Oracle:At the beginning of your upkeep, choose target nonland permanent you control and up to two target nonland permanents you don't control. Destroy one of them at random.
|
Oracle:At the beginning of your upkeep, choose target nonland permanent you control and up to two target nonland permanents you don't control. Destroy one of them at random.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ ManaCost:3 B R G
|
|||||||
Types:Legendary Creature Dragon
|
Types:Legendary Creature Dragon
|
||||||
PT:6/6
|
PT:6/6
|
||||||
K:Flying
|
K:Flying
|
||||||
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | OptionalDecider$ You | Execute$ TrigChooseColor | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may pay {2}{R}. If you do, choose a color, then that player reveals their hand and Darigaaz deals damage to the player equal to the number of cards of that color revealed this way.
|
T:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | OptionalDecider$ You | Execute$ TrigChooseColor | TriggerZones$ Battlefield | TriggerDescription$ Whenever CARDNAME deals combat damage to a player, you may pay {2}{R}. If you do, choose a color, then that player reveals their hand and NICKNAME deals damage to the player equal to the number of cards of that color revealed this way.
|
||||||
SVar:TrigChooseColor:AB$ ChooseColor | Cost$ 2 R | Defined$ You | AILogic$ MostProminentInHumanDeck | SubAbility$ DBRevealHand
|
SVar:TrigChooseColor:AB$ ChooseColor | Cost$ 2 R | Defined$ You | AILogic$ MostProminentInHumanDeck | SubAbility$ DBRevealHand
|
||||||
SVar:DBRevealHand:DB$ RevealHand | Defined$ TriggeredTarget | RememberRevealed$ True | SubAbility$ DBDamage
|
SVar:DBRevealHand:DB$ RevealHand | Defined$ TriggeredTarget | RememberRevealed$ True | SubAbility$ DBDamage
|
||||||
SVar:DBDamage:DB$ DealDamage | Defined$ TriggeredTarget | NumDmg$ X | SubAbility$ DBCleanup
|
SVar:DBDamage:DB$ DealDamage | Defined$ TriggeredTarget | NumDmg$ X | SubAbility$ DBCleanup
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ K:Trample
|
|||||||
K:Haste
|
K:Haste
|
||||||
K:etbCounter:P1P1:1:CheckSVar$ WasKicked:If CARDNAME was kicked, it enters the battlefield with a +1/+1 counter on it.
|
K:etbCounter:P1P1:1:CheckSVar$ WasKicked:If CARDNAME was kicked, it enters the battlefield with a +1/+1 counter on it.
|
||||||
SVar:WasKicked:Count$Kicked.1.0
|
SVar:WasKicked:Count$Kicked.1.0
|
||||||
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | Execute$ TrigReturn | IsPresent$ Card.Self+counters_EQ0_P1P1 | TriggerDescription$ At the beginning of your end step, return Shatterskull Charger to its owner's hand unless it has a +1/+1 counter on it.
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | Execute$ TrigReturn | IsPresent$ Card.Self+counters_EQ0_P1P1 | TriggerDescription$ At the beginning of your end step, return CARDNAME to its owner's hand unless it has a +1/+1 counter on it.
|
||||||
SVar:TrigReturn:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Defined$ Self
|
SVar:TrigReturn:DB$ ChangeZone | Origin$ Battlefield | Destination$ Hand | Defined$ Self
|
||||||
SVar:PlayMain1:TRUE
|
SVar:PlayMain1:TRUE
|
||||||
DeckHas:Ability$Counters
|
DeckHas:Ability$Counters
|
||||||
|
|||||||
10
forge-gui/res/cardsfolder/upcoming/anrakyr_the_traveller.txt
Normal file
10
forge-gui/res/cardsfolder/upcoming/anrakyr_the_traveller.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
Name:Anrakyr the Traveller
|
||||||
|
ManaCost:4 B
|
||||||
|
Types:Legendary Artifact Creature Necron
|
||||||
|
PT:4/4
|
||||||
|
T:Mode$ Attacks | ValidCard$ Card.Self | TriggerZones$ Battlefield | Execute$ TrigCast | OptionalDecider$ You | TriggerDescription$ Whenever CARDNAME attacks, you may cast an artifact spell from your hand or graveyard by paying life equal to its mana value rather than paying its mana cost.
|
||||||
|
SVar:TrigCast:DB$ Play | ValidZone$ Hand | Valid$ Artifact.YouOwn | ValidSA$ Spell | Controller$ You | ValidZone$ Hand,Graveyard | Optional$ True | Amount$ 1 | PlayCost$ PayLife<ConvertedManaCost>
|
||||||
|
SVar:HasAttackEffect:TRUE
|
||||||
|
DeckHas:Ability$Graveyard
|
||||||
|
DeckHints:Type$Artifact
|
||||||
|
Oracle:Lord of the Pyrrhian Legions — Whenever Anrakyr the Traveller attacks, you may cast an artifact spell from your hand or graveyard by paying life equal to its mana value rather than paying its mana cost.
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
Name:Shadowheart, Sharran Cleric
|
||||||
|
ManaCost:1 B
|
||||||
|
Types:Legendary Creature Human Elf Cleric
|
||||||
|
PT:2/2
|
||||||
|
K:Deathtouch
|
||||||
|
K:Specialize:2::Activate only if a player has 13 or less life.:CheckSVar$ X | SVarCompare$ LE13
|
||||||
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ At the beginning of your end step, CARDNAME deals 1 damage to each player.
|
||||||
|
SVar:TrigDealDamage:DB$ DealDamage | Defined$ Player | NumDmg$ 1
|
||||||
|
SVar:X:PlayerCountPlayers$LowestLifeTotal
|
||||||
|
AlternateMode:Specialize
|
||||||
|
DeckHas:Ability$Discard
|
||||||
|
Oracle:Deathtouch\nSpecialize {2}. Activate only if a player has 13 or less life.\nAt the beginning of your end step, Shadowheart, Sharran Cleric deals 1 damage to each player.
|
||||||
|
|
||||||
|
SPECIALIZE:WHITE
|
||||||
|
|
||||||
|
Name:Shadowheart, Cleric of Order
|
||||||
|
ManaCost:1 W B
|
||||||
|
Types:Legendary Creature Human Elf Cleric
|
||||||
|
PT:4/4
|
||||||
|
K:Deathtouch
|
||||||
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ At the beginning of your end step, CARDNAME deals 1 damage to each player.
|
||||||
|
SVar:TrigDealDamage:DB$ DealDamage | Defined$ Player | NumDmg$ 1
|
||||||
|
T:Mode$ LifeLost | ValidPlayer$ You | TriggerZones$ Battlefield | PlayerTurn$ True | Execute$ TrigToken | TriggerDescription$ Whenever you lose life during your turn, create a 2/2 white Knight creature token.
|
||||||
|
SVar:TrigToken:DB$ Token | TokenScript$ w_2_2_knight
|
||||||
|
DeckHas:Ability$Token & Type$Knight
|
||||||
|
Oracle:Deathtouch\nAt the beginning of your end step, Shadowheart, Cleric of Order deals 1 damage to each player.\nWhenever you lose life during your turn, create a 2/2 white Knight creature token.
|
||||||
|
|
||||||
|
SPECIALIZE:BLUE
|
||||||
|
|
||||||
|
Name:Shadowheart, Cleric of Trickery
|
||||||
|
ManaCost:1 U B
|
||||||
|
Types:Legendary Creature Human Elf Cleric
|
||||||
|
PT:4/4
|
||||||
|
K:Deathtouch
|
||||||
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ At the beginning of your end step, CARDNAME deals 1 damage to each player.
|
||||||
|
SVar:TrigDealDamage:DB$ DealDamage | Defined$ Player | NumDmg$ 1
|
||||||
|
T:Mode$ LifeLost | ValidPlayer$ You | TriggerZones$ Battlefield | PlayerTurn$ True | Execute$ TrigDraw | TriggerDescription$ Whenever you lose life during your turn, draw a card.
|
||||||
|
SVar:TrigDraw:DB$ Draw
|
||||||
|
Oracle:Deathtouch\nAt the beginning of your end step, Shadowheart, Cleric of Trickery deals 1 damage to each player.\nWhenever you lose life during your turn, draw a card.
|
||||||
|
|
||||||
|
SPECIALIZE:BLACK
|
||||||
|
|
||||||
|
Name:Shadowheart, Cleric of Graves
|
||||||
|
ManaCost:1 B B
|
||||||
|
Types:Legendary Creature Human Elf Cleric
|
||||||
|
PT:4/4
|
||||||
|
K:Deathtouch
|
||||||
|
K:Lifelink
|
||||||
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ At the beginning of your end step, CARDNAME deals 1 damage to each player.
|
||||||
|
SVar:TrigDealDamage:DB$ DealDamage | Defined$ Player | NumDmg$ 1
|
||||||
|
DeckHas:Ability$LifeGain
|
||||||
|
Oracle:Deathtouch, lifelink\nAt the beginning of your end step, Shadowheart, Cleric of Graves deals 1 damage to each player.
|
||||||
|
|
||||||
|
SPECIALIZE:RED
|
||||||
|
|
||||||
|
Name:Shadowheart, Cleric of War
|
||||||
|
ManaCost:1 B R
|
||||||
|
Types:Legendary Creature Human Elf Cleric
|
||||||
|
PT:4/4
|
||||||
|
K:Deathtouch
|
||||||
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDamageAll | TriggerDescription$ At the beginning of your end step, CARDNAME deals 1 damage to each player.
|
||||||
|
SVar:TrigDamageAll:DB$ DealDamage | Defined$ Player | NumDmg$ 1
|
||||||
|
T:Mode$ LifeLost | ValidPlayer$ You | TriggerZones$ Battlefield | PlayerTurn$ True | Execute$ TrigDamageOpp | TriggerDescription$ Whenever you lose life during your turn, NICKNAME deals that much damage to each opponent.
|
||||||
|
SVar:TrigDamageOpp:DB$ DealDamage | NumDmg$ X | Defined$ Opponent
|
||||||
|
SVar:X:TriggerCount$LifeAmount
|
||||||
|
Oracle:Deathtouch\nAt the beginning of your end step, Shadowheart, Cleric of War deals 1 damage to each player.\nWhenever you lose life during your turn, Shadowheart deals that much damage to each opponent.
|
||||||
|
|
||||||
|
SPECIALIZE:GREEN
|
||||||
|
|
||||||
|
Name:Shadowheart, Cleric of Twilight
|
||||||
|
ManaCost:1 B G
|
||||||
|
Types:Legendary Creature Human Elf Cleric
|
||||||
|
PT:4/4
|
||||||
|
K:Deathtouch
|
||||||
|
S:Mode$ CantBlockBy | ValidAttacker$ Creature.Self | ValidBlocker$ Creature.powerLE2 | Description$ CARDNAME can't be blocked by creatures with power 2 or less.
|
||||||
|
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Battlefield | Execute$ TrigDealDamage | TriggerDescription$ At the beginning of your end step, NICKNAME deals 1 damage to each player.
|
||||||
|
SVar:TrigDealDamage:DB$ DealDamage | Defined$ Player | NumDmg$ 1
|
||||||
|
T:Mode$ LifeLost | ValidPlayer$ You | TriggerZones$ Battlefield | PlayerTurn$ True | Execute$ TrigPutCounter | TriggerDescription$ Whenever you lose life during your turn, put a +1/+1 counter on NICKNAME.
|
||||||
|
SVar:TrigPutCounter:DB$ PutCounter | CounterType$ P1P1
|
||||||
|
Oracle:Deathtouch\nShadowheart, Cleric of Twilight can't be blocked by creatures with power 2 or less.\nAt the beginning of your end step, Shadowheart deals 1 damage to each player.\nWhenever you lose life during your turn, put a +1/+1 counter on Shadowheart.
|
||||||
Reference in New Issue
Block a user