From 6b273a0d741971ca69a928d5246e804f63f2271c Mon Sep 17 00:00:00 2001 From: Northmoc Date: Sun, 13 Feb 2022 19:52:25 -0500 Subject: [PATCH] BoosterGenerator support sheetReplaceCardFromSheet --- .../item/generation/BoosterGenerator.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/forge-core/src/main/java/forge/item/generation/BoosterGenerator.java b/forge-core/src/main/java/forge/item/generation/BoosterGenerator.java index a7eff2684a5..f7e3eba181c 100644 --- a/forge-core/src/main/java/forge/item/generation/BoosterGenerator.java +++ b/forge-core/src/main/java/forge/item/generation/BoosterGenerator.java @@ -372,6 +372,35 @@ public class BoosterGenerator { if (!boosterReplaceSlotFromPrintSheet.isEmpty()) { replaceCardFromExtraSheet(result, boosterReplaceSlotFromPrintSheet); } + + String sheetReplaceCardFromSheet = edition.getSheetReplaceCardFromSheet(); + if (!sheetReplaceCardFromSheet.isEmpty()) { + String[] split = sheetReplaceCardFromSheet.split("_"); + PrintSheet replaceThis = StaticData.instance().getPrintSheets().get(split[0]); + List candidates = Lists.newArrayList(); + for (PaperCard p : result) { + if (replaceThis.all().contains(p)) { + candidates.add(candidates.size(), p); + } + } + result.removeAll(candidates); + replaceCardFromExtraSheet(candidates, split[1]); + result.addAll(candidates); + } + String sheetReplaceCardFromSheet2 = edition.getSheetReplaceCardFromSheet2(); + if (!sheetReplaceCardFromSheet2.isEmpty()) { + String[] split = sheetReplaceCardFromSheet2.split("_"); + PrintSheet replaceThis = StaticData.instance().getPrintSheets().get(split[0]); + List candidates = Lists.newArrayList(); + for (PaperCard p : result) { + if (replaceThis.all().contains(p)) { + candidates.add(candidates.size(), p); + } + } + result.removeAll(candidates); + replaceCardFromExtraSheet(candidates, split[1]); + result.addAll(candidates); + } } return result;