diff --git a/site/client/app/modules/deck-builder/components/deck-builder.js b/site/client/app/modules/deck-builder/components/deck-builder.js index 6f36998..cf0bd17 100644 --- a/site/client/app/modules/deck-builder/components/deck-builder.js +++ b/site/client/app/modules/deck-builder/components/deck-builder.js @@ -8,7 +8,7 @@ module.exports = { data: function() { return { cards: [], - deck: {}, + deck: [], leaders: [], leader: null, @@ -22,6 +22,18 @@ module.exports = { this.initDeck(); }, + filters: { + getType: function(c, type) { + var tmp = $.map(c, (item) => { + if(item.type == type) return item; + }); + + return tmp; + + return c; + } + }, + methods: { changeDeck: function(deck) { // todo: load animation @@ -45,11 +57,13 @@ module.exports = { }, initDeck: function() { - this.deck = {}; + this.deck = []; + var _deck = deck[this.factionFilter]; + + for(var item in _deck) { + this.deck.push(cards[_deck[item]]); + } - deck[this.factionFilter].forEach((x) => { - this.deck[x] = (this.deck[x] || 0) + 1; - }); }, // test diff --git a/site/client/app/modules/deck-builder/views/deck-builder.html b/site/client/app/modules/deck-builder/views/deck-builder.html index c32ce10..0888485 100644 --- a/site/client/app/modules/deck-builder/views/deck-builder.html +++ b/site/client/app/modules/deck-builder/views/deck-builder.html @@ -14,7 +14,7 @@ <div class="all-cards"> <div class="clear-space"></div> - <div class="card-wrap" v-repeat="card: cards | filterBy factionFilter in faction"> + <div class="card-wrap" v-repeat="card: cards | filterBy factionFilter in faction" track-by="$index"> <div class="bla ani"></div> <div class="card-img card" v-style="background-image: 'url(http://80.240.132.120/gwent/assets/cards/' + card.img + '.png)'"></div> <div class="shadow"></div> @@ -31,12 +31,14 @@ <div class="clear-space"></div> + <!-- todo: own component --> <div class="my-card-container"> <span>LEADER</span> - <div class="card-wrap-small"> + <div class="card-wrap-small" v-repeat="item: deck | getType 3" track-by="$index"> + <div class="count-card no-select">1x</div> <div class="bla ani"></div> - <div class="card-img-small card-small-small" v-style="background-image: 'url(http://80.240.132.120/gwent/assets/cards/medic.png)'"></div> + <div class="card-img-small card-small-small" v-style="background-image: 'url(http://80.240.132.120/gwent/assets/cards/' + item.img + '.png)'"></div> <div class="shadow"></div> <div class="overlay-card"></div> </div> @@ -46,9 +48,10 @@ <div class="my-card-container"> <span>CLOSE COMBAT</span> - <div class="card-wrap-small" v-repeat="5"> + <div class="card-wrap-small" v-repeat="item: deck | getType 0" track-by="$index"> + <div class="count-card no-select">{{ c > 1 ? c + 'x' : '' }}</div> <div class="bla ani"></div> - <div class="card-img-small card-small-small" v-style="background-image: 'url(http://80.240.132.120/gwent/assets/cards/imlerith.png)'"></div> + <div class="card-img-small card-small-small" v-style="background-image: 'url(http://80.240.132.120/gwent/assets/cards/' + item.img + '.png)'"></div> <div class="shadow"></div> <div class="overlay-card"></div> </div> @@ -57,9 +60,20 @@ <div class="my-card-container"> <span>RANGE</span> - <div class="card-wrap-small" v-repeat="11"> + <div class="card-wrap-small" v-repeat="item: deck | getType 1" track-by="$index"> <div class="bla ani"></div> - <div class="card-img-small card-small-small" v-style="background-image: 'url(http://80.240.132.120/gwent/assets/cards/siege_tech.png)'"></div> + <div class="card-img-small card-small-small" v-style="background-image: 'url(http://80.240.132.120/gwent/assets/cards/' + item.img + '.png)'"></div> + <div class="shadow"></div> + <div class="overlay-card"></div> + </div> + </div> + + <div class="my-card-container"> + <span>SPECIAL</span> + + <div class="card-wrap-small" v-repeat="item: deck | getType 4" track-by="$index"> + <div class="bla ani"></div> + <div class="card-img-small card-small-small" v-style="background-image: 'url(http://80.240.132.120/gwent/assets/cards/' + item.img + '.png)'"></div> <div class="shadow"></div> <div class="overlay-card"></div> </div> @@ -68,9 +82,9 @@ <div class="my-card-container"> <span>WEATHER</span> - <div class="card-wrap-small" v-repeat="3"> + <div class="card-wrap-small" v-repeat="item: deck | getType 5" track-by="$index"> <div class="bla ani"></div> - <div class="card-img-small card-small-small" v-style="background-image: 'url(http://80.240.132.120/gwent/assets/cards/frost.png)'"></div> + <div class="card-img-small card-small-small" v-style="background-image: 'url(http://80.240.132.120/gwent/assets/cards/' + item.img + '.png)'"></div> <div class="shadow"></div> <div class="overlay-card"></div> </div> @@ -83,6 +97,19 @@ <style> + .count-card { + font-size: 22px; + color: #fff; + font-weight: bold; + position: absolute; + left: 60%; + top: 60%; + z-index: 100; + cursor: pointer; + text-shadow: 0 0 2px #000; + transform: translate(-50%, -50%); + } + .my-card-container { float: left; width: 100%; diff --git a/site/client/assets/sass/_base.scss b/site/client/assets/sass/_base.scss index 507e8cd..196a475 100644 --- a/site/client/assets/sass/_base.scss +++ b/site/client/assets/sass/_base.scss @@ -33,4 +33,8 @@ input, textarea { } a { text-decoration: none; } -ul { list-style: none; } \ No newline at end of file +ul { list-style: none; } + +.no-select { + user-select: none; +} \ No newline at end of file diff --git a/site/client/assets/sass/_shame_cards.scss b/site/client/assets/sass/_shame_cards.scss index 7562dab..6bd0b15 100644 --- a/site/client/assets/sass/_shame_cards.scss +++ b/site/client/assets/sass/_shame_cards.scss @@ -219,27 +219,12 @@ height: 100%; } -.line { - background: -moz-linear-gradient(top, rgba(64,150,238,0) 0%, rgba(58,73,96,1) 52%, rgba(64,150,238,0) 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(64,150,238,0)), color-stop(52%,rgba(58,73,96,1)), color-stop(100%,rgba(64,150,238,0))); - background: -webkit-linear-gradient(top, rgba(64,150,238,0) 0%,rgba(58,73,96,1) 52%,rgba(64,150,238,0) 100%); - background: -o-linear-gradient(top, rgba(64,150,238,0) 0%,rgba(58,73,96,1) 52%,rgba(64,150,238,0) 100%); - background: -ms-linear-gradient(top, rgba(64,150,238,0) 0%,rgba(58,73,96,1) 52%,rgba(64,150,238,0) 100%); - background: linear-gradient(to bottom, rgba(64,150,238,0) 0%,rgba(58,73,96,1) 52%,rgba(64,150,238,0) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#004096ee', endColorstr='#004096ee',GradientType=0 ); - - width: 2px; - height: 100%; - float: left; -} - .heading { float: left; width: 100%; position: relative; z-index: 1000; padding: 25px 0; - //background: rgba(#080d14, .95); background: -moz-linear-gradient(top, rgba(8,13,20,1) 0%, rgba(8,13,20,1) 36%, rgba(8,13,20,0.85) 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(8,13,20,1)), color-stop(36%,rgba(8,13,20,1)), color-stop(100%,rgba(8,13,20,0.85)));