better deck parts splitter

This commit is contained in:
Jörn-Michael Miehe 2019-05-16 15:54:33 +02:00
parent 296ab79bd6
commit 323d6d2f35

View file

@ -24,7 +24,7 @@
</v-list> </v-list>
</v-card> </v-card>
</v-flex> </v-flex>
<v-btn fab absolute bottom right @click.native="editing = true"> <v-btn fab absolute bottom right @click.native="editing = true">
<v-icon>edit</v-icon> <v-icon>edit</v-icon>
</v-btn> </v-btn>
@ -60,34 +60,36 @@ export default {
computed: { computed: {
deck_parts() { deck_parts() {
let retval = { let retval = ['Forwards', 'Backups', 'Summons, Monsters & more'].map(
forwards: { item => ({
heading: 'Forwards', heading: item,
cards: this.deck.cards.filter(card => card.dbentry.type === 'Forward') cards: [],
}, count: 0
backups: { })
heading: 'Backups', )
cards: this.deck.cards.filter(card => card.dbentry.type === 'Backup')
},
rest: {
heading: 'Summons, Monsters & more',
cards: this.deck.cards.filter(
card =>
card.dbentry.type != 'Forward' && card.dbentry.type != 'Backup'
)
}
}
for (let i = 0; i < Object.keys(retval).length; i++) { this.deck.cards.forEach(card => {
let key = Object.keys(retval)[i] let target
retval[key].count = retval[key].cards.reduce( switch (card.dbentry.type) {
(result, card) => result + card.count, case 'Forward':
0 target = 0
) break
retval[key].cards.sort( case 'Backup':
target = 1
break
default:
target = 2
break
}
retval[target].cards.push(card)
retval[target].count += card.count
})
retval.forEach(part =>
part.cards.sort(
(card_l, card_r) => card_l.dbentry.cost - card_r.dbentry.cost (card_l, card_r) => card_l.dbentry.cost - card_r.dbentry.cost
) )
} )
return retval return retval
} }