Last active
December 11, 2015 20:29
-
-
Save cabron/4656106 to your computer and use it in GitHub Desktop.
ME3 Manifest Percentages and Character Builds
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name ME3 Manifest Percentages | |
// @namespace frostwyrm | |
// @include http://social.bioware.com/n7hq/home/inventory/?name=*&platform=* | |
// @include http://social.bioware.com/n7hq/home/characters/?name=*&platform=* | |
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js | |
// ==/UserScript== | |
var percentageize = function (type) { | |
var denom = 0; | |
var num = 0; | |
var totaldenom = 0; | |
var totalnum = 0; | |
$($('#' + type + '_content').children().get().reverse()).each(function(index, elem) { | |
if ($(elem).is("div.card")) { | |
var src = $($(elem).children().get()[2]).attr('src'); | |
var frac = src.substring(src.lastIndexOf('/') + 1).split('.png')[0]; | |
num += parseInt(frac.split('-')[1]); | |
denom += parseInt(frac.split('-')[0]); | |
} | |
else if ($(elem).is('h3')) { | |
var percentage = ''; | |
if (num == denom) { | |
percentage = '100%'; | |
} | |
else { | |
percentage = String((num / denom).toFixed(2)).substring(2) + '%'; | |
} | |
$(elem).html($(elem).html() + ' (' + num + '/' + denom + ') (' + percentage + ')'); | |
totalnum += num; | |
totaldenom += denom; | |
num = 0; | |
denom = 0; | |
} | |
}); | |
var percentage = ''; | |
if (totalnum == totaldenom) { | |
percentage = '100%'; | |
} | |
else { | |
percentage = String((totalnum / totaldenom).toFixed(2)).substring(2) + '%'; | |
} | |
$('#' + type + ' a span').html($('#' + type + ' a span').html() + ' (' + totalnum + '/' + totaldenom + ') (' + percentage + ')'); | |
} | |
var classes = { | |
AdeptN7: 'Adept/NFury', | |
AdeptVolus: 'Adept/Volus', | |
AdeptKrogan: 'Adept/KroganShaman', | |
AdeptHumanMaleCerberus: 'Adept/ExCerberus', | |
AdeptAsariCommando: 'Adept/AsariJusticar', | |
AdeptDrell: 'Adept/Drell', | |
AdeptAsari: 'Adept/Asari', | |
AdeptBatarian: 'Adept/BatarianSlasher', | |
AdeptHumanFemale: 'Adept/Human', | |
AdeptHumanMale: 'Adept/Human', | |
SoldierVorcha: 'Soldier/Vorcha', | |
SoldierN7: 'Soldier/N7Destroyer', | |
SoldierHumanMale: 'Soldier/Human', | |
SoldierBatarian: 'Soldier/Batarian', | |
SoldierTurian: 'Soldier/Turian', | |
SoldierKrogan: 'Soldier/Krogan', | |
N7SoldierTurian: 'Soldier/TurianHavoc', | |
SoldierMQuarian: 'Soldier/QuarianMarksman', | |
SoldierGeth: 'Soldier/GethTrooper', | |
SoldierHumanFemale: 'Soldier/Human', | |
SoldierHumanMaleBF3: 'Soldier/Battlefield', | |
EngineerN7: 'Engineer/NDemolisher', | |
EngineerVolus: 'Engineer/Volus', | |
EngineerHumanMale: 'Engineer/Human', | |
EngineerGeth: 'Engineer/Geth', | |
EngineerHumanFemale: 'Engineer/Human', | |
EngineerSalarian: 'Engineer/Salarian', | |
EngineerQuarian: 'Engineer/Quarian', | |
EngineerVorcha: 'Engineer/Vorcha Hunter', | |
EngineerTurian: 'Engineer/TurianSaboteur', | |
EngineerQuarianMale: 'Engineer/QuarianMale', | |
SentinelN7: 'Sentinel/NPaladin', | |
SentinelVolus: 'Sentinel/VolusMercenary', | |
SentinelAsari: 'Sentinel/AsariValkyrie', | |
SentinelVorcha: 'Sentinel/Vorcha', | |
SentinelBatarian: 'Sentinel/Batarian', | |
SentinelTurian: 'Sentinel/Turian', | |
SentinelKrogan: 'Sentinel/Krogan', | |
SentinelHumanFemale: 'Sentinel/Human', | |
SentinelHumanMale: 'Sentinel/Human', | |
InfiltratorQuarianMale: 'Infiltrator/QuarianMale', | |
InfiltratorHumanMale: 'Infiltrator/Human', | |
InfiltratorGeth: 'Infiltrator/Geth', | |
InfiltratorHumanFemale: 'Infiltrator/Human', | |
InfiltratorSalarian: 'Infiltrator/Salarian', | |
InfiltratorAsari: 'Infiltrator/AsariHuntress', | |
InfiltratorDrell: 'Infiltrator/DrellAssassin', | |
InfiltratorN7: 'Infiltrator/NShadow', | |
N7InfiltratorTurian: 'Infiltrator/TurianGhost', | |
InfiltratorQuarian: 'Infiltrator/Quarian', | |
VanguardHumanMaleCerberus: 'Vanguard/ExCerberus', | |
VanguardN7: 'Vanguard/NSlayer', | |
VanguardHumanMale: 'Vanguard/Human', | |
VanguardKrogan: 'Vanguard/KroganBattlemaster', | |
VanguardDrell: 'Vanguard/Drell', | |
VanguardBatarian: 'Vanguard/BatarianBrawler', | |
VanguardVolus: 'Vanguard/VolusProtector', | |
VanguardHumanFemale: 'Vanguard/Human', | |
VanguardAsari: 'Vanguard/Asari', | |
} | |
function make_build(_, character) { | |
var char_class = character.id.slice(15); | |
if($('#'+char_class).hasClass('.mpDisable')) | |
return; | |
var powers = $(character).children('.statstree').map(function(i, tree) { | |
var active = $(tree).find('.poweritem').map(function(j, poweritem) { return $(poweritem).hasClass('poweractive'); }); | |
if(active[7] || active[8]) { | |
return('KLMNOPQR'[(active[8] ? 1:0) + (active[6] ? 2:0) + (active[4] ? 4:0)]); | |
} | |
else if(active[5] || active[6]) { | |
return('GHIJ'[(active[6] ? 1:0) + (active[4] ? 2:0)]); | |
} | |
else if(active[3] || active[4]) { | |
return(active[3] ? 'E':'F'); | |
} | |
else { | |
return('ABCD'[active[2] ? 3 : active[1] ? 2 : active[0] ? 1 : 0]); | |
} | |
}) | |
var build_class = classes[char_class]; | |
var build = powers.get().join(''); | |
var href = 'http://narida.pytalhost.com/me3/classes/#'+build_class+'/'+build+'//////' | |
$(character).find('.briefinfo').append($('<a>Build link</a>').attr('href', href)); | |
} | |
$(document).ready(function () { | |
if(location.pathname.indexOf('/characters') > -1) { | |
$(".characterStats").each(make_build); | |
} | |
else { | |
percentageize('weapons'); | |
percentageize('weapon_mods'); | |
percentageize('inventory_characters'); | |
percentageize('gear'); | |
} | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment