diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/leagueAdmin.html b/gemp-lotr/gemp-lotr-async/src/main/web/leagueAdmin.html index 499e90854..c6df83a44 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/leagueAdmin.html +++ b/gemp-lotr/gemp-lotr-async/src/main/web/leagueAdmin.html @@ -204,6 +204,7 @@ Format:
Series duration in days:
Maximum matches in series:
diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/set30-rarity.txt b/gemp-lotr/gemp-lotr-cards/src/main/resources/set30-rarity.txt index 69f8458ed..6502a64ff 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/set30-rarity.txt +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/set30-rarity.txt @@ -1,7 +1,7 @@ -30S1 +30C1 30S2 -30S3 -30S4 +30C3 +30C4 30S5 30S6 30S7 @@ -10,25 +10,25 @@ 30S10 30S11 30S12 -30S13 -30S14 +30C13 +30C14 30S15 30S16 30S17 30S18 30S19 -30S20 +30C20 30S21 30S22 -30S23 -30S24 +30C23 +30C24 30S25 30S26 30S27 30S28 30S29 -30S30 -30S31 +30C30 +30C31 30S32 30S33 30S34 diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/set31-rarity.txt b/gemp-lotr/gemp-lotr-cards/src/main/resources/set31-rarity.txt index 35a9f6766..d5d1b2668 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/set31-rarity.txt +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/set31-rarity.txt @@ -1,69 +1,69 @@ -31S1 -31S2 -31S3 -31S4 -31S5 -31S6 -31S7 -31S8 -31S9 -31S10 -31S11 -31S12 -31S13 -31S14 -31S15 -31S16 -31S17 -31S18 -31S19 -31S20 -31S21 -31S22 -31S23 -31S24 -31S25 -31S26 -31S27 -31S28 -31S29 -31S30 -31S31 -31S32 -31S33 -31S34 -31S35 -31S36 -31S37 -31S38 -31S39 -31S40 -31S41 -31S42 -31S43 -31S44 -31S45 -31S46 -31S47 -31S48 -31S49 -31S50 -31S51 -31S52 -31S53 -31S54 -31S55 -31S56 -31S57 -31S58 -31S59 -31S60 -31S61 -31S62 -31S63 -31S64 -31S65 -31S66 -31S67 -31S68 -31S69 +31X1 +31R2 +31R3 +31X4 +31R5 +31X6 +31R7 +31X8 +31X9 +31X10 +31R11 +31R12 +31R13 +31X14 +31X15 +31X16 +31R17 +31R18 +31C19 +31U20 +31U21 +31R22 +31U23 +31P24 +31R25 +31U26 +31C27 +31U28 +31X29 +31C30 +31C31 +31C32 +31R33 +31P34 +31C35 +31P36 +31R37 +31R38 +31X39 +31X40 +31R41 +31R42 +31X43 +31P44 +31P45 +31P46 +31X47 +31X48 +31P49 +31X50 +31P51 +31P52 +31P53 +31P54 +31X55 +31X56 +31U57 +31X58 +31C59 +31U60 +31C61 +31P62 +31C63 +31U64 +31X65 +31U66 +31U67 +31U68 +31U69 diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft2/builder/startingPoolBuilder2.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft2/builder/startingPoolBuilder2.java new file mode 100644 index 000000000..e658f5474 --- /dev/null +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/draft2/builder/startingPoolBuilder2.java @@ -0,0 +1,143 @@ +package com.gempukku.lotro.draft2.builder; + +import com.gempukku.lotro.game.CardCollection; +import com.gempukku.lotro.game.DefaultCardCollection; +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; + +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Random; + +public class StartingPoolBuilder { + public CardCollectionProducer buildCardCollectionProducer(JSONObject startingPool) { + String cardCollectionProducerType = (String) startingPool.get("type"); + if (cardCollectionProducerType.equals("randomCardPool")) { + return buildRandomCardPool((JSONObject) startingPool.get("data")); + } else if (cardCollectionProducerType.equals("boosterDraftRun")) { + return buildBoosterDraftRun((JSONObject) startingPool.get("data")); + } + throw new RuntimeException("Unknown cardCollectionProducer type: "+cardCollectionProducerType); + } + + private CardCollectionProducer buildRandomCardPool(JSONObject randomCardPool) { + JSONArray cardPools = (JSONArray) randomCardPool.get("randomResult"); + + final List cardCollections = new ArrayList(); + Iterator iterator = cardPools.iterator(); + while (iterator.hasNext()) { + JSONArray cards = iterator.next(); + + DefaultCardCollection cardCollection = new DefaultCardCollection(); + Iterator cardIterator = cards.iterator(); + while (cardIterator.hasNext()) { + cardCollection.addItem(cardIterator.next(), 1); + } + cardCollections.add(cardCollection); + } + + return new CardCollectionProducer() { + @Override + public CardCollection getCardCollection(long seed) { + Random rnd = new Random(seed); + return cardCollections.get(rnd.nextInt(cardCollections.size())); + } + }; + } + + private CardCollectionProducer buildBoosterDraftRun(JSONObject boosterDraftRun) { + final int runLengthInput = ((Number) boosterDraftRun.get("runLength")).intValue(); + final JSONArray coreCards = (JSONArray) boosterDraftRun.get("coreCards"); + JSONArray freePeoplesRuns = (JSONArray) boosterDraftRun.get("freePeoplesRuns"); + JSONArray shadowRuns = (JSONArray) boosterDraftRun.get("shadowRuns"); + + final List> freePeoplesRunList = new ArrayList>(); + Iterator freePeoplesIterator = freePeoplesRuns.iterator(); + while (freePeoplesIterator.hasNext()) { + JSONArray cards = freePeoplesIterator.next(); + + List orderedCards = new ArrayList(); + Iterator cardIterator = cards.iterator(); + while (cardIterator.hasNext()) { + orderedCards.add(cardIterator.next()); + } + freePeoplesRunList.add(orderedCards); + } + + final List> shadowRunList = new ArrayList>(); + Iterator shadowIterator = shadowRuns.iterator(); + while (shadowIterator.hasNext()) { + JSONArray cards = shadowIterator.next(); + + List orderedCards = new ArrayList(); + Iterator cardIterator = cards.iterator(); + while (cardIterator.hasNext()) { + orderedCards.add(cardIterator.next()); + } + shadowRunList.add(orderedCards); + } + + return new CardCollectionProducer() { + @Override + public CardCollection getCardCollection(long seed) { + Random rnd = new Random(seed); + List freePeoplesRun = freePeoplesRunList.get(rnd.nextInt(freePeoplesRunList.size())); + List shadowRun = shadowRunList.get(rnd.nextInt(shadowRunList.size())); + int runLength = 0; + if (freePeoplesRun.size() > 0 && shadowRun.size() > 0) { + runLength = Math.min(runLengthInput, Math.min(freePeoplesRun.size(), shadowRun.size())); + } else if (freePeoplesRun.size() > 0) { + runLength = Math.min(runLengthInput, freePeoplesRun.size()); + } else { + runLength = Math.min(runLengthInput, shadowRun.size()); + } + String[] draftRun = new String[runLength]; + if (freePeoplesRun.size() > 0) { + int runSeed = rnd.nextInt() % freePeoplesRun.size(); + if (runSeed + runLength > freePeoplesRun.size()) { + int runFromStart = runSeed + runLength - freePeoplesRun.size(); + int runAtEnd = runLength - runFromStart; + for (int i = 0; i < runAtEnd; i++) { + draftRun[i] = freePeoplesRun.get(runSeed+i); + } + for (int i = 0; i < runFromStart; i++) { + draftRun[runAtEnd + i] = freePeoplesRun.get(i); + } + } else { + for (int i = 0; i < runLength; i++) { + draftRun[i] = freePeoplesRun.get(runSeed+i); + } + } + } + if (shadowRun.size() > 0) { + int runSeed = rnd.nextInt() % shadowRun.size(); + if (runSeed + runLength > shadowRun.size()) { + int runFromStart = runSeed + runLength - shadowRun.size(); + int runAtEnd = runLength - runFromStart; + for (int i = 0; i < runAtEnd; i++) { + draftRun[i] = shadowRun.get(runSeed+i); + } + for (int i = 0; i < runFromStart; i++) { + draftRun[runAtEnd + i] = shadowRun.get(i); + } + } else { + for (int i = 0; i < runLength; i++) { + draftRun[i] = shadowRun.get(runSeed+i); + } + } + } + + final DefaultCardCollection draftCollection = new DefaultCardCollection(); + Iterator iterator = coreCards.iterator(); + while (iterator.hasNext()) { + draftCollection.addItem(iterator.next(), 1); + } + for (int i = 0; i < draftRun.length; i++) { + draftCollection.addItem(draftRun[i], 1); + } + return draftCollection; + } + }; + } +} \ No newline at end of file diff --git a/gemp-lotr/gemp-lotr-server/src/main/resources/draft/fellowshipDraft.json b/gemp-lotr/gemp-lotr-server/src/main/resources/draft/fellowshipDraft.json new file mode 100644 index 000000000..8df4a5a7e --- /dev/null +++ b/gemp-lotr/gemp-lotr-server/src/main/resources/draft/fellowshipDraft.json @@ -0,0 +1,295 @@ +{ + "format": "limited_fotr", + "startingPool": { + "type": "boosterDraftRun", + "data": { + "runLength": 14, + "coreCards": ["1_2","1_290"], + "freePeoplesRuns": [ + ["1_296", "2_110", "1_12", "1_365", "1_112", "1_365", "1_311", "1_317", "2_104", "3_122", "1_364", "3_35", "1_78", "1_364", "2_114", "1_299", "1_303", "3_121", "1_365", "1_112", "1_365", "2_110", "1_298", "2_104", "1_51", "1_364", "3_35", "1_76", "1_364", "2_114"], + ["1_26", "1_7", "1_9", "1_11", "1_5", "2_121", "1_97", "2_37", "1_97", "1_51", "1_37", "1_48", "1_32", "1_51", "1_97", "2_121", "1_5", "2_6", "1_9", "1_7", "1_6", "2_121", "1_97", "3_7", "1_37", "1_48", "2_18", "3_7", "1_97", "2_121"] + ], + "shadowRuns": [ + ["3_96", "1_270", "2_89", "1_262", "1_262", "2_89", "1_270", "3_96", "1_231", "2_61", "1_179", "2_63", "1_184", "2_62", "2_62", "1_184", "2_63", "1_179", "2_61", "1_234", "1_158", "1_152", "1_154", "1_151", "1_145", "1_151", "1_154", "1_152", "1_158", "1_231", "3_100", "1_267", "1_270", "1_271", "1_271", "1_270", "1_267", "3_100", "1_234", "1_177", "2_67", "1_178", "1_176", "2_60", "2_60", "1_176", "1_178", "2_67", "1_77", "1_231", "3_57", "3_58", "3_59", "3_62", "3_69", "3_62", "3_59", "3_58", "3_57", "1_234"] + ] + } + }, + "choices": [ + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 5, + "filter": "side:FREE_PEOPLE set:1,2,3 rarity:R" + } + }, + { + "type": "weightedSwitch", + "repeat": 10, + "data": { + "switchResult": [ + { + "weight": 0.1, + "type": "filterPick", + "data": { + "optionCount": 5, + "filter": "side:FREE_PEOPLE set:1 rarity:R" + } + }, + { + "weight": 0.3, + "type": "filterPick", + "data": { + "optionCount": 8, + "filter": "side:FREE_PEOPLE set:1 rarity:U,P" + } + }, + { + "weight": 0.6, + "type": "filterPick", + "data": { + "optionCount": 10, + "filter": "side:FREE_PEOPLE set:1 rarity:C" + } + } + ] + } + },{ + "type": "weightedSwitch", + "repeat": 10, + "data": { + "switchResult": [ + { + "weight": 0.1, + "type": "filterPick", + "data": { + "optionCount": 5, + "filter": "side:FREE_PEOPLE set:2 rarity:R" + } + }, + { + "weight": 0.3, + "type": "filterPick", + "data": { + "optionCount": 8, + "filter": "side:FREE_PEOPLE set:2 rarity:U,P" + } + }, + { + "weight": 0.6, + "type": "filterPick", + "data": { + "optionCount": 10, + "filter": "side:FREE_PEOPLE set:2 rarity:C" + } + } + ] + } + },{ + "type": "weightedSwitch", + "repeat": 10, + "data": { + "switchResult": [ + { + "weight": 0.1, + "type": "filterPick", + "data": { + "optionCount": 5, + "filter": "side:FREE_PEOPLE set:3 rarity:R" + } + }, + { + "weight": 0.3, + "type": "filterPick", + "data": { + "optionCount": 8, + "filter": "side:FREE_PEOPLE set:3 rarity:U,P" + } + }, + { + "weight": 0.6, + "type": "filterPick", + "data": { + "optionCount": 10, + "filter": "side:FREE_PEOPLE set:3 rarity:C" + } + } + ] + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 5, + "filter": "side:SHADOW set:1,2,3 rarity:R" + } + }, + { + "type": "weightedSwitch", + "repeat": 10, + "data": { + "switchResult": [ + { + "weight": 0.1, + "type": "filterPick", + "data": { + "optionCount": 5, + "filter": "side:SHADOW set:1 rarity:R" + } + }, + { + "weight": 0.3, + "type": "filterPick", + "data": { + "optionCount": 8, + "filter": "side:SHADOW set:1 rarity:U,P" + } + }, + { + "weight": 0.6, + "type": "filterPick", + "data": { + "optionCount": 10, + "filter": "side:SHADOW set:1 rarity:C" + } + } + ] + } + },{ + "type": "weightedSwitch", + "repeat": 10, + "data": { + "switchResult": [ + { + "weight": 0.1, + "type": "filterPick", + "data": { + "optionCount": 5, + "filter": "side:SHADOW set:2 rarity:R" + } + }, + { + "weight": 0.3, + "type": "filterPick", + "data": { + "optionCount": 8, + "filter": "side:SHADOW set:2 rarity:U,P" + } + }, + { + "weight": 0.6, + "type": "filterPick", + "data": { + "optionCount": 10, + "filter": "side:SHADOW set:2 rarity:C" + } + } + ] + } + },{ + "type": "weightedSwitch", + "repeat": 10, + "data": { + "switchResult": [ + { + "weight": 0.1, + "type": "filterPick", + "data": { + "optionCount": 5, + "filter": "side:SHADOW set:3 rarity:R" + } + }, + { + "weight": 0.3, + "type": "filterPick", + "data": { + "optionCount": 8, + "filter": "side:SHADOW set:3 rarity:U,P" + } + }, + { + "weight": 0.6, + "type": "filterPick", + "data": { + "optionCount": 10, + "filter": "side:SHADOW set:3 rarity:C" + } + } + ] + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:1,2,3 siteNumber:1" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:1,2,3 siteNumber:2" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:1,2,3 siteNumber:3" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:1,2,3 siteNumber:4" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:1,2,3 siteNumber:5" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:1,2,3 siteNumber:6" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:1,2,3 siteNumber:7" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:1,2,3 siteNumber:8" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:1,2,3 siteNumber:9" + } + } + ] +} \ No newline at end of file diff --git a/gemp-lotr/gemp-lotr-server/src/main/resources/draft/hobbitDraft.json b/gemp-lotr/gemp-lotr-server/src/main/resources/draft/hobbitDraft.json new file mode 100644 index 000000000..d87429c4e --- /dev/null +++ b/gemp-lotr/gemp-lotr-server/src/main/resources/draft/hobbitDraft.json @@ -0,0 +1,133 @@ +{ + "format": "limited_hobbit", + "startingPool": { + "type": "randomCardPool", + "data": { + "randomResult": [ + ["30_1", "30_2", "30_3", "30_4", "30_5", "30_6", "30_7", "30_8", "30_9", "30_10", "30_11", "30_12", "30_13", "30_14", "30_15", "30_16", "30_17", "30_18", "30_19", "30_20", "30_21", "30_22", "30_23", "30_24", "30_29", "30_30", "30_31", "30_47", "30_48", "30_32", "30_32", "30_32", "30_33", "30_33", "30_34", "30_34", "30_35", "30_35", "30_35", "30_35", "30_36", "30_36", "30_37", "30_37", "30_38", "30_38", "30_39", "30_39", "30_39", "30_40", "30_40", "30_40", "30_41", "30_41", "30_42", "30_42", "30_42", "30_42", "30_58", "30_49", "30_50", "30_51", "30_52", "30_53", "30_54", "30_55", "30_56", "30_57"] + ] + } + }, + "choices": [ + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 1, + "filter": "side:FREE_PEOPLE name:Bilbo set:30" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 1, + "filter": "side:FREE_PEOPLE name:Gandalf set:30" + } + }, + { + "type": "weightedSwitch", + "repeat": 22, + "data": { + "switchResult": [ + { + "weight": 0.05, + "type": "filterPick", + "data": { + "optionCount": 2, + "filter": "side:SHADOW set:30,31 rarity:X" + } + }, + { + "weight": 0.1, + "type": "filterPick", + "data": { + "optionCount": 2, + "filter": "side:SHADOW set:30,31 rarity:R" + } + }, + { + "weight": 0.13, + "type": "filterPick", + "data": { + "optionCount": 3, + "filter": "side:SHADOW set:30,31 rarity:P" + } + }, + { + "weight": 0.36, + "type": "filterPick", + "data": { + "optionCount": 4, + "filter": "side:SHADOW set:30,31 rarity:U" + } + }, + { + "weight": 0.36, + "type": "filterPick", + "data": { + "optionCount": 5, + "filter": "side:SHADOW set:30,31 rarity:C" + } + } + ] + } + }, + { + "type": "weightedSwitch", + "repeat": 18, + "data": { + "switchResult": [ + { + "weight": 0.15, + "type": "filterPick", + "data": { + "optionCount": 4, + "filter": "side:FREE_PEOPLE set:30,31 rarity:X" + } + }, + { + "weight": 0.25, + "type": "filterPick", + "data": { + "optionCount": 6, + "filter": "side:FREE_PEOPLE set:30,31 rarity:R" + } + }, + { + "weight": 0.6, + "type": "filterPick", + "data": { + "optionCount": 5, + "filter": "side:FREE_PEOPLE set:30,31 rarity:C" + } + } + ] + } + }, + { + "type": "weightedSwitch", + "repeat": 5, + "data": { + "switchResult": [ + { + "weight": 0.2, + "type": "filterPick", + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:30,31 rarity:X" + } + }, + { + "weight": 0.8, + "type": "filterPick", + "data": { + "optionCount": 4, + "filter": "cardType:SITE set:30,31 rarity:P" + } + } + ] + } + } + ] +} \ No newline at end of file diff --git a/gemp-lotr/gemp-lotr-server/src/main/resources/draft/twoTowersDraft.json b/gemp-lotr/gemp-lotr-server/src/main/resources/draft/twoTowersDraft.json new file mode 100644 index 000000000..9b3183bd0 --- /dev/null +++ b/gemp-lotr/gemp-lotr-server/src/main/resources/draft/twoTowersDraft.json @@ -0,0 +1,295 @@ +{ + "format": "limited_ttt", + "startingPool": { + "type": "boosterDraftRun", + "data": { + "runLength": 14, + "coreCards": ["4_2","4_302"], + "freePeoplesRuns": [ + ["4_90", "4_105", "4_97", "4_98", "4_97", "4_105", "4_90", "4_109", "4_115", "4_112", "4_115", "4_109", "4_71", "4_83", "4_76", "4_78", "4_83", "4_71", "4_74", "4_87", "4_70", "4_87", "4_74", "4_117", "4_135", "4_112", "4_128", "4_130", "4_135", "4_117"], + ["4_266", "4_278", "4_277", "4_273", "4_273", "4_281", "4_283", "4_266", "4_270", "4_287", "4_265", "4_297", "4_265", "4_287", "4_270", "4_49", "4_44", "4_42", "4_58", "4_42", "4_44", "4_49", "4_310", "4_322", "4_308", "4_314", "4_310", "4_308", "4_322", "4_314"] + ], + "shadowRuns": [ + ["4_248", "4_221", "4_222", "4_227", "4_226", "4_224", "4_228", "4_258", "4_228", "4_224", "4_226", "4_227", "4_222", "4_221", "4_248", "4_165", "4_191", "4_184", "4_206", "4_204", "4_180", "4_198", "4_137", "4_198", "4_180", "4_204", "4_206", "4_184", "4_191", "4_165", "4_4", "4_17", "4_16", "4_25", "4_10", "4_14", "4_12", "4_21", "4_12", "4_14", "4_10", "4_25", "4_16", "4_17", "4_4", "4_207", "4_181", "4_193", "4_189", "4_187", "4_190", "4_178", "4_153", "4_178", "4_190", "4_187", "4_189", "4_193", "4_181", "4_207"] + ] + } + }, + "choices": [ + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 5, + "filter": "side:FREE_PEOPLE set:4,5,6 rarity:R" + } + }, + { + "type": "weightedSwitch", + "repeat": 10, + "data": { + "switchResult": [ + { + "weight": 0.1, + "type": "filterPick", + "data": { + "optionCount": 5, + "filter": "side:FREE_PEOPLE set:4 rarity:R" + } + }, + { + "weight": 0.3, + "type": "filterPick", + "data": { + "optionCount": 8, + "filter": "side:FREE_PEOPLE set:4 rarity:U,P" + } + }, + { + "weight": 0.6, + "type": "filterPick", + "data": { + "optionCount": 10, + "filter": "side:FREE_PEOPLE set:4 rarity:C" + } + } + ] + } + },{ + "type": "weightedSwitch", + "repeat": 10, + "data": { + "switchResult": [ + { + "weight": 0.1, + "type": "filterPick", + "data": { + "optionCount": 5, + "filter": "side:FREE_PEOPLE set:5 rarity:R" + } + }, + { + "weight": 0.3, + "type": "filterPick", + "data": { + "optionCount": 8, + "filter": "side:FREE_PEOPLE set:5 rarity:U,P" + } + }, + { + "weight": 0.6, + "type": "filterPick", + "data": { + "optionCount": 10, + "filter": "side:FREE_PEOPLE set:5 rarity:C" + } + } + ] + } + },{ + "type": "weightedSwitch", + "repeat": 10, + "data": { + "switchResult": [ + { + "weight": 0.1, + "type": "filterPick", + "data": { + "optionCount": 5, + "filter": "side:FREE_PEOPLE set:6 rarity:R" + } + }, + { + "weight": 0.3, + "type": "filterPick", + "data": { + "optionCount": 8, + "filter": "side:FREE_PEOPLE set:6 rarity:U,P" + } + }, + { + "weight": 0.6, + "type": "filterPick", + "data": { + "optionCount": 10, + "filter": "side:FREE_PEOPLE set:6 rarity:C" + } + } + ] + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 5, + "filter": "side:SHADOW set:4,5,6 rarity:R" + } + }, + { + "type": "weightedSwitch", + "repeat": 10, + "data": { + "switchResult": [ + { + "weight": 0.1, + "type": "filterPick", + "data": { + "optionCount": 5, + "filter": "side:SHADOW set:4 rarity:R" + } + }, + { + "weight": 0.3, + "type": "filterPick", + "data": { + "optionCount": 8, + "filter": "side:SHADOW set:4 rarity:U,P" + } + }, + { + "weight": 0.6, + "type": "filterPick", + "data": { + "optionCount": 10, + "filter": "side:SHADOW set:4 rarity:C" + } + } + ] + } + },{ + "type": "weightedSwitch", + "repeat": 10, + "data": { + "switchResult": [ + { + "weight": 0.1, + "type": "filterPick", + "data": { + "optionCount": 5, + "filter": "side:SHADOW set:5 rarity:R" + } + }, + { + "weight": 0.3, + "type": "filterPick", + "data": { + "optionCount": 8, + "filter": "side:SHADOW set:5 rarity:U,P" + } + }, + { + "weight": 0.6, + "type": "filterPick", + "data": { + "optionCount": 10, + "filter": "side:SHADOW set:5 rarity:C" + } + } + ] + } + },{ + "type": "weightedSwitch", + "repeat": 10, + "data": { + "switchResult": [ + { + "weight": 0.1, + "type": "filterPick", + "data": { + "optionCount": 5, + "filter": "side:SHADOW set:6 rarity:R" + } + }, + { + "weight": 0.3, + "type": "filterPick", + "data": { + "optionCount": 8, + "filter": "side:SHADOW set:6 rarity:U,P" + } + }, + { + "weight": 0.6, + "type": "filterPick", + "data": { + "optionCount": 10, + "filter": "side:SHADOW set:6 rarity:C" + } + } + ] + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:4,5,6 siteNumber:1" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:4,5,6 siteNumber:2" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:4,5,6 siteNumber:3" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:4,5,6 siteNumber:4" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:4,5,6 siteNumber:5" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:4,5,6 siteNumber:6" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:4,5,6 siteNumber:7" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:4,5,6 siteNumber:8" + } + }, + { + "type": "filterPick", + "repeat": 1, + "data": { + "optionCount": 3, + "filter": "cardType:SITE set:4,5,6 siteNumber:9" + } + } + ] +} \ No newline at end of file diff --git a/gemp-lotr/gemp-lotr-server/src/main/resources/lotrDrafts.json b/gemp-lotr/gemp-lotr-server/src/main/resources/lotrDrafts.json index 7c7203b25..c1bc4c8de 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/resources/lotrDrafts.json +++ b/gemp-lotr/gemp-lotr-server/src/main/resources/lotrDrafts.json @@ -2,5 +2,17 @@ { "type": "test_draft", "location": "/draft/testDraft.json" + }, + { + "type": "fotr_draft", + "location": "/draft/fellowshipDraft.json" + }, + { + "type": "ttt_draft", + "location": "/draft/twoTowersDraft.json" + }, + { + "type": "hobbit_draft", + "location": "/draft/hobbitDraft.json" } -] \ No newline at end of file +]