// ==UserScript== // @id iitc-plugin-portals-count@yenky // @name IITC plugin: Show total counts of portals // @version 0.0.7.@@DATETIMEVERSION@@ // @namespace https://github.com/jonatkins/ingress-intel-total-conversion // @updateURL @@UPDATEURL@@ // @downloadURL @@DOWNLOADURL@@ // @description [@@BUILDNAME@@-@@BUILDDATE@@] Display a list of all localized portals by level and faction // @include https://www.ingress.com/intel* // @include http://www.ingress.com/intel* // @match https://www.ingress.com/intel* // @match http://www.ingress.com/intel* // ==/UserScript== /* whatsnew * 0.0.6 : ignoring outside bounds portals (even if close to) * 0.0.5 : changed table layout, added some colors * 0.0.4 : reverse show order of portals, using MAX_PORTAL_LEVEL now for array, changed table layout to be more compact, cleaned up code * 0.0.3 : fixed incorrect rounded portal levels, adjusted viewport * 0.0.2 : fixed counts to be reset after scrolling * 0.0.1 : initial release, show count of portals * todo : */ function wrapper() { // ensure plugin framework is there, even if iitc is not yet loaded if(typeof window.plugin !== 'function') window.plugin = function() {}; // PLUGIN START //////////////////////////////////////////////////////// // use own namespace for plugin window.plugin.portalcounts = function() {}; //count portals for each level avalaible on the map window.plugin.portalcounts.getPortals = function(){ //console.log('** getPortals'); var retval=false; var displayBounds = map.getBounds(); window.plugin.portalcounts.enlP = 0; window.plugin.portalcounts.resP = 0; window.plugin.portalcounts.neuP = 0; window.plugin.portalcounts.PortalsEnl = new Array(); window.plugin.portalcounts.PortalsRes = new Array(); for(var level = window.MAX_PORTAL_LEVEL; level > 0; level--){ window.plugin.portalcounts.PortalsEnl[level] = 0; window.plugin.portalcounts.PortalsRes[level] = 0; } $.each(window.portals, function(i, portal) { retval=true; var d = portal.options.details; var team = portal.options.team; var level = Math.floor(getPortalLevel(d)); // just count portals in viewport if(!displayBounds.contains(portal.getLatLng())) return true; switch (team){ case 1 : window.plugin.portalcounts.resP++; window.plugin.portalcounts.PortalsRes[level]++; break; case 2 : window.plugin.portalcounts.enlP++; window.plugin.portalcounts.PortalsEnl[level]++; break; default: window.plugin.portalcounts.neuP++; break; } }); //get portals informations from IITC var minlvl = getMinPortalLevel(); var counts = '
Enlightment | Resistance | |||
---|---|---|---|---|
Level '+level+' | '; if(minlvl > level) counts += 'zoom in to see portals in this level | '; else counts += ''+window.plugin.portalcounts.PortalsEnl[level]+' | '+window.plugin.portalcounts.PortalsRes[level]+' | '; counts += '|
  | ||||
Neutral: | '; if(minlvl > 0) counts += 'zoom in to see unclaimed'; else counts += window.plugin.portalcounts.neuP; counts += ' Portal(s) | |||
Enlightment: | '+window.plugin.portalcounts.enlP+' Portal(s) | |||
Resistance: | '+window.plugin.portalcounts.resP+' Portal(s) | |||
No Portals in range ! |