CardFactoryUtil & Card: move Uneath to addSpellAbility

Sedris, the Traitor King: make this card more easier.
This commit is contained in:
Hanmac
2016-07-20 10:18:18 +00:00
parent 6b2e718f37
commit 7f01da10eb
3 changed files with 36 additions and 33 deletions

View File

@@ -1423,7 +1423,8 @@ public class Card extends GameEntity implements Comparable<Card> {
sbLong.append(". Mana cost includes color.)");
} else if (keyword.startsWith("Soulbond")) {
sbLong.append(keyword + " (" + Keyword.getInstance(keyword).getReminderText() + ")");
} else if (keyword.startsWith("Equip") || keyword.startsWith("Fortify") || keyword.startsWith("Outlast")) {
} else if (keyword.startsWith("Equip") || keyword.startsWith("Fortify") || keyword.startsWith("Outlast")
|| keyword.startsWith("Unearth")) {
// keyword parsing takes care of adding a proper description
} else if (keyword.startsWith("CantBeBlockedBy")) {
sbLong.append(getName()).append(" can't be blocked ");

View File

@@ -2221,33 +2221,7 @@ public class CardFactoryUtil {
card.getCurrentState().addUnparsedAbility(effect);
}
else if (keyword.startsWith("Unearth")) {
card.removeIntrinsicKeyword(keyword);
final String[] k = keyword.split(":");
final String manacost = k[1];
String effect = "AB$ ChangeZone | Cost$ " + manacost + " | Defined$ Self" +
" | Origin$ Graveyard | Destination$ Battlefield | SorcerySpeed$" +
" True | ActivationZone$ Graveyard | Unearth$ True | SubAbility$" +
" UnearthPumpSVar | PrecostDesc$ Unearth | StackDescription$ " +
"Unearth: Return CARDNAME to the battlefield. | SpellDescription$" +
" (" + ManaCostParser.parse(manacost) + ": Return CARDNAME to the " +
"battlefield. It gains haste. Exile it at the beginning of the next" +
" end step or if it would leave the battlefield. Unearth only as a sorcery.)";
String dbpump = "DB$ Pump | Defined$ Self | KW$ Haste & HIDDEN If CARDNAME" +
" would leave the battlefield, exile it instead of putting it " +
"anywhere else. | Permanent$ True | SubAbility$ UnearthDelayTrigger";
String delTrig = "DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn" +
" | Execute$ UnearthTrueDeath | TriggerDescription$ Exile " +
"CARDNAME at the beginning of the next end step.";
String truedeath = "DB$ ChangeZone | Defined$ Self | Origin$ Battlefield" +
" | Destination$ Exile";
card.setSVar("UnearthPumpSVar", dbpump);
card.setSVar("UnearthDelayTrigger", delTrig);
card.setSVar("UnearthTrueDeath", truedeath);
card.addSpellAbility(AbilityFactory.getAbility(effect, card));
// add ability to instrinic strings so copies/clones create the ability also
card.getCurrentState().addUnparsedAbility(effect);
addSpellAbility(keyword, card, null);
}
else if (keyword.startsWith("Level up")) {
final String strMaxLevel = card.getSVar("maxLevel");
@@ -2948,7 +2922,39 @@ public class CardFactoryUtil {
}
public static void addSpellAbility(final String keyword, final Card card, final KeywordsChange kws) {
final boolean intrinsic = kws == null;
if (keyword.startsWith("Unearth")) {
final String[] k = keyword.split(":");
final String manacost = k[1];
String effect = "AB$ ChangeZone | Cost$ " + manacost + " | Defined$ Self" +
" | Origin$ Graveyard | Destination$ Battlefield | SorcerySpeed$" +
" True | ActivationZone$ Graveyard | Unearth$ True | SubAbility$" +
" UnearthPumpSVar | PrecostDesc$ Unearth | StackDescription$ " +
"Unearth: Return CARDNAME to the battlefield. | SpellDescription$" +
" (" + Keyword.getInstance(keyword).getReminderText() + ")";
String dbpump = "DB$ Pump | Defined$ Self | KW$ Haste & HIDDEN If CARDNAME" +
" would leave the battlefield, exile it instead of putting it " +
"anywhere else. | Permanent$ True | SubAbility$ UnearthDelayTrigger";
String delTrig = "DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn" +
" | Execute$ UnearthTrueDeath | TriggerDescription$ Exile " +
"CARDNAME at the beginning of the next end step.";
String truedeath = "DB$ ChangeZone | Defined$ Self | Origin$ Battlefield" +
" | Destination$ Exile";
card.setSVar("UnearthPumpSVar", dbpump);
card.setSVar("UnearthDelayTrigger", delTrig);
card.setSVar("UnearthTrueDeath", truedeath);
final SpellAbility sa = AbilityFactory.getAbility(effect, card);
if (!intrinsic) {
sa.setTemporary(true);
sa.setIntrinsic(false);
//sa.setOriginalHost(hostCard);
kws.addSpellAbility(sa);
}
card.addSpellAbility(sa);
}
}
/**

View File

@@ -2,10 +2,6 @@ Name:Sedris, the Traitor King
ManaCost:3 U B R
Types:Legendary Creature Zombie Warrior
PT:5/5
S:Mode$ Continuous | EffectZone$ Battlefield | AffectedZone$ Graveyard | Affected$ Creature.YouCtrl | AddAbility$ Unearth | AddSVar$ SedrisUnearthed & SedrisTrueDeath & SedrisUnavailable | Description$ Each creature card in your graveyard has unearth {2}{B}. ({2}{B}: Return the card to the battlefield. The creature gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.)
SVar:Unearth:AB$ ChangeZone | Cost$ 2 B | Defined$ Self | Origin$ Graveyard | Destination$ Battlefield | SorcerySpeed$ True | ActivationZone$ Graveyard | Unearth$ True | SubAbility$ SedrisUnearthed | PrecostDesc$ Unearth | CostDesc$ {2}{B} | StackDescription$ Unearth: Return CARDNAME to the battlefield. | SpellDescription$ ({2}{B}: Return CARDNAME to the battlefield. It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.)
SVar:SedrisUnearthed:DB$ Pump | Defined$ Self | KW$ Haste & HIDDEN If CARDNAME would leave the battlefield, exile it instead of putting it anywhere else. | Permanent$ True | SubAbility$ SedrisTrueDeath | StackDescription$ It gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield.
SVar:SedrisTrueDeath:DB$ DelayedTrigger | Mode$ Phase | Phase$ End of Turn | Execute$ SedrisUnavailable | TriggerDescription$ Exile CARDNAME at the beginning of the next end step.
SVar:SedrisUnavailable:DB$ ChangeZone | Defined$ Self | Origin$ Battlefield | Destination$ Exile
S:Mode$ Continuous | EffectZone$ Battlefield | AffectedZone$ Graveyard | Affected$ Creature.YouCtrl | AddKeyword$ Unearth:2 B | Description$ Each creature card in your graveyard has unearth {2}{B}. ({2}{B}: Return the card to the battlefield. The creature gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.)
SVar:Picture:http://www.wizards.com/global/images/magic/general/sedris_the_traitor_king.jpg
Oracle:Each creature card in your graveyard has unearth {2}{B}. ({2}{B}: Return the card to the battlefield. The creature gains haste. Exile it at the beginning of the next end step or if it would leave the battlefield. Unearth only as a sorcery.)