- Fixing Volrath's Shapeshifter, pass 2.

This commit is contained in:
Agetian
2018-01-19 21:31:45 +03:00
parent 5207e697dd
commit ceafaf5e2e
2 changed files with 10 additions and 13 deletions

View File

@@ -519,7 +519,7 @@ public final class StaticAbilityContinuous {
// Enable this in case Volrath's original image is to be used // Enable this in case Volrath's original image is to be used
affectedCard.getState(CardStateName.Original).setImageKey(affectedCard.getState(CardStateName.OriginalText).getImageKey()); affectedCard.getState(CardStateName.Original).setImageKey(affectedCard.getState(CardStateName.OriginalText).getImageKey());
// Activated abilities (statics and repleffects are apparently copied via copyState?) // Activated abilities (statics and repleffects) and triggers are apparently copied via copyState?
for (SpellAbility sa : gainTextSource.getSpellAbilities()) { for (SpellAbility sa : gainTextSource.getSpellAbilities()) {
if (sa instanceof AbilityActivated) { if (sa instanceof AbilityActivated) {
SpellAbility newSA = ((AbilityActivated) sa).getCopy(); SpellAbility newSA = ((AbilityActivated) sa).getCopy();
@@ -531,22 +531,18 @@ public final class StaticAbilityContinuous {
} }
} }
// Triggered abilities - apparently now copied elsewhere, so commenting out not to double them,
// pending further testing
/*
for (Trigger t : gainTextSource.getTriggers()) {
affectedCard.addTrigger(t.getCopyForHostCard(affectedCard));
}*/
// Volrath's Shapeshifter shapeshifting ability needs to be added onto the new text // Volrath's Shapeshifter shapeshifting ability needs to be added onto the new text
if (params.containsKey("GainedTextHasThisStaticAbility")) { if (params.containsKey("GainedTextHasThisStaticAbility")) {
affectedCard.getCurrentState().addStaticAbility(stAb); affectedCard.getCurrentState().addStaticAbility(stAb);
} }
// Add the ability "{2}: Discard a card" // Gain additional abilities (e.g. such as Volrath's Shapeshifter {2}: Discard a card)
String abDiscard = "AB$ Discard | Cost$ 2 | Defined$ You | NumCards$ 1 | Mode$ TgtChoose | AILogic$ VolrathsShapeshifter | SpellDescription$ Discard a card."; if (params.containsKey("GainAbility")) {
SpellAbility ab = AbilityFactory.getAbility(abDiscard, affectedCard); for (String svarDef : params.get("GainAbility").split(",")) {
affectedCard.addSpellAbility(ab); SpellAbility ab = AbilityFactory.getAbility(affectedCard.getState(CardStateName.OriginalText), svarDef);
affectedCard.addSpellAbility(ab);
}
}
// Remember the name and the timestamp of the card we're gaining text from, so we don't modify // Remember the name and the timestamp of the card we're gaining text from, so we don't modify
// the card too aggressively when unnecessary // the card too aggressively when unnecessary

View File

@@ -3,7 +3,8 @@ ManaCost:1 U U
Types:Creature Shapeshifter Types:Creature Shapeshifter
PT:0/1 PT:0/1
A:AB$ Discard | Cost$ 2 | Defined$ You | NumCards$ 1 | Mode$ TgtChoose | AILogic$ VolrathsShapeshifter | SpellDescription$ Discard a card. A:AB$ Discard | Cost$ 2 | Defined$ You | NumCards$ 1 | Mode$ TgtChoose | AILogic$ VolrathsShapeshifter | SpellDescription$ Discard a card.
S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Battlefield | GainTextOf$ Creature.TopGraveyard+YouCtrl | GainedTextHasThisStaticAbility$ True | Description$ ORIGINALTEXTONLY:As long as the top card of your graveyard is a creature card, CARDNAME has the full text of that card and has the text "{2}: Discard a card." (CARDNAME has that card's name, mana cost, color, types, abilities, power, and toughness.) S:Mode$ Continuous | Affected$ Card.Self | EffectZone$ Battlefield | GainTextOf$ Creature.TopGraveyard+YouCtrl | GainedTextHasThisStaticAbility$ True | GainAbility$ ABDiscard | Description$ ORIGINALTEXTONLY:As long as the top card of your graveyard is a creature card, CARDNAME has the full text of that card and has the text "{2}: Discard a card." (CARDNAME has that card's name, mana cost, color, types, abilities, power, and toughness.)
SVar:ABDiscard:AB$ Discard | Cost$ 2 | Defined$ You | NumCards$ 1 | Mode$ TgtChoose | AILogic$ VolrathsShapeshifter | SpellDescription$ Discard a card.
SVar:NeedsOrderedGraveyard:TRUE SVar:NeedsOrderedGraveyard:TRUE
SVar:Picture:http://www.wizards.com/global/images/magic/general/volraths_shapeshifter.jpg SVar:Picture:http://www.wizards.com/global/images/magic/general/volraths_shapeshifter.jpg
Oracle:As long as the top card of your graveyard is a creature card, Volrath's Shapeshifter has the full text of that card and has the text "{2}: Discard a card." (Volrath's Shapeshifter has that card's name, mana cost, color, types, abilities, power, and toughness.) Oracle:As long as the top card of your graveyard is a creature card, Volrath's Shapeshifter has the full text of that card and has the text "{2}: Discard a card." (Volrath's Shapeshifter has that card's name, mana cost, color, types, abilities, power, and toughness.)