151 lines
3.2 KiB
JavaScript
151 lines
3.2 KiB
JavaScript
/*
|
|
* Adds more data to the mapData object
|
|
* so it's easier to print out information
|
|
* such as buildings/location and total power
|
|
*/
|
|
function enhanceMap( slots ) {
|
|
for (var index in slots) {
|
|
//console.log(slots[index])
|
|
var teamSlot = slots[index];
|
|
|
|
if(teamSlot.status == 'empty' || teamSlot.user == null) {
|
|
teamSlot['user'] = {
|
|
"name" : 'Empty'
|
|
}
|
|
}
|
|
|
|
// Add the name and type of building for this team
|
|
var mapSlot = mapSlots[index - 1];
|
|
|
|
teamSlot['location'] = {
|
|
"name" : mapSlot.name,
|
|
"type" : mapSlot.type
|
|
}
|
|
|
|
// Add the total amount of team power
|
|
var power = 0;
|
|
for (var teamMember in teamSlot.team[0]) {
|
|
power += teamSlot.team[0][teamMember].power;
|
|
}
|
|
teamSlot['power'] = power;
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
* Compares team power (used to order teams by power)
|
|
*/
|
|
function compare(a, b) {
|
|
var genreA = a.power;
|
|
var genreB = b.power;
|
|
var comparison = 0;
|
|
|
|
if (genreA > genreB) {
|
|
comparison = -1;
|
|
} else if (genreA < genreB) {
|
|
comparison = 1;
|
|
}
|
|
return comparison;
|
|
}
|
|
|
|
|
|
/*
|
|
* Order teams by power level
|
|
*/
|
|
function orderByPower(teamSlots) {
|
|
var teamArray = [];
|
|
|
|
for(var key in teamSlots) {
|
|
teamArray.push(teamSlots[key])
|
|
}
|
|
|
|
return teamArray.sort(compare);
|
|
}
|
|
|
|
|
|
/*
|
|
* Determines which player team has more power: titan or hero.
|
|
* Adds a CSS class to each of the better .ally-hero teams
|
|
*/
|
|
function determineBestTeam(guild) {
|
|
$.each($('body').find('.js-'+ guild +'-hero'), function () {
|
|
var $t = $(this);
|
|
var id = $t.attr('data-id');
|
|
var heroPower = parseInt( $t.attr('data-power') );
|
|
var $titanTeam = $('.js-'+ guild +'-titan[data-id="'+ id +'"]');
|
|
var titanPower = parseInt( $titanTeam.attr('data-power') );
|
|
var className = 'best-team';
|
|
|
|
if (heroPower > titanPower) {
|
|
$t.addClass(className);
|
|
$titanTeam.removeClass(className);
|
|
} else {
|
|
$titanTeam.addClass(className);
|
|
$t.removeClass(className);
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
/*
|
|
* Sync checkboxes between hero/titan teams of the same player
|
|
*/
|
|
function syncCheckboxes() {
|
|
$('input[type="checkbox"]').on('change', function() {
|
|
var $t = $(this),
|
|
checkName = $t.attr('name'),
|
|
playerID = $t.parent().attr('data-id');
|
|
|
|
$('[data-id="'+ playerID +'"]')
|
|
.find('input[name="'+ checkName +'"]')
|
|
.prop('checked', $t.is(':checked'));
|
|
});
|
|
}
|
|
|
|
|
|
/*
|
|
* Visual aid to help find the corresponding hero/titan team
|
|
* when the other one is hovered
|
|
*/
|
|
function highlightHovered() {
|
|
$('.team').on({
|
|
'mouseenter': function () {
|
|
var $t = $(this),
|
|
id = $t.attr('data-id');
|
|
$('.team[data-id="'+ id +'"]').addClass('is--hover');
|
|
},
|
|
'mouseleave': function () {
|
|
var $t = $(this),
|
|
id = $t.attr('data-id');
|
|
$('.team[data-id="'+ id +'"]').removeClass('is--hover');
|
|
}
|
|
})
|
|
}
|
|
|
|
function getTotalPower(guild) {
|
|
var heroPower = 0;
|
|
var titanPower = 0;
|
|
var totalPower = 0;
|
|
var data = guild; //this.map.ourSlots;
|
|
|
|
for (var i in data) {
|
|
var member = data[i];
|
|
|
|
if( member.location.type == "Hero" ) {
|
|
heroPower += member.power;
|
|
} else {
|
|
titanPower += member.power;
|
|
}
|
|
|
|
totalPower += member.power;
|
|
}
|
|
|
|
return {
|
|
"heroPower" : heroPower,
|
|
"titanPower" : titanPower,
|
|
"totalPower": totalPower
|
|
};
|
|
}
|
|
|
|
|