From 1fcbf0b99632caa2616a518f5e9944244eea218c Mon Sep 17 00:00:00 2001 From: devfake <devfakeplus@googlemail.com> Date: Wed, 24 Jun 2015 20:34:35 +0200 Subject: [PATCH] deck view --- assets/data/deck.js | 1 + .../deck-builder/components/deck-builder.js | 33 ++++- .../deck-builder/views/deck-builder.html | 120 +++++++++++++++++- site/client/assets/sass/_base.scss | 2 +- site/client/assets/sass/_shame_cards.scss | 19 +++ 5 files changed, 160 insertions(+), 15 deletions(-) diff --git a/assets/data/deck.js b/assets/data/deck.js index 27a979d..54a3866 100644 --- a/assets/data/deck.js +++ b/assets/data/deck.js @@ -1,6 +1,7 @@ module.exports = { "northern_realm": [ + "redanian_foot_soldier", "redanian_foot_soldier", "poor_fucking_infantry", "redanian_foot_soldier", 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 fa2244b..6f36998 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, @@ -18,12 +18,8 @@ module.exports = { }, ready: function() { - // filter over leaders and store them separately. - this.cards = $.map(cards, (n) => { - if(n.type != 3) return n; - - this.leaders.push(n); - }); + this.initCards(); + this.initDeck(); }, methods: { @@ -31,11 +27,34 @@ module.exports = { // todo: load animation $('.all-cards').addClass('remove'); this.factionFilter = deck; + this.initDeck(); $('.all-cards').scrollTop(0); setTimeout(function() { $('.all-cards').removeClass('remove'); }, 500); + }, + + // Filter for leaders and store them separately. + initCards: function() { + this.cards = $.map(cards, (n) => { + if(n.type != 3) return n; + + this.leaders.push(n); + }); + }, + + initDeck: function() { + this.deck = {}; + + deck[this.factionFilter].forEach((x) => { + this.deck[x] = (this.deck[x] || 0) + 1; + }); + }, + + // test + removeCard: function(el) { + } } }; \ No newline at end of file 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 d1d73a8..e63f0e3 100644 --- a/site/client/app/modules/deck-builder/views/deck-builder.html +++ b/site/client/app/modules/deck-builder/views/deck-builder.html @@ -1,7 +1,13 @@ <div class="heading"> - <a v-class="active: factionFilter == 'northern_realm'" v-on="click: changeDeck('northern_realm')">Northern Realm</a> - <a v-class="active: factionFilter == 'scoiatael'" v-on="click: changeDeck('scoiatael')">Scoia'tael</a> - <a v-class="active: factionFilter == 'monster'" v-on="click: changeDeck('monster')">Monster</a> + <div class="heading-decks"> + <a v-class="active: factionFilter == 'northern_realm'" v-on="click: changeDeck('northern_realm')">Northern Realm</a> + <a v-class="active: factionFilter == 'scoiatael'" v-on="click: changeDeck('scoiatael')">Scoia'tael</a> + <a v-class="active: factionFilter == 'monster'" v-on="click: changeDeck('monster')">Monster</a> + </div> + + <div class="heading-my-deck"> + <span>My Deck</span> + </div> </div> <div class="all-cards-wrap"> @@ -20,8 +26,111 @@ </div> </div> +<div class="all-deck-wrap"> + <div class="all-deck"> + + <div class="clear-space"></div> + + <div class="my-card" v-repeat="deck"> + <div class="images"> + <div + v-repeat="$value" + class="img-small" v-style="background-image: 'url(http://80.240.132.120/gwent/assets/cards/medic.png)'"></div> + </div> + <div class="sep">{{ $value }}x Blue Stripes Commando<br> + <span> + Power: 5 (Close Combat) + </span> + <em class="delete" v-on="click: removeCard($key)">Delete</em> + </div> + </div> + + <div class="clear-space"></div> + + </div> +</div> + <style> + .delete { + float: left; + clear: both; + font-style: normal; + } + + .images { + position: relative; + width: 50px; + height: 94px; + float: left; + } + + .img-small { + float: left; + background-size: 50px 94px; + width: 50px; + height: 94px; + position: absolute; + z-index: 100; + } + + .img-small:nth-child(2) { + top: 3px; + z-index: 99; + right: -3px; + opacity: .5; + } + + .img-small:nth-child(3) { + top: 6px; + z-index: 98; + right: -6px; + opacity: .5; + } + + .my-card { + color: #c3cdd8; + float: left; + width: 50%; + margin: 0 0 20px 0; + } + + .all-deck i { + color: #435365; + font-style: normal; + float: left; + font-size: 20px; + margin: 8px 0 0 0; + } + + .sep { + float: left; + margin: 0 0 0 20px; + width: calc(100% - 100px); + } + + .all-deck span { + color: #435365; + font-size: 14px; + float: left; + } + + .all-deck-wrap { + width: 47%; + overflow: hidden; + float: right; + height: calc(100% + 40px); + padding: 0 20px; + margin: -80px 0 0 0; + } + + .all-deck { + float: left; + width: calc(100% + 50px); + height: 100%; + overflow-y: auto; + } + .shadow-all-cards { height: 60px; float: left; @@ -35,13 +144,10 @@ .test { float: left; overflow: hidden; + width: 100%;; } .remove { opacity: 0; } - - .load-deck { - - } </style> \ No newline at end of file diff --git a/site/client/assets/sass/_base.scss b/site/client/assets/sass/_base.scss index d14a489..507e8cd 100644 --- a/site/client/assets/sass/_base.scss +++ b/site/client/assets/sass/_base.scss @@ -10,7 +10,7 @@ body { body { width: 100%; - min-width: 1000px; + min-width: 1200px; overflow: hidden; font-family: 'Titillium Web', sans-serif; } diff --git a/site/client/assets/sass/_shame_cards.scss b/site/client/assets/sass/_shame_cards.scss index 8578306..9685f76 100644 --- a/site/client/assets/sass/_shame_cards.scss +++ b/site/client/assets/sass/_shame_cards.scss @@ -219,6 +219,24 @@ background: linear-gradient(to bottom, rgba(8,13,20,1) 0%,rgba(8,13,20,1) 36%,rgba(8,13,20,0.85) 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#080d14', endColorstr='#d9080d14',GradientType=0 ); + .heading-decks { + float: left; + width: 53%; + } + + .heading-my-deck { + float: left; + width: 47%; + } + + span { + float: left; + font-size: 17px; + color: #435365; + font-weight: 600; + margin: 0 0 0 20px; + } + a { font-size: 17px; color: #435365; @@ -229,6 +247,7 @@ &.active { color: #c3cdd8; } + } }