From df52202f6512ad4bc719f1d4540a9425b868cdce Mon Sep 17 00:00:00 2001 From: Rob Schnautz Date: Sun, 21 Oct 2018 18:21:23 +0000 Subject: [PATCH 1/5] Update Type, Default, and add a PW Deck style sort --- .../main/java/forge/itemmanager/GroupDef.java | 69 ++++++++++++++----- .../forge/itemmanager/SItemManagerUtil.java | 2 +- 2 files changed, 52 insertions(+), 19 deletions(-) diff --git a/forge-gui/src/main/java/forge/itemmanager/GroupDef.java b/forge-gui/src/main/java/forge/itemmanager/GroupDef.java index 559141e5c55..22fd2845c6f 100644 --- a/forge-gui/src/main/java/forge/itemmanager/GroupDef.java +++ b/forge-gui/src/main/java/forge/itemmanager/GroupDef.java @@ -74,12 +74,12 @@ public enum GroupDef { return -1; } }), - DEFAULT("Default", - new String[] { "Creatures", "Spells", "Lands" }, + DEFAULT("Default", //Beginning in DDU, "Artifacts" category is added at top of list + new String[] { "Artifacts", "Creatures", "Other Spells", "Lands" }, new Function() { @Override public ColumnDef apply(final Integer groupIndex) { - if (groupIndex == 2) { + if (groupIndex == 3) { return ColumnDef.NAME; //pile lands by name regardless } return null; @@ -90,21 +90,24 @@ public enum GroupDef { public Integer apply(final InventoryItem item) { if (item instanceof PaperCard) { CardType type = ((PaperCard) item).getRules().getType(); - if (type.isCreature()) { + if (type.isArtifact()) { //artifact lands/creatures, too return 0; } - if (type.isLand()) { //make Artifact Lands appear in Lands group - return 2; - } - if (type.isArtifact() || type.isEnchantment() || type.isPlaneswalker() || type.isInstant() || type.isSorcery()) { + if (type.isCreature()) { return 1; } + if (type.isLand()) { + return 3; + } + if (type.isEnchantment() || type.isPlaneswalker() || type.isInstant() || type.isSorcery()) { + return 2; + } } return -1; } }), CARD_TYPE("Type", - new String[] { "Creatures", "Artifacts", "Enchantments", "Planeswalkers", "Instants", "Sorceries", "Lands" }, + new String[] { "Planeswalker", "Creature", "Sorcery", "Instant", "Artifact", "Enchantment", "Land" }, new Function() { @Override public ColumnDef apply(final Integer groupIndex) { @@ -119,27 +122,57 @@ public enum GroupDef { public Integer apply(final InventoryItem item) { if (item instanceof PaperCard) { CardType type = ((PaperCard) item).getRules().getType(); - if (type.isCreature()) { //make Artifact and Land Creatures appear in Creatures group + if (type.isPlaneswalker()) { return 0; } - if (type.isLand()) { //make Artifact Lands appear in Lands group - return 6; - } - if (type.isArtifact()) { + if (type.isCreature()) { return 1; } - if (type.isEnchantment()) { + if (type.isSorcery()) { return 2; } - if (type.isPlaneswalker()) { + if (type.isInstant()) { return 3; } - if (type.isInstant()) { + if (type.isArtifact()) { return 4; } - if (type.isSorcery()) { + if (type.isEnchantment()) { return 5; } + if (type.isLand()) { + return 6; + } + } + return -1; + } + }), + PW_DECK_SORT("Planeswalker Deck Sort", + new String[] { "Planeswalker", "Rares", "Creature", "Land", "Other Spells" }, + new Function() { + @Override + public ColumnDef apply(final Integer groupIndex) { + return null; + } + }, + new Function() { + @Override + public Integer apply(final InventoryItem item) { + if (item instanceof PaperCard) { + CardType type = ((PaperCard) item).getRules().getType(); + if (type.isPlaneswalker()){ + return 0; + } + if (((PaperCard) item).getRarity().toString() == "R"){ + return 1; + } + if (type.isCreature()){ + return 2; + } + if (type.isLand()){ + return 3; + } + return 4; } return -1; } diff --git a/forge-gui/src/main/java/forge/itemmanager/SItemManagerUtil.java b/forge-gui/src/main/java/forge/itemmanager/SItemManagerUtil.java index 222b3321df9..a5df84f7e1a 100644 --- a/forge-gui/src/main/java/forge/itemmanager/SItemManagerUtil.java +++ b/forge-gui/src/main/java/forge/itemmanager/SItemManagerUtil.java @@ -157,7 +157,7 @@ public final class SItemManagerUtil { return builder.toString(); } - private static final GroupDef[] CARD_GROUPBY_OPTIONS = { GroupDef.DEFAULT, GroupDef.CARD_TYPE, GroupDef.COLOR, GroupDef.COLOR_IDENTITY, GroupDef.SET, GroupDef.CARD_RARITY }; + private static final GroupDef[] CARD_GROUPBY_OPTIONS = { GroupDef.DEFAULT, GroupDef.CARD_TYPE, GroupDef.COLOR, GroupDef.COLOR_IDENTITY, GroupDef.SET, GroupDef.CARD_RARITY, GroupDef.PW_DECK_SORT }; private static final GroupDef[] DECK_GROUPBY_OPTIONS = { GroupDef.COLOR, GroupDef.COLOR_IDENTITY, GroupDef.SET }; private static final ColumnDef[] CARD_PILEBY_OPTIONS = { ColumnDef.CMC, ColumnDef.COLOR, ColumnDef.NAME, ColumnDef.COST, ColumnDef.TYPE, ColumnDef.RARITY, ColumnDef.SET }; private static final ColumnDef[] DECK_PILEBY_OPTIONS = { ColumnDef.DECK_COLOR, ColumnDef.DECK_FOLDER, ColumnDef.NAME, ColumnDef.DECK_FORMAT, ColumnDef.DECK_EDITION }; From b1d62d32ca88665c8077864df0ff375f0ca0f727 Mon Sep 17 00:00:00 2001 From: Rob Schnautz Date: Sun, 21 Oct 2018 22:54:29 +0000 Subject: [PATCH 2/5] Tribal instant gets its own section --- forge-gui/src/main/java/forge/itemmanager/GroupDef.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/forge-gui/src/main/java/forge/itemmanager/GroupDef.java b/forge-gui/src/main/java/forge/itemmanager/GroupDef.java index 22fd2845c6f..8376b31bf6c 100644 --- a/forge-gui/src/main/java/forge/itemmanager/GroupDef.java +++ b/forge-gui/src/main/java/forge/itemmanager/GroupDef.java @@ -107,7 +107,7 @@ public enum GroupDef { } }), CARD_TYPE("Type", - new String[] { "Planeswalker", "Creature", "Sorcery", "Instant", "Artifact", "Enchantment", "Land" }, + new String[] { "Planeswalker", "Creature", "Sorcery", "Instant", "Artifact", "Enchantment", "Land", "Tribal instant" }, new Function() { @Override public ColumnDef apply(final Integer groupIndex) { @@ -131,6 +131,9 @@ public enum GroupDef { if (type.isSorcery()) { return 2; } + if (type.isTribal() && type.isInstant()) { + return 7; + } if (type.isInstant()) { return 3; } From 7e62fd42fb66c58174fe83c23f9b1c8776eb60ec Mon Sep 17 00:00:00 2001 From: Rob Schnautz Date: Mon, 22 Oct 2018 00:53:47 +0000 Subject: [PATCH 3/5] Add missing trigger to Skalla Wolf --- forge-gui/res/cardsfolder/s/skalla_wolf.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/s/skalla_wolf.txt b/forge-gui/res/cardsfolder/s/skalla_wolf.txt index ac0332b6967..0f32c2e8b15 100644 --- a/forge-gui/res/cardsfolder/s/skalla_wolf.txt +++ b/forge-gui/res/cardsfolder/s/skalla_wolf.txt @@ -1,6 +1,7 @@ Name:Skalla Wolf ManaCost:3 G G Types:Creature Wolf Spirit -SVar:DBDig:DB$ Dig | DigNum$ 5 | ChangeNum$ 1 | Optional$ True | ForceRevealToController$ True | ChangeValid$ Card.Green | RestRandomOrder$ True +T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Card.Self | Execute$ TrigDig | TriggerDescription$ When CARDNAME enters the battlefield, look at the top five cards of your library. You may reveal a green card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. +SVar:TrigDig:DB$ Dig | DigNum$ 5 | ChangeNum$ 1 | Optional$ True | ForceRevealToController$ True | ChangeValid$ Card.Green | RestRandomOrder$ True Oracle:When Skalla Wolf enters the battlefield, look at the top five cards of your library. You may reveal a green card from among them and put it into your hand. Put the rest on the bottom of your library in a random order. PT:3/3 \ No newline at end of file From 2d7d15193e61e12c3697222513f31ab027c3b8c5 Mon Sep 17 00:00:00 2001 From: Meerkov Date: Tue, 23 Oct 2018 01:18:10 +0000 Subject: [PATCH 4/5] Update ranging_raptors.txt --- forge-gui/res/cardsfolder/r/ranging_raptors.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/r/ranging_raptors.txt b/forge-gui/res/cardsfolder/r/ranging_raptors.txt index b4c8b178b99..490ec574f8d 100644 --- a/forge-gui/res/cardsfolder/r/ranging_raptors.txt +++ b/forge-gui/res/cardsfolder/r/ranging_raptors.txt @@ -3,7 +3,7 @@ ManaCost:2 G Types:Creature Dinosaur PT:2/3 T:Mode$ DamageDoneOnce | Execute$ TrigSearchLand | ValidTarget$ Card.Self | TriggerZones$ Battlefield | OptionalDecider$ You | TriggerDescription$ Enrage — Whenever CARDNAME is dealt damage, you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. -SVar:TrigSearchLand:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Land.Basic | ChangeNum$ 1 | Tapped$ True | ShuffleNonMandatory$ TrueS +SVar:TrigSearchLand:DB$ ChangeZone | Origin$ Library | Destination$ Battlefield | ChangeType$ Land.Basic | ChangeNum$ 1 | Tapped$ True | ShuffleNonMandatory$ True SVar:HasCombatEffect:TRUE SVar:Picture:http://www.wizards.com/global/images/magic/general/ranging_raptors.jpg Oracle:Enrage — Whenever Ranging Raptors is dealt damage, you may search your library for a basic land card, put it onto the battlefield tapped, then shuffle your library. \ No newline at end of file From 2b4435de2e4925f6b8d40e8bb1da9cc8f8ad6d22 Mon Sep 17 00:00:00 2001 From: Meerkov Date: Tue, 23 Oct 2018 01:19:18 +0000 Subject: [PATCH 5/5] Update trench_gorger.txt --- forge-gui/res/cardsfolder/t/trench_gorger.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/forge-gui/res/cardsfolder/t/trench_gorger.txt b/forge-gui/res/cardsfolder/t/trench_gorger.txt index 77425a9e651..d9945f2c21d 100644 --- a/forge-gui/res/cardsfolder/t/trench_gorger.txt +++ b/forge-gui/res/cardsfolder/t/trench_gorger.txt @@ -4,7 +4,7 @@ Types:Creature Leviathan PT:6/6 K:Trample T:Mode$ ChangesZone | ValidCard$ Card.Self | Origin$ Any | Destination$ Battlefield | OptionalDecider$ You | Execute$ TrigChangeZone | TriggerDescription$ When CARDNAME enters the battlefield, you may search your library for any number of land cards, exile them, then shuffle your library. If you do, CARDNAME has base power and base toughness each equal to the number of cards exiled this way. -SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Exile | ChangeType$ Land | ChangeNum$ X | References$ X | RememberChanged$ True | SubAbility$ TrenchAnimate | ShuffleNonMandatory$ Trues +SVar:TrigChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Exile | ChangeType$ Land | ChangeNum$ X | References$ X | RememberChanged$ True | SubAbility$ TrenchAnimate | ShuffleNonMandatory$ True SVar:TrenchAnimate:DB$Animate | Power$ Y | Toughness$ Y | References$ Y | Permanent$ True | SubAbility$ DBCleanUp SVar:DBCleanUp:DB$ Cleanup | ClearRemembered$ True SVar:X:Count$TypeInYourLibrary.Land