1
0
mirror of https://github.com/exane/not-gwent-online synced 2024-10-31 10:36:53 +00:00
not-gwent-online/site/client/app/modules/deck-builder/components/deck-builder.js
2015-06-25 19:07:52 +02:00

81 lines
1.7 KiB
JavaScript

var cards = require("../../../../../../assets/data/cards");
var deck = require("../../../../../../assets/data/deck");
module.exports = {
template: require('../views/deck-builder.html'),
data: function() {
return {
cards: [],
deck: [],
allLeaders: [],
myLeaders: [],
factionFilter: 'northern_realm',
modalLeader: false
}
},
components: {
showleaders: require('./show-leaders')
},
ready: function() {
this.initCards();
this.initDeck();
},
filters: {
getType: function(c, type) {
var tmp = $.map(c, (item) => {
//if(item.type == type) return item;
if($.inArray(item.type, type) > -1) return item;
});
return tmp;
}
},
methods: {
changeDeck: function(deck) {
// todo: load animation
$('.all-cards, .all-deck').addClass('remove');
this.factionFilter = deck;
this.initDeck();
$('.all-cards, .all-deck').scrollTop(0);
setTimeout(function() {
$('.all-cards, .all-deck').removeClass('remove');
}, 500);
},
// Filter for leaders and store them separately.
initCards: function() {
this.cards = $.map(cards, (n) => {
if(n.type != 3) return n;
this.allLeaders.push(n);
});
},
initDeck: function() {
this.deck = [];
var _deck = deck[this.factionFilter];
for(var item in _deck) {
this.deck.push(cards[_deck[item]]);
}
},
showLeaders: function(currentLeader) {
this.myLeaders = $.map(this.allLeaders, (item) => {
if(item.faction == this.factionFilter) return item;
});
this.modalLeader = true;
}
}
};