diff --git a/images/mission-type-hidden.png b/images/mission-type-hidden.png new file mode 100644 index 00000000..ceb1f14a Binary files /dev/null and b/images/mission-type-hidden.png differ diff --git a/images/mission-type-random.png b/images/mission-type-random.png new file mode 100644 index 00000000..f06d3f29 Binary files /dev/null and b/images/mission-type-random.png differ diff --git a/images/mission-type-sequential.png b/images/mission-type-sequential.png new file mode 100644 index 00000000..a8c811b3 Binary files /dev/null and b/images/mission-type-sequential.png differ diff --git a/images/mission-type-unknown.png b/images/mission-type-unknown.png new file mode 100644 index 00000000..dba67fb0 Binary files /dev/null and b/images/mission-type-unknown.png differ diff --git a/plugins/missions.css b/plugins/missions.css index 2cdf7e22..bdefb74b 100644 --- a/plugins/missions.css +++ b/plugins/missions.css @@ -45,6 +45,14 @@ margin-bottom: 2px; } +.plugin-mission-info { + display: inline-block; +} +.plugin-mission-info.time { min-width: 8em; } +.plugin-mission-info.rating { min-width: 6em; } +.plugin-mission-info.players { min-width: 4em; } +.plugin-mission-info.type { min-width: 4em; } + .plugin-mission-info img { height: 14px; margin-right: 8px; diff --git a/plugins/missions.user.js b/plugins/missions.user.js index 75c2875c..213bac77 100644 --- a/plugins/missions.user.js +++ b/plugins/missions.user.js @@ -25,9 +25,9 @@ var decodeWaypoint = function(data) { guid: data[1], title: data[2], typeNum: data[3], - type: [null, "Portal", "Field Trip"][data[3]], + type: [null, 'Portal', 'Field Trip'][data[3]], objectiveNum: data[4], - objective: [null, "Hack this Portal", "Capture or Upgrade Portal", "Create Link from Portal", "Create Field from Portal", "Install a Mod on this Portal", "Take a Photo", "View this Field Trip Waypoint", "Enter the Passphrase"][data[4]], + objective: [null, 'Hack this Portal', 'Capture or Upgrade Portal', 'Create Link from Portal', 'Create Field from Portal', 'Install a Mod on this Portal', 'Take a Photo', 'View this Field Trip Waypoint', 'Enter the Passphrase'][data[4]], }; if (result.typeNum === 1) { result.portal = window.decodeArray.portalSummary(data[5]); @@ -48,7 +48,7 @@ var decodeMission = function(data) { medianCompletionTimeMs: data[6], numUniqueCompletedPlayers: data[7], typeNum: data[8], - type: [null, "Sequential", "Non Sequential", "Hidden"][data[8]], + type: [null, 'Sequential', 'Non Sequential', 'Hidden'][data[8]], waypoints: data[9].map(decodeWaypoint), image: data[10] }; @@ -63,7 +63,7 @@ var decodeMissionSummary = function(data) { }; }; var timeToRemaining = function(t) { - var data = parseInt(t / 86400) + 'd ' + (new Date(t % 86400 * 1000)).toUTCString().replace(/.*(\d{2}):(\d{2}):(\d{2}).*/, "$1h $2m $3s"); + var data = parseInt(t / 86400) + 'd ' + (new Date(t % 86400 * 1000)).toUTCString().replace(/.*(\d{2}):(\d{2}):(\d{2}).*/, '$1h $2m $3s'); data = data.replace('0d', ''); data = data.replace('00h', ''); data = data.replace('00m', ''); @@ -75,6 +75,13 @@ window.plugin.missions = { // 3 weeks. portalMissionsCacheTime: 21 * 24 * 3600 * 1E3, + missionTypeImages: [ + '@@INCLUDEIMAGE:images/mission-type-unknown.png@@', + '@@INCLUDEIMAGE:images/mission-type-sequential.png@@', + '@@INCLUDEIMAGE:images/mission-type-random.png@@', + '@@INCLUDEIMAGE:images/mission-type-hidden.png@@', + ], + onPortalSelected: function(event) { /*if(event.selectedPortalGuid === event.unselectedPortalGuid) { return; @@ -89,7 +96,7 @@ window.plugin.missions = { // After select. setTimeout(function() { // #resodetails - $('.linkdetails').append(''); + $('.linkdetails').append(''); }, 0); }, @@ -313,7 +320,9 @@ window.plugin.missions = { infoWaypoints.className = 'plugin-mission-info waypoints'; infoWaypoints.textContent = cachedMission.waypoints.length + ' '; img = infoWaypoints.insertBefore(document.createElement('img'), infoWaypoints.firstChild); - img.src = 'https://commondatastorage.googleapis.com/ingress.com/img/map_icons/linkmodeicon.png'; + img.src = this.missionTypeImages[cachedMission.typeNum] || this.missionTypeImages[0]; + img.title = cachedMission.type || 'Unknown mission type'; + img.className = 'help'; } return container; @@ -358,12 +367,12 @@ window.plugin.missions = { var perma = '/intel?ll='+lat+','+lng+'&z=17&pll='+lat+','+lng; title.href = perma; - title.addEventListener("click", function(ev) { + title.addEventListener('click', function(ev) { renderPortalDetails(waypoint.portal.guid); ev.preventDefault(); return false; }, false); - title.addEventListener("dblclick", function(ev) { + title.addEventListener('dblclick', function(ev) { zoomToAndShowPortal(waypoint.portal.guid, [lat, lng]); ev.preventDefault(); return false; @@ -632,7 +641,7 @@ window.plugin.missions = { } $('