Added reminder texts for Delve, Dredge, Split second, Devoid, Totem armor, Afflict, Bushido, Poisonous, Rampage, Cascade, Conspire, Dredge (again), Flashback*.

*Flashback required changes to the actual Flashback code. Now it works with an em-Dash. I'll possibly apply similar changes to other keywords with em-Dash cast mode.
This commit is contained in:
Indigo Dragon
2017-09-08 08:24:46 +00:00
parent ec8a75be52
commit aa6e4c5b53
2 changed files with 27 additions and 13 deletions

View File

@@ -1520,7 +1520,9 @@ public class Card extends GameEntity implements Comparable<Card> {
} else if (keyword.startsWith("Provoke") || keyword.startsWith("Ingest") || keyword.equals("Unleash") } else if (keyword.startsWith("Provoke") || keyword.startsWith("Ingest") || keyword.equals("Unleash")
|| keyword.startsWith("Soulbond") || keyword.equals("Partner") || keyword.equals("Retrace") || keyword.startsWith("Soulbond") || keyword.equals("Partner") || keyword.equals("Retrace")
|| keyword.equals("Living Weapon") || keyword.equals("Myriad") || keyword.equals("Exploit") || keyword.equals("Living Weapon") || keyword.equals("Myriad") || keyword.equals("Exploit")
|| keyword.equals("Changeling")) { || keyword.equals("Changeling") || keyword.equals("Delve") || keyword.startsWith("Dredge")
|| (keyword.startsWith("Split second") && !sb.toString().contains("Split second"))
|| keyword.startsWith("Devoid")){
sbLong.append(keyword + " (" + Keyword.getInstance(keyword).getReminderText() + ")"); sbLong.append(keyword + " (" + Keyword.getInstance(keyword).getReminderText() + ")");
} else if (keyword.startsWith("Modular") || keyword.startsWith("Bloodthirst") } else if (keyword.startsWith("Modular") || keyword.startsWith("Bloodthirst")
|| keyword.startsWith("Fabricate") || keyword.startsWith("Soulshift") || keyword.startsWith("Fabricate") || keyword.startsWith("Soulshift")
@@ -1540,11 +1542,13 @@ public class Card extends GameEntity implements Comparable<Card> {
sb.append(")"); sb.append(")");
} else if (keyword.equals("Convoke") || keyword.equals("Dethrone")|| keyword.equals("Fear") } else if (keyword.equals("Convoke") || keyword.equals("Dethrone")|| keyword.equals("Fear")
|| keyword.equals("Melee") || keyword.equals("Improvise")|| keyword.equals("Shroud") || keyword.equals("Melee") || keyword.equals("Improvise")|| keyword.equals("Shroud")
|| keyword.equals("Banding") || keyword.equals("Intimidate")|| keyword.equals("Evolve") || keyword.equals("Banding") || keyword.equals("Intimidate")|| keyword.equals("Evolve")
|| keyword.equals("Exalted") || keyword.equals("Extort")|| keyword.equals("Flanking") || keyword.equals("Exalted") || keyword.equals("Extort")|| keyword.equals("Flanking")
|| keyword.equals("Horsemanship") || keyword.equals("Infect")|| keyword.equals("Persist") || keyword.equals("Horsemanship") || keyword.equals("Infect")|| keyword.equals("Persist")
|| keyword.equals("Phasing") || keyword.equals("Shadow")|| keyword.equals("Skulk") || keyword.equals("Phasing") || keyword.equals("Shadow")|| keyword.equals("Skulk")
|| keyword.equals("Undying") || keyword.equals("Wither") || keyword.equals("Totem Armor")) { || keyword.equals("Undying") || keyword.equals("Wither") || keyword.equals("Totem armor")
|| keyword.startsWith ("Afflict") || keyword.startsWith("Bushido") || keyword.startsWith ("Poisonous")
|| keyword.startsWith ("Rampage") || keyword.startsWith("Cascade")) {
if (sb.length() != 0) { if (sb.length() != 0) {
sb.append("\r\n"); sb.append("\r\n");
} }
@@ -1958,7 +1962,8 @@ public class Card extends GameEntity implements Comparable<Card> {
// keyword descriptions // keyword descriptions
for (final String keyword : kw) { for (final String keyword : kw) {
if ((keyword.startsWith("Ripple") && !sb.toString().contains("Ripple")) if ((keyword.startsWith("Ripple") && !sb.toString().contains("Ripple"))
|| (keyword.startsWith("Dredge") && !sb.toString().contains("Dredge")) //|| (keyword.startsWith("Dredge") && !sb.toString().contains("Dredge")) | Replaced with
// keyword.startsWith("Dredge") Hopefully that doesn't break anything. -Indigo Dragon 8/9/2017
|| (keyword.startsWith("CARDNAME is ") && !sb.toString().contains("CARDNAME is "))) { || (keyword.startsWith("CARDNAME is ") && !sb.toString().contains("CARDNAME is "))) {
sb.append(keyword.replace(":", " ")).append("\r\n"); sb.append(keyword.replace(":", " ")).append("\r\n");
} else if (keyword.startsWith("Madness") } else if (keyword.startsWith("Madness")
@@ -1967,15 +1972,19 @@ public class Card extends GameEntity implements Comparable<Card> {
String[] parts = keyword.split(":"); String[] parts = keyword.split(":");
sb.append(parts[0]).append(" ").append(ManaCostParser.parse(parts[1])) sb.append(parts[0]).append(" ").append(ManaCostParser.parse(parts[1]))
.append(" (").append(Keyword.getInstance(keyword).getReminderText()).append(")").append("\r\n"); .append(" (").append(Keyword.getInstance(keyword).getReminderText()).append(")").append("\r\n");
} else if (keyword.equals("CARDNAME can't be countered.") } else if (keyword.equals("CARDNAME can't be countered.")) {
|| keyword.startsWith("Conspire") sb.append(keyword).append("\r\n");
} else if (keyword.equals("Aftermath")) {
sb.append(Keyword.getInstance(keyword).getReminderText()).append("\r\n");
} else if (keyword.startsWith("Conspire") || keyword.startsWith("Dredge")
|| keyword.startsWith("Cascade") || keyword.startsWith("Wither") || keyword.startsWith("Cascade") || keyword.startsWith("Wither")
|| (keyword.startsWith("Epic") && !sb.toString().contains("Epic")) || (keyword.startsWith("Epic") && !sb.toString().contains("Epic"))
|| (keyword.startsWith("Split second") && !sb.toString().contains("Split second")) || (keyword.startsWith("Split second") && !sb.toString().contains("Split second"))
|| (keyword.startsWith("Devoid"))) { || (keyword.startsWith("Devoid"))) {
sb.append(keyword).append("\r\n"); if (sb.length() != 0) {
} else if (keyword.equals("Aftermath")) { sb.append("\r\n");
sb.append(Keyword.getInstance(keyword).getReminderText()).append("\r\n"); sb.append(keyword + " (" + Keyword.getInstance(keyword).getReminderText() + ")");
}
} else if (keyword.equals("You may cast CARDNAME as though it had flash if you pay {2} more to cast it.")) { } else if (keyword.equals("You may cast CARDNAME as though it had flash if you pay {2} more to cast it.")) {
sb.append(keyword).append("\r\n"); sb.append(keyword).append("\r\n");
} else if (keyword.startsWith("Flashback")) { } else if (keyword.startsWith("Flashback")) {
@@ -1983,12 +1992,16 @@ public class Card extends GameEntity implements Comparable<Card> {
if (keyword.contains(" ")) { if (keyword.contains(" ")) {
final Cost fbCost = new Cost(keyword.substring(10), true); final Cost fbCost = new Cost(keyword.substring(10), true);
if (!fbCost.isOnlyManaCost()) { if (!fbCost.isOnlyManaCost()) {
sb.append(" -"); sb.append("");
} }
sb.append(" ").append(fbCost.toString()).delete(sb.length() - 2, sb.length()); if (fbCost.isOnlyManaCost()) {
sb.append(" ");
}
sb.append(fbCost.toString()).delete(sb.length() - 2, sb.length());
if (!fbCost.isOnlyManaCost()) { if (!fbCost.isOnlyManaCost()) {
sb.append("."); sb.append(".");
} }
sb.append(" (You may cast this card from your graveyard for its flashback cost. Then exile it.)");
} }
sb.append("\r\n"); sb.append("\r\n");
} else if (keyword.startsWith("Splice")) { } else if (keyword.startsWith("Splice")) {

View File

@@ -39,8 +39,9 @@ public enum Keyword {
DELVE(SimpleKeyword.class, true, "As an additional cost to cast this spell, you may exile any number of cards from your graveyard. Each card exiled this way reduces the cost to cast this spell by {1}."), DELVE(SimpleKeyword.class, true, "As an additional cost to cast this spell, you may exile any number of cards from your graveyard. Each card exiled this way reduces the cost to cast this spell by {1}."),
DETHRONE(SimpleKeyword.class, false, "Whenever this creature attacks the player with the most life or tied for the most life, put a +1/+1 counter on it."), DETHRONE(SimpleKeyword.class, false, "Whenever this creature attacks the player with the most life or tied for the most life, put a +1/+1 counter on it."),
DEVOUR(KeywordWithAmount.class, true, "As this creature enters the battlefield, you may sacrifice any number of creatures. This creature enters the battlefield with {%d:+1/+1 counter} on it for each creature sacrificed this way."), DEVOUR(KeywordWithAmount.class, true, "As this creature enters the battlefield, you may sacrifice any number of creatures. This creature enters the battlefield with {%d:+1/+1 counter} on it for each creature sacrificed this way."),
DEVOID(SimpleKeyword.class, true, "This card has no color."),
DOUBLE_STRIKE(SimpleKeyword.class, true, "This creature deals both first-strike and regular combat damage."), DOUBLE_STRIKE(SimpleKeyword.class, true, "This creature deals both first-strike and regular combat damage."),
DREDGE(KeywordWithAmount.class, true, "If you would draw a card, you may instead put %d cards from the top of your library into your graveyard and return this card from your graveyard to your hand."), DREDGE(KeywordWithAmount.class, true, "If you would draw a card, instead you may put exactly %d cards from the top of your library into your graveyard. If you do, return this card from your graveyard to your hand. Otherwise, draw a card."),
ECHO(KeywordWithCost.class, false, "At the beginning of your upkeep, if this permanent came under your control since the beginning of your last upkeep, sacrifice it unless you pay %s."), ECHO(KeywordWithCost.class, false, "At the beginning of your upkeep, if this permanent came under your control since the beginning of your last upkeep, sacrifice it unless you pay %s."),
EMBALM(KeywordWithCost.class, false, "Create a token that's a copy of this card, except it's white, it has no mana cost, and it's a Zombie in addition to its other types. Embalm only as a sorcery."), EMBALM(KeywordWithCost.class, false, "Create a token that's a copy of this card, except it's white, it has no mana cost, and it's a Zombie in addition to its other types. Embalm only as a sorcery."),
EMERGE(KeywordWithCost.class, true, "You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost."), EMERGE(KeywordWithCost.class, true, "You may cast this spell by sacrificing a creature and paying the emerge cost reduced by that creature's converted mana cost."),