mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-06 15:32:52 +00:00
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:
@@ -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)]°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)]°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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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, 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, 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, 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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>")
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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>")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
@@ -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++
|
||||
|
||||
@@ -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()
|
||||
..()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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>")
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user