From e108e830efdec0dfcc1727cb553d7f14ae4aa8cd Mon Sep 17 00:00:00 2001 From: Costaspap Date: Tue, 3 Jun 2014 02:00:06 +0300 Subject: [PATCH] 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