mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 18:58:00 +00:00
@@ -3017,7 +3017,6 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
|||||||
public final FCollectionView<SpellAbility> getBasicSpells() {
|
public final FCollectionView<SpellAbility> getBasicSpells() {
|
||||||
return getBasicSpells(currentState);
|
return getBasicSpells(currentState);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final FCollectionView<SpellAbility> getBasicSpells(CardState state) {
|
public final FCollectionView<SpellAbility> getBasicSpells(CardState state) {
|
||||||
final FCollection<SpellAbility> res = new FCollection<>();
|
final FCollection<SpellAbility> res = new FCollection<>();
|
||||||
for (final SpellAbility sa : state.getNonManaAbilities()) {
|
for (final SpellAbility sa : state.getNonManaAbilities()) {
|
||||||
|
|||||||
@@ -1941,8 +1941,16 @@ public class CardProperty {
|
|||||||
} else if (property.startsWith("Triggered")) {
|
} else if (property.startsWith("Triggered")) {
|
||||||
if (spellAbility instanceof SpellAbility) {
|
if (spellAbility instanceof SpellAbility) {
|
||||||
final String key = property.substring(9);
|
final String key = property.substring(9);
|
||||||
CardCollection cc = (CardCollection) ((SpellAbility)spellAbility).getTriggeringObject(AbilityKey.fromString(key));
|
Object o = ((SpellAbility)spellAbility).getTriggeringObject(AbilityKey.fromString(key));
|
||||||
if (cc == null || !cc.contains(card)) {
|
boolean found = false;
|
||||||
|
if (o != null) {
|
||||||
|
if (o instanceof CardCollection) {
|
||||||
|
found = ((CardCollection) o).contains(card);
|
||||||
|
} else {
|
||||||
|
found = card.equals(o);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!found) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -214,7 +214,6 @@ public class SpellAbilityStackInstance implements IIdentifiable, IHasCardView {
|
|||||||
public final int getXManaPaid() {
|
public final int getXManaPaid() {
|
||||||
return xManaPaid;
|
return xManaPaid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void setXManaPaid(int x) {
|
public final void setXManaPaid(int x) {
|
||||||
xManaPaid = x;
|
xManaPaid = x;
|
||||||
}
|
}
|
||||||
@@ -341,7 +340,6 @@ public class SpellAbilityStackInstance implements IIdentifiable, IHasCardView {
|
|||||||
public Player getActivatingPlayer() {
|
public Player getActivatingPlayer() {
|
||||||
return activatingPlayer;
|
return activatingPlayer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setActivatingPlayer(Player activatingPlayer0) {
|
public void setActivatingPlayer(Player activatingPlayer0) {
|
||||||
if (activatingPlayer == activatingPlayer0) { return; }
|
if (activatingPlayer == activatingPlayer0) { return; }
|
||||||
activatingPlayer = activatingPlayer0;
|
activatingPlayer = activatingPlayer0;
|
||||||
|
|||||||
@@ -559,19 +559,11 @@ public class TriggerHandler {
|
|||||||
sa.setActivatingPlayer(p);
|
sa.setActivatingPlayer(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (regtrig.hasParam("RememberController")) {
|
|
||||||
host.addRemembered(sa.getActivatingPlayer());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (regtrig.hasParam("RememberTriggeringCard")) {
|
if (regtrig.hasParam("RememberTriggeringCard")) {
|
||||||
Card triggeredCard = ((Card) sa.getTriggeringObject(AbilityKey.Card));
|
Card triggeredCard = ((Card) sa.getTriggeringObject(AbilityKey.Card));
|
||||||
host.addRemembered(triggeredCard);
|
host.addRemembered(triggeredCard);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (regtrig.hasParam("RememberKey")) {
|
|
||||||
host.addRemembered(runParams.get(AbilityKey.fromString(regtrig.getParam("RememberKey"))));
|
|
||||||
}
|
|
||||||
|
|
||||||
sa.setStackDescription(sa.toString());
|
sa.setStackDescription(sa.toString());
|
||||||
|
|
||||||
Player decider = null;
|
Player decider = null;
|
||||||
|
|||||||
@@ -212,8 +212,7 @@ public class GuiChoose {
|
|||||||
|
|
||||||
if (selected != null) {
|
if (selected != null) {
|
||||||
c.show(selected);
|
c.show(selected);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
c.show();
|
c.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,9 @@ Types:Legendary Creature Treefolk Shaman
|
|||||||
PT:3/7
|
PT:3/7
|
||||||
K:Vigilance
|
K:Vigilance
|
||||||
K:Reach
|
K:Reach
|
||||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.Other+YouCtrl | RememberTriggeringCard$ True | TriggerZones$ Battlefield | Execute$ TrigChange | TriggerDescription$ Whenever CARDNAME or another creature you control dies, return up to one other target creature card with lesser toughness from your graveyard to your hand.
|
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.Other+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigChange | TriggerDescription$ Whenever CARDNAME or another creature you control dies, return up to one other target creature card with lesser toughness from your graveyard to your hand.
|
||||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChange | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another creature you control dies, return up to one other target creature card with lesser toughness from your graveyard to your hand.
|
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Card.Self | Execute$ TrigChange | Secondary$ True | TriggerDescription$ Whenever CARDNAME or another creature you control dies, return up to one other target creature card with lesser toughness from your graveyard to your hand.
|
||||||
SVar:TrigChange:DB$ ChangeZone | TargetMin$ 0 | TargetMax$ 1 | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.Other+IsNotRemembered+toughnessLTX+YouOwn | TgtPrompt$ Select up to one other target creature card with lesser toughness from your graveyard to return to your hand | SubAbility$ DBCleanup
|
SVar:TrigChange:DB$ ChangeZone | TargetMin$ 0 | TargetMax$ 1 | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.Other+NotTriggeredNewCard+toughnessLTX+YouOwn | TgtPrompt$ Select up to one other target creature card with lesser toughness from your graveyard to return to your hand
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
|
||||||
SVar:X:TriggeredCard$CardToughness
|
SVar:X:TriggeredCard$CardToughness
|
||||||
DeckHas:Ability$Graveyard
|
DeckHas:Ability$Graveyard
|
||||||
Oracle:Vigilance, reach\nWhenever Colfenor, the Last Yew or another creature you control dies, return up to one other target creature card with lesser toughness from your graveyard to your hand.
|
Oracle:Vigilance, reach\nWhenever Colfenor, the Last Yew or another creature you control dies, return up to one other target creature card with lesser toughness from your graveyard to your hand.
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ Name:Mausoleum Turnkey
|
|||||||
ManaCost:3 B
|
ManaCost:3 B
|
||||||
Types:Creature Ogre Rogue
|
Types:Creature Ogre Rogue
|
||||||
PT:3/2
|
PT:3/2
|
||||||
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | RememberController$ True | TriggerDescription$ When CARDNAME enters the battlefield, return target creature card of an opponent's choice from your graveyard to your hand.
|
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters the battlefield, return target creature card of an opponent's choice from your graveyard to your hand.
|
||||||
SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.RememberedPlayerCtrl | TargetingPlayer$ Opponent | SubAbility$ DBCleanup
|
SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.YouOwn | TargetingPlayer$ Opponent
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
|
||||||
Oracle:When Mausoleum Turnkey enters the battlefield, return target creature card of an opponent's choice from your graveyard to your hand.
|
Oracle:When Mausoleum Turnkey enters the battlefield, return target creature card of an opponent's choice from your graveyard to your hand.
|
||||||
|
|||||||
@@ -3,10 +3,9 @@ ManaCost:4 B B
|
|||||||
Types:Legendary Creature Vampire Noble
|
Types:Legendary Creature Vampire Noble
|
||||||
PT:4/4
|
PT:4/4
|
||||||
K:Ward:Discard<1/Card>
|
K:Ward:Discard<1/Card>
|
||||||
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Vampire.Other+nonToken+YouCtrl | RememberTriggeringCard$ True | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever another nontoken Vampire you control dies, you may pay {1} and exile it. If you do, create a 1/1 black Bat creature token with flying. It gains "When this creature deals combat damage to a player, sacrifice it and return the exiled card to the battlefield tapped."
|
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Vampire.Other+nonToken+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigToken | TriggerDescription$ Whenever another nontoken Vampire you control dies, you may pay {1} and exile it. If you do, create a 1/1 black Bat creature token with flying. It gains "When this creature deals combat damage to a player, sacrifice it and return the exiled card to the battlefield tapped."
|
||||||
SVar:TrigToken:AB$ Token | Cost$ 1 ExileFromGrave<1/Card.IsRemembered/the Vampire card> | TokenRemembered$ ExiledCards | TokenScript$ b_1_1_bat_flying | ImprintTokens$ True | SubAbility$ DBAnimate
|
SVar:TrigToken:AB$ Token | Cost$ 1 ExileFromGrave<1/Card.TriggeredNewCard/the Vampire card> | TokenRemembered$ ExiledCards | TokenScript$ b_1_1_bat_flying | ImprintTokens$ True | SubAbility$ DBAnimate
|
||||||
SVar:DBAnimate:DB$ Animate | Defined$ Imprinted | Duration$ Permanent | Triggers$ CDTrigger | Duration$ Permanent | SubAbility$ DBCleanup
|
SVar:DBAnimate:DB$ Animate | Defined$ Imprinted | Duration$ Permanent | Triggers$ CDTrigger
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearImprinted$ True | ClearRemembered$ True
|
|
||||||
SVar:CDTrigger:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigSac | TriggerZones$ Battlefield | TriggerDescription$ When this creature deals combat damage to a player, sacrifice it and return the exiled card to the battlefield tapped.
|
SVar:CDTrigger:Mode$ DamageDone | ValidSource$ Card.Self | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigSac | TriggerZones$ Battlefield | TriggerDescription$ When this creature deals combat damage to a player, sacrifice it and return the exiled card to the battlefield tapped.
|
||||||
SVar:TrigSac:DB$ Sacrifice | Defined$ Self | SubAbility$ DBReturn
|
SVar:TrigSac:DB$ Sacrifice | Defined$ Self | SubAbility$ DBReturn
|
||||||
SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | Tapped$ True
|
SVar:DBReturn:DB$ ChangeZone | Defined$ Remembered | Origin$ Exile | Destination$ Battlefield | Tapped$ True
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ SVar:Y:TriggerCount$ScryNum
|
|||||||
A:AB$ Draw | Cost$ AddCounter<2/LOYALTY> | Planeswalker$ True | SubAbility$ DBScry | SpellDescription$ Draw a card, then scry 2.
|
A:AB$ Draw | Cost$ AddCounter<2/LOYALTY> | Planeswalker$ True | SubAbility$ DBScry | SpellDescription$ Draw a card, then scry 2.
|
||||||
SVar:DBScry:DB$ Scry | ScryNum$ 2
|
SVar:DBScry:DB$ Scry | ScryNum$ 2
|
||||||
A:AB$ Dig | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | Reveal$ True | SubAbility$ DBToken | SpellDescription$ Exile the top card of your library.
|
A:AB$ Dig | Cost$ SubCounter<3/LOYALTY> | Planeswalker$ True | DigNum$ 1 | ChangeNum$ All | DestinationZone$ Exile | RememberChanged$ True | Reveal$ True | SubAbility$ DBToken | SpellDescription$ Exile the top card of your library.
|
||||||
SVar:DBToken:DB$ Token | TokenAmount$ Z | TokenScript$ u_1_1_faerie_dragon_flying | SpellDescription$ Create a number of 1/1 blue Faerie Dragon creature tokens with flying equal to that card's mana value.
|
SVar:DBToken:DB$ Token | TokenAmount$ Z | TokenScript$ u_1_1_faerie_dragon_flying | SubAbility$ DBCleanup | SpellDescription$ Create a number of 1/1 blue Faerie Dragon creature tokens with flying equal to that card's mana value.
|
||||||
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||||
SVar:Z:Count$RememberedCardManaCost
|
SVar:Z:Count$RememberedCardManaCost
|
||||||
Text:CARDNAME can be your commander.
|
Text:CARDNAME can be your commander.
|
||||||
DeckHas:Ability$Token & Type$Faerie|Dragon
|
DeckHas:Ability$Token & Type$Faerie|Dragon
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ ManaCost:4 U R
|
|||||||
Types:Legendary Creature Human Elf Shaman
|
Types:Legendary Creature Human Elf Shaman
|
||||||
PT:2/7
|
PT:2/7
|
||||||
T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ You | Execute$ TrigPutBottom | TriggerZones$ Battlefield | ActivationLimit$ 1 | OptionalDecider$ You | TriggerDescription$ Whenever you cast a spell, you may put it on the bottom of its owner's library. If you do, reveal cards from the top of your library until you reveal a nonland card. You may cast that card without paying its mana cost. Then put all revealed cards not cast this way on the bottom of your library in a random order. This ability triggers only once each turn.
|
T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ You | Execute$ TrigPutBottom | TriggerZones$ Battlefield | ActivationLimit$ 1 | OptionalDecider$ You | TriggerDescription$ Whenever you cast a spell, you may put it on the bottom of its owner's library. If you do, reveal cards from the top of your library until you reveal a nonland card. You may cast that card without paying its mana cost. Then put all revealed cards not cast this way on the bottom of your library in a random order. This ability triggers only once each turn.
|
||||||
SVar:TrigPutBottom:DB$ ChangeZone | Origin$ Stack | Destination$ Library | LibraryPosition$ -1 | Defined$ TriggeredCard | Fizzle$ True | SubAbility$ DBDig
|
SVar:TrigPutBottom:DB$ ChangeZone | Origin$ Stack | Destination$ Library | LibraryPosition$ -1 | Defined$ TriggeredCard | Fizzle$ True | RememberChanged$ True | SubAbility$ DBDig
|
||||||
SVar:DBDig:DB$ DigUntil | Valid$ Card.nonLand | ImprintFound$ True | RememberFound$ True | RememberRevealed$ True | NoMoveFound$ True | NoMoveRevealed$ True | SubAbility$ DBPlay
|
SVar:DBDig:DB$ DigUntil | Valid$ Card.nonLand | ForgetOtherRemembered$ True | ImprintFound$ True | RememberFound$ True | RememberRevealed$ True | NoMoveFound$ True | NoMoveRevealed$ True | ConditionDefined$ Remembered | ConditionPresent$ Card | SubAbility$ DBPlay
|
||||||
SVar:DBPlay:DB$ Play | Defined$ Imprinted | ValidZone$ Library | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True | ForgetPlayed$ True | SubAbility$ DBBottom
|
SVar:DBPlay:DB$ Play | Defined$ Imprinted | ValidZone$ Library | ValidSA$ Spell | WithoutManaCost$ True | Optional$ True | ForgetPlayed$ True | SubAbility$ DBBottom
|
||||||
SVar:DBBottom:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Library | LibraryPosition$ -1 | RandomOrder$ True | SubAbility$ DBCleanup
|
SVar:DBBottom:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Library | LibraryPosition$ -1 | RandomOrder$ True | SubAbility$ DBCleanup
|
||||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True
|
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True
|
||||||
|
|||||||
Reference in New Issue
Block a user