mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-15 10:18:01 +00:00
@@ -3017,7 +3017,6 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
|
||||
public final FCollectionView<SpellAbility> getBasicSpells() {
|
||||
return getBasicSpells(currentState);
|
||||
}
|
||||
|
||||
public final FCollectionView<SpellAbility> getBasicSpells(CardState state) {
|
||||
final FCollection<SpellAbility> res = new FCollection<>();
|
||||
for (final SpellAbility sa : state.getNonManaAbilities()) {
|
||||
|
||||
@@ -1941,8 +1941,16 @@ public class CardProperty {
|
||||
} else if (property.startsWith("Triggered")) {
|
||||
if (spellAbility instanceof SpellAbility) {
|
||||
final String key = property.substring(9);
|
||||
CardCollection cc = (CardCollection) ((SpellAbility)spellAbility).getTriggeringObject(AbilityKey.fromString(key));
|
||||
if (cc == null || !cc.contains(card)) {
|
||||
Object o = ((SpellAbility)spellAbility).getTriggeringObject(AbilityKey.fromString(key));
|
||||
boolean found = false;
|
||||
if (o != null) {
|
||||
if (o instanceof CardCollection) {
|
||||
found = ((CardCollection) o).contains(card);
|
||||
} else {
|
||||
found = card.equals(o);
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -214,7 +214,6 @@ public class SpellAbilityStackInstance implements IIdentifiable, IHasCardView {
|
||||
public final int getXManaPaid() {
|
||||
return xManaPaid;
|
||||
}
|
||||
|
||||
public final void setXManaPaid(int x) {
|
||||
xManaPaid = x;
|
||||
}
|
||||
@@ -341,7 +340,6 @@ public class SpellAbilityStackInstance implements IIdentifiable, IHasCardView {
|
||||
public Player getActivatingPlayer() {
|
||||
return activatingPlayer;
|
||||
}
|
||||
|
||||
public void setActivatingPlayer(Player activatingPlayer0) {
|
||||
if (activatingPlayer == activatingPlayer0) { return; }
|
||||
activatingPlayer = activatingPlayer0;
|
||||
|
||||
@@ -559,19 +559,11 @@ public class TriggerHandler {
|
||||
sa.setActivatingPlayer(p);
|
||||
}
|
||||
|
||||
if (regtrig.hasParam("RememberController")) {
|
||||
host.addRemembered(sa.getActivatingPlayer());
|
||||
}
|
||||
|
||||
if (regtrig.hasParam("RememberTriggeringCard")) {
|
||||
Card triggeredCard = ((Card) sa.getTriggeringObject(AbilityKey.Card));
|
||||
host.addRemembered(triggeredCard);
|
||||
}
|
||||
|
||||
if (regtrig.hasParam("RememberKey")) {
|
||||
host.addRemembered(runParams.get(AbilityKey.fromString(regtrig.getParam("RememberKey"))));
|
||||
}
|
||||
|
||||
sa.setStackDescription(sa.toString());
|
||||
|
||||
Player decider = null;
|
||||
|
||||
@@ -212,8 +212,7 @@ public class GuiChoose {
|
||||
|
||||
if (selected != null) {
|
||||
c.show(selected);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
c.show();
|
||||
}
|
||||
|
||||
|
||||
@@ -4,10 +4,9 @@ Types:Legendary Creature Treefolk Shaman
|
||||
PT:3/7
|
||||
K:Vigilance
|
||||
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.
|
||||
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:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
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:X:TriggeredCard$CardToughness
|
||||
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.
|
||||
|
||||
@@ -2,7 +2,6 @@ Name:Mausoleum Turnkey
|
||||
ManaCost:3 B
|
||||
Types:Creature Ogre Rogue
|
||||
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.
|
||||
SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | ValidTgts$ Creature.RememberedPlayerCtrl | TargetingPlayer$ Opponent | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
|
||||
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.YouOwn | TargetingPlayer$ Opponent
|
||||
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
|
||||
PT:4/4
|
||||
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."
|
||||
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:DBAnimate:DB$ Animate | Defined$ Imprinted | Duration$ Permanent | Triggers$ CDTrigger | Duration$ Permanent | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearImprinted$ True | ClearRemembered$ True
|
||||
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.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
|
||||
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: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.
|
||||
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.
|
||||
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
|
||||
Text:CARDNAME can be your commander.
|
||||
DeckHas:Ability$Token & Type$Faerie|Dragon
|
||||
|
||||
@@ -3,8 +3,8 @@ ManaCost:4 U R
|
||||
Types:Legendary Creature Human Elf Shaman
|
||||
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.
|
||||
SVar:TrigPutBottom:DB$ ChangeZone | Origin$ Stack | Destination$ Library | LibraryPosition$ -1 | Defined$ TriggeredCard | Fizzle$ True | SubAbility$ DBDig
|
||||
SVar:DBDig:DB$ DigUntil | Valid$ Card.nonLand | ImprintFound$ True | RememberFound$ True | RememberRevealed$ True | NoMoveFound$ True | NoMoveRevealed$ True | SubAbility$ DBPlay
|
||||
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 | 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:DBBottom:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Library | LibraryPosition$ -1 | RandomOrder$ True | SubAbility$ DBCleanup
|
||||
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True
|
||||
|
||||
Reference in New Issue
Block a user