From 8c4acfe1fd2dde2d60da1f27a5b4b8f6dbd1a8b9 Mon Sep 17 00:00:00 2001 From: Costaspap Date: Fri, 30 May 2014 00:25:11 +0300 Subject: [PATCH 01/11] added first part of dynamic-scoreboard plugin --- plugins/dynamic-scoreboard.user.js | 59 ++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 plugins/dynamic-scoreboard.user.js diff --git a/plugins/dynamic-scoreboard.user.js b/plugins/dynamic-scoreboard.user.js new file mode 100644 index 00000000..62747b44 --- /dev/null +++ b/plugins/dynamic-scoreboard.user.js @@ -0,0 +1,59 @@ +// ==UserScript== +// @id iitc-plugin-Dynamic-Scoreboard@Costaspap +// @name IITC plugin: Create a local scoreboard +// @category Info +// @version 0.1.0.20140524.214738 +// @namespace https://github.com/jonatkins/ingress-intel-total-conversion +// @updateURL https://secure.jonatkins.com/iitc/release/total-conversion-build.meta.js +// @downloadURL https://secure.jonatkins.com/iitc/release/total-conversion-build.user.js +// @include https://www.ingress.com/intel* +// @include http://www.ingress.com/intel* +// @match https://www.ingress.com/intel* +// @match http://www.ingress.com/intel* +// @grant none +// ==/UserScript== + + +// A plug in by Costaspap and harisbitsakou +function wrapper(plugin_info) { + // ensure plugin framework is there, even if iitc is not yet loaded + if(typeof window.plugin !== 'function') window.plugin = function() {}; + + //PLUGIN AUTHORS: writing a plugin outside of the IITC build environment? if so, delete these lines!! + //(leaving them in place might break the 'About IITC' page or break update checks) + plugin_info.buildName = 'jonatkins'; + plugin_info.dateTimeVersion = '20140524.214738'; + plugin_info.pluginId = 'Dynamic Scoreboard'; + //END PLUGIN AUTHORS NOTE + + // PLUGIN START // + + + + + var setup = function() { + if(window.useAndroidPanes()) { + android.addPane("plugin-Scoreboard", "Scoreboard", "ic_action_paste"); + addHook("paneChanged", window.plugin.scoreboard.onPaneChanged); + } else { + $('#toolbox').append(' Scoreboard'); + } + + } + + + // PLUGIN END ////////////////////////////////////////////////////////// + + + setup.info = plugin_info; //add the script info data to the function as a property + if(!window.bootPlugins) window.bootPlugins = []; + window.bootPlugins.push(setup); + // if IITC has already booted, immediately run the 'setup' function + if(window.iitcLoaded && typeof setup === 'function') setup(); +} // wrapper end +// inject code into site context +var script = document.createElement('script'); +var info = {}; +if (typeof GM_info !== 'undefined' && GM_info && GM_info.script) info.script = { version: GM_info.script.version, name: GM_info.script.name, description: GM_info.script.description }; +script.appendChild(document.createTextNode('('+ wrapper +')('+JSON.stringify(info)+');')); +(document.body || document.head || document.documentElement).appendChild(script); \ No newline at end of file From 432d97e577df45b15981582ad8b0b826e1627151 Mon Sep 17 00:00:00 2001 From: harisbitsakou Date: Sat, 31 May 2014 13:31:41 +0300 Subject: [PATCH 02/11] added getPortals function --- plugins/dynamic-scoreboard.user.js | 57 +++++++++++++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/plugins/dynamic-scoreboard.user.js b/plugins/dynamic-scoreboard.user.js index 62747b44..931fa4fc 100644 --- a/plugins/dynamic-scoreboard.user.js +++ b/plugins/dynamic-scoreboard.user.js @@ -28,7 +28,62 @@ function wrapper(plugin_info) { // PLUGIN START // - + + // use own namespace for plugin + window.plugin.scoreboard = function() {}; + + + + + + //gets data of all the visible portals on the screen + window.plugin.scoreboard.getPortals = function() { + + var retval=false; + + var displayBounds = map.getBounds(); + + + window.plugin.scoreboard.enlP = 0; + window.plugin.scoreboard.resP = 0; + window.plugin.scoreboard.enlPorLevels = 0; + window.plugin.scoreboard.resPorLevels = 0; + + + + + $.each(window.portals, function(i, portal) { + // eliminate offscreen portals (selected, and in padding) + if(!displayBounds.contains(portal.getLatLng())) return true; + + retval=true; + var d = portal.options.data; + var teamN = portal.options.team; + + switch (teamN) { + case TEAM_RES: + + window.plugin.scoreboard.resP++; + window.plugin.scoreboard.resPorLevels = window.plugin.scoreboard.resPorLevels + portal.options.level; + + break; + case TEAM_ENL: + + window.plugin.scoreboard.enlP++; + window.plugin.scoreboard.enlPorLevels = window.plugin.scoreboard.enlPorLevels + portal.options.level; + + break; + } + + + + + + + }); + + return retval; + } var setup = function() { From e108e830efdec0dfcc1727cb553d7f14ae4aa8cd Mon Sep 17 00:00:00 2001 From: Costaspap Date: Tue, 3 Jun 2014 02:00:06 +0300 Subject: [PATCH 03/11] getlinks-fields methods --- plugins/dynamic-scoreboard.user.js | 175 +++++++++++++++++++++++++++-- 1 file changed, 168 insertions(+), 7 deletions(-) diff --git a/plugins/dynamic-scoreboard.user.js b/plugins/dynamic-scoreboard.user.js index 62747b44..90a8efad 100644 --- a/plugins/dynamic-scoreboard.user.js +++ b/plugins/dynamic-scoreboard.user.js @@ -27,22 +27,182 @@ function wrapper(plugin_info) { //END PLUGIN AUTHORS NOTE // PLUGIN START // - + + // use own namespace for plugin + window.plugin.scoreboard = function() {}; + + + + + + //gets data of all the visible portals on the screen + window.plugin.scoreboard.getPortals = function() { + + var retval=false; + + var displayBounds = map.getBounds(); + + //variable declaration and set to zero + window.plugin.scoreboard.enlP = 0; + window.plugin.scoreboard.resP = 0; + window.plugin.scoreboard.enlEightLevelP = 0; + window.plugin.scoreboard.resEightLevelP = 0; + window.plugin.scoreboard.enlPorLevels = 0; + window.plugin.scoreboard.resPorLevels = 0; + window.plugin.scoreboard.maxEnl=0; + window.plugin.scoreboard.maxRes=0; + window.plugin.scoreboard.healthEnl = 0; + window.plugin.scoreboard.healthRes = 0; + + + //get all portals on screen + $.each(window.portals, function(i, portal) { + // eliminate offscreen portals (selected, and in padding) + if(!displayBounds.contains(portal.getLatLng())) return true; + //if there are any portals return true + retval=true; + + //variable that contains portal data + var d = portal.options.data; + //variable that contains each portal's team value + var teamN = portal.options.team; + + switch (teamN) { + case TEAM_RES: //if the portal is captured by the resistance,increase each counter's value for resistance counters + window.plugin.scoreboard.healthRes += d.health; + window.plugin.scoreboard.resP++; + window.plugin.scoreboard.resPorLevels = window.plugin.scoreboard.resPorLevels + portal.options.level; + if(portal.options.level===8){window.plugin.scoreboard.resEightLevelP++;} + if(portal.options.level>window.plugin.scoreboard.maxRes){window.plugin.scoreboard.maxRes = portal.options.level;} + break; + case TEAM_ENL: //if the portal is captured by the enlightened,increase each counter's value for resistance counters + window.plugin.scoreboard.healthEnl += d.health; + window.plugin.scoreboard.enlP++; + window.plugin.scoreboard.enlPorLevels = window.plugin.scoreboard.enlPorLevels + portal.options.level; + if(portal.options.level===8){window.plugin.scoreboard.enlEightLevelP++;} + if(portal.options.level>window.plugin.scoreboard.maxEnl){window.plugin.scoreboard.maxEnl = portal.options.level;} + break; + } + + + + + + + }); + + return retval; + } + //---- function that gets all visible enlightened links on screen + + window.plugin.scoreboard.getEnlLinks = function() { + var displayBounds = map.getBounds(); + window.plugin.scoreboard.enlL=0; + // now every link that starts/ends at a point on screen + $.each(window.links, function(guid, link) { + // only consider links that start/end on-screen + var points = link.getLatLngs(); + if (displayBounds.contains(points[0]) || displayBounds.contains(points[1])) { + if (link.options.team == TEAM_ENL) { + window.plugin.scoreboard.enlL++; + } + } + }); + return window.plugin.scoreboard.enlL; + } + + //----function that gets all visible resistance links on screen + + window.plugin.scoreboard.getResLinks = function() { + var displayBounds = map.getBounds(); + window.plugin.scoreboard.resL=0; + // now every link that starts/ends at a point on screen + $.each(window.links, function(guid, link) { + // only consider links that start/end on-screen + var points = link.getLatLngs(); + if (displayBounds.contains(points[0]) || displayBounds.contains(points[1])) {// boroume na kanoume ta 2 if ena + if (link.options.team == TEAM_RES) { + window.plugin.scoreboard.resL++; + } + } + }); + return window.plugin.scoreboard.resL; + } + + + + + //----function that gets all visible enlightened fields on screen + + window.plugin.scoreboard.getEnlFields = function() { + var displayBounds = map.getBounds(); + window.plugin.scoreboard.enlF=0; + // and now all fields that have a vertex on screen + $.each(window.fields, function(guid, field) { + // only consider fields with at least one vertex on screen + var points = field.getLatLngs(); + if (displayBounds.contains(points[0]) || displayBounds.contains(points[1]) || displayBounds.contains(points[2])) { + if (field.options.team == TEAM_ENL) { + window.plugin.scoreboard.enlF++; + } + } + }); + return window.plugin.scoreboard.enlF; + } + + + //----function that gets all visible resistance fields on screen + + window.plugin.scoreboard.getResFields = function() { + var displayBounds = map.getBounds(); + window.plugin.scoreboard.resF=0; + // and now all fields that have a vertex on screen + $.each(window.fields, function(guid, field) { + // only consider fields with at least one vertex on screen + var points = field.getLatLngs(); + if (displayBounds.contains(points[0]) || displayBounds.contains(points[1]) || displayBounds.contains(points[2])) { + if (field.options.team == TEAM_RES) { + window.plugin.scoreboard.resF++; + } + } + }); + return window.plugin.scoreboard.resF; + } + + //----------------------------------------------------------- var setup = function() { - if(window.useAndroidPanes()) { + if(window.useAndroidPanes()) { // use android panes,texture and style android.addPane("plugin-Scoreboard", "Scoreboard", "ic_action_paste"); addHook("paneChanged", window.plugin.scoreboard.onPaneChanged); } else { $('#toolbox').append(' Scoreboard'); } - - } - - // PLUGIN END ////////////////////////////////////////////////////////// + $('head').append(''); + } + + + // PLUGIN END ////////////////////////////////////////////////////////// setup.info = plugin_info; //add the script info data to the function as a property @@ -56,4 +216,5 @@ var script = document.createElement('script'); var info = {}; if (typeof GM_info !== 'undefined' && GM_info && GM_info.script) info.script = { version: GM_info.script.version, name: GM_info.script.name, description: GM_info.script.description }; script.appendChild(document.createTextNode('('+ wrapper +')('+JSON.stringify(info)+');')); -(document.body || document.head || document.documentElement).appendChild(script); \ No newline at end of file +(document.body || document.head || document.documentElement).appendChild(script); + \ No newline at end of file From b7d3664bdcef7d5860ecddd9913882213889d6ec Mon Sep 17 00:00:00 2001 From: harisbitsakou Date: Thu, 5 Jun 2014 00:36:56 +0300 Subject: [PATCH 04/11] added the portaltable function,improved the documentation,fixed some bugs --- plugins/dynamic-scoreboard.user.js | 103 ++++++++++++++++++++++++----- 1 file changed, 87 insertions(+), 16 deletions(-) diff --git a/plugins/dynamic-scoreboard.user.js b/plugins/dynamic-scoreboard.user.js index 90a8efad..3468f25f 100644 --- a/plugins/dynamic-scoreboard.user.js +++ b/plugins/dynamic-scoreboard.user.js @@ -42,7 +42,7 @@ function wrapper(plugin_info) { var displayBounds = map.getBounds(); - //variable declaration and set to zero + window.plugin.scoreboard.enlP = 0; window.plugin.scoreboard.resP = 0; window.plugin.scoreboard.enlEightLevelP = 0; @@ -55,7 +55,7 @@ function wrapper(plugin_info) { window.plugin.scoreboard.healthRes = 0; - //get all portals on screen + //get all portals on screen $.each(window.portals, function(i, portal) { // eliminate offscreen portals (selected, and in padding) if(!displayBounds.contains(portal.getLatLng())) return true; @@ -64,18 +64,19 @@ function wrapper(plugin_info) { //variable that contains portal data var d = portal.options.data; + //variable that contains each portal's team value var teamN = portal.options.team; switch (teamN) { - case TEAM_RES: //if the portal is captured by the resistance,increase each counter's value for resistance counters + case TEAM_RES: //if the portal is captured by the resistance,increase each counter's value for resistance counters window.plugin.scoreboard.healthRes += d.health; window.plugin.scoreboard.resP++; window.plugin.scoreboard.resPorLevels = window.plugin.scoreboard.resPorLevels + portal.options.level; if(portal.options.level===8){window.plugin.scoreboard.resEightLevelP++;} if(portal.options.level>window.plugin.scoreboard.maxRes){window.plugin.scoreboard.maxRes = portal.options.level;} break; - case TEAM_ENL: //if the portal is captured by the enlightened,increase each counter's value for resistance counters + case TEAM_ENL: //if the portal is captured by the enlightened,increase each counter's value for enlightened counters window.plugin.scoreboard.healthEnl += d.health; window.plugin.scoreboard.enlP++; window.plugin.scoreboard.enlPorLevels = window.plugin.scoreboard.enlPorLevels + portal.options.level; @@ -93,9 +94,11 @@ function wrapper(plugin_info) { return retval; } - - - //---- function that gets all visible enlightened links on screen + + + + + //---- function that gets all visible enlightened links on screen window.plugin.scoreboard.getEnlLinks = function() { var displayBounds = map.getBounds(); @@ -112,8 +115,7 @@ function wrapper(plugin_info) { }); return window.plugin.scoreboard.enlL; } - - //----function that gets all visible resistance links on screen + //----function that gets all visible resistance links on screen window.plugin.scoreboard.getResLinks = function() { var displayBounds = map.getBounds(); @@ -134,7 +136,7 @@ function wrapper(plugin_info) { - //----function that gets all visible enlightened fields on screen + //----function that gets all visible enlightened fields on screen window.plugin.scoreboard.getEnlFields = function() { var displayBounds = map.getBounds(); @@ -153,7 +155,7 @@ function wrapper(plugin_info) { } - //----function that gets all visible resistance fields on screen + //----function that gets all visible resistance fields on screen window.plugin.scoreboard.getResFields = function() { var displayBounds = map.getBounds(); @@ -171,10 +173,80 @@ function wrapper(plugin_info) { return window.plugin.scoreboard.resF; } - //----------------------------------------------------------- + // A function that creates the html code for the scoreboard table + - var setup = function() { - if(window.useAndroidPanes()) { // use android panes,texture and style + window.plugin.scoreboard.portalTable = function() { + + + // html variable declaration + var html = ""; + // Create the header + html += '' + + '' + + '' + + '' + + '' + + '\n'; + + // if block to avoid division by zero + if(window.plugin.scoreboard.enlP!=0){ + var avgEnl = window.plugin.scoreboard.enlPorLevels/window.plugin.scoreboard.enlP; + avgEnl = avgEnl.toFixed(1); + var avgHealthEnl = window.plugin.scoreboard.healthEnl/window.plugin.scoreboard.enlP; + avgHealthEnl = avgHealthEnl.toFixed(1) } + else{ + var avgEnl = '-'; + var avgHealthEnl = '0'; + } + + if(window.plugin.scoreboard.resP!=0){ + var avgRes = window.plugin.scoreboard.resPorLevels/window.plugin.scoreboard.resP; + avgRes = avgRes.toFixed(1); + var avgHealthRes = window.plugin.scoreboard.healthRes/window.plugin.scoreboard.resP; + avgHealthRes = avgHealthRes.toFixed(1); + } + else{ + var avgRes = '-'; + var avgHealthRes = '0'; + } + + + // Get field-link count and assign them to variables + var enlCountOfLinks= window.plugin.scoreboard.getEnlLinks(); + var resCountOfLinks= window.plugin.scoreboard.getResLinks(); + var enlCountOfFields= window.plugin.scoreboard.getEnlFields(); + var resCountOfFields= window.plugin.scoreboard.getResFields(); + + // Creation of the html code + html += ''+''+'' + +''+''+'' + +''+''+'' + +''+''+'' + +''+''+'' + +''+''+'' + +''+''+''; + + + + html += '
MetricsEnlightenedResistance
Number of Portals' + +window.plugin.scoreboard.enlP+''+window.plugin.scoreboard.resP+'
Average Portal Level' + +avgEnl+''+avgRes+'
Number of Level 8 Portals' + +window.plugin.scoreboard.enlEightLevelP+''+window.plugin.scoreboard.resEightLevelP+'
Max Portal Level' + +window.plugin.scoreboard.maxEnl+''+window.plugin.scoreboard.maxRes+'
Number of Links' + +enlCountOfLinks+''+resCountOfLinks+'
Number of Fields' + +enlCountOfFields+''+resCountOfFields+'
Average portal Health' + +avgHealthEnl+'%'+avgHealthRes+'%
'; + + html += '
Zoom in for a more accurate scoreboard!
'; + + return html; + } + + + + var setup = function() { + if(window.useAndroidPanes()) { // use android panes,texture and style android.addPane("plugin-Scoreboard", "Scoreboard", "ic_action_paste"); addHook("paneChanged", window.plugin.scoreboard.onPaneChanged); } else { @@ -216,5 +288,4 @@ var script = document.createElement('script'); var info = {}; if (typeof GM_info !== 'undefined' && GM_info && GM_info.script) info.script = { version: GM_info.script.version, name: GM_info.script.name, description: GM_info.script.description }; script.appendChild(document.createTextNode('('+ wrapper +')('+JSON.stringify(info)+');')); -(document.body || document.head || document.documentElement).appendChild(script); - \ No newline at end of file +(document.body || document.head || document.documentElement).appendChild(script); \ No newline at end of file From bad6e8ffdd3bcf01e0711f1755ff0cb43769030e Mon Sep 17 00:00:00 2001 From: Costaspap Date: Thu, 5 Jun 2014 15:53:06 +0300 Subject: [PATCH 05/11] added display function --- plugins/dynamic-scoreboard.user.js | 48 ++++++++++++++++++++---------- 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/plugins/dynamic-scoreboard.user.js b/plugins/dynamic-scoreboard.user.js index 3468f25f..1df7880e 100644 --- a/plugins/dynamic-scoreboard.user.js +++ b/plugins/dynamic-scoreboard.user.js @@ -95,11 +95,33 @@ function wrapper(plugin_info) { return retval; } + // The final function that displays the scoreboard by calling the portalTable function + window.plugin.scoreboard.displayScoreboard = function() { + var html = ''; + + // If there are not portals on screen,display "Nothing to show!" + if (window.plugin.scoreboard.getPortals()) { + html += window.plugin.scoreboard.portalTable(); + } else { + html = '
Nothing to show!
'; + }; + + if(window.useAndroidPanes()) { + $('
' + html + '
').appendTo(document.body); + } else { + dialog({ + html: '
' + html + '
', + dialogClass: 'ui-dialog-scoreboard', + title: 'Scoreboard', + id: 'Scoreboard', + width: 700 + }); + } + } //---- function that gets all visible enlightened links on screen - window.plugin.scoreboard.getEnlLinks = function() { var displayBounds = map.getBounds(); window.plugin.scoreboard.enlL=0; @@ -115,8 +137,9 @@ function wrapper(plugin_info) { }); return window.plugin.scoreboard.enlL; } - //----function that gets all visible resistance links on screen + + //----function that gets all visible resistance links on screen window.plugin.scoreboard.getResLinks = function() { var displayBounds = map.getBounds(); window.plugin.scoreboard.resL=0; @@ -136,8 +159,8 @@ function wrapper(plugin_info) { - //----function that gets all visible enlightened fields on screen + //----function that gets all visible enlightened fields on screen window.plugin.scoreboard.getEnlFields = function() { var displayBounds = map.getBounds(); window.plugin.scoreboard.enlF=0; @@ -155,8 +178,8 @@ function wrapper(plugin_info) { } - //----function that gets all visible resistance fields on screen + //----function that gets all visible resistance fields on screen window.plugin.scoreboard.getResFields = function() { var displayBounds = map.getBounds(); window.plugin.scoreboard.resF=0; @@ -173,9 +196,9 @@ function wrapper(plugin_info) { return window.plugin.scoreboard.resF; } - // A function that creates the html code for the scoreboard table - + + // A function that creates the html code for the scoreboard table window.plugin.scoreboard.portalTable = function() { @@ -183,13 +206,13 @@ function wrapper(plugin_info) { var html = ""; // Create the header html += '' - + '' + + '' + '' + '' + '' + '\n'; - // if block to avoid division by zero + // if blocks to avoid division by zero if(window.plugin.scoreboard.enlP!=0){ var avgEnl = window.plugin.scoreboard.enlPorLevels/window.plugin.scoreboard.enlP; avgEnl = avgEnl.toFixed(1); @@ -259,15 +282,9 @@ function wrapper(plugin_info) { '#scoreboard table td, #scoreboard table th {border-bottom: 1px solid #0b314e; padding:3px; color:white; background-color:#1b415e}' + '#scoreboard table tr.res td { background-color: #005684; }' + '#scoreboard table tr.enl td { background-color: #017f01; }' + - '#scoreboard table tr.neutral td { background-color: #000000; }' + '#scoreboard table th { text-align: center; }' + '#scoreboard table td { text-align: center; }' + '#scoreboard table.portals td { white-space: nowrap; }' + - '#scoreboard table td.portalTitle { text-align: left;}' + - '#scoreboard table th.sortable { cursor:pointer;}' + - '#scoreboard table th.portalTitle { text-align: left;}' + - '#scoreboard table .portalTitle { min-width: 120px !important; max-width: 240px !important; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }' + - '#scoreboard table .apGain { text-align: right !important; }' + '#scoreboard .firstColumn { margin-top: 10px;}' + '#scoreboard .disclaimer { margin-top: 10px; font-size:10px; }' + ''); @@ -288,4 +305,5 @@ var script = document.createElement('script'); var info = {}; if (typeof GM_info !== 'undefined' && GM_info && GM_info.script) info.script = { version: GM_info.script.version, name: GM_info.script.name, description: GM_info.script.description }; script.appendChild(document.createTextNode('('+ wrapper +')('+JSON.stringify(info)+');')); -(document.body || document.head || document.documentElement).appendChild(script); \ No newline at end of file +(document.body || document.head || document.documentElement).appendChild(script); + \ No newline at end of file From 4e77e43f8d2fb98e2553c8e990541509fe2049ad Mon Sep 17 00:00:00 2001 From: Costaspap Date: Thu, 5 Jun 2014 16:04:20 +0300 Subject: [PATCH 06/11] fixed some userscript mistakes --- plugins/dynamic-scoreboard.user.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/dynamic-scoreboard.user.js b/plugins/dynamic-scoreboard.user.js index 1df7880e..13ad2dae 100644 --- a/plugins/dynamic-scoreboard.user.js +++ b/plugins/dynamic-scoreboard.user.js @@ -1,11 +1,11 @@ // ==UserScript== -// @id iitc-plugin-Dynamic-Scoreboard@Costaspap +// @id iitc-plugin-dynamic-scoreboard@Costaspap // @name IITC plugin: Create a local scoreboard // @category Info // @version 0.1.0.20140524.214738 // @namespace https://github.com/jonatkins/ingress-intel-total-conversion -// @updateURL https://secure.jonatkins.com/iitc/release/total-conversion-build.meta.js -// @downloadURL https://secure.jonatkins.com/iitc/release/total-conversion-build.user.js +// @updateURL https://secure.jonatkins.com/iitc/release/plugins/dynamic-scoreboard.meta.js +// @downloadURL https://secure.jonatkins.com/iitc/release/plugins/dynamic-scoreboard.user.js // @include https://www.ingress.com/intel* // @include http://www.ingress.com/intel* // @match https://www.ingress.com/intel* @@ -23,7 +23,7 @@ function wrapper(plugin_info) { //(leaving them in place might break the 'About IITC' page or break update checks) plugin_info.buildName = 'jonatkins'; plugin_info.dateTimeVersion = '20140524.214738'; - plugin_info.pluginId = 'Dynamic Scoreboard'; + plugin_info.pluginId = 'dynamic-scoreboard'; //END PLUGIN AUTHORS NOTE // PLUGIN START // From 02c9d8cd6a1a2f65bb2e5a571c45e56c7a3dfc17 Mon Sep 17 00:00:00 2001 From: Costaspap Date: Thu, 5 Jun 2014 17:39:23 +0300 Subject: [PATCH 07/11] added short description --- plugins/dynamic-scoreboard.user.js | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/dynamic-scoreboard.user.js b/plugins/dynamic-scoreboard.user.js index 13ad2dae..15787d50 100644 --- a/plugins/dynamic-scoreboard.user.js +++ b/plugins/dynamic-scoreboard.user.js @@ -6,6 +6,7 @@ // @namespace https://github.com/jonatkins/ingress-intel-total-conversion // @updateURL https://secure.jonatkins.com/iitc/release/plugins/dynamic-scoreboard.meta.js // @downloadURL https://secure.jonatkins.com/iitc/release/plugins/dynamic-scoreboard.user.js +// @description Display a scoreboard about all visible portals with statistics about both teams,like average portal level,link & field counts etc. // @include https://www.ingress.com/intel* // @include http://www.ingress.com/intel* // @match https://www.ingress.com/intel* From a682a4a11d4136176f1e7495d1d0900ec5e9d761 Mon Sep 17 00:00:00 2001 From: Costaspap Date: Thu, 5 Jun 2014 19:23:46 +0300 Subject: [PATCH 08/11] made some formation changes --- plugins/dynamic-scoreboard.user.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/dynamic-scoreboard.user.js b/plugins/dynamic-scoreboard.user.js index 15787d50..4aac4f90 100644 --- a/plugins/dynamic-scoreboard.user.js +++ b/plugins/dynamic-scoreboard.user.js @@ -131,7 +131,7 @@ function wrapper(plugin_info) { // only consider links that start/end on-screen var points = link.getLatLngs(); if (displayBounds.contains(points[0]) || displayBounds.contains(points[1])) { - if (link.options.team == TEAM_ENL) { + if (link.options.team === TEAM_ENL) { window.plugin.scoreboard.enlL++; } } @@ -149,7 +149,7 @@ function wrapper(plugin_info) { // only consider links that start/end on-screen var points = link.getLatLngs(); if (displayBounds.contains(points[0]) || displayBounds.contains(points[1])) {// boroume na kanoume ta 2 if ena - if (link.options.team == TEAM_RES) { + if (link.options.team === TEAM_RES) { window.plugin.scoreboard.resL++; } } @@ -170,7 +170,7 @@ function wrapper(plugin_info) { // only consider fields with at least one vertex on screen var points = field.getLatLngs(); if (displayBounds.contains(points[0]) || displayBounds.contains(points[1]) || displayBounds.contains(points[2])) { - if (field.options.team == TEAM_ENL) { + if (field.options.team === TEAM_ENL) { window.plugin.scoreboard.enlF++; } } @@ -189,7 +189,7 @@ function wrapper(plugin_info) { // only consider fields with at least one vertex on screen var points = field.getLatLngs(); if (displayBounds.contains(points[0]) || displayBounds.contains(points[1]) || displayBounds.contains(points[2])) { - if (field.options.team == TEAM_RES) { + if (field.options.team === TEAM_RES) { window.plugin.scoreboard.resF++; } } From bf36576dee4932a4d119e869338c77509cb4b9b6 Mon Sep 17 00:00:00 2001 From: Costaspap Date: Thu, 5 Jun 2014 19:27:34 +0300 Subject: [PATCH 09/11] made some more formation changes --- plugins/dynamic-scoreboard.user.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/dynamic-scoreboard.user.js b/plugins/dynamic-scoreboard.user.js index 4aac4f90..fa4fbe21 100644 --- a/plugins/dynamic-scoreboard.user.js +++ b/plugins/dynamic-scoreboard.user.js @@ -218,8 +218,8 @@ function wrapper(plugin_info) { var avgEnl = window.plugin.scoreboard.enlPorLevels/window.plugin.scoreboard.enlP; avgEnl = avgEnl.toFixed(1); var avgHealthEnl = window.plugin.scoreboard.healthEnl/window.plugin.scoreboard.enlP; - avgHealthEnl = avgHealthEnl.toFixed(1) } - else{ + avgHealthEnl = avgHealthEnl.toFixed(1) + } else{ var avgEnl = '-'; var avgHealthEnl = '0'; } @@ -229,13 +229,13 @@ function wrapper(plugin_info) { avgRes = avgRes.toFixed(1); var avgHealthRes = window.plugin.scoreboard.healthRes/window.plugin.scoreboard.resP; avgHealthRes = avgHealthRes.toFixed(1); - } - else{ + } else { var avgRes = '-'; var avgHealthRes = '0'; } + // Get field-link count and assign them to variables var enlCountOfLinks= window.plugin.scoreboard.getEnlLinks(); var resCountOfLinks= window.plugin.scoreboard.getResLinks(); From 78dab0a2bb8974f3cebbb766b6ac2b848e182109 Mon Sep 17 00:00:00 2001 From: Costaspap Date: Tue, 10 Jun 2014 00:20:16 +0300 Subject: [PATCH 10/11] built the plugin --- plugins/dynamic-scoreboard.user.js | 310 ----------------------------- plugins/scoreboard.user.js | 303 +++++++++++++++++++++++++++- 2 files changed, 299 insertions(+), 314 deletions(-) delete mode 100644 plugins/dynamic-scoreboard.user.js diff --git a/plugins/dynamic-scoreboard.user.js b/plugins/dynamic-scoreboard.user.js deleted file mode 100644 index fa4fbe21..00000000 --- a/plugins/dynamic-scoreboard.user.js +++ /dev/null @@ -1,310 +0,0 @@ -// ==UserScript== -// @id iitc-plugin-dynamic-scoreboard@Costaspap -// @name IITC plugin: Create a local scoreboard -// @category Info -// @version 0.1.0.20140524.214738 -// @namespace https://github.com/jonatkins/ingress-intel-total-conversion -// @updateURL https://secure.jonatkins.com/iitc/release/plugins/dynamic-scoreboard.meta.js -// @downloadURL https://secure.jonatkins.com/iitc/release/plugins/dynamic-scoreboard.user.js -// @description Display a scoreboard about all visible portals with statistics about both teams,like average portal level,link & field counts etc. -// @include https://www.ingress.com/intel* -// @include http://www.ingress.com/intel* -// @match https://www.ingress.com/intel* -// @match http://www.ingress.com/intel* -// @grant none -// ==/UserScript== - - -// A plug in by Costaspap and harisbitsakou -function wrapper(plugin_info) { - // ensure plugin framework is there, even if iitc is not yet loaded - if(typeof window.plugin !== 'function') window.plugin = function() {}; - - //PLUGIN AUTHORS: writing a plugin outside of the IITC build environment? if so, delete these lines!! - //(leaving them in place might break the 'About IITC' page or break update checks) - plugin_info.buildName = 'jonatkins'; - plugin_info.dateTimeVersion = '20140524.214738'; - plugin_info.pluginId = 'dynamic-scoreboard'; - //END PLUGIN AUTHORS NOTE - - // PLUGIN START // - - // use own namespace for plugin - window.plugin.scoreboard = function() {}; - - - - - - //gets data of all the visible portals on the screen - window.plugin.scoreboard.getPortals = function() { - - var retval=false; - - var displayBounds = map.getBounds(); - - - window.plugin.scoreboard.enlP = 0; - window.plugin.scoreboard.resP = 0; - window.plugin.scoreboard.enlEightLevelP = 0; - window.plugin.scoreboard.resEightLevelP = 0; - window.plugin.scoreboard.enlPorLevels = 0; - window.plugin.scoreboard.resPorLevels = 0; - window.plugin.scoreboard.maxEnl=0; - window.plugin.scoreboard.maxRes=0; - window.plugin.scoreboard.healthEnl = 0; - window.plugin.scoreboard.healthRes = 0; - - - //get all portals on screen - $.each(window.portals, function(i, portal) { - // eliminate offscreen portals (selected, and in padding) - if(!displayBounds.contains(portal.getLatLng())) return true; - //if there are any portals return true - retval=true; - - //variable that contains portal data - var d = portal.options.data; - - //variable that contains each portal's team value - var teamN = portal.options.team; - - switch (teamN) { - case TEAM_RES: //if the portal is captured by the resistance,increase each counter's value for resistance counters - window.plugin.scoreboard.healthRes += d.health; - window.plugin.scoreboard.resP++; - window.plugin.scoreboard.resPorLevels = window.plugin.scoreboard.resPorLevels + portal.options.level; - if(portal.options.level===8){window.plugin.scoreboard.resEightLevelP++;} - if(portal.options.level>window.plugin.scoreboard.maxRes){window.plugin.scoreboard.maxRes = portal.options.level;} - break; - case TEAM_ENL: //if the portal is captured by the enlightened,increase each counter's value for enlightened counters - window.plugin.scoreboard.healthEnl += d.health; - window.plugin.scoreboard.enlP++; - window.plugin.scoreboard.enlPorLevels = window.plugin.scoreboard.enlPorLevels + portal.options.level; - if(portal.options.level===8){window.plugin.scoreboard.enlEightLevelP++;} - if(portal.options.level>window.plugin.scoreboard.maxEnl){window.plugin.scoreboard.maxEnl = portal.options.level;} - break; - } - - - - - - - }); - - return retval; - } - - // The final function that displays the scoreboard by calling the portalTable function - window.plugin.scoreboard.displayScoreboard = function() { - var html = ''; - - // If there are not portals on screen,display "Nothing to show!" - if (window.plugin.scoreboard.getPortals()) { - html += window.plugin.scoreboard.portalTable(); - } else { - html = '
MetricsEnlightenedResistance
Nothing to show!
'; - }; - - if(window.useAndroidPanes()) { - $('
' + html + '
').appendTo(document.body); - } else { - dialog({ - html: '
' + html + '
', - dialogClass: 'ui-dialog-scoreboard', - title: 'Scoreboard', - id: 'Scoreboard', - width: 700 - }); - } - } - - - - //---- function that gets all visible enlightened links on screen - window.plugin.scoreboard.getEnlLinks = function() { - var displayBounds = map.getBounds(); - window.plugin.scoreboard.enlL=0; - // now every link that starts/ends at a point on screen - $.each(window.links, function(guid, link) { - // only consider links that start/end on-screen - var points = link.getLatLngs(); - if (displayBounds.contains(points[0]) || displayBounds.contains(points[1])) { - if (link.options.team === TEAM_ENL) { - window.plugin.scoreboard.enlL++; - } - } - }); - return window.plugin.scoreboard.enlL; - } - - - //----function that gets all visible resistance links on screen - window.plugin.scoreboard.getResLinks = function() { - var displayBounds = map.getBounds(); - window.plugin.scoreboard.resL=0; - // now every link that starts/ends at a point on screen - $.each(window.links, function(guid, link) { - // only consider links that start/end on-screen - var points = link.getLatLngs(); - if (displayBounds.contains(points[0]) || displayBounds.contains(points[1])) {// boroume na kanoume ta 2 if ena - if (link.options.team === TEAM_RES) { - window.plugin.scoreboard.resL++; - } - } - }); - return window.plugin.scoreboard.resL; - } - - - - - - //----function that gets all visible enlightened fields on screen - window.plugin.scoreboard.getEnlFields = function() { - var displayBounds = map.getBounds(); - window.plugin.scoreboard.enlF=0; - // and now all fields that have a vertex on screen - $.each(window.fields, function(guid, field) { - // only consider fields with at least one vertex on screen - var points = field.getLatLngs(); - if (displayBounds.contains(points[0]) || displayBounds.contains(points[1]) || displayBounds.contains(points[2])) { - if (field.options.team === TEAM_ENL) { - window.plugin.scoreboard.enlF++; - } - } - }); - return window.plugin.scoreboard.enlF; - } - - - - //----function that gets all visible resistance fields on screen - window.plugin.scoreboard.getResFields = function() { - var displayBounds = map.getBounds(); - window.plugin.scoreboard.resF=0; - // and now all fields that have a vertex on screen - $.each(window.fields, function(guid, field) { - // only consider fields with at least one vertex on screen - var points = field.getLatLngs(); - if (displayBounds.contains(points[0]) || displayBounds.contains(points[1]) || displayBounds.contains(points[2])) { - if (field.options.team === TEAM_RES) { - window.plugin.scoreboard.resF++; - } - } - }); - return window.plugin.scoreboard.resF; - } - - - - // A function that creates the html code for the scoreboard table - window.plugin.scoreboard.portalTable = function() { - - - // html variable declaration - var html = ""; - // Create the header - html += '' - + '' - + '' - + '' - + '' - + '\n'; - - // if blocks to avoid division by zero - if(window.plugin.scoreboard.enlP!=0){ - var avgEnl = window.plugin.scoreboard.enlPorLevels/window.plugin.scoreboard.enlP; - avgEnl = avgEnl.toFixed(1); - var avgHealthEnl = window.plugin.scoreboard.healthEnl/window.plugin.scoreboard.enlP; - avgHealthEnl = avgHealthEnl.toFixed(1) - } else{ - var avgEnl = '-'; - var avgHealthEnl = '0'; - } - - if(window.plugin.scoreboard.resP!=0){ - var avgRes = window.plugin.scoreboard.resPorLevels/window.plugin.scoreboard.resP; - avgRes = avgRes.toFixed(1); - var avgHealthRes = window.plugin.scoreboard.healthRes/window.plugin.scoreboard.resP; - avgHealthRes = avgHealthRes.toFixed(1); - } else { - var avgRes = '-'; - var avgHealthRes = '0'; - } - - - - // Get field-link count and assign them to variables - var enlCountOfLinks= window.plugin.scoreboard.getEnlLinks(); - var resCountOfLinks= window.plugin.scoreboard.getResLinks(); - var enlCountOfFields= window.plugin.scoreboard.getEnlFields(); - var resCountOfFields= window.plugin.scoreboard.getResFields(); - - // Creation of the html code - html += ''+''+'' - +''+''+'' - +''+''+'' - +''+''+'' - +''+''+'' - +''+''+'' - +''+''+''; - - - - html += '
MetricsEnlightenedResistance
Number of Portals' - +window.plugin.scoreboard.enlP+''+window.plugin.scoreboard.resP+'
Average Portal Level' - +avgEnl+''+avgRes+'
Number of Level 8 Portals' - +window.plugin.scoreboard.enlEightLevelP+''+window.plugin.scoreboard.resEightLevelP+'
Max Portal Level' - +window.plugin.scoreboard.maxEnl+''+window.plugin.scoreboard.maxRes+'
Number of Links' - +enlCountOfLinks+''+resCountOfLinks+'
Number of Fields' - +enlCountOfFields+''+resCountOfFields+'
Average portal Health' - +avgHealthEnl+'%'+avgHealthRes+'%
'; - - html += '
Zoom in for a more accurate scoreboard!
'; - - return html; - } - - - - var setup = function() { - if(window.useAndroidPanes()) { // use android panes,texture and style - android.addPane("plugin-Scoreboard", "Scoreboard", "ic_action_paste"); - addHook("paneChanged", window.plugin.scoreboard.onPaneChanged); - } else { - $('#toolbox').append(' Scoreboard'); - } - - $('head').append(''); - } - - - // PLUGIN END ////////////////////////////////////////////////////////// - - - setup.info = plugin_info; //add the script info data to the function as a property - if(!window.bootPlugins) window.bootPlugins = []; - window.bootPlugins.push(setup); - // if IITC has already booted, immediately run the 'setup' function - if(window.iitcLoaded && typeof setup === 'function') setup(); -} // wrapper end -// inject code into site context -var script = document.createElement('script'); -var info = {}; -if (typeof GM_info !== 'undefined' && GM_info && GM_info.script) info.script = { version: GM_info.script.version, name: GM_info.script.name, description: GM_info.script.description }; -script.appendChild(document.createTextNode('('+ wrapper +')('+JSON.stringify(info)+');')); -(document.body || document.head || document.documentElement).appendChild(script); - \ No newline at end of file diff --git a/plugins/scoreboard.user.js b/plugins/scoreboard.user.js index 52ee4d9b..a969499e 100644 --- a/plugins/scoreboard.user.js +++ b/plugins/scoreboard.user.js @@ -1,15 +1,310 @@ // ==UserScript== -// @id iitc-plugin-scoreboard@vita10gy +// @id iitc-plugin-scoreboard@Costaspap // @name IITC plugin: show a localized scoreboard. -// @category Deleted -// @version 0.1.9.@@DATETIMEVERSION@@ +// @version 0.2.0.@@DATETIMEVERSION@@ +// @category Info // @namespace https://github.com/jonatkins/ingress-intel-total-conversion // @updateURL @@UPDATEURL@@ // @downloadURL @@DOWNLOADURL@@ -// @description This plugin is no longer available, as Niantic optimisations have removed the data it needed. +// @description [@@BUILDNAME@@-@@BUILDDATE@@] Display a scoreboard about all visible portals with statistics about both teams,like average portal level,link & field counts etc. // @include https://www.ingress.com/intel* // @include http://www.ingress.com/intel* // @match https://www.ingress.com/intel* // @match http://www.ingress.com/intel* // @grant none // ==/UserScript== + + +// A plug in by Costaspap and harisbitsakou +function wrapper(plugin_info) { + // ensure plugin framework is there, even if iitc is not yet loaded + if(typeof window.plugin !== 'function') window.plugin = function() {}; + + //PLUGIN AUTHORS: writing a plugin outside of the IITC build environment? if so, delete these lines!! + //(leaving them in place might break the 'About IITC' page or break update checks) + plugin_info.buildName = 'jonatkins'; + plugin_info.dateTimeVersion = '20140524.214738'; + plugin_info.pluginId = 'scoreboard'; + //END PLUGIN AUTHORS NOTE + + // PLUGIN START // + + // use own namespace for plugin + window.plugin.scoreboard = function() {}; + + + + + + //gets data of all the visible portals on the screen + window.plugin.scoreboard.getPortals = function() { + + var retval=false; + + var displayBounds = map.getBounds(); + + + window.plugin.scoreboard.enlP = 0; + window.plugin.scoreboard.resP = 0; + window.plugin.scoreboard.enlEightLevelP = 0; + window.plugin.scoreboard.resEightLevelP = 0; + window.plugin.scoreboard.enlPorLevels = 0; + window.plugin.scoreboard.resPorLevels = 0; + window.plugin.scoreboard.maxEnl=0; + window.plugin.scoreboard.maxRes=0; + window.plugin.scoreboard.healthEnl = 0; + window.plugin.scoreboard.healthRes = 0; + + + //get all portals on screen + $.each(window.portals, function(i, portal) { + // eliminate offscreen portals (selected, and in padding) + if(!displayBounds.contains(portal.getLatLng())) return true; + //if there are any portals return true + retval=true; + + //variable that contains portal data + var d = portal.options.data; + + //variable that contains each portal's team value + var teamN = portal.options.team; + + switch (teamN) { + case TEAM_RES: //if the portal is captured by the resistance,increase each counter's value for resistance counters + window.plugin.scoreboard.healthRes += d.health; + window.plugin.scoreboard.resP++; + window.plugin.scoreboard.resPorLevels = window.plugin.scoreboard.resPorLevels + portal.options.level; + if(portal.options.level===8){window.plugin.scoreboard.resEightLevelP++;} + if(portal.options.level>window.plugin.scoreboard.maxRes){window.plugin.scoreboard.maxRes = portal.options.level;} + break; + case TEAM_ENL: //if the portal is captured by the enlightened,increase each counter's value for enlightened counters + window.plugin.scoreboard.healthEnl += d.health; + window.plugin.scoreboard.enlP++; + window.plugin.scoreboard.enlPorLevels = window.plugin.scoreboard.enlPorLevels + portal.options.level; + if(portal.options.level===8){window.plugin.scoreboard.enlEightLevelP++;} + if(portal.options.level>window.plugin.scoreboard.maxEnl){window.plugin.scoreboard.maxEnl = portal.options.level;} + break; + } + + + + + + + }); + + return retval; + } + + // The final function that displays the scoreboard by calling the portalTable function + window.plugin.scoreboard.displayScoreboard = function() { + var html = ''; + + // If there are not portals on screen,display "Nothing to show!" + if (window.plugin.scoreboard.getPortals()) { + html += window.plugin.scoreboard.portalTable(); + } else { + html = '
Nothing to show!
'; + }; + + if(window.useAndroidPanes()) { + $('
' + html + '
').appendTo(document.body); + } else { + dialog({ + html: '
' + html + '
', + dialogClass: 'ui-dialog-scoreboard', + title: 'Scoreboard', + id: 'Scoreboard', + width: 700 + }); + } + } + + + + //---- function that gets all visible enlightened links on screen + window.plugin.scoreboard.getEnlLinks = function() { + var displayBounds = map.getBounds(); + window.plugin.scoreboard.enlL=0; + // now every link that starts/ends at a point on screen + $.each(window.links, function(guid, link) { + // only consider links that start/end on-screen + var points = link.getLatLngs(); + if (displayBounds.contains(points[0]) || displayBounds.contains(points[1])) { + if (link.options.team == TEAM_ENL) { + window.plugin.scoreboard.enlL++; + } + } + }); + return window.plugin.scoreboard.enlL; + } + + + //----function that gets all visible resistance links on screen + window.plugin.scoreboard.getResLinks = function() { + var displayBounds = map.getBounds(); + window.plugin.scoreboard.resL=0; + // now every link that starts/ends at a point on screen + $.each(window.links, function(guid, link) { + // only consider links that start/end on-screen + var points = link.getLatLngs(); + if (displayBounds.contains(points[0]) || displayBounds.contains(points[1])) {// boroume na kanoume ta 2 if ena + if (link.options.team == TEAM_RES) { + window.plugin.scoreboard.resL++; + } + } + }); + return window.plugin.scoreboard.resL; + } + + + + + + //----function that gets all visible enlightened fields on screen + window.plugin.scoreboard.getEnlFields = function() { + var displayBounds = map.getBounds(); + window.plugin.scoreboard.enlF=0; + // and now all fields that have a vertex on screen + $.each(window.fields, function(guid, field) { + // only consider fields with at least one vertex on screen + var points = field.getLatLngs(); + if (displayBounds.contains(points[0]) || displayBounds.contains(points[1]) || displayBounds.contains(points[2])) { + if (field.options.team == TEAM_ENL) { + window.plugin.scoreboard.enlF++; + } + } + }); + return window.plugin.scoreboard.enlF; + } + + + + //----function that gets all visible resistance fields on screen + window.plugin.scoreboard.getResFields = function() { + var displayBounds = map.getBounds(); + window.plugin.scoreboard.resF=0; + // and now all fields that have a vertex on screen + $.each(window.fields, function(guid, field) { + // only consider fields with at least one vertex on screen + var points = field.getLatLngs(); + if (displayBounds.contains(points[0]) || displayBounds.contains(points[1]) || displayBounds.contains(points[2])) { + if (field.options.team == TEAM_RES) { + window.plugin.scoreboard.resF++; + } + } + }); + return window.plugin.scoreboard.resF; + } + + + + // A function that creates the html code for the scoreboard table + window.plugin.scoreboard.portalTable = function() { + + + // html variable declaration + var html = ""; + // Create the header + html += '' + + '' + + '' + + '' + + '' + + '\n'; + + // if blocks to avoid division by zero + if(window.plugin.scoreboard.enlP!=0){ + var avgEnl = window.plugin.scoreboard.enlPorLevels/window.plugin.scoreboard.enlP; + avgEnl = avgEnl.toFixed(1); + var avgHealthEnl = window.plugin.scoreboard.healthEnl/window.plugin.scoreboard.enlP; + avgHealthEnl = avgHealthEnl.toFixed(1) } + else{ + var avgEnl = '-'; + var avgHealthEnl = '0'; + } + + if(window.plugin.scoreboard.resP!=0){ + var avgRes = window.plugin.scoreboard.resPorLevels/window.plugin.scoreboard.resP; + avgRes = avgRes.toFixed(1); + var avgHealthRes = window.plugin.scoreboard.healthRes/window.plugin.scoreboard.resP; + avgHealthRes = avgHealthRes.toFixed(1); + } + else{ + var avgRes = '-'; + var avgHealthRes = '0'; + } + + + // Get field-link count and assign them to variables + var enlCountOfLinks= window.plugin.scoreboard.getEnlLinks(); + var resCountOfLinks= window.plugin.scoreboard.getResLinks(); + var enlCountOfFields= window.plugin.scoreboard.getEnlFields(); + var resCountOfFields= window.plugin.scoreboard.getResFields(); + + // Creation of the html code + html += ''+''+'' + +''+''+'' + +''+''+'' + +''+''+'' + +''+''+'' + +''+''+'' + +''+''+''; + + + + html += '
MetricsEnlightenedResistance
Number of Portals' + +window.plugin.scoreboard.enlP+''+window.plugin.scoreboard.resP+'
Average Portal Level' + +avgEnl+''+avgRes+'
Number of Level 8 Portals' + +window.plugin.scoreboard.enlEightLevelP+''+window.plugin.scoreboard.resEightLevelP+'
Max Portal Level' + +window.plugin.scoreboard.maxEnl+''+window.plugin.scoreboard.maxRes+'
Number of Links' + +enlCountOfLinks+''+resCountOfLinks+'
Number of Fields' + +enlCountOfFields+''+resCountOfFields+'
Average portal Health' + +avgHealthEnl+'%'+avgHealthRes+'%
'; + + html += '
Zoom in for a more accurate scoreboard!
'; + + return html; + } + + + + var setup = function() { + if(window.useAndroidPanes()) { // use android panes,texture and style + android.addPane("plugin-Scoreboard", "Scoreboard", "ic_action_paste"); + addHook("paneChanged", window.plugin.scoreboard.onPaneChanged); + } else { + $('#toolbox').append(' Scoreboard'); + } + + $('head').append(''); + } + + + // PLUGIN END ////////////////////////////////////////////////////////// + + + setup.info = plugin_info; //add the script info data to the function as a property + if(!window.bootPlugins) window.bootPlugins = []; + window.bootPlugins.push(setup); + // if IITC has already booted, immediately run the 'setup' function + if(window.iitcLoaded && typeof setup === 'function') setup(); +} // wrapper end +// inject code into site context +var script = document.createElement('script'); +var info = {}; +if (typeof GM_info !== 'undefined' && GM_info && GM_info.script) info.script = { version: GM_info.script.version, name: GM_info.script.name, description: GM_info.script.description }; +script.appendChild(document.createTextNode('('+ wrapper +')('+JSON.stringify(info)+');')); +(document.body || document.head || document.documentElement).appendChild(script); + \ No newline at end of file From 7297d096627e0e288d868407b251f5c7e4b267ee Mon Sep 17 00:00:00 2001 From: Costaspap Date: Tue, 10 Jun 2014 00:38:59 +0300 Subject: [PATCH 11/11] completed build --- plugins/scoreboard.user.js | 33 +++++---------------------------- 1 file changed, 5 insertions(+), 28 deletions(-) diff --git a/plugins/scoreboard.user.js b/plugins/scoreboard.user.js index a969499e..351faa09 100644 --- a/plugins/scoreboard.user.js +++ b/plugins/scoreboard.user.js @@ -1,5 +1,5 @@ // ==UserScript== -// @id iitc-plugin-scoreboard@Costaspap +// @id iitc-plugin-scoreboard@vita10gy // @name IITC plugin: show a localized scoreboard. // @version 0.2.0.@@DATETIMEVERSION@@ // @category Info @@ -13,20 +13,9 @@ // @match http://www.ingress.com/intel* // @grant none // ==/UserScript== - - -// A plug in by Costaspap and harisbitsakou -function wrapper(plugin_info) { - // ensure plugin framework is there, even if iitc is not yet loaded - if(typeof window.plugin !== 'function') window.plugin = function() {}; - - //PLUGIN AUTHORS: writing a plugin outside of the IITC build environment? if so, delete these lines!! - //(leaving them in place might break the 'About IITC' page or break update checks) - plugin_info.buildName = 'jonatkins'; - plugin_info.dateTimeVersion = '20140524.214738'; - plugin_info.pluginId = 'scoreboard'; - //END PLUGIN AUTHORS NOTE + + @@PLUGINSTART@@ // PLUGIN START // // use own namespace for plugin @@ -293,18 +282,6 @@ function wrapper(plugin_info) { // PLUGIN END ////////////////////////////////////////////////////////// - - - setup.info = plugin_info; //add the script info data to the function as a property - if(!window.bootPlugins) window.bootPlugins = []; - window.bootPlugins.push(setup); - // if IITC has already booted, immediately run the 'setup' function - if(window.iitcLoaded && typeof setup === 'function') setup(); -} // wrapper end -// inject code into site context -var script = document.createElement('script'); -var info = {}; -if (typeof GM_info !== 'undefined' && GM_info && GM_info.script) info.script = { version: GM_info.script.version, name: GM_info.script.name, description: GM_info.script.description }; -script.appendChild(document.createTextNode('('+ wrapper +')('+JSON.stringify(info)+');')); -(document.body || document.head || document.documentElement).appendChild(script); + @@PLUGINEND@@ + \ No newline at end of file