Files
external-tools-frontend/_assets/js/toe.js
Codrin Pavel 2eb032192e Relative paths
2020-05-23 07:33:10 +03:00

103 lines
2.7 KiB
JavaScript

$(function(){
var toe = new Vue({
el: '#toe',
data: {
only_selected: true,
filters: 'any',
titans: [
'4000', '4001', '4002', '4003',
'4010', '4011', '4012', '4013',
'4020', '4021', '4022', '4023'
],
selectedTitans: [],
matches: []
},
methods: {
getEnemyTeam: function (team) {
var titans = '';
for (titan in team) titans += titan;
return titans;
},
getSelectedTitans: function () {
var titans = '';
var selectedTeam = this.sortedSelectedTitans;
for (titan in selectedTeam) titans += selectedTeam[titan];
return titans;
}
},
computed: {
sortedSelectedTitans: function () {
return this.selectedTitans.sort();
},
filteredMatches: function () {
var t = this;
var aFilteredMatches = t.matches.filter(function (match) {
return (
t.only_selected === false &&
(
(t.filters == 'any' && match.enemypower < 1000000) ||
(t.filters == 'only_lords' && match.enemypower > 1000000) ||
(t.filters == 'only_gt_600k' && match.enemypower > 600000 && match.enemypower < 1000000) ||
(t.filters == 'misses' && match.enemypower < 1000000 && match.defenceScoreEarned < 50)
)
||
t.only_selected === true && t.getSelectedTitans() == t.getEnemyTeam(match.defBattle.attackers) &&
(
(t.filters == 'any' && match.enemypower < 1000000) ||
((t.filters == 'only_lords') && (match.enemypower > 1000000)) ||
((t.filters == 'only_gt_600k') && (match.enemypower > 600000) && (match.enemypower < 1000000)) ||
((t.filters == 'misses') && match.enemypower < 1000000 && (match.defenceScoreEarned < 50))
)
)
});
var orderedMatches = aFilteredMatches.sort(function(a, b) {
return b.enemypower - a.enemypower;
});
return orderedMatches;
}
}
});
function getData(fileindex) {
var nextfile = fileindex + 1;
$.get('../toe/' + fileindex + '.json', function (data) {
var matches = data.results[0].result.response.results;
for (match in matches) {
var thisMatch = matches[match];
// add enemy total power to match data
var power = 0;
var attackerTeam = thisMatch.defBattle.attackers;
for (titan in attackerTeam) {
power += attackerTeam[titan].power;
}
matches[match].enemypower = power;
toe.matches.push(matches[match]);
}
})
.done(function () {
getData(nextfile);
$('.loadingbar').css({
'width': fileindex + '%'
});
})
.fail(function () {
$('.loadingbar').css('width', '100%').delay(150).fadeOut(150);
});
}
if ($('#toe').length) {
getData(1);
}
});