From c63dfa6a9169a8737e172c99cc1e2eee477ce905 Mon Sep 17 00:00:00 2001 From: Peter Dietrich Date: Wed, 10 Jul 2013 17:11:51 +0200 Subject: [PATCH] Update IPAS plugin to use all features of 1.1.0 --- plugins/ipas-link.user.js | 73 +++++++++++++++++++++++++++++++-------- 1 file changed, 58 insertions(+), 15 deletions(-) diff --git a/plugins/ipas-link.user.js b/plugins/ipas-link.user.js index 682f3083..dbf13121 100644 --- a/plugins/ipas-link.user.js +++ b/plugins/ipas-link.user.js @@ -44,27 +44,70 @@ window.plugin.ipasLink.getHash = function (d) { hashParts = []; $.each(d.portalV2.linkedModArray, function (ind, mod) { - //shields only, so far... - var s = "0"; - if (mod) { - if (mod.type === "RES_SHIELD") { - s = mod.rarity.charAt(0).toLowerCase(); + // s - shields + // h - heat sink + // i - intentionally left in + // t - turret + // + // f - force amp + // m - multi-hack + // l - link-amp + // + var modCodes = { + "RES_SHIELD": "s", + "HEATSINK": "h", + "TURRET": "t", + "FORCE_AMP": "f", + "MULTIHACK": "m", + "LINK_AMPLIFIER": "l" } - } - hashParts.push(s); - }); - var shields = hashParts.join(","); - return resos + "|" + shields; -} + + var mc = "0"; + if (mod) { + if (mod.type in modCodes) { + mc = modCodes[mod.type] + mod.rarity.charAt(0).toLowerCase(); + + //special for shields to distinguish old/new mitigation + if (mod.type == "RES_SHIELD") { + mc += mod.stats.MITIGATION; + } + } + } + hashParts.push(mc); + }); + var shields = hashParts.join(","); + + var linkParts = []; + var edges = d.portalV2.linkedEdges; + + var portalL = new L.LatLng(d.locationE6.latE6 / 1E6, d.locationE6.lngE6 / 1E6) + $.each(edges, function (ind, edge) { + //calc distance in m here + var distance = 1; //default to 1m, so a low level portal would support it + + //Try to find other portals details + var guid = edge.otherPortalGuid + if (window.portals[guid] !== undefined) { + //get other portals details as o + var o = window.portals[guid].options.details; + var otherPortalL = new L.LatLng(o.locationE6.latE6 / 1E6, o.locationE6.lngE6 / 1E6); + var distance = Math.round(portalL.distanceTo(otherPortalL)); + } + + if (!(edge.isOrigin)) { + distance = distance * -1; + } + linkParts.push(distance); + }); + var links = linkParts.join(","); + + return resos + "/" + shields + "/" + links; //changed with IPAS 1.1 to / instead of | + } var setup = function () { window.plugin.ipasLink.setupCallback(); } -var setup = function() { - window.plugin.ipasLink.setupCallback(); -} - // PLUGIN END ////////////////////////////////////////////////////////// if(window.iitcLoaded && typeof setup === 'function') {