diff --git a/.gitattributes b/.gitattributes index de8aa3f4791..86192fe7298 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2655,6 +2655,7 @@ res/cardsfolder/e/entangling_trap.txt svneol=native#text/plain res/cardsfolder/e/entangling_vines.txt svneol=native#text/plain res/cardsfolder/e/entomb.txt svneol=native#text/plain res/cardsfolder/e/entomber_exarch.txt -text +res/cardsfolder/e/entrails_feaster.txt -text res/cardsfolder/e/entropic_eidolon.txt svneol=native#text/plain res/cardsfolder/e/entropic_specter.txt svneol=native#text/plain res/cardsfolder/e/envelop.txt svneol=native#text/plain diff --git a/res/cardsfolder/e/entrails_feaster.txt b/res/cardsfolder/e/entrails_feaster.txt new file mode 100644 index 00000000000..a296be2c373 --- /dev/null +++ b/res/cardsfolder/e/entrails_feaster.txt @@ -0,0 +1,14 @@ +Name:Entrails Feaster +ManaCost:B +Types:Creature Zombie Cat +Text:no text +PT:1/1 +T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigExile | TriggerZones$ Battlefield | TriggerDescription$ At the beginning of your upkeep, you may exile a creature card from a graveyard. If you do, put a +1/+1 counter on CARDNAME. If you don't, tap CARDNAME. +SVar:TrigExile:AB$ ChangeZone | Cost$ 0 | ChangeType$ Creature | ChangeNum$ 1 | Origin$ Graveyard | Destination$ Exile | Optional$ True | IsCurse$ True | RememberChanged$ True | Hidden$ True | Chooser$ You | SubAbility$ DBPutCounter +SVar:DBPutCounter:DB$ PutCounter | Defined$ Self | CounterNum$ 1 | CounterType$ P1P1 | ConditionCheckSVar$ X | ConditionSVarCompare$ GE1 | SubAbility$ DBTap +SVar:DBTap:DB$ Tap | ConditionCheckSVar$ X | ConditionSVarCompare$ LE0 | SubAbility$ DBCleanup +SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True +SVar:X:Remembered$Amount +SVar:Rarity:Rare +SVar:Picture:http://www.wizards.com/global/images/magic/general/entrails_feaster.jpg +End \ No newline at end of file diff --git a/src/main/java/forge/card/abilityfactory/AbilityFactoryChangeZone.java b/src/main/java/forge/card/abilityfactory/AbilityFactoryChangeZone.java index fe84cf19096..a02a1635e26 100644 --- a/src/main/java/forge/card/abilityfactory/AbilityFactoryChangeZone.java +++ b/src/main/java/forge/card/abilityfactory/AbilityFactoryChangeZone.java @@ -819,6 +819,8 @@ public final class AbilityFactoryChangeZone { CardList fetchList; if (defined) { fetchList = new CardList(AbilityFactory.getDefinedCards(card, params.get("Defined"), sa)); + } else if (!origin.contains(Zone.Library) && !origin.contains(Zone.Hand)){ + fetchList = AllZoneUtil.getCardsIn(origin); } else { fetchList = player.getCardsIn(origin); } @@ -912,11 +914,13 @@ public final class AbilityFactoryChangeZone { } movedCard = AllZone.getGameAction().moveTo(c.getController().getZone(destination), c); - } else { - movedCard = AllZone.getGameAction().moveTo(destZone, c); + } else if(destination.equals(Zone.Exile)) { + movedCard = AllZone.getGameAction().exile(c); if (params.containsKey("ExileFaceDown")) { movedCard.setState("FaceDown"); } + } else { + movedCard = AllZone.getGameAction().moveTo(destZone, c); } if (remember != null) { @@ -984,6 +988,9 @@ public final class AbilityFactoryChangeZone { CardList fetchList; if (defined) { fetchList = new CardList(AbilityFactory.getDefinedCards(card, params.get("Defined"), sa)); + } else if (!origin.contains(Zone.Library) && !origin.contains(Zone.Hand)){ + fetchList = AllZoneUtil.getCardsIn(origin); + fetchList = AbilityFactory.filterListByType(fetchList, type, sa); } else { fetchList = player.getCardsIn(origin); fetchList = AbilityFactory.filterListByType(fetchList, type, sa); @@ -1095,11 +1102,13 @@ public final class AbilityFactoryChangeZone { } newCard = AllZone.getGameAction().moveTo(c.getController().getZone(destination), c); - } else { - newCard = AllZone.getGameAction().moveTo(destZone, c); + } else if(destination.equals(Zone.Exile)) { + newCard = AllZone.getGameAction().exile(c); if (params.containsKey("ExileFaceDown")) { newCard.setState("FaceDown"); } + } else { + newCard = AllZone.getGameAction().moveTo(destZone, c); } if (remember != null) {