artifacts:
- like the selected portal, are not removed when off screen/below min level - shard/target details shown on portal details for jarvis shards
This commit is contained in:
parent
15537e4e95
commit
a595c2f11d
@ -136,16 +136,19 @@ window.artifact.getArtifactEntities = function() {
|
||||
return entities;
|
||||
}
|
||||
|
||||
// quick test for portal being relevant to artifacts - of any type
|
||||
window.artifact.isInterestingPortal = function(guid) {
|
||||
return guid in artifact.portalInfo;
|
||||
}
|
||||
|
||||
// get the artifact data for a specified artifact id (e.g. 'jarvis'), if it exists - otherwise returns something 'false'y
|
||||
window.artifact.getPortalData = function(guid,artifactId) {
|
||||
return artifact.portalInfo[guid] && artifact.portalInfo[guid][artifactId];
|
||||
}
|
||||
|
||||
window.artifact.updateLayer = function() {
|
||||
artifact._layer.clearLayers();
|
||||
|
||||
// TODO: icons
|
||||
// //commondatastorage.googleapis.com/ingress.com/img/map_icons/marker_images/jarvis_shard.png
|
||||
// //commondatastorage.googleapis.com/ingress.com/img/map_icons/marker_images/jarvis_shard_target_0.png
|
||||
// (replace '0' with count of shards at the target portal)
|
||||
|
||||
|
||||
$.each(artifact.portalInfo, function(guid,data) {
|
||||
var latlng = L.latLng ([data._entityData.locationE6.latE6/1E6, data._entityData.locationE6.lngE6/1E6]);
|
||||
|
||||
|
@ -33,7 +33,8 @@ window.Render.prototype.clearPortalsBelowLevel = function(level) {
|
||||
var count = 0;
|
||||
for (var guid in window.portals) {
|
||||
var p = portals[guid];
|
||||
if (parseInt(p.options.level) < level && guid !== selectedPortal) {
|
||||
// clear portals below specified level - unless it's the selected portal, or it's relevant to artifacts
|
||||
if (parseInt(p.options.level) < level && guid !== selectedPortal && !artifact.isInterestingPortal(guid)) {
|
||||
this.deletePortalEntity(guid);
|
||||
count++;
|
||||
}
|
||||
@ -46,7 +47,7 @@ window.Render.prototype.clearEntitiesOutsideBounds = function(bounds) {
|
||||
|
||||
for (var guid in window.portals) {
|
||||
var p = portals[guid];
|
||||
if (!bounds.contains (p.getLatLng()) && guid !== selectedPortal) {
|
||||
if (!bounds.contains (p.getLatLng()) && guid !== selectedPortal && !artifact.isInterestingPortal(guid)) {
|
||||
this.deletePortalEntity(guid);
|
||||
pcount++;
|
||||
}
|
||||
@ -128,6 +129,7 @@ window.Render.prototype.endRenderPass = function() {
|
||||
|
||||
// check to see if there's eny entities we haven't seen. if so, delete them
|
||||
for (var guid in window.portals) {
|
||||
// special case for selected portal - it's kept even if not seen
|
||||
if (!(guid in this.seenPortalsGuid) && guid !== selectedPortal) {
|
||||
this.deletePortalEntity(guid);
|
||||
}
|
||||
@ -544,7 +546,7 @@ window.Render.prototype.resetPortalClusters = function() {
|
||||
var guid = c[i];
|
||||
var p = window.portals[guid];
|
||||
var layerGroup = portalsFactionLayers[parseInt(p.options.level)][p.options.team];
|
||||
if (i<this.CLUSTER_PORTAL_LIMIT || p.options.guid == selectedPortal) {
|
||||
if (i<this.CLUSTER_PORTAL_LIMIT || p.options.guid == selectedPortal || artifact.isInterestingPortal(p.options.guid)) {
|
||||
if (!layerGroup.hasLayer(p)) {
|
||||
layerGroup.addLayer(p);
|
||||
}
|
||||
@ -570,7 +572,7 @@ window.Render.prototype.addPortalToMapLayer = function(portal) {
|
||||
// now, at this point, we could match the above re-clustr code - sorting, and adding/removing as necessary
|
||||
// however, it won't make a lot of visible difference compared to just pushing to the end of the list, then
|
||||
// adding to the visible layer if the list is below the limit
|
||||
if (this.portalClusters[cid].length < this.CLUSTER_PORTAL_LIMIT || portal.options.guid == selectedPortal) {
|
||||
if (this.portalClusters[cid].length < this.CLUSTER_PORTAL_LIMIT || portal.options.guid == selectedPortal || artifact.isInterestingPortal(portal.options.guid)) {
|
||||
portalsFactionLayers[parseInt(portal.options.level)][portal.options.team].addLayer(portal);
|
||||
}
|
||||
}
|
||||
|
@ -46,6 +46,26 @@ window.renderPortalDetails = function(guid) {
|
||||
linkedFields, getAttackApGainText(d),
|
||||
getHackDetailsText(d), getMitigationText(d)
|
||||
];
|
||||
|
||||
// artifact details
|
||||
|
||||
//niantic hard-code the fact it's just jarvis shards/targets - so until more examples exist, we'll do the same
|
||||
//(at some future point we can iterate through all the artifact types and add rows as needed)
|
||||
var jarvisArtifact = artifact.getPortalData (guid, 'jarvis');
|
||||
if (jarvisArtifact) {
|
||||
// the genFourColumnTable function below doesn't handle cases where one column is null and the other isn't - so default to *someting* in both columns
|
||||
var target = ['',''], shards = ['shards','(none)'];
|
||||
if (jarvisArtifact.target) {
|
||||
target = ['target', '<span class="'+TEAM_TO_CSS[jarvisArtifact.target]+'">'+(jarvisArtifact.target==TEAM_RES?'Resistance':'Enlightened')+'</span>'];
|
||||
}
|
||||
if (jarvisArtifact.fragments) {
|
||||
shards = [jarvisArtifact.fragments.length>1?'shards':'shard', '#'+jarvisArtifact.fragments.join(', #')];
|
||||
}
|
||||
|
||||
randDetails.push (target, shards);
|
||||
}
|
||||
|
||||
|
||||
randDetails = '<table id="randdetails">' + genFourColumnTable(randDetails) + '</table>';
|
||||
|
||||
var resoDetails = '<table id="resodetails">' + getResonatorDetails(d) + '</table>';
|
||||
|
Loading…
x
Reference in New Issue
Block a user