Merge pull request #284 from vita10gy/weak-colors

Portal Weakness Colors
This commit is contained in:
Stefan Breunig 2013-02-24 23:08:50 -08:00
commit 6e6060876d
2 changed files with 32 additions and 27 deletions

View File

@ -12,7 +12,7 @@ Available Plugins
- [**Compute AP Stats**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/compute-ap-stats.user.js) Shows the potential AP an agent could obtain by destroying and rebuilding all the portals in the current zoom area. - [**Compute AP Stats**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/compute-ap-stats.user.js) Shows the potential AP an agent could obtain by destroying and rebuilding all the portals in the current zoom area.
- [**Draw Tools**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/draw-tools.user.js) allows to draw circles and lines on the map to aid you with planning your next big field. [View screenshot](http://breunigs.github.com/ingress-intel-total-conversion/screenshots/plugin_draw_tools.png) - [**Draw Tools**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/draw-tools.user.js) allows to draw circles and lines on the map to aid you with planning your next big field. [View screenshot](http://breunigs.github.com/ingress-intel-total-conversion/screenshots/plugin_draw_tools.png)
- [**Guess Player Level**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/guess-player-levels.user.js) looks for the highest placed resonator per player in the current view to guess the player level. - [**Guess Player Level**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/guess-player-levels.user.js) looks for the highest placed resonator per player in the current view to guess the player level.
- [**Highlight Weakened Portals**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/show-portal-weakness.user.js) fill portals with red to indicate portal's state of disrepair. The brighter the color the more attention needed (recharge, shields, resonators). A dashed portal means a resonator is missing. - [**Highlight Weakened Portals**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/show-portal-weakness.user.js) fill portals with red to indicate portal's state of disrepair. The brighter the color the more attention needed (recharge, shields, resonators). A dashed portal means a resonator is missing. Red, needs energy and shields. Orange, only needs energy (either recharge or resonators). Yellow, only needs shields.
- [**Player Tracker**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/player-tracker.user.js) Draws trails for user actions in the last hour. At the last known location theres a tooltip that shows the data in a table. [View screenshot](http://breunigs.github.com/ingress-intel-total-conversion/screenshots/plugin_player_tracker.png). - [**Player Tracker**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/player-tracker.user.js) Draws trails for user actions in the last hour. At the last known location theres a tooltip that shows the data in a table. [View screenshot](http://breunigs.github.com/ingress-intel-total-conversion/screenshots/plugin_player_tracker.png).
- [**Render Limit Increase**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/render-limit-increase.user.js) increases render limits. Good for high density areas (e.g. London, UK) and faster PCs. - [**Render Limit Increase**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/render-limit-increase.user.js) increases render limits. Good for high density areas (e.g. London, UK) and faster PCs.
- [**Resonator Display Zoom Level Decrease**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/resonator-display-zoom-level-decrease.user.js) Resonator start displaying earlier. - [**Resonator Display Zoom Level Decrease**](https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/resonator-display-zoom-level-decrease.user.js) Resonator start displaying earlier.

View File

@ -1,11 +1,11 @@
// ==UserScript== // ==UserScript==
// @id iitc-plugin-show-portal-weakness@vita10gy // @id iitc-plugin-show-portal-weakness@vita10gy
// @name iitc: show portal weakness // @name iitc: show portal weakness
// @version 0.2 // @version 0.3
// @namespace https://github.com/breunigs/ingress-intel-total-conversion // @namespace https://github.com/breunigs/ingress-intel-total-conversion
// @updateURL https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/show-portal-weakness.user.js // @updateURL https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/show-portal-weakness.user.js
// @downloadURL https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/show-portal-weakness.user.js // @downloadURL https://raw.github.com/breunigs/ingress-intel-total-conversion/gh-pages/plugins/show-portal-weakness.user.js
// @description Uses the fill color of the portals to denote if the portal is weak (Needs recharging, missing a resonator, needs shields) // @description Uses the fill color of the portals to denote if the portal is weak (Needs recharging, missing a resonator, needs shields) Red, needs energy and shields. Orange, only needs energy (either recharge or resonators). Yellow, only needs shields.
// @include http://www.ingress.com/intel* // @include http://www.ingress.com/intel*
// @match http://www.ingress.com/intel* // @match http://www.ingress.com/intel*
// ==/UserScript== // ==/UserScript==
@ -24,46 +24,51 @@ window.plugin.portalWeakness.portalAdded = function(data) {
var d = data.portal.options.details; var d = data.portal.options.details;
var portal_weakness = 0; var portal_weakness = 0;
if(getTeam(d) != 0) if(getTeam(d) !== 0) {
{ var only_shields = true;
if(window.getTotalPortalEnergy(d)> 0 && window.getCurrentPortalEnergy(d) < window.getTotalPortalEnergy(d)) var missing_shields = 0;
{ if(window.getTotalPortalEnergy(d) > 0 && window.getCurrentPortalEnergy(d) < window.getTotalPortalEnergy(d)) {
portal_weakness = 1 - (window.getCurrentPortalEnergy(d)/window.getTotalPortalEnergy(d)); portal_weakness = 1 - (window.getCurrentPortalEnergy(d)/window.getTotalPortalEnergy(d));
only_shields = false;
} }
//Ding the portal for every missing sheild. //Ding the portal for every missing sheild.
$.each(d.portalV2.linkedModArray, function(ind, mod) $.each(d.portalV2.linkedModArray, function(ind, mod) {
{ if(mod === null) {
if(mod == null) missing_shields++;
{ portal_weakness += .08;
portal_weakness += .03;
} }
}); });
//Ding the portal for every missing resonator. //Ding the portal for every missing resonator.
var resCount = 0; var resCount = 0;
$.each(d.resonatorArray.resonators, function(ind, reso) $.each(d.resonatorArray.resonators, function(ind, reso) {
{ if(reso === null) {
if(reso == null) {
portal_weakness += .125; portal_weakness += .125;
} only_shields = false;
else { } else {
resCount++; resCount++;
} }
}); });
if(portal_weakness < 0) { if(portal_weakness < 0) {
portal_weakness = 0; portal_weakness = 0;
} }
if(portal_weakness>1) if(portal_weakness > 1) {
{
portal_weakness = 1; portal_weakness = 1;
} }
if(portal_weakness>0) if(portal_weakness > 0) {
{ var fill_opacity = portal_weakness*.7 + .3;
var color = 'red'; var color = 'orange';
var fill_opacity = Math.round((portal_weakness*.8 + .2)*100)/100; if(only_shields) {
var params = {fillColor: color, fillOpacity: fill_opacity, radius: data.portal.options.radius+1}; color = 'yellow';
if(resCount<8) //If only shields are missing, make portal yellow
{ // but fill more than usual since pale yellow is basically invisible
fill_opacity = missing_shields*.15 + .1;
} else if(missing_shields > 0) {
color = 'red';
}
fill_opacity = Math.round(fill_opacity*100)/100;
var params = {fillColor: color, fillOpacity: fill_opacity};
if(resCount < 8) {
// Hole per missing resonator // Hole per missing resonator
var dash = new Array(8-resCount + 1).join("1,4,") + "100,0" var dash = new Array(8-resCount + 1).join("1,4,") + "100,0"
params["dashArray"] = dash; params["dashArray"] = dash;