\[ "
diff --git a/code/modules/admin/admin_investigate.dm b/code/modules/admin/admin_investigate.dm
index f2656bd309c..02c223e5074 100644
--- a/code/modules/admin/admin_investigate.dm
+++ b/code/modules/admin/admin_investigate.dm
@@ -1,4 +1,4 @@
-atom/proc/investigate_log(message, subject)
+/atom/proc/investigate_log(message, subject)
if(!message || !subject)
return
var/F = file("[GLOB.log_directory]/[subject].html")
@@ -18,4 +18,4 @@ atom/proc/investigate_log(message, subject)
if(!fexists(F))
to_chat(src, "No [subject] logfile was found.")
return
- src << browse(F,"window=investigate[subject];size=800x300")
\ No newline at end of file
+ src << browse(F,"window=investigate[subject];size=800x300")
diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm
index a126dbb225f..98c26857a25 100644
--- a/code/modules/admin/topic.dm
+++ b/code/modules/admin/topic.dm
@@ -2243,3 +2243,20 @@
error_viewer.show_to(owner, locate(href_list["viewruntime_backto"]), href_list["viewruntime_linear"])
else
error_viewer.show_to(owner, null, href_list["viewruntime_linear"])
+
+ else if(href_list["showrelatedacc"])
+ var/client/C = locate(href_list["client"]) in GLOB.clients
+ var/list/thing_to_check
+ if(href_list["showrelatedacc"] == "cid")
+ thing_to_check = C.related_accounts_cid
+ else
+ thing_to_check = C.related_accounts_ip
+ thing_to_check = splittext(thing_to_check, ", ")
+
+
+ var/dat = "Related accounts by [uppertext(href_list["showrelatedacc"])]: "
+ for(var/thing in thing_to_check)
+ dat += "[thing] "
+
+ usr << browse(dat, "size=420x300")
+
diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm
index 0c84d2e43ff..06e921399e8 100644
--- a/code/modules/client/client_defines.dm
+++ b/code/modules/client/client_defines.dm
@@ -40,6 +40,7 @@
//things that require the database//
////////////////////////////////////
var/player_age = -1 //Used to determine how old the account is - in days.
+ var/player_join_date = null //Date that this account was first seen in the server
var/related_accounts_ip = "Requires database" //So admins know why it isn't working - Used to determine what other accounts previously logged in from this ip
var/related_accounts_cid = "Requires database" //So admins know why it isn't working - Used to determine what other accounts previously logged in from this computer id
var/account_join_date = null //Date of byond account creation in ISO 8601 format
diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm
index f768eb7f61e..ad35fd02714 100644
--- a/code/modules/client/client_procs.dm
+++ b/code/modules/client/client_procs.dm
@@ -436,14 +436,15 @@ GLOBAL_LIST(external_rsc_urls)
if(!account_join_date)
account_join_date = "Error"
account_age = -1
- var/datum/DBQuery/query_get_client_age = SSdbcore.NewQuery("SELECT DATEDIFF(Now(),firstseen), accountjoindate, DATEDIFF(Now(),accountjoindate) FROM [format_table_name("player")] WHERE ckey = '[sql_ckey]'")
+ var/datum/DBQuery/query_get_client_age = SSdbcore.NewQuery("SELECT firstseen, DATEDIFF(Now(),firstseen), accountjoindate, DATEDIFF(Now(),accountjoindate) FROM [format_table_name("player")] WHERE ckey = '[sql_ckey]'")
if(!query_get_client_age.Execute())
return
if(query_get_client_age.NextRow())
- player_age = text2num(query_get_client_age.item[1])
+ player_join_date = query_get_client_age.item[1]
+ player_age = text2num(query_get_client_age.item[2])
if(!account_join_date)
- account_join_date = query_get_client_age.item[2]
- account_age = text2num(query_get_client_age.item[3])
+ account_join_date = query_get_client_age.item[3]
+ account_age = text2num(query_get_client_age.item[4])
if(!account_age)
account_join_date = sanitizeSQL(findJoinDate())
if(!account_join_date)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
index 43cf70bbe2f..81e36923768 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm
@@ -19,20 +19,19 @@
/obj/machinery/gibber/autogibber
var/turf/input_plate
-/obj/machinery/gibber/autogibber/New()
- ..()
- spawn(5)
- for(var/i in GLOB.cardinal)
- var/obj/machinery/mineral/input/input_obj = locate( /obj/machinery/mineral/input, get_step(src.loc, i) )
- if(input_obj)
- if(isturf(input_obj.loc))
- input_plate = input_obj.loc
- qdel(input_obj)
- break
+/obj/machinery/gibber/autogibber/Initialize()
+ . = ..()
+ for(var/i in GLOB.cardinal)
+ var/obj/machinery/mineral/input/input_obj = locate() in get_step(loc, i)
+ if(input_obj)
+ if(isturf(input_obj.loc))
+ input_plate = input_obj.loc
+ qdel(input_obj)
+ break
- if(!input_plate)
- GLOB.world_game_log << "a [src] didn't find an input plate."
- return
+ if(!input_plate)
+ CRASH("Didn't find an input plate.")
+ return
/obj/machinery/gibber/autogibber/Bumped(atom/A)
if(!input_plate) return
@@ -45,10 +44,10 @@
M.gib()
-/obj/machinery/gibber/New()
- ..()
+/obj/machinery/gibber/Initialize()
+ . = ..()
add_overlay("grjam")
- var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/gibber(null)
+ var/obj/item/weapon/circuitboard/machine/gibber/B = new
B.apply_default_parts(src)
/obj/item/weapon/circuitboard/machine/gibber
diff --git a/code/modules/hydroponics/grown/nettle.dm b/code/modules/hydroponics/grown/nettle.dm
index 264261dd69b..82cc192344b 100644
--- a/code/modules/hydroponics/grown/nettle.dm
+++ b/code/modules/hydroponics/grown/nettle.dm
@@ -50,17 +50,22 @@
/obj/item/weapon/grown/nettle/pickup(mob/living/user)
..()
if(!iscarbon(user))
- return 0
+ return FALSE
var/mob/living/carbon/C = user
if(C.gloves)
- return 0
+ return FALSE
+ if(ishuman(C))
+ var/mob/living/carbon/human/H = C
+ if(H.dna && H.dna.species)
+ if(PIERCEIMMUNE in H.dna.species.species_traits)
+ return FALSE
var/hit_zone = (C.held_index_to_dir(C.active_hand_index) == "l" ? "l_":"r_") + "arm"
var/obj/item/bodypart/affecting = C.get_bodypart(hit_zone)
if(affecting)
if(affecting.receive_damage(0, force))
C.update_damage_overlays()
to_chat(C, "The nettle burns your bare hand!")
- return 1
+ return TRUE
/obj/item/weapon/grown/nettle/afterattack(atom/A as mob|obj, mob/user,proximity)
if(!proximity) return
diff --git a/code/modules/language/language_menu.dm b/code/modules/language/language_menu.dm
index 87fc1e0d528..3a30c6c11a6 100644
--- a/code/modules/language/language_menu.dm
+++ b/code/modules/language/language_menu.dm
@@ -76,7 +76,7 @@
switch(action)
if("select_default")
- if(language_datum)
+ if(language_datum && AM.can_speak_in_language(language_datum))
language_holder.selected_default_language = language_datum
. = TRUE
if("grant_language")
diff --git a/code/modules/mapping/ruins.dm b/code/modules/mapping/ruins.dm
index e0b5555492c..a5d07591b52 100644
--- a/code/modules/mapping/ruins.dm
+++ b/code/modules/mapping/ruins.dm
@@ -20,7 +20,7 @@
if(ruins && ruins.len)
ruin = ruins[pick(ruins)]
else
- world.log << "Ruin loader had no ruins to pick from with [budget] left to spend."
+ log_world("Ruin loader had no ruins to pick from with [budget] left to spend.")
break
// Can we afford it
if(ruin.cost > budget)
@@ -47,7 +47,7 @@
if(!valid)
continue
- world.log << "Ruin \"[ruin.name]\" placed at ([T.x], [T.y], [T.z])"
+ log_world("Ruin \"[ruin.name]\" placed at ([T.x], [T.y], [T.z])")
var/obj/effect/ruin_loader/R = new /obj/effect/ruin_loader(T)
R.Load(ruins,ruin)
@@ -57,7 +57,7 @@
break
if(!overall_sanity)
- world.log << "Ruin loader gave up with [budget] left to spend."
+ log_world("Ruin loader gave up with [budget] left to spend.")
/obj/effect/ruin_loader
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 2f7f3e3b0bf..8423c55ef33 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -54,7 +54,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER)
var/deadchat_name
/mob/dead/observer/Initialize()
- invisibility = GLOB.observer_default_invisibility
+ set_invisibility(GLOB.observer_default_invisibility)
verbs += /mob/dead/observer/proc/dead_tele
@@ -789,13 +789,25 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(!invisibility)
to_chat(user, "It seems extremely obvious.")
+/mob/dead/observer/proc/set_invisibility(value)
+ invisibility = value
+ if(!value)
+ set_light(1, 2)
+ else
+ set_light(0, 0)
+
// Ghosts have no momentum, being massless ectoplasm
/mob/dead/observer/Process_Spacemove(movement_dir)
return 1
+/mob/dead/observer/vv_edit_var(var_name, var_value)
+ . = ..()
+ if(var_name == "invisibility")
+ set_invisibility(invisibility) // updates light
+
/proc/set_observer_default_invisibility(amount, message=null)
for(var/mob/dead/observer/G in GLOB.player_list)
- G.invisibility = amount
+ G.set_invisibility(amount)
if(message)
to_chat(G, message)
GLOB.observer_default_invisibility = amount
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 6ef36096dc8..a35e15dc7b7 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -1116,7 +1116,7 @@
M.visible_message("Unfortunately, [M] just can't seem to hold onto [src]!")
return
if(iscarbon(M) && (!riding_datum.equip_buckle_inhands(M, 1)))
- M.visible_message("[M] can't climb onto [src] because his hands are full!")
+ M.visible_message("[M] can't climb onto [src] because [M.p_their()] hands are full!")
return
. = ..(M, force, check_loc)
diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm
index a0078013c7a..d5a9bcadd77 100644
--- a/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm
+++ b/code/modules/mob/living/simple_animal/hostile/retaliate/ghost.dm
@@ -41,6 +41,7 @@
/mob/living/simple_animal/hostile/retaliate/ghost/Initialize()
. = ..()
give_hair()
+ set_light(1, 2) // same glowing as visible player ghosts
if(random)
switch(rand(0,1))
if(0)
@@ -59,4 +60,4 @@
ghost_facial_hair = mutable_appearance('icons/mob/human_face.dmi', "facial_[ghost_facial_hair_style]", -HAIR_LAYER)
ghost_facial_hair.alpha = 200
ghost_facial_hair.color = ghost_facial_hair_color
- add_overlay(ghost_facial_hair)
\ No newline at end of file
+ add_overlay(ghost_facial_hair)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index e2b8d86e91e..450564be9d1 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -567,7 +567,7 @@
var/datum/map_config/cached = SSmapping.next_map_config
if(cached)
stat(null, "Next Map: [cached.map_name]")
- stat("Round ID:", "[GLOB.round_id ? GLOB.round_id : "NULL"]")
+ stat(null, "Round ID: [GLOB.round_id ? GLOB.round_id : "NULL"]")
stat(null, "Server Time: [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")]")
stat(null, "Station Time: [worldtime2text()]")
stat(null, "Time Dilation: [round(SStime_track.time_dilation_current,1)]% AVG:([round(SStime_track.time_dilation_avg_fast,1)]%, [round(SStime_track.time_dilation_avg,1)]%, [round(SStime_track.time_dilation_avg_slow,1)]%)")
diff --git a/code/modules/modular_computers/computers/item/computer_ui.dm b/code/modules/modular_computers/computers/item/computer_ui.dm
index c574b759cb4..5aadc31bb40 100644
--- a/code/modules/modular_computers/computers/item/computer_ui.dm
+++ b/code/modules/modular_computers/computers/item/computer_ui.dm
@@ -34,7 +34,7 @@
var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
assets.send(user)
- ui = new(user, src, ui_key, "computer_main", "NTOS Main menu", 400, 500, master_ui, state)
+ ui = new(user, src, ui_key, "ntos_main", "NTOS Main menu", 400, 500, master_ui, state)
ui.open()
ui.set_autoupdate(state = 1)
diff --git a/code/modules/modular_computers/file_system/program.dm b/code/modules/modular_computers/file_system/program.dm
index 3935112e7b5..4e5e0c24bb0 100644
--- a/code/modules/modular_computers/file_system/program.dm
+++ b/code/modules/modular_computers/file_system/program.dm
@@ -16,6 +16,10 @@
var/network_destination = null // Optional string that describes what NTNet server/system this program connects to. Used in default logging.
var/available_on_ntnet = 1 // Whether the program can be downloaded from NTNet. Set to 0 to disable.
var/available_on_syndinet = 0 // Whether the program can be downloaded from SyndiNet (accessible via emagging the computer). Set to 1 to enable.
+ var/tgui_id // ID of TG UI interface
+ var/ui_style // ID of custom TG UI style (optional)
+ var/ui_x = 575 // Default size of TG UI window, in pixels
+ var/ui_y = 700
var/ui_header = null // Example: "something.gif" - a header image that will be rendered in computer's UI when this program is running at background. Images are taken from /icons/program_icons. Be careful not to use too large images!
/datum/computer_file/program/New(obj/item/device/modular_computer/comp = null)
@@ -142,13 +146,19 @@
generate_network_log("Connection to [network_destination] closed.")
return 1
-// This is called every tick when the program is enabled. Ensure you do parent call if you override it. If parent returns 1 continue with UI initialisation.
/datum/computer_file/program/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
- if(program_state != PROGRAM_STATE_ACTIVE) // Our program was closed. Close the ui if it exists.
- return computer.ui_interact(user)
- return 1
+ ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
+ if(!ui && tgui_id)
+ var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
+ assets.send(user)
+ ui = new(user, src, ui_key, tgui_id, filedesc, ui_x, ui_y, state = state)
+
+ if(ui_style)
+ ui.set_style(ui_style)
+ ui.set_autoupdate(state = 1)
+ ui.open()
// CONVENTIONS, READ THIS WHEN CREATING NEW PROGRAM AND OVERRIDING THIS PROC:
// Topic calls are automagically forwarded from NanoModule this program contains.
diff --git a/code/modules/modular_computers/file_system/programs/airestorer.dm b/code/modules/modular_computers/file_system/programs/airestorer.dm
index 96a4b4ec2b8..04063aeeca5 100644
--- a/code/modules/modular_computers/file_system/programs/airestorer.dm
+++ b/code/modules/modular_computers/file_system/programs/airestorer.dm
@@ -1,8 +1,6 @@
-
-
/datum/computer_file/program/aidiag
filename = "aidiag"
- filedesc = "AI Maintenance Utility"
+ filedesc = "AI Integrity Restorer"
program_icon_state = "generic"
extended_desc = "This program is capable of reconstructing damaged AI systems. Requires direct AI connection via intellicard slot."
size = 12
@@ -10,6 +8,10 @@
usage_flags = PROGRAM_CONSOLE
transfer_access = GLOB.access_heads
available_on_ntnet = 1
+ tgui_id = "ntos_ai_restorer"
+ ui_x = 600
+ ui_y = 400
+
var/restoring = FALSE
/datum/computer_file/program/aidiag/proc/get_ai(cardcheck)
@@ -114,12 +116,6 @@
return data
-/datum/computer_file/program/aidiag/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
- ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
- if(!ui)
- ui = new(user, src, ui_key, "ai_restorer", "Integrity Restorer", 600, 400, master_ui, state)
- ui.open()
-
/datum/computer_file/program/aidiag/kill_program(forced)
restoring = FALSE
return ..(forced)
\ No newline at end of file
diff --git a/code/modules/modular_computers/file_system/programs/alarm.dm b/code/modules/modular_computers/file_system/programs/alarm.dm
index 9bfb9a5e7bf..fc050545a5b 100644
--- a/code/modules/modular_computers/file_system/programs/alarm.dm
+++ b/code/modules/modular_computers/file_system/programs/alarm.dm
@@ -1,15 +1,16 @@
-
-
-
/datum/computer_file/program/alarm_monitor
filename = "alarmmonitor"
- filedesc = "Alarm Monitoring"
+ filedesc = "Alarm Monitor"
ui_header = "alarm_green.gif"
program_icon_state = "alert-green"
extended_desc = "This program provides visual interface for station's alarm system."
requires_ntnet = 1
network_destination = "alarm monitoring network"
size = 5
+ tgui_id = "ntos_station_alert"
+ ui_x = 315
+ ui_y = 500
+
var/has_alert = 0
var/alarms = list("Fire" = list(), "Atmosphere" = list(), "Power" = list())
var/alarm_z = list(ZLEVEL_STATION,ZLEVEL_LAVALAND)
@@ -28,15 +29,6 @@
update_computer_icon()
return 1
-
-
-/datum/computer_file/program/alarm_monitor/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \
- datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
- ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
- if(!ui)
- ui = new(user, src, ui_key, "station_alert_prog", "Alarm Monitoring", 300, 500, master_ui, state)
- ui.open()
-
/datum/computer_file/program/alarm_monitor/ui_data(mob/user)
var/list/data = get_header_data()
@@ -49,7 +41,6 @@
return data
/datum/computer_file/program/alarm_monitor/proc/triggerAlarm(class, area/A, O, obj/source)
-
if(!(source.z in alarm_z))
return
@@ -77,8 +68,6 @@
/datum/computer_file/program/alarm_monitor/proc/cancelAlarm(class, area/A, obj/origin)
-
-
var/list/L = alarms[class]
var/cleared = 0
for (var/I in L)
diff --git a/code/modules/modular_computers/file_system/programs/antagonist/dos.dm b/code/modules/modular_computers/file_system/programs/antagonist/dos.dm
index ee1498fd799..9752aafa843 100644
--- a/code/modules/modular_computers/file_system/programs/antagonist/dos.dm
+++ b/code/modules/modular_computers/file_system/programs/antagonist/dos.dm
@@ -7,6 +7,11 @@
requires_ntnet = 1
available_on_ntnet = 0
available_on_syndinet = 1
+ tgui_id = "ntos_net_dos"
+ ui_style = "syndicate"
+ ui_x = 400
+ ui_y = 250
+
var/obj/machinery/ntnet_relay/target = null
var/dos_speed = 0
var/error = ""
@@ -36,18 +41,6 @@
..()
-
-/datum/computer_file/program/ntnet_dos/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
-
- ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
- if (!ui)
- ui = new(user, src, ui_key, "ntnet_dos", "DoS Traffic Generator", 400, 250, state = state)
- ui.set_style("syndicate")
- ui.set_autoupdate(state = 1)
- ui.open()
-
-
-
/datum/computer_file/program/ntnet_dos/ui_act(action, params)
if(..())
return 1
diff --git a/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm b/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm
index ea6a36b549e..8082dc02f44 100644
--- a/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm
+++ b/code/modules/modular_computers/file_system/programs/antagonist/revelation.dm
@@ -7,6 +7,11 @@
requires_ntnet = 0
available_on_ntnet = 0
available_on_syndinet = 1
+ tgui_id = "ntos_revelation"
+ ui_style = "syndicate"
+ ui_x = 400
+ ui_y = 250
+
var/armed = 0
/datum/computer_file/program/revelation/run_program(var/mob/living/user)
@@ -58,16 +63,6 @@
temp.armed = armed
return temp
-/datum/computer_file/program/revelation/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
-
- ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
- if (!ui)
- ui = new(user, src, ui_key, "revelation", "Revelation Virus", 400, 250, state = state)
- ui.set_style("syndicate")
- ui.set_autoupdate(state = 1)
- ui.open()
-
-
/datum/computer_file/program/revelation/ui_data(mob/user)
var/list/data = get_header_data()
diff --git a/code/modules/modular_computers/file_system/programs/card.dm b/code/modules/modular_computers/file_system/programs/card.dm
index eec36d6c4c2..a0879f13cef 100644
--- a/code/modules/modular_computers/file_system/programs/card.dm
+++ b/code/modules/modular_computers/file_system/programs/card.dm
@@ -1,11 +1,15 @@
/datum/computer_file/program/card_mod
filename = "cardmod"
- filedesc = "ID card modification program"
+ filedesc = "ID Card Modification"
program_icon_state = "id"
extended_desc = "Program for programming employee ID cards to access parts of the station."
transfer_access = GLOB.access_heads
requires_ntnet = 0
size = 8
+ tgui_id = "ntos_card"
+ ui_x = 600
+ ui_y = 700
+
var/mod_mode = 1
var/is_centcom = 0
var/show_assignments = 0
@@ -72,20 +76,6 @@
return 0
return 0
-
-/datum/computer_file/program/card_mod/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
-
- ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
- if (!ui)
-
- var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
- assets.send(user)
-
- ui = new(user, src, ui_key, "identification_computer", "ID card modification program", 600, 700, state = state)
- ui.open()
- ui.set_autoupdate(state = 1)
-
-
/datum/computer_file/program/card_mod/proc/format_jobs(list/jobs)
var/obj/item/weapon/computer_hardware/card_slot/card_slot = computer.all_components[MC_CARD]
var/obj/item/weapon/card/id/id_card = card_slot.stored_card
diff --git a/code/modules/modular_computers/file_system/programs/configurator.dm b/code/modules/modular_computers/file_system/programs/configurator.dm
index dc8b5ac97d2..802f1386c33 100644
--- a/code/modules/modular_computers/file_system/programs/configurator.dm
+++ b/code/modules/modular_computers/file_system/programs/configurator.dm
@@ -4,7 +4,7 @@
/datum/computer_file/program/computerconfig
filename = "compconfig"
- filedesc = "Computer Configuration Tool"
+ filedesc = "Hardware Configuration Tool"
extended_desc = "This program allows configuration of computer's hardware"
program_icon_state = "generic"
unsendable = 1
@@ -12,21 +12,11 @@
size = 4
available_on_ntnet = 0
requires_ntnet = 0
+ tgui_id = "ntos_configuration"
+
var/obj/item/device/modular_computer/movable = null
-/datum/computer_file/program/computerconfig/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
-
- ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
- if (!ui)
-
- var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
- assets.send(user)
-
- ui = new(user, src, ui_key, "laptop_configuration", "NTOS Configuration Utility", 575, 700, state = state)
- ui.open()
- ui.set_autoupdate(state = 1)
-
/datum/computer_file/program/computerconfig/ui_data(mob/user)
movable = computer
var/obj/item/weapon/computer_hardware/hard_drive/hard_drive = movable.all_components[MC_HDD]
diff --git a/code/modules/modular_computers/file_system/programs/file_browser.dm b/code/modules/modular_computers/file_system/programs/file_browser.dm
index 0271b4ad8e7..9693c953053 100644
--- a/code/modules/modular_computers/file_system/programs/file_browser.dm
+++ b/code/modules/modular_computers/file_system/programs/file_browser.dm
@@ -1,12 +1,14 @@
/datum/computer_file/program/filemanager
filename = "filemanager"
- filedesc = "NTOS File Manager"
+ filedesc = "File Manager"
extended_desc = "This program allows management of files."
program_icon_state = "generic"
size = 8
requires_ntnet = 0
available_on_ntnet = 0
undeletable = 1
+ tgui_id = "ntos_file_manager"
+
var/open_file
var/error
@@ -176,18 +178,6 @@
t = parse_tags(t)
return t
-/datum/computer_file/program/filemanager/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
-
- ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
- if (!ui)
-
- var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
- assets.send(user)
-
- ui = new(user, src, ui_key, "file_manager", "NTOS File Manager", 575, 700, state = state)
- ui.open()
- ui.set_autoupdate(state = 1)
-
/datum/computer_file/program/filemanager/ui_data(mob/user)
var/list/data = get_header_data()
diff --git a/code/modules/modular_computers/file_system/programs/ntdownloader.dm b/code/modules/modular_computers/file_system/programs/ntdownloader.dm
index d9255b17ee1..6bd5fcae8e7 100644
--- a/code/modules/modular_computers/file_system/programs/ntdownloader.dm
+++ b/code/modules/modular_computers/file_system/programs/ntdownloader.dm
@@ -1,6 +1,6 @@
/datum/computer_file/program/ntnetdownload
filename = "ntndownloader"
- filedesc = "NTNet Software Download Tool"
+ filedesc = "Software Download Tool"
program_icon_state = "generic"
extended_desc = "This program allows downloads of software from official NT repositories"
unsendable = 1
@@ -10,6 +10,8 @@
requires_ntnet_feature = NTNET_SOFTWAREDOWNLOAD
available_on_ntnet = 0
ui_header = "downloader_finished.gif"
+ tgui_id = "ntos_net_downloader"
+
var/datum/computer_file/program/downloaded_file = null
var/hacked_download = 0
var/download_completion = 0 //GQ of downloaded data.
@@ -103,17 +105,6 @@
return 1
return 0
-/datum/computer_file/program/ntnetdownload/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
- ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
- if (!ui)
-
- var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
- assets.send(user)
-
- ui = new(user, src, ui_key, "ntnet_downloader", "NTNet Download Program", 575, 700, state = state)
- ui.open()
- ui.set_autoupdate(state = 1)
-
/datum/computer_file/program/ntnetdownload/ui_data(mob/user)
my_computer = computer
diff --git a/code/modules/modular_computers/file_system/programs/ntmonitor.dm b/code/modules/modular_computers/file_system/programs/ntmonitor.dm
index 6661bceac4f..fe556faeab7 100644
--- a/code/modules/modular_computers/file_system/programs/ntmonitor.dm
+++ b/code/modules/modular_computers/file_system/programs/ntmonitor.dm
@@ -7,20 +7,7 @@
requires_ntnet = 1
required_access = GLOB.access_network //Network control is a more secure program.
available_on_ntnet = 1
-
-/datum/computer_file/program/ntnetmonitor/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
-
- ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
- if (!ui)
-
- var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
- assets.send(user)
-
-
- ui = new(user, src, ui_key, "ntnet_monitor", "NTNet Diagnostics and Monitoring Tool", 575, 700, state = state)
- ui.open()
- ui.set_autoupdate(state = 1)
-
+ tgui_id = "ntos_net_monitor"
/datum/computer_file/program/ntnetmonitor/ui_act(action, params)
if(..())
diff --git a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm b/code/modules/modular_computers/file_system/programs/ntnrc_client.dm
index b4c7884fe71..e742de3a2a7 100644
--- a/code/modules/modular_computers/file_system/programs/ntnrc_client.dm
+++ b/code/modules/modular_computers/file_system/programs/ntnrc_client.dm
@@ -1,6 +1,6 @@
/datum/computer_file/program/chatclient
filename = "ntnrc_client"
- filedesc = "NTNet Relay Chat Client"
+ filedesc = "Chat Client"
program_icon_state = "command"
extended_desc = "This program allows communication over NTNRC network"
size = 8
@@ -9,6 +9,8 @@
network_destination = "NTNRC server"
ui_header = "ntnrc_idle.gif"
available_on_ntnet = 1
+ tgui_id = "ntos_net_chat"
+
var/last_message = null // Used to generate the toolbar icon
var/username
var/datum/ntnet_conversation/channel = null
@@ -180,21 +182,6 @@
channel = null
..()
-/datum/computer_file/program/chatclient/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
-
- ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
- if (!ui)
-
-
- var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
- assets.send(user)
-
-
- ui = new(user, src, ui_key, "ntnet_chat", "NTNet Relay Chat Client", 575, 700, state = state)
- ui.open()
- ui.set_autoupdate(state = 1)
-
-
/datum/computer_file/program/chatclient/ui_data(mob/user)
if(!GLOB.ntnet_global || !GLOB.ntnet_global.chat_channels)
return
diff --git a/code/modules/modular_computers/file_system/programs/nttransfer.dm b/code/modules/modular_computers/file_system/programs/nttransfer.dm
index 0d46755f6b8..b2464619d32 100644
--- a/code/modules/modular_computers/file_system/programs/nttransfer.dm
+++ b/code/modules/modular_computers/file_system/programs/nttransfer.dm
@@ -1,6 +1,6 @@
/datum/computer_file/program/nttransfer
filename = "nttransfer"
- filedesc = "NTNet P2P Transfer Client"
+ filedesc = "P2P Transfer Client"
extended_desc = "This program allows for simple file transfer via direct peer to peer connection."
program_icon_state = "comm_logs"
size = 7
@@ -8,6 +8,7 @@
requires_ntnet_feature = NTNET_PEERTOPEER
network_destination = "other device via P2P tunnel"
available_on_ntnet = 1
+ tgui_id = "ntos_net_transfer"
var/error = "" // Error screen
var/server_password = "" // Optional password to download the file.
@@ -82,20 +83,6 @@
remote = null
download_completion = 0
-
-/datum/computer_file/program/nttransfer/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
-
- ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
- if (!ui)
-
- var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
- assets.send(user)
-
-
- ui = new(user, src, ui_key, "ntnet_transfer", "NTNet P2P Transfer Client", 575, 700, state = state)
- ui.open()
- ui.set_autoupdate(state = 1)
-
/datum/computer_file/program/nttransfer/ui_act(action, params)
if(..())
return 1
diff --git a/code/modules/modular_computers/file_system/programs/powermonitor.dm b/code/modules/modular_computers/file_system/programs/powermonitor.dm
index b9103256426..f95c2907343 100644
--- a/code/modules/modular_computers/file_system/programs/powermonitor.dm
+++ b/code/modules/modular_computers/file_system/programs/powermonitor.dm
@@ -1,8 +1,6 @@
-
-
/datum/computer_file/program/power_monitor
filename = "powermonitor"
- filedesc = "Power Monitoring"
+ filedesc = "Power Monitor"
program_icon_state = "power_monitor"
extended_desc = "This program connects to sensors around the station to provide information about electrical systems"
ui_header = "power_norm.gif"
@@ -11,6 +9,10 @@
requires_ntnet = 0
network_destination = "power monitoring system"
size = 9
+ tgui_id = "ntos_power_monitor"
+ ui_x = 1200
+ ui_y = 1000
+
var/has_alert = 0
var/obj/structure/cable/attached
var/list/history = list()
@@ -19,8 +21,6 @@
var/next_record = 0
-
-
/datum/computer_file/program/power_monitor/run_program(mob/living/user)
. = ..(user)
search()
@@ -52,18 +52,6 @@
if(demand.len > record_size)
demand.Cut(1, 2)
-/datum/computer_file/program/power_monitor/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, \
- datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
- ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
- if(!ui)
-
- var/datum/asset/assets = get_asset_datum(/datum/asset/simple/headers)
- assets.send(user)
-
-
- ui = new(user, src, ui_key, "power_monitor_prog", "Power Monitoring", 1200, 1000, master_ui, state)
- ui.open()
-
/datum/computer_file/program/power_monitor/ui_data()
var/list/data = get_header_data()
data["stored"] = record_size
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index 41ba8197a17..76bf2a002a3 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -47,7 +47,7 @@ other types of metals and chemistry for reagents).
////////////////////////////////////////
/obj/item/weapon/disk/design_disk
- name = "component design disk"
+ name = "Component Design Disk"
desc = "A disk for storing device design data for construction in lathes."
icon_state = "datadisk1"
materials = list(MAT_METAL=300, MAT_GLASS=100)
@@ -62,7 +62,7 @@ other types of metals and chemistry for reagents).
blueprints += null
/obj/item/weapon/disk/design_disk/adv
- name = "advanced component design disk"
+ name = "Advanced Component Design Disk"
desc = "A disk for storing device design data for construction in lathes. This one has extra storage space."
materials = list(MAT_METAL=300, MAT_GLASS=100, MAT_SILVER = 50)
max_blueprints = 5
@@ -587,7 +587,7 @@ other types of metals and chemistry for reagents).
category = list("Equipment")
/datum/design/diskplantgene
- name = "Plant data disk"
+ name = "Plant Data Disk"
desc = "A disk for storing plant genetic data."
id = "diskplantgene"
req_tech = list("programming" = 4, "biotech" = 3)
diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm
index 9f2fbda1f34..7fbc8309a8f 100644
--- a/code/modules/research/designs/autolathe_designs.dm
+++ b/code/modules/research/designs/autolathe_designs.dm
@@ -11,7 +11,7 @@
category = list("initial","Tools")
/datum/design/crowbar
- name = "Pocket crowbar"
+ name = "Pocket Crowbar"
id = "crowbar"
build_type = AUTOLATHE
materials = list(MAT_METAL = 50)
@@ -27,7 +27,7 @@
category = list("initial","Tools")
/datum/design/extinguisher
- name = "Fire extinguisher"
+ name = "Fire Extinguisher"
id = "extinguisher"
build_type = AUTOLATHE
materials = list(MAT_METAL = 90)
@@ -51,7 +51,7 @@
category = list("initial","Tools")
/datum/design/tscanner
- name = "T-ray scanner"
+ name = "T-Ray Scanner"
id = "tscanner"
build_type = AUTOLATHE
materials = list(MAT_METAL = 150)
@@ -59,7 +59,7 @@
category = list("initial","Tools")
/datum/design/weldingtool
- name = "Welding tool"
+ name = "Welding Tool"
id = "welding_tool"
build_type = AUTOLATHE
materials = list(MAT_METAL = 70, MAT_GLASS = 20)
@@ -67,7 +67,7 @@
category = list("initial","Tools")
/datum/design/mini_weldingtool
- name = "Emergency welding tool"
+ name = "Emergency Welding Tool"
id = "mini_welding_tool"
build_type = AUTOLATHE
materials = list(MAT_METAL = 30, MAT_GLASS = 10)
@@ -99,7 +99,7 @@
category = list("initial","Tools")
/datum/design/welding_helmet
- name = "Welding helmet"
+ name = "Welding Helmet"
id = "welding_helmet"
build_type = AUTOLATHE
materials = list(MAT_METAL = 1750, MAT_GLASS = 400)
@@ -107,7 +107,7 @@
category = list("initial","Tools")
/datum/design/cable_coil
- name = "Cable coil"
+ name = "Cable Coil"
id = "cable_coil"
build_type = AUTOLATHE
materials = list(MAT_METAL = 10, MAT_GLASS = 5)
@@ -124,7 +124,7 @@
category = list("initial","Tools")
/datum/design/console_screen
- name = "Console screen"
+ name = "Console Screen"
id = "console_screen"
build_type = AUTOLATHE
materials = list(MAT_GLASS = 200)
@@ -132,7 +132,7 @@
category = list("initial", "Electronics")
/datum/design/apc_board
- name = "APC module"
+ name = "APC Module"
id = "power control"
build_type = AUTOLATHE
materials = list(MAT_METAL = 100, MAT_GLASS = 100)
@@ -140,7 +140,7 @@
category = list("initial", "Electronics")
/datum/design/airlock_board
- name = "Airlock electronics"
+ name = "Airlock Electronics"
id = "airlock_board"
build_type = AUTOLATHE
materials = list(MAT_METAL = 50, MAT_GLASS = 50)
@@ -148,7 +148,7 @@
category = list("initial", "Electronics")
/datum/design/firelock_board
- name = "Firelock circuitry"
+ name = "Firelock Circuitry"
id = "firelock_board"
build_type = AUTOLATHE
materials = list(MAT_METAL = 50, MAT_GLASS = 50)
@@ -156,7 +156,7 @@
category = list("initial", "Electronics")
/datum/design/airalarm_electronics
- name = "Air alarm electronics"
+ name = "Air Alarm Electronics"
id = "airalarm_electronics"
build_type = AUTOLATHE
materials = list(MAT_METAL = 50, MAT_GLASS = 50)
@@ -164,7 +164,7 @@
category = list("initial", "Electronics")
/datum/design/firealarm_electronics
- name = "Fire alarm electronics"
+ name = "Fire Alarm Electronics"
id = "firealarm_electronics"
build_type = AUTOLATHE
materials = list(MAT_METAL = 50, MAT_GLASS = 50)
@@ -180,7 +180,7 @@
category = list("initial", "Misc")
/datum/design/pipe_painter
- name = "Pipe painter"
+ name = "Pipe Painter"
id = "pipe_painter"
build_type = AUTOLATHE
materials = list(MAT_METAL = 5000, MAT_GLASS = 2000)
@@ -188,7 +188,7 @@
category = list("initial", "Misc")
/datum/design/airlock_painter
- name = "Airlock painter"
+ name = "Airlock Painter"
id = "airlock_painter"
build_type = AUTOLATHE
materials = list(MAT_METAL = 50, MAT_GLASS = 50)
@@ -214,7 +214,7 @@
maxstack = 50
/datum/design/rglass
- name = "Reinforced glass"
+ name = "Reinforced Glass"
id = "rglass"
build_type = AUTOLATHE
materials = list(MAT_METAL = 1000, MAT_GLASS = MINERAL_MATERIAL_AMOUNT)
@@ -223,7 +223,7 @@
maxstack = 50
/datum/design/rods
- name = "Metal rod"
+ name = "Metal Rod"
id = "rods"
build_type = AUTOLATHE
materials = list(MAT_METAL = 1000)
@@ -232,7 +232,7 @@
maxstack = 50
/datum/design/rcd_ammo
- name = "Compressed matter cardridge"
+ name = "Compressed Matter Cartridge"
id = "rcd_ammo"
build_type = AUTOLATHE
materials = list(MAT_METAL = 3000, MAT_GLASS=2000)
@@ -240,7 +240,7 @@
category = list("initial","Construction")
/datum/design/kitchen_knife
- name = "Kitchen knife"
+ name = "Kitchen Knife"
id = "kitchen_knife"
build_type = AUTOLATHE
materials = list(MAT_METAL = 12000)
@@ -272,7 +272,7 @@
category = list("initial","Dinnerware")
/datum/design/drinking_glass
- name = "Drinking glass"
+ name = "Drinking Glass"
id = "drinking_glass"
build_type = AUTOLATHE
materials = list(MAT_GLASS = 500)
@@ -280,7 +280,7 @@
category = list("initial","Dinnerware")
/datum/design/shot_glass
- name = "Shot glass"
+ name = "Shot Glass"
id = "shot_glass"
build_type = AUTOLATHE
materials = list(MAT_GLASS = 100)
@@ -304,7 +304,7 @@
category = list("initial","Misc")
/datum/design/plant_analyzer
- name = "Plant analyzer"
+ name = "Plant Analyzer"
id = "plant_analyzer"
build_type = AUTOLATHE
materials = list(MAT_METAL = 30, MAT_GLASS = 20)
@@ -344,7 +344,7 @@
category = list("initial", "Medical")
/datum/design/circular_saw
- name = "Circular saw"
+ name = "Circular Saw"
id = "circular_saw"
build_type = AUTOLATHE
materials = list(MAT_METAL = 10000, MAT_GLASS = 6000)
@@ -352,7 +352,7 @@
category = list("initial", "Medical")
/datum/design/surgicaldrill
- name = "Surgical drill"
+ name = "Surgical Drill"
id = "surgicaldrill"
build_type = AUTOLATHE
materials = list(MAT_METAL = 10000, MAT_GLASS = 6000)
@@ -392,7 +392,7 @@
category = list("initial", "Medical")
/datum/design/large_beaker
- name = "Large beaker"
+ name = "Large Beaker"
id = "large_beaker"
build_type = AUTOLATHE
materials = list(MAT_GLASS = 2500)
@@ -408,7 +408,7 @@
category = list("initial", "Medical")
/datum/design/beanbag_slug
- name = "Beanbag slug"
+ name = "Beanbag Slug"
id = "beanbag_slug"
build_type = AUTOLATHE
materials = list(MAT_METAL = 250)
@@ -416,7 +416,7 @@
category = list("initial", "Security")
/datum/design/rubbershot
- name = "Rubber shot"
+ name = "Rubber Shot"
id = "rubber_shot"
build_type = AUTOLATHE
materials = list(MAT_METAL = 4000)
@@ -424,7 +424,7 @@
category = list("initial", "Security")
/datum/design/c38
- name = "Speed loader (.38)"
+ name = "Speed Loader (.38)"
id = "c38"
build_type = AUTOLATHE
materials = list(MAT_METAL = 30000)
@@ -432,7 +432,7 @@
category = list("initial", "Security")
/datum/design/recorder
- name = "Universal recorder"
+ name = "Universal Recorder"
id = "recorder"
build_type = AUTOLATHE
materials = list(MAT_METAL = 60, MAT_GLASS = 30)
@@ -456,7 +456,7 @@
category = list("initial", "Misc")
/datum/design/signaler
- name = "Remote signaling device"
+ name = "Remote Signaling Device"
id = "signaler"
build_type = AUTOLATHE
materials = list(MAT_METAL = 400, MAT_GLASS = 120)
@@ -464,7 +464,7 @@
category = list("initial", "T-Comm")
/datum/design/radio_headset
- name = "Radio headset"
+ name = "Radio Headset"
id = "radio_headset"
build_type = AUTOLATHE
materials = list(MAT_METAL = 75)
@@ -472,7 +472,7 @@
category = list("initial", "T-Comm")
/datum/design/bounced_radio
- name = "Station bounced radio"
+ name = "Station Bounced Radio"
id = "bounced_radio"
build_type = AUTOLATHE
materials = list(MAT_METAL = 75, MAT_GLASS = 25)
@@ -480,7 +480,7 @@
category = list("initial", "T-Comm")
/datum/design/infrared_emitter
- name = "Infrared emitter"
+ name = "Infrared Emitter"
id = "infrared_emitter"
build_type = AUTOLATHE
materials = list(MAT_METAL = 1000, MAT_GLASS = 500)
@@ -488,7 +488,7 @@
category = list("initial", "Misc")
/datum/design/health_sensor
- name = "Health sensor"
+ name = "Health Sensor"
id = "health_sensor"
build_type = AUTOLATHE
materials = list(MAT_METAL = 800, MAT_GLASS = 200)
@@ -504,7 +504,7 @@
category = list("initial", "Misc")
/datum/design/voice_analyser
- name = "Voice analyser"
+ name = "Voice Analyser"
id = "voice_analyser"
build_type = AUTOLATHE
materials = list(MAT_METAL = 500, MAT_GLASS = 50)
@@ -512,7 +512,7 @@
category = list("initial", "Misc")
/datum/design/light_tube
- name = "Light tube"
+ name = "Light Tube"
id = "light_tube"
build_type = AUTOLATHE
materials = list(MAT_GLASS = 100)
@@ -520,7 +520,7 @@
category = list("initial", "Construction")
/datum/design/light_bulb
- name = "Light bulb"
+ name = "Light Bulb"
id = "light_bulb"
build_type = AUTOLATHE
materials = list(MAT_GLASS = 100)
@@ -528,7 +528,7 @@
category = list("initial", "Construction")
/datum/design/camera_assembly
- name = "Camera assembly"
+ name = "Camera Assembly"
id = "camera_assembly"
build_type = AUTOLATHE
materials = list(MAT_METAL = 400, MAT_GLASS = 250)
@@ -536,7 +536,7 @@
category = list("initial", "Construction")
/datum/design/newscaster_frame
- name = "Newscaster frame"
+ name = "Newscaster Frame"
id = "newscaster_frame"
build_type = AUTOLATHE
materials = list(MAT_METAL = 14000, MAT_GLASS = 8000)
@@ -552,7 +552,7 @@
category = list("initial", "Medical")
/datum/design/prox_sensor
- name = "Proximity sensor"
+ name = "Proximity Sensor"
id = "prox_sensor"
build_type = AUTOLATHE
materials = list(MAT_METAL = 800, MAT_GLASS = 200)
@@ -577,7 +577,7 @@
category = list("hacked", "Weapons and ammo")
/datum/design/rcd
- name = "Rapid construction device (RCD)"
+ name = "Rapid Construction Device (RCD)"
id = "rcd"
build_type = AUTOLATHE
materials = list(MAT_METAL = 30000)
@@ -585,7 +585,7 @@
category = list("hacked", "Construction")
/datum/design/rpd
- name = "Rapid pipe dispenser (RPD)"
+ name = "Rapid Pipe Dispenser (RPD)"
id = "rpd"
build_type = AUTOLATHE
materials = list(MAT_METAL = 75000, MAT_GLASS = 37500)
@@ -601,7 +601,7 @@
category = list("hacked", "Tools")
/datum/design/large_welding_tool
- name = "Industrial welding tool"
+ name = "Industrial Welding Tool"
id = "large_welding_tool"
build_type = AUTOLATHE
materials = list(MAT_METAL = 70, MAT_GLASS = 60)
@@ -625,7 +625,7 @@
category = list("hacked", "Security")
/datum/design/shotgun_slug
- name = "Shotgun slug"
+ name = "Shotgun Slug"
id = "shotgun_slug"
build_type = AUTOLATHE
materials = list(MAT_METAL = 4000)
@@ -633,7 +633,7 @@
category = list("hacked", "Security")
/datum/design/buckshot_shell
- name = "Buckshot shell"
+ name = "Buckshot Shell"
id = "buckshot_shell"
build_type = AUTOLATHE
materials = list(MAT_METAL = 4000)
@@ -641,7 +641,7 @@
category = list("hacked", "Security")
/datum/design/shotgun_dart
- name = "Shotgun dart"
+ name = "Shotgun Dart"
id = "shotgun_dart"
build_type = AUTOLATHE
materials = list(MAT_METAL = 4000)
@@ -649,7 +649,7 @@
category = list("hacked", "Security")
/datum/design/incendiary_slug
- name = "Incendiary slug"
+ name = "Incendiary Slug"
id = "incendiary_slug"
build_type = AUTOLATHE
materials = list(MAT_METAL = 4000)
@@ -657,7 +657,7 @@
category = list("hacked", "Security")
/datum/design/riot_dart
- name = "Foam riot dart"
+ name = "Foam Riot Dart"
id = "riot_dart"
build_type = AUTOLATHE
materials = list(MAT_METAL = 1000) //Discount for making individually - no box = less metal!
@@ -665,7 +665,7 @@
category = list("hacked", "Security")
/datum/design/riot_darts
- name = "Foam riot dart box"
+ name = "Foam Riot Dart Box"
id = "riot_darts"
build_type = AUTOLATHE
materials = list(MAT_METAL = 50000) //Comes with 40 darts
@@ -673,7 +673,7 @@
category = list("hacked", "Security")
/datum/design/a357
- name = "Ammo box (.357)"
+ name = "Ammo Box (.357)"
id = "a357"
build_type = AUTOLATHE
materials = list(MAT_METAL = 30000)
@@ -681,7 +681,7 @@
category = list("hacked", "Security")
/datum/design/c10mm
- name = "Ammo box (10mm)"
+ name = "Ammo Box (10mm)"
id = "c10mm"
build_type = AUTOLATHE
materials = list(MAT_METAL = 30000)
@@ -689,7 +689,7 @@
category = list("hacked", "Security")
/datum/design/c45
- name = "Ammo box (.45)"
+ name = "Ammo Box (.45)"
id = "c45"
build_type = AUTOLATHE
materials = list(MAT_METAL = 30000)
@@ -697,7 +697,7 @@
category = list("hacked", "Security")
/datum/design/c9mm
- name = "Ammo box (9mm)"
+ name = "Ammo Box (9mm)"
id = "c9mm"
build_type = AUTOLATHE
materials = list(MAT_METAL = 30000)
@@ -705,7 +705,7 @@
category = list("hacked", "Security")
/datum/design/cleaver
- name = "Butcher's cleaver"
+ name = "Butcher's Cleaver"
id = "cleaver"
build_type = AUTOLATHE
materials = list(MAT_METAL = 18000)
@@ -721,7 +721,7 @@
category = list("initial", "Tools")
/datum/design/desttagger
- name = "Destination tagger"
+ name = "Destination Tagger"
id = "desttagger"
build_type = AUTOLATHE
materials = list(MAT_METAL = 250, MAT_GLASS = 125)
@@ -729,7 +729,7 @@
category = list("initial", "Electronics")
/datum/design/handlabeler
- name = "Hand labeler"
+ name = "Hand Labeler"
id = "handlabel"
build_type = AUTOLATHE
materials = list(MAT_METAL = 150, MAT_GLASS = 125)
@@ -737,7 +737,7 @@
category = list("initial", "Electronics")
/datum/design/geiger
- name = "Geiger counter"
+ name = "Geiger Counter"
id = "geigercounter"
build_type = AUTOLATHE
materials = list(MAT_METAL = 150, MAT_GLASS = 150)
@@ -745,7 +745,7 @@
category = list("initial", "Tools")
/datum/design/turret_control_frame
- name = "Turret control frame"
+ name = "Turret Control Frame"
id = "turret_control"
build_type = AUTOLATHE
materials = list(MAT_METAL = 12000)
@@ -753,7 +753,7 @@
category = list("initial", "Construction")
/datum/design/conveyor_belt
- name = "Conveyor belt"
+ name = "Conveyor Belt"
id = "conveyor_belt"
build_type = AUTOLATHE
materials = list(MAT_METAL = 5000)
@@ -761,7 +761,7 @@
category = list("initial", "Construction")
/datum/design/conveyor_switch
- name = "Conveyor belt switch"
+ name = "Conveyor Belt Switch"
id = "conveyor_switch"
build_type = AUTOLATHE
materials = list(MAT_METAL = 450, MAT_GLASS = 190)
@@ -783,3 +783,12 @@
materials = list(MAT_METAL = 2000, MAT_GLASS = 1000)
build_path = /obj/item/device/modular_computer/tablet
category = list("initial","Misc")
+
+/datum/design/slime_scanner
+ name = "Slime Scanner"
+ id = "slime_scanner"
+ build_type = AUTOLATHE
+ materials = list(MAT_METAL = 300, MAT_GLASS = 200)
+ build_path = /obj/item/device/slime_scanner
+ category = list("initial", "Misc")
+
\ No newline at end of file
diff --git a/code/modules/research/designs/biogenerator_designs.dm b/code/modules/research/designs/biogenerator_designs.dm
index a3544a9ba95..7319e507ae6 100644
--- a/code/modules/research/designs/biogenerator_designs.dm
+++ b/code/modules/research/designs/biogenerator_designs.dm
@@ -3,7 +3,7 @@
///////////////////////////////////
/datum/design/milk
- name = "10 milk"
+ name = "10 Milk"
id = "milk"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 20)
@@ -11,7 +11,7 @@
category = list("initial","Food")
/datum/design/cream
- name = "10 cream"
+ name = "10 Cream"
id = "cream"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 30)
@@ -19,7 +19,7 @@
category = list("initial","Food")
/datum/design/milk_carton
- name = "Milk carton"
+ name = "Milk Carton"
id = "milk_carton"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 100)
@@ -27,7 +27,7 @@
category = list("initial","Food")
/datum/design/cream_carton
- name = "Cream carton"
+ name = "Cream Carton"
id = "cream_carton"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 300)
@@ -35,7 +35,7 @@
category = list("initial","Food")
/datum/design/black_pepper
- name = "10u black pepper"
+ name = "10u Black Pepper"
id = "black_pepper"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 25)
@@ -43,7 +43,7 @@
category = list("initial","Food")
/datum/design/pepper_mill
- name = "Pepper mill"
+ name = "Pepper Mill"
id = "pepper_mill"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 50)
@@ -52,7 +52,7 @@
category = list("initial","Food")
/datum/design/monkey_cube
- name = "Monkey cube"
+ name = "Monkey Cube"
id = "mcube"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 250)
@@ -60,7 +60,7 @@
category = list("initial", "Food")
/datum/design/ez_nut
- name = "E-Z-Nutrient"
+ name = "E-Z Nutrient"
id = "ez_nut"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 10)
@@ -108,7 +108,7 @@
category = list("initial", "Botany Chemicals")
/datum/design/cloth
- name = "Roll of cloth"
+ name = "Roll of Cloth"
id = "cloth"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 50)
@@ -124,7 +124,7 @@
category = list("initial","Leather and Cloth")
/datum/design/secbelt
- name = "Security belt"
+ name = "Security Belt"
id = "secbelt"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 300)
@@ -132,7 +132,7 @@
category = list("initial","Leather and Cloth")
/datum/design/medbelt
- name = "Medical belt"
+ name = "Medical Belt"
id = "medbel"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 300)
@@ -140,7 +140,7 @@
category = list("initial","Leather and Cloth")
/datum/design/janibelt
- name = "Janitorial belt"
+ name = "Janitorial Belt"
id = "janibelt"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 300)
@@ -148,7 +148,7 @@
category = list("initial","Leather and Cloth")
/datum/design/s_holster
- name = "Shoulder holster"
+ name = "Shoulder Holster"
id = "s_holster"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 400)
@@ -156,7 +156,7 @@
category = list("initial","Leather and Cloth")
/datum/design/rice_hat
- name = "Rice hat"
+ name = "Rice Hat"
id = "rice_hat"
build_type = BIOGENERATOR
materials = list(MAT_BIOMASS = 300)
diff --git a/code/modules/research/designs/computer_part_designs.dm b/code/modules/research/designs/computer_part_designs.dm
index cd75eada7aa..dbdd15817c0 100644
--- a/code/modules/research/designs/computer_part_designs.dm
+++ b/code/modules/research/designs/computer_part_designs.dm
@@ -3,7 +3,7 @@
////////////////////////////////////////
/datum/design/disk/normal
- name = "hard disk drive"
+ name = "Hard Disk Drive"
id = "hdd_basic"
req_tech = list("programming" = 1, "engineering" = 1)
build_type = PROTOLATHE
@@ -12,7 +12,7 @@
category = list("Computer Parts")
/datum/design/disk/advanced
- name = "advanced hard disk drive"
+ name = "Advanced Hard Disk Drive"
id = "hdd_advanced"
req_tech = list("programming" = 2, "engineering" = 2)
build_type = PROTOLATHE
@@ -21,7 +21,7 @@
category = list("Computer Parts")
/datum/design/disk/super
- name = "super hard disk drive"
+ name = "Super Hard Disk Drive"
id = "hdd_super"
req_tech = list("programming" = 3, "engineering" = 3)
build_type = PROTOLATHE
@@ -30,7 +30,7 @@
category = list("Computer Parts")
/datum/design/disk/cluster
- name = "cluster hard disk drive"
+ name = "Cluster Hard Disk Drive"
id = "hdd_cluster"
req_tech = list("programming" = 4, "engineering" = 4)
build_type = PROTOLATHE
@@ -39,7 +39,7 @@
category = list("Computer Parts")
/datum/design/disk/small
- name = "solid state drive"
+ name = "Solid State Drive"
id = "ssd_small"
req_tech = list("programming" = 2, "engineering" = 2)
build_type = PROTOLATHE
@@ -48,7 +48,7 @@
category = list("Computer Parts")
/datum/design/disk/micro
- name = "micro solid state drive"
+ name = "Micro Solid State Drive"
id = "ssd_micro"
req_tech = list("programming" = 1, "engineering" = 1)
build_type = PROTOLATHE
@@ -59,7 +59,7 @@
// Network cards
/datum/design/netcard/basic
- name = "network card"
+ name = "Network Card"
id = "netcard_basic"
req_tech = list("programming" = 2, "engineering" = 1)
build_type = IMPRINTER
@@ -69,7 +69,7 @@
category = list("Computer Parts")
/datum/design/netcard/advanced
- name = "advanced network card"
+ name = "Advanced Network Card"
id = "netcard_advanced"
req_tech = list("programming" = 4, "engineering" = 2)
build_type = IMPRINTER
@@ -79,7 +79,7 @@
category = list("Computer Parts")
/datum/design/netcard/wired
- name = "wired network card"
+ name = "Wired Network Card"
id = "netcard_wired"
req_tech = list("programming" = 5, "engineering" = 3)
build_type = IMPRINTER
@@ -91,7 +91,7 @@
// Data disks
/datum/design/portabledrive/basic
- name = "data disk"
+ name = "Data Disk"
id = "portadrive_basic"
req_tech = list("programming" = 1)
build_type = IMPRINTER
@@ -101,7 +101,7 @@
category = list("Computer Parts")
/datum/design/portabledrive/advanced
- name = "advanced data disk"
+ name = "Advanced Data Disk"
id = "portadrive_advanced"
req_tech = list("programming" = 2)
build_type = IMPRINTER
@@ -111,7 +111,7 @@
category = list("Computer Parts")
/datum/design/portabledrive/super
- name = "super data disk"
+ name = "Super Data Disk"
id = "portadrive_super"
req_tech = list("programming" = 4)
build_type = IMPRINTER
@@ -123,7 +123,7 @@
// Card slot
/datum/design/cardslot
- name = "ID card slot"
+ name = "ID Card Slot"
id = "cardslot"
req_tech = list("programming" = 2)
build_type = PROTOLATHE
@@ -133,7 +133,7 @@
// Intellicard slot
/datum/design/aislot
- name = "Intellicard slot"
+ name = "Intellicard Slot"
id = "aislot"
req_tech = list("programming" = 2)
build_type = PROTOLATHE
@@ -143,7 +143,7 @@
// Mini printer
/datum/design/miniprinter
- name = "miniprinter"
+ name = "Miniprinter"
id = "miniprinter"
req_tech = list("programming" = 2, "engineering" = 2)
build_type = PROTOLATHE
@@ -154,7 +154,7 @@
// APC Link
/datum/design/APClink
- name = "area power connector"
+ name = "Area Power Connector"
id = "APClink"
req_tech = list("programming" = 2, "powerstorage" = 3, "engineering" = 2)
build_type = PROTOLATHE
@@ -165,7 +165,7 @@
// Batteries
/datum/design/battery/controller
- name = "power cell controller"
+ name = "Power Cell Controller"
id = "bat_control"
req_tech = list("powerstorage" = 1, "engineering" = 1)
build_type = PROTOLATHE
@@ -174,7 +174,7 @@
category = list("Computer Parts")
/datum/design/battery/normal
- name = "battery module"
+ name = "Battery Module"
id = "bat_normal"
req_tech = list("powerstorage" = 1, "engineering" = 1)
build_type = PROTOLATHE
@@ -183,7 +183,7 @@
category = list("Computer Parts")
/datum/design/battery/advanced
- name = "advanced battery module"
+ name = "Advanced Battery Module"
id = "bat_advanced"
req_tech = list("powerstorage" = 2, "engineering" = 2)
build_type = PROTOLATHE
@@ -192,7 +192,7 @@
category = list("Computer Parts")
/datum/design/battery/super
- name = "super battery module"
+ name = "Super Battery Module"
id = "bat_super"
req_tech = list("powerstorage" = 3, "engineering" = 3)
build_type = PROTOLATHE
@@ -201,7 +201,7 @@
category = list("Computer Parts")
/datum/design/battery/nano
- name = "nano battery module"
+ name = "Nano Battery Module"
id = "bat_nano"
req_tech = list("powerstorage" = 1, "engineering" = 1)
build_type = PROTOLATHE
@@ -210,7 +210,7 @@
category = list("Computer Parts")
/datum/design/battery/micro
- name = "micro battery module"
+ name = "Micro Battery Module"
id = "bat_micro"
req_tech = list("powerstorage" = 2, "engineering" = 2)
build_type = PROTOLATHE
@@ -221,7 +221,7 @@
// Processor unit
/datum/design/cpu
- name = "processor board"
+ name = "Processor Board"
id = "cpu_normal"
req_tech = list("programming" = 3, "engineering" = 2)
build_type = IMPRINTER
@@ -231,7 +231,7 @@
category = list("Computer Parts")
/datum/design/cpu/small
- name = "microprocessor"
+ name = "Microprocessor"
id = "cpu_small"
req_tech = list("programming" = 2, "engineering" = 2)
build_type = IMPRINTER
@@ -241,7 +241,7 @@
category = list("Computer Parts")
/datum/design/cpu/photonic
- name = "photonic processor board"
+ name = "Photonic Processor Board"
id = "pcpu_normal"
req_tech = list("programming" = 5, "engineering" = 4)
build_type = IMPRINTER
@@ -251,7 +251,7 @@
category = list("Computer Parts")
/datum/design/cpu/photonic/small
- name = "photonic microprocessor"
+ name = "Photonic Microprocessor"
id = "pcpu_small"
req_tech = list("programming" = 4, "engineering" = 3)
build_type = IMPRINTER
diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm
index 002112b717d..f72458af4ea 100644
--- a/code/modules/research/designs/medical_designs.dm
+++ b/code/modules/research/designs/medical_designs.dm
@@ -96,7 +96,7 @@
category = list("Medical Designs")
/datum/design/bluespacebodybag
- name = "Bluespace body bag"
+ name = "Bluespace Body Bag"
desc = "A bluespace body bag, powered by experimental bluespace technology. It can hold loads of bodies and the largest of creatures."
id = "bluespacebodybag"
req_tech = list("bluespace" = 5, "materials" = 4, "plasmatech" = 4)
@@ -106,7 +106,7 @@
category = list("Medical Designs")
/datum/design/plasmarefiller
- name = "Plasma-man jumpsuit refill"
+ name = "Plasma-Man Jumpsuit Refill"
desc = "A refill pack for the auto-extinguisher on Plasma-man suits."
id = "plasmarefiller"
req_tech = list("materials" = 2, "plasmatech" = 3) //Why did this have no plasmatech
@@ -191,7 +191,7 @@
category = list("Misc", "Medical Designs")
/datum/design/cyberimp_breather
- name = "Breathing Tube implant"
+ name = "Breathing Tube Implant"
desc = "This simple implant adds an internals connector to your back, allowing you to use internals without a mask and protecting you from being choked."
id = "ci-breather"
req_tech = list("materials" = 2, "biotech" = 3)
@@ -202,7 +202,7 @@
category = list("Misc", "Medical Designs")
/datum/design/cyberimp_toolset
- name = "Toolset Arm implant"
+ name = "Toolset Arm Implant"
desc = "A stripped-down version of engineering cyborg toolset, designed to be installed on subject's arm."
id = "ci-toolset"
req_tech = list("materials" = 3, "engineering" = 4, "biotech" = 4, "powerstorage" = 4)
@@ -213,7 +213,7 @@
category = list("Misc", "Medical Designs")
/datum/design/cyberimp_medical_hud
- name = "Medical HUD implant"
+ name = "Medical HUD Implant"
desc = "These cybernetic eyes will display a medical HUD over everything you see. Wiggle eyes to control."
id = "ci-medhud"
req_tech = list("materials" = 5, "programming" = 4, "biotech" = 4)
@@ -224,7 +224,7 @@
category = list("Misc", "Medical Designs")
/datum/design/cyberimp_security_hud
- name = "Security HUD implant"
+ name = "Security HUD Implant"
desc = "These cybernetic eyes will display a security HUD over everything you see. Wiggle eyes to control."
id = "ci-sechud"
req_tech = list("materials" = 5, "programming" = 4, "biotech" = 4, "combat" = 3)
@@ -235,7 +235,7 @@
category = list("Misc", "Medical Designs")
/datum/design/cyberimp_xray
- name = "X-Ray eyes"
+ name = "X-Ray Eyes"
desc = "These cybernetic eyes will give you X-ray vision. Blinking is futile."
id = "ci-xray"
req_tech = list("materials" = 7, "programming" = 5, "biotech" = 7, "magnets" = 5,"plasmatech" = 6)
@@ -246,7 +246,7 @@
category = list("Misc", "Medical Designs")
/datum/design/cyberimp_thermals
- name = "Thermal eyes"
+ name = "Thermal Eyes"
desc = "These cybernetic eyes will give you Thermal vision. Vertical slit pupil included."
id = "ci-thermals"
req_tech = list("materials" = 6, "programming" = 4, "biotech" = 7, "magnets" = 5,"plasmatech" = 4)
@@ -257,7 +257,7 @@
category = list("Misc", "Medical Designs")
/datum/design/cyberimp_antidrop
- name = "Anti-Drop implant"
+ name = "Anti-Drop Implant"
desc = "This cybernetic brain implant will allow you to force your hand muscles to contract, preventing item dropping. Twitch ear to toggle."
id = "ci-antidrop"
req_tech = list("materials" = 5, "programming" = 6, "biotech" = 5)
@@ -268,7 +268,7 @@
category = list("Misc", "Medical Designs")
/datum/design/cyberimp_antistun
- name = "CNS Rebooter implant"
+ name = "CNS Rebooter Implant"
desc = "This implant will automatically give you back control over your central nervous system, reducing downtime when stunned."
id = "ci-antistun"
req_tech = list("materials" = 6, "programming" = 5, "biotech" = 6)
@@ -279,7 +279,7 @@
category = list("Misc", "Medical Designs")
/datum/design/cyberimp_nutriment
- name = "Nutriment pump implant"
+ name = "Nutriment Pump Implant"
desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are starving."
id = "ci-nutriment"
req_tech = list("materials" = 3, "powerstorage" = 4, "biotech" = 3)
@@ -290,7 +290,7 @@
category = list("Misc", "Medical Designs")
/datum/design/cyberimp_nutriment_plus
- name = "Nutriment pump implant PLUS"
+ name = "Nutriment Pump Implant PLUS"
desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are hungry."
id = "ci-nutrimentplus"
req_tech = list("materials" = 5, "powerstorage" = 4, "biotech" = 4)
@@ -301,7 +301,7 @@
category = list("Misc", "Medical Designs")
/datum/design/cyberimp_reviver
- name = "Reviver implant"
+ name = "Reviver Implant"
desc = "This implant will attempt to revive you if you lose consciousness. For the faint of heart!"
id = "ci-reviver"
req_tech = list("materials" = 5, "programming" = 4, "biotech" = 5)
@@ -312,7 +312,7 @@
category = list("Misc", "Medical Designs")
/datum/design/cyberimp_thrusters
- name = "Thrusters set implant"
+ name = "Thrusters Set Implant"
desc = "This implant will allow you to use gas from environment or your internals for propulsion in zero-gravity areas."
id = "ci-thrusters"
req_tech = list("materials" = 5, "biotech" = 5, "magnets" = 4, "engineering" = 7)
diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm
index 80863259e85..15704651f6d 100644
--- a/code/modules/research/designs/weapon_designs.dm
+++ b/code/modules/research/designs/weapon_designs.dm
@@ -3,7 +3,7 @@
/////////////////////////////////////////
/datum/design/pin_testing
- name = "test-range firing pin"
+ name = "Test-Range Firing Pin"
desc = "This safety firing pin allows firearms to be operated within proximity to a firing range."
id = "pin_testing"
req_tech = list("combat" = 2, "materials" = 2)
@@ -13,7 +13,7 @@
category = list("Firing Pins")
/datum/design/pin_mindshield
- name = "mindshield firing pin"
+ name = "Mindshield Firing Pin"
desc = "This is a security firing pin which only authorizes users who are mindshield-implanted."
id = "pin_loyalty"
req_tech = list("combat" = 5, "materials" = 6)
diff --git a/code/modules/ruins/lavaland_ruin_code.dm b/code/modules/ruins/lavaland_ruin_code.dm
index 35ffdefce67..25567b90e23 100644
--- a/code/modules/ruins/lavaland_ruin_code.dm
+++ b/code/modules/ruins/lavaland_ruin_code.dm
@@ -40,7 +40,7 @@
category = list("Imported")
/obj/item/golem_shell
- name = "incomplete golem shell"
+ name = "incomplete free golem shell"
icon = 'icons/obj/wizard.dmi'
icon_state = "construct"
desc = "The incomplete body of a golem. Add ten sheets of any mineral to finish."
@@ -113,7 +113,7 @@
if(species)
if(O.use(10))
to_chat(user, "You finish up the golem shell with ten sheets of [O].")
- new shell_type(get_turf(src), species, has_owner, user)
+ new shell_type(get_turf(src), species, user)
qdel(src)
else
to_chat(user, "You need at least ten sheets to finish a golem.")
@@ -121,9 +121,9 @@
to_chat(user, "You can't build a golem out of this kind of material.")
//made with xenobiology, the golem obeys its creator
-/obj/item/golem_shell/artificial
- name = "incomplete artificial golem shell"
- has_owner = TRUE
+/obj/item/golem_shell/servant
+ name = "incomplete servant golem shell"
+ shell_type = /obj/effect/mob_spawn/human/golem/servant
///Syndicate Listening Post
/obj/effect/mob_spawn/human/lavaland_syndicate
diff --git a/html/changelog.html b/html/changelog.html
index 0b7aa971681..55b4761bba7 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -60,6 +60,32 @@
Fixed being unable to hit museum cases in melee
+
Joan updated:
+
+
The verb to Assert Leadership over the cult has been replaced with an action button that does the same thing, but is much more visible.
+
+
Moonlighting Mac says updated:
+
+
After a recent trade fair, employees have took it upon themselves to learn how to craft leather objects out of finished leather sheets, for novices they are pretty good at it! Try it yourself!
+
Muzzles to silence people are now craftable out of leather sheets.
+
You can no longer print off designs from a bio-generator that can now be crafted out of leather sheets.
+
Complete sheets of leather can be printed from the bio-generator for 150 biomass to accommodate for a loss of designs.
+
Specialist objects from the leather & cloth category bio-generator category were not removed as to encourage interdepartmental interaction & balance.
+
+
Penguaro updated:
+
+
The Slime Scanner is available from the Autolathe.
+
The Design Names in the various machines are now capitalized consistently
+
+
coiax updated:
+
+
Fixes various mobs speaking languages that they were only supposed to understand.
+
Fixes being able to bypass language restrictions by selecting languages you can't speak as your default language.
+
+
+
Welcome to computer configuration utility. Please consult your system administrator if you have any questions about your device.
+
+ {{data.power_usage}}W
+
+
{{#if data.battery}}
Active
@@ -64,41 +36,32 @@
Not Available
{{/if}}
-
-
- {{data.power_usage}}W
-
- {{Math.round(adata.disk_used)}}GQ/{{adata.disk_size}}GQ
+ {{Math.round(adata.disk_used)}}GQ / {{adata.disk_size}}GQ
-
{{#each data.hardware}}
+
+
+
{{/each}}
\ No newline at end of file
diff --git a/tgui/src/interfaces/file_manager.ract b/tgui/src/interfaces/ntos_file_manager.ract
similarity index 71%
rename from tgui/src/interfaces/file_manager.ract
rename to tgui/src/interfaces/ntos_file_manager.ract
index 8f75b5a6232..efc3b15cb35 100644
--- a/tgui/src/interfaces/file_manager.ract
+++ b/tgui/src/interfaces/ntos_file_manager.ract
@@ -1,41 +1,8 @@
+
+
-
An error has occurred and this program can not continue.
Additional information: {{data.error}}
diff --git a/tgui/src/interfaces/ntos_main.ract b/tgui/src/interfaces/ntos_main.ract
new file mode 100644
index 00000000000..fcaf5135260
--- /dev/null
+++ b/tgui/src/interfaces/ntos_main.ract
@@ -0,0 +1,14 @@
+
+
+
+
+ No program loaded. Please select program from list below.
+
+ {{#each data.programs}}
+
+ {{desc}}
+
+
+ {{/each}}
+
+
\ No newline at end of file
diff --git a/tgui/src/interfaces/ntnet_chat.ract b/tgui/src/interfaces/ntos_net_chat.ract
similarity index 67%
rename from tgui/src/interfaces/ntnet_chat.ract
rename to tgui/src/interfaces/ntos_net_chat.ract
index 03be35d39de..7ea9055a4c4 100644
--- a/tgui/src/interfaces/ntnet_chat.ract
+++ b/tgui/src/interfaces/ntos_net_chat.ract
@@ -1,38 +1,6 @@
+
+
-
+
\ No newline at end of file
diff --git a/tgui/src/interfaces/ntos_station_alert.ract b/tgui/src/interfaces/ntos_station_alert.ract
new file mode 100644
index 00000000000..3b74ee05095
--- /dev/null
+++ b/tgui/src/interfaces/ntos_station_alert.ract
@@ -0,0 +1,14 @@
+
+
+
+{{#each data.alarms:class}}
+
+
+ {{#each .}}
+
{{.}}
+ {{else}}
+
System Nominal
+ {{/each}}
+
+
+{{/each}}
\ No newline at end of file
diff --git a/tgui/src/interfaces/ntosheader.ract b/tgui/src/interfaces/ntosheader.ract
new file mode 100644
index 00000000000..4468f1722a7
--- /dev/null
+++ b/tgui/src/interfaces/ntosheader.ract
@@ -0,0 +1,30 @@
+