[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) S.use(1)
count++ count++
user.visible_message("\The [user] inserts [S.name] into \the [src].", span_notice("You insert [count] [S.name] into \the [src].")) 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 else
to_chat(user, span_warning("\The [src] cannot hold more [S.name].")) to_chat(user, span_warning("\The [src] cannot hold more [S.name]."))
return 1 return 1

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -66,7 +66,7 @@ var/prison_shuttle_timeleft = 0
post_signal("prison") post_signal("prison")
to_chat(usr, span_notice("The prison shuttle has been called and will arrive in [(PRISON_MOVETIME/10)] seconds.")) 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.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_moving_to_prison = 1
prison_shuttle_time = world.timeofday + PRISON_MOVETIME prison_shuttle_time = world.timeofday + PRISON_MOVETIME
spawn(0) spawn(0)
@@ -80,7 +80,7 @@ var/prison_shuttle_timeleft = 0
post_signal("prison") post_signal("prison")
to_chat(usr, span_notice("The prison shuttle has been called and will arrive in [(PRISON_MOVETIME/10)] seconds.")) 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.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_moving_to_station = 1
prison_shuttle_time = world.timeofday + PRISON_MOVETIME prison_shuttle_time = world.timeofday + PRISON_MOVETIME
spawn(0) spawn(0)
@@ -90,7 +90,7 @@ var/prison_shuttle_timeleft = 0
src.temp = null src.temp = null
src.add_fingerprint(usr) src.add_fingerprint(usr)
src.updateUsrDialog() src.updateUsrDialog(usr)
return 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.")) 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>" 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_moving_to_centcom = 1
specops_shuttle_time = world.timeofday + SPECOPS_MOVETIME 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.")) 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>" 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() var/area/centcom/specops/special_ops = locate()
if(special_ops) if(special_ops)
@@ -327,7 +327,7 @@ var/specops_shuttle_timeleft = 0
temp = null temp = null
add_fingerprint(usr) add_fingerprint(usr)
updateUsrDialog() updateUsrDialog(usr)
return return
#undef SPECOPS_MOVETIME #undef SPECOPS_MOVETIME

View File

@@ -322,7 +322,7 @@
data_core.manifest_modify(writer.registered_name, writer.assignment, writer.rank) data_core.manifest_modify(writer.registered_name, writer.assignment, writer.rank)
callHook("reassign_employee", list(writer)) callHook("reassign_employee", list(writer))
computer.updateUsrDialog() computer.updateUsrDialog(usr)
return return
/datum/file/program/card_comp/centcom /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"]) var/tp = text2num(href_list["tp"])
time += tp time += tp
time = min(max(round(time), 0), 120) time = min(max(round(time), 0), 120)
updateUsrDialog() updateUsrDialog(usr)
add_fingerprint(usr) add_fingerprint(usr)
else else

View File

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

View File

@@ -86,7 +86,7 @@
flick("partslathe-lidopen", src) flick("partslathe-lidopen", src)
icon_state = "partslathe-idle" 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) if(busy)
to_chat(user, span_notice("\The [src] is busy. Please wait for completion of previous operation.")) to_chat(user, span_notice("\The [src] is busy. Please wait for completion of previous operation."))
return 1 return 1
@@ -110,7 +110,7 @@
copy_board = O copy_board = O
O.forceMove(src) 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.")) 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 return
if(try_load_materials(user, O)) if(try_load_materials(user, O))
return return
@@ -136,7 +136,7 @@
count++ count++
user.visible_message("[user] inserts [S.name] into \the [src].", span_notice("You insert [count] [S.name] into \the [src].")) 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) flick("partslathe-load-[S.material.name]", src)
updateUsrDialog() updateUsrDialog(user)
else else
to_chat(user, span_warning("\The [src] cannot hold more [S.name].")) to_chat(user, span_warning("\The [src] cannot hold more [S.name]."))
return 1 return 1

View File

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

View File

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

View File

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

View File

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

View File

@@ -40,18 +40,18 @@
return return
if(href_list["betraitor"]) if(href_list["betraitor"])
if(charges < 1) if(charges < 1)
updateUsrDialog() updateUsrDialog(usr)
return return
var/mob/M = locate(href_list["traitormob"]) var/mob/M = locate(href_list["traitormob"])
if(M.mind.special_role || jobban_isbanned(M, JOB_SYNDICATE)) 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>" temptext = "<i>We have no need for you at this time. Have a pleasant day.</i><br>"
updateUsrDialog() updateUsrDialog(usr)
return return
charges -= 1 charges -= 1
switch(rand(1,2)) switch(rand(1,2))
if(1) 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>" 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() spawn(rand(50,200)) selfdestruct()
return return
if(2) if(2)
@@ -63,7 +63,7 @@
traitors.equip(N) traitors.equip(N)
message_admins("[N]/([N.ckey]) has accepted a traitor objective from a syndicate beacon.") message_admins("[N]/([N.ckey]) has accepted a traitor objective from a syndicate beacon.")
updateUsrDialog() updateUsrDialog(usr)
return return
/obj/machinery/syndicate_beacon/proc/selfdestruct() /obj/machinery/syndicate_beacon/proc/selfdestruct()

View File

@@ -1,6 +1,6 @@
// Virgo modified syndie beacon, does not give objectives // 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) 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>" 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)) if(ishuman(user) || isAI(user))
@@ -22,12 +22,12 @@
/obj/machinery/syndicate_beacon/virgo/Topic(href, href_list) /obj/machinery/syndicate_beacon/virgo/Topic(href, href_list)
if(href_list["betraitor"]) if(href_list["betraitor"])
if(charges < 1) if(charges < 1)
updateUsrDialog() updateUsrDialog(usr)
return return
var/mob/M = locate(href_list["traitormob"]) var/mob/M = locate(href_list["traitormob"])
if(M.mind.tcrystals > 0 || jobban_isbanned(M, JOB_SYNDICATE)) 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>" temptext = "<i>We have no need for you at this time. Have a pleasant day.</i><br>"
updateUsrDialog() updateUsrDialog(usr)
return return
charges -= 1 charges -= 1
if(ishuman(M)) if(ishuman(M))
@@ -38,5 +38,5 @@
N.mind.accept_tcrystals = 1 N.mind.accept_tcrystals = 1
message_admins("[N]/([N.ckey]) has received an uplink and telecrystals from the syndicate beacon.") message_admins("[N]/([N.ckey]) has received an uplink and telecrystals from the syndicate beacon.")
updateUsrDialog() updateUsrDialog(usr)
return return

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -104,24 +104,26 @@
else else
return null return null
/obj/proc/updateUsrDialog() /obj/proc/updateUsrDialog(mob/user)
if(in_use) if(in_use)
to_world("we actually have a [user]")
to_world("we got a [usr]")
var/is_in_use = 0 var/is_in_use = 0
var/list/nearby = viewers(1, src) var/list/nearby = viewers(1, src)
for(var/mob/M in nearby) for(var/mob/M in nearby)
if ((M.client && M.machine == src)) if ((M.client && M.machine == src))
is_in_use = 1 is_in_use = 1
src.attack_hand(M) src.attack_hand(M)
if (isAI(usr) || isrobot(usr)) if (isAI(user) || isrobot(user))
if (!(usr in nearby)) if (!(user 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 (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 is_in_use = 1
src.attack_ai(usr) src.attack_ai(user)
// check for TK users // check for TK users
if (ishuman(usr)) if (ishuman(user))
var/mob/living/carbon/human/H = usr var/mob/living/carbon/human/H = user
if(H.get_type_in_hands(/obj/item/tk_grab)) if(H.get_type_in_hands(/obj/item/tk_grab))
if(!(H in nearby)) if(!(H in nearby))
if(H.client && H.machine==src) if(H.client && H.machine==src)

View File

@@ -42,7 +42,7 @@ FLOOR SAFES
space += I.w_class space += I.w_class
I.forceMove(src) 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(user && canhear)
if(tumbler_1_pos == tumbler_1_open) if(tumbler_1_pos == tumbler_1_open)
to_chat(user, span_notice("You hear a [pick("tonk", "krunk", "plunk")] from \the [src].")) 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) 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) user.set_machine(src)
var/dat = "<center>" 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>" 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].")) to_chat(user, span_notice("You [open ? "close" : "open"] [src]."))
open = !open open = !open
update_icon() update_icon()
updateUsrDialog() updateUsrDialog(usr)
return return
else else
to_chat(user, span_notice("You can't [open ? "close" : "open"] [src], the lock is engaged!")) 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) playsound(src, 'sound/machines/click.ogg', 20, 1)
check_unlocked(user, canhear) check_unlocked(user, canhear)
updateUsrDialog() updateUsrDialog(usr)
return return
if(href_list["increment"]) 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].")) to_chat(user, span_notice("You hear a [pick("click", "chink", "clink")] from \the [src]."))
playsound(src, 'sound/machines/click.ogg', 20, 1) playsound(src, 'sound/machines/click.ogg', 20, 1)
check_unlocked(user, canhear) check_unlocked(user, canhear)
updateUsrDialog() updateUsrDialog(usr)
return return
if(href_list["retrieve"]) if(href_list["retrieve"])
@@ -145,17 +145,17 @@ FLOOR SAFES
if(open) if(open)
if(P && in_range(src, user)) if(P && in_range(src, user))
user.put_in_hands(P) 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(open)
if(I.w_class + space <= maxspace) if(I.w_class + space <= maxspace)
space += I.w_class space += I.w_class
user.drop_item() user.drop_item()
I.loc = src I.loc = src
to_chat(user, span_notice("You put [I] in \the [src].")) to_chat(user, span_notice("You put [I] in \the [src]."))
updateUsrDialog() updateUsrDialog(user)
return return
else else
to_chat(user, span_notice("[I] won't fit in \the [src].")) to_chat(user, span_notice("[I] won't fit in \the [src]."))

View File

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

View File

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

View File

@@ -107,7 +107,7 @@ Book Cart
anchored = FALSE anchored = FALSE
opacity = 0 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)) if(istype(O, /obj/item/book))
user.drop_item() user.drop_item()
O.loc = src O.loc = src
@@ -188,7 +188,7 @@ Book Cart End
drop_sound = 'sound/items/drop/book.ogg' drop_sound = 'sound/items/drop/book.ogg'
pickup_sound = 'sound/items/pickup/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(carved)
if(store) if(store)
to_chat(user, span_notice("[store] falls out of [title]!")) to_chat(user, span_notice("[store] falls out of [title]!"))
@@ -299,7 +299,7 @@ Book Cart End
else 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) if(user.zone_sel.selecting == O_EYES)
user.visible_message(span_notice("You open up the book and show it to [M]."), \ 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].")) span_notice(" [user] opens up a book and shows it to [M]."))
@@ -373,7 +373,7 @@ Book Cart End
page-- page--
playsound(src, "pageturn", 50, 1) playsound(src, "pageturn", 50, 1)
src.attack_self(usr) src.attack_self(usr)
updateUsrDialog() updateUsrDialog(usr)
else else
to_chat(usr, span_notice("You need to hold it in your hands!")) 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/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 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 mode += 1
if(mode > 3) if(mode > 3)
mode = 0 mode = 0

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -268,7 +268,7 @@
emagged = 1 emagged = 1
return 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)) if(istype(O, sheet_path))
var/obj/item/stack/addstack = O var/obj/item/stack/addstack = O
var/amount = min((max_sheets - sheets), addstack.get_amount()) 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].")) to_chat(user, span_notice("You add [amount] sheet\s to the [src.name]."))
sheets += amount sheets += amount
addstack.use(amount) addstack.use(amount)
updateUsrDialog() updateUsrDialog(user)
return return
else if(!active) else if(!active)
if(O.has_tool_quality(TOOL_WRENCH)) if(O.has_tool_quality(TOOL_WRENCH))
@@ -299,7 +299,7 @@
return return
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) if (!anchored)
return return

View File

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

View File

@@ -31,7 +31,7 @@
icon_state = "alembic-bubble" icon_state = "alembic-bubble"
return 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(istype(O,/obj/item/potion_material))
if(potion_reagent != 0 ) if(potion_reagent != 0 )
to_chat(user, span_warning("There is already a reagent in the alembic!")) to_chat(user, span_warning("There is already a reagent in the alembic!"))
@@ -44,7 +44,7 @@
O.loc = src O.loc = src
update_icon() update_icon()
to_chat(user, span_notice("You place the [O] in the alembic.")) to_chat(user, span_notice("You place the [O] in the alembic."))
src.updateUsrDialog() src.updateUsrDialog(user)
return return
else if(istype(O,/obj/item/potion_base)) else if(istype(O,/obj/item/potion_base))
if(base_reagent != 0 ) if(base_reagent != 0 )
@@ -56,13 +56,13 @@
O.loc = src O.loc = src
update_icon() update_icon()
to_chat(user, span_notice("You place the [O] in the alembic.")) to_chat(user, span_notice("You place the [O] in the alembic."))
src.updateUsrDialog() src.updateUsrDialog(user)
return return
else else
to_chat(user, span_warning("This item is no use in the alembic.")) to_chat(user, span_warning("This item is no use in the alembic."))
return 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 if(potion_reagent == 0 || base_reagent == 0) //If there is nothing in there
to_chat(user, span_warning("The alembic is not yet full!")) 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)) icon_state = "juicer"+num2text(!isnull(beaker))
return 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(beaker)
if(default_deconstruction_screwdriver(user, O)) if(default_deconstruction_screwdriver(user, O))
return return
@@ -124,11 +124,11 @@ var/global/list/ore_reagents = list( //have a number of reageents divisible by R
if (beaker) if (beaker)
return 1 return 1
else else
src.beaker = O beaker = O
user.drop_item() user.drop_item()
O.loc = src O.loc = src
update_icon() update_icon()
src.updateUsrDialog() updateUsrDialog(user)
return 0 return 0
if(holdingitems && holdingitems.len >= limit) if(holdingitems && holdingitems.len >= limit)
@@ -159,7 +159,7 @@ var/global/list/ore_reagents = list( //have a number of reageents divisible by R
else else
to_chat(user, "You fill \the [src] from \the [O].") to_chat(user, "You fill \the [src] from \the [O].")
src.updateUsrDialog() src.updateUsrDialog(user)
return 0 return 0
if(istype(O,/obj/item/gripper)) 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 return
replace_beaker(user) replace_beaker(user)
/obj/machinery/reagentgrinder/attack_hand(mob/user as mob) /obj/machinery/reagentgrinder/attack_hand(mob/user)
interact(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()) if(inuse || user.incapacitated())
return return

View File

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

View File

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

View File

@@ -401,13 +401,13 @@
return 1 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)) if((busy == 0) || (stat & NOPOWER))
return return
to_chat(user, "Current print cycle is [busy]% complete.") to_chat(user, "Current print cycle is [busy]% complete.")
return 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) src.add_fingerprint(user)
if(busy) if(busy)
to_chat(user, span_notice("\The [src] is busy. Please wait for completion of previous operation.")) to_chat(user, span_notice("\The [src] is busy. Please wait for completion of previous operation."))
@@ -442,7 +442,7 @@
else else
to_chat(user, "\the [src] cannot hold more [S.name].") to_chat(user, "\the [src] cannot hold more [S.name].")
updateUsrDialog() updateUsrDialog(user)
return return
/obj/machinery/transhuman/synthprinter/update_icon() /obj/machinery/transhuman/synthprinter/update_icon()
@@ -466,6 +466,7 @@
anchored = TRUE anchored = TRUE
var/blur_amount var/blur_amount
var/confuse_amount var/confuse_amount
// var/sickness_duration // CHOMPRemove
var/mob/living/carbon/human/occupant = null var/mob/living/carbon/human/occupant = null
var/connected = null var/connected = null
@@ -495,7 +496,12 @@
manip_rating += M.rating manip_rating += M.rating
blur_amount = (48 - manip_rating * 8) 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) tgui_interact(user)
/obj/machinery/transhuman/resleever/tgui_interact(mob/user, datum/tgui/ui = null) /obj/machinery/transhuman/resleever/tgui_interact(mob/user, datum/tgui/ui = null)
@@ -532,7 +538,7 @@
//End chomp edit //End chomp edit
return data 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) src.add_fingerprint(user)
if(default_deconstruction_screwdriver(user, W)) if(default_deconstruction_screwdriver(user, W))
return return
@@ -547,7 +553,7 @@
var/mob/M = G.affecting var/mob/M = G.affecting
if(put_mob(M)) if(put_mob(M))
qdel(G) qdel(G)
src.updateUsrDialog() src.updateUsrDialog(user)
return //Don't call up else we'll get attack messsages return //Don't call up else we'll get attack messsages
if(istype(W, /obj/item/paicard/sleevecard)) if(istype(W, /obj/item/paicard/sleevecard))
var/obj/item/paicard/sleevecard/C = W var/obj/item/paicard/sleevecard/C = W
@@ -560,7 +566,7 @@
return ..() 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)) if(!istype(O))
return 0 //not a mob return 0 //not a mob
if(user.incapacitated()) if(user.incapacitated())
@@ -583,10 +589,10 @@
if(put_mob(O)) if(put_mob(O))
if(O == user) if(O == user)
src.updateUsrDialog() updateUsrDialog(user)
visible_message("[user] climbs into \the [src].") visible_message("[user] climbs into \the [src].")
else else
src.updateUsrDialog() updateUsrDialog(user)
visible_message("[user] puts [O] into \the [src].") visible_message("[user] puts [O] into \the [src].")
add_fingerprint(user) add_fingerprint(user)
@@ -662,6 +668,19 @@
occupant.confused = max(occupant.confused, confuse_amount) occupant.confused = max(occupant.confused, confuse_amount)
occupant.eye_blurry = max(occupant.eye_blurry, blur_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) 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) 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" icon_state = "implantchair"
return 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)) if(!ishuman(M))
to_chat(usr, span_warning("\The [src] cannot hold this!")) to_chat(usr, span_warning("\The [src] cannot hold this!"))
return return

View File

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

View File

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

View File

@@ -91,7 +91,7 @@
else else
set_light(2, 2, emptycolor) set_light(2, 2, emptycolor)
/obj/machinery/slime/extractor/proc/extract_cores() /obj/machinery/slime/extractor/proc/extract_cores(mob/user)
if(!src.occupant) if(!src.occupant)
src.visible_message("[icon2html(src,viewers(src))] [src] pings unhappily.") src.visible_message("[icon2html(src,viewers(src))] [src] pings unhappily.")
else if(inuse) else if(inuse)
@@ -99,7 +99,10 @@
inuse = 1 inuse = 1
update_light_color() update_light_color()
spawn(30) addtimer(CALLBACK(src, PROC_REF(do_extraction), user) , 3 SECONDS, TIMER_DELETE_ME)
/obj/machinery/slime/extractor/proc/do_extraction(mob/user)
PRIVATE_PROC(TRUE)
icon_state = "scanner_1old" icon_state = "scanner_1old"
for(var/i=1 to occupant.cores) for(var/i=1 to occupant.cores)
var/obj/item/xenoproduct/slime/core/C = new(src) var/obj/item/xenoproduct/slime/core/C = new(src)
@@ -115,15 +118,17 @@
C.color = C.traits.traits[TRAIT_XENO_COLOR] C.color = C.traits.traits[TRAIT_XENO_COLOR]
if(occupant.traitdat.get_trait(TRAIT_XENO_BIOLUMESCENT)) 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.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))
spawn(30)
icon_state = "scanner_0old"
qdel(occupant) 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. 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 inuse = 0
eject_contents() eject_contents()
update_light_color() update_light_color()
src.updateUsrDialog() src.updateUsrDialog(user)
/obj/machinery/slime/extractor/proc/eject_slime() /obj/machinery/slime/extractor/proc/eject_slime()
if(occupant) if(occupant)
@@ -168,10 +173,10 @@
usr.set_machine(src) usr.set_machine(src)
switch(href_list["action"]) switch(href_list["action"])
if ("extract") if ("extract")
extract_cores() extract_cores(usr)
if("eject") if("eject")
eject_slime() eject_slime()
src.updateUsrDialog() src.updateUsrDialog(usr)
return return
//Circuit board below, //Circuit board below,

View File

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

View File

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

View File

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