mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 02:34:00 +00:00
[MIRROR] refactors most spans (#9139)
Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Co-authored-by: Kashargul <KashL@t-online.de>
This commit is contained in:
@@ -25,11 +25,11 @@
|
||||
if(istype(W,/obj/item/stack/nanopaste))
|
||||
var/obj/item/stack/nanopaste/np = W
|
||||
if((supply.get_free_space() >= efficiency) && np.use(1))
|
||||
to_chat(user, "<span class='notice'>You convert some nanopaste into programmed nanites inside \the [src].</span>")
|
||||
to_chat(user, span_notice("You convert some nanopaste into programmed nanites inside \the [src]."))
|
||||
supply.add_reagent(id = "nifrepairnanites", amount = efficiency)
|
||||
update_icon()
|
||||
else if(supply.get_free_space() < efficiency)
|
||||
to_chat(user, "<span class='warning'>\The [src] is too full. Empty it into a container first.</span>")
|
||||
to_chat(user, span_warning("\The [src] is too full. Empty it into a container first."))
|
||||
return
|
||||
|
||||
/obj/item/nifrepairer/update_icon()
|
||||
@@ -43,15 +43,15 @@
|
||||
return 0
|
||||
|
||||
if(!supply || !supply.total_volume)
|
||||
to_chat(user, "<span class='warning'>[src] is empty. Feed it nanopaste.</span>")
|
||||
to_chat(user, span_warning("[src] is empty. Feed it nanopaste."))
|
||||
return 1
|
||||
|
||||
if(!target.reagents.get_free_space())
|
||||
to_chat(user, "<span class='warning'>[target] is already full.</span>")
|
||||
to_chat(user, span_warning("[target] is already full."))
|
||||
return 1
|
||||
|
||||
var/trans = supply.trans_to(target, 15)
|
||||
to_chat(user, "<span class='notice'>You transfer [trans] units of the programmed nanites to [target].</span>")
|
||||
to_chat(user, span_notice("You transfer [trans] units of the programmed nanites to [target]."))
|
||||
update_icon()
|
||||
return 1
|
||||
|
||||
@@ -59,6 +59,6 @@
|
||||
. = ..()
|
||||
if(Adjacent(user))
|
||||
if(supply.total_volume)
|
||||
. += "<span class='notice'>\The [src] contains [supply.total_volume] units of programmed nanites, ready for dispensing.</span>"
|
||||
. += span_notice("\The [src] contains [supply.total_volume] units of programmed nanites, ready for dispensing.")
|
||||
else
|
||||
. += "<span class='notice'>\The [src] is empty and ready to accept nanopaste.</span>"
|
||||
. += span_notice("\The [src] is empty and ready to accept nanopaste.")
|
||||
|
||||
@@ -94,13 +94,13 @@
|
||||
if(new_state != old_state)
|
||||
switch(new_state)
|
||||
if(PROXIMITY_OFF_CAMERANET)
|
||||
to_chat(carrier, "<span class='notice'>[icon2html(src, carrier.client)] Now outside of camera network.</span>")
|
||||
to_chat(carrier, span_notice("[icon2html(src, carrier.client)] Now outside of camera network."))
|
||||
carrier << 'sound/machines/defib_failed.ogg'
|
||||
if(PROXIMITY_NONE)
|
||||
to_chat(carrier, "<span class='notice'>[icon2html(src, carrier.client)] Now within camera network, AI and cameras unfocused.</span>")
|
||||
to_chat(carrier, span_notice("[icon2html(src, carrier.client)] Now within camera network, AI and cameras unfocused."))
|
||||
carrier << 'sound/machines/defib_safetyOff.ogg'
|
||||
if(PROXIMITY_NEAR)
|
||||
to_chat(carrier, "<span class='warning'>[icon2html(src, carrier.client)] Warning: AI focus at nearby location.</span>")
|
||||
to_chat(carrier, span_warning("[icon2html(src, carrier.client)] Warning: AI focus at nearby location."))
|
||||
carrier << 'sound/machines/defib_SafetyOn.ogg'
|
||||
if(PROXIMITY_ON_SCREEN)
|
||||
to_chat(carrier, "<font size='3'><span class='danger'>[icon2html(src, carrier.client)] Alert: AI or camera focused at current location!</span></font>")
|
||||
|
||||
@@ -74,12 +74,12 @@
|
||||
INVOKE_ASYNC(src, PROC_REF(wipe_ai))
|
||||
if("radio")
|
||||
carded_ai.aiRadio.disabledAi = !carded_ai.aiRadio.disabledAi
|
||||
to_chat(carded_ai, "<span class='warning'>Your Subspace Transceiver has been [carded_ai.aiRadio.disabledAi ? "disabled" : "enabled"]!</span>")
|
||||
to_chat(user, "<span class='notice'>You [carded_ai.aiRadio.disabledAi ? "disable" : "enable"] the AI's Subspace Transceiver.</span>")
|
||||
to_chat(carded_ai, span_warning("Your Subspace Transceiver has been [carded_ai.aiRadio.disabledAi ? "disabled" : "enabled"]!"))
|
||||
to_chat(user, span_notice("You [carded_ai.aiRadio.disabledAi ? "disable" : "enable"] the AI's Subspace Transceiver."))
|
||||
if("wireless")
|
||||
carded_ai.control_disabled = !carded_ai.control_disabled
|
||||
to_chat(carded_ai, "<span class='warning'>Your wireless interface has been [carded_ai.control_disabled ? "disabled" : "enabled"]!</span>")
|
||||
to_chat(user, "<span class='notice'>You [carded_ai.control_disabled ? "disable" : "enable"] the AI's wireless interface.</span>")
|
||||
to_chat(carded_ai, span_warning("Your wireless interface has been [carded_ai.control_disabled ? "disabled" : "enabled"]!"))
|
||||
to_chat(user, span_notice("You [carded_ai.control_disabled ? "disable" : "enable"] the AI's wireless interface."))
|
||||
if(carded_ai.control_disabled && carded_ai.deployed_shell)
|
||||
carded_ai.disconnect_shell("Disconnecting from remote shell due to [src] wireless access interface being disabled.")
|
||||
update_icon()
|
||||
@@ -153,13 +153,13 @@
|
||||
|
||||
/obj/item/aicard/see_emote(mob/living/M, text)
|
||||
if(carded_ai && carded_ai.client)
|
||||
var/rendered = "<span class='message'>[text]</span>"
|
||||
var/rendered = span_message("[text]")
|
||||
carded_ai.show_message(rendered, 2)
|
||||
..()
|
||||
|
||||
/obj/item/aicard/show_message(msg, type, alt, alt_type)
|
||||
if(carded_ai && carded_ai.client)
|
||||
var/rendered = "<span class='message'>[msg]</span>"
|
||||
var/rendered = span_message("[msg]")
|
||||
carded_ai.show_message(rendered, type)
|
||||
..()
|
||||
|
||||
|
||||
@@ -18,15 +18,15 @@
|
||||
usr.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||
if(ishuman(M) || issilicon(M)) //Allows body swapping with humans, synths, and pAI's/borgs since they all have a mind.
|
||||
if(usr == M)
|
||||
to_chat(user,"<span class='warning'> A message pops up on the LED display, informing you that you that the mind transfer to yourself was successful... Wait, did that even do anything?</span>")
|
||||
to_chat(user,span_warning(" A message pops up on the LED display, informing you that you that the mind transfer to yourself was successful... Wait, did that even do anything?"))
|
||||
return
|
||||
|
||||
if(!M.mind) //Do they have a mind?
|
||||
to_chat(usr,"<span class='warning'>A warning pops up on the device, informing you that [M] appears braindead.</span>")
|
||||
to_chat(usr,span_warning("A warning pops up on the device, informing you that [M] appears braindead."))
|
||||
return
|
||||
|
||||
if(!M.allow_mind_transfer)
|
||||
to_chat(usr,"<span class='danger'>The target's mind is too complex to be affected!</span>")
|
||||
to_chat(usr,span_danger("The target's mind is too complex to be affected!"))
|
||||
return
|
||||
|
||||
/* CHOMPRemove Start, we have a vore pref for that
|
||||
@@ -38,7 +38,7 @@
|
||||
*///CHOMPRemove End
|
||||
|
||||
if(M.stat == DEAD) //Are they dead?
|
||||
to_chat(usr,"<span class='warning'>A warning pops up on the device, informing you that [M] is dead, and, as such, the mind transfer can not be done.</span>")
|
||||
to_chat(usr,span_warning("A warning pops up on the device, informing you that [M] is dead, and, as such, the mind transfer can not be done."))
|
||||
return
|
||||
|
||||
var/choice = tgui_alert(usr,"This will swap your mind with the target's mind. This will result in them controlling your body, and you controlling their body. Continue?","Confirmation",list("Continue","Cancel"))
|
||||
@@ -49,11 +49,11 @@
|
||||
else
|
||||
log_and_message_admins("attempted to body swap with [key_name(M)].")
|
||||
//CHOMPAdd End
|
||||
usr.visible_message("<span class='warning'>[usr] pushes the device up their forehead and [M]'s head, the device beginning to let out a series of light beeps!</span>","<span class='notice'>You begin swap minds with [M]!</span>")
|
||||
usr.visible_message(span_warning("[usr] pushes the device up their forehead and [M]'s head, the device beginning to let out a series of light beeps!"),span_notice("You begin swap minds with [M]!"))
|
||||
if(do_after(usr,35 SECONDS,M))
|
||||
if(usr.mind && M.mind && M.stat != DEAD && usr.stat != DEAD)
|
||||
log_and_message_admins("[usr.ckey] used a Bodysnatcher to swap bodies with [M.ckey]")
|
||||
to_chat(usr,"<span class='notice'>Your minds have been swapped! Have a nice day.</span>")
|
||||
to_chat(usr,span_notice("Your minds have been swapped! Have a nice day."))
|
||||
var/datum/mind/user_mind = user.mind
|
||||
var/datum/mind/prey_mind = M.mind
|
||||
var/target_ooc_notes = M.ooc_notes
|
||||
@@ -103,8 +103,8 @@
|
||||
M.slurring = 50
|
||||
|
||||
else
|
||||
to_chat(user,"<span class='warning'> A warning pops up on the LED display on the side of the device, informing you that the target is not able to have their mind swapped with!</span>")
|
||||
to_chat(user,span_warning(" A warning pops up on the LED display on the side of the device, informing you that the target is not able to have their mind swapped with!"))
|
||||
|
||||
/obj/item/bodysnatcher/attack_self(mob/living/user)
|
||||
to_chat(user,"<span class='warning'> A message pops up on the LED display, informing you that you that the mind transfer to yourself was successful... Wait, did that even do anything?</span>")
|
||||
to_chat(user,span_warning(" A message pops up on the LED display, informing you that you that the mind transfer to yourself was successful... Wait, did that even do anything?"))
|
||||
return
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
if(!active_dummy)
|
||||
if(istype(target,/obj/item) && !istype(target, /obj/item/disk/nuclear))
|
||||
playsound(src, 'sound/weapons/flash.ogg', 100, 1, -6)
|
||||
to_chat(user, "<span class='notice'>Scanned [target].</span>")
|
||||
to_chat(user, span_notice("Scanned [target]."))
|
||||
saved_item = target.type
|
||||
saved_icon = target.icon
|
||||
saved_icon_state = target.icon_state
|
||||
@@ -46,7 +46,7 @@
|
||||
playsound(src, 'sound/effects/pop.ogg', 100, 1, -6)
|
||||
qdel(active_dummy)
|
||||
active_dummy = null
|
||||
to_chat(usr, "<span class='notice'>You deactivate the [src].</span>")
|
||||
to_chat(usr, span_notice("You deactivate the [src]."))
|
||||
var/obj/effect/overlay/T = new /obj/effect/overlay(get_turf(src))
|
||||
T.icon = 'icons/effects/effects.dmi'
|
||||
flick("emppulse",T)
|
||||
@@ -58,7 +58,7 @@
|
||||
var/obj/effect/dummy/chameleon/C = new /obj/effect/dummy/chameleon(usr.loc)
|
||||
C.activate(O, usr, saved_icon, saved_icon_state, saved_overlays, src)
|
||||
qdel(O)
|
||||
to_chat(usr, "<span class='notice'>You activate the [src].</span>")
|
||||
to_chat(usr, span_notice("You activate the [src]."))
|
||||
var/obj/effect/overlay/T = new/obj/effect/overlay(get_turf(src))
|
||||
T.icon = 'icons/effects/effects.dmi'
|
||||
flick("emppulse",T)
|
||||
@@ -105,22 +105,22 @@
|
||||
|
||||
/obj/effect/dummy/chameleon/attackby()
|
||||
for(var/mob/M in src)
|
||||
to_chat(M, "<span class='warning'>Your chameleon-projector deactivates.</span>")
|
||||
to_chat(M, span_warning("Your chameleon-projector deactivates."))
|
||||
master.disrupt()
|
||||
|
||||
/obj/effect/dummy/chameleon/attack_hand()
|
||||
for(var/mob/M in src)
|
||||
to_chat(M, "<span class='warning'>Your chameleon-projector deactivates.</span>")
|
||||
to_chat(M, span_warning("Your chameleon-projector deactivates."))
|
||||
master.disrupt()
|
||||
|
||||
/obj/effect/dummy/chameleon/ex_act()
|
||||
for(var/mob/M in src)
|
||||
to_chat(M, "<span class='warning'>Your chameleon-projector deactivates.</span>")
|
||||
to_chat(M, span_warning("Your chameleon-projector deactivates."))
|
||||
master.disrupt()
|
||||
|
||||
/obj/effect/dummy/chameleon/bullet_act()
|
||||
for(var/mob/M in src)
|
||||
to_chat(M, "<span class='warning'>Your chameleon-projector deactivates.</span>")
|
||||
to_chat(M, span_warning("Your chameleon-projector deactivates."))
|
||||
..()
|
||||
master.disrupt()
|
||||
|
||||
|
||||
@@ -360,7 +360,7 @@
|
||||
|
||||
if("dial")
|
||||
if(!get_connection_to_tcomms())
|
||||
to_chat(usr, "<span class='danger'>Error: Cannot connect to Exonet node.</span>")
|
||||
to_chat(usr, span_danger("Error: Cannot connect to Exonet node."))
|
||||
return FALSE
|
||||
var/their_address = params["dial"]
|
||||
exonet.send_message(their_address, "voice")
|
||||
@@ -373,7 +373,7 @@
|
||||
|
||||
if("message")
|
||||
if(!get_connection_to_tcomms())
|
||||
to_chat(usr, "<span class='danger'>Error: Cannot connect to Exonet node.</span>")
|
||||
to_chat(usr, span_danger("Error: Cannot connect to Exonet node."))
|
||||
return FALSE
|
||||
var/their_address = params["message"]
|
||||
var/text = sanitizeSafe(tgui_input_text(usr,"Enter your message.","Text Message"))
|
||||
@@ -382,7 +382,7 @@
|
||||
im_list += list(list("address" = exonet.address, "to_address" = their_address, "im" = text))
|
||||
log_pda("(COMM: [src]) sent \"[text]\" to [exonet.get_atom_from_address(their_address)]", usr)
|
||||
var/obj/item/communicator/comm = exonet.get_atom_from_address(their_address)
|
||||
to_chat(usr, "<span class='notice'>[icon2html(src, usr.client)] Sent message to [istype(comm, /obj/item/communicator) ? comm.owner : comm.name], <b>\"[text]\"</b> (<a href='?src=\ref[src];action=Reply;target=\ref[exonet.get_atom_from_address(comm.exonet.address)]'>Reply</a>)</span>")
|
||||
to_chat(usr, span_notice("[icon2html(src, usr.client)] Sent message to [istype(comm, /obj/item/communicator) ? comm.owner : comm.name], <b>\"[text]\"</b> (<a href='?src=\ref[src];action=Reply;target=\ref[exonet.get_atom_from_address(comm.exonet.address)]'>Reply</a>)"))
|
||||
for(var/mob/M in player_list)
|
||||
if(M.stat == DEAD && M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears))
|
||||
if(istype(M, /mob/new_player) || M.forbid_seeing_deadchat)
|
||||
|
||||
@@ -229,19 +229,19 @@ var/global/list/obj/item/communicator/all_communicators = list()
|
||||
. = ..()
|
||||
|
||||
for(var/mob/living/voice/voice in contents)
|
||||
. += "<span class='notice'>On the screen, you can see a image feed of [voice].</span>"
|
||||
. += span_notice("On the screen, you can see a image feed of [voice].")
|
||||
|
||||
if(voice && voice.key)
|
||||
switch(voice.stat)
|
||||
if(CONSCIOUS)
|
||||
if(!voice.client)
|
||||
. += "<span class='warning'>[voice] appears to be asleep.</span>" //afk
|
||||
. += span_warning("[voice] appears to be asleep.") //afk
|
||||
if(UNCONSCIOUS)
|
||||
. += "<span class='warning'>[voice] doesn't appear to be conscious.</span>"
|
||||
. += span_warning("[voice] doesn't appear to be conscious.")
|
||||
if(DEAD)
|
||||
. += "<span class='deadsay'>[voice] appears to have died...</span>" //Hopefully this never has to be used.
|
||||
. += span_deadsay("[voice] appears to have died...") //Hopefully this never has to be used.
|
||||
else
|
||||
. += "<span class='notice'>The device doesn't appear to be transmitting any data.</span>"
|
||||
. += span_notice("The device doesn't appear to be transmitting any data.")
|
||||
|
||||
// Proc: emp_act()
|
||||
// Parameters: None
|
||||
@@ -307,16 +307,16 @@ var/global/list/obj/item/communicator/all_communicators = list()
|
||||
if(istype(C, /obj/item/card/id))
|
||||
var/obj/item/card/id/idcard = C
|
||||
if(!idcard.registered_name || !idcard.assignment)
|
||||
to_chat(user, "<span class='notice'>\The [src] rejects the ID.</span>")
|
||||
to_chat(user, span_notice("\The [src] rejects the ID."))
|
||||
else if(!owner)
|
||||
to_chat(user, "<span class='notice'>\The [src] rejects the ID.</span>")
|
||||
to_chat(user, span_notice("\The [src] rejects the ID."))
|
||||
else if(owner == idcard.registered_name && occupation != idcard.assignment) //CHMPEDIT only edit assigment if different
|
||||
occupation = idcard.assignment
|
||||
to_chat(user, "<span class='notice'>Occupation updated.</span>")
|
||||
to_chat(user, span_notice(">Occupation updated."))
|
||||
//CHOMPADDITION START Communicator ID slotting if we have an ID thats also already scanned
|
||||
else if(((src in user.contents) && (C in user.contents)) || (istype(loc, /turf) && in_range(src, user) && (C in user.contents)) )
|
||||
if(id_check(user, 2))
|
||||
to_chat(user, "<span class='notice'>You put the ID into \the [src]'s slot.</span>")
|
||||
to_chat(user, span_notice("You put the ID into \the [src]'s slot."))
|
||||
add_overlay("pda-id")
|
||||
updateSelfDialog()//Update self dialog on success.
|
||||
return //Return in case of failed check or when successful.
|
||||
@@ -402,7 +402,7 @@ var/global/list/obj/item/communicator/all_communicators = list()
|
||||
//CHOMPADDITION END
|
||||
for(var/mob/living/voice/voice in contents)
|
||||
voice_mobs.Remove(voice)
|
||||
to_chat(voice, "<span class='danger'>[icon2html(src, voice.client)] Connection timed out with remote host.</span>")
|
||||
to_chat(voice, span_danger("[icon2html(src, voice.client)] Connection timed out with remote host."))
|
||||
qdel(voice)
|
||||
close_connection(reason = "Connection timed out")
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
random = random / 10
|
||||
exonet.send_message(origin_address, "64 bytes received from [exonet.address] ecmp_seq=1 ttl=51 time=[random] ms")
|
||||
if(message == "text")
|
||||
to_chat(src, "<span class='notice'>[icon2html(origin_atom,src.client)] Received text message from [origin_atom]: <b>\"[text]\"</b></span>")
|
||||
to_chat(src, span_notice("[icon2html(origin_atom,src.client)] Received text message from [origin_atom]: <b>\"[text]\"</b>"))
|
||||
src << 'sound/machines/defib_safetyOff.ogg'
|
||||
exonet_messages.Add("<b>From [origin_atom]:</b><br>[text]")
|
||||
return
|
||||
@@ -95,7 +95,7 @@
|
||||
L = loc
|
||||
|
||||
if(L)
|
||||
to_chat(L, "<span class='notice'>[icon2html(src,L.client)] Message from [who]: <b>\"[text]\"</b> (<a href='?src=\ref[src];action=Reply;target=\ref[candidate]'>Reply</a>)</span>")
|
||||
to_chat(L, span_notice("[icon2html(src,L.client)] Message from [who]: <b>\"[text]\"</b> (<a href='?src=\ref[src];action=Reply;target=\ref[candidate]'>Reply</a>)"))
|
||||
|
||||
// This is the only Topic the communicators really uses
|
||||
/obj/item/communicator/Topic(href, href_list)
|
||||
@@ -108,7 +108,7 @@
|
||||
exonet.send_message(comm.exonet.address, "text", message)
|
||||
im_list += list(list("address" = exonet.address, "to_address" = comm.exonet.address, "im" = message))
|
||||
log_pda("(COMM: [src]) sent \"[message]\" to [exonet.get_atom_from_address(comm.exonet.address)]", usr)
|
||||
to_chat(usr, "<span class='notice'>[icon2html(src,usr.client)] Sent message to [istype(comm, /obj/item/communicator) ? comm.owner : comm.name], <b>\"[message]\"</b> (<a href='?src=\ref[src];action=Reply;target=\ref[exonet.get_atom_from_address(comm.exonet.address)]'>Reply</a>)</span>")
|
||||
to_chat(usr, span_notice("[icon2html(src,usr.client)] Sent message to [istype(comm, /obj/item/communicator) ? comm.owner : comm.name], <b>\"[message]\"</b> (<a href='?src=\ref[src];action=Reply;target=\ref[exonet.get_atom_from_address(comm.exonet.address)]'>Reply</a>)"))
|
||||
|
||||
// Verb: text_communicator()
|
||||
// Parameters: None
|
||||
@@ -119,7 +119,7 @@
|
||||
set desc = "If there is a communicator available, send a text message to it."
|
||||
|
||||
if(ticker.current_state < GAME_STATE_PLAYING)
|
||||
to_chat(src, "<span class='danger'>The game hasn't started yet!</span>")
|
||||
to_chat(src, span_danger("The game hasn't started yet!"))
|
||||
return
|
||||
|
||||
if (!src.stat)
|
||||
@@ -130,7 +130,7 @@
|
||||
|
||||
for(var/mob/living/L in mob_list) //Simple check so you don't have dead people calling.
|
||||
if(src.client.prefs.real_name == L.real_name)
|
||||
to_chat(src, "<span class='danger'>Your identity is already present in the game world. Please load in a different character first.</span>")
|
||||
to_chat(src, span_danger("Your identity is already present in the game world. Please load in a different character first."))
|
||||
return
|
||||
|
||||
var/obj/machinery/exonet_node/E = get_exonet_node()
|
||||
@@ -146,7 +146,7 @@
|
||||
choices.Add(comm)
|
||||
|
||||
if(!choices.len)
|
||||
to_chat(src, "<span class='danger'>There are no available communicators, sorry.</span>")
|
||||
to_chat(src, span_danger("There are no available communicators, sorry."))
|
||||
return
|
||||
|
||||
var/choice = tgui_input_list(src,"Send a text message to whom?", "Recipient Choice", choices)
|
||||
@@ -157,7 +157,7 @@
|
||||
if(text_message && O.exonet)
|
||||
O.exonet.send_message(chosen_communicator.exonet.address, "text", text_message)
|
||||
|
||||
to_chat(src, "<span class='notice'>You have sent '[text_message]' to [chosen_communicator].</span>")
|
||||
to_chat(src, span_notice("You have sent '[text_message]' to [chosen_communicator]."))
|
||||
exonet_messages.Add("<b>To [chosen_communicator]:</b><br>[text_message]")
|
||||
log_pda("(DCOMM: [src]) sent \"[text_message]\" to [chosen_communicator]", src)
|
||||
for(var/mob/M in player_list)
|
||||
|
||||
@@ -39,15 +39,15 @@
|
||||
comm.voice_requests.Remove(src)
|
||||
|
||||
if(user)
|
||||
comm.visible_message("<span class='notice'>[icon2html(src,viewers(src))] Connecting to [src].</span>")
|
||||
to_chat(user, "<span class='notice'>[icon2html(src,user.client)] Attempting to call [comm].</span>")
|
||||
comm.visible_message(span_notice("[icon2html(src,viewers(src))] Connecting to [src]."))
|
||||
to_chat(user, span_notice("[icon2html(src,user.client)] Attempting to call [comm]."))
|
||||
sleep(10)
|
||||
to_chat(user, "<span class='notice'>[icon2html(src,user.client)] Dialing internally from [station_name()], [system_name()].</span>")
|
||||
to_chat(user, span_notice("[icon2html(src,user.client)] Dialing internally from [station_name()], [system_name()]."))
|
||||
sleep(20) //If they don't have an exonet something is very wrong and we want a runtime.
|
||||
to_chat(user, "<span class='notice'>[icon2html(src,user.client)] Connection re-routed to [comm] at [comm.exonet.address].</span>")
|
||||
to_chat(user, span_notice("[icon2html(src,user.client)] Connection re-routed to [comm] at [comm.exonet.address]."))
|
||||
sleep(40)
|
||||
to_chat(user, "<span class='notice'>[icon2html(src,user.client)] Connection to [comm] at [comm.exonet.address] established.</span>")
|
||||
comm.visible_message("<span class='notice'>[icon2html(src,viewers(src))] Connection to [src] at [exonet.address] established.</span>")
|
||||
to_chat(user, span_notice("[icon2html(src,user.client)] Connection to [comm] at [comm.exonet.address] established."))
|
||||
comm.visible_message(span_notice("[icon2html(src,viewers(src))] Connection to [src] at [exonet.address] established."))
|
||||
sleep(20)
|
||||
|
||||
src.add_communicating(comm)
|
||||
@@ -86,28 +86,28 @@
|
||||
|
||||
//Now for some connection fluff.
|
||||
if(user)
|
||||
to_chat(user, "<span class='notice'>[icon2html(src,user.client)] Connecting to [candidate].</span>")
|
||||
to_chat(new_voice, "<span class='notice'>[icon2html(src,new_voice.client)] Attempting to call [src].</span>")
|
||||
to_chat(user, span_notice("[icon2html(src,user.client)] Connecting to [candidate]."))
|
||||
to_chat(new_voice, span_notice("[icon2html(src,new_voice.client)] Attempting to call [src]."))
|
||||
sleep(10)
|
||||
to_chat(new_voice, "<span class='notice'>[icon2html(src,new_voice.client)] Dialing to [station_name()], Kara Subsystem, [system_name()].</span>")
|
||||
to_chat(new_voice, span_notice("[icon2html(src,new_voice.client)] Dialing to [station_name()], Kara Subsystem, [system_name()]."))
|
||||
sleep(20)
|
||||
to_chat(new_voice, "<span class='notice'>[icon2html(src,new_voice.client)] Connecting to [station_name()] telecommunications array.</span>")
|
||||
to_chat(new_voice, span_notice("[icon2html(src,new_voice.client)] Connecting to [station_name()] telecommunications array."))
|
||||
sleep(40)
|
||||
to_chat(new_voice, "<span class='notice'>[icon2html(src,new_voice.client)] Connection to [station_name()] telecommunications array established. Redirecting signal to [src].</span>")
|
||||
to_chat(new_voice, span_notice("[icon2html(src,new_voice.client)] Connection to [station_name()] telecommunications array established. Redirecting signal to [src]."))
|
||||
sleep(20)
|
||||
|
||||
//We're connected, no need to hide everything.
|
||||
new_voice.client.screen.Remove(blackness)
|
||||
qdel(blackness)
|
||||
|
||||
to_chat(new_voice, "<span class='notice'>[icon2html(src,new_voice.client)] Connection to [src] established.</span>")
|
||||
to_chat(new_voice, span_notice("[icon2html(src,new_voice.client)] Connection to [src] established."))
|
||||
to_chat(new_voice, "<b>To talk to the person on the other end of the call, just talk normally.</b>")
|
||||
to_chat(new_voice, "<b>If you want to end the call, use the 'Hang Up' verb. The other person can also hang up at any time.</b>")
|
||||
to_chat(new_voice, "<b>Remember, your character does not know anything you've learned from observing!</b>")
|
||||
if(new_voice.mind)
|
||||
new_voice.mind.assigned_role = JOB_DISEMBODIED_VOICE
|
||||
if(user)
|
||||
to_chat(user, "<span class='notice'>[icon2html(src,new_voice.client)] Your communicator is now connected to [candidate]'s communicator.</span>")
|
||||
to_chat(user, span_notice("[icon2html(src,new_voice.client)] Your communicator is now connected to [candidate]'s communicator."))
|
||||
|
||||
// Proc: close_connection()
|
||||
// Parameters: 3 (user - the user who initiated the disconnect, target - the mob or device being disconnected, reason - string shown when disconnected)
|
||||
@@ -120,8 +120,8 @@
|
||||
for(var/mob/living/voice/voice in voice_mobs) //Handle ghost-callers
|
||||
if(target && voice != target) //If no target is inputted, it deletes all of them.
|
||||
continue
|
||||
to_chat(voice, "<span class='danger'>[icon2html(src,voice.client)] [reason].</span>")
|
||||
visible_message("<span class='danger'>[icon2html(src,viewers(src))] [reason].</span>")
|
||||
to_chat(voice, span_danger("[icon2html(src,voice.client)] [reason]."))
|
||||
visible_message(span_danger("[icon2html(src,viewers(src))] [reason]."))
|
||||
voice_mobs.Remove(voice)
|
||||
qdel(voice)
|
||||
update_icon()
|
||||
@@ -131,8 +131,8 @@
|
||||
continue
|
||||
src.del_communicating(comm)
|
||||
comm.del_communicating(src)
|
||||
comm.visible_message("<span class='danger'>[icon2html(src,viewers(src))] [reason].</span>")
|
||||
visible_message("<span class='danger'>[icon2html(src,viewers(src))] [reason].</span>")
|
||||
comm.visible_message(span_danger("[icon2html(src,viewers(src))] [reason]."))
|
||||
visible_message(span_danger("[icon2html(src,viewers(src))] [reason]."))
|
||||
if(comm.camera && video_source == comm.camera) //We hung up on the person on video
|
||||
end_video()
|
||||
if(camera && comm.video_source == camera) //We hung up on them while they were watching us
|
||||
@@ -174,7 +174,7 @@
|
||||
L = loc
|
||||
|
||||
if(L)
|
||||
to_chat(L, "<span class='notice'>[icon2html(src,L.client)] Communications request from [who].</span>")
|
||||
to_chat(L, span_notice("[icon2html(src,L.client)] Communications request from [who]."))
|
||||
|
||||
// Proc: del_request()
|
||||
// Parameters: 1 (candidate - the ghost or communicator to be declined)
|
||||
@@ -184,7 +184,7 @@
|
||||
return
|
||||
|
||||
if(isobserver(candidate))
|
||||
to_chat(candidate, "<span class='warning'>Your communicator call request was declined.</span>")
|
||||
to_chat(candidate, span_warning("Your communicator call request was declined."))
|
||||
else if(istype(candidate, /obj/item/communicator))
|
||||
var/obj/item/communicator/comm = candidate
|
||||
comm.voice_invites -= src
|
||||
@@ -197,7 +197,7 @@
|
||||
us = loc
|
||||
|
||||
if(us)
|
||||
to_chat(us, "<span class='notice'>[icon2html(src,us.client)] Declined request.</span>")
|
||||
to_chat(us, span_notice("[icon2html(src,us.client)] Declined request."))
|
||||
|
||||
// Proc: see_emote()
|
||||
// Parameters: 2 (M - the mob the emote originated from, text - the emote's contents)
|
||||
@@ -250,7 +250,7 @@
|
||||
var/message = combined["formatted"]
|
||||
var/name_used = M.GetVoice()
|
||||
var/rendered = null
|
||||
rendered = "<span class='game say'>[icon2html(src,mobs_to_relay)] <span class='name'>[name_used]</span> [message]</span>"
|
||||
rendered = span_game(span_say("[icon2html(src,mobs_to_relay)] [span_name(name_used)] [message]"))
|
||||
mob.show_message(rendered, 2)
|
||||
|
||||
// Proc: show_message()
|
||||
@@ -277,7 +277,7 @@
|
||||
set desc = "If there is a communicator available, send a request to speak through it. This will reset your respawn timer, if someone picks up."
|
||||
|
||||
if(ticker.current_state < GAME_STATE_PLAYING)
|
||||
to_chat(src, "<span class='danger'>The game hasn't started yet!</span>")
|
||||
to_chat(src, span_danger("The game hasn't started yet!"))
|
||||
return
|
||||
|
||||
if (!src.stat)
|
||||
@@ -291,12 +291,12 @@
|
||||
return
|
||||
|
||||
if(CONFIG_GET(flag/antag_hud_restricted) && has_enabled_antagHUD == 1) // CHOMPEdit
|
||||
to_chat(src, "<span class='danger'>You have used the antagHUD and cannot respawn or use communicators!</span>")
|
||||
to_chat(src, span_danger("You have used the antagHUD and cannot respawn or use communicators!"))
|
||||
return
|
||||
|
||||
for(var/mob/living/L in mob_list) //Simple check so you don't have dead people calling.
|
||||
if(src.client.prefs.real_name == L.real_name)
|
||||
to_chat(src, "<span class='danger'>Your identity is already present in the game world. Please load in a different character first.</span>")
|
||||
to_chat(src, span_danger("Your identity is already present in the game world. Please load in a different character first."))
|
||||
return
|
||||
|
||||
var/obj/machinery/exonet_node/E = get_exonet_node()
|
||||
@@ -312,7 +312,7 @@
|
||||
choices.Add(comm)
|
||||
|
||||
if(!choices.len)
|
||||
to_chat(src , "<span class='danger'>There are no available communicators, sorry.</span>")
|
||||
to_chat(src , span_danger("There are no available communicators, sorry."))
|
||||
return
|
||||
|
||||
var/choice = tgui_input_list(src,"Send a voice request to whom?", "Recipient Choice", choices)
|
||||
@@ -331,23 +331,23 @@
|
||||
if((!user) || (!comm) || user.stat) return //KO or dead, or already in a video
|
||||
|
||||
if(video_source) //Already in a video
|
||||
to_chat(user, "<span class='danger'>You are already connected to a video call!</span>")
|
||||
to_chat(user, span_danger("You are already connected to a video call!"))
|
||||
return
|
||||
|
||||
if(user.blinded) //User is blinded
|
||||
to_chat(user, "<span class='danger'>You cannot see well enough to do that!</span>")
|
||||
to_chat(user, span_danger("You cannot see well enough to do that!"))
|
||||
return
|
||||
|
||||
if(!(src in comm.communicating) || !comm.camera) //You called someone with a broken communicator or one that's fake or yourself or something
|
||||
to_chat(user, "<span class='danger'>[icon2html(src, user.client)]ERROR: Video failed. Either bandwidth is too low, or the other communicator is malfunctioning.</span>")
|
||||
to_chat(user, span_danger("[icon2html(src, user.client)]ERROR: Video failed. Either bandwidth is too low, or the other communicator is malfunctioning."))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>[icon2html(src, user.client)] Attempting to start video over existing call.</span>")
|
||||
to_chat(user, span_notice("[icon2html(src, user.client)] Attempting to start video over existing call."))
|
||||
sleep(30)
|
||||
to_chat(user, "<span class='notice'>[icon2html(src, user.client)] Please wait...</span>")
|
||||
to_chat(user, span_notice("[icon2html(src, user.client)] Please wait..."))
|
||||
|
||||
video_source = comm.camera
|
||||
comm.visible_message("<span class='danger'>[icon2html(src,viewers(src))] New video connection from [comm].</span>")
|
||||
comm.visible_message(span_danger("[icon2html(src,viewers(src))] New video connection from [comm]."))
|
||||
update_active_camera_screen()
|
||||
RegisterSignal(video_source, COMSIG_OBSERVER_MOVED, PROC_REF(update_active_camera_screen))
|
||||
video_source.AddComponent(/datum/component/recursive_move)
|
||||
@@ -361,7 +361,7 @@
|
||||
show_static()
|
||||
video_source = null
|
||||
|
||||
. = "<span class='danger'>[bicon(src)] [reason ? reason : "Video session ended"].</span>"
|
||||
. = span_danger("[bicon(src)] [reason ? reason : "Video session ended"].")
|
||||
|
||||
visible_message(.)
|
||||
update_icon()
|
||||
|
||||
@@ -25,21 +25,21 @@
|
||||
if(istype(O, /obj/machinery/power/apc))
|
||||
var/obj/machinery/power/apc/A = O
|
||||
if(A.emagged || A.hacker)
|
||||
to_chat(user, "<span class='warning'>There is a software error with the device.</span>")
|
||||
to_chat(user, span_warning("There is a software error with the device."))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>The device's software appears to be fine.</span>")
|
||||
to_chat(user, span_notice("The device's software appears to be fine."))
|
||||
return 1
|
||||
if(istype(O, /obj/machinery/door))
|
||||
var/obj/machinery/door/D = O
|
||||
if(D.operating == -1)
|
||||
to_chat(user, "<span class='warning'>There is a software error with the device.</span>")
|
||||
to_chat(user, span_warning("There is a software error with the device."))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>The device's software appears to be fine.</span>")
|
||||
to_chat(user, span_notice("The device's software appears to be fine."))
|
||||
return 1
|
||||
else if(istype(O, /obj/machinery))
|
||||
var/obj/machinery/A = O
|
||||
if(A.emagged)
|
||||
to_chat(user, "<span class='warning'>There is a software error with the device.</span>")
|
||||
to_chat(user, span_warning("There is a software error with the device."))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>The device's software appears to be fine.</span>")
|
||||
to_chat(user, span_notice("The device's software appears to be fine."))
|
||||
return 1
|
||||
|
||||
@@ -87,13 +87,13 @@
|
||||
reattach_paddles(user)
|
||||
else if(istype(W, /obj/item/cell))
|
||||
if(bcell)
|
||||
to_chat(user, "<span class='notice'>\The [src] already has a cell.</span>")
|
||||
to_chat(user, span_notice("\The [src] already has a cell."))
|
||||
else
|
||||
if(!user.unEquip(W))
|
||||
return
|
||||
W.forceMove(src)
|
||||
bcell = W
|
||||
to_chat(user, "<span class='notice'>You install a cell in \the [src].</span>")
|
||||
to_chat(user, span_notice("You install a cell in \the [src]."))
|
||||
update_icon()
|
||||
|
||||
else if(W.has_tool_quality(TOOL_SCREWDRIVER))
|
||||
@@ -101,7 +101,7 @@
|
||||
bcell.update_icon()
|
||||
bcell.forceMove(get_turf(src.loc))
|
||||
bcell = null
|
||||
to_chat(user, "<span class='notice'>You remove the cell from \the [src].</span>")
|
||||
to_chat(user, span_notice("You remove the cell from \the [src]."))
|
||||
update_icon()
|
||||
else
|
||||
return ..()
|
||||
@@ -120,7 +120,7 @@
|
||||
|
||||
var/mob/living/carbon/human/user = usr
|
||||
if(!paddles)
|
||||
to_chat(user, "<span class='warning'>The paddles are missing!</span>")
|
||||
to_chat(user, span_warning("The paddles are missing!"))
|
||||
return
|
||||
|
||||
if(paddles.loc != src)
|
||||
@@ -128,10 +128,10 @@
|
||||
return
|
||||
|
||||
if(!slot_check())
|
||||
to_chat(user, "<span class='warning'>You need to equip [src] before taking out [paddles].</span>")
|
||||
to_chat(user, span_warning("You need to equip [src] before taking out [paddles]."))
|
||||
else
|
||||
if(!usr.put_in_hands(paddles)) //Detach the paddles into the user's hands
|
||||
to_chat(user, "<span class='warning'>You need a free hand to hold the paddles!</span>")
|
||||
to_chat(user, span_warning("You need a free hand to hold the paddles!"))
|
||||
update_icon() //success
|
||||
|
||||
//checks that the base unit is in the correct slot to be used
|
||||
@@ -163,7 +163,7 @@
|
||||
if(ismob(paddles.loc))
|
||||
var/mob/M = paddles.loc
|
||||
if(M.drop_from_inventory(paddles, src))
|
||||
to_chat(user, "<span class='notice'>\The [paddles] snap back into the main unit.</span>")
|
||||
to_chat(user, span_notice("\The [paddles] snap back into the main unit."))
|
||||
else
|
||||
paddles.forceMove(src)
|
||||
|
||||
@@ -258,13 +258,13 @@
|
||||
if(busy)
|
||||
return 0
|
||||
if(!check_charge(chargecost))
|
||||
to_chat(user, "<span class='warning'>\The [src] doesn't have enough charge left to do that.</span>")
|
||||
to_chat(user, span_warning("\The [src] doesn't have enough charge left to do that."))
|
||||
return 0
|
||||
if(!wielded && !isrobot(user))
|
||||
to_chat(user, "<span class='warning'>You need to wield the paddles with both hands before you can use them on someone!</span>")
|
||||
to_chat(user, span_warning("You need to wield the paddles with both hands before you can use them on someone!"))
|
||||
return 0
|
||||
if(cooldown)
|
||||
to_chat(user, "<span class='warning'>\The [src] are re-energizing!</span>")
|
||||
to_chat(user, span_warning("\The [src] are re-energizing!"))
|
||||
return 0
|
||||
return 1
|
||||
|
||||
@@ -394,10 +394,10 @@
|
||||
ghost.notify_revive("Someone is trying to resuscitate you. Re-enter your body if you want to be revived!", 'sound/effects/genetics.ogg', source = src)
|
||||
|
||||
//beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process
|
||||
user.visible_message("<span class='warning'>\The [user] begins to place [src] on [H]'s chest.</span>", "<span class='warning'>You begin to place [src] on [H]'s chest...</span>")
|
||||
user.visible_message(span_warning("\The [user] begins to place [src] on [H]'s chest."), span_warning("You begin to place [src] on [H]'s chest..."))
|
||||
if(!do_after(user, 30, H))
|
||||
return
|
||||
user.visible_message("<b>\The [user]</b> places [src] on [H]'s chest.", "<span class='warning'>You place [src] on [H]'s chest.</span>")
|
||||
user.visible_message("<b>\The [user]</b> places [src] on [H]'s chest.", span_warning("You place [src] on [H]'s chest."))
|
||||
playsound(src, 'sound/machines/defib_charge.ogg', 50, 0)
|
||||
|
||||
var/error = can_defib(H)
|
||||
@@ -419,7 +419,7 @@
|
||||
playsound(src, 'sound/machines/defib_failed.ogg', 50, 0)
|
||||
return
|
||||
|
||||
H.visible_message("<span class='warning'>\The [H]'s body convulses a bit.</span>")
|
||||
H.visible_message(span_warning("\The [H]'s body convulses a bit."))
|
||||
playsound(src, "bodyfall", 50, 1)
|
||||
playsound(src, 'sound/machines/defib_zap.ogg', 50, 1, -1)
|
||||
set_cooldown(cooldowntime)
|
||||
@@ -451,19 +451,19 @@
|
||||
/obj/item/shockpaddles/proc/do_electrocute(mob/living/carbon/human/H, mob/user, var/target_zone)
|
||||
var/obj/item/organ/external/affecting = H.get_organ(target_zone)
|
||||
if(!affecting)
|
||||
to_chat(user, "<span class='warning'>They are missing that body part!</span>")
|
||||
to_chat(user, span_warning("They are missing that body part!"))
|
||||
return
|
||||
|
||||
//no need to spend time carefully placing the paddles, we're just trying to shock them
|
||||
user.visible_message("<span class='danger'>\The [user] slaps [src] onto [H]'s [affecting.name].</span>", "<span class='danger'>You overcharge [src] and slap them onto [H]'s [affecting.name].</span>")
|
||||
user.visible_message(span_danger("\The [user] slaps [src] onto [H]'s [affecting.name]."), span_danger("You overcharge [src] and slap them onto [H]'s [affecting.name]."))
|
||||
|
||||
//Just stop at awkwardly slapping electrodes on people if the safety is enabled
|
||||
if(safety)
|
||||
to_chat(user, "<span class='warning'>You can't do that while the safety is enabled.</span>")
|
||||
to_chat(user, span_warning("You can't do that while the safety is enabled."))
|
||||
return
|
||||
|
||||
playsound(src, 'sound/machines/defib_charge.ogg', 50, 0)
|
||||
audible_message("<span class='warning'>\The [src] lets out a steadily rising hum...</span>", runemessage = "whines")
|
||||
audible_message(span_warning("\The [src] lets out a steadily rising hum..."), runemessage = "whines")
|
||||
|
||||
if(!do_after(user, chargetime, H))
|
||||
return
|
||||
@@ -474,7 +474,7 @@
|
||||
playsound(src, 'sound/machines/defib_failed.ogg', 50, 0)
|
||||
return
|
||||
|
||||
user.visible_message("<span class='danger'><i>\The [user] shocks [H] with \the [src]!</i></span>", "<span class='warning'>You shock [H] with \the [src]!</span>")
|
||||
user.visible_message(span_danger("<i>\The [user] shocks [H] with \the [src]!</i>"), span_warning("You shock [H] with \the [src]!"))
|
||||
playsound(src, 'sound/machines/defib_zap.ogg', 100, 1, -1)
|
||||
playsound(src, 'sound/weapons/Egloves.ogg', 100, 1, -1)
|
||||
set_cooldown(cooldowntime)
|
||||
@@ -541,12 +541,12 @@
|
||||
/obj/item/shockpaddles/emag_act(mob/user)
|
||||
if(safety)
|
||||
safety = 0
|
||||
to_chat(user, "<span class='warning'>You silently disable \the [src]'s safety protocols with the cryptographic sequencer.</span>")
|
||||
to_chat(user, span_warning("You silently disable \the [src]'s safety protocols with the cryptographic sequencer."))
|
||||
update_icon()
|
||||
return 1
|
||||
else
|
||||
safety = 1
|
||||
to_chat(user, "<span class='notice'>You silently enable \the [src]'s safety protocols with the cryptographic sequencer.</span>")
|
||||
to_chat(user, span_notice("You silently enable \the [src]'s safety protocols with the cryptographic sequencer."))
|
||||
update_icon()
|
||||
return 1
|
||||
|
||||
@@ -658,7 +658,7 @@
|
||||
if(2)
|
||||
new_fail = max(fail_counter, 8)
|
||||
if(ismob(loc))
|
||||
to_chat(loc, "<span class='warning'>\The [src] feel pleasantly warm.</span>")
|
||||
to_chat(loc, span_warning("\The [src] feel pleasantly warm."))
|
||||
|
||||
if(new_fail && !fail_counter)
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
if(!ghostjoin)
|
||||
return ..()
|
||||
if(jobban_isbanned(user, JOB_GHOSTROLES))
|
||||
to_chat(user, "<span class='warning'>You cannot inhabit this creature because you are banned from playing ghost roles.</span>")
|
||||
to_chat(user, span_warning("You cannot inhabit this creature because you are banned from playing ghost roles."))
|
||||
return
|
||||
if(!evaluate_ghost_join(user))
|
||||
return ..()
|
||||
@@ -77,11 +77,11 @@
|
||||
ghostjoin = FALSE
|
||||
ghostjoin_icon()
|
||||
if(capture_caught)
|
||||
to_chat(src, "<span class='notice'>You are bound to [revivedby], follow their commands within reason and to the best of your abilities, and avoid betraying or abandoning them.</span><span class= warning> You are allied with [revivedby]. Do not attack anyone for no reason. Of course, you may do scenes as you like, but you must still respect preferences.</span>")
|
||||
to_chat(src, span_notice("You are bound to [revivedby], follow their commands within reason and to the best of your abilities, and avoid betraying or abandoning them.</span><span class= warning> You are allied with [revivedby]. Do not attack anyone for no reason. Of course, you may do scenes as you like, but you must still respect preferences."))
|
||||
visible_message("[src]'s eyes flicker with a curious intelligence.", runemessage = "looks around")
|
||||
return
|
||||
if(revivedby != "no one")
|
||||
to_chat(src, "<span class='notice'>Where once your life had been rough and scary, you have been assisted by [revivedby]. They seem to be the reason you are on your feet again... so perhaps you should help them out.</span> <span class= warning> Being as you were revived, you are allied with the station. Do not attack anyone unless they are threatening the one who revived you. And try to listen to the one who revived you within reason. Of course, you may do scenes as you like, but you must still respect preferences.</span>")
|
||||
to_chat(src, span_notice("Where once your life had been rough and scary, you have been assisted by [revivedby]. They seem to be the reason you are on your feet again... so perhaps you should help them out.</span> <span class= warning> Being as you were revived, you are allied with the station. Do not attack anyone unless they are threatening the one who revived you. And try to listen to the one who revived you within reason. Of course, you may do scenes as you like, but you must still respect preferences."))
|
||||
visible_message("[src]'s eyes flicker with a curious intelligence.", runemessage = "looks around")
|
||||
|
||||
/// Evaluate someone for being allowed to join as this mob from being a ghost
|
||||
@@ -92,15 +92,15 @@
|
||||
|
||||
// At this point we can at least send them messages as to why they can't join, since they are a mob with a client
|
||||
if(!ghostjoin)
|
||||
to_chat(D, "<span class='notice'>Sorry, [src] is no longer ghost-joinable.</span>")
|
||||
to_chat(D, span_notice("Sorry, [src] is no longer ghost-joinable."))
|
||||
return FALSE
|
||||
|
||||
if(ckey)
|
||||
to_chat(D, "<span class='notice'>Sorry, someone else has already inhabited [src].</span>")
|
||||
to_chat(D, span_notice("Sorry, someone else has already inhabited [src]."))
|
||||
return FALSE
|
||||
|
||||
if(capture_caught && !D.client.prefs.capture_crystal)
|
||||
to_chat(D, "<span class='notice'>Sorry, [src] is participating in capture mechanics, and your preferences do not allow for that.</span>")
|
||||
to_chat(D, span_notice("Sorry, [src] is participating in capture mechanics, and your preferences do not allow for that."))
|
||||
return FALSE
|
||||
|
||||
// Insert whatever ban checks you want here if we ever add simplemob bans
|
||||
@@ -124,9 +124,9 @@
|
||||
var/cooldowntime = round((cooldown - (world.time - last_used)) * 0.1)
|
||||
if(Adjacent(user))
|
||||
if(cooldowntime <= 0)
|
||||
. += "<span class='notice'>The screen indicates that this device is ready to be used, and that it has enough energy for [charges] uses.</span>"
|
||||
. += span_notice("The screen indicates that this device is ready to be used, and that it has enough energy for [charges] uses.")
|
||||
else
|
||||
. += "<span class='notice'>The screen indicates that this device can be used again in [cooldowntime] seconds, and that it has enough energy for [charges] uses.</span>"
|
||||
. += span_notice("The screen indicates that this device can be used again in [cooldowntime] seconds, and that it has enough energy for [charges] uses.")
|
||||
|
||||
/obj/item/denecrotizer/proc/check_target(mob/living/simple_mob/target, mob/living/user)
|
||||
if(!target.Adjacent(user))
|
||||
@@ -135,23 +135,23 @@
|
||||
user.visible_message("[user] bonks [target] with [src].", runemessage = "bonks [target]")
|
||||
return FALSE
|
||||
if(!istype(target))
|
||||
to_chat(user, "<span class='notice'>[target] seems to be too complicated for [src] to interface with.</span>")
|
||||
to_chat(user, span_notice("[target] seems to be too complicated for [src] to interface with."))
|
||||
return FALSE
|
||||
if(!(world.time - last_used > cooldown))
|
||||
to_chat(user, "<span class='notice'>[src] doesn't seem to be ready yet.</span>")
|
||||
to_chat(user, span_notice("[src] doesn't seem to be ready yet."))
|
||||
return FALSE
|
||||
if(!charges)
|
||||
to_chat(user, "<span class='notice'>[src] doesn't seem to be active anymore.</span>")
|
||||
to_chat(user, span_notice("[src] doesn't seem to be active anymore."))
|
||||
return FALSE
|
||||
if(!target.ic_revivable)
|
||||
to_chat(user, "<span class='notice'>[src] doesn't seem to interface with [target].</span>")
|
||||
to_chat(user, span_notice("[src] doesn't seem to interface with [target]."))
|
||||
return FALSE
|
||||
if(target.stat != DEAD)
|
||||
if(!advanced)
|
||||
to_chat(user, "<span class='notice'>[src] doesn't seem to work on that.</span>")
|
||||
to_chat(user, span_notice("[src] doesn't seem to work on that."))
|
||||
return FALSE
|
||||
if(target.ai_holder.retaliate || target.ai_holder.hostile) // You can be friends with still living mobs if they are passive I GUESS
|
||||
to_chat(user, "<span class='notice'>[src] doesn't seem to work on that.</span>")
|
||||
to_chat(user, span_notice("[src] doesn't seem to work on that."))
|
||||
return FALSE
|
||||
if(!target.mind)
|
||||
user.visible_message("[user] gently presses [src] to [target]...", runemessage = "presses [src] to [target]")
|
||||
@@ -170,7 +170,7 @@
|
||||
update_icon()
|
||||
return FALSE
|
||||
else
|
||||
to_chat(user, "<span class='notice'>[src] doesn't seem to work on that.</span>")
|
||||
to_chat(user, span_notice("[src] doesn't seem to work on that."))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -17,17 +17,17 @@
|
||||
var/T = user.loc
|
||||
if(!beacon_active)
|
||||
if(!isturf(T))
|
||||
to_chat(user,"<span class='warning'>You cannot activate the beacon when you are not on a turf!</span>")
|
||||
to_chat(user,span_warning("You cannot activate the beacon when you are not on a turf!"))
|
||||
return
|
||||
else if(isnonsolidturf(T))
|
||||
to_chat(user,"<span class='warning'>You cannot activate the beacon when you are not on sufficiently solid ground!</span>")
|
||||
to_chat(user,span_warning("You cannot activate the beacon when you are not on sufficiently solid ground!"))
|
||||
return
|
||||
else
|
||||
var/answer = tgui_alert(user, "Would you like to activate this personal emergency beacon?","\The [src]", list("Yes", "No"))
|
||||
if(answer != "Yes")
|
||||
return
|
||||
else if(do_after(user, (3 SECONDS))) //short delay, so they can still abort if they want to
|
||||
user.visible_message("<span class='warning'>[user] activates \the [src]!</span>","<span class='warning'>You activate \the [src], spiking it into the ground!</span>")
|
||||
user.visible_message(span_warning("[user] activates \the [src]!"),span_warning("You activate \the [src], spiking it into the ground!"))
|
||||
beacon_active = TRUE
|
||||
icon_state = "e_beacon_active"
|
||||
user.drop_item()
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
/obj/item/emergency_beacon/attack_hand(mob/user)
|
||||
if(beacon_active)
|
||||
to_chat(user,"<span class='warning'>The beacon is already active and cannot be moved!</span>")
|
||||
to_chat(user,span_warning("The beacon is already active and cannot be moved!"))
|
||||
return
|
||||
|
||||
. = ..()
|
||||
|
||||
@@ -40,13 +40,13 @@
|
||||
/obj/item/flash/attackby(var/obj/item/W, var/mob/user)
|
||||
if(W.has_tool_quality(TOOL_SCREWDRIVER) && broken)
|
||||
if(repairing)
|
||||
to_chat(user, "<span class='notice'>\The [src] is already being repaired!</span>")
|
||||
to_chat(user, span_notice("\The [src] is already being repaired!"))
|
||||
return
|
||||
user.visible_message("<b>\The [user]</b> starts trying to repair \the [src]'s bulb.")
|
||||
repairing = TRUE
|
||||
if(do_after(user, (40 SECONDS + rand(0, 20 SECONDS)) * W.toolspeed) && can_repair)
|
||||
if(prob(30))
|
||||
user.visible_message("<span class='notice'>\The [user] successfully repairs \the [src]!</span>")
|
||||
user.visible_message(span_notice("\The [user] successfully repairs \the [src]!"))
|
||||
broken = FALSE
|
||||
update_icon()
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
@@ -87,7 +87,7 @@
|
||||
|
||||
/obj/item/flash/proc/clown_check(var/mob/user)
|
||||
if(user && (CLUMSY in user.mutations) && prob(50))
|
||||
to_chat(user, "<span class='warning'>\The [src] slips out of your hand.</span>")
|
||||
to_chat(user, span_warning("\The [src] slips out of your hand."))
|
||||
user.drop_item()
|
||||
return 0
|
||||
return 1
|
||||
@@ -128,7 +128,7 @@
|
||||
if(prob( max(0, times_used - safe_flashes) * 2 + (times_used >= safe_flashes)) && can_break) //if you use it 10 times in a minute it has a 30% chance to break.
|
||||
broken = TRUE
|
||||
if(user)
|
||||
to_chat(user, "<span class='warning'>The bulb has burnt out!</span>")
|
||||
to_chat(user, span_warning("The bulb has burnt out!"))
|
||||
update_icon()
|
||||
return FALSE
|
||||
else
|
||||
@@ -138,7 +138,7 @@
|
||||
else if(!charge_only) //can only use it 10 times a minute, unless it runs purely on charge.
|
||||
if(user)
|
||||
update_icon()
|
||||
to_chat(user, "<span class='warning'><i>click</i></span>")
|
||||
to_chat(user, span_warning("<i>click</i>"))
|
||||
playsound(src, 'sound/weapons/empty.ogg', 80, 1)
|
||||
return FALSE
|
||||
else if(battery && battery.checked_use(charge_cost + (round(charge_cost / 4) * max(0, times_used - max_flashes)))) // Using over your maximum flashes starts taking more charge per added flash.
|
||||
@@ -157,7 +157,7 @@
|
||||
|
||||
if(!clown_check(user)) return
|
||||
if(broken)
|
||||
to_chat(user, "<span class='warning'>\The [src] is broken.</span>")
|
||||
to_chat(user, span_warning("\The [src] is broken."))
|
||||
return
|
||||
|
||||
flash_recharge()
|
||||
@@ -226,14 +226,14 @@
|
||||
flick("flash2", src)
|
||||
if(!issilicon(M))
|
||||
|
||||
user.visible_message("<span class='disarm'>[user] blinds [M] with the flash!</span>")
|
||||
user.visible_message(span_disarm("[user] blinds [M] with the flash!"))
|
||||
else
|
||||
|
||||
user.visible_message("<span class='notice'>[user] overloads [M]'s sensors with the flash!</span>")
|
||||
user.visible_message(span_notice("[user] overloads [M]'s sensors with the flash!"))
|
||||
M.Weaken(rand(5,10))
|
||||
else
|
||||
|
||||
user.visible_message("<span class='notice'>[user] fails to blind [M] with the flash!</span>")
|
||||
user.visible_message(span_notice("[user] fails to blind [M] with the flash!"))
|
||||
|
||||
return
|
||||
|
||||
@@ -246,7 +246,7 @@
|
||||
user.setClickCooldown(user.get_attack_speed(src))
|
||||
|
||||
if(broken)
|
||||
user.show_message("<span class='warning'>The [src.name] is broken</span>", 2)
|
||||
user.show_message(span_warning("The [src.name] is broken"), 2)
|
||||
return
|
||||
|
||||
flash_recharge()
|
||||
@@ -289,7 +289,7 @@
|
||||
//C.Weaken(10)
|
||||
C.flash_eyes()
|
||||
for(var/mob/M in viewers(C, null))
|
||||
M.show_message("<span class='disarm'>[C] is blinded by the flash!</span>")
|
||||
M.show_message(span_disarm("[C] is blinded by the flash!"))
|
||||
..()
|
||||
|
||||
/obj/item/flash/synthetic
|
||||
@@ -305,14 +305,14 @@
|
||||
..()
|
||||
if(!broken)
|
||||
broken = 1
|
||||
to_chat(user, "<span class='warning'>The bulb has burnt out!</span>")
|
||||
to_chat(user, span_warning("The bulb has burnt out!"))
|
||||
update_icon()
|
||||
|
||||
/obj/item/flash/synthetic/attack_self(mob/living/carbon/user as mob, flag = 0, emp = 0)
|
||||
..()
|
||||
if(!broken)
|
||||
broken = 1
|
||||
to_chat(user, "<span class='warning'>The bulb has burnt out!</span>")
|
||||
to_chat(user, span_warning("The bulb has burnt out!"))
|
||||
update_icon()
|
||||
|
||||
/obj/item/flash/robot
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
if(power_usage)
|
||||
if(cell.use(power_usage) != power_usage) // we weren't able to use our full power_usage amount!
|
||||
visible_message("<span class='warning'>\The [src] flickers before going dull.</span>")
|
||||
visible_message(span_warning("\The [src] flickers before going dull."))
|
||||
playsound(src, 'sound/effects/sparks3.ogg', 10, 1, -3) //Small cue that your light went dull in your pocket. //VOREStation Edit
|
||||
on = 0
|
||||
update_brightness()
|
||||
@@ -119,7 +119,7 @@
|
||||
if(istype(H))
|
||||
for(var/obj/item/clothing/C in list(H.head,H.wear_mask,H.glasses))
|
||||
if(istype(C) && (C.body_parts_covered & EYES))
|
||||
to_chat(user, "<span class='warning'>You're going to need to remove [C.name] first.</span>")
|
||||
to_chat(user, span_warning("You're going to need to remove [C.name] first."))
|
||||
return
|
||||
|
||||
var/obj/item/organ/vision
|
||||
@@ -127,34 +127,34 @@
|
||||
vision = H.internal_organs_by_name[H.species.vision_organ]
|
||||
if(!vision)
|
||||
user.visible_message("<b>\The [user]</b> directs [src] at [M]'s face.", \
|
||||
"<span class='notice'>You direct [src] at [M]'s face.</span>")
|
||||
to_chat(user, "<span class='warning'>You can't find any [H.species.vision_organ ? H.species.vision_organ : "eyes"] on [H]!</span>")
|
||||
span_notice("You direct [src] at [M]'s face."))
|
||||
to_chat(user, span_warning("You can't find any [H.species.vision_organ ? H.species.vision_organ : "eyes"] on [H]!"))
|
||||
user.setClickCooldown(user.get_attack_speed(src))
|
||||
return
|
||||
|
||||
user.visible_message("<b>\The [user]</b> directs [src] to [M]'s eyes.", \
|
||||
"<span class='notice'>You direct [src] to [M]'s eyes.</span>")
|
||||
span_notice("You direct [src] to [M]'s eyes."))
|
||||
if(H != user) //can't look into your own eyes buster
|
||||
if(M.stat == DEAD || M.blinded) //mob is dead or fully blind
|
||||
to_chat(user, "<span class='warning'>\The [M]'s pupils do not react to the light!</span>")
|
||||
to_chat(user, span_warning("\The [M]'s pupils do not react to the light!"))
|
||||
return
|
||||
if(XRAY in M.mutations)
|
||||
to_chat(user, "<span class='notice'>\The [M] pupils give an eerie glow!</span>")
|
||||
to_chat(user, span_notice("\The [M] pupils give an eerie glow!"))
|
||||
if(vision.is_bruised())
|
||||
to_chat(user, "<span class='warning'>There's visible damage to [M]'s [vision.name]!</span>")
|
||||
to_chat(user, span_warning("There's visible damage to [M]'s [vision.name]!"))
|
||||
else if(M.eye_blurry)
|
||||
to_chat(user, "<span class='notice'>\The [M]'s pupils react slower than normally.</span>")
|
||||
to_chat(user, span_notice("\The [M]'s pupils react slower than normally."))
|
||||
if(M.getBrainLoss() > 15)
|
||||
to_chat(user, "<span class='notice'>There's visible lag between left and right pupils' reactions.</span>")
|
||||
to_chat(user, span_notice("There's visible lag between left and right pupils' reactions."))
|
||||
|
||||
var/list/pinpoint = list("oxycodone"=1,"tramadol"=5)
|
||||
var/list/dilating = list("bliss"=5,"ambrosia_extract"=5,"mindbreaker"=1)
|
||||
if(M.reagents.has_any_reagent(pinpoint) || H.ingested.has_any_reagent(pinpoint))
|
||||
to_chat(user, "<span class='notice'>\The [M]'s pupils are already pinpoint and cannot narrow any more.</span>")
|
||||
to_chat(user, span_notice("\The [M]'s pupils are already pinpoint and cannot narrow any more."))
|
||||
else if(M.reagents.has_any_reagent(dilating) || H.ingested.has_any_reagent(dilating))
|
||||
to_chat(user, "<span class='notice'>\The [M]'s pupils narrow slightly, but are still very dilated.</span>")
|
||||
to_chat(user, span_notice("\The [M]'s pupils narrow slightly, but are still very dilated."))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>\The [M]'s pupils narrow.</span>")
|
||||
to_chat(user, span_notice("\The [M]'s pupils narrow."))
|
||||
|
||||
user.setClickCooldown(user.get_attack_speed(src)) //can be used offensively
|
||||
M.flash_eyes()
|
||||
@@ -167,7 +167,7 @@
|
||||
cell.update_icon()
|
||||
user.put_in_hands(cell)
|
||||
cell = null
|
||||
to_chat(user, "<span class='notice'>You remove the cell from the [src].</span>")
|
||||
to_chat(user, span_notice("You remove the cell from the [src]."))
|
||||
playsound(src, 'sound/machines/button.ogg', 30, 1, 0)
|
||||
on = 0
|
||||
update_brightness()
|
||||
@@ -216,13 +216,13 @@
|
||||
user.drop_item()
|
||||
W.loc = src
|
||||
cell = W
|
||||
to_chat(user, "<span class='notice'>You install a cell in \the [src].</span>")
|
||||
to_chat(user, span_notice("You install a cell in \the [src]."))
|
||||
playsound(src, 'sound/machines/button.ogg', 30, 1, 0)
|
||||
update_brightness()
|
||||
else
|
||||
to_chat(user, "<span class='notice'>\The [src] already has a cell.</span>")
|
||||
to_chat(user, span_notice("\The [src] already has a cell."))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>\The [src] cannot use that type of cell.</span>")
|
||||
to_chat(user, span_notice("\The [src] cannot use that type of cell."))
|
||||
|
||||
else
|
||||
..()
|
||||
@@ -390,7 +390,7 @@
|
||||
|
||||
// Usual checks
|
||||
if(!fuel)
|
||||
to_chat(user, "<span class='notice'>It's out of fuel.</span>")
|
||||
to_chat(user, span_notice("It's out of fuel."))
|
||||
return
|
||||
if(on)
|
||||
return
|
||||
@@ -398,7 +398,7 @@
|
||||
. = ..()
|
||||
// All good, turn it on.
|
||||
if(.)
|
||||
user.visible_message("<span class='notice'>[user] activates the flare.</span>", "<span class='notice'>You pull the cord on the flare, activating it!</span>")
|
||||
user.visible_message(span_notice("[user] activates the flare."), span_notice("You pull the cord on the flare, activating it!"))
|
||||
src.force = on_damage
|
||||
src.damtype = "fire"
|
||||
START_PROCESSING(SSobj, src)
|
||||
@@ -447,14 +447,14 @@
|
||||
/obj/item/flashlight/glowstick/attack_self(mob/user)
|
||||
|
||||
if(!fuel)
|
||||
to_chat(user, "<span class='notice'>The glowstick has already been turned on.</span>")
|
||||
to_chat(user, span_notice("The glowstick has already been turned on."))
|
||||
return
|
||||
if(on)
|
||||
return
|
||||
|
||||
. = ..()
|
||||
if(.)
|
||||
user.visible_message("<span class='notice'>[user] cracks and shakes \the [name].</span>", "<span class='notice'>You crack and shake \the [src], turning it on!</span>")
|
||||
user.visible_message(span_notice("[user] cracks and shakes \the [name]."), span_notice("You crack and shake \the [src], turning it on!"))
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/flashlight/glowstick/red
|
||||
|
||||
@@ -49,11 +49,11 @@
|
||||
|
||||
var/turf/simulated/floor/F = A
|
||||
if(!istype(F))
|
||||
to_chat(user, "<span class='warning'>\The [src] can only be used on station flooring.</span>")
|
||||
to_chat(user, span_warning("\The [src] can only be used on station flooring."))
|
||||
return
|
||||
|
||||
if(!F.flooring || !F.flooring.can_paint || F.broken || F.burnt)
|
||||
to_chat(user, "<span class='warning'>\The [src] cannot paint broken or missing tiles.</span>")
|
||||
to_chat(user, span_warning("\The [src] cannot paint broken or missing tiles."))
|
||||
return
|
||||
|
||||
var/list/decal_data = decals[decal]
|
||||
@@ -67,11 +67,11 @@
|
||||
config_error = 1
|
||||
|
||||
if(config_error)
|
||||
to_chat(user, "<span class='warning'>\The [src] flashes an error light. You might need to reconfigure it.</span>")
|
||||
to_chat(user, span_warning("\The [src] flashes an error light. You might need to reconfigure it."))
|
||||
return
|
||||
|
||||
if(F.decals && F.decals.len > 5 && painting_decal != /obj/effect/floor_decal/reset)
|
||||
to_chat(user, "<span class='warning'>\The [F] has been painted too much; you need to clear it off.</span>")
|
||||
to_chat(user, span_warning("\The [F] has been painted too much; you need to clear it off."))
|
||||
return
|
||||
|
||||
var/painting_dir = 0
|
||||
@@ -130,7 +130,7 @@
|
||||
var/new_colour = input(usr, "Choose a colour.", name, paint_colour) as color|null
|
||||
if(new_colour && new_colour != paint_colour)
|
||||
paint_colour = new_colour
|
||||
to_chat(usr, "<span class='notice'>You set \the [src] to paint with <font color='[paint_colour]'>a new colour</font>.</span>")
|
||||
to_chat(usr, span_notice("You set \the [src] to paint with <font color='[paint_colour]'>a new colour</font>."))
|
||||
|
||||
/obj/item/floor_painter/verb/choose_decal()
|
||||
set name = "Choose Decal"
|
||||
@@ -144,7 +144,7 @@
|
||||
var/new_decal = tgui_input_list(usr, "Select a decal:", "Decal Choice", decals)
|
||||
if(new_decal && !isnull(decals[new_decal]))
|
||||
decal = new_decal
|
||||
to_chat(usr, "<span class='notice'>You set \the [src] decal to '[decal]'.</span>")
|
||||
to_chat(usr, span_notice("You set \the [src] decal to '[decal]'."))
|
||||
|
||||
/obj/item/floor_painter/verb/choose_direction()
|
||||
set name = "Choose Direction"
|
||||
@@ -158,4 +158,4 @@
|
||||
var/new_dir = tgui_input_list(usr, "Select a direction:", "Direction Choice", paint_dirs)
|
||||
if(new_dir && !isnull(paint_dirs[new_dir]))
|
||||
paint_dir = new_dir
|
||||
to_chat(usr, "<span class='notice'>You set \the [src] direction to '[paint_dir]'.</span>")
|
||||
to_chat(usr, span_notice("You set \the [src] direction to '[paint_dir]'."))
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
/obj/item/geiger/examine(mob/user)
|
||||
. = ..()
|
||||
get_radiation()
|
||||
. += "<span class='warning'>[scanning ? "Ambient" : "Stored"] radiation level: [radiation_count ? radiation_count : "0"]Bq.</span>"
|
||||
. += span_warning("[scanning ? "Ambient" : "Stored"] radiation level: [radiation_count ? radiation_count : "0"]Bq.")
|
||||
|
||||
/obj/item/geiger/rad_act(amount)
|
||||
if(!amount || !scanning)
|
||||
@@ -66,7 +66,7 @@
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
update_icon()
|
||||
update_sound()
|
||||
to_chat(user, "<span class='notice'>[icon2html(src, user.client)] You switch [scanning ? "on" : "off"] \the [src].</span>")
|
||||
to_chat(user, span_notice("[icon2html(src, user.client)] You switch [scanning ? "on" : "off"] \the [src]."))
|
||||
|
||||
/obj/item/geiger/update_icon()
|
||||
if(!scanning)
|
||||
@@ -121,7 +121,7 @@
|
||||
scanning = !scanning
|
||||
update_icon()
|
||||
update_sound()
|
||||
to_chat(user, "<span class='notice'>[icon2html(src, user.client)] You switch [scanning ? "on" : "off"] \the [src].</span>")
|
||||
to_chat(user, span_notice("[icon2html(src, user.client)] You switch [scanning ? "on" : "off"] \the [src]."))
|
||||
|
||||
/obj/item/geiger/wall/update_icon()
|
||||
if(!scanning)
|
||||
|
||||
@@ -52,23 +52,23 @@
|
||||
if(istype(A, /obj/machinery/door/airlock))
|
||||
var/obj/machinery/door/airlock/D = A
|
||||
if(!D.arePowerSystemsOn())
|
||||
to_chat(user, "<span class='warning'>No response from remote, check door power.</span>")
|
||||
to_chat(user, span_warning("No response from remote, check door power."))
|
||||
else if(D.locked == TRUE && full_override == FALSE)
|
||||
to_chat(user, "<span class='warning'>Unable to override door bolts!</span>")
|
||||
to_chat(user, span_warning("Unable to override door bolts!"))
|
||||
else if(D.locked == TRUE && full_override == TRUE && D.arePowerSystemsOn())
|
||||
to_chat(user, "<span class='notice'>Door bolts overridden.</span>")
|
||||
to_chat(user, span_notice("Door bolts overridden."))
|
||||
D.unlock()
|
||||
else if(D.density == TRUE && D.locked == FALSE)
|
||||
to_chat(user, "<span class='notice'>Overriding access. Door opening.</span>")
|
||||
to_chat(user, span_notice("Overriding access. Door opening."))
|
||||
D.open()
|
||||
else if(D.density == FALSE && D.locked == FALSE)
|
||||
to_chat(user, "<span class='notice'>Overriding access. Door closing.</span>")
|
||||
to_chat(user, span_notice("Overriding access. Door closing."))
|
||||
D.close()
|
||||
return 1
|
||||
|
||||
/obj/item/multitool/hacktool/proc/attempt_hack(var/mob/user, var/atom/target)
|
||||
if(is_hacking)
|
||||
to_chat(user, "<span class='warning'>You are already hacking!</span>")
|
||||
to_chat(user, span_warning("You are already hacking!"))
|
||||
return 0
|
||||
if(!is_type_in_list(target, supported_types))
|
||||
to_chat(user, "[icon2html(src, user.client)] <span class='warning'>Unable to hack this target, invalid target type.</span>")
|
||||
@@ -77,9 +77,9 @@
|
||||
if(istype(target, /obj/structure/closet/crate/secure))
|
||||
var/obj/structure/closet/crate/secure/A = target
|
||||
if(A.locked)
|
||||
to_chat(user, "<span class='notice'>Overriding access. Stand by.</span>")
|
||||
to_chat(user, span_notice("Overriding access. Stand by."))
|
||||
if(do_after(user, (((5 SECONDS + rand(0, 5 SECONDS) + rand(0, 5 SECONDS))*hackspeed))))
|
||||
to_chat(user, "<span class='notice'>Override successful!</span>")
|
||||
to_chat(user, span_notice("Override successful!"))
|
||||
A.locked = FALSE
|
||||
A.update_icon()
|
||||
playsound(A, 'sound/machines/click.ogg', 15, 1, -3)
|
||||
@@ -89,9 +89,9 @@
|
||||
if(istype(target, /obj/structure/closet/secure_closet))
|
||||
var/obj/structure/closet/secure_closet/A = target
|
||||
if(A.locked)
|
||||
to_chat(user, "<span class='notice'>Overriding access. Stand by.</span>")
|
||||
to_chat(user, span_notice("Overriding access. Stand by."))
|
||||
if(do_after(user, (((5 SECONDS + rand(0, 5 SECONDS) + rand(0, 5 SECONDS))*hackspeed))))
|
||||
to_chat(user, "<span class='notice'>Override successful!</span>")
|
||||
to_chat(user, span_notice("Override successful!"))
|
||||
A.locked = FALSE
|
||||
A.update_icon()
|
||||
playsound(A, 'sound/machines/click.ogg', 15, 1, -3)
|
||||
@@ -108,7 +108,7 @@
|
||||
if(found)
|
||||
known_targets.Swap(1, found) // Move the last hacked item first
|
||||
return 1
|
||||
to_chat(user, "<span class='notice'>You begin hacking \the [D]...</span>")
|
||||
to_chat(user, span_notice("You begin hacking \the [D]..."))
|
||||
is_hacking = 1
|
||||
// On average hackin takes ~15 seconds. Fairly small random span to discourage people from simply aborting and trying again
|
||||
// Reduced hack duration to compensate for the reduced functionality, multiplied by door sec level
|
||||
@@ -116,10 +116,10 @@
|
||||
is_hacking = 0
|
||||
|
||||
if(hack_result && in_hack_mode)
|
||||
to_chat(user, "<span class='notice'>Your hacking attempt was succesful!</span>")
|
||||
to_chat(user, span_notice("Your hacking attempt was succesful!"))
|
||||
user.playsound_local(get_turf(src), 'sound/instruments/piano/An6.ogg', 50)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>Your hacking attempt failed!</span>")
|
||||
to_chat(user, span_warning("Your hacking attempt failed!"))
|
||||
return 0
|
||||
|
||||
known_targets.Insert(1, D) // Insert the newly hacked target first,
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
if(in_range(user, src) || istype(user, /mob/observer/dead))
|
||||
show_content(user) //Opens a browse window, not chatbox related
|
||||
else
|
||||
. += "<span class='notice'>You have to go closer if you want to read it.</span>"
|
||||
. += span_notice("You have to go closer if you want to read it.")
|
||||
|
||||
//hit yourself with it
|
||||
/obj/item/holowarrant/attack_self(mob/living/user as mob)
|
||||
@@ -28,7 +28,7 @@
|
||||
for(var/datum/data/record/warrant/W in data_core.warrants)
|
||||
warrants += W.fields["namewarrant"]
|
||||
if(warrants.len == 0)
|
||||
to_chat(user,"<span class='notice'>There are no warrants available</span>")
|
||||
to_chat(user,span_notice("There are no warrants available"))
|
||||
return
|
||||
var/temp
|
||||
temp = tgui_input_list(user, "Which warrant would you like to load?", "Warrant Selection", warrants)
|
||||
@@ -44,17 +44,17 @@
|
||||
var/choice = tgui_alert(user, "Would you like to authorize this warrant?","Warrant authorization",list("Yes","No"))
|
||||
if(choice == "Yes")
|
||||
active.fields["auth"] = "[I.registered_name] - [I.assignment ? I.assignment : "(Unknown)"]"
|
||||
user.visible_message("<span class='notice'>You swipe \the [I] through the [src].</span>", \
|
||||
"<span class='notice'>[user] swipes \the [I] through the [src].</span>")
|
||||
user.visible_message(span_notice("You swipe \the [I] through the [src]."), \
|
||||
span_notice("[user] swipes \the [I] through the [src]."))
|
||||
return 1
|
||||
to_chat(user, "<span class='warning'>You don't have the access to do this!</span>") // VOREStation edit
|
||||
to_chat(user, span_warning("You don't have the access to do this!")) // VOREStation edit
|
||||
return 1
|
||||
..()
|
||||
|
||||
//hit other people with it
|
||||
/obj/item/holowarrant/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
||||
user.visible_message("<span class='notice'>You show the warrant to [M].</span>", \
|
||||
"<span class='notice'>[user] holds up a warrant projector and shows the contents to [M].</span>")
|
||||
user.visible_message(span_notice("You show the warrant to [M]."), \
|
||||
span_notice("[user] holds up a warrant projector and shows the contents to [M]."))
|
||||
M.examinate(src)
|
||||
|
||||
/obj/item/holowarrant/update_icon()
|
||||
|
||||
@@ -50,13 +50,13 @@
|
||||
user.drop_item()
|
||||
W.loc = src
|
||||
diode = W
|
||||
to_chat(user, "<span class='notice'>You install a [diode.name] in [src].</span>")
|
||||
to_chat(user, span_notice("You install a [diode.name] in [src]."))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>[src] already has a diode.</span>")
|
||||
to_chat(user, span_notice("[src] already has a diode."))
|
||||
|
||||
else if(W.has_tool_quality(TOOL_SCREWDRIVER))
|
||||
if(diode)
|
||||
to_chat(user, "<span class='notice'>You remove the [diode.name] from the [src].</span>")
|
||||
to_chat(user, span_notice("You remove the [diode.name] from the [src]."))
|
||||
diode.loc = get_turf(src.loc)
|
||||
diode = null
|
||||
return
|
||||
@@ -76,17 +76,17 @@
|
||||
if(!(world.time - last_used_time >= cooldown))
|
||||
return
|
||||
if (!diode)
|
||||
to_chat(user, "<span class='notice'>You point [src] at [target], but nothing happens!</span>")
|
||||
to_chat(user, span_notice("You point [src] at [target], but nothing happens!"))
|
||||
return
|
||||
if (!user.IsAdvancedToolUser())
|
||||
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
|
||||
to_chat(user, span_warning("You don't have the dexterity to do this!"))
|
||||
return
|
||||
|
||||
add_fingerprint(user)
|
||||
|
||||
//nothing happens if the battery is drained
|
||||
if(recharge_locked)
|
||||
to_chat(user, "<span class='notice'>You point [src] at [target], but it's still charging.</span>")
|
||||
to_chat(user, span_notice("You point [src] at [target], but it's still charging."))
|
||||
return
|
||||
|
||||
var/outmsg
|
||||
@@ -110,38 +110,38 @@
|
||||
var/mob/living/carbon/human/H = C
|
||||
var/obj/item/organ/internal/eyes/E = H.internal_organs_by_name[O_EYES]
|
||||
if(!E)
|
||||
outmsg = "<span class='notice'>You shine [src] at [C], but they don't seem to have eyes.</span>"
|
||||
outmsg = span_notice("You shine [src] at [C], but they don't seem to have eyes.")
|
||||
return
|
||||
|
||||
outmsg = "<span class='notice'>You shine [src] into [C]'s eyes.</span>"
|
||||
outmsg = span_notice("You shine [src] into [C]'s eyes.")
|
||||
switch(severity)
|
||||
if(0)
|
||||
//rank 1 diode with basic eye protection (like sunglasses), or rank 2 with industrial protection (like welding goggles)
|
||||
to_chat(C, "<span class='info'>A small, bright dot appears in your vision.</span>")
|
||||
to_chat(C, span_info("A small, bright dot appears in your vision."))
|
||||
if(1)
|
||||
//rank 1 with no protection, rank 2 with basic protection, or rank 3 with industrial protection
|
||||
to_chat(C, "<span class='notice'>Something bright flashes in the corner of your vision.</span>")
|
||||
to_chat(C, span_notice("Something bright flashes in the corner of your vision."))
|
||||
if(2)
|
||||
//rank 1 or 2 with no protection, rank 2 or 3 with basic protection, or rank 3 with industrial protection
|
||||
//alternatively, rank 1 with minor vulnerability (like night vision goggles)
|
||||
flick("flash", C.flash_eyes())
|
||||
to_chat(C, "<span class='danger'>A bright light shines across your eyes!</span>")
|
||||
to_chat(C, span_danger("A bright light shines across your eyes!"))
|
||||
if(3)
|
||||
//rank 1 with minor vulnerability, rank 2 or 3 with no protection, or rank 3 with basic protection
|
||||
if(prob(3 * diode.rating))
|
||||
C.Weaken(1)
|
||||
flick("flash", C.flash_eyes())
|
||||
E.damage += 1
|
||||
to_chat(C, "<span class='danger'>A bright light briefly blinds you!</span>")
|
||||
to_chat(C, span_danger("A bright light briefly blinds you!"))
|
||||
if(4)
|
||||
//rank 3 with no protection, or rank 2 with minor vulnerability
|
||||
if(prob(5 * diode.rating))
|
||||
C.Weaken(1)
|
||||
flick("e_flash", C.flash_eyes())
|
||||
E.damage += 2
|
||||
to_chat(C, "<span class='danger'>A blinding light burns your eyes!</span>")
|
||||
to_chat(C, span_danger("A blinding light burns your eyes!"))
|
||||
else
|
||||
outmsg = "<span class='notice'>You shine the [src] at [C], but miss their eyes.</span>"
|
||||
outmsg = span_notice("You shine the [src] at [C], but miss their eyes.")
|
||||
|
||||
//robots and AI
|
||||
else if(issilicon(target))
|
||||
@@ -151,34 +151,34 @@
|
||||
flick("flash", S.flash_eyes(affect_silicon = TRUE))
|
||||
if (prob(3 * diode.rating))
|
||||
S.Weaken(1)
|
||||
to_chat(S, "<span class='warning'>Your sensors were blinded by a laser!</span>")
|
||||
outmsg = "<span class='notice'>You blind [S] by shining [src] at their sensors.</span>"
|
||||
to_chat(S, span_warning("Your sensors were blinded by a laser!"))
|
||||
outmsg = span_notice("You blind [S] by shining [src] at their sensors.")
|
||||
add_attack_logs(user,S,"Tried disabling using [src]")
|
||||
else
|
||||
outmsg = "<span class='notice'>You shine the [src] at [S], but miss their sensors.</span>"
|
||||
outmsg = span_notice("You shine the [src] at [S], but miss their sensors.")
|
||||
|
||||
//cameras
|
||||
else if(istype(target, /obj/machinery/camera))
|
||||
var/obj/machinery/camera/C = target
|
||||
if(prob(effectchance * diode.rating))
|
||||
C.emp_act(4 - diode.rating)
|
||||
outmsg = "<span class='notice'>You shine the [src] into the lens of [C].</span>"
|
||||
outmsg = span_notice("You shine the [src] into the lens of [C].")
|
||||
add_attack_logs(user,C.name,"Tried disabling using [src]")
|
||||
else
|
||||
outmsg = "<span class='info'>You missed the lens of [C] with [src].</span>"
|
||||
outmsg = span_info("You missed the lens of [C] with [src].")
|
||||
|
||||
//cats!
|
||||
for(var/mob/living/simple_mob/animal/passive/cat/C in viewers(1,targloc))
|
||||
if (!(C.stat || C.buckled))
|
||||
if(prob(50) && !(C.client))
|
||||
C.visible_message("<span class='warning'>[C] pounces on the light!</span>", "<span class='warning'>You pounce on the light!</span>")
|
||||
C.visible_message(span_warning("[C] pounces on the light!"), span_warning("You pounce on the light!"))
|
||||
step_towards(C, targloc)
|
||||
C.lay_down()
|
||||
spawn(10)
|
||||
C.lay_down()
|
||||
else
|
||||
C.set_dir(get_dir(C,targloc))
|
||||
C.visible_message("<span class='notice'>[C] watches the light.</span>", "<span class='notice'>Your attention is drawn to the mysterious glowing dot.</span>")
|
||||
C.visible_message(span_notice("[C] watches the light."), span_notice("Your attention is drawn to the mysterious glowing dot."))
|
||||
|
||||
|
||||
//laser pointer image
|
||||
@@ -193,9 +193,9 @@
|
||||
I.pixel_y = target.pixel_y + rand(-5,5)
|
||||
|
||||
if(outmsg)
|
||||
user.visible_message("<span class='info'>[user] points [src] at [target].</span>", outmsg)
|
||||
user.visible_message(span_info("[user] points [src] at [target]."), outmsg)
|
||||
else
|
||||
user.visible_message("<span class='info'>[user] points [src] at [target].</span>", "<span class='info'>You point [src] at [target].</span>")
|
||||
user.visible_message(span_info("[user] points [src] at [target]."), span_info("You point [src] at [target]."))
|
||||
|
||||
last_used_time = world.time
|
||||
energy -= 1
|
||||
@@ -204,7 +204,7 @@
|
||||
recharging = 1
|
||||
START_PROCESSING(SSobj, src)
|
||||
if(energy <= 0)
|
||||
to_chat(user, "<span class='warning'>You've overused the battery of [src], now it needs time to recharge!</span>")
|
||||
to_chat(user, span_warning("You've overused the battery of [src], now it needs time to recharge!"))
|
||||
recharge_locked = 1
|
||||
|
||||
flick_overlay(I, showto, cooldown)
|
||||
@@ -218,4 +218,4 @@
|
||||
energy = max_energy
|
||||
recharging = 0
|
||||
recharge_locked = 0
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -67,14 +67,14 @@
|
||||
if(istype(W, /obj/item/stack/material) && W.get_material_name() == "glass" || istype(W, /obj/item/stack/material/cyborg/glass))
|
||||
var/obj/item/stack/G = W
|
||||
if(uses >= max_uses)
|
||||
to_chat(user, "<span class='warning'>[src.name] is full.</span>")
|
||||
to_chat(user, span_warning("[src.name] is full."))
|
||||
return
|
||||
else if(G.use(1))
|
||||
add_uses(16) //Autolathe converts 1 sheet into 16 lights.
|
||||
to_chat(user, "<span class='notice'>You insert a piece of glass into \the [src.name]. You have [uses] light\s remaining.</span>")
|
||||
to_chat(user, span_notice("You insert a piece of glass into \the [src.name]. You have [uses] light\s remaining."))
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need one sheet of glass to replace lights.</span>")
|
||||
to_chat(user, span_warning("You need one sheet of glass to replace lights."))
|
||||
|
||||
if(istype(W, /obj/item/light))
|
||||
var/new_bulbs = 0
|
||||
@@ -117,14 +117,14 @@
|
||||
qdel(L)
|
||||
|
||||
if(!found_lightbulbs)
|
||||
to_chat(user, "<span class='warning'>\The [S] contains no bulbs.</span>")
|
||||
to_chat(user, span_warning("\The [S] contains no bulbs."))
|
||||
return
|
||||
|
||||
if(!replaced_something && src.uses == max_uses)
|
||||
to_chat(user, "<span class='warning'>\The [src] is full!</span>")
|
||||
to_chat(user, span_warning("\The [src] is full!"))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You fill \the [src] with lights from \the [S].</span>")
|
||||
to_chat(user, span_notice("You fill \the [src] with lights from \the [S]."))
|
||||
|
||||
/obj/item/lightreplacer/attack_self(mob/user)
|
||||
/* // This would probably be a bit OP. If you want it though, uncomment the code.
|
||||
@@ -175,12 +175,12 @@
|
||||
if(target.status != LIGHT_OK)
|
||||
if(CanUse(U))
|
||||
if(!Use(U)) return
|
||||
to_chat(U, "<span class='notice'>You replace the [target.get_fitting_name()] with the [src].</span>")
|
||||
to_chat(U, span_notice("You replace the [target.get_fitting_name()] with the [src]."))
|
||||
|
||||
if(target.status != LIGHT_EMPTY)
|
||||
var/new_bulbs = AddShards(1)
|
||||
if(new_bulbs != 0)
|
||||
to_chat(U, "<span class='notice'>\The [src] has fabricated a new bulb from the broken bulbs it has stored. It now has [uses] uses.</span>")
|
||||
to_chat(U, span_notice("\The [src] has fabricated a new bulb from the broken bulbs it has stored. It now has [uses] uses."))
|
||||
playsound(src, 'sound/machines/ding.ogg', 50, 1)
|
||||
target.status = LIGHT_EMPTY
|
||||
target.installed_light = null //Remove the light!
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
if(istype(A,ctype))
|
||||
non_closet = 1
|
||||
if(non_closet)
|
||||
to_chat(user, "<span class='warning'>\The [src] can only be used on closets.</span>")
|
||||
to_chat(user, span_warning("\The [src] can only be used on closets."))
|
||||
return
|
||||
|
||||
var/config_error
|
||||
@@ -89,7 +89,7 @@
|
||||
if(istype(A,/obj/structure/closet/secure_closet))
|
||||
var/obj/structure/closet/secure_closet/F = A
|
||||
if(F.broken)
|
||||
to_chat(user, "<span class='warning'>\The [src] cannot paint broken closets.</span>")
|
||||
to_chat(user, span_warning("\The [src] cannot paint broken closets."))
|
||||
return
|
||||
|
||||
var/list/colour_data = colours_secure[colour_secure]
|
||||
@@ -114,7 +114,7 @@
|
||||
F.update_icon()
|
||||
|
||||
if(config_error)
|
||||
to_chat(user, "<span class='warning'>\The [src] flashes an error light. You might need to reconfigure it.</span>")
|
||||
to_chat(user, span_warning("\The [src] flashes an error light. You might need to reconfigure it."))
|
||||
return
|
||||
|
||||
/obj/item/closet_painter/attack_self(var/mob/user)
|
||||
@@ -140,7 +140,7 @@
|
||||
var/new_colour = tgui_input_list(usr, "Select a color:", "Color Selection", colours)
|
||||
if(new_colour && !isnull(colours[new_colour]))
|
||||
colour = new_colour
|
||||
to_chat(usr, "<span class='notice'>You set \the [src] regular closet colour to '[colour]'.</span>")
|
||||
to_chat(usr, span_notice("You set \the [src] regular closet colour to '[colour]'."))
|
||||
|
||||
/obj/item/closet_painter/verb/choose_colour_secure()
|
||||
set name = "Choose Secure Colour"
|
||||
@@ -154,4 +154,4 @@
|
||||
var/new_colour_secure = tgui_input_list(usr, "Select a color:", "Color Selection", colours_secure)
|
||||
if(new_colour_secure && !isnull(colours_secure[new_colour_secure]))
|
||||
colour_secure = new_colour_secure
|
||||
to_chat(usr, "<span class='notice'>You set \the [src] secure closet colour to '[colour_secure]'.</span>")
|
||||
to_chat(usr, span_notice("You set \the [src] secure closet colour to '[colour_secure]'."))
|
||||
|
||||
@@ -13,15 +13,15 @@
|
||||
/obj/item/megaphone/proc/can_broadcast(var/mob/living/user)
|
||||
if(user.client)
|
||||
if(user.client.prefs.muted & MUTE_IC)
|
||||
to_chat(user, "<span class='warning'>You cannot speak in IC (muted).</span>")
|
||||
to_chat(user, span_warning("You cannot speak in IC (muted)."))
|
||||
return FALSE
|
||||
if(!(ishuman(user) || user.isSynthetic()))
|
||||
to_chat(user, "<span class='warning'>You don't know how to use this!</span>")
|
||||
to_chat(user, span_warning("You don't know how to use this!"))
|
||||
return FALSE
|
||||
if(user.silent)
|
||||
return FALSE
|
||||
if(spamcheck > world.time)
|
||||
to_chat(user, "<span class='warning'>[src] needs to recharge!</span>")
|
||||
to_chat(user, span_warning("[src] needs to recharge!"))
|
||||
return FALSE
|
||||
if(loc != user)
|
||||
return FALSE
|
||||
@@ -36,7 +36,7 @@
|
||||
user.audible_message("<B>[user.GetVoice()]</B>[user.GetAltName()] broadcasts, <FONT size=3>\"[insult]\"</FONT>", runemessage = insult)
|
||||
insults--
|
||||
else
|
||||
to_chat(user, "<span class='warning'>*BZZZZzzzzzt*</span>")
|
||||
to_chat(user, span_warning("*BZZZZzzzzzt*"))
|
||||
else
|
||||
user.audible_message("<B>[user.GetVoice()]</B>[user.GetAltName()] broadcasts, <FONT size=3>\"[message]\"</FONT>", runemessage = message)
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
/obj/item/megaphone/emag_act(var/remaining_charges, var/mob/user)
|
||||
if(!emagged)
|
||||
to_chat(user, "<span class='warning'>You overload [src]'s voice synthesizer.</span>")
|
||||
to_chat(user, span_warning("You overload [src]'s voice synthesizer."))
|
||||
emagged = TRUE
|
||||
insults = rand(1, 3)//to prevent caps spam.
|
||||
return TRUE
|
||||
@@ -82,13 +82,13 @@
|
||||
if(!("comic sans ms" in font_options))
|
||||
font_options = list("comic sans ms")
|
||||
broadcast_font = "comic sans ms"
|
||||
to_chat(user, "<span class='notice'>\The [src] emits a <font face='comic sans ms' color='#ff69b4'>silly</font> sound.</span>")
|
||||
to_chat(user, span_notice("\The [src] emits a <font face='comic sans ms' color='#ff69b4'>silly</font> sound."))
|
||||
if(!("#ff69b4" in color_options))
|
||||
color_options = list("#ff69b4")
|
||||
broadcast_color = "#ff69b4"
|
||||
if(insults <= 0)
|
||||
insults = rand(1,3)
|
||||
to_chat(user, "<span class='warning'>You re-scramble \the [src]'s voice synthesizer.</span>")
|
||||
to_chat(user, span_warning("You re-scramble \the [src]'s voice synthesizer."))
|
||||
return 1
|
||||
|
||||
/obj/item/megaphone/super/verb/turn_volume_dial()
|
||||
@@ -153,12 +153,12 @@
|
||||
M.make_jittery(50)
|
||||
insults--
|
||||
else
|
||||
user.audible_message("<span class='critical'>*BZZZZzzzzzt*</span>")
|
||||
user.audible_message(span_critical("*BZZZZzzzzzt*"))
|
||||
if(prob(40) && insults <= 0)
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
s.set_up(2, 1, get_turf(user))
|
||||
s.start()
|
||||
user.visible_message("<span class='warning'>\The [src] sparks violently!</span>")
|
||||
user.visible_message(span_warning("\The [src] sparks violently!"))
|
||||
spawn(30)
|
||||
explosion(get_turf(src), -1, -1, 1, 3, adminlog = 1)
|
||||
qdel(src)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
return //it shouldn't be null, okay?
|
||||
|
||||
if(!parts)
|
||||
to_chat(user, "<span class='warning'>This kit has no parts for this modification left.</span>")
|
||||
to_chat(user, span_warning("This kit has no parts for this modification left."))
|
||||
user.drop_from_inventory(src)
|
||||
qdel(src)
|
||||
return
|
||||
@@ -35,22 +35,22 @@
|
||||
|
||||
var/obj/item/clothing/I = O
|
||||
if (!istype(I) || !allowed)
|
||||
to_chat(user, "<span class='notice'>[src] is unable to modify that.</span>")
|
||||
to_chat(user, span_notice("[src] is unable to modify that."))
|
||||
return
|
||||
|
||||
var/excluding = ("exclude" in I.species_restricted)
|
||||
var/in_list = (target_species in I.species_restricted)
|
||||
if (excluding ^ in_list)
|
||||
to_chat(user, "<span class='notice'>[I] is already modified.</span>")
|
||||
to_chat(user, span_notice("[I] is already modified."))
|
||||
return
|
||||
|
||||
if(!isturf(O.loc))
|
||||
to_chat(user, "<span class='warning'>[O] must be safely placed on the ground for modification.</span>")
|
||||
to_chat(user, span_warning("[O] must be safely placed on the ground for modification."))
|
||||
return
|
||||
|
||||
playsound(src, O.usesound, 100, 1)
|
||||
|
||||
user.visible_message("<b>\The [user]</b> opens \the [src] and modifies \the [O].","<span class='notice'>You open \the [src] and modify \the [O].</span>")
|
||||
user.visible_message("<b>\The [user]</b> opens \the [src] and modifies \the [O].",span_notice("You open \the [src] and modify \the [O]."))
|
||||
|
||||
I.refit_for_species(target_species)
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
var/choice = tgui_alert(usr, "What do you want to do with \the [src]?", "Multitool Menu", list("Switch Mode", "Clear Buffers", "Cancel"))
|
||||
switch(choice)
|
||||
if("Clear Buffers")
|
||||
to_chat(user,"<span class='notice'>You clear \the [src]'s memory.</span>")
|
||||
to_chat(user,span_notice("You clear \the [src]'s memory."))
|
||||
buffer = null
|
||||
connecting = null
|
||||
connectable = null
|
||||
@@ -47,7 +47,7 @@
|
||||
if("Switch Mode")
|
||||
mode_switch(user)
|
||||
else
|
||||
to_chat(user,"<span class='notice'>You lower \the [src].</span>")
|
||||
to_chat(user,span_notice("You lower \the [src]."))
|
||||
return
|
||||
|
||||
update_icon()
|
||||
@@ -61,7 +61,7 @@
|
||||
mode_index += 1
|
||||
|
||||
toolmode = modes[mode_index]
|
||||
to_chat(user,"<span class='notice'>\The [src] is now set to [toolmode].</span>")
|
||||
to_chat(user,span_notice("\The [src] is now set to [toolmode]."))
|
||||
|
||||
accepting_refs = (toolmode == MULTITOOL_MODE_INTCIRCUITS)
|
||||
|
||||
|
||||
@@ -60,21 +60,21 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
|
||||
if(pai != null) //Have a person in them already?
|
||||
return ..()
|
||||
if(is_damage_critical())
|
||||
to_chat(usr, "<span class='warning'>That card is too damaged to activate!</span>")
|
||||
to_chat(usr, span_warning("That card is too damaged to activate!"))
|
||||
return
|
||||
var/time_till_respawn = user.time_till_respawn()
|
||||
if(time_till_respawn == -1) // Special case, never allowed to respawn
|
||||
to_chat(usr, "<span class='warning'>Respawning is not allowed!</span>")
|
||||
to_chat(usr, span_warning("Respawning is not allowed!"))
|
||||
else if(time_till_respawn) // Nonzero time to respawn
|
||||
to_chat(usr, "<span class='warning'>You can't do that yet! You died too recently. You need to wait another [round(time_till_respawn/10/60, 0.1)] minutes.</span>")
|
||||
to_chat(usr, span_warning("You can't do that yet! You died too recently. You need to wait another [round(time_till_respawn/10/60, 0.1)] minutes."))
|
||||
return
|
||||
if(jobban_isbanned(usr, JOB_PAI))
|
||||
to_chat(usr,"<span class='warning'>You cannot join a pAI card when you are banned from playing as a pAI.</span>")
|
||||
to_chat(usr,span_warning("You cannot join a pAI card when you are banned from playing as a pAI."))
|
||||
return
|
||||
|
||||
for(var/ourkey in paikeys)
|
||||
if(ourkey == user.ckey)
|
||||
to_chat(usr, "<span class='warning'>You can't just rejoin any old pAI card!!! Your card still exists.</span>")
|
||||
to_chat(usr, span_warning("You can't just rejoin any old pAI card!!! Your card still exists."))
|
||||
return
|
||||
|
||||
var/choice = tgui_alert(user, "You sure you want to inhabit this PAI, or submit yourself to being recruited?", "Confirmation", list("Inhabit", "Recruit", "Cancel"))
|
||||
@@ -139,7 +139,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
|
||||
|
||||
/obj/item/paicard/proc/access_screen(mob/user)
|
||||
if(is_damage_critical())
|
||||
to_chat(user, "<span class='warning'>WARNING: CRITICAL HARDWARE FAILURE, SERVICE DEVICE IMMEDIATELY</span>")
|
||||
to_chat(user, span_warning("WARNING: CRITICAL HARDWARE FAILURE, SERVICE DEVICE IMMEDIATELY"))
|
||||
return
|
||||
if (!in_range(src, user))
|
||||
return
|
||||
@@ -433,7 +433,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
|
||||
if(pai)
|
||||
return
|
||||
if(last_notify == 0 || (5 MINUTES <= world.time - last_notify))
|
||||
audible_message("<span class='notice'>\The [src] flashes a message across its screen, \"Additional personalities available for download.\"</span>", hearing_distance = world.view, runemessage = "bleeps!")
|
||||
audible_message(span_notice("\The [src] flashes a message across its screen, \"Additional personalities available for download.\""), hearing_distance = world.view, runemessage = "bleeps!")
|
||||
last_notify = world.time
|
||||
|
||||
/obj/item/paicard/emp_act(severity)
|
||||
@@ -448,13 +448,13 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
|
||||
|
||||
/obj/item/paicard/see_emote(mob/living/M, text)
|
||||
if(pai && pai.client && !pai.canmove)
|
||||
var/rendered = "<span class='message'>[text]</span>"
|
||||
var/rendered = span_message("[text]")
|
||||
pai.show_message(rendered, 2)
|
||||
..()
|
||||
|
||||
/obj/item/paicard/show_message(msg, type, alt, alt_type)
|
||||
if(pai && pai.client)
|
||||
var/rendered = "<span class='message'>[msg]</span>"
|
||||
var/rendered = span_message("[msg]")
|
||||
pai.show_message(rendered, type)
|
||||
..()
|
||||
|
||||
|
||||
@@ -166,9 +166,9 @@
|
||||
reattach_gun(user)
|
||||
else if(istype(W, /obj/item/cell))
|
||||
if(bcell)
|
||||
to_chat(user, "<span class='notice'>\The [src] already has a cell.</span>")
|
||||
to_chat(user, span_notice("\The [src] already has a cell."))
|
||||
else if(!istype(W, /obj/item/cell/device/weapon)) //Weapon cells only!
|
||||
to_chat(user, "<span class='notice'>This cell will not fit in the device.</span>")
|
||||
to_chat(user, span_notice("This cell will not fit in the device."))
|
||||
else
|
||||
if(!user.unEquip(W))
|
||||
return
|
||||
@@ -176,7 +176,7 @@
|
||||
bcell = W
|
||||
if(active_weapon)
|
||||
active_weapon.power_supply = bcell
|
||||
to_chat(user, "<span class='notice'>You install a cell in \the [src].</span>")
|
||||
to_chat(user, span_notice("You install a cell in \the [src]."))
|
||||
update_icon()
|
||||
|
||||
else if(W.has_tool_quality(TOOL_SCREWDRIVER))
|
||||
@@ -196,7 +196,7 @@
|
||||
if(active_weapon)
|
||||
reattach_gun() //Put the gun back if it's out. No shooting if we don't have a cell!
|
||||
active_weapon.power_supply = null //No power cell anymore!
|
||||
to_chat(user, "<span class='notice'>You remove the cell from \the [src], destroying the battery.</span>")
|
||||
to_chat(user, span_notice("You remove the cell from \the [src], destroying the battery."))
|
||||
update_icon()
|
||||
return
|
||||
else
|
||||
@@ -208,7 +208,7 @@
|
||||
if(active_weapon)
|
||||
reattach_gun() //Put the gun back if it's out. No shooting if we don't have a cell!
|
||||
active_weapon.power_supply = null //No power cell anymore!
|
||||
to_chat(user, "<span class='notice'>You remove the cell from \the [src].</span>")
|
||||
to_chat(user, span_notice("You remove the cell from \the [src]."))
|
||||
update_icon()
|
||||
else if(istype(W,/obj/item/multitool))
|
||||
var/new_color = input(usr, "Choose a color to set the shield to!", "", effect_color) as color|null
|
||||
@@ -246,22 +246,22 @@
|
||||
user.last_special = world.time + 10 //No spamming!
|
||||
|
||||
if(!bcell || !bcell.check_charge(generator_hit_cost) || !bcell.check_charge(generator_active_cost))
|
||||
to_chat(user, "<span class='warning'>You require a charged cell to do this!</span>")
|
||||
to_chat(user, span_warning("You require a charged cell to do this!"))
|
||||
return
|
||||
|
||||
if(!slot_check())
|
||||
to_chat(user, "<span class='warning'>You need to equip [src] before starting the shield up!</span>")
|
||||
to_chat(user, span_warning("You need to equip [src] before starting the shield up!"))
|
||||
return
|
||||
else
|
||||
if(shield_active)
|
||||
shield_active = !shield_active //Deactivate the shield!
|
||||
to_chat(user, "<span class='warning'>You deactive the shield!</span>")
|
||||
to_chat(user, span_warning("You deactive the shield!"))
|
||||
user.remove_modifiers_of_type(/datum/modifier/shield_projection)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
playsound(src, 'sound/weapons/saberoff.ogg', 50, 1) //Shield turning off! PLACEHOLDER
|
||||
else
|
||||
shield_active = !shield_active
|
||||
to_chat(user, "<span class='warning'>You activate the shield!</span>")
|
||||
to_chat(user, span_warning("You activate the shield!"))
|
||||
user.remove_modifiers_of_type(/datum/modifier/shield_projection) //Just to make sure they aren't using two at once!
|
||||
user.add_modifier(modifier_type)
|
||||
user.update_modifier_visuals() //Forces coloration to WORK.
|
||||
@@ -280,11 +280,11 @@
|
||||
user.last_special = world.time + 10 //No spamming!
|
||||
|
||||
if(!active_weapon)
|
||||
to_chat(user, "<span class='warning'>The gun is missing!</span>")
|
||||
to_chat(user, span_warning("The gun is missing!"))
|
||||
return
|
||||
|
||||
if(!bcell)
|
||||
to_chat(user, "<span class='warning'>The gun requires a power supply!</span>")
|
||||
to_chat(user, span_warning("The gun requires a power supply!"))
|
||||
return
|
||||
|
||||
if(active_weapon.loc != src)
|
||||
@@ -292,17 +292,17 @@
|
||||
return
|
||||
|
||||
if(!slot_check())
|
||||
to_chat(user, "<span class='warning'>You need to equip [src] before taking out [active_weapon].</span>")
|
||||
to_chat(user, span_warning("You need to equip [src] before taking out [active_weapon]."))
|
||||
else
|
||||
if(!usr.put_in_hands(active_weapon)) //Detach the gun into the user's hands
|
||||
to_chat(user, "<span class='warning'>You need a free hand to hold the gun!</span>")
|
||||
to_chat(user, span_warning("You need a free hand to hold the gun!"))
|
||||
update_icon() //success
|
||||
|
||||
/obj/item/personal_shield_generator/process()
|
||||
if(!bcell) //They removed the battery midway.
|
||||
if(istype(loc, /mob/living/carbon/human)) //We on someone? Tell them it turned off.
|
||||
var/mob/living/carbon/human/user = loc
|
||||
to_chat(user, "<span class='warning'>The shield deactivates! An error message pops up on screen: 'Cell missing. Cell replacement required.'</span>")
|
||||
to_chat(user, span_warning("The shield deactivates! An error message pops up on screen: 'Cell missing. Cell replacement required.'"))
|
||||
user.remove_modifiers_of_type(/datum/modifier/shield_projection)
|
||||
shield_active = 0
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
@@ -314,7 +314,7 @@
|
||||
if(bcell.rigged) //They turned it back on after it was rigged to go boom.
|
||||
if(istype(loc, /mob/living/carbon/human)) //Deactivate the shield, first. You're not getting reduced damage...
|
||||
var/mob/living/carbon/human/user = loc
|
||||
to_chat(user, "<span class='warning'>The shield deactivates, an error message popping up on screen: 'Cell Reactor Critically damaged. Cell replacement required.'</span>")
|
||||
to_chat(user, span_warning("The shield deactivates, an error message popping up on screen: 'Cell Reactor Critically damaged. Cell replacement required.'"))
|
||||
user.remove_modifiers_of_type(/datum/modifier/shield_projection)
|
||||
|
||||
if(active_weapon) //Retract the gun. There's about to be no cell anymore.
|
||||
@@ -335,7 +335,7 @@
|
||||
shield_active = 0
|
||||
if(istype(loc, /mob/living/carbon/human)) //We on someone? Tell them it turned off.
|
||||
var/mob/living/carbon/human/user = loc
|
||||
to_chat(user, "<span class='warning'>The shield deactivates, an error message popping up on screen: 'Cell out of charge.'</span>")
|
||||
to_chat(user, span_warning("The shield deactivates, an error message popping up on screen: 'Cell out of charge.'"))
|
||||
user.remove_modifiers_of_type(/datum/modifier/shield_projection)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
update_icon()
|
||||
@@ -372,7 +372,7 @@
|
||||
if(ismob(active_weapon.loc))
|
||||
var/mob/M = active_weapon.loc
|
||||
if(M.drop_from_inventory(active_weapon, src))
|
||||
to_chat(user, "<span class='notice'>\The [active_weapon] snaps back into the main unit.</span>")
|
||||
to_chat(user, span_notice("\The [active_weapon] snaps back into the main unit."))
|
||||
else
|
||||
active_weapon.forceMove(src)
|
||||
|
||||
@@ -424,13 +424,13 @@
|
||||
if(busy)
|
||||
return 0
|
||||
if(!check_charge(charge_cost))
|
||||
to_chat(user, "<span class='warning'>\The [src] doesn't have enough charge left to do that.</span>")
|
||||
to_chat(user, span_warning("\The [src] doesn't have enough charge left to do that."))
|
||||
return 0
|
||||
if(!wielded && !isrobot(user))
|
||||
to_chat(user, "<span class='warning'>You need to wield the gun with both hands before you can use it on someone!</span>")
|
||||
to_chat(user, span_warning("You need to wield the gun with both hands before you can use it on someone!"))
|
||||
return 0
|
||||
if(cooldown)
|
||||
to_chat(user, "<span class='warning'>\The [src] are re-energizing!</span>")
|
||||
to_chat(user, span_warning("\The [src] are re-energizing!"))
|
||||
return 0
|
||||
return 1
|
||||
|
||||
@@ -512,11 +512,11 @@
|
||||
/obj/item/personal_shield_generator/belt/mining/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/borg/upgrade/shield_upgrade))
|
||||
if(modifier_type == /datum/modifier/shield_projection/mining/strong)
|
||||
to_chat(user, "<span class='warning'>This shield generator is already upgraded!</span>")
|
||||
to_chat(user, span_warning("This shield generator is already upgraded!"))
|
||||
return
|
||||
modifier_type = /datum/modifier/shield_projection/mining/strong
|
||||
upgraded = 1
|
||||
to_chat(user, "<span class='notice'>You upgrade the [src] with the [W]!</span>")
|
||||
to_chat(user, span_notice("You upgrade the [src] with the [W]!"))
|
||||
user.drop_from_inventory(W)
|
||||
qdel(W)
|
||||
else
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
else
|
||||
anchored = TRUE
|
||||
mode = 1
|
||||
src.visible_message("<span class='notice'>[user] attaches [src] to the cable!</span>")
|
||||
src.visible_message(span_notice("[user] attaches [src] to the cable!"))
|
||||
playsound(src, I.usesound, 50, 1)
|
||||
return
|
||||
else
|
||||
@@ -53,7 +53,7 @@
|
||||
STOP_PROCESSING_POWER_OBJECT(src)
|
||||
anchored = FALSE
|
||||
mode = 0
|
||||
src.visible_message("<span class='notice'>[user] detaches [src] from the cable!</span>")
|
||||
src.visible_message(span_notice("[user] detaches [src] from the cable!"))
|
||||
set_light(0)
|
||||
playsound(src, I.usesound, 50, 1)
|
||||
icon_state = "powersink0"
|
||||
@@ -70,14 +70,14 @@
|
||||
if(0)
|
||||
..()
|
||||
if(1)
|
||||
src.visible_message("<span class='notice'>[user] activates [src]!</span>")
|
||||
src.visible_message(span_notice("[user] activates [src]!"))
|
||||
mode = 2
|
||||
icon_state = "powersink1"
|
||||
START_PROCESSING(SSobj, src)
|
||||
datum_flags &= ~DF_ISPROCESSING // Have to reset this flag so that PROCESSING_POWER_OBJECT can re-add it. It fails if the flag is already present. - Ater
|
||||
START_PROCESSING_POWER_OBJECT(src)
|
||||
if(2) //This switch option wasn't originally included. It exists now. --NeoFite
|
||||
src.visible_message("<span class='notice'>[user] deactivates [src]!</span>")
|
||||
src.visible_message(span_notice("[user] deactivates [src]!"))
|
||||
mode = 1
|
||||
set_light(0)
|
||||
icon_state = "powersink0"
|
||||
|
||||
@@ -37,7 +37,7 @@ GLOBAL_LIST_BOILERPLATE(all_beacons, /obj/item/radio/beacon)
|
||||
|
||||
/obj/item/radio/beacon/syndicate/attack_self(mob/user as mob)
|
||||
if(user)
|
||||
to_chat(user, "<span class='notice'>Locked In</span>")
|
||||
to_chat(user, span_notice("Locked In"))
|
||||
new /obj/machinery/power/singularity_beacon/syndicate( user.loc )
|
||||
playsound(src, 'sound/effects/pop.ogg', 100, 1, 1)
|
||||
qdel(src)
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
/obj/item/radio/electropack/attack_hand(mob/living/user as mob)
|
||||
if(src == user.back)
|
||||
to_chat(user, "<span class='notice'>You need help taking this off!</span>")
|
||||
to_chat(user, span_notice("You need help taking this off!"))
|
||||
return
|
||||
..()
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
..()
|
||||
if(istype(W, /obj/item/clothing/head/helmet))
|
||||
if(!b_stat)
|
||||
to_chat(user, "<span class='notice'>[src] is not ready to be attached!</span>")
|
||||
to_chat(user, span_notice("[src] is not ready to be attached!"))
|
||||
return
|
||||
var/obj/item/assembly/shock_kit/A = new /obj/item/assembly/shock_kit( user )
|
||||
A.icon = 'icons/obj/assemblies.dmi'
|
||||
@@ -95,7 +95,7 @@
|
||||
sleep(50)
|
||||
if(M)
|
||||
M.moved_recently = 0
|
||||
to_chat(M, "<span class='danger'>You feel a sharp shock!</span>")
|
||||
to_chat(M, span_danger("You feel a sharp shock!"))
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
s.set_up(3, 1, M)
|
||||
s.start()
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
update_icon()
|
||||
else if(wiresexposed && W.has_tool_quality(TOOL_WIRECUTTER))
|
||||
user.visible_message("<span class='warning'>[user] has cut the wires inside \the [src]!</span>", "You have cut the wires inside \the [src].")
|
||||
user.visible_message(span_warning("[user] has cut the wires inside \the [src]!"), "You have cut the wires inside \the [src].")
|
||||
playsound(src, W.usesound, 50, 1)
|
||||
new/obj/item/stack/cable_coil(get_turf(src), 5)
|
||||
var/obj/structure/frame/A = new /obj/structure/frame(src.loc)
|
||||
@@ -207,15 +207,15 @@
|
||||
//VOREStation Add Start
|
||||
/obj/item/radio/intercom/AICtrlClick(var/mob/user)
|
||||
ToggleBroadcast()
|
||||
to_chat(user, "<span class='notice'>\The [src]'s microphone is now <b>[broadcasting ? "enabled" : "disabled"]</b>.</span>")
|
||||
to_chat(user, span_notice("\The [src]'s microphone is now <b>[broadcasting ? "enabled" : "disabled"]</b>."))
|
||||
|
||||
/obj/item/radio/intercom/AIAltClick(var/mob/user)
|
||||
if(frequency == AI_FREQ)
|
||||
set_frequency(initial(frequency))
|
||||
to_chat(user, "<span class='notice'>\The [src]'s frequency is now set to [span_green("<b>Default</b>")].</span>")
|
||||
to_chat(user, span_notice("\The [src]'s frequency is now set to [span_green("<b>Default</b>")]."))
|
||||
else
|
||||
set_frequency(AI_FREQ)
|
||||
to_chat(user, "<span class='notice'>\The [src]'s frequency is now set to [span_pink("<b>AI Private</b>")].</span>")
|
||||
to_chat(user, span_notice("\The [src]'s frequency is now set to [span_pink("<b>AI Private</b>")]."))
|
||||
//VOREStation Add End
|
||||
/obj/item/radio/intercom/locked
|
||||
var/locked_frequency
|
||||
|
||||
@@ -47,7 +47,7 @@ var/global/list/active_radio_jammers = list()
|
||||
|
||||
/obj/item/radio_jammer/proc/turn_off(mob/user)
|
||||
if(user)
|
||||
to_chat(user,"<span class='warning'>\The [src] deactivates.</span>")
|
||||
to_chat(user,span_warning("\The [src] deactivates."))
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
active_radio_jammers -= src
|
||||
on = FALSE
|
||||
@@ -55,7 +55,7 @@ var/global/list/active_radio_jammers = list()
|
||||
|
||||
/obj/item/radio_jammer/proc/turn_on(mob/user)
|
||||
if(user)
|
||||
to_chat(user,"<span class='notice'>\The [src] is now active.</span>")
|
||||
to_chat(user,span_notice("\The [src] is now active."))
|
||||
START_PROCESSING(SSobj, src)
|
||||
active_radio_jammers += src
|
||||
on = TRUE
|
||||
@@ -74,7 +74,7 @@ var/global/list/active_radio_jammers = list()
|
||||
|
||||
/obj/item/radio_jammer/attack_hand(mob/user)
|
||||
if(user.get_inactive_hand() == src && power_source)
|
||||
to_chat(user,"<span class='notice'>You eject \the [power_source] from \the [src].</span>")
|
||||
to_chat(user,span_notice("You eject \the [power_source] from \the [src]."))
|
||||
user.put_in_hands(power_source)
|
||||
power_source = null
|
||||
turn_off()
|
||||
@@ -88,7 +88,7 @@ var/global/list/active_radio_jammers = list()
|
||||
if(power_source)
|
||||
turn_on(user)
|
||||
else
|
||||
to_chat(user,"<span class='warning'>\The [src] has no power source!</span>")
|
||||
to_chat(user,span_warning("\The [src] has no power source!"))
|
||||
|
||||
/obj/item/radio_jammer/attackby(obj/W, mob/user)
|
||||
if(istype(W,/obj/item/cell/device/weapon) && !power_source)
|
||||
@@ -97,7 +97,7 @@ var/global/list/active_radio_jammers = list()
|
||||
user.unEquip(power_source)
|
||||
power_source.forceMove(src)
|
||||
update_icon()
|
||||
to_chat(user,"<span class='notice'>You insert \the [power_source] into \the [src].</span>")
|
||||
to_chat(user,span_notice("You insert \the [power_source] into \the [src]."))
|
||||
|
||||
/obj/item/radio_jammer/update_icon()
|
||||
if(on)
|
||||
|
||||
@@ -279,10 +279,10 @@ var/global/list/default_medbay_channels = list(
|
||||
subspace_transmission = !subspace_transmission
|
||||
if(!subspace_transmission)
|
||||
channels = list()
|
||||
to_chat(usr, "<span class='notice'>Subspace Transmission is disabled</span>")
|
||||
to_chat(usr, span_notice("Subspace Transmission is disabled"))
|
||||
else
|
||||
recalculateChannels()
|
||||
to_chat(usr, "<span class='notice'>Subspace Transmission is enabled</span>")
|
||||
to_chat(usr, span_notice("Subspace Transmission is enabled"))
|
||||
. = TRUE
|
||||
if("toggleLoudspeaker")
|
||||
if(!subspace_switchable)
|
||||
@@ -290,9 +290,9 @@ var/global/list/default_medbay_channels = list(
|
||||
loudspeaker = !loudspeaker
|
||||
|
||||
if(loudspeaker)
|
||||
to_chat(usr, "<span class='notice'>Loadspeaker enabled.</span>")
|
||||
to_chat(usr, span_notice("Loadspeaker enabled."))
|
||||
else
|
||||
to_chat(usr, "<span class='notice'>Loadspeaker disabled.</span>")
|
||||
to_chat(usr, span_notice("Loadspeaker disabled."))
|
||||
. = TRUE
|
||||
|
||||
if(. && iscarbon(usr))
|
||||
@@ -474,14 +474,14 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
|
||||
if(bluespace_radio)
|
||||
//Nothing to transmit to
|
||||
if(!bs_tx_weakref)
|
||||
to_chat(loc, "<span class='warning'>\The [src] buzzes to inform you of the lack of a functioning connection.</span>")
|
||||
to_chat(loc, span_warning("\The [src] buzzes to inform you of the lack of a functioning connection."))
|
||||
return FALSE
|
||||
|
||||
var/obj/machinery/telecomms/tx_to = bs_tx_weakref.resolve()
|
||||
//Was linked, now destroyed or something
|
||||
if(!tx_to)
|
||||
bs_tx_weakref = null
|
||||
to_chat(loc, "<span class='warning'>\The [src] buzzes to inform you of the lack of a functioning connection.</span>")
|
||||
to_chat(loc, span_warning("\The [src] buzzes to inform you of the lack of a functioning connection."))
|
||||
return FALSE
|
||||
|
||||
//Transmitted in the blind. If we get a message back, cool. If not, oh well.
|
||||
@@ -498,7 +498,7 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
|
||||
distance = 99
|
||||
else
|
||||
distance = jamming["distance"]
|
||||
to_chat(M, "<span class='danger'>[icon2html(src, M.client)] You hear the [distance <= 2 ? "loud hiss" : "soft hiss"] of static.</span>")
|
||||
to_chat(M, span_danger("[icon2html(src, M.client)] You hear the [distance <= 2 ? "loud hiss" : "soft hiss"] of static."))
|
||||
return FALSE
|
||||
|
||||
// First, we want to generate a new radio signal
|
||||
@@ -517,7 +517,7 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
|
||||
return TRUE //Huzzah, sent via subspace
|
||||
|
||||
else if(adhoc_fallback) //Less huzzah, we have to fallback
|
||||
to_chat(loc, "<span class='warning'>\The [src] pings as it falls back to local radio transmission.</span>")
|
||||
to_chat(loc, span_warning("\The [src] pings as it falls back to local radio transmission."))
|
||||
subspace_transmission = FALSE
|
||||
|
||||
else //Oh well
|
||||
@@ -545,7 +545,7 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
|
||||
|
||||
if(signal.data["done"] && (pos_z in signal.data["level"]))
|
||||
if(adhoc_fallback)
|
||||
to_chat(loc, "<span class='notice'>\The [src] pings as it reestablishes subspace communications.</span>")
|
||||
to_chat(loc, span_notice("\The [src] pings as it reestablishes subspace communications."))
|
||||
subspace_transmission = TRUE
|
||||
// we're done here.
|
||||
return TRUE
|
||||
@@ -609,9 +609,9 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
|
||||
|
||||
if((in_range(src, user) || loc == user))
|
||||
if(b_stat)
|
||||
. += "<span class='notice'>\The [src] can be attached and modified!</span>"
|
||||
. += span_notice("\The [src] can be attached and modified!")
|
||||
else
|
||||
. += "<span class='notice'>\The [src] can not be modified or attached!</span>"
|
||||
. += span_notice("\The [src] can not be modified or attached!")
|
||||
|
||||
/obj/item/radio/attackby(obj/item/W as obj, mob/user as mob)
|
||||
..()
|
||||
@@ -621,9 +621,9 @@ GLOBAL_DATUM(autospeaker, /mob/living/silicon/ai/announcer)
|
||||
b_stat = !( b_stat )
|
||||
if(!istype(src, /obj/item/radio/beacon))
|
||||
if (b_stat)
|
||||
user.show_message("<span class='notice'>\The [src] can now be attached and modified!</span>")
|
||||
user.show_message(span_notice("\The [src] can now be attached and modified!"))
|
||||
else
|
||||
user.show_message("<span class='notice'>\The [src] can no longer be modified or attached!</span>")
|
||||
user.show_message(span_notice("\The [src] can no longer be modified or attached!"))
|
||||
updateDialog()
|
||||
//Foreach goto(83)
|
||||
add_fingerprint(user)
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
|
||||
var/mob/living/carbon/human/user = usr
|
||||
if(!handset)
|
||||
to_chat(user, "<span class='warning'>The handset is missing!</span>")
|
||||
to_chat(user, span_warning("The handset is missing!"))
|
||||
return
|
||||
|
||||
if(handset.loc != src)
|
||||
@@ -62,10 +62,10 @@
|
||||
return
|
||||
|
||||
if(!slot_check())
|
||||
to_chat(user, "<span class='warning'>You need to equip [src] before taking out [handset].</span>")
|
||||
to_chat(user, span_warning("You need to equip [src] before taking out [handset]."))
|
||||
else
|
||||
if(!usr.put_in_hands(handset)) //Detach the handset into the user's hands
|
||||
to_chat(user, "<span class='warning'>You need a free hand to hold the handset!</span>")
|
||||
to_chat(user, span_warning("You need a free hand to hold the handset!"))
|
||||
update_icon() //success
|
||||
|
||||
//checks that the base unit is in the correct slot to be used
|
||||
@@ -91,7 +91,7 @@
|
||||
if(ismob(handset.loc))
|
||||
var/mob/M = handset.loc
|
||||
if(M.drop_from_inventory(handset, src))
|
||||
to_chat(user, "<span class='notice'>\The [handset] snaps back into the main unit.</span>")
|
||||
to_chat(user, span_notice("\The [handset] snaps back into the main unit."))
|
||||
else
|
||||
handset.forceMove(src)
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
return -1
|
||||
if(!freq)
|
||||
return -1
|
||||
|
||||
|
||||
//Only listen on main freq
|
||||
if(freq == frequency)
|
||||
return canhear_range
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
if (user.stat)
|
||||
return
|
||||
if (!user.IsAdvancedToolUser())
|
||||
to_chat(usr, "<span class='warning'>You don't have the dexterity to do this!</span>")
|
||||
to_chat(usr, span_warning("You don't have the dexterity to do this!"))
|
||||
return
|
||||
|
||||
analyze_gases(src, user)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
set desc = "Toggles whether or not \the [src] will provide guidance and instruction in addition to scanning."
|
||||
set category = "Object"
|
||||
guide = !guide
|
||||
to_chat(usr, "<span class='notice'>You toggle \the [src]'s guidance system [guide ? "on" : "off"].</span>")
|
||||
to_chat(usr, span_notice("You toggle \the [src]'s guidance system [guide ? "on" : "off"]."))
|
||||
|
||||
|
||||
/obj/item/healthanalyzer/guide
|
||||
@@ -109,9 +109,10 @@
|
||||
|
||||
var/peeb
|
||||
if(dat)
|
||||
peeb +="<span class='notice'><b>GUIDANCE SYSTEM BEGIN</b></span><br>"
|
||||
peeb += span_notice("<b>GUIDANCE SYSTEM BEGIN</b>")
|
||||
peeb += "<br>"
|
||||
peeb += dat
|
||||
peeb += "<span class='notice'>For more detailed information on the patient's condition, utilize a body scanner at the closest medical bay.</span>"
|
||||
peeb += span_notice("For more detailed information on the patient's condition, utilize a body scanner at the closest medical bay.")
|
||||
|
||||
user.show_message(peeb, 1)
|
||||
//CHOMPedit end.
|
||||
|
||||
@@ -11,11 +11,11 @@
|
||||
|
||||
/obj/item/halogen_counter/attack(mob/living/M as mob, mob/living/user as mob)
|
||||
if(!iscarbon(M))
|
||||
to_chat(user, "<span class='warning'>This device can only scan organic beings!</span>")
|
||||
to_chat(user, span_warning("This device can only scan organic beings!"))
|
||||
return
|
||||
user.visible_message("<span class='warning'>\The [user] has analyzed [M]'s radiation levels!</span>", "<span class='notice'>Analyzing Results for [M]:</span>")
|
||||
user.visible_message(span_warning("\The [user] has analyzed [M]'s radiation levels!"), span_notice("Analyzing Results for [M]:"))
|
||||
if(M.radiation)
|
||||
to_chat(user, "<span class='notice'>Radiation Level: [M.radiation]</span>")
|
||||
to_chat(user, span_notice("Radiation Level: [M.radiation]"))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>No radiation detected.</span>")
|
||||
to_chat(user, span_notice("No radiation detected."))
|
||||
return
|
||||
|
||||
@@ -26,9 +26,9 @@
|
||||
/obj/item/healthanalyzer/examine(mob/user)
|
||||
. = ..()
|
||||
if(guide)
|
||||
. += "<span class='notice'>Guidance is currently enabled.</span>"
|
||||
. += span_notice("Guidance is currently enabled.")
|
||||
else
|
||||
. += "<span class='notice'>Guidance is currently disabled.</span>"
|
||||
. += span_notice("Guidance is currently disabled.")
|
||||
|
||||
/obj/item/healthanalyzer/do_surgery(mob/living/M, mob/living/user)
|
||||
if(user.a_intent != I_HELP) //in case it is ever used as a surgery tool
|
||||
@@ -42,20 +42,20 @@
|
||||
/obj/item/healthanalyzer/proc/scan_mob(mob/living/M, mob/living/user)
|
||||
var/dat = ""
|
||||
if ((CLUMSY in user.mutations) && prob(50))
|
||||
user.visible_message("<span class='warning'>\The [user] has analyzed the floor's vitals!</span>", "<span class='warning'>You try to analyze the floor's vitals!</span>")
|
||||
user.visible_message(span_warning("\The [user] has analyzed the floor's vitals!"), span_warning("You try to analyze the floor's vitals!"))
|
||||
dat += "Analyzing Results for the floor:<br>"
|
||||
dat += "Overall Status: Healthy<br>"
|
||||
dat += "\tDamage Specifics: 0-0-0-0<br>"
|
||||
dat += "Key: Suffocation/Toxin/Burns/Brute<br>"
|
||||
dat += "Body Temperature: ???"
|
||||
user.show_message("<span class='notice'>[dat]</span>", 1)
|
||||
user.show_message(span_notice("[dat]"), 1)
|
||||
return
|
||||
if (!user.IsAdvancedToolUser())
|
||||
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
|
||||
to_chat(user, span_warning("You don't have the dexterity to do this!"))
|
||||
return
|
||||
|
||||
flick("[icon_state]-scan", src) //makes it so that it plays the scan animation on a succesful scan
|
||||
user.visible_message("<span class='notice'>[user] has analyzed [M]'s vitals.</span>","<span class='notice'>You have analyzed [M]'s vitals.</span>")
|
||||
user.visible_message(span_notice("[user] has analyzed [M]'s vitals."),span_notice("You have analyzed [M]'s vitals."))
|
||||
|
||||
if (!ishuman(M) || M.isSynthetic())
|
||||
//these sensors are designed for organic life
|
||||
@@ -63,8 +63,8 @@
|
||||
dat += "\tKey: [span_cyan("Suffocation")]/[span_green("Toxin")]/[span_orange("Burns")]/[span_red("Brute")]<br>"
|
||||
dat += "\tDamage Specifics: [span_cyan("?")] - [span_green("?")] - [span_orange("?")] - [span_red("?")]<br>"
|
||||
dat += "Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)</span><br>"
|
||||
dat += "<span class='warning'>Warning: Blood Level ERROR: --% --cl.</span> <span class='notice'>Type: ERROR</span><br>"
|
||||
dat += "<span class='notice'>Subject's pulse: [span_red("-- bpm.")]</span>"
|
||||
dat += "[span_warning("Warning: Blood Level ERROR: --% --cl.")] [span_notice("Type: ERROR")]<br>"
|
||||
dat += span_notice("Subject's pulse: [span_red("-- bpm.")]")
|
||||
user.show_message(dat, 1)
|
||||
return
|
||||
|
||||
@@ -75,8 +75,10 @@
|
||||
var/BR = M.getBruteLoss() > 50 ? "<b>[M.getBruteLoss()]</b>" : M.getBruteLoss()
|
||||
if(M.status_flags & FAKEDEATH)
|
||||
OX = fake_oxy > 50 ? "<b>[fake_oxy]</b>" : fake_oxy
|
||||
dat += "<span class='notice'>Analyzing Results for [M]:</span><br>"
|
||||
dat += "<span class='notice'>Overall Status: dead</span><br>"
|
||||
dat += span_notice("Analyzing Results for [M]:")
|
||||
dat += "<br>"
|
||||
dat += span_notice("Overall Status: dead")
|
||||
dat += "<br>"
|
||||
else
|
||||
dat += "<span class='notice'>Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "dead" : "[round((M.health/M.getMaxHealth())*100) ]% healthy"]<br>"
|
||||
dat += "\tKey: [span_cyan("Suffocation")]/[span_green("Toxin")]/[span_orange("Burns")]/[span_red("Brute")]<br>"
|
||||
@@ -84,32 +86,36 @@
|
||||
dat += "Body Temperature: [M.bodytemperature-T0C]°C ([M.bodytemperature*1.8-459.67]°F)</span><br>"
|
||||
//VOREStation edit/addition starts
|
||||
if(M.timeofdeath && (M.stat == DEAD || (M.status_flags & FAKEDEATH)))
|
||||
dat += "<span class='notice'>Time of Death: [worldtime2stationtime(M.timeofdeath)]</span><br>"
|
||||
dat += span_notice("Time of Death: [worldtime2stationtime(M.timeofdeath)]")
|
||||
dat += "<br>"
|
||||
var/tdelta = round(world.time - M.timeofdeath)
|
||||
if(tdelta < (DEFIB_TIME_LIMIT * 10))
|
||||
dat += "<span class='notice'><b>Subject died [DisplayTimeText(tdelta)] ago - resuscitation may be possible!</b></span><br>"
|
||||
dat += span_notice("<b>Subject died [DisplayTimeText(tdelta)] ago - resuscitation may be possible!</b>")
|
||||
dat += "<br>"
|
||||
//VOREStation edit/addition ends
|
||||
if(istype(M, /mob/living/carbon/human) && mode == 1)
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/list/damaged = H.get_damaged_organs(1,1)
|
||||
dat += "<span class='notice'>Localized Damage, Brute/Burn:</span><br>"
|
||||
dat += span_notice("Localized Damage, Brute/Burn:")
|
||||
dat += "<br>"
|
||||
if(length(damaged)>0)
|
||||
for(var/obj/item/organ/external/org in damaged)
|
||||
if(org.robotic >= ORGAN_ROBOT)
|
||||
continue
|
||||
else
|
||||
dat += "<span class='notice'> [capitalize(org.name)]: [(org.brute_dam > 0) ? "<span class='warning'>[org.brute_dam]</span>" : 0]"
|
||||
dat += "[(org.status & ORGAN_BLEEDING)?"<span class='danger'>\[Bleeding\]</span>":""] - "
|
||||
dat += "<span class='notice'> [capitalize(org.name)]: [(org.brute_dam > 0) ? span_warning("[org.brute_dam]") : 0]"
|
||||
dat += "[(org.status & ORGAN_BLEEDING)?span_danger("\[Bleeding\]"):""] - "
|
||||
dat += "[(org.burn_dam > 0) ? "[span_orange("[org.burn_dam]")]" : 0]</span><br>"
|
||||
else
|
||||
dat += "<span class='notice'> Limbs are OK.</span><br>"
|
||||
dat += span_notice(" Limbs are OK.")
|
||||
dat += "<br>"
|
||||
|
||||
OX = M.getOxyLoss() > 50 ? "[span_cyan("<b>Severe oxygen deprivation detected</b>")]" : "Subject bloodstream oxygen level normal"
|
||||
TX = M.getToxLoss() > 50 ? "[span_green("<b>Dangerous amount of toxins detected</b>")]" : "Subject bloodstream toxin level minimal"
|
||||
BU = M.getFireLoss() > 50 ? "[span_orange("<b>Severe burn damage detected</b>")]" : "Subject burn injury status O.K"
|
||||
BR = M.getBruteLoss() > 50 ? "[span_red("<b>Severe anatomical damage detected</b>")]" : "Subject brute-force injury status O.K"
|
||||
if(M.status_flags & FAKEDEATH)
|
||||
OX = fake_oxy > 50 ? "<span class='warning'>Severe oxygen deprivation detected</span>" : "Subject bloodstream oxygen level normal"
|
||||
OX = fake_oxy > 50 ? span_warning("Severe oxygen deprivation detected") : "Subject bloodstream oxygen level normal"
|
||||
dat += "[OX] | [TX] | [BU] | [BR]<br>"
|
||||
if(M.radiation)
|
||||
if(advscan >= 2 && showadvscan == 1)
|
||||
@@ -124,9 +130,11 @@
|
||||
severity = "Moderate"
|
||||
else if(M.radiation >= 100)
|
||||
severity = "Low"
|
||||
dat += "<span class='warning'>[severity] levels of acute radiation sickness detected. [round(M.radiation/50)]Gy. [(severity == "Critical" || severity == "Lethal") ? " Immediate treatment advised." : ""]</span><br>"
|
||||
dat += span_warning("[severity] levels of acute radiation sickness detected. [round(M.radiation/50)]Gy. [(severity == "Critical" || severity == "Lethal") ? " Immediate treatment advised." : ""]")
|
||||
dat += "<br>"
|
||||
else
|
||||
dat += "<span class='warning'>Acute radiation sickness detected.</span><br>"
|
||||
dat += span_warning("Acute radiation sickness detected.")
|
||||
dat += "<br>"
|
||||
if(M.accumulated_rads)
|
||||
if(advscan >= 2 && showadvscan == 1)
|
||||
var/severity = ""
|
||||
@@ -140,9 +148,11 @@
|
||||
severity = "Mild"
|
||||
else if(M.accumulated_rads >= 100)
|
||||
severity = "Low"
|
||||
dat += "<span class='warning'>[severity] levels of chronic radiation sickness detected. [round(M.accumulated_rads/50)]Gy.</span><br>"
|
||||
dat += span_warning("[severity] levels of chronic radiation sickness detected. [round(M.accumulated_rads/50)]Gy.")
|
||||
dat += "<br>"
|
||||
else
|
||||
dat += "<span class='warning'>Chronic radiation sickness detected.</span><br>"
|
||||
dat += span_warning("Chronic radiation sickness detected.")
|
||||
dat += "<br>"
|
||||
if(iscarbon(M))
|
||||
var/mob/living/carbon/C = M
|
||||
if(C.reagents.total_volume)
|
||||
@@ -151,88 +161,113 @@
|
||||
var/unknownreagents[0]
|
||||
for(var/datum/reagent/R as anything in C.reagents.reagent_list)
|
||||
if(R.scannable)
|
||||
reagentdata["[R.id]"] = "<span class='notice'>\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
|
||||
reagentdata["[R.id]"] = span_notice("\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
|
||||
reagentdata["[R.id]"] += "<br>"
|
||||
else
|
||||
unknown++
|
||||
unknownreagents["[R.id]"] = "<span class='notice'>\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
|
||||
unknownreagents["[R.id]"] = span_notice("\t[round(C.reagents.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
|
||||
unknownreagents["[R.id]"] += "<br>"
|
||||
if(reagentdata.len)
|
||||
dat += "<span class='notice'>Beneficial reagents detected in subject's blood:</span><br>"
|
||||
dat += span_notice("Beneficial reagents detected in subject's blood:")
|
||||
dat += "<br>"
|
||||
for(var/d in reagentdata)
|
||||
dat += reagentdata[d]
|
||||
if(unknown)
|
||||
if(advscan >= 3 && showadvscan == 1)
|
||||
dat += "<span class='warning'>Warning: Non-medical reagent[(unknown>1)?"s":""] detected in subject's blood:</span><br>"
|
||||
dat += span_warning("Warning: Non-medical reagent[(unknown>1)?"s":""] detected in subject's blood:")
|
||||
dat += "<br>"
|
||||
for(var/d in unknownreagents)
|
||||
dat += unknownreagents[d]
|
||||
else
|
||||
dat += "<span class='warning'>Warning: Unknown substance[(unknown>1)?"s":""] detected in subject's blood.</span><br>"
|
||||
dat += span_warning("Warning: Unknown substance[(unknown>1)?"s":""] detected in subject's blood.")
|
||||
dat += "<br>"
|
||||
if(C.ingested && C.ingested.total_volume)
|
||||
var/unknown = 0
|
||||
var/stomachreagentdata[0]
|
||||
var/stomachunknownreagents[0]
|
||||
for(var/datum/reagent/R as anything in C.ingested.reagent_list)
|
||||
if(R.scannable)
|
||||
stomachreagentdata["[R.id]"] = "<span class='notice'>\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
|
||||
stomachreagentdata["[R.id]"] = span_notice("\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
|
||||
stomachreagentdata["[R.id]"] += "<br>"
|
||||
if (advscan == 0 || showadvscan == 0)
|
||||
dat += "<span class='notice'>[R.name] found in subject's stomach.</span><br>"
|
||||
dat += span_notice("[R.name] found in subject's stomach.")
|
||||
dat += "<br>"
|
||||
else
|
||||
++unknown
|
||||
stomachunknownreagents["[R.id]"] = "<span class='notice'>\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
|
||||
stomachunknownreagents["[R.id]"] = span_notice("\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
|
||||
stomachunknownreagents["[R.id]"] += "<br>"
|
||||
if(advscan >= 1 && showadvscan == 1)
|
||||
dat += "<span class='notice'>Beneficial reagents detected in subject's stomach:</span><br>"
|
||||
dat += span_notice("Beneficial reagents detected in subject's stomach:")
|
||||
dat += "<br>"
|
||||
for(var/d in stomachreagentdata)
|
||||
dat += stomachreagentdata[d]
|
||||
if(unknown)
|
||||
if(advscan >= 3 && showadvscan == 1)
|
||||
dat += "<span class='warning'>Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's stomach:</span><br>"
|
||||
dat += span_warning("Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's stomach:")
|
||||
dat += "<br>"
|
||||
for(var/d in stomachunknownreagents)
|
||||
dat += stomachunknownreagents[d]
|
||||
else
|
||||
dat += "<span class='warning'>Unknown substance[(unknown > 1)?"s":""] found in subject's stomach.</span><br>"
|
||||
dat += span_warning("Unknown substance[(unknown > 1)?"s":""] found in subject's stomach.")
|
||||
dat += "<br>"
|
||||
if(C.touching && C.touching.total_volume)
|
||||
var/unknown = 0
|
||||
var/touchreagentdata[0]
|
||||
var/touchunknownreagents[0]
|
||||
for(var/datum/reagent/R as anything in C.touching.reagent_list)
|
||||
if(R.scannable)
|
||||
touchreagentdata["[R.id]"] = "<span class='notice'>\t[round(C.touching.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
|
||||
touchreagentdata["[R.id]"] = span_notice("\t[round(C.touching.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
|
||||
touchreagentdata["[R.id]"] += "<br>"
|
||||
if (advscan == 0 || showadvscan == 0)
|
||||
dat += "<span class='notice'>[R.name] found in subject's dermis.</span><br>"
|
||||
dat += span_notice("[R.name] found in subject's dermis.")
|
||||
dat += "<br>"
|
||||
else
|
||||
++unknown
|
||||
touchunknownreagents["[R.id]"] = "<span class='notice'>\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - <span class='danger'>Overdose</span>" : ""]</span><br>"
|
||||
touchunknownreagents["[R.id]"] = span_notice("\t[round(C.ingested.get_reagent_amount(R.id), 1)]u [R.name][(R.overdose && R.can_overdose_touch && R.volume > R.overdose) ? " - [span_danger("Overdose")]" : ""]")
|
||||
touchunknownreagents["[R.id]"] += "<br>"
|
||||
if(advscan >= 1 && showadvscan == 1)
|
||||
dat += "<span class='notice'>Beneficial reagents detected in subject's dermis:</span><br>"
|
||||
dat += span_notice("Beneficial reagents detected in subject's dermis:")
|
||||
dat += "<br>"
|
||||
for(var/d in touchreagentdata)
|
||||
dat += touchreagentdata[d]
|
||||
if(unknown)
|
||||
if(advscan >= 3 && showadvscan == 1)
|
||||
dat += "<span class='warning'>Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's dermis:</span><br>"
|
||||
dat += span_warning("Warning: Non-medical reagent[(unknown > 1)?"s":""] found in subject's dermis:")
|
||||
dat += "<br>"
|
||||
for(var/d in touchunknownreagents)
|
||||
dat += touchunknownreagents[d]
|
||||
else
|
||||
dat += "<span class='warning'>Unknown substance[(unknown > 1)?"s":""] found in subject's dermis.</span><br>"
|
||||
dat += span_warning("Unknown substance[(unknown > 1)?"s":""] found in subject's dermis.")
|
||||
dat += "<br>"
|
||||
if(C.virus2.len)
|
||||
for (var/ID in C.virus2)
|
||||
if (ID in virusDB)
|
||||
var/datum/data/record/V = virusDB[ID]
|
||||
dat += "<span class='warning'>Warning: Pathogen [V.fields["name"]] detected in subject's blood. Known antigen : [V.fields["antigen"]]</span><br>"
|
||||
dat += span_warning("Warning: Pathogen [V.fields["name"]] detected in subject's blood. Known antigen : [V.fields["antigen"]]")
|
||||
dat += "<br>"
|
||||
else
|
||||
dat += "<span class='warning'>Warning: Unknown pathogen detected in subject's blood.</span><br>"
|
||||
dat += span_warning("Warning: Unknown pathogen detected in subject's blood.")
|
||||
dat += "<br>"
|
||||
if (M.getCloneLoss())
|
||||
dat += "<span class='warning'>Subject appears to have been imperfectly cloned.</span><br>"
|
||||
dat += span_warning("Subject appears to have been imperfectly cloned.")
|
||||
dat += "<br>"
|
||||
// if (M.reagents && M.reagents.get_reagent_amount("inaprovaline"))
|
||||
// user.show_message("<span class='notice'>Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals.</span>")
|
||||
// user.show_message(span_notice("Bloodstream Analysis located [M.reagents:get_reagent_amount("inaprovaline")] units of rejuvenation chemicals."))
|
||||
if (M.has_brain_worms())
|
||||
dat += "<span class='warning'>Subject suffering from aberrant brain activity. Recommend further scanning.</span><br>"
|
||||
dat += span_warning("Subject suffering from aberrant brain activity. Recommend further scanning.")
|
||||
dat += "<br>"
|
||||
else if (M.getBrainLoss() >= 60 || !M.has_brain())
|
||||
dat += "<span class='warning'>Subject is brain dead.</span><br>"
|
||||
dat += span_warning("Subject is brain dead.")
|
||||
dat += "<br>"
|
||||
else if (M.getBrainLoss() >= 25)
|
||||
dat += "<span class='warning'>Severe brain damage detected. Subject likely to have a traumatic brain injury.</span><br>"
|
||||
dat += span_warning("Severe brain damage detected. Subject likely to have a traumatic brain injury.")
|
||||
dat += "<br>"
|
||||
else if (M.getBrainLoss() >= 10)
|
||||
dat += "<span class='warning'>Significant brain damage detected. Subject may have had a concussion.</span><br>"
|
||||
dat += span_warning("Significant brain damage detected. Subject may have had a concussion.")
|
||||
dat += "<br>"
|
||||
else if (M.getBrainLoss() >= 1)
|
||||
dat += "<span class='warning'>Minor brain damage detected.</span><br>"
|
||||
dat += span_warning("Minor brain damage detected.")
|
||||
dat += "<br>"
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
for(var/obj/item/organ/internal/appendix/a in H.internal_organs)
|
||||
@@ -244,9 +279,11 @@
|
||||
else if(a.inflamed >= 1)
|
||||
severity = "Mild"
|
||||
if(severity)
|
||||
dat += "<span class='warning'>[severity] inflammation detected in subject [a.name].</span><br>"
|
||||
dat += span_warning("[severity] inflammation detected in subject [a.name].")
|
||||
dat += "<br>"
|
||||
if(HUSK in H.mutations)
|
||||
dat += "<span class='danger'>Anatomical structure lost, resuscitation not possible!</span><br>"
|
||||
dat += span_danger("Anatomical structure lost, resuscitation not possible!")
|
||||
dat += "<br>"
|
||||
// Infections, fractures, and IB
|
||||
var/basic_fracture = 0 // If it's a basic scanner
|
||||
var/basic_ib = 0 // If it's a basic scanner
|
||||
@@ -268,36 +305,45 @@
|
||||
dam_adj = "Moderate"
|
||||
else
|
||||
dam_adj = "Mild"
|
||||
dat += "<span class='warning'>[dam_adj] damage detected to subject's [i.name].</span><br>"
|
||||
dat += span_warning("[dam_adj] damage detected to subject's [i.name].")
|
||||
dat += "<br>"
|
||||
else
|
||||
dat += "<span class='warning'>Damage detected to subject's [i.name].</span><br>"
|
||||
dat += span_warning("Damage detected to subject's [i.name].")
|
||||
dat += "<br>"
|
||||
if(int_damage_acc >= 1 && (advscan < 2 || !showadvscan))
|
||||
dat += "<span class='warning'>Damage detected to subject's internal organs.</span><br>"
|
||||
dat += span_warning("Damage detected to subject's internal organs.")
|
||||
dat += "<br>"
|
||||
for(var/obj/item/organ/external/e in H.organs)
|
||||
if(!e)
|
||||
continue
|
||||
// Broken limbs
|
||||
if(e.status & ORGAN_BROKEN)
|
||||
if((e.name in list(BP_L_ARM, BP_R_ARM, BP_L_LEG, BP_R_LEG, BP_HEAD, BP_TORSO, BP_GROIN)) && (!e.splinted))
|
||||
fracture_dat += "<span class='warning'>Unsecured fracture in subject [e.name]. Splinting recommended for transport.</span><br>"
|
||||
fracture_dat += span_warning("Unsecured fracture in subject [e.name]. Splinting recommended for transport.")
|
||||
fracture_dat += "<br>"
|
||||
else if(advscan >= 1 && showadvscan == 1)
|
||||
fracture_dat += "<span class='warning'>Bone fractures detected in subject [e.name].</span><br>"
|
||||
fracture_dat += span_warning("Bone fractures detected in subject [e.name].")
|
||||
fracture_dat += "<br>"
|
||||
else
|
||||
basic_fracture = 1
|
||||
// Infections
|
||||
if(e.has_infected_wound())
|
||||
dat += "<span class='warning'>Infected wound detected in subject [e.name]. Disinfection recommended.</span><br>"
|
||||
dat += span_warning("Infected wound detected in subject [e.name]. Disinfection recommended.")
|
||||
dat += "<br>"
|
||||
// IB
|
||||
for(var/datum/wound/W in e.wounds)
|
||||
if(W.internal)
|
||||
if(advscan >= 1 && showadvscan == 1)
|
||||
ib_dat += "<span class='warning'>Internal bleeding detected in subject [e.name].</span><br>"
|
||||
ib_dat += span_warning("Internal bleeding detected in subject [e.name].")
|
||||
ib_dat += "<br>"
|
||||
else
|
||||
basic_ib = 1
|
||||
if(basic_fracture)
|
||||
fracture_dat += "<span class='warning'>Bone fractures detected. Advanced scanner required for location.</span><br>"
|
||||
fracture_dat += span_warning("Bone fractures detected. Advanced scanner required for location.")
|
||||
fracture_dat += "<br>"
|
||||
if(basic_ib)
|
||||
ib_dat += "<span class='warning'>Internal bleeding detected. Advanced scanner required for location.</span><br>"
|
||||
ib_dat += span_warning("Internal bleeding detected. Advanced scanner required for location.")
|
||||
ib_dat += "<br>"
|
||||
dat += fracture_dat
|
||||
dat += infection_dat
|
||||
dat += ib_dat
|
||||
@@ -309,25 +355,30 @@
|
||||
var/blood_type = H.dna.b_type
|
||||
var/blood_reagent = H.species.blood_reagents
|
||||
if(blood_volume <= H.species.blood_volume*H.species.blood_level_danger)
|
||||
dat += "<span class='danger'><i>Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].</i></span><br>"
|
||||
dat += span_danger("<i>Warning: Blood Level CRITICAL: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].</i>")
|
||||
dat += "<br>"
|
||||
else if(blood_volume <= H.species.blood_volume*H.species.blood_level_warning)
|
||||
dat += "<span class='danger'><i>Warning: Blood Level VERY LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].</i></span><br>"
|
||||
dat += span_danger("<i>Warning: Blood Level VERY LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].</i>")
|
||||
dat += "<br>"
|
||||
else if(blood_volume <= H.species.blood_volume*H.species.blood_level_safe)
|
||||
dat += "<span class='danger'>Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].</span><br>"
|
||||
dat += span_danger("Warning: Blood Level LOW: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].")
|
||||
dat += "<br>"
|
||||
else
|
||||
dat += "<span class='notice'>Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].</span><br>"
|
||||
dat += "<span class='notice'>Subject's pulse: <font color='[H.pulse == PULSE_THREADY || H.pulse == PULSE_NONE ? "red" : "blue"]'>[H.get_pulse(GETPULSE_TOOL)] bpm.</font></span><br>" // VORE Edit: Missed a linebreak here.
|
||||
dat += span_notice("Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]. Basis: [blood_reagent].")
|
||||
dat += "<br>"
|
||||
dat += span_notice("Subject's pulse: [H.pulse == PULSE_THREADY || H.pulse == PULSE_NONE ? span_red(H.get_pulse(GETPULSE_TOOL) + " bpm") : span_blue(H.get_pulse(GETPULSE_TOOL) + " bpm")].") // VORE Edit: Missed a linebreak here.
|
||||
dat += "<br>"
|
||||
if(istype(H.species, /datum/species/xenochimera)) // VOREStation Edit Start: Visible feedback for medmains on Xenochimera.
|
||||
if(H.stat == DEAD && H.revive_ready == REVIVING_READY && !H.hasnutriment())
|
||||
dat += "<span class='danger'>WARNING: Protein levels low. Subject incapable of reconstitution.</span>"
|
||||
dat += span_danger("WARNING: Protein levels low. Subject incapable of reconstitution.")
|
||||
else if(H.revive_ready == REVIVING_NOW)
|
||||
dat += "<span class='warning'>Subject is undergoing form reconstruction. Estimated time to finish is in: [round((H.revive_finished - world.time) / 10)] seconds.</span>"
|
||||
dat += span_warning("Subject is undergoing form reconstruction. Estimated time to finish is in: [round((H.revive_finished - world.time) / 10)] seconds.")
|
||||
else if(H.revive_ready == REVIVING_DONE)
|
||||
dat += "<span class='notice'>Subject is ready to hatch. Transfer to dark room for holding with food available.</span>"
|
||||
dat += span_notice("Subject is ready to hatch. Transfer to dark room for holding with food available.")
|
||||
else if(H.stat == DEAD)
|
||||
dat+= "<span class='danger'>WARNING: Defib will cause extreme pain and set subject feral. Sedation recommended prior to defibrillation.</span>"
|
||||
dat+= span_danger("WARNING: Defib will cause extreme pain and set subject feral. Sedation recommended prior to defibrillation.")
|
||||
else // If they bop them and they're not dead or reviving, give 'em a little notice.
|
||||
dat += "<span class='notice'>Subject is a Xenochimera. Treat accordingly.</span>"
|
||||
dat += span_notice("Subject is a Xenochimera. Treat accordingly.")
|
||||
// VOREStation Edit End
|
||||
user.show_message(dat, 1)
|
||||
if(guide)
|
||||
|
||||
@@ -32,14 +32,14 @@
|
||||
if (user.stat)
|
||||
return
|
||||
if (!user.IsAdvancedToolUser())
|
||||
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
|
||||
to_chat(user, span_warning("You don't have the dexterity to do this!"))
|
||||
return
|
||||
if(reagents.total_volume)
|
||||
var/list/blood_traces = list()
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
if(R.id != "blood")
|
||||
reagents.clear_reagents()
|
||||
to_chat(user, "<span class='warning'>The sample was contaminated! Please insert another sample</span>")
|
||||
to_chat(user, span_warning("The sample was contaminated! Please insert another sample"))
|
||||
return
|
||||
else
|
||||
blood_traces = params2list(R.data["trace_chem"])
|
||||
|
||||
@@ -100,11 +100,11 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
||||
if(ishuman(M))
|
||||
scan_mob(M, user)
|
||||
else
|
||||
to_chat(user,"<span class='warning'>Not a compatible subject to work with!</span>")
|
||||
to_chat(user,span_warning("Not a compatible subject to work with!"))
|
||||
|
||||
/obj/item/sleevemate/attack_self(mob/living/user)
|
||||
if(!stored_mind)
|
||||
to_chat(user,"<span class='warning'>No stored mind in \the [src].</span>")
|
||||
to_chat(user,span_warning("No stored mind in \the [src]."))
|
||||
return
|
||||
|
||||
var/choice = tgui_alert(user,"What would you like to do?","Stored: [stored_mind.name]",list("Delete","Backup","Cancel"))
|
||||
@@ -112,10 +112,10 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
||||
return
|
||||
switch(choice)
|
||||
if("Delete")
|
||||
to_chat(user,"<span class='notice'>Internal copy of [stored_mind.name] deleted.</span>")
|
||||
to_chat(user,span_notice("Internal copy of [stored_mind.name] deleted."))
|
||||
clear_mind()
|
||||
if("Backup")
|
||||
to_chat(user,"<span class='notice'>Internal copy of [stored_mind.name] backed up to database.</span>")
|
||||
to_chat(user,span_notice("Internal copy of [stored_mind.name] backed up to database."))
|
||||
our_db.m_backup(stored_mind,null,one_time = TRUE)
|
||||
if("Cancel")
|
||||
return
|
||||
@@ -183,7 +183,7 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
||||
output += "<br>"
|
||||
output += "<b>Soulcatcher detected ([SC.brainmobs.len] minds)</b><br>"
|
||||
for(var/mob/living/carbon/brain/caught_soul/mind in SC.brainmobs)
|
||||
output += "<i>[mind.name]: </i> [mind.transient == FALSE ? "\[<a href='?src=\ref[src];target=\ref[H];mindrelease=[mind.name]'>Load</a>\]" : "<span class='warning'>Incompatible</span>"]<br>"
|
||||
output += "<i>[mind.name]: </i> [mind.transient == FALSE ? "\[<a href='?src=\ref[src];target=\ref[H];mindrelease=[mind.name]'>Load</a>\]" : span_warning("Incompatible")]<br>"
|
||||
|
||||
if(stored_mind)
|
||||
output += "<b>Store in Soulcatcher: </b>\[<a href='?src=\ref[src];target=\ref[H];mindput=1'>Perform</a>\]<br>"
|
||||
@@ -195,23 +195,23 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
||||
|
||||
//Sanity checking/href-hacking checking
|
||||
if(usr.get_active_hand() != src)
|
||||
to_chat(usr,"<span class='warning'>You're not holding \the [src].</span>")
|
||||
to_chat(usr,span_warning("You're not holding \the [src]."))
|
||||
return
|
||||
|
||||
var/target_ref = href_list["target"]
|
||||
var/mob/living/target = locate(target_ref) in mob_list
|
||||
if(!target)
|
||||
to_chat(usr,"<span class='warning'>Unable to operate on that target.</span>")
|
||||
to_chat(usr,span_warning("Unable to operate on that target."))
|
||||
return
|
||||
|
||||
if(!usr.Adjacent(target))
|
||||
to_chat(usr,"<span class='warning'>You are too far from that target.</span>")
|
||||
to_chat(usr,span_warning("You are too far from that target."))
|
||||
return
|
||||
|
||||
//The actual options
|
||||
if(href_list["mindscan"])
|
||||
if(!target.mind || (target.mind.name in prevent_respawns))
|
||||
to_chat(usr,"<span class='warning'>Target seems totally braindead.</span>")
|
||||
to_chat(usr,span_warning("Target seems totally braindead."))
|
||||
return
|
||||
|
||||
var/nif
|
||||
@@ -220,55 +220,55 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
||||
nif = H.nif
|
||||
persist_nif_data(H)
|
||||
|
||||
usr.visible_message("[usr] begins scanning [target]'s mind.","<span class='notice'>You begin scanning [target]'s mind.</span>")
|
||||
usr.visible_message("[usr] begins scanning [target]'s mind.",span_notice("You begin scanning [target]'s mind."))
|
||||
if(do_after(usr,8 SECONDS,target))
|
||||
our_db.m_backup(target.mind,nif,one_time = TRUE)
|
||||
to_chat(usr,"<span class='notice'>Mind backed up!</span>")
|
||||
to_chat(usr,span_notice("Mind backed up!"))
|
||||
else
|
||||
to_chat(usr,"<span class='warning'>You must remain close to your target!</span>")
|
||||
to_chat(usr,span_warning("You must remain close to your target!"))
|
||||
|
||||
return
|
||||
|
||||
if(href_list["bodyscan"])
|
||||
if(!ishuman(target))
|
||||
to_chat(usr,"<span class='warning'>Target is not of an acceeptable body type.</span>")
|
||||
to_chat(usr,span_warning("Target is not of an acceeptable body type."))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/H = target
|
||||
|
||||
usr.visible_message("[usr] begins scanning [target]'s body.","<span class='notice'>You begin scanning [target]'s body.</span>")
|
||||
usr.visible_message("[usr] begins scanning [target]'s body.",span_notice("You begin scanning [target]'s body."))
|
||||
if(do_after(usr,8 SECONDS,target))
|
||||
var/datum/transhuman/body_record/BR = new()
|
||||
BR.init_from_mob(H, TRUE, TRUE, database_key = db_key)
|
||||
to_chat(usr,"<span class='notice'>Body scanned!</span>")
|
||||
to_chat(usr,span_notice("Body scanned!"))
|
||||
else
|
||||
to_chat(usr,"<span class='warning'>You must remain close to your target!</span>")
|
||||
to_chat(usr,span_warning("You must remain close to your target!"))
|
||||
|
||||
return
|
||||
|
||||
if(href_list["mindsteal"])
|
||||
if(!target.mind || (target.mind.name in prevent_respawns))
|
||||
to_chat(usr,"<span class='warning'>Target seems totally braindead.</span>")
|
||||
to_chat(usr,span_warning("Target seems totally braindead."))
|
||||
return
|
||||
|
||||
if(stored_mind)
|
||||
to_chat(usr,"<span class='warning'>There is already someone's mind stored inside</span>")
|
||||
to_chat(usr,span_warning("There is already someone's mind stored inside"))
|
||||
return
|
||||
|
||||
var/choice = tgui_alert(usr,"This will remove the target's mind from their body (and from the game as long as they're in the sleevemate). You can put them into a (mindless) body, a NIF, or back them up for normal resleeving, but you should probably have a plan in advance so you don't leave them unable to interact for too long. Continue?","Confirmation",list("Continue","Cancel"))
|
||||
if(choice == "Continue" && usr.get_active_hand() == src && usr.Adjacent(target))
|
||||
|
||||
usr.visible_message("<span class='warning'>[usr] begins downloading [target]'s mind!</span>","<span class='notice'>You begin downloading [target]'s mind!</span>")
|
||||
usr.visible_message(span_warning("[usr] begins downloading [target]'s mind!"),span_notice("You begin downloading [target]'s mind!"))
|
||||
if(do_after(usr,35 SECONDS,target)) //This is powerful, yo.
|
||||
if(!stored_mind && target.mind)
|
||||
get_mind(target)
|
||||
to_chat(usr,"<span class='notice'>Mind downloaded!</span>")
|
||||
to_chat(usr,span_notice("Mind downloaded!"))
|
||||
|
||||
return
|
||||
|
||||
if(href_list["mindput"])
|
||||
if(!stored_mind)
|
||||
to_chat(usr,"<span class='warning'>\The [src] no longer has a stored mind.</span>")
|
||||
to_chat(usr,span_warning("\The [src] no longer has a stored mind."))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/human/H = target
|
||||
@@ -289,11 +289,11 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
||||
|
||||
put_mind(sleevemate_mob)
|
||||
SC.catch_mob(sleevemate_mob)
|
||||
to_chat(usr,"<span class='notice'>Mind transferred into Soulcatcher!</span>")
|
||||
to_chat(usr,span_notice("Mind transferred into Soulcatcher!"))
|
||||
|
||||
if(href_list["mindupload"])
|
||||
if(!stored_mind)
|
||||
to_chat(usr,"<span class='warning'>\The [src] no longer has a stored mind.</span>")
|
||||
to_chat(usr,span_warning("\The [src] no longer has a stored mind."))
|
||||
return
|
||||
|
||||
if(!istype(target))
|
||||
@@ -302,20 +302,20 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
||||
if(istype(target, /mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = target
|
||||
if(H.resleeve_lock && stored_mind.loaded_from_ckey != H.resleeve_lock)
|
||||
to_chat(usr,"<span class='warning'>\The [H] is protected from impersonation!</span>")
|
||||
to_chat(usr,span_warning("\The [H] is protected from impersonation!"))
|
||||
return
|
||||
|
||||
usr.visible_message("<span class='warning'>[usr] begins uploading someone's mind into [target]!</span>","<span class='notice'>You begin uploading a mind into [target]!</span>")
|
||||
usr.visible_message(span_warning("[usr] begins uploading someone's mind into [target]!"),span_notice("You begin uploading a mind into [target]!"))
|
||||
if(do_after(usr,35 SECONDS,target))
|
||||
if(!stored_mind)
|
||||
to_chat(usr,"<span class='warning'>\The [src] no longer has a stored mind.</span>")
|
||||
to_chat(usr,span_warning("\The [src] no longer has a stored mind."))
|
||||
return
|
||||
put_mind(target)
|
||||
to_chat(usr,"<span class='notice'>Mind transferred into [target]!</span>")
|
||||
to_chat(usr,span_notice("Mind transferred into [target]!"))
|
||||
|
||||
if(href_list["mindrelease"])
|
||||
if(stored_mind)
|
||||
to_chat(usr,"<span class='warning'>There is already someone's mind stored inside</span>")
|
||||
to_chat(usr,span_warning("There is already someone's mind stored inside"))
|
||||
return
|
||||
var/mob/living/carbon/human/H = target
|
||||
var/datum/nifsoft/soulcatcher/SC = H.nif.imp_check(NIF_SOULCATCHER)
|
||||
@@ -325,9 +325,9 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
||||
if(soul.name == href_list["mindrelease"])
|
||||
get_mind(soul)
|
||||
qdel(soul)
|
||||
to_chat(usr,"<span class='notice'>Mind downloaded!</span>")
|
||||
to_chat(usr,span_notice("Mind downloaded!"))
|
||||
return
|
||||
to_chat(usr,"<span class='notice'>Unable to find that mind in Soulcatcher!</span>")
|
||||
to_chat(usr,span_notice("Unable to find that mind in Soulcatcher!"))
|
||||
|
||||
/obj/item/sleevemate/update_icon()
|
||||
if(stored_mind)
|
||||
@@ -341,7 +341,7 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
||||
var/choice = tgui_input_list(user, "How would you like to modify the [src]?", "", choices)
|
||||
if(!choice || !(choice in choices)) return
|
||||
//CHOMPEdit End
|
||||
to_chat(user,"<span class='danger'>You hack [src]!</span>")
|
||||
to_chat(user,span_danger("You hack [src]!"))
|
||||
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
|
||||
spark_system.set_up(5, 0, src.loc)
|
||||
spark_system.start()
|
||||
|
||||
@@ -24,17 +24,17 @@
|
||||
user.show_message("Potental to mutate into [english_list(mutations)] colors.<br>Extract potential: [S.cores]<br>Nutrition: [S.nutrition]/[S.max_nutrition]")
|
||||
|
||||
if (S.nutrition < S.get_starve_nutrition())
|
||||
user.show_message("<span class='alert'>Warning: Subject is starving!</span>")
|
||||
user.show_message(span_alert("Warning: Subject is starving!"))
|
||||
else if (S.nutrition < S.get_hunger_nutrition())
|
||||
user.show_message("<span class='warning'>Warning: Subject is hungry.</span>")
|
||||
user.show_message(span_warning("Warning: Subject is hungry."))
|
||||
user.show_message("Electric change strength: [S.power_charge]")
|
||||
|
||||
if(S.has_AI())
|
||||
var/datum/ai_holder/simple_mob/xenobio_slime/AI = S.ai_holder
|
||||
if(AI.resentment)
|
||||
user.show_message("<span class='warning'>Warning: Subject is harboring resentment.</span>")
|
||||
user.show_message(span_warning("Warning: Subject is harboring resentment."))
|
||||
if(AI.rabid)
|
||||
user.show_message("<span class='danger'>Subject is enraged and extremely dangerous!</span>")
|
||||
user.show_message(span_danger("Subject is enraged and extremely dangerous!"))
|
||||
if(S.harmless)
|
||||
user.show_message("Subject has been pacified.")
|
||||
if(S.unity)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
/obj/item/camerabug/attack_self(mob/user)
|
||||
if(user.a_intent == I_HURT)
|
||||
to_chat(user, "<span class='notice'>You crush the [src] under your foot, breaking it.</span>")
|
||||
to_chat(user, span_notice("You crush the [src] under your foot, breaking it."))
|
||||
visible_message("[user.name] crushes the [src] under their foot, breaking it!</span>")
|
||||
new brokentype(get_turf(src))
|
||||
spawn(0)
|
||||
@@ -100,11 +100,11 @@
|
||||
if(istype(W, /obj/item/bug_monitor))
|
||||
var/obj/item/bug_monitor/SM = W
|
||||
if(!linkedmonitor)
|
||||
to_chat(user, "<span class='notice'>\The [src] has been paired with \the [SM].</span>")
|
||||
to_chat(user, span_notice("\The [src] has been paired with \the [SM]."))
|
||||
SM.pair(src)
|
||||
linkedmonitor = SM
|
||||
else if (linkedmonitor == SM)
|
||||
to_chat(user, "<span class='notice'>\The [src] has been unpaired from \the [SM].</span>")
|
||||
to_chat(user, span_notice("\The [src] has been unpaired from \the [SM]."))
|
||||
linkedmonitor.unpair(src)
|
||||
linkedmonitor = null
|
||||
else
|
||||
@@ -114,7 +114,7 @@
|
||||
if(isturf(loc))
|
||||
anchored = !anchored
|
||||
|
||||
to_chat(user, "<span class='notice'>You [anchored ? "" : "un"]secure \the [src].</span>")
|
||||
to_chat(user, span_notice("You [anchored ? "" : "un"]secure \the [src]."))
|
||||
|
||||
update_icon()
|
||||
return
|
||||
@@ -202,7 +202,7 @@
|
||||
if(!T || !is_on_same_plane_or_station(T.z, user.z) || !selected_camera.can_use())
|
||||
user.unset_machine()
|
||||
user.reset_view(null)
|
||||
to_chat(user, "<span class='notice'>Link to [selected_camera] has been lost.</span>")
|
||||
to_chat(user, span_notice("Link to [selected_camera] has been lost."))
|
||||
src.unpair(selected_camera.loc)
|
||||
sleep(90)
|
||||
else
|
||||
@@ -217,8 +217,8 @@
|
||||
return
|
||||
|
||||
if(!cameras.len)
|
||||
to_chat(user, "<span class='warning'>No paired cameras detected!</span>")
|
||||
to_chat(user, "<span class='warning'>Bring a camera in contact with this device to pair the camera.</span>")
|
||||
to_chat(user, span_warning("No paired cameras detected!"))
|
||||
to_chat(user, span_warning("Bring a camera in contact with this device to pair the camera."))
|
||||
return
|
||||
|
||||
return 1
|
||||
|
||||
@@ -143,7 +143,7 @@
|
||||
turn_off()
|
||||
else
|
||||
turn_on()
|
||||
to_chat(user, "<span class='notice'>You switch \the [src] [on ? "on" : "off"].</span>")
|
||||
to_chat(user, span_notice("You switch \the [src] [on ? "on" : "off"]."))
|
||||
|
||||
/obj/item/suit_cooling_unit/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if (W.has_tool_quality(TOOL_SCREWDRIVER))
|
||||
@@ -238,7 +238,7 @@
|
||||
|
||||
/obj/item/suit_cooling_unit/emergency/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if (W.has_tool_quality(TOOL_SCREWDRIVER))
|
||||
to_chat(user, "<span class='warning'>This cooler's cell is permanently installed!</span>")
|
||||
to_chat(user, span_warning("This cooler's cell is permanently installed!"))
|
||||
return
|
||||
|
||||
return ..()
|
||||
|
||||
@@ -40,13 +40,13 @@
|
||||
/obj/item/taperecorder/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/rectape))
|
||||
if(mytape)
|
||||
to_chat(user, "<span class='notice'>There's already a tape inside.</span>")
|
||||
to_chat(user, span_notice("There's already a tape inside."))
|
||||
return
|
||||
if(!user.unEquip(I))
|
||||
return
|
||||
I.forceMove(src)
|
||||
mytape = I
|
||||
to_chat(user, "<span class='notice'>You insert [I] into [src].</span>")
|
||||
to_chat(user, span_notice("You insert [I] into [src]."))
|
||||
update_icon()
|
||||
return
|
||||
..()
|
||||
@@ -73,15 +73,15 @@
|
||||
if(usr.incapacitated())
|
||||
return
|
||||
if(!mytape)
|
||||
to_chat(usr, "<span class='notice'>There's no tape in \the [src].</span>")
|
||||
to_chat(usr, span_notice("There's no tape in \the [src]."))
|
||||
return
|
||||
if(emagged)
|
||||
to_chat(usr, "<span class='notice'>The tape seems to be stuck inside.</span>")
|
||||
to_chat(usr, span_notice("The tape seems to be stuck inside."))
|
||||
return
|
||||
|
||||
if(playing || recording)
|
||||
stop()
|
||||
to_chat(usr, "<span class='notice'>You remove [mytape] from [src].</span>")
|
||||
to_chat(usr, span_notice("You remove [mytape] from [src]."))
|
||||
usr.put_in_hands(mytape)
|
||||
mytape = null
|
||||
update_icon()
|
||||
@@ -125,17 +125,17 @@
|
||||
if(emagged == 0)
|
||||
emagged = 1
|
||||
recording = 0
|
||||
to_chat(user, "<span class='warning'>PZZTTPFFFT</span>")
|
||||
to_chat(user, span_warning("PZZTTPFFFT"))
|
||||
update_icon()
|
||||
return 1
|
||||
else
|
||||
to_chat(user, "<span class='warning'>It is already emagged!</span>")
|
||||
to_chat(user, span_warning("It is already emagged!"))
|
||||
|
||||
/obj/item/taperecorder/proc/explode()
|
||||
var/turf/T = get_turf(loc)
|
||||
if(ismob(loc))
|
||||
var/mob/M = loc
|
||||
to_chat(M, "<span class='danger'>\The [src] explodes!</span>")
|
||||
to_chat(M, span_danger("\The [src] explodes!"))
|
||||
if(T)
|
||||
T.hotspot_expose(700,125)
|
||||
explosion(T, -1, -1, 0, 4)
|
||||
@@ -149,22 +149,22 @@
|
||||
if(usr.incapacitated())
|
||||
return
|
||||
if(!mytape)
|
||||
to_chat(usr, "<span class='notice'>There's no tape!</span>")
|
||||
to_chat(usr, span_notice("There's no tape!"))
|
||||
return
|
||||
if(mytape.ruined)
|
||||
to_chat(usr, "<span class='warning'>The tape recorder makes a scratchy noise.</span>")
|
||||
to_chat(usr, span_warning("The tape recorder makes a scratchy noise."))
|
||||
return
|
||||
if(recording)
|
||||
to_chat(usr, "<span class='notice'>You're already recording!</span>")
|
||||
to_chat(usr, span_notice("You're already recording!"))
|
||||
return
|
||||
if(playing)
|
||||
to_chat(usr, "<span class='notice'>You can't record when playing!</span>")
|
||||
to_chat(usr, span_notice("You can't record when playing!"))
|
||||
return
|
||||
if(emagged)
|
||||
to_chat(usr, "<span class='warning'>The tape recorder makes a scratchy noise.</span>")
|
||||
to_chat(usr, span_warning("The tape recorder makes a scratchy noise."))
|
||||
return
|
||||
if(mytape.used_capacity < mytape.max_capacity)
|
||||
to_chat(usr, "<span class='notice'>Recording started.</span>")
|
||||
to_chat(usr, span_notice("Recording started."))
|
||||
recording = 1
|
||||
update_icon()
|
||||
|
||||
@@ -177,14 +177,14 @@
|
||||
if(mytape.used_capacity >= mytape.max_capacity)
|
||||
if(ismob(loc))
|
||||
var/mob/M = loc
|
||||
to_chat(M, "<span class='notice'>The tape is full.</span>")
|
||||
to_chat(M, span_notice("The tape is full."))
|
||||
stop_recording()
|
||||
|
||||
|
||||
update_icon()
|
||||
return
|
||||
else
|
||||
to_chat(usr, "<span class='notice'>The tape is full.</span>")
|
||||
to_chat(usr, span_notice("The tape is full."))
|
||||
|
||||
|
||||
/obj/item/taperecorder/proc/stop_recording()
|
||||
@@ -194,7 +194,7 @@
|
||||
mytape.record_speech("Recording stopped.")
|
||||
if(ismob(loc))
|
||||
var/mob/M = loc
|
||||
to_chat(M, "<span class='notice'>Recording stopped.</span>")
|
||||
to_chat(M, span_notice("Recording stopped."))
|
||||
|
||||
|
||||
/obj/item/taperecorder/verb/stop()
|
||||
@@ -209,10 +209,10 @@
|
||||
else if(playing)
|
||||
playing = 0
|
||||
update_icon()
|
||||
to_chat(usr, "<span class='notice'>Playback stopped.</span>")
|
||||
to_chat(usr, span_notice("Playback stopped."))
|
||||
return
|
||||
else
|
||||
to_chat(usr, "<span class='notice'>Stop what?</span>")
|
||||
to_chat(usr, span_notice("Stop what?"))
|
||||
|
||||
|
||||
/obj/item/taperecorder/verb/wipe_tape()
|
||||
@@ -222,19 +222,19 @@
|
||||
if(usr.incapacitated())
|
||||
return
|
||||
if(emagged)
|
||||
to_chat(usr, "<span class='warning'>The tape recorder makes a scratchy noise.</span>")
|
||||
to_chat(usr, span_warning("The tape recorder makes a scratchy noise."))
|
||||
return
|
||||
if(mytape.ruined)
|
||||
to_chat(usr, "<span class='warning'>The tape recorder makes a scratchy noise.</span>")
|
||||
to_chat(usr, span_warning("The tape recorder makes a scratchy noise."))
|
||||
return
|
||||
if(recording || playing)
|
||||
to_chat(usr, "<span class='notice'>You can't wipe the tape while playing or recording!</span>")
|
||||
to_chat(usr, span_notice("You can't wipe the tape while playing or recording!"))
|
||||
return
|
||||
else
|
||||
if(mytape.storedinfo) mytape.storedinfo.Cut()
|
||||
if(mytape.timestamp) mytape.timestamp.Cut()
|
||||
mytape.used_capacity = 0
|
||||
to_chat(usr, "<span class='notice'>You wipe the tape.</span>")
|
||||
to_chat(usr, span_notice("You wipe the tape."))
|
||||
return
|
||||
|
||||
|
||||
@@ -245,20 +245,20 @@
|
||||
if(usr.incapacitated())
|
||||
return
|
||||
if(!mytape)
|
||||
to_chat(usr, "<span class='notice'>There's no tape!</span>")
|
||||
to_chat(usr, span_notice("There's no tape!"))
|
||||
return
|
||||
if(mytape.ruined)
|
||||
to_chat(usr, "<span class='warning'>The tape recorder makes a scratchy noise.</span>")
|
||||
to_chat(usr, span_warning("The tape recorder makes a scratchy noise."))
|
||||
return
|
||||
if(recording)
|
||||
to_chat(usr, "<span class='notice'>You can't playback when recording!</span>")
|
||||
to_chat(usr, span_notice("You can't playback when recording!"))
|
||||
return
|
||||
if(playing)
|
||||
to_chat(usr, "<span class='notice'>You're already playing!</span>")
|
||||
to_chat(usr, span_notice("You're already playing!"))
|
||||
return
|
||||
playing = 1
|
||||
update_icon()
|
||||
to_chat(usr, "<span class='notice'>Playing started.</span>")
|
||||
to_chat(usr, span_notice("Playing started."))
|
||||
for(var/i=1 , i < mytape.max_capacity , i++)
|
||||
if(!mytape || !playing)
|
||||
break
|
||||
@@ -317,22 +317,22 @@
|
||||
if(usr.incapacitated())
|
||||
return
|
||||
if(!mytape)
|
||||
to_chat(usr, "<span class='notice'>There's no tape!</span>")
|
||||
to_chat(usr, span_notice("There's no tape!"))
|
||||
return
|
||||
if(mytape.ruined)
|
||||
to_chat(usr, "<span class='warning'>The tape recorder makes a scratchy noise.</span>")
|
||||
to_chat(usr, span_warning("The tape recorder makes a scratchy noise."))
|
||||
return
|
||||
if(emagged)
|
||||
to_chat(usr, "<span class='warning'>The tape recorder makes a scratchy noise.</span>")
|
||||
to_chat(usr, span_warning("The tape recorder makes a scratchy noise."))
|
||||
return
|
||||
if(!canprint)
|
||||
to_chat(usr, "<span class='notice'>The recorder can't print that fast!</span>")
|
||||
to_chat(usr, span_notice("The recorder can't print that fast!"))
|
||||
return
|
||||
if(recording || playing)
|
||||
to_chat(usr, "<span class='notice'>You can't print the transcript while playing or recording!</span>")
|
||||
to_chat(usr, span_notice("You can't print the transcript while playing or recording!"))
|
||||
return
|
||||
|
||||
to_chat(usr, "<span class='notice'>Transcript printed.</span>")
|
||||
to_chat(usr, span_notice("Transcript printed."))
|
||||
var/obj/item/paper/P = new /obj/item/paper(get_turf(src))
|
||||
var/t1 = "<B>Transcript:</B><BR><BR>"
|
||||
for(var/i=1,mytape.storedinfo.len >= i,i++)
|
||||
@@ -394,7 +394,7 @@
|
||||
|
||||
/obj/item/rectape/attack_self(mob/user)
|
||||
if(!ruined)
|
||||
to_chat(user, "<span class='notice'>You pull out all the tape!</span>")
|
||||
to_chat(user, span_notice("You pull out all the tape!"))
|
||||
ruin()
|
||||
|
||||
|
||||
@@ -421,10 +421,10 @@
|
||||
|
||||
/obj/item/rectape/attackby(obj/item/I, mob/user, params)
|
||||
if(ruined && I.has_tool_quality(TOOL_SCREWDRIVER))
|
||||
to_chat(user, "<span class='notice'>You start winding the tape back in...</span>")
|
||||
to_chat(user, span_notice("You start winding the tape back in..."))
|
||||
playsound(src, I.usesound, 50, 1)
|
||||
if(do_after(user, 120 * I.toolspeed, target = src))
|
||||
to_chat(user, "<span class='notice'>You wound the tape back in.</span>")
|
||||
to_chat(user, span_notice("You wound the tape back in."))
|
||||
fix()
|
||||
return
|
||||
else if(istype(I, /obj/item/pen))
|
||||
@@ -434,10 +434,10 @@
|
||||
new_name = sanitizeSafe(new_name)
|
||||
if(new_name)
|
||||
name = "tape - '[new_name]'"
|
||||
to_chat(user, "<span class='notice'>You label the tape '[new_name]'.</span>")
|
||||
to_chat(user, span_notice("You label the tape '[new_name]'."))
|
||||
else
|
||||
name = "tape"
|
||||
to_chat(user, "<span class='notice'>You scratch off the label.</span>")
|
||||
to_chat(user, span_notice("You scratch off the label."))
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ effective or pretty fucking useless.
|
||||
/obj/item/batterer/attack_self(mob/living/carbon/user as mob, flag = 0, emp = 0)
|
||||
if(!user) return
|
||||
if(times_used >= max_uses)
|
||||
to_chat(user, "<span class='warning'>The mind batterer has been burnt out!</span>")
|
||||
to_chat(user, span_warning("The mind batterer has been burnt out!"))
|
||||
return
|
||||
|
||||
var/list/affected = list()
|
||||
@@ -44,15 +44,15 @@ effective or pretty fucking useless.
|
||||
M.Weaken(rand(10,20))
|
||||
if(prob(25))
|
||||
M.Stun(rand(5,10))
|
||||
to_chat(M, "<span class='danger'>You feel a tremendous, paralyzing wave flood your mind.</span>")
|
||||
to_chat(M, span_danger("You feel a tremendous, paralyzing wave flood your mind."))
|
||||
|
||||
else
|
||||
to_chat(M, "<span class='danger'>You feel a sudden, electric jolt travel through your head.</span>")
|
||||
to_chat(M, span_danger("You feel a sudden, electric jolt travel through your head."))
|
||||
|
||||
add_attack_logs(user,affected,"Used a [name]")
|
||||
|
||||
playsound(src, 'sound/misc/interference.ogg', 50, 1)
|
||||
to_chat(user, "<span class='notice'>You trigger [src].</span>")
|
||||
to_chat(user, span_notice("You trigger [src]."))
|
||||
times_used += 1
|
||||
if(times_used >= max_uses)
|
||||
icon_state = "battererburnt"
|
||||
|
||||
@@ -14,19 +14,19 @@
|
||||
var/turf/location = get_turf(src) // For admin logs
|
||||
if(istype(item, /obj/item/tank))
|
||||
if(tank_one && tank_two)
|
||||
to_chat(user, "<span class='warning'>There are already two tanks attached, remove one first.</span>")
|
||||
to_chat(user, span_warning("There are already two tanks attached, remove one first."))
|
||||
return
|
||||
|
||||
if(!tank_one)
|
||||
tank_one = item
|
||||
user.drop_item()
|
||||
item.forceMove(src)
|
||||
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
|
||||
to_chat(user, span_notice("You attach the tank to the transfer valve."))
|
||||
else if(!tank_two)
|
||||
tank_two = item
|
||||
user.drop_item()
|
||||
item.forceMove(src)
|
||||
to_chat(user, "<span class='notice'>You attach the tank to the transfer valve.</span>")
|
||||
to_chat(user, span_notice("You attach the tank to the transfer valve."))
|
||||
message_admins("[key_name_admin(user)] attached both tanks to a transfer valve. [ADMIN_JMP(location)]")
|
||||
log_game("[key_name_admin(user)] attached both tanks to a transfer valve.")
|
||||
|
||||
@@ -36,15 +36,15 @@
|
||||
else if(isassembly(item))
|
||||
var/obj/item/assembly/A = item
|
||||
if(A.secured)
|
||||
to_chat(user, "<span class='notice'>The device is secured.</span>")
|
||||
to_chat(user, span_notice("The device is secured."))
|
||||
return
|
||||
if(attached_device)
|
||||
to_chat(user, "<span class='warning'>There is already an device attached to the valve, remove it first.</span>")
|
||||
to_chat(user, span_warning("There is already an device attached to the valve, remove it first."))
|
||||
return
|
||||
user.remove_from_mob(item)
|
||||
attached_device = A
|
||||
A.forceMove(src)
|
||||
to_chat(user, "<span class='notice'>You attach the [item] to the valve controls and secure it.</span>")
|
||||
to_chat(user, span_notice("You attach the [item] to the valve controls and secure it."))
|
||||
A.holder = src
|
||||
A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb).
|
||||
|
||||
|
||||
@@ -18,20 +18,20 @@
|
||||
if(langset)
|
||||
if(langset && ((langset.flags & NONVERBAL) || (langset.flags & HIVEMIND) || (!langset.machine_understands)))
|
||||
//Nonverbal means no spoken words to translate, so I didn't see the need to remove it.
|
||||
to_chat(user, "<span class='warning'>\The [src] cannot output that language.</span>")
|
||||
to_chat(user, span_warning("\The [src] cannot output that language."))
|
||||
return
|
||||
else
|
||||
listening = 1
|
||||
listening_objects |= src
|
||||
if(mult_icons)
|
||||
icon_state = "[initial(icon_state)]1"
|
||||
to_chat(user, "<span class='notice'>You enable \the [src], translating into [langset.name].</span>")
|
||||
to_chat(user, span_notice("You enable \the [src], translating into [langset.name]."))
|
||||
else //Turning OFF
|
||||
listening = 0
|
||||
listening_objects -= src
|
||||
langset = null
|
||||
icon_state = "[initial(icon_state)]"
|
||||
to_chat(user, "<span class='notice'>You disable \the [src].</span>")
|
||||
to_chat(user, span_notice("You disable \the [src]."))
|
||||
|
||||
/obj/item/universal_translator/hear_talk(mob/M, list/message_pieces, verb)
|
||||
if(!listening || !istype(M))
|
||||
@@ -71,7 +71,7 @@
|
||||
if(!L.say_understands(null, langset))
|
||||
new_message = langset.scramble(new_message)
|
||||
|
||||
to_chat(L, "<span class='filter_say'><i><b>[src]</b> translates, </i>\"<span class='[langset.colour]'>[new_message]</span>\"</span>")
|
||||
to_chat(L, span_filter_say("<i><b>[src]</b> translates, </i>\"<span class='[langset.colour]'>[new_message]</span>\""))
|
||||
|
||||
/obj/item/universal_translator/proc/user_understands(mob/M, mob/living/L, list/message_pieces)
|
||||
for(var/datum/multilingual_say_piece/S in message_pieces)
|
||||
@@ -87,4 +87,4 @@
|
||||
w_class = ITEMSIZE_TINY
|
||||
slot_flags = SLOT_EARS
|
||||
visual = 0
|
||||
audio = 1
|
||||
audio = 1
|
||||
|
||||
@@ -94,15 +94,15 @@
|
||||
|
||||
/obj/item/perfect_tele/proc/unload_ammo(mob/user, var/ignore_inactive_hand_check = 0)
|
||||
if(battery_lock)
|
||||
to_chat(user,"<span class='notice'>[src] does not have a battery port.</span>")
|
||||
to_chat(user,span_notice("[src] does not have a battery port."))
|
||||
return
|
||||
if((user.get_inactive_hand() == src || ignore_inactive_hand_check) && power_source)
|
||||
to_chat(user,"<span class='notice'>You eject \the [power_source] from \the [src].</span>")
|
||||
to_chat(user,span_notice("You eject \the [power_source] from \the [src]."))
|
||||
user.put_in_hands(power_source)
|
||||
power_source = null
|
||||
update_icon()
|
||||
else
|
||||
to_chat(user,"<span class='notice'>[src] does not have a power cell.</span>")
|
||||
to_chat(user,span_notice("[src] does not have a power cell."))
|
||||
|
||||
/obj/item/perfect_tele/proc/check_menu(var/mob/living/user)
|
||||
if(!istype(user))
|
||||
@@ -132,7 +132,7 @@ This device records all warnings given and teleport events for admin review in c
|
||||
|
||||
else if(choice == "New Beacon")
|
||||
if(beacons_left <= 0)
|
||||
to_chat(user, "<span class='warning'>The translocator can't support any more beacons!</span>")
|
||||
to_chat(user, span_warning("The translocator can't support any more beacons!"))
|
||||
return
|
||||
|
||||
var/new_name = html_encode(tgui_input_text(user,"New beacon's name (2-20 char):","[src]",null,20))
|
||||
@@ -140,11 +140,11 @@ This device records all warnings given and teleport events for admin review in c
|
||||
return
|
||||
|
||||
if(length(new_name) > 20 || length(new_name) < 2)
|
||||
to_chat(user, "<span class='warning'>Entered name length invalid (must be longer than 2, no more than than 20).</span>")
|
||||
to_chat(user, span_warning("Entered name length invalid (must be longer than 2, no more than than 20)."))
|
||||
return
|
||||
|
||||
if(new_name in beacons)
|
||||
to_chat(user, "<span class='warning'>No duplicate names, please. '[new_name]' exists already.</span>")
|
||||
to_chat(user, span_warning("No duplicate names, please. '[new_name]' exists already."))
|
||||
return
|
||||
|
||||
var/obj/item/perfect_tele_beacon/nb = new(get_turf(src))
|
||||
@@ -168,19 +168,19 @@ This device records all warnings given and teleport events for admin review in c
|
||||
power_source.update_icon() //Why doesn't a cell do this already? :|
|
||||
user.unEquip(power_source)
|
||||
power_source.forceMove(src)
|
||||
to_chat(user,"<span class='notice'>You insert \the [power_source] into \the [src].</span>")
|
||||
to_chat(user,span_notice("You insert \the [power_source] into \the [src]."))
|
||||
update_icon()
|
||||
|
||||
else if(istype(W,/obj/item/perfect_tele_beacon))
|
||||
var/obj/item/perfect_tele_beacon/tb = W
|
||||
if(tb.tele_name in beacons)
|
||||
to_chat(user,"<span class='notice'>You re-insert \the [tb] into \the [src].</span>")
|
||||
to_chat(user,span_notice("You re-insert \the [tb] into \the [src]."))
|
||||
beacons -= tb.tele_name
|
||||
user.unEquip(tb)
|
||||
qdel(tb)
|
||||
beacons_left++
|
||||
else
|
||||
to_chat(user,"<span class='notice'>\The [tb] doesn't belong to \the [src].</span>")
|
||||
to_chat(user,span_notice("\The [tb] doesn't belong to \the [src]."))
|
||||
return
|
||||
else
|
||||
..()
|
||||
@@ -188,12 +188,12 @@ This device records all warnings given and teleport events for admin review in c
|
||||
/obj/item/perfect_tele/proc/teleport_checks(mob/living/target,mob/living/user)
|
||||
//Uhhuh, need that power source
|
||||
if(!power_source)
|
||||
to_chat(user,"<span class='warning'>\The [src] has no power source!</span>")
|
||||
to_chat(user,span_warning("\The [src] has no power source!"))
|
||||
return FALSE
|
||||
|
||||
//Check for charge
|
||||
if((!power_source.check_charge(charge_cost)) && (!power_source.fully_charged()))
|
||||
to_chat(user,"<span class='warning'>\The [src] does not have enough power left!</span>")
|
||||
to_chat(user,span_warning("\The [src] does not have enough power left!"))
|
||||
return FALSE
|
||||
|
||||
//Only mob/living need apply.
|
||||
@@ -202,24 +202,24 @@ This device records all warnings given and teleport events for admin review in c
|
||||
|
||||
//No, you can't teleport buckled people.
|
||||
if(target.buckled)
|
||||
to_chat(user,"<span class='warning'>The target appears to be attached to something...</span>")
|
||||
to_chat(user,span_warning("The target appears to be attached to something..."))
|
||||
return FALSE
|
||||
|
||||
//No, you can't teleport if it's not ready yet.
|
||||
if(!ready)
|
||||
to_chat(user,"<span class='warning'>\The [src] is still recharging!</span>")
|
||||
to_chat(user,span_warning("\The [src] is still recharging!"))
|
||||
return FALSE
|
||||
|
||||
//No, you can't teleport if there's no destination.
|
||||
if(!destination)
|
||||
to_chat(user,"<span class='warning'>\The [src] doesn't have a current valid destination set!</span>")
|
||||
to_chat(user,span_warning("\The [src] doesn't have a current valid destination set!"))
|
||||
return FALSE
|
||||
|
||||
//No, you can't teleport if there's a jammer.
|
||||
if(is_jammed(src) || is_jammed(destination))
|
||||
var/area/our_area = get_area(src)
|
||||
if(!our_area.no_comms) //I don't actually want this to block teleporters, just comms
|
||||
to_chat(user,"<span class='warning'>\The [src] refuses to teleport you, due to strong interference!</span>")
|
||||
to_chat(user,span_warning("\The [src] refuses to teleport you, due to strong interference!"))
|
||||
return FALSE
|
||||
|
||||
//No, you can't port to or from away missions. Stupidly complicated check.
|
||||
@@ -233,12 +233,12 @@ This device records all warnings given and teleport events for admin review in c
|
||||
|
||||
if(!longrange)
|
||||
if( (uT.z != dT.z) && (!(dT.z in dat["z_level_detection"])) )
|
||||
to_chat(user,"<span class='warning'>\The [src] can't teleport you that far!</span>")
|
||||
to_chat(user,span_warning("\The [src] can't teleport you that far!"))
|
||||
return FALSE
|
||||
|
||||
if(!abductor)
|
||||
if(uT.block_tele || dT.block_tele)
|
||||
to_chat(user,"<span class='warning'>Something is interfering with \the [src]!</span>")
|
||||
to_chat(user,span_warning("Something is interfering with \the [src]!"))
|
||||
return FALSE
|
||||
|
||||
//Seems okay to me!
|
||||
@@ -257,8 +257,8 @@ This device records all warnings given and teleport events for admin review in c
|
||||
if(!L.stat)
|
||||
if(L != user)
|
||||
if(L.a_intent != I_HELP || L.has_AI())
|
||||
to_chat(user, "<span class='notice'>[L] is resisting your attempt to teleport them with \the [src].</span>")
|
||||
to_chat(L, "<span class='danger'> [user] is trying to teleport you with \the [src]!</span>")
|
||||
to_chat(user, span_notice("[L] is resisting your attempt to teleport them with \the [src]."))
|
||||
to_chat(L, span_danger(" [user] is trying to teleport you with \the [src]!"))
|
||||
if(!do_after(user, 30, L))
|
||||
return
|
||||
|
||||
@@ -280,7 +280,7 @@ This device records all warnings given and teleport events for admin review in c
|
||||
var/list/wrong_choices = beacons - destination.tele_name
|
||||
var/wrong_name = pick(wrong_choices)
|
||||
destination = beacons[wrong_name]
|
||||
to_chat(user,"<span class='warning'>\The [src] malfunctions and sends you to the wrong beacon!</span>")
|
||||
to_chat(user,span_warning("\The [src] malfunctions and sends you to the wrong beacon!"))
|
||||
|
||||
//Destination beacon vore checking
|
||||
var/turf/dT = get_turf(destination)
|
||||
@@ -303,9 +303,9 @@ This device records all warnings given and teleport events for admin review in c
|
||||
// CHOMPEdit Start - Making pref checks work properly
|
||||
if(target.devourable && target.can_be_drop_prey && B.owner != target)
|
||||
televored = TRUE
|
||||
to_chat(target,"<span class='vwarning'>\The [src] teleports you right into \a [lowertext(real_dest.name)]!</span>")
|
||||
to_chat(target,span_vwarning("\The [src] teleports you right into \a [lowertext(real_dest.name)]!"))
|
||||
else
|
||||
to_chat(target,"<span class='vwarning'>\The [src] narrowly avoids teleporting you right into \a [lowertext(real_dest.name)]!</span>")
|
||||
to_chat(target,span_vwarning("\The [src] narrowly avoids teleporting you right into \a [lowertext(real_dest.name)]!"))
|
||||
real_dest = dT //Nevermind!
|
||||
// CHOMPEdit End
|
||||
//Phase-out effect
|
||||
@@ -327,7 +327,7 @@ This device records all warnings given and teleport events for admin review in c
|
||||
//Move them, and televore if necessary
|
||||
G.affecting.forceMove(real_dest)
|
||||
if(televored)
|
||||
to_chat(target,"<span class='warning'>\The [src] teleports you right into \a [lowertext(real_dest.name)]!</span>")
|
||||
to_chat(target,span_warning("\The [src] teleports you right into \a [lowertext(real_dest.name)]!"))
|
||||
|
||||
//Phase-in effect for grabbed person
|
||||
phase_in(G.affecting,get_turf(G.affecting))
|
||||
@@ -412,11 +412,11 @@ GLOBAL_LIST_BOILERPLATE(premade_tele_beacons, /obj/item/perfect_tele_beacon/stat
|
||||
if(confirm == "Eat it!")
|
||||
var/obj/belly/bellychoice = tgui_input_list(usr, "Which belly?","Select A Belly", L.vore_organs)
|
||||
if(bellychoice)
|
||||
user.visible_message("<span class='warning'>[user] is trying to stuff \the [src] into [user.gender == MALE ? "his" : user.gender == FEMALE ? "her" : "their"] [bellychoice.name]!</span>","<span class='notice'>You begin putting \the [src] into your [bellychoice.name]!</span>")
|
||||
user.visible_message(span_warning("[user] is trying to stuff \the [src] into [user.gender == MALE ? "his" : user.gender == FEMALE ? "her" : "their"] [bellychoice.name]!"),span_notice("You begin putting \the [src] into your [bellychoice.name]!"))
|
||||
if(do_after(user,5 SECONDS,src))
|
||||
user.unEquip(src)
|
||||
forceMove(bellychoice)
|
||||
user.visible_message("<span class='warning'>[user] eats a telebeacon!</span>","You eat the the beacon!")
|
||||
user.visible_message(span_warning("[user] eats a telebeacon!"),"You eat the the beacon!")
|
||||
|
||||
// A single-beacon variant for use by miners (or whatever)
|
||||
/obj/item/perfect_tele/one_beacon
|
||||
@@ -431,7 +431,7 @@ GLOBAL_LIST_BOILERPLATE(premade_tele_beacons, /obj/item/perfect_tele_beacon/stat
|
||||
/obj/item/perfect_tele/one_beacon/teleport_checks(mob/living/target,mob/living/user)
|
||||
var/turf/T = get_turf(destination)
|
||||
if(T && user.z != T.z)
|
||||
to_chat(user,"<span class='warning'>\The [src] is too far away from the beacon. Try getting closer first!</span>")
|
||||
to_chat(user,span_warning("\The [src] is too far away from the beacon. Try getting closer first!"))
|
||||
return FALSE
|
||||
return ..()
|
||||
*/
|
||||
@@ -476,8 +476,8 @@ GLOBAL_LIST_BOILERPLATE(premade_tele_beacons, /obj/item/perfect_tele_beacon/stat
|
||||
return
|
||||
recharging = 1
|
||||
update_icon()
|
||||
user.visible_message("<span class='notice'>[user] opens \the [src] and starts pumping the handle.</span>", \
|
||||
"<span class='notice'>You open \the [src] and start pumping the handle.</span>")
|
||||
user.visible_message(span_notice("[user] opens \the [src] and starts pumping the handle."), \
|
||||
span_notice("You open \the [src] and start pumping the handle."))
|
||||
while(recharging)
|
||||
if(!do_after(user, 10, src))
|
||||
break
|
||||
|
||||
@@ -71,14 +71,14 @@
|
||||
if(nc)
|
||||
channel = nc
|
||||
camera.c_tag = channel
|
||||
to_chat(usr, "<span class='notice'>New channel name - '[channel]' is set</span>")
|
||||
to_chat(usr, span_notice("New channel name - '[channel]' is set"))
|
||||
if(href_list["video"])
|
||||
camera.set_status(!camera.status)
|
||||
if(camera.status)
|
||||
to_chat(usr,"<span class='notice'>Video streaming activated. Broadcasting on channel '[channel]'</span>")
|
||||
to_chat(usr,span_notice("Video streaming activated. Broadcasting on channel '[channel]'"))
|
||||
show_tvs(loc)
|
||||
else
|
||||
to_chat(usr,"<span class='notice'>Video streaming deactivated.</span>")
|
||||
to_chat(usr,span_notice("Video streaming deactivated."))
|
||||
hide_tvs()
|
||||
for(var/obj/machinery/computer/security/telescreen/entertainment/ES as anything in GLOB.entertainment_screens)
|
||||
ES.stop_showing()
|
||||
@@ -86,9 +86,9 @@
|
||||
if(href_list["sound"])
|
||||
radio.ToggleBroadcast()
|
||||
if(radio.broadcasting)
|
||||
to_chat(usr,"<span class='notice'>Audio streaming activated. Broadcasting on frequency [format_frequency(radio.frequency)].</span>")
|
||||
to_chat(usr,span_notice("Audio streaming activated. Broadcasting on frequency [format_frequency(radio.frequency)]."))
|
||||
else
|
||||
to_chat(usr,"<span class='notice'>Audio streaming deactivated.</span>")
|
||||
to_chat(usr,span_notice("Audio streaming deactivated."))
|
||||
if(!href_list["close"])
|
||||
attack_self(usr)
|
||||
|
||||
@@ -330,7 +330,7 @@
|
||||
var/obj/item/TVAssembly/A = new(user)
|
||||
qdel(S)
|
||||
user.put_in_hands(A)
|
||||
to_chat(user, "<span class='notice'>You add the infrared sensor to the robot head.</span>")
|
||||
to_chat(user, span_notice("You add the infrared sensor to the robot head."))
|
||||
user.drop_from_inventory(src)
|
||||
qdel(src)
|
||||
|
||||
@@ -349,7 +349,7 @@
|
||||
if(0)
|
||||
if(istype(W, /obj/item/robot_parts/robot_component/camera))
|
||||
var/obj/item/robot_parts/robot_component/camera/CA = W
|
||||
to_chat(user, "<span class='notice'>You add the camera module to [src]</span>")
|
||||
to_chat(user, span_notice("You add the camera module to [src]"))
|
||||
user.drop_item()
|
||||
qdel(CA)
|
||||
desc = "This TV camera assembly has a camera module."
|
||||
@@ -360,22 +360,22 @@
|
||||
user.drop_item()
|
||||
qdel(T)
|
||||
buildstep++
|
||||
to_chat(user, "<span class='notice'>You add the tape recorder to [src]</span>")
|
||||
to_chat(user, span_notice("You add the tape recorder to [src]"))
|
||||
if(2)
|
||||
if(istype(W, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/C = W
|
||||
if(!C.use(3))
|
||||
to_chat(user, "<span class='notice'>You need six cable coils to wire the devices.</span>")
|
||||
to_chat(user, span_notice("You need six cable coils to wire the devices."))
|
||||
..()
|
||||
return
|
||||
C.use(3)
|
||||
buildstep++
|
||||
to_chat(user, "<span class='notice'>You wire the assembly</span>")
|
||||
to_chat(user, span_notice("You wire the assembly"))
|
||||
desc = "This TV camera assembly has wires sticking out"
|
||||
return
|
||||
if(3)
|
||||
if(istype(W, /obj/item/tool/wirecutters))
|
||||
to_chat(user, "<span class='notice'> You trim the wires.</span>")
|
||||
to_chat(user, span_notice(" You trim the wires."))
|
||||
buildstep++
|
||||
desc = "This TV camera assembly needs casing."
|
||||
return
|
||||
@@ -384,7 +384,7 @@
|
||||
var/obj/item/stack/material/steel/S = W
|
||||
buildstep++
|
||||
S.use(1)
|
||||
to_chat(user, "<span class='notice'>You encase the assembly in a Ward-Takeshi casing.</span>")
|
||||
to_chat(user, span_notice("You encase the assembly in a Ward-Takeshi casing."))
|
||||
var/turf/T = get_turf(src)
|
||||
new /obj/item/tvcamera(T)
|
||||
user.drop_from_inventory(src)
|
||||
|
||||
@@ -33,15 +33,15 @@
|
||||
|
||||
if(isnull(insults))
|
||||
playsound(src, 'sound/voice/halt.ogg', 100, 1, vary = 0)
|
||||
user.audible_message("<span class='warning'>[user]'s [name] rasps, \"[use_message]\"</span>", "<span class='warning'>\The [user] holds up \the [name].</span>", runemessage = "\[TTS Voice\] [use_message]")
|
||||
user.audible_message(span_warning("[user]'s [name] rasps, \"[use_message]\""), span_warning("\The [user] holds up \the [name]."), runemessage = "\[TTS Voice\] [use_message]")
|
||||
else
|
||||
if(insults > 0)
|
||||
playsound(src, 'sound/voice/binsult.ogg', 100, 1, vary = 0)
|
||||
// Yes, it used to show the transcription of the sound clip. That was a) inaccurate b) immature as shit.
|
||||
user.audible_message("<span class='warning'>[user]'s [name] gurgles something indecipherable and deeply offensive.</span>", "<span class='warning'>\The [user] holds up \the [name].</span>", runemessage = "\[TTS Voice\] #&@&^%(*")
|
||||
user.audible_message(span_warning("[user]'s [name] gurgles something indecipherable and deeply offensive."), span_warning("\The [user] holds up \the [name]."), runemessage = "\[TTS Voice\] #&@&^%(*")
|
||||
insults--
|
||||
else
|
||||
to_chat(user, "<span class='danger'>*BZZZZZZZZT*</span>")
|
||||
to_chat(user, span_danger("*BZZZZZZZZT*"))
|
||||
|
||||
spamcheck = 1
|
||||
spawn(20)
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
/obj/item/hailer/emag_act(var/remaining_charges, var/mob/user)
|
||||
if(isnull(insults))
|
||||
to_chat(user, "<span class='danger'>You overload \the [src]'s voice synthesizer.</span>")
|
||||
to_chat(user, span_danger("You overload \the [src]'s voice synthesizer."))
|
||||
insults = rand(1, 3)//to prevent dickflooding
|
||||
return 1
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user