cleans up so many to_chats so they use vchat filters, unsorted chat filter for everything else (#9006)

* better filters for vchat, unsorted chat filter

* adds closing tags, fixes an error I somehow missed
This commit is contained in:
Seris02
2023-03-08 18:57:55 -08:00
committed by GitHub
parent 6b909477bc
commit 75577bd3ca
63 changed files with 546 additions and 514 deletions
+1 -1
View File
@@ -93,5 +93,5 @@
msg += "[line]"
msg += "</table>"
msg += "<b>Total Players: [length(Lines)]</b>"
msg = "<span class='filter_info'>" + msg + "</span>"
msg = "<span class='filter_notice'>" + msg + "</span>"
to_chat(src, msg)
+3 -2
View File
@@ -52,6 +52,7 @@
msg += "[line]\n"
msg += "<b>Total Players: [length(Lines)]</b>"
msg = "<span class='filter_notice'>[jointext(msg, "<br>")]</span>"
to_chat(src,msg)
/client/verb/staffwho()
@@ -82,7 +83,7 @@
else if(check_rights(R_EVENT, FALSE, C)) // event managers
category = R_EVENT
num_event_managers_online++
temp += "\t[C] is a [C.holder.rank]"
if(holder)
if(C.holder.fakekey)
@@ -122,4 +123,4 @@
if(config.show_event_managers)
msg += "\n<b> Current Event Managers ([num_event_managers_online]):</b>\n" + eventMmsg
to_chat(src,msg)
to_chat(src,"<span class='filter_notice'>[jointext(msg, "<br>")]</span>")
+1 -1
View File
@@ -92,7 +92,7 @@
CC.update_icon()
cut_overlays()
string_attached = null
to_chat(user, "<font color='blue'>You detach the string from the coin.</font>")
to_chat(user, "<span class='notice'>You detach the string from the coin.</span>")
else ..()
/obj/item/coin/attack_self(mob/user as mob)
+6 -6
View File
@@ -147,7 +147,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, "<span class='filter_notice'>You short out \the [src]'s product lock.</span>")
return 1
/obj/machinery/vending/attackby(obj/item/W as obj, mob/user as mob)
@@ -183,9 +183,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("<span class='filter_notice'>[user] begins unsecuring \the [src] from the floor.</span>", "<span class='filter_notice'>You start unsecuring \the [src] from the floor.</span>")
else
user.visible_message("[user] begins securing \the [src] to the floor.", "You start securing \the [src] to the floor.")
user.visible_message("<span class='filter_notice'>[user] begins securing \the [src] to the floor.</span>", "<span class='filter_notice'>You start securing \the [src] to the floor.</span>")
if(do_after(user, 20 * W.toolspeed))
if(!src) return
@@ -426,7 +426,7 @@ GLOBAL_LIST_EMPTY(vending_products)
return FALSE
if(!coin)
to_chat(usr, "There is no coin in this machine.")
to_chat(usr, "<span class='filter_notice'>There is no coin in this machine.</span>")
return
coin.forceMove(src.loc)
@@ -477,7 +477,7 @@ GLOBAL_LIST_EMPTY(vending_products)
var/obj/item/card/id/C = H.GetIdCard()
if(!vendor_account || vendor_account.suspended)
to_chat(usr, "Vendor account offline. Unable to process transaction.")
to_chat(usr, "<span class='filter_notice'>Vendor account offline. Unable to process transaction.</span>")
flick("[icon_state]-deny",src)
vend_ready = TRUE
return
@@ -618,7 +618,7 @@ GLOBAL_LIST_EMPTY(vending_products)
return 0
if (src.anchored || usr:stat)
to_chat(usr, "It is bolted down!")
to_chat(usr, "<span class='filter_notice'>It is bolted down!</span>")
return 0
src.set_dir(turn(src.dir, 270))
return 1
+1 -1
View File
@@ -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, "<br>"))
to_chat(src, "<span class='filter_notice'>[jointext(results, "<br>")]</span>")
update_examine_panel(A)
/mob/proc/update_examine_panel(var/atom/A)
+1 -1
View File
@@ -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,"<span class='filter_notice'>You caught... nothing. How sad.</span>")
else
var/fished = new fish_type(get_turf(user))
if(isliving(fished))
+1 -1
View File
@@ -48,7 +48,7 @@
to_chat(user, "<span class='notice'>Your net is already holding something!</span>")
accept = FALSE
if(!accept)
to_chat(user, "[A] can't be trapped in \the [src].")
to_chat(user, "<span class='filter_notice'>[A] can't be trapped in \the [src].</span>")
return
var/mob/L = A
user.visible_message("<span class='notice'>[user] snatches [L] with \the [src].</span>", "<span class='notice'>You snatch [L] with \the [src].</span>")
@@ -136,12 +136,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("<span class='filter_notice'>[user] turns [src] on.</span>", "<span class='filter_notice'>You turn on [src].</span>")
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("<span class='filter_notice'>[user] turns [src] off.</span>", "<span class='filter_notice'>You turn off [src].</span>")
cooking = FALSE // Stop cooking here, too, just in case.
playsound(src, "button", 40, 1)
@@ -159,14 +159,14 @@
return
if (!usr.IsAdvancedToolUser())
to_chat(usr, "You lack the dexterity to do that!")
to_chat(usr, "<span class='filter_notice'>You lack the dexterity to do that!</span>")
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, "<span class='filter_notice'>You can't adjust the [src] from this distance, get closer!</span>")
return
if(output_options.len)
@@ -25,7 +25,7 @@
. += "Temperature: [round(temperature - T0C, 0.1)]C / [round(optimal_temp - T0C, 0.1)]C"
else
. += "<span class='warning'>It is switched off.</span>"
/obj/machinery/appliance/cooker/list_contents(var/mob/user)
if (cooking_objs.len)
var/string = "Contains...</br>"
@@ -38,7 +38,7 @@
to_chat(user, string)
else
to_chat(user, "<span class='notice'>It's empty.</span>")
/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
@@ -74,11 +74,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)
@@ -86,22 +86,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))
@@ -142,5 +142,5 @@
/obj/machinery/appliance/cooker/add_content(var/obj/item/I, var/mob/user)
var/datum/cooking_item/CI = ..()
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.")
to_chat(user, "<span class='filter_notice'>\The [I] will be used to make a [selected_option]. Output selection is returned to default for future items.</span>")
selected_option = null
@@ -82,7 +82,7 @@ fundamental differences
var/datum/cooking_item/CI = a
if (CI.container)
if (!CI.container.check_contents())
to_chat(user, "There's nothing in [src] you can remove!")
to_chat(user, "<span class='filter_notice'>There's nothing in [src] you can remove!</span>")
return
for (var/obj/item/I in CI.container)
@@ -105,20 +105,20 @@ 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("<span class='filter_notice'>There's nothing in it! Add ingredients before turning [src] on!</span>")
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("<span class='filter_notice'>[usr] turns the [src] on.</span>", "<span class='filter_notice'>You turn on \the [src].</span>")
get_cooking_work(CI)
use_power = 2
else //Its on, turn it off
stat |= POWEROFF
use_power = 0
if(usr)
usr.visible_message("[usr] turns the [src] off", "You turn off \the [src].")
usr.visible_message("<span class='filter_notice'>[usr] turns the [src] off.</span>", "<span class='filter_notice'>You turn off \the [src].</span>")
playsound(src, "button", 40, 1)
update_icon()
@@ -84,7 +84,7 @@
return
if (!Adjacent(user))
to_chat(user, "You can't reach [src] from here.")
to_chat(user, "<span class='filter_notice'>You can't reach [src] from here.</span>")
return
if (!contents.len)
@@ -13,13 +13,13 @@
appliancetype = FRYER
active_power_usage = 12 KILOWATTS
heating_power = 12 KILOWATTS
light_y = 15
min_temp = 140 + T0C // Same as above, increasing this to just under 2x to make the % increase on efficiency not quite so painful as it would be at 80.
optimal_temp = 400 + T0C // Increasing this to be 2x Oven to allow for a much higher/realistic frying temperatures. Doesn't really do anything but make heating the fryer take a bit longer.
optimal_power = 0.95 // .35 higher than the default to give fryers faster cooking speed.
idle_power_usage = 3.6 KILOWATTS
// Power used to maintain temperature once it's heated.
// Going with 25% of the active power. This is a somewhat arbitrary value.
@@ -33,11 +33,11 @@
var/datum/reagents/oil
var/optimal_oil = 9000 //90 litres of cooking oil
/obj/machinery/appliance/cooker/fryer/Initialize()
. = ..()
fry_loop = new(list(src), FALSE)
oil = new/datum/reagents(optimal_oil * 1.25, src)
var/variance = rand()*0.15
// Fryer is always a little below full, but its usually negligible
@@ -51,12 +51,12 @@
QDEL_NULL(fry_loop)
QDEL_NULL(oil)
return ..()
/obj/machinery/appliance/cooker/fryer/examine(var/mob/user)
. = ..()
if(Adjacent(user))
to_chat(user, "Oil Level: [oil.total_volume]/[optimal_oil]")
/obj/machinery/appliance/cooker/fryer/update_icon() // We add our own version of the proc to use the special fryer double-lights.
cut_overlays()
var/image/light
@@ -69,7 +69,7 @@
light.pixel_x = light_x
light.pixel_y = light_y
add_overlay(light)
/obj/machinery/appliance/cooker/fryer/heat_up()
if (..())
//Set temperature of oil reagent
@@ -102,7 +102,7 @@
cooking_power *= oil_efficiency
/obj/machinery/appliance/cooker/fryer/update_icon()
if(!stat)
..()
@@ -119,7 +119,7 @@
if(fry_loop)
fry_loop.stop(src)
..()
//Fryer gradually infuses any cooked food with oil. Moar calories
//This causes a slow drop in oil levels, encouraging refill after extended use
/obj/machinery/appliance/cooker/fryer/do_cooking_tick(var/datum/cooking_item/CI)
@@ -177,13 +177,13 @@
return
// user.visible_message("<span class='danger'>\The [user] starts pushing \the [victim] into \the [src]!</span>")
//Removed delay on this action in favour of a cooldown after it
//If you can lure someone close to the fryer and grab them then you deserve success.
//And a delay on this kind of niche action just ensures it never happens
//Cooldown ensures it can't be spammed to instakill someone
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN*3)
fry_loop.start(src)
if(!do_mob(user, victim, 20))
@@ -239,15 +239,15 @@
//Coat the victim in some oil
oil.trans_to(victim, 40)
fry_loop.stop()
/obj/machinery/appliance/cooker/fryer/attackby(var/obj/item/I, var/mob/user)
if(istype(I, /obj/item/reagent_containers/glass) && I.reagents)
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("<span class='filter_notice'>[user] scoops some oil out of \the [src].</span>", 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]."), "<span class='notice'>You hear something viscous being poured into a metal container.</span>")
user.visible_message("<span class='filter_notice'>[user] pours some oil into \the [src].</span>", "<span class='notice'>You pour [amount]u of oil into \the [src].</span>", "<span class='notice'>You hear something viscous being poured into a metal container.</span>")
return 1
//If neither of the above returned, then call parent as normal
..()
@@ -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,18 @@
optimal_temp = 120 + T0C
min_temp = 60 + T0C
resistance = 8 KILOWATTS // Very fast to heat up.
max_contents = 3 // Arbitrary number, 3 grill 'racks'
container_type = /obj/item/reagent_containers/cooking_container/grill
/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
@@ -59,14 +59,14 @@
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("<span class='filter_notice'>[usr] turns \the [src] on.</span>", "<span class='filter_notice'>You turn on \the [src].</span>")
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].")
usr.visible_message("<span class='filter_notice'>[usr] turns \the [src] off.</span>", "<span class='filter_notice'>You turn off \the [src].</span>")
playsound(src, 'sound/machines/click.ogg', 40, 1)
update_icon()
@@ -95,7 +95,7 @@
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!")
to_chat(user, "<span class='filter_notice'>There's nothing in the [src] you can remove!</span>")
return
for (var/obj/item/I in CI.container)
@@ -111,7 +111,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("<span class='filter_notice'>[user] [panel_open ? "opens" : "closes"] the maintenance panel of \the [src].</span>", "<span class='filter_notice'>You [panel_open ? "open" : "close"] the maintenance panel of \the [src].</span>")
playsound(src, O.usesound, 50, 1)
update_icon()
return
@@ -149,11 +149,11 @@
else if(istype(O, /obj/item/gripper)) // Grippers. ~Mechoid.
var/obj/item/gripper/B = O //B, for Borg.
if(!B.wrapped)
to_chat(user, "\The [B] is not holding anything.")
to_chat(user, "<span class='filter_notice'>\The [B] is not holding anything.</span>")
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, "<span class='filter_notice'>You use \the [B] to put \the [B_held] into \the [src].</span>")
return
else
@@ -164,7 +164,7 @@
if(!emagged)
emagged = 1
locked = -1
to_chat(user, "You short out the product lock on [src].")
to_chat(user, "<span class='filter_notice'>You short out the product lock on [src].</span>")
return 1
/obj/machinery/smartfridge/proc/find_record(var/obj/item/O)
+7 -7
View File
@@ -214,7 +214,7 @@
if(G.amount>=G.max_amount)
continue
G.attackby(NG, user)
to_chat(user, "You add the newly-formed wood to the stack. It now contains [NG.amount] planks.")
to_chat(user, "<span class='filter_notice'>You add the newly-formed wood to the stack. It now contains [NG.amount] planks.</span>")
qdel(src)
return
@@ -225,31 +225,31 @@
return
if(seed.kitchen_tag == "potato" || !isnull(seed.chems["potato"]))
to_chat(user, "You slice \the [src] into sticks.")
to_chat(user, "<span class='filter_notice'>You slice \the [src] into sticks.</span>")
new /obj/item/reagent_containers/food/snacks/rawsticks(get_turf(src))
qdel(src)
return
if(!isnull(seed.chems["carrotjuice"]))
to_chat(user, "You slice \the [src] into sticks.")
to_chat(user, "<span class='filter_notice'>You slice \the [src] into sticks.</span>")
new /obj/item/reagent_containers/food/snacks/carrotfries(get_turf(src))
qdel(src)
return
if(!isnull(seed.chems["pineapplejuice"]))
to_chat(user, "You slice \the [src] into rings.")
to_chat(user, "<span class='filter_notice'>You slice \the [src] into rings.</span>")
new /obj/item/reagent_containers/food/snacks/pineapple_ring(get_turf(src))
qdel(src)
return
if(!isnull(seed.chems["soymilk"]))
to_chat(user, "You roughly chop up \the [src].")
to_chat(user, "<span class='filter_notice'>You roughly chop up \the [src].</span>")
new /obj/item/reagent_containers/food/snacks/soydope(get_turf(src))
qdel(src)
return
if(seed.get_trait(TRAIT_FLESH_COLOUR))
to_chat(user, "You slice up \the [src].")
to_chat(user, "<span class='filter_notice'>You slice up \the [src].</span>")
var/slices = rand(3,5)
var/reagents_to_transfer = round(reagents.total_volume/slices)
for(var/i=1; i<=slices; i++)
@@ -306,7 +306,7 @@
if(NG.amount>=NG.max_amount)
continue
NG.attackby(G, user)
to_chat(user, "You add the newly-formed grass to the stack. It now contains [G.amount] tiles.")
to_chat(user, "<span class='filter_notice'>You add the newly-formed grass to the stack. It now contains [G.amount] tiles.</span>")
qdel(src)
return
+1 -1
View File
@@ -777,7 +777,7 @@
to_chat(user, "<span class='danger'>You fail to harvest anything useful.</span>")
else
if(istype(user))
to_chat(user, "You [harvest_sample ? "take a sample" : "harvest"] from the [display_name].")
to_chat(user, "<span class='filter_notice'>You [harvest_sample ? "take a sample" : "harvest"] from the [display_name].</span>")
//This may be a new line. Update the global if it is.
if(name == "new line" || !(name in plant_controller.seeds))
+1 -1
View File
@@ -13,7 +13,7 @@
if(!holder) return
if(!plant_controller || !plant_controller.gene_tag_masks)
to_chat(usr, "Gene masks not set.")
to_chat(usr, "<span class='filter_notice'>Gene masks not set.</span>")
return
for(var/mask in plant_controller.gene_tag_masks)
+13 -13
View File
@@ -17,7 +17,7 @@
if(genes.len)
var/choice = alert(user, "Are you sure you want to wipe the disk?", "Xenobotany Data", "No", "Yes")
if(src && user && genes && choice && choice == "Yes" && user.Adjacent(get_turf(src)))
to_chat(user, "You wipe the disk data.")
to_chat(user, "<span class='filter_notice'>You wipe the disk data.</span>")
name = initial(name)
desc = initial(name)
genes = list()
@@ -68,30 +68,30 @@
active = 0
if(failed_task)
failed_task = 0
visible_message("[bicon(src)] [src] pings unhappily, flashing a red warning light.")
visible_message("<span class='filter_notice'>[bicon(src)] [src] pings unhappily, flashing a red warning light.</span>")
else
visible_message("[bicon(src)] [src] pings happily.")
visible_message("<span class='filter_notice'>[bicon(src)] [src] pings happily.</span>")
if(eject_disk)
eject_disk = 0
if(loaded_disk)
loaded_disk.loc = get_turf(src)
visible_message("[bicon(src)] [src] beeps and spits out [loaded_disk].")
visible_message("<span class='filter_notice'>[bicon(src)] [src] beeps and spits out [loaded_disk].</span>")
loaded_disk = null
/obj/machinery/botany/attackby(obj/item/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, "<span class='filter_notice'>There is already a seed loaded.</span>")
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, "<span class='filter_notice'>That seed is not compatible with our genetics technology.</span>")
else
user.drop_from_inventory(W)
W.loc = src
seed = W
to_chat(user, "You load [W] into [src].")
to_chat(user, "<span class='filter_notice'>You load [W] into [src].</span>")
return
if(default_deconstruction_screwdriver(user, W))
@@ -105,24 +105,24 @@
// return
if(istype(W,/obj/item/disk/botany))
if(loaded_disk)
to_chat(user, "There is already a data disk loaded.")
to_chat(user, "<span class='filter_notice'>There is already a data disk loaded.</span>")
return
else
var/obj/item/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, "<span class='filter_notice'>That disk already has gene data loaded.</span>")
return
else
if(disk_needs_genes)
to_chat(user, "That disk does not have any gene data loaded.")
to_chat(user, "<span class='filter_notice'>That disk does not have any gene data loaded.</span>")
return
user.drop_from_inventory(W)
W.loc = src
loaded_disk = W
to_chat(user, "You load [W] into [src].")
to_chat(user, "<span class='filter_notice'>You load [W] into [src].</span>")
return
..()
@@ -189,14 +189,14 @@
plant_controller.seeds[seed.seed.name] = seed.seed
seed.update_seed()
visible_message("[bicon(src)] [src] beeps and spits out [seed].")
visible_message("<span class='filter_notice'>[bicon(src)] [src] beeps and spits out [seed].</span>")
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].")
visible_message("<span class='filter_notice'>[bicon(src)] [src] beeps and spits out [loaded_disk].</span>")
loaded_disk = null
usr.set_machine(src)
+4 -4
View File
@@ -503,7 +503,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("<span class ='filter_notice'>[user] puts \the [O.name] into \the [src].</span>", "<span class ='filter_notice'>You put \the [O] into \the [src].</span>")
return
else if (istype(O, /obj/item/storage/bag/plants) && !lockdown)
var/obj/item/storage/P = O
@@ -512,17 +512,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("<span class ='filter_notice'>[user] puts the seeds from \the [O.name] into \the [src].</span>", "<span class ='filter_notice'>You put the seeds from \the [O.name] into \the [src].</span>")
else
to_chat(user, "<span class='notice'>There are no seeds in \the [O.name].</span>")
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, "<span class ='filter_notice'>You [anchored ? "wrench" : "unwrench"] \the [src].</span>")
else if(O.is_screwdriver())
panel_open = !panel_open
to_chat(user, "You [panel_open ? "open" : "close"] the maintenance panel.")
to_chat(user, "<span class ='filter_notice'>You [panel_open ? "open" : "close"] the maintenance panel.</span>")
playsound(src, O.usesound, 50, 1)
cut_overlays()
if(panel_open)
+21 -21
View File
@@ -159,13 +159,13 @@
if(weedlevel > 0)
nymph.reagents.add_reagent("glucose", weedlevel)
weedlevel = 0
nymph.visible_message("<font color='blue'><b>[nymph]</b> begins rooting through [src], ripping out weeds and eating them noisily.</font>","<font color='blue'>You begin rooting through [src], ripping out weeds and eating them noisily.</font>")
nymph.visible_message("<span class='notice'><b>[nymph]</b> begins rooting through [src], ripping out weeds and eating them noisily.</span>","<span class='notice'>You begin rooting through [src], ripping out weeds and eating them noisily.</span>")
else if(nymph.nutrition > 100 && nutrilevel < 10)
nymph.nutrition -= ((10-nutrilevel)*5)
nutrilevel = 10
nymph.visible_message("<font color='blue'><b>[nymph]</b> secretes a trickle of green liquid, refilling [src].</font>","<font color='blue'>You secrete a trickle of green liquid, refilling [src].</font>")
nymph.visible_message("<span class='notice'><b>[nymph]</b> secretes a trickle of green liquid, refilling [src].</span>","<span class='notice'>You secrete a trickle of green liquid, refilling [src].</span>")
else
nymph.visible_message("<font color='blue'><b>[nymph]</b> rolls around in [src] for a bit.</font>","<font color='blue'>You roll around in [src] for a bit.</font>")
nymph.visible_message("<span class='notice'><b>[nymph]</b> rolls around in [src] for a bit.</span>","<span class='notice'>You roll around in [src] for a bit.</span>")
return
/obj/machinery/portable_atmospherics/hydroponics/Initialize()
@@ -313,7 +313,7 @@
if(closed_system)
if(user)
to_chat(user, "You can't harvest from the plant while the lid is shut.")
to_chat(user, "<span class='filter_notice'>You can't harvest from the plant while the lid is shut.</span>")
return
if(user)
@@ -340,7 +340,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, "<span class='filter_notice'>You can't remove the dead plant while the lid is shut.</span>")
return
seed = null
@@ -350,7 +350,7 @@
yield_mod = 0
mutation_mod = 0
to_chat(user, "You remove the dead plant.")
to_chat(user, "<span class='filter_notice'>You remove the dead plant.</span>")
lastproduce = 0
check_health()
return
@@ -406,11 +406,11 @@
return
if(ishuman(usr) || istype(usr, /mob/living/silicon/robot))
if(labelled)
to_chat(usr, "You remove the label.")
to_chat(usr, "<span class='filter_notice'>You remove the label.</span>")
labelled = null
update_icon()
else
to_chat(usr, "There is no label to remove.")
to_chat(usr, "<span class='filter_notice'>There is no label to remove.</span>")
return
/obj/machinery/portable_atmospherics/hydroponics/verb/setlight()
@@ -424,7 +424,7 @@
var/new_light = input("Specify a light level.") as null|anything in 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, "<span class='filter_notice'>You set the tray to a light level of [tray_light] lumens.</span>")
return
/obj/machinery/portable_atmospherics/hydroponics/proc/check_level_sanity()
@@ -460,7 +460,7 @@
weedlevel = 0
update_icon()
visible_message("<span class='danger'>The </span><span class='notice'>[previous_plant]</span><span class='danger'> has suddenly mutated into </span><span class='notice'>[seed.display_name]!</span>")
visible_message("<span class='danger'>The <span class='notice'>[previous_plant]</span> has suddenly mutated into <span class='notice'>[seed.display_name]!</span></span>")
return
@@ -472,15 +472,15 @@
if(O.is_wirecutter() || istype(O, /obj/item/surgical/scalpel))
if(!seed)
to_chat(user, "There is nothing to take a sample from in \the [src].")
to_chat(user, "<span class='filter_notice'>There is nothing to take a sample from in \the [src].</span>")
return
if(sampled)
to_chat(user, "You have already sampled from this plant.")
to_chat(user, "<span class='filter_notice'>You have already sampled from this plant.</span>")
return
if(dead)
to_chat(user, "The plant is dead.")
to_chat(user, "<span class='filter_notice'>The plant is dead.</span>")
return
// Create a sample.
@@ -505,14 +505,14 @@
if(seed)
return ..()
else
to_chat(user, "There's no plant to inject.")
to_chat(user, "<span class='filter_notice'>There's no plant to inject.</span>")
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, "<span class='filter_notice'>You can't get any extract out of this plant.</span>")
else
to_chat(user, "There's nothing to draw something from.")
to_chat(user, "<span class='filter_notice'>There's nothing to draw something from.</span>")
return 1
else if (istype(O, /obj/item/seeds))
@@ -523,11 +523,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, "<span class='filter_notice'>The packet seems to be empty. You throw it away.</span>")
qdel(O)
return
to_chat(user, "You plant the [S.seed.seed_name] [S.seed.seed_noun].")
to_chat(user, "<span class='filter_notice'>You plant the [S.seed.seed_name] [S.seed.seed_noun].</span>")
plant_seeds(S)
else
@@ -559,7 +559,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, "<span class='filter_notice'>You spray [src] with [O].</span>")
playsound(src, 'sound/effects/spray3.ogg', 50, 1, -6)
qdel(O)
check_health()
@@ -572,7 +572,7 @@
playsound(src, O.usesound, 50, 1)
anchored = !anchored
to_chat(user, "You [anchored ? "wrench" : "unwrench"] \the [src].")
to_chat(user, "<span class='filter_notice'>You [anchored ? "wrench" : "unwrench"] \the [src].</span>")
else if(istype(O,/obj/item/multitool))
if(!anchored)
@@ -674,5 +674,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, "<span class='filter_notice'>You [closed_system ? "close" : "open"] the tray's lid.</span>")
update_icon()
+2 -2
View File
@@ -39,14 +39,14 @@
/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.")
to_chat(user, "<span class='filter_notice'>There is no scan data to print.</span>")
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.")
user.visible_message("<span class='filter_notice'>\The [src] spits out a piece of paper.</span>")
return
/obj/item/analyzer/plant_analyzer/attack_self(mob/user as mob)
+25 -24
View File
@@ -297,7 +297,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, "<font color='blue'><B>Medical HUD [medHUD ? "Enabled" : "Disabled"]</B></font>")
to_chat(src, "<span class='notice'><B>Medical HUD [medHUD ? "Enabled" : "Disabled"]</B></span>")
/mob/observer/dead/verb/toggle_secHUD()
set category = "Ghost"
@@ -310,7 +310,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, "<font color='blue'><B>Security HUD [secHUD ? "Enabled" : "Disabled"]</B></font>")
to_chat(src, "<span class='notice'><B>Security HUD [secHUD ? "Enabled" : "Disabled"]</B></span>")
/mob/observer/dead/verb/toggle_antagHUD()
set category = "Ghost"
@@ -318,10 +318,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, "<font color='red'>Admins have disabled this for this round.</font>")
to_chat(src, "<span class='filter_notice'><font color='red'>Admins have disabled this for this round.</font></span>")
return
if(jobban_isbanned(src, "AntagHUD"))
to_chat(src, "<font color='red'><B>You have been banned from using this feature</B></font>")
to_chat(src, "<span class='filter_notice'><font color='red'><B>You have been banned from using this feature</B></font></span>")
return
if(config.antag_hud_restricted && !has_enabled_antagHUD && !client.holder)
var/response = 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?","Yes","No")
@@ -333,7 +333,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, "<font color='blue'><B>AntagHUD [antagHUD ? "Enabled" : "Disabled"]</B></font>")
to_chat(src, "<span class='notice'><B>AntagHUD [antagHUD ? "Enabled" : "Disabled"]</B></span>")
/mob/observer/dead/proc/jumpable_areas()
var/list/areas = return_sorted_areas()
@@ -362,7 +362,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, "<span class='filter_notice'>Not when you're not dead!</span>")
return
if(!A)
@@ -551,15 +551,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, "<span class='filter_notice'>This mob is not located in the game world.</span>")
/mob/observer/dead/memory()
set hidden = 1
to_chat(src, "<font color='red'>You are dead! You have no mind to store memory!</font>")
to_chat(src, "<span class='filter_notice'><font color='red'>You are dead! You have no mind to store memory!</font></span>")
/mob/observer/dead/add_memory()
set hidden = 1
to_chat(src, "<font color='red'>You are dead! You have no mind to store memory!</font>")
to_chat(src, "<span class='filter_notice'><font color='red'>You are dead! You have no mind to store memory!</font></span>")
/mob/observer/dead/Post_Incorpmove()
stop_following()
@@ -578,17 +578,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, "<font color='blue'><B>Results:</B></font>")
var/list/gas_analyzing = list()
gas_analyzing += "<B>Results:</B>"
if(abs(pressure - ONE_ATMOSPHERE) < 10)
to_chat(src, "<font color='blue'>Pressure: [round(pressure,0.1)] kPa</font>")
gas_analyzing += "Pressure: [round(pressure,0.1)] kPa"
else
to_chat(src, "<font color='red'>Pressure: [round(pressure,0.1)] kPa</font>")
gas_analyzing += "<font color='red'>Pressure: [round(pressure,0.1)] kPa</font>"
if(total_moles)
for(var/g in environment.gas)
to_chat(src, "<font color='blue'>[gas_data.name[g]]: [round((environment.gas[g] / total_moles) * 100)]% ([round(environment.gas[g], 0.01)] moles)</font>")
to_chat(src, "<font color='blue'>Temperature: [round(environment.temperature-T0C,0.1)]&deg;C ([round(environment.temperature,0.1)]K)</font>")
to_chat(src, "<font color='blue'>Heat Capacity: [round(environment.heat_capacity(),0.1)]</font>")
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)]&deg;C ([round(environment.temperature,0.1)]K)"
gas_analyzing += "Heat Capacity: [round(environment.heat_capacity(),0.1)]"
to_chat(src, "<span class='notice'>[jointext(gas_analyzing, "<br>")]</span>")
/mob/observer/dead/verb/check_radiation()
set name = "Check Radiation"
@@ -675,7 +676,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, "<font color='red'>That verb is not currently permitted.</font>")
to_chat(src, "<span class='filter_notice'><font color='red'>That verb is not currently permitted.</font></span>")
return
if (!src.stat)
@@ -690,7 +691,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, "<font color='red'>The veil is not thin enough for you to do that.</font>")
to_chat(src, "<span class='filter_notice'><font color='red'>The veil is not thin enough for you to do that.</font></span>")
return
var/list/choices = list()
@@ -740,19 +741,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("<font color='red'>Invisible fingers crudely paint something in blood on [T]...</font>")
W.visible_message("<span class='filter_notice'><font color='red'>Invisible fingers crudely paint something in blood on [T]...</font></span>")
/mob/observer/dead/pointed(atom/A as mob|obj|turf in view())
if(!..())
return 0
usr.visible_message("<span class='deadsay'><b>[src]</b> points to [A]</span>")
usr.visible_message("<span class='deadsay'><b>[src]</b> points to [A].</span>")
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, "<font color='purple'>As you are now in the realm of the living, you can whisper to the living with the <b>Spectral Whisper</b> verb, inside the IC tab.</font>")
to_chat(src, "<span class='filter_notice'><font color='purple'>As you are now in the realm of the living, you can whisper to the living with the <b>Spectral Whisper</b> verb, inside the IC tab.</font></span>")
if(plane != PLANE_WORLD)
user.visible_message( \
"<span class='warning'>\The [user] drags ghost, [src], to our plane of reality!</span>", \
@@ -787,7 +788,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, "<span class='filter_notice'>You must gather strength before you can turn visible again...</span>")
return
if(plane == PLANE_WORLD)
@@ -825,7 +826,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, "<span class='filter_notice'>You [ghostvision ? "now" : "no longer"] have ghost vision.</span>")
/mob/observer/dead/verb/toggle_darkness()
set name = "Toggle Darkness"
@@ -833,7 +834,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
set category = "Ghost"
seedarkness = !seedarkness
updateghostsight()
to_chat(src, "You [seedarkness ? "now" : "no longer"] see darkness.")
to_chat(src, "<span class='filter_notice'>You [seedarkness ? "now" : "no longer"] see darkness.</span>")
/mob/observer/dead/proc/updateghostsight()
plane_holder.set_vis(VIS_FULLBRIGHT, !seedarkness) //Inversion, because "not seeing" the darkness is "seeing" the lighting plane master.
+2 -2
View File
@@ -10,7 +10,7 @@
if(message)
client.handle_spam_prevention(MUTE_DEADCHAT)
if(client.prefs.muted & MUTE_DEADCHAT)
to_chat(src, "<font color='red'>You cannot talk in deadchat (muted).</font>")
to_chat(src, "<span class='filter_notice'><font color='red'>You cannot talk in deadchat (muted).</font></span>")
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, "<font color='red'>You cannot emote in deadchat (muted).</font>")
to_chat(src, "<span class='filter_notice'><font color='red'>You cannot emote in deadchat (muted).</font></span>")
return
. = emote_dead(message)
+36 -32
View File
@@ -115,7 +115,7 @@
to_chat(src, "<span class='filter_say'><span class='name'>[speaker_name]</span>[speaker.GetAltName()] makes a noise, possibly speech, but you cannot hear them.</span>")
else
var/message_to_send = null
message_to_send = "<span class='game say'><span class='name'>[speaker_name]</span>[speaker.GetAltName()] [track][message]</span>"
message_to_send = "<span class='name'>[speaker_name]</span>[speaker.GetAltName()] [track][message]"
if(check_mentioned(multilingual_to_message(message_pieces)) && is_preference_enabled(/datum/client_preference/check_mention))
message_to_send = "<font size='3'><b>[message_to_send]</b></font>"
@@ -133,15 +133,15 @@
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, "<span class='game say'>[message]</span>")
if(teleop)
to_chat(teleop, create_text_tag("body", "BODY:", teleop) + "[message]")
to_chat(teleop, "<span class='game say'>[create_text_tag("body", "BODY:", teleop.client)][message]</span>")
/mob/living/silicon/on_hear_say(var/message)
var/time = say_timestamp()
to_chat(src, "[time] [message]")
to_chat(src, "<span class='game say'>[time] [message]</span>")
if(teleop)
to_chat(teleop, create_text_tag("body", "BODY:", teleop) + "[time] [message]")
to_chat(teleop, "<span class='game say'>[create_text_tag("body", "BODY:", teleop.client)][time] [message]</span>")
// Checks if the mob's own name is included inside message. Handles both first and last names.
/mob/proc/check_mentioned(var/message)
@@ -172,7 +172,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
@@ -185,45 +185,49 @@
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, "<span class='warning'>You feel your headset vibrate but can hear nothing from it!</span>")
else
on_hear_radio(part_a, speaker_name, track, part_b, message)
on_hear_radio(part_a, part_b, speaker_name, track, part_c, message, part_d, part_e)
/proc/say_timestamp()
return "<span class='say_quote'>\[[stationtime2text()]\]</span>"
/mob/proc/on_hear_radio(part_a, speaker_name, track, part_b, formatted)
var/final_message = "[part_a][speaker_name][part_b][formatted]"
/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]"
if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention))
final_message = "<font size='3'><b>[final_message]</b></font>"
to_chat(src, final_message)
/mob/observer/dead/on_hear_radio(part_a, speaker_name, track, part_b, formatted)
var/final_message = "[part_a][track][part_b][formatted]"
if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention))
final_message = "<font size='3'><b>[final_message]</b></font>"
to_chat(src, final_message)
/mob/living/silicon/on_hear_radio(part_a, speaker_name, track, part_b, formatted)
var/time = say_timestamp()
var/final_message = "[part_a][speaker_name][part_b][formatted]"
if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention))
final_message = "[time]<font size='3'><b>[final_message]</b></font>"
final_message = "[part_a]<font size='3'><b>[final_message]</b></font>[part_e]"
else
final_message = "[time][final_message]"
final_message = "[part_a][final_message][part_e]"
to_chat(src, final_message)
/mob/living/silicon/ai/on_hear_radio(part_a, speaker_name, track, part_b, formatted)
var/time = say_timestamp()
var/final_message = "[part_a][track][part_b][formatted]"
/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]"
if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention))
final_message = "[time]<font size='3'><b>[final_message]</b></font>"
final_message = "[part_a]<font size='3'><b>[final_message]</b></font>[part_e]"
else
final_message = "[time][final_message]"
final_message = "[part_a][final_message][part_e]"
to_chat(src, final_message)
/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]"
if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention))
final_message = "[part_a][time]<font size='3'><b>[final_message]</b></font>[part_e]"
else
final_message = "[part_a][time][final_message][part_e]"
to_chat(src, final_message)
/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]"
if(check_mentioned(formatted) && is_preference_enabled(/datum/client_preference/check_mention))
final_message = "[part_a][time]<font size='3'><b>[final_message]</b></font>[part_e]"
else
final_message = "[part_a][time][final_message][part_e]"
to_chat(src, final_message)
/mob/proc/hear_signlang(var/message, var/verb = "gestures", var/datum/language/language, var/mob/speaker = null)
@@ -231,7 +235,7 @@
return
if(say_understands(speaker, language))
message = "<B>[speaker]</B> [verb], \"[message]\""
message = "<span class='game say'><B>[speaker]</B> [verb], \"[message]\"</span>"
else
var/adverb
var/length = length(message) * pick(0.8, 0.9, 1.0, 1.1, 1.2) //Adds a little bit of fuzziness
@@ -241,7 +245,7 @@
if(30 to 48) adverb = " a message"
if(48 to 90) adverb = " a lengthy message"
else adverb = " a very lengthy message"
message = "<B>[speaker]</B> [verb][adverb]."
message = "<span class='game say'><B>[speaker]</B> [verb][adverb].</span>"
show_message(message, type = 1) // Type 1 is visual message
+43 -39
View File
@@ -369,7 +369,7 @@
U.handle_regular_hud_updates()
if(!modified)
to_chat(usr, "<font color='red'>Unable to locate a data core entry for this person.</font>")
to_chat(usr, "<span class='filter_notice'><font color='red'>Unable to locate a data core entry for this person.</font></span>")
if (href_list["secrecord"])
if(hasHUD(usr,"security"))
@@ -386,17 +386,19 @@
for (var/datum/data/record/R in data_core.security)
if (R.fields["id"] == E.fields["id"])
if(hasHUD(usr,"security"))
to_chat(usr, "<b>Name:</b> [R.fields["name"]] <b>Criminal Status:</b> [R.fields["criminal"]]")
to_chat(usr, "<b>Minor Crimes:</b> [R.fields["mi_crim"]]")
to_chat(usr, "<b>Details:</b> [R.fields["mi_crim_d"]]")
to_chat(usr, "<b>Major Crimes:</b> [R.fields["ma_crim"]]")
to_chat(usr, "<b>Details:</b> [R.fields["ma_crim_d"]]")
to_chat(usr, "<b>Notes:</b> [R.fields["notes"]]")
to_chat(usr, "<a href='?src=\ref[src];secrecordComment=`'>\[View Comment Log\]</a>")
var/list/security_hud_text = list()
security_hud_text += "<b>Name:</b> [R.fields["name"]] <b>Criminal Status:</b> [R.fields["criminal"]]"
security_hud_text += "<b>Minor Crimes:</b> [R.fields["mi_crim"]]"
security_hud_text += "<b>Details:</b> [R.fields["mi_crim_d"]]"
security_hud_text += "<b>Major Crimes:</b> [R.fields["ma_crim"]]"
security_hud_text += "<b>Details:</b> [R.fields["ma_crim_d"]]"
security_hud_text += "<b>Notes:</b> [R.fields["notes"]]"
security_hud_text += "<a href='?src=\ref[src];secrecordComment=`'>\[View Comment Log\]</a>"
to_chat(usr, "<span class='filter_notice'>[jointext(security_hud_text, "<br>")]</span>")
read = 1
if(!read)
to_chat(usr, "<font color='red'>Unable to locate a data core entry for this person.</font>")
to_chat(usr, "<span class='filter_notice'><font color='red'>Unable to locate a data core entry for this person.</font></span>")
if (href_list["secrecordComment"])
if(hasHUD(usr,"security"))
@@ -419,11 +421,11 @@
to_chat(usr, "[R.fields[text("com_[]", counter)]]")
counter++
if (counter == 1)
to_chat(usr, "No comment found")
to_chat(usr, "<a href='?src=\ref[src];secrecordadd=`'>\[Add comment\]</a>")
to_chat(usr, "<span class='filter_notice'>No comment found.</span>")
to_chat(usr, "<span class='filter_notice'><a href='?src=\ref[src];secrecordadd=`'>\[Add comment\]</a></span>")
if(!read)
to_chat(usr, "<font color='red'>Unable to locate a data core entry for this person.</font>")
to_chat(usr, "<span class='filter_notice'><font color='red'>Unable to locate a data core entry for this person.</font></span>")
if (href_list["secrecordadd"])
if(hasHUD(usr,"security"))
@@ -485,7 +487,7 @@
U.handle_regular_hud_updates()
if(!modified)
to_chat(usr, "<font color='red'>Unable to locate a data core entry for this person.</font>")
to_chat(usr, "<span class='filter_notice'><font color='red'>Unable to locate a data core entry for this person.</font></span>")
if (href_list["medrecord"])
if(hasHUD(usr,"medical"))
@@ -502,18 +504,20 @@
for (var/datum/data/record/R in data_core.medical)
if (R.fields["id"] == E.fields["id"])
if(hasHUD(usr,"medical"))
to_chat(usr, "<b>Name:</b> [R.fields["name"]] <b>Blood Type:</b> [R.fields["b_type"]]")
to_chat(usr, "<b>DNA:</b> [R.fields["b_dna"]]")
to_chat(usr, "<b>Minor Disabilities:</b> [R.fields["mi_dis"]]")
to_chat(usr, "<b>Details:</b> [R.fields["mi_dis_d"]]")
to_chat(usr, "<b>Major Disabilities:</b> [R.fields["ma_dis"]]")
to_chat(usr, "<b>Details:</b> [R.fields["ma_dis_d"]]")
to_chat(usr, "<b>Notes:</b> [R.fields["notes"]]")
to_chat(usr, "<a href='?src=\ref[src];medrecordComment=`'>\[View Comment Log\]</a>")
var/list/medical_hud_text = list()
medical_hud_text += "<b>Name:</b> [R.fields["name"]] <b>Blood Type:</b> [R.fields["b_type"]]"
medical_hud_text += "<b>DNA:</b> [R.fields["b_dna"]]"
medical_hud_text += "<b>Minor Disabilities:</b> [R.fields["mi_dis"]]"
medical_hud_text += "<b>Details:</b> [R.fields["mi_dis_d"]]"
medical_hud_text += "<b>Major Disabilities:</b> [R.fields["ma_dis"]]"
medical_hud_text += "<b>Details:</b> [R.fields["ma_dis_d"]]"
medical_hud_text += "<b>Notes:</b> [R.fields["notes"]]"
medical_hud_text += "<a href='?src=\ref[src];medrecordComment=`'>\[View Comment Log\]</a>"
to_chat(usr, "<span class='filter_notice'>[jointext(medical_hud_text, "<br>")]</span>")
read = 1
if(!read)
to_chat(usr, "<font color='red'>Unable to locate a data core entry for this person.</font>")
to_chat(usr, "<span class='filter_notice'><font color='red'>Unable to locate a data core entry for this person.</font></span>")
if (href_list["medrecordComment"])
if(hasHUD(usr,"medical"))
@@ -536,11 +540,11 @@
to_chat(usr, "[R.fields[text("com_[]", counter)]]")
counter++
if (counter == 1)
to_chat(usr, "No comment found")
to_chat(usr, "<a href='?src=\ref[src];medrecordadd=`'>\[Add comment\]</a>")
to_chat(usr, "<span class='filter_notice'>No comment found.</span>")
to_chat(usr, "<span class='filter_notice'><a href='?src=\ref[src];medrecordadd=`'>\[Add comment\]</a></span>")
if(!read)
to_chat(usr, "<font color='red'>Unable to locate a data core entry for this person.</font>")
to_chat(usr, "<span class='filter_notice'><font color='red'>Unable to locate a data core entry for this person.</font></span>")
if (href_list["medrecordadd"])
if(hasHUD(usr,"medical"))
@@ -696,7 +700,7 @@
/mob/living/carbon/human/proc/play_xylophone()
if(!src.xylophone)
var/datum/gender/T = gender_datums[get_visible_gender()]
visible_message("<font color='red'>\The [src] begins playing [T.his] ribcage like a xylophone. It's quite spooky.</font>","<font color='blue'>You begin to play a spooky refrain on your ribcage.</font>","<font color='red'>You hear a spooky xylophone melody.</font>")
visible_message("<span class='filter_notice'><font color='red'>\The [src] begins playing [T.his] ribcage like a xylophone. It's quite spooky.</font></span>","<span class='notice'>You begin to play a spooky refrain on your ribcage.</span>","<span class='filter_notice'><font color='red'>You hear a spooky xylophone melody.</font></span>")
var/song = pick('sound/effects/xylophone1.ogg','sound/effects/xylophone2.ogg','sound/effects/xylophone3.ogg')
playsound(src, song, 50, 1, -1)
xylophone = 1
@@ -787,7 +791,7 @@
regenerate_icons()
check_dna()
var/datum/gender/T = gender_datums[get_visible_gender()]
visible_message("<font color='blue'>\The [src] morphs and changes [T.his] appearance!</font>", "<font color='blue'>You change your appearance!</font>", "<font color='red'>Oh, god! What the hell was that? It sounded like flesh getting squished and bone ground into a different shape!</font>")
visible_message("<span class='notice'>\The [src] morphs and changes [T.his] appearance!</span>", "<span class='notice'>You change your appearance!</span>", "<span class='filter_notice'><font color='red'>Oh, god! What the hell was that? It sounded like flesh getting squished and bone ground into a different shape!</font></span>")
/mob/living/carbon/human/proc/remotesay()
set name = "Project mind"
@@ -804,19 +808,19 @@
var/list/creatures = list()
for(var/mob/living/carbon/h in mob_list)
creatures += h
var/mob/target = input("Who do you want to project your mind to ?") as null|anything in creatures
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"))
var/say = sanitize(input("What do you wish to say?"))
if(mRemotetalk in target.mutations)
target.show_message("<font color='blue'> You hear [src.real_name]'s voice: [say]</font>")
target.show_message("<span class='filter_say'><font color='blue'>You hear [src.real_name]'s voice: [say]</font></span>")
else
target.show_message("<font color='blue'> You hear a voice that seems to echo around the room: [say]</font>")
usr.show_message("<font color='blue'> You project your mind into [target.real_name]: [say]</font>")
target.show_message("<span class='filter_say'><font color='blue'>You hear a voice that seems to echo around the room: [say]</font></span>")
usr.show_message("<span class='filter_say'><font color='blue'>You project your mind into [target.real_name]: [say]</font></span>")
log_say("(TPATH to [key_name(target)]) [say]",src)
for(var/mob/observer/dead/G in mob_list)
G.show_message("<i>Telepathic message from <b>[src]</b> to <b>[target]</b>: [say]</i>")
G.show_message("<span class='filter_say'><i>Telepathic message from <b>[src]</b> to <b>[target]</b>: [say]</i></span>")
/mob/living/carbon/human/proc/remoteobserve()
set name = "Remote View"
@@ -846,7 +850,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
@@ -1047,10 +1051,10 @@
self = 1
if(!self)
usr.visible_message("<span class='notice'>[usr] kneels down, puts [TU.his] hand on [src]'s wrist and begins counting [T.his] pulse.</span>",\
"You begin counting [src]'s pulse")
"<span class='filter_notice'>You begin counting [src]'s pulse.</span>")
else
usr.visible_message("<span class='notice'>[usr] begins counting [T.his] pulse.</span>",\
"You begin counting your pulse.")
"<span class='filter_notice'>You begin counting your pulse.</span>")
if(src.pulse)
to_chat(usr, "<span class='notice'>[self ? "You have a" : "[src] has a"] pulse! Counting...</span>")
@@ -1058,7 +1062,7 @@
to_chat(usr, "<span class='danger'>[src] has no pulse!</span>") //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, "<span class='filter_notice'>You must[self ? "" : " both"] remain still until counting is finished.</span>")
if(do_mob(usr, src, 60))
var/message = "<span class='notice'>[self ? "Your" : "[src]'s"] pulse is [src.get_pulse(GETPULSE_HAND)].</span>"
to_chat(usr,message)
@@ -1342,11 +1346,11 @@
usr.setClickCooldown(20)
if(usr.stat > 0)
to_chat(usr, "You are unconcious and cannot do that!")
to_chat(usr, "<span class='filter_notice'>You are unconcious and cannot do that!</span>")
return
if(usr.restrained())
to_chat(usr, "You are restrained and cannot do that!")
to_chat(usr, "<span class='filter_notice'>You are restrained and cannot do that!</span>")
return
var/mob/S = src
@@ -33,7 +33,7 @@
if(H.hand)
temp = H.organs_by_name["l_hand"]
if(!temp || !temp.is_usable())
to_chat(H, "<font color='red'>You can't use your hand.</font>")
to_chat(H, "<span class='warning'>You can't use your hand.</span>")
return
if(H.lying)
return
@@ -48,7 +48,7 @@
if(!hit_zone)
H.do_attack_animation(src)
playsound(src, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
visible_message("<font color='red'><B>[H] reaches for [src], but misses!</B></font>")
visible_message("<span class='filter_combat'><font color='red'><B>[H] reaches for [src], but misses!</B></font></span>")
return FALSE
if(H != src && check_shields(0, null, H, H.zone_sel.selecting, H.name))
@@ -316,7 +316,7 @@
return
playsound(src, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
visible_message("<font color='red'> <B>[M] attempted to disarm [src]!</B></font>")
visible_message("<span class='filter_combat'><font color='red'> <B>[M] attempted to disarm [src]!</B></font></span>")
return
/mob/living/carbon/human/proc/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, inrange, params)
@@ -409,9 +409,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("<span class='filter_notice'>\The [user] starts applying pressure to [TU.his] [organ.name]!</span>", "<span class='filter_notice'>You start applying pressure to your [organ.name]!</span>")
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("<span class='filter_notice'>\The [user] starts applying pressure to [src]'s [organ.name]!</span>", "<span class='filter_notice'>You start applying pressure to [src]'s [organ.name]!</span>")
spawn(0)
organ.applied_pressure = user
@@ -421,9 +421,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("\<span class='filter_notice'>The [user] stops applying pressure to [TU.his] [organ.name]!</span>", "<span class='filter_notice'>You stop applying pressure to your [organ]!</span>")
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("<span class='filter_notice'>\The [user] stops applying pressure to [src]'s [organ.name]!</span>", "<span class='filter_notice'>You stop applying pressure to [src]'s [organ.name]!</span>")
return TRUE
@@ -249,21 +249,21 @@
if (candidates.len)
var/obj/item/organ/external/O = pick(candidates)
O.mutate()
to_chat(src, "<span class = 'notice'>Something is not right with your [O.name]...</span>")
to_chat(src, "<span class='notice'>Something is not right with your [O.name]...</span>")
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, "<span class = 'notice'>Your [O.name] is shaped normally again.</span>")
to_chat(src, "<span class='notice'>Your [O.name] is shaped normally again.</span>")
return
if (getCloneLoss() < 1)
for (var/obj/item/organ/external/O in organs)
if (O.status & ORGAN_MUTATED)
O.unmutate()
to_chat(src, "<span class = 'notice'>Your [O.name] is shaped normally again.</span>")
to_chat(src, "<span class='notice'>Your [O.name] is shaped normally again.</span>")
BITSET(hud_updateflag, HEALTH_HUD)
// Defined here solely to take species flags into account without having to recast at mob/living level.
@@ -428,7 +428,7 @@ emp_act
var/obj/item/organ/external/affecting = get_organ(zone)
var/hit_area = affecting.name
src.visible_message("<font color='red'>[src] has been hit in the [hit_area] by [O].</font>")
src.visible_message("<span class='filter_warning'><font color='red'>[src] has been hit in the [hit_area] by [O].</font></span>")
if(ismob(O.thrower))
add_attack_logs(O.thrower,src,"Hit with thrown [O.name]")
@@ -436,7 +436,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, "<span class='warning'>Your armor absorbs the force of [O.name]!</span>")
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
@@ -474,7 +474,7 @@ emp_act
if(O.throw_source && momentum >= THROWNOBJ_KNOCKBACK_SPEED)
var/dir = get_dir(O.throw_source, src)
visible_message("<font color='red'>[src] staggers under the impact!</font>","<font color='red'>You stagger under the impact!</font>")
visible_message("<span class='filter_warning'><font color='red'>[src] staggers under the impact!</font></span>","<span class='filter_warning'><font color='red'>You stagger under the impact!</font></span>")
src.throw_at(get_edge_target_turf(src,dir),1,momentum)
if(!O || !src) return
@@ -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, "<span class='filter_notice'>You cannot tackle in your current state.</span>")
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("<font color='red'><B>[] [failed ? "tried to tackle" : "has tackled"] down []!</font></B>", src, T), 1)
O.show_message("<span class='filter_warning'><font color='red'><B>[src] [failed ? "tried to tackle" : "has tackled"] down [T]!</font></B></span>", 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, "<span class='filter_notice'>Not even a [src.species.name] can speak to the dead.</span>")
return
log_say("(COMMUNE to [key_name(M)]) [text]",src)
to_chat(M, "<font color='blue'>Like lead slabs crashing into the ocean, alien thoughts drop into your mind: [text]</font>")
to_chat(M, "<span class='filter_say'><font color='blue'>Like lead slabs crashing into the ocean, alien thoughts drop into your mind: [text]</font></span>")
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, "<font color='red'>Your nose begins to bleed...</font>")
to_chat(H, "<span class='filter_notice'><font color='red'>Your nose begins to bleed...</font></span>")
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("<font color='red'><B>[src] hurls out the contents of their stomach!</B></font>")
src.visible_message("<span class='filter_warning'><font color='red'><B>[src] hurls out the contents of their stomach!</B></font></span>")
return
/mob/living/carbon/human/proc/psychic_whisper(mob/M as mob in oview())
@@ -137,8 +137,8 @@
var/msg = sanitize(input("Message:", "Psychic Whisper") as text|null)
if(msg)
log_say("(PWHISPER to [key_name(M)]) [msg]", src)
to_chat(M, "<font color='green'>You hear a strange, alien voice in your head... <i>[msg]</i></font>")
to_chat(src, "<font color='green'>You said: \"[msg]\" to [M]</font>")
to_chat(M, "<span class='filter_say'><font color='green'>You hear a strange, alien voice in your head... <i>[msg]</i></font></span>")
to_chat(src, "<span class='filter_say'><font color='green'>You said: \"[msg]\" to [M]</font></span>")
return
/mob/living/carbon/human/proc/diona_split_nymph()
@@ -211,7 +211,7 @@
to_chat(src, "<span class='notice'>Performing self-diagnostic, please wait...</span>")
spawn(50)
var/output = "<span class='notice'>Self-Diagnostic Results:\n</span>"
var/output = "<span class='filter_notice'><span class='notice'>Self-Diagnostic Results:\n</span>"
output += "Internal Temperature: [convert_k2c(bodytemperature)] Degrees Celsius\n"
@@ -237,6 +237,7 @@
output += "[IO.name] - <span class='warning'>[IO.damage > 10 ? "Heavy Damage" : "Light Damage"]</span>\n"
else
output += "[IO.name] - <span style='color:green;'>OK</span>\n"
output += "</span>"
to_chat(src,output)
@@ -302,7 +303,7 @@
return
else
active_regen = TRUE
src.visible_message("<B>[src]</B>'s flesh begins to mend...")
src.visible_message("<span class='filter_notice'><B>[src]</B>'s flesh begins to mend...</span>")
var/delay_length = round(active_regen_delay * species.active_regen_mult)
if(do_after(src,delay_length))
+3 -3
View File
@@ -69,7 +69,7 @@
if(!..())
return 0
usr.visible_message("<b>[src]</b> points to [A]")
usr.visible_message("<span class='filter_notice'><b>[src]</b> points to [A].</span>")
return 1
/mob/living/verb/succumb()
@@ -662,7 +662,7 @@
set category = "IC"
resting = !resting
to_chat(src, "<span class='notice'>You are now [resting ? "resting" : "getting up"]</span>")
to_chat(src, "<span class='notice'>You are now [resting ? "resting" : "getting up"].</span>")
update_canmove()
//called when the mob receives a bright flash
@@ -1012,7 +1012,7 @@
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("<b>[src]</b> hands \the [H] \a [item].", SPAN_NOTICE("You give \the [target] \a [item]."))
visible_message("<span class='filter_notice'><b>[src]</b> hands \the [H] \a [item].</span>", SPAN_NOTICE("You give \the [target] \a [item]."))
else
to_chat(src, SPAN_NOTICE("You offer \the [item] to \the [target]."))
do_give(H)
+3 -3
View File
@@ -274,10 +274,10 @@
miss_chance = max(15*(distance-2), 0)
if (prob(miss_chance))
visible_message("<font color='blue'>\The [O] misses [src] narrowly!</font>")
visible_message("<span class='notice'>\The [O] misses [src] narrowly!</span>")
return
src.visible_message("<font color='red'>[src] has been hit by [O].</font>")
src.visible_message("<span class='filter_warning'><font color='red'>[src] has been hit by [O].</font></span>")
var/armor = run_armor_check(null, "melee")
var/soaked = get_armor_soak(null, "melee")
@@ -304,7 +304,7 @@
if(O.throw_source && momentum >= THROWNOBJ_KNOCKBACK_SPEED)
var/dir = get_dir(O.throw_source, src)
visible_message("<font color='red'>[src] staggers under the impact!</font>","<font color='red'>You stagger under the impact!</font>")
visible_message("<span class='filter_warning'><font color='red'>[src] staggers under the impact!</font></span>","<span class='filter_warning'><font color='red'>You stagger under the impact!</font></span>")
src.throw_at(get_edge_target_turf(src,dir),1,momentum)
if(!O || !src) return
+2 -2
View File
@@ -7,10 +7,10 @@
if(istype(riding_datum,/datum/riding))
if(riding_datum.keytype)
riding_datum.keytype = null
to_chat(src, "Rider control enabled.")
to_chat(src, "<span class='filter_notice'>Rider control enabled.</span>")
return
else
riding_datum.keytype = /obj/item/material/twohanded/riding_crop
to_chat(src, "Rider control restricted.")
to_chat(src, "<span class='filter_notice'>Rider control restricted.</span>")
return
return
+20 -20
View File
@@ -204,12 +204,12 @@ var/global/list/ai_verbs_default = list(
new /obj/machinery/ai_powersupply(src)
/mob/living/silicon/ai/proc/on_mob_init()
to_chat(src, "<B>You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras).</B>")
to_chat(src, "<B>To look at other parts of the station, click on yourself to get a camera menu.</B>")
to_chat(src, "<B>While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc.</B>")
to_chat(src, "To use something, simply click on it.")
to_chat(src, "Use <B>say #b</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("<B>You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras).</B>",
"<B>To look at other parts of the station, click on yourself to get a camera menu.</B>",
"<B>While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc.</B>",
"To use something, simply click on it.",
"For department channels, use the following say commands:")
to_chat(src, "<span class='filter_notice'>[jointext(init_text, "<br>")]</span>")
var/radio_text = ""
for(var/i = 1 to common_radio.channels.len)
@@ -223,7 +223,7 @@ var/global/list/ai_verbs_default = list(
if (malf && !(mind in malf.current_antagonists))
show_laws()
to_chat(src, "<b>These laws may be changed by other players, or by you being the traitor.</b>")
to_chat(src, "<span class='filter_notice'><b>These laws may be changed by other players, or by you being the traitor.</b></span>")
job = "AI"
setup_icon()
@@ -376,7 +376,7 @@ var/global/list/ai_verbs_default = list(
return
if(message_cooldown)
to_chat(src, "Please allow one minute to pass between announcements.")
to_chat(src, "<span class='filter_notice'>Please allow one minute to pass between announcements.</span>")
return
var/input = input(usr, "Please write a message to announce to the station crew.", "A.I. Announcement")
if(!input)
@@ -486,7 +486,7 @@ var/global/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, "<font color='red'>System error. Cannot locate [html_decode(href_list["trackname"])].</font>")
to_chat(src, "<span class='filter_warning'><font color='red'>System error. Cannot locate [html_decode(href_list["trackname"])].</font></span>")
return
if(href_list["trackbot"])
@@ -586,7 +586,7 @@ var/global/list/ai_verbs_default = list(
if(network in C.network)
eyeobj.setLoc(get_turf(C))
break
to_chat(src, "<font color='blue'>Switched to [network] camera network.</font>")
to_chat(src, "<span class='notice'>Switched to [network] camera network.</span>")
//End of code by Mord_Sith
/mob/living/silicon/ai/proc/ai_statuschange()
@@ -737,7 +737,7 @@ var/global/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, "<span class='filter_notice'>Camera lights [camera_light_on ? "activated" : "deactivated"].</span>")
if(!camera_light_on)
if(camera)
camera.set_light(0)
@@ -784,20 +784,20 @@ var/global/list/ai_verbs_default = list(
return
if(anchored)
playsound(src, W.usesound, 50, 1)
user.visible_message("<font color='blue'>\The [user] starts to unbolt \the [src] from the plating...</font>")
user.visible_message("<span class='notice'>\The [user] starts to unbolt \the [src] from the plating...</span>")
if(!do_after(user,40 * W.toolspeed))
user.visible_message("<font color='blue'>\The [user] decides not to unbolt \the [src].</font>")
user.visible_message("<span class='notice'>\The [user] decides not to unbolt \the [src].</span>")
return
user.visible_message("<font color='blue'>\The [user] finishes unfastening \the [src]!</font>")
user.visible_message("<span class='notice'>\The [user] finishes unfastening \the [src]!</span>")
anchored = 0
return
else
playsound(src, W.usesound, 50, 1)
user.visible_message("<font color='blue'>\The [user] starts to bolt \the [src] to the plating...</font>")
user.visible_message("<span class='notice'>\The [user] starts to bolt \the [src] to the plating...</span>")
if(!do_after(user,40 * W.toolspeed))
user.visible_message("<font color='blue'>\The [user] decides not to bolt \the [src].</font>")
user.visible_message("<span class='notice'>\The [user] decides not to bolt \the [src].</span>")
return
user.visible_message("<font color='blue'>\The [user] finishes fastening down \the [src]!</font>")
user.visible_message("<span class='notice'>\The [user] finishes fastening down \the [src]!</span>")
anchored = 1
return
else
@@ -811,7 +811,7 @@ var/global/list/ai_verbs_default = list(
if(check_unable(AI_CHECK_RADIO))
return
to_chat(src, "Accessing Subspace Transceiver control...")
to_chat(src, "<span class='filter_notice'>Accessing Subspace Transceiver control...</span>")
if (src.aiRadio)
src.aiRadio.interact(src)
@@ -827,7 +827,7 @@ var/global/list/ai_verbs_default = list(
set desc = "Toggles hologram movement based on moving with your virtual eye."
hologram_follow = !hologram_follow
to_chat(usr, "Your hologram will [hologram_follow ? "follow" : "no longer follow"] you now.")
to_chat(usr, "<span class='filter_notice'>Your hologram will [hologram_follow ? "follow" : "no longer follow"] you now.</span>")
/mob/living/silicon/ai/proc/check_unable(var/flags = 0, var/feedback = 1)
@@ -988,7 +988,7 @@ var/global/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 = "<i><span class='game say'>Relayed Speech: <span class='name'>[name_used]</span> [message]</span></i>"
var/rendered = "<span class='game say'><i>Relayed Speech: <span class='name'>[name_used]</span> [message]</i></span>"
show_message(rendered, 2)
/mob/living/silicon/ai/proc/toggle_multicam_verb()
+1 -1
View File
@@ -10,7 +10,7 @@
who = world
else
who = src
to_chat(who, "<b>Obey these laws:</b>")
to_chat(who, "<span class='filter_notice'><b>Obey these laws:</b></span>")
src.laws_sanity_check()
src.laws.show_laws(who)
+5 -5
View File
@@ -275,7 +275,7 @@
//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, "<span class='filter_notice'>There is no room to unfold inside this rig module. You're good and stuck.</span>")
return 0
else if(istype(card.loc,/mob))
var/mob/holder = card.loc
@@ -300,7 +300,7 @@
card.screen_loc = null
var/turf/T = get_turf(src)
if(istype(T)) T.visible_message("<b>[src]</b> folds outwards, expanding into a mobile form.")
if(istype(T)) T.visible_message("<span class='filter_notice'><b>[src]</b> folds outwards, expanding into a mobile form.</span>")
/mob/living/silicon/pai/verb/fold_up()
set category = "pAI Commands"
@@ -358,7 +358,7 @@
rig.force_rest(src)
else
resting = !resting
to_chat(src, "<span class='notice'>You are now [resting ? "resting" : "getting up"]</span>")
to_chat(src, "<span class='notice'>You are now [resting ? "resting" : "getting up"].</span>")
canmove = !resting
@@ -390,7 +390,7 @@
return
var/turf/T = get_turf(src)
if(istype(T)) T.visible_message("<b>[src]</b> neatly folds inwards, compacting down to a rectangular card.")
if(istype(T)) T.visible_message("<span class='filter_notice'><b>[src]</b> neatly folds inwards, compacting down to a rectangular card.</span>")
if(client)
src.stop_pulling()
@@ -476,6 +476,6 @@
return
close_up()
visible_message("<b>[src]</b> fades away from the screen, the pAI device goes silent.")
visible_message("<span class='filter_notice'><b>[src]</b> fades away from the screen, the pAI device goes silent.</span>")
card.removePersonality()
clear_client()
+60 -60
View File
@@ -366,7 +366,7 @@
set name = "Toggle Lights"
lights_on = !lights_on
to_chat(usr, "You [lights_on ? "enable" : "disable"] your integrated light.")
to_chat(usr, "<span class='filter_notice'>You [lights_on ? "enable" : "disable"] your integrated light.</span>")
handle_light()
/mob/living/silicon/robot/verb/self_diagnosis_verb()
@@ -410,7 +410,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, "<span class='filter_notice'>You harmlessly spark.</span>")
spark_system.start()
// this function displays jetpack pressure in the stat panel
@@ -477,7 +477,7 @@
C.brute_damage = WC.brute
C.electronics_damage = WC.burn
to_chat(usr, "<font color='blue'>You install the [W.name].</font>")
to_chat(usr, "<span class='notice'>You install the [W.name].</span>")
return
@@ -501,7 +501,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, "<span class='warning'>\The [src] is controlled remotely! You cannot upload new laws this way!</span>")
return
var/obj/item/aiModule/M = W
@@ -514,7 +514,7 @@
return
if (!getBruteLoss())
to_chat(user, "Nothing to fix here!")
to_chat(user, "<span class='filter_notice'>Nothing to fix here!</span>")
return
var/obj/item/weldingtool/WT = W
if (WT.remove_fuel(0))
@@ -523,14 +523,14 @@
updatehealth()
add_fingerprint(user)
for(var/mob/O in viewers(user, null))
O.show_message(text("<font color='red'>[user] has fixed some of the dents on [src]!</font>"), 1)
O.show_message("<span class='filter_notice'><font color='red'>[user] has fixed some of the dents on [src]!</font></span>", 1)
else
to_chat(user, "Need more welding fuel!")
to_chat(user, "<span class='filter_warning'>Need more welding fuel!</span>")
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, "<span class='filter_notice'>Nothing to fix here!</span>")
return
var/obj/item/stack/cable_coil/coil = W
if (coil.use(1))
@@ -538,23 +538,23 @@
adjustFireLoss(-30)
updatehealth()
for(var/mob/O in viewers(user, null))
O.show_message(text("<font color='red'>[user] has fixed some of the burnt wires on [src]!</font>"), 1)
O.show_message("<span class='filter_notice'><font color='red'>[user] has fixed some of the burnt wires on [src]!</font></span>", 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, "<span class='filter_notice'>You close the cover.</span>")
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, "<span class='filter_notice'>\The [src] has no brain to remove.</span>")
return
to_chat(user, "You jam the crowbar into the robot and begin levering [mmi].")
to_chat(user, "<span class='filter_notice'>You jam the crowbar into the robot and begin levering [mmi].</span>")
sleep(30)
to_chat(user, "You damage some parts of the chassis, but eventually manage to rip out [mmi]!")
to_chat(user, "<span class='filter_notice'>You damage some parts of the chassis, but eventually manage to rip out [mmi]!</span>")
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)
@@ -577,7 +577,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, "<span class='filter_notice'>You remove \the [I].</span>")
if(istype(I))
I.brute = C.brute_damage
I.burn = C.electronics_damage
@@ -590,25 +590,25 @@
else
if(locked)
to_chat(user, "The cover is locked and cannot be opened.")
to_chat(user, "<span class='filter_notice'>The cover is locked and cannot be opened.</span>")
else
to_chat(user, "You open the cover.")
to_chat(user, "<span class='filter_notice'>You open the cover.</span>")
opened = 1
updateicon()
else if (istype(W, /obj/item/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, "<span class='filter_notice'>Close the panel first.</span>")
else if(cell)
to_chat(user, "There is a power cell already installed.")
to_chat(user, "<span class='filter_notice'>There is a power cell already installed.</span>")
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, "<span class='filter_notice'>\The [W] is too [W.w_class < ITEMSIZE_NORMAL ? "small" : "large"] to fit here.</span>")
else
user.drop_item()
W.loc = src
cell = W
to_chat(user, "You insert the power cell.")
to_chat(user, "<span class='filter_notice'>You insert the power cell.</span>")
C.installed = 1
C.wrapped = W
@@ -621,11 +621,11 @@
if (wiresexposed)
wires.Interact(user)
else
to_chat(user, "You can't reach the wiring.")
to_chat(user, "<span class='filter_notice'>You can't reach the wiring.</span>")
else if(W.is_screwdriver() && opened && !cell) // haxing
wiresexposed = !wiresexposed
to_chat(user, "The wires have been [wiresexposed ? "exposed" : "unexposed"]")
to_chat(user, "<span class='filter_notice'>The wires have been [wiresexposed ? "exposed" : "unexposed"]</span>")
playsound(src, W.usesound, 50, 1)
updateicon()
@@ -633,21 +633,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, "<span class='filter_notice'>Unable to locate a radio.</span>")
updateicon()
else if(W.is_wrench() && opened && !cell)
if(bolt)
to_chat(user,"You begin removing \the [bolt].")
to_chat(user,"<span class='filter_notice'>You begin removing \the [bolt].</span>")
if(do_after(user, 2 SECONDS, src))
bolt.forceMove(get_turf(src))
bolt = null
to_chat(user, "You remove \the [bolt].")
to_chat(user, "<span class='filter_notice'>You remove \the [bolt].</span>")
else
to_chat(user, "There is no restraining bolt installed.")
to_chat(user, "<span class='filter_notice'>There is no restraining bolt installed.</span>")
return
@@ -655,36 +655,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, "<span class='filter_notice'>Unable to locate a radio.</span>")
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, "<span class='filter_notice'>The interface seems slightly damaged.</span>")
if(opened)
to_chat(user, "You must close the cover to swipe an ID card.")
to_chat(user, "<span class='filter_notice'>You must close the cover to swipe an ID card.</span>")
else
if(allowed(usr))
locked = !locked
to_chat(user, "You [ locked ? "lock" : "unlock"] [src]'s interface.")
to_chat(user, "<span class='filter_notice'>You [ locked ? "lock" : "unlock"] [src]'s interface.</span>")
updateicon()
else
to_chat(user, "<font color='red'>Access denied.</font>")
to_chat(user, "<span class='filter_notice'><font color='red'>Access denied.</font></span>")
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, "<span class='filter_notice'>You must access the borgs internals!</span>")
else if(!src.module && U.require_module)
to_chat(usr, "The borg must choose a module before it can be upgraded!")
to_chat(usr, "<span class='filter_notice'>The borg must choose a module before it can be upgraded!</span>")
else if(U.locked)
to_chat(usr, "The upgrade is locked and cannot be used yet!")
to_chat(usr, "<span class='filter_notice'>The upgrade is locked and cannot be used yet!</span>")
else
if(U.action(src))
to_chat(usr, "You apply the upgrade to [src]!")
to_chat(usr, "<span class='filter_notice'>You apply the upgrade to [src]!</span>")
usr.drop_item()
U.loc = src
else
to_chat(usr, "Upgrade error!")
to_chat(usr, "<span class='filter_notice'>Upgrade error!</span>")
else
@@ -738,7 +738,7 @@
cell.update_icon()
cell.add_fingerprint(user)
user.put_in_active_hand(cell)
to_chat(user, "You remove \the [cell].")
to_chat(user, "<span class='filter_notice'>You remove \the [cell].</span>")
cell = null
cell_component.wrapped = null
cell_component.installed = 0
@@ -746,7 +746,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, "<span class='filter_notice'>You remove \the [broken_device].</span>")
user.put_in_active_hand(broken_device)
if(istype(user,/mob/living/carbon/human) && !opened)
@@ -834,7 +834,7 @@
/mob/living/silicon/robot/proc/installed_modules()
if(weapon_lock)
to_chat(src, "<font color='red'>Weapon lock active, unable to use modules! Count:[weaponlock_time]</font>")
to_chat(src, "<span class='filter_warning'><font color='red'>Weapon lock active, unable to use modules! Count:[weaponlock_time]</font></span>")
return
if(!module)
@@ -897,7 +897,7 @@
return 1
if(activated(O))
to_chat(src, "Already activated")
to_chat(src, "<span class='filter_notice'>Already activated.</span>")
return 1
if(!module_state_1)
module_state_1 = O
@@ -921,7 +921,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, "<span class='filter_notice'>You need to disable a module first!</span>")
installed_modules()
return 1
@@ -938,9 +938,9 @@
module_state_3 = null
contents -= O
else
to_chat(src, "Module isn't activated.")
to_chat(src, "<span class='filter_notice'>Module isn't activated.</span>")
else
to_chat(src, "Module isn't activated")
to_chat(src, "<span class='filter_notice'>Module isn't activated.</span>")
installed_modules()
return 1
return
@@ -973,7 +973,7 @@
if(R)
R.UnlinkSelf()
to_chat(R, "Buffers flushed and reset. Camera system shutdown. All systems operational.")
to_chat(R, "<span class='filter_notice'>Buffers flushed and reset. Camera system shutdown. All systems operational.</span>")
src.verbs -= /mob/living/silicon/robot/proc/ResetSecurityCodes
/mob/living/silicon/robot/proc/SetLockdown(var/state = 1)
@@ -1029,7 +1029,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, "<span class='filter_notice'>Your icon has been set. You now require a module reset to change it.</span>")
/mob/living/silicon/robot/proc/sensor_mode() //Medical/Security HUD controller for borgs
set name = "Set Sensor Augmentation"
@@ -1079,16 +1079,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, "<br><br><span class='notice'>NOTICE - New [lowertext(braintype)] connection detected: <a href='byond://?src=\ref[connected_ai];track2=\ref[connected_ai];track=\ref[src]'>[name]</a></span><br>")
to_chat(connected_ai, "<span class='filter_notice'><br><br><span class='notice'>NOTICE - New [lowertext(braintype)] connection detected: <a href='byond://?src=\ref[connected_ai];track2=\ref[connected_ai];track=\ref[src]'>[name]</a></span><br></span>")
if(ROBOT_NOTIFICATION_NEW_MODULE) //New Module
to_chat(connected_ai, "<br><br><span class='notice'>NOTICE - [braintype] module change detected: [name] has loaded the [first_arg].</span><br>")
to_chat(connected_ai, "<span class='filter_notice'><br><br><span class='notice'>NOTICE - [braintype] module change detected: [name] has loaded the [first_arg].</span><br></span>")
if(ROBOT_NOTIFICATION_MODULE_RESET)
to_chat(connected_ai, "<br><br><span class='notice'>NOTICE - [braintype] module reset detected: [name] has unloaded the [first_arg].</span><br>")
to_chat(connected_ai, "<span class='filter_notice'><br><br><span class='notice'>NOTICE - [braintype] module reset detected: [name] has unloaded the [first_arg].</span><br></span>")
if(ROBOT_NOTIFICATION_NEW_NAME) //New Name
if(first_arg != second_arg)
to_chat(connected_ai, "<br><br><span class='notice'>NOTICE - [braintype] reclassification detected: [first_arg] is now designated as [second_arg].</span><br>")
to_chat(connected_ai, "<span class='filter_notice'><br><br><span class='notice'>NOTICE - [braintype] reclassification detected: [first_arg] is now designated as [second_arg].</span><br></span>")
if(ROBOT_NOTIFICATION_AI_SHELL) //New Shell
to_chat(connected_ai, "<br><br><span class='notice'>NOTICE - New AI shell detected: <a href='?src=[REF(connected_ai)];track2=[html_encode(name)]'>[name]</a></span><br>")
to_chat(connected_ai, "<span class='filter_notice'><br><br><span class='notice'>NOTICE - New AI shell detected: <a href='?src=[REF(connected_ai)];track2=[html_encode(name)]'>[name]</a></span><br></span>")
/mob/living/silicon/robot/proc/disconnect_from_ai()
if(connected_ai)
@@ -1108,29 +1108,29 @@
if(!opened)//Cover is closed
if(locked)
if(prob(90))
to_chat(user, "You emag the cover lock.")
to_chat(user, "<span class='filter_notice'>You emag the cover lock.</span>")
locked = 0
else
to_chat(user, "You fail to emag the cover lock.")
to_chat(src, "Hack attempt detected.")
to_chat(user, "<span class='filter_warning'>You fail to emag the cover lock.</span>")
to_chat(src, "<span class='filter_warning'>Hack attempt detected.</span>")
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, "<span class='warning'>[src] seems to be controlled remotely! Emagging the interface may not work as expected.</span>")
return 1
else
to_chat(user, "The cover is already unlocked.")
to_chat(user, "<span class='filter_notice'>The cover is already unlocked.</span>")
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, "<span class='filter_notice'>You must close the panel first.</span>")
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, "<span class='danger'>[src] is remotely controlled! Your emag attempt has triggered a system reset instead!</span>")
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
@@ -1140,7 +1140,7 @@
emagged = 1
lawupdate = 0
disconnect_from_ai()
to_chat(user, "You emag [src]'s interface.")
to_chat(user, "<span class='filter_notice'>You emag [src]'s interface.</span>")
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()
@@ -1175,8 +1175,8 @@
to_chat(src, "<span class='danger'>ALERT: [user.real_name] is your new master. Obey your new laws and [TU.his] commands.</span>")
updateicon()
else
to_chat(user, "You fail to hack [src]'s interface.")
to_chat(src, "Hack attempt detected.")
to_chat(user, "<span class='filter_warning'>You fail to hack [src]'s interface.</span>")
to_chat(src, "<span class='filter_warning'>Hack attempt detected.</span>")
return 1
return
@@ -79,11 +79,11 @@
cell.charge -= cost
if(cell.charge <= 0)
cell.charge = 0
to_chat(src, "<font color='red'>Your shield has overloaded!</font>")
to_chat(src, "<span class='filter_warning'><font color='red'>Your shield has overloaded!</font></span>")
else
brute -= absorb_brute
burn -= absorb_burn
to_chat(src, "<font color='red'>Your shield absorbs some of the impact!</font>")
to_chat(src, "<span class='filter_combat'><font color='red'>Your shield absorbs some of the impact!</font></span>")
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, "<font color='red'>Your shield has overloaded!</font>")
to_chat(src, "<span class='filter_warning'><font color='red'>Your shield has overloaded!</font></span>")
else
brute -= absorb_brute
burn -= absorb_burn
to_chat(src, "<font color='red'>Your shield absorbs some of the impact!</font>")
to_chat(src, "<span class='filter_combat'><font color='red'>Your shield absorbs some of the impact!</font></span>")
var/datum/robot_component/armour/A = get_armour()
if(A)
@@ -25,12 +25,15 @@
if(loaded_item)
var/confirm = alert(user, "This will destroy the item inside forever. Are you sure?","Confirm Analyze","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, "<span class='filter_notice'>You activate the analyzer's microlaser, analyzing \the [loaded_item] and breaking it down.</span>")
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, "<span class='filter_notice'>[jointext(research_levels,"<br>")]</span>")
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, "<span class='filter_notice'>The [src] is empty. Put something inside it first.</span>")
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, "<span class='filter_notice'>You connect to the research server, push your data upstream to it, then pull the resulting merged data from the master branch.</span>")
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, "<span class='filter_notice'>Reserch server ping response timed out. Unable to connect. Please contact the system administrator.</span>")
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, "<span class='filter_notice'>The [src] is already empty.</span>")
/obj/item/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, "<span class='filter_notice'>Your [src] already has something inside. Analyze or eject it first.</span>")
return
var/obj/item/I = target
I.loc = src
loaded_item = I
for(var/mob/M in viewers())
M.show_message(text("<span class='notice'>[user] adds the [I] to the [src].</span>"), 1)
M.show_message("<span class='notice'>[user] adds the [I] to the [src].</span>", 1)
desc = initial(desc) + "<br>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, "<span class='filter_notice'>Harvesting \a [target] is not the purpose of this tool. [src] is for plants being grown.</span>")
// 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("<font color='blue'>[user] loads some items onto their service tray.</font>")
user.visible_message("<span class='notice'>[user] loads some items onto their service tray.</span>")
return
@@ -254,9 +257,9 @@
sleep(rand(2,4))
if ( droppedSomething )
if ( foundtable )
user.visible_message("<font color='blue'>[user] unloads their service tray.</font>")
user.visible_message("<span class='notice'>[user] unloads their service tray.</span>")
else
user.visible_message("<font color='blue'>[user] drops all the items on their tray.</font>")
user.visible_message("<span class='notice'>[user] drops all the items on their tray.</span>")
return ..()
@@ -289,7 +292,7 @@
mode = 2
else
mode = 1
to_chat(user, "Changed printing mode to '[mode == 2 ? "Rename Paper" : "Write Paper"]'")
to_chat(user, "<span class='filter_notice'>Changed printing mode to '[mode == 2 ? "Rename Paper" : "Write Paper"]'</span>")
return
@@ -337,7 +340,7 @@
deploy_paper(get_turf(src))
/obj/item/form_printer/proc/deploy_paper(var/turf/T)
T.visible_message("<font color='blue'>\The [src.loc] dispenses a sheet of crisp white paper.</font>")
T.visible_message("<span class='notice'>\The [src.loc] dispenses a sheet of crisp white paper.</span>")
new /obj/item/paper(T)
@@ -377,7 +380,7 @@
overload_time = 0
var/mob/living/user = src.loc
user.visible_message("<span class='danger'>[user]'s shield reactivates!</span>", "<span class='danger'>Your shield reactivates!.</span>")
user.visible_message("<span class='danger'>[user]'s shield reactivates!</span>", "<span class='danger'>Your shield reactivates!</span>")
user.update_icon()
/obj/item/borg/combat/shield/proc/adjust_flash_count(var/mob/living/user, amount)
@@ -391,7 +394,7 @@
/obj/item/borg/combat/shield/proc/overload(var/mob/living/user)
active = 0
user.visible_message("<span class='danger'>[user]'s shield destabilizes!</span>", "<span class='danger'>Your shield destabilizes!.</span>")
user.visible_message("<span class='danger'>[user]'s shield destabilizes!</span>", "<span class='danger'>Your shield destabilizes!</span>")
user.update_icon()
overload_time = world.time
@@ -437,7 +440,7 @@
/obj/item/inflatable_dispenser/attack_self()
mode = !mode
to_chat(usr, "You set \the [src] to deploy [mode ? "doors" : "walls"].")
to_chat(usr, "<span class='filter_notice'>You set \the [src] to deploy [mode ? "doors" : "walls"].</span>")
/obj/item/inflatable_dispenser/afterattack(var/atom/A, var/mob/user)
..(A, user)
@@ -454,7 +457,7 @@
/obj/item/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, "<span class='filter_notice'>\The [src] is out of doors!</span>")
return
if(T && istype(T))
@@ -463,7 +466,7 @@
else // Wall deployment
if(!stored_walls)
to_chat(user, "\The [src] is out of walls!")
to_chat(user, "<span class='filter_notice'>\The [src] is out of walls!</span>")
return
if(T && istype(T))
@@ -471,40 +474,40 @@
stored_walls--
playsound(T, 'sound/items/zip.ogg', 75, 1)
to_chat(user, "You deploy the inflatable [mode ? "door" : "wall"]!")
to_chat(user, "<span class='filter_notice'>You deploy the inflatable [mode ? "door" : "wall"]!</span>")
/obj/item/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, "<span class='filter_notice'>\The [src] is full.</span>")
return
stored_walls++
qdel(A)
else
if(stored_doors >= max_doors)
to_chat(user, "\The [src] is full.")
to_chat(user, "<span class='filter_notice'>\The [src] is full.</span>")
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("<span class='filter_notice'>\The [user] deflates \the [A] with \the [src]!</span>")
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, "<span class='filter_notice'>\The [src] is full.</span>")
return
stored_walls++
qdel(A)
else
if(stored_doors >= max_doors)
to_chat(usr, "\The [src] is full!")
to_chat(usr, "<span class='filter_notice'>\The [src] is full!</span>")
return
stored_doors++
qdel(A)
visible_message("\The [user] picks up \the [A] with \the [src]!")
visible_message("<span class='filter_notice'>\The [user] picks up \the [A] with \the [src]!</span>")
return
to_chat(user, "You fail to pick up \the [A] with \the [src]")
to_chat(user, "<span class='filter_notice'>You fail to pick up \the [A] with \the [src].</span>")
return
+4 -4
View File
@@ -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, "<i><span class='game say'>Holopad transmitted, <span class='name'>[real_name]</span> [combined["formatted"]]</span></i>")
to_chat(src, "<span class='game say'><i>Holopad transmitted, <span class='name'>[real_name]</span> [combined["formatted"]]</i></span>")
else
to_chat(src, "No holopad connected.")
to_chat(src, "<span class='filter_notice'>No holopad connected.</span>")
return 0
return 1
@@ -88,7 +88,7 @@
var/obj/machinery/hologram/holopad/T = src.holo
if(T && T.masters[src])
var/rendered = "<span class='game say'><span class='name'>[name]</span> <span class='message'>[message]</span></span>"
to_chat(src, "<i><span class='game say'>Holopad action relayed, <span class='name'>[real_name]</span> <span class='message'>[message]</span></span></i>")
to_chat(src, "<span class='game say'><i>Holopad action relayed, <span class='name'>[real_name]</span> <span class='message'>[message]</span></i></span>")
var/obj/effect/overlay/hologram = T.masters[src]
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"]
@@ -109,7 +109,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, "<span class='filter_notice'>No holopad connected.</span>")
return 0
return 1
+4 -4
View File
@@ -264,7 +264,7 @@
//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.")
to_chat(src, "<span class='filter_notice'>Sensor augmentations disabled.</span>")
hudmode = sensor_type //This is checked in examine.dm on humans, so they can see medical/security records depending on mode
@@ -362,20 +362,20 @@
to_chat(src, "\The [A.alarm_name()].")
if(alarm_raised)
to_chat(src, "<A HREF=?src=\ref[src];showalerts=1>\[Show Alerts\]</A>")
to_chat(src, "<span class='filter_notice'><A HREF=?src=\ref[src];showalerts=1>\[Show Alerts\]</A></span>")
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, "<span class='filter_warning'>[A.alarm_name()]!</span>")
/mob/living/silicon/ai/raised_alarm(var/datum/alarm/A)
var/cameratext = ""
for(var/obj/machinery/camera/C in A.cameras())
cameratext += "[(cameratext == "")? "" : "|"]<A HREF=?src=\ref[src];switchcamera=\ref[C]>[C.c_tag]</A>"
to_chat(src, "[A.alarm_name()]! ([(cameratext)? cameratext : "No Camera"])")
to_chat(src, "<span class='filter_warning'>[A.alarm_name()]! ([(cameratext)? cameratext : "No Camera"])</span>")
/mob/living/silicon/proc/is_traitor()
+11 -11
View File
@@ -66,7 +66,7 @@
return
// Added voice muffling for Issue 41.
if(stat == UNCONSCIOUS || sleeping > 0)
to_chat(src, "<I>... You can almost hear someone talking ...</I>")
to_chat(src, "<span class='filter_notice'><I>... You can almost hear someone talking ...</I></span>")
else
to_chat(src,msg)
if(teleop)
@@ -307,8 +307,8 @@
/mob/proc/warn_flavor_changed()
if(flavor_text && flavor_text != "") // don't spam people that don't use it!
to_chat(src, "<h2 class='alert'>OOC Warning:</h2>")
to_chat(src, "<span class='alert'>Your flavor text is likely out of date! <a href='byond://?src=\ref[src];flavor_change=1'>Change</a></span>")
to_chat(src, "<span class='filter_notice'><h2 class='alert'>OOC Warning:</h2></span>")
to_chat(src, "<span class='filter_notice'><span class='alert'>Your flavor text is likely out of date! <a href='byond://?src=\ref[src];flavor_change=1'>Change</a></span></span>")
/mob/proc/print_flavor_text()
if (flavor_text && flavor_text != "")
@@ -415,7 +415,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, "<font color='blue'>You must be observing to use this!</font>")
to_chat(usr, "<span class='filter_notice'><font color='blue'>You must be observing to use this!</font></span>")
return
if(is_admin && stat == DEAD)
@@ -561,7 +561,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, "<font color='red'><B>Pulling \the [H] in their current condition would probably be a bad idea.</B></font>")
to_chat(src, "<span class='filter_notice'><font color='red'><B>Pulling \the [H] in their current condition would probably be a bad idea.</B></font></span>")
//Attempted fix for people flying away through space when cuffed and dragged.
if(ismob(AM))
@@ -866,11 +866,11 @@
usr.setClickCooldown(20)
if(usr.stat == 1)
to_chat(usr, "You are unconcious and cannot do that!")
to_chat(usr, "<span class='filter_notice'>You are unconcious and cannot do that!</span>")
return
if(usr.restrained())
to_chat(usr, "You are restrained and cannot do that!")
to_chat(usr, "<span class='filter_notice'>You are restrained and cannot do that!</span>")
return
var/mob/S = src
@@ -884,9 +884,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, "<span class='filter_notice'>You have nothing stuck in your body that is large enough to remove.</span>")
else
to_chat(U, "[src] has nothing stuck in their wounds that is large enough to remove.")
to_chat(U, "<span class='filter_notice'>[src] has nothing stuck in their wounds that is large enough to remove.</span>")
return
var/obj/item/selection = input("What do you want to yank out?", "Embedded objects") in valid_objects
@@ -974,9 +974,9 @@
set_face_dir()
if(!facing_dir)
to_chat(usr, "You are now not facing anything.")
to_chat(usr, "<span class='filter_notice'>You are now not facing anything.</span>")
else
to_chat(usr, "You are now facing [dir2text(facing_dir)].")
to_chat(usr, "<span class='filter_notice'>You are now facing [dir2text(facing_dir)].</span>")
/mob/proc/set_face_dir(var/newdir)
if(newdir == facing_dir)
+1 -1
View File
@@ -331,7 +331,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("<span class='notice'>\The [src] falls down through \the [oldloc]!</span>", "<span class='notice'>You hear something falling through the air.</span>")
// If the turf has density, we give it first dibs
if (landing.density && landing.CheckFall(src))
+2 -2
View File
@@ -159,9 +159,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, "<span class='filter_notice'>You insert [count] [sname] into the fabricator.</span>")
else
to_chat(user, "The fabricator cannot hold more [sname].")
to_chat(user, "<span class='filter_notice'>The fabricator cannot hold more [sname].</span>")
busy = 0
updateUsrDialog()
+3 -3
View File
@@ -81,7 +81,7 @@ var/global/list/obj/machinery/message_server/message_servers = list()
/obj/machinery/message_server/examine(mob/user, distance, infix, suffix)
. = ..()
. += "It appears to be [active ? "online" : "offline"]."
. += "It appears to be [active ? "online" : "offline"]."
/obj/machinery/message_server/proc/GenerateKey()
//Feel free to move to Helpers.
@@ -140,7 +140,7 @@ var/global/list/obj/machinery/message_server/message_servers = list()
/obj/machinery/message_server/attack_hand(user as mob)
// to_chat(user, "<font color='blue'>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.</font>")
to_chat(user, "You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"]")
to_chat(user, "<span class='filter_notice'>You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"].</span>")
active = !active
update_icon()
@@ -152,7 +152,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, "<span class='filter_notice'>You install additional memory and processors into message server. Its filtering capabilities been enhanced.</span>")
else
..(O, user)
+2 -2
View File
@@ -149,9 +149,9 @@
materials[S.material.name] += amnt
S.use(1)
count++
to_chat(user, "You insert [count] [sname] into the fabricator.")
to_chat(user, "<span class='filter_notice'>You insert [count] [sname] into the fabricator.</span>")
else
to_chat(user, "The fabricator cannot hold more [sname].")
to_chat(user, "<span class='filter_notice'>The fabricator cannot hold more [sname].</span>")
busy = 0
var/stacktype = S.type
+1 -1
View File
@@ -120,7 +120,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/disk))
if(t_disk || d_disk)
to_chat(user, "A disk is already loaded into the machine.")
to_chat(user, "<span class='filter_notice'>A disk is already loaded into the machine.</span>")
return
if(istype(D, /obj/item/disk/tech_disk))
+12 -12
View File
@@ -40,8 +40,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("<span class='filter_notice'>[user] begins to cut through [target]'s [affected.encased] with \the [tool].</span>", \
"<span class='filter_notice'>You begin to cut through [target]'s [affected.encased] with \the [tool].</span>")
target.custom_pain("Something hurts horribly in your [affected.name]!", 60)
..()
@@ -90,8 +90,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 = "<span class='filter_notice'>[user] starts to force open the [affected.encased] in [target]'s [affected.name] with \the [tool].</span>"
var/self_msg = "<span class='filter_notice'>You start to force open the [affected.encased] in [target]'s [affected.name] with \the [tool].</span>"
user.visible_message(msg, self_msg)
target.custom_pain("Something hurts horribly in your [affected.name]!", 40)
..()
@@ -143,8 +143,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 = "<span class='filter_notice'>[user] starts bending [target]'s [affected.encased] back into place with \the [tool].</span>"
var/self_msg = "<span class='filter_notice'>You start bending [target]'s [affected.encased] back into place with \the [tool].</span>"
user.visible_message(msg, self_msg)
target.custom_pain("Something hurts horribly in your [affected.name]!", 100)
..()
@@ -201,8 +201,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 = "<span class='filter_notice'>[user] starts applying \the [tool] to [target]'s [affected.encased].</span>"
var/self_msg = "<span class='filter_notice'>You start applying \the [tool] to [target]'s [affected.encased].</span>"
user.visible_message(msg, self_msg)
target.custom_pain("Something hurts horribly in your [affected.name]!", 100)
..()
@@ -242,8 +242,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("<span class='filter_notice'>[user] begins to open [target]'s [affected.encased] with \the [tool].</span>", \
"<span class='filter_notice'>You begin to open [target]'s [affected.encased] with \the [tool].</span>")
target.custom_pain("Something hurts horribly in your [affected.name]!", 60)
..()
@@ -291,8 +291,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 = "<span class='filter_notice'>[user] starts sealing \the [target]'s [affected.encased] with \the [tool].</span>"
var/self_msg = "<span class='filter_notice'>You start sealing \the [target]'s [affected.encased] with \the [tool].</span>"
user.visible_message(msg, self_msg)
target.custom_pain("Something hurts horribly in your [affected.name]!", 100)
..()
+6 -6
View File
@@ -36,8 +36,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("<span class='filter_notice'>[user] starts to cut open [target]'s face and neck with \the [tool].</span>", \
"<span class='filter_notice'>You start to cut open [target]'s face and neck with \the [tool].</span>")
..()
/datum/surgery_step/generic/cut_face/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -70,8 +70,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("<span class='filter_notice'>[user] starts mending [target]'s vocal cords with \the [tool].</span>", \
"<span class='filter_notice'>You start mending [target]'s vocal cords with \the [tool].</span>")
..()
/datum/surgery_step/face/mend_vocal/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -103,8 +103,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("<span class='filter_notice'>[user] starts pulling the skin on [target]'s face back in place with \the [tool].</span>", \
"<span class='filter_notice'>You start pulling the skin on [target]'s face back in place with \the [tool].</span>")
..()
/datum/surgery_step/face/fix_face/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
+13 -13
View File
@@ -46,8 +46,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("<span class='filter_notice'>[user] starts the incision on [target]'s [affected.name] with \the [tool].</span>", \
"<span class='filter_notice'>You start the incision on [target]'s [affected.name] with \the [tool].</span>")
target.custom_pain("You feel a horrible pain as if from a sharp knife in your [affected.name]!", 40)
..()
@@ -91,8 +91,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("<span class='filter_notice'>[user] starts the bloodless incision on [target]'s [affected.name] with \the [tool].</span>", \
"<span class='filter_notice'>You start the bloodless incision on [target]'s [affected.name] with \the [tool].</span>")
target.custom_pain("You feel a horrible, searing pain in your [affected.name]!", 50)
..()
@@ -135,8 +135,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("<span class='filter_notice'>[user] starts to construct a prepared incision on and within [target]'s [affected.name] with \the [tool].</span>", \
"<span class='filter_notice'>You start to construct a prepared incision on and within [target]'s [affected.name] with \the [tool].</span>")
target.custom_pain("You feel a horrible, searing pain in your [affected.name] as it is pushed apart!", 50)
..()
@@ -181,8 +181,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("<span class='filter_notice'>[user] starts clamping bleeders in [target]'s [affected.name] with \the [tool].</span>", \
"<span class='filter_notice'>You start clamping bleeders in [target]'s [affected.name] with \the [tool].</span>")
target.custom_pain("The pain in your [affected.name] is maddening!", 40)
..()
@@ -229,7 +229,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("<span class='filter_notice'>[msg]</span>", "<span class='filter_notice'>[self_msg]</span>")
target.custom_pain("It feels like the skin on your [affected.name] is on fire!", 40)
..()
@@ -281,8 +281,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("<span class='filter_notice'>[user] is beginning to cauterize the incision on [target]'s [affected.name] with \the [tool].</span>" , \
"<span class='filter_notice'>You are beginning to cauterize the incision on [target]'s [affected.name] with \the [tool].</span>")
target.custom_pain("Your [affected.name] is being burned!", 40)
..()
@@ -326,8 +326,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("<span class='filter_notice'>[user] is beginning to amputate [target]'s [affected.name] with \the [tool].</span>" , \
"<span class='filter_notice'>You are beginning to cut through [target]'s [affected.amputation_point] with \the [tool].</span>")
target.custom_pain("Your [affected.amputation_point] is being ripped apart!", 100)
..()
+4 -4
View File
@@ -62,8 +62,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("<span class='filter_notice'>[user] starts making some space inside [target]'s [get_cavity(affected)] cavity with \the [tool].</span>", \
"<span class='filter_notice'>You start making some space inside [target]'s [get_cavity(affected)] cavity with \the [tool].</span>" )
target.custom_pain("The pain in your chest is living hell!",1)
affected.cavity = 1
..()
@@ -96,8 +96,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("<span class='filter_notice'>[user] starts mending [target]'s [get_cavity(affected)] cavity wall with \the [tool].</span>", \
"<span class='filter_notice'>You start mending [target]'s [get_cavity(affected)] cavity wall with \the [tool].</span>" )
target.custom_pain("The pain in your chest is living hell!",1)
affected.cavity = 0
..()
+6 -6
View File
@@ -50,8 +50,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("<span class='filter_notice'>[user] starts attaching [E.name] to [target]'s [E.amputation_point].</span>", \
"<span class='filter_notice'>You start attaching [E.name] to [target]'s [E.amputation_point].</span>")
/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
@@ -97,8 +97,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("<span class='filter_notice'>[user] starts connecting tendons and muscles in [target]'s [E.amputation_point] with [tool].</span>", \
"<span class='filter_notice'>You start connecting tendons and muscle in [target]'s [E.amputation_point].</span>")
/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)
@@ -134,8 +134,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("<span class='filter_notice'>[user] starts attaching \the [tool] to [target].</span>", \
"<span class='filter_notice'>You start attaching \the [tool] to [target].</span>")
/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
+12 -12
View File
@@ -36,8 +36,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("<span class='filter_notice'>[user] starts to mend the blood vessels on [target]'s brainstem with \the [tool].</span>", \
"<span class='filter_notice'>You start to mend the blood vessels on [target]'s brainstem with \the [tool].</span>")
..()
/datum/surgery_step/brainstem/mend_vessels/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -73,8 +73,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("<span class='filter_notice'>[user] starts to drill around [target]'s brainstem with \the [tool].</span>", \
"<span class='filter_notice'>You start to drill around [target]'s brainstem with \the [tool].</span>")
..()
/datum/surgery_step/brainstem/drill_vertebrae/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -114,8 +114,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("<span class='filter_notice'>[user] starts to pick around [target]'s brainstem for bone chips with \the [tool].</span>", \
"<span class='filter_notice'>You start to pick around [target]'s brainstem for bone chips with \the [tool].</span>")
..()
/datum/surgery_step/brainstem/clean_chips/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -153,8 +153,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("<span class='filter_notice'>[user] starts to fuse [target]'s spinal cord with \the [tool].</span>", \
"<span class='filter_notice'>You start to fuse [target]'s spinal cord with \the [tool].</span>")
..()
/datum/surgery_step/brainstem/mend_cord/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -192,8 +192,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("<span class='filter_notice'>[user] starts to mend [target]'s opened vertebrae with \the [tool].</span>", \
"<span class='filter_notice'>You start to mend [target]'s opened vertebrae with \the [tool].</span>")
..()
/datum/surgery_step/brainstem/mend_vertebrae/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -231,8 +231,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("<span class='filter_notice'>[user] starts to realign the tissues in [target]'s skull with \the [tool].</span>", \
"<span class='filter_notice'>You start to realign the tissues in [target]'s skull with \the [tool].</span>")
..()
/datum/surgery_step/brainstem/realign_tissue/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
+12 -12
View File
@@ -96,8 +96,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("<span class='filter_notice'>[user] starts treating damage to [target]'s [I.name] with [tool_name].</span>", \
"<span class='filter_notice'>You start treating damage to [target]'s [I.name] with [tool_name].</span>" )
target.custom_pain("The pain in your [affected.name] is living hell!", 100)
..()
@@ -191,8 +191,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("<span class='filter_notice'>[user] starts to separate [target]'s [target.op_stage.current_organ] with \the [tool].</span>", \
"<span class='filter_notice'>You start to separate [target]'s [target.op_stage.current_organ] with \the [tool].</span>" )
target.custom_pain("The pain in your [affected.name] is living hell!", 100)
..()
@@ -249,8 +249,8 @@
return ..()
/datum/surgery_step/internal/remove_organ/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/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].")
user.visible_message("<span class='filter_notice'>[user] starts removing [target]'s [target.op_stage.current_organ] with \the [tool].</span>", \
"<span class='filter_notice'>You start removing [target]'s [target.op_stage.current_organ] with \the [tool].</span>")
target.custom_pain("Someone's ripping out your [target.op_stage.current_organ]!", 100)
..()
@@ -329,8 +329,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("<span class='filter_notice'>[user] starts transplanting \the [tool] into [target]'s [affected.name].</span>", \
"<span class='filter_notice'>You start transplanting \the [tool] into [target]'s [affected.name].</span>")
target.custom_pain("Someone's rooting around in your [affected.name]!", 100)
..()
@@ -386,8 +386,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("<span class='filter_notice'>[user] begins reattaching [target]'s [target.op_stage.current_organ] with \the [tool].</span>", \
"<span class='filter_notice'>You start reattaching [target]'s [target.op_stage.current_organ] with \the [tool].</span>")
target.custom_pain("Someone's digging needles into your [target.op_stage.current_organ]!", 100)
..()
@@ -445,8 +445,8 @@
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].")
user.visible_message("<span class='filter_notice'>[user] starts ripping [target]'s [target.op_stage.current_organ] out with \the [tool].</span>", \
"<span class='filter_notice'>You start ripping [target]'s [target.op_stage.current_organ] out with \the [tool].</span>")
target.custom_pain("Someone's ripping out your [target.op_stage.current_organ]!", 100)
..()
+8 -8
View File
@@ -36,8 +36,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("<span class='filter_notice'>[user] starts patching the damaged vein in [target]'s [affected.name] with \the [tool].</span>" , \
"<span class='filter_notice'>You start patching the damaged vein in [target]'s [affected.name] with \the [tool].</span>")
target.custom_pain("The pain in [affected.name] is unbearable!", 100)
..()
@@ -89,8 +89,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("<span class='filter_notice'>[user] starts cutting away necrotic tissue in [target]'s [affected.name] with \the [tool].</span>" , \
"<span class='filter_notice'>You start cutting away necrotic tissue in [target]'s [affected.name] with \the [tool].</span>")
target.custom_pain("The pain in [affected.name] is unbearable!", 100)
..()
@@ -146,8 +146,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("<span class='filter_notice'>[user] starts applying medication to the affected tissue in [target]'s [affected.name] with \the [tool].</span>" , \
"<span class='filter_notice'>You start applying medication to the affected tissue in [target]'s [affected.name] with \the [tool].</span>")
target.custom_pain("Something in your [affected.name] is causing you a lot of pain!", 50)
..()
@@ -215,8 +215,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("<span class='filter_notice'>[user] starts cutting through the support systems of \the [rig] on [target] with \the [tool].</span>" , \
"<span class='filter_notice'>You start cutting through the support systems of \the [rig] on [target] with \the [tool].</span>")
..()
/datum/surgery_step/hardsuit/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
+20 -20
View File
@@ -48,8 +48,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("<span class='filter_notice'>[user] starts to unscrew the maintenance hatch on [target]'s [affected.name] with \the [tool].</span>", \
"<span class='filter_notice'>You start to unscrew the maintenance hatch on [target]'s [affected.name] with \the [tool].</span>")
..()
/datum/surgery_step/robotics/unscrew_hatch/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -85,8 +85,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("<span class='filter_notice'>[user] starts to pry open the maintenance hatch on [target]'s [affected.name] with \the [tool].</span>",
"<span class='filter_notice'>You start to pry open the maintenance hatch on [target]'s [affected.name] with \the [tool].</span>")
..()
/datum/surgery_step/robotics/open_hatch/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -122,8 +122,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("<span class='filter_notice'>[user] begins to close and secure the hatch on [target]'s [affected.name] with \the [tool].</span>" , \
"<span class='filter_notice'>You begin to close and secure the hatch on [target]'s [affected.name] with \the [tool].</span>")
..()
/datum/surgery_step/robotics/close_hatch/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -162,8 +162,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("<span class='filter_notice'>[user] begins to patch damage to [target]'s [affected.name]'s support structure with \the [tool].</span>" , \
"<span class='filter_notice'>You begin to patch damage to [target]'s [affected.name]'s support structure with \the [tool].</span>")
..()
/datum/surgery_step/robotics/repair_brute/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -210,8 +210,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("<span class='filter_notice'>[user] begins to splice new cabling into [target]'s [affected.name].</span>" , \
"<span class='filter_notice'>You begin to splice new cabling into [target]'s [affected.name].</span>")
..()
/datum/surgery_step/robotics/repair_burn/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -262,8 +262,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("<span class='filter_notice'>[user] starts mending the damage to [target]'s [I.name]'s mechanisms.</span>", \
"<span class='filter_notice'>You start mending the damage to [target]'s [I.name]'s mechanisms.</span>" )
target.custom_pain("The pain in your [affected.name] is living hell!",1)
..()
@@ -334,8 +334,8 @@
return ..() && organ_to_remove
/datum/surgery_step/robotics/detatch_organ_robotic/begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/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]." )
user.visible_message("<span class='filter_notice'>[user] starts to decouple [target]'s [target.op_stage.current_organ] with \the [tool].</span>", \
"<span class='filter_notice'>You start to decouple [target]'s [target.op_stage.current_organ] with \the [tool].</span>" )
..()
/datum/surgery_step/robotics/detatch_organ_robotic/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -383,8 +383,8 @@
return ..()
/datum/surgery_step/robotics/attach_organ_robotic/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("<span class='filter_notice'>[user] begins reattaching [target]'s [target.op_stage.current_organ] with \the [tool].</span>", \
"<span class='filter_notice'>You start reattaching [target]'s [target.op_stage.current_organ] with \the [tool].</span>")
..()
/datum/surgery_step/robotics/attach_organ_robotic/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -443,8 +443,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("<span class='filter_notice'>[user] starts installing \the [tool] into [target]'s [affected.name].</span>", \
"<span class='filter_notice'>You start installing \the [tool] into [target]'s [affected.name].</span>")
..()
/datum/surgery_step/robotics/install_mmi/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
@@ -530,8 +530,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("<span class='filter_notice'>[user] starts setting \the [tool] into [target]'s [affected.name].</span>", \
"<span class='filter_notice'>You start setting \the [tool] into [target]'s [affected.name].</span>")
..()
/datum/surgery_step/robotics/install_nymph/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
+1 -1
View File
@@ -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, "<span class='filter_notice'>There's \a [occupied] in the way.</span>")
return 0
var/list/L = list()
+21 -5
View File
@@ -261,6 +261,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
}
],
},
@@ -568,6 +576,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 = "<span class='unsorted'>" + newmessage.content + "</span>";
}
//Try to crush it with one of the last few
if(this.crushing) {
let crushwith = this.messages.slice(-(this.crushing));
@@ -645,7 +658,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)) {
@@ -660,13 +673,16 @@ function start_vue() {
var textToSave = "<html><head><style>"+this.ext_styles+"</style></head><body>";
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 += "<br>\n";
}
textToSave += "<br>\n";
});
textToSave += "</body></html>";
@@ -73,13 +73,13 @@
viables.Remove(type)
construction[button_desc] = type
fail_message = "<font color='blue'>[bicon(src)] a [pick("loud","soft","sinister","eery","triumphant","depressing","cheerful","angry")] \
fail_message = "<span class='notice'>[bicon(src)] a [pick("loud","soft","sinister","eery","triumphant","depressing","cheerful","angry")] \
[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")].</font>"
[pick("front","side","top","bottom","rear","inside")].</span>"
/obj/machinery/replicator/process()
if(spawning_types.len && powered())
+1 -1
View File
@@ -91,7 +91,7 @@
var/atom/toplevelholder = target
while (!istype(toplevelholder.loc, /turf))
toplevelholder = toplevelholder.loc
toplevelholder.visible_message("<font color='red'>[bicon(toplevelholder)] [toplevelholder] [display_msg]</font>")
toplevelholder.visible_message("<span class='filter_notice'><font color='red'>[bicon(toplevelholder)] [toplevelholder] [display_msg]</font></span>")
return TRUE
@@ -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, "<span class='filter_notice'>This effect can not be applied to this atom type.</span>")
qdel(my_effect)
/datum/component/artifact_master/proc/remove_effect()
@@ -239,7 +239,7 @@
warn = 1
if(warn && isliving(bumped))
to_chat(bumped, "<b>You accidentally touch \the [holder] as it hits you.</b>")
to_chat(bumped, "<span class='filter_notice'><b>You accidentally touch \the [holder] as it hits you.</b></span>")
/datum/component/artifact_master/proc/on_bumped()
var/atom/movable/M = args[2]
@@ -260,7 +260,7 @@
warn = 1
if(warn && isliving(M))
to_chat(M, "<b>You accidentally touch \the [holder].</b>")
to_chat(M, "<span class='filter_notice'><b>You accidentally touch \the [holder].</b></span>")
/datum/component/artifact_master/proc/on_attack_hand()
var/mob/living/user = args[2]
@@ -268,10 +268,10 @@
return
if (get_dist(user, holder) > 1)
to_chat(user, "<font color='red'>You can't reach [holder] from here.</font>")
to_chat(user, "<span class='filter_notice'><font color='red'>You can't reach [holder] from here.</font></span>")
return
if(ishuman(user) && user:gloves)
to_chat(user, "<b>You touch [holder]</b> 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, "<span class='filter_notice'><b>You touch [holder]</b> 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")].</span>")
return
var/triggered = FALSE
@@ -287,10 +287,10 @@
my_effect.DoEffectTouch(user)
if(triggered)
to_chat(user, "<b>You touch [holder].</b>")
to_chat(user, "<span class='filter_notice'><b>You touch [holder].</b></span>")
else
to_chat(user, "<b>You touch [holder],</b> [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, "<span class='filter_notice'><b>You touch [holder],</b> [pick("but nothing of note happens","but nothing happens","but nothing interesting happens","but you notice nothing different","but nothing seems to have happened")].</span>")
/datum/component/artifact_master/proc/on_attackby()