mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 04:08:01 +00:00
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:
@@ -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);
|
||||
|
||||
@@ -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."),
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user