diff --git a/_maps/map_files/Delta/delta.dmm b/_maps/map_files/Delta/delta.dmm
index b0db7b1918f..f469b859f2b 100644
--- a/_maps/map_files/Delta/delta.dmm
+++ b/_maps/map_files/Delta/delta.dmm
@@ -58669,9 +58669,6 @@
/area/blueshield)
"cce" = (
/obj/structure/table/wood,
-/obj/machinery/computer/skills{
- req_one_access = null
- },
/turf/simulated/floor/plasteel{
dir = 2;
icon_state = "bcarpet05"
@@ -59610,9 +59607,6 @@
/area/ntrep)
"cdK" = (
/obj/structure/table/wood,
-/obj/machinery/computer/skills{
- req_access_txt = "57"
- },
/turf/simulated/floor/carpet,
/area/ntrep)
"cdL" = (
diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
index 2bd450fd715..28f2f2f5ebf 100644
--- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
@@ -57433,9 +57433,6 @@
})
"bVc" = (
/obj/structure/table/wood,
-/obj/machinery/computer/skills{
- req_access_txt = "57"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/carpet,
/area/ntrep)
@@ -58264,9 +58261,6 @@
/area/blueshield)
"bWI" = (
/obj/structure/table/wood,
-/obj/machinery/computer/skills{
- req_one_access = null
- },
/turf/simulated/floor/plasteel{
icon_state = "bcarpet05"
},
diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index ab691b4aa52..4b21edd5a54 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -27418,7 +27418,6 @@
/area/storage/primary)
"aZf" = (
/obj/structure/table/reinforced,
-/obj/machinery/computer/skills,
/turf/simulated/floor/plasteel{
icon_state = "red"
},
@@ -51699,9 +51698,6 @@
pixel_x = 0;
pixel_y = 32
},
-/obj/machinery/computer/skills{
- req_access_txt = "57"
- },
/turf/simulated/floor/plasteel,
/area/crew_quarters/heads)
"bTd" = (
@@ -61609,9 +61605,6 @@
/area/ntrep)
"cjf" = (
/obj/structure/table/wood,
-/obj/machinery/computer/skills{
- req_access_txt = "57"
- },
/turf/simulated/floor/carpet,
/area/ntrep)
"cjg" = (
@@ -66287,9 +66280,6 @@
/area/blueshield)
"cqJ" = (
/obj/structure/table/wood,
-/obj/machinery/computer/skills{
- req_one_access = null
- },
/turf/simulated/floor/plasteel{
icon_state = "bcarpet05"
},
diff --git a/code/game/jobs/job/supervisor.dm b/code/game/jobs/job/supervisor.dm
index 55ae7f4b3ae..87ab2774384 100644
--- a/code/game/jobs/job/supervisor.dm
+++ b/code/game/jobs/job/supervisor.dm
@@ -33,7 +33,7 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca
shoes = /obj/item/clothing/shoes/brown
head = /obj/item/clothing/head/caphat
l_ear = /obj/item/radio/headset/heads/captain/alt
- glasses = /obj/item/clothing/glasses/sunglasses
+ glasses = /obj/item/clothing/glasses/hud/skills/sunglasses
id = /obj/item/card/id/gold
pda = /obj/item/pda/captain
backpack_contents = list(
@@ -89,6 +89,7 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca
uniform = /obj/item/clothing/under/rank/head_of_personnel
shoes = /obj/item/clothing/shoes/brown
head = /obj/item/clothing/head/hopcap
+ glasses = /obj/item/clothing/glasses/hud/skills/sunglasses
l_ear = /obj/item/radio/headset/heads/hop
id = /obj/item/card/id/silver
pda = /obj/item/pda/heads/hop
@@ -134,6 +135,7 @@ GLOBAL_DATUM_INIT(captain_announcement, /datum/announcement/minor, new(do_newsca
uniform = /obj/item/clothing/under/rank/ntrep
suit = /obj/item/clothing/suit/storage/ntrep
shoes = /obj/item/clothing/shoes/centcom
+ glasses = /obj/item/clothing/glasses/hud/skills/sunglasses
l_ear = /obj/item/radio/headset/heads/ntrep
id = /obj/item/card/id/nanotrasen
l_pocket = /obj/item/lighter/zippo/nt_rep
diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm
index e91e631cc62..3115a4a235b 100644
--- a/code/game/machinery/computer/buildandrepair.dm
+++ b/code/game/machinery/computer/buildandrepair.dm
@@ -159,9 +159,6 @@
name = "Circuit board (Security Records)"
build_path = /obj/machinery/computer/secure_data
origin_tech = "programming=2;combat=2"
-/obj/item/circuitboard/skills
- name = "Circuit board (Employment Records)"
- build_path = /obj/machinery/computer/skills
/obj/item/circuitboard/stationalert_engineering
name = "Circuit Board (Station Alert Console (Engineering))"
build_path = /obj/machinery/computer/station_alert
diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm
deleted file mode 100644
index b7361db01a3..00000000000
--- a/code/game/machinery/computer/skills.dm
+++ /dev/null
@@ -1,328 +0,0 @@
-#define SKILL_DATA_R_LIST 1 // Record list
-#define SKILL_DATA_MAINT 2 // Records maintenance
-#define SKILL_DATA_RECORD 3 // Record
-
-/obj/machinery/computer/skills//TODO:SANITY
- name = "employment records console"
- desc = "Used to view personnel's employment records"
- icon_state = "laptop"
- icon_keyboard = "laptop_key"
- icon_screen = "medlaptop"
- density = 0
- light_color = LIGHT_COLOR_GREEN
- req_one_access = list(ACCESS_HEADS)
- circuit = /obj/item/circuitboard/skills
- var/obj/item/card/id/scan = null
- var/authenticated = null
- var/rank = null
- var/screen = null
- var/datum/data/record/active1 = null
- var/temp = null
- var/printing = null
- //Sorting Variables
- var/sortBy = "name"
- var/order = 1 // -1 = Descending - 1 = Ascending
-
-/obj/machinery/computer/skills/Destroy()
- active1 = null
- return ..()
-
-/obj/machinery/computer/skills/attackby(obj/item/O, mob/user, params)
- if(istype(O, /obj/item/card/id) && !scan)
- user.drop_item()
- O.forceMove(src)
- scan = O
- ui_interact(user)
- return
- return ..()
-
-//Someone needs to break down the dat += into chunks instead of long ass lines.
-/obj/machinery/computer/skills/attack_hand(mob/user)
- if(..())
- return
- if(is_away_level(z))
- to_chat(user, "Unable to establish a connection: You're too far away from the station!")
- return
- add_fingerprint(user)
- ui_interact(user)
-
-/obj/machinery/computer/skills/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1)
- ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open)
- if(!ui)
- ui = new(user, src, ui_key, "skills_data.tmpl", name, 800, 380)
- ui.open()
-
-/obj/machinery/computer/skills/ui_data(mob/user, ui_key = "main", datum/topic_state/state = GLOB.default_state)
- var/data[0]
- data["temp"] = temp
- data["scan"] = scan ? scan.name : null
- data["authenticated"] = authenticated
- data["screen"] = screen
- if(authenticated)
- switch(screen)
- if(SKILL_DATA_R_LIST)
- if(!isnull(GLOB.data_core.general))
- for(var/datum/data/record/R in sortRecord(GLOB.data_core.general, sortBy, order))
- data["records"] += list(list("ref" = "\ref[R]", "id" = R.fields["id"], "name" = R.fields["name"], "rank" = R.fields["rank"], "fingerprint" = R.fields["fingerprint"]))
- if(SKILL_DATA_RECORD)
- var/list/general = list()
- data["general"] = general
- if(istype(active1, /datum/data/record) && GLOB.data_core.general.Find(active1))
- var/list/fields = list()
- general["fields"] = fields
- fields[++fields.len] = list("field" = "Name:", "value" = active1.fields["name"], "name" = "name")
- fields[++fields.len] = list("field" = "ID:", "value" = active1.fields["id"], "name" = "id")
- fields[++fields.len] = list("field" = "Sex:", "value" = active1.fields["sex"], "name" = "sex")
- fields[++fields.len] = list("field" = "Age:", "value" = active1.fields["age"], "name" = "age")
- fields[++fields.len] = list("field" = "Rank:", "value" = active1.fields["rank"], "name" = "rank")
- fields[++fields.len] = list("field" = "Fingerprint:", "value" = active1.fields["fingerprint"], "name" = "fingerprint")
- fields[++fields.len] = list("field" = "Physical Status:", "value" = active1.fields["p_stat"])
- fields[++fields.len] = list("field" = "Mental Status:", "value" = active1.fields["m_stat"])
- general["notes"] = active1.fields["notes"]
- var/list/photos = list()
- general["photos"] = photos
- photos[++photos.len] = list("photo" = active1.fields["photo-south"])
- photos[++photos.len] = list("photo" = active1.fields["photo-west"])
- general["has_photos"] += (active1.fields["photo-south"] || active1.fields["photo-west"] ? 1 : 0)
- general["empty"] = 0
- else
- general["empty"] = 1
- return data
-
-/obj/machinery/computer/skills/Topic(href, href_list)
- if(..())
- return 1
-
- if(!GLOB.data_core.general.Find(active1))
- active1 = null
-
- if(href_list["temp"])
- temp = null
-
- if(href_list["temp_action"])
- var/temp_list = splittext(href_list["temp_action"], "=")
- switch(temp_list[1])
- if("del_all2")
- if(GLOB.PDA_Manifest && GLOB.PDA_Manifest.len)
- GLOB.PDA_Manifest.Cut()
- for(var/datum/data/record/R in GLOB.data_core.security)
- qdel(R)
- setTemp("
All employment records deleted.
")
- if("del_rg2")
- if(active1)
- if(GLOB.PDA_Manifest && GLOB.PDA_Manifest.len)
- GLOB.PDA_Manifest.Cut()
- for(var/datum/data/record/R in GLOB.data_core.medical)
- if(R.fields["name"] == active1.fields["name"] && R.fields["id"] == active1.fields["id"])
- qdel(R)
- QDEL_NULL(active1)
- screen = SKILL_DATA_R_LIST
- if("rank")
- if(active1)
- if(GLOB.PDA_Manifest && GLOB.PDA_Manifest.len)
- GLOB.PDA_Manifest.Cut()
- active1.fields["rank"] = temp_list[2]
- if(temp_list[2] in GLOB.joblist)
- active1.fields["real_rank"] = temp_list[2]
-
- if(href_list["scan"])
- if(scan)
- scan.forceMove(loc)
- if(ishuman(usr) && !usr.get_active_hand())
- usr.put_in_hands(scan)
- scan = null
- else
- var/obj/item/I = usr.get_active_hand()
- if(istype(I, /obj/item/card/id))
- usr.drop_item()
- I.forceMove(src)
- scan = I
-
- if(href_list["login"])
- if(isAI(usr))
- authenticated = usr.name
- rank = "AI"
- else if(isrobot(usr))
- authenticated = usr.name
- var/mob/living/silicon/robot/R = usr
- rank = "[R.modtype] [R.braintype]"
- else if(istype(scan, /obj/item/card/id))
- if(check_access(scan))
- authenticated = scan.registered_name
- rank = scan.assignment
-
- if(authenticated)
- active1 = null
- screen = SKILL_DATA_R_LIST
-
- if(authenticated)
- var/incapable = (usr.stat || usr.restrained() || (!in_range(src, usr) && !issilicon(usr)))
- if(href_list["logout"])
- authenticated = null
- screen = null
- active1 = null
-
- else if(href_list["sort"])
- // Reverse the order if clicked twice
- if(sortBy == href_list["sort"])
- if(order == 1)
- order = -1
- else
- order = 1
- else
- sortBy = href_list["sort"]
- order = initial(order)
-
- else if(href_list["screen"])
- screen = text2num(href_list["screen"])
- if(screen < 1)
- screen = SKILL_DATA_R_LIST
-
- active1 = null
-
- else if(href_list["d_rec"])
- var/datum/data/record/R = locate(href_list["d_rec"])
- if(!GLOB.data_core.general.Find(R))
- setTemp("Record not found!
")
- return 1
- active1 = R
- screen = SKILL_DATA_RECORD
-
- else if(href_list["del_all"])
- var/list/buttons = list()
- buttons[++buttons.len] = list("name" = "Yes", "icon" = "check", "val" = "del_all2=1", "status" = null)
- buttons[++buttons.len] = list("name" = "No", "icon" = "times", "val" = null, "status" = null)
- setTemp("Are you sure you wish to delete all employment records?
", buttons)
-
- else if(href_list["del_rg"])
- if(active1)
- var/list/buttons = list()
- buttons[++buttons.len] = list("name" = "Yes", "icon" = "check", "val" = "del_rg2=1", "status" = null)
- buttons[++buttons.len] = list("name" = "No", "icon" = "times", "val" = null, "status" = null)
- setTemp("Are you sure you wish to delete the record (ALL)?
", buttons)
-
- else if(href_list["new_g"])
- if(GLOB.PDA_Manifest.len)
- GLOB.PDA_Manifest.Cut()
- var/datum/data/record/G = new /datum/data/record()
- G.fields["name"] = "New Record"
- G.fields["id"] = "[add_zero(num2hex(rand(1, 1.6777215E7)), 6)]"
- G.fields["rank"] = "Unassigned"
- G.fields["real_rank"] = "Unassigned"
- G.fields["sex"] = "Male"
- G.fields["age"] = "Unknown"
- G.fields["fingerprint"] = "Unknown"
- G.fields["p_stat"] = "Active"
- G.fields["m_stat"] = "Stable"
- G.fields["species"] = "Human"
- GLOB.data_core.general += G
- active1 = G
-
- else if(href_list["print_r"])
- if(!printing)
- printing = 1
- playsound(loc, "sound/goonstation/machines/printer_dotmatrix.ogg", 50, 1)
- sleep(50)
- var/obj/item/paper/P = new /obj/item/paper(loc)
- P.info = "Employment Record
"
- if(istype(active1, /datum/data/record) && GLOB.data_core.general.Find(active1))
- P.info += {"Name: [active1.fields["name"]] ID: [active1.fields["id"]]
-
\nSex: [active1.fields["sex"]]
-
\nAge: [active1.fields["age"]]
-
\nFingerprint: [active1.fields["fingerprint"]]
-
\nPhysical Status: [active1.fields["p_stat"]]
-
\nMental Status: [active1.fields["m_stat"]]
-
\nEmployment/Skills Summary:[active1.fields["notes"]]
"}
- else
- P.info += "General Record Lost!
"
- P.info += ""
- P.name = "paper - 'Employment Record: [active1.fields["name"]]'"
- printing = 0
-
- if(href_list["field"])
- if(incapable)
- return 1
- var/a1 = active1
- switch(href_list["field"])
- if("name")
- if(istype(active1, /datum/data/record))
- var/t1 = reject_bad_name(clean_input("Please input name:", "Secure. records", active1.fields["name"], null))
- if(!t1 || !length(trim(t1)) || incapable || active1 != a1)
- return 1
- active1.fields["name"] = t1
- if("id")
- if(istype(active1, /datum/data/record))
- var/t1 = copytext(trim(sanitize(input("Please input id:", "Secure. records", active1.fields["id"], null) as text)), 1, MAX_MESSAGE_LEN)
- if(!t1 || incapable || active1 != a1)
- return 1
- active1.fields["id"] = t1
- if("fingerprint")
- if(istype(active1, /datum/data/record))
- var/t1 = copytext(trim(sanitize(input("Please input fingerprint hash:", "Secure. records", active1.fields["fingerprint"], null) as text)), 1, MAX_MESSAGE_LEN)
- if(!t1 || incapable || active1 != a1)
- return 1
- active1.fields["fingerprint"] = t1
- if("sex")
- if(istype(active1, /datum/data/record))
- if(active1.fields["sex"] == "Male")
- active1.fields["sex"] = "Female"
- else
- active1.fields["sex"] = "Male"
- if("age")
- if(istype(active1, /datum/data/record))
- var/t1 = input("Please input age:", "Secure. records", active1.fields["age"], null) as num
- if(!t1 || incapable || active1 != a1)
- return 1
- active1.fields["age"] = t1
- if("rank")
- var/list/L = list("Head of Personnel", "Captain", "AI")
- //This was so silly before the change. Now it actually works without beating your head against the keyboard. /N
- if(istype(active1, /datum/data/record) && L.Find(rank))
- var/list/buttons = list()
- for(var/rank in GLOB.joblist)
- buttons[++buttons.len] = list("name" = rank, "icon" = null, "val" = "rank=[rank]", "status" = (active1.fields["rank"] == rank ? "selected" : null))
- setTemp("Rank
", buttons)
- else
- setTemp("You do not have the required rank to do this!")
- if("species")
- if(istype(active1, /datum/data/record))
- var/t1 = copytext(trim(sanitize(input("Please enter race:", "General records", active1.fields["species"], null) as message)), 1, MAX_MESSAGE_LEN)
- if(!t1 || incapable || active1 != a1)
- return 1
- active1.fields["species"] = t1
- return 1
-
-/obj/machinery/computer/skills/proc/setTemp(text, list/buttons = list())
- temp = list("text" = text, "buttons" = buttons, "has_buttons" = buttons.len > 0)
-
-/obj/machinery/computer/skills/emp_act(severity)
- if(stat & (BROKEN|NOPOWER))
- ..(severity)
- return
-
- for(var/datum/data/record/R in GLOB.data_core.security)
- if(prob(10/severity))
- switch(rand(1,6))
- if(1)
- R.fields["name"] = "[pick(pick(GLOB.first_names_male), pick(GLOB.first_names_female))] [pick(GLOB.last_names)]"
- if(2)
- R.fields["sex"] = pick("Male", "Female")
- if(3)
- R.fields["age"] = rand(5, 85)
- if(4)
- R.fields["criminal"] = pick(SEC_RECORD_STATUS_NONE, SEC_RECORD_STATUS_ARREST, SEC_RECORD_STATUS_INCARCERATED, SEC_RECORD_STATUS_PAROLLED, SEC_RECORD_STATUS_RELEASED)
- if(5)
- R.fields["p_stat"] = pick("*Unconcious*", "Active", "Physically Unfit")
- if(6)
- R.fields["m_stat"] = pick("*Insane*", "*Unstable*", "*Watch*", "Stable")
- continue
-
- else if(prob(1))
- qdel(R)
- continue
-
- ..(severity)
-
-#undef SKILL_DATA_R_LIST
-#undef SKILL_DATA_MAINT
-#undef SKILL_DATA_RECORD
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index be004a82912..ac5be74f96d 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -48,7 +48,7 @@
/obj/structure/closet/secure_closet/hop/New()
..()
- new /obj/item/clothing/glasses/sunglasses(src)
+ new /obj/item/clothing/glasses/hud/skills/sunglasses(src)
new /obj/item/clothing/head/hopcap(src)
new /obj/item/cartridge/hop(src)
new /obj/item/radio/headset/heads/hop(src)
@@ -251,7 +251,8 @@
new /obj/item/melee/baton/loaded(src)
new /obj/item/clothing/glasses/sunglasses(src)
new /obj/item/clothing/glasses/hud/security/sunglasses/read_only(src)
- new /obj/item/clothing/glasses/hud/health/sunglasses
+ new /obj/item/clothing/glasses/hud/health/sunglasses(src)
+ new /obj/item/clothing/glasses/hud/skills/sunglasses(src)
new /obj/item/clothing/head/beret/centcom/officer(src)
new /obj/item/clothing/head/beret/centcom/officer/navy(src)
new /obj/item/clothing/suit/armor/vest/blueshield(src)
@@ -279,7 +280,7 @@
new /obj/item/storage/briefcase(src)
new /obj/item/paicard(src)
new /obj/item/flash(src)
- new /obj/item/clothing/glasses/sunglasses(src)
+ new /obj/item/clothing/glasses/hud/skills/sunglasses(src)
new /obj/item/clothing/gloves/color/white(src)
new /obj/item/clothing/shoes/centcom(src)
new /obj/item/clothing/under/lawyer/oldman(src)
diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm
index 4d2255a09ab..67e001987d2 100644
--- a/code/modules/clothing/glasses/hud.dm
+++ b/code/modules/clothing/glasses/hud.dm
@@ -196,3 +196,17 @@
/obj/item/clothing/glasses/hud/health/tajblind/attack_self()
toggle_veil()
+
+/obj/item/clothing/glasses/hud/skills
+ name = "Skills HUD"
+ desc = "A heads-up display capable of showing the employment history records of NT crew members."
+ icon_state = "material"
+ item_state = "glasses"
+
+/obj/item/clothing/glasses/hud/skills/sunglasses
+ name = "Skills HUD Sunglasses"
+ desc = "Sunglasses with a build-in skills HUD, showing the employment history of nearby NT crew members."
+ see_in_dark = 1 // None of these three can be converted to booleans. Do not try it.
+ flash_protect = 1
+ tint = 1
+ prescription_upgradable = TRUE
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 3739e337542..cf517dc7389 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -364,6 +364,17 @@
msg += "Security records: \[View comment log\] \[Add comment\]\n"
msg += "Latest entry: [commentLatest]\n"
+ if(hasHUD(user, "skills"))
+ var/perpname = get_visible_name(TRUE)
+ var/skills
+
+ if(perpname)
+ for(var/datum/data/record/E in GLOB.data_core.general)
+ if(E.fields["name"] == perpname)
+ skills = E.fields["notes"]
+ if(skills)
+ msg += "Employment records: [skills]\n"
+
if(hasHUD(user,"medical"))
var/perpname = get_visible_name(TRUE)
var/medical = "None"
@@ -404,8 +415,11 @@
return !istype(CIH,/obj/item/organ/internal/cyberimp/eyes/hud/security) && S && S.read_only
if("medical")
return istype(H.glasses, /obj/item/clothing/glasses/hud/health) || istype(CIH,/obj/item/organ/internal/cyberimp/eyes/hud/medical)
+ if("skills")
+ return istype(H.glasses, /obj/item/clothing/glasses/hud/skills)
else
return FALSE
+
else if(isrobot(M) || isAI(M)) //Stand-in/Stopgap to prevent pAIs from freely altering records, pending a more advanced Records system
switch(hudtype)
if("security")
@@ -420,6 +434,8 @@
switch(hudtype)
if("security")
return TRUE
+ if("skills")
+ return TRUE
else
return FALSE
else
diff --git a/code/modules/research/designs/equipment_designs.dm b/code/modules/research/designs/equipment_designs.dm
index eb0901b71e2..af6fc828ad3 100644
--- a/code/modules/research/designs/equipment_designs.dm
+++ b/code/modules/research/designs/equipment_designs.dm
@@ -71,6 +71,16 @@
build_path = /obj/item/clothing/glasses/hud/security/night
category = list("Equipment")
+/datum/design/skills_hud
+ name = "Skills HUD"
+ desc = "A heads-up display that scans the humans in view and shows a summary of their NT employment history."
+ id = "skills_hud"
+ req_tech = list("magnets" = 3, "combat" = 2)
+ build_type = PROTOLATHE
+ materials = list(MAT_METAL = 500, MAT_GLASS = 500)
+ build_path = /obj/item/clothing/glasses/hud/skills
+ category = list("Equipment")
+
/datum/design/mesons
name = "Optical Meson Scanners"
desc = "Used for seeing walls, floors, and stuff through anything."
diff --git a/nano/templates/skills_data.tmpl b/nano/templates/skills_data.tmpl
deleted file mode 100644
index 6f8fb1d6a0d..00000000000
--- a/nano/templates/skills_data.tmpl
+++ /dev/null
@@ -1,199 +0,0 @@
-
-
-
-
-{{if !data.temp && data.screen == 1}}
-
-{{/if}}
-
-
-
-
- Confirm Identity:
-
-
- {{:helper.link(data.scan ? data.scan : "----------", 'eject', {'scan' : 1}, null, data.scan ? 'itemContentWide' : 'fixedLeft')}}
-
-
-
-{{if data.authenticated}}
- {{if data.screen == 1}}
-
-
{{:helper.link('New Record', 'plus', {'new_g' : 1})}}
-
- Record List
-
-
-
-
-
-
- | {{:helper.link('Name', null, {'sort' : 'name'}, null, 'infoButton')}} |
- {{:helper.link('ID', null, {'sort' : 'id'}, null, 'infoButton')}} |
- {{:helper.link('Rank', null, {'sort' : 'rank'}, null, 'infoButton')}} |
- {{:helper.link('Fingerprints', null, {'sort' : 'fingerprint'}, null, 'infoButton')}} |
-
-
-
- {{for data.records}}
-
- | {{:helper.link(value.name, 'user', {'d_rec' : value.ref}, null, 'infoButton')}} |
- {{:value.id}} |
- {{:value.rank}} |
- {{:value.fingerprint}} |
-
- {{/for}}
-
-
-
-
- Menu
- {{:helper.link('Record Maintenance', 'wrench', {'screen' : 2})}}
- {{:helper.link('Logout', 'lock', {'logout' : 1})}}
- {{else data.screen == 2}}
- Records Maintenance
- {{:helper.link('Backup To Disk', 'download', {'back' : 1}, 'disabled')}}
- {{:helper.link('Upload From disk', 'upload', {'u_load' : 1}, 'disabled')}}
- {{:helper.link('Delete All Records', 'trash', {'del_all' : 1})}}
- {{:helper.link('Back', 'arrow-left', {'screen' : 1})}}
- {{else data.screen == 3}}
- Employment Record
- General Data
- {{if data.general.empty}}
- General Record Lost!
- {{else}}
-
-
-
- {{for data.general.fields}}
-
-
- {{:value.field}}
-
-
- {{:helper.link(value.value, value.name ? 'pencil' : 'user-times', {'field' : value.name}, value.name ? null : 'disabled')}}
-
-
- {{/for}}
- |
-
- {{if data.general.has_photos}}
- {{for data.general.photos}}
- {{if value.photo}}
-
- {{/if}}
- {{/for}}
- {{/if}}
- |
-
-
-
- Employment Data
-
-
- Employment/skills summary:
-
-
- {{:data.general.notes ? data.general.notes : 'None'}}
-
-
- {{/if}}
- Menu
- {{:helper.link('Delete Record (All)', 'trash', {'del_rg' : 1})}}
- {{:helper.link('Print Record', 'print', {'print_r' : 1})}}
- {{:helper.link('Back', 'arrow-left', {'screen' : 1})}}
- {{/if}}
-{{else}}
- Menu
- {{:helper.link('Login', 'unlock', {'login' : 1})}}
-{{/if}}
-
-{{if data.temp}}
-
-
- {{if data.temp.notice}}
-
{{:data.temp.text}}
- {{else}}
-
{{:data.temp.text}}
- {{/if}}
-
-
- {{if data.temp.has_buttons}}
-
-
-
- {{for data.temp.buttons}}
- {{:helper.link(value.name, value.icon, {'temp' : 1, 'temp_action' : value.val}, value.status)}}
- {{/for}}
-
-
-
- {{/if}}
-
-
-
{{:helper.link('Clear screen', 'home', {'temp' : 1})}}
-
-
-
-{{/if}}
\ No newline at end of file
diff --git a/paradise.dme b/paradise.dme
index 82b9e8dbf14..0966b568faf 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -732,7 +732,6 @@
#include "code\game\machinery\computer\robot.dm"
#include "code\game\machinery\computer\salvage_ship.dm"
#include "code\game\machinery\computer\security.dm"
-#include "code\game\machinery\computer\skills.dm"
#include "code\game\machinery\computer\sm_monitor.dm"
#include "code\game\machinery\computer\specops_shuttle.dm"
#include "code\game\machinery\computer\station_alert.dm"