diff --git a/plugins/portal-counts.user.js b/plugins/portal-counts.user.js new file mode 100644 index 00000000..fe8387b3 --- /dev/null +++ b/plugins/portal-counts.user.js @@ -0,0 +1,139 @@ +// ==UserScript== +// @id iitc-plugin-portals-count@yenky +// @name IITC plugin: Show total counts of portals +// @version 0.0.6.@@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 ! |