diff --git a/baystation12.dme b/baystation12.dme index b791a933aec..82704f2406a 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1175,6 +1175,7 @@ #include "code\modules\nano\JSON Writer.dm" #include "code\modules\nano\nanoexternal.dm" #include "code\modules\nano\nanomanager.dm" +#include "code\modules\nano\nanomapgen.dm" #include "code\modules\nano\nanoui.dm" #include "code\modules\organs\blood.dm" #include "code\modules\organs\organ.dm" diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 22ffe69db88..01d02128616 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -84,7 +84,10 @@ crewmemberData["tox"] = round(H.getToxLoss(), 1) crewmemberData["fire"] = round(H.getFireLoss(), 1) crewmemberData["brute"] = round(H.getBruteLoss(), 1) - crewmemberData["name"] = (H.wear_id ? H.wear_id.name : "Unknown") + crewmemberData["name"] = (H.wear_id ? H.wear_id.name : "Unknown") + crewmemberData["rank"] = "Unknown" + if(H.wear_id && istype(H.wear_id, /obj/item/weapon/card/id)) + crewmemberData["rank"] = H.wear_id:rank crewmemberData["area"] = get_area(H) crewmemberData["x"] = pos.x crewmemberData["y"] = pos.y diff --git a/nano/css/icons.css b/nano/css/icons.css index e20af950536..830474518ab 100644 --- a/nano/css/icons.css +++ b/nano/css/icons.css @@ -225,4 +225,37 @@ .uiIcon16.icon-grip-solid-vertical { background-position: -32px -224px; } .uiIcon16.icon-grip-solid-horizontal { background-position: -48px -224px; } .uiIcon16.icon-gripsmall-diagonal-se { background-position: -64px -224px; } -.uiIcon16.icon-grip-diagonal-se { background-position: -80px -224px; } \ No newline at end of file +.uiIcon16.icon-grip-diagonal-se { background-position: -80px -224px; } + +.mapIcon16 { + position: absolute; + width: 16px; + height: 16px; + margin: -8px 0 0 -8px; + background-image: url(uiIcons16Green.png); + background-position: -144px -96px; + background-repeat: no-repeat; +} +.mapIcon16.dead { + background-image: url(uiIcons16Red.png); +} +.mapIcon16.rank-captain { + background-position: -224px -112px; +} +.mapIcon16.rank-headofpersonnel { + background-position: -112px -96px; +} +.mapIcon16.rank-headofsecurity { + background-position: -112px -128px; +} +.mapIcon16.rank-chiefengineer { + background-position: -176px -112px; +} +.mapIcon16.rank-researchdirector { + background-position: -128px -128px; +} +.mapIcon16.rank-chiefmedicalofficer { + background-position: -32px -128px; +} + + diff --git a/nano/css/layout_default.css b/nano/css/layout_default.css index 50902230eb3..66ccd02a8e2 100644 --- a/nano/css/layout_default.css +++ b/nano/css/layout_default.css @@ -5,6 +5,8 @@ body { #uiWrapper { width: 100%; height: 100%; + -ms-user-select: none; + user-select: none; } #uiTitleWrapper { @@ -53,7 +55,6 @@ body { #uiMapHeader { position: relative; clear: both; - padding: 8px; } #uiMapContainer { @@ -93,7 +94,6 @@ body { #uiMapFooter { position: relative; clear: both; - padding: 8px; } #uiContent { @@ -101,6 +101,16 @@ body { padding: 8px; } +#uiMapTooltip { + position: absolute; + right: 10px; + top: 10px; + border: 1px solid #40628a; + background-color: #272727; + padding: 8px; + display: none; +} + #uiLoadingNotice { position: relative; background: url(uiNoticeBackground.jpg) 50% 50%; diff --git a/nano/images/source/uiIcons16Green.xcf b/nano/images/source/uiIcons16Green.xcf new file mode 100644 index 00000000000..a7027a28734 Binary files /dev/null and b/nano/images/source/uiIcons16Green.xcf differ diff --git a/nano/images/source/uiIcons16Red.xcf b/nano/images/source/uiIcons16Red.xcf new file mode 100644 index 00000000000..c07e4f64c7b Binary files /dev/null and b/nano/images/source/uiIcons16Red.xcf differ diff --git a/nano/images/uiIcons16Green.png b/nano/images/uiIcons16Green.png new file mode 100644 index 00000000000..de0e33db1c7 Binary files /dev/null and b/nano/images/uiIcons16Green.png differ diff --git a/nano/images/uiIcons16Red.png b/nano/images/uiIcons16Red.png new file mode 100644 index 00000000000..1c72dfe1430 Binary files /dev/null and b/nano/images/uiIcons16Red.png differ diff --git a/nano/js/nano_base_callbacks.js b/nano/js/nano_base_callbacks.js index 3770dae7ec8..a04f5de2a61 100644 --- a/nano/js/nano_base_callbacks.js +++ b/nano/js/nano_base_callbacks.js @@ -31,26 +31,43 @@ NanoBaseCallbacks = function () $('.linkActive').stopTime('linkPending'); $('.linkActive').removeClass('linkPending'); - $('.linkActive').off('click'); - $('.linkActive').on('click', function (event) { - event.preventDefault(); - var href = $(this).data('href'); - if (href != null && _canClick) - { - _canClick = false; - $('body').oneTime(300, 'enableClick', function () { - _canClick = true; - }); - if (updateData['config']['status'] == 2) - { - $(this).oneTime(300, 'linkPending', function () { - $(this).addClass('linkPending'); - }); - } - window.location.href = href; - } - }); - } + $('.linkActive') + .off('click') + .on('click', function (event) { + event.preventDefault(); + var href = $(this).data('href'); + if (href != null && _canClick) + { + _canClick = false; + $('body').oneTime(300, 'enableClick', function () { + _canClick = true; + }); + if (updateData['config']['status'] == 2) + { + $(this).oneTime(300, 'linkPending', function () { + $(this).addClass('linkPending'); + }); + } + window.location.href = href; + } + }); + }, + mapIcons: function (updateData) { + $('.mapIcon') + .off('mouseenter mouseleave') + .on('mouseenter', + function (event) { + var self = this; + $('#uiMapTooltip') + .html($(this).children('.tooltip').html()) + .show() + .stopTime() + .oneTime(5000, 'hideTooltip', function () { + $(this).fadeOut(500); + }); + } + ); + } }; return { diff --git a/nano/js/nano_state.js b/nano/js/nano_state.js index c230eb39201..818cf603a14 100644 --- a/nano/js/nano_state.js +++ b/nano/js/nano_state.js @@ -65,6 +65,13 @@ NanoStateClass.prototype.onUpdate = function (data) { // Add drag functionality to the map ui $('#uiMap').drags({handle : '#uiMapImage'}); + $('#uiMapTooltip') + .off('click') + .on('click', function (event) { + event.preventDefault(); + $(this).fadeOut(400); + }); + this.mapInitialised = true; } diff --git a/nano/js/nano_utility.js b/nano/js/nano_utility.js index eb3f5b0ffc7..127e74ae383 100644 --- a/nano/js/nano_utility.js +++ b/nano/js/nano_utility.js @@ -147,6 +147,19 @@ Function.prototype.inheritsFrom = function (parentClassOrObject) { return this; }; +if (!String.prototype.trim) { + String.prototype.trim = function () { + return this.replace(/^\s+|\s+$/g, ''); + }; +} + +// Replicate the ckey proc from BYOND +if (!String.prototype.ckey) { + String.prototype.ckey = function () { + return this.replace(/\W/g, '').toLowerCase(); + }; +} + (function($) { $.fn.drags = function(opt) { diff --git a/nano/templates/crew_monitor_map_content.tmpl b/nano/templates/crew_monitor_map_content.tmpl index 2a788364473..6eccc93f0a0 100644 --- a/nano/templates/crew_monitor_map_content.tmpl +++ b/nano/templates/crew_monitor_map_content.tmpl @@ -4,6 +4,10 @@ Used In File(s): \code\game\machinery\computer\crew.dm --> {{for data.crewmembers}} {{if value.sensor_type == 3}} -
+
-
+