From dd1e58acc79ff260fdda31397697d53ef76d762b Mon Sep 17 00:00:00 2001 From: Seris02 <49109742+Seris02@users.noreply.github.com> Date: Thu, 9 Mar 2023 10:57:55 +0800 Subject: [PATCH] cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else --- code/game/jobs/job_controller.dm | 19 +- code/game/machinery/telecomms/broadcaster.dm | 34 +++- code/game/objects/items.dm | 12 +- code/modules/client/verbs/advanced_who.dm | 5 + code/modules/client/verbs/who.dm | 5 + code/modules/economy/coins.dm | 2 +- code/modules/economy/vending.dm | 12 +- code/modules/examine/examine.dm | 2 +- code/modules/fishing/fishing.dm | 2 +- code/modules/fishing/fishing_net.dm | 2 +- .../kitchen/cooking_machines/_appliance.dm | 8 +- .../food/kitchen/cooking_machines/_cooker.dm | 21 ++- .../food/kitchen/cooking_machines/_mixer.dm | 11 +- .../kitchen/cooking_machines/container.dm | 2 +- .../food/kitchen/cooking_machines/fryer.dm | 4 +- .../food/kitchen/cooking_machines/grill.dm | 86 ++++++++- .../food/kitchen/smartfridge/smartfridge.dm | 8 +- code/modules/hydroponics/grown.dm | 30 +++- code/modules/hydroponics/seed.dm | 2 +- code/modules/hydroponics/seed_controller.dm | 168 ++++++++++++++++++ code/modules/hydroponics/seed_machines.dm | 65 ++++++- code/modules/hydroponics/seed_storage.dm | 8 +- code/modules/hydroponics/trays/tray.dm | 42 ++--- code/modules/hydroponics/trays/tray_tools.dm | 14 ++ code/modules/mob/dead/observer/observer.dm | 51 +++--- code/modules/mob/dead/observer/say.dm | 4 +- code/modules/mob/hear_say.dm | 69 +++++-- code/modules/mob/living/carbon/human/human.dm | 77 +++++--- .../living/carbon/human/human_attackhand.dm | 14 +- .../mob/living/carbon/human/human_damage.dm | 6 +- .../mob/living/carbon/human/human_defense.dm | 6 +- .../mob/living/carbon/human/human_powers.dm | 21 +-- code/modules/mob/living/living.dm | 20 ++- code/modules/mob/living/living_defense.dm | 6 +- code/modules/mob/living/riding.dm | 7 +- code/modules/mob/living/silicon/ai/ai.dm | 48 +++-- code/modules/mob/living/silicon/ai/laws.dm | 2 +- code/modules/mob/living/silicon/pai/pai.dm | 16 +- .../modules/mob/living/silicon/robot/robot.dm | 120 ++++++------- .../mob/living/silicon/robot/robot_damage.dm | 8 +- .../mob/living/silicon/robot/robot_items.dm | 61 ++++--- code/modules/mob/living/silicon/say.dm | 11 +- code/modules/mob/living/silicon/silicon.dm | 55 +++++- code/modules/mob/mob.dm | 22 +-- code/modules/multiz/movement.dm | 2 +- code/modules/research/circuitprinter.dm | 4 +- code/modules/research/message_server.dm | 4 +- code/modules/research/protolathe.dm | 4 +- code/modules/research/rdconsole.dm | 2 +- code/modules/surgery/encased.dm | 24 +-- code/modules/surgery/face.dm | 12 +- code/modules/surgery/generic.dm | 26 +-- code/modules/surgery/implant.dm | 8 +- code/modules/surgery/limb_reattach.dm | 12 +- code/modules/surgery/neck.dm | 24 +-- code/modules/surgery/organs_internal.dm | 86 ++++++++- code/modules/surgery/other.dm | 16 +- code/modules/surgery/robotics.dm | 42 +++-- code/modules/tables/flipping.dm | 2 +- code/modules/vchat/js/vchat.js | 26 ++- .../xenoarcheaology/artifacts/replicator.dm | 7 +- code/modules/xenoarcheaology/effect.dm | 18 ++ code/modules/xenoarcheaology/effect_master.dm | 14 +- 63 files changed, 1112 insertions(+), 409 deletions(-) create mode 100644 code/modules/hydroponics/seed_controller.dm diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 0f80f5c778..59941e12e4 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -465,7 +465,7 @@ var/global/datum/controller/occupations/job_master else spawn_in_storage += thing else - to_chat(H, "Your job is [rank] and the game just can't handle it! Please report this bug to an administrator.") + to_chat(H, "Your job is [rank] and the game just can't handle it! Please report this bug to an administrator.") H.job = rank log_game("JOINED [key_name(H)] as \"[rank]\"") @@ -533,16 +533,21 @@ var/global/datum/controller/occupations/job_master W.color = R.color qdel(R) - to_chat(H, "You are [job.total_positions == 1 ? "the" : "a"] [alt_title ? alt_title : rank].") + to_chat(H, "You are [job.total_positions == 1 ? "the" : "a"] [alt_title ? alt_title : rank].") if(job.supervisors) - to_chat(H, "As the [alt_title ? alt_title : rank] you answer directly to [job.supervisors]. Special circumstances may change this.") + to_chat(H, "As the [alt_title ? alt_title : rank] you answer directly to [job.supervisors]. Special circumstances may change this.") if(job.has_headset) +<<<<<<< HEAD H.equip_to_slot_or_del(new /obj/item/device/radio/headset(H), slot_l_ear) to_chat(H, "To speak on your department's radio channel use :h. For the use of other channels, examine your headset.") +======= + H.equip_to_slot_or_del(new /obj/item/radio/headset(H), slot_l_ear) + to_chat(H, "To speak on your department's radio channel use :h. For the use of other channels, examine your headset.") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) if(job.req_admin_notify) - to_chat(H, "You are playing a job that is important for Game Progression. If you have to disconnect, please notify the admins via adminhelp.") + to_chat(H, "You are playing a job that is important for Game Progression. If you have to disconnect, please notify the admins via adminhelp.") // EMAIL GENERATION // Email addresses will be created under this domain name. Mostly for the looks. @@ -559,13 +564,13 @@ var/global/datum/controller/occupations/job_master // If even fallback login generation failed, just don't give them an email. The chance of this happening is astronomically low. if(ntnet_global.does_email_exist(complete_login)) - to_chat(H, "You were not assigned an email address.") + to_chat(H, "You were not assigned an email address.") H.mind.store_memory("You were not assigned an email address.") else var/datum/computer_file/data/email_account/EA = new/datum/computer_file/data/email_account() EA.password = GenerateKey() EA.login = complete_login - to_chat(H, "Your email account address is [EA.login] and the password is [EA.password]. This information has also been placed into your notes.") + to_chat(H, "Your email account address is [EA.login] and the password is [EA.password]. This information has also been placed into your notes.") H.mind.store_memory("Your email account address is [EA.login] and the password is [EA.password].") // END EMAIL GENERATION @@ -682,7 +687,7 @@ var/global/datum/controller/occupations/job_master if(fail_deadly) to_chat(C, "Your chosen spawnpoint ([spawnpos.display_name]) is unavailable for your chosen job. Please correct your spawn point choice.") return - to_chat(C, "Your chosen spawnpoint ([spawnpos.display_name]) is unavailable for your chosen job. Spawning you at the Arrivals shuttle instead.") + to_chat(C, "Your chosen spawnpoint ([spawnpos.display_name]) is unavailable for your chosen job. Spawning you at the Arrivals shuttle instead.") var/spawning = pick(latejoin) .["turf"] = get_turf(spawning) .["msg"] = "will arrive at the station shortly" diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 5bcf571f61..7513153dc5 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -454,11 +454,17 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept var/part_b_extra = "" if(data == DATA_ANTAG) // intercepted radio message part_b_extra = " (Intercepted)" +<<<<<<< HEAD var/part_a = "\icon[radio][bicon(radio)]\[[freq_text]\][part_b_extra] " // goes in the actual output +======= + var/part_a = "" + var/part_b = "[bicon(radio)]\[[freq_text]\][part_b_extra] " // goes in the actual output +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) // --- Some more pre-message formatting --- - var/part_b = " " // Tweaked for security headsets -- TLE - var/part_c = "" + var/part_c = " " // Tweaked for security headsets -- TLE + var/part_d = "" + var/part_e = "" // --- Filter the message; place it in quotes apply a verb --- @@ -470,8 +476,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept // --- This following recording is intended for research and feedback in the use of department radio channels --- - var/part_blackbox_b = " \[[freq_text]\] " // Tweaked for security headsets -- TLE - var/blackbox_msg = "[part_a][name][part_blackbox_b][quotedmsg][part_c]" + var/part_blackbox_c = " \[[freq_text]\] " // Tweaked for security headsets -- TLE + var/blackbox_msg = "[part_a][part_b][name][part_blackbox_c][quotedmsg][part_d][part_e]" //var/blackbox_admin_msg = "[part_a][M.name] (Real name: [M.real_name])[part_blackbox_b][quotedmsg][part_c]" //BR.messages_admin += blackbox_admin_msg @@ -510,38 +516,58 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept /* --- Process all the mobs that heard a masked voice (understood) --- */ if(length(heard_masked)) for (var/mob/R in heard_masked) +<<<<<<< HEAD R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, M, 0, name) if(R.is_preference_enabled(/datum/client_preference/radio_sounds)) R << 'sound/effects/radio_common_quieter.ogg' +======= + R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, part_d, part_e, M, 0, name) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) /* --- Process all the mobs that heard the voice normally (understood) --- */ if(length(heard_normal)) for (var/mob/R in heard_normal) +<<<<<<< HEAD R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, M, 0, realname) if(R.is_preference_enabled(/datum/client_preference/radio_sounds)) R << 'sound/effects/radio_common_quieter.ogg' +======= + R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, part_d, part_e, M, 0, realname) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) /* --- Process all the mobs that heard the voice normally (did not understand) --- */ if(length(heard_voice)) for (var/mob/R in heard_voice) +<<<<<<< HEAD R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, M,0, vname) if(R.is_preference_enabled(/datum/client_preference/radio_sounds)) R << 'sound/effects/radio_common_quieter.ogg' +======= + R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, part_d, part_e, M,0, vname) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) /* --- Process all the mobs that heard a garbled voice (did not understand) --- */ // Displays garbled message (ie "f*c* **u, **i*er!") if(length(heard_garbled)) for (var/mob/R in heard_garbled) +<<<<<<< HEAD R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, M, 1, vname) if(R.is_preference_enabled(/datum/client_preference/radio_sounds)) R << 'sound/effects/radio_common_quieter.ogg' +======= + R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, part_d, part_e, M, 1, vname) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) /* --- Complete gibberish. Usually happens when there's a compressed message --- */ if(length(heard_gibberish)) for (var/mob/R in heard_gibberish) +<<<<<<< HEAD R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, M, 1) if(R.is_preference_enabled(/datum/client_preference/radio_sounds)) R << 'sound/effects/radio_common_quieter.ogg' +======= + R.hear_radio(message_pieces, verbage, part_a, part_b, part_c, part_d, part_e, M, 1) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) return 1 diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 204a8669d5..92eb0e7f11 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -680,7 +680,7 @@ GLOBAL_LIST_EMPTY(blood_overlays_by_type) /obj/item/proc/showoff(mob/user) for (var/mob/M in view(user)) - M.show_message("[user] holds up [src]. Take a closer look.",1) + M.show_message("[user] holds up [src]. Take a closer look.",1) /mob/living/carbon/verb/showoff() set name = "Show Held Item" @@ -710,13 +710,13 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. var/cannotzoom if((usr.stat && !zoom) || !(istype(usr,/mob/living/carbon/human))) - to_chat(usr, "You are unable to focus through the [devicename]") + to_chat(usr, "You are unable to focus through the [devicename].") cannotzoom = 1 else if(!zoom && (global_hud.darkMask[1] in usr.client.screen)) - to_chat(usr, "Your visor gets in the way of looking through the [devicename]") + to_chat(usr, "Your visor gets in the way of looking through the [devicename].") cannotzoom = 1 else if(!zoom && usr.get_active_hand() != src) - to_chat(usr, "You are too distracted to look through the [devicename], perhaps if it was in your active hand this might work better") + to_chat(usr, "You are too distracted to look through the [devicename], perhaps if it was in your active hand this might work better.") cannotzoom = 1 //We checked above if they are a human and returned already if they weren't. @@ -746,7 +746,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. H.client.pixel_x = -viewoffset H.client.pixel_y = 0 - H.visible_message("[usr] peers through the [zoomdevicename ? "[zoomdevicename] of the [src.name]" : "[src.name]"].") + H.visible_message("[usr] peers through the [zoomdevicename ? "[zoomdevicename] of the [src.name]" : "[src.name]"].") if(!ignore_visor_zoom_restriction) H.looking_elsewhere = TRUE H.handle_vision() @@ -764,7 +764,7 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. H.handle_vision() if(!cannotzoom) - usr.visible_message("[zoomdevicename ? "[usr] looks up from the [src.name]" : "[usr] lowers the [src.name]"].") + usr.visible_message("[zoomdevicename ? "[usr] looks up from the [src.name]" : "[usr] lowers the [src.name]"].") return diff --git a/code/modules/client/verbs/advanced_who.dm b/code/modules/client/verbs/advanced_who.dm index 2bf26f2279..8f3363839a 100644 --- a/code/modules/client/verbs/advanced_who.dm +++ b/code/modules/client/verbs/advanced_who.dm @@ -93,5 +93,10 @@ msg += "[line]" msg += "" msg += "Total Players: [length(Lines)]" +<<<<<<< HEAD msg = "" + msg + "" to_chat(src, msg) +======= + msg = "" + msg + "" + to_chat(src, msg) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) diff --git a/code/modules/client/verbs/who.dm b/code/modules/client/verbs/who.dm index 54f8af326c..3aec4165c0 100644 --- a/code/modules/client/verbs/who.dm +++ b/code/modules/client/verbs/who.dm @@ -51,6 +51,7 @@ msg += "[line]\n" msg += "Total Players: [length(Lines)]" + msg = "[jointext(msg, "
")]
" to_chat(src,msg) /client/verb/staffwho() @@ -121,6 +122,7 @@ if(config.show_event_managers) msg += "\n Current Miscellaneous ([num_event_managers_online]):\n" + eventMmsg +<<<<<<< HEAD var/num_mentors_online = 0 var/mmsg = "" @@ -146,3 +148,6 @@ msg += "\nAdminhelps are also sent to Discord. If no admins are available in game try anyway and an admin on Discord may see it and respond." to_chat(src, msg) +======= + to_chat(src,"[jointext(msg, "
")]
") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) diff --git a/code/modules/economy/coins.dm b/code/modules/economy/coins.dm index 8b11b22023..51438cc101 100644 --- a/code/modules/economy/coins.dm +++ b/code/modules/economy/coins.dm @@ -90,7 +90,7 @@ CC.update_icon() cut_overlays() string_attached = null - to_chat(user, "You detach the string from the coin.") + to_chat(user, "You detach the string from the coin.") else ..() /obj/item/weapon/coin/attack_self(mob/user as mob) diff --git a/code/modules/economy/vending.dm b/code/modules/economy/vending.dm index c05c3e1a69..929023ce86 100644 --- a/code/modules/economy/vending.dm +++ b/code/modules/economy/vending.dm @@ -184,7 +184,7 @@ GLOBAL_LIST_EMPTY(vending_products) /obj/machinery/vending/emag_act(var/remaining_charges, var/mob/user) if(!emagged) emagged = 1 - to_chat(user, "You short out \the [src]'s product lock.") + to_chat(user, "You short out \the [src]'s product lock.") return 1 /obj/machinery/vending/attackby(obj/item/weapon/W as obj, mob/user as mob) @@ -243,9 +243,9 @@ GLOBAL_LIST_EMPTY(vending_products) else if(W.is_wrench()) playsound(src, W.usesound, 100, 1) if(anchored) - user.visible_message("[user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.") + user.visible_message("[user] begins unsecuring \the [src] from the floor.", "You start unsecuring \the [src] from the floor.") else - user.visible_message("[user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.") + user.visible_message("[user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.") if(do_after(user, 20 * W.toolspeed)) if(!src) return @@ -487,7 +487,7 @@ GLOBAL_LIST_EMPTY(vending_products) return FALSE if(!coin) - to_chat(usr, "There is no coin in this machine.") + to_chat(usr, "There is no coin in this machine.") return coin.forceMove(src.loc) @@ -538,7 +538,7 @@ GLOBAL_LIST_EMPTY(vending_products) var/obj/item/weapon/card/id/C = H.GetIdCard() if(!vendor_account || vendor_account.suspended) - to_chat(usr, "Vendor account offline. Unable to process transaction.") + to_chat(usr, "Vendor account offline. Unable to process transaction.") flick("[icon_state]-deny",src) vend_ready = TRUE return @@ -679,7 +679,7 @@ GLOBAL_LIST_EMPTY(vending_products) return 0 if (src.anchored || usr:stat) - to_chat(usr, "It is bolted down!") + to_chat(usr, "It is bolted down!") return 0 src.set_dir(turn(src.dir, 270)) return 1 diff --git a/code/modules/examine/examine.dm b/code/modules/examine/examine.dm index e619c5fec4..c33ecae6b9 100644 --- a/code/modules/examine/examine.dm +++ b/code/modules/examine/examine.dm @@ -93,7 +93,7 @@ var/list/results = A.examine(src) if(!results || !results.len) results = list("You were unable to examine that. Tell a developer!") - to_chat(src, jointext(results, "
")) + to_chat(src, "[jointext(results, "
")]
") update_examine_panel(A) /mob/proc/update_examine_panel(var/atom/A) diff --git a/code/modules/fishing/fishing.dm b/code/modules/fishing/fishing.dm index 7e4a9d85bc..802faf2d6b 100644 --- a/code/modules/fishing/fishing.dm +++ b/code/modules/fishing/fishing.dm @@ -145,7 +145,7 @@ GLOBAL_LIST_INIT(generic_fishing_chance_list, list(FISHING_RARE = 5, FISHING_UNC has_fish = FALSE //List of possible outcomes. if(!fish_type) - to_chat(user,"You caught... nothing. How sad.") + to_chat(user,"You caught... nothing. How sad.") else var/fished = new fish_type(get_turf(user)) if(isliving(fished)) diff --git a/code/modules/fishing/fishing_net.dm b/code/modules/fishing/fishing_net.dm index 3ba2f1591a..8c98448427 100644 --- a/code/modules/fishing/fishing_net.dm +++ b/code/modules/fishing/fishing_net.dm @@ -48,7 +48,7 @@ to_chat(user, "Your net is already holding something!") accept = FALSE if(!accept) - to_chat(user, "[A] can't be trapped in \the [src].") + to_chat(user, "[A] can't be trapped in \the [src].") return var/mob/L = A user.visible_message("[user] snatches [L] with \the [src].", "You snatch [L] with \the [src].") diff --git a/code/modules/food/kitchen/cooking_machines/_appliance.dm b/code/modules/food/kitchen/cooking_machines/_appliance.dm index 9c15139fba..7f71133f3a 100644 --- a/code/modules/food/kitchen/cooking_machines/_appliance.dm +++ b/code/modules/food/kitchen/cooking_machines/_appliance.dm @@ -157,12 +157,12 @@ if (stat & POWEROFF)//Its turned off stat &= ~POWEROFF use_power = 1 - user.visible_message("[user] turns [src] on.", "You turn on [src].") + user.visible_message("[user] turns [src] on.", "You turn on [src].") else //Its on, turn it off stat |= POWEROFF use_power = 0 - user.visible_message("[user] turns [src] off.", "You turn off [src].") + user.visible_message("[user] turns [src] off.", "You turn off [src].") cooking = FALSE // Stop cooking here, too, just in case. playsound(src, 'sound/machines/click.ogg', 40, 1) @@ -180,14 +180,14 @@ return if (!usr.IsAdvancedToolUser()) - to_chat(usr, "You lack the dexterity to do that!") + to_chat(usr, "You lack the dexterity to do that!") return if (usr.stat || usr.restrained() || usr.incapacitated()) return if (!Adjacent(usr) && !issilicon(usr)) - to_chat(usr, "You can't adjust the [src] from this distance, get closer!") + to_chat(usr, "You can't adjust the [src] from this distance, get closer!") return if(output_options.len) diff --git a/code/modules/food/kitchen/cooking_machines/_cooker.dm b/code/modules/food/kitchen/cooking_machines/_cooker.dm index ef097485b9..bbdb64c16f 100644 --- a/code/modules/food/kitchen/cooking_machines/_cooker.dm +++ b/code/modules/food/kitchen/cooking_machines/_cooker.dm @@ -82,7 +82,7 @@ . += "Temperature: [round(temperature - T0C, 0.1)]C / [round(optimal_temp - T0C, 0.1)]C" else . += "It is switched off." - + /obj/machinery/appliance/cooker/list_contents(var/mob/user) if (cooking_objs.len) var/string = "Contains...
" @@ -95,7 +95,7 @@ to_chat(user, string) else to_chat(user, "It's empty.") - + /obj/machinery/appliance/cooker/proc/get_efficiency() // to_world("Our cooking_power is [cooking_power] and our efficiency is [(cooking_power / optimal_power) * 100].") // Debug lines, uncomment if you need to test. return (cooking_power / optimal_power) * 100 @@ -131,11 +131,11 @@ if (temperature > T.temperature) equalize_temperature() ..() - + /obj/machinery/appliance/cooker/power_change() . = ..() update_icon() // this probably won't cause issues, but Aurora used SSIcons and queue_icon_update() instead - + /obj/machinery/appliance/cooker/proc/update_cooking_power() var/temp_scale = 0 if(temperature > min_temp) @@ -143,22 +143,22 @@ temp_scale = 1 else temp_scale = (temperature - min_temp) / (optimal_temp - min_temp) // If we're between min and optimal this will yield a value in the range 0-1 - + /* // old code for reference, will be useful if/when we implement ovens with configurable temperatures - TODO recipes with optimal temps for cooking per-recipe?? temp_scale = (temperature - min_temp) / (optimal_temp - min_temp) // If we're between min and optimal this will yield a value in the range 0-1 - + if(temp_scale > 1) // We're above optimal, efficiency goes down as we pass too much over it if(temp_scale >= 2) temp_scale = 0 else temp_scale = 1 - (temp_scale - 1) */ - + cooking_coeff = optimal_power * temp_scale // to_world("Our cooking_power is [cooking_power] and our tempscale is [temp_scale], and our cooking_coeff is [cooking_coeff] before RefreshParts.") // Debug lines, uncomment if you need to test. RefreshParts() // to_world("Our cooking_power is [cooking_power] after RefreshParts.") // Debug lines, uncomment if you need to test. - + /obj/machinery/appliance/cooker/proc/heat_up() if(temperature < optimal_temp) if(use_power == 1 && ((optimal_temp - temperature) > 5)) @@ -198,6 +198,11 @@ /obj/machinery/appliance/cooker/add_content(var/obj/item/I, var/mob/user) var/datum/cooking_item/CI = ..() +<<<<<<< HEAD if(istype(CI) && CI.combine_target) to_chat(user, "\The [I] will be used to make a [selected_option]. Output selection is returned to default for future items.") +======= + if (CI && CI.combine_target) + to_chat(user, "\The [I] will be used to make a [selected_option]. Output selection is returned to default for future items.") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) selected_option = null \ No newline at end of file diff --git a/code/modules/food/kitchen/cooking_machines/_mixer.dm b/code/modules/food/kitchen/cooking_machines/_mixer.dm index 7d18865167..8a0987d698 100644 --- a/code/modules/food/kitchen/cooking_machines/_mixer.dm +++ b/code/modules/food/kitchen/cooking_machines/_mixer.dm @@ -83,7 +83,7 @@ fundamental differences for(var/datum/cooking_item/CI as anything in cooking_objs) if (CI.container) if (!CI.container.check_contents()) - to_chat(user, "There's nothing in [src] you can remove!") + to_chat(user, "There's nothing in [src] you can remove!") return for (var/obj/item/I in CI.container) @@ -106,21 +106,26 @@ fundamental differences var/datum/cooking_item/CI = cooking_objs[1] if(!CI.container.check_contents()) - to_chat("There's nothing in it! Add ingredients before turning [src] on!") + to_chat("There's nothing in it! Add ingredients before turning [src] on!") return if(stat & POWEROFF)//Its turned off stat &= ~POWEROFF if(usr) - usr.visible_message("[usr] turns the [src] on", "You turn on \the [src].") + usr.visible_message("[usr] turns the [src] on.", "You turn on \the [src].") get_cooking_work(CI) use_power = 2 else //Its on, turn it off stat |= POWEROFF use_power = 0 if(usr) +<<<<<<< HEAD usr.visible_message("[usr] turns the [src] off", "You turn off \the [src].") playsound(src, 'sound/machines/click.ogg', 40, 1) +======= + usr.visible_message("[usr] turns the [src] off.", "You turn off \the [src].") + playsound(src, "button", 40, 1) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) update_icon() /obj/machinery/appliance/mixer/can_insert(var/obj/item/I, var/mob/user) diff --git a/code/modules/food/kitchen/cooking_machines/container.dm b/code/modules/food/kitchen/cooking_machines/container.dm index bd4a9d8e00..fa6a5fea62 100644 --- a/code/modules/food/kitchen/cooking_machines/container.dm +++ b/code/modules/food/kitchen/cooking_machines/container.dm @@ -82,7 +82,7 @@ return if (!Adjacent(user)) - to_chat(user, "You can't reach [src] from here.") + to_chat(user, "You can't reach [src] from here.") return if (!contents.len) diff --git a/code/modules/food/kitchen/cooking_machines/fryer.dm b/code/modules/food/kitchen/cooking_machines/fryer.dm index f3ea0efdf6..6e28243bac 100644 --- a/code/modules/food/kitchen/cooking_machines/fryer.dm +++ b/code/modules/food/kitchen/cooking_machines/fryer.dm @@ -247,7 +247,7 @@ if (I.reagents.total_volume <= 0 && oil) //Its empty, handle scooping some hot oil out of the fryer oil.trans_to(I, I.reagents.maximum_volume) - user.visible_message("[user] scoops some oil out of \the [src].", span("notice","You scoop some oil out of \the [src].")) + user.visible_message("[user] scoops some oil out of \the [src].", span("notice","You scoop some oil out of \the [src].")) return 1 else //It contains stuff, handle pouring any oil into the fryer @@ -263,7 +263,7 @@ I.reagents.remove_reagent(R.id, delta) amount += delta if (amount > 0) - user.visible_message("[user] pours some oil into \the [src].", span("notice","You pour [amount]u of oil into \the [src]."), "You hear something viscous being poured into a metal container.") + user.visible_message("[user] pours some oil into \the [src].", "You pour [amount]u of oil into \the [src].", "You hear something viscous being poured into a metal container.") return 1 //If neither of the above returned, then call parent as normal ..() diff --git a/code/modules/food/kitchen/cooking_machines/grill.dm b/code/modules/food/kitchen/cooking_machines/grill.dm index a00397619f..2a97259904 100644 --- a/code/modules/food/kitchen/cooking_machines/grill.dm +++ b/code/modules/food/kitchen/cooking_machines/grill.dm @@ -13,7 +13,7 @@ active_power_usage = 4 KILOWATTS heating_power = 4000 idle_power_usage = 2 KILOWATTS - + optimal_power = 1.2 // Things on the grill cook .6 faster - this is now the fastest appliance to heat and to cook on. BURGERS GO SIZZLE. stat = POWEROFF // Starts turned off. @@ -22,18 +22,23 @@ optimal_temp = 120 + T0C min_temp = 60 + T0C resistance = 8 KILOWATTS // Very fast to heat up. - + max_contents = 3 // Arbitrary number, 3 grill 'racks' +<<<<<<< HEAD container_type = /obj/item/weapon/reagent_containers/cooking_container/grill +======= + container_type = /obj/item/reagent_containers/cooking_container/grill + +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) /obj/machinery/appliance/cooker/grill/Initialize() . = ..() grill_loop = new(list(src), FALSE) - + /obj/machinery/appliance/cooker/grill/Destroy() QDEL_NULL(grill_loop) return ..() - + /obj/machinery/appliance/cooker/grill/update_icon() // TODO: Cooking icon if(!stat) icon_state = on_icon @@ -47,3 +52,76 @@ icon_state = off_icon if(grill_loop) grill_loop.stop(src) +<<<<<<< HEAD +======= + +/* // Test Comment this out too, /cooker does this for us, and this path '/obj/machinery/appliance/grill' is invalid anyways, meaning it does jack shit. - Updated the paths, but I'm basically commenting all this shit out and if the grill works as-normal, none of this stuff is needed. +/obj/machinery/appliance/grill/toggle_power() + set src in view() + set name = "Toggle Power" + set category = "Object" + + var/datum/cooking_item/CI = cooking_objs[1] + + if (stat & POWEROFF)//Its turned off + stat &= ~POWEROFF + if (usr) + usr.visible_message("[usr] turns \the [src] on.", "You turn on \the [src].") + get_cooking_work(CI) + use_power = 2 + else //It's on, turn it off + stat |= POWEROFF + use_power = 0 + if (usr) + usr.visible_message("[usr] turns \the [src] off.", "You turn off \the [src].") + playsound(src, 'sound/machines/click.ogg', 40, 1) + update_icon() + + +/obj/machinery/appliance/cooker/grill/Initialize() + . = ..() + // cooking_objs += new /datum/cooking_item(new /obj/item/reagent_containers/cooking_container(src)) + cooking = FALSE + +/obj/machinery/appliance/cooker/grill/has_space(var/obj/item/I) + var/datum/cooking_item/CI = cooking_objs[1] + if (!CI || !CI.container) + return 0 + + if (CI.container.can_fit(I)) + return CI + + return 0 +*/ +/* // Test comment this out, I don't think this is doing shit anyways. +//Container is not removable +/obj/machinery/appliance/grill/removal_menu(var/mob/user) + if (can_remove_items(user)) + var/list/menuoptions = list() + for (var/a in cooking_objs) + var/datum/cooking_item/CI = a + if (CI.container) + if (!CI.container.check_contents()) + to_chat(user, "There's nothing in the [src] you can remove!") + return + + for (var/obj/item/I in CI.container) + menuoptions[I.name] = I + + var/selection = input(user, "Which item would you like to remove? If you want to remove chemicals, use an empty beaker.", "Remove ingredients") as null|anything in menuoptions + if (selection) + var/obj/item/I = menuoptions[selection] + if (!user || !user.put_in_hands(I)) + I.forceMove(get_turf(src)) + update_icon() + return 1 + return 0 +*/ + +/* // Test remove this too. +/obj/machinery/appliance/grill/process() + if (!stat) + for (var/i in cooking_objs) + do_cooking_tick(i) +*/ +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) diff --git a/code/modules/food/kitchen/smartfridge/smartfridge.dm b/code/modules/food/kitchen/smartfridge/smartfridge.dm index 4077d54081..a929c8eda8 100644 --- a/code/modules/food/kitchen/smartfridge/smartfridge.dm +++ b/code/modules/food/kitchen/smartfridge/smartfridge.dm @@ -91,7 +91,7 @@ /obj/machinery/smartfridge/attackby(var/obj/item/O as obj, var/mob/user as mob) if(O.is_screwdriver()) panel_open = !panel_open - user.visible_message("[user] [panel_open ? "opens" : "closes"] the maintenance panel of \the [src].", "You [panel_open ? "open" : "close"] the maintenance panel of \the [src].") + user.visible_message("[user] [panel_open ? "opens" : "closes"] the maintenance panel of \the [src].", "You [panel_open ? "open" : "close"] the maintenance panel of \the [src].") playsound(src, O.usesound, 50, 1) update_icon() return @@ -130,11 +130,11 @@ else if(istype(O, /obj/item/weapon/gripper)) // Grippers. ~Mechoid. var/obj/item/weapon/gripper/B = O //B, for Borg. if(!B.wrapped) - to_chat(user, "\The [B] is not holding anything.") + to_chat(user, "\The [B] is not holding anything.") return else var/B_held = B.wrapped - to_chat(user, "You use \the [B] to put \the [B_held] into \the [src].") + to_chat(user, "You use \the [B] to put \the [B_held] into \the [src].") return else @@ -145,7 +145,7 @@ if(!emagged) emagged = 1 locked = -1 - to_chat(user, "You short out the product lock on [src].") + to_chat(user, "You short out the product lock on [src].") return 1 /obj/machinery/smartfridge/proc/find_record(var/obj/item/O) diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 288e66bb1b..377252412f 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -210,7 +210,11 @@ if(G.get_amount() >= G.max_amount) continue G.attackby(NG, user) +<<<<<<< HEAD to_chat(user, "You add the newly-formed wood to the stack. It now contains [NG.get_amount()] planks.") +======= + to_chat(user, "You add the newly-formed wood to the stack. It now contains [NG.amount] planks.") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) qdel(src) return @@ -221,31 +225,51 @@ return if(seed.kitchen_tag == "potato" || !isnull(seed.chems["potato"])) +<<<<<<< HEAD to_chat(user, "You slice \the [src] into sticks.") new /obj/item/weapon/reagent_containers/food/snacks/rawsticks(get_turf(src)) +======= + to_chat(user, "You slice \the [src] into sticks.") + new /obj/item/reagent_containers/food/snacks/rawsticks(get_turf(src)) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) qdel(src) return if(!isnull(seed.chems["carrotjuice"])) +<<<<<<< HEAD to_chat(user, "You slice \the [src] into sticks.") new /obj/item/weapon/reagent_containers/food/snacks/carrotfries(get_turf(src)) +======= + to_chat(user, "You slice \the [src] into sticks.") + new /obj/item/reagent_containers/food/snacks/carrotfries(get_turf(src)) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) qdel(src) return if(!isnull(seed.chems["pineapplejuice"])) +<<<<<<< HEAD to_chat(user, "You slice \the [src] into rings.") new /obj/item/weapon/reagent_containers/food/snacks/pineapple_ring(get_turf(src)) +======= + to_chat(user, "You slice \the [src] into rings.") + new /obj/item/reagent_containers/food/snacks/pineapple_ring(get_turf(src)) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) qdel(src) return if(!isnull(seed.chems["soymilk"])) +<<<<<<< HEAD to_chat(user, "You roughly chop up \the [src].") new /obj/item/weapon/reagent_containers/food/snacks/soydope(get_turf(src)) +======= + to_chat(user, "You roughly chop up \the [src].") + new /obj/item/reagent_containers/food/snacks/soydope(get_turf(src)) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) qdel(src) return if(seed.get_trait(TRAIT_FLESH_COLOUR)) - to_chat(user, "You slice up \the [src].") + to_chat(user, "You slice up \the [src].") var/slices = rand(3,5) var/reagents_to_transfer = round(reagents.total_volume/slices) for(var/i=1; i<=slices; i++) @@ -316,7 +340,11 @@ if(NG.get_amount() >= NG.max_amount) continue NG.attackby(G, user) +<<<<<<< HEAD to_chat(user, "You add the newly-formed carpet to the stack. It now contains [G.get_amount()] tiles.") +======= + to_chat(user, "You add the newly-formed grass to the stack. It now contains [G.amount] tiles.") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) qdel(src) return diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index cc1e58e68b..9a635e4d96 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -792,7 +792,7 @@ to_chat(user, "You fail to harvest anything useful.") else if(istype(user)) - to_chat(user, "You [harvest_sample ? "take a sample" : "harvest"] from the [display_name].") + to_chat(user, "You [harvest_sample ? "take a sample" : "harvest"] from the [display_name].") //This may be a new line. Update the global if it is. if(name == "new line" || !(name in SSplants.seeds)) diff --git a/code/modules/hydroponics/seed_controller.dm b/code/modules/hydroponics/seed_controller.dm new file mode 100644 index 0000000000..16bf2276dd --- /dev/null +++ b/code/modules/hydroponics/seed_controller.dm @@ -0,0 +1,168 @@ +// Attempts to offload processing for the spreading plants from the MC. +// Processes vines/spreading plants. + +#define PLANTS_PER_TICK 500 // Cap on number of plant segments processed. +#define PLANT_TICK_TIME 75 // Number of ticks between the plant processor cycling. + +// Debug for testing seed genes. +/client/proc/show_plant_genes() + set category = "Debug" + set name = "Show Plant Genes" + set desc = "Prints the round's plant gene masks." + + if(!holder) return + + if(!plant_controller || !plant_controller.gene_tag_masks) + to_chat(usr, "Gene masks not set.") + return + + for(var/mask in plant_controller.gene_tag_masks) + to_chat(usr, "[mask]: [plant_controller.gene_tag_masks[mask]]") + +var/global/datum/controller/plants/plant_controller // Set in New(). + +/datum/controller/plants + + var/plants_per_tick = PLANTS_PER_TICK + var/plant_tick_time = PLANT_TICK_TIME + var/list/product_descs = list() // Stores generated fruit descs. + var/list/plant_queue = list() // All queued plants. + var/list/seeds = list() // All seed data stored here. + var/list/gene_tag_masks = list() // Gene obfuscation for delicious trial and error goodness. + var/list/plant_icon_cache = list() // Stores images of growth, fruits and seeds. + var/list/plant_sprites = list() // List of all growth sprites plus number of growth stages. + var/list/accessible_plant_sprites = list() // List of all plant sprites allowed to appear in random generation. + var/list/plant_product_sprites = list() // List of all harvested product sprites. + var/list/accessible_product_sprites = list() // List of all product sprites allowed to appear in random generation. + var/processing = 0 // Off/on. + var/list/gene_masked_list = list() // Stored gene masked list, rather than recreating it when needed. + var/list/plant_gene_datums = list() // Stored datum versions of the gene masked list. + +/datum/controller/plants/New() + if(plant_controller && plant_controller != src) + log_debug("Rebuilding plant controller.") + qdel(plant_controller) + plant_controller = src + setup() + process() + +// Predefined/roundstart varieties use a string key to make it +// easier to grab the new variety when mutating. Post-roundstart +// and mutant varieties use their uid converted to a string instead. +// Looks like shit but it's sort of necessary. +/datum/controller/plants/proc/setup() + + // Build the icon lists. + for(var/icostate in cached_icon_states('icons/obj/hydroponics_growing.dmi')) + var/split = findtext(icostate,"-") + if(!split) + // invalid icon_state + continue + + var/ikey = copytext(icostate,(split+1)) + if(ikey == "dead") + // don't count dead icons + continue + ikey = text2num(ikey) + var/base = copytext(icostate,1,split) + + if(!(plant_sprites[base]) || (plant_sprites[base]You wipe the disk data.
") name = initial(name) desc = initial(name) genes = list() @@ -68,30 +68,40 @@ active = 0 if(failed_task) failed_task = 0 +<<<<<<< HEAD visible_message("\icon[src][bicon(src)] [src] pings unhappily, flashing a red warning light.") else visible_message("\icon[src][bicon(src)] [src] pings happily.") +======= + visible_message("[bicon(src)] [src] pings unhappily, flashing a red warning light.") + else + visible_message("[bicon(src)] [src] pings happily.") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) if(eject_disk) eject_disk = 0 if(loaded_disk) loaded_disk.loc = get_turf(src) +<<<<<<< HEAD visible_message("\icon[src][bicon(src)] [src] beeps and spits out [loaded_disk].") +======= + visible_message("[bicon(src)] [src] beeps and spits out [loaded_disk].") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) loaded_disk = null /obj/machinery/botany/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W,/obj/item/seeds)) if(seed) - to_chat(user, "There is already a seed loaded.") + to_chat(user, "There is already a seed loaded.") return var/obj/item/seeds/S =W if(S.seed && S.seed.get_trait(TRAIT_IMMUTABLE) > 0) - to_chat(user, "That seed is not compatible with our genetics technology.") + to_chat(user, "That seed is not compatible with our genetics technology.") else user.drop_from_inventory(W) W.loc = src seed = W - to_chat(user, "You load [W] into [src].") + to_chat(user, "You load [W] into [src].") return if(default_deconstruction_screwdriver(user, W)) @@ -105,24 +115,24 @@ // return if(istype(W,/obj/item/weapon/disk/botany)) if(loaded_disk) - to_chat(user, "There is already a data disk loaded.") + to_chat(user, "There is already a data disk loaded.") return else var/obj/item/weapon/disk/botany/B = W if(B.genes && B.genes.len) if(!disk_needs_genes) - to_chat(user, "That disk already has gene data loaded.") + to_chat(user, "That disk already has gene data loaded.") return else if(disk_needs_genes) - to_chat(user, "That disk does not have any gene data loaded.") + to_chat(user, "That disk does not have any gene data loaded.") return user.drop_from_inventory(W) W.loc = src loaded_disk = W - to_chat(user, "You load [W] into [src].") + to_chat(user, "You load [W] into [src].") return ..() @@ -169,7 +179,46 @@ data["hasGenetics"] = 0 data["sourceName"] = 0 +<<<<<<< HEAD return data +======= + ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) + if (!ui) + ui = new(user, src, ui_key, "botany_isolator.tmpl", "Lysis-isolation Centrifuge UI", 470, 450) + ui.set_initial_data(data) + ui.open() + ui.set_auto_update(1) + +/obj/machinery/botany/Topic(href, href_list) + + if(..()) + return 1 + + if(href_list["eject_packet"]) + if(!seed) return + seed.loc = get_turf(src) + + if(seed.seed.name == "new line" || isnull(plant_controller.seeds[seed.seed.name])) + seed.seed.uid = plant_controller.seeds.len + 1 + seed.seed.name = "[seed.seed.uid]" + plant_controller.seeds[seed.seed.name] = seed.seed + + seed.update_seed() + visible_message("[bicon(src)] [src] beeps and spits out [seed].") + + seed = null + + if(href_list["eject_disk"]) + if(!loaded_disk) return + loaded_disk.loc = get_turf(src) + visible_message("[bicon(src)] [src] beeps and spits out [loaded_disk].") + loaded_disk = null + + usr.set_machine(src) + src.add_fingerprint(usr) + +/obj/machinery/botany/extractor/Topic(href, href_list) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) /obj/machinery/botany/tgui_act(action, list/params, datum/tgui/ui, datum/tgui_state/state) if(..()) diff --git a/code/modules/hydroponics/seed_storage.dm b/code/modules/hydroponics/seed_storage.dm index e1d1fafd11..749f6e4920 100644 --- a/code/modules/hydroponics/seed_storage.dm +++ b/code/modules/hydroponics/seed_storage.dm @@ -389,7 +389,7 @@ /obj/machinery/seed_storage/attackby(var/obj/item/O as obj, var/mob/user as mob) if (istype(O, /obj/item/seeds) && !lockdown) add(O) - user.visible_message("[user] puts \the [O.name] into \the [src].", "You put \the [O] into \the [src].") + user.visible_message("[user] puts \the [O.name] into \the [src].", "You put \the [O] into \the [src].") return else if (istype(O, /obj/item/weapon/storage/bag/plants) && !lockdown) var/obj/item/weapon/storage/P = O @@ -398,17 +398,17 @@ ++loaded add(G) if (loaded) - user.visible_message("[user] puts the seeds from \the [O.name] into \the [src].", "You put the seeds from \the [O.name] into \the [src].") + user.visible_message("[user] puts the seeds from \the [O.name] into \the [src].", "You put the seeds from \the [O.name] into \the [src].") else to_chat(user, "There are no seeds in \the [O.name].") return else if(O.is_wrench()) playsound(src, O.usesound, 50, 1) anchored = !anchored - to_chat(user, "You [anchored ? "wrench" : "unwrench"] \the [src].") + to_chat(user, "You [anchored ? "wrench" : "unwrench"] \the [src].") else if(O.is_screwdriver()) panel_open = !panel_open - to_chat(user, "You [panel_open ? "open" : "close"] the maintenance panel.") + to_chat(user, "You [panel_open ? "open" : "close"] the maintenance panel.") playsound(src, O.usesound, 50, 1) cut_overlays() if(panel_open) diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm index a4d0ca08b6..e999a377cd 100644 --- a/code/modules/hydroponics/trays/tray.dm +++ b/code/modules/hydroponics/trays/tray.dm @@ -166,13 +166,13 @@ if(weedlevel > 0) nymph.reagents.add_reagent("glucose", weedlevel) weedlevel = 0 - nymph.visible_message("[nymph] begins rooting through [src], ripping out weeds and eating them noisily.","You begin rooting through [src], ripping out weeds and eating them noisily.") + nymph.visible_message("[nymph] begins rooting through [src], ripping out weeds and eating them noisily.","You begin rooting through [src], ripping out weeds and eating them noisily.") else if(nymph.nutrition > 100 && nutrilevel < 10) nymph.nutrition -= ((10-nutrilevel)*5) nutrilevel = 10 - nymph.visible_message("[nymph] secretes a trickle of green liquid, refilling [src].","You secrete a trickle of green liquid, refilling [src].") + nymph.visible_message("[nymph] secretes a trickle of green liquid, refilling [src].","You secrete a trickle of green liquid, refilling [src].") else - nymph.visible_message("[nymph] rolls around in [src] for a bit.","You roll around in [src] for a bit.") + nymph.visible_message("[nymph] rolls around in [src] for a bit.","You roll around in [src] for a bit.") return /obj/machinery/portable_atmospherics/hydroponics/Initialize() @@ -330,7 +330,7 @@ if(closed_system) if(user) - to_chat(user, "You can't harvest from the plant while the lid is shut.") + to_chat(user, "You can't harvest from the plant while the lid is shut.") return if(user) @@ -357,7 +357,7 @@ if(!user || !dead) return if(closed_system) - to_chat(user, "You can't remove the dead plant while the lid is shut.") + to_chat(user, "You can't remove the dead plant while the lid is shut.") return seed = null @@ -367,7 +367,7 @@ yield_mod = 0 mutation_mod = 0 - to_chat(user, "You remove the dead plant.") + to_chat(user, "You remove the dead plant.") lastproduce = 0 check_health() return @@ -423,11 +423,11 @@ return if(ishuman(usr) || istype(usr, /mob/living/silicon/robot)) if(labelled) - to_chat(usr, "You remove the label.") + to_chat(usr, "You remove the label.") labelled = null update_icon() else - to_chat(usr, "There is no label to remove.") + to_chat(usr, "There is no label to remove.") return /obj/machinery/portable_atmospherics/hydroponics/verb/setlight() @@ -441,7 +441,7 @@ var/new_light = tgui_input_list(usr, "Specify a light level.", "Light Level", list(0,1,2,3,4,5,6,7,8,9,10)) if(new_light) tray_light = new_light - to_chat(usr, "You set the tray to a light level of [tray_light] lumens.") + to_chat(usr, "You set the tray to a light level of [tray_light] lumens.") return /obj/machinery/portable_atmospherics/hydroponics/proc/check_level_sanity() @@ -477,7 +477,7 @@ weedlevel = 0 update_icon() - visible_message("The [previous_plant] has suddenly mutated into [seed.display_name]!") + visible_message("The [previous_plant] has suddenly mutated into [seed.display_name]!") return @@ -489,15 +489,15 @@ if(O.is_wirecutter() || istype(O, /obj/item/weapon/surgical/scalpel)) if(!seed) - to_chat(user, "There is nothing to take a sample from in \the [src].") + to_chat(user, "There is nothing to take a sample from in \the [src].") return if(sampled) - to_chat(user, "You have already sampled from this plant.") + to_chat(user, "You have already sampled from this plant.") return if(dead) - to_chat(user, "The plant is dead.") + to_chat(user, "The plant is dead.") return // Create a sample. @@ -522,14 +522,14 @@ if(seed) return ..() else - to_chat(user, "There's no plant to inject.") + to_chat(user, "There's no plant to inject.") return 1 else if(seed) //Leaving this in in case we want to extract from plants later. - to_chat(user, "You can't get any extract out of this plant.") + to_chat(user, "You can't get any extract out of this plant.") else - to_chat(user, "There's nothing to draw something from.") + to_chat(user, "There's nothing to draw something from.") return 1 else if (istype(O, /obj/item/seeds)) @@ -540,11 +540,11 @@ user.remove_from_mob(O) if(!S.seed) - to_chat(user, "The packet seems to be empty. You throw it away.") + to_chat(user, "The packet seems to be empty. You throw it away.") qdel(O) return - to_chat(user, "You plant the [S.seed.seed_name] [S.seed.seed_noun].") + to_chat(user, "You plant the [S.seed.seed_name] [S.seed.seed_noun].") plant_seeds(S) else @@ -576,7 +576,7 @@ toxins += spray.toxicity pestlevel -= spray.pest_kill_str weedlevel -= spray.weed_kill_str - to_chat(user, "You spray [src] with [O].") + to_chat(user, "You spray [src] with [O].") playsound(src, 'sound/effects/spray3.ogg', 50, 1, -6) qdel(O) check_health() @@ -589,7 +589,7 @@ playsound(src, O.usesound, 50, 1) anchored = !anchored - to_chat(user, "You [anchored ? "wrench" : "unwrench"] \the [src].") + to_chat(user, "You [anchored ? "wrench" : "unwrench"] \the [src].") else if(istype(O,/obj/item/device/multitool)) if(!anchored) @@ -691,5 +691,5 @@ /obj/machinery/portable_atmospherics/hydroponics/proc/close_lid(var/mob/living/user) closed_system = !closed_system - to_chat(user, "You [closed_system ? "close" : "open"] the tray's lid.") + to_chat(user, "You [closed_system ? "close" : "open"] the tray's lid.") update_icon() diff --git a/code/modules/hydroponics/trays/tray_tools.dm b/code/modules/hydroponics/trays/tray_tools.dm index cf8fd8d581..cd0a1036ee 100644 --- a/code/modules/hydroponics/trays/tray_tools.dm +++ b/code/modules/hydroponics/trays/tray_tools.dm @@ -39,11 +39,25 @@ ui = new(user, src, "PlantAnalyzer", name) ui.open() +<<<<<<< HEAD /obj/item/device/analyzer/plant_analyzer/tgui_state(mob/user) return GLOB.tgui_inventory_state /obj/item/device/analyzer/plant_analyzer/tgui_data(mob/user, datum/tgui/ui, datum/tgui_state/state) var/list/data = ..() +======= +/obj/item/analyzer/plant_analyzer/proc/print_report(var/mob/living/user) + if(!last_data) + to_chat(user, "There is no scan data to print.") + return + var/obj/item/paper/P = new /obj/item/paper(get_turf(src)) + P.name = "paper - [form_title]" + P.info = "[last_data]" + if(istype(user,/mob/living/carbon/human)) + user.put_in_hands(P) + user.visible_message("\The [src] spits out a piece of paper.") + return +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) var/datum/seed/grown_seed = last_seed if(!istype(grown_seed)) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 00d87eea74..7c16f5bc6c 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -302,7 +302,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp medHUD = !medHUD plane_holder.set_vis(VIS_CH_HEALTH, medHUD) plane_holder.set_vis(VIS_CH_STATUS_OOC, medHUD) - to_chat(src, "Medical HUD [medHUD ? "Enabled" : "Disabled"]") + to_chat(src, "Medical HUD [medHUD ? "Enabled" : "Disabled"]") /mob/observer/dead/verb/toggle_secHUD() set category = "Ghost" @@ -315,7 +315,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp plane_holder.set_vis(VIS_CH_IMPTRACK, secHUD) plane_holder.set_vis(VIS_CH_IMPLOYAL, secHUD) plane_holder.set_vis(VIS_CH_IMPCHEM, secHUD) - to_chat(src, "Security HUD [secHUD ? "Enabled" : "Disabled"]") + to_chat(src, "Security HUD [secHUD ? "Enabled" : "Disabled"]") /mob/observer/dead/verb/toggle_antagHUD() set category = "Ghost" @@ -323,10 +323,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set desc = "Toggles AntagHUD allowing you to see who is the antagonist" if(!config.antag_hud_allowed && !client.holder) - to_chat(src, "Admins have disabled this for this round.") + to_chat(src, "Admins have disabled this for this round.") return if(jobban_isbanned(src, "AntagHUD")) - to_chat(src, "You have been banned from using this feature") + to_chat(src, "You have been banned from using this feature") return if(config.antag_hud_restricted && !has_enabled_antagHUD && !client.holder) var/response = tgui_alert(src, "If you turn this on, you will not be able to take any part in the round.","Are you sure you want to turn this feature on?",list("Yes","No")) @@ -338,7 +338,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp antagHUD = !antagHUD plane_holder.set_vis(VIS_CH_SPECIAL, antagHUD) - to_chat(src, "AntagHUD [antagHUD ? "Enabled" : "Disabled"]") + to_chat(src, "AntagHUD [antagHUD ? "Enabled" : "Disabled"]") /mob/observer/dead/proc/jumpable_areas() var/list/areas = return_sorted_areas() @@ -374,7 +374,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set desc = "Teleport to a location." if(!istype(usr, /mob/observer/dead)) - to_chat(usr, "Not when you're not dead!") + to_chat(usr, "Not when you're not dead!") return var/area/A @@ -593,15 +593,15 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp forceMove(T) stop_following() else - to_chat(src, "This mob is not located in the game world.") + to_chat(src, "This mob is not located in the game world.") /mob/observer/dead/memory() set hidden = 1 - to_chat(src, "You are dead! You have no mind to store memory!") + to_chat(src, "You are dead! You have no mind to store memory!") /mob/observer/dead/add_memory() set hidden = 1 - to_chat(src, "You are dead! You have no mind to store memory!") + to_chat(src, "You are dead! You have no mind to store memory!") /mob/observer/dead/Post_Incorpmove() stop_following() @@ -620,17 +620,18 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/pressure = environment.return_pressure() var/total_moles = environment.total_moles - - to_chat(src, "Results:") + var/list/gas_analyzing = list() + gas_analyzing += "Results:" if(abs(pressure - ONE_ATMOSPHERE) < 10) - to_chat(src, "Pressure: [round(pressure,0.1)] kPa") + gas_analyzing += "Pressure: [round(pressure,0.1)] kPa" else - to_chat(src, "Pressure: [round(pressure,0.1)] kPa") + gas_analyzing += "Pressure: [round(pressure,0.1)] kPa" if(total_moles) for(var/g in environment.gas) - to_chat(src, "[gas_data.name[g]]: [round((environment.gas[g] / total_moles) * 100)]% ([round(environment.gas[g], 0.01)] moles)") - to_chat(src, "Temperature: [round(environment.temperature-T0C,0.1)]°C ([round(environment.temperature,0.1)]K)") - to_chat(src, "Heat Capacity: [round(environment.heat_capacity(),0.1)]") + gas_analyzing += "[gas_data.name[g]]: [round((environment.gas[g] / total_moles) * 100)]% ([round(environment.gas[g], 0.01)] moles)" + gas_analyzing += "Temperature: [round(environment.temperature-T0C,0.1)]°C ([round(environment.temperature,0.1)]K)" + gas_analyzing += "Heat Capacity: [round(environment.heat_capacity(),0.1)]" + to_chat(src, "[jointext(gas_analyzing, "
")]
") /mob/observer/dead/verb/check_radiation() set name = "Check Radiation" @@ -723,7 +724,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set desc = "If the round is sufficiently spooky, write a short message in blood on the floor or a wall. Remember, no IC in OOC or OOC in IC." if(!(config.cult_ghostwriter)) - to_chat(src, "That verb is not currently permitted.") + to_chat(src, "That verb is not currently permitted.") return if (!src.stat) @@ -738,7 +739,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp ghosts_can_write = 1 if(!ghosts_can_write && !check_rights(R_ADMIN|R_EVENT|R_FUN, 0)) //Let's allow for admins to write in blood for events and the such. - to_chat(src, "The veil is not thin enough for you to do that.") + to_chat(src, "The veil is not thin enough for you to do that.") return var/list/choices = list() @@ -788,19 +789,19 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp W.update_icon() W.message = message W.add_hiddenprint(src) - W.visible_message("Invisible fingers crudely paint something in blood on [T]...") + W.visible_message("Invisible fingers crudely paint something in blood on [T]...") /mob/observer/dead/pointed(atom/A as mob|obj|turf in view()) if(!..()) return 0 - usr.visible_message("[src] points to [A]") + usr.visible_message("[src] points to [A].") return 1 /mob/observer/dead/proc/manifest(mob/user) is_manifest = TRUE verbs |= /mob/observer/dead/proc/toggle_visibility verbs |= /mob/observer/dead/proc/ghost_whisper - to_chat(src, "As you are now in the realm of the living, you can whisper to the living with the Spectral Whisper verb, inside the IC tab.") + to_chat(src, "As you are now in the realm of the living, you can whisper to the living with the Spectral Whisper verb, inside the IC tab.") if(plane != PLANE_WORLD) user.visible_message( \ "\The [user] drags ghost, [src], to our plane of reality!", \ @@ -835,7 +836,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/toggled_invisible if(!forced && plane == PLANE_GHOSTS && world.time < toggled_invisible + 600) - to_chat(src, "You must gather strength before you can turn visible again...") + to_chat(src, "You must gather strength before you can turn visible again...") return if(plane == PLANE_WORLD) @@ -873,7 +874,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set category = "Ghost" ghostvision = !ghostvision updateghostsight() - to_chat(src, "You [ghostvision ? "now" : "no longer"] have ghost vision.") + to_chat(src, "You [ghostvision ? "now" : "no longer"] have ghost vision.") /mob/observer/dead/verb/toggle_darkness() set name = "Toggle Darkness" @@ -891,7 +892,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp lighting_alpha = darkness_levels[index] updateghostsight() +<<<<<<< HEAD to_chat(src, "Your vision now has [darkness_names[index]].") +======= + to_chat(src, "You [seedarkness ? "now" : "no longer"] see darkness.") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) /mob/observer/dead/proc/updateghostsight() plane_holder.set_desired_alpha(VIS_LIGHTING, lighting_alpha) diff --git a/code/modules/mob/dead/observer/say.dm b/code/modules/mob/dead/observer/say.dm index 49ab8f2710..96aa9ccada 100644 --- a/code/modules/mob/dead/observer/say.dm +++ b/code/modules/mob/dead/observer/say.dm @@ -10,7 +10,7 @@ if(message) client.handle_spam_prevention(MUTE_DEADCHAT) if(client.prefs.muted & MUTE_DEADCHAT) - to_chat(src, "You cannot talk in deadchat (muted).") + to_chat(src, "You cannot talk in deadchat (muted).") return . = say_dead(message) @@ -26,7 +26,7 @@ if(message) client.handle_spam_prevention(MUTE_DEADCHAT) if(client.prefs.muted & MUTE_DEADCHAT) - to_chat(src, "You cannot emote in deadchat (muted).") + to_chat(src, "You cannot emote in deadchat (muted).") return . = emote_dead(message) diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index f1d2c94226..78e03d12c4 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -118,7 +118,7 @@ to_chat(src, "[speaker_name][speaker.GetAltName()] makes a noise, possibly speech, but you cannot hear them.") else var/message_to_send = null - message_to_send = "[speaker_name][speaker.GetAltName()] [track][message]" + message_to_send = "[speaker_name][speaker.GetAltName()] [track][message]" if(check_mentioned(multilingual_to_message(message_pieces)) && is_preference_enabled(/datum/client_preference/check_mention)) message_to_send = "[message_to_send]" @@ -138,15 +138,23 @@ ai_holder.on_hear_say(speaker, multilingual_to_message(message_pieces)) /mob/proc/on_hear_say(var/message) - to_chat(src, message) + to_chat(src, "[message]") if(teleop) +<<<<<<< HEAD to_chat(teleop, create_text_tag("body", "BODY:", teleop.client) + "[message]") +======= + to_chat(teleop, "[create_text_tag("body", "BODY:", teleop.client)][message]") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) /mob/living/silicon/on_hear_say(var/message) var/time = say_timestamp() - to_chat(src, "[time] [message]") + to_chat(src, "[time] [message]") if(teleop) +<<<<<<< HEAD to_chat(teleop, create_text_tag("body", "BODY:", teleop.client) + "[time] [message]") +======= + to_chat(teleop, "[create_text_tag("body", "BODY:", teleop.client)][time] [message]") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) // Checks if the mob's own name is included inside message. Handles both first and last names. /mob/proc/check_mentioned(var/message) @@ -177,7 +185,7 @@ return tagged_message -/mob/proc/hear_radio(var/list/message_pieces, var/verb = "says", var/part_a, var/part_b, var/part_c, var/mob/speaker = null, var/hard_to_hear = 0, var/vname = "") +/mob/proc/hear_radio(var/list/message_pieces, var/verb = "says", var/part_a, var/part_b, var/part_c, var/part_d, var/part_e, var/mob/speaker = null, var/hard_to_hear = 0, var/vname = "") if(!client) return @@ -190,45 +198,75 @@ var/speaker_name = handle_speaker_name(speaker, vname, hard_to_hear) var/track = handle_track(message, verb, speaker, speaker_name, hard_to_hear) - message = "[encode_html_emphasis(message)][part_c]" + message = "[encode_html_emphasis(message)][part_d]" if((sdisabilities & DEAF) || ear_deaf) if(prob(20)) to_chat(src, "You feel your headset vibrate but can hear nothing from it!") else +<<<<<<< HEAD on_hear_radio(part_a, speaker_name, track, part_b, message, part_c) +======= + on_hear_radio(part_a, part_b, speaker_name, track, part_c, message, part_d, part_e) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) /proc/say_timestamp() return "\[[stationtime2text()]\]" +<<<<<<< HEAD /mob/proc/on_hear_radio(part_a, speaker_name, track, part_b, formatted, part_c) var/final_message = "[part_a][speaker_name][part_b][formatted][part_c]" +======= +/mob/proc/on_hear_radio(part_a, part_b, speaker_name, track, part_c, formatted, part_d, part_e) + var/final_message = "[part_b][speaker_name][part_c][formatted][part_d]" +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention)) - final_message = "[final_message]" + final_message = "[part_a][final_message][part_e]" + else + final_message = "[part_a][final_message][part_e]" to_chat(src, final_message) +<<<<<<< HEAD /mob/observer/dead/on_hear_radio(part_a, speaker_name, track, part_b, formatted, part_c) var/final_message = "[part_a][track][part_b][formatted][part_c]" +======= +/mob/observer/dead/on_hear_radio(part_a, part_b, speaker_name, track, part_c, formatted, part_d, part_e) + var/final_message = "[part_b][track][part_c][formatted][part_d]" +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention)) - final_message = "[final_message]" + final_message = "[part_a][final_message][part_e]" + else + final_message = "[part_a][final_message][part_e]" to_chat(src, final_message) +<<<<<<< HEAD /mob/living/silicon/on_hear_radio(part_a, speaker_name, track, part_b, formatted, part_c) var/time = say_timestamp() var/final_message = "[part_a][speaker_name][part_b][formatted][part_c]" +======= +/mob/living/silicon/on_hear_radio(part_a, part_b, speaker_name, track, part_c, formatted, part_d, part_e) + var/time = say_timestamp() + var/final_message = "[part_b][speaker_name][part_c][formatted][part_d]" +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention)) - final_message = "[time][final_message]" + final_message = "[part_a][time][final_message][part_e]" else - final_message = "[time][final_message]" + final_message = "[part_a][time][final_message][part_e]" to_chat(src, final_message) +<<<<<<< HEAD /mob/living/silicon/ai/on_hear_radio(part_a, speaker_name, track, part_b, formatted, part_c) var/time = say_timestamp() var/final_message = "[part_a][track][part_b][formatted][part_c]" +======= +/mob/living/silicon/ai/on_hear_radio(part_a, part_b, speaker_name, track, part_c, formatted, part_d, part_e) + var/time = say_timestamp() + var/final_message = "[part_b][track][part_c][formatted][part_d]" +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention)) - final_message = "[time][final_message]" + final_message = "[part_a][time][final_message][part_e]" else - final_message = "[time][final_message]" + final_message = "[part_a][time][final_message][part_e]" to_chat(src, final_message) /mob/proc/hear_signlang(var/message, var/verb = "gestures", var/verb_understood = "gestures", var/datum/language/language, var/mob/speaker = null, var/speech_type = 1) @@ -236,8 +274,13 @@ return if(say_understands(speaker, language)) +<<<<<<< HEAD message = "[speaker] [verb_understood], \"[message]\"" else if(!(language.ignore_adverb)) +======= + message = "[speaker] [verb], \"[message]\"" + else +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) var/adverb var/length = length(message) * pick(0.8, 0.9, 1.0, 1.1, 1.2) //Adds a little bit of fuzziness switch(length) @@ -246,9 +289,13 @@ if(30 to 48) adverb = " a message" if(48 to 90) adverb = " a lengthy message" else adverb = " a very lengthy message" +<<<<<<< HEAD message = "[speaker] [verb][adverb]." else message = "[speaker] [verb]." +======= + message = "[speaker] [verb][adverb]." +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) show_message(message, type = speech_type) // Type 1 is visual message diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 4f18d0900c..c4d3cd530d 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -369,7 +369,7 @@ U.handle_regular_hud_updates() if(!modified) - to_chat(usr, "Unable to locate a data core entry for this person.") + to_chat(usr, "Unable to locate a data core entry for this person.") if (href_list["secrecord"]) if(hasHUD(usr,"security")) @@ -386,6 +386,7 @@ for (var/datum/data/record/R in data_core.security) if (R.fields["id"] == E.fields["id"]) if(hasHUD(usr,"security")) +<<<<<<< HEAD to_chat(usr, "Name: [R.fields["name"]] Criminal Status: [R.fields["criminal"]]") to_chat(usr, "Species: [R.fields["species"]]") to_chat(usr, "Minor Crimes: [R.fields["mi_crim"]]") @@ -394,10 +395,21 @@ to_chat(usr, "Details: [R.fields["ma_crim_d"]]") to_chat(usr, "Notes: [R.fields["notes"]]") to_chat(usr, "\[View Comment Log\]") +======= + var/list/security_hud_text = list() + security_hud_text += "Name: [R.fields["name"]] Criminal Status: [R.fields["criminal"]]" + security_hud_text += "Minor Crimes: [R.fields["mi_crim"]]" + security_hud_text += "Details: [R.fields["mi_crim_d"]]" + security_hud_text += "Major Crimes: [R.fields["ma_crim"]]" + security_hud_text += "Details: [R.fields["ma_crim_d"]]" + security_hud_text += "Notes: [R.fields["notes"]]" + security_hud_text += "\[View Comment Log\]" + to_chat(usr, "[jointext(security_hud_text, "
")]
") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) read = 1 if(!read) - to_chat(usr, "Unable to locate a data core entry for this person.") + to_chat(usr, "Unable to locate a data core entry for this person.") if (href_list["secrecordComment"]) if(hasHUD(usr,"security")) @@ -420,11 +432,11 @@ to_chat(usr, "[R.fields[text("com_[]", counter)]]") counter++ if (counter == 1) - to_chat(usr, "No comment found") - to_chat(usr, "\[Add comment\]") + to_chat(usr, "No comment found.") + to_chat(usr, "\[Add comment\]") if(!read) - to_chat(usr, "Unable to locate a data core entry for this person.") + to_chat(usr, "Unable to locate a data core entry for this person.") if (href_list["secrecordadd"]) if(hasHUD(usr,"security")) @@ -486,7 +498,7 @@ U.handle_regular_hud_updates() if(!modified) - to_chat(usr, "Unable to locate a data core entry for this person.") + to_chat(usr, "Unable to locate a data core entry for this person.") if (href_list["medrecord"]) if(hasHUD(usr,"medical")) @@ -503,6 +515,7 @@ for (var/datum/data/record/R in data_core.medical) if (R.fields["id"] == E.fields["id"]) if(hasHUD(usr,"medical")) +<<<<<<< HEAD to_chat(usr, "Name: [R.fields["name"]] Blood Type: [R.fields["b_type"]]") to_chat(usr, "Species: [R.fields["species"]]") to_chat(usr, "DNA: [R.fields["b_dna"]]") @@ -512,10 +525,22 @@ to_chat(usr, "Details: [R.fields["ma_dis_d"]]") to_chat(usr, "Notes: [R.fields["notes"]]") to_chat(usr, "\[View Comment Log\]") +======= + var/list/medical_hud_text = list() + medical_hud_text += "Name: [R.fields["name"]] Blood Type: [R.fields["b_type"]]" + medical_hud_text += "DNA: [R.fields["b_dna"]]" + medical_hud_text += "Minor Disabilities: [R.fields["mi_dis"]]" + medical_hud_text += "Details: [R.fields["mi_dis_d"]]" + medical_hud_text += "Major Disabilities: [R.fields["ma_dis"]]" + medical_hud_text += "Details: [R.fields["ma_dis_d"]]" + medical_hud_text += "Notes: [R.fields["notes"]]" + medical_hud_text += "\[View Comment Log\]" + to_chat(usr, "[jointext(medical_hud_text, "
")]
") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) read = 1 if(!read) - to_chat(usr, "Unable to locate a data core entry for this person.") + to_chat(usr, "Unable to locate a data core entry for this person.") if (href_list["medrecordComment"]) if(hasHUD(usr,"medical")) @@ -538,11 +563,11 @@ to_chat(usr, "[R.fields[text("com_[]", counter)]]") counter++ if (counter == 1) - to_chat(usr, "No comment found") - to_chat(usr, "\[Add comment\]") + to_chat(usr, "No comment found.") + to_chat(usr, "\[Add comment\]") if(!read) - to_chat(usr, "Unable to locate a data core entry for this person.") + to_chat(usr, "Unable to locate a data core entry for this person.") if (href_list["medrecordadd"]) if(hasHUD(usr,"medical")) @@ -787,7 +812,7 @@ /mob/living/carbon/human/proc/play_xylophone() if(!src.xylophone) var/datum/gender/T = gender_datums[get_visible_gender()] - visible_message("\The [src] begins playing [T.his] ribcage like a xylophone. It's quite spooky.","You begin to play a spooky refrain on your ribcage.","You hear a spooky xylophone melody.") + visible_message("\The [src] begins playing [T.his] ribcage like a xylophone. It's quite spooky.","You begin to play a spooky refrain on your ribcage.","You hear a spooky xylophone melody.") var/song = pick('sound/effects/xylophone1.ogg','sound/effects/xylophone2.ogg','sound/effects/xylophone3.ogg') playsound(src, song, 50, 1, -1) xylophone = 1 @@ -878,7 +903,7 @@ regenerate_icons() check_dna() var/datum/gender/T = gender_datums[get_visible_gender()] - visible_message("\The [src] morphs and changes [T.his] appearance!", "You change your appearance!", "Oh, god! What the hell was that? It sounded like flesh getting squished and bone ground into a different shape!") + visible_message("\The [src] morphs and changes [T.his] appearance!", "You change your appearance!", "Oh, god! What the hell was that? It sounded like flesh getting squished and bone ground into a different shape!") /mob/living/carbon/human/proc/remotesay() set name = "Project mind" @@ -895,19 +920,27 @@ var/list/creatures = list() for(var/mob/living/carbon/h in mob_list) creatures += h +<<<<<<< HEAD var/mob/target = tgui_input_list(usr, "Who do you want to project your mind to?", "Project Mind", creatures) if (isnull(target)) return var/say = sanitize(tgui_input_text(usr, "What do you wish to say")) +======= + var/mob/target = input("Who do you want to project your mind to?") as null|anything in creatures + if (isnull(target)) + return + + var/say = sanitize(input("What do you wish to say?")) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) if(mRemotetalk in target.mutations) - target.show_message(" You hear [src.real_name]'s voice: [say]") + target.show_message("You hear [src.real_name]'s voice: [say]") else - target.show_message(" You hear a voice that seems to echo around the room: [say]") - usr.show_message(" You project your mind into [target.real_name]: [say]") + target.show_message("You hear a voice that seems to echo around the room: [say]") + usr.show_message("You project your mind into [target.real_name]: [say]") log_say("(TPATH to [key_name(target)]) [say]",src) for(var/mob/observer/dead/G in mob_list) - G.show_message("Telepathic message from [src] to [target]: [say]") + G.show_message("Telepathic message from [src] to [target]: [say]") /mob/living/carbon/human/proc/remoteobserve() set name = "Remote View" @@ -937,7 +970,7 @@ continue creatures += h - var/mob/target = input ("Who do you want to project your mind to ?") as mob in creatures + var/mob/target = input ("Who do you want to project your mind to?") as mob in creatures if (target) remoteview_target = target @@ -1144,10 +1177,10 @@ self = 1 if(!self) usr.visible_message("[usr] kneels down, puts [TU.his] hand on [src]'s wrist and begins counting [T.his] pulse.",\ - "You begin counting [src]'s pulse") + "You begin counting [src]'s pulse.") else usr.visible_message("[usr] begins counting [T.his] pulse.",\ - "You begin counting your pulse.") + "You begin counting your pulse.") if(src.pulse) to_chat(usr, "[self ? "You have a" : "[src] has a"] pulse! Counting...") @@ -1155,7 +1188,7 @@ to_chat(usr, "[src] has no pulse!") //it is REALLY UNLIKELY that a dead person would check his own pulse return - to_chat(usr, "You must[self ? "" : " both"] remain still until counting is finished.") + to_chat(usr, "You must[self ? "" : " both"] remain still until counting is finished.") if(do_mob(usr, src, 60)) var/message = "[self ? "Your" : "[src]'s"] pulse is [src.get_pulse(GETPULSE_HAND)]." to_chat(usr,message) @@ -1453,11 +1486,11 @@ usr.setClickCooldown(20) if(usr.stat > 0) - to_chat(usr, "You are unconcious and cannot do that!") + to_chat(usr, "You are unconcious and cannot do that!") return if(usr.restrained()) - to_chat(usr, "You are restrained and cannot do that!") + to_chat(usr, "You are restrained and cannot do that!") return var/mob/S = src diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index f0a34c0eaf..16acfd7131 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -42,7 +42,7 @@ if(H.hand) temp = H.organs_by_name["l_hand"] if(!temp || !temp.is_usable()) - to_chat(H, "You can't use your hand.") + to_chat(H, "You can't use your hand.") return if(H.lying) return @@ -57,7 +57,7 @@ if(!hit_zone) H.do_attack_animation(src) playsound(src, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - visible_message("[H] reaches for [src], but misses!") + visible_message("[H] reaches for [src], but misses!") return FALSE if(H != src && check_shields(0, null, H, H.zone_sel.selecting, H.name)) @@ -333,7 +333,7 @@ return playsound(src, 'sound/weapons/punchmiss.ogg', 25, 1, -1) - visible_message(" [M] attempted to disarm [src]!") + visible_message(" [M] attempted to disarm [src]!") return /mob/living/carbon/human/proc/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, inrange, params) @@ -426,9 +426,9 @@ var/datum/gender/TU = gender_datums[user.get_visible_gender()] if(user == src) - user.visible_message("\The [user] starts applying pressure to [TU.his] [organ.name]!", "You start applying pressure to your [organ.name]!") + user.visible_message("\The [user] starts applying pressure to [TU.his] [organ.name]!", "You start applying pressure to your [organ.name]!") else - user.visible_message("\The [user] starts applying pressure to [src]'s [organ.name]!", "You start applying pressure to [src]'s [organ.name]!") + user.visible_message("\The [user] starts applying pressure to [src]'s [organ.name]!", "You start applying pressure to [src]'s [organ.name]!") spawn(0) organ.applied_pressure = user @@ -438,9 +438,9 @@ organ.applied_pressure = null if(user == src) - user.visible_message("\The [user] stops applying pressure to [TU.his] [organ.name]!", "You stop applying pressure to your [organ]!") + user.visible_message("\The [user] stops applying pressure to [TU.his] [organ.name]!", "You stop applying pressure to your [organ]!") else - user.visible_message("\The [user] stops applying pressure to [src]'s [organ.name]!", "You stop applying pressure to [src]'s [organ.name]!") + user.visible_message("\The [user] stops applying pressure to [src]'s [organ.name]!", "You stop applying pressure to [src]'s [organ.name]!") return TRUE diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 4829c3ee12..0efe5f174b 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -269,21 +269,21 @@ if (candidates.len) var/obj/item/organ/external/O = pick(candidates) O.mutate() - to_chat(src, "Something is not right with your [O.name]...") + to_chat(src, "Something is not right with your [O.name]...") return else if (prob(heal_prob)) for (var/obj/item/organ/external/O in organs) if (O.status & ORGAN_MUTATED) O.unmutate() - to_chat(src, "Your [O.name] is shaped normally again.") + to_chat(src, "Your [O.name] is shaped normally again.") return if (getCloneLoss() < 1) for (var/obj/item/organ/external/O in organs) if (O.status & ORGAN_MUTATED) O.unmutate() - to_chat(src, "Your [O.name] is shaped normally again.") + to_chat(src, "Your [O.name] is shaped normally again.") BITSET(hud_updateflag, HEALTH_HUD) // Defined here solely to take species flags into account without having to recast at mob/living level. diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index f5dd0d3aca..28f38266c8 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -465,7 +465,7 @@ emp_act var/obj/item/organ/external/affecting = get_organ(zone) var/hit_area = affecting.name - src.visible_message("[src] has been hit in the [hit_area] by [O].") + src.visible_message("[src] has been hit in the [hit_area] by [O].") if(ismob(O.thrower)) add_attack_logs(O.thrower,src,"Hit with thrown [O.name]") @@ -473,7 +473,7 @@ emp_act //If the armor absorbs all of the damage, skip the rest of the calculations var/soaked = get_armor_soak(affecting, "melee", O.armor_penetration) if(soaked >= throw_damage) - to_chat(src, "Your armor absorbs the force of [O.name]!") + to_chat(src, "Your armor absorbs the force of [O.name]!") return var/armor = run_armor_check(affecting, "melee", O.armor_penetration, "Your armor has protected your [hit_area].", "Your armor has softened hit to your [hit_area].") //I guess "melee" is the best fit here @@ -511,7 +511,7 @@ emp_act if(O.throw_source && momentum >= THROWNOBJ_KNOCKBACK_SPEED && !buckled) var/dir = get_dir(O.throw_source, src) - visible_message("[src] staggers under the impact!","You stagger under the impact!") + visible_message("[src] staggers under the impact!","You stagger under the impact!") src.throw_at(get_edge_target_turf(src,dir),1,momentum) if(!O || !src) return diff --git a/code/modules/mob/living/carbon/human/human_powers.dm b/code/modules/mob/living/carbon/human/human_powers.dm index 39ecfba387..644bda91c8 100644 --- a/code/modules/mob/living/carbon/human/human_powers.dm +++ b/code/modules/mob/living/carbon/human/human_powers.dm @@ -61,7 +61,7 @@ return if(stat || paralysis || stunned || weakened || lying || restrained() || buckled) - to_chat(src, "You cannot tackle in your current state.") + to_chat(src, "You cannot tackle in your current state.") return last_special = world.time + 50 @@ -78,7 +78,7 @@ for(var/mob/O in viewers(src, null)) if ((O.client && !( O.blinded ))) - O.show_message(text("[] [failed ? "tried to tackle" : "has tackled"] down []!", src, T), 1) + O.show_message("[src] [failed ? "tried to tackle" : "has tackled"] down [T]!", 1) /mob/living/carbon/human/proc/commune() set category = "Abilities" @@ -103,17 +103,17 @@ var/mob/M = targets[target] if(istype(M, /mob/observer/dead) || M.stat == DEAD) - to_chat(src, "Not even a [src.species.name] can speak to the dead.") + to_chat(src, "Not even a [src.species.name] can speak to the dead.") return log_say("(COMMUNE to [key_name(M)]) [text]",src) - to_chat(M, "Like lead slabs crashing into the ocean, alien thoughts drop into your mind: [text]") + to_chat(M, "Like lead slabs crashing into the ocean, alien thoughts drop into your mind: [text]") if(istype(M,/mob/living/carbon/human)) var/mob/living/carbon/human/H = M if(H.species.name == src.species.name) return - to_chat(H, "Your nose begins to bleed...") + to_chat(H, "Your nose begins to bleed...") H.drip(1) /mob/living/carbon/human/proc/regurgitate() @@ -126,7 +126,7 @@ if(M in stomach_contents) stomach_contents.Remove(M) M.loc = loc - src.visible_message("[src] hurls out the contents of their stomach!") + src.visible_message("[src] hurls out the contents of their stomach!") return /mob/living/carbon/human/proc/psychic_whisper(mob/M as mob in oview()) @@ -137,8 +137,8 @@ var/msg = sanitize(tgui_input_text(usr, "Message:", "Psychic Whisper")) if(msg) log_say("(PWHISPER to [key_name(M)]) [msg]", src) - to_chat(M, "You hear a strange, alien voice in your head... [msg]") - to_chat(src, "You said: \"[msg]\" to [M]") + to_chat(M, "You hear a strange, alien voice in your head... [msg]") + to_chat(src, "You said: \"[msg]\" to [M]") return /mob/living/carbon/human/proc/diona_split_nymph() @@ -211,7 +211,7 @@ to_chat(src, "Performing self-diagnostic, please wait...") spawn(50) - var/output = "Self-Diagnostic Results:\n" + var/output = "Self-Diagnostic Results:\n" output += "Internal Temperature: [convert_k2c(bodytemperature)] Degrees Celsius\n" @@ -237,6 +237,7 @@ output += "[IO.name] - [IO.damage > 10 ? "Heavy Damage" : "Light Damage"]\n" else output += "[IO.name] - OK\n" + output += "" to_chat(src,output) @@ -302,7 +303,7 @@ return else active_regen = TRUE - src.visible_message("[src]'s flesh begins to mend...") + src.visible_message("[src]'s flesh begins to mend...") var/delay_length = round(active_regen_delay * species.active_regen_mult) if(do_after(src,delay_length)) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 03a36ceddf..2f512e5090 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -96,7 +96,7 @@ if(!..()) return 0 - usr.visible_message("[src] points to [A]") + usr.visible_message("[src] points to [A].") return 1 /mob/living/verb/succumb() @@ -773,7 +773,7 @@ set category = "IC" resting = !resting - to_chat(src, "You are now [resting ? "resting" : "getting up"]") + to_chat(src, "You are now [resting ? "resting" : "getting up"].") update_canmove() //called when the mob receives a bright flash @@ -1125,7 +1125,23 @@ src.inertia_dir = get_dir(target, src) step(src, inertia_dir) item.throw_at(target, throw_range, item.throw_speed, src) +<<<<<<< HEAD item.throwing = 1 //Small edit so thrown interactions actually work! +======= + + return TRUE + return FALSE + + if(a_intent == I_HELP && Adjacent(target) && isitem(item)) + if(ishuman(target)) + var/mob/living/carbon/human/H = target + if(H.in_throw_mode && H.a_intent == I_HELP && unEquip(item)) + H.put_in_hands(item) // If this fails it will just end up on the floor, but that's fitting for things like dionaea. + visible_message("[src] hands \the [H] \a [item].", SPAN_NOTICE("You give \the [target] \a [item].")) + else + to_chat(src, SPAN_NOTICE("You offer \the [item] to \the [target].")) + do_give(H) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) return TRUE else return FALSE diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index bec2cb9511..f30c02a151 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -266,10 +266,10 @@ miss_chance = max(15*(distance-2), 0) if (prob(miss_chance)) - visible_message("\The [O] misses [src] narrowly!") + visible_message("\The [O] misses [src] narrowly!") return - src.visible_message("[src] has been hit by [O].") + src.visible_message("[src] has been hit by [O].") var/armor = run_armor_check(null, "melee") var/soaked = get_armor_soak(null, "melee") @@ -296,7 +296,7 @@ if(O.throw_source && momentum >= THROWNOBJ_KNOCKBACK_SPEED) var/dir = get_dir(O.throw_source, src) - visible_message("[src] staggers under the impact!","You stagger under the impact!") + visible_message("[src] staggers under the impact!","You stagger under the impact!") src.throw_at(get_edge_target_turf(src,dir),1,momentum) if(!O || !src) return diff --git a/code/modules/mob/living/riding.dm b/code/modules/mob/living/riding.dm index 3a614a4b6d..02c35132a6 100644 --- a/code/modules/mob/living/riding.dm +++ b/code/modules/mob/living/riding.dm @@ -7,10 +7,15 @@ if(istype(riding_datum,/datum/riding)) if(riding_datum.keytype) riding_datum.keytype = null - to_chat(src, "Rider control enabled.") + to_chat(src, "Rider control enabled.") return else +<<<<<<< HEAD riding_datum.keytype = /obj/item/weapon/material/twohanded/riding_crop to_chat(src, "Rider control restricted.") +======= + riding_datum.keytype = /obj/item/material/twohanded/riding_crop + to_chat(src, "Rider control restricted.") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) return return diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index a2ce47c2be..ed1a9bab3c 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -189,12 +189,12 @@ var/list/ai_verbs_default = list( return /mob/living/silicon/ai/proc/on_mob_init() - to_chat(src, "You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras).") - to_chat(src, "To look at other parts of the station, click on yourself to get a camera menu.") - to_chat(src, "While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc.") - to_chat(src, "To use something, simply click on it.") - to_chat(src, "Use say #b to speak to your cyborgs through binary. Use say :h to speak from an active holopad.") - to_chat(src, "For department channels, use the following say commands:") + var/init_text = list("You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras).", + "To look at other parts of the station, click on yourself to get a camera menu.", + "While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc.", + "To use something, simply click on it.", + "For department channels, use the following say commands:") + to_chat(src, "[jointext(init_text, "
")]
") var/radio_text = "" for(var/i = 1 to common_radio.channels.len) @@ -214,7 +214,7 @@ var/list/ai_verbs_default = list( if (malf && !(mind in malf.current_antagonists)) show_laws() - to_chat(src, "These laws may be changed by other players, or by you being the traitor.") + to_chat(src, "These laws may be changed by other players, or by you being the traitor.") job = "AI" setup_icon() @@ -360,7 +360,7 @@ var/list/ai_verbs_default = list( return if(message_cooldown) - to_chat(src, "Please allow one minute to pass between announcements.") + to_chat(src, "Please allow one minute to pass between announcements.") return var/input = tgui_input_text(usr, "Please write a message to announce to the station crew.", "A.I. Announcement") if(!input) @@ -472,7 +472,7 @@ var/list/ai_verbs_default = list( if(target && (!istype(target, /mob/living/carbon/human) || html_decode(href_list["trackname"]) == target:get_face_name())) ai_actual_track(target) else - to_chat(src, "System error. Cannot locate [html_decode(href_list["trackname"])].") + to_chat(src, "System error. Cannot locate [html_decode(href_list["trackname"])].") return if(href_list["trackbot"]) @@ -572,7 +572,7 @@ var/list/ai_verbs_default = list( if(network in C.network) eyeobj.setLoc(get_turf(C)) break - to_chat(src, "Switched to [network] camera network.") + to_chat(src, "Switched to [network] camera network.") //End of code by Mord_Sith /mob/living/silicon/ai/proc/ai_statuschange() @@ -707,7 +707,7 @@ var/list/ai_verbs_default = list( return camera_light_on = !camera_light_on - to_chat(src, "Camera lights [camera_light_on ? "activated" : "deactivated"].") + to_chat(src, "Camera lights [camera_light_on ? "activated" : "deactivated"].") if(!camera_light_on) if(camera) camera.set_light(0) @@ -754,21 +754,31 @@ var/list/ai_verbs_default = list( return if(anchored) playsound(src, W.usesound, 50, 1) - user.visible_message("\The [user] starts to unbolt \the [src] from the plating...") + user.visible_message("\The [user] starts to unbolt \the [src] from the plating...") if(!do_after(user,40 * W.toolspeed)) - user.visible_message("\The [user] decides not to unbolt \the [src].") + user.visible_message("\The [user] decides not to unbolt \the [src].") return +<<<<<<< HEAD user.visible_message("\The [user] finishes unfastening \the [src]!") anchored = FALSE +======= + user.visible_message("\The [user] finishes unfastening \the [src]!") + anchored = 0 +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) return else playsound(src, W.usesound, 50, 1) - user.visible_message("\The [user] starts to bolt \the [src] to the plating...") + user.visible_message("\The [user] starts to bolt \the [src] to the plating...") if(!do_after(user,40 * W.toolspeed)) - user.visible_message("\The [user] decides not to bolt \the [src].") + user.visible_message("\The [user] decides not to bolt \the [src].") return +<<<<<<< HEAD user.visible_message("\The [user] finishes fastening down \the [src]!") anchored = TRUE +======= + user.visible_message("\The [user] finishes fastening down \the [src]!") + anchored = 1 +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) return else return ..() @@ -781,7 +791,7 @@ var/list/ai_verbs_default = list( if(check_unable(AI_CHECK_RADIO)) return - to_chat(src, "Accessing Subspace Transceiver control...") + to_chat(src, "Accessing Subspace Transceiver control...") if (src.aiRadio) src.aiRadio.interact(src) @@ -799,12 +809,16 @@ var/list/ai_verbs_default = list( set desc = "Toggles hologram movement based on moving with your virtual eye." hologram_follow = !hologram_follow +<<<<<<< HEAD //VOREStation Add - Required to stop movement because we use walk_to(wards) in hologram.dm if(holo) var/obj/effect/overlay/aiholo/hologram = holo.masters[src] walk(hologram, 0) //VOREStation Add End to_chat(usr, "Your hologram will [hologram_follow ? "follow" : "no longer follow"] you now.") +======= + to_chat(usr, "Your hologram will [hologram_follow ? "follow" : "no longer follow"] you now.") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) /mob/living/silicon/ai/proc/check_unable(var/flags = 0, var/feedback = 1) @@ -965,7 +979,7 @@ var/list/ai_verbs_default = list( var/message = combined["formatted"] var/name_used = M.GetVoice() //This communication is imperfect because the holopad "filters" voices and is only designed to connect to the master only. - var/rendered = "Relayed Speech: [name_used] [message]" + var/rendered = "Relayed Speech: [name_used] [message]" show_message(rendered, 2) /mob/living/silicon/ai/proc/toggle_multicam_verb() diff --git a/code/modules/mob/living/silicon/ai/laws.dm b/code/modules/mob/living/silicon/ai/laws.dm index 74816aeeb8..3dceddb51a 100755 --- a/code/modules/mob/living/silicon/ai/laws.dm +++ b/code/modules/mob/living/silicon/ai/laws.dm @@ -10,7 +10,7 @@ who = world else who = src - to_chat(who, "Obey these laws:") + to_chat(who, "Obey these laws:") src.laws_sanity_check() src.laws.show_laws(who) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 94595c9516..c1a617691d 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -266,7 +266,7 @@ M.ejectpai() //I'm not sure how much of this is necessary, but I would rather avoid issues. if(istype(card.loc,/obj/item/rig_module)) - to_chat(src, "There is no room to unfold inside this rig module. You're good and stuck.") + to_chat(src, "There is no room to unfold inside this rig module. You're good and stuck.") return 0 else if(istype(card.loc,/mob)) var/mob/holder = card.loc @@ -295,10 +295,14 @@ canmove = TRUE var/turf/T = get_turf(src) +<<<<<<< HEAD if(istype(T)) T.visible_message("[src] folds outwards, expanding into a mobile form.") verbs |= /mob/living/silicon/pai/proc/pai_nom verbs |= /mob/living/proc/vertical_nom update_icon() +======= + if(istype(T)) T.visible_message("[src] folds outwards, expanding into a mobile form.") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) /mob/living/silicon/pai/verb/fold_up() set category = "pAI Commands" @@ -364,9 +368,13 @@ //update_transform() I want this to make you ROTATE like normal HUMANS do! But! There's lots of problems and I don't know how to fix them! else resting = !resting +<<<<<<< HEAD icon_state = resting ? "[chassis]_rest" : "[chassis]" update_icon() //VOREStation edit to_chat(src, "You are now [resting ? "resting" : "getting up"]") +======= + to_chat(src, "You are now [resting ? "resting" : "getting up"].") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) canmove = !resting @@ -436,7 +444,11 @@ release_vore_contents(FALSE) //VOREStation Add var/turf/T = get_turf(src) +<<<<<<< HEAD if(istype(T) && !silent) T.visible_message("[src] neatly folds inwards, compacting down to a rectangular card.") +======= + if(istype(T)) T.visible_message("[src] neatly folds inwards, compacting down to a rectangular card.") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) if(client) src.stop_pulling() @@ -535,6 +547,6 @@ return close_up() - visible_message("[src] fades away from the screen, the pAI device goes silent.") + visible_message("[src] fades away from the screen, the pAI device goes silent.") card.removePersonality() clear_client() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 7287eefa02..26cbc5385d 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -377,7 +377,7 @@ set name = "Toggle Lights" lights_on = !lights_on - to_chat(usr, "You [lights_on ? "enable" : "disable"] your integrated light.") + to_chat(usr, "You [lights_on ? "enable" : "disable"] your integrated light.") handle_light() updateicon() //VOREStation Add - Since dogborgs have sprites for this @@ -422,7 +422,7 @@ /mob/living/silicon/robot/verb/spark_plug() //So you can still sparkle on demand without violence. set category = "Robot Commands" set name = "Emit Sparks" - to_chat(src, "You harmlessly spark.") + to_chat(src, "You harmlessly spark.") spark_system.start() // this function displays jetpack pressure in the stat panel @@ -489,7 +489,7 @@ C.brute_damage = WC.brute C.electronics_damage = WC.burn - to_chat(usr, "You install the [W.name].") + to_chat(usr, "You install the [W.name].") return @@ -513,7 +513,7 @@ return if(shell) // AI shells always have the laws of the AI - to_chat(user, span("warning", "\The [src] is controlled remotely! You cannot upload new laws this way!")) + to_chat(user, "\The [src] is controlled remotely! You cannot upload new laws this way!") return var/obj/item/weapon/aiModule/M = W @@ -526,7 +526,7 @@ return if (!getBruteLoss()) - to_chat(user, "Nothing to fix here!") + to_chat(user, "Nothing to fix here!") return var/obj/item/weapon/weldingtool/WT = W if (WT.remove_fuel(0)) @@ -535,14 +535,14 @@ updatehealth() add_fingerprint(user) for(var/mob/O in viewers(user, null)) - O.show_message(text("[user] has fixed some of the dents on [src]!"), 1) + O.show_message("[user] has fixed some of the dents on [src]!", 1) else - to_chat(user, "Need more welding fuel!") + to_chat(user, "Need more welding fuel!") return else if(istype(W, /obj/item/stack/cable_coil) && (wiresexposed || istype(src,/mob/living/silicon/robot/drone))) if (!getFireLoss()) - to_chat(user, "Nothing to fix here!") + to_chat(user, "Nothing to fix here!") return var/obj/item/stack/cable_coil/coil = W if (coil.use(1)) @@ -550,23 +550,23 @@ adjustFireLoss(-30) updatehealth() for(var/mob/O in viewers(user, null)) - O.show_message(text("[user] has fixed some of the burnt wires on [src]!"), 1) + O.show_message("[user] has fixed some of the burnt wires on [src]!", 1) else if (W.is_crowbar() && user.a_intent != I_HURT) // crowbar means open or close the cover if(opened) if(cell) - to_chat(user, "You close the cover.") + to_chat(user, "You close the cover.") opened = 0 updateicon() else if(wiresexposed && wires.is_all_cut()) //Cell is out, wires are exposed, remove MMI, produce damaged chassis, baleet original mob. if(!mmi) - to_chat(user, "\The [src] has no brain to remove.") + to_chat(user, "\The [src] has no brain to remove.") return - to_chat(user, "You jam the crowbar into the robot and begin levering [mmi].") + to_chat(user, "You jam the crowbar into the robot and begin levering [mmi].") sleep(30) - to_chat(user, "You damage some parts of the chassis, but eventually manage to rip out [mmi]!") + to_chat(user, "You damage some parts of the chassis, but eventually manage to rip out [mmi]!") var/obj/item/robot_parts/robot_suit/C = new/obj/item/robot_parts/robot_suit(loc) C.l_leg = new/obj/item/robot_parts/l_leg(C) C.r_leg = new/obj/item/robot_parts/r_leg(C) @@ -589,7 +589,7 @@ return var/datum/robot_component/C = components[remove] var/obj/item/robot_parts/robot_component/I = C.wrapped - to_chat(user, "You remove \the [I].") + to_chat(user, "You remove \the [I].") if(istype(I)) I.brute = C.brute_damage I.burn = C.electronics_damage @@ -602,25 +602,25 @@ else if(locked) - to_chat(user, "The cover is locked and cannot be opened.") + to_chat(user, "The cover is locked and cannot be opened.") else - to_chat(user, "You open the cover.") + to_chat(user, "You open the cover.") opened = 1 updateicon() else if (istype(W, /obj/item/weapon/cell) && opened) // trying to put a cell inside var/datum/robot_component/C = components["power cell"] if(wiresexposed) - to_chat(user, "Close the panel first.") + to_chat(user, "Close the panel first.") else if(cell) - to_chat(user, "There is a power cell already installed.") + to_chat(user, "There is a power cell already installed.") else if(W.w_class != ITEMSIZE_NORMAL) - to_chat(user, "\The [W] is too [W.w_class < ITEMSIZE_NORMAL ? "small" : "large"] to fit here.") + to_chat(user, "\The [W] is too [W.w_class < ITEMSIZE_NORMAL ? "small" : "large"] to fit here.") else user.drop_item() W.loc = src cell = W - to_chat(user, "You insert the power cell.") + to_chat(user, "You insert the power cell.") C.installed = 1 C.wrapped = W @@ -633,11 +633,11 @@ if (wiresexposed) wires.Interact(user) else - to_chat(user, "You can't reach the wiring.") + to_chat(user, "You can't reach the wiring.") else if(W.is_screwdriver() && opened && !cell) // haxing wiresexposed = !wiresexposed - to_chat(user, "The wires have been [wiresexposed ? "exposed" : "unexposed"]") + to_chat(user, "The wires have been [wiresexposed ? "exposed" : "unexposed"]") playsound(src, W.usesound, 50, 1) updateicon() @@ -645,21 +645,21 @@ if(radio) radio.attackby(W,user)//Push it to the radio to let it handle everything else - to_chat(user, "Unable to locate a radio.") + to_chat(user, "Unable to locate a radio.") updateicon() else if(W.is_wrench() && opened && !cell) if(bolt) - to_chat(user,"You begin removing \the [bolt].") + to_chat(user,"You begin removing \the [bolt].") if(do_after(user, 2 SECONDS, src)) bolt.forceMove(get_turf(src)) bolt = null - to_chat(user, "You remove \the [bolt].") + to_chat(user, "You remove \the [bolt].") else - to_chat(user, "There is no restraining bolt installed.") + to_chat(user, "There is no restraining bolt installed.") return @@ -667,36 +667,36 @@ if(radio)//sanityyyyyy radio.attackby(W,user)//GTFO, you have your own procs else - to_chat(user, "Unable to locate a radio.") + to_chat(user, "Unable to locate a radio.") else if (W.GetID()) // trying to unlock the interface with an ID card if(emagged)//still allow them to open the cover - to_chat(user, "The interface seems slightly damaged") + to_chat(user, "The interface seems slightly damaged.") if(opened) - to_chat(user, "You must close the cover to swipe an ID card.") + to_chat(user, "You must close the cover to swipe an ID card.") else if(allowed(usr)) locked = !locked - to_chat(user, "You [ locked ? "lock" : "unlock"] [src]'s interface.") + to_chat(user, "You [ locked ? "lock" : "unlock"] [src]'s interface.") updateicon() else - to_chat(user, "Access denied.") + to_chat(user, "Access denied.") else if(istype(W, /obj/item/borg/upgrade/)) var/obj/item/borg/upgrade/U = W if(!opened) - to_chat(usr, "You must access the borgs internals!") + to_chat(usr, "You must access the borgs internals!") else if(!src.module && U.require_module) - to_chat(usr, "The borg must choose a module before it can be upgraded!") + to_chat(usr, "The borg must choose a module before it can be upgraded!") else if(U.locked) - to_chat(usr, "The upgrade is locked and cannot be used yet!") + to_chat(usr, "The upgrade is locked and cannot be used yet!") else if(U.action(src)) - to_chat(usr, "You apply the upgrade to [src]!") + to_chat(usr, "You apply the upgrade to [src]!") usr.drop_item() U.loc = src else - to_chat(usr, "Upgrade error!") + to_chat(usr, "Upgrade error!") else @@ -751,7 +751,7 @@ cell.update_icon() cell.add_fingerprint(user) user.put_in_active_hand(cell) - to_chat(user, "You remove \the [cell].") + to_chat(user, "You remove \the [cell].") cell = null cell_component.wrapped = null cell_component.installed = 0 @@ -759,7 +759,7 @@ else if(cell_component.installed == -1) cell_component.installed = 0 var/obj/item/broken_device = cell_component.wrapped - to_chat(user, "You remove \the [broken_device].") + to_chat(user, "You remove \the [broken_device].") user.put_in_active_hand(broken_device) if(istype(user,/mob/living/carbon/human) && !opened) @@ -866,7 +866,7 @@ /mob/living/silicon/robot/proc/installed_modules() if(weapon_lock) - to_chat(src, "Weapon lock active, unable to use modules! Count:[weaponlock_time]") + to_chat(src, "Weapon lock active, unable to use modules! Count:[weaponlock_time]") return if(!module) @@ -931,7 +931,7 @@ return 1 if(activated(O)) - to_chat(src, "Already activated") + to_chat(src, "Already activated.") return 1 if(!module_state_1) module_state_1 = O @@ -955,7 +955,7 @@ if(istype(module_state_3,/obj/item/borg/sight)) sight_mode |= module_state_3:sight_mode else - to_chat(src, "You need to disable a module first!") + to_chat(src, "You need to disable a module first!") installed_modules() return 1 @@ -972,9 +972,9 @@ module_state_3 = null contents -= O else - to_chat(src, "Module isn't activated.") + to_chat(src, "Module isn't activated.") else - to_chat(src, "Module isn't activated") + to_chat(src, "Module isn't activated.") installed_modules() return 1 return @@ -1007,7 +1007,7 @@ if(R) R.UnlinkSelf() - to_chat(R, "Buffers flushed and reset. Camera system shutdown. All systems operational.") + to_chat(R, "Buffers flushed and reset. Camera system shutdown. All systems operational.") src.verbs -= /mob/living/silicon/robot/proc/ResetSecurityCodes /mob/living/silicon/robot/proc/SetLockdown(var/state = 1) @@ -1071,7 +1071,7 @@ icon_selected = 1 icon_selection_tries = 0 - to_chat(src, "Your icon has been set. You now require a module reset to change it.") + to_chat(src, "Your icon has been set. You now require a module reset to change it.") /mob/living/silicon/robot/proc/sensor_mode() //Medical/Security HUD controller for borgs set name = "Toggle Sensor Augmentation" //VOREStation Add @@ -1123,16 +1123,16 @@ return // No point annoying the AI/s about renames and module resets for shells. switch(notifytype) if(ROBOT_NOTIFICATION_NEW_UNIT) //New Robot - to_chat(connected_ai, "

NOTICE - New [lowertext(braintype)] connection detected: [name]
") + to_chat(connected_ai, "

NOTICE - New [lowertext(braintype)] connection detected: [name]
") if(ROBOT_NOTIFICATION_NEW_MODULE) //New Module - to_chat(connected_ai, "

NOTICE - [braintype] module change detected: [name] has loaded the [first_arg].
") + to_chat(connected_ai, "

NOTICE - [braintype] module change detected: [name] has loaded the [first_arg].
") if(ROBOT_NOTIFICATION_MODULE_RESET) - to_chat(connected_ai, "

NOTICE - [braintype] module reset detected: [name] has unloaded the [first_arg].
") + to_chat(connected_ai, "

NOTICE - [braintype] module reset detected: [name] has unloaded the [first_arg].
") if(ROBOT_NOTIFICATION_NEW_NAME) //New Name if(first_arg != second_arg) - to_chat(connected_ai, "

NOTICE - [braintype] reclassification detected: [first_arg] is now designated as [second_arg].
") + to_chat(connected_ai, "

NOTICE - [braintype] reclassification detected: [first_arg] is now designated as [second_arg].
") if(ROBOT_NOTIFICATION_AI_SHELL) //New Shell - to_chat(connected_ai, "

NOTICE - New AI shell detected: [name]
") + to_chat(connected_ai, "

NOTICE - New AI shell detected: [name]
") /mob/living/silicon/robot/proc/disconnect_from_ai() if(connected_ai) @@ -1152,29 +1152,29 @@ if(!opened)//Cover is closed if(locked) if(prob(90)) - to_chat(user, "You emag the cover lock.") + to_chat(user, "You emag the cover lock.") locked = 0 else - to_chat(user, "You fail to emag the cover lock.") - to_chat(src, "Hack attempt detected.") + to_chat(user, "You fail to emag the cover lock.") + to_chat(src, "Hack attempt detected.") if(shell) // A warning to Traitors who may not know that emagging AI shells does not slave them. - to_chat(user, span("warning", "[src] seems to be controlled remotely! Emagging the interface may not work as expected.")) + to_chat(user, "[src] seems to be controlled remotely! Emagging the interface may not work as expected.") return 1 else - to_chat(user, "The cover is already unlocked.") + to_chat(user, "The cover is already unlocked.") return if(opened)//Cover is open if(emagged) return//Prevents the X has hit Y with Z message also you cant emag them twice if(wiresexposed) - to_chat(user, "You must close the panel first") + to_chat(user, "You must close the panel first.") return // The block of code below is from TG. Feel free to replace with a better result if desired. if(shell) // AI shells cannot be emagged, so we try to make it look like a standard reset. Smart players may see through this, however. - to_chat(user, span("danger", "[src] is remotely controlled! Your emag attempt has triggered a system reset instead!")) + to_chat(user, "[src] is remotely controlled! Your emag attempt has triggered a system reset instead!") log_game("[key_name(user)] attempted to emag an AI shell belonging to [key_name(src) ? key_name(src) : connected_ai]. The shell has been reset as a result.") module_reset() return @@ -1184,7 +1184,7 @@ emagged = 1 lawupdate = 0 disconnect_from_ai() - to_chat(user, "You emag [src]'s interface.") + to_chat(user, "You emag [src]'s interface.") message_admins("[key_name_admin(user)] emagged cyborg [key_name_admin(src)]. Laws overridden.") log_game("[key_name(user)] emagged cyborg [key_name(src)]. Laws overridden.") clear_supplied_laws() @@ -1219,8 +1219,8 @@ to_chat(src, "ALERT: [user.real_name] is your new master. Obey your new laws and [TU.his] commands.") updateicon() else - to_chat(user, "You fail to hack [src]'s interface.") - to_chat(src, "Hack attempt detected.") + to_chat(user, "You fail to hack [src]'s interface.") + to_chat(src, "Hack attempt detected.") return 1 return diff --git a/code/modules/mob/living/silicon/robot/robot_damage.dm b/code/modules/mob/living/silicon/robot/robot_damage.dm index 0bad703cfa..82c5edd414 100644 --- a/code/modules/mob/living/silicon/robot/robot_damage.dm +++ b/code/modules/mob/living/silicon/robot/robot_damage.dm @@ -79,11 +79,11 @@ cell.charge -= cost if(cell.charge <= 0) cell.charge = 0 - to_chat(src, "Your shield has overloaded!") + to_chat(src, "Your shield has overloaded!") else brute -= absorb_brute burn -= absorb_burn - to_chat(src, "Your shield absorbs some of the impact!") + to_chat(src, "Your shield absorbs some of the impact!") if(!emp) var/datum/robot_component/armour/A = get_armour() @@ -126,11 +126,11 @@ cell.charge -= cost if(cell.charge <= 0) cell.charge = 0 - to_chat(src, "Your shield has overloaded!") + to_chat(src, "Your shield has overloaded!") else brute -= absorb_brute burn -= absorb_burn - to_chat(src, "Your shield absorbs some of the impact!") + to_chat(src, "Your shield absorbs some of the impact!") var/datum/robot_component/armour/A = get_armour() if(A) diff --git a/code/modules/mob/living/silicon/robot/robot_items.dm b/code/modules/mob/living/silicon/robot/robot_items.dm index 1249a2da57..7b4f95cbc1 100644 --- a/code/modules/mob/living/silicon/robot/robot_items.dm +++ b/code/modules/mob/living/silicon/robot/robot_items.dm @@ -25,12 +25,15 @@ if(loaded_item) var/confirm = tgui_alert(user, "This will destroy the item inside forever. Are you sure?","Confirm Analyze",list("Yes","No")) if(confirm == "Yes" && !QDELETED(loaded_item)) //This is pretty copypasta-y - to_chat(user, "You activate the analyzer's microlaser, analyzing \the [loaded_item] and breaking it down.") + to_chat(user, "You activate the analyzer's microlaser, analyzing \the [loaded_item] and breaking it down.") flick("portable_analyzer_scan", src) playsound(src, 'sound/items/Welder2.ogg', 50, 1) + var/research_levels = list() for(var/T in loaded_item.origin_tech) files.UpdateTech(T, loaded_item.origin_tech[T]) - to_chat(user, "\The [loaded_item] had level [loaded_item.origin_tech[T]] in [CallTechName(T)].") + research_levels += "\The [loaded_item] had level [loaded_item.origin_tech[T]] in [CallTechName(T)]." + if (length(research_levels)) + to_chat(user, "[jointext(research_levels,"
")]
") loaded_item = null for(var/obj/I in contents) for(var/mob/M in I.contents) @@ -51,7 +54,7 @@ else return else - to_chat(user, "The [src] is empty. Put something inside it first.") + to_chat(user, "The [src] is empty. Put something inside it first.") if(response == "Sync") var/success = 0 for(var/obj/machinery/r_n_d/server/S in machines) @@ -62,10 +65,10 @@ success = 1 files.RefreshResearch() if(success) - to_chat(user, "You connect to the research server, push your data upstream to it, then pull the resulting merged data from the master branch.") + to_chat(user, "You connect to the research server, push your data upstream to it, then pull the resulting merged data from the master branch.") playsound(src, 'sound/machines/twobeep.ogg', 50, 1) else - to_chat(user, "Reserch server ping response timed out. Unable to connect. Please contact the system administrator.") + to_chat(user, "Reserch server ping response timed out. Unable to connect. Please contact the system administrator.") playsound(src, 'sound/machines/buzz-two.ogg', 50, 1) if(response == "Eject") if(loaded_item) @@ -74,7 +77,7 @@ icon_state = initial(icon_state) loaded_item = null else - to_chat(user, "The [src] is already empty.") + to_chat(user, "The [src] is already empty.") /obj/item/weapon/portable_destructive_analyzer/afterattack(var/atom/target, var/mob/living/user, proximity) @@ -86,13 +89,13 @@ return if(istype(target,/obj/item)) if(loaded_item) - to_chat(user, "Your [src] already has something inside. Analyze or eject it first.") + to_chat(user, "Your [src] already has something inside. Analyze or eject it first.") return var/obj/item/I = target I.loc = src loaded_item = I for(var/mob/M in viewers()) - M.show_message(text("[user] adds the [I] to the [src]."), 1) + M.show_message("[user] adds the [I] to the [src].", 1) desc = initial(desc) + "
It is holding \the [loaded_item]." flick("portable_analyzer_load", src) icon_state = "portable_analyzer_full" @@ -171,7 +174,7 @@ else if(T.dead) //It's probably dead otherwise. T.remove_dead(user) else - to_chat(user, "Harvesting \a [target] is not the purpose of this tool. [src] is for plants being grown.") + to_chat(user, "Harvesting \a [target] is not the purpose of this tool. [src] is for plants being grown.") // A special tray for the service droid. Allow droid to pick up and drop items as if they were using the tray normally // Click on table to unload, click on item to load. Otherwise works identically to a tray. @@ -214,7 +217,7 @@ add_overlay(image("icon" = I.icon, "icon_state" = I.icon_state, "layer" = 30 + I.layer)) addedSomething = 1 if ( addedSomething ) - user.visible_message("[user] loads some items onto their service tray.") + user.visible_message("[user] loads some items onto their service tray.") return @@ -254,9 +257,9 @@ sleep(rand(2,4)) if ( droppedSomething ) if ( foundtable ) - user.visible_message("[user] unloads their service tray.") + user.visible_message("[user] unloads their service tray.") else - user.visible_message("[user] drops all the items on their tray.") + user.visible_message("[user] drops all the items on their tray.") return ..() @@ -290,7 +293,7 @@ mode = 2 else mode = 1 - to_chat(user, "Changed printing mode to '[mode == 2 ? "Rename Paper" : "Write Paper"]'") + to_chat(user, "Changed printing mode to '[mode == 2 ? "Rename Paper" : "Write Paper"]'") return @@ -337,9 +340,15 @@ /obj/item/weapon/form_printer/attack_self(mob/user as mob) deploy_paper(get_turf(src)) +<<<<<<< HEAD /obj/item/weapon/form_printer/proc/deploy_paper(var/turf/T) T.visible_message("\The [src.loc] dispenses a sheet of crisp white paper.") new /obj/item/weapon/paper(T) +======= +/obj/item/form_printer/proc/deploy_paper(var/turf/T) + T.visible_message("\The [src.loc] dispenses a sheet of crisp white paper.") + new /obj/item/paper(T) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) //Personal shielding for the combat module. @@ -378,7 +387,7 @@ overload_time = 0 var/mob/living/user = src.loc - user.visible_message("[user]'s shield reactivates!", "Your shield reactivates!.") + user.visible_message("[user]'s shield reactivates!", "Your shield reactivates!") user.update_icon() /obj/item/borg/combat/shield/proc/adjust_flash_count(var/mob/living/user, amount) @@ -392,7 +401,7 @@ /obj/item/borg/combat/shield/proc/overload(var/mob/living/user) active = 0 - user.visible_message("[user]'s shield destabilizes!", "Your shield destabilizes!.") + user.visible_message("[user]'s shield destabilizes!", "Your shield destabilizes!") user.update_icon() overload_time = world.time @@ -438,7 +447,7 @@ /obj/item/weapon/inflatable_dispenser/attack_self() mode = !mode - to_chat(usr, "You set \the [src] to deploy [mode ? "doors" : "walls"].") + to_chat(usr, "You set \the [src] to deploy [mode ? "doors" : "walls"].") /obj/item/weapon/inflatable_dispenser/afterattack(var/atom/A, var/mob/user) ..(A, user) @@ -455,7 +464,7 @@ /obj/item/weapon/inflatable_dispenser/proc/try_deploy_inflatable(var/turf/T, var/mob/living/user) if(mode) // Door deployment if(!stored_doors) - to_chat(user, "\The [src] is out of doors!") + to_chat(user, "\The [src] is out of doors!") return if(T && istype(T)) @@ -464,7 +473,7 @@ else // Wall deployment if(!stored_walls) - to_chat(user, "\The [src] is out of walls!") + to_chat(user, "\The [src] is out of walls!") return if(T && istype(T)) @@ -472,40 +481,40 @@ stored_walls-- playsound(T, 'sound/items/zip.ogg', 75, 1) - to_chat(user, "You deploy the inflatable [mode ? "door" : "wall"]!") + to_chat(user, "You deploy the inflatable [mode ? "door" : "wall"]!") /obj/item/weapon/inflatable_dispenser/proc/pick_up(var/obj/A, var/mob/living/user) if(istype(A, /obj/structure/inflatable)) if(!istype(A, /obj/structure/inflatable/door)) if(stored_walls >= max_walls) - to_chat(user, "\The [src] is full.") + to_chat(user, "\The [src] is full.") return stored_walls++ qdel(A) else if(stored_doors >= max_doors) - to_chat(user, "\The [src] is full.") + to_chat(user, "\The [src] is full.") return stored_doors++ qdel(A) playsound(src, 'sound/machines/hiss.ogg', 75, 1) - visible_message("\The [user] deflates \the [A] with \the [src]!") + visible_message("\The [user] deflates \the [A] with \the [src]!") return if(istype(A, /obj/item/inflatable)) if(!istype(A, /obj/item/inflatable/door)) if(stored_walls >= max_walls) - to_chat(user, "\The [src] is full.") + to_chat(user, "\The [src] is full.") return stored_walls++ qdel(A) else if(stored_doors >= max_doors) - to_chat(usr, "\The [src] is full!") + to_chat(usr, "\The [src] is full!") return stored_doors++ qdel(A) - visible_message("\The [user] picks up \the [A] with \the [src]!") + visible_message("\The [user] picks up \the [A] with \the [src]!") return - to_chat(user, "You fail to pick up \the [A] with \the [src]") + to_chat(user, "You fail to pick up \the [A] with \the [src].") return diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm index daa144bf89..befdd8e277 100644 --- a/code/modules/mob/living/silicon/say.dm +++ b/code/modules/mob/living/silicon/say.dm @@ -73,9 +73,9 @@ /*Radios "filter out" this conversation channel so we don't need to account for them. This is another way of saying that we won't bother dealing with them.*/ var/list/combined = combine_message(message_pieces, verb, src) - to_chat(src, "Holopad transmitted, [real_name] [combined["formatted"]]") + to_chat(src, "Holopad transmitted, [real_name] [combined["formatted"]]") else - to_chat(src, "No holopad connected.") + to_chat(src, "No holopad connected.") return 0 return 1 @@ -88,10 +88,15 @@ var/obj/machinery/hologram/holopad/T = src.holo if(T && T.masters[src]) var/rendered = "[name] [message]" +<<<<<<< HEAD to_chat(src, "Holopad action relayed, [real_name] [message]") var/obj/effect/overlay/aiholo/hologram = T.masters[src] //VOREStation Add for people in the hologram to hear the messages //var/obj/effect/overlay/hologram = T.masters[src] //VOREStation edit. Done above. +======= + to_chat(src, "Holopad action relayed, [real_name] [message]") + var/obj/effect/overlay/hologram = T.masters[src] +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) var/list/in_range = get_mobs_and_objs_in_view_fast(get_turf(hologram), world.view, 2) //Emotes are displayed from the hologram, not the pad var/list/m_viewers = in_range["mobs"] var/list/o_viewers = in_range["objs"] @@ -111,7 +116,7 @@ log_emote("(HPAD) [message]", src) else //This shouldn't occur, but better safe then sorry. - to_chat(src, "No holopad connected.") + to_chat(src, "No holopad connected.") return 0 return 1 diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index d014bf30b4..a9f5eecc41 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -223,6 +223,7 @@ var/synth = (L in speech_synthesizer_langs) . += "[L.name] ([get_language_prefix()][L.key])[synth ? default_str : null]
Speech Synthesizer: [synth ? "YES" : "NOT SUPPORTED"]
[L.desc]

" +<<<<<<< HEAD /mob/living/silicon/proc/toggle_sensor_mode() //VOREStation Add to make borgs use omni starts here - Tank, clueless bird if(sensor_type) if(plane_holder) @@ -253,6 +254,54 @@ //hudmode = sensor_type //This is checked in examine.dm on humans, so they can see medical/security records depending on mode //I made it work like omnis with records by adding stuff to examine.dm //VOREStation Add ends here +======= +/mob/living/silicon/proc/toggle_sensor_mode() + var/sensor_type = input("Please select sensor type.", "Sensor Integration", null) in list("Security","Medical","Disable") + switch(sensor_type) + if ("Security") + if(plane_holder) + //Enable Security planes + plane_holder.set_vis(VIS_CH_ID,TRUE) + plane_holder.set_vis(VIS_CH_WANTED,TRUE) + plane_holder.set_vis(VIS_CH_IMPLOYAL,TRUE) + plane_holder.set_vis(VIS_CH_IMPTRACK,TRUE) + plane_holder.set_vis(VIS_CH_IMPCHEM,TRUE) + + //Disable Medical planes + plane_holder.set_vis(VIS_CH_STATUS,FALSE) + plane_holder.set_vis(VIS_CH_HEALTH,FALSE) + + to_chat(src, "Security records overlay enabled.") + if ("Medical") + if(plane_holder) + //Disable Security planes + plane_holder.set_vis(VIS_CH_ID,FALSE) + plane_holder.set_vis(VIS_CH_WANTED,FALSE) + plane_holder.set_vis(VIS_CH_IMPLOYAL,FALSE) + plane_holder.set_vis(VIS_CH_IMPTRACK,FALSE) + plane_holder.set_vis(VIS_CH_IMPCHEM,FALSE) + + //Enable Medical planes + plane_holder.set_vis(VIS_CH_STATUS,TRUE) + plane_holder.set_vis(VIS_CH_HEALTH,TRUE) + + to_chat(src, "Life signs monitor overlay enabled.") + if ("Disable") + if(plane_holder) + //Disable Security planes + plane_holder.set_vis(VIS_CH_ID,FALSE) + plane_holder.set_vis(VIS_CH_WANTED,FALSE) + plane_holder.set_vis(VIS_CH_IMPLOYAL,FALSE) + plane_holder.set_vis(VIS_CH_IMPTRACK,FALSE) + plane_holder.set_vis(VIS_CH_IMPCHEM,FALSE) + + //Disable Medical planes + plane_holder.set_vis(VIS_CH_STATUS,FALSE) + plane_holder.set_vis(VIS_CH_HEALTH,FALSE) + to_chat(src, "Sensor augmentations disabled.") + + hudmode = sensor_type //This is checked in examine.dm on humans, so they can see medical/security records depending on mode +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) /mob/living/silicon/verb/pose() set name = "Set Pose" @@ -348,20 +397,20 @@ to_chat(src, "\The [A.alarm_name()].") if(alarm_raised) - to_chat(src, "\[Show Alerts\]") + to_chat(src, "\[Show Alerts\]") for(var/datum/alarm_handler/AH in queued_alarms) var/list/alarms = queued_alarms[AH] alarms.Cut() /mob/living/silicon/proc/raised_alarm(var/datum/alarm/A) - to_chat(src, "[A.alarm_name()]!") + to_chat(src, "[A.alarm_name()]!") /mob/living/silicon/ai/raised_alarm(var/datum/alarm/A) var/cameratext = "" for(var/obj/machinery/camera/C in A.cameras()) cameratext += "[(cameratext == "")? "" : "|"][C.c_tag]" - to_chat(src, "[A.alarm_name()]! ([(cameratext)? cameratext : "No Camera"])") + to_chat(src, "[A.alarm_name()]! ([(cameratext)? cameratext : "No Camera"])") /mob/living/silicon/proc/is_traitor() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 6f22e803a1..80dc362209 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -66,7 +66,7 @@ return // Added voice muffling for Issue 41. if(stat == UNCONSCIOUS || sleeping > 0) - to_chat(src, "... You can almost hear someone talking ...") + to_chat(src, "... You can almost hear someone talking ...") else to_chat(src,msg) if(teleop) @@ -300,8 +300,8 @@ /mob/proc/warn_flavor_changed() if(flavor_text && flavor_text != "") // don't spam people that don't use it! - to_chat(src, "

OOC Warning:

") - to_chat(src, "Your flavor text is likely out of date! Change") + to_chat(src, "

OOC Warning:

") + to_chat(src, "Your flavor text is likely out of date! Change") /mob/proc/print_flavor_text() if (flavor_text && flavor_text != "") @@ -447,7 +447,7 @@ if(client.holder && (client.holder.rights & R_ADMIN|R_EVENT)) is_admin = 1 else if(stat != DEAD || istype(src, /mob/new_player)) - to_chat(usr, "You must be observing to use this!") + to_chat(usr, "You must be observing to use this!") return if(is_admin && stat == DEAD) @@ -598,7 +598,7 @@ playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 25) //Quieter than hugging/grabbing but we still want some audio feedback if(H.pull_damage()) - to_chat(src, "Pulling \the [H] in their current condition would probably be a bad idea.") + to_chat(src, "Pulling \the [H] in their current condition would probably be a bad idea.") //Attempted fix for people flying away through space when cuffed and dragged. if(ismob(AM)) @@ -909,11 +909,11 @@ usr.setClickCooldown(20) if(usr.stat == 1) - to_chat(usr, "You are unconcious and cannot do that!") + to_chat(usr, "You are unconcious and cannot do that!") return if(usr.restrained()) - to_chat(usr, "You are restrained and cannot do that!") + to_chat(usr, "You are restrained and cannot do that!") return var/mob/S = src @@ -927,9 +927,9 @@ valid_objects = get_visible_implants(0) if(!valid_objects.len) if(self) - to_chat(src, "You have nothing stuck in your body that is large enough to remove.") + to_chat(src, "You have nothing stuck in your body that is large enough to remove.") else - to_chat(U, "[src] has nothing stuck in their wounds that is large enough to remove.") + to_chat(U, "[src] has nothing stuck in their wounds that is large enough to remove.") return var/obj/item/weapon/selection = tgui_input_list(usr, "What do you want to yank out?", "Embedded objects", valid_objects) @@ -1017,9 +1017,9 @@ set_face_dir() if(!facing_dir) - to_chat(usr, "You are now not facing anything.") + to_chat(usr, "You are now not facing anything.") else - to_chat(usr, "You are now facing [dir2text(facing_dir)].") + to_chat(usr, "You are now facing [dir2text(facing_dir)].") /mob/proc/set_face_dir(var/newdir) if(newdir == facing_dir) diff --git a/code/modules/multiz/movement.dm b/code/modules/multiz/movement.dm index 9001505ce1..5b6d688d13 100644 --- a/code/modules/multiz/movement.dm +++ b/code/modules/multiz/movement.dm @@ -398,7 +398,7 @@ /atom/movable/proc/find_fall_target(var/turf/oldloc, var/turf/landing) if(isopenspace(oldloc)) - oldloc.visible_message("\The [src] falls down through \the [oldloc]!", "You hear something falling through the air.") + oldloc.visible_message("\The [src] falls down through \the [oldloc]!", "You hear something falling through the air.") // If the turf has density, we give it first dibs if (landing.density && landing.CheckFall(src)) diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index 9cf8d4d338..2c370300da 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -158,9 +158,9 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid). materials[S.material.name] += amnt S.use(1) count++ - to_chat(user, "You insert [count] [sname] into the fabricator.") + to_chat(user, "You insert [count] [sname] into the fabricator.") else - to_chat(user, "The fabricator cannot hold more [sname].") + to_chat(user, "The fabricator cannot hold more [sname].") busy = 0 updateUsrDialog() diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index e77708d51a..4a53dcb9d9 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -143,7 +143,7 @@ var/global/list/obj/machinery/message_server/message_servers = list() /obj/machinery/message_server/attack_hand(user as mob) // to_chat(user, "There seem to be some parts missing from this server. They should arrive on the station in a few days, give or take a few CentCom delays.") - to_chat(user, "You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"]") + to_chat(user, "You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"].") active = !active update_icon() @@ -155,7 +155,7 @@ var/global/list/obj/machinery/message_server/message_servers = list() spamfilter_limit += round(MESSAGE_SERVER_DEFAULT_SPAM_LIMIT / 2) user.drop_item() qdel(O) - to_chat(user, "You install additional memory and processors into message server. Its filtering capabilities been enhanced.") + to_chat(user, "You install additional memory and processors into message server. Its filtering capabilities been enhanced.") else ..(O, user) diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index 7a5b17dca4..3ff0237627 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -168,9 +168,9 @@ materials[S.material.name] += amnt S.use(1) count++ - to_chat(user, "You insert [count] [sname] into the fabricator.") + to_chat(user, "You insert [count] [sname] into the fabricator.") else - to_chat(user, "The fabricator cannot hold more [sname].") + to_chat(user, "The fabricator cannot hold more [sname].") busy = 0 var/stacktype = S.type diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 3d58a40b16..9c517e4b08 100755 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -119,7 +119,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, //Loading a disk into it. if(istype(D, /obj/item/weapon/disk)) if(t_disk || d_disk) - to_chat(user, "A disk is already loaded into the machine.") + to_chat(user, "A disk is already loaded into the machine.") return if(istype(D, /obj/item/weapon/disk/tech_disk)) diff --git a/code/modules/surgery/encased.dm b/code/modules/surgery/encased.dm index c172b9bc44..743363fa44 100644 --- a/code/modules/surgery/encased.dm +++ b/code/modules/surgery/encased.dm @@ -42,8 +42,8 @@ return var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] begins to cut through [target]'s [affected.encased] with \the [tool].", \ - "You begin to cut through [target]'s [affected.encased] with \the [tool].") + user.visible_message("[user] begins to cut through [target]'s [affected.encased] with \the [tool].", \ + "You begin to cut through [target]'s [affected.encased] with \the [tool].") target.custom_pain("Something hurts horribly in your [affected.name]!", 60) ..() @@ -93,8 +93,8 @@ return var/obj/item/organ/external/affected = target.get_organ(target_zone) - var/msg = "[user] starts to force open the [affected.encased] in [target]'s [affected.name] with \the [tool]." - var/self_msg = "You start to force open the [affected.encased] in [target]'s [affected.name] with \the [tool]." + var/msg = "[user] starts to force open the [affected.encased] in [target]'s [affected.name] with \the [tool]." + var/self_msg = "You start to force open the [affected.encased] in [target]'s [affected.name] with \the [tool]." user.visible_message(msg, self_msg) target.custom_pain("Something hurts horribly in your [affected.name]!", 40) ..() @@ -147,8 +147,8 @@ return var/obj/item/organ/external/affected = target.get_organ(target_zone) - var/msg = "[user] starts bending [target]'s [affected.encased] back into place with \the [tool]." - var/self_msg = "You start bending [target]'s [affected.encased] back into place with \the [tool]." + var/msg = "[user] starts bending [target]'s [affected.encased] back into place with \the [tool]." + var/self_msg = "You start bending [target]'s [affected.encased] back into place with \the [tool]." user.visible_message(msg, self_msg) target.custom_pain("Something hurts horribly in your [affected.name]!", 100) ..() @@ -206,8 +206,8 @@ return var/obj/item/organ/external/affected = target.get_organ(target_zone) - var/msg = "[user] starts applying \the [tool] to [target]'s [affected.encased]." - var/self_msg = "You start applying \the [tool] to [target]'s [affected.encased]." + var/msg = "[user] starts applying \the [tool] to [target]'s [affected.encased]." + var/self_msg = "You start applying \the [tool] to [target]'s [affected.encased]." user.visible_message(msg, self_msg) target.custom_pain("Something hurts horribly in your [affected.name]!", 100) ..() @@ -249,8 +249,8 @@ return var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] begins to open [target]'s [affected.encased] with \the [tool].", \ - "You begin to open [target]'s [affected.encased] with \the [tool].") + user.visible_message("[user] begins to open [target]'s [affected.encased] with \the [tool].", \ + "You begin to open [target]'s [affected.encased] with \the [tool].") target.custom_pain("Something hurts horribly in your [affected.name]!", 60) ..() @@ -299,8 +299,8 @@ return var/obj/item/organ/external/affected = target.get_organ(target_zone) - var/msg = "[user] starts sealing \the [target]'s [affected.encased] with \the [tool]." - var/self_msg = "You start sealing \the [target]'s [affected.encased] with \the [tool]." + var/msg = "[user] starts sealing \the [target]'s [affected.encased] with \the [tool]." + var/self_msg = "You start sealing \the [target]'s [affected.encased] with \the [tool]." user.visible_message(msg, self_msg) target.custom_pain("Something hurts horribly in your [affected.name]!", 100) ..() diff --git a/code/modules/surgery/face.dm b/code/modules/surgery/face.dm index 9ecef80252..3059b02176 100644 --- a/code/modules/surgery/face.dm +++ b/code/modules/surgery/face.dm @@ -38,8 +38,8 @@ return ..() && target_zone == O_MOUTH && target.op_stage.face == 0 /datum/surgery_step/generic/cut_face/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] starts to cut open [target]'s face and neck with \the [tool].", \ - "You start to cut open [target]'s face and neck with \the [tool].") + user.visible_message("[user] starts to cut open [target]'s face and neck with \the [tool].", \ + "You start to cut open [target]'s face and neck with \the [tool].") ..() /datum/surgery_step/generic/cut_face/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -73,8 +73,8 @@ return ..() && target.op_stage.face == 1 /datum/surgery_step/face/mend_vocal/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] starts mending [target]'s vocal cords with \the [tool].", \ - "You start mending [target]'s vocal cords with \the [tool].") + user.visible_message("[user] starts mending [target]'s vocal cords with \the [tool].", \ + "You start mending [target]'s vocal cords with \the [tool].") ..() /datum/surgery_step/face/mend_vocal/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -107,8 +107,8 @@ return ..() && target.op_stage.face == 2 /datum/surgery_step/face/fix_face/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] starts pulling the skin on [target]'s face back in place with \the [tool].", \ - "You start pulling the skin on [target]'s face back in place with \the [tool].") + user.visible_message("[user] starts pulling the skin on [target]'s face back in place with \the [tool].", \ + "You start pulling the skin on [target]'s face back in place with \the [tool].") ..() /datum/surgery_step/face/fix_face/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm index 8f25b42328..5410b9e63a 100644 --- a/code/modules/surgery/generic.dm +++ b/code/modules/surgery/generic.dm @@ -47,8 +47,8 @@ /datum/surgery_step/generic/cut_open/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] starts the incision on [target]'s [affected.name] with \the [tool].", \ - "You start the incision on [target]'s [affected.name] with \the [tool].") + user.visible_message("[user] starts the incision on [target]'s [affected.name] with \the [tool].", \ + "You start the incision on [target]'s [affected.name] with \the [tool].") target.custom_pain("You feel a horrible pain as if from a sharp knife in your [affected.name]!", 40) ..() @@ -94,8 +94,8 @@ /datum/surgery_step/generic/cut_with_laser/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] starts the bloodless incision on [target]'s [affected.name] with \the [tool].", \ - "You start the bloodless incision on [target]'s [affected.name] with \the [tool].") + user.visible_message("[user] starts the bloodless incision on [target]'s [affected.name] with \the [tool].", \ + "You start the bloodless incision on [target]'s [affected.name] with \the [tool].") target.custom_pain("You feel a horrible, searing pain in your [affected.name]!", 50) ..() @@ -152,8 +152,8 @@ /datum/surgery_step/generic/incision_manager/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] starts to construct a prepared incision on and within [target]'s [affected.name] with \the [tool].", \ - "You start to construct a prepared incision on and within [target]'s [affected.name] with \the [tool].") + user.visible_message("[user] starts to construct a prepared incision on and within [target]'s [affected.name] with \the [tool].", \ + "You start to construct a prepared incision on and within [target]'s [affected.name] with \the [tool].") target.custom_pain("You feel a horrible, searing pain in your [affected.name] as it is pushed apart!", 50) ..() @@ -199,8 +199,8 @@ /datum/surgery_step/generic/clamp_bleeders/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] starts clamping bleeders in [target]'s [affected.name] with \the [tool].", \ - "You start clamping bleeders in [target]'s [affected.name] with \the [tool].") + user.visible_message("[user] starts clamping bleeders in [target]'s [affected.name] with \the [tool].", \ + "You start clamping bleeders in [target]'s [affected.name] with \the [tool].") target.custom_pain("The pain in your [affected.name] is maddening!", 40) ..() @@ -248,7 +248,7 @@ if (target_zone == BP_GROIN) msg = "[user] starts to pry open the incision and rearrange the organs in [target]'s lower abdomen with \the [tool]." self_msg = "You start to pry open the incision and rearrange the organs in [target]'s lower abdomen with \the [tool]." - user.visible_message(msg, self_msg) + user.visible_message("[msg]", "[self_msg]") target.custom_pain("It feels like the skin on your [affected.name] is on fire!", 40) ..() @@ -301,8 +301,8 @@ /datum/surgery_step/generic/cauterize/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] is beginning to cauterize the incision on [target]'s [affected.name] with \the [tool]." , \ - "You are beginning to cauterize the incision on [target]'s [affected.name] with \the [tool].") + user.visible_message("[user] is beginning to cauterize the incision on [target]'s [affected.name] with \the [tool]." , \ + "You are beginning to cauterize the incision on [target]'s [affected.name] with \the [tool].") target.custom_pain("Your [affected.name] is being burned!", 40) ..() @@ -347,8 +347,8 @@ /datum/surgery_step/generic/amputate/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] is beginning to amputate [target]'s [affected.name] with \the [tool]." , \ - "You are beginning to cut through [target]'s [affected.amputation_point] with \the [tool].") + user.visible_message("[user] is beginning to amputate [target]'s [affected.name] with \the [tool]." , \ + "You are beginning to cut through [target]'s [affected.amputation_point] with \the [tool].") target.custom_pain("Your [affected.amputation_point] is being ripped apart!", 100) ..() diff --git a/code/modules/surgery/implant.dm b/code/modules/surgery/implant.dm index c3c2496cfd..991aa4cecc 100644 --- a/code/modules/surgery/implant.dm +++ b/code/modules/surgery/implant.dm @@ -64,8 +64,8 @@ /datum/surgery_step/cavity/make_space/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] starts making some space inside [target]'s [get_cavity(affected)] cavity with \the [tool].", \ - "You start making some space inside [target]'s [get_cavity(affected)] cavity with \the [tool]." ) + user.visible_message("[user] starts making some space inside [target]'s [get_cavity(affected)] cavity with \the [tool].", \ + "You start making some space inside [target]'s [get_cavity(affected)] cavity with \the [tool]." ) target.custom_pain("The pain in your chest is living hell!",1) affected.cavity = 1 ..() @@ -99,8 +99,8 @@ /datum/surgery_step/cavity/close_space/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] starts mending [target]'s [get_cavity(affected)] cavity wall with \the [tool].", \ - "You start mending [target]'s [get_cavity(affected)] cavity wall with \the [tool]." ) + user.visible_message("[user] starts mending [target]'s [get_cavity(affected)] cavity wall with \the [tool].", \ + "You start mending [target]'s [get_cavity(affected)] cavity wall with \the [tool]." ) target.custom_pain("The pain in your chest is living hell!",1) affected.cavity = 0 ..() diff --git a/code/modules/surgery/limb_reattach.dm b/code/modules/surgery/limb_reattach.dm index 56c0ccccc1..a898d4447d 100644 --- a/code/modules/surgery/limb_reattach.dm +++ b/code/modules/surgery/limb_reattach.dm @@ -52,8 +52,8 @@ /datum/surgery_step/limb/attach/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/E = tool - user.visible_message("[user] starts attaching [E.name] to [target]'s [E.amputation_point].", \ - "You start attaching [E.name] to [target]'s [E.amputation_point].") + user.visible_message("[user] starts attaching [E.name] to [target]'s [E.amputation_point].", \ + "You start attaching [E.name] to [target]'s [E.amputation_point].") /datum/surgery_step/limb/attach/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/E = tool @@ -100,8 +100,8 @@ /datum/surgery_step/limb/connect/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/E = target.get_organ(target_zone) - user.visible_message("[user] starts connecting tendons and muscles in [target]'s [E.amputation_point] with [tool].", \ - "You start connecting tendons and muscle in [target]'s [E.amputation_point].") + user.visible_message("[user] starts connecting tendons and muscles in [target]'s [E.amputation_point] with [tool].", \ + "You start connecting tendons and muscle in [target]'s [E.amputation_point].") /datum/surgery_step/limb/connect/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/E = target.get_organ(target_zone) @@ -138,8 +138,8 @@ return isnull(target.get_organ(target_zone)) /datum/surgery_step/limb/mechanize/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] starts attaching \the [tool] to [target].", \ - "You start attaching \the [tool] to [target].") + user.visible_message("[user] starts attaching \the [tool] to [target].", \ + "You start attaching \the [tool] to [target].") /datum/surgery_step/limb/mechanize/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/robot_parts/L = tool diff --git a/code/modules/surgery/neck.dm b/code/modules/surgery/neck.dm index 5b59075612..3fc4e00052 100644 --- a/code/modules/surgery/neck.dm +++ b/code/modules/surgery/neck.dm @@ -38,8 +38,8 @@ return ..() && target_zone == BP_HEAD && target.op_stage.brainstem == 0 /datum/surgery_step/brainstem/mend_vessels/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] starts to mend the blood vessels on [target]'s brainstem with \the [tool].", \ - "You start to mend the blood vessels on [target]'s brainstem with \the [tool].") + user.visible_message("[user] starts to mend the blood vessels on [target]'s brainstem with \the [tool].", \ + "You start to mend the blood vessels on [target]'s brainstem with \the [tool].") ..() /datum/surgery_step/brainstem/mend_vessels/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -76,8 +76,8 @@ return ..() && target_zone == BP_HEAD && target.op_stage.brainstem == 1 /datum/surgery_step/brainstem/drill_vertebrae/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] starts to drill around [target]'s brainstem with \the [tool].", \ - "You start to drill around [target]'s brainstem with \the [tool].") + user.visible_message("[user] starts to drill around [target]'s brainstem with \the [tool].", \ + "You start to drill around [target]'s brainstem with \the [tool].") ..() /datum/surgery_step/brainstem/drill_vertebrae/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -118,8 +118,8 @@ return ..() && target_zone == BP_HEAD && target.op_stage.brainstem == 2 /datum/surgery_step/brainstem/clean_chips/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] starts to pick around [target]'s brainstem for bone chips with \the [tool].", \ - "You start to pick around [target]'s brainstem for bone chips with \the [tool].") + user.visible_message("[user] starts to pick around [target]'s brainstem for bone chips with \the [tool].", \ + "You start to pick around [target]'s brainstem for bone chips with \the [tool].") ..() /datum/surgery_step/brainstem/clean_chips/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -158,8 +158,8 @@ return ..() && target_zone == BP_HEAD && target.op_stage.brainstem == 3 /datum/surgery_step/brainstem/mend_cord/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] starts to fuse [target]'s spinal cord with \the [tool].", \ - "You start to fuse [target]'s spinal cord with \the [tool].") + user.visible_message("[user] starts to fuse [target]'s spinal cord with \the [tool].", \ + "You start to fuse [target]'s spinal cord with \the [tool].") ..() /datum/surgery_step/brainstem/mend_cord/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -198,8 +198,8 @@ return ..() && target_zone == BP_HEAD && target.op_stage.brainstem == 4 /datum/surgery_step/brainstem/mend_vertebrae/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] starts to mend [target]'s opened vertebrae with \the [tool].", \ - "You start to mend [target]'s opened vertebrae with \the [tool].") + user.visible_message("[user] starts to mend [target]'s opened vertebrae with \the [tool].", \ + "You start to mend [target]'s opened vertebrae with \the [tool].") ..() /datum/surgery_step/brainstem/mend_vertebrae/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -238,8 +238,8 @@ return ..() && target_zone == BP_HEAD && target.op_stage.brainstem == 5 /datum/surgery_step/brainstem/realign_tissue/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] starts to realign the tissues in [target]'s skull with \the [tool].", \ - "You start to realign the tissues in [target]'s skull with \the [tool].") + user.visible_message("[user] starts to realign the tissues in [target]'s skull with \the [tool].", \ + "You start to realign the tissues in [target]'s skull with \the [tool].") ..() /datum/surgery_step/brainstem/realign_tissue/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index e92010f8d3..c2e500503b 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -56,8 +56,8 @@ for(var/obj/item/organ/I in affected.internal_organs) if(I && (I.damage > 0 || I.status == ORGAN_DEAD)) if(!(I.robotic >= ORGAN_ROBOT)) - user.visible_message("[user] starts treating damage to [target]'s [I.name] with [tool_name].", \ - "You start treating damage to [target]'s [I.name] with [tool_name]." ) + user.visible_message("[user] starts treating damage to [target]'s [I.name] with [tool_name].", \ + "You start treating damage to [target]'s [I.name] with [tool_name]." ) target.custom_pain("The pain in your [affected.name] is living hell!", 100) ..() @@ -228,8 +228,8 @@ /datum/surgery_step/internal/detatch_organ/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] starts to separate [target]'s [target.op_stage.current_organ] with \the [tool].", \ - "You start to separate [target]'s [target.op_stage.current_organ] with \the [tool]." ) + user.visible_message("[user] starts to separate [target]'s [target.op_stage.current_organ] with \the [tool].", \ + "You start to separate [target]'s [target.op_stage.current_organ] with \the [tool]." ) target.custom_pain("The pain in your [affected.name] is living hell!", 100) ..() @@ -283,6 +283,7 @@ return ..() /datum/surgery_step/internal/remove_organ/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) +<<<<<<< HEAD var/obj/item/organ/external/affected = target.get_organ(target_zone) var/list/removable_organs = list() for(var/organ in target.internal_organs_by_name) @@ -300,6 +301,10 @@ user.visible_message("[user] starts removing [target]'s [target.op_stage.current_organ] with \the [tool].", \ "You start removing [target]'s [target.op_stage.current_organ] with \the [tool].") +======= + user.visible_message("[user] starts removing [target]'s [target.op_stage.current_organ] with \the [tool].", \ + "You start removing [target]'s [target.op_stage.current_organ] with \the [tool].") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) target.custom_pain("Someone's ripping out your [target.op_stage.current_organ]!", 100) ..() @@ -382,8 +387,8 @@ /datum/surgery_step/internal/replace_organ/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] starts transplanting \the [tool] into [target]'s [affected.name].", \ - "You start transplanting \the [tool] into [target]'s [affected.name].") + user.visible_message("[user] starts transplanting \the [tool] into [target]'s [affected.name].", \ + "You start transplanting \the [tool] into [target]'s [affected.name].") target.custom_pain("Someone's rooting around in your [affected.name]!", 100) ..() @@ -439,8 +444,8 @@ return ..() /datum/surgery_step/internal/attach_organ/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - user.visible_message("[user] begins reattaching [target]'s [target.op_stage.current_organ] with \the [tool].", \ - "You start reattaching [target]'s [target.op_stage.current_organ] with \the [tool].") + user.visible_message("[user] begins reattaching [target]'s [target.op_stage.current_organ] with \the [tool].", \ + "You start reattaching [target]'s [target.op_stage.current_organ] with \the [tool].") target.custom_pain("Someone's digging needles into your [target.op_stage.current_organ]!", 100) ..() @@ -457,3 +462,68 @@ user.visible_message("[user]'s hand slips, damaging the flesh in [target]'s [affected.name] with \the [tool]!", \ "Your hand slips, damaging the flesh in [target]'s [affected.name] with \the [tool]!") affected.createwound(BRUISE, 20) +<<<<<<< HEAD +======= + +/////////////////////////////////////////////////////////////// +// Organ Ripping Surgery +/////////////////////////////////////////////////////////////// + +/datum/surgery_step/internal/rip_organ + + allowed_tools = list( + /obj/item/surgical/scalpel/ripper = 100 + ) + + priority = 3 + + blood_level = 3 + + min_duration = 60 + max_duration = 80 + +/datum/surgery_step/internal/rip_organ/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + if (!..()) + return 0 + + if(!istype(tool)) + return FALSE + + target.op_stage.current_organ = null + + var/list/removable_organs = list() + for(var/organ in target.internal_organs_by_name) + var/obj/item/organ/internal/I = target.internal_organs_by_name[organ] + if(istype(I) && I.parent_organ == target_zone) + removable_organs |= organ + + var/organ_to_remove = input(user, "Which organ do you want to remove?") as null|anything in removable_organs + if(!organ_to_remove) + return 0 + + target.op_stage.current_organ = organ_to_remove + return ..() + +/datum/surgery_step/internal/rip_organ/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + user.visible_message("[user] starts ripping [target]'s [target.op_stage.current_organ] out with \the [tool].", \ + "You start ripping [target]'s [target.op_stage.current_organ] out with \the [tool].") + target.custom_pain("Someone's ripping out your [target.op_stage.current_organ]!", 100) + ..() + +/datum/surgery_step/internal/rip_organ/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + user.visible_message("[user] has ripped [target]'s [target.op_stage.current_organ] out with \the [tool].", \ + "You have ripped [target]'s [target.op_stage.current_organ] out with \the [tool].") + + // Extract the organ! + if(target.op_stage.current_organ) + var/obj/item/organ/O = target.internal_organs_by_name[target.op_stage.current_organ] + if(O && istype(O)) + O.removed(user) + target.op_stage.current_organ = null + +/datum/surgery_step/internal/rip_organ/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/obj/item/organ/external/affected = target.get_organ(target_zone) + user.visible_message("[user]'s hand slips, damaging [target]'s [affected.name] with \the [tool]!", \ + "Your hand slips, damaging [target]'s [affected.name] with \the [tool]!") + affected.createwound(BRUISE, 20) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) diff --git a/code/modules/surgery/other.dm b/code/modules/surgery/other.dm index c0c081e05b..5b15d49d1a 100644 --- a/code/modules/surgery/other.dm +++ b/code/modules/surgery/other.dm @@ -37,8 +37,8 @@ /datum/surgery_step/fix_vein/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] starts patching the damaged vein in [target]'s [affected.name] with \the [tool]." , \ - "You start patching the damaged vein in [target]'s [affected.name] with \the [tool].") + user.visible_message("[user] starts patching the damaged vein in [target]'s [affected.name] with \the [tool]." , \ + "You start patching the damaged vein in [target]'s [affected.name] with \the [tool].") target.custom_pain("The pain in [affected.name] is unbearable!", 100) ..() @@ -91,8 +91,8 @@ /datum/surgery_step/fix_dead_tissue/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] starts cutting away necrotic tissue in [target]'s [affected.name] with \the [tool]." , \ - "You start cutting away necrotic tissue in [target]'s [affected.name] with \the [tool].") + user.visible_message("[user] starts cutting away necrotic tissue in [target]'s [affected.name] with \the [tool]." , \ + "You start cutting away necrotic tissue in [target]'s [affected.name] with \the [tool].") target.custom_pain("The pain in [affected.name] is unbearable!", 100) ..() @@ -149,8 +149,8 @@ /datum/surgery_step/treat_necrosis/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] starts applying medication to the affected tissue in [target]'s [affected.name] with \the [tool]." , \ - "You start applying medication to the affected tissue in [target]'s [affected.name] with \the [tool].") + user.visible_message("[user] starts applying medication to the affected tissue in [target]'s [affected.name] with \the [tool]." , \ + "You start applying medication to the affected tissue in [target]'s [affected.name] with \the [tool].") target.custom_pain("Something in your [affected.name] is causing you a lot of pain!", 50) ..() @@ -219,8 +219,8 @@ rig = target.belt if(!istype(rig)) return - user.visible_message("[user] starts cutting through the support systems of \the [rig] on [target] with \the [tool]." , \ - "You start cutting through the support systems of \the [rig] on [target] with \the [tool].") + user.visible_message("[user] starts cutting through the support systems of \the [rig] on [target] with \the [tool]." , \ + "You start cutting through the support systems of \the [rig] on [target] with \the [tool].") ..() /datum/surgery_step/hardsuit/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) diff --git a/code/modules/surgery/robotics.dm b/code/modules/surgery/robotics.dm index f28ccfaf7f..516a433965 100644 --- a/code/modules/surgery/robotics.dm +++ b/code/modules/surgery/robotics.dm @@ -50,8 +50,8 @@ /datum/surgery_step/robotics/unscrew_hatch/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] starts to unscrew the maintenance hatch on [target]'s [affected.name] with \the [tool].", \ - "You start to unscrew the maintenance hatch on [target]'s [affected.name] with \the [tool].") + user.visible_message("[user] starts to unscrew the maintenance hatch on [target]'s [affected.name] with \the [tool].", \ + "You start to unscrew the maintenance hatch on [target]'s [affected.name] with \the [tool].") ..() /datum/surgery_step/robotics/unscrew_hatch/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -88,8 +88,8 @@ /datum/surgery_step/robotics/open_hatch/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] starts to pry open the maintenance hatch on [target]'s [affected.name] with \the [tool].", - "You start to pry open the maintenance hatch on [target]'s [affected.name] with \the [tool].") + user.visible_message("[user] starts to pry open the maintenance hatch on [target]'s [affected.name] with \the [tool].", + "You start to pry open the maintenance hatch on [target]'s [affected.name] with \the [tool].") ..() /datum/surgery_step/robotics/open_hatch/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -126,8 +126,8 @@ /datum/surgery_step/robotics/close_hatch/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] begins to close and secure the hatch on [target]'s [affected.name] with \the [tool]." , \ - "You begin to close and secure the hatch on [target]'s [affected.name] with \the [tool].") + user.visible_message("[user] begins to close and secure the hatch on [target]'s [affected.name] with \the [tool]." , \ + "You begin to close and secure the hatch on [target]'s [affected.name] with \the [tool].") ..() /datum/surgery_step/robotics/close_hatch/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -167,8 +167,8 @@ /datum/surgery_step/robotics/repair_brute/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] begins to patch damage to [target]'s [affected.name]'s support structure with \the [tool]." , \ - "You begin to patch damage to [target]'s [affected.name]'s support structure with \the [tool].") + user.visible_message("[user] begins to patch damage to [target]'s [affected.name]'s support structure with \the [tool]." , \ + "You begin to patch damage to [target]'s [affected.name]'s support structure with \the [tool].") ..() /datum/surgery_step/robotics/repair_brute/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -216,8 +216,8 @@ /datum/surgery_step/robotics/repair_burn/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] begins to splice new cabling into [target]'s [affected.name]." , \ - "You begin to splice new cabling into [target]'s [affected.name].") + user.visible_message("[user] begins to splice new cabling into [target]'s [affected.name]." , \ + "You begin to splice new cabling into [target]'s [affected.name].") ..() /datum/surgery_step/robotics/repair_burn/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -269,8 +269,8 @@ for(var/obj/item/organ/I in affected.internal_organs) if(I && I.damage > 0) if(I.robotic >= ORGAN_ROBOT) - user.visible_message("[user] starts mending the damage to [target]'s [I.name]'s mechanisms.", \ - "You start mending the damage to [target]'s [I.name]'s mechanisms." ) + user.visible_message("[user] starts mending the damage to [target]'s [I.name]'s mechanisms.", \ + "You start mending the damage to [target]'s [I.name]'s mechanisms." ) target.custom_pain("The pain in your [affected.name] is living hell!",1) ..() @@ -336,6 +336,7 @@ return ..() /datum/surgery_step/robotics/detatch_organ_robotic/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) +<<<<<<< HEAD var/list/attached_organs = list() //Which organs can we detach? for(var/organ in target.internal_organs_by_name) var/obj/item/organ/I = target.internal_organs_by_name[organ] @@ -351,6 +352,10 @@ user.visible_message("[user] starts to decouple [target]'s [target.op_stage.current_organ] with \the [tool].", \ "You start to decouple [target]'s [target.op_stage.current_organ] with \the [tool]." ) +======= + user.visible_message("[user] starts to decouple [target]'s [target.op_stage.current_organ] with \the [tool].", \ + "You start to decouple [target]'s [target.op_stage.current_organ] with \the [tool]." ) +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) ..() /datum/surgery_step/robotics/detatch_organ_robotic/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -396,6 +401,7 @@ return ..() /datum/surgery_step/robotics/attach_organ_robotic/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) +<<<<<<< HEAD var/list/attachable_organs = list() for(var/organ in target.internal_organs_by_name) @@ -413,6 +419,10 @@ user.visible_message("[user] begins reattaching [target]'s [target.op_stage.current_organ] with \the [tool].", \ "You start reattaching [target]'s [target.op_stage.current_organ] with \the [tool].") +======= + user.visible_message("[user] begins reattaching [target]'s [target.op_stage.current_organ] with \the [tool].", \ + "You start reattaching [target]'s [target.op_stage.current_organ] with \the [tool].") +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) ..() /datum/surgery_step/robotics/attach_organ_robotic/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -475,8 +485,8 @@ /datum/surgery_step/robotics/install_mmi/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] starts installing \the [tool] into [target]'s [affected.name].", \ - "You start installing \the [tool] into [target]'s [affected.name].") + user.visible_message("[user] starts installing \the [tool] into [target]'s [affected.name].", \ + "You start installing \the [tool] into [target]'s [affected.name].") ..() /datum/surgery_step/robotics/install_mmi/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -565,8 +575,8 @@ /datum/surgery_step/robotics/install_nymph/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) - user.visible_message("[user] starts setting \the [tool] into [target]'s [affected.name].", \ - "You start setting \the [tool] into [target]'s [affected.name].") + user.visible_message("[user] starts setting \the [tool] into [target]'s [affected.name].", \ + "You start setting \the [tool] into [target]'s [affected.name].") ..() /datum/surgery_step/robotics/install_nymph/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) diff --git a/code/modules/tables/flipping.dm b/code/modules/tables/flipping.dm index e7029e3c6d..8901d9d0a8 100644 --- a/code/modules/tables/flipping.dm +++ b/code/modules/tables/flipping.dm @@ -39,7 +39,7 @@ var/obj/occupied = turf_is_crowded() if(occupied) - to_chat(usr, "There's \a [occupied] in the way.") + to_chat(usr, "There's \a [occupied] in the way.") return 0 var/list/L = list() diff --git a/code/modules/vchat/js/vchat.js b/code/modules/vchat/js/vchat.js index 25e5cfa5cc..8450fe3111 100644 --- a/code/modules/vchat/js/vchat.js +++ b/code/modules/vchat/js/vchat.js @@ -279,6 +279,14 @@ function start_vue() { pretty: "System Messages", tooltip: "Messages from your client, always enabled", required: true + }, + { + matches: ".unsorted", + becomes: "vc_unsorted", + pretty: "Unsorted", + tooltip: "Messages that don't have any filters.", + required: false, + admin: false } ], }, @@ -586,6 +594,11 @@ function start_vue() { //Get a category newmessage.category = this.get_category(newmessage.content); + //Put it in unsorted blocks + if (newmessage.category == "vc_unsorted") { + newmessage.content = "" + newmessage.content + ""; + } + //Try to crush it with one of the last few if(this.crushing) { let crushwith = this.messages.slice(-(this.crushing)); @@ -663,7 +676,7 @@ function start_vue() { let doc = domparser.parseFromString(message, 'text/html'); let evaluating = doc.querySelector('span'); - let category = "nomatch"; //What we use if the classes aren't anything we know. + let category = "vc_unsorted"; //What we use if the classes aren't anything we know. if(!evaluating) return category; this.type_table.find( function(type) { if(evaluating.msMatchesSelector(type.matches)) { @@ -678,13 +691,16 @@ function start_vue() { var textToSave = ""; var messagesToSave = this.archived_messages.concat(this.messages); + var cats = this.current_categories; messagesToSave.forEach( function(message) { - textToSave += message.content; - if(message.repeats > 1) { - textToSave += "(x"+message.repeats+")"; + if(cats.length == 0 || (cats.indexOf(message.category) >= 0)) { //only in the active tab + textToSave += message.content; + if(message.repeats > 1) { + textToSave += "(x"+message.repeats+")"; + } + textToSave += "
\n"; } - textToSave += "
\n"; }); textToSave += ""; diff --git a/code/modules/xenoarcheaology/artifacts/replicator.dm b/code/modules/xenoarcheaology/artifacts/replicator.dm index d6796c6ad1..fd138f8ec6 100644 --- a/code/modules/xenoarcheaology/artifacts/replicator.dm +++ b/code/modules/xenoarcheaology/artifacts/replicator.dm @@ -91,6 +91,7 @@ var/type = pick(viables) viables.Remove(type) construction[button_desc] = type +<<<<<<< HEAD tgui_construction.Add(list(list( "key" = button_desc, "background" = background, @@ -99,12 +100,16 @@ ))) fail_message = "\icon[src][bicon(src)] a [pick("loud","soft","sinister","eery","triumphant","depressing","cheerful","angry")] \ +======= + + fail_message = "[bicon(src)] a [pick("loud","soft","sinister","eery","triumphant","depressing","cheerful","angry")] \ +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) [pick("horn","beep","bing","bleep","blat","honk","hrumph","ding")] sounds and a \ [pick("yellow","purple","green","blue","red","orange","white")] \ [pick("light","dial","meter","window","protrusion","knob","antenna","swirly thing")] \ [pick("swirls","flashes","whirrs","goes schwing","blinks","flickers","strobes","lights up")] on the \ [pick("front","side","top","bottom","rear","inside")] of [src]. A [pick("slot","funnel","chute","tube")] opens up in the \ - [pick("front","side","top","bottom","rear","inside")]." + [pick("front","side","top","bottom","rear","inside")]." /obj/machinery/replicator/process() if(spawning_types.len && powered()) diff --git a/code/modules/xenoarcheaology/effect.dm b/code/modules/xenoarcheaology/effect.dm index 7409c8744f..5854dc8445 100644 --- a/code/modules/xenoarcheaology/effect.dm +++ b/code/modules/xenoarcheaology/effect.dm @@ -81,7 +81,25 @@ if(activated) display_msg = pick("momentarily glows brightly!","distorts slightly for a moment!","flickers slightly!","vibrates!","shimmers slightly for a moment!") else +<<<<<<< HEAD display_msg = pick("grows dull!","fades in intensity!","suddenly becomes very still!","suddenly becomes very quiet!") +======= + target.underlays.Remove(active_effect) + var/atom/toplevelholder = target + while (!istype(toplevelholder.loc, /turf)) + toplevelholder = toplevelholder.loc + toplevelholder.visible_message("[bicon(toplevelholder)] [toplevelholder] [display_msg]") + return TRUE + + +/datum/artifact_effect/proc/DoEffectTouch(mob/living/user) + return + + +/datum/artifact_effect/proc/DoEffectAura() + return + +>>>>>>> 75577bd3ca9... cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006) if(active_effect) if(activated) diff --git a/code/modules/xenoarcheaology/effect_master.dm b/code/modules/xenoarcheaology/effect_master.dm index f654724b32..b320cbead3 100644 --- a/code/modules/xenoarcheaology/effect_master.dm +++ b/code/modules/xenoarcheaology/effect_master.dm @@ -103,7 +103,7 @@ my_effects += my_effect else - to_chat(usr, "This effect can not be applied to this atom type.") + to_chat(usr, "This effect can not be applied to this atom type.") qdel(my_effect) /datum/component/artifact_master/proc/remove_effect() @@ -231,7 +231,7 @@ warn = 1 if(warn && isliving(bumped)) - to_chat(bumped, "You accidentally touch \the [holder] as it hits you.") + to_chat(bumped, "You accidentally touch \the [holder] as it hits you.") /datum/component/artifact_master/proc/on_bumped() var/atom/movable/M = args[2] @@ -252,7 +252,7 @@ warn = 1 if(warn && isliving(M)) - to_chat(M, "You accidentally touch \the [holder].") + to_chat(M, "You accidentally touch \the [holder].") /datum/component/artifact_master/proc/on_attack_hand() var/mob/living/user = args[2] @@ -260,10 +260,10 @@ return if (get_dist(user, holder) > 1) - to_chat(user, "You can't reach [holder] from here.") + to_chat(user, "You can't reach [holder] from here.") return if(ishuman(user) && user:gloves) - to_chat(user, "You touch [holder] with your gloved hands, [pick("but nothing of note happens","but nothing happens","but nothing interesting happens","but you notice nothing different","but nothing seems to have happened")].") + to_chat(user, "You touch [holder] with your gloved hands, [pick("but nothing of note happens","but nothing happens","but nothing interesting happens","but you notice nothing different","but nothing seems to have happened")].") return var/triggered = FALSE @@ -279,10 +279,10 @@ my_effect.DoEffectTouch(user) if(triggered) - to_chat(user, "You touch [holder].") + to_chat(user, "You touch [holder].") else - to_chat(user, "You touch [holder], [pick("but nothing of note happens","but nothing happens","but nothing interesting happens","but you notice nothing different","but nothing seems to have happened")].") + to_chat(user, "You touch [holder], [pick("but nothing of note happens","but nothing happens","but nothing interesting happens","but you notice nothing different","but nothing seems to have happened")].") /datum/component/artifact_master/proc/on_attackby()