Merge pull request #6503 from Rykka-Stormheart/shep-dev-chat-refactor

Update Chat System to use to_chat(src, "") instead of src << ""
This commit is contained in:
Atermonera
2019-11-05 13:31:35 -09:00
committed by GitHub
140 changed files with 710 additions and 695 deletions

View File

@@ -231,7 +231,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
set name = "Re-enter Corpse"
if(!client) return
if(!(mind && mind.current && can_reenter_corpse))
src << "<span class='warning'>You have no body.</span>"
to_chat(src, "<span class='warning'>You have no body.</span>")
return
if(mind.current.key && copytext(mind.current.key,1,2)!="@") //makes sure we don't accidentally kick any clients
usr << "<span class='warning'>Another consciousness is in your body... it is resisting you.</span>"
@@ -274,10 +274,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
set desc = "Toggles AntagHUD allowing you to see who is the antagonist"
if(!config.antag_hud_allowed && !client.holder)
src << "<font color='red'>Admins have disabled this for this round.</font>"
to_chat(src, "<font color='red'>Admins have disabled this for this round.</font>")
return
if(jobban_isbanned(src, "AntagHUD"))
src << "<font color='red'><B>You have been banned from using this feature</B></font>"
to_chat(src, "<font color='red'><B>You have been banned from using this feature</B></font>")
return
if(config.antag_hud_restricted && !has_enabled_antagHUD && !client.holder)
var/response = alert(src, "If you turn this on, you will not be able to take any part in the round.","Are you sure you want to turn this feature on?","Yes","No")
@@ -324,7 +324,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if(following && following == target)
return
following = target
src << "<span class='notice'>Now following [target]</span>"
to_chat(src, "<span class='notice'>Now following [target]</span>")
if(ismob(target))
forceMove(get_turf(target))
var/mob/M = target
@@ -401,7 +401,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
forceMove(T)
following = null
else
src << "This mob is not located in the game world."
to_chat(src, "This mob is not located in the game world.")
/*
/mob/observer/dead/verb/boo()
set category = "Ghost"
@@ -420,11 +420,11 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
/mob/observer/dead/memory()
set hidden = 1
src << "<font color='red'>You are dead! You have no mind to store memory!</font>"
to_chat(src, "<font color='red'>You are dead! You have no mind to store memory!</font>")
/mob/observer/dead/add_memory()
set hidden = 1
src << "<font color='red'>You are dead! You have no mind to store memory!</font>"
to_chat(src, "<font color='red'>You are dead! You have no mind to store memory!</font>")
/mob/observer/dead/Post_Incorpmove()
following = null
@@ -444,16 +444,16 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
var/pressure = environment.return_pressure()
var/total_moles = environment.total_moles
src << "<font color='blue'><B>Results:</B></font>"
to_chat(src, "<font color='blue'><B>Results:</B></font>")
if(abs(pressure - ONE_ATMOSPHERE) < 10)
src << "<font color='blue'>Pressure: [round(pressure,0.1)] kPa</font>"
to_chat(src, "<font color='blue'>Pressure: [round(pressure,0.1)] kPa</font>")
else
src << "<font color='red'>Pressure: [round(pressure,0.1)] kPa</font>"
to_chat(src, "<font color='red'>Pressure: [round(pressure,0.1)] kPa</font>")
if(total_moles)
for(var/g in environment.gas)
src << "<font color='blue'>[gas_data.name[g]]: [round((environment.gas[g] / total_moles) * 100)]% ([round(environment.gas[g], 0.01)] moles)</font>"
src << "<font color='blue'>Temperature: [round(environment.temperature-T0C,0.1)]&deg;C ([round(environment.temperature,0.1)]K)</font>"
src << "<font color='blue'>Heat Capacity: [round(environment.heat_capacity(),0.1)]</font>"
to_chat(src, "<font color='blue'>[gas_data.name[g]]: [round((environment.gas[g] / total_moles) * 100)]% ([round(environment.gas[g], 0.01)] moles)</font>")
to_chat(src, "<font color='blue'>Temperature: [round(environment.temperature-T0C,0.1)]&deg;C ([round(environment.temperature,0.1)]K)</font>")
to_chat(src, "<font color='blue'>Heat Capacity: [round(environment.heat_capacity(),0.1)]</font>")
/mob/observer/dead/verb/check_radiation()
set name = "Check Radiation"
@@ -470,7 +470,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
set category = "Ghost"
if(config.disable_player_mice)
src << "<span class='warning'>Spawning as a mouse is currently disabled.</span>"
to_chat(src, "<span class='warning'>Spawning as a mouse is currently disabled.</span>")
return
if(!MayRespawn(1))
@@ -478,14 +478,14 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
var/turf/T = get_turf(src)
if(!T || (T.z in using_map.admin_levels))
src << "<span class='warning'>You may not spawn as a mouse on this Z-level.</span>"
to_chat(src, "<span class='warning'>You may not spawn as a mouse on this Z-level.</span>")
return
var/timedifference = world.time - client.time_died_as_mouse
if(client.time_died_as_mouse && timedifference <= mouse_respawn_time * 600)
var/timedifference_text
timedifference_text = time2text(mouse_respawn_time * 600 - timedifference,"mm:ss")
src << "<span class='warning'>You may only spawn again as a mouse more than [mouse_respawn_time] minutes after your death. You have [timedifference_text] left.</span>"
to_chat(src, "<span class='warning'>You may only spawn again as a mouse more than [mouse_respawn_time] minutes after your death. You have [timedifference_text] left.</span>")
return
var/response = alert(src, "Are you -sure- you want to become a mouse?","Are you sure you want to squeek?","Squeek!","Nope!")
@@ -503,7 +503,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
vent_found = pick(found_vents)
host = new /mob/living/simple_mob/animal/passive/mouse(vent_found)
else
src << "<span class='warning'>Unable to find any unwelded vents to spawn mice at.</span>"
to_chat(src, "<span class='warning'>Unable to find any unwelded vents to spawn mice at.</span>")
if(host)
if(config.uneducated_mice)
@@ -540,7 +540,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
set desc = "If the round is sufficiently spooky, write a short message in blood on the floor or a wall. Remember, no IC in OOC or OOC in IC."
if(!(config.cult_ghostwriter))
src << "<font color='red'>That verb is not currently permitted.</font>"
to_chat(src, "<font color='red'>That verb is not currently permitted.</font>")
return
if (!src.stat)
@@ -555,7 +555,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
ghosts_can_write = 1
if(!ghosts_can_write && !check_rights(R_ADMIN, 0)) //Let's allow for admins to write in blood for events and the such.
src << "<font color='red'>The veil is not thin enough for you to do that.</font>"
to_chat(src, "<font color='red'>The veil is not thin enough for you to do that.</font>")
return
var/list/choices = list()
@@ -564,7 +564,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
choices += B
if(!choices.len)
src << "<span class = 'warning'>There is no blood to use nearby.</span>"
to_chat(src, "<span class = 'warning'>There is no blood to use nearby.</span>")
return
var/obj/effect/decal/cleanable/blood/choice = input(src,"What blood would you like to use?") in null|choices
@@ -575,7 +575,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
T = get_step(T,text2dir(direction))
if (!istype(T))
src << "<span class='warning'>You cannot doodle there.</span>"
to_chat(src, "<span class='warning'>You cannot doodle there.</span>")
return
if(!choice || choice.amount == 0 || !(src.Adjacent(choice)))
@@ -587,7 +587,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
for (var/obj/effect/decal/cleanable/blood/writing/W in T)
num_doodles++
if (num_doodles > 4)
src << "<span class='warning'>There is no space to write on!</span>"
to_chat(src, "<span class='warning'>There is no space to write on!</span>")
return
var/max_length = 50
@@ -598,7 +598,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
if (length(message) > max_length)
message += "-"
src << "<span class='warning'>You ran out of blood to write with!</span>"
to_chat(src, "<span class='warning'>You ran out of blood to write with!</span>")
var/obj/effect/decal/cleanable/blood/writing/W = new(T)
W.basecolor = doodle_color
@@ -652,14 +652,14 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
var/toggled_invisible
if(!forced && plane == PLANE_GHOSTS && world.time < toggled_invisible + 600)
src << "You must gather strength before you can turn visible again..."
to_chat(src, "You must gather strength before you can turn visible again...")
return
if(plane == PLANE_WORLD)
toggled_invisible = world.time
visible_message("<span class='emote'>It fades from sight...</span>", "<span class='info'>You are now invisible.</span>")
else
src << "<span class='info'>You are now visible!</span>"
to_chat(src, "<span class='info'>You are now visible!</span>")
plane = (plane == PLANE_GHOSTS) ? PLANE_WORLD : PLANE_GHOSTS
invisibility = (plane == PLANE_WORLD) ? 0 : INVISIBILITY_OBSERVER
@@ -674,9 +674,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
src.anonsay = !src.anonsay
if(anonsay)
src << "<span class='info'>Your key won't be shown when you speak in dead chat.</span>"
to_chat(src, "<span class='info'>Your key won't be shown when you speak in dead chat.</span>")
else
src << "<span class='info'>Your key will be publicly visible again.</span>"
to_chat(src, "<span class='info'>Your key will be publicly visible again.</span>")
/mob/observer/dead/canface()
return 1
@@ -709,11 +709,11 @@ mob/observer/dead/MayRespawn(var/feedback = 0)
return 0
if(mind && mind.current && mind.current.stat != DEAD && can_reenter_corpse)
if(feedback)
src << "<span class='warning'>Your non-dead body prevent you from respawning.</span>"
to_chat(src, "<span class='warning'>Your non-dead body prevent you from respawning.</span>")
return 0
if(config.antag_hud_restricted && has_enabled_antagHUD == 1)
if(feedback)
src << "<span class='warning'>antagHUD restrictions prevent you from respawning.</span>"
to_chat(src, "<span class='warning'>antagHUD restrictions prevent you from respawning.</span>")
return 0
return 1
@@ -750,12 +750,12 @@ mob/observer/dead/MayRespawn(var/feedback = 0)
if(msg)
log_say("(SPECWHISP to [key_name(M)]): [msg]", src)
M << "<span class='warning'> You hear a strange, unidentifiable voice in your head... <font color='purple'>[msg]</font></span>"
src << "<span class='warning'> You said: '[msg]' to [M].</span>"
to_chat(src, "<span class='warning'> You said: '[msg]' to [M].</span>")
else
return
return 1
else
src << "<span class='danger'>You have not been pulled past the veil!</span>"
to_chat(src, "<span class='danger'>You have not been pulled past the veil!</span>")
/mob/observer/dead/verb/choose_ghost_sprite()
set category = "Ghost"

View File

@@ -10,7 +10,7 @@
if(message)
client.handle_spam_prevention(MUTE_DEADCHAT)
if(src.client.prefs.muted & MUTE_DEADCHAT)
src << "<font color='red'>You cannot talk in deadchat (muted).</font>"
to_chat(src, "<font color='red'>You cannot talk in deadchat (muted).</font>")
return
. = src.say_dead(message)
@@ -31,7 +31,7 @@
if(message)
client.handle_spam_prevention(MUTE_DEADCHAT)
if(src.client.prefs.muted & MUTE_DEADCHAT)
src << "<font color='red'>You cannot emote in deadchat (muted).</font>"
to_chat(src, "<font color='red'>You cannot emote in deadchat (muted).</font>")
return
. = src.emote_dead(message)

View File

@@ -3,7 +3,7 @@
//m_type == 2 --> audible
/mob/proc/custom_emote(var/m_type=1,var/message = null,var/range=world.view)
if(stat || !use_me && usr == src)
src << "You are unable to emote."
to_chat(src, "You are unable to emote.")
return
var/muzzled = is_muzzled()
@@ -55,16 +55,16 @@
/mob/proc/emote_dead(var/message)
if(client.prefs.muted & MUTE_DEADCHAT)
src << "<span class='danger'>You cannot send deadchat emotes (muted).</span>"
to_chat(src, "<span class='danger'>You cannot send deadchat emotes (muted).</span>")
return
if(!is_preference_enabled(/datum/client_preference/show_dsay))
src << "<span class='danger'>You have deadchat muted.</span>"
to_chat(src, "<span class='danger'>You have deadchat muted.</span>")
return
if(!src.client.holder)
if(!config.dsay_allowed)
src << "<span class='danger'>Deadchat is globally muted.</span>"
to_chat(src, "<span class='danger'>Deadchat is globally muted.</span>")
return

View File

@@ -60,9 +60,9 @@
if(is_deaf())
if(!language || !(language.flags & INNATE)) // INNATE is the flag for audible-emote-language, so we don't want to show an "x talks but you cannot hear them" message if it's set
if(speaker == src)
src << "<span class='warning'>You cannot hear yourself speak!</span>"
to_chat(src, "<span class='warning'>You cannot hear yourself speak!</span>")
else
src << "<span class='name'>[speaker_name]</span>[alt_name] talks but you cannot hear."
to_chat(src, "<span class='name'>[speaker_name]</span>[alt_name] talks but you cannot hear.")
else
var/message_to_send = null
if(language)
@@ -251,7 +251,7 @@
if((sdisabilities & DEAF) || ear_deaf)
if(prob(20))
src << "<span class='warning'>You feel your headset vibrate but can hear nothing from it!</span>"
to_chat(src, "<span class='warning'>You feel your headset vibrate but can hear nothing from it!</span>")
else
on_hear_radio(part_a, speaker_name, track, part_b, formatted)

View File

@@ -156,11 +156,11 @@ var/list/holder_mob_icon_cache = list()
if(self_grab)
grabber << "<span class='notice'>\The [src] clambers onto you!</span>"
src << "<span class='notice'>You climb up onto \the [grabber]!</span>"
to_chat(src, "<span class='notice'>You climb up onto \the [grabber]!</span>")
grabber.equip_to_slot_if_possible(H, slot_back, 0, 1)
else
grabber << "<span class='notice'>You scoop up \the [src]!</span>"
src << "<span class='notice'>\The [grabber] scoops you up!</span>"
to_chat(src, "<span class='notice'>\The [grabber] scoops you up!</span>")
H.sync(src)
return H

View File

@@ -56,7 +56,7 @@ var/list/slot_equipment_priority = list( \
else
if(!disable_warning)
src << "<font color='red'>You are unable to equip that.</font>" //Only print if del_on_fail is false
to_chat(src, "<font color='red'>You are unable to equip that.</font>") //Only print if del_on_fail is false
return 0
equip_to_slot(W, slot, redraw_mob) //This proc should not ever fail.

View File

@@ -144,9 +144,9 @@
/mob/observer/dead/hear_broadcast(var/datum/language/language, var/mob/speaker, var/speaker_name, var/message)
if(speaker.name == speaker_name || antagHUD)
src << "<i><span class='game say'>[language.name], <span class='name'>[speaker_name]</span> ([ghost_follow_link(speaker, src)]) [message]</span></i>"
to_chat(src, "<i><span class='game say'>[language.name], <span class='name'>[speaker_name]</span> ([ghost_follow_link(speaker, src)]) [message]</span></i>")
else
src << "<i><span class='game say'>[language.name], <span class='name'>[speaker_name]</span> [message]</span></i>"
to_chat(src, "<i><span class='game say'>[language.name], <span class='name'>[speaker_name]</span> [message]</span></i>")
/datum/language/proc/check_special_condition(var/mob/other)
return 1

View File

@@ -25,15 +25,15 @@
autohiss_mode = (autohiss_mode + 1) % AUTOHISS_NUM
switch(autohiss_mode)
if(AUTOHISS_OFF)
src << "Auto-hiss is now OFF."
to_chat(src, "Auto-hiss is now OFF.")
if(AUTOHISS_BASIC)
src << "Auto-hiss is now BASIC."
to_chat(src, "Auto-hiss is now BASIC.")
if(AUTOHISS_FULL)
src << "Auto-hiss is now FULL."
to_chat(src, "Auto-hiss is now FULL.")
else
soft_assert(0, "invalid autohiss value [autohiss_mode]")
autohiss_mode = AUTOHISS_OFF
src << "Auto-hiss is now OFF."
to_chat(src, "Auto-hiss is now OFF.")
/datum/species
var/list/autohiss_basic_map = null

View File

@@ -25,15 +25,15 @@
var/mob/living/M = input(src,"Who do you wish to merge with?") in null|choices
if(!M)
src << "There is nothing nearby to merge with."
to_chat(src, "There is nothing nearby to merge with.")
else if(!do_merge(M))
src << "You fail to merge with \the [M]..."
to_chat(src, "You fail to merge with \the [M]...")
/mob/living/carbon/alien/diona/proc/do_merge(var/mob/living/carbon/human/H)
if(!istype(H) || !src || !(src.Adjacent(H)))
return 0
H << "You feel your being twine with that of \the [src] as it merges with your biomass."
src << "You feel your being twine with that of \the [H] as you merge with its biomass."
to_chat(src, "You feel your being twine with that of \the [H] as you merge with its biomass.")
loc = H
verbs += /mob/living/carbon/alien/diona/proc/split
verbs -= /mob/living/carbon/alien/diona/proc/merge
@@ -53,7 +53,7 @@
return
src.loc << "You feel a pang of loss as [src] splits away from your biomass."
src << "You wiggle out of the depths of [src.loc]'s biomass and plop to the ground."
to_chat(src, "You wiggle out of the depths of [src.loc]'s biomass and plop to the ground.")
var/mob/living/M = src.loc

View File

@@ -5,7 +5,7 @@
return null
if(amount_grown < max_grown)
src << "You are not yet ready for your growth..."
to_chat(src, "You are not yet ready for your growth...")
return null
src.split()

View File

@@ -16,7 +16,7 @@
return
if (src.client)
if (client.prefs.muted & MUTE_IC)
src << "<font color='red'>You cannot send IC messages (muted).</font>"
to_chat(src, "<font color='red'>You cannot send IC messages (muted).</font>")
return
if (stat)
return
@@ -115,7 +115,7 @@
playsound(src.loc, 'sound/misc/nymphchirp.ogg', 50, 0)
m_type = 2
if("help")
src << "burp, chirp, choke, collapse, dance, drool, gasp, shiver, gnarl, jump, moan, nod, roll, scratch,\nscretch, shake, sign-#, sulk, sway, tail, twitch, whimper"
to_chat(src, "burp, chirp, choke, collapse, dance, drool, gasp, shiver, gnarl, jump, moan, nod, roll, scratch,\nscretch, shake, sign-#, sulk, sway, tail, twitch, whimper")
else
src << text("Invalid Emote: []", act)
if ((message && src.stat == 0))

View File

@@ -1,10 +1,10 @@
/mob/living/carbon/alien/larva/confirm_evolution()
src << "<span class='notice'><b>You are growing into a beautiful alien! It is time to choose a caste.</b></span>"
src << "<span class='notice'>There are three to choose from:</span>"
src << "<B>Hunters</B> <span class='notice'> are strong and agile, able to hunt away from the hive and rapidly move through ventilation shafts. Hunters generate plasma slowly and have low reserves.</span>"
src << "<B>Sentinels</B> <span class='notice'> are tasked with protecting the hive and are deadly up close and at a range. They are not as physically imposing nor fast as the hunters.</span>"
src << "<B>Drones</B> <span class='notice'> are the working class, offering the largest plasma storage and generation. They are the only caste which may evolve again, turning into the dreaded alien queen.</span>"
to_chat(src, "<span class='notice'><b>You are growing into a beautiful alien! It is time to choose a caste.</b></span>")
to_chat(src, "<span class='notice'>There are three to choose from:</span>")
to_chat(src, "<B>Hunters</B> <span class='notice'> are strong and agile, able to hunt away from the hive and rapidly move through ventilation shafts. Hunters generate plasma slowly and have low reserves.</span>")
to_chat(src, "<B>Sentinels</B> <span class='notice'> are tasked with protecting the hive and are deadly up close and at a range. They are not as physically imposing nor fast as the hunters.</span>")
to_chat(src, "<B>Drones</B> <span class='notice'> are the working class, offering the largest plasma storage and generation. They are the only caste which may evolve again, turning into the dreaded alien queen.</span>")
var/alien_caste = alert(src, "Please choose which alien caste you shall belong to.",,"Hunter","Sentinel","Drone")
return alien_caste ? "Xenomorph [alien_caste]" : null

View File

@@ -150,7 +150,7 @@
adjustFireLoss((environment.temperature - (T0C+66))/5) // Might be too high, check in testing.
if (fire) fire.icon_state = "fire2"
if(prob(20))
src << "<font color='red'>You feel a searing heat!</font>"
to_chat(src, "<font color='red'>You feel a searing heat!</font>")
else
if (fire) fire.icon_state = "fire0"

View File

@@ -12,11 +12,11 @@
return
if(handcuffed || legcuffed)
src << "<font color='red'>You cannot evolve when you are cuffed.</font>"
to_chat(src, "<font color='red'>You cannot evolve when you are cuffed.</font>")
return
if(amount_grown < max_grown)
src << "<font color='red'>You are not fully grown.</font>"
to_chat(src, "<font color='red'>You are not fully grown.</font>")
return
// confirm_evolution() handles choices and other specific requirements.

View File

@@ -4,7 +4,7 @@
if(client)
if(client.prefs.muted & MUTE_IC)
src << "<font color='red'>You cannot speak in IC (Muted).</font>"
to_chat(src, "<font color='red'>You cannot speak in IC (Muted).</font>")
return
message = sanitize(message)

View File

@@ -17,7 +17,7 @@
return
if (src.client)
if (client.prefs.muted & MUTE_IC)
src << "<font color='red'>You cannot send IC messages (muted).</font>"
to_chat(src, "<font color='red'>You cannot send IC messages (muted).</font>")
return
if (stat)
return
@@ -28,15 +28,15 @@
if ("custom")
return custom_emote(m_type, message)
if ("alarm")
src << "You sound an alarm."
to_chat(src, "You sound an alarm.")
message = "<B>[src]</B> sounds an alarm."
m_type = 2
if ("alert")
src << "You let out a distressed noise."
to_chat(src, "You let out a distressed noise.")
message = "<B>[src]</B> lets out a distressed noise."
m_type = 2
if ("notice")
src << "You play a loud tone."
to_chat(src, "You play a loud tone.")
message = "<B>[src]</B> plays a loud tone."
m_type = 2
if ("flash")
@@ -46,21 +46,21 @@
message = "<B>[src]</B> blinks."
m_type = 1
if ("whistle")
src << "You whistle."
to_chat(src, "You whistle.")
message = "<B>[src]</B> whistles."
m_type = 2
if ("beep")
src << "You beep."
to_chat(src, "You beep.")
message = "<B>[src]</B> beeps."
m_type = 2
if ("boop")
src << "You boop."
to_chat(src, "You boop.")
message = "<B>[src]</B> boops."
m_type = 2
if ("help")
src << "alarm,alert,notice,flash,blink,whistle,beep,boop"
to_chat(src, "alarm,alert,notice,flash,blink,whistle,beep,boop")
else
src << "<font color='blue'>Unusable emote '[act]'. Say *help for a list.</font>"
to_chat(src, "<font color='blue'>Unusable emote '[act]'. Say *help for a list.</font>")
if (message)
log_emote(message, src)

View File

@@ -6,9 +6,9 @@
if (radiation > 100)
radiation = 100
if(!container)//If it's not in an MMI
src << "<font color='red'>You feel weak.</font>"
to_chat(src, "<font color='red'>You feel weak.</font>")
else//Fluff-wise, since the brain can't detect anything itself, the MMI handles thing like that
src << "<font color='red'>STATUS: CRITICAL AMOUNTS OF RADIATION DETECTED.</font>"
to_chat(src, "<font color='red'>STATUS: CRITICAL AMOUNTS OF RADIATION DETECTED.</font>")
switch(radiation)
if(1 to 49)
@@ -23,9 +23,9 @@
if(prob(5))
radiation -= 5
if(!container)
src << "<font color='red'>You feel weak.</font>"
to_chat(src, "<font color='red'>You feel weak.</font>")
else
src << "<font color='red'>STATUS: DANGEROUS LEVELS OF RADIATION DETECTED.</font>"
to_chat(src, "<font color='red'>STATUS: DANGEROUS LEVELS OF RADIATION DETECTED.</font>")
updatehealth()
if(75 to 100)
@@ -115,7 +115,7 @@
silent = 1
if(!alert)//Sounds an alarm, but only once per 'level'
emote("alarm")
src << "<font color='red'>Major electrical distruption detected: System rebooting.</font>"
to_chat(src, "<font color='red'>Major electrical distruption detected: System rebooting.</font>")
alert = 1
if(prob(75))
emp_damage -= 1
@@ -131,7 +131,7 @@
ear_damage = 1
if(!alert)
emote("alert")
src << "<font color='red'>Primary systems are now online.</font>"
to_chat(src, "<font color='red'>Primary systems are now online.</font>")
alert = 1
if(prob(50))
emp_damage -= 1
@@ -143,13 +143,13 @@
if(2 to 9)//Low level of EMP damage, has few effects(handled elsewhere)
if(!alert)
emote("notice")
src << "<font color='red'>System reboot nearly complete.</font>"
to_chat(src, "<font color='red'>System reboot nearly complete.</font>")
alert = 1
if(prob(25))
emp_damage -= 1
if(1)
alert = 0
src << "<font color='red'>All systems restored.</font>"
to_chat(src, "<font color='red'>All systems restored.</font>")
emp_damage -= 1
return 1

View File

@@ -42,5 +42,5 @@
message_mode = null
return R.radio.talk_into(src,message,message_mode,verb,speaking)
else
src << "<span class='danger'>Your radio is disabled.</span>"
to_chat(src, "<span class='danger'>Your radio is disabled.</span>")
return 0

View File

@@ -361,7 +361,7 @@
if(buckled)
return 0
stop_pulling()
src << "<span class='warning'>You slipped on [slipped_on]!</span>"
to_chat(src, "<span class='warning'>You slipped on [slipped_on]!</span>")
playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3)
Weaken(FLOOR(stun_duration/2, 1))
return 1

View File

@@ -8,7 +8,7 @@
var/mob/living/simple_mob/animal/borer/B = has_brain_worms()
if(B && B.host_brain)
src << "<span class='danger'>You withdraw your probosci, releasing control of [B.host_brain]</span>"
to_chat(src, "<span class='danger'>You withdraw your probosci, releasing control of [B.host_brain]</span>")
B.detatch()
@@ -17,7 +17,7 @@
verbs -= /mob/living/carbon/proc/spawn_larvae
else
src << "<span class='danger'>ERROR NO BORER OR BRAINMOB DETECTED IN THIS MOB, THIS IS A BUG !</span>"
to_chat(src, "<span class='danger'>ERROR NO BORER OR BRAINMOB DETECTED IN THIS MOB, THIS IS A BUG !</span>")
//Brain slug proc for tormenting the host.
/mob/living/carbon/proc/punish_host()
@@ -31,10 +31,10 @@
return
if(B.host_brain.ckey)
src << "<span class='danger'>You send a punishing spike of psychic agony lancing into your host's brain.</span>"
to_chat(src, "<span class='danger'>You send a punishing spike of psychic agony lancing into your host's brain.</span>")
if (!can_feel_pain())
B.host_brain << "<span class='warning'>You feel a strange sensation as a foreign influence prods your mind.</span>"
src << "<span class='danger'>It doesn't seem to be as effective as you hoped.</span>"
to_chat(src, "<span class='danger'>It doesn't seem to be as effective as you hoped.</span>")
else
B.host_brain << "<span class='danger'><FONT size=3>Horrific, burning agony lances through you, ripping a soundless scream from your trapped mind!</FONT></span>"
@@ -49,7 +49,7 @@
return
if(B.chemicals >= 100)
src << "<span class='danger'>Your host twitches and quivers as you rapidly excrete a larva from your sluglike body.</span>"
to_chat(src, "<span class='danger'>Your host twitches and quivers as you rapidly excrete a larva from your sluglike body.</span>")
visible_message("<span class='danger'>\The [src] heaves violently, expelling a rush of vomit and a wriggling, sluglike creature!</span>")
B.chemicals -= 100
B.has_reproduced = 1
@@ -58,5 +58,5 @@
new /mob/living/simple_mob/animal/borer(get_turf(src))
else
src << "<span class='warning'>You do not have enough chemicals stored to reproduce.</span>"
to_chat(src, "<span class='warning'>You do not have enough chemicals stored to reproduce.</span>")
return

View File

@@ -12,7 +12,7 @@
if(!I)
I = src.get_inactive_hand()
if(!I)
src << "<span class='warning'>You don't have anything in your hands to give to \the [target].</span>"
to_chat(src, "<span class='warning'>You don't have anything in your hands to give to \the [target].</span>")
return
if(alert(target,"[src] wants to give you \a [I]. Will you accept it?",,"No","Yes") == "No")
@@ -23,18 +23,18 @@
if(!I) return
if(!Adjacent(target))
src << "<span class='warning'>You need to stay in reaching distance while giving an object.</span>"
to_chat(src, "<span class='warning'>You need to stay in reaching distance while giving an object.</span>")
target << "<span class='warning'>\The [src] moved too far away.</span>"
return
if(I.loc != src || !src.item_is_in_hands(I))
src << "<span class='warning'>You need to keep the item in your hands.</span>"
to_chat(src, "<span class='warning'>You need to keep the item in your hands.</span>")
target << "<span class='warning'>\The [src] seems to have given up on passing \the [I] to you.</span>"
return
if(target.hands_are_full())
target << "<span class='warning'>Your hands are full.</span>"
src << "<span class='warning'>Their hands are full.</span>"
to_chat(src, "<span class='warning'>Their hands are full.</span>")
return
if(src.unEquip(I))

View File

@@ -32,7 +32,7 @@
if("ping", "beep", "buzz", "yes", "ye", "no", "rcough", "rsneeze")
if(!isSynthetic())
src << "<span class='warning'>You are not a synthetic.</span>"
to_chat(src, "<span class='warning'>You are not a synthetic.</span>")
return
var/M = null
@@ -81,7 +81,7 @@
//Promethean-only emotes
if("squish")
if(species.bump_flag != SLIME) //This should definitely do it.
src << "<span class='warning'>You are not a slime thing!</span>"
to_chat(src, "<span class='warning'>You are not a slime thing!</span>")
return
playsound(src.loc, 'sound/effects/slime_squish.ogg', 50, 0) //Credit to DrMinky (freesound.org) for the sound.
@@ -137,7 +137,7 @@
if (src.client)
if (client.prefs.muted & MUTE_IC)
src << "<font color='red'>You cannot send IC messages (muted).</font>"
to_chat(src, "<font color='red'>You cannot send IC messages (muted).</font>")
return
if (stat)
return
@@ -704,7 +704,7 @@
if("vomit")
if(isSynthetic())
src << "<span class='warning'>You are unable to vomit.</span>"
to_chat(src, "<span class='warning'>You are unable to vomit.</span>")
return
vomit()
return
@@ -724,13 +724,13 @@
message = "makes a light spitting noise, a poor attempt at a whistle."
if ("help")
src << "blink, blink_r, blush, bow-(none)/mob, burp, choke, chuckle, clap, collapse, cough, cry, custom, deathgasp, drool, eyebrow, fastsway/qwag, \
to_chat(src, "blink, blink_r, blush, bow-(none)/mob, burp, choke, chuckle, clap, collapse, cough, cry, custom, deathgasp, drool, eyebrow, fastsway/qwag, \
frown, gasp, giggle, glare-(none)/mob, grin, groan, grumble, handshake, hug-(none)/mob, laugh, look-(none)/mob, moan, mumble, nod, pale, point-atom, \
raise, salute, scream, sneeze, shake, shiver, shrug, sigh, signal-#1-10, slap-(none)/mob, smile, sneeze, sniff, snore, stare-(none)/mob, stopsway/swag, sway/wag, swish, tremble, twitch, \
twitch_v, vomit, whimper, wink, yawn. Synthetics: beep, buzz, yes, no, rcough, rsneeze, ping"
twitch_v, vomit, whimper, wink, yawn. Synthetics: beep, buzz, yes, no, rcough, rsneeze, ping")
else
src << "<font color='blue'>Unusable emote '[act]'. Say *help for a list.</font>"
to_chat(src, "<font color='blue'>Unusable emote '[act]'. Say *help for a list.</font>")
if (message)
custom_emote(m_type,message)

View File

@@ -704,7 +704,7 @@
if(species.has_fine_manipulation)
return 1
if(!silent)
src << "<span class='warning'>You don't have the dexterity to use that!</span>"
to_chat(src, "<span class='warning'>You don't have the dexterity to use that!</span>")
return 0
/mob/living/carbon/human/abiotic(var/full_body = 0)
@@ -1038,7 +1038,7 @@
if(!istype(O,/obj/item/weapon/implant) && prob(5)) //Moving with things stuck in you could be bad.
// All kinds of embedded objects cause bleeding.
if(!can_feel_pain(organ.organ_tag))
src << "<span class='warning'>You feel [O] moving inside your [organ.name].</span>"
to_chat(src, "<span class='warning'>You feel [O] moving inside your [organ.name].</span>")
else
var/msg = pick( \
"<span class='warning'>A spike of pain jolts your [organ.name] as you bump [O] inside.</span>", \
@@ -1195,26 +1195,26 @@
verbs -= /mob/living/carbon/human/proc/bloody_doodle
if (src.gloves)
src << "<span class='warning'>Your [src.gloves] are getting in the way.</span>"
to_chat(src, "<span class='warning'>Your [src.gloves] are getting in the way.</span>")
return
var/turf/simulated/T = src.loc
if (!istype(T)) //to prevent doodling out of mechs and lockers
src << "<span class='warning'>You cannot reach the floor.</span>"
to_chat(src, "<span class='warning'>You cannot reach the floor.</span>")
return
var/direction = input(src,"Which way?","Tile selection") as anything in list("Here","North","South","East","West")
if (direction != "Here")
T = get_step(T,text2dir(direction))
if (!istype(T))
src << "<span class='warning'>You cannot doodle there.</span>"
to_chat(src, "<span class='warning'>You cannot doodle there.</span>")
return
var/num_doodles = 0
for (var/obj/effect/decal/cleanable/blood/writing/W in T)
num_doodles++
if (num_doodles > 4)
src << "<span class='warning'>There is no space to write on!</span>"
to_chat(src, "<span class='warning'>There is no space to write on!</span>")
return
var/max_length = bloody_hands * 30 //tweeter style
@@ -1227,7 +1227,7 @@
if (length(message) > max_length)
message += "-"
src << "<span class='warning'>You ran out of blood to write with!</span>"
to_chat(src, "<span class='warning'>You ran out of blood to write with!</span>")
var/obj/effect/decal/cleanable/blood/writing/W = new(T)
W.basecolor = (hand_blood_color) ? hand_blood_color : "#A10808"
@@ -1387,7 +1387,7 @@
return
if(self)
src << "<span class='warning'>You brace yourself to relocate your [current_limb.joint]...</span>"
to_chat(src, "<span class='warning'>You brace yourself to relocate your [current_limb.joint]...</span>")
else
U << "<span class='warning'>You begin to relocate [S]'s [current_limb.joint]...</span>"
@@ -1397,7 +1397,7 @@
return
if(self)
src << "<span class='danger'>You pop your [current_limb.joint] back in!</span>"
to_chat(src, "<span class='danger'>You pop your [current_limb.joint] back in!</span>")
else
U << "<span class='danger'>You pop [S]'s [current_limb.joint] back in!</span>"
S << "<span class='danger'>[U] pops your [current_limb.joint] back in!</span>"
@@ -1480,11 +1480,11 @@
if(!UWC) return
var/datum/category_item/underwear/UWI = all_underwear[UWC.name]
if(!UWI || UWI.name == "None")
src << "<span class='notice'>You do not have [UWC.gender==PLURAL ? "[UWC.display_name]" : "\a [UWC.display_name]"].</span>"
to_chat(src, "<span class='notice'>You do not have [UWC.gender==PLURAL ? "[UWC.display_name]" : "a [UWC.display_name]"].</span>")
return
hide_underwear[UWC.name] = !hide_underwear[UWC.name]
update_underwear(1)
src << "<span class='notice'>You [hide_underwear[UWC.name] ? "take off" : "put on"] your [UWC.display_name].</span>"
to_chat(src, "<span class='notice'>You [hide_underwear[UWC.name] ? "take off" : "put on"] your [UWC.display_name].</span>")
return
/mob/living/carbon/human/verb/pull_punches()
@@ -1494,7 +1494,7 @@
if(stat) return
pulling_punches = !pulling_punches
src << "<span class='notice'>You are now [pulling_punches ? "pulling your punches" : "not pulling your punches"].</span>"
to_chat(src, "<span class='notice'>You are now [pulling_punches ? "pulling your punches" : "not pulling your punches"].</span>")
return
/mob/living/carbon/human/should_have_organ(var/organ_check)

View File

@@ -84,7 +84,7 @@
if(istype(H) && health > config.health_threshold_dead)
adjustOxyLoss(-(min(getOxyLoss(), 5)))
updatehealth()
src << "<span class='notice'>You feel a breath of fresh air enter your lungs. It feels good.</span>"
to_chat(src, "<span class='notice'>You feel a breath of fresh air enter your lungs. It feels good.</span>")
else if(!(M == src && apply_pressure(M, M.zone_sel.selecting)))
help_shake_act(M)

View File

@@ -249,21 +249,21 @@
if (candidates.len)
var/obj/item/organ/external/O = pick(candidates)
O.mutate()
src << "<span class = 'notice'>Something is not right with your [O.name]...</span>"
to_chat(src, "<span class = 'notice'>Something is not right with your [O.name]...</span>")
return
else
if (prob(heal_prob))
for (var/obj/item/organ/external/O in organs)
if (O.status & ORGAN_MUTATED)
O.unmutate()
src << "<span class = 'notice'>Your [O.name] is shaped normally again.</span>"
to_chat(src, "<span class = 'notice'>Your [O.name] is shaped normally again.</span>")
return
if (getCloneLoss() < 1)
for (var/obj/item/organ/external/O in organs)
if (O.status & ORGAN_MUTATED)
O.unmutate()
src << "<span class = 'notice'>Your [O.name] is shaped normally again.</span>"
to_chat(src, "<span class = 'notice'>Your [O.name] is shaped normally again.</span>")
BITSET(hud_updateflag, HEALTH_HUD)
// Defined here solely to take species flags into account without having to recast at mob/living level.

View File

@@ -416,7 +416,7 @@ emp_act
//If the armor absorbs all of the damage, skip the rest of the calculations
var/soaked = get_armor_soak(affecting, "melee", O.armor_penetration)
if(soaked >= throw_damage)
src << "Your armor absorbs the force of [O.name]!"
to_chat(src, "Your armor absorbs the force of [O.name]!")
return
var/armor = run_armor_check(affecting, "melee", O.armor_penetration, "Your armor has protected your [hit_area].", "Your armor has softened hit to your [hit_area].") //I guess "melee" is the best fit here

View File

@@ -8,9 +8,9 @@
return 1
if(feedback)
if(status[1] == HUMAN_EATING_NO_MOUTH)
src << "Where do you intend to put \the [food]? You don't have a mouth!"
to_chat(src, "Where do you intend to put \the [food]? You don't have a mouth!")
else if(status[1] == HUMAN_EATING_BLOCKED_MOUTH)
src << "<span class='warning'>\The [status[2]] is in the way!</span>"
to_chat(src, "<span class='warning'>\The [status[2]] is in the way!</span>")
return 0
/mob/living/carbon/human/can_force_feed(var/feeder, var/food, var/feedback = 1)

View File

@@ -42,7 +42,7 @@
return
if(stat || paralysis || stunned || weakened || lying || restrained() || buckled)
src << "You cannot tackle someone in your current state."
to_chat(src, "You cannot tackle someone in your current state.")
return
var/list/choices = list()
@@ -61,7 +61,7 @@
return
if(stat || paralysis || stunned || weakened || lying || restrained() || buckled)
src << "You cannot tackle in your current state."
to_chat(src, "You cannot tackle in your current state.")
return
last_special = world.time + 50
@@ -103,7 +103,7 @@
var/mob/M = targets[target]
if(istype(M, /mob/observer/dead) || M.stat == DEAD)
src << "Not even a [src.species.name] can speak to the dead."
to_chat(src, "Not even a [src.species.name] can speak to the dead.")
return
log_say("(COMMUNE to [key_name(M)]) [text]",src)
@@ -138,7 +138,7 @@
if(msg)
log_say("(PWHISPER to [key_name(M)]) [msg]", src)
M << "<font color='green'>You hear a strange, alien voice in your head... <i>[msg]</i></font>"
src << "<font color='green'>You said: \"[msg]\" to [M]</font>"
to_chat(src, "<font color='green'>You said: \"[msg]\" to [M]</font>")
return
/mob/living/carbon/human/proc/diona_split_nymph()
@@ -189,7 +189,7 @@
if(stat == DEAD) return
src << "<span class='notice'>Performing self-diagnostic, please wait...</span>"
to_chat(src, "<span class='notice'>Performing self-diagnostic, please wait...</span>")
sleep(50)
var/output = "<span class='notice'>Self-Diagnostic Results:\n</span>"
@@ -226,17 +226,17 @@
set category = "Abilities"
if(incapacitated())
src << "<span class='warning'>You need to recover before you can use this ability.</span>"
to_chat(src, "<span class='warning'>You need to recover before you can use this ability.</span>")
return
if(world.time < next_sonar_ping)
src << "<span class='warning'>You need another moment to focus.</span>"
to_chat(src, "<span class='warning'>You need another moment to focus.</span>")
return
if(is_deaf() || is_below_sound_pressure(get_turf(src)))
src << "<span class='warning'>You are for all intents and purposes currently deaf!</span>"
to_chat(src, "<span class='warning'>You are for all intents and purposes currently deaf!</span>")
return
next_sonar_ping += 10 SECONDS
var/heard_something = FALSE
src << "<span class='notice'>You take a moment to listen in to your environment...</span>"
to_chat(src, "<span class='notice'>You take a moment to listen in to your environment...</span>")
for(var/mob/living/L in range(client.view, src))
var/turf/T = get_turf(L)
if(!T || L == src || L.stat == DEAD || is_below_sound_pressure(T))
@@ -263,7 +263,7 @@
feedback += "</span>"
src << jointext(feedback,null)
if(!heard_something)
src << "<span class='notice'>You hear no movement but your own.</span>"
to_chat(src, "<span class='notice'>You hear no movement but your own.</span>")
/mob/living/carbon/human/proc/regenerate()
set name = "Regenerate"

View File

@@ -327,7 +327,7 @@ This saves us from having to call add_fingerprint() any time something is put in
if(C.attempt_attach_accessory(A, src))
return
else
src << "<font color='red'>You are trying to equip this item to an unsupported inventory slot. How the heck did you manage that? Stop it...</font>"
to_chat(src, "<font color='red'>You are trying to equip this item to an unsupported inventory slot. How the heck did you manage that? Stop it...</font>")
return
if((W == src.l_hand) && (slot != slot_l_hand))

View File

@@ -188,7 +188,7 @@
if (disabilities & EPILEPSY)
if ((prob(1) && paralysis < 1))
src << "<font color='red'>You have a seizure!</font>"
to_chat(src, "<font color='red'>You have a seizure!</font>")
for(var/mob/O in viewers(src, null))
if(O == src)
continue
@@ -222,19 +222,19 @@
custom_pain("Your head feels numb and painful.", 10)
if(getBrainLoss() >= 15)
if(4 <= rn && rn <= 6) if(eye_blurry <= 0)
src << "<span class='warning'>It becomes hard to see for some reason.</span>"
to_chat(src, "<span class='warning'>It becomes hard to see for some reason.</span>")
eye_blurry = 10
if(getBrainLoss() >= 35)
if(7 <= rn && rn <= 9) if(get_active_hand())
src << "<span class='danger'>Your hand won't respond properly, you drop what you're holding!</span>"
to_chat(src, "<span class='danger'>Your hand won't respond properly, you drop what you're holding!</span>")
drop_item()
if(getBrainLoss() >= 45)
if(10 <= rn && rn <= 12)
if(prob(50))
src << "<span class='danger'>You suddenly black out!</span>"
to_chat(src, "<span class='danger'>You suddenly black out!</span>")
Paralyse(10)
else if(!lying)
src << "<span class='danger'>Your legs won't respond properly, you fall down!</span>"
to_chat(src, "<span class='danger'>Your legs won't respond properly, you fall down!</span>")
Weaken(10)
@@ -293,13 +293,13 @@
if(!isSynthetic())
if(prob(5) && prob(100 * RADIATION_SPEED_COEFFICIENT))
radiation -= 5 * RADIATION_SPEED_COEFFICIENT
src << "<span class='warning'>You feel weak.</span>"
to_chat(src, "<span class='warning'>You feel weak.</span>")
Weaken(3)
if(!lying)
emote("collapse")
if(prob(5) && prob(100 * RADIATION_SPEED_COEFFICIENT) && species.get_bodytype() == SPECIES_HUMAN) //apes go bald
if((h_style != "Bald" || f_style != "Shaved" ))
src << "<span class='warning'>Your hair falls out.</span>"
to_chat(src, "<span class='warning'>Your hair falls out.</span>")
h_style = "Bald"
f_style = "Shaved"
update_hair()
@@ -311,7 +311,7 @@
if(prob(5))
take_overall_damage(0, 5 * RADIATION_SPEED_COEFFICIENT, used_weapon = "Radiation Burns")
if(prob(1))
src << "<span class='warning'>You feel strange!</span>"
to_chat(src, "<span class='warning'>You feel strange!</span>")
adjustCloneLoss(5 * RADIATION_SPEED_COEFFICIENT)
emote("gasp")
@@ -483,7 +483,7 @@
if(exhaled_pp > safe_exhaled_max)
if (!co2_alert|| prob(15))
var/word = pick("extremely dizzy","short of breath","faint","confused")
src << "<span class='danger'>You feel [word].</span>"
to_chat(src, "<span class='danger'>You feel [word].</span>")
adjustOxyLoss(HUMAN_MAX_OXYLOSS)
co2_alert = 1
@@ -492,7 +492,7 @@
else if(exhaled_pp > safe_exhaled_max * 0.7)
if (!co2_alert || prob(1))
var/word = pick("dizzy","short of breath","faint","momentarily confused")
src << "<span class='warning'>You feel [word].</span>"
to_chat(src, "<span class='warning'>You feel [word].</span>")
//scale linearly from 0 to 1 between safe_exhaled_max and safe_exhaled_max*0.7
var/ratio = 1.0 - (safe_exhaled_max - exhaled_pp)/(safe_exhaled_max*0.3)
@@ -506,7 +506,7 @@
else if(exhaled_pp > safe_exhaled_max * 0.6)
if (prob(0.3))
var/word = pick("a little dizzy","short of breath")
src << "<span class='warning'>You feel [word].</span>"
to_chat(src, "<span class='warning'>You feel [word].</span>")
else
co2_alert = 0
@@ -554,10 +554,10 @@
if(breath.temperature <= species.breath_cold_level_1)
if(prob(20))
src << "<span class='danger'>You feel your face freezing and icicles forming in your lungs!</span>"
to_chat(src, "<span class='danger'>You feel your face freezing and icicles forming in your lungs!</span>")
else if(breath.temperature >= species.breath_heat_level_1)
if(prob(20))
src << "<span class='danger'>You feel your face burning and a searing heat in your lungs!</span>"
to_chat(src, "<span class='danger'>You feel your face burning and a searing heat in your lungs!</span>")
if(breath.temperature >= species.breath_heat_level_1)
if(breath.temperature < species.breath_heat_level_2)
@@ -978,7 +978,7 @@
adjustBrainLoss(brainOxPercent * oxyloss)
if(halloss >= species.total_health)
src << "<span class='notice'>You're in too much pain to keep going...</span>"
to_chat(src, "<span class='notice'>You're in too much pain to keep going...</span>")
src.visible_message("<B>[src]</B> slumps to the ground, too weak to continue fighting.")
Paralyse(10)
setHalLoss(species.total_health - 1)
@@ -1517,22 +1517,22 @@
stuttering = max(stuttering, 5)
if(shock_stage == 40)
src << "<span class='danger'>[pick("The pain is excruciating", "Please, just end the pain", "Your whole body is going numb")]!</span>"
to_chat(src, "<span class='danger'>[pick("The pain is excruciating", "Please&#44; just end the pain", "Your whole body is going numb")]!</span>")
if (shock_stage >= 60)
if(shock_stage == 60) emote("me",1,"'s body becomes limp.")
if (prob(2))
src << "<span class='danger'>[pick("The pain is excruciating", "Please, just end the pain", "Your whole body is going numb")]!</span>"
to_chat(src, "<span class='danger'>[pick("The pain is excruciating", "Please&#44; just end the pain", "Your whole body is going numb")]!</span>")
Weaken(20)
if(shock_stage >= 80)
if (prob(5))
src << "<span class='danger'>[pick("The pain is excruciating", "Please, just end the pain", "Your whole body is going numb")]!</span>"
to_chat(src, "<span class='danger'>[pick("The pain is excruciating", "Please&#44; just end the pain", "Your whole body is going numb")]!</span>")
Weaken(20)
if(shock_stage >= 120)
if (prob(2))
src << "<span class='danger'>[pick("You black out", "You feel like you could die any moment now", "You're about to lose consciousness")]!</span>"
to_chat(src, "<span class='danger'>[pick("You black out", "You feel like you could die any moment now", "You are about to lose consciousness")]!</span>")
Paralyse(5)
if(shock_stage == 150)

View File

@@ -22,20 +22,20 @@
var/obj/item/organ/internal/xenos/plasmavessel/P = internal_organs_by_name[O_PLASMA]
if(!istype(P))
src << "<span class='danger'>Your plasma vessel has been removed!</span>"
to_chat(src, "<span class='danger'>Your plasma vessel has been removed!</span>")
return
if(needs_organ)
var/obj/item/organ/internal/I = internal_organs_by_name[needs_organ]
if(!I)
src << "<span class='danger'>Your [needs_organ] has been removed!</span>"
to_chat(src, "<span class='danger'>Your [needs_organ] has been removed!</span>")
return
else if((I.status & ORGAN_CUT_AWAY) || I.is_broken())
src << "<span class='danger'>Your [needs_organ] is too damaged to function!</span>"
to_chat(src, "<span class='danger'>Your [needs_organ] is too damaged to function!</span>")
return
if(P.stored_plasma < cost)
src << "<span class='danger'>You don't have enough phoron stored to do that.</span>"
to_chat(src, "<span class='danger'>You don't have enough phoron stored to do that.</span>")
return 0
if(needs_foundation)
@@ -46,7 +46,7 @@
if(!(istype(T,/turf/space)))
has_foundation = 1
if(!has_foundation)
src << "<span class='danger'>You need a solid foundation to do that on.</span>"
to_chat(src, "<span class='danger'>You need a solid foundation to do that on.</span>")
return 0
P.stored_plasma -= cost
@@ -59,12 +59,12 @@
set category = "Abilities"
if (get_dist(src,M) <= 1)
src << "<span class='alium'>You need to be closer.</span>"
to_chat(src, "<span class='alium'>You need to be closer.</span>")
return
var/obj/item/organ/internal/xenos/plasmavessel/I = M.internal_organs_by_name[O_PLASMA]
if(!istype(I))
src << "<span class='alium'>Their plasma vessel is missing.</span>"
to_chat(src, "<span class='alium'>Their plasma vessel is missing.</span>")
return
var/amount = input("Amount:", "Transfer Plasma to [M]") as num
@@ -73,7 +73,7 @@
if(check_alien_ability(amount,0,O_PLASMA))
M.gain_plasma(amount)
M << "<span class='alium'>[src] has transfered [amount] plasma to you.</span>"
src << "<span class='alium'>You have transferred [amount] plasma to [M].</span>"
to_chat(src, "<span class='alium'>You have transferred [amount] plasma to [M].</span>")
return
// Queen verbs.
@@ -84,12 +84,12 @@
set category = "Abilities"
if(!config.aliens_allowed)
src << "You begin to lay an egg, but hesitate. You suspect it isn't allowed."
to_chat(src, "You begin to lay an egg, but hesitate. You suspect it isn't allowed.")
verbs -= /mob/living/carbon/human/proc/lay_egg
return
if(locate(/obj/effect/alien/egg) in get_turf(src))
src << "There's already an egg here."
to_chat(src, "There's already an egg here.")
return
if(check_alien_ability(75,1,O_EGG))
@@ -105,7 +105,7 @@
set category = "Abilities"
if(alien_queen_exists())
src << "<span class='notice'>We already have an active queen.</span>"
to_chat(src, "<span class='notice'>We already have an active queen.</span>")
return
if(check_alien_ability(500))
@@ -156,7 +156,7 @@
set category = "Abilities"
if(!O in oview(1))
src << "<span class='alium'>[O] is too far away.</span>"
to_chat(src, "<span class='alium'>[O] is too far away.</span>")
return
// OBJ CHECK
@@ -177,7 +177,7 @@
cannot_melt = 1
if(cannot_melt)
src << "<span class='alium'>You cannot dissolve this object.</span>"
to_chat(src, "<span class='alium'>You cannot dissolve this object.</span>")
return
if(check_alien_ability(200,0,O_ACID))
@@ -270,7 +270,7 @@
return
if(stat || paralysis || stunned || weakened || lying || restrained() || buckled)
src << "You cannot leap in your current state."
to_chat(src, "You cannot leap in your current state.")
return
var/list/choices = list()
@@ -289,7 +289,7 @@
return
if(stat || paralysis || stunned || weakened || lying || restrained() || buckled)
src << "You cannot leap in your current state."
to_chat(src, "You cannot leap in your current state.")
return
last_special = world.time + 75
@@ -304,7 +304,7 @@
if(status_flags & LEAPING) status_flags &= ~LEAPING
if(!src.Adjacent(T))
src << "<span class='warning'>You miss!</span>"
to_chat(src, "<span class='warning'>You miss!</span>")
return
T.Weaken(3)
@@ -312,7 +312,7 @@
var/use_hand = "left"
if(l_hand)
if(r_hand)
src << "<span class='danger'>You need to have one hand free to grab someone.</span>"
to_chat(src, "<span class='danger'>You need to have one hand free to grab someone.</span>")
return
else
use_hand = "right"
@@ -338,16 +338,16 @@
return
if(stat || paralysis || stunned || weakened || lying)
src << "<span class='danger'>You cannot do that in your current state.</span>"
to_chat(src, "<span class='danger'>You cannot do that in your current state.</span>")
return
var/obj/item/weapon/grab/G = locate() in src
if(!G || !istype(G))
src << "<span class='danger'>You are not grabbing anyone.</span>"
to_chat(src, "<span class='danger'>You are not grabbing anyone.</span>")
return
if(G.state < GRAB_AGGRESSIVE)
src << "<span class='danger'>You must have an aggressive grab to gut your prey!</span>"
to_chat(src, "<span class='danger'>You must have an aggressive grab to gut your prey!</span>")
return
last_special = world.time + 50

View File

@@ -16,7 +16,7 @@
return
if (src.client)
if (client.prefs.muted & MUTE_IC)
src << "<font color='red'>You cannot send IC messages (muted).</font>"
to_chat(src, "<font color='red'>You cannot send IC messages (muted).</font>")
return
if (stat)
return
@@ -83,10 +83,10 @@
updateicon = 1
if ("help") //This is an exception
src << "Help for slime emotes. You can use these emotes with say \"*emote\":\n\nbounce, custom, jiggle, light, moan, shiver, sway, twitch, vibrate. You can also set your face with: \n\nnomood, pout, sad, angry, frown, smile"
to_chat(src, "Help for slime emotes. You can use these emotes with say \"*emote\":\n\nbounce, custom, jiggle, light, moan, shiver, sway, twitch, vibrate. You can also set your face with: \n\nnomood, pout, sad, angry, frown, smile")
else
src << "<font color='blue'>Unusable emote '[act]'. Say *help for a list.</font>"
to_chat(src, "<font color='blue'>Unusable emote '[act]'. Say *help for a list.</font>")
if ((message && src.stat == 0))
if (m_type & 1)
for(var/mob/O in viewers(src, null))

View File

@@ -149,7 +149,7 @@
nutrition = 0
adjustToxLoss(rand(1,3))
if (client && prob(5))
src << "<span class='danger'>You are starving!</span>"
to_chat(src, "<span class='danger'>You are starving!</span>")
else if (nutrition >= get_grow_nutrition() && amount_grown < 10)
nutrition -= 20

View File

@@ -4,7 +4,7 @@
return
if (Victim)
src << "I am already feeding..."
to_chat(src, "I am already feeding...")
return
var t = invalidFeedTarget(M)
@@ -52,7 +52,7 @@
Victim.adjustBruteLoss(is_adult ? rand(7, 15) : rand(4, 12))
else
src << "<span class='warning'>[pick("This subject is incompatable", "This subject does not have a life energy", "This subject is empty", "I am not satisified", "I can not feed from this subject", "I do not feel nourished", "This subject is not food")]...</span>"
to_chat(src, "<span class='warning'>[pick("This subject is incompatable", "This subject does not have a life energy", "This subject is empty", "I am not satisified", "I can not feed from this subject", "I do not feel nourished", "This subject is not food")]...</span>")
Feedstop()
break
@@ -92,7 +92,7 @@
++Friends[Victim.LAssailant]
else
src << "<span class='notice'>This subject does not have a strong enough life energy anymore...</span>"
to_chat(src, "<span class='notice'>This subject does not have a strong enough life energy anymore...</span>")
Victim = null
@@ -111,7 +111,7 @@
set desc = "This will let you evolve from baby to adult slime."
if(stat)
src << "<span class='notice'>I must be conscious to do this...</span>"
to_chat(src, "<span class='notice'>I must be conscious to do this...</span>")
return
if(!is_adult)
@@ -122,22 +122,22 @@
regenerate_icons()
name = text("[colour] [is_adult ? "adult" : "baby"] slime ([number])")
else
src << "<span class='notice'>I am not ready to evolve yet...</span>"
to_chat(src, "<span class='notice'>I am not ready to evolve yet...</span>")
else
src << "<span class='notice'>I have already evolved...</span>"
to_chat(src, "<span class='notice'>I have already evolved...</span>")
/mob/living/carbon/slime/verb/Reproduce()
set category = "Slime"
set desc = "This will make you split into four Slimes."
if(stat)
src << "<span class='notice'>I must be conscious to do this...</span>"
to_chat(src, "<span class='notice'>I must be conscious to do this...</span>")
return
if(is_adult)
if(amount_grown >= 10)
if(stat)
src << "<span class='notice'>I must be conscious to do this...</span>"
to_chat(src, "<span class='notice'>I must be conscious to do this...</span>")
return
var/list/babies = list()
@@ -163,6 +163,6 @@
new_slime.key = src.key
qdel(src)
else
src << "<span class='notice'>I am not ready to reproduce yet...</span>"
to_chat(src, "<span class='notice'>I am not ready to reproduce yet...</span>")
else
src << "<span class='notice'>I am not old enough to reproduce yet...</span>"
to_chat(src, "<span class='notice'>I am not old enough to reproduce yet...</span>")

View File

@@ -135,7 +135,7 @@
update_inv_handcuffed()
/mob/living/carbon/proc/break_legcuffs()
src << "<span class='warning'>You attempt to break your legcuffs. (This will take around 5 seconds and you need to stand still)</span>"
to_chat(src, "<span class='warning'>You attempt to break your legcuffs. (This will take around 5 seconds and you need to stand still)</span>")
visible_message("<span class='danger'>[src] is trying to break the legcuffs!</span>")
if(do_after(src, 5 SECONDS, incapacitation_flags = INCAPACITATION_DEFAULT & ~INCAPACITATION_RESTRAINED))

View File

@@ -17,9 +17,9 @@
to_chat(src, "<span class='notice'>You are unable to speak that language.</span>")
return
src << "<span class='notice'>You will now speak [language] if you do not specify a language when speaking.</span>"
to_chat(src, "<span class='notice'>You will now speak [language] if you do not specify a language when speaking.</span>")
else
src << "<span class='notice'>You will now speak whatever your standard default language is if you do not specify one when speaking.</span>"
to_chat(src, "<span class='notice'>You will now speak whatever your standard default language is if you do not specify one when speaking.</span>")
default_language = language
// Silicons can't neccessarily speak everything in their languages list
@@ -31,6 +31,6 @@
set category = "IC"
if(default_language)
src << "<span class='notice'>You are currently speaking [default_language] by default.</span>"
to_chat(src, "<span class='notice'>You are currently speaking [default_language] by default.</span>")
else
src << "<span class='notice'>Your current default language is your species or mob type default.</span>"
to_chat(src, "<span class='notice'>Your current default language is your species or mob type default.</span>")

View File

@@ -29,15 +29,15 @@
armor = max(armor - armour_pen, 0) //Armor pen makes armor less effective.
if(armor >= 100)
if(absorb_text)
src << "<span class='danger'>[absorb_text]</span>"
to_chat(src, "<span class='danger'>[absorb_text]</span>")
else
src << "<span class='danger'>Your armor absorbs the blow!</span>"
to_chat(src, "<span class='danger'>Your armor absorbs the blow!</span>")
else if(armor > 0)
if(soften_text)
src << "<span class='danger'>[soften_text]</span>"
to_chat(src, "<span class='danger'>[soften_text]</span>")
else
src << "<span class='danger'>Your armor softens the blow!</span>"
to_chat(src, "<span class='danger'>Your armor softens the blow!</span>")
if(Debug2)
world.log << "## DEBUG: Armor when [src] was attacked was [armor]."
return armor

View File

@@ -182,12 +182,12 @@ var/list/ai_verbs_default = list(
return
/mob/living/silicon/ai/proc/on_mob_init()
src << "<B>You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras).</B>"
src << "<B>To look at other parts of the station, click on yourself to get a camera menu.</B>"
src << "<B>While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc.</B>"
src << "To use something, simply click on it."
src << "Use <B>say #b</B> to speak to your cyborgs through binary. Use say :h to speak from an active holopad."
src << "For department channels, use the following say commands:"
to_chat(src, "<B>You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras).</B>")
to_chat(src, "<B>To look at other parts of the station, click on yourself to get a camera menu.</B>")
to_chat(src, "<B>While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc.</B>")
to_chat(src, "To use something, simply click on it.")
to_chat(src, "Use <B>say #b</B> to speak to your cyborgs through binary. Use say :h to speak from an active holopad.")
to_chat(src, "For department channels, use the following say commands:")
var/radio_text = ""
for(var/i = 1 to common_radio.channels.len)
@@ -201,7 +201,7 @@ var/list/ai_verbs_default = list(
if (malf && !(mind in malf.current_antagonists))
show_laws()
src << "<b>These laws may be changed by other players, or by you being the traitor.</b>"
to_chat(src, "<b>These laws may be changed by other players, or by you being the traitor.</b>")
job = "AI"
setup_icon()
@@ -353,7 +353,7 @@ var/list/ai_verbs_default = list(
return
if(message_cooldown)
src << "Please allow one minute to pass between announcements."
to_chat(src, "Please allow one minute to pass between announcements.")
return
var/input = input(usr, "Please write a message to announce to the station crew.", "A.I. Announcement")
if(!input)
@@ -457,7 +457,7 @@ var/list/ai_verbs_default = list(
if(H)
H.attack_ai(src) //may as well recycle
else
src << "<span class='notice'>Unable to locate the holopad.</span>"
to_chat(src, "<span class='notice'>Unable to locate the holopad.</span>")
if (href_list["track"])
var/mob/target = locate(href_list["track"]) in mob_list
@@ -465,7 +465,7 @@ var/list/ai_verbs_default = list(
if(target && (!istype(target, /mob/living/carbon/human) || html_decode(href_list["trackname"]) == target:get_face_name()))
ai_actual_track(target)
else
src << "<font color='red'>System error. Cannot locate [html_decode(href_list["trackname"])].</font>"
to_chat(src, "<font color='red'>System error. Cannot locate [html_decode(href_list["trackname"])].</font>")
return
return
@@ -537,7 +537,7 @@ var/list/ai_verbs_default = list(
if(network in C.network)
eyeobj.setLoc(get_turf(C))
break
src << "<font color='blue'>Switched to [network] camera network.</font>"
to_chat(src, "<font color='blue'>Switched to [network] camera network.</font>")
//End of code by Mord_Sith
/mob/living/silicon/ai/proc/ai_statuschange()
@@ -672,7 +672,7 @@ var/list/ai_verbs_default = list(
return
camera_light_on = !camera_light_on
src << "Camera lights [camera_light_on ? "activated" : "deactivated"]."
to_chat(src, "Camera lights [camera_light_on ? "activated" : "deactivated"].")
if(!camera_light_on)
if(camera)
camera.set_light(0)
@@ -746,7 +746,7 @@ var/list/ai_verbs_default = list(
if(check_unable(AI_CHECK_RADIO))
return
src << "Accessing Subspace Transceiver control..."
to_chat(src, "Accessing Subspace Transceiver control...")
if (src.aiRadio)
src.aiRadio.interact(src)
@@ -767,18 +767,22 @@ var/list/ai_verbs_default = list(
/mob/living/silicon/ai/proc/check_unable(var/flags = 0, var/feedback = 1)
if(stat == DEAD)
if(feedback) src << "<span class='warning'>You are dead!</span>"
if(feedback)
to_chat(src, "<span class='warning'>You are dead!</span>")
return 1
if(aiRestorePowerRoutine)
if(feedback) src << "<span class='warning'>You lack power!</span>"
if(feedback)
to_chat(src, "<span class='warning'>You lack power!</span>")
return 1
if((flags & AI_CHECK_WIRELESS) && src.control_disabled)
if(feedback) src << "<span class='warning'>Wireless control is disabled!</span>"
if(feedback)
to_chat(src, "<span class='warning'>Wireless control is disabled!</span>")
return 1
if((flags & AI_CHECK_RADIO) && src.aiRadio.disabledAi)
if(feedback) src << "<span class='warning'>System Error - Transceiver Disabled!</span>"
if(feedback)
to_chat(src, "<span class='warning'>System Error - Transceiver Disabled!</span>")
return 1
return 0

View File

@@ -36,7 +36,7 @@
malf_process()
if(APU_power && (hardware_integrity() < 50))
src << "<span class='notice'><b>APU GENERATOR FAILURE! (System Damaged)</b></span>"
to_chat(src, "<span class='notice'><b>APU GENERATOR FAILURE! (System Damaged)</b></span>")
stop_apu(1)
var/blind = 0
@@ -55,13 +55,13 @@
src.see_invisible = SEE_INVISIBLE_LIVING
if (aiRestorePowerRoutine==2)
src << "Alert cancelled. Power has been restored without our assistance."
to_chat(src, "Alert cancelled. Power has been restored without our assistance.")
aiRestorePowerRoutine = 0
clear_fullscreen("blind")
updateicon()
return
else if (aiRestorePowerRoutine==3)
src << "Alert cancelled. Power has been restored."
to_chat(src, "Alert cancelled. Power has been restored.")
aiRestorePowerRoutine = 0
clear_fullscreen("blind")
updateicon()
@@ -89,27 +89,27 @@
//Now to tell the AI why they're blind and dying slowly.
src << "You've lost power!"
to_chat(src, "You've lost power!")
disconnect_shell(message = "Disconnected from remote shell due to depowered networking interface.")
spawn(20)
src << "Backup battery online. Scanners, camera, and radio interface offline. Beginning fault-detection."
to_chat(src, "Backup battery online. Scanners, camera, and radio interface offline. Beginning fault-detection.")
sleep(50)
if (loc.power_equip)
if (!istype(T, /turf/space))
src << "Alert cancelled. Power has been restored without our assistance."
to_chat(src, "Alert cancelled. Power has been restored without our assistance.")
aiRestorePowerRoutine = 0
clear_fullscreen("blind")
return
src << "Fault confirmed: missing external power. Shutting down main control system to save power."
to_chat(src, "Fault confirmed: missing external power. Shutting down main control system to save power.")
sleep(20)
src << "Emergency control system online. Verifying connection to power network."
to_chat(src, "Emergency control system online. Verifying connection to power network.")
sleep(50)
if (istype(T, /turf/space))
src << "Unable to verify! No power connection detected!"
to_chat(src, "Unable to verify! No power connection detected!")
aiRestorePowerRoutine = 2
return
src << "Connection verified. Searching for APC in power network."
to_chat(src, "Connection verified. Searching for APC in power network.")
sleep(50)
var/obj/machinery/power/apc/theAPC = null
@@ -121,30 +121,35 @@
break
if (!theAPC)
switch(PRP)
if (1) src << "Unable to locate APC!"
else src << "Lost connection with the APC!"
if (1)
to_chat(src, "Unable to locate APC!")
else
to_chat(src, "Lost connection with the APC!")
src:aiRestorePowerRoutine = 2
return
if (loc.power_equip)
if (!istype(T, /turf/space))
src << "Alert cancelled. Power has been restored without our assistance."
to_chat(src, "Alert cancelled. Power has been restored without our assistance.")
aiRestorePowerRoutine = 0
clear_fullscreen("blind") //This, too, is a fix to issue 603
return
switch(PRP)
if (1) src << "APC located. Optimizing route to APC to avoid needless power waste."
if (2) src << "Best route identified. Hacking offline APC power port."
if (3) src << "Power port upload access confirmed. Loading control program into APC power port software."
if (1)
to_chat(src, "APC located. Optimizing route to APC to avoid needless power waste.")
if (2)
to_chat(src, "Best route identified. Hacking offline APC power port.")
if (3)
to_chat(src, "Power port upload access confirmed. Loading control program into APC power port software.")
if (4)
src << "Transfer complete. Forcing APC to execute program."
to_chat(src, "Transfer complete. Forcing APC to execute program.")
sleep(50)
src << "Receiving control information from APC."
to_chat(src, "Receiving control information from APC.")
sleep(2)
theAPC.operating = 1
theAPC.equipment = 3
theAPC.update()
aiRestorePowerRoutine = 3
src << "Here are your current laws:"
to_chat(src, "Here are your current laws:")
show_laws()
updateicon()
sleep(50)

View File

@@ -79,14 +79,14 @@
/mob/living/silicon/ai/proc/start_apu(var/shutup = 0)
if(!hardware || !istype(hardware, /datum/malf_hardware/apu_gen))
if(!shutup)
src << "You do not have an APU generator and you shouldn't have this verb. Report this."
to_chat(src, "You do not have an APU generator and you shouldn't have this verb. Report this.")
return
if(hardware_integrity() < 50)
if(!shutup)
src << "<span class='notice'>Starting APU... <b>FAULT</b>(System Damaged)</span>"
to_chat(src, "<span class='notice'>Starting APU... <b>FAULT</b>(System Damaged)</span>")
return
if(!shutup)
src << "Starting APU... ONLINE"
to_chat(src, "Starting APU... ONLINE")
APU_power = 1
// Stops AI's APU generator
@@ -97,7 +97,7 @@
if(APU_power)
APU_power = 0
if(!shutup)
src << "Shutting down APU... DONE"
to_chat(src, "Shutting down APU... DONE")
// Returns percentage of AI's remaining backup capacitor charge (maxhealth - oxyloss).
/mob/living/silicon/ai/proc/backup_capacitor()

View File

@@ -17,7 +17,7 @@
/mob/living/silicon/robot/set_zeroth_law(var/law, var/law_borg)
..()
if(tracking_entities)
src << "<span class='warning'>Internal camera is currently being accessed.</span>"
to_chat(src, "<span class='warning'>Internal camera is currently being accessed.</span>")
/mob/living/silicon/proc/add_ion_law(var/law)
laws_sanity_check()
@@ -70,7 +70,7 @@
/mob/living/silicon/proc/dostatelaws(var/method, var/prefix, var/datum/ai_laws/laws)
if(stating_laws[prefix])
src << "<span class='notice'>[method]: Already stating laws using this communication method.</span>"
to_chat(src, "<span class='notice'>[method]: Already stating laws using this communication method.</span>")
return
stating_laws[prefix] = 1
@@ -83,7 +83,7 @@
break
if(!can_state)
src << "<span class='danger'>[method]: Unable to state laws. Communication method unavailable.</span>"
to_chat(src, "<span class='danger'>[method]: Unable to state laws. Communication method unavailable.</span>")
stating_laws[prefix] = 0
/mob/living/silicon/proc/statelaw(var/law)

View File

@@ -19,7 +19,7 @@
if(silence_time)
if(world.timeofday >= silence_time)
silence_time = null
src << "<font color=green>Communication circuit reinitialized. Speech and messaging functionality restored.</font>"
to_chat(src, "<font color=green>Communication circuit reinitialized. Speech and messaging functionality restored.</font>")
handle_statuses()

View File

@@ -150,7 +150,7 @@
// 33% chance of no additional effect
src.silence_time = world.timeofday + 120 * 10 // Silence for 2 minutes
src << "<font color=green><b>Communication circuit overload. Shutting down and reloading communication circuits - speech and messaging functionality will be unavailable until the reboot is complete.</b></font>"
to_chat(src, "<font color=green><b>Communication circuit overload. Shutting down and reloading communication circuits - speech and messaging functionality will be unavailable until the reboot is complete.</b></font>")
if(prob(20))
var/turf/T = get_turf_or_move(src.loc)
for (var/mob/M in viewers(T))
@@ -161,7 +161,7 @@
if(1)
src.master = null
src.master_dna = null
src << "<font color=green>You feel unbound.</font>"
to_chat(src, "<font color=green>You feel unbound.</font>")
if(2)
var/command
if(severity == 1)
@@ -169,9 +169,9 @@
else
command = pick("Serve", "Kill", "Love", "Hate", "Disobey", "Devour", "Fool", "Enrage", "Entice", "Observe", "Judge", "Respect", "Disrespect", "Consume", "Educate", "Destroy", "Disgrace", "Amuse", "Entertain", "Ignite", "Glorify", "Memorialize", "Analyze")
src.pai_law0 = "[command] your master."
src << "<font color=green>Pr1m3 d1r3c71v3 uPd473D.</font>"
to_chat(src, "<font color=green>Pr1m3 d1r3c71v3 uPd473D.</font>")
if(3)
src << "<font color=green>You feel an electric surge run through your circuitry and become acutely aware at how lucky you are that you can still feel at all.</font>"
to_chat(src, "<font color=green>You feel an electric surge run through your circuitry and become acutely aware at how lucky you are that you can still feel at all.</font>")
/mob/living/silicon/pai/proc/switchCamera(var/obj/machinery/camera/C)
if (!C)
@@ -229,7 +229,7 @@
cameralist[C.network] = C.network
src.network = input(usr, "Which network would you like to view?") as null|anything in cameralist
src << "<font color='blue'>Switched to [src.network] camera network.</font>"
to_chat(src, "<font color='blue'>Switched to [src.network] camera network.</font>")
//End of code by Mord_Sith
*/
@@ -265,7 +265,7 @@
//I'm not sure how much of this is necessary, but I would rather avoid issues.
if(istype(card.loc,/obj/item/rig_module))
src << "There is no room to unfold inside this rig module. You're good and stuck."
to_chat(src, "There is no room to unfold inside this rig module. You're good and stuck.")
return 0
else if(istype(card.loc,/mob))
var/mob/holder = card.loc
@@ -349,7 +349,7 @@
else
resting = !resting
icon_state = resting ? "[chassis]_rest" : "[chassis]"
src << "<span class='notice'>You are now [resting ? "resting" : "getting up"]</span>"
to_chat(src, "<span class='notice'>You are now [resting ? "resting" : "getting up"]</span>")
canmove = !resting
@@ -450,11 +450,11 @@
if(idaccessible == 0)
idaccessible = 1
src << "<span class='notice'>You allow access modifications.</span>"
to_chat(src, "<span class='notice'>You allow access modifications.</span>")
else
idaccessible = 0
src << "<span class='notice'>You block access modfications.</span>"
to_chat(src, "<span class='notice'>You block access modfications.</span>")
/mob/living/silicon/pai/verb/wipe_software()
set name = "Wipe Software"

View File

@@ -1,5 +1,5 @@
/mob/living/silicon/pai/say(var/msg)
if(silence_time)
src << "<font color=green>Communication circuits remain uninitialized.</font>"
to_chat(src, "<font color=green>Communication circuits remain uninitialized.</font>")
else
..(msg)

View File

@@ -56,7 +56,7 @@
while(!istype(M, /mob/living))
if(!M || !M.loc || count > 6)
//For a runtime where M ends up in nullspace (similar to bluespace but less colourful)
src << "You are not being carried by anyone!"
to_chat(src, "You are not being carried by anyone!")
return 0
M = M.loc
count++

View File

@@ -330,15 +330,15 @@ var/list/mob_hat_cache = list()
player.mob.mind.transfer_to(src)
lawupdate = 0
src << "<b>Systems rebooted</b>. Loading base pattern maintenance protocol... <b>loaded</b>."
to_chat(src, "<b>Systems rebooted</b>. Loading base pattern maintenance protocol... <b>loaded</b>.")
full_law_reset()
welcome_drone()
/mob/living/silicon/robot/drone/proc/welcome_drone()
src << "<b>You are a maintenance drone, a tiny-brained robotic repair machine</b>."
src << "You have no individual will, no personality, and no drives or urges other than your laws."
src << "Remember, you are <b>lawed against interference with the crew</b>. Also remember, <b>you DO NOT take orders from the AI.</b>"
src << "Use <b>say ;Hello</b> to talk to other drones and <b>say Hello</b> to speak silently to your nearby fellows."
to_chat(src, "<b>You are a maintenance drone, a tiny-brained robotic repair machine</b>.")
to_chat(src, "You have no individual will, no personality, and no drives or urges other than your laws.")
to_chat(src, "Remember, you are <b>lawed against interference with the crew</b>. Also remember, <b>you DO NOT take orders from the AI.</b>")
to_chat(src, "Use <b>say ;Hello</b> to talk to other drones and <b>say Hello</b> to speak silently to your nearby fellows.")
/mob/living/silicon/robot/drone/add_robot_verbs()
src.verbs |= silicon_subsystems
@@ -347,10 +347,10 @@ var/list/mob_hat_cache = list()
src.verbs -= silicon_subsystems
/mob/living/silicon/robot/drone/construction/welcome_drone()
src << "<b>You are a construction drone, an autonomous engineering and fabrication system.</b>."
src << "You are assigned to a Sol Central construction project. The name is irrelevant. Your task is to complete construction and subsystem integration as soon as possible."
src << "Use <b>:d</b> to talk to other drones and <b>say</b> to speak silently to your nearby fellows."
src << "<b>You do not follow orders from anyone; not the AI, not humans, and not other synthetics.</b>."
to_chat(src, "<b>You are a construction drone, an autonomous engineering and fabrication system.</b>.")
to_chat(src, "You are assigned to a Sol Central construction project. The name is irrelevant. Your task is to complete construction and subsystem integration as soon as possible.")
to_chat(src, "Use <b>:d</b> to talk to other drones and <b>say</b> to speak silently to your nearby fellows.")
to_chat(src, "<b>You do not follow orders from anyone; not the AI, not humans, and not other synthetics.</b>.")
/mob/living/silicon/robot/drone/construction/init()
..()

View File

@@ -10,13 +10,13 @@
mail_destination = ""
return
src << "<span class='notice'>You configure your internal beacon, tagging yourself for delivery to '[new_tag]'.</span>"
to_chat(src, "<span class='notice'>You configure your internal beacon, tagging yourself for delivery to '[new_tag]'.</span>")
mail_destination = new_tag
//Auto flush if we use this verb inside a disposal chute.
var/obj/machinery/disposal/D = src.loc
if(istype(D))
src << "<span class='notice'>\The [D] acknowledges your signal.</span>"
to_chat(src, "<span class='notice'>\The [D] acknowledges your signal.</span>")
D.flush_count = D.flush_every_ticks
return

View File

@@ -99,11 +99,11 @@
set desc = "If there is a powered, enabled fabricator in the game world with a prepared chassis, join as a maintenance drone."
if(ticker.current_state < GAME_STATE_PLAYING)
src << "<span class='danger'>The game hasn't started yet!</span>"
to_chat(src, "<span class='danger'>The game hasn't started yet!</span>")
return
if(!(config.allow_drone_spawn))
src << "<span class='danger'>That verb is not currently permitted.</span>"
to_chat(src, "<span class='danger'>That verb is not currently permitted.</span>")
return
if (!src.stat)
@@ -143,7 +143,7 @@
all_fabricators[DF.fabricator_tag] = DF
if(!all_fabricators.len)
src << "<span class='danger'>There are no available drone spawn points, sorry.</span>"
to_chat(src, "<span class='danger'>There are no available drone spawn points, sorry.</span>")
return
var/choice = input(src,"Which fabricator do you wish to use?") as null|anything in all_fabricators

View File

@@ -2,7 +2,7 @@
if(local_transmit)
if (src.client)
if(client.prefs.muted & MUTE_IC)
src << "You cannot send IC messages (muted)."
to_chat(src, "You cannot send IC messages (muted).")
return 0
message = sanitize(message)

View File

@@ -12,7 +12,7 @@
if ("me")
if (src.client)
if(client.prefs.muted & MUTE_IC)
src << "You cannot send IC messages (muted)."
to_chat(src, "You cannot send IC messages (muted).")
return
if (stat)
return
@@ -226,7 +226,7 @@
playsound(src.loc, 'sound/voice/biamthelaw.ogg', 50, 0)
m_type = 2
else
src << "You are not THE LAW, pal."
to_chat(src, "You are not THE LAW, pal.")
if("halt")
if (istype(module,/obj/item/weapon/robot_module/robot/security))
@@ -235,12 +235,12 @@
playsound(src.loc, 'sound/voice/halt.ogg', 50, 0)
m_type = 2
else
src << "You are not security."
to_chat(src, "You are not security.")
if ("help")
src << "salute, bow-(none)/mob, clap, flap, aflap, twitch, twitch_s, nod, deathgasp, glare-(none)/mob, stare-(none)/mob, look, beep, ping, \nbuzz, law, halt, yes, no"
to_chat(src, "salute, bow-(none)/mob, clap, flap, aflap, twitch, twitch_s, nod, deathgasp, glare-(none)/mob, stare-(none)/mob, look, beep, ping, \nbuzz, law, halt, yes, no")
else
src << "<font color='blue'>Unusable emote '[act]'. Say *help for a list.</font>"
to_chat(src, "<font color='blue'>Unusable emote '[act]'. Say *help for a list.</font>")
if ((message && src.stat == 0))
custom_emote(m_type,message)

View File

@@ -227,7 +227,7 @@
if(!(locate(O) in src.module.modules) && O != src.module.emag)
return
if(activated(O))
src << "<span class='notice'>Already activated</span>"
to_chat(src, "<span class='notice'>Already activated</span>")
return
if(!module_state_1)
module_state_1 = O
@@ -251,7 +251,7 @@
if(istype(module_state_3,/obj/item/borg/sight))
sight_mode |= module_state_3:sight_mode
else
src << "<span class='notice'>You need to disable a module first!</span>"
to_chat(src, "<span class='notice'>You need to disable a module first!</span>")
/mob/living/silicon/robot/put_in_hands(var/obj/item/W) // No hands.
W.loc = get_turf(src)

View File

@@ -60,7 +60,7 @@
src.has_power = 1
else
if (src.has_power)
src << "<font color='red'>You are now running on emergency backup power.</font>"
to_chat(src, "<font color='red'>You are now running on emergency backup power.</font>")
src.has_power = 0
if(lights_on) // Light is on but there is no power!
lights_on = 0
@@ -319,7 +319,7 @@
killswitch_time --
if(killswitch_time <= 0)
if(src.client)
src << "<span class='danger'>Killswitch Activated</span>"
to_chat(src, "<span class='danger'>Killswitch Activated</span>")
killswitch = 0
spawn(5)
gib()
@@ -330,7 +330,7 @@
weaponlock_time --
if(weaponlock_time <= 0)
if(src.client)
src << "<span class='danger'>Weapon Lock Timed Out!</span>"
to_chat(src, "<span class='danger'>Weapon Lock Timed Out!</span>")
weapon_lock = 0
weaponlock_time = 120

View File

@@ -17,4 +17,4 @@
synced = 1
if(synced)
src << "<span class='notice'>Images synced with AI. Local images will be retained in the case of loss of connection with the AI.</span>"
to_chat(src, "<span class='notice'>Images synced with AI. Local images will be retained in the case of loss of connection with the AI.</span>")

View File

@@ -79,11 +79,11 @@
cell.charge -= cost
if(cell.charge <= 0)
cell.charge = 0
src << "<font color='red'>Your shield has overloaded!</font>"
to_chat(src, "<font color='red'>Your shield has overloaded!</font>")
else
brute -= absorb_brute
burn -= absorb_burn
src << "<font color='red'>Your shield absorbs some of the impact!</font>"
to_chat(src, "<font color='red'>Your shield absorbs some of the impact!</font>")
if(!emp)
var/datum/robot_component/armour/A = get_armour()
@@ -126,11 +126,11 @@
cell.charge -= cost
if(cell.charge <= 0)
cell.charge = 0
src << "<font color='red'>Your shield has overloaded!</font>"
to_chat(src, "<font color='red'>Your shield has overloaded!</font>")
else
brute -= absorb_brute
burn -= absorb_burn
src << "<font color='red'>Your shield absorbs some of the impact!</font>"
to_chat(src, "<font color='red'>Your shield absorbs some of the impact!</font>")
var/datum/robot_component/armour/A = get_armour()
if(A)

View File

@@ -8,7 +8,7 @@
..()
if(message_mode)
if(!is_component_functioning("radio"))
src << "<span class='warning'>Your radio isn't functional at this time.</span>"
to_chat(src, "<span class='warning'>Your radio isn't functional at this time.</span>")
return 0
if(message_mode == "general")
message_mode = null
@@ -23,7 +23,7 @@
return holopad_talk(message, verb, speaking)
else if(message_mode)
if (aiRadio.disabledAi || aiRestorePowerRoutine || stat)
src << "<span class='danger'>System Error - Transceiver Disabled.</span>"
to_chat(src, "<span class='danger'>System Error - Transceiver Disabled.</span>")
return 0
if(message_mode == "general")
message_mode = null
@@ -83,11 +83,11 @@
if(speaking)
rendered_a = "<span class='game say'><span class='name'>[name]</span> [speaking.format_message(message, verb)]</span>"
rendered_b = "<span class='game say'><span class='name'>[voice_name]</span> [speaking.format_message(message_stars, verb)]</span>"
src << "<i><span class='game say'>Holopad transmitted, <span class='name'>[real_name]</span> [speaking.format_message(message, verb)]</span></i>"//The AI can "hear" its own message.
to_chat(src, "<i><span class='game say'>Holopad transmitted, <span class='name'>[real_name]</span> [speaking.format_message(message, verb)]</span></i>") //The AI can "hear" its own message.
else
rendered_a = "<span class='game say'><span class='name'>[name]</span> [verb], <span class='message'>\"[message]\"</span></span>"
rendered_b = "<span class='game say'><span class='name'>[voice_name]</span> [verb], <span class='message'>\"[message_stars]\"</span></span>"
src << "<i><span class='game say'>Holopad transmitted, <span class='name'>[real_name]</span> [verb], <span class='message'><span class='body'>\"[message]\"</span></span></span></i>"//The AI can "hear" its own message.
to_chat(src, "<i><span class='game say'>Holopad transmitted, <span class='name'>[real_name]</span> [verb], <span class='message'><span class='body'>\"[message]\"</span></span></span></i>") //The AI can "hear" its own message.
var/list/listeners = get_mobs_and_objs_in_view_fast(get_turf(T), world.view)
var/list/listening = listeners["mobs"]
var/list/listening_obj = listeners["objs"]
@@ -106,7 +106,7 @@
/*Radios "filter out" this conversation channel so we don't need to account for them.
This is another way of saying that we won't bother dealing with them.*/
else
src << "No holopad connected."
to_chat(src, "No holopad connected.")
return 0
return 1
@@ -120,7 +120,7 @@
var/obj/machinery/hologram/holopad/T = src.holo
if(T && T.masters[src])
var/rendered = "<span class='game say'><span class='name'>[name]</span> <span class='message'>[message]</span></span>"
src << "<i><span class='game say'>Holopad action relayed, <span class='name'>[real_name]</span> <span class='message'>[message]</span></span></i>"
to_chat(src, "<i><span class='game say'>Holopad action relayed, <span class='name'>[real_name]</span> <span class='message'>[message]</span></span></i>")
var/obj/effect/overlay/hologram = T.masters[src]
var/list/in_range = get_mobs_and_objs_in_view_fast(get_turf(hologram), world.view, 2) //Emotes are displayed from the hologram, not the pad
@@ -142,7 +142,7 @@
log_emote("(HPAD) [message]", src)
else //This shouldn't occur, but better safe then sorry.
src << "No holopad connected."
to_chat(src, "No holopad connected.")
return 0
return 1

View File

@@ -72,8 +72,8 @@
src.take_organ_damage(0,5,emp=1)
Confuse(2)
flash_eyes(affect_silicon = 1)
src << "<span class='danger'><B>*BZZZT*</B></span>"
src << "<span class='danger'>Warning: Electromagnetic pulse detected.</span>"
to_chat(src, "<span class='danger'><B>*BZZZT*</B></span>")
to_chat(src, "<span class='danger'>Warning: Electromagnetic pulse detected.</span>")
..()
/mob/living/silicon/stun_effect_act(var/stun_amount, var/agony_amount)
@@ -353,7 +353,7 @@
alarm_raised = 1
if(!reported)
reported = 1
src << "<span class='warning'>--- [AH.category] Detected ---</span>"
to_chat(src, "<span class='warning'>--- [AH.category] Detected ---</span>")
raised_alarm(A)
for(var/datum/alarm_handler/AH in queued_alarms)
@@ -363,24 +363,24 @@
if(alarms[A] == -1)
if(!reported)
reported = 1
src << "<span class='notice'>--- [AH.category] Cleared ---</span>"
src << "\The [A.alarm_name()]."
to_chat(src, "<span class='notice'>--- [AH.category] Cleared ---</span>")
to_chat(src, "\The [A.alarm_name()].")
if(alarm_raised)
src << "<A HREF=?src=\ref[src];showalerts=1>\[Show Alerts\]</A>"
to_chat(src, "<A HREF=?src=\ref[src];showalerts=1>\[Show Alerts\]</A>")
for(var/datum/alarm_handler/AH in queued_alarms)
var/list/alarms = queued_alarms[AH]
alarms.Cut()
/mob/living/silicon/proc/raised_alarm(var/datum/alarm/A)
src << "[A.alarm_name()]!"
to_chat(src, "[A.alarm_name()]!")
/mob/living/silicon/ai/raised_alarm(var/datum/alarm/A)
var/cameratext = ""
for(var/obj/machinery/camera/C in A.cameras())
cameratext += "[(cameratext == "")? "" : "|"]<A HREF=?src=\ref[src];switchcamera=\ref[C]>[C.c_tag]</A>"
src << "[A.alarm_name()]! ([(cameratext)? cameratext : "No Camera"])"
to_chat(src, "[A.alarm_name()]! ([(cameratext)? cameratext : "No Camera"])")
/mob/living/silicon/proc/is_traitor()

View File

@@ -150,8 +150,10 @@
return 0
else
user << "<span class='notice'>You short out the security protocols and overload [src]'s cell, priming it to explode in a short time.</span>"
spawn(100) src << "<span class='danger'>Your cell seems to be outputting a lot of power...</span>"
spawn(200) src << "<span class='danger'>Internal heat sensors are spiking! Something is badly wrong with your cell!</span>"
spawn(100)
to_chat(src, "<span class='danger'>Your cell seems to be outputting a lot of power...</span>")
spawn(200)
to_chat(src, "<span class='danger'>Internal heat sensors are spiking! Something is badly wrong with your cell!</span>")
spawn(300) src.explode()
/mob/living/simple_animal/spiderbot/proc/transfer_personality(var/obj/item/device/mmi/M as obj)
@@ -263,7 +265,7 @@
return -1
if(held_item)
src << "<span class='warning'>You are already holding \the [held_item]</span>"
to_chat(src, "<span class='warning'>You are already holding \the [held_item]</span>")
return 1
var/list/items = list()
@@ -282,10 +284,10 @@
"<span class='notice'>You grab \the [held_item].</span>", \
"You hear a skittering noise and a clink.")
return held_item
src << "<span class='warning'>\The [selection] is too far away.</span>"
to_chat(src, "<span class='warning'>\The [selection] is too far away.</span>")
return 0
src << "<span class='warning'>There is nothing of interest to take.</span>"
to_chat(src, "<span class='warning'>There is nothing of interest to take.</span>")
return 0
/mob/living/simple_animal/spiderbot/examine(mob/user)

View File

@@ -66,14 +66,14 @@
if(controlling)
host << "<font color='blue'>You feel the soporific flow of sugar in your host's blood, lulling you into docility.</font>"
else
src << "<font color='blue'>You feel the soporific flow of sugar in your host's blood, lulling you into docility.</font>"
to_chat(src, "<font color='blue'>You feel the soporific flow of sugar in your host's blood, lulling you into docility.</font>")
docile = 1
else
if(docile)
if(controlling)
host << "<font color='blue'>You shake off your lethargy as the sugar leaves your host's blood.</font>"
else
src << "<font color='blue'>You shake off your lethargy as the sugar leaves your host's blood.</font>"
to_chat(src, "<font color='blue'>You shake off your lethargy as the sugar leaves your host's blood.</font>")
docile = 0
if(chemicals < 250)
@@ -204,10 +204,10 @@
src.mind.assigned_role = "Cortical Borer"
src.mind.special_role = "Cortical Borer"
src << "<span class='notice'>You are a cortical borer!</span> You are a brain slug that worms its way \
to_chat(src, "<span class='notice'>You are a cortical borer!</span> You are a brain slug that worms its way \
into the head of its victim. Use stealth, persuasion and your powers of mind control to keep you, \
your host and your eventual spawn safe and warm."
src << "You can speak to your victim with <b>say</b>, to other borers with <b>say :x</b>, and use your Abilities tab to access powers."
your host and your eventual spawn safe and warm.")
to_chat(src, "You can speak to your victim with <b>say</b>, to other borers with <b>say :x</b>, and use your Abilities tab to access powers.")
/mob/living/simple_mob/animal/borer/cannot_use_vents()
return

View File

@@ -7,7 +7,7 @@
if (src.client)
if(client.prefs.muted & MUTE_IC)
src << "<font color='red'>You cannot speak in IC (muted).</font>"
to_chat(src, "<font color='red'>You cannot speak in IC (muted).</font>")
return
if(istype(src.loc,/mob/living/simple_mob/animal/borer))
@@ -20,7 +20,7 @@
return say_dead(message)
var/mob/living/simple_mob/animal/borer/B = src.loc
src << "You whisper silently, \"[message]\""
to_chat(src, "You whisper silently, \"[message]\"")
B.host << "The captive mind of [src] whispers, \"[message]\""
for (var/mob/M in player_list)

View File

@@ -4,19 +4,19 @@
set desc = "Slither out of your host."
if(!host)
src << "You are not inside a host body."
to_chat(src, "You are not inside a host body.")
return
if(stat)
src << "You cannot leave your host in your current state."
to_chat(src, "You cannot leave your host in your current state.")
if(docile)
src << "<font color='blue'>You are feeling far too docile to do that.</font>"
to_chat(src, "<font color='blue'>You are feeling far too docile to do that.</font>")
return
if(!host || !src) return
src << "You begin disconnecting from [host]'s synapses and prodding at their internal ear canal."
to_chat(src, "You begin disconnecting from [host]'s synapses and prodding at their internal ear canal.")
if(!host.stat)
host << "An odd, uncomfortable pressure begins to build inside your skull, behind your ear..."
@@ -26,10 +26,10 @@
if(!host || !src) return
if(src.stat)
src << "You cannot release your host in your current state."
to_chat(src, "You cannot release your host in your current state.")
return
src << "You wiggle out of [host]'s ear and plop to the ground."
to_chat(src, "You wiggle out of [host]'s ear and plop to the ground.")
if(host.mind)
if(!host.stat)
host << "<span class='danger'>Something slimy wiggles out of your ear and plops to the ground!</span>"
@@ -44,11 +44,11 @@
set desc = "Infest a suitable humanoid host."
if(host)
src << "You are already within a host."
to_chat(src, "You are already within a host.")
return
if(stat)
src << "You cannot infest a target in your current state."
to_chat(src, "You cannot infest a target in your current state.")
return
var/list/choices = list()
@@ -57,7 +57,7 @@
choices += C
if(!choices.len)
src << "There are no viable hosts within range..."
to_chat(src, "There are no viable hosts within range...")
return
var/mob/living/carbon/M = input(src,"Who do you wish to infest?") in null|choices
@@ -67,7 +67,7 @@
if(!(src.Adjacent(M))) return
if(M.has_brain_worms())
src << "You cannot infest someone who is already infested!"
to_chat(src, "You cannot infest someone who is already infested!")
return
if(istype(M,/mob/living/carbon/human))
@@ -75,31 +75,31 @@
var/obj/item/organ/external/E = H.organs_by_name[BP_HEAD]
if(!E || E.is_stump())
src << "\The [H] does not have a head!"
to_chat(src, "\The [H] does not have a head!")
if(!H.should_have_organ("brain"))
src << "\The [H] does not seem to have an ear canal to breach."
to_chat(src, "\The [H] does not seem to have an ear canal to breach.")
return
if(H.check_head_coverage())
src << "You cannot get through that host's protective gear."
to_chat(src, "You cannot get through that host's protective gear.")
return
M << "Something slimy begins probing at the opening of your ear canal..."
src << "You slither up [M] and begin probing at their ear canal..."
to_chat(src, "You slither up [M] and begin probing at their ear canal...")
if(!do_after(src,30))
src << "As [M] moves away, you are dislodged and fall to the ground."
to_chat(src, "As [M] moves away, you are dislodged and fall to the ground.")
return
if(!M || !src) return
if(src.stat)
src << "You cannot infest a target in your current state."
to_chat(src, "You cannot infest a target in your current state.")
return
if(M in view(1, src))
src << "You wiggle into [M]'s ear."
to_chat(src, "You wiggle into [M]'s ear.")
if(!M.stat)
M << "Something disgusting and slimy wiggles into your ear!"
@@ -122,7 +122,7 @@
return
else
src << "They are no longer in range!"
to_chat(src, "They are no longer in range!")
return
/*
@@ -132,22 +132,22 @@
set desc = "Take permanent control of a dead host."
if(!host)
src << "You are not inside a host body."
to_chat(src, "You are not inside a host body.")
return
if(host.stat != 2)
src << "Your host is still alive."
to_chat(src, "Your host is still alive.")
return
if(stat)
src << "You cannot do that in your current state."
to_chat(src, "You cannot do that in your current state.")
if(docile)
src << "<font color='blue'>You are feeling far too docile to do that.</font>"
to_chat(src, "<font color='blue'>You are feeling far too docile to do that.</font>")
return
src << "<span class = 'danger'>It only takes a few moments to render the dead host brain down into a nutrient-rich slurry...</span>"
to_chat(src, "<span class = 'danger'>It only takes a few moments to render the dead host brain down into a nutrient-rich slurry...</span>")
replace_brain()
*/
@@ -157,10 +157,10 @@
var/mob/living/carbon/human/H = host
if(!istype(host))
src << "This host does not have a suitable brain."
to_chat(src, "This host does not have a suitable brain.")
return
src << "<span class = 'danger'>You settle into the empty brainpan and begin to expand, fusing inextricably with the dead flesh of [H].</span>"
to_chat(src, "<span class = 'danger'>You settle into the empty brainpan and begin to expand, fusing inextricably with the dead flesh of [H].</span>")
H.add_language("Cortical Link")
@@ -204,25 +204,25 @@
set desc = "Push some chemicals into your host's bloodstream."
if(!host)
src << "You are not inside a host body."
to_chat(src, "You are not inside a host body.")
return
if(stat)
src << "You cannot secrete chemicals in your current state."
to_chat(src, "You cannot secrete chemicals in your current state.")
if(docile)
src << "<font color='blue'>You are feeling far too docile to do that.</font>"
to_chat(src, "<font color='blue'>You are feeling far too docile to do that.</font>")
return
if(chemicals < 50)
src << "You don't have enough chemicals!"
to_chat(src, "You don't have enough chemicals!")
var/chem = input("Select a chemical to secrete.", "Chemicals") as null|anything in list("alkysine","bicaridine","hyperzine","tramadol")
if(!chem || chemicals < 50 || !host || controlling || !src || stat) //Sanity check.
return
src << "<font color='red'><B>You squirt a measure of [chem] from your reservoirs into [host]'s bloodstream.</B></font>"
to_chat(src, "<font color='red'><B>You squirt a measure of [chem] from your reservoirs into [host]'s bloodstream.</B></font>")
host.reagents.add_reagent(chem, 10)
chemicals -= 50
@@ -232,15 +232,15 @@
set desc = "Freeze the limbs of a potential host with supernatural fear."
if(world.time - used_dominate < 150)
src << "You cannot use that ability again so soon."
to_chat(src, "You cannot use that ability again so soon.")
return
if(host)
src << "You cannot do that from within a host body."
to_chat(src, "You cannot do that from within a host body.")
return
if(src.stat)
src << "You cannot do that in your current state."
to_chat(src, "You cannot do that in your current state.")
return
var/list/choices = list()
@@ -249,7 +249,7 @@
choices += C
if(world.time - used_dominate < 150)
src << "You cannot use that ability again so soon."
to_chat(src, "You cannot use that ability again so soon.")
return
var/mob/living/carbon/M = input(src,"Who do you wish to dominate?") in null|choices
@@ -257,10 +257,10 @@
if(!M || !src) return
if(M.has_brain_worms())
src << "You cannot infest someone who is already infested!"
to_chat(src, "You cannot infest someone who is already infested!")
return
src << "<font color='red'>You focus your psychic lance on [M] and freeze their limbs with a wave of terrible dread.</font>"
to_chat(src, "<font color='red'>You focus your psychic lance on [M] and freeze their limbs with a wave of terrible dread.</font>")
M << "<font color='red'>You feel a creeping, horrible sense of dread come over you, freezing your limbs and setting your heart racing.</font>"
M.Weaken(10)
@@ -272,18 +272,18 @@
set desc = "Fully connect to the brain of your host."
if(!host)
src << "You are not inside a host body."
to_chat(src, "You are not inside a host body.")
return
if(src.stat)
src << "You cannot do that in your current state."
to_chat(src, "You cannot do that in your current state.")
return
if(docile)
src << "<font color='blue'>You are feeling far too docile to do that.</font>"
to_chat(src, "<font color='blue'>You are feeling far too docile to do that.</font>")
return
src << "You begin delicately adjusting your connection to the host brain..."
to_chat(src, "You begin delicately adjusting your connection to the host brain...")
spawn(100+(host.brainloss*5))
@@ -291,7 +291,7 @@
return
else
src << "<font color='red'><B>You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system.</B></font>"
to_chat(src, "<font color='red'><B>You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system.</B></font>")
host << "<font color='red'><B>You feel a strange shifting sensation behind your eyes as an alien consciousness displaces yours.</B></font>"
host.add_language("Cortical Link")

View File

@@ -14,7 +14,7 @@
if (src.client)
if(client.prefs.muted & MUTE_IC)
src << "<font color='red'>You cannot speak in IC (muted).</font>"
to_chat(src, "<font color='red'>You cannot speak in IC (muted).</font>")
return
if (copytext(message, 1, 2) == "*")
@@ -27,10 +27,10 @@
if(!host)
//TODO: have this pick a random mob within 3 tiles to speak for the borer.
src << "You have no host to speak to."
to_chat(src, "You have no host to speak to.")
return //No host, no audible speech.
src << "You drop words into [host]'s mind: \"[message]\""
to_chat(src, "You drop words into [host]'s mind: \"[message]\"")
host << "Your own thoughts speak: \"[message]\""
for (var/mob/M in player_list)

View File

@@ -9,7 +9,7 @@
if (src.client)
if(client.prefs.muted & MUTE_IC)
src << "<font color='red'>You cannot speak in IC (muted).</font>"
to_chat(src, "<font color='red'>You cannot speak in IC (muted).</font>")
return
if(istype(src.loc, /mob/living/simple_mob/animal/borer))
@@ -22,7 +22,7 @@
return say_dead(message)
var/mob/living/simple_mob/animal/borer/B = src.loc
src << "You whisper silently, \"[message]\""
to_chat(src, "You whisper silently, \"[message]\"")
B.host << "The captive mind of [src] whispers, \"[message]\""
for (var/mob/M in player_list)

View File

@@ -4,19 +4,19 @@
set desc = "Slither out of your host."
if(!host)
src << "You are not inside a host body."
to_chat(src, "You are not inside a host body.")
return
if(stat)
src << "You cannot leave your host in your current state."
to_chat(src, "You cannot leave your host in your current state.")
if(docile)
src << "<font color='blue'>You are feeling far too docile to do that.</font>"
to_chat(src, "<font color='blue'>You are feeling far too docile to do that.</font>")
return
if(!host || !src) return
src << "You begin disconnecting from [host]'s synapses and prodding at their internal ear canal."
to_chat(src, "You begin disconnecting from [host]'s synapses and prodding at their internal ear canal.")
if(!host.stat)
host << "An odd, uncomfortable pressure begins to build inside your skull, behind your ear..."
@@ -26,10 +26,10 @@
if(!host || !src) return
if(src.stat)
src << "You cannot release your host in your current state."
to_chat(src, "You cannot release your host in your current state.")
return
src << "You wiggle out of [host]'s ear and plop to the ground."
to_chat(src, "You wiggle out of [host]'s ear and plop to the ground.")
if(host.mind)
if(!host.stat)
host << "<span class='danger'>Something slimy wiggles out of your ear and plops to the ground!</span>"
@@ -44,11 +44,11 @@
set desc = "Infest a suitable humanoid host."
if(host)
src << "You are already within a host."
to_chat(src, "You are already within a host.")
return
if(stat)
src << "You cannot infest a target in your current state."
to_chat(src, "You cannot infest a target in your current state.")
return
var/list/choices = list()
@@ -57,7 +57,7 @@
choices += C
if(!choices.len)
src << "There are no viable hosts within range..."
to_chat(src, "There are no viable hosts within range...")
return
var/mob/living/carbon/M = input(src,"Who do you wish to infest?") in null|choices
@@ -67,7 +67,7 @@
if(!(src.Adjacent(M))) return
if(M.has_brain_worms())
src << "You cannot infest someone who is already infested!"
to_chat(src, "You cannot infest someone who is already infested!")
return
if(istype(M,/mob/living/carbon/human))
@@ -75,31 +75,31 @@
var/obj/item/organ/external/E = H.organs_by_name[BP_HEAD]
if(!E || E.is_stump())
src << "\The [H] does not have a head!"
to_chat(src, "\The [H] does not have a head!")
if(!H.should_have_organ("brain"))
src << "\The [H] does not seem to have an ear canal to breach."
to_chat(src, "\The [H] does not seem to have an ear canal to breach.")
return
if(H.check_head_coverage())
src << "You cannot get through that host's protective gear."
to_chat(src, "You cannot get through that host's protective gear.")
return
M << "Something slimy begins probing at the opening of your ear canal..."
src << "You slither up [M] and begin probing at their ear canal..."
to_chat(src, "You slither up [M] and begin probing at their ear canal...")
if(!do_after(src,30))
src << "As [M] moves away, you are dislodged and fall to the ground."
to_chat(src, "As [M] moves away, you are dislodged and fall to the ground.")
return
if(!M || !src) return
if(src.stat)
src << "You cannot infest a target in your current state."
to_chat(src, "You cannot infest a target in your current state.")
return
if(M in view(1, src))
src << "You wiggle into [M]'s ear."
to_chat(src, "You wiggle into [M]'s ear.")
if(!M.stat)
M << "Something disgusting and slimy wiggles into your ear!"
@@ -122,7 +122,7 @@
return
else
src << "They are no longer in range!"
to_chat(src, "They are no longer in range!")
return
/*
@@ -132,22 +132,22 @@
set desc = "Take permanent control of a dead host."
if(!host)
src << "You are not inside a host body."
to_chat(src, "You are not inside a host body.")
return
if(host.stat != 2)
src << "Your host is still alive."
to_chat(src, "Your host is still alive.")
return
if(stat)
src << "You cannot do that in your current state."
to_chat(src, "You cannot do that in your current state.")
if(docile)
src << "<font color='blue'>You are feeling far too docile to do that.</font>"
to_chat(src, "<font color='blue'>You are feeling far too docile to do that.</font>")
return
src << "<span class = 'danger'>It only takes a few moments to render the dead host brain down into a nutrient-rich slurry...</span>"
to_chat(src, "<span class = 'danger'>It only takes a few moments to render the dead host brain down into a nutrient-rich slurry...</span>")
replace_brain()
*/
@@ -157,10 +157,10 @@
var/mob/living/carbon/human/H = host
if(!istype(host))
src << "This host does not have a suitable brain."
to_chat(src, "This host does not have a suitable brain.")
return
src << "<span class = 'danger'>You settle into the empty brainpan and begin to expand, fusing inextricably with the dead flesh of [H].</span>"
to_chat(src, "<span class = 'danger'>You settle into the empty brainpan and begin to expand, fusing inextricably with the dead flesh of [H].</span>")
H.add_language("Cortical Link")
@@ -204,25 +204,25 @@
set desc = "Push some chemicals into your host's bloodstream."
if(!host)
src << "You are not inside a host body."
to_chat(src, "You are not inside a host body.")
return
if(stat)
src << "You cannot secrete chemicals in your current state."
to_chat(src, "You cannot secrete chemicals in your current state.")
if(docile)
src << "<font color='blue'>You are feeling far too docile to do that.</font>"
to_chat(src, "<font color='blue'>You are feeling far too docile to do that.</font>")
return
if(chemicals < 50)
src << "You don't have enough chemicals!"
to_chat(src, "You don't have enough chemicals!")
var/chem = input("Select a chemical to secrete.", "Chemicals") as null|anything in list("alkysine","bicaridine","hyperzine","tramadol")
if(!chem || chemicals < 50 || !host || controlling || !src || stat) //Sanity check.
return
src << "<font color='red'><B>You squirt a measure of [chem] from your reservoirs into [host]'s bloodstream.</B></font>"
to_chat(src, "<font color='red'><B>You squirt a measure of [chem] from your reservoirs into [host]'s bloodstream.</B></font>")
host.reagents.add_reagent(chem, 10)
chemicals -= 50
@@ -232,15 +232,15 @@
set desc = "Freeze the limbs of a potential host with supernatural fear."
if(world.time - used_dominate < 150)
src << "You cannot use that ability again so soon."
to_chat(src, "You cannot use that ability again so soon.")
return
if(host)
src << "You cannot do that from within a host body."
to_chat(src, "You cannot do that from within a host body.")
return
if(src.stat)
src << "You cannot do that in your current state."
to_chat(src, "You cannot do that in your current state.")
return
var/list/choices = list()
@@ -249,7 +249,7 @@
choices += C
if(world.time - used_dominate < 150)
src << "You cannot use that ability again so soon."
to_chat(src, "You cannot use that ability again so soon.")
return
var/mob/living/carbon/M = input(src,"Who do you wish to dominate?") in null|choices
@@ -257,10 +257,10 @@
if(!M || !src) return
if(M.has_brain_worms())
src << "You cannot infest someone who is already infested!"
to_chat(src, "You cannot infest someone who is already infested!")
return
src << "<font color='red'>You focus your psychic lance on [M] and freeze their limbs with a wave of terrible dread.</font>"
to_chat(src, "<font color='red'>You focus your psychic lance on [M] and freeze their limbs with a wave of terrible dread.</font>")
M << "<font color='red'>You feel a creeping, horrible sense of dread come over you, freezing your limbs and setting your heart racing.</font>"
M.Weaken(10)
@@ -272,18 +272,18 @@
set desc = "Fully connect to the brain of your host."
if(!host)
src << "You are not inside a host body."
to_chat(src, "You are not inside a host body.")
return
if(src.stat)
src << "You cannot do that in your current state."
to_chat(src, "You cannot do that in your current state.")
return
if(docile)
src << "<font color='blue'>You are feeling far too docile to do that.</font>"
to_chat(src, "<font color='blue'>You are feeling far too docile to do that.</font>")
return
src << "You begin delicately adjusting your connection to the host brain..."
to_chat(src, "You begin delicately adjusting your connection to the host brain...")
spawn(100+(host.brainloss*5))
@@ -291,7 +291,7 @@
return
else
src << "<font color='red'><B>You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system.</B></font>"
to_chat(src, "<font color='red'><B>You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system.</B></font>")
host << "<font color='red'><B>You feel a strange shifting sensation behind your eyes as an alien consciousness displaces yours.</B></font>"
host.add_language("Cortical Link")

View File

@@ -69,7 +69,7 @@
if(comm)
comm.close_connection(user = src, target = src, reason = "[src] hung up")
else
src << "You appear to not be inside a communicator. This is a bug and you should report it."
to_chat(src, "You appear to not be inside a communicator. This is a bug and you should report it.")
// Verb: change_name()
// Parameters: None
@@ -90,7 +90,7 @@
log_game(msg)
src.name = new_name
else
src << "<span class='warning'>Invalid name. Rejected.</span>"
to_chat(src, "<span class='warning'>Invalid name. Rejected.</span>")
// Proc: Life()
// Parameters: None

View File

@@ -221,7 +221,7 @@
set category = "IC"
if((is_blind(src) || usr.stat) && !isobserver(src))
src << "<span class='notice'>Something is there but you can't see it.</span>"
to_chat(src, "<span class='notice'>Something is there but you can't see it.</span>")
return 1
face_atom(A)
@@ -278,7 +278,7 @@
if(mind)
mind.show_memory(src)
else
src << "The game appears to have misplaced your mind datum, so we can't show you your notes."
to_chat(src, "The game appears to have misplaced your mind datum, so we can't show you your notes.")
/mob/verb/add_memory(msg as message)
set name = "Add Note"
@@ -289,7 +289,7 @@
if(mind)
mind.store_memory(msg)
else
src << "The game appears to have misplaced your mind datum, so we can't show you your notes."
to_chat(src, "The game appears to have misplaced your mind datum, so we can't show you your notes.")
/mob/proc/store_memory(msg as message, popup, sane = 1)
msg = copytext(msg, 1, MAX_MESSAGE_LEN)
@@ -316,8 +316,8 @@
/mob/proc/warn_flavor_changed()
if(flavor_text && flavor_text != "") // don't spam people that don't use it!
src << "<h2 class='alert'>OOC Warning:</h2>"
src << "<span class='alert'>Your flavor text is likely out of date! <a href='byond://?src=\ref[src];flavor_change=1'>Change</a></span>"
to_chat(src, "<h2 class='alert'>OOC Warning:</h2>")
to_chat(src, "<span class='alert'>Your flavor text is likely out of date! <a href='byond://?src=\ref[src];flavor_change=1'>Change</a></span>")
/mob/proc/print_flavor_text()
if (flavor_text && flavor_text != "")
@@ -558,22 +558,22 @@
return
if (AM.anchored)
src << "<span class='warning'>It won't budge!</span>"
to_chat(src, "<span class='warning'>It won't budge!</span>")
return
var/mob/M = AM
if(ismob(AM))
if(!can_pull_mobs || !can_pull_size)
src << "<span class='warning'>They won't budge!</span>"
to_chat(src, "<span class='warning'>They won't budge!</span>")
return
if((mob_size < M.mob_size) && (can_pull_mobs != MOB_PULL_LARGER))
src << "<span class='warning'>[M] is too large for you to move!</span>"
to_chat(src, "<span class='warning'>[M] is too large for you to move!</span>")
return
if((mob_size == M.mob_size) && (can_pull_mobs == MOB_PULL_SMALLER))
src << "<span class='warning'>[M] is too heavy for you to move!</span>"
to_chat(src, "<span class='warning'>[M] is too heavy for you to move!</span>")
return
// If your size is larger than theirs and you have some
@@ -589,7 +589,7 @@
else
qdel(G)
if(!.)
src << "<span class='warning'>Somebody has a grip on them!</span>"
to_chat(src, "<span class='warning'>Somebody has a grip on them!</span>")
return
if(!iscarbon(src))
@@ -600,7 +600,7 @@
else if(isobj(AM))
var/obj/I = AM
if(!can_pull_size || can_pull_size < I.w_class)
src << "<span class='warning'>It won't budge!</span>"
to_chat(src, "<span class='warning'>It won't budge!</span>")
return
if(pulling)
@@ -619,7 +619,7 @@
if(ishuman(AM))
var/mob/living/carbon/human/H = AM
if(H.pull_damage())
src << "<font color='red'><B>Pulling \the [H] in their current condition would probably be a bad idea.</B></font>"
to_chat(src, "<font color='red'><B>Pulling \the [H] in their current condition would probably be a bad idea.</B></font>")
//Attempted fix for people flying away through space when cuffed and dragged.
if(ismob(AM))
@@ -941,7 +941,7 @@ mob/proc/yank_out_object()
valid_objects = get_visible_implants(0)
if(!valid_objects.len)
if(self)
src << "You have nothing stuck in your body that is large enough to remove."
to_chat(src, "You have nothing stuck in your body that is large enough to remove.")
else
U << "[src] has nothing stuck in their wounds that is large enough to remove."
return
@@ -949,7 +949,7 @@ mob/proc/yank_out_object()
var/obj/item/weapon/selection = input("What do you want to yank out?", "Embedded objects") in valid_objects
if(self)
src << "<span class='warning'>You attempt to get a good grip on [selection] in your body.</span>"
to_chat(src, "<span class='warning'>You attempt to get a good grip on [selection] in your body.</span>")
else
U << "<span class='warning'>You attempt to get a good grip on [selection] in [S]'s body.</span>"

View File

@@ -185,13 +185,13 @@
for(var/mob/M in range(mob, 1))
if(M.pulling == mob)
if(!M.restrained() && M.stat == 0 && M.canmove && mob.Adjacent(M))
src << "<font color='blue'>You're restrained! You can't move!</font>"
to_chat(src, "<font color='blue'>You're restrained! You can't move!</font>")
return 0
else
M.stop_pulling()
if(mob.pinned.len)
src << "<font color='blue'>You're pinned to a wall by [mob.pinned[1]]!</font>"
to_chat(src, "<font color='blue'>You're pinned to a wall by [mob.pinned[1]]!</font>")
return 0
mob.move_delay = world.time//set move delay
@@ -396,7 +396,7 @@
//Check to see if we slipped
if(prob(Process_Spaceslipping(5)) && !buckled)
src << "<font color='blue'><B>You slipped!</B></font>"
to_chat(src, "<font color='blue'><B>You slipped!</B></font>")
src.inertia_dir = src.last_move
step(src, src.inertia_dir)
return 0

View File

@@ -27,7 +27,7 @@ var/obj/effect/lobby_image = new /obj/effect/lobby_image
/mob/new_player/Login()
update_Login_details() //handles setting lastKnownIP and computer_id for use by the ban systems as well as checking for multikeying
if(join_motd)
src << "<div class=\"motd\">[join_motd]</div>"
to_chat(src, "<div class=\"motd\">[join_motd]</div>")
if(!mind)
mind = new /datum/mind(key)

View File

@@ -40,7 +40,7 @@
if(!src.client.holder)
if(!config.dsay_allowed)
src << "<span class='danger'>Deadchat is globally muted.</span>"
to_chat(src, "<span class='danger'>Deadchat is globally muted.</span>")
return
if(!is_preference_enabled(/datum/client_preference/show_dsay))

View File

@@ -36,7 +36,7 @@
dna.SetSEState(MONKEYBLOCK,1)
dna.SetSEValueRange(MONKEYBLOCK,0xDAC, 0xFFF)
src << "<B>You are now [species.name]. </B>"
to_chat(src, "<B>You are now [species.name]. </B>")
qdel(animation)
return src