From b1534fa3a20c7049789ce8b5366b820cad1b7a87 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Sun, 18 Sep 2011 17:48:47 +0000 Subject: [PATCH] Deck builder now has culture filter. --- .../lotro/cards/set1/isengard/Card1_120.java | 4 +- .../lotro/cards/set1/sauron/Card1_254.java | 2 +- .../com/gempukku/lotro/common/Culture.java | 2 +- .../lotro/game/DefaultCardCollection.java | 13 +- .../gempukku/lotro/server/ServerResource.java | 2 +- .../src/main/webapp/deckBuild.html | 25 +-- .../src/main/webapp/images/ajax-loader.gif | Bin 0 -> 4176 bytes .../main/webapp/images/cultures/dwarven.gif | Bin 0 -> 266 bytes .../src/main/webapp/images/cultures/elven.gif | Bin 0 -> 173 bytes .../main/webapp/images/cultures/gandalf.gif | Bin 0 -> 147 bytes .../main/webapp/images/cultures/gollum.gif | Bin 0 -> 163 bytes .../main/webapp/images/cultures/gondor.gif | Bin 0 -> 157 bytes .../src/main/webapp/images/cultures/men.gif | Bin 0 -> 162 bytes .../src/main/webapp/images/cultures/moria.gif | Bin 0 -> 166 bytes .../src/main/webapp/images/cultures/orc.gif | Bin 0 -> 146 bytes .../src/main/webapp/images/cultures/rohan.gif | Bin 0 -> 205 bytes .../main/webapp/images/cultures/sauron.gif | Bin 0 -> 176 bytes .../src/main/webapp/images/cultures/shire.gif | Bin 0 -> 226 bytes .../main/webapp/images/cultures/uruk-hai.gif | Bin 0 -> 162 bytes .../main/webapp/images/cultures/wraith.gif | Bin 0 -> 190 bytes .../src/main/webapp/js/deckBuildingUi.js | 196 ++++++++++++++---- 21 files changed, 169 insertions(+), 75 deletions(-) create mode 100644 gemp-lotr/gemp-lotr-web/src/main/webapp/images/ajax-loader.gif create mode 100644 gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/dwarven.gif create mode 100644 gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/elven.gif create mode 100644 gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/gandalf.gif create mode 100644 gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/gollum.gif create mode 100644 gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/gondor.gif create mode 100644 gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/men.gif create mode 100644 gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/moria.gif create mode 100644 gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/orc.gif create mode 100644 gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/rohan.gif create mode 100644 gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/sauron.gif create mode 100644 gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/shire.gif create mode 100644 gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/uruk-hai.gif create mode 100644 gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/wraith.gif diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_120.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_120.java index 934ca4264..af47fe196 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_120.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/isengard/Card1_120.java @@ -38,14 +38,14 @@ public class Card1_120 extends AbstractPermanent { @Override public boolean checkPlayRequirements(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { return super.checkPlayRequirements(playerId, game, self, twilightModifier) - && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.culture(Culture.URUK_HAI), Filters.canExert()); + && Filters.canSpot(game.getGameState(), game.getModifiersQuerying(), Filters.race(Race.URUK_HAI), Filters.canExert()); } @Override public PlayPermanentAction getPlayCardAction(String playerId, LotroGame game, PhysicalCard self, int twilightModifier) { final PlayPermanentAction action = super.getPlayCardAction(playerId, game, self, twilightModifier); action.addCost( - new ChooseAndExertCharacterEffect(action, playerId, "Choose an Uruk-hai", true, Filters.culture(Culture.URUK_HAI), Filters.canExert())); + new ChooseAndExertCharacterEffect(action, playerId, "Choose an Uruk-hai", true, Filters.race(Race.URUK_HAI), Filters.canExert())); return action; } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_254.java b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_254.java index 2fdf17795..24013cfcd 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_254.java +++ b/gemp-lotr/gemp-lotr-cards/src/main/java/com/gempukku/lotro/cards/set1/sauron/Card1_254.java @@ -25,7 +25,7 @@ import java.util.List; */ public class Card1_254 extends AbstractAttachable { public Card1_254() { - super(Side.SHADOW, CardType.CONDITION, 0, Culture.SHIRE, null, "Mordor Enraged"); + super(Side.SHADOW, CardType.CONDITION, 0, Culture.SAURON, null, "Mordor Enraged"); } @Override diff --git a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Culture.java b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Culture.java index c5246cc44..60117241a 100644 --- a/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Culture.java +++ b/gemp-lotr/gemp-lotr-common/src/main/java/com/gempukku/lotro/common/Culture.java @@ -2,5 +2,5 @@ package com.gempukku.lotro.common; public enum Culture { DWARVEN, ELVEN, GANDALF, GOLLUM, GONDOR, ROHAN, SHIRE, - DUNLAND, ISENGARD, MEN, MORIA, ORC, RAIDER, SAURON, URUK_HAI, WRAITH + DUNLAND, ISENGARD, MEN, MORIA, ORC, RAIDER, SAURON, WRAITH } diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/DefaultCardCollection.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/DefaultCardCollection.java index c99915fa0..0af4791c9 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/DefaultCardCollection.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/game/DefaultCardCollection.java @@ -1,6 +1,7 @@ package com.gempukku.lotro.game; import com.gempukku.lotro.common.CardType; +import com.gempukku.lotro.common.Culture; import com.gempukku.lotro.common.Keyword; import java.util.*; @@ -20,7 +21,8 @@ public class DefaultCardCollection implements CardCollection { filter = ""; String[] filterParams = filter.split(" "); - List cardTypes = getEnumFilter(CardType.values(), CardType.class, "cardType", Arrays.asList(CardType.values()), filterParams); + List cardTypes = getEnumFilter(CardType.values(), CardType.class, "cardType", null, filterParams); + List cultures = getEnumFilter(Culture.values(), Culture.class, "culture", null, filterParams); List keywords = getEnumFilter(Keyword.values(), Keyword.class, "keyword", Collections.emptyList(), filterParams); Integer siteNumber = getSiteNumber(filterParams); @@ -28,10 +30,11 @@ public class DefaultCardCollection implements CardCollection { for (Map.Entry stringLotroCardBlueprintEntry : _cards.entrySet()) { String blueprintId = stringLotroCardBlueprintEntry.getKey(); LotroCardBlueprint blueprint = stringLotroCardBlueprintEntry.getValue(); - if (cardTypes.contains(blueprint.getCardType())) - if (containsAllKeywords(blueprint, keywords)) - if (siteNumber == null || blueprint.getSiteNumber() == siteNumber.intValue()) - result.put(blueprintId, _cardsCount.get(blueprintId)); + if (cardTypes == null || cardTypes.contains(blueprint.getCardType())) + if (cultures == null || cultures.contains(blueprint.getCulture())) + if (containsAllKeywords(blueprint, keywords)) + if (siteNumber == null || blueprint.getSiteNumber() == siteNumber.intValue()) + result.put(blueprintId, _cardsCount.get(blueprintId)); } return result; } diff --git a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/ServerResource.java b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/ServerResource.java index 0f51ce875..f7ddebe2c 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/ServerResource.java +++ b/gemp-lotr/gemp-lotr-web/src/main/java/com/gempukku/lotro/server/ServerResource.java @@ -35,7 +35,7 @@ import java.util.Set; @Path("/") public class ServerResource { private static final Logger _logger = Logger.getLogger(ServerResource.class); - private boolean _test = false; + private boolean _test = true; private HallServer _hallServer; private LotroServer _lotroServer; diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/deckBuild.html b/gemp-lotr/gemp-lotr-web/src/main/webapp/deckBuild.html index 700f5c151..d822fd2e4 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/deckBuild.html +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/deckBuild.html @@ -46,8 +46,6 @@ diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/images/ajax-loader.gif b/gemp-lotr/gemp-lotr-web/src/main/webapp/images/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac3a2e890eb869f31ec9e168f9efcf4fbf9b6e7f GIT binary patch literal 4176 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 Twr=Bem%CS>uY2Y{{}KNKqq1Bx literal 0 HcmV?d00001 diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/dwarven.gif b/gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/dwarven.gif new file mode 100644 index 0000000000000000000000000000000000000000..40fcbb29b815dc3a4b706e75b022a711ac58bd5a GIT binary patch literal 266 zcmZ?wbhEHblw#mvXl7s#=Hrr+R8*1{(o~T&H_~vnHuQ0~OpXg|s>z$sQ@nOX-=W>} zFP&Zc9}E~67!-f9Ff%alG3Wr<3?MTYShinS=%l52MdkT9iEH5sbDVgNEnL^KK*nj; zD&0THZlz!u#SqHHROg<=)6JRWuFMt48qJ=>mOIVSu856I zZMH5ukGUQX8v_fQ_%sGA;Dz<42sfnA36 Nd<3z{w{>!`O^AOQz{{Wm;(^RyV2Rq`X|l@JXu4vPghN2;u>=XuB9-HA9`_w}7I+CX zYH@fk;$UD&YE+)W#(uzIq6Pz3%Xve~2%R}?8b#N=d5R8aEL5D!nA^(mEJ14pkCu4n S=HGR3lAH&F4tgjtSOWmy8a(R& literal 0 HcmV?d00001 diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/gandalf.gif b/gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/gandalf.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e53d0887cdd91a20ca993a6b4857e5063da8dc7 GIT binary patch literal 147 zcmZ?wbhEHb6lUOIXl7twVP;mA6;@Z1FxFRdv(*dmvWyP)N{RByiVLVJNa?E0nA%ai zaz@RT6%+r1f#OdVW(Ed+1|0?<0GYwS;t(*`ef8d{9ENRy5i2+xI9U=Z6q`9Ew8C~2 t(@X*~6o0ZXGcfQm=m6OaATtXcd)Sx4fIWljZRLCEy&JjsjZqmsei%D$x9Z_ z-L!V)zkmP!|Nqaxz@Ye(g_!}URR_ohQhW>yEM6B*?p(I_T}X}lqf25EyoVFICNQuW zCHMySuxv1yRwUqjP@_fR(Gdp$7G~z;LJ^TRF=pNZCsrZl=7z-+82FZI9dBm#obt?5 JT$qu;8UP)$G#vl{ literal 0 HcmV?d00001 diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/men.gif b/gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/men.gif new file mode 100644 index 0000000000000000000000000000000000000000..a0d28a9a7b97449b3db99ea56dbdf45fa3493904 GIT binary patch literal 162 zcmZ?wbhEHbuT9$j;90?(JQ*dd=|@$8X%c z`5z1zz(DaQ3o`=)FM|$<2Qq_!#eajRYny<|$z^^F3KBBDMlBj097zHjnhKkm17(gI z$hcG}wA^lFEnwtuzL5LCsDbC)a=6)sD^Zz=6{NlX$q_FAmrx PWb5&@S#Y`w1A{dHgn2)R literal 0 HcmV?d00001 diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/orc.gif b/gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/orc.gif new file mode 100644 index 0000000000000000000000000000000000000000..0db99476bc991511e1509d6a37a5050b004500f8 GIT binary patch literal 146 zcmZ?wbhEHbs;+5nsBi7*nLK;Wl6ebPty#Nu$Iiq14;(#u z^vs<*&;Ek}0|SHNPZnkd20jKIAe#YX1_Mjgg_EAEeNJR$d7PXb%F>$HGR26aAwcGZ zsX(`afajc=^@-0lTpS&=1XvV!A1Q1Ro!2bDG%>=)wzZ;ZS9vJ(@Tuv$GqZA6vP-bDFst*WF!^vKR!`(>;1-cc^qwT)Ajn`1 E08E-o;Q#;t literal 0 HcmV?d00001 diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/sauron.gif b/gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/sauron.gif new file mode 100644 index 0000000000000000000000000000000000000000..c9aac0091aa9512c23aad094a048a89db45c8678 GIT binary patch literal 176 zcmZ?wbhEHblwsgtXl7uLmlSicHS=;ckB{(csmYnxQ8sHr+p<|*>sCzLx?$0=J8ec(_c~J2rjs;8IR7XcYJ+b=b#M U@8(3W67MW$0p8+jAwdRf01*#5wEzGB literal 0 HcmV?d00001 diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/shire.gif b/gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/shire.gif new file mode 100644 index 0000000000000000000000000000000000000000..c38fbb1c748fdc7b033e924c06211eb78b5cbfda GIT binary patch literal 226 zcmV<803H8FNk%w1VI2Sr0D}Mk6crFXK`lv4IcRHAet~X^jdhrri=Uy5r>d5=xT(X$ zxzp6l-{9Kgk^&+PM@9@F c6D|W_5_mJEA)qj70z#&(9xep24Gs|iJF~V=00000 literal 0 HcmV?d00001 diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/uruk-hai.gif b/gemp-lotr/gemp-lotr-web/src/main/webapp/images/cultures/uruk-hai.gif new file mode 100644 index 0000000000000000000000000000000000000000..1dd3d081f1ed554ee2ebd6aecb91e7e077bd69ce GIT binary patch literal 162 zcmV;T0A2q_Nk%w1VGjTe0D}Mk1Ox;jA{{d{E<{B>PESW)U|3{kT6cMGg@=2Ql8Bz5 zm8Ywmu(7DX!ngkZ{{R2~A^8LY000jFEC2ui01p5S000C}@JY!MN^RPB#8ChY0JA_t!Pp#8qYdjrFcCJA1K{v*420OnVk;M1%3}B%6lZBaqftNuC!~>bZz>>XT>!uW`G=-f#IqZR+YymagjUkJUm^}Sy z^wN6IBqNrlPlhdR>pm%Q@H9F;-WnjrqU@%yu;Ru#9SpWO4v~_*GXRJ4mK4&CzQbLEmAcHjkZYV{U literal 0 HcmV?d00001 diff --git a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/deckBuildingUi.js b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/deckBuildingUi.js index 7cffdd2a1..30cd021d6 100644 --- a/gemp-lotr/gemp-lotr-web/src/main/webapp/js/deckBuildingUi.js +++ b/gemp-lotr/gemp-lotr-web/src/main/webapp/js/deckBuildingUi.js @@ -1,4 +1,7 @@ var GempLotrDeckBuildingUI = Class.extend({ + comm: null, + + collectionType: "default", deckDiv: null, ringBearerDiv: null, ringBearerGroup: null, @@ -11,53 +14,103 @@ var GempLotrDeckBuildingUI = Class.extend({ normalCollectionGroup: null, specialCollectionDiv: null, specialCollectionGroup: null, - loadCollectionFunc: null, - saveDeckFunc: null, selectionFunc: null, + pageDiv: null, filterDiv: null, drawDeckDiv: null, drawDeckGroup: null, start: 0, count: 18, + filter: null, init: function() { var that = this; + this.filter = "cardType:-SITE,THE_ONE_RING"; + + this.comm = new GempLotrCommunication("/gemp-lotr/server", that.processError); + this.deckDiv = $("#deckDiv"); this.collectionDiv = $("#collectionDiv"); + this.pageDiv = $("
"); + this.pageDiv.append(""); + this.pageDiv.append(""); + this.pageDiv.append("
"); + this.collectionDiv.append(this.pageDiv); + this.filterDiv = $("
"); - this.filterDiv.append(""); - this.filterDiv.append(""); + + this.filterDiv.append("
" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "" + + "
"); + this.collectionDiv.append(this.filterDiv); + $("#culture").buttonset(); + + $("#labelDWARVEN,#labelELVEN,#labelGANDALF,#labelGONDOR,#labelSHIRE,#labelISENGARD,#labelMORIA,#labelSAURON,#labelWRAITH").click( + function() { + that.filter = that.calculateNormalFilter(); + that.start = 0; + that.getCollection(); + return true; + }); + + $("#countSlider").slider({ + value:18, + min: 4, + max: 40, + step: 1, + disabled: true, + slide: function(event, ui) { + that.start = 0; + that.count = ui.value; + that.getCollection(); + } + }); + $("#previousPage").button({ text: false, icons: { primary: "ui-icon-circle-triangle-w" - } + }, + disabled: true }).click( function() { $("#previousPage").button("option", "disabled", true); $("#nextPage").button("option", "disabled", true); + $("#countSlider").button("option", "disabled", true); $(".card", that.normalCollectionDiv).remove(); + $(".card", that.specialCollectionDiv).remove(); that.start -= that.count; - that.loadCollectionFunc("default", "cardType:-SITE,THE_ONE_RING", that.start, that.count); + that.getCollection(); }); $("#nextPage").button({ text: false, icons: { primary: "ui-icon-circle-triangle-e" - } + }, + disabled: true }).click( function() { $("#previousPage").button("option", "disabled", true); $("#nextPage").button("option", "disabled", true); + $("#countSlider").button("option", "disabled", true); $(".card", that.normalCollectionDiv).remove(); + $(".card", that.specialCollectionDiv).remove(); that.start += that.count; - that.loadCollectionFunc("default", "cardType:-SITE,THE_ONE_RING", that.start, that.count); + that.getCollection(); }); this.normalCollectionDiv = $("
"); @@ -78,8 +131,8 @@ var GempLotrDeckBuildingUI = Class.extend({ this.ringBearerDiv = $("
Ring Bearer
"); this.ringBearerDiv.click( function() { - $(".card", that.ringBearerDiv).remove(); - that.showPredefinedFilter("keyword:RING_BEARER", that.ringBearerDiv); + if ($(".card", this.ringBearerDiv).length == 0) + that.showPredefinedFilter("keyword:RING_BEARER", that.ringBearerDiv); }); this.ringBearerGroup = new NormalCardGroup(this.ringBearerDiv, function(card) { return true; @@ -89,8 +142,8 @@ var GempLotrDeckBuildingUI = Class.extend({ this.ringDiv = $("
Ring
"); this.ringDiv.click( function() { - $(".card", that.ringDiv).remove(); - that.showPredefinedFilter("cardType:THE_ONE_RING", that.ringDiv); + if ($(".card", this.ringDiv).length == 0) + that.showPredefinedFilter("cardType:THE_ONE_RING", that.ringDiv); }); this.ringGroup = new NormalCardGroup(this.ringDiv, function(card) { return true; @@ -104,8 +157,8 @@ var GempLotrDeckBuildingUI = Class.extend({ siteDiv.click( (function (siteNumber, container) { return function() { - $(".card", container).remove(); - that.showPredefinedFilter("cardType:SITE siteNumber:" + siteNumber, container); + if ($(".card", container).length == 0) + that.showPredefinedFilter("cardType:SITE siteNumber:" + siteNumber, container); }; })(i, siteDiv)); this.deckDiv.append(siteDiv); @@ -141,17 +194,52 @@ var GempLotrDeckBuildingUI = Class.extend({ var selectedCardElem = tar.parent(); if (event.which == 1) { if (event.shiftKey) { - // that.displayCardInfo(selectedCardElem.data("card")); + that.displayCardInfo(selectedCardElem.data("card")); } else if (selectedCardElem.hasClass("cardInCollection")) { that.selectionFunc(selectedCardElem.data("card").blueprintId); } else if (selectedCardElem.hasClass("cardInDeck")) { that.removeCardFromDeck(selectedCardElem); } + return false; } } } return false; }); + + this.infoDialog = $("
") + .dialog({ + autoOpen: false, + closeOnEscape: true, + resizable: true, + title: "Card information", + minHeight: 80, + minWidth: 200, + width: 600, + height: 300 + }); + + var swipeOptions = { + threshold: 20, + swipeUp: function (event) { + that.infoDialog.prop({ scrollTop: that.infoDialog.prop("scrollHeight") }); + return false; + }, + swipeDown: function (event) { + that.infoDialog.prop({ scrollTop: 0 }); + return false; + } + }; + this.infoDialog.swipe(swipeOptions); + + this.comm.getDeck("default", function(xml) { + that.setupDeck(xml); + }); + }, + + displayCardInfo: function(card) { + this.infoDialog.html("
"); + this.infoDialog.dialog("open"); }, saveDeck: function() { @@ -189,7 +277,9 @@ var GempLotrDeckBuildingUI = Class.extend({ cards.push($(this).data("card").blueprintId); }); - this.saveDeckFunc("default", "" + cards); + this.comm.saveDeck("default", "" + cards, function(xml) { + alert("Deck was saved"); + }); } }, @@ -206,16 +296,41 @@ var GempLotrDeckBuildingUI = Class.extend({ this.normalCollectionDiv.hide(); this.filterDiv.hide(); this.specialCollectionDiv.show(); - this.loadCollectionFunc("default", filter, 0, 18); + + this.filter = filter; + this.start = 0; + this.getCollection(); this.selectionFunc = function(blueprintId) { - this.addCardToContainer(blueprintId, "special", container); - this.specialCollectionDiv.hide(); - this.normalCollectionDiv.show(); - this.filterDiv.show(); - this.selectionFunc = this.addCardToDeck; + var cardDiv = this.addCardToContainer(blueprintId, "special", container); + cardDiv.addClass("cardInDeck"); + this.showNormalFilter(); }; }, + showNormalFilter: function() { + this.specialCollectionDiv.hide(); + this.normalCollectionDiv.show(); + this.filterDiv.show(); + + this.filter = this.calculateNormalFilter(); + this.start = 0; + this.getCollection(); + this.selectionFunc = this.addCardToDeck; + }, + + calculateNormalFilter: function() { + var cultures = new Array(); + $("label", $("#culture")).each( + function() { + if ($(this).hasClass("ui-state-active")) + cultures.push($(this).prop("id").substring(5)); + }); + if (cultures.length > 0) + return "cardType:-SITE,THE_ONE_RING culture:" + cultures; + else + return "cardType:-SITE,THE_ONE_RING"; + }, + addCardToDeck: function(blueprintId) { var that = this; var added = false; @@ -246,12 +361,11 @@ var GempLotrDeckBuildingUI = Class.extend({ this.layoutUI(); }, - setLoadCollectionFunc: function(func) { - this.loadCollectionFunc = func; - }, - - setSaveDeckFunc: function(func) { - this.saveDeckFunc = func; + getCollection: function() { + var that = this; + this.comm.getCollection(this.collectionType, this.filter, this.start, this.count, function(xml) { + that.displayCollection(xml); + }); }, setupDeck: function(xml) { @@ -259,11 +373,11 @@ var GempLotrDeckBuildingUI = Class.extend({ if (root.tagName == "deck") { var ringBearer = root.getElementsByTagName("ringBearer"); if (ringBearer.length == 1) { - this.addCardToContainer(ringBearer[0].getAttribute("blueprintId"), "deck", this.ringBearerDiv); - this.addCardToContainer(root.getElementsByTagName("ring")[0].getAttribute("blueprintId"), "deck", this.ringDiv); + this.addCardToContainer(ringBearer[0].getAttribute("blueprintId"), "deck", this.ringBearerDiv).addClass("cardInDeck"); + this.addCardToContainer(root.getElementsByTagName("ring")[0].getAttribute("blueprintId"), "deck", this.ringDiv).addClass("cardInDeck"); var sites = root.getElementsByTagName("site"); for (var i = 0; i < 9; i++) - this.addCardToContainer(sites[i].getAttribute("blueprintId"), "deck", this.siteDivs[i]); + this.addCardToContainer(sites[i].getAttribute("blueprintId"), "deck", this.siteDivs[i]).addClass("cardInDeck"); var cards = root.getElementsByTagName("card"); for (var i = 0; i < cards.length; i++) @@ -272,7 +386,7 @@ var GempLotrDeckBuildingUI = Class.extend({ this.layoutUI(); } - this.loadCollectionFunc("default", "cardType:-SITE,THE_ONE_RING", this.start, this.count); + this.getCollection(); } }, @@ -304,11 +418,10 @@ var GempLotrDeckBuildingUI = Class.extend({ this.normalCollectionGroup.layoutCards(); this.specialCollectionGroup.layoutCards(); - if (this.normalCollectionDiv.is(":visible")) { - $("#previousPage").button("option", "disabled", this.start == 0); - var cnt = parseInt(root.getAttribute("count")); - $("#nextPage").button("option", "disabled", (this.start + this.count) >= cnt); - } + $("#previousPage").button("option", "disabled", this.start == 0); + var cnt = parseInt(root.getAttribute("count")); + $("#nextPage").button("option", "disabled", (this.start + this.count) >= cnt); + $("#countSlider").slider("option", "disabled", false); } }, @@ -341,11 +454,12 @@ var GempLotrDeckBuildingUI = Class.extend({ this.bottomBarDiv.css({ position: "absolute", left: sitesWidth * 2, top: deckHeight - 50, width: deckWidth - sitesWidth * 2, height: 50 }); - this.normalCollectionDiv.css({ position: "absolute", left: padding, top: 50, width: collectionWidth - padding * 2, height: collectionHeight - 50 }); - this.filterDiv.css({ position: "absolute", left: padding, top: 0, width: collectionWidth - padding, height: 50 }); - this.specialCollectionDiv.css({ position: "absolute", left: padding, top: 0, width: collectionWidth - padding * 2, height: collectionHeight }); + this.filterDiv.css({ position: "absolute", left: padding, top: 50, width: collectionWidth - padding, height: 50 }); + this.normalCollectionDiv.css({ position: "absolute", left: padding, top: 100, width: collectionWidth - padding * 2, height: collectionHeight - 100 }); + this.pageDiv.css({ position: "absolute", left: padding, top: 0, width: collectionWidth - padding, height: 50 }); + this.specialCollectionDiv.css({ position: "absolute", left: padding, top: 50, width: collectionWidth - padding * 2, height: collectionHeight - 50 }); - this.normalCollectionGroup.setBounds(0, 0, collectionWidth - padding * 2, collectionHeight - 50); + this.normalCollectionGroup.setBounds(0, 0, collectionWidth - padding * 2, collectionHeight - 100); this.specialCollectionGroup.setBounds(0, 0, collectionWidth - padding * 2, collectionHeight); },