diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-019/cardFilter.js b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-019/cardFilter.js index 5455e7dc6..1f14c681a 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-019/cardFilter.js +++ b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-019/cardFilter.js @@ -111,7 +111,7 @@ var CardFilter = Class.extend({ + "" + "" + "" - + "" + + "" + "" + "" + "" diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-019/hobbit.js b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-019/hobbit.js index 5e8c549e4..69b34ed3e 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-019/hobbit.js +++ b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-019/hobbit.js @@ -152,21 +152,21 @@ var hobbit = { '32_24': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Saruman.png', '32_25': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Bolg_Commander.png', '32_26': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Hidden_Attack.png', - '32_27': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Orkish_Bow.png', - '32_28': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Orkish_Pursuer.png', - '32_29': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Orkish_Veteran.png', - '32_30': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Orc_Army.png', + '32_27': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Orc_Army.png', + '32_28': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Orkish_Bow.png', + '32_29': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Orkish_Pursuer.png', + '32_30': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Orkish_Veteran.png', '32_31': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Alfrid.png', '32_32': 'http://hobbitdraftgame.free.fr/Cards_Good_def/War_for_Gold.png', '32_33': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Assaulting_Goblin.png', '32_34': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Azog_Commander.png', '32_35': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Azog_s_Mace.png', - '32_36': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Azog_Servant.png', - '32_37': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Dark_Bats.png', - '32_38': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Demolition_Troll.png', - '32_39': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Wolves_Army.png', - '32_40': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Vicious_Warg.png', - '32_41': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Were_worms.png', + '32_36': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Dark_Bats.png', + '32_37': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Demolition_Troll.png', + '32_38': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Vicious_Warg.png', + '32_39': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Were_worms.png', + '32_40': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Wolves_Army.png', + '32_41': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Azog_Servant.png', '32_42': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Danger_Wrapped_in_Shadows.png', '32_43': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Jail.png', '32_44': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Shadow_Ring_of_Thror.png', @@ -190,15 +190,15 @@ var hobbit = { '32_62': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Twisted_Gold_of_Dragon.png', '32_63': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Wrath_of_the_Dragon.png', '32_64': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Dol_Guldur_Blade.png', - '32_65': 'http://hobbitdraftgame.free.fr/Cards_Good_def/He_is_summoning_his_servants.png', - '32_66': 'http://hobbitdraftgame.free.fr/Cards_Good_def/The_Great_Enemy.png', - '32_67': 'http://hobbitdraftgame.free.fr/Cards_Good_def/The_Witch_King.png', - '32_68': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Attea.png', - '32_69': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Cantea.png', - '32_70': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Enquea.png', - '32_71': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Lemenya.png', - '32_72': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Nelya.png', - '32_73': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Nertea.png', - '32_74': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Otsea.png', - '32_75': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Toldea.png' + '32_65': 'http://hobbitdraftgame.free.fr/Cards_Good_def/The_Great_Enemy.png', + '32_66': 'http://hobbitdraftgame.free.fr/Cards_Good_def/He_is_summoning_his_servants.png', + '32_67': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Attea.png', + '32_68': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Cantea.png', + '32_69': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Enquea.png', + '32_70': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Lemenya.png', + '32_71': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Nelya.png', + '32_72': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Nertea.png', + '32_73': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Otsea.png', + '32_74': 'http://hobbitdraftgame.free.fr/Cards_Good_def/Toldea.png', + '32_75': 'http://hobbitdraftgame.free.fr/Cards_Good_def/The_Witch_King.png' } 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 6e9a6768c..d1cf33ae7 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/leagueAdmin.html +++ b/gemp-lotr/gemp-lotr-async/src/main/web/leagueAdmin.html @@ -248,6 +248,7 @@ + @@ -255,6 +256,7 @@ +
Series duration in days:
diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/men/Card18_067.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/men/Card18_067.java index 0c2d8000f..b5a6cc2e1 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/men/Card18_067.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set18/men/Card18_067.java @@ -61,7 +61,7 @@ public class Card18_067 extends AbstractMinion { } if (game.getGameState().getTwilightPool() >= 4) { ActivateCardAction action = new ActivateCardAction(self); - action.setText("Remove (4) to exert and unbound companion"); + action.setText("Remove (4) to exert an unbound companion"); action.appendCost( new RemoveTwilightEffect(4)); action.appendEffect( diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/elven/Card2_017.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/elven/Card2_017.java index 2d7337948..6a3a598b4 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/elven/Card2_017.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set2/elven/Card2_017.java @@ -30,7 +30,7 @@ import java.util.List; */ public class Card2_017 extends AbstractResponseOldEvent { public Card2_017() { - super(Side.FREE_PEOPLE, Culture.ELVEN, "Dismay Our Enemiers"); + super(Side.FREE_PEOPLE, Culture.ELVEN, "Dismay Our Enemies"); } @Override diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/shire/Card5_114.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/shire/Card5_114.java index c139b4477..c03df48fc 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/shire/Card5_114.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set5/shire/Card5_114.java @@ -31,7 +31,7 @@ import java.util.List; */ public class Card5_114 extends AbstractAttachable { public Card5_114() { - super(Side.FREE_PEOPLE, CardType.CONDITION, 1, Culture.SHIRE, null, "Rare Good Balast", null, true); + super(Side.FREE_PEOPLE, CardType.CONDITION, 1, Culture.SHIRE, null, "Rare Good Ballast", null, true); } @Override diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/shire/Card8_111.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/shire/Card8_111.java index a8319ab01..884cbea8c 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/shire/Card8_111.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set8/shire/Card8_111.java @@ -25,7 +25,7 @@ import com.gempukku.lotro.logic.effects.AddThreatsEffect; */ public class Card8_111 extends AbstractEvent { public Card8_111() { - super(Side.FREE_PEOPLE, 1, Culture.SHIRE, "So Fair, So Desparate", Phase.SKIRMISH); + super(Side.FREE_PEOPLE, 1, Culture.SHIRE, "So Fair, So Desperate", Phase.SKIRMISH); } @Override diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/SortAndFilterCards.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/SortAndFilterCards.java index b0d559e56..d52f2287f 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/SortAndFilterCards.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/SortAndFilterCards.java @@ -1,6 +1,7 @@ package com.gempukku.lotro.game; import com.gempukku.lotro.cards.packs.SetDefinition; +import com.gempukku.lotro.common.Block; import com.gempukku.lotro.common.CardType; import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; @@ -90,7 +91,7 @@ public class SortAndFilterCards { final LotroCardBlueprint blueprint = cardBlueprint.get(blueprintId); if (side == null || blueprint.getSide() == side) if (rarity == null || isRarity(blueprintId, rarity, library, rarities)) - if (sets == null || isInSets(blueprintId, sets, library, formatLibrary)) + if (sets == null || isInSets(blueprintId, sets, library, formatLibrary, cardBlueprint)) if (cardTypes == null || cardTypes.contains(blueprint.getCardType())) if (cultures == null || cultures.contains(blueprint.getCulture())) if (containsAllKeywords(blueprint, keywords)) @@ -149,16 +150,40 @@ public class SortAndFilterCards { return true; } - private boolean isInSets(String blueprintId, String[] sets, LotroCardBlueprintLibrary library, LotroFormatLibrary formatLibrary) { + private boolean isInSets(String blueprintId, String[] sets, LotroCardBlueprintLibrary library, LotroFormatLibrary formatLibrary, Map cardBlueprint) { for (String set : sets) { LotroFormat format = formatLibrary.getFormat(set); + if (format != null) { try { format.validateCard(blueprintId); - return true; } catch (DeckInvalidException exp) { return false; } + final LotroCardBlueprint blueprint = cardBlueprint.get(blueprintId); + if (blueprint.getCardType() == CardType.SITE) { + if (blueprint.getSiteBlock() == Block.FELLOWSHIP) { + if ("fotr_block".contains(set)) { + return true; + } + return false; + } + if (blueprint.getSiteBlock() == Block.TWO_TOWERS) { + if ("towers_standard,ttt_block".contains(set)) { + return true; + } + return false; + } + if (blueprint.getSiteBlock() == Block.KING) { + if ("king_block,rotk_sta,movie".contains(set)) { + return true; + } + return false; + } + return true; + } else { + return true; + } } else { if (blueprintId.startsWith(set + "_") || library.hasAlternateInSet(blueprintId, Integer.parseInt(set))) return true; diff --git a/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json b/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json index 7ef142966..8e2884b99 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json +++ b/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json @@ -43,6 +43,14 @@ "set":[1, 2, 3], "hall":false }, + { + "name":"Open - Sets 1-4", + "code":"open_legacy", + "sites":"TWO_TOWERS", + "cancelRingBearerSkirmish":true, + "set":[1, 2, 3, 4], + "hall":false + }, { "name":"Towers block", "code":"ttt_block", @@ -119,7 +127,7 @@ }, { "name":"King Standard", - "code":"king_standard", + "code":"rotk_sta", "sites":"KING", "cancelRingBearerSkirmish":true, "banned":["1_40", "1_45","1_80", "1_108", "1_139", "1_195", "1_234", "1_248", "1_313", "2_32", "2_101", "2_108", "3_38", "3_42", "3_67", "3_68", "3_106", "3_108"], @@ -182,6 +190,14 @@ "set":[1, 2, 3, 4, 5, 6, 7, 8, 9], "hall":false }, + { + "name":"Movie block - Sets 1-8, 10", + "code":"movie_sans9", + "sites":"KING", + "banned":["8_1", "3_38", "3_106", "1_40", "2_32", "1_248", "3_108", "1_45", "7_96", "3_42", "10_2", "10_91", "1_108", "1_80", "3_67", "1_195", "3_68", "1_139", "7_49", "1_313", "1_234"], + "set":[1, 2, 3, 4, 5, 6, 7, 8, 10], + "hall":false + }, { "name":"War of the Ring block", "code":"war_block",