From 0e666f07e9c42df90aff17db735bbed684c1892e Mon Sep 17 00:00:00 2001 From: Hanmac Date: Wed, 18 Oct 2017 06:24:50 +0000 Subject: [PATCH] CardFactoryUtil: moved Dredge to ReplacementEffect --- .../java/forge/game/card/CardFactoryUtil.java | 48 ++++++++++++------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index 2914625f64f..b495fa39c97 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -2178,22 +2178,7 @@ public class CardFactoryUtil { addTriggerAbility(keyword, card, null); } else if (keyword.startsWith("Dredge")) { - final int dredgeAmount = card.getKeywordMagnitude("Dredge"); - - final String actualRep = "Event$ Draw | ActiveZones$ Graveyard | ValidPlayer$ You | " - + "ReplaceWith$ DredgeCards | Secondary$ True | Optional$ True | CheckSVar$ " - + "DredgeCheckLib | SVarCompare$ GE" + dredgeAmount + " | References$ " - + "DredgeCheckLib | AICheckDredge$ True | Description$ " + card.getName() - + " - Dredge " + dredgeAmount; - final String abString = "DB$ Mill | Defined$ You | NumCards$ " + dredgeAmount + " | " - + "SubAbility$ DredgeMoveToPlay"; - final String moveToPlay = "DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | " - + "Defined$ Self"; - final String checkSVar = "Count$ValidLibrary Card.YouOwn"; - card.setSVar("DredgeCards", abString); - card.setSVar("DredgeMoveToPlay", moveToPlay); - card.setSVar("DredgeCheckLib", checkSVar); - card.addReplacementEffect(ReplacementHandler.parseReplacement(actualRep, card, true)); + addReplacementEffect(keyword, card, null); } else if (keyword.startsWith("Prevent all") || keyword.startsWith("PreventAllDamageBy") ) { addReplacementEffect(keyword, card, null); }else if (keyword.startsWith("Tribute")) { @@ -3439,6 +3424,37 @@ public class CardFactoryUtil { ReplacementEffect cardre = card.addReplacementEffect(re); + if (!intrinsic) { + kws.addReplacement(cardre); + } + } else if (keyword.startsWith("Dredge")) { + final String dredgeAmount = keyword.split(" ")[1]; + + final String actualRep = "Event$ Draw | ActiveZones$ Graveyard | ValidPlayer$ You | " + + "ReplaceWith$ DredgeCards | Secondary$ True | Optional$ True | CheckSVar$ " + + "DredgeCheckLib | SVarCompare$ GE" + dredgeAmount + + " | AICheckDredge$ True | Description$ " + card.getName() + + " - Dredge " + dredgeAmount; + + final String abString = "DB$ Mill | Defined$ You | NumCards$ " + dredgeAmount; + + final String moveToPlay = "DB$ ChangeZone | Origin$ Graveyard | Destination$ Hand | Defined$ Self"; + + SpellAbility saMill = AbilityFactory.getAbility(abString, card); + AbilitySub saMove = (AbilitySub) AbilityFactory.getAbility(moveToPlay, card); + saMill.setSubAbility(saMove); + + if (!intrinsic) { + saMill.setIntrinsic(false); + } + + ReplacementEffect re = ReplacementHandler.parseReplacement(actualRep, card, intrinsic); + re.setLayer(ReplacementLayer.Other); + + re.setSVar("DredgeCheckLib", "Count$ValidLibrary Card.YouOwn"); + + ReplacementEffect cardre = card.addReplacementEffect(re); + if (!intrinsic) { kws.addReplacement(cardre); }