Merge branch 'junk' into 'master'

Junk Winder - Affinity detail/reminder text updates for more complex affinities

See merge request core-developers/forge!4787
This commit is contained in:
Michael Kamensky
2021-05-30 05:36:19 +00:00
4 changed files with 15 additions and 3 deletions

View File

@@ -3232,8 +3232,17 @@ public class CardFactoryUtil {
if (keyword.startsWith("Affinity")) {
final String[] k = keyword.split(":");
final String t = k[1];
String d = "";
if (k.length > 2) {
final StringBuilder s = new StringBuilder();
s.append(k[2]).append("s");
d = s.toString();
}
String desc = "Artifact".equals(t) ? "artifacts" : CardType.getPluralType(t);
if (!d.isEmpty()) {
desc = d;
}
StringBuilder sb = new StringBuilder();
sb.append("Mode$ ReduceCost | ValidCard$ Card.Self | Type$ Spell | Amount$ AffinityX | EffectZone$ All");
sb.append("| Description$ Affinity for ").append(desc);

View File

@@ -18,7 +18,7 @@ public enum Keyword {
UNDEFINED("", SimpleKeyword.class, false, ""),
ABSORB("Absorb", KeywordWithAmount.class, false, "If a source would deal damage to this creature, prevent %d of that damage."),
ADAPT("Adapt", KeywordWithCostAndAmount.class, false, "If this creature has no +1/+1 counters on it, put {%2$d:+1/+1 counter} on it."),
AFFINITY("Affinity", KeywordWithType.class, false, "This spell costs you {1} less to cast for each %s you control."),
AFFINITY("Affinity", KeywordWithType.class, false, "This spell costs {1} less to cast for each %s you control."),
AFFLICT("Afflict", KeywordWithAmount.class, false, "Whenever this creature becomes blocked, defending player loses %d life."),
AFTERLIFE("Afterlife", KeywordWithAmount.class, false, "When this creature dies, create {%1$d:1/1 white and black Spirit creature token} with flying."),
AFTERMATH("Aftermath", SimpleKeyword.class, false, "Cast this spell only from your graveyard. Then exile it."),

View File

@@ -11,6 +11,9 @@ public class KeywordWithType extends KeywordInstance<KeywordWithType> {
type = details.toLowerCase();
} else if (details.contains(":")) {
type = details.split(":")[0];
if (this.toString().startsWith("Affinity")) {
type = details.split(":")[1];
}
} else {
type = details;
}

View File

@@ -2,9 +2,9 @@ Name:Junk Winder
ManaCost:5 U U
Types:Creature Serpent
PT:5/6
K:Affinity:Permanent.token
K:Affinity:Permanent.token:token
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Permanent.token+YouCtrl | TriggerZones$ Battlefield | Execute$ TrigTap | TriggerDescription$ Whenever a token enters the battlefield under your control, tap target nonland permanent an opponent controls. It doesn't untap during its controller's next untap step.
SVar:TrigTap:DB$ Tap | ValidTgts$ Permanent.nonLand+OppCtrl | TgtPrompt$ Choose target nonland permanent an opponent controls | SubAbility$ DBPump
SVar:DBPump:DB$ Pump | Defined$ Targeted | KW$ HIDDEN This card doesn't untap during your next untap step. | Permanent$ True
SVar:DBPump:DB$ Pump | Defined$ Targeted | KW$ HIDDEN This card doesn't untap during your next untap step. | Duration$ Permanent
DeckNeeds:Ability$Token
Oracle:Affinity for tokens (This spell costs {1} less to cast for each token you control.)\nWhenever a token enters the battlefield under your control, tap target nonland permanent an opponent controls. It doesn't untap during its controller's next untap step.