make portal mod display much more generic. should handle all the new mods, and likely to handle any future mods too

for #373
This commit is contained in:
Jon Atkins 2013-06-12 16:15:52 +01:00
parent 20ce15d126
commit 2f427ce26b

View File

@ -30,29 +30,49 @@ window.getModDetails = function(d) {
var modsTitle = []; var modsTitle = [];
var modsColor = []; var modsColor = [];
$.each(d.portalV2.linkedModArray, function(ind, mod) { $.each(d.portalV2.linkedModArray, function(ind, mod) {
if(!mod) { var modName = '';
mods.push(''); var modTooltip = '';
modsTitle.push(''); var modColor = '#000';
modsColor.push('#000');
} else if(mod.type === 'RES_SHIELD') {
var title = mod.rarity.capitalize() + ' ' + mod.displayName + '\n'; if (mod) {
title += 'Installed by: '+ getPlayerName(mod.installingUser); // all mods seem to follow the same pattern for the data structure
// but let's try and make this robust enough to handle possible future differences
title += '\nStats:'; if (mod.displayName) {
modName = mod.displayName;
} else if (mod.type) {
modName = mod.type;
} else {
modName = '(unknown mod)';
}
if (mod.rarity) {
modName = mod.rarity.capitalize().replace(/_/g,' ') + ' ' + modName;
}
modTooltip = modName + '\n';
if (mod.installingUser) {
modTooltip += 'Installed by: '+ getPlayerName(mod.installingUser) + '\n';
}
if (mod.stats) {
modTooltip += 'Stats:';
for (var key in mod.stats) { for (var key in mod.stats) {
if (!mod.stats.hasOwnProperty(key)) continue; if (!mod.stats.hasOwnProperty(key)) continue;
title += '\n+' + mod.stats[key] + ' ' + key.capitalize().replace(/_/g,' '); modTooltip += '\n+' + mod.stats[key] + ' ' + key.capitalize().replace(/_/g,' ');
}
} }
mods.push(mod.rarity.capitalize().replace('_', ' ') + ' ' + mod.displayName); if (mod.rarity) {
modsTitle.push(title); modColor = COLORS_MOD[mod.rarity];
modsColor.push(COLORS_MOD[mod.rarity]);
} else { } else {
mods.push(mod.type); modColor = '#fff';
modsTitle.push('Unknown mod. No further details available.');
modsColor.push('#FFF');
} }
}
mods.push(modName);
modsTitle.push(modTooltip);
modsColor.push(modColor);
}); });
var t = '<span'+(modsTitle[0].length ? ' title="'+modsTitle[0]+'"' : '')+' style="color:'+modsColor[0]+'">'+mods[0]+'</span>' var t = '<span'+(modsTitle[0].length ? ' title="'+modsTitle[0]+'"' : '')+' style="color:'+modsColor[0]+'">'+mods[0]+'</span>'