[MIRROR] forward refs in usr dialog (#10115)

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
CHOMPStation2StaffMirrorBot
2025-02-08 16:06:42 -07:00
committed by GitHub
parent dd1e35202f
commit 90329c46d2
50 changed files with 229 additions and 202 deletions

View File

@@ -259,7 +259,7 @@
S.use(1)
count++
user.visible_message("\The [user] inserts [S.name] into \the [src].", span_notice("You insert [count] [S.name] into \the [src]."))
updateUsrDialog()
updateUsrDialog(user)
else
to_chat(user, span_warning("\The [src] cannot hold more [S.name]."))
return 1

View File

@@ -72,7 +72,7 @@
INVOKE_ASYNC(src, PROC_REF(toggle_all), FALSE)
. = TRUE
if("scan")
scanscrubbers()
scanscrubbers(ui.user)
. = TRUE
add_fingerprint(ui.user)
@@ -92,7 +92,7 @@
return FALSE
return TRUE
/obj/machinery/computer/area_atmos/proc/scanscrubbers()
/obj/machinery/computer/area_atmos/proc/scanscrubbers(mob/user)
connectedscrubbers = list()
var/found = 0
@@ -103,13 +103,13 @@
if(!found)
status = "ERROR: No scrubber found!"
updateUsrDialog()
updateUsrDialog(user)
// The one that only works in the same map area
/obj/machinery/computer/area_atmos/area
zone = "This computer is working in a wired network limited to this area."
/obj/machinery/computer/area_atmos/area/scanscrubbers()
/obj/machinery/computer/area_atmos/area/scanscrubbers(mob/user)
connectedscrubbers.Cut()
var/found = 0
@@ -121,7 +121,7 @@
if(!found)
status = "ERROR: No scrubber found!"
src.updateUsrDialog()
updateUsrDialog(user)
/obj/machinery/computer/area_atmos/area/validscrubber(var/obj/machinery/portable_atmospherics/powered/scrubber/huge/scrubber)
if(!istype(scrubber))

View File

@@ -231,7 +231,7 @@
icon_state = "biogen-work"
return
/obj/machinery/biogenerator/attackby(var/obj/item/O as obj, var/mob/user as mob)
/obj/machinery/biogenerator/attackby(var/obj/item/O, var/mob/user)
if(default_deconstruction_screwdriver(user, O))
return
if(default_deconstruction_crowbar(user, O))
@@ -247,7 +247,7 @@
user.remove_from_mob(O)
O.loc = src
beaker = O
updateUsrDialog()
updateUsrDialog(user)
else if(processing)
to_chat(user, span_notice("\The [src] is currently processing."))
else if(istype(O, /obj/item/storage/bag/plants))

View File

@@ -81,7 +81,7 @@
/obj/machinery/organ_printer/attackby(var/obj/item/O, var/mob/user)
if(default_deconstruction_screwdriver(user, O))
updateUsrDialog()
updateUsrDialog(user)
return
if(default_deconstruction_crowbar(user, O))
return

View File

@@ -407,15 +407,12 @@
mess = 1
update_icon()
occupant.ghostize()
spawn(5)
qdel(occupant)
return
QDEL_IN(occupant, 0.5 SECONDS)
/obj/machinery/clonepod/relaymove(mob/user as mob)
/obj/machinery/clonepod/relaymove(mob/user)
if(user.stat)
return
go_out()
return
/obj/machinery/clonepod/emp_act(severity)
if(prob(100/severity))

View File

@@ -732,7 +732,7 @@
event()
src.add_fingerprint(usr)
src.updateUsrDialog()
src.updateUsrDialog(usr)
busy = 0
return

View File

@@ -186,7 +186,7 @@
M.open()
else
M.close()
updateUsrDialog()
updateUsrDialog(usr)
return

View File

@@ -66,7 +66,7 @@ var/prison_shuttle_timeleft = 0
post_signal("prison")
to_chat(usr, span_notice("The prison shuttle has been called and will arrive in [(PRISON_MOVETIME/10)] seconds."))
src.temp += "Shuttle sent.<BR><BR><A href='byond://?src=\ref[src];mainmenu=1'>OK</A>"
src.updateUsrDialog()
src.updateUsrDialog(usr)
prison_shuttle_moving_to_prison = 1
prison_shuttle_time = world.timeofday + PRISON_MOVETIME
spawn(0)
@@ -80,7 +80,7 @@ var/prison_shuttle_timeleft = 0
post_signal("prison")
to_chat(usr, span_notice("The prison shuttle has been called and will arrive in [(PRISON_MOVETIME/10)] seconds."))
src.temp += "Shuttle sent.<BR><BR><A href='byond://?src=\ref[src];mainmenu=1'>OK</A>"
src.updateUsrDialog()
src.updateUsrDialog(usr)
prison_shuttle_moving_to_station = 1
prison_shuttle_time = world.timeofday + PRISON_MOVETIME
spawn(0)
@@ -90,7 +90,7 @@ var/prison_shuttle_timeleft = 0
src.temp = null
src.add_fingerprint(usr)
src.updateUsrDialog()
src.updateUsrDialog(usr)
return

View File

@@ -295,7 +295,7 @@ var/specops_shuttle_timeleft = 0
to_chat(usr, span_notice("The Special Operations shuttle will arrive at [using_map.boss_name] in [(SPECOPS_MOVETIME/10)] seconds."))
temp += "Shuttle departing.<BR><BR><A href='byond://?src=\ref[src];mainmenu=1'>OK</A>"
updateUsrDialog()
updateUsrDialog(usr)
specops_shuttle_moving_to_centcom = 1
specops_shuttle_time = world.timeofday + SPECOPS_MOVETIME
@@ -312,7 +312,7 @@ var/specops_shuttle_timeleft = 0
to_chat(usr, span_notice("The Special Operations shuttle will arrive on [station_name()] in [(SPECOPS_MOVETIME/10)] seconds."))
temp += "Shuttle departing.<BR><BR><A href='byond://?src=\ref[src];mainmenu=1'>OK</A>"
updateUsrDialog()
updateUsrDialog(usr)
var/area/centcom/specops/special_ops = locate()
if(special_ops)
@@ -327,7 +327,7 @@ var/specops_shuttle_timeleft = 0
temp = null
add_fingerprint(usr)
updateUsrDialog()
updateUsrDialog(usr)
return
#undef SPECOPS_MOVETIME

View File

@@ -322,7 +322,7 @@
data_core.manifest_modify(writer.registered_name, writer.assignment, writer.rank)
callHook("reassign_employee", list(writer))
computer.updateUsrDialog()
computer.updateUsrDialog(usr)
return
/datum/file/program/card_comp/centcom

View File

@@ -341,7 +341,7 @@ Just a object used in constructing fire alarms
var/tp = text2num(href_list["tp"])
time += tp
time = min(max(round(time), 0), 120)
updateUsrDialog()
updateUsrDialog(usr)
add_fingerprint(usr)
else

View File

@@ -300,9 +300,6 @@
radio_connection.post_signal(src, signal, radio_filter = RADIO_MAGNETS)
spawn(1)
updateUsrDialog() // pretty sure this increases responsiveness
if(href_list["operation"])
switch(href_list["operation"])
if("plusspeed")
@@ -327,7 +324,7 @@
spawn() MagnetMove()
updateUsrDialog()
updateUsrDialog(usr)
/obj/machinery/magnetic_controller/proc/MagnetMove()
if(looping) return

View File

@@ -86,7 +86,7 @@
flick("partslathe-lidopen", src)
icon_state = "partslathe-idle"
/obj/machinery/partslathe/attackby(var/obj/item/O as obj, var/mob/user as mob)
/obj/machinery/partslathe/attackby(var/obj/item/O, var/mob/user)
if(busy)
to_chat(user, span_notice("\The [src] is busy. Please wait for completion of previous operation."))
return 1
@@ -110,7 +110,7 @@
copy_board = O
O.forceMove(src)
user.visible_message("[user] inserts [O] into \the [src]'s circuit reader.", span_notice("You insert [O] into \the [src]'s circuit reader."))
updateUsrDialog()
updateUsrDialog(user)
return
if(try_load_materials(user, O))
return
@@ -136,7 +136,7 @@
count++
user.visible_message("[user] inserts [S.name] into \the [src].", span_notice("You insert [count] [S.name] into \the [src]."))
flick("partslathe-load-[S.material.name]", src)
updateUsrDialog()
updateUsrDialog(user)
else
to_chat(user, span_warning("\The [src] cannot hold more [S.name]."))
return 1

View File

@@ -539,7 +539,7 @@
if(allowed(user))
locked = !locked
to_chat(user, span_notice("Controls are now [locked ? "locked" : "unlocked"]."))
updateUsrDialog()
updateUsrDialog(user)
else
to_chat(user, span_notice("Access denied."))

View File

@@ -122,7 +122,7 @@ Please wait until completion...</TT><BR>
being_built = new building(src)
add_overlay("fab-active")
updateUsrDialog()
updateUsrDialog(usr)
spawn (build_time)
if(!isnull(being_built))

View File

@@ -131,10 +131,10 @@ GLOBAL_LIST_EMPTY(suit_cycler_typecache)
return loaded
/obj/machinery/suit_cycler/attack_ai(mob/user as mob)
/obj/machinery/suit_cycler/attack_ai(mob/user)
return attack_hand(user)
/obj/machinery/suit_cycler/attackby(obj/item/I as obj, mob/user as mob)
/obj/machinery/suit_cycler/attackby(obj/item/I, mob/user)
if(electrified != 0)
if(shock(user, 100))
@@ -174,7 +174,7 @@ GLOBAL_LIST_EMPTY(suit_cycler_typecache)
add_fingerprint(user)
qdel(G)
updateUsrDialog()
updateUsrDialog(user)
return
else if(I.has_tool_quality(TOOL_SCREWDRIVER))
@@ -182,7 +182,7 @@ GLOBAL_LIST_EMPTY(suit_cycler_typecache)
panel_open = !panel_open
playsound(src, I.usesound, 50, 1)
to_chat(user, "You [panel_open ? "open" : "close"] the maintenance panel.")
updateUsrDialog()
updateUsrDialog(user)
return
else if(istype(I,/obj/item/clothing/head/helmet/space/void) && !istype(I, /obj/item/clothing/head/helmet/space/rig))
@@ -222,7 +222,7 @@ GLOBAL_LIST_EMPTY(suit_cycler_typecache)
helmet = I
update_icon()
updateUsrDialog()
updateUsrDialog(user)
return
else if(istype(I,/obj/item/clothing/suit/space/void))
@@ -262,7 +262,7 @@ GLOBAL_LIST_EMPTY(suit_cycler_typecache)
suit = I
update_icon()
updateUsrDialog()
updateUsrDialog(user)
return
..()
@@ -278,7 +278,7 @@ GLOBAL_LIST_EMPTY(suit_cycler_typecache)
emagged = 1
safeties = 0
req_access = list()
updateUsrDialog()
updateUsrDialog(user)
return 1
/obj/machinery/suit_cycler/attack_hand(mob/user as mob)
@@ -396,7 +396,7 @@ GLOBAL_LIST_EMPTY(suit_cycler_typecache)
active = 1
spawn(100)
repair_suit()
finished_job()
finished_job(ui.user)
. = TRUE
if("apply_paintjob")
@@ -405,7 +405,7 @@ GLOBAL_LIST_EMPTY(suit_cycler_typecache)
active = 1
spawn(100)
apply_paintjob()
finished_job()
finished_job(ui.user)
. = TRUE
if("lock")
@@ -475,13 +475,13 @@ GLOBAL_LIST_EMPTY(suit_cycler_typecache)
occupant.take_organ_damage(0,radiation_level + rand(1,3))
occupant.apply_effect(radiation_level*10, IRRADIATE)
/obj/machinery/suit_cycler/proc/finished_job()
/obj/machinery/suit_cycler/proc/finished_job(mob/user)
var/turf/T = get_turf(src)
T.visible_message("[icon2html(src,viewers(src))]" + span_notice("The [src] beeps several times."))
icon_state = initial(icon_state)
active = 0
playsound(src, 'sound/machines/boobeebeep.ogg', 50)
updateUsrDialog()
updateUsrDialog(user)
/obj/machinery/suit_cycler/proc/repair_suit()
if(!suit || !suit.damage || !suit.can_breach)
@@ -502,7 +502,7 @@ GLOBAL_LIST_EMPTY(suit_cycler_typecache)
eject_occupant(usr)
/obj/machinery/suit_cycler/proc/eject_occupant(mob/user as mob)
/obj/machinery/suit_cycler/proc/eject_occupant(mob/user)
if(locked || active)
to_chat(user, span_warning("The cycler is locked."))
@@ -519,7 +519,7 @@ GLOBAL_LIST_EMPTY(suit_cycler_typecache)
occupant = null
add_fingerprint(user)
updateUsrDialog()
updateUsrDialog(user)
update_icon()
return

View File

@@ -227,7 +227,7 @@
return
/obj/machinery/suit_storage_unit/proc/toggle_open(mob/user as mob)
/obj/machinery/suit_storage_unit/proc/toggle_open(mob/user)
if(islocked || isUV)
to_chat(user, span_warning("Unable to open unit."))
return
@@ -238,7 +238,7 @@
return
/obj/machinery/suit_storage_unit/proc/toggle_lock(mob/user as mob)
/obj/machinery/suit_storage_unit/proc/toggle_lock(mob/user)
if(OCCUPANT && safetieson)
to_chat(user, span_warning("The Unit's safety protocols disallow locking when a biological form is detected inside its compartments."))
return
@@ -248,7 +248,7 @@
return
/obj/machinery/suit_storage_unit/proc/start_UV(mob/user as mob)
/obj/machinery/suit_storage_unit/proc/start_UV(mob/user)
if(isUV || isopen) //I'm bored of all these sanity checks
return
if(OCCUPANT && safetieson)
@@ -263,7 +263,7 @@
if(OCCUPANT && !islocked)
islocked = 1 //Let's lock it for good measure
update_icon()
updateUsrDialog()
updateUsrDialog(user)
var/i //our counter
for(i=0,i<4,i++)
@@ -302,7 +302,7 @@
eject_occupant(OCCUPANT) //Mixing up these two lines causes bug. DO NOT DO IT.
isUV = 0 //Cycle ends
update_icon()
updateUsrDialog()
updateUsrDialog(user)
return
/obj/machinery/suit_storage_unit/proc/cycletimeleft()
@@ -343,7 +343,7 @@
return
eject_occupant(usr)
add_fingerprint(usr)
updateUsrDialog()
updateUsrDialog(usr)
update_icon()
return
@@ -375,21 +375,21 @@
update_icon()
add_fingerprint(usr)
updateUsrDialog()
updateUsrDialog(usr)
return
else
OCCUPANT = null //Testing this as a backup sanity test
return
/obj/machinery/suit_storage_unit/attackby(obj/item/I as obj, mob/user as mob)
/obj/machinery/suit_storage_unit/attackby(obj/item/I, mob/user)
if(!ispowered)
return
if(I.has_tool_quality(TOOL_SCREWDRIVER))
panelopen = !panelopen
playsound(src, I.usesound, 100, 1)
to_chat(user, span_notice("You [panelopen ? "open up" : "close"] the unit's maintenance panel."))
updateUsrDialog()
updateUsrDialog(user)
return
if(istype(I, /obj/item/grab))
var/obj/item/grab/G = I
@@ -417,7 +417,7 @@
add_fingerprint(user)
qdel(G)
updateUsrDialog()
updateUsrDialog(user)
update_icon()
return
return
@@ -433,7 +433,7 @@
S.loc = src
SUIT = S
update_icon()
updateUsrDialog()
updateUsrDialog(user)
return
if(istype(I,/obj/item/clothing/head/helmet))
if(!isopen)
@@ -447,7 +447,7 @@
H.loc = src
HELMET = H
update_icon()
updateUsrDialog()
updateUsrDialog(user)
return
if(istype(I,/obj/item/clothing/mask))
if(!isopen)
@@ -461,14 +461,14 @@
M.loc = src
MASK = M
update_icon()
updateUsrDialog()
updateUsrDialog(user)
return
update_icon()
updateUsrDialog()
updateUsrDialog(user)
return
/obj/machinery/suit_storage_unit/attack_ai(mob/user as mob)
/obj/machinery/suit_storage_unit/attack_ai(mob/user)
return attack_hand(user)
//////////////////////////////REMINDER: Make it lock once you place some fucker inside.

View File

@@ -40,18 +40,18 @@
return
if(href_list["betraitor"])
if(charges < 1)
updateUsrDialog()
updateUsrDialog(usr)
return
var/mob/M = locate(href_list["traitormob"])
if(M.mind.special_role || jobban_isbanned(M, JOB_SYNDICATE))
temptext = "<i>We have no need for you at this time. Have a pleasant day.</i><br>"
updateUsrDialog()
updateUsrDialog(usr)
return
charges -= 1
switch(rand(1,2))
if(1)
temptext = "<font color=red><i><b>Double-crosser. You planned to betray us from the start. Allow us to repay the favor in kind.</b></i></font>"
updateUsrDialog()
updateUsrDialog(usr)
spawn(rand(50,200)) selfdestruct()
return
if(2)
@@ -63,7 +63,7 @@
traitors.equip(N)
message_admins("[N]/([N.ckey]) has accepted a traitor objective from a syndicate beacon.")
updateUsrDialog()
updateUsrDialog(usr)
return
/obj/machinery/syndicate_beacon/proc/selfdestruct()

View File

@@ -1,6 +1,6 @@
// Virgo modified syndie beacon, does not give objectives
/obj/machinery/syndicate_beacon/virgo/attack_hand(var/mob/user as mob)
/obj/machinery/syndicate_beacon/virgo/attack_hand(var/mob/user)
user.set_machine(src)
var/dat = "<font color=#005500><i>Scanning [pick("retina pattern", "voice print", "fingerprints", "dna sequence")]...<br>Identity confirmed,<br></i></font>"
if(ishuman(user) || isAI(user))
@@ -22,12 +22,12 @@
/obj/machinery/syndicate_beacon/virgo/Topic(href, href_list)
if(href_list["betraitor"])
if(charges < 1)
updateUsrDialog()
updateUsrDialog(usr)
return
var/mob/M = locate(href_list["traitormob"])
if(M.mind.tcrystals > 0 || jobban_isbanned(M, JOB_SYNDICATE))
temptext = "<i>We have no need for you at this time. Have a pleasant day.</i><br>"
updateUsrDialog()
updateUsrDialog(usr)
return
charges -= 1
if(ishuman(M))
@@ -38,5 +38,5 @@
N.mind.accept_tcrystals = 1
message_admins("[N]/([N.ckey]) has received an uplink and telecrystals from the syndicate beacon.")
updateUsrDialog()
updateUsrDialog(usr)
return

View File

@@ -150,7 +150,7 @@
playsound(src, 'sound/effects/sparks4.ogg', 75, 1)
emagged = 1
to_chat(user, span_notice("You you disable the security protocols"))
src.updateUsrDialog()
updateUsrDialog(user)
return 1
/obj/machinery/computer/telecomms/server/proc/set_temp(var/text, var/color = "average")

View File

@@ -122,7 +122,7 @@
playsound(src, 'sound/effects/sparks4.ogg', 75, 1)
emagged = 1
to_chat(user, span_notice("You you disable the security protocols"))
src.updateUsrDialog()
src.updateUsrDialog(user)
return 1
/obj/machinery/computer/telecomms/monitor/proc/set_temp(var/text, var/color = "average")

View File

@@ -206,7 +206,7 @@
servers = list()
temp = "<font color = #336699>- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -</font>"
updateUsrDialog()
updateUsrDialog(usr)
return
/obj/machinery/computer/telecomms/traffic/emag_act(var/remaining_charges, var/mob/user)
@@ -214,5 +214,5 @@
playsound(src, 'sound/effects/sparks4.ogg', 75, 1)
emagged = 1
to_chat(user, span_notice("You you disable the security protocols"))
src.updateUsrDialog()
updateUsrDialog(user)
return 1

View File

@@ -161,7 +161,7 @@
in_use = FALSE
return
in_use = FALSE
updateUsrDialog()
updateUsrDialog(usr)

View File

@@ -14,7 +14,7 @@
w_class = ITEMSIZE_TINY
var/list/item_quants = list()
/obj/item/seedbag/attack_self(mob/user as mob)
/obj/item/seedbag/attack_self(mob/user)
user.machine = src
interact(user)
@@ -29,7 +29,7 @@
if(0)
to_chat(usr, "The bag now picks up one seed pouch at a time.")
/obj/item/seeds/attackby(var/obj/item/O as obj, var/mob/user as mob)
/obj/item/seeds/attackby(var/obj/item/O, var/mob/user)
..()
if (istype(O, /obj/item/seedbag))
var/obj/item/seedbag/S = O
@@ -43,7 +43,7 @@
S.item_quants[G.name] = 1
else
to_chat(user, span_warning("The seed bag is full."))
S.updateUsrDialog()
S.updateUsrDialog(user)
return
to_chat(user, span_notice("You pick up all the seeds."))
else
@@ -55,10 +55,10 @@
S.item_quants[name] = 1
else
to_chat(user, span_warning("The seed bag is full."))
S.updateUsrDialog()
S.updateUsrDialog(user)
return
/obj/item/seedbag/interact(mob/user as mob)
/obj/item/seedbag/interact(mob/user)
var/dat = "<TT><b>Select an item:</b><br>"
@@ -102,10 +102,10 @@
for(var/obj/O in contents )
O.loc = get_turf(src)
src.updateUsrDialog()
src.updateUsrDialog(usr)
return
/obj/item/seedbag/updateUsrDialog()
/obj/item/seedbag/updateUsrDialog(mob/user)
var/list/nearby = range(1, src)
for(var/mob/M in nearby)
if ((M.client && M.machine == src))

View File

@@ -24,7 +24,7 @@
add_implants()
/obj/machinery/implantchair/attack_hand(mob/user as mob)
/obj/machinery/implantchair/attack_hand(mob/user)
user.set_machine(src)
var/health_text = ""
if(src.occupant)
@@ -62,12 +62,12 @@
add_implants()
ready = 1
src.updateUsrDialog()
src.updateUsrDialog(usr)
src.add_fingerprint(usr)
return
/obj/machinery/implantchair/attackby(var/obj/item/G as obj, var/mob/user as mob)
/obj/machinery/implantchair/attackby(var/obj/item/G, var/mob/user)
if(istype(G, /obj/item/grab))
var/obj/item/grab/grab = G
if(!ismob(grab.affecting))
@@ -78,7 +78,7 @@
var/mob/M = grab.affecting
if(put_mob(M))
qdel(G)
src.updateUsrDialog()
src.updateUsrDialog(user)
return
@@ -99,7 +99,7 @@
return
/obj/machinery/implantchair/proc/put_mob(mob/living/carbon/M as mob)
/obj/machinery/implantchair/proc/put_mob(mob/living/carbon/M)
if(!iscarbon(M))
to_chat(usr, span_warning("\The [src] cannot hold this!"))
return

View File

@@ -104,24 +104,26 @@
else
return null
/obj/proc/updateUsrDialog()
/obj/proc/updateUsrDialog(mob/user)
if(in_use)
to_world("we actually have a [user]")
to_world("we got a [usr]")
var/is_in_use = 0
var/list/nearby = viewers(1, src)
for(var/mob/M in nearby)
if ((M.client && M.machine == src))
is_in_use = 1
src.attack_hand(M)
if (isAI(usr) || isrobot(usr))
if (!(usr in nearby))
if (usr.client && usr.machine==src) // && M.machine == src is omitted because if we triggered this by using the dialog, it doesn't matter if our machine changed in between triggering it and this - the dialog is probably still supposed to refresh.
if (isAI(user) || isrobot(user))
if (!(user in nearby))
if (user.client && user.machine==src) // && M.machine == src is omitted because if we triggered this by using the dialog, it doesn't matter if our machine changed in between triggering it and this - the dialog is probably still supposed to refresh.
is_in_use = 1
src.attack_ai(usr)
src.attack_ai(user)
// check for TK users
if (ishuman(usr))
var/mob/living/carbon/human/H = usr
if (ishuman(user))
var/mob/living/carbon/human/H = user
if(H.get_type_in_hands(/obj/item/tk_grab))
if(!(H in nearby))
if(H.client && H.machine==src)

View File

@@ -42,7 +42,7 @@ FLOOR SAFES
space += I.w_class
I.forceMove(src)
/obj/structure/safe/proc/check_unlocked(mob/user as mob, canhear)
/obj/structure/safe/proc/check_unlocked(mob/user, canhear)
if(user && canhear)
if(tumbler_1_pos == tumbler_1_open)
to_chat(user, span_notice("You hear a [pick("tonk", "krunk", "plunk")] from \the [src]."))
@@ -75,7 +75,7 @@ FLOOR SAFES
icon_state = initial(icon_state)
/obj/structure/safe/attack_hand(mob/user as mob)
/obj/structure/safe/attack_hand(mob/user)
user.set_machine(src)
var/dat = "<center>"
dat += "<a href='byond://?src=\ref[src];open=1'>[open ? "Close" : "Open"] [src]</a> | <a href='byond://?src=\ref[src];decrement=1'>-</a> [dial * 5] <a href='byond://?src=\ref[src];increment=1'>+</a>"
@@ -101,7 +101,7 @@ FLOOR SAFES
to_chat(user, span_notice("You [open ? "close" : "open"] [src]."))
open = !open
update_icon()
updateUsrDialog()
updateUsrDialog(usr)
return
else
to_chat(user, span_notice("You can't [open ? "close" : "open"] [src], the lock is engaged!"))
@@ -120,7 +120,7 @@ FLOOR SAFES
playsound(src, 'sound/machines/click.ogg', 20, 1)
check_unlocked(user, canhear)
updateUsrDialog()
updateUsrDialog(usr)
return
if(href_list["increment"])
@@ -135,7 +135,7 @@ FLOOR SAFES
to_chat(user, span_notice("You hear a [pick("click", "chink", "clink")] from \the [src]."))
playsound(src, 'sound/machines/click.ogg', 20, 1)
check_unlocked(user, canhear)
updateUsrDialog()
updateUsrDialog(usr)
return
if(href_list["retrieve"])
@@ -145,17 +145,17 @@ FLOOR SAFES
if(open)
if(P && in_range(src, user))
user.put_in_hands(P)
updateUsrDialog()
updateUsrDialog(usr)
/obj/structure/safe/attackby(obj/item/I as obj, mob/user as mob)
/obj/structure/safe/attackby(obj/item/I, mob/user)
if(open)
if(I.w_class + space <= maxspace)
space += I.w_class
user.drop_item()
I.loc = src
to_chat(user, span_notice("You put [I] in \the [src]."))
updateUsrDialog()
updateUsrDialog(user)
return
else
to_chat(user, span_notice("[I] won't fit in \the [src]."))

View File

@@ -136,7 +136,7 @@
isopen = 0
update_icon()
add_fingerprint(M)
updateUsrDialog()
updateUsrDialog(M)
M.stop_flying()
/obj/machinery/vending/stumble_into(mob/living/M)

View File

@@ -122,7 +122,7 @@
do_confirm(confirmation, usr)
src.add_fingerprint(usr)
src.updateUsrDialog()
src.updateUsrDialog(usr)
return
/obj/machinery/computer/interservershipping/proc/do_confirm(var/confirmation, var/mob/user)

View File

@@ -107,7 +107,7 @@ Book Cart
anchored = FALSE
opacity = 0
/obj/structure/bookcase/bookcart/attackby(obj/item/O as obj, mob/user as mob)
/obj/structure/bookcase/bookcart/attackby(obj/item/O as obj, mob/user)
if(istype(O, /obj/item/book))
user.drop_item()
O.loc = src
@@ -188,7 +188,7 @@ Book Cart End
drop_sound = 'sound/items/drop/book.ogg'
pickup_sound = 'sound/items/pickup/book.ogg'
/obj/item/book/attack_self(var/mob/user as mob)
/obj/item/book/attack_self(var/mob/user)
if(carved)
if(store)
to_chat(user, span_notice("[store] falls out of [title]!"))
@@ -299,7 +299,7 @@ Book Cart End
else
..()
/obj/item/book/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
/obj/item/book/attack(mob/living/carbon/M, mob/living/carbon/user)
if(user.zone_sel.selecting == O_EYES)
user.visible_message(span_notice("You open up the book and show it to [M]."), \
span_notice(" [user] opens up a book and shows it to [M]."))
@@ -373,7 +373,7 @@ Book Cart End
page--
playsound(src, "pageturn", 50, 1)
src.attack_self(usr)
updateUsrDialog()
updateUsrDialog(usr)
else
to_chat(usr, span_notice("You need to hold it in your hands!"))
@@ -391,7 +391,7 @@ Book Cart End
var/obj/item/book/book // Currently scanned book
var/mode = 0 // 0 - Scan only, 1 - Scan and Set Buffer, 2 - Scan and Attempt to Check In, 3 - Scan and Attempt to Add to Inventory
/obj/item/barcodescanner/attack_self(mob/user as mob)
/obj/item/barcodescanner/attack_self(mob/user)
mode += 1
if(mode > 3)
mode = 0

View File

@@ -106,7 +106,7 @@
screenstate = 0
src.add_fingerprint(usr)
src.updateUsrDialog()
src.updateUsrDialog(usr)
return
@@ -513,7 +513,7 @@
var/obj/item/book/NewBook = new newpath(get_turf(src))
NewBook.name = "Book: [NewBook.name]"
src.add_fingerprint(usr)
src.updateUsrDialog()
src.updateUsrDialog(usr)
return
/*
@@ -564,7 +564,7 @@
for(var/obj/item/book/B in contents)
B.loc = src.loc
src.add_fingerprint(usr)
src.updateUsrDialog()
src.updateUsrDialog(usr)
return

View File

@@ -372,7 +372,7 @@
usr.set_machine(src)
if(href_list["refresh"])
update_patient()
src.updateUsrDialog()
src.updateUsrDialog(usr)
sleeperUI(usr)
return
if(href_list["eject"])
@@ -463,7 +463,7 @@
else
to_chat(usr, span_notice("ERROR: Subject cannot metabolise chemicals."))
updateUsrDialog()
updateUsrDialog(usr)
sleeperUI(usr) //Needs a callback to boop the page to refresh.
return

View File

@@ -185,7 +185,7 @@
update_icon()
src.attack_self(usr)
updateUsrDialog()
updateUsrDialog(usr)
else
to_chat(usr, span_notice("You need to hold it in hands!"))

View File

@@ -54,7 +54,7 @@
if("logout")
authenticated = 0
src.updateUsrDialog()
src.updateUsrDialog(usr)
/obj/machinery/computer/am_engine/attack_ai(var/mob/user as mob)
return src.attack_hand(user)

View File

@@ -96,7 +96,7 @@
return 1
G.mega_energy = CLAMP(new_val, 1, 50)
G.update_active_power_usage(G.mega_energy * 1500)
updateUsrDialog()
updateUsrDialog(usr)
return 1
if(href_list["modifyrate"])
@@ -105,12 +105,12 @@
to_chat(usr, span_warning("That's not a valid number."))
return 1
G.rate = CLAMP(new_val, 1, 10)
updateUsrDialog()
updateUsrDialog(usr)
return 1
if(href_list["toggle"])
G.activate(usr)
updateUsrDialog()
updateUsrDialog(usr)
return 1
return 0

View File

@@ -125,5 +125,5 @@
gravity_generator:on = 1
A.gravitychange(1)
src.updateUsrDialog()
src.updateUsrDialog(usr)
return

View File

@@ -54,7 +54,7 @@
else
for(var/mob/M in viewers(1, src))
if (M.client && M.machine == src)
src.updateUsrDialog()
src.updateUsrDialog(M)
proc
overheat()
@@ -141,20 +141,20 @@
if(!active && HasFuel())
active = 1
icon_state = "portgen1"
src.updateUsrDialog()
src.updateUsrDialog(usr)
if(href_list["action"] == "disable")
if (active)
active = 0
icon_state = "portgen0"
src.updateUsrDialog()
src.updateUsrDialog(usr)
if(href_list["action"] == "lower_power")
if (power_output > 1)
power_output--
src.updateUsrDialog()
src.updateUsrDialog(usr)
if (href_list["action"] == "higher_power")
if (power_output < 4 || emagged)
power_output++
src.updateUsrDialog()
src.updateUsrDialog(usr)
if (href_list["action"] == "close")
usr << browse(null, "window=port_gen")
usr.machine = null

View File

@@ -268,7 +268,7 @@
emagged = 1
return 1
/obj/machinery/power/port_gen/pacman/attackby(var/obj/item/O as obj, var/mob/user as mob)
/obj/machinery/power/port_gen/pacman/attackby(var/obj/item/O, var/mob/user)
if(istype(O, sheet_path))
var/obj/item/stack/addstack = O
var/amount = min((max_sheets - sheets), addstack.get_amount())
@@ -278,7 +278,7 @@
to_chat(user, span_notice("You add [amount] sheet\s to the [src.name]."))
sheets += amount
addstack.use(amount)
updateUsrDialog()
updateUsrDialog(user)
return
else if(!active)
if(O.has_tool_quality(TOOL_WRENCH))
@@ -299,7 +299,7 @@
return
return ..()
/obj/machinery/power/port_gen/pacman/attack_hand(mob/user as mob)
/obj/machinery/power/port_gen/pacman/attack_hand(mob/user)
..()
if (!anchored)
return

View File

@@ -108,7 +108,7 @@
for(var/datum/reagent/R in B.reagents.reagent_list)
. += span_notice("[R.volume] units of [R.name]")
/obj/item/gun/projectile/dartgun/attackby(obj/item/I as obj, mob/user as mob)
/obj/item/gun/projectile/dartgun/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/reagent_containers/glass))
if(!istype(I, container_type))
to_chat(user, span_blue("[I] doesn't seem to fit into [src]."))
@@ -121,7 +121,7 @@
B.loc = src
beakers += B
to_chat(user, span_blue("You slot [B] into [src]."))
src.updateUsrDialog()
updateUsrDialog(user)
return 1
..()
@@ -197,7 +197,7 @@
B.loc = get_turf(src)
else if (href_list["eject_cart"])
unload_ammo(usr)
src.updateUsrDialog()
src.updateUsrDialog(usr)
return
///Variants of the Dartgun and Chemdarts.///

View File

@@ -31,7 +31,7 @@
icon_state = "alembic-bubble"
return
/obj/machinery/alembic/attackby(var/obj/item/potion_material/O as obj, var/mob/user as mob)
/obj/machinery/alembic/attackby(var/obj/item/potion_material/O, var/mob/user)
if(istype(O,/obj/item/potion_material))
if(potion_reagent != 0 )
to_chat(user, span_warning("There is already a reagent in the alembic!"))
@@ -44,7 +44,7 @@
O.loc = src
update_icon()
to_chat(user, span_notice("You place the [O] in the alembic."))
src.updateUsrDialog()
src.updateUsrDialog(user)
return
else if(istype(O,/obj/item/potion_base))
if(base_reagent != 0 )
@@ -56,13 +56,13 @@
O.loc = src
update_icon()
to_chat(user, span_notice("You place the [O] in the alembic."))
src.updateUsrDialog()
src.updateUsrDialog(user)
return
else
to_chat(user, span_warning("This item is no use in the alembic."))
return
/obj/machinery/alembic/attack_hand(mob/user as mob)
/obj/machinery/alembic/attack_hand(mob/user)
if(potion_reagent == 0 || base_reagent == 0) //If there is nothing in there
to_chat(user, span_warning("The alembic is not yet full!"))

View File

@@ -105,7 +105,7 @@ var/global/list/ore_reagents = list( //have a number of reageents divisible by R
icon_state = "juicer"+num2text(!isnull(beaker))
return
/obj/machinery/reagentgrinder/attackby(var/obj/item/O as obj, var/mob/user as mob)
/obj/machinery/reagentgrinder/attackby(var/obj/item/O, var/mob/user)
if(beaker)
if(default_deconstruction_screwdriver(user, O))
return
@@ -124,11 +124,11 @@ var/global/list/ore_reagents = list( //have a number of reageents divisible by R
if (beaker)
return 1
else
src.beaker = O
beaker = O
user.drop_item()
O.loc = src
update_icon()
src.updateUsrDialog()
updateUsrDialog(user)
return 0
if(holdingitems && holdingitems.len >= limit)
@@ -159,7 +159,7 @@ var/global/list/ore_reagents = list( //have a number of reageents divisible by R
else
to_chat(user, "You fill \the [src] from \the [O].")
src.updateUsrDialog()
src.updateUsrDialog(user)
return 0
if(istype(O,/obj/item/gripper))
@@ -194,10 +194,10 @@ var/global/list/ore_reagents = list( //have a number of reageents divisible by R
return
replace_beaker(user)
/obj/machinery/reagentgrinder/attack_hand(mob/user as mob)
/obj/machinery/reagentgrinder/attack_hand(mob/user)
interact(user)
/obj/machinery/reagentgrinder/interact(mob/user as mob) // The microwave Menu //I am reasonably certain that this is not a microwave
/obj/machinery/reagentgrinder/interact(mob/user) // The microwave Menu //I am reasonably certain that this is not a microwave
if(inuse || user.incapacitated())
return

View File

@@ -52,7 +52,7 @@
return
/obj/machinery/injector_maker/attackby(var/obj/item/O as obj, var/mob/user as mob)
/obj/machinery/injector_maker/attackby(var/obj/item/O, var/mob/user)
if (istype(O, /obj/item/multitool))
return ..()
@@ -68,7 +68,7 @@
user.drop_item()
O.loc = src
update_icon()
src.updateUsrDialog()
src.updateUsrDialog(user)
return 0
@@ -144,10 +144,10 @@
for(var/datum/reagent/R in beaker.reagents.reagent_list)
. += span_notice("- [R.volume] units of [R.name].")
/obj/machinery/injector_maker/attack_hand(mob/user as mob)
/obj/machinery/injector_maker/attack_hand(mob/user)
interact(user)
/obj/machinery/injector_maker/interact(mob/user as mob)
/obj/machinery/injector_maker/interact(mob/user)
if(user.incapacitated() || !beaker)
return

View File

@@ -39,7 +39,7 @@
disk = null
. = ..()
/obj/machinery/computer/transhuman/designer/attackby(obj/item/W as obj, mob/user as mob)
/obj/machinery/computer/transhuman/designer/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/disk/body_record))
user.unEquip(W)
disk = W
@@ -49,10 +49,10 @@
else
. = ..()
/obj/machinery/computer/transhuman/designer/attack_ai(mob/user as mob)
/obj/machinery/computer/transhuman/designer/attack_ai(mob/user)
attack_hand(user)
/obj/machinery/computer/transhuman/designer/attack_hand(mob/user as mob)
/obj/machinery/computer/transhuman/designer/attack_hand(mob/user)
add_fingerprint(user)
if(inoperable())
return

View File

@@ -401,13 +401,13 @@
return 1
/obj/machinery/transhuman/synthprinter/attack_hand(mob/user as mob)
/obj/machinery/transhuman/synthprinter/attack_hand(mob/user)
if((busy == 0) || (stat & NOPOWER))
return
to_chat(user, "Current print cycle is [busy]% complete.")
return
/obj/machinery/transhuman/synthprinter/attackby(obj/item/W as obj, mob/user as mob)
/obj/machinery/transhuman/synthprinter/attackby(obj/item/W, mob/user)
src.add_fingerprint(user)
if(busy)
to_chat(user, span_notice("\The [src] is busy. Please wait for completion of previous operation."))
@@ -442,7 +442,7 @@
else
to_chat(user, "\the [src] cannot hold more [S.name].")
updateUsrDialog()
updateUsrDialog(user)
return
/obj/machinery/transhuman/synthprinter/update_icon()
@@ -466,6 +466,7 @@
anchored = TRUE
var/blur_amount
var/confuse_amount
// var/sickness_duration // CHOMPRemove
var/mob/living/carbon/human/occupant = null
var/connected = null
@@ -495,7 +496,12 @@
manip_rating += M.rating
blur_amount = (48 - manip_rating * 8)
/obj/machinery/transhuman/resleever/attack_hand(mob/user as mob)
/* CHOMPRemove Start
var/total_rating = manip_rating + scan_rating
sickness_duration = (45 - (total_rating-4)*1.875) MINUTES // 45 minutes default, 30 minutes with max non-anomaly upgrades, 15 minutes with max anomaly ones
*/// CHOMPRemove End
/obj/machinery/transhuman/resleever/attack_hand(mob/user)
tgui_interact(user)
/obj/machinery/transhuman/resleever/tgui_interact(mob/user, datum/tgui/ui = null)
@@ -532,7 +538,7 @@
//End chomp edit
return data
/obj/machinery/transhuman/resleever/attackby(obj/item/W as obj, mob/user as mob)
/obj/machinery/transhuman/resleever/attackby(obj/item/W, mob/user)
src.add_fingerprint(user)
if(default_deconstruction_screwdriver(user, W))
return
@@ -547,7 +553,7 @@
var/mob/M = G.affecting
if(put_mob(M))
qdel(G)
src.updateUsrDialog()
src.updateUsrDialog(user)
return //Don't call up else we'll get attack messsages
if(istype(W, /obj/item/paicard/sleevecard))
var/obj/item/paicard/sleevecard/C = W
@@ -560,7 +566,7 @@
return ..()
/obj/machinery/transhuman/resleever/MouseDrop_T(mob/living/carbon/O, mob/user as mob)
/obj/machinery/transhuman/resleever/MouseDrop_T(mob/living/carbon/O, mob/user)
if(!istype(O))
return 0 //not a mob
if(user.incapacitated())
@@ -583,10 +589,10 @@
if(put_mob(O))
if(O == user)
src.updateUsrDialog()
updateUsrDialog(user)
visible_message("[user] climbs into \the [src].")
else
src.updateUsrDialog()
updateUsrDialog(user)
visible_message("[user] puts [O] into \the [src].")
add_fingerprint(user)
@@ -662,6 +668,19 @@
occupant.confused = max(occupant.confused, confuse_amount)
occupant.eye_blurry = max(occupant.eye_blurry, blur_amount)
/* CHOMPRemove Start
// Vore deaths get a fake modifier labeled as such
if(!occupant.mind)
log_debug("[occupant] didn't have a mind to check for vore_death, which may be problematic.")
if(occupant.mind?.vore_death)
occupant.add_modifier(/datum/modifier/faux_resleeving_sickness, sickness_duration)
occupant.mind.vore_death = FALSE
// Normal ones get a normal modifier to nerf charging into combat
else
occupant.add_modifier(/datum/modifier/resleeving_sickness, sickness_duration)
*/// CHOMPRemove End
if(occupant.mind && occupant.original_player && ckey(occupant.mind.key) != occupant.original_player)
log_and_message_admins("is now a cross-sleeved character. Body originally belonged to [occupant.real_name]. Mind is now [occupant.mind.name].",occupant)
@@ -682,7 +701,7 @@
icon_state = "implantchair"
return
/obj/machinery/transhuman/resleever/proc/put_mob(mob/living/carbon/human/M as mob)
/obj/machinery/transhuman/resleever/proc/put_mob(mob/living/carbon/human/M)
if(!ishuman(M))
to_chat(usr, span_warning("\The [src] cannot hold this!"))
return

View File

@@ -117,7 +117,7 @@
if(href_list["reset"])
reset()
updateUsrDialog()
updateUsrDialog(usr)
add_fingerprint(usr)
return

View File

@@ -345,4 +345,4 @@
usr.machine = src
src.add_fingerprint(usr)
src.updateUsrDialog()
src.updateUsrDialog(usr)

View File

@@ -91,7 +91,7 @@
else
set_light(2, 2, emptycolor)
/obj/machinery/slime/extractor/proc/extract_cores()
/obj/machinery/slime/extractor/proc/extract_cores(mob/user)
if(!src.occupant)
src.visible_message("[icon2html(src,viewers(src))] [src] pings unhappily.")
else if(inuse)
@@ -99,31 +99,36 @@
inuse = 1
update_light_color()
spawn(30)
icon_state = "scanner_1old"
for(var/i=1 to occupant.cores)
var/obj/item/xenoproduct/slime/core/C = new(src)
C.traits = new()
occupant.traitdat.copy_traits(C.traits)
addtimer(CALLBACK(src, PROC_REF(do_extraction), user) , 3 SECONDS, TIMER_DELETE_ME)
C.nameVar = occupant.nameVar
/obj/machinery/slime/extractor/proc/do_extraction(mob/user)
PRIVATE_PROC(TRUE)
icon_state = "scanner_1old"
for(var/i=1 to occupant.cores)
var/obj/item/xenoproduct/slime/core/C = new(src)
C.traits = new()
occupant.traitdat.copy_traits(C.traits)
C.create_reagents(C.traits.traits[TRAIT_XENO_CHEMVOL])
for(var/reagent in occupant.traitdat.chems)
C.reagents.add_reagent(reagent, occupant.traitdat.chems[reagent])
C.nameVar = occupant.nameVar
C.color = C.traits.traits[TRAIT_XENO_COLOR]
if(occupant.traitdat.get_trait(TRAIT_XENO_BIOLUMESCENT))
C.set_light(occupant.traitdat.get_trait(TRAIT_XENO_GLOW_STRENGTH),occupant.traitdat.get_trait(TRAIT_XENO_GLOW_RANGE), occupant.traitdat.get_trait(TRAIT_XENO_BIO_COLOR))
C.create_reagents(C.traits.traits[TRAIT_XENO_CHEMVOL])
for(var/reagent in occupant.traitdat.chems)
C.reagents.add_reagent(reagent, occupant.traitdat.chems[reagent])
spawn(30)
icon_state = "scanner_0old"
qdel(occupant)
occupant = null //If qdel's being slow or acting up, let's make sure we can't make more cores from this one.
inuse = 0
eject_contents()
update_light_color()
src.updateUsrDialog()
C.color = C.traits.traits[TRAIT_XENO_COLOR]
if(occupant.traitdat.get_trait(TRAIT_XENO_BIOLUMESCENT))
C.set_light(occupant.traitdat.get_trait(TRAIT_XENO_GLOW_STRENGTH),occupant.traitdat.get_trait(TRAIT_XENO_GLOW_RANGE), occupant.traitdat.get_trait(TRAIT_XENO_BIO_COLOR))
qdel(occupant)
occupant = null //If qdel's being slow or acting up, let's make sure we can't make more cores from this one.
addtimer(CALLBACK(src, PROC_REF(finish_extraction), user) , 3 SECONDS, TIMER_DELETE_ME)
/obj/machinery/slime/extractor/proc/finish_extraction(mob/user)
PRIVATE_PROC(TRUE)
icon_state = "scanner_0old"
inuse = 0
eject_contents()
update_light_color()
src.updateUsrDialog(user)
/obj/machinery/slime/extractor/proc/eject_slime()
if(occupant)
@@ -168,10 +173,10 @@
usr.set_machine(src)
switch(href_list["action"])
if ("extract")
extract_cores()
extract_cores(usr)
if("eject")
eject_slime()
src.updateUsrDialog()
src.updateUsrDialog(usr)
return
//Circuit board below,

View File

@@ -246,7 +246,7 @@
usr.set_machine(src)
src.add_fingerprint(usr)
src.updateUsrDialog()
src.updateUsrDialog(usr)
return
/obj/machinery/xenobio/editor

View File

@@ -55,7 +55,7 @@
else
set_light(2, 2, emptycolor)
/obj/machinery/slime/replicator/proc/replicate_slime()
/obj/machinery/slime/replicator/proc/replicate_slime(mob/user)
if(!src.core)
src.visible_message("[icon2html(src,viewers(src))] [src] pings unhappily.")
else if(inuse)
@@ -64,21 +64,28 @@
inuse = 1
update_light_color()
icon_state = "restruct_1"
spawn(30)
var/mob/living/simple_mob/xeno/slime/S = new(src)
S.traitdat = new() //New instance, so that if the core is deleted, the slime retains a trait datum.
S.nameVar = core.nameVar
S.name = "[S.nameVar] baby slime"
core.traits.copy_traits(S.traitdat)
S.ProcessTraits()
addtimer(CALLBACK(src, PROC_REF(spawn_slime), user), 3 SECONDS, TIMER_DELETE_ME)
spawn(30)
qdel(core)
core = null //If qdel's being a bit slow or acting up, let's just make sure we can't clone the core.
inuse = 0
eject_slime()
icon_state = "restruct_0"
update_light_color()
src.updateUsrDialog()
/obj/machinery/slime/replicator/proc/spawn_slime(mob/user)
PRIVATE_PROC(TRUE)
var/mob/living/simple_mob/xeno/slime/S = new(src)
S.traitdat = new() //New instance, so that if the core is deleted, the slime retains a trait datum.
S.nameVar = core.nameVar
S.name = "[S.nameVar] baby slime"
core.traits.copy_traits(S.traitdat)
S.ProcessTraits()
qdel(core)
core = null //If qdel's being a bit slow or acting up, let's just make sure we can't clone the core.
addtimer(CALLBACK(src, PROC_REF(finish_spawn)), 3 SECONDS, TIMER_DELETE_ME)
/obj/machinery/slime/replicator/proc/finish_spawn(mob/user)
PRIVATE_PROC(TRUE)
inuse = 0
eject_slime()
icon_state = "restruct_0"
update_light_color()
src.updateUsrDialog(user)
/obj/machinery/slime/replicator/proc/eject_slime()
for(var/mob/thing in contents)
@@ -123,10 +130,10 @@
usr.set_machine(src)
switch(href_list["action"])
if ("replicate")
replicate_slime()
replicate_slime(usr)
if("eject")
eject_core()
src.updateUsrDialog()
src.updateUsrDialog(usr)
return
//Circuit board below,

View File

@@ -160,7 +160,7 @@
usr.unset_machine()
add_fingerprint(usr)
updateUsrDialog()
updateUsrDialog(usr)
return
//Take the engine tpe we're building, warn engineering, and pass it to the engine loader.