Weak Portal Plugin
At a glance high level indicator of portals in disrepair. Opacity is used to denote how much it's hurting. (Bright means needs the most attention.) Factors in current energy, missing shields, or missing resonators. Red means it needs attention. Orange means the same thing, except that it's down at least one resonator. I realise this is in opposition to game convention where dim == almost dead, but I tried it that way, and it just made no sense to me to do it that way. The whole point is a high level way to quickly identify portals that most need repairing. If opacity isn't done this way your eyes are most drawn to the portals that least need your attention.
This commit is contained in:
parent
bad7bc5cbe
commit
195dc611b2
@ -351,7 +351,7 @@ window.isResonatorsShow = function() {
|
||||
}
|
||||
|
||||
window.portalResetColor = function(portal) {
|
||||
portal.setStyle({color: portal.options.fillColor});
|
||||
portal.setStyle({color: COLORS[getTeam(portal.options.details)]});
|
||||
}
|
||||
|
||||
// renders a link on the map from the given entity
|
||||
|
2
main.js
2
main.js
@ -125,7 +125,7 @@ var MAX_DRAWN_LINKS = 400;
|
||||
var MAX_DRAWN_FIELDS = 200;
|
||||
|
||||
|
||||
var COLOR_SELECTED_PORTAL = '#f00';
|
||||
var COLOR_SELECTED_PORTAL = '#fff';
|
||||
var COLORS = ['#FFCE00', '#0088FF', '#03FE03']; // none, res, enl
|
||||
var COLORS_LVL = ['#000', '#FECE5A', '#FFA630', '#FF7315', '#E40000', '#FD2992', '#EB26CD', '#C124E0', '#9627F4'];
|
||||
var COLORS_MOD = {VERY_RARE: '#F78AF6', RARE: '#AD8AFF', COMMON: '#84FBBD'};
|
||||
|
132
plugins/show-portal-weakness.user.js
Normal file
132
plugins/show-portal-weakness.user.js
Normal file
@ -0,0 +1,132 @@
|
||||
// ==UserScript==
|
||||
// @id iitc-plugin-show-portal-weakness@vita10gy
|
||||
// @name iitc: show portal weakness
|
||||
// @version 0.1
|
||||
// @namespace https://github.com/breunigs/ingress-intel-total-conversion
|
||||
// @updateURL https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/show-portal-weekness.user.js
|
||||
// @downloadURL https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/show-portal-weekness.user.js
|
||||
// @description Uses the fill color of the portals to denote if the portal is weak (Needs recharging, missing a resonator, needs shields)
|
||||
// @include http://www.ingress.com/intel*
|
||||
// @match http://www.ingress.com/intel*
|
||||
// ==/UserScript==
|
||||
|
||||
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.portalWeakness = function() {};
|
||||
|
||||
window.plugin.portalWeakness.getPortalWeaknessFactor = function(d)
|
||||
{
|
||||
var portal_weakness = 0;
|
||||
if(getTeam(d) != 0)
|
||||
{
|
||||
if(window.getTotalPortalEnergy(d)> 0 && window.getCurrentPortalEnergy(d) < window.getTotalPortalEnergy(d))
|
||||
{
|
||||
portal_weakness = 1 - (window.getPortalEnergy(d)/window.getTotalPortalEnergy(d));
|
||||
}
|
||||
//Ding the portal for every missing sheild.
|
||||
$.each(d.portalV2.linkedModArray, function(ind, mod)
|
||||
{
|
||||
if(mod == null)
|
||||
{
|
||||
portal_weakness += .05;
|
||||
}
|
||||
});
|
||||
//Ding the portal for every missing resonator.
|
||||
var resCount = 0;
|
||||
$.each(d.resonatorArray.resonators, function(ind, reso)
|
||||
{
|
||||
if(reso == null) {
|
||||
portal_weakness += .125;
|
||||
}
|
||||
else {
|
||||
resCount++;
|
||||
}
|
||||
});
|
||||
if(portal_weakness<0) {
|
||||
portal_weakness = 0;
|
||||
}
|
||||
if(portal_weakness>1)
|
||||
{
|
||||
portal_weakness = 1;
|
||||
}
|
||||
}
|
||||
return(Math.round(portal_weakness*100)/100);
|
||||
}
|
||||
|
||||
window.plugin.portalWeakness.portalAdded = function(data) {
|
||||
|
||||
var d = data.portal.options.details;
|
||||
var portal_weakness = 0;
|
||||
if(getTeam(d) != 0)
|
||||
{
|
||||
if(window.getTotalPortalEnergy(d)> 0 && window.getCurrentPortalEnergy(d) < window.getTotalPortalEnergy(d))
|
||||
{
|
||||
portal_weakness = 1 - (window.getCurrentPortalEnergy(d)/window.getTotalPortalEnergy(d));
|
||||
}
|
||||
//Ding the portal for every missing sheild.
|
||||
$.each(d.portalV2.linkedModArray, function(ind, mod)
|
||||
{
|
||||
if(mod == null)
|
||||
{
|
||||
portal_weakness += .05;
|
||||
}
|
||||
});
|
||||
//Ding the portal for every missing resonator.
|
||||
var resCount = 0;
|
||||
$.each(d.resonatorArray.resonators, function(ind, reso)
|
||||
{
|
||||
if(reso == null) {
|
||||
portal_weakness += .125;
|
||||
}
|
||||
else {
|
||||
resCount++;
|
||||
}
|
||||
});
|
||||
if(portal_weakness<0) {
|
||||
portal_weakness = 0;
|
||||
}
|
||||
if(portal_weakness>1)
|
||||
{
|
||||
portal_weakness = 1;
|
||||
}
|
||||
|
||||
if(portal_weakness>0)
|
||||
{
|
||||
var color = 'red';
|
||||
if(resCount<8)
|
||||
{
|
||||
color = 'orange';
|
||||
}
|
||||
var fill_opacity = Math.round((portal_weakness*.7 + .3)*100)/100;
|
||||
data.portal.setStyle({fillColor: color, fillOpacity: fill_opacity});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
var setup = function() {
|
||||
window.addHook('portalAdded', window.plugin.portalWeakness.portalAdded);
|
||||
}
|
||||
|
||||
// PLUGIN END //////////////////////////////////////////////////////////
|
||||
|
||||
if(window.iitcLoaded && typeof setup === 'function') {
|
||||
setup();
|
||||
} else {
|
||||
if(window.bootPlugins)
|
||||
window.bootPlugins.push(setup);
|
||||
else
|
||||
window.bootPlugins = [setup];
|
||||
}
|
||||
} // wrapper end
|
||||
// inject code into site context
|
||||
var script = document.createElement('script');
|
||||
script.appendChild(document.createTextNode('('+ wrapper +')();'));
|
||||
(document.body || document.head || document.documentElement).appendChild(script);
|
Loading…
x
Reference in New Issue
Block a user