Merge pull request #1135 from tool4ever/cleancards

Cleanup cards
This commit is contained in:
Anthony Calosa
2022-07-18 06:07:08 +08:00
committed by GitHub
10 changed files with 22 additions and 28 deletions

View File

@@ -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()) {

View File

@@ -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 {

View File

@@ -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;

View File

@@ -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;

View File

@@ -212,8 +212,7 @@ public class GuiChoose {
if (selected != null) {
c.show(selected);
}
else {
} else {
c.show();
}

View File

@@ -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.

View File

@@ -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.

View File

@@ -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

View File

@@ -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

View File

@@ -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