* bicon regex run

* Remove all \black

* Goonchat from /vg/ / Goon

Whoo!
Special thanks to @Tastyfish for the macro2html thing so all of our
horrible color macros keep working and don't fail horribly <3

* Fixes and changes n stuff

- Made ping sane again (the fuck PJ)
- Updated chat CSS
- Fixed like one problem with a color macro

* whoops

* Restore /vg/'s pingloop stuff (used to avoid fucking up is_afk)

* Strip problematic tags from tcomm scripts

- <audio>
- <video>
- <iframe>
- <script>

* Fix human examine icon

* Name hotkey elements

* Removed old stylesheet
This commit is contained in:
tigercat2000
2016-06-23 13:56:15 -07:00
committed by Fox McCloud
parent b8c1418b57
commit 732c3b4ae5
127 changed files with 13215 additions and 762 deletions

View File

@@ -1 +1,3 @@
#define ismovableatom(A) istype(A, /atom/movable)
#define isatom(A) istype(A, /atom)
#define ismovableatom(A) istype(A, /atom/movable)
#define isclient(A) istype(A, /client)

View File

@@ -167,7 +167,7 @@ mob
Output_Icon()
set name = "2. Output Icon"
to_chat(src, "Icon is: \icon[getFlatIcon(src)]")
to_chat(src, "Icon is: [bicon(getFlatIcon(src))]")
Label_Icon()
set name = "3. Label Icon"

View File

@@ -239,7 +239,7 @@ var/syndicate_code_response//Code response for traitors.
set name = "Generate Code Phrase"
set category = "Debug"
to_chat(world, "\red Code Phrase is: \black [generate_code_phrase()]")
to_chat(world, "<span class='warning'>Code Phrase is:</span> [generate_code_phrase()]")
return

View File

@@ -371,4 +371,22 @@ proc/checkhtml(var/t)
//If you have a problem with sanitize() in chat, when quotes and >, < are displayed as html entites -
//this is a problem of double-encode(when & becomes &amp;), use sanitize() with encode=0, but not the sanitizeSafe()!
/proc/sanitizeSafe(var/input, var/max_length = MAX_MESSAGE_LEN, var/encode = 1, var/trim = 1, var/extra = 1)
return sanitize(replace_characters(input, list(">"=" ","<"=" ", "\""="'")), max_length, encode, trim, extra)
return sanitize(replace_characters(input, list(">"=" ","<"=" ", "\""="'")), max_length, encode, trim, extra)
//Replaces \red \blue \green \b etc with span classes for to_chat
/proc/replace_text_macro(match, code, rest)
var/regex/text_macro = new("(\\xFF.)(.*)$")
switch(code)
if("\red")
return "<span class='warning'>[text_macro.Replace(rest, /proc/replace_text_macro)]</span>"
if("\blue", "\green")
return "<span class='notice'>[text_macro.Replace(rest, /proc/replace_text_macro)]</span>"
if("\b")
return "<b>[text_macro.Replace(rest, /proc/replace_text_macro)]</b>"
else
return text_macro.Replace(rest, /proc/replace_text_macro)
/proc/macro2html(text)
var/static/regex/text_macro = new("(\\xFF.)(.*)$")
return text_macro.Replace(text, /proc/replace_text_macro)

View File

@@ -248,7 +248,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
var/pressure = air_contents.return_pressure()
var/total_moles = air_contents.total_moles()
to_chat(user, "<span class='notice'>Results of analysis of \icon[icon] [target].</span>")
to_chat(user, "<span class='notice'>Results of analysis of [bicon(icon)] [target].</span>")
if(total_moles>0)
var/o2_concentration = air_contents.oxygen/total_moles
var/n2_concentration = air_contents.nitrogen/total_moles
@@ -1733,10 +1733,6 @@ var/global/list/g_fancy_list_of_types = null
matches[key] = value
return matches
// Use this to send to a client's chat, no exceptions (except this proc itself).
/proc/to_chat(var/thing, var/output)
thing << output
//Key thing that stops lag. Cornerstone of performance in ss13, Just sitting here, in unsorted.dm.
/proc/stoplag()
. = 1

View File

@@ -101,9 +101,9 @@ var/list/uplink_items = list()
if(istype(I,/obj/item/weapon/storage/box/) && I.contents.len>0)
for(var/atom/o in I)
U.purchase_log += "<BIG>\icon[o]</BIG>"
U.purchase_log += "<BIG>[bicon(o)]</BIG>"
else
U.purchase_log += "<BIG>\icon[I]</BIG>"
U.purchase_log += "<BIG>[bicon(I)]</BIG>"
//U.interact(user)
return 1
@@ -1220,7 +1220,7 @@ var/list/uplink_items = list()
bought_items += I.item
remaining_TC -= I.cost
U.purchase_log += "<BIG>\icon[C]</BIG>"
U.purchase_log += "<BIG>[bicon(C)]</BIG>"
for(var/item in bought_items)
new item(C)
U.purchase_log += "<BIG>\icon[item]</BIG>"
U.purchase_log += "<BIG>[bicon(item)]</BIG>"

View File

@@ -66,7 +66,7 @@ var/const/CAMERA_WIRE_NOTHING2 = 32
C.light_disabled = !C.light_disabled
if(CAMERA_WIRE_ALARM)
C.visible_message("\icon[C] *beep*", "\icon[C] *beep*")
C.visible_message("[bicon(C)] *beep*", "[bicon(C)] *beep*")
return
/datum/wires/camera/proc/CanDeconstruct()

View File

@@ -28,15 +28,15 @@ var/const/WIRE_BEACON_RX = 256 // beacon ping recv
/datum/wires/mulebot/UpdatePulsed(var/index)
switch(index)
if(WIRE_POWER1, WIRE_POWER2)
holder.visible_message("\blue \icon[holder] The charge light flickers.")
holder.visible_message("\blue [bicon(holder)] The charge light flickers.")
if(WIRE_AVOIDANCE)
holder.visible_message("\blue \icon[holder] The external warning lights flash briefly.")
holder.visible_message("\blue [bicon(holder)] The external warning lights flash briefly.")
if(WIRE_LOADCHECK)
holder.visible_message("\blue \icon[holder] The load platform clunks.")
holder.visible_message("\blue [bicon(holder)] The load platform clunks.")
if(WIRE_MOTOR1, WIRE_MOTOR2)
holder.visible_message("\blue \icon[holder] The drive motor whines briefly.")
holder.visible_message("\blue [bicon(holder)] The drive motor whines briefly.")
else
holder.visible_message("\blue \icon[holder] You hear a radio crackle.")
holder.visible_message("\blue [bicon(holder)] You hear a radio crackle.")
// HELPER PROCS

View File

@@ -28,7 +28,7 @@ var/const/PARTICLE_LIMIT_POWER_WIRE = 8 // Determines how strong the PA can be.
C.interface_control = !C.interface_control
if(PARTICLE_LIMIT_POWER_WIRE)
C.visible_message("\icon[C]<b>[C]</b> makes a large whirring noise.")
C.visible_message("[bicon(C)]<b>[C]</b> makes a large whirring noise.")
/datum/wires/particle_acc/control_box/UpdateCut(var/index, var/mended)
var/obj/machinery/particle_accelerator/control_box/C = holder

View File

@@ -21,17 +21,17 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
switch(index)
if(WIRE_BOOM)
if (P.active)
P.loc.visible_message("<span class='danger'>\icon[holder] An alarm sounds! It's go-</span>")
P.loc.visible_message("<span class='danger'>[bicon(holder)] An alarm sounds! It's go-</span>")
P.timer = 0
if(WIRE_UNBOLT)
P.loc.visible_message("<span class='notice'>\icon[holder] The bolts spin in place for a moment.</span>")
P.loc.visible_message("<span class='notice'>[bicon(holder)] The bolts spin in place for a moment.</span>")
if(WIRE_DELAY)
playsound(P.loc, 'sound/machines/chime.ogg', 30, 1)
P.loc.visible_message("<span class='notice'>\icon[holder] The bomb chirps.</span>")
P.loc.visible_message("<span class='notice'>[bicon(holder)] The bomb chirps.</span>")
P.timer += 10
if(WIRE_PROCEED)
playsound(P.loc, 'sound/machines/buzz-sigh.ogg', 30, 1)
P.loc.visible_message("<span class='danger'>\icon[holder] The bomb buzzes ominously!</span>")
P.loc.visible_message("<span class='danger'>[bicon(holder)] The bomb buzzes ominously!</span>")
if (P.timer >= 61) //Long fuse bombs can suddenly become more dangerous if you tinker with them
P.timer = 60
if (P.timer >= 21)
@@ -41,11 +41,11 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
if(WIRE_ACTIVATE)
if(!P.active && !P.defused)
playsound(P.loc, 'sound/machines/click.ogg', 30, 1)
P.loc.visible_message("<span class='danger'>\icon[holder] You hear the bomb start ticking!</span>")
P.loc.visible_message("<span class='danger'>[bicon(holder)] You hear the bomb start ticking!</span>")
P.active = 1
P.icon_state = "[initial(P.icon_state)]-active[P.open_panel ? "-wires" : ""]"
else
P.loc.visible_message("<span class='notice'>\icon[holder] The bomb seems to hesitate for a moment.</span>")
P.loc.visible_message("<span class='notice'>[bicon(holder)] The bomb seems to hesitate for a moment.</span>")
P.timer += 5
/datum/wires/syndicatebomb/UpdateCut(var/index, var/mended)
@@ -54,7 +54,7 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
if(WIRE_EXPLODE)
if(!mended)
if(P.active)
P.loc.visible_message("<span class='danger'>\icon[holder] An alarm sounds! It's go-</span>")
P.loc.visible_message("<span class='danger'>[bicon(holder)] An alarm sounds! It's go-</span>")
P.timer = 0
else
P.defused = 1
@@ -63,15 +63,15 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
if(WIRE_UNBOLT)
if (!mended && P.anchored)
playsound(P.loc, 'sound/effects/stealthoff.ogg', 30, 1)
P.loc.visible_message("<span class='notice'>\icon[holder] The bolts lift out of the ground!</span>")
P.loc.visible_message("<span class='notice'>[bicon(holder)] The bolts lift out of the ground!</span>")
P.anchored = 0
if(WIRE_PROCEED)
if(!mended && P.active)
P.loc.visible_message("<span class='danger'>\icon[holder] An alarm sounds! It's go-</span>")
P.loc.visible_message("<span class='danger'>[bicon(holder)] An alarm sounds! It's go-</span>")
P.timer = 0
if(WIRE_ACTIVATE)
if (!mended && P.active)
P.loc.visible_message("<span class='notice'>\icon[holder] The timer stops! The bomb has been defused!</span>")
P.loc.visible_message("<span class='notice'>[bicon(holder)] The timer stops! The bomb has been defused!</span>")
P.icon_state = "[initial(P.icon_state)]-inactive[P.open_panel ? "-wires" : ""]"
P.active = 0
P.defused = 1

View File

@@ -187,7 +187,7 @@
else
f_name += "oil-stained [name][infix]."
to_chat(user, "\icon[src] That's [f_name] [suffix]")
to_chat(user, "[bicon(src)] That's [f_name] [suffix]")
to_chat(user, desc)
if(reagents && is_open_container()) //is_open_container() isn't really the right proc for this, but w/e

View File

@@ -133,7 +133,7 @@
equip_traitor(newtraitor)
traitors += newtraitor.mind
to_chat(newtraitor, "\red <B>ATTENTION:</B> \black It is time to pay your debt to the Syndicate...")
to_chat(newtraitor, "<span class='danger'>ATTENTION:</span> It is time to pay your debt to the Syndicate...")
to_chat(newtraitor, "<B>You are now a traitor.</B>")
newtraitor.mind.special_role = "traitor"
var/datum/atom_hud/antag/tatorhud = huds[ANTAG_HUD_TRAITOR]

View File

@@ -334,7 +334,7 @@
//Reports player logouts//
//////////////////////////
proc/display_roundstart_logout_report()
var/msg = "\blue <b>Roundstart logout report\n\n"
var/msg = "<span class='notice'>Roundstart logout report</span>\n\n"
for(var/mob/living/L in mob_list)
if(L.ckey)

View File

@@ -174,7 +174,7 @@
/datum/game_mode/proc/greet_vampire(var/datum/mind/vampire, var/you_are=1)
var/dat
if (you_are)
dat = "<B>\red You are a Vampire! \black</br></B>"
dat = "<span class='danger'>You are a Vampire!</span><br>"
dat += {"To bite someone, target the head and use harm intent with an empty hand. Drink blood to gain new powers.
You are weak to holy things and starlight. Don't go into space and avoid the Chaplain, the chapel and especially Holy Water."}
to_chat(vampire.current, dat)

View File

@@ -14,7 +14,7 @@
/datum/game_mode/wizard/raginmages/announce()
to_chat(world, "<B>The current game mode is - Ragin' Mages!</B>")
to_chat(world, "<B>The \red Space Wizard Federation\black is pissed, help defeat all the space wizards!</B>")
to_chat(world, "<B>The <font color='red'>Space Wizard Federation</font> is pissed, help defeat all the space wizards!</B>")
/datum/game_mode/wizard/raginmages/greet_wizard(var/datum/mind/wizard, var/you_are=1)

View File

@@ -108,16 +108,16 @@
var/mob/living/carbon/human/T = target
var/obj/item/device/soulstone/C = src
if(C.imprinted != "empty")
to_chat(U, "\red <b>Capture failed!</b>: \black The soul stone has already been imprinted with [C.imprinted]'s mind!")
to_chat(U, "<span class='danger'>Capture failed!</span>: The soul stone has already been imprinted with [C.imprinted]'s mind!")
else
if (T.stat == 0)
to_chat(U, "\red <b>Capture failed!</b>: \black Kill or maim the victim first!")
to_chat(U, "<span class='danger'>Capture failed!</span>: Kill or maim the victim first!")
else
if(T.client == null)
to_chat(U, "\red <b>Capture failed!</b>: \black The soul has already fled it's mortal frame.")
to_chat(U, "<span class='danger'>Capture failed!</span>: The soul has already fled it's mortal frame.")
else
if(C.contents.len)
to_chat(U, "\red <b>Capture failed!</b>: \black The soul stone is full! Use or free an existing soul to make room.")
to_chat(U, "<span class='danger'>Capture failed!</span>: The soul stone is full! Use or free an existing soul to make room.")
else
for(var/obj/item/W in T)
T.unEquip(W)
@@ -142,7 +142,7 @@
C.icon_state = "soulstone2"
C.name = "Soul Stone: [S.real_name]"
to_chat(S, "Your soul has been captured! You are now bound to [U.name]'s will, help them suceed in their goals at all costs.")
to_chat(U, "\blue <b>Capture successful!</b>: \black [T.real_name]'s soul has been ripped from their body and stored within the soul stone.")
to_chat(U, "<span class='notice'>Capture successful!</span>: [T.real_name]'s soul has been ripped from their body and stored within the soul stone.")
to_chat(U, "The soulstone has been imprinted with [S.real_name]'s mind, it will no longer react to other souls.")
C.imprinted = "[S.name]"
qdel(T)
@@ -150,13 +150,13 @@
var/mob/living/simple_animal/shade/T = target
var/obj/item/device/soulstone/C = src
if (T.stat == DEAD)
to_chat(U, "\red <b>Capture failed!</b>: \black The shade has already been banished!")
to_chat(U, "<span class='danger'>Capture failed!</span>: The shade has already been banished!")
else
if(C.contents.len)
to_chat(U, "\red <b>Capture failed!</b>: \black The soul stone is full! Use or free an existing soul to make room.")
to_chat(U, "<span class='danger'>Capture failed!</span>: The soul stone is full! Use or free an existing soul to make room.")
else
if(T.name != C.imprinted)
to_chat(U, "\red <b>Capture failed!</b>: \black The soul stone has already been imprinted with [C.imprinted]'s mind!")
to_chat(U, "<span class='danger'>Capture failed!</span>: The soul stone has already been imprinted with [C.imprinted]'s mind!")
else
T.loc = C //put shade in stone
T.status_flags |= GODMODE
@@ -165,7 +165,7 @@
T.faction |= "\ref[U]"
C.icon_state = "soulstone2"
to_chat(T, "Your soul has been recaptured by the soul stone, its arcane energies are reknitting your ethereal form")
to_chat(U, "\blue <b>Capture successful!</b>: \black [T.name]'s has been recaptured and stored within the soul stone.")
to_chat(U, "<span class='notice'>Capture successful!</span>: [T.name]'s has been recaptured and stored within the soul stone.")
if("CONSTRUCT")
var/obj/structure/constructshell/T = target
var/obj/item/device/soulstone/C = src
@@ -221,7 +221,7 @@
Z.cancel_camera()
qdel(C)
else
to_chat(U, "\red <b>Creation failed!</b>: \black The soul stone is empty! Go kill someone!")
to_chat(U, "<span class='danger'>Creation failed!</span>: The soul stone is empty! Go kill someone!")
return
/proc/makeNewConstruct(var/mob/living/simple_animal/construct/ctype, var/mob/target, var/mob/stoner = null, cultoverride = 0)

View File

@@ -14,7 +14,7 @@
/datum/game_mode/wizard/announce()
to_chat(world, "<B>The current game mode is - Wizard!</B>")
to_chat(world, "<B>There is a \red SPACE WIZARD\black on the station. You can't let him achieve his objective!</B>")
to_chat(world, "<B>There is a <font color='red'>SPACE WIZARD</font> on the station. You can't let him achieve his objective!</B>")
/datum/game_mode/wizard/can_start()//This could be better, will likely have to recode it later

View File

@@ -382,7 +382,7 @@
being_built = new /list()
return 0
if(!can_build(D,multiplier))
visible_message("\icon[src] <b>\The [src]</b> beeps, \"Not enough resources. Queue processing terminated.\"")
visible_message("[bicon(src)] <b>\The [src]</b> beeps, \"Not enough resources. Queue processing terminated.\"")
queue = list()
being_built = new /list()
return 0
@@ -392,7 +392,7 @@
D = listgetindex(listgetindex(queue, 1),1)
multiplier = listgetindex(listgetindex(queue,1),2)
being_built = new /list()
//visible_message("\icon[src] <b>\The [src]</b> beeps, \"Queue processing finished successfully.\"")
//visible_message("[bicon(src)] <b>\The [src]</b> beeps, \"Queue processing finished successfully.\"")
/obj/machinery/autolathe/proc/main_win(mob/user)
var/dat = "<table style='width:100%'><tr>"

View File

@@ -21,7 +21,7 @@
if(..())
return 1
if (!(src.z in config.station_levels))
to_chat(usr, "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!")
to_chat(usr, "<span class='danger'>Unable to establish a connection</span>: You're too far away from the station!")
return
usr.set_machine(src)
@@ -69,7 +69,7 @@
if(..())
return
if (src.z > 6)
to_chat(user, "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!")
to_chat(user, "<span class='danger'>Unable to establish a connection</span>: You're too far away from the station!")
return
user.set_machine(src)

View File

@@ -30,7 +30,7 @@
attackby(obj/item/weapon/O as obj, mob/user as mob, params)
if (user.z > 6)
to_chat(user, "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!")
to_chat(user, "<span class='danger'>Unable to establish a connection</span>: You're too far away from the station!")
return
if(istype(O, /obj/item/weapon/aiModule))
var/datum/game_mode/nations/mode = get_nations_mode()

View File

@@ -42,7 +42,7 @@
if(..())
return
if (src.z > 6)
to_chat(user, "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!")
to_chat(user, "<span class='danger'>Unable to establish a connection</span>: You're too far away from the station!")
return
var/dat

View File

@@ -41,7 +41,7 @@
if(..())
return
if (src.z > 6)
to_chat(user, "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!")
to_chat(user, "<span class='danger'>Unable to establish a connection</span>: You're too far away from the station!")
return
var/dat

View File

@@ -100,9 +100,9 @@ var/const/HOLOPAD_MODE = 0
create_holo(user)//Create one.
src.visible_message("A holographic image of [user] flicks to life right before your eyes!")
else
to_chat(user, "\red ERROR: \black Image feed in progress.")
to_chat(user, "<font color='red'>ERROR:</font> Image feed in progress.")
else
to_chat(user, "\red ERROR: \black Unable to project hologram.")
to_chat(user, "<font color='red'>ERROR:</font> Unable to project hologram.")
return
/*This is the proc for special two-way communication between AI and holopad/people talking near holopad.
@@ -123,7 +123,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
rendered = "<i><span class='game say'>Holopad received, <span class='name'>[name_used]</span> [verb], <span class='message'>\"[text]\"</span></span></i>"
master.show_message(rendered, 2)
return
/obj/machinery/hologram/holopad/hear_message(mob/living/M, text)
if(M&&hologram&&master)//Master is mostly a safety in case lag hits or something.
var/name_used = M.GetVoice()

View File

@@ -97,7 +97,7 @@ var/list/ingredients_source = list(
if(ingredients[ICECREAM_VANILLA] > 0)
var/flavour_name = get_icecream_flavour_string(dispense_flavour)
if(dispense_flavour < 11 && ingredients[dispense_flavour] > 0)
src.visible_message("\icon[src] <span class='info'>[user] scoops delicious [flavour_name] flavoured icecream into [I].</span>")
src.visible_message("[bicon(src)] <span class='info'>[user] scoops delicious [flavour_name] flavoured icecream into [I].</span>")
ingredients[dispense_flavour] -= 1
ingredients[ICECREAM_VANILLA] -= 1

View File

@@ -420,7 +420,7 @@ Class Procs:
/obj/machinery/proc/state(var/msg)
for(var/mob/O in hearers(src, null))
O.show_message("\icon[src] <span class = 'notice'>[msg]</span>", 2)
O.show_message("[bicon(src)] <span class = 'notice'>[msg]</span>", 2)
/obj/machinery/proc/ping(text=null)
if (!text)
@@ -465,7 +465,7 @@ Class Procs:
/obj/machinery/proc/display_parts(mob/user)
to_chat(user, "<span class='notice'>Following parts detected in the machine:</span>")
for(var/obj/item/C in component_parts)
to_chat(user, "<span class='notice'>\icon[C] [C.name]</span>")
to_chat(user, "<span class='notice'>[bicon(C)] [C.name]</span>")
/obj/machinery/examine(mob/user)
..(user)

View File

@@ -151,7 +151,7 @@
var/icon/I2 = imap[2+(ix + icx*iy)*2]
// to_chat(world, "icon: \icon[I]")
// to_chat(world, "icon: [bicon(I)]")
I.DrawBox(colour, rx, ry, rx+1, ry+1)
@@ -168,7 +168,7 @@
H.screen_loc = "[5 + i%icx],[6+ round(i/icx)]"
// to_chat(world, "\icon[I] at [H.screen_loc]")
// to_chat(world, "[bicon(I)] at [H.screen_loc]")
H.name = (i==0)?"maprefresh":"map"
@@ -285,7 +285,7 @@
var/icon/I = imap[1+(ix + icx*iy)]
// to_chat(world, "icon: \icon[I]")
// to_chat(world, "icon: [bicon(I)]")
I.DrawBox(colour, rx, ry, rx, ry)
@@ -300,7 +300,7 @@
H.screen_loc = "[5 + i%icx],[6+ round(i/icx)]"
// to_chat(world, "\icon[I] at [H.screen_loc]")
// to_chat(world, "[bicon(I)] at [H.screen_loc]")
H.name = (i==0)?"maprefresh":"map"

View File

@@ -180,7 +180,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
screen = RCS_SENTPASS
message_log += "<B>Message sent to [recipient]</B><BR>[message]"
else
audible_message(text("\icon[src] *The Requests Console beeps: 'NOTICE: No server detected!'"),,4)
audible_message(text("[bicon(src)] *The Requests Console beeps: 'NOTICE: No server detected!'"),,4)
//Handle screen switching
if(href_list["setScreen"])

View File

@@ -215,14 +215,14 @@
return
if (src.active)
user.visible_message("\blue \icon[src] [user] deactivated the shield generator.", \
"\blue \icon[src] You deactivate the shield generator.", \
user.visible_message("\blue [bicon(src)] [user] deactivated the shield generator.", \
"\blue [bicon(src)] You deactivate the shield generator.", \
"You hear heavy droning fade out.")
src.shields_down()
else
if(anchored)
user.visible_message("\blue \icon[src] [user] activated the shield generator.", \
"\blue \icon[src] You activate the shield generator.", \
user.visible_message("\blue [bicon(src)] [user] activated the shield generator.", \
"\blue [bicon(src)] You activate the shield generator.", \
"You hear heavy droning.")
src.shields_up()
else

View File

@@ -126,14 +126,14 @@
newtime = Clamp(newtime, 120, 60000)
if(in_range(src, user) && isliving(user)) //No running off and setting bombs from across the station
timer = newtime
src.loc.visible_message("<span class='notice'>\icon[src] timer set for [timer] seconds.</span>")
src.loc.visible_message("<span class='notice'>[bicon(src)] timer set for [timer] seconds.</span>")
if(alert(user,"Would you like to start the countdown now?",,"Yes","No") == "Yes" && in_range(src, user) && isliving(user))
if(defused || active)
if(defused)
src.loc.visible_message("<span class='notice'>\icon[src] Device error: User intervention required.</span>")
src.loc.visible_message("<span class='notice'>[bicon(src)] Device error: User intervention required.</span>")
return
else
src.loc.visible_message("<span class='danger'>\icon[src] [timer] seconds until detonation, please clear the area.</span>")
src.loc.visible_message("<span class='danger'>[bicon(src)] [timer] seconds until detonation, please clear the area.</span>")
playsound(loc, 'sound/machines/click.ogg', 30, 1)
active = 1
update_icon()
@@ -223,7 +223,7 @@
var/obj/machinery/syndicatebomb/holder = src.loc
if(istype(holder))
attempts++
holder.loc.visible_message("<span class='danger'>\icon[holder] Alert: Bomb has detonated. Your score is now [defusals] for [attempts]. Resetting wires...</span>")
holder.loc.visible_message("<span class='danger'>[bicon(holder)] Alert: Bomb has detonated. Your score is now [defusals] for [attempts]. Resetting wires...</span>")
reset()
else
qdel(src)
@@ -233,7 +233,7 @@
if(istype(holder))
attempts++
defusals++
holder.loc.visible_message("<span class='notice'>\icon[holder] Alert: Bomb has been defused. Your score is now [defusals] for [attempts]! Resetting wires in 5 seconds...</span>")
holder.loc.visible_message("<span class='notice'>[bicon(holder)] Alert: Bomb has been defused. Your score is now [defusals] for [attempts]! Resetting wires in 5 seconds...</span>")
sleep(50) //Just in case someone is trying to remove the bomb core this gives them a little window to crowbar it out
if(istype(holder))
reset()

View File

@@ -333,7 +333,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
var/part_b_extra = ""
if(data == 3) // intercepted radio message
part_b_extra = " <i>(Intercepted)</i>"
var/part_a = "<span class='[frequency_span_class(display_freq)]'>\icon[radio]<b>\[[freq_text]\][part_b_extra]</b> <span class='name'>" // goes in the actual output
var/part_a = "<span class='[frequency_span_class(display_freq)]'>[bicon(radio)]<b>\[[freq_text]\][part_b_extra]</b> <span class='name'>" // goes in the actual output
// --- Some more pre-message formatting ---
var/part_b = "</span> <span class='message'>" // Tweaked for security headsets -- TLE
@@ -528,7 +528,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
// Create a radio headset for the sole purpose of using its icon
var/obj/item/device/radio/headset/radio = new
var/part_b = "</span><b> \icon[radio]\[[freq_text]\][part_b_extra]</b> <span class='message'>" // Tweaked for security headsets -- TLE
var/part_b = "</span><b> [bicon(radio)]\[[freq_text]\][part_b_extra]</b> <span class='message'>" // Tweaked for security headsets -- TLE
var/part_blackbox_b = "</span><b> \[[freq_text]\]</b> <span class='message'>"
var/part_c = "</span></span>"

View File

@@ -296,7 +296,7 @@
if(currently_vending.price > cashmoney.get_total())
// This is not a status display message, since it's something the character
// themselves is meant to see BEFORE putting the money in
to_chat(usr, "\icon[cashmoney] <span class='warning'>That is not enough money.</span>")
to_chat(usr, "[bicon(cashmoney)] <span class='warning'>That is not enough money.</span>")
return 0
// Bills (banknotes) cannot really have worth different than face value,

View File

@@ -133,7 +133,7 @@
/obj/item/mecha_parts/mecha_equipment/proc/occupant_message(message)
if(chassis)
chassis.occupant_message("\icon[src] [message]")
chassis.occupant_message("[bicon(src)] [message]")
return
/obj/item/mecha_parts/mecha_equipment/proc/log_message(message)

View File

@@ -153,7 +153,7 @@
I.loc = get_step(src,SOUTH)
I.materials[MAT_METAL] = get_resource_cost_w_coeff(D,MAT_METAL)
I.materials[MAT_GLASS] = get_resource_cost_w_coeff(D,MAT_GLASS)
visible_message("\icon[src] <b>\The [src]</b> beeps, \"\The [I] is complete.\"")
visible_message("[bicon(src)] <b>\The [src]</b> beeps, \"\The [I] is complete.\"")
being_built = null
updateUsrDialog()
@@ -196,14 +196,14 @@
if(stat&(NOPOWER|BROKEN))
return 0
if(!check_resources(D))
visible_message("\icon[src] <b>\The [src]</b> beeps, \"Not enough resources. Queue processing stopped.\"")
visible_message("[bicon(src)] <b>\The [src]</b> beeps, \"Not enough resources. Queue processing stopped.\"")
temp = {"<span class='alert'>Not enough resources to build next part.</span><br>
<a href='?src=\ref[src];process_queue=1'>Try again</a> | <a href='?src=\ref[src];clear_temp=1'>Return</a><a>"}
return 0
remove_from_queue(1)
build_part(D)
D = listgetindex(queue, 1)
visible_message("\icon[src] <b>\The [src]</b> beeps, \"Queue processing finished successfully.\"")
visible_message("[bicon(src)] <b>\The [src]</b> beeps, \"Queue processing finished successfully.\"")
/obj/machinery/mecha_part_fabricator/proc/list_queue()
var/output = "<b>Queue contains:</b>"
@@ -240,7 +240,7 @@
temp += "<a href='?src=\ref[src];clear_temp=1'>Return</a>"
updateUsrDialog()
visible_message("\icon[src] <b>\The [src]</b> beeps, \"Successfully synchronized with R&D server.\"")
visible_message("[bicon(src)] <b>\The [src]</b> beeps, \"Successfully synchronized with R&D server.\"")
return
temp = "Unable to connect to local R&D Database.<br>Please check your connections and try again.<br><a href='?src=\ref[src];clear_temp=1'>Return</a>"
@@ -271,7 +271,7 @@
user.set_machine(src)
var/turf/exit = get_step(src,SOUTH)
if(exit.density)
visible_message("\icon[src] <b>\The [src]</b> beeps, \"Error! Part outlet is obstructed.\"")
visible_message("[bicon(src)] <b>\The [src]</b> beeps, \"Error! Part outlet is obstructed.\"")
return
if(temp)
left_part = temp

View File

@@ -181,7 +181,7 @@
if(equipment && equipment.len)
to_chat(user, "It's equipped with:")
for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment)
to_chat(user, "\icon[ME] [ME]")
to_chat(user, "[bicon(ME)] [ME]")
return
@@ -1643,7 +1643,7 @@
/obj/mecha/proc/occupant_message(message as text)
if(message)
if(src.occupant && src.occupant.client)
to_chat(src.occupant, "\icon[src] [message]")
to_chat(src.occupant, "[bicon(src)] [message]")
return
/obj/mecha/proc/log_message(message as text,red=null)

View File

@@ -21,7 +21,7 @@
if(istype(M, /mob/living/carbon/human))
for(var/mob/O in viewers(world.view, src.loc))
to_chat(O, "<font color='red'>[M] triggered the \icon[src] [src]</font>")
to_chat(O, "<font color='red'>[M] triggered the [bicon(src)] [src]</font>")
triggered = 1
call(src,triggerproc)(M)

View File

@@ -40,7 +40,7 @@
name = "pizza bomb"
desc = "OH GOD THAT'S NOT A PIZZA"
icon_state = "pizzabox_bomb"
audible_message("<span class='warning'>\icon[src] *beep* *beep*</span>")
audible_message("<span class='warning'>[bicon(src)] *beep* *beep*</span>")
to_chat(user, "<span class='danger'>That's no pizza! That's a bomb!</span>")
message_admins("[key_name_admin(usr)] has triggered a pizza bomb armed by [armer] at <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[loc.x];Y=[loc.y];Z=[loc.z]'>(JMP)</a>.")
log_game("[key_name(usr)] has triggered a pizza bomb armed by [armer] ([loc.x],[loc.y],[loc.z]).")
@@ -50,9 +50,9 @@
/obj/item/device/pizza_bomb/proc/go_boom()
if(disarmed)
visible_message("<span class='danger'>\icon[src] Sparks briefly jump out of the [correct_wire] wire on \the [src], but it's disarmed!")
visible_message("<span class='danger'>[bicon(src)] Sparks briefly jump out of the [correct_wire] wire on \the [src], but it's disarmed!")
return
src.audible_message("\icon[src] <b>[src]</b> beeps, \"Enjoy the pizza!\"")
src.audible_message("[bicon(src)] <b>[src]</b> beeps, \"Enjoy the pizza!\"")
src.visible_message("<span class='userdanger'>\The [src] violently explodes!</span>")
explosion(src.loc,1,2,4,flame_range = 2) //Identical to a minibomb
qdel(src)
@@ -67,7 +67,7 @@
user.visible_message("<span class='warning'>[user] cuts the [chosen_wire] wire!</span>", "<span class='danger'>You cut the [chosen_wire] wire!</span>")
sleep(5)
if(chosen_wire == correct_wire)
src.audible_message("<span class='warning'>\icon[src] \The [src] suddenly stops beeping and seems lifeless.</span>")
src.audible_message("<span class='warning'>[bicon(src)] \The [src] suddenly stops beeping and seems lifeless.</span>")
to_chat(user, "<span class='notice'>You did it!</span>")
icon_state = "pizzabox_bomb_[correct_wire]"
name = "pizza bomb"

View File

@@ -1130,7 +1130,7 @@ obj/item/toy/cards/deck/syndicate/black
var/message = generate_ion_law()
to_chat(user, "<span class='notice'>You press the button on [src].</span>")
playsound(user, 'sound/machines/click.ogg', 20, 1)
visible_message("<span class='danger'>\icon[src] [message]</span>")
visible_message("<span class='danger'>[bicon(src)] [message]</span>")
cooldown = 1
spawn(30) cooldown = 0
return
@@ -1149,7 +1149,7 @@ obj/item/toy/cards/deck/syndicate/black
var/message = pick("You won't get away this time, Griffin!", "Stop right there, criminal!", "Hoot! Hoot!", "I am the night!")
to_chat(user, "<span class='notice'>You pull the string on the [src].</span>")
playsound(user, 'sound/misc/hoot.ogg', 25, 1)
visible_message("<span class='danger'>\icon[src] [message]</span>")
visible_message("<span class='danger'>[bicon(src)] [message]</span>")
cooldown = 1
spawn(30) cooldown = 0
return
@@ -1168,7 +1168,7 @@ obj/item/toy/cards/deck/syndicate/black
var/message = pick("You can't stop me, Owl!", "My plan is flawless! The vault is mine!", "Caaaawwww!", "You will never catch me!")
to_chat(user, "<span class='notice'>You pull the string on the [src].</span>")
playsound(user, 'sound/misc/caw.ogg', 25, 1)
visible_message("<span class='danger'>\icon[src] [message]</span>")
visible_message("<span class='danger'>[bicon(src)] [message]</span>")
cooldown = 1
spawn(30) cooldown = 0
return
@@ -1274,12 +1274,12 @@ obj/item/toy/cards/deck/syndicate/black
/obj/item/toy/minigibber/attackby(var/obj/O, var/mob/user, params)
if(istype(O,/obj/item/toy/character) && O.loc == user)
to_chat(user, "<span class='notice'>You start feeding \the [O] \icon[O] into \the [src]'s mini-input.</span>")
to_chat(user, "<span class='notice'>You start feeding \the [O] [bicon(O)] into \the [src]'s mini-input.</span>")
if(do_after(user,10, target = src))
if(O.loc != user)
to_chat(user, "<span class='alert'>\The [O] is too far away to feed into \the [src]!</span>")
else
to_chat(user, "<span class='notice'>You feed \the [O] \icon[O] into \the [src]!</span>")
to_chat(user, "<span class='notice'>You feed \the [O] [bicon(O)] into \the [src]!</span>")
user.unEquip(O)
O.forceMove(src)
stored_minature = O
@@ -1305,7 +1305,7 @@ obj/item/toy/cards/deck/syndicate/black
user.visible_message("<span class='notice'>[user] pulls back the string on [src].</span>")
icon_state = "[initial(icon_state)]_used"
sleep(5)
audible_message("<span class='danger'>\icon[src] Hiss!</span>")
audible_message("<span class='danger'>[bicon(src)] Hiss!</span>")
var/list/possible_sounds = list('sound/voice/hiss1.ogg', 'sound/voice/hiss2.ogg', 'sound/voice/hiss3.ogg', 'sound/voice/hiss4.ogg')
playsound(get_turf(src), pick(possible_sounds), 50, 1)
spawn(45)
@@ -1431,7 +1431,7 @@ obj/item/toy/cards/deck/syndicate/black
/obj/item/toy/figure/attack_self(mob/user as mob)
if(cooldown < world.time)
cooldown = (world.time + 30) //3 second cooldown
user.visible_message("<span class='notice'>\icon[src] The [src] says \"[toysay]\".</span>")
user.visible_message("<span class='notice'>[bicon(src)] The [src] says \"[toysay]\".</span>")
playsound(user, 'sound/machines/click.ogg', 20, 1)
/obj/item/toy/figure/cmo
@@ -1632,7 +1632,7 @@ obj/item/toy/cards/deck/syndicate/black
if(!cooldown)
var/answer = pick(possible_answers)
user.visible_message("<span class='notice'>[user] focuses on their question and [use_action]...</span>")
user.visible_message("<span class='notice'>\icon[src] The [src] says \"[answer]\"</span>")
user.visible_message("<span class='notice'>[bicon(src)] The [src] says \"[answer]\"</span>")
spawn(30)
cooldown = 0
return

View File

@@ -397,4 +397,4 @@ AI MODULES
laws[1] = generate_ion_law()
to_chat(user, "<span class='notice'>You press the button on [src].</span>")
playsound(user, 'sound/machines/click.ogg', 20, 1)
src.loc.visible_message("<span class='warning'>\icon[src] [laws[1]]</span>")
src.loc.visible_message("<span class='warning'>[bicon(src)] [laws[1]]</span>")

View File

@@ -150,8 +150,8 @@
return
/obj/item/weapon/card/id/attack_self(mob/user as mob)
user.visible_message("[user] shows you: \icon[src] [src.name]. The assignment on the card: [src.assignment]",\
"You flash your ID card: \icon[src] [src.name]. The assignment on the card: [src.assignment]")
user.visible_message("[user] shows you: [bicon(src)] [src.name]. The assignment on the card: [src.assignment]",\
"You flash your ID card: [bicon(src)] [src.name]. The assignment on the card: [src.assignment]")
if(mining_points)
to_chat(user, "There's [mining_points] mining equipment redemption points loaded onto this card.")
src.add_fingerprint(user)

View File

@@ -37,9 +37,9 @@ var/global/list/moneytypes=list(
/obj/item/weapon/spacecash/examine(mob/user)
if(amount>1)
to_chat(user, "\icon[src] This is a stack of [amount] [src]s.")
to_chat(user, "[bicon(src)] This is a stack of [amount] [src]s.")
else
to_chat(user, "\icon[src] This is \a [src]s.")
to_chat(user, "[bicon(src)] This is \a [src]s.")
to_chat(user, "It's worth [worth*amount] credits.")
/obj/item/weapon/spacecash/update_icon()

View File

@@ -37,7 +37,7 @@
/obj/item/weapon/extinguisher/examine(mob/user)
if(..(user, 0))
to_chat(usr, "\icon[src] [src.name] contains:")
to_chat(usr, "[bicon(src)] [src.name] contains:")
if(reagents && reagents.reagent_list.len)
for(var/datum/reagent/R in reagents.reagent_list)
to_chat(user, "\blue [R.volume] units of [R.name]")

View File

@@ -24,9 +24,9 @@
return
for(var/obj/item/I in loadedItems)
spawn(0)
to_chat(user, "<span class='info'>\icon [I] It has \the [I] loaded.</span>")
to_chat(user, "<span class='info'>[bicon(I)] It has \the [I] loaded.</span>")
if(tank)
to_chat(user, "<span class='notice'>\icon [tank] It has \the [tank] mounted onto it.</span>")
to_chat(user, "<span class='notice'>[bicon(tank)] It has \the [tank] mounted onto it.</span>")
/obj/item/weapon/pneumatic_cannon/attackby(obj/item/weapon/W, mob/user, params)

View File

@@ -45,7 +45,7 @@
icon = src.loc
if (!in_range(src, user))
if (icon == src)
to_chat(user, "\blue It's \a \icon[icon][src]! If you want any more information you'll need to get closer.")
to_chat(user, "\blue It's \a [bicon(icon)][src]! If you want any more information you'll need to get closer.")
return
var/celsius_temperature = src.air_contents.temperature-T0C
@@ -64,7 +64,7 @@
else
descriptive = "furiously hot"
to_chat(user, "\blue \The \icon[icon][src] feels [descriptive]")
to_chat(user, "\blue \The [bicon(icon)][src] feels [descriptive]")
return

View File

@@ -128,7 +128,7 @@ var/global/list/captain_display_cases = list()
..(user)
to_chat(user, "<span class='notice'>Peering through the glass, you see that it contains:</span>")
if(occupant)
to_chat(user, "\icon[occupant] <span class='notice'>\A [occupant].</span>")
to_chat(user, "[bicon(occupant)] <span class='notice'>\A [occupant].</span>")
else
to_chat(user, "Nothing.")
@@ -217,9 +217,9 @@ var/global/list/captain_display_cases = list()
return
locked = !locked
if(!locked)
to_chat(user, "\icon[src] <span class='notice'>\The [src] clicks as locks release, and it slowly opens for you.</span>")
to_chat(user, "[bicon(src)] <span class='notice'>\The [src] clicks as locks release, and it slowly opens for you.</span>")
else
to_chat(user, "\icon[src] <span class='notice'>You close \the [src] and swipe your card, locking it.</span>")
to_chat(user, "[bicon(src)] <span class='notice'>You close \the [src] and swipe your card, locking it.</span>")
update_icon()
return
if(istype(W,/obj/item/weapon/crowbar) && (!locked || destroyed))
@@ -305,7 +305,7 @@ var/global/list/captain_display_cases = list()
dump()
update_icon()
else
to_chat(src, "\icon[src] <span class='warning'>\The [src] is empty!</span>")
to_chat(src, "[bicon(src)] <span class='warning'>\The [src] is empty!</span>")
else
user.visible_message("[user.name] gently runs his hands over \the [src] in appreciation of its contents.", \
"You gently run your hands over \the [src] in appreciation of its contents.", \

View File

@@ -23,7 +23,7 @@
/obj/structure/mopbucket/examine(mob/user)
if(..(user, 1))
to_chat(usr, text("\icon[] [] contains [] units of water left!", src, src.name, src.reagents.total_volume))
to_chat(usr, "[bicon(src)] [src] contains [reagents.total_volume] units of water left!")
/obj/structure/mopbucket/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/mop))

View File

@@ -72,7 +72,7 @@
else if(isicon(var_value))
to_chat(usr, "Variable appears to be <b>ICON</b>.")
var_value = "\icon[var_value]"
var_value = "[bicon(var_value)]"
default = "icon"
else if(istype(var_value,/atom) || istype(var_value,/datum))

View File

@@ -328,7 +328,7 @@ var/list/forbidden_varedit_object_types = list(
if(default == "num")
dir = 1
else if(default == "icon")
var_value = "\icon[var_value]"
var_value = "[bicon(var_value)]"
to_chat(usr, "Variable contains: [var_value]")
if(dir)
@@ -465,7 +465,7 @@ var/list/forbidden_varedit_object_types = list(
else if(isicon(variable))
to_chat(usr, "Variable appears to be <b>ICON</b>.")
variable = "\icon[variable]"
variable = "[bicon(variable)]"
class = "icon"
else if(istype(variable,/matrix))

View File

@@ -13,7 +13,7 @@
return
var/image/cross = image('icons/obj/storage.dmi',"bible")
msg = "\blue \icon[cross] <b><font color=purple>PRAY: </font>[key_name(src, 1)] (<A HREF='?_src_=holder;adminmoreinfo=\ref[src]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=\ref[src]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[src]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[src]'>SM</A>) ([admin_jump_link(src, "holder")]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;adminspawncookie=\ref[src]'>SC</a>):</b> [msg]"
msg = "\blue [bicon(cross)] <b><font color=purple>PRAY: </font>[key_name(src, 1)] (<A HREF='?_src_=holder;adminmoreinfo=\ref[src]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=\ref[src]'>PP</A>) (<A HREF='?_src_=vars;Vars=\ref[src]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=\ref[src]'>SM</A>) ([admin_jump_link(src, "holder")]) (<A HREF='?_src_=holder;secretsadmin=check_antagonist'>CA</A>) (<A HREF='?_src_=holder;adminspawncookie=\ref[src]'>SC</a>):</b> [msg]"
for(var/client/X in admins)
if(check_rights(R_EVENT,0,X.mob))

View File

@@ -84,7 +84,7 @@
/obj/machinery/arcade/proc/pay_with_cash(var/obj/item/weapon/spacecash/cashmoney, var/mob/user)
if(cashmoney.get_total() < token_price)
to_chat(user, "\icon[cashmoney] <span class='warning'>That is not enough money.</span>")
to_chat(user, "[bicon(cashmoney)] <span class='warning'>That is not enough money.</span>")
return 0
visible_message("<span class='info'>[usr] inserts a credit chip into [src].</span>")
var/left = cashmoney.get_total() - token_price

View File

@@ -61,7 +61,7 @@
return
/obj/item/device/onetankbomb/receive_signal() //This is mainly called by the sensor through sense() to the holder, and from the holder to here.
visible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
visible_message("[bicon(src)] *beep* *beep*", "*beep* *beep*")
sleep(10)
if(!src)
return

View File

@@ -55,7 +55,7 @@
health_scan = M.health
if(health_scan <= alarm_health)
pulse()
audible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
audible_message("[bicon(src)] *beep* *beep*", "*beep* *beep*")
toggle_scan()
return
return

View File

@@ -124,7 +124,7 @@
if(!secured || !on || cooldown > 0)
return 0
pulse(0)
audible_message("\icon[src] *beep* *beep*", null, 3)
audible_message("[bicon(src)] *beep* *beep*", null, 3)
cooldown = 2
spawn(10)
process_cooldown()

View File

@@ -50,7 +50,7 @@
sense()
if((!secured)||(!scanning)||(cooldown > 0)) return 0
pulse(0)
visible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
visible_message("[bicon(src)] *beep* *beep*", "*beep* *beep*")
cooldown = 2
spawn(10)
process_cooldown()

View File

@@ -150,7 +150,7 @@
pulse(1)
for(var/mob/O in hearers(1, src.loc))
O.show_message(text("\icon[] *beep* *beep*", src), 3, "*beep* *beep*", 2)
O.show_message("[bicon(src)] *beep* *beep*", 3, "*beep* *beep*", 2)
return
/obj/item/device/assembly/signaler/proc/set_frequency(new_frequency)

View File

@@ -44,7 +44,7 @@
if((!secured)||(cooldown > 0)) return 0
pulse(0)
if(loc)
loc.visible_message("\icon[src] *beep* *beep*", "*beep* *beep*")
loc.visible_message("[bicon(src)] *beep* *beep*", "*beep* *beep*")
cooldown = 2
spawn(10)
process_cooldown()

View File

@@ -30,12 +30,12 @@
recorded_type = type
listening = 0
var/turf/T = get_turf(src) //otherwise it won't work in hand
T.visible_message("\icon[src] beeps, \"Activation message is [type ? "the sound when one [recorded]" : "'[recorded]'."]\"")
T.visible_message("[bicon(src)] beeps, \"Activation message is [type ? "the sound when one [recorded]" : "'[recorded]'."]\"")
else
if(findtext(msg, recorded) && type == recorded_type)
pulse(0)
var/turf/T = get_turf(src) //otherwise it won't work in hand
T.visible_message("\icon[src] \red beeps!")
T.visible_message("[bicon(src)] \red beeps!")
activate()
return // previously this toggled listning when not in a holder, that's a little silly. It was only called in attack_self that way.
@@ -46,7 +46,7 @@
listening = !listening
var/turf/T = get_turf(src)
T.visible_message("\icon[src] beeps, \"[listening ? "Now" : "No longer"] recording input.\"")
T.visible_message("[bicon(src)] beeps, \"[listening ? "Now" : "No longer"] recording input.\"")
return 1

View File

@@ -149,7 +149,7 @@ obj/machinery/gateway/centerstation/process()
/obj/machinery/gateway/centerstation/attackby(obj/item/device/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/device/multitool))
to_chat(user, "\black The gate is already calibrated, there is no work for you to do here.")
to_chat(user, "The gate is already calibrated, there is no work for you to do here.")
return
/////////////////////////////////////Away////////////////////////

View File

@@ -172,7 +172,7 @@
if(istype(M, /mob/living/carbon/human))
for(var/mob/O in viewers(world.view, src.loc))
to_chat(O, "<font color='red'>[M] triggered the \icon[src] [src]</font>")
to_chat(O, "<font color='red'>[M] triggered the [bicon(src)] [src]</font>")
triggered = 1
call(src,triggerproc)(M)

View File

@@ -84,4 +84,8 @@
var/datum/click_intercept/click_intercept = null
//datum that controls the displaying and hiding of tooltips
var/datum/tooltip/tooltips
var/datum/tooltip/tooltips
// Their chat window, sort of important.
// See /goon/code/datums/browserOutput.dm
var/datum/chatOutput/chatOutput

View File

@@ -43,6 +43,9 @@
completed_asset_jobs += job
return
if(href_list["_src_"] == "chat")
return chatOutput.Topic(href, href_list)
//Reduces spamming of links by dropping calls that happen during the delay period
if(next_allowed_topic_time > world.time)
return
@@ -203,6 +206,11 @@
if("prefs") return prefs.process_link(usr,href_list)
if("vars") return view_var_Topic(href,href_list,hsrc)
switch(href_list["action"])
if ("openLink")
src << link(href_list["link"])
..() //redirect to hsrc.Topic()
/client/proc/is_content_unlocked()
@@ -245,6 +253,7 @@
//CONNECT//
///////////
/client/New(TopicData)
chatOutput = new /datum/chatOutput(src) // Right off the bat.
TopicData = null //Prevent calls to client.Topic from connect
if(connection != "seeker") //Invalid connection type.
@@ -283,6 +292,7 @@
prefs.last_id = computer_id //these are gonna be used for banning
. = ..() //calls mob.Login()
chatOutput.start()
if(custom_event_msg && custom_event_msg != "")
to_chat(src, "<h1 class='alert'>Custom Event</h1>")

View File

@@ -82,13 +82,13 @@
var/datum/effect/system/spark_spread/spark_system
/obj/item/weapon/rig/examine()
to_chat(usr, "This is \icon[src][src.name].")
to_chat(usr, "This is [bicon(src)][src.name].")
to_chat(usr, "[src.desc]")
if(wearer)
for(var/obj/item/piece in list(helmet,gloves,chest,boots))
if(!piece || piece.loc != wearer)
continue
to_chat(usr, "\icon[piece] \The [piece] [piece.gender == PLURAL ? "are" : "is"] deployed.")
to_chat(usr, "[bicon(piece)] \The [piece] [piece.gender == PLURAL ? "are" : "is"] deployed.")
if(src.loc == usr)
to_chat(usr, "The maintenance panel is [open ? "open" : "closed"].")

View File

@@ -389,7 +389,7 @@
/obj/item/clothing/accessory/petcollar/examine(mob/user)
..()
if(access_id)
to_chat(user, "There is \icon[access_id] \a [access_id] clipped onto it.")
to_chat(user, "There is [bicon(access_id)] \a [access_id] clipped onto it.")
/obj/item/clothing/accessory/petcollar/equipped(mob/living/simple_animal/user)
if(istype(user))

View File

@@ -61,7 +61,7 @@
dat += {"
<td>
<a href='?src=\ref[src];[peripheralop]=\ref[C]'>
\icon[C]<br>
[bicon(C)]<br>
<span>[C.name]</span>
</a>
</td>"}

View File

@@ -60,7 +60,7 @@
if(!interactable() || !computer.radio || ..(href,href_list) )
return
if (!(computer.z in config.station_levels))
to_chat(usr, "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!")
to_chat(usr, "<span class='danger'>Unable to establish a connection</span>: You're too far away from the station!")
return
if("main" in href_list)

View File

@@ -25,7 +25,7 @@
attackby(obj/item/weapon/aiModule/module as obj, mob/user as mob, params)
if (user.z > 6)
to_chat(user, "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!")
to_chat(user, "<span class='danger'>Unable to establish a connection</span>: You're too far away from the station!")
return
if(istype(module, /obj/item/weapon/aiModule))
module.install(src)

View File

@@ -50,7 +50,7 @@
if(!interactable())
return
if (computer.z > 6)
to_chat(usr, "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!")
to_chat(usr, "<span class='danger'>Unable to establish a connection</span>: You're too far away from the station!")
return
var/dat

View File

@@ -411,10 +411,10 @@
if (!customrecepient.silent)
playsound(customrecepient.loc, 'sound/machines/twobeep.ogg', 50, 1)
for (var/mob/O in hearers(3, customrecepient.loc))
O.show_message(text("\icon[customrecepient] *[customrecepient.ttone]*"))
O.show_message(text("[bicon(customrecepient)] *[customrecepient.ttone]*"))
if( customrecepient.loc && ishuman(customrecepient.loc) )
var/mob/living/carbon/human/H = customrecepient.loc
to_chat(H, "\icon[customrecepient] <b>Message from [customsender] ([customjob]), </b>\"[custommessage]\" (<a href='byond:)//?src=\ref[src];choice=Message;skiprefresh=1;target=\ref[src]'>Reply</a>)"
to_chat(H, "[bicon(customrecepient)] <b>Message from [customsender] ([customjob]), </b>\"[custommessage]\" (<a href='byond:)//?src=\ref[src];choice=Message;skiprefresh=1;target=\ref[src]'>Reply</a>)"
log_pda("[usr] (PDA: [customsender]) sent \"[custommessage]\" to [customrecepient.owner]")
customrecepient.overlays.Cut()
@@ -426,10 +426,10 @@
if (!customrecepient.silent)
playsound(customrecepient.loc, 'sound/machines/twobeep.ogg', 50, 1)
for (var/mob/O in hearers(3, customrecepient.loc))
O.show_message(text("\icon[customrecepient] *[customrecepient.ttone]*"))
O.show_message(text("[bicon(customrecepient)] *[customrecepient.ttone]*"))
if( customrecepient.loc && ishuman(customrecepient.loc) )
var/mob/living/carbon/human/H = customrecepient.loc
to_chat(H, "\icon[customrecepient] <b>Message from [PDARec.owner] ([customjob]), </b>\"[custommessage]\" (<a href='byond:)//?src=\ref[customrecepient];choice=Message;skiprefresh=1;target=\ref[PDARec]'>Reply</a>)"
to_chat(H, "[bicon(customrecepient)] <b>Message from [PDARec.owner] ([customjob]), </b>\"[custommessage]\" (<a href='byond:)//?src=\ref[customrecepient];choice=Message;skiprefresh=1;target=\ref[PDARec]'>Reply</a>)"
log_pda("[usr] (PDA: [PDARec.owner]) sent \"[custommessage]\" to [customrecepient.owner]")
customrecepient.overlays.Cut()

View File

@@ -58,7 +58,7 @@
return
if (computer.z > 6)
to_chat(usr, "\red <b>Unable to establish a connection</b>: \black You're too far away from the station!")
to_chat(usr, "<span class='danger'>Unable to establish a connection</span>: You're too far away from the station!")
return
var/dat

View File

@@ -262,11 +262,11 @@
network = 0
power = 0
else
to_chat(usr, "\icon[src]<span class='warning'>You don't have that much money!</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>You don't have that much money!</span>")
else
to_chat(usr, "\icon[src]<span class='warning'>Unable to access account. Check security settings and try again.</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>Unable to access account. Check security settings and try again.</span>")
else
to_chat(usr, "\icon[src]<span class='warning'>Unable to access vendor account. Please record the machine ID and call CentComm Support.</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>Unable to access vendor account. Please record the machine ID and call CentComm Support.</span>")
/obj/machinery/lapvend/proc/total()
var/total = 0
@@ -405,6 +405,6 @@
power = 0
else
to_chat(usr, "\icon[src]<span class='warning'>Unable to access account. Check security settings and try again.</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>Unable to access account. Check security settings and try again.</span>")
else
to_chat(usr, "\icon[src]<span class='warning'>Unable to access vendor account. Please record the machine ID and call CentComm Support.</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>Unable to access vendor account. Please record the machine ID and call CentComm Support.</span>")

View File

@@ -49,7 +49,7 @@ log transactions
if(linked_db && ( (linked_db.stat & NOPOWER) || !linked_db.activated ) )
linked_db = null
authenticated_account = null
src.visible_message("\red \icon[src] [src] buzzes rudely, \"Connection to remote database lost.\"")
src.visible_message("\red [bicon(src)] [src] buzzes rudely, \"Connection to remote database lost.\"")
updateDialog()
if(ticks_left_timeout > 0)
@@ -225,7 +225,7 @@ log transactions
var/target_account_number = text2num(href_list["target_acc_number"])
var/transfer_purpose = href_list["purpose"]
if(linked_db.charge_to_account(target_account_number, authenticated_account.owner_name, transfer_purpose, machine_id, transfer_amount))
to_chat(usr, "\icon[src]<span class='info'>Funds transfer successful.</span>")
to_chat(usr, "[bicon(src)]<span class='info'>Funds transfer successful.</span>")
authenticated_account.money -= transfer_amount
//create an entry in the account transaction log
@@ -238,10 +238,10 @@ log transactions
T.amount = "([transfer_amount])"
authenticated_account.transaction_log.Add(T)
else
to_chat(usr, "\icon[src]<span class='warning'>Funds transfer failed.</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>Funds transfer failed.</span>")
else
to_chat(usr, "\icon[src]<span class='warning'>You don't have enough funds to do that!</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>You don't have enough funds to do that!</span>")
if("view_screen")
view_screen = text2num(href_list["view_screen"])
if("change_security_level")
@@ -275,11 +275,11 @@ log transactions
T.time = worldtime2text()
failed_account.transaction_log.Add(T)
else
to_chat(usr, "\red \icon[src] Incorrect pin/account combination entered, [max_pin_attempts - number_incorrect_tries] attempts remaining.")
to_chat(usr, "\red [bicon(src)] Incorrect pin/account combination entered, [max_pin_attempts - number_incorrect_tries] attempts remaining.")
previous_account_number = tried_account_num
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 1)
else
to_chat(usr, "\red \icon[src] incorrect pin/account combination entered.")
to_chat(usr, "\red [bicon(src)] incorrect pin/account combination entered.")
number_incorrect_tries = 0
else
playsound(src, 'sound/machines/twobeep.ogg', 50, 1)
@@ -295,7 +295,7 @@ log transactions
T.time = worldtime2text()
authenticated_account.transaction_log.Add(T)
to_chat(usr, "\blue \icon[src] Access granted. Welcome user '[authenticated_account.owner_name].'")
to_chat(usr, "\blue [bicon(src)] Access granted. Welcome user '[authenticated_account.owner_name].'")
previous_account_number = tried_account_num
if("withdrawal")
@@ -323,7 +323,7 @@ log transactions
T.time = worldtime2text()
authenticated_account.transaction_log.Add(T)
else
to_chat(usr, "\icon[src]<span class='warning'>You don't have enough funds to do that!</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>You don't have enough funds to do that!</span>")
if("balance_statement")
if(authenticated_account)
if(world.timeofday < lastprint + PRINT_DELAY)
@@ -391,7 +391,7 @@ log transactions
if(I)
authenticated_account = attempt_account_access(I.associated_account_number)
if(authenticated_account)
to_chat(human_user, "\blue \icon[src] Access granted. Welcome user '[authenticated_account.owner_name].'")
to_chat(human_user, "\blue [bicon(src)] Access granted. Welcome user '[authenticated_account.owner_name].'")
//create a transaction log entry
var/datum/transaction/T = new()

View File

@@ -111,9 +111,9 @@
var/obj/item/weapon/card/I = O
scan_card(I)
else
to_chat(usr, "\icon[src]<span class='warning'>Unable to connect to linked account.</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>Unable to connect to linked account.</span>")
else
to_chat(usr, "\icon[src]<span class='warning'>Unable to connect to accounts database.</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>Unable to connect to accounts database.</span>")
else
..()
@@ -130,7 +130,7 @@
alert("That is not a valid code!")
print_reference()
else
to_chat(usr, "\icon[src]<span class='warning'>Incorrect code entered.</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>Incorrect code entered.</span>")
if("change_id")
var/attempt_code = text2num(input("Re-enter the current EFTPOS access code", "Confirm EFTPOS code"))
if(attempt_code == access_code)
@@ -139,7 +139,7 @@
eftpos_name = name + " EFTPOS scanner"
print_reference()
else
to_chat(usr, "\icon[src]<span class='warning'>Incorrect code entered.</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>Incorrect code entered.</span>")
if("link_account")
if(!linked_db)
reconnect_database()
@@ -148,7 +148,7 @@
var/attempt_pin = input("Enter pin code", "Account pin") as num
linked_account = attempt_account_access(attempt_account_num, attempt_pin, 1)
else
to_chat(usr, "\icon[src]<span class='warning'>Unable to connect to accounts database.</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>Unable to connect to accounts database.</span>")
if("trans_purpose")
var/purpose = input("Enter reason for EFTPOS transaction", "Transaction purpose") as text|null
if(purpose)
@@ -168,7 +168,7 @@
else if(linked_account)
transaction_locked = 1
else
to_chat(usr, "\icon[src] <span class='warning'>No account connected to send transactions to.</span>")
to_chat(usr, "[bicon(src)] <span class='warning'>No account connected to send transactions to.</span>")
if("scan_card")
//attempt to connect to a new db, and if that doesn't work then fail
if(!linked_db)
@@ -178,7 +178,7 @@
if (istype(I, /obj/item/weapon/card))
scan_card(I)
else
to_chat(usr, "\icon[src]<span class='warning'>Unable to link accounts.</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>Unable to link accounts.</span>")
if("reset")
//reset the access code - requires HoP/captain access
var/obj/item/I = usr.get_active_hand()
@@ -186,10 +186,10 @@
var/obj/item/weapon/card/id/C = I
if(access_cent_commander in C.access || access_hop in C.access || access_captain in C.access)
access_code = 0
to_chat(usr, "\icon[src]<span class='info'>Access code reset to 0.</span>")
to_chat(usr, "[bicon(src)]<span class='info'>Access code reset to 0.</span>")
else if (istype(I, /obj/item/weapon/card/emag))
access_code = 0
to_chat(usr, "\icon[src]<span class='info'>Access code reset to 0.</span>")
to_chat(usr, "[bicon(src)]<span class='info'>Access code reset to 0.</span>")
src.attack_self(usr)
@@ -204,7 +204,7 @@
if(D)
if(transaction_amount <= D.money)
playsound(src, 'sound/machines/chime.ogg', 50, 1)
src.visible_message("\icon[src] The [src] chimes.")
src.visible_message("[bicon(src)] The [src] chimes.")
transaction_paid = 1
//transfer the money
@@ -233,11 +233,11 @@
T.time = worldtime2text()
linked_account.transaction_log.Add(T)
else
to_chat(usr, "\icon[src]<span class='warning'>You don't have that much money!</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>You don't have that much money!</span>")
else
to_chat(usr, "\icon[src]<span class='warning'>Unable to access account. Check security settings and try again.</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>Unable to access account. Check security settings and try again.</span>")
else
to_chat(usr, "\icon[src]<span class='warning'>EFTPOS is not connected to an account.</span>")
to_chat(usr, "[bicon(src)]<span class='warning'>EFTPOS is not connected to an account.</span>")
else
..()

View File

@@ -391,7 +391,7 @@ var/const/POS_HEADER = {"<html>
return
/obj/machinery/pos/proc/say(var/text)
src.visible_message("\icon[src] <span class=\"notice\"><b>[name]</b> states, \"[text]\"</span>")
src.visible_message("[bicon(src)] <span class=\"notice\"><b>[name]</b> states, \"[text]\"</span>")
/obj/machinery/pos/Topic(var/href, var/list/href_list)
if(..(href,href_list)) return

View File

@@ -46,7 +46,7 @@
description_holders["antag"] = (update_antag_info)? A.get_description_antag() : ""
description_holders["name"] = "[A.name]"
description_holders["icon"] = "\icon[A]"
description_holders["icon"] = "[bicon(A)]"
description_holders["desc"] = A.desc
/client/Stat()

View File

@@ -80,7 +80,7 @@
/obj/item/weapon/grown/nettle/death
name = "deathnettle"
desc = "The <span class='danger'>glowing</span> \black nettle incites <span class='boldannounce'>rage</span>\black in you just from looking at it!"
desc = "The <span class='danger'>glowing</span> nettle incites <span class='boldannounce'>rage</span> in you just from looking at it!"
icon_state = "deathnettle"
force = 30
throwforce = 15

View File

@@ -68,15 +68,15 @@
active = 0
if(failed_task)
failed_task = 0
visible_message("\icon[src] [src] pings unhappily, flashing a red warning light.")
visible_message("[bicon(src)] [src] pings unhappily, flashing a red warning light.")
else
visible_message("\icon[src] [src] pings happily.")
visible_message("[bicon(src)] [src] pings happily.")
if(eject_disk)
eject_disk = 0
if(loaded_disk)
loaded_disk.loc = get_turf(src)
visible_message("\icon[src] [src] beeps and spits out [loaded_disk].")
visible_message("[bicon(src)] [src] beeps and spits out [loaded_disk].")
loaded_disk = null
/obj/machinery/botany/attackby(obj/item/weapon/W as obj, mob/user as mob)
@@ -212,14 +212,14 @@
plant_controller.seeds[seed.seed.name] = seed.seed
seed.update_seed()
visible_message("\icon[src] [src] beeps and spits out [seed].")
visible_message("[bicon(src)] [src] beeps and spits out [seed].")
seed = null
if(href_list["eject_disk"])
if(!loaded_disk) return
loaded_disk.loc = get_turf(src)
visible_message("\icon[src] [src] beeps and spits out [loaded_disk].")
visible_message("[bicon(src)] [src] beeps and spits out [loaded_disk].")
loaded_disk = null
usr.set_machine(src)

View File

@@ -218,7 +218,7 @@ var/global/loopModeNames=list(
if(response)
var/json = file2text(response["CONTENT"])
if("/>" in json)
visible_message("<span class='warning'>\icon[src] \The [src] buzzes, unable to update its playlist.</span>","<em>You hear a buzz.</em>")
visible_message("<span class='warning'>[bicon(src)] \The [src] buzzes, unable to update its playlist.</span>","<em>You hear a buzz.</em>")
stat &= BROKEN
update_icon()
return
@@ -226,11 +226,11 @@ var/global/loopModeNames=list(
for(var/list/record in songdata)
playlist += new /datum/song_info(record)
if(playlist.len==0)
visible_message("<span class='warning'>\icon[src] \The [src] buzzes, unable to update its playlist.</span>","<em>You hear a buzz.</em>")
visible_message("<span class='warning'>[bicon(src)] \The [src] buzzes, unable to update its playlist.</span>","<em>You hear a buzz.</em>")
stat &= BROKEN
update_icon()
return
visible_message("<span class='notice'>\icon[src] \The [src] beeps, and the menu on its front fills with [playlist.len] items.</span>","<em>You hear a beep.</em>")
visible_message("<span class='notice'>[bicon(src)] \The [src] beeps, and the menu on its front fills with [playlist.len] items.</span>","<em>You hear a beep.</em>")
if(autoplay)
playing=1
autoplay=0
@@ -261,8 +261,8 @@ var/global/loopModeNames=list(
var/datum/song_info/song = playlist[current_song]
media_url = song.url
media_start_time = world.time
visible_message("<span class='notice'>\icon[src] \The [src] begins to play [song.display()].</span>","<em>You hear music.</em>")
//visible_message("<span class='notice'>\icon[src] \The [src] warbles: [song.length/10]s @ [song.url]</notice>")
visible_message("<span class='notice'>[bicon(src)] \The [src] begins to play [song.display()].</span>","<em>You hear music.</em>")
//visible_message("<span class='notice'>[bicon(src)] \The [src] warbles: [song.length/10]s @ [song.url]</notice>")
else
media_url=""
media_start_time = 0

View File

@@ -147,7 +147,7 @@
if(!..(user))
return
var/msg = "<span class='info'>*---------*\nThis is \icon[src] \a <EM>[src]</EM>!\n[desc]\n"
var/msg = "<span class='info'>*---------*\nThis is [bicon(src)] \a <EM>[src]</EM>!\n[desc]\n"
msg += "<span class='warning'>"
if(src.brainmob && src.brainmob.key)

View File

@@ -41,7 +41,7 @@
t_is = "are"
else
if(icon)
msg += "\icon[icon] " //fucking BYOND: this should stop dreamseeker crashing if we -somehow- examine somebody before their icon is generated
msg += "[bicon(icon(icon, dir=SOUTH))] " //fucking BYOND: this should stop dreamseeker crashing if we -somehow- examine somebody before their icon is generated
switch(gender)
if(MALE)
t_He = "He"
@@ -80,83 +80,83 @@
tie_msg += " with [english_accessory_list(U)]"
if(w_uniform.blood_DNA)
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[w_uniform] [w_uniform.gender==PLURAL?"some":"a"] [w_uniform.blood_color != "#030303" ? "blood-stained":"oil-stained"] [w_uniform.name][tie_msg]!</span>\n"
msg += "<span class='warning'>[t_He] [t_is] wearing [bicon(w_uniform)] [w_uniform.gender==PLURAL?"some":"a"] [w_uniform.blood_color != "#030303" ? "blood-stained":"oil-stained"] [w_uniform.name][tie_msg]!</span>\n"
else
msg += "[t_He] [t_is] wearing \icon[w_uniform] \a [w_uniform][tie_msg].\n"
msg += "[t_He] [t_is] wearing [bicon(w_uniform)] \a [w_uniform][tie_msg].\n"
//head
if(head && !(head.flags & ABSTRACT))
if(head.blood_DNA)
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[head] [head.gender==PLURAL?"some":"a"] [head.blood_color != "#030303" ? "blood-stained":"oil-stained"] [head.name] on [t_his] head!</span>\n"
msg += "<span class='warning'>[t_He] [t_is] wearing [bicon(head)] [head.gender==PLURAL?"some":"a"] [head.blood_color != "#030303" ? "blood-stained":"oil-stained"] [head.name] on [t_his] head!</span>\n"
else
msg += "[t_He] [t_is] wearing \icon[head] \a [head] on [t_his] head.\n"
msg += "[t_He] [t_is] wearing [bicon(head)] \a [head] on [t_his] head.\n"
//suit/armour
if(wear_suit && !(wear_suit.flags & ABSTRACT))
if(wear_suit.blood_DNA)
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[wear_suit] [wear_suit.gender==PLURAL?"some":"a"] [wear_suit.blood_color != "#030303" ? "blood-stained":"oil-stained"] [wear_suit.name]!</span>\n"
msg += "<span class='warning'>[t_He] [t_is] wearing [bicon(wear_suit)] [wear_suit.gender==PLURAL?"some":"a"] [wear_suit.blood_color != "#030303" ? "blood-stained":"oil-stained"] [wear_suit.name]!</span>\n"
else
msg += "[t_He] [t_is] wearing \icon[wear_suit] \a [wear_suit].\n"
msg += "[t_He] [t_is] wearing [bicon(wear_suit)] \a [wear_suit].\n"
//suit/armour storage
if(s_store && !skipsuitstorage)
if(s_store.blood_DNA)
msg += "<span class='warning'>[t_He] [t_is] carrying \icon[s_store] [s_store.gender==PLURAL?"some":"a"] [s_store.blood_color != "#030303" ? "blood-stained":"oil-stained"] [s_store.name] on [t_his] [wear_suit.name]!</span>\n"
msg += "<span class='warning'>[t_He] [t_is] carrying [bicon(s_store)] [s_store.gender==PLURAL?"some":"a"] [s_store.blood_color != "#030303" ? "blood-stained":"oil-stained"] [s_store.name] on [t_his] [wear_suit.name]!</span>\n"
else
msg += "[t_He] [t_is] carrying \icon[s_store] \a [s_store] on [t_his] [wear_suit.name].\n"
msg += "[t_He] [t_is] carrying [bicon(s_store)] \a [s_store] on [t_his] [wear_suit.name].\n"
//back
if(back && !(back.flags & ABSTRACT))
if(back.blood_DNA)
msg += "<span class='warning'>[t_He] [t_has] \icon[back] [back.gender==PLURAL?"some":"a"] [back.blood_color != "#030303" ? "blood-stained":"oil-stained"] [back] on [t_his] back.</span>\n"
msg += "<span class='warning'>[t_He] [t_has] [bicon(back)] [back.gender==PLURAL?"some":"a"] [back.blood_color != "#030303" ? "blood-stained":"oil-stained"] [back] on [t_his] back.</span>\n"
else
msg += "[t_He] [t_has] \icon[back] \a [back] on [t_his] back.\n"
msg += "[t_He] [t_has] [bicon(back)] \a [back] on [t_his] back.\n"
//left hand
if(l_hand && !(l_hand.flags & ABSTRACT))
if(l_hand.blood_DNA)
msg += "<span class='warning'>[t_He] [t_is] holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] [l_hand.blood_color != "#030303" ? "blood-stained":"oil-stained"] [l_hand.name] in [t_his] left hand!</span>\n"
msg += "<span class='warning'>[t_He] [t_is] holding [bicon(l_hand)] [l_hand.gender==PLURAL?"some":"a"] [l_hand.blood_color != "#030303" ? "blood-stained":"oil-stained"] [l_hand.name] in [t_his] left hand!</span>\n"
else
msg += "[t_He] [t_is] holding \icon[l_hand] \a [l_hand] in [t_his] left hand.\n"
msg += "[t_He] [t_is] holding [bicon(l_hand)] \a [l_hand] in [t_his] left hand.\n"
//right hand
if(r_hand && !(r_hand.flags & ABSTRACT))
if(r_hand.blood_DNA)
msg += "<span class='warning'>[t_He] [t_is] holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] [r_hand.blood_color != "#030303" ? "blood-stained":"oil-stained"] [r_hand.name] in [t_his] right hand!</span>\n"
msg += "<span class='warning'>[t_He] [t_is] holding [bicon(r_hand)] [r_hand.gender==PLURAL?"some":"a"] [r_hand.blood_color != "#030303" ? "blood-stained":"oil-stained"] [r_hand.name] in [t_his] right hand!</span>\n"
else
msg += "[t_He] [t_is] holding \icon[r_hand] \a [r_hand] in [t_his] right hand.\n"
msg += "[t_He] [t_is] holding [bicon(r_hand)] \a [r_hand] in [t_his] right hand.\n"
//gloves
if(gloves && !skipgloves && !(gloves.flags & ABSTRACT))
if(gloves.blood_DNA)
msg += "<span class='warning'>[t_He] [t_has] \icon[gloves] [gloves.gender==PLURAL?"some":"a"] [gloves.blood_color != "#030303" ? "blood-stained":"oil-stained"] [gloves.name] on [t_his] hands!</span>\n"
msg += "<span class='warning'>[t_He] [t_has] [bicon(gloves)] [gloves.gender==PLURAL?"some":"a"] [gloves.blood_color != "#030303" ? "blood-stained":"oil-stained"] [gloves.name] on [t_his] hands!</span>\n"
else
msg += "[t_He] [t_has] \icon[gloves] \a [gloves] on [t_his] hands.\n"
msg += "[t_He] [t_has] [bicon(gloves)] \a [gloves] on [t_his] hands.\n"
else if(blood_DNA)
msg += "<span class='warning'>[t_He] [t_has] [hand_blood_color != "#030303" ? "blood-stained":"oil-stained"] hands!</span>\n"
//handcuffed?
if(handcuffed)
if(istype(handcuffed, /obj/item/weapon/restraints/handcuffs/cable/zipties))
msg += "<span class='warning'>[t_He] [t_is] \icon[handcuffed] restrained with zipties!</span>\n"
msg += "<span class='warning'>[t_He] [t_is] [bicon(handcuffed)] restrained with zipties!</span>\n"
else if(istype(handcuffed, /obj/item/weapon/restraints/handcuffs/cable))
msg += "<span class='warning'>[t_He] [t_is] \icon[handcuffed] restrained with cable!</span>\n"
msg += "<span class='warning'>[t_He] [t_is] [bicon(handcuffed)] restrained with cable!</span>\n"
else
msg += "<span class='warning'>[t_He] [t_is] \icon[handcuffed] handcuffed!</span>\n"
msg += "<span class='warning'>[t_He] [t_is] [bicon(handcuffed)] handcuffed!</span>\n"
//belt
if(belt)
if(belt.blood_DNA)
msg += "<span class='warning'>[t_He] [t_has] \icon[belt] [belt.gender==PLURAL?"some":"a"] [belt.blood_color != "#030303" ? "blood-stained":"oil-stained"] [belt.name] about [t_his] waist!</span>\n"
msg += "<span class='warning'>[t_He] [t_has] [bicon(belt)] [belt.gender==PLURAL?"some":"a"] [belt.blood_color != "#030303" ? "blood-stained":"oil-stained"] [belt.name] about [t_his] waist!</span>\n"
else
msg += "[t_He] [t_has] \icon[belt] \a [belt] about [t_his] waist.\n"
msg += "[t_He] [t_has] [bicon(belt)] \a [belt] about [t_his] waist.\n"
//shoes
if(shoes && !skipshoes && !(shoes.flags & ABSTRACT))
if(shoes.blood_DNA)
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[shoes] [shoes.gender==PLURAL?"some":"a"] [shoes.blood_color != "#030303" ? "blood-stained":"oil-stained"] [shoes.name] on [t_his] feet!</span>\n"
msg += "<span class='warning'>[t_He] [t_is] wearing [bicon(shoes)] [shoes.gender==PLURAL?"some":"a"] [shoes.blood_color != "#030303" ? "blood-stained":"oil-stained"] [shoes.name] on [t_his] feet!</span>\n"
else
msg += "[t_He] [t_is] wearing \icon[shoes] \a [shoes] on [t_his] feet.\n"
msg += "[t_He] [t_is] wearing [bicon(shoes)] \a [shoes] on [t_his] feet.\n"
else if (blood_DNA)
msg += "<span class='warning'>[t_He] [t_has] [feet_blood_color != "#030303" ? "blood-stained":"oil-stained"] feet!</span>\n"
@@ -164,24 +164,24 @@
//mask
if(wear_mask && !skipmask && !(wear_mask.flags & ABSTRACT))
if(wear_mask.blood_DNA)
msg += "<span class='warning'>[t_He] [t_has] \icon[wear_mask] [wear_mask.gender==PLURAL?"some":"a"] [wear_mask.blood_color != "#030303" ? "blood-stained":"oil-stained"] [wear_mask.name] on [t_his] face!</span>\n"
msg += "<span class='warning'>[t_He] [t_has] [bicon(wear_mask)] [wear_mask.gender==PLURAL?"some":"a"] [wear_mask.blood_color != "#030303" ? "blood-stained":"oil-stained"] [wear_mask.name] on [t_his] face!</span>\n"
else
msg += "[t_He] [t_has] \icon[wear_mask] \a [wear_mask] on [t_his] face.\n"
msg += "[t_He] [t_has] [bicon(wear_mask)] \a [wear_mask] on [t_his] face.\n"
//eyes
if(glasses && !skipeyes && !(glasses.flags & ABSTRACT))
if(glasses.blood_DNA)
msg += "<span class='warning'>[t_He] [t_has] \icon[glasses] [glasses.gender==PLURAL?"some":"a"] [glasses.blood_color != "#030303" ? "blood-stained":"oil-stained"] [glasses] covering [t_his] eyes!</span>\n"
msg += "<span class='warning'>[t_He] [t_has] [bicon(glasses)] [glasses.gender==PLURAL?"some":"a"] [glasses.blood_color != "#030303" ? "blood-stained":"oil-stained"] [glasses] covering [t_his] eyes!</span>\n"
else
msg += "[t_He] [t_has] \icon[glasses] \a [glasses] covering [t_his] eyes.\n"
msg += "[t_He] [t_has] [bicon(glasses)] \a [glasses] covering [t_his] eyes.\n"
//left ear
if(l_ear && !skipears)
msg += "[t_He] [t_has] \icon[l_ear] \a [l_ear] on [t_his] left ear.\n"
msg += "[t_He] [t_has] [bicon(l_ear)] \a [l_ear] on [t_his] left ear.\n"
//right ear
if(r_ear && !skipears)
msg += "[t_He] [t_has] \icon[r_ear] \a [r_ear] on [t_his] right ear.\n"
msg += "[t_He] [t_has] [bicon(r_ear)] \a [r_ear] on [t_his] right ear.\n"
//ID
if(wear_id)
@@ -193,9 +193,9 @@
var/obj/item/weapon/card/id/idcard = wear_id
id = idcard.registered_name
if(id && (id != real_name) && (get_dist(src, user) <= 1) && prob(10))
msg += "<span class='warning'>[t_He] [t_is] wearing \icon[wear_id] \a [wear_id] yet something doesn't seem right...</span>\n"
msg += "<span class='warning'>[t_He] [t_is] wearing [bicon(wear_id)] \a [wear_id] yet something doesn't seem right...</span>\n"
else*/
msg += "[t_He] [t_is] wearing \icon[wear_id] \a [wear_id].\n"
msg += "[t_He] [t_is] wearing [bicon(wear_id)] \a [wear_id].\n"
//Jitters
switch(jitteriness)

View File

@@ -670,7 +670,7 @@
if(href_list["send"])
P.sradio.send_signal("ACTIVATE")
for(var/mob/O in hearers(1, P.loc))
O.show_message(text("\icon[] *beep* *beep*", P), 3, "*beep* *beep*", 2)
O.show_message("[bicon(P)] *beep* *beep*", 3, "*beep* *beep*", 2)
return 1
else if(href_list["freq"])

View File

@@ -4,7 +4,7 @@
var/msg = ""
var/obj/act_module = get_active_hand()
if(act_module)
msg += "It is holding \icon[act_module] \a [act_module].\n"
msg += "It is holding [bicon(act_module)] \a [act_module].\n"
msg += "<span class='warning'>"
if (src.getBruteLoss())
if (src.getBruteLoss() < 75)

View File

@@ -507,7 +507,7 @@ Pass a positive integer as an argument to override a bot's default speed.
turn_on() //Saves the AI the hassle of having to activate a bot manually.
access_card = all_access //Give the bot all-access while under the AI's command.
if(message)
to_chat(calling_ai, "<span class='notice'>\icon[src] [name] called to [end_area.name]. [path.len-1] meters to destination.</span>")
to_chat(calling_ai, "<span class='notice'>[bicon(src)] [name] called to [end_area.name]. [path.len-1] meters to destination.</span>")
pathset = 1
mode = BOT_RESPONDING
tries = 0
@@ -522,7 +522,7 @@ Pass a positive integer as an argument to override a bot's default speed.
var/success = bot_move(ai_waypoint, 3)
if(!success)
if(calling_ai)
to_chat(calling_ai, "\icon[src] [get_turf(src) == ai_waypoint ? "<span class='notice'>[src] successfully arrived to waypoint.</span>" : "<span class='danger'>[src] failed to reach waypoint.</span>"]")
to_chat(calling_ai, "[bicon(src)] [get_turf(src) == ai_waypoint ? "<span class='notice'>[src] successfully arrived to waypoint.</span>" : "<span class='danger'>[src] failed to reach waypoint.</span>"]")
calling_ai = null
bot_reset()

View File

@@ -639,7 +639,7 @@
if(pathset) //The AI called us here, so notify it of our arrival.
loaddir = dir //The MULE will attempt to load a crate in whatever direction the MULE is "facing".
if(calling_ai)
to_chat(calling_ai, "<span class='notice'>\icon[src] [src] wirelessly plays a chiming sound!</span>")
to_chat(calling_ai, "<span class='notice'>[bicon(src)] [src] wirelessly plays a chiming sound!</span>")
playsound(calling_ai, 'sound/machines/chime.ogg',40, 0)
calling_ai = null
radio_channel = "AI Private" //Report on AI Private instead if the AI is controlling us.

View File

@@ -112,7 +112,7 @@
if( ishuman(AM) )
if(!stat)
var/mob/M = AM
to_chat(M, "\blue \icon[src] Squeek!")
to_chat(M, "\blue [bicon(src)] Squeek!")
M << 'sound/effects/mousesqueek.ogg'
..()

View File

@@ -285,4 +285,4 @@
/mob/living/simple_animal/spiderbot/examine(mob/user)
..(user)
if(src.held_item)
to_chat(user, "It is carrying \a [src.held_item] \icon[src.held_item].")
to_chat(user, "It is carrying \a [src.held_item] [bicon(src.held_item)].")

View File

@@ -77,7 +77,7 @@
//repair a bit of damage
if(prob(1))
src.visible_message("\red \icon[src] [src] shudders and shakes as some of it's damaged systems come back online.")
src.visible_message("\red [bicon(src)] [src] shudders and shakes as some of it's damaged systems come back online.")
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
@@ -92,10 +92,10 @@
//sometimes our targetting sensors malfunction, and we attack anyone nearby
if(prob(disabled ? 0 : 1))
if(hostile_drone)
src.visible_message("\blue \icon[src] [src] retracts several targetting vanes, and dulls it's running lights.")
src.visible_message("\blue [bicon(src)] [src] retracts several targetting vanes, and dulls it's running lights.")
hostile_drone = 0
else
src.visible_message("\red \icon[src] [src] suddenly lights up, and additional targetting vanes slide into place.")
src.visible_message("\red [bicon(src)] [src] suddenly lights up, and additional targetting vanes slide into place.")
hostile_drone = 1
if(health / maxHealth > 0.9)
@@ -116,17 +116,17 @@
exploding = 0
if(!disabled)
if(prob(50))
src.visible_message("\blue \icon[src] [src] suddenly shuts down!")
src.visible_message("\blue [bicon(src)] [src] suddenly shuts down!")
else
src.visible_message("\blue \icon[src] [src] suddenly lies still and quiet.")
src.visible_message("\blue [bicon(src)] [src] suddenly lies still and quiet.")
disabled = rand(150, 600)
walk(src,0)
if(exploding && prob(20))
if(prob(50))
src.visible_message("\red \icon[src] [src] begins to spark and shake violenty!")
src.visible_message("\red [bicon(src)] [src] begins to spark and shake violenty!")
else
src.visible_message("\red \icon[src] [src] sparks and shakes like it's about to explode!")
src.visible_message("\red [bicon(src)] [src] sparks and shakes like it's about to explode!")
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(3, 1, src)
s.start()
@@ -151,7 +151,7 @@
/mob/living/simple_animal/hostile/retaliate/malf_drone/death()
..()
visible_message("\blue \icon[src] [src] suddenly breaks apart.")
visible_message("\blue [bicon(src)] [src] suddenly breaks apart.")
qdel(src)
/mob/living/simple_animal/hostile/retaliate/malf_drone/Destroy() //Seriously, what the actual hell.

View File

@@ -468,7 +468,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
S = 'sound/machines/twobeep.ogg'
playsound(loc, S, 50, 1)
for(var/mob/O in hearers(3, loc))
O.show_message(text("\icon[src] *[ttone]*"))
O.show_message(text("[bicon(src)] *[ttone]*"))
/obj/item/device/pda/proc/set_ringtone()
var/t = input("Please enter new ringtone", name, ttone) as text

View File

@@ -24,7 +24,7 @@
L = get(pda, /mob/living/silicon)
if(L)
to_chat(L, "\icon[pda] [message]")
to_chat(L, "[bicon(pda)] [message]")
nanomanager.update_user_uis(L, pda) // Update the receiving user's PDA UI so that they can see the new message
if(!notify_silent)

View File

@@ -405,7 +405,7 @@
f_name = "a "
f_name += "<span class='danger'>blood-stained</span> [name]!"
to_chat(user, "\icon[src] That's [f_name]")
to_chat(user, "[bicon(src)] That's [f_name]")
if(desc)
to_chat(user, desc)

View File

@@ -302,14 +302,14 @@ var/const/INGEST = 2
var/list/seen = viewers(4, get_turf(my_atom))
for(var/mob/M in seen)
if(!C.no_message)
to_chat(M, "\blue \icon[my_atom] [C.mix_message]")
to_chat(M, "\blue [bicon(my_atom)] [C.mix_message]")
if(istype(my_atom, /obj/item/slime_extract))
var/obj/item/slime_extract/ME2 = my_atom
ME2.Uses--
if(ME2.Uses <= 0) // give the notification that the slime core is dead
for(var/mob/M in seen)
to_chat(M, "\blue \icon[my_atom] The [my_atom]'s power is consumed in the reaction.")
to_chat(M, "\blue [bicon(my_atom)] The [my_atom]'s power is consumed in the reaction.")
ME2.name = "used slime extract"
ME2.desc = "This extract has been used up."

View File

@@ -87,7 +87,7 @@
if(reagents.has_reagent(bad_reagent))
badshit += reagents_to_log[bad_reagent]
if(badshit.len)
var/hl="\red <b>([english_list(badshit)])</b> \black"
var/hl = "<span class='danger'>([english_list(badshit)])</span>"
message_admins("[key_name_admin(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl]")
log_game("[key_name(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].")

View File

@@ -55,7 +55,7 @@
if(reagents.has_reagent(bad_reagent))
badshit += reagents_to_log[bad_reagent]
if(badshit.len)
var/hl="\red <b>([english_list(badshit)])</b> \black"
var/hl = "<span class='danger'>([english_list(badshit)])</span>"
message_admins("[key_name_admin(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl]")
log_game("[key_name(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].")

View File

@@ -121,7 +121,7 @@
if(reagents.has_reagent(bad_reagent))
badshit += reagents_to_log[bad_reagent]
if(badshit.len)
var/hl="\red <b>([english_list(badshit)])</b> \black"
var/hl = "<span class='danger'>([english_list(badshit)])</span>"
message_admins("[key_name_admin(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl]")
log_game("[key_name(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].")

View File

@@ -43,7 +43,7 @@
if(reagents.has_reagent(bad_reagent))
badshit += reagents_to_log[bad_reagent]
if(badshit.len)
var/hl="\red <b>([english_list(badshit)])</b> \black"
var/hl = "<span class='danger'>([english_list(badshit)])</span>"
message_admins("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)")
log_game("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].")

View File

@@ -219,7 +219,7 @@
if(reagents.has_reagent(bad_reagent))
badshit += reagents_to_log[bad_reagent]
if(badshit.len)
var/hl="\red <b>([english_list(badshit)])</b> \black"
var/hl = "<span class='danger'>([english_list(badshit)])</span>"
message_admins("[key_name_admin(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl] ")
log_game("[key_name(user)] added [reagents.get_reagent_ids(1)] to \a [target] with [src].")

View File

@@ -103,12 +103,12 @@ var/global/list/obj/machinery/message_server/message_servers = list()
if(2)
if(!Console.silent)
playsound(Console.loc, 'sound/machines/twobeep.ogg', 50, 1)
Console.audible_message(text("\icon[Console] *The Requests Console beeps: 'PRIORITY Alert in [sender]'"),,5)
Console.audible_message(text("[bicon(Console)] *The Requests Console beeps: 'PRIORITY Alert in [sender]'"),,5)
Console.message_log += "<B><FONT color='red'>High Priority message from <A href='?src=\ref[Console];write=[sender]'>[sender]</A></FONT></B><BR>[authmsg]"
else
if(!Console.silent)
playsound(Console.loc, 'sound/machines/twobeep.ogg', 50, 1)
Console.audible_message(text("\icon[Console] *The Requests Console beeps: 'Message from [sender]'"),,4)
Console.audible_message(text("[bicon(Console)] *The Requests Console beeps: 'Message from [sender]'"),,4)
Console.message_log += "<B>Message from <A href='?src=\ref[Console];write=[sender]'>[sender]</A></B><BR>[authmsg]"
Console.set_light(2)

View File

@@ -81,7 +81,7 @@
var/obj/item/device/measuring_tape/P = W
user.visible_message("\blue[user] extends [P] towards [src].","\blue You extend [P] towards [src].")
if(do_after(user,40, target = src))
to_chat(user, "\blue \icon[P] [src] has been excavated to a depth of [2*src.excavation_level]cm.")
to_chat(user, "\blue [bicon(P)] [src] has been excavated to a depth of [2*src.excavation_level]cm.")
return
if (istype(W, /obj/item/weapon/pickaxe))

View File

@@ -50,17 +50,17 @@
if(!previous_power_state)
previous_power_state = 1
icon_state = "cellold1"
src.visible_message("\blue \icon[src] [src] suddenly comes to life!")
src.visible_message("\blue [bicon(src)] [src] suddenly comes to life!")
//slowly grow a mob
if(prob(5))
src.visible_message("\blue \icon[src] [src] [pick("gloops","glugs","whirrs","whooshes","hisses","purrs","hums","gushes")].")
src.visible_message("\blue [bicon(src)] [src] [pick("gloops","glugs","whirrs","whooshes","hisses","purrs","hums","gushes")].")
//if we've finished growing...
if(time_spent_spawning >= time_per_spawn)
time_spent_spawning = 0
use_power = 1
src.visible_message("\blue \icon[src] [src] pings!")
src.visible_message("\blue [bicon(src)] [src] pings!")
icon_state = "cellold1"
desc = "It's full of a bubbling viscous liquid, and is lit by a mysterious glow."
if(spawn_type)
@@ -81,7 +81,7 @@
if(previous_power_state)
previous_power_state = 0
icon_state = "cellold0"
src.visible_message("\blue \icon[src] [src] suddenly shuts down.")
src.visible_message("\blue [bicon(src)] [src] suddenly shuts down.")
//cloned mob slowly breaks down
time_spent_spawning = max(time_spent_spawning + last_process - world.time, 0)

View File

@@ -78,7 +78,7 @@
viables.Remove(type)
construction[button_desc] = type
fail_message = "\blue \icon[src] a [pick("loud","soft","sinister","eery","triumphant","depressing","cheerful","angry")] \
fail_message = "\blue [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")] \
@@ -90,7 +90,7 @@
if(spawning_types.len && powered())
spawn_progress_time += world.time - last_process_time
if(spawn_progress_time > max_spawn_time)
src.visible_message("\blue \icon[src] [src] pings!")
src.visible_message("\blue [bicon(src)] [src] pings!")
var/obj/source_material = pop(stored_materials)
var/spawn_type = pop(spawning_types)
@@ -113,7 +113,7 @@
icon_state = "borgcharger0(old)"
else if(prob(5))
src.visible_message("\blue \icon[src] [src] [pick("clicks","whizzes","whirrs","whooshes","clanks","clongs","clonks","bangs")].")
src.visible_message("\blue [bicon(src)] [src] [pick("clicks","whizzes","whirrs","whooshes","clanks","clongs","clonks","bangs")].")
last_process_time = world.time
@@ -141,9 +141,9 @@
if(index > 0 && index <= construction.len)
if(stored_materials.len > spawning_types.len)
if(spawning_types.len)
src.visible_message("\blue \icon[src] a [pick("light","dial","display","meter","pad")] on [src]'s front [pick("blinks","flashes")] [pick("red","yellow","blue","orange","purple","green","white")].")
src.visible_message("\blue [bicon(src)] a [pick("light","dial","display","meter","pad")] on [src]'s front [pick("blinks","flashes")] [pick("red","yellow","blue","orange","purple","green","white")].")
else
src.visible_message("\blue \icon[src] [src]'s front compartment slides shut.")
src.visible_message("\blue [bicon(src)] [src]'s front compartment slides shut.")
spawning_types.Add(construction[construction[index]])
spawn_progress_time = 0

View File

@@ -64,7 +64,7 @@
var/atom/toplevelholder = holder
while(!istype(toplevelholder.loc, /turf))
toplevelholder = toplevelholder.loc
toplevelholder.visible_message("\red \icon[toplevelholder] [toplevelholder] [display_msg]")
toplevelholder.visible_message("\red [bicon(toplevelholder)] [toplevelholder] [display_msg]")
/datum/artifact_effect/proc/DoEffectTouch(var/mob/user)
/datum/artifact_effect/proc/DoEffectAura(var/atom/holder)

View File

@@ -80,7 +80,7 @@
..()
else if(istype(W,/obj/item/weapon/pen))
plaque_contents = input("What would you like to write on the plaque:","Skeleton plaque","")
user.visible_message("[user] writes something on the base of [src].","You relabel the plaque on the base of \icon[src] [src].")
user.visible_message("[user] writes something on the base of [src].","You relabel the plaque on the base of [bicon(src)] [src].")
if(src.contents.Find(/obj/item/weapon/fossil/skull/horned))
src.desc = "A creature made of [src.contents.len-1] assorted bones and a horned skull. The plaque reads \'[plaque_contents]\'."
else

Some files were not shown because too many files have changed in this diff Show More