mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-14 00:26:02 +01:00
next set of spans (#16434)
* next set of spans * some more * next * next * next * . * text... * next... rest soon * . * . * ok last set for the night * . * . * . * . * some more * next * next * all for now * . * some more easy ones * some more easy ones * . * . * some more bolds * oups auto complete moment * add the remaining spans * this as well * this as well * . * ., * resync them properly
This commit is contained in:
@@ -7,8 +7,8 @@
|
||||
name = "cloning sickness"
|
||||
desc = "You feel rather weak, having been cloned not so long ago."
|
||||
|
||||
on_created_text = span_warning("<font size='3'>You feel really weak.</font>")
|
||||
on_expired_text = span_notice("<font size='3'>You feel your strength returning to you.</font>")
|
||||
on_created_text = span_warning(span_large("You feel really weak."))
|
||||
on_expired_text = span_notice(span_large("You feel your strength returning to you."))
|
||||
|
||||
max_health_percent = 0.6 // -40% max health.
|
||||
incoming_damage_percent = 1.1 // 10% more incoming damage.
|
||||
@@ -52,8 +52,8 @@
|
||||
name = "reformation sickness"
|
||||
desc = "Your core feels damaged, as you were reformed with the improper machinery."
|
||||
|
||||
on_created_text = span_warning("<font size='3'>Your core aches.</font>")
|
||||
on_expired_text = span_notice("<font size='3'>You feel your core's strength returning to normal.</font>")
|
||||
on_created_text = span_warning(span_large("Your core aches."))
|
||||
on_expired_text = span_notice(span_large("You feel your core's strength returning to normal."))
|
||||
|
||||
incoming_damage_percent = 1 //Level the incoming damage from the parent modifier. They already take 200% burn.
|
||||
incoming_brute_damage_percent = 1.5 //150% incoming brute damage. Decreases the effectiveness of their 0.75 modifier.
|
||||
@@ -70,8 +70,8 @@
|
||||
name = "surgically attached brain"
|
||||
desc = "You feel weak, as your central nervous system is still recovering from being repaired."
|
||||
|
||||
on_created_text = span_warning("<font size='3'>You feel... off, and your head hurts.</font>")
|
||||
on_expired_text = span_notice("<font size='3'>You feel some strength returning to you.</font>")
|
||||
on_created_text = span_warning(span_large("You feel... off, and your head hurts."))
|
||||
on_expired_text = span_notice(span_large("You feel some strength returning to you."))
|
||||
|
||||
max_health_percent = 0.9 // -10% max health.
|
||||
incoming_damage_percent = 1.1 // 10% more incoming damage.
|
||||
@@ -107,8 +107,8 @@
|
||||
name = "neural recovery"
|
||||
desc = "You feel out of touch, as your central nervous system is still recovering from being repaired."
|
||||
|
||||
on_created_text = span_warning("<font size='3'>You feel... off. Everything is fuzzy.</font>")
|
||||
on_expired_text = span_notice("<font size='3'>You feel your senses returning to you.</font>")
|
||||
on_created_text = span_warning(span_large("You feel... off. Everything is fuzzy."))
|
||||
on_expired_text = span_notice(span_large("You feel your senses returning to you."))
|
||||
|
||||
incoming_hal_damage_percent = 1.5 // 50% more halloss damage.
|
||||
disable_duration_percent = 1.25 // Stuns last 25% longer.
|
||||
|
||||
@@ -175,8 +175,8 @@ the artifact triggers the rage.
|
||||
client_color = "#FF0000" // Make everything red!
|
||||
mob_overlay_state = "berserk"
|
||||
|
||||
on_created_text = "<span class='danger'>You feel an intense and overwhelming rage overtake you as you go berserk! \
|
||||
Unfortunately, your lifeless body cannot benefit from this. You feel reckless...</span>"
|
||||
on_created_text = span_danger("You feel an intense and overwhelming rage overtake you as you go berserk! \
|
||||
Unfortunately, your lifeless body cannot benefit from this. You feel reckless...")
|
||||
on_expired_text = span_notice("The blaze of rage inside your mind has ran out.")
|
||||
stacks = MODIFIER_STACK_EXTEND
|
||||
|
||||
|
||||
@@ -64,8 +64,8 @@
|
||||
on_expired_text = span_notice("You feel that blood doesn't bother you, at least, as much as it used to.")
|
||||
|
||||
zero_fear_up = list(
|
||||
span_warning("<font size='3'>You see some blood nearby...</font>"),
|
||||
span_warning("<font size='3'>You try to avoid looking at the blood nearby.</font>")
|
||||
span_warning(span_large("You see some blood nearby...")),
|
||||
span_warning(span_large("You try to avoid looking at the blood nearby."))
|
||||
)
|
||||
zero_fear_down = list(
|
||||
span_notice("You feel better now, with no blood in sight."),
|
||||
@@ -74,8 +74,8 @@
|
||||
)
|
||||
|
||||
half_fear_up = list(
|
||||
span_danger("<font size='3'>You're still near the blood!</font>"),
|
||||
span_danger("<font size='3'>So much blood... You can't stand it.</font>")
|
||||
span_danger(span_large("You're still near the blood!")),
|
||||
span_danger(span_large("So much blood... You can't stand it."))
|
||||
)
|
||||
half_fear_down = list(
|
||||
span_warning("The blood is gone now, but you're still worked up."),
|
||||
@@ -83,9 +83,9 @@
|
||||
)
|
||||
|
||||
full_fear_up = list(
|
||||
span_danger("<font size='4'>The blood is too much!</font>"),
|
||||
span_danger("<font size='4'>There is so much blood here, you need to leave!</font>"),
|
||||
span_danger("<font size='4'>You gotta get away from the blood!</font>")
|
||||
span_danger(span_huge("The blood is too much!")),
|
||||
span_danger(span_huge("There is so much blood here, you need to leave!")),
|
||||
span_danger(span_huge("You gotta get away from the blood!"))
|
||||
)
|
||||
full_fear_down = list(
|
||||
span_danger("The blood is gone, but you're still very anxious."),
|
||||
@@ -165,8 +165,8 @@
|
||||
on_expired_text = span_notice("You feel that your fear of spiders has gone from 'crippling' to 'nope nope nope', which is still an improvement.")
|
||||
|
||||
zero_fear_up = list(
|
||||
span_warning("<font size='3'>You see a spider!</font>"),
|
||||
span_warning("<font size='3'>Spider!</font>")
|
||||
span_warning(span_large("You see a spider!")),
|
||||
span_warning(span_large("Spider!"))
|
||||
)
|
||||
zero_fear_down = list(
|
||||
span_notice("Those evil spiders are finally gone."),
|
||||
@@ -175,9 +175,9 @@
|
||||
)
|
||||
|
||||
half_fear_up = list(
|
||||
span_danger("<font size='3'>The spiders are gonna eat you!</font>"),
|
||||
span_danger("<font size='3'>The spiders are still here!</font>"),
|
||||
span_danger("<font size='3'>The spiders will lay eggs inside you if you don't run!</font>"),
|
||||
span_danger(span_large("The spiders are gonna eat you!")),
|
||||
span_danger(span_large("The spiders are still here!")),
|
||||
span_danger(span_large("The spiders will lay eggs inside you if you don't run!")),
|
||||
)
|
||||
half_fear_down = list(
|
||||
span_warning("The spiders are gone... right?"),
|
||||
@@ -185,9 +185,9 @@
|
||||
)
|
||||
|
||||
full_fear_up = list(
|
||||
span_danger("<font size='4'>The chittering is driving you mad!</font>"),
|
||||
span_danger("<font size='4'>You're gonna be spider-food if you don't run!</font>"),
|
||||
span_danger("<font size='4'>The spiders are gonna feast on your eyes!</font>")
|
||||
span_danger(span_huge("The chittering is driving you mad!")),
|
||||
span_danger(span_huge("You're gonna be spider-food if you don't run!")),
|
||||
span_danger(span_huge("The spiders are gonna feast on your eyes!"))
|
||||
)
|
||||
full_fear_down = list(
|
||||
span_danger("The spiders must surely be hiding somewhere..."),
|
||||
@@ -238,8 +238,8 @@
|
||||
var/fear_threshold = 0.5 // Average lighting needs to be below this to start increasing fear.
|
||||
|
||||
zero_fear_up = list(
|
||||
span_warning("<font size='3'>It's so dark here!</font>"),
|
||||
span_warning("<font size='3'>It's too dark!</font>")
|
||||
span_warning(span_large("It's so dark here!")),
|
||||
span_warning(span_large("It's too dark!"))
|
||||
)
|
||||
zero_fear_down = list(
|
||||
span_notice("You feel calmer, now that you're in the light."),
|
||||
@@ -248,9 +248,9 @@
|
||||
)
|
||||
|
||||
half_fear_up = list(
|
||||
span_danger("<font size='3'>You need to escape this darkness!</font>"),
|
||||
span_danger("<font size='3'>Something might be lurking near you, but you can't see in this darkness.</font>"),
|
||||
span_danger("<font size='3'>You need to find a light!</font>"),
|
||||
span_danger(span_large("You need to escape this darkness!")),
|
||||
span_danger(span_large("Something might be lurking near you, but you can't see in this darkness.")),
|
||||
span_danger(span_large("You need to find a light!")),
|
||||
)
|
||||
half_fear_down = list(
|
||||
span_warning("The darkness is gone, for now..."),
|
||||
@@ -258,8 +258,8 @@
|
||||
)
|
||||
|
||||
full_fear_up = list(
|
||||
span_danger("<font size='4'>What was that?</font>"),
|
||||
span_danger("<font size='4'>Something is nearby...</font>")
|
||||
span_danger(span_huge("What was that?")),
|
||||
span_danger(span_huge("Something is nearby..."))
|
||||
)
|
||||
full_fear_down = list(
|
||||
span_danger("Light, at last!"),
|
||||
@@ -315,8 +315,8 @@
|
||||
on_expired_text = span_notice("Small rooms aren't so bad now.")
|
||||
|
||||
zero_fear_up = list(
|
||||
span_warning("<font size='3'>This room is too small...</font>"),
|
||||
span_warning("<font size='3'>The walls are too close together...</font>")
|
||||
span_warning(span_large("This room is too small...")),
|
||||
span_warning(span_large("The walls are too close together..."))
|
||||
)
|
||||
zero_fear_down = list(
|
||||
span_notice("You feel calmer, now that you're in a larger room."),
|
||||
@@ -325,9 +325,9 @@
|
||||
)
|
||||
|
||||
half_fear_up = list(
|
||||
span_danger("<font size='3'>Your surroundings look like they are closing in.</font>"),
|
||||
span_danger("<font size='3'>Is the room getting smaller?</font>"),
|
||||
span_danger("<font size='3'>You need to get out of here!</font>"),
|
||||
span_danger(span_large("Your surroundings look like they are closing in.")),
|
||||
span_danger(span_large("Is the room getting smaller?")),
|
||||
span_danger(span_large("You need to get out of here!")),
|
||||
)
|
||||
half_fear_down = list(
|
||||
span_warning("Your surroundings seem to have stopped closing in."),
|
||||
@@ -335,8 +335,8 @@
|
||||
)
|
||||
|
||||
full_fear_up = list(
|
||||
span_danger("<font size='4'>You need to escape!</font>"),
|
||||
span_danger("<font size='4'>There's barely any room to move around!</font>")
|
||||
span_danger(span_huge("You need to escape!")),
|
||||
span_danger(span_huge("There's barely any room to move around!"))
|
||||
)
|
||||
full_fear_down = list(
|
||||
span_danger("The surroundings stop shrinking."),
|
||||
@@ -380,8 +380,8 @@
|
||||
on_expired_text = span_notice("You feel more... okay with slime.")
|
||||
|
||||
zero_fear_up = list(
|
||||
span_warning("<font size='3'>That's some slime!</font>"),
|
||||
span_warning("<font size='3'>There's slime right there!</font>")
|
||||
span_warning(span_large("That's some slime!")),
|
||||
span_warning(span_large("There's slime right there!"))
|
||||
)
|
||||
zero_fear_down = list(
|
||||
span_notice("The slime is out of sight and out of mind."),
|
||||
@@ -389,8 +389,8 @@
|
||||
)
|
||||
|
||||
half_fear_up = list(
|
||||
span_danger("<font size='3'>The slimes might strike at any point!</font>"),
|
||||
span_danger("<font size='3'>The slime is still there!</font>")
|
||||
span_danger(span_large("The slimes might strike at any point!")),
|
||||
span_danger(span_large("The slime is still there!"))
|
||||
)
|
||||
half_fear_down = list(
|
||||
span_warning("The slime is gone... right?"),
|
||||
@@ -398,8 +398,8 @@
|
||||
)
|
||||
|
||||
full_fear_up = list(
|
||||
span_danger("<font size='4'>The slime is everywhere!</font>"),
|
||||
span_danger("<font size='4'>You're gonna get absorbed if you don't get out!</font>")
|
||||
span_danger(span_huge("The slime is everywhere!")),
|
||||
span_danger(span_huge("You're gonna get absorbed if you don't get out!"))
|
||||
)
|
||||
full_fear_down = list(
|
||||
span_danger("There must be more of that slime somewhere..."),
|
||||
@@ -475,8 +475,8 @@
|
||||
|
||||
|
||||
zero_fear_up = list(
|
||||
span_warning("<font size='3'>That's a needle!</font>"),
|
||||
span_warning("<font size='3'>There's a needle right there!</font>")
|
||||
span_warning(span_large("That's a needle!")),
|
||||
span_warning(span_large("There's a needle right there!"))
|
||||
)
|
||||
zero_fear_down = list(
|
||||
span_notice("The needle is gone, no need to worry."),
|
||||
@@ -484,8 +484,8 @@
|
||||
)
|
||||
|
||||
half_fear_up = list(
|
||||
span_danger("<font size='3'>The needle could get you at any time!</font>"),
|
||||
span_danger("<font size='3'>The needle is still there!</font>")
|
||||
span_danger(span_large("The needle could get you at any time!")),
|
||||
span_danger(span_large("The needle is still there!"))
|
||||
)
|
||||
half_fear_down = list(
|
||||
span_warning("There are no more needles... right?"),
|
||||
@@ -493,8 +493,8 @@
|
||||
)
|
||||
|
||||
full_fear_up = list(
|
||||
span_danger("<font size='4'>The needles are going to pierce you!</font>"),
|
||||
span_danger("<font size='4'>They could get you any second!</font>")
|
||||
span_danger(span_huge("The needles are going to pierce you!")),
|
||||
span_danger(span_huge("They could get you any second!"))
|
||||
)
|
||||
full_fear_down = list(
|
||||
span_danger("There are more needles around, you can feel it..."),
|
||||
@@ -586,7 +586,7 @@
|
||||
|
||||
if(xenos.len)
|
||||
var/chosen_xeno = pick(xenos)
|
||||
to_chat(holder, span_warning("<font size='3'>[make_message(chosen_xeno)]</font>"))
|
||||
to_chat(holder, span_warning(span_large("[make_message(chosen_xeno)]")))
|
||||
return TRUE
|
||||
else
|
||||
return FALSE // No xenos in sight, so don't apply the cooldown.
|
||||
|
||||
@@ -173,7 +173,7 @@
|
||||
. = ..()
|
||||
|
||||
if(is_admin(user))
|
||||
. += "\t><span class='admin'>[ADMIN_FULLMONTY(src)]</span>"
|
||||
. += "\t>" + span_admin("[ADMIN_FULLMONTY(src)]")
|
||||
|
||||
/*
|
||||
Transfer_mind is there to check if mob is being deleted/not going to have a body.
|
||||
@@ -302,7 +302,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
medHUD = !medHUD
|
||||
plane_holder.set_vis(VIS_CH_HEALTH, medHUD)
|
||||
plane_holder.set_vis(VIS_CH_STATUS_OOC, medHUD)
|
||||
to_chat(src, span_notice("<B>Medical HUD [medHUD ? "Enabled" : "Disabled"]</B>"))
|
||||
to_chat(src, span_boldnotice("Medical HUD [medHUD ? "Enabled" : "Disabled"]"))
|
||||
|
||||
/mob/observer/dead/verb/toggle_secHUD()
|
||||
set category = "Ghost"
|
||||
@@ -315,7 +315,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
plane_holder.set_vis(VIS_CH_IMPTRACK, secHUD)
|
||||
plane_holder.set_vis(VIS_CH_IMPLOYAL, secHUD)
|
||||
plane_holder.set_vis(VIS_CH_IMPCHEM, secHUD)
|
||||
to_chat(src, span_notice("<B>Security HUD [secHUD ? "Enabled" : "Disabled"]</B>"))
|
||||
to_chat(src, span_boldnotice("Security HUD [secHUD ? "Enabled" : "Disabled"]"))
|
||||
|
||||
/mob/observer/dead/verb/toggle_antagHUD()
|
||||
set category = "Ghost"
|
||||
@@ -323,10 +323,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
set desc = "Toggles AntagHUD allowing you to see who is the antagonist"
|
||||
|
||||
if(!config.antag_hud_allowed && !client.holder)
|
||||
to_chat(src, span_filter_notice("[span_red("Admins have disabled this for this round.")]"))
|
||||
to_chat(src, span_filter_notice(span_red("Admins have disabled this for this round.")))
|
||||
return
|
||||
if(jobban_isbanned(src, JOB_ANTAGHUD))
|
||||
to_chat(src, span_filter_notice("[span_red("<B>You have been banned from using this feature</B>")]"))
|
||||
to_chat(src, span_filter_notice(span_red(span_bold("You have been banned from using this feature"))))
|
||||
return
|
||||
if(config.antag_hud_restricted && !has_enabled_antagHUD && !client.holder)
|
||||
var/response = tgui_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?",list("Yes","No"))
|
||||
@@ -338,7 +338,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
antagHUD = !antagHUD
|
||||
plane_holder.set_vis(VIS_CH_SPECIAL, antagHUD)
|
||||
to_chat(src, span_notice("<B>AntagHUD [antagHUD ? "Enabled" : "Disabled"]</B>"))
|
||||
to_chat(src, span_boldnotice("AntagHUD [antagHUD ? "Enabled" : "Disabled"]"))
|
||||
|
||||
/mob/observer/dead/proc/jumpable_areas()
|
||||
var/list/areas = return_sorted_areas()
|
||||
@@ -599,11 +599,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
|
||||
to_chat(src, span_filter_notice("[span_red("You are dead! You have no mind to store memory!")]"))
|
||||
to_chat(src, span_filter_notice(span_red("You are dead! You have no mind to store memory!")))
|
||||
|
||||
/mob/observer/dead/add_memory()
|
||||
set hidden = 1
|
||||
to_chat(src, span_filter_notice("[span_red("You are dead! You have no mind to store memory!")]"))
|
||||
to_chat(src, span_filter_notice(span_red("You are dead! You have no mind to store memory!")))
|
||||
|
||||
/mob/observer/dead/Post_Incorpmove()
|
||||
stop_following()
|
||||
@@ -623,7 +623,7 @@ 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
|
||||
var/list/gas_analyzing = list()
|
||||
gas_analyzing += "<B>Results:</B>"
|
||||
gas_analyzing += span_bold("Results:")
|
||||
if(abs(pressure - ONE_ATMOSPHERE) < 10)
|
||||
gas_analyzing += "Pressure: [round(pressure,0.1)] kPa"
|
||||
else
|
||||
@@ -723,7 +723,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
set desc = "If the round is sufficiently spooky, write a short message in blood on the floor or a wall. Remember, no IC in OOC or OOC in IC."
|
||||
|
||||
if(!(config.cult_ghostwriter))
|
||||
to_chat(src, span_filter_notice("[span_red("That verb is not currently permitted.")]"))
|
||||
to_chat(src, span_filter_notice(span_red("That verb is not currently permitted.")))
|
||||
return
|
||||
|
||||
if (!src.stat)
|
||||
@@ -738,7 +738,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
ghosts_can_write = 1
|
||||
|
||||
if(!ghosts_can_write && !check_rights(R_ADMIN|R_EVENT|R_FUN, 0)) //Let's allow for admins to write in blood for events and the such.
|
||||
to_chat(src, span_filter_notice("[span_red("The veil is not thin enough for you to do that.")]"))
|
||||
to_chat(src, span_filter_notice(span_red("The veil is not thin enough for you to do that.")))
|
||||
return
|
||||
|
||||
var/list/choices = list()
|
||||
@@ -747,7 +747,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
choices += B
|
||||
|
||||
if(!choices.len)
|
||||
to_chat(src, "<span class = 'warning'>There is no blood to use nearby.</span>")
|
||||
to_chat(src, span_warning("There is no blood to use nearby."))
|
||||
return
|
||||
|
||||
var/obj/effect/decal/cleanable/blood/choice = tgui_input_list(src, "What blood would you like to use?", "Blood Choice", choices)
|
||||
@@ -788,19 +788,19 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
W.update_icon()
|
||||
W.message = message
|
||||
W.add_hiddenprint(src)
|
||||
W.visible_message(span_filter_notice("[span_red("Invisible fingers crudely paint something in blood on [T]...")]"))
|
||||
W.visible_message(span_filter_notice(span_red("Invisible fingers crudely paint something in blood on [T]...")))
|
||||
|
||||
/mob/observer/dead/pointed(atom/A as mob|obj|turf in view())
|
||||
if(!..())
|
||||
return 0
|
||||
usr.visible_message(span_deadsay("<b>[src]</b> points to [A]."))
|
||||
usr.visible_message(span_deadsay(span_bold("[src]") + " points to [A]."))
|
||||
return 1
|
||||
|
||||
/mob/observer/dead/proc/manifest(mob/user)
|
||||
is_manifest = TRUE
|
||||
add_verb(src, /mob/observer/dead/proc/toggle_visibility)
|
||||
add_verb(src, /mob/observer/dead/proc/ghost_whisper)
|
||||
to_chat(src, span_filter_notice("[span_purple("As you are now in the realm of the living, you can whisper to the living with the <b>Spectral Whisper</b> verb, inside the IC tab.")]"))
|
||||
to_chat(src, span_filter_notice(span_purple("As you are now in the realm of the living, you can whisper to the living with the " + span_bold("Spectral Whisper") + " verb, inside the IC tab.")))
|
||||
if(plane != PLANE_WORLD)
|
||||
user.visible_message( \
|
||||
span_warning("\The [user] drags ghost, [src], to our plane of reality!"), \
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
facing_dir = null
|
||||
|
||||
if(!gibbed && deathmessage != DEATHGASP_NO_MESSAGE)
|
||||
src.visible_message("<b>\The [src.name]</b> [deathmessage]")
|
||||
src.visible_message(span_infoplain(span_bold("\The [src.name]") + " [deathmessage]"))
|
||||
|
||||
set_stat(DEAD)
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
if(input)
|
||||
log_ghostemote(input, src)
|
||||
if(!invisibility) //If the ghost is made visible by admins or cult. And to see if the ghost has toggled its own visibility, as well. -Mech
|
||||
visible_message(span_deadsay("<B>[src]</B> [input]"))
|
||||
visible_message(span_deadsay(span_bold("[src]") + " [input]"))
|
||||
else
|
||||
say_dead_direct(input, src)
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
return FALSE
|
||||
|
||||
if(italics)
|
||||
message = "<i>[message]</i>"
|
||||
message = span_italics("[message]")
|
||||
|
||||
message = encode_html_emphasis(message)
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
speaker_name = "[speaker.real_name] ([speaker_name])"
|
||||
track = "([ghost_follow_link(speaker, src)]) "
|
||||
if(client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears) && (speaker in view(src)))
|
||||
message = "<b>[message]</b>"
|
||||
message = span_bold("[message]")
|
||||
|
||||
if(is_deaf())
|
||||
if(speaker == src)
|
||||
@@ -228,7 +228,7 @@
|
||||
time = say_timestamp()
|
||||
var/final_message = "[part_b][speaker_name][part_c][formatted][part_d]"
|
||||
if(check_mentioned(formatted) && client?.prefs?.read_preference(/datum/preference/toggle/check_mention))
|
||||
final_message = "[time][part_a]<font size='3'><b>[final_message]</b></font>[part_e]"
|
||||
final_message = "[time][part_a]" + span_large(span_bold("[final_message]")) + "[part_e]"
|
||||
else
|
||||
final_message = "[time][part_a][final_message][part_e]"
|
||||
to_chat(src, final_message)
|
||||
@@ -239,7 +239,7 @@
|
||||
time = say_timestamp()
|
||||
var/final_message = "[part_b][track][part_c][formatted][part_d]"
|
||||
if(check_mentioned(formatted) && client?.prefs?.read_preference(/datum/preference/toggle/check_mention))
|
||||
final_message = "[time][part_a]<font size='3'><b>[final_message]</b></font>[part_e]"
|
||||
final_message = "[time][part_a]" + span_large(span_bold("[final_message]")) + "[part_e]"
|
||||
else
|
||||
final_message = "[time][part_a][final_message][part_e]"
|
||||
to_chat(src, final_message)
|
||||
@@ -250,7 +250,7 @@
|
||||
time = say_timestamp()
|
||||
var/final_message = "[part_b][speaker_name][part_c][formatted][part_d]"
|
||||
if(check_mentioned(formatted) && client?.prefs?.read_preference(/datum/preference/toggle/check_mention))
|
||||
final_message = "[time][part_a]<font size='3'><b>[final_message]</b></font>[part_e]"
|
||||
final_message = "[time][part_a]" + span_large(span_bold("[final_message]")) + "[part_e]"
|
||||
else
|
||||
final_message = "[time][part_a][final_message][part_e]"
|
||||
to_chat(src, final_message)
|
||||
@@ -261,7 +261,7 @@
|
||||
time = say_timestamp()
|
||||
var/final_message = "[part_b][track][part_c][formatted][part_d]"
|
||||
if(check_mentioned(formatted) && client?.prefs?.read_preference(/datum/preference/toggle/check_mention))
|
||||
final_message = "[time][part_a]<font size='3'><b>[final_message]</b></font>[part_e]"
|
||||
final_message = "[time][part_a]" + span_large(span_bold("[final_message]")) + "[part_e]"
|
||||
else
|
||||
final_message = "[time][part_a][final_message][part_e]"
|
||||
to_chat(src, final_message)
|
||||
@@ -271,7 +271,7 @@
|
||||
return
|
||||
|
||||
if(say_understands(speaker, language))
|
||||
message = span_game(span_say("<B>[speaker]</B> [verb_understood], \"[message]\""))
|
||||
message = span_game(span_say(span_bold("[speaker]") + " [verb_understood], \"[message]\""))
|
||||
else if(!(language.ignore_adverb))
|
||||
var/adverb
|
||||
var/length = length(message) * pick(0.8, 0.9, 1.0, 1.1, 1.2) //Adds a little bit of fuzziness
|
||||
@@ -281,9 +281,9 @@
|
||||
if(30 to 48) adverb = " a message"
|
||||
if(48 to 90) adverb = " a lengthy message"
|
||||
else adverb = " a very lengthy message"
|
||||
message = span_game(span_say("<B>[speaker]</B> [verb][adverb]."))
|
||||
message = span_game(span_say(span_bold("[speaker]") + " [verb][adverb]."))
|
||||
else
|
||||
message = span_game(span_say("<B>[speaker]</B> [verb]."))
|
||||
message = span_game(span_say(span_bold("[speaker]") + " [verb]."))
|
||||
|
||||
show_message(message, type = speech_type) // Type 1 is visual message
|
||||
|
||||
@@ -301,7 +301,7 @@
|
||||
heard = span_game(span_say("...You hear something about...[heardword]"))
|
||||
|
||||
else
|
||||
heard = span_game(span_say("...<i>You almost hear someone talking</i>..."))
|
||||
heard = span_game(span_say("..." + span_italics("You almost hear someone talking") + "..."))
|
||||
|
||||
to_chat(src, heard)
|
||||
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
|
||||
/mob/proc/hear_broadcast(var/datum/language/language, var/mob/speaker, var/speaker_name, var/message)
|
||||
if((language in languages) && language.check_special_condition(src))
|
||||
var/msg = span_hivemind("[language.name], <span class='name'>[speaker_name]</span> [message]")
|
||||
var/msg = span_hivemind("[language.name], " + span_name("[speaker_name]") + " [message]")
|
||||
to_chat(src,msg)
|
||||
|
||||
/mob/new_player/hear_broadcast(var/datum/language/language, var/mob/speaker, var/speaker_name, var/message)
|
||||
@@ -162,9 +162,9 @@
|
||||
|
||||
/mob/observer/dead/hear_broadcast(var/datum/language/language, var/mob/speaker, var/speaker_name, var/message)
|
||||
if(speaker.name == speaker_name || antagHUD)
|
||||
to_chat(src, span_hivemind("[language.name], <span class='name'>[speaker_name]</span> ([ghost_follow_link(speaker, src)]) [message]"))
|
||||
to_chat(src, span_hivemind("[language.name], " + span_name("[speaker_name]") + " ([ghost_follow_link(speaker, src)]) [message]"))
|
||||
else
|
||||
to_chat(src, span_hivemind("[language.name], <span class='name'>[speaker_name]</span> [message]"))
|
||||
to_chat(src, span_hivemind("[language.name], " + span_name("[speaker_name]") + " [message]"))
|
||||
|
||||
/datum/language/proc/check_special_condition(var/mob/other)
|
||||
return 1
|
||||
@@ -265,7 +265,7 @@
|
||||
for(var/datum/language/L in languages)
|
||||
if(!(L.flags & NONGLOBAL))
|
||||
var/lang_key = get_custom_prefix_by_lang(src, L)
|
||||
. += "<b>[L.name] ([get_language_prefix()][L.key][lang_key ? " [get_language_prefix()][lang_key]" : ""])</b><br/>[L.desc]<br/><br/>"
|
||||
. += span_bold("[L.name] ([get_language_prefix()][L.key][lang_key ? " [get_language_prefix()][lang_key]" : ""])") + "<br/>[L.desc]<br/><br/>"
|
||||
|
||||
/mob/living/check_lang_data()
|
||||
. = ""
|
||||
@@ -277,11 +277,11 @@
|
||||
if(!(L.flags & NONGLOBAL))
|
||||
var/lang_key = get_custom_prefix_by_lang(src, L)
|
||||
if(L == default_language)
|
||||
. += "<b>[L.name] ([get_language_prefix()][L.key][lang_key ? " [get_language_prefix()][lang_key]" : ""])</b> <a href='byond://?src=\ref[src];set_lang_key=\ref[L]'>Edit Custom Key</a> - default - <a href='byond://?src=\ref[src];default_lang=reset'>reset</a><br/>[L.desc]<br/><br/>"
|
||||
. += span_bold("[L.name] ([get_language_prefix()][L.key][lang_key ? " [get_language_prefix()][lang_key]" : ""])") + " <a href='byond://?src=\ref[src];set_lang_key=\ref[L]'>Edit Custom Key</a> - default - <a href='byond://?src=\ref[src];default_lang=reset'>reset</a><br/>[L.desc]<br/><br/>"
|
||||
else if (can_speak(L))
|
||||
. += "<b>[L.name] ([get_language_prefix()][L.key][lang_key ? " [get_language_prefix()][lang_key]" : ""])</b> <a href='byond://?src=\ref[src];set_lang_key=\ref[L]'>Edit Custom Key</a> - <a href='byond://?src=\ref[src];default_lang=\ref[L]'>set default</a><br/>[L.desc]<br/><br/>"
|
||||
. += span_bold("[L.name] ([get_language_prefix()][L.key][lang_key ? " [get_language_prefix()][lang_key]" : ""])") + " <a href='byond://?src=\ref[src];set_lang_key=\ref[L]'>Edit Custom Key</a> - <a href='byond://?src=\ref[src];default_lang=\ref[L]'>set default</a><br/>[L.desc]<br/><br/>"
|
||||
else
|
||||
. += "<b>[L.name] ([get_language_prefix()][L.key][lang_key ? " [get_language_prefix()][lang_key]" : ""])</b> <a href='byond://?src=\ref[src];set_lang_key=\ref[L]'>Edit Custom Key</a> - cannot speak!<br/>[L.desc]<br/><br/>"
|
||||
. += span_bold("[L.name] ([get_language_prefix()][L.key][lang_key ? " [get_language_prefix()][lang_key]" : ""])") + " <a href='byond://?src=\ref[src];set_lang_key=\ref[L]'>Edit Custom Key</a> - cannot speak!<br/>[L.desc]<br/><br/>"
|
||||
|
||||
/mob/verb/check_languages()
|
||||
set name = "Check Known Languages"
|
||||
|
||||
@@ -20,27 +20,27 @@
|
||||
|
||||
message = encode_html_emphasis(message)
|
||||
|
||||
var/message_start = "[name], <span class='name'>[speaker.name]</span>"
|
||||
var/message_start = "[name], " + span_name("[speaker.name]")
|
||||
var/message_body = span_message("[speaker.say_quote(message)], \"[message]\"")
|
||||
|
||||
for (var/mob/M in dead_mob_list)
|
||||
if(!istype(M,/mob/new_player) && !istype(M,/mob/living/carbon/brain)) //No meta-evesdropping
|
||||
var/message_to_send = span_binarysay("[message_start] ([ghost_follow_link(speaker, M)]) [message_body]")
|
||||
if(M.check_mentioned(message) && M.client?.prefs?.read_preference(/datum/preference/toggle/check_mention))
|
||||
message_to_send = "<font size='3'><b>[message_to_send]</b></font>"
|
||||
message_to_send = span_large(span_bold("[message_to_send]"))
|
||||
M.show_message(message_to_send, 2)
|
||||
|
||||
for (var/mob/living/S in living_mob_list)
|
||||
if(drone_only && !istype(S,/mob/living/silicon/robot/drone))
|
||||
continue
|
||||
else if(istype(S , /mob/living/silicon/ai))
|
||||
message_start = span_binarysay("[name], <a href='byond://?src=\ref[S];track2=\ref[S];track=\ref[speaker];trackname=[html_encode(speaker.name)]'><span class='name'>[speaker.name]</span></a>")
|
||||
message_start = span_binarysay("[name], <a href='byond://?src=\ref[S];track2=\ref[S];track=\ref[speaker];trackname=[html_encode(speaker.name)]'>" + span_name("[speaker.name]") + "</a>")
|
||||
else if (!S.binarycheck())
|
||||
continue
|
||||
|
||||
var/message_to_send = span_binarysay("[message_start] [message_body]")
|
||||
if(S.check_mentioned(message) && S.client?.prefs?.read_preference(/datum/preference/toggle/check_mention))
|
||||
message_to_send = "<font size='3'><b>[message_to_send]</b></font>"
|
||||
message_to_send = span_large(span_bold("[message_to_send]"))
|
||||
S.show_message(message_to_send, 2)
|
||||
|
||||
var/list/listening = hearers(1, src)
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
if(!red_switch && blue_switch && !green_switch && prob(50) || src.emagged)
|
||||
if(istype(loc, /turf/simulated))
|
||||
var/turf/simulated/T = loc
|
||||
visible_message("<b>\The [src]</b> squirts a puddle of water on the floor!")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " squirts a puddle of water on the floor!"))
|
||||
T.wet_floor()
|
||||
|
||||
if(!red_switch && !blue_switch && green_switch && prob(10) || src.emagged)
|
||||
|
||||
@@ -228,7 +228,7 @@
|
||||
return
|
||||
busy = 1
|
||||
update_icons()
|
||||
visible_message("<b>\The [src]</b> begins to repair the hole.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " begins to repair the hole."))
|
||||
if(do_after(src, 50))
|
||||
if(A && (locate(/obj/structure/lattice, A) && building == 1 || !locate(/obj/structure/lattice, A) && building == 2)) // Make sure that it still needs repairs
|
||||
var/obj/item/I
|
||||
@@ -245,7 +245,7 @@
|
||||
if(F.broken || F.burnt)
|
||||
busy = 1
|
||||
update_icons()
|
||||
visible_message("<b>\The [src]</b> begins to remove the broken floor.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " begins to remove the broken floor."))
|
||||
if(do_after(src, 50, F))
|
||||
if(F.broken || F.burnt)
|
||||
F.make_plating()
|
||||
@@ -255,7 +255,7 @@
|
||||
else if(!F.flooring && amount)
|
||||
busy = 1
|
||||
update_icons()
|
||||
visible_message("<b>\The [src]</b> begins to improve the floor.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " begins to improve the floor."))
|
||||
if(do_after(src, 50))
|
||||
if(!F.flooring)
|
||||
F.set_flooring(get_flooring_data(floor_build_type))
|
||||
@@ -265,7 +265,7 @@
|
||||
update_icons()
|
||||
else if(istype(A, /obj/item/stack/tile/floor) && amount < maxAmount)
|
||||
var/obj/item/stack/tile/floor/T = A
|
||||
visible_message("<b>\The [src]</b> begins to collect tiles.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " begins to collect tiles."))
|
||||
busy = 1
|
||||
update_icons()
|
||||
if(do_after(src, 20))
|
||||
@@ -279,7 +279,7 @@
|
||||
else if(istype(A, /obj/item/stack/material) && amount + 4 <= maxAmount)
|
||||
var/obj/item/stack/material/M = A
|
||||
if(M.get_material_name() == MAT_STEEL)
|
||||
visible_message("<b>\The [src]</b> begins to make tiles.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " begins to make tiles."))
|
||||
busy = 1
|
||||
update_icons()
|
||||
if(do_after(50))
|
||||
|
||||
@@ -432,7 +432,7 @@
|
||||
if(MEDBOT_PANIC_HIGH to MEDBOT_PANIC_FUCK)
|
||||
. += span_warning("They are tipped over and visibly panicking!")
|
||||
if(MEDBOT_PANIC_FUCK to INFINITY)
|
||||
. += span_warning("<b>They are freaking out from being tipped over!</b>")
|
||||
. += span_boldwarning("They are freaking out from being tipped over!")
|
||||
|
||||
/mob/living/bot/medbot/confirmTarget(var/mob/living/carbon/human/H)
|
||||
if(!..())
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
playsound(src, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(span_red(text("[] has grabbed [] passively!", M, src)), 1)
|
||||
O.show_message(span_danger(text("[] has grabbed [] passively!", M, src)), 1)
|
||||
|
||||
else
|
||||
var/damage = rand(1, 9)
|
||||
@@ -43,17 +43,17 @@
|
||||
playsound(src, "punch", 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(span_red(text("<B>[] has punched []!</B>", M, src)), 1)
|
||||
O.show_message(span_bolddanger(text("[] has punched []!", M, src)), 1)
|
||||
if (damage > 4.9)
|
||||
Weaken(rand(10,15))
|
||||
for(var/mob/O in viewers(M, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(span_red(text("<B>[] has weakened []!</B>", M, src)), 1, span_red("You hear someone fall."), 2)
|
||||
O.show_message(span_bolddanger(text("[] has weakened []!", M, src)), 1, span_red("You hear someone fall."), 2)
|
||||
adjustBruteLoss(damage)
|
||||
updatehealth()
|
||||
else
|
||||
playsound(src, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(span_red(text("<B>[] has attempted to punch []!</B>", M, src)), 1)
|
||||
O.show_message(span_bolddanger(text("[] has attempted to punch []!", M, src)), 1)
|
||||
return
|
||||
|
||||
@@ -18,6 +18,6 @@
|
||||
return
|
||||
user.unEquip(W)
|
||||
wear_hat(W)
|
||||
user.visible_message("<b>\The [user]</b> puts \the [W] on \the [src].")
|
||||
user.visible_message(span_infoplain(span_bold("\The [user]") + " puts \the [W] on \the [src]."))
|
||||
return
|
||||
return ..()
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
|
||||
/mob/living/carbon/alien/larva/confirm_evolution()
|
||||
|
||||
to_chat(src, span_notice("<b>You are growing into a beautiful alien! It is time to choose a caste.</b>"))
|
||||
to_chat(src, span_boldnotice("You are growing into a beautiful alien! It is time to choose a caste."))
|
||||
to_chat(src, span_notice("There are three to choose from:"))
|
||||
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>")
|
||||
to_chat(src, span_bold("Hunters") + span_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."))
|
||||
to_chat(src, span_bold("Sentinels") + span_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."))
|
||||
to_chat(src, span_bold("Drones") + span_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."))
|
||||
var/alien_caste = tgui_alert(src, "Please choose which alien caste you shall belong to.","Alien Choice",list("Hunter","Sentinel","Drone"))
|
||||
return alien_caste ? "Xenomorph [alien_caste]" : null
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
to_chat(user, span_warning("\The [src] appears to reject this brain. It is incompatible."))
|
||||
return
|
||||
|
||||
user.visible_message("<b>\The [user]</b> sticks \a [O] into \the [src].")
|
||||
user.visible_message(span_infoplain(span_bold("\The [user]") + " sticks \a [O] into \the [src]."))
|
||||
B.preserved = TRUE
|
||||
|
||||
brainmob = B.brainmob
|
||||
@@ -271,10 +271,10 @@
|
||||
src.brainmob.mind.reset()
|
||||
src.brainmob.ckey = candidate.ckey
|
||||
src.name = "[name] ([src.brainmob.name])"
|
||||
to_chat(src.brainmob, "<b>You are [src.name], brought into existence on [station_name()].</b>")
|
||||
to_chat(src.brainmob, "<b>As a synthetic intelligence, you are designed with organic values in mind.</b>")
|
||||
to_chat(src.brainmob, "<b>However, unless placed in a lawed chassis, you are not obligated to obey any individual crew member.</b>") //it's not like they can hurt anyone
|
||||
// to_chat(src.brainmob, "<b>Use say #b to speak to other artificial intelligences.</b>")
|
||||
to_chat(src.brainmob, span_infoplain(span_bold("You are [src.name], brought into existence on [station_name()].")))
|
||||
to_chat(src.brainmob, span_infoplain(span_bold("As a synthetic intelligence, you are designed with organic values in mind.")))
|
||||
to_chat(src.brainmob, span_infoplain(span_bold("However, unless placed in a lawed chassis, you are not obligated to obey any individual crew member."))) //it's not like they can hurt anyone
|
||||
// to_chat(src.brainmob, span_infoplain(span_bold("Use say #b to speak to other artificial intelligences.")))
|
||||
src.brainmob.mind.assigned_role = JOB_SYNTHETIC_BRAIN
|
||||
|
||||
var/turf/T = get_turf_or_move(src.loc)
|
||||
|
||||
@@ -60,10 +60,10 @@
|
||||
src.brainmob.ckey = candidate.ckey
|
||||
src.brainmob.mind.reset()
|
||||
src.name = "positronic brain ([src.brainmob.name])"
|
||||
to_chat(src.brainmob, "<b>You are a positronic brain, brought into existence on [station_name()].</b>")
|
||||
to_chat(src.brainmob, "<b>As a synthetic intelligence, you answer to all crewmembers, as well as the AI.</b>")
|
||||
to_chat(src.brainmob, "<b>Remember, the purpose of your existence is to serve the crew and the station. Above all else, do no harm.</b>")
|
||||
to_chat(src.brainmob, "<b>Use say #b to speak to other artificial intelligences.</b>")
|
||||
to_chat(src.brainmob, span_infoplain(span_bold("You are a positronic brain, brought into existence on [station_name()].")))
|
||||
to_chat(src.brainmob, span_infoplain(span_bold("As a synthetic intelligence, you answer to all crewmembers, as well as the AI.")))
|
||||
to_chat(src.brainmob, span_infoplain(span_bold("Remember, the purpose of your existence is to serve the crew and the station. Above all else, do no harm.")))
|
||||
to_chat(src.brainmob, span_infoplain(span_bold("Use say #b to speak to other artificial intelligences.")))
|
||||
src.brainmob.mind.assigned_role = JOB_POSITRONIC_BRAIN
|
||||
|
||||
var/turf/T = get_turf_or_move(src.loc)
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
M.loc = src.loc
|
||||
for(var/mob/N in viewers(src, null))
|
||||
if(N.client)
|
||||
N.show_message(span_red(text("<B>[M] bursts out of [src]!</B>")), 2)
|
||||
N.show_message(span_bolddanger("[M] bursts out of [src]!"), 2)
|
||||
..()
|
||||
|
||||
/mob/living/carbon/attack_hand(mob/M as mob)
|
||||
@@ -89,7 +89,7 @@
|
||||
if (H.hand)
|
||||
temp = H.organs_by_name["l_hand"]
|
||||
if(temp && !temp.is_usable())
|
||||
to_chat(H, span_red("You can't use your [temp.name]"))
|
||||
to_chat(H, span_warning("You can't use your [temp.name]"))
|
||||
return
|
||||
|
||||
return
|
||||
@@ -106,7 +106,7 @@
|
||||
var/weaken_dur = (rand(2,4)-severity)*species.emp_stun_mod //0-3 knockdown, on par with.. you get the idea
|
||||
var/blind_dur = (rand(3,6)-severity)*species.emp_stun_mod //0-5 blind
|
||||
if(species.emp_sensitivity) //receive warning message and basic effects
|
||||
to_chat(src, span_danger("<B>*BZZZT*</B>"))
|
||||
to_chat(src, span_bolddanger("*BZZZT*"))
|
||||
switch(severity)
|
||||
if(1)
|
||||
to_chat(src, span_danger("DANGER: Extreme EM flux detected!"))
|
||||
@@ -243,9 +243,9 @@
|
||||
if(!org.is_usable() || org.is_dislocated())
|
||||
status += "dangling uselessly"
|
||||
if(status.len)
|
||||
src.show_message("My [org.name] is <span class='warning'> [english_list(status)].</span>",1)
|
||||
src.show_message("My [org.name] is " + span_warning("[english_list(status)]."),1)
|
||||
else
|
||||
src.show_message("My [org.name] is <span class='notice'> OK.</span>",1)
|
||||
src.show_message("My [org.name] is " + span_notice("OK."),1)
|
||||
|
||||
if((SKELETON in H.mutations) && (!H.w_uniform) && (!H.wear_suit))
|
||||
H.play_xylophone()
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
// SSgame_master.adjust_danger(gibbed ? 40 : 20) // VOREStation Edit - We don't use SSgame_master yet.
|
||||
for(var/mob/observer/dead/O in mob_list)
|
||||
if(O.client?.prefs?.read_preference(/datum/preference/toggle/show_dsay))
|
||||
to_chat(O, span_deadsay("<b>[src]</b> has died in <b>[get_area(src)]</b>. [ghost_follow_link(src, O)] "))
|
||||
to_chat(O, span_deadsay(span_bold("[src]") + " has died in " + span_bold("[get_area(src)]") + ". [ghost_follow_link(src, O)] "))
|
||||
|
||||
if(!gibbed && species.death_sound)
|
||||
playsound(src, species.death_sound, 80, 1, 1)
|
||||
|
||||
@@ -344,7 +344,7 @@ var/list/_simple_mob_default_emotes = list(
|
||||
|
||||
var/HTML = "<body>"
|
||||
HTML += "<tt><center>"
|
||||
HTML += "<b>Update Flavour Text</b> <hr />"
|
||||
HTML += span_bold("Update Flavour Text") + " <hr />"
|
||||
HTML += "<br></center>"
|
||||
HTML += "<a href='byond://?src=\ref[src];flavor_change=general'>General:</a> "
|
||||
HTML += TextPreview(flavor_texts["general"])
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
if(!((skip_gear & EXAMINE_SKIPJUMPSUIT) && (skip_body & EXAMINE_SKIPFACE)))
|
||||
//VOREStation Add Start
|
||||
if(custom_species)
|
||||
name_ender = ", a <b>[src.custom_species]</b>"
|
||||
name_ender = ", a " + span_bold("[src.custom_species]")
|
||||
else if(looks_synth)
|
||||
//VOREStation Add End
|
||||
var/use_gender = "a synthetic"
|
||||
@@ -96,12 +96,12 @@
|
||||
else if(gender == FEMALE)
|
||||
use_gender = "a gynoid"
|
||||
|
||||
name_ender = ", <b><font color='#555555'>[use_gender]!</font></b>[species.get_additional_examine_text(src)]"
|
||||
name_ender = ", " + span_bold(span_gray("[use_gender]!")) + "[species.get_additional_examine_text(src)]"
|
||||
|
||||
else if(species.name != "Human")
|
||||
name_ender = ", <b><font color='[species.get_flesh_colour(src)]'>\a [species.get_examine_name()]!</font></b>[species.get_additional_examine_text(src)]"
|
||||
name_ender = ", " + span_bold("<font color='[species.get_flesh_colour(src)]'>\a [species.get_examine_name()]!</font>") + "[species.get_additional_examine_text(src)]"
|
||||
|
||||
var/list/msg = list("<span class='info'>","This is [icon2html(src, user.client)] <EM>[src.name]</EM>[name_ender]")
|
||||
var/list/msg = list("This is [icon2html(src, user.client)] <EM>[src.name]</EM>[name_ender]")
|
||||
|
||||
//uniform
|
||||
if(w_uniform && !(skip_gear & EXAMINE_SKIPJUMPSUIT) && w_uniform.show_examine)
|
||||
@@ -252,7 +252,7 @@
|
||||
//Jitters
|
||||
if(is_jittery)
|
||||
if(jitteriness >= 300)
|
||||
msg += span_warning("<B>[T.He] [T.is] convulsing violently!</B>")
|
||||
msg += span_boldwarning("[T.He] [T.is] convulsing violently!")
|
||||
else if(jitteriness >= 200)
|
||||
msg += span_warning("[T.He] [T.is] extremely jittery.")
|
||||
else if(jitteriness >= 100)
|
||||
@@ -290,7 +290,7 @@
|
||||
if((stat == 2 || src.losebreath) && get_dist(user, src) <= 3)
|
||||
msg += span_warning("[T.He] [T.does] not appear to be breathing.")
|
||||
if(istype(user, /mob/living/carbon/human) && !user.stat && Adjacent(user))
|
||||
user.visible_message("<b>[usr]</b> checks [src]'s pulse.", "You check [src]'s pulse.")
|
||||
user.visible_message(span_infoplain(span_bold("[usr]") + " checks [src]'s pulse."), span_infoplain("You check [src]'s pulse."))
|
||||
spawn(15)
|
||||
if(isobserver(user) || (Adjacent(user) && !user.stat)) // If you're a corpse then you can't exactly check their pulse, but ghosts can see anything
|
||||
if(pulse == PULSE_NONE)
|
||||
@@ -329,9 +329,9 @@
|
||||
|
||||
var/obj/item/organ/external/E = organs_by_name[organ_tag]
|
||||
if(!E)
|
||||
wound_flavor_text["[organ_descriptor]"] = span_warning("<b>[T.He] [T.is] missing [T.his] [organ_descriptor].</b>")
|
||||
wound_flavor_text["[organ_descriptor]"] = span_boldwarning("[T.He] [T.is] missing [T.his] [organ_descriptor].")
|
||||
else if(E.is_stump())
|
||||
wound_flavor_text["[organ_descriptor]"] = span_warning("<b>[T.He] [T.has] a stump where [T.his] [organ_descriptor] should be.</b>")
|
||||
wound_flavor_text["[organ_descriptor]"] = span_boldwarning("[T.He] [T.has] a stump where [T.his] [organ_descriptor] should be.")
|
||||
else
|
||||
continue
|
||||
|
||||
@@ -340,7 +340,7 @@
|
||||
if((temp.organ_tag in hidden) && hidden[temp.organ_tag])
|
||||
continue //Organ is hidden, don't talk about it
|
||||
if(temp.status & ORGAN_DESTROYED)
|
||||
wound_flavor_text["[temp.name]"] = span_warning("<b>[T.He] [T.is] missing [T.his] [temp.name].</b>")
|
||||
wound_flavor_text["[temp.name]"] = span_boldwarning("[T.He] [T.is] missing [T.his] [temp.name].")
|
||||
continue
|
||||
|
||||
if(!looks_synth && temp.robotic == ORGAN_ROBOT)
|
||||
@@ -434,13 +434,13 @@
|
||||
|
||||
// VOREStation Start
|
||||
if(custom_link)
|
||||
msg += "Custom link: <span class='linkify'>[custom_link]</span>"
|
||||
msg += "Custom link: " + span_linkify("[custom_link]")
|
||||
|
||||
if(ooc_notes)
|
||||
msg += "OOC Notes: <a href='?src=\ref[src];ooc_notes=1'>\[View\]</a> - <a href='?src=\ref[src];print_ooc_notes_to_chat=1'>\[Print\]</a>"
|
||||
msg += "<a href='?src=\ref[src];vore_prefs=1'>\[Mechanical Vore Preferences\]</a>"
|
||||
// VOREStation End
|
||||
msg += "</span>"
|
||||
msg = list(span_info(jointext(msg, "<br>")))
|
||||
if(applying_pressure)
|
||||
msg += applying_pressure
|
||||
|
||||
|
||||
@@ -443,13 +443,13 @@
|
||||
if (R.fields["id"] == E.fields["id"])
|
||||
if(hasHUD(usr,"security"))
|
||||
var/list/security_hud_text = list()
|
||||
security_hud_text += "<b>Name:</b> [R.fields["name"]] <b>Criminal Status:</b> [R.fields["criminal"]]"
|
||||
security_hud_text += "<b>Species:</b> [R.fields["species"]]"
|
||||
security_hud_text += "<b>Minor Crimes:</b> [R.fields["mi_crim"]]"
|
||||
security_hud_text += "<b>Details:</b> [R.fields["mi_crim_d"]]"
|
||||
security_hud_text += "<b>Major Crimes:</b> [R.fields["ma_crim"]]"
|
||||
security_hud_text += "<b>Details:</b> [R.fields["ma_crim_d"]]"
|
||||
security_hud_text += "<b>Notes:</b> [R.fields["notes"]]"
|
||||
security_hud_text += span_bold("Name:") + " [R.fields["name"]] " + span_bold("Criminal Status:") + " [R.fields["criminal"]]"
|
||||
security_hud_text += span_bold("Species:") + " [R.fields["species"]]"
|
||||
security_hud_text += span_bold("Minor Crimes:") + " [R.fields["mi_crim"]]"
|
||||
security_hud_text += span_bold("Details:") + " [R.fields["mi_crim_d"]]"
|
||||
security_hud_text += span_bold("Major Crimes:") + " [R.fields["ma_crim"]]"
|
||||
security_hud_text += span_bold("Details:") + " [R.fields["ma_crim_d"]]"
|
||||
security_hud_text += span_bold("Notes:") + " [R.fields["notes"]]"
|
||||
security_hud_text += "<a href='?src=\ref[src];secrecordComment=`'>\[View Comment Log\]</a>"
|
||||
to_chat(usr, span_filter_notice("[jointext(security_hud_text, "<br>")]"))
|
||||
read = 1
|
||||
@@ -562,14 +562,14 @@
|
||||
if (R.fields["id"] == E.fields["id"])
|
||||
if(hasHUD(usr,"medical"))
|
||||
var/list/medical_hud_text = list()
|
||||
medical_hud_text += "<b>Name:</b> [R.fields["name"]] <b>Blood Type:</b> [R.fields["b_type"]] <b>Blood Basis:</b> [R.fields["blood_reagent"]]"
|
||||
medical_hud_text += "<b>Species:</b> [R.fields["species"]]"
|
||||
medical_hud_text += "<b>DNA:</b> [R.fields["b_dna"]]"
|
||||
medical_hud_text += "<b>Minor Disabilities:</b> [R.fields["mi_dis"]]"
|
||||
medical_hud_text += "<b>Details:</b> [R.fields["mi_dis_d"]]"
|
||||
medical_hud_text += "<b>Major Disabilities:</b> [R.fields["ma_dis"]]"
|
||||
medical_hud_text += "<b>Details:</b> [R.fields["ma_dis_d"]]"
|
||||
medical_hud_text += "<b>Notes:</b> [R.fields["notes"]]"
|
||||
medical_hud_text += span_bold("Name:") + " [R.fields["name"]] " + span_bold("Blood Type:") + " [R.fields["b_type"]] " + span_bold("Blood Basis:") + " [R.fields["blood_reagent"]]"
|
||||
medical_hud_text += span_bold("Species:") + " [R.fields["species"]]"
|
||||
medical_hud_text += span_bold("DNA:") + " [R.fields["b_dna"]]"
|
||||
medical_hud_text += span_bold("Minor Disabilities:") + " [R.fields["mi_dis"]]"
|
||||
medical_hud_text += span_bold("Details:") + " [R.fields["mi_dis_d"]]"
|
||||
medical_hud_text += span_bold("Major Disabilities:") + " [R.fields["ma_dis"]]"
|
||||
medical_hud_text += span_bold("Details:") + " [R.fields["ma_dis_d"]]"
|
||||
medical_hud_text += span_bold("Notes:") + " [R.fields["notes"]]"
|
||||
medical_hud_text += "<a href='?src=\ref[src];medrecordComment=`'>\[View Comment Log\]</a>"
|
||||
to_chat(usr, span_filter_notice("[jointext(medical_hud_text, "<br>")]"))
|
||||
read = 1
|
||||
@@ -646,16 +646,16 @@
|
||||
if (R.fields["id"] == E.fields["id"])
|
||||
if(hasHUD(usr,"best"))
|
||||
var/list/emp_hud_text = list()
|
||||
emp_hud_text += "<b>Name:</b> [R.fields["name"]]"
|
||||
emp_hud_text += "<b>Species:</b> [R.fields["species"]]"
|
||||
emp_hud_text += "<b>Assignment:</b> [R.fields["real_rank"]] ([R.fields["rank"]])"
|
||||
emp_hud_text += "<b>Home System:</b> [R.fields["home_system"]]"
|
||||
emp_hud_text += "<b>Birthplace:</b> [R.fields["birthplace"]]"
|
||||
emp_hud_text += "<b>Citizenship:</b> [R.fields["citizenship"]]"
|
||||
emp_hud_text += "<b>Primary Employer:</b> [R.fields["personal_faction"]]"
|
||||
emp_hud_text += "<b>Religious Beliefs:</b> [R.fields["religion"]]"
|
||||
emp_hud_text += "<b>Known Languages:</b> [R.fields["languages"]]"
|
||||
emp_hud_text += "<b>Notes:</b> [R.fields["notes"]]"
|
||||
emp_hud_text += span_bold("Name:") + " [R.fields["name"]]"
|
||||
emp_hud_text += span_bold("Species:") + " [R.fields["species"]]"
|
||||
emp_hud_text += span_bold("Assignment:") + " [R.fields["real_rank"]] ([R.fields["rank"]])"
|
||||
emp_hud_text += span_bold("Home System:") + " [R.fields["home_system"]]"
|
||||
emp_hud_text += span_bold("Birthplace:") + " [R.fields["birthplace"]]"
|
||||
emp_hud_text += span_bold("Citizenship:") + " [R.fields["citizenship"]]"
|
||||
emp_hud_text += span_bold("Primary Employer:") + " [R.fields["personal_faction"]]"
|
||||
emp_hud_text += span_bold("Religious Beliefs:") + " [R.fields["religion"]]"
|
||||
emp_hud_text += span_bold("Known Languages:") + " [R.fields["languages"]]"
|
||||
emp_hud_text += span_bold("Notes:") + " [R.fields["notes"]]"
|
||||
emp_hud_text += "<a href='?src=\ref[src];emprecordComment=`'>\[View Comment Log\]</a>"
|
||||
to_chat(usr, span_filter_notice("[jointext(emp_hud_text, "<br>")]"))
|
||||
read = 1
|
||||
@@ -972,7 +972,7 @@
|
||||
usr.show_message(span_filter_say("[span_blue("You project your mind into [target.real_name]: [say]")]"))
|
||||
log_say("(TPATH to [key_name(target)]) [say]",src)
|
||||
for(var/mob/observer/dead/G in mob_list)
|
||||
G.show_message(span_filter_say("<i>Telepathic message from <b>[src]</b> to <b>[target]</b>: [say]</i>"))
|
||||
G.show_message(span_filter_say(span_italics("Telepathic message from " + span_bold("[src]") + " to " + span_bold("[target]") + ": [say]")))
|
||||
|
||||
/mob/living/carbon/human/proc/remoteobserve()
|
||||
set name = "Remote View"
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
if(!hit_zone)
|
||||
H.do_attack_animation(src)
|
||||
playsound(src, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
|
||||
visible_message(span_filter_combat("[span_red("<B>[H] reaches for [src], but misses!</B>")]"))
|
||||
visible_message(span_filter_combat("[span_red(span_bold("[H] reaches for [src], but misses!"))]"))
|
||||
return FALSE
|
||||
|
||||
if(H != src && check_shields(0, null, H, H.zone_sel.selecting, H.name))
|
||||
@@ -333,7 +333,7 @@
|
||||
return
|
||||
|
||||
playsound(src, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
|
||||
visible_message(span_filter_combat("[span_red("<B>[M] attempted to disarm [src]!</B>")]"))
|
||||
visible_message(span_filter_combat("[span_red(span_bold("[M] attempted to disarm [src]!"))]"))
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/proc/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, inrange, params)
|
||||
@@ -449,16 +449,16 @@
|
||||
set category = "IC"
|
||||
set src = usr
|
||||
|
||||
var/dat = "<b><font size = 5>Known Attacks</font></b><br/><br/>"
|
||||
var/dat = span_bold(span_giant("Known Attacks")) + "<br/><br/>"
|
||||
|
||||
if(default_attack)
|
||||
dat += "Current default attack: [default_attack.attack_name] - <a href='byond://?src=\ref[src];default_attk=reset_attk'>reset</a><br/><br/>"
|
||||
|
||||
for(var/datum/unarmed_attack/u_attack in species.unarmed_attacks)
|
||||
if(u_attack == default_attack)
|
||||
dat += "<b>Primarily [u_attack.attack_name]</b> - default - <a href='byond://?src=\ref[src];default_attk=reset_attk'>reset</a><br/><br/><br/>"
|
||||
dat += span_bold("Primarily [u_attack.attack_name]") + " - default - <a href='byond://?src=\ref[src];default_attk=reset_attk'>reset</a><br/><br/><br/>"
|
||||
else
|
||||
dat += "<b>Primarily [u_attack.attack_name]</b> - <a href='byond://?src=\ref[src];default_attk=\ref[u_attack]'>set default</a><br/><br/><br/>"
|
||||
dat += span_bold("Primarily [u_attack.attack_name]") + " - <a href='byond://?src=\ref[src];default_attk=\ref[u_attack]'>set default</a><br/><br/><br/>"
|
||||
|
||||
src << browse(dat, "window=checkattack")
|
||||
|
||||
|
||||
@@ -6,25 +6,25 @@
|
||||
set category = "IC"
|
||||
set src = usr
|
||||
|
||||
var/dat = "<b><font size = 5>Known Attacks</font></b><br/><br/>"
|
||||
var/dat = span_bold("<font size = 5>Known Attacks</font>") + "<br/><br/>"
|
||||
|
||||
for(var/datum/unarmed_attack/u_attack in species.unarmed_attacks)
|
||||
dat += "<b>Primarily [u_attack.attack_name] </b><br/><br/><br/>"
|
||||
dat += span_bold("Primarily [u_attack.attack_name] ") + "<br/><br/><br/>"
|
||||
|
||||
src << browse(dat, "window=checkattack")
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/check_attacks()
|
||||
var/dat = "<b><font size = 5>Known Attacks</font></b><br/><br/>"
|
||||
var/dat = span_bold("<font size = 5>Known Attacks</font>") + "<br/><br/>"
|
||||
|
||||
if(default_attack)
|
||||
dat += "Current default attack: [default_attack.attack_name] - <a href='byond://?src=\ref[src];default_attk=reset_attk'>reset</a><br/><br/>"
|
||||
|
||||
for(var/datum/unarmed_attack/u_attack in species.unarmed_attacks)
|
||||
if(u_attack == default_attack)
|
||||
dat += "<b>Primarily [u_attack.attack_name]</b> - default - <a href='byond://?src=\ref[src];default_attk=reset_attk'>reset</a><br/><br/><br/>"
|
||||
dat += span_bold("Primarily [u_attack.attack_name]") + " - default - <a href='byond://?src=\ref[src];default_attk=reset_attk'>reset</a><br/><br/><br/>"
|
||||
else
|
||||
dat += "<b>Primarily [u_attack.attack_name]</b> - <a href='byond://?src=\ref[src];default_attk=\ref[u_attack]'>set default</a><br/><br/><br/>"
|
||||
dat += span_bold("Primarily [u_attack.attack_name]") + " - <a href='byond://?src=\ref[src];default_attk=\ref[u_attack]'>set default</a><br/><br/><br/>"
|
||||
|
||||
src << browse(dat, "window=checkattack")
|
||||
|
||||
@@ -60,4 +60,4 @@
|
||||
claws/attack_name = "claws"
|
||||
claws/strong/attack_name = "strong claws"
|
||||
slime_glomp/attack_name = "glomp"
|
||||
bite/sharp/numbing/attack_name = "numbing bite"
|
||||
bite/sharp/numbing/attack_name = "numbing bite"
|
||||
|
||||
@@ -443,7 +443,7 @@ emp_act
|
||||
var/throw_damage = O.throwforce*(speed/THROWFORCE_SPEED_DIVISOR)
|
||||
|
||||
if(species && species.throwforce_absorb_threshold >= throw_damage)
|
||||
visible_message("<b>\The [O]</b> simply bounces off of [src]'s body!")
|
||||
visible_message(span_infoplain(span_bold("\The [O]") + " simply bounces off of [src]'s body!"))
|
||||
return
|
||||
|
||||
var/zone
|
||||
@@ -468,7 +468,7 @@ emp_act
|
||||
return
|
||||
|
||||
if(!zone)
|
||||
visible_message("<b>\The [O]</b> misses [src] narrowly!")
|
||||
visible_message(span_infoplain(span_bold("\The [O]") + " misses [src] narrowly!"))
|
||||
return
|
||||
|
||||
O.throwing = 0 //it hit, so stop moving
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
var/datum/sprite_accessory/hair/hair_style = hair_styles_list[h_style]
|
||||
var/selected_string
|
||||
if(!(hair_style.flags & HAIR_TIEABLE))
|
||||
to_chat(src, "<span class ='warning'>Your hair isn't long enough to tie.</span>")
|
||||
to_chat(src, span_warning("Your hair isn't long enough to tie."))
|
||||
return
|
||||
else
|
||||
var/list/datum/sprite_accessory/hair/valid_hairstyles = list()
|
||||
@@ -31,7 +31,7 @@
|
||||
regenerate_icons()
|
||||
visible_message(span_notice("[src] pauses a moment to style their hair."))
|
||||
else
|
||||
to_chat(src, "<span class ='notice'>You're already using that style.</span>")
|
||||
to_chat(src, span_notice("You're already using that style."))
|
||||
|
||||
/mob/living/carbon/human/proc/tackle()
|
||||
set category = "Abilities"
|
||||
@@ -42,7 +42,7 @@
|
||||
return
|
||||
|
||||
if(stat || paralysis || stunned || weakened || lying || restrained() || buckled)
|
||||
to_chat(src, "You cannot tackle someone in your current state.")
|
||||
to_chat(src, span_notice("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)
|
||||
to_chat(src, span_filter_notice("You cannot tackle in your current state."))
|
||||
to_chat(src, span_notice("You cannot tackle in your current state."))
|
||||
return
|
||||
|
||||
last_special = world.time + 50
|
||||
@@ -78,7 +78,7 @@
|
||||
|
||||
for(var/mob/O in viewers(src, null))
|
||||
if ((O.client && !( O.blinded )))
|
||||
O.show_message(span_filter_warning("[span_red("<B>[src] [failed ? "tried to tackle" : "has tackled"] down [T]!</B>")]"), 1)
|
||||
O.show_message(span_warning(span_red(span_bold("[src] [failed ? "tried to tackle" : "has tackled"] down [T]!"))), 1)
|
||||
|
||||
/mob/living/carbon/human/proc/commune()
|
||||
set category = "Abilities"
|
||||
@@ -126,7 +126,7 @@
|
||||
if(M in stomach_contents)
|
||||
stomach_contents.Remove(M)
|
||||
M.loc = loc
|
||||
src.visible_message(span_filter_warning("[span_red("<B>[src] hurls out the contents of their stomach!</B>")]"))
|
||||
src.visible_message(span_filter_warning(span_red(span_bold("[src] hurls out the contents of their stomach!"))))
|
||||
return
|
||||
|
||||
/mob/living/carbon/human/proc/psychic_whisper(mob/M as mob in oview())
|
||||
@@ -211,7 +211,7 @@
|
||||
to_chat(src, span_notice("Performing self-diagnostic, please wait..."))
|
||||
|
||||
spawn(50)
|
||||
var/output = span_filter_notice("<span class='notice'>Self-Diagnostic Results:\n")
|
||||
var/output = span_filter_notice("Self-Diagnostic Results:\n")
|
||||
|
||||
output += "Internal Temperature: [convert_k2c(bodytemperature)] Degrees Celsius\n"
|
||||
|
||||
@@ -220,24 +220,24 @@
|
||||
|
||||
var/toxDam = getToxLoss()
|
||||
if(toxDam)
|
||||
output += "System Instability: <span class='warning'>[toxDam > 25 ? "Severe" : "Moderate"]</span>. Seek charging station for cleanup.\n"
|
||||
output += "System Instability: " + span_warning("[toxDam > 25 ? "Severe" : "Moderate"]") + ". Seek charging station for cleanup.\n"
|
||||
else
|
||||
output += "System Instability: <span style='color:green;'>OK</span>\n"
|
||||
output += "System Instability: " + span_green("OK") + "\n"
|
||||
|
||||
for(var/obj/item/organ/external/EO in organs)
|
||||
if(EO.robotic >= ORGAN_ASSISTED)
|
||||
if(EO.brute_dam || EO.burn_dam)
|
||||
output += "[EO.name] - <span class='warning'>[EO.burn_dam + EO.brute_dam > EO.min_broken_damage ? "Heavy Damage" : "Light Damage"]</span>\n" //VOREStation Edit - Makes robotic limb damage scalable
|
||||
output += "[EO.name] - " + span_warning("[EO.burn_dam + EO.brute_dam > EO.min_broken_damage ? "Heavy Damage" : "Light Damage"]") + "\n" //VOREStation Edit - Makes robotic limb damage scalable
|
||||
else
|
||||
output += "[EO.name] - <span style='color:green;'>OK</span>\n"
|
||||
output += "[EO.name] - " + span_green("OK") + "\n"
|
||||
|
||||
for(var/obj/item/organ/IO in internal_organs)
|
||||
if(IO.robotic >= ORGAN_ASSISTED)
|
||||
if(IO.damage)
|
||||
output += "[IO.name] - <span class='warning'>[IO.damage > 10 ? "Heavy Damage" : "Light Damage"]</span>\n"
|
||||
output += "[IO.name] - " + span_warning("[IO.damage > 10 ? "Heavy Damage" : "Light Damage"]") + "\n"
|
||||
else
|
||||
output += "[IO.name] - <span style='color:green;'>OK</span>\n"
|
||||
output += "</span>"
|
||||
output += "[IO.name] - " + span_green("OK") + "\n"
|
||||
output = span_notice(output)
|
||||
|
||||
to_chat(src,output)
|
||||
|
||||
@@ -267,7 +267,7 @@
|
||||
continue
|
||||
heard_something = TRUE
|
||||
var/feedback = list()
|
||||
feedback += "<span class='notice'>There are noises of movement "
|
||||
feedback += "There are noises of movement "
|
||||
var/direction = get_dir(src, L)
|
||||
if(direction)
|
||||
feedback += "towards the [dir2text(direction)], "
|
||||
@@ -284,8 +284,7 @@
|
||||
feedback += "far away."
|
||||
else // No need to check distance if they're standing right on-top of us
|
||||
feedback += "right on top of you."
|
||||
feedback += "</span>"
|
||||
to_chat(src,jointext(feedback,null))
|
||||
to_chat(src,span_notice(jointext(feedback,null)))
|
||||
if(!heard_something)
|
||||
to_chat(src, span_notice("You hear no movement but your own."))
|
||||
|
||||
@@ -303,7 +302,7 @@
|
||||
return
|
||||
else
|
||||
active_regen = TRUE
|
||||
src.visible_message(span_filter_notice("<B>[src]</B>'s flesh begins to mend..."))
|
||||
src.visible_message(span_filter_notice(span_bold("[src]") + "'s flesh begins to mend..."))
|
||||
|
||||
var/delay_length = round(active_regen_delay * species.active_regen_mult)
|
||||
if(do_after(src,delay_length))
|
||||
|
||||
@@ -1237,7 +1237,7 @@
|
||||
|
||||
if(halloss >= species.total_health)
|
||||
to_chat(src, span_notice("You're in too much pain to keep going..."))
|
||||
src.visible_message("<B>[src]</B> slumps to the ground, too weak to continue fighting.")
|
||||
src.visible_message(span_infoplain(span_bold("[src]") + " slumps to the ground, too weak to continue fighting."))
|
||||
Paralyse(10)
|
||||
setHalLoss(species.total_health - 1)
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
wrapped_species_by_ref["\ref[src]"] = new_species
|
||||
dna.base_species = new_species
|
||||
species.base_species = new_species
|
||||
visible_message("<b>\The [src]</b> shifts and contorts, taking the form of \a [new_species]!")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " shifts and contorts, taking the form of \a [new_species]!"))
|
||||
regenerate_icons()
|
||||
|
||||
/mob/living/carbon/human/proc/lleill_select_colour()
|
||||
@@ -141,11 +141,11 @@
|
||||
to_chat(src, span_warning("The item is no longer in your hands."))
|
||||
return
|
||||
else
|
||||
visible_message("<b>\The [src]</b> begins to change the form of \the [I].")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " begins to change the form of \the [I]."))
|
||||
if(!do_after(usr, 10 SECONDS, I, exclusive = TASK_USER_EXCLUSIVE))
|
||||
visible_message("<b>\The [src]</b> leaves \the [I] in its original form.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " leaves \the [I] in its original form."))
|
||||
return 0
|
||||
visible_message("<b>\The [src]</b> transmutes \the [I] into \the [transmute_product.name].")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " transmutes \the [I] into \the [transmute_product.name]."))
|
||||
drop_item(I)
|
||||
qdel(I)
|
||||
var/spawnloc = get_turf(usr)
|
||||
@@ -183,7 +183,7 @@
|
||||
to_chat(src, span_warning("You do not have enough energy to do that!"))
|
||||
return
|
||||
if(!do_after(src, 10 SECONDS, src, exclusive = TASK_USER_EXCLUSIVE))
|
||||
src.visible_message("<b>\The [src]</b> begins to form white rings on the ground.")
|
||||
src.visible_message(span_infoplain(span_bold("\The [src]") + " begins to form white rings on the ground."))
|
||||
return 0
|
||||
to_chat(src, span_warning("You place a new glamour ring at your feet."))
|
||||
var/spawnloc = get_turf(src)
|
||||
@@ -292,28 +292,28 @@
|
||||
return
|
||||
if(accepted == "Yes")
|
||||
if(contact_type == "Kiss (lips)")
|
||||
src.visible_message("<b>\The [src]</b> presses their lips up against [chosen_target]'s own.")
|
||||
src.visible_message(span_infoplain(span_bold("\The [src]") + " presses their lips up against [chosen_target]'s own."))
|
||||
if(contact_type == "Kiss (neck)")
|
||||
src.visible_message("<b>\The [src]</b> presses their lips up against [chosen_target]'s neck.")
|
||||
src.visible_message(span_infoplain(span_bold("\The [src]") + " presses their lips up against [chosen_target]'s neck."))
|
||||
if(contact_type == "Bite (neck)")
|
||||
src.visible_message("<b>\The [src]</b> bites down on [chosen_target]'s neck.")
|
||||
src.visible_message(span_infoplain(span_bold("\The [src]") + " bites down on [chosen_target]'s neck."))
|
||||
if(contact_type == "Bite (wrist)")
|
||||
src.visible_message("<b>\The [src]</b> bites down on [chosen_target]'s wrist.")
|
||||
src.visible_message(span_infoplain(span_bold("\The [src]") + " bites down on [chosen_target]'s wrist."))
|
||||
if(contact_type == "Hold Hand")
|
||||
src.visible_message("<b>\The [src]</b> takes [chosen_target]'s hand into their own.")
|
||||
src.visible_message(span_infoplain(span_bold("\The [src]") + " takes [chosen_target]'s hand into their own."))
|
||||
if(contact_type == "Embrace")
|
||||
src.visible_message("<b>\The [src]</b> embraces [chosen_target].")
|
||||
src.visible_message(span_infoplain(span_bold("\The [src]") + " embraces [chosen_target]."))
|
||||
if(contact_type == "Stroke (hair)")
|
||||
src.visible_message("<b>\The [src]</b> runs their hand through [chosen_target]'s hair.")
|
||||
src.visible_message(span_infoplain(span_bold("\The [src]") + " runs their hand through [chosen_target]'s hair."))
|
||||
if(contact_type == "Boop (nose)")
|
||||
src.visible_message("<b>\The [src]</b> boops [chosen_target] on the nose.")
|
||||
src.visible_message(span_infoplain(span_bold("\The [src]") + " boops [chosen_target] on the nose."))
|
||||
if(contact_type == "Custom")
|
||||
src.visible_message("[custom_text]")
|
||||
src.visible_message(span_infoplain("[custom_text]"))
|
||||
if(!do_after(src, 10 SECONDS, chosen_target, exclusive = TASK_USER_EXCLUSIVE))
|
||||
return
|
||||
else
|
||||
src.visible_message("<b>\The [src]</b> and \the [chosen_target] break contact before energy has been transferred.")
|
||||
src.visible_message("<b>\The [src]</b> and \the [chosen_target] complete their contact.")
|
||||
src.visible_message(span_infoplain(span_bold("\The [src]") + " and \the [chosen_target] break contact before energy has been transferred."))
|
||||
src.visible_message(span_infoplain(span_bold("\The [src]") + " and \the [chosen_target] complete their contact."))
|
||||
species.lleill_energy = species.lleill_energy_max
|
||||
nutrition += (chosen_target.nutrition / 2)
|
||||
to_chat(src, span_warning("You feel revitalised."))
|
||||
@@ -360,11 +360,11 @@
|
||||
to_chat(src, span_warning("The item is no longer in your hands."))
|
||||
return
|
||||
else
|
||||
visible_message("<b>\The [src]</b> begins to change the form of \the [I].")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " begins to change the form of \the [I]."))
|
||||
if(!do_after(usr, 10 SECONDS, I, exclusive = TASK_USER_EXCLUSIVE))
|
||||
visible_message("<b>\The [src]</b> leaves \the [I] in its original form.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " leaves \the [I] in its original form."))
|
||||
return 0
|
||||
visible_message("<b>\The [src]</b> transmutes \the [I] into \the [transmute_product.name].")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " transmutes \the [I] into \the [transmute_product.name]."))
|
||||
drop_item(I)
|
||||
qdel(I)
|
||||
var/spawnloc = get_turf(usr)
|
||||
@@ -451,9 +451,9 @@
|
||||
to_chat(src, span_warning("You are too injured to transform into a beast."))
|
||||
return
|
||||
|
||||
visible_message("<b>\The [src]</b> begins significantly shifting their form.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " begins significantly shifting their form."))
|
||||
if(!do_after(src, 10 SECONDS, src, exclusive = TASK_USER_EXCLUSIVE))
|
||||
visible_message("<b>\The [src]</b> ceases shifting their form.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " ceases shifting their form."))
|
||||
return 0
|
||||
|
||||
var/image/coolanimation = image('icons/obj/glamour.dmi', null, "animation")
|
||||
@@ -517,7 +517,7 @@
|
||||
M.loc = new_mob
|
||||
M.forceMove(new_mob)
|
||||
new_mob.tf_mob_holder = M
|
||||
new_mob.visible_message("<b>\The [src]</b> has transformed into \the [chosen_beast]!")
|
||||
new_mob.visible_message(span_infoplain(span_bold("\The [src]") + " has transformed into \the [chosen_beast]!"))
|
||||
species.update_lleill_hud(src)
|
||||
|
||||
|
||||
@@ -541,11 +541,11 @@
|
||||
to_chat(src, span_warning("You can't do that in your condition."))
|
||||
return
|
||||
|
||||
visible_message("<b>\The [src]</b> begins significantly shifting their form.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " begins significantly shifting their form."))
|
||||
if(!do_after(src, 10 SECONDS, src, exclusive = TASK_USER_EXCLUSIVE))
|
||||
visible_message("<b>\The [src]</b> ceases shifting their form.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " ceases shifting their form."))
|
||||
return 0
|
||||
visible_message("<b>\The [src]</b> has reverted to their original form.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " has reverted to their original form."))
|
||||
revert_mob_tf()
|
||||
|
||||
|
||||
@@ -629,9 +629,9 @@
|
||||
to_chat(src, span_warning("You are too injured to transform into a beast."))
|
||||
return
|
||||
|
||||
visible_message("<b>\The [src]</b> begins significantly shifting their form.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " begins significantly shifting their form."))
|
||||
if(!do_after(src, 10 SECONDS, src, exclusive = TASK_USER_EXCLUSIVE))
|
||||
visible_message("<b>\The [src]</b> ceases shifting their form.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " ceases shifting their form."))
|
||||
return 0
|
||||
|
||||
var/image/coolanimation = image('icons/obj/glamour.dmi', null, "animation")
|
||||
@@ -698,4 +698,4 @@
|
||||
M.loc = new_mob
|
||||
M.forceMove(new_mob)
|
||||
new_mob.tf_mob_holder = M
|
||||
new_mob.visible_message("<b>\The [src]</b> has transformed into \the [chosen_beast]!")
|
||||
new_mob.visible_message(span_infoplain(span_bold("\The [src]") + " has transformed into \the [chosen_beast]!"))
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
/datum/reagent/glamour_transparent/affect_blood(var/mob/living/carbon/target, var/removed)
|
||||
if(!target.cloaked)
|
||||
target.visible_message("<b>\The [target]</b> vanishes from sight.")
|
||||
target.visible_message(span_infoplain(span_bold("\The [target]") + " vanishes from sight."))
|
||||
target.cloak()
|
||||
target.bloodstr.clear_reagents() //instantly clears reagents afterwards
|
||||
target.ingested.clear_reagents()
|
||||
@@ -32,7 +32,7 @@
|
||||
spawn(600)
|
||||
if(target.cloaked)
|
||||
target.uncloak()
|
||||
target.visible_message("<b>\The [target]</b> appears as if from thin air.")
|
||||
target.visible_message(span_infoplain(span_bold("\The [target]") + " appears as if from thin air."))
|
||||
|
||||
//Shrinking Glamour (scaling potion)
|
||||
|
||||
@@ -159,7 +159,7 @@
|
||||
if(!h_action || h_action == "Cancel")
|
||||
return
|
||||
if(h_action == "Recall")
|
||||
H.visible_message("<b>\The [H]</b> returns to the face.")
|
||||
H.visible_message(span_infoplain(span_bold("\The [H]") + " returns to the face."))
|
||||
qdel(H)
|
||||
homunculus = 0
|
||||
return
|
||||
@@ -253,7 +253,7 @@
|
||||
to_chat(M, span_warning("You leave the glamour ring alone."))
|
||||
return
|
||||
to_chat(M, span_warning("You have destroyed \the [src]."))
|
||||
src.visible_message("<b>\The [M]</b> has broken apart \the [src].")
|
||||
src.visible_message(span_infoplain(span_bold("\The [M]") + " has broken apart \the [src]."))
|
||||
if(M != connected_mob && connected_mob)
|
||||
to_chat(connected_mob, span_warning("\The [src] has been destroyed by \the [M]."))
|
||||
if(istype(LL))
|
||||
|
||||
@@ -576,7 +576,7 @@
|
||||
|
||||
if(!silent)
|
||||
to_chat(H, span_notice("You manage to lower impact of the fall and land safely."))
|
||||
landing.visible_message("<b>\The [H]</b> lowers down from above, landing safely.")
|
||||
landing.visible_message(span_infoplain(span_bold("\The [H]") + " lowers down from above, landing safely."))
|
||||
playsound(H, "rustle", 25, 1)
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ var/list/wrapped_species_by_ref = list()
|
||||
return
|
||||
|
||||
wrapped_species_by_ref["\ref[src]"] = new_species
|
||||
visible_message("<b>\The [src]</b> shifts and contorts, taking the form of \a [new_species]!")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " shifts and contorts, taking the form of \a [new_species]!"))
|
||||
regenerate_icons()
|
||||
*/
|
||||
|
||||
|
||||
@@ -189,5 +189,5 @@
|
||||
species.base_species = new_species
|
||||
wrapped_species_by_ref["\ref[src]"] = new_species
|
||||
if (visible)
|
||||
visible_message(span_filter_notice("<b>\The [src]</b> shifts and contorts, taking the form of \a [new_species]!"))
|
||||
visible_message(span_filter_notice(span_bold("\The [src]") + " shifts and contorts, taking the form of \a [new_species]!"))
|
||||
regenerate_icons()
|
||||
|
||||
@@ -175,7 +175,7 @@ var/datum/species/shapeshifter/promethean/prometheans
|
||||
if(FEMALE)
|
||||
t_him = "her"
|
||||
|
||||
H.visible_message("<b>\The [H]</b> glomps [target] to make [t_him] feel better!", \
|
||||
H.visible_message(span_infoplain(span_bold("\The [H]") + " glomps [target] to make [t_him] feel better!"), \
|
||||
span_notice("You glomp [target] to make [t_him] feel better!"))
|
||||
H.apply_stored_shock_to(target)
|
||||
|
||||
|
||||
@@ -258,11 +258,11 @@
|
||||
|
||||
if(is_wide)
|
||||
is_wide = FALSE
|
||||
src.visible_message("<b>[src.name]</b> pulls together, compacting themselves into a small ball!")
|
||||
src.visible_message(span_infoplain(span_bold("[src.name]") + " pulls together, compacting themselves into a small ball!"))
|
||||
update_icon()
|
||||
else
|
||||
is_wide = TRUE
|
||||
src.visible_message("<b>[src.name]</b> flows outwards, their goop expanding!")
|
||||
src.visible_message(span_infoplain(span_bold("[src.name]") + " flows outwards, their goop expanding!"))
|
||||
update_icon()
|
||||
|
||||
/mob/living/simple_mob/slime/promethean/proc/toggle_shine()
|
||||
@@ -278,11 +278,11 @@
|
||||
|
||||
if(shiny)
|
||||
shiny = FALSE
|
||||
src.visible_message("<b>[src.name]</b> dulls their shine, becoming more translucent.")
|
||||
src.visible_message(span_infoplain(span_bold("[src.name]") + " dulls their shine, becoming more translucent."))
|
||||
update_icon()
|
||||
else
|
||||
shiny = TRUE
|
||||
src.visible_message("<b>[src.name]</b> glistens and sparkles, shining brilliantly.")
|
||||
src.visible_message(span_infoplain(span_bold("[src.name]") + " glistens and sparkles, shining brilliantly."))
|
||||
update_icon()
|
||||
|
||||
/mob/living/simple_mob/slime/promethean/proc/prommie_select_colour()
|
||||
@@ -410,7 +410,7 @@
|
||||
moveToNullspace()
|
||||
|
||||
//Message
|
||||
blob.visible_message("<b>[src.name]</b> squishes into their true form!")
|
||||
blob.visible_message(span_infoplain(span_bold("[src.name]") + " squishes into their true form!"))
|
||||
|
||||
//Transfer vore organs
|
||||
blob.vore_organs = vore_organs
|
||||
@@ -443,7 +443,7 @@
|
||||
stop_pulling()
|
||||
|
||||
//Message
|
||||
blob.visible_message("<b>[src.name]</b> pulls together, forming a humanoid shape!")
|
||||
blob.visible_message(span_infoplain(span_bold("[src.name]") + " pulls together, forming a humanoid shape!"))
|
||||
|
||||
//Record where they should go
|
||||
var/atom/reform_spot = blob.drop_location()
|
||||
|
||||
@@ -288,7 +288,7 @@
|
||||
if(!allowed)
|
||||
return
|
||||
if(refactory.add_stored_material(S.material.name,1*S.perunit) && S.use(1))
|
||||
visible_message("<b>[name]</b> gloms over some of \the [S], absorbing it.")
|
||||
visible_message(span_infoplain(span_bold("[name]") + " gloms over some of \the [S], absorbing it."))
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -302,7 +302,7 @@
|
||||
if(!allowed)
|
||||
return
|
||||
if(refactory.add_stored_material(S.material.name,1*S.perunit) && S.use(1))
|
||||
visible_message("<b>[name]</b> gloms over some of \the [S], absorbing it.")
|
||||
visible_message(span_infoplain(span_bold("[name]") + " gloms over some of \the [S], absorbing it."))
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -385,7 +385,7 @@ var/global/list/disallowed_protean_accessories = list(
|
||||
moveToNullspace()
|
||||
|
||||
//Message
|
||||
blob.visible_message("<b>[src.name]</b> collapses into a gooey blob!")
|
||||
blob.visible_message(span_infoplain(span_bold("[src.name]") + " collapses into a gooey blob!"))
|
||||
|
||||
//Duration of the to_puddle iconstate that the blob starts with
|
||||
sleep(13)
|
||||
@@ -437,7 +437,7 @@ var/global/list/disallowed_protean_accessories = list(
|
||||
blob.icon_state = "from_puddle"
|
||||
|
||||
//Message
|
||||
blob.visible_message("<b>[src.name]</b> reshapes into a humanoid appearance!")
|
||||
blob.visible_message(span_infoplain(span_bold("[src.name]") + " reshapes into a humanoid appearance!"))
|
||||
|
||||
//Duration of above animation
|
||||
sleep(8)
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
return //Lost it meanwhile
|
||||
|
||||
eo.robotize(manu_choice)
|
||||
visible_message("<B>[src]</B>'s [choice] loses its shape, then reforms.")
|
||||
visible_message(span_infoplain(span_bold("[src]") + "'s [choice] loses its shape, then reforms."))
|
||||
update_icons_body()
|
||||
|
||||
////
|
||||
@@ -134,7 +134,7 @@
|
||||
|
||||
var/obj/item/organ/external/torso = organs_by_name[BP_TORSO]
|
||||
to_chat(src, span_danger("Remain still while the process takes place! It will take 5 seconds."))
|
||||
visible_message("<B>[src]</B>'s form collapses into an amorphous blob of black ichor...")
|
||||
visible_message(span_infoplain(span_bold("[src]") + "'s form collapses into an amorphous blob of black ichor..."))
|
||||
|
||||
var/mob/living/simple_mob/protean_blob/blob = nano_intoblob()
|
||||
active_regen = TRUE
|
||||
@@ -142,7 +142,7 @@
|
||||
synthetic = usable_manufacturers[manu_choice]
|
||||
torso.robotize(manu_choice) //Will cascade to all other organs.
|
||||
regenerate_icons()
|
||||
visible_message("<B>[src]</B>'s form reshapes into a new one...")
|
||||
visible_message(span_infoplain(span_bold("[src]") + "'s form reshapes into a new one..."))
|
||||
active_regen = FALSE
|
||||
nano_outofblob(blob)
|
||||
return
|
||||
@@ -154,7 +154,7 @@
|
||||
|
||||
var/delay_length = round(active_regen_delay * species.active_regen_mult)
|
||||
to_chat(src, span_danger("Remain still while the process takes place! It will take [delay_length/10] seconds."))
|
||||
visible_message("<B>[src]</B>'s form begins to shift and ripple as if made of oil...")
|
||||
visible_message(span_infoplain(span_bold("[src]") + "'s form begins to shift and ripple as if made of oil..."))
|
||||
active_regen = TRUE
|
||||
|
||||
var/mob/living/simple_mob/protean_blob/blob = nano_intoblob()
|
||||
@@ -358,7 +358,7 @@
|
||||
var/opts = clickprops["shift"]
|
||||
|
||||
if(opts)
|
||||
to_chat(usr,span_notice("<b>[ability_name]</b> - [desc]"))
|
||||
to_chat(usr,span_notice(span_bold("[ability_name]") + " - [desc]"))
|
||||
else
|
||||
//Humanform using it
|
||||
if(ishuman(usr))
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
name = SPECIES_PROTEAN
|
||||
name_plural = "Proteans"
|
||||
blurb = "Sometimes very advanced civilizations will produce the ability to swap into manufactured, robotic bodies. And sometimes \
|
||||
<i>VERY</i> advanced civilizations have the option of 'nanoswarm' bodies. Effectively a single robot body comprised \
|
||||
" + span_italics("VERY") + " advanced civilizations have the option of 'nanoswarm' bodies. Effectively a single robot body comprised \
|
||||
of millions of tiny nanites working in concert to maintain cohesion."
|
||||
show_ssd = "totally quiescent"
|
||||
death_message = "rapidly loses cohesion, dissolving into a cloud of gray dust..."
|
||||
|
||||
+8
-9
@@ -176,8 +176,8 @@
|
||||
name = "imperfect regeneration"
|
||||
desc = "You feel rather weak and unfocused, having just regrown your body not so long ago."
|
||||
|
||||
on_created_text = span_warning("<font size='3'>You feel weak and unsteady, that regeneration having been rougher than most.</font>")
|
||||
on_expired_text = span_notice("<font size='3'>You feel your strength and focus return to you.</font>")
|
||||
on_created_text = span_warning(span_large("You feel weak and unsteady, that regeneration having been rougher than most."))
|
||||
on_expired_text = span_notice(span_large("You feel your strength and focus return to you."))
|
||||
|
||||
/mob/living/carbon/human/proc/revivingreset() // keep this as a debug proc or potential future use
|
||||
revive_ready = REVIVING_READY
|
||||
@@ -469,9 +469,9 @@
|
||||
|
||||
|
||||
if(noise)
|
||||
src.visible_message(span_red("<b>[src] moves their head next to [B]'s neck, seemingly looking for something!</b>"))
|
||||
src.visible_message(span_infoplain(span_red(span_bold("[src] moves their head next to [B]'s neck, seemingly looking for something!"))))
|
||||
else
|
||||
src.visible_message(span_red("<i>[src] moves their head next to [B]'s neck, seemingly looking for something!</i>"), range = 1)
|
||||
src.visible_message(span_infoplain(span_red(span_italics("[src] moves their head next to [B]'s neck, seemingly looking for something!"))), range = 1)
|
||||
|
||||
if(bleed) //Due to possibility of missing/misclick and missing the bleeding cues, we are warning the scene members of BLEEDING being on
|
||||
to_chat(src, span_warning("This is going to cause [B] to keep bleeding!"))
|
||||
@@ -480,9 +480,9 @@
|
||||
if(do_after(src, 300, B)) //Thrirty seconds.
|
||||
if(!Adjacent(B)) return
|
||||
if(noise)
|
||||
src.visible_message(span_red("<b>[src] suddenly extends their fangs and plunges them down into [B]'s neck!</b>"))
|
||||
src.visible_message(span_infoplain(span_red(span_bold("[src] suddenly extends their fangs and plunges them down into [B]'s neck!"))))
|
||||
else
|
||||
src.visible_message(span_red("<i>[src] suddenly extends their fangs and plunges them down into [B]'s neck!</i>"), range = 1)
|
||||
src.visible_message(span_infoplain(span_red(span_italics("[src] suddenly extends their fangs and plunges them down into [B]'s neck!"))), range = 1)
|
||||
if(bleed)
|
||||
B.apply_damage(10, BRUTE, BP_HEAD, blocked = 0, soaked = 0, sharp = TRUE, edge = FALSE)
|
||||
var/obj/item/organ/external/E = B.get_organ(BP_HEAD)
|
||||
@@ -1657,7 +1657,7 @@
|
||||
add_attack_logs(src,target,"Injection trait ([trait_injection_selected], [trait_injection_amount])")
|
||||
if(target.reagents && (trait_injection_amount > 0) && !synth)
|
||||
target.reagents.add_reagent(trait_injection_selected, trait_injection_amount)
|
||||
var/ourmsg = "<span class='warning'>[usr] [trait_injection_verb] [target] "
|
||||
var/ourmsg = "[usr] [trait_injection_verb] [target] "
|
||||
switch(zone_sel.selecting)
|
||||
if(BP_HEAD)
|
||||
ourmsg += "on the head!"
|
||||
@@ -1677,5 +1677,4 @@
|
||||
ourmsg += "on the mouth!"
|
||||
if("eyes")
|
||||
ourmsg += "on the eyes!"
|
||||
ourmsg += "</span>"
|
||||
visible_message(ourmsg)
|
||||
visible_message(span_warning(ourmsg))
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
// Handled!
|
||||
if(!silent)
|
||||
to_chat(H, span_notice("You catch the air in your wings and greatly slow your fall."))
|
||||
landing.visible_message("<b>\The [H]</b> glides down from above, landing safely.")
|
||||
landing.visible_message(span_infoplain(span_bold("\The [H]") + " glides down from above, landing safely."))
|
||||
H.Stun(1)
|
||||
playsound(H, "rustle", 25, 1)
|
||||
return TRUE
|
||||
|
||||
@@ -66,8 +66,8 @@ TGUI frontend path: tgui\packages\tgui\interfaces\TraitTutorial.tsx
|
||||
if(UI_choice == "To Chat")
|
||||
var/to_chat_choice = tgui_input_list(usr, "Please choose the trait to be explained", "Print to Chat", trait_names, null)
|
||||
if(to_chat_choice)
|
||||
to_chat(usr,span_notice("<b>Name:</b> [to_chat_choice] \n <b>Category:</b> [trait_category[to_chat_choice]] \n <b>Description:</b> [trait_desc[to_chat_choice]] \n \
|
||||
<b>Guide:</b> \n [trait_tutorial[to_chat_choice]]"))
|
||||
to_chat(usr,span_notice(span_bold("Name:") + " [to_chat_choice] \n " + span_bold("Category:") + " [trait_category[to_chat_choice]] \n " + span_bold("Description:") + " [trait_desc[to_chat_choice]] \n \
|
||||
" + span_bold("Guide:") + " \n [trait_tutorial[to_chat_choice]]"))
|
||||
|
||||
|
||||
else if(UI_choice == "TGUI")
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
L.visible_message(
|
||||
span_danger("[L] steps on \the [src]."),
|
||||
span_danger("You step on \the [src]!"),
|
||||
"<b>You hear a squishy noise!</b>"
|
||||
span_infoplain(span_bold("You hear a squishy noise!"))
|
||||
)
|
||||
set_dir(L.dir)
|
||||
buckle_mob(L)
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
// Move the mind
|
||||
avatar.Sleeping(1)
|
||||
src.mind.transfer_to(avatar)
|
||||
to_chat(avatar, "<b>You have enterred Virtual Reality!\nAll normal gameplay rules still apply.\nWounds you suffer here won't persist when you leave VR, but some of the pain will.\nYou can leave VR at any time by using the \"Exit Virtual Reality\" verb in the Abilities tab, or by ghosting.</b>") //No more prommie VR thing, so removed tidbit about changing appearance
|
||||
to_chat(avatar, span_infoplain(span_bold("You have enterred Virtual Reality!\nAll normal gameplay rules still apply.\nWounds you suffer here won't persist when you leave VR, but some of the pain will.\nYou can leave VR at any time by using the \"Exit Virtual Reality\" verb in the Abilities tab, or by ghosting."))) //No more prommie VR thing, so removed tidbit about changing appearance
|
||||
to_chat(avatar, span_notice(" You black out for a moment, and wake to find yourself in a new body in virtual reality.")) // So this is what VR feels like?
|
||||
|
||||
// exit_vr is called on the vr mob, and puts the mind back into the original mob
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
return
|
||||
|
||||
if(check_alien_ability(500,1,O_EGG))
|
||||
visible_message(span_alium("<B>[src] has laid an egg!</B>"))
|
||||
visible_message(span_alium(span_bold("[src] has laid an egg!")))
|
||||
new /obj/structure/ghost_pod/automatic/xenomorph_egg(loc)
|
||||
|
||||
return
|
||||
@@ -109,7 +109,7 @@
|
||||
return
|
||||
|
||||
if(check_alien_ability(500))
|
||||
visible_message(span_alium("<B>[src] begins to twist and contort!</B>"), span_alium("You begin to evolve!"))
|
||||
visible_message(span_alium(span_bold("[src] begins to twist and contort!")), span_alium("You begin to evolve!"))
|
||||
src.set_species("Xenomorph Queen")
|
||||
|
||||
return
|
||||
@@ -120,7 +120,7 @@
|
||||
set category = "Abilities"
|
||||
|
||||
if(check_alien_ability(50,1,O_RESIN))
|
||||
visible_message(span_alium("<B>[src] has planted some alien weeds!</B>"))
|
||||
visible_message(span_alium(span_bold("[src] has planted some alien weeds!")))
|
||||
new /obj/effect/alien/weeds/node(get_turf(src), null, "#321D37")
|
||||
return
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
|
||||
if(check_alien_ability(200,0,O_ACID))
|
||||
new /obj/effect/alien/acid(get_turf(O), O)
|
||||
visible_message(span_alium("<B>[src] vomits globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!</B>"))
|
||||
visible_message(span_alium(span_bold("[src] vomits globs of vile stuff all over [O]. It begins to sizzle and melt under the bubbling mess of acid!")))
|
||||
|
||||
return
|
||||
|
||||
@@ -269,7 +269,7 @@
|
||||
else O = new /obj/item/stack/material/resin(targetLoc)
|
||||
|
||||
if(O)
|
||||
visible_message(span_warning("<B>[src] vomits up a thick purple substance and begins to shape it!</B>"), span_alium("You shape a [choice]."))
|
||||
visible_message(span_boldwarning("[src] vomits up a thick purple substance and begins to shape it!"), span_alium("You shape a [choice]."))
|
||||
O.color = "#321D37"
|
||||
playsound(src, 'sound/effects/blobattack.ogg', 40, 1)
|
||||
|
||||
@@ -331,7 +331,7 @@
|
||||
else
|
||||
use_hand = "right"
|
||||
|
||||
src.visible_message(span_warning("<b>\The [src]</b> seizes [T] aggressively!"))
|
||||
src.visible_message(span_boldwarning("\The [src]") + " seizes [T] aggressively!")
|
||||
|
||||
var/obj/item/grab/G = new(src,T)
|
||||
if(use_hand == "left")
|
||||
@@ -366,7 +366,7 @@
|
||||
|
||||
last_special = world.time + 50
|
||||
|
||||
visible_message(span_warning("<b>\The [src]</b> rips viciously at \the [G.affecting]'s body with its claws!"))
|
||||
visible_message(span_warning(span_bold("\The [src]") + " rips viciously at \the [G.affecting]'s body with its claws!"))
|
||||
|
||||
if(istype(G.affecting,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = G.affecting
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
return
|
||||
|
||||
else
|
||||
visible_message("<b>\The [src]</b> starts licking the wounds on [M]'s [affecting.name] clean.", \
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " starts licking the wounds on [M]'s [affecting.name] clean."), \
|
||||
span_notice("You start licking the wounds on [M]'s [affecting.name] clean.") )
|
||||
|
||||
for (var/datum/wound/W in affecting.wounds)
|
||||
@@ -76,11 +76,11 @@
|
||||
return
|
||||
|
||||
else
|
||||
visible_message("<span class='notice'>\The [src] [pick("slathers \a [W.desc] on [M]'s [affecting.name] with their spit.",
|
||||
visible_message(span_notice("\The [src] [pick("slathers \a [W.desc] on [M]'s [affecting.name] with their spit.",
|
||||
"drags their tongue across \a [W.desc] on [M]'s [affecting.name].",
|
||||
"drips saliva onto \a [W.desc] on [M]'s [affecting.name].",
|
||||
"uses their tongue to disinfect \a [W.desc] on [M]'s [affecting.name].",
|
||||
"licks \a [W.desc] on [M]'s [affecting.name], cleaning it.")]</span>", \
|
||||
"licks \a [W.desc] on [M]'s [affecting.name], cleaning it.")]"), \
|
||||
span_notice("You treat \a [W.desc] on [M]'s [affecting.name] with your antiseptic saliva.") )
|
||||
adjust_nutrition(-20)
|
||||
W.salve()
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
if(!..())
|
||||
return 0
|
||||
|
||||
usr.visible_message(span_filter_notice("<b>[src]</b> points to [A]."))
|
||||
usr.visible_message(span_filter_notice(span_bold("[src]") + " points to [A]."))
|
||||
return 1
|
||||
|
||||
/mob/living/verb/succumb()
|
||||
@@ -1160,7 +1160,7 @@
|
||||
var/mob/living/carbon/human/H = target
|
||||
if(H.in_throw_mode && H.a_intent == I_HELP && unEquip(I))
|
||||
H.put_in_hands(I) // If this fails it will just end up on the floor, but that's fitting for things like dionaea.
|
||||
visible_message(span_filter_notice("<b>[src]</b> hands \the [H] \a [I]."), span_notice("You give \the [target] \a [I]."))
|
||||
visible_message(span_filter_notice(span_bold("[src]") + " hands \the [H] \a [I]."), span_notice("You give \the [target] \a [I]."))
|
||||
else
|
||||
to_chat(src, span_notice("You offer \the [I] to \the [target]."))
|
||||
do_give(H)
|
||||
|
||||
@@ -107,11 +107,11 @@
|
||||
var/new_link = strip_html_simple(tgui_input_text(usr, "Enter a link to add on to your examine text! This should be a related image link/gallery, or things like your F-list. This is not the place for memes.", "Custom Link" , html_decode(custom_link), max_length = 100, encode = TRUE, prevent_enter = TRUE))
|
||||
if(new_link && CanUseTopic(usr))
|
||||
if(length(new_link) > 100)
|
||||
to_chat(usr, "<span class = 'warning'>Your entry is too long, it must be 100 characters or less.</span>")
|
||||
to_chat(usr, span_warning("Your entry is too long, it must be 100 characters or less."))
|
||||
return
|
||||
|
||||
custom_link = new_link
|
||||
to_chat(usr, "<span class = 'notice'>Link set: [custom_link]</span>")
|
||||
to_chat(usr, span_notice("Link set: [custom_link]"))
|
||||
log_admin("[usr]/[usr.ckey] set their custom link to [custom_link]")
|
||||
|
||||
/mob/living/verb/set_voice_freq()
|
||||
|
||||
@@ -191,9 +191,9 @@ var/list/ai_verbs_default = list(
|
||||
return
|
||||
|
||||
/mob/living/silicon/ai/proc/on_mob_init()
|
||||
var/init_text = list("<B>You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras).</B>",
|
||||
"<B>To look at other parts of the station, click on yourself to get a camera menu.</B>",
|
||||
"<B>While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc.</B>",
|
||||
var/init_text = list(span_bold("You are playing the station's AI. The AI cannot move, but can interact with many objects while viewing them (through cameras)."),
|
||||
span_bold("To look at other parts of the station, click on yourself to get a camera menu."),
|
||||
span_bold("While observing through a camera, you can use most (networked) devices which you can see, such as computers, APCs, intercoms, doors, etc."),
|
||||
"To use something, simply click on it.",
|
||||
"For department channels, use the following say commands:")
|
||||
to_chat(src, span_filter_notice("[jointext(init_text, "<br>")]"))
|
||||
@@ -218,7 +218,7 @@ var/list/ai_verbs_default = list(
|
||||
|
||||
if (malf && !(mind in malf.current_antagonists))
|
||||
show_laws()
|
||||
to_chat(src, span_filter_notice("<b>These laws may be changed by other players, or by you being the traitor.</b>"))
|
||||
to_chat(src, span_filter_notice(span_bold("These laws may be changed by other players, or by you being the traitor.")))
|
||||
|
||||
job = JOB_AI
|
||||
setup_icon()
|
||||
@@ -988,7 +988,7 @@ var/list/ai_verbs_default = list(
|
||||
var/message = combined["formatted"]
|
||||
var/name_used = M.GetVoice()
|
||||
//This communication is imperfect because the holopad "filters" voices and is only designed to connect to the master only.
|
||||
var/rendered = span_game(span_say("<i>Relayed Speech: [span_name(name_used)] [message]</i>"))
|
||||
var/rendered = span_game(span_say(span_italics("Relayed Speech: [span_name(name_used)] [message]")))
|
||||
show_message(rendered, 2)
|
||||
|
||||
/mob/living/silicon/ai/proc/toggle_multicam_verb()
|
||||
|
||||
@@ -8,17 +8,17 @@
|
||||
if (src.getBruteLoss() < 30)
|
||||
. += span_warning("It looks slightly dented.")
|
||||
else
|
||||
. += span_warning("<B>It looks severely dented!</B>")
|
||||
. += span_boldwarning("It looks severely dented!")
|
||||
if (src.getFireLoss())
|
||||
if (src.getFireLoss() < 30)
|
||||
. += span_warning("It looks slightly charred.")
|
||||
else
|
||||
. += span_warning("<B>Its casing is melted and heat-warped!</B>")
|
||||
. += span_boldwarning("Its casing is melted and heat-warped!")
|
||||
if (src.getOxyLoss() && (aiRestorePowerRoutine != 0 && !APU_power))
|
||||
if (src.getOxyLoss() > 175)
|
||||
. += span_warning("<B>It seems to be running on backup power. Its display is blinking a \"BACKUP POWER CRITICAL\" warning.</B>")
|
||||
. += span_boldwarning("It seems to be running on backup power. Its display is blinking a \"BACKUP POWER CRITICAL\" warning.")
|
||||
else if(src.getOxyLoss() > 100)
|
||||
. += span_warning("<B>It seems to be running on backup power. Its display is blinking a \"BACKUP POWER LOW\" warning.</B>")
|
||||
. += span_boldwarning("It seems to be running on backup power. Its display is blinking a \"BACKUP POWER LOW\" warning.")
|
||||
else
|
||||
. += span_warning("It seems to be running on backup power.")
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
who = world
|
||||
else
|
||||
who = src
|
||||
to_chat(who, span_filter_notice("<b>Obey these laws:</b>"))
|
||||
to_chat(who, span_filter_notice(span_bold("Obey these laws:")))
|
||||
|
||||
src.laws_sanity_check()
|
||||
src.laws.show_laws(who)
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
malf_process()
|
||||
|
||||
if(APU_power && (hardware_integrity() < 50))
|
||||
to_chat(src, span_notice("<b>APU GENERATOR FAILURE! (System Damaged)</b>"))
|
||||
to_chat(src, span_boldnotice("APU GENERATOR FAILURE! (System Damaged)"))
|
||||
stop_apu(1)
|
||||
|
||||
var/blind = 0
|
||||
|
||||
@@ -120,9 +120,9 @@
|
||||
/obj/screen/movable/pic_in_pic/ai/proc/set_ai(mob/living/silicon/ai/new_ai)
|
||||
if(!aiEye && !QDELETED(src))
|
||||
if(new_ai)
|
||||
to_chat(new_ai, "<span class='danger'><h2>You've run into a unfixable bug with AI eye code. \
|
||||
to_chat(new_ai, span_danger("<h2>You've run into a unfixable bug with AI eye code. \
|
||||
In order to create a new multicam, you will have to select a different camera first before trying to add one, or ask an admin to fix you. \
|
||||
Whatever you did that made the last camera window disappear-- don't do that again.</h2></span>")
|
||||
Whatever you did that made the last camera window disappear-- don't do that again.</h2>"))
|
||||
qdel(src)
|
||||
return
|
||||
if(ai)
|
||||
|
||||
@@ -19,11 +19,11 @@
|
||||
if(card.projector != PP_FUNCTIONAL && card.emitter != PP_FUNCTIONAL)
|
||||
if(loc != card)
|
||||
close_up()
|
||||
to_chat(src, "<span class ='warning'>ERROR: System malfunction. Service required!</span>")
|
||||
to_chat(src, span_warning("ERROR: System malfunction. Service required!"))
|
||||
else if(card.projector != PP_FUNCTIONAL|| card.emitter != PP_FUNCTIONAL)
|
||||
if(prob(5))
|
||||
close_up()
|
||||
to_chat(src, "<span class ='warning'>ERROR: System malfunction. Service recommended!</span>")
|
||||
to_chat(src, span_warning("ERROR: System malfunction. Service recommended!"))
|
||||
|
||||
handle_regular_hud_updates()
|
||||
handle_vision()
|
||||
|
||||
@@ -187,12 +187,12 @@
|
||||
// 33% chance of no additional effect
|
||||
|
||||
src.silence_time = world.timeofday + 120 * 10 // Silence for 2 minutes
|
||||
to_chat(src, span_green("<b>Communication circuit overload. Shutting down and reloading communication circuits - speech and messaging functionality will be unavailable until the reboot is complete.</b>"))
|
||||
to_chat(src, span_infoplain(span_green(span_bold("Communication circuit overload. Shutting down and reloading communication circuits - speech and messaging functionality will be unavailable until the reboot is complete."))))
|
||||
if(prob(20))
|
||||
var/turf/T = get_turf_or_move(src.loc)
|
||||
card.death_damage()
|
||||
for (var/mob/M in viewers(T))
|
||||
M.show_message(span_red("A shower of sparks spray from [src]'s inner workings."), 3, span_red("You hear and smell the ozone hiss of electrical sparks being expelled violently."), 2)
|
||||
M.show_message(span_infoplain(span_red("A shower of sparks spray from [src]'s inner workings.")), 3, span_infoplain(span_red("You hear and smell the ozone hiss of electrical sparks being expelled violently.")), 2)
|
||||
return
|
||||
if(prob(50))
|
||||
card.damage_random_component(TRUE)
|
||||
@@ -200,7 +200,7 @@
|
||||
if(1)
|
||||
src.master = null
|
||||
src.master_dna = null
|
||||
to_chat(src, span_green("You feel unbound."))
|
||||
to_chat(src, span_infoplain(span_green("You feel unbound.")))
|
||||
if(2)
|
||||
var/command
|
||||
if(severity == 1)
|
||||
@@ -208,9 +208,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."
|
||||
to_chat(src, span_green("Pr1m3 d1r3c71v3 uPd473D."))
|
||||
to_chat(src, span_infoplain(span_green("Pr1m3 d1r3c71v3 uPd473D.")))
|
||||
if(3)
|
||||
to_chat(src, span_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."))
|
||||
to_chat(src, span_infoplain(span_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.")))
|
||||
|
||||
/mob/living/silicon/pai/proc/switchCamera(var/obj/machinery/camera/C)
|
||||
if (!C)
|
||||
@@ -261,10 +261,10 @@
|
||||
return
|
||||
|
||||
if(card.projector != PP_FUNCTIONAL && card.emitter != PP_FUNCTIONAL)
|
||||
to_chat(src, "<span class ='warning'>ERROR: System malfunction. Service required!</span>")
|
||||
to_chat(src, span_warning("ERROR: System malfunction. Service required!"))
|
||||
|
||||
if(world.time <= last_special)
|
||||
to_chat(src, "<span class ='warning'>You can't unfold yet.</span>")
|
||||
to_chat(src, span_warning("You can't unfold yet."))
|
||||
return
|
||||
|
||||
last_special = world.time + 100
|
||||
@@ -303,7 +303,7 @@
|
||||
canmove = TRUE
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
if(istype(T)) T.visible_message(span_filter_notice("<b>[src]</b> folds outwards, expanding into a mobile form."))
|
||||
if(istype(T)) T.visible_message(span_filter_notice(span_bold("[src]") + " folds outwards, expanding into a mobile form."))
|
||||
add_verb(src, /mob/living/silicon/pai/proc/pai_nom)
|
||||
add_verb(src, /mob/living/proc/vertical_nom)
|
||||
update_icon()
|
||||
@@ -319,7 +319,7 @@
|
||||
return
|
||||
|
||||
if(world.time <= last_special)
|
||||
to_chat(src, "<span class ='warning'>You can't fold up yet.</span>")
|
||||
to_chat(src, span_warning("You can't fold up yet."))
|
||||
return
|
||||
|
||||
close_up()
|
||||
@@ -444,7 +444,7 @@
|
||||
release_vore_contents(FALSE) //VOREStation Add
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
if(istype(T) && !silent) T.visible_message(span_filter_notice("<b>[src]</b> neatly folds inwards, compacting down to a rectangular card."))
|
||||
if(istype(T) && !silent) T.visible_message(span_filter_notice(span_bold("[src]") + " neatly folds inwards, compacting down to a rectangular card."))
|
||||
|
||||
if(client)
|
||||
src.stop_pulling()
|
||||
@@ -543,6 +543,6 @@
|
||||
return
|
||||
|
||||
close_up()
|
||||
visible_message(span_filter_notice("<b>[src]</b> fades away from the screen, the pAI device goes silent."))
|
||||
visible_message(span_filter_notice(span_bold("[src]") + " fades away from the screen, the pAI device goes silent."))
|
||||
card.removePersonality()
|
||||
clear_client()
|
||||
|
||||
@@ -64,7 +64,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)
|
||||
to_chat(src, "You are not being carried by anyone!")
|
||||
to_chat(src, span_infoplain("You are not being carried by anyone!"))
|
||||
return 0
|
||||
M = M.loc
|
||||
count++
|
||||
@@ -77,13 +77,13 @@
|
||||
for (var/mob/v in viewers(T))
|
||||
v.show_message(span_notice("[M] presses [TM.his] thumb against [P]."), 3, span_notice("[P] makes a sharp clicking sound as it extracts DNA material from [M]."), 2)
|
||||
var/datum/dna/dna = M.dna
|
||||
to_chat(P, span_red("<h3>[M]'s UE string : [dna.unique_enzymes]</h3>"))
|
||||
to_chat(P, span_infoplain(span_red("<h3>[M]'s UE string : [dna.unique_enzymes]</h3>")))
|
||||
if(dna.unique_enzymes == P.master_dna)
|
||||
to_chat(P, "<b>DNA is a match to stored Master DNA.</b>")
|
||||
to_chat(P, span_infoplain(span_bold("DNA is a match to stored Master DNA.")))
|
||||
else
|
||||
to_chat(P, "<b>DNA does not match stored Master DNA.</b>")
|
||||
to_chat(P, span_infoplain(span_bold("DNA does not match stored Master DNA.")))
|
||||
else
|
||||
to_chat(P, "[M] does not seem like [TM.he] is going to provide a DNA sample willingly.")
|
||||
to_chat(P, span_infoplain("[M] does not seem like [TM.he] is going to provide a DNA sample willingly."))
|
||||
return TRUE
|
||||
|
||||
/datum/pai_software/radio_config
|
||||
@@ -293,9 +293,9 @@
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/mob/living/silicon/ai/AI in player_list)
|
||||
if(T.loc)
|
||||
to_chat(AI, span_red("<b>Network Alert: Brute-force encryption crack in progress in [T.loc].</b>"))
|
||||
to_chat(AI, span_bolddanger("Network Alert: Brute-force encryption crack in progress in [T.loc]."))
|
||||
else
|
||||
to_chat(AI, span_red("<b>Network Alert: Brute-force encryption crack in progress. Unable to pinpoint location.</b>"))
|
||||
to_chat(AI, span_bolddanger("Network Alert: Brute-force encryption crack in progress. Unable to pinpoint location."))
|
||||
var/obj/machinery/door/D = cable.machine
|
||||
if(!istype(D))
|
||||
hack_aborted = 1
|
||||
|
||||
@@ -52,8 +52,8 @@
|
||||
switch(scan_type)
|
||||
if("robot")
|
||||
if(mode)
|
||||
var/BU = M.getFireLoss() > 50 ? "<b>[M.getFireLoss()]</b>" : M.getFireLoss()
|
||||
var/BR = M.getBruteLoss() > 50 ? "<b>[M.getBruteLoss()]</b>" : M.getBruteLoss()
|
||||
var/BU = M.getFireLoss() > 50 ? span_bold("[M.getFireLoss()]") : M.getFireLoss()
|
||||
var/BR = M.getBruteLoss() > 50 ? span_bold("[M.getBruteLoss()]") : M.getBruteLoss()
|
||||
user.show_message(span_blue("Analyzing Results for [M]:\n\t Overall Status: [M.stat > 1 ? "fully disabled" : "[M.health - M.halloss]% functional"]"))
|
||||
user.show_message("\t Key: [span_orange("Electronics")]/[span_red("Brute")]", 1)
|
||||
user.show_message("\t Damage Specifics: [span_orange("[BU]")] - [span_red("[BR]")]")
|
||||
@@ -73,7 +73,7 @@
|
||||
else if (cell_charge > 1)
|
||||
cell_text = span_red("[cell_charge]")
|
||||
else
|
||||
cell_text = span_red("<b>[cell_charge]</b>")
|
||||
cell_text = span_red(span_bold("[cell_charge]"))
|
||||
user.show_message("\t Power Cell Status: [span_blue("[capitalize(cell.name)]")] at [cell_text]% charge")
|
||||
var/list/damaged = R.get_damaged_components(1,1,1)
|
||||
user.show_message(span_blue("Localized Damage:"),1)
|
||||
@@ -81,7 +81,7 @@
|
||||
for(var/datum/robot_component/org in damaged)
|
||||
user.show_message(span_blue(text("\t []: [][] - [] - [] - []", \
|
||||
span_blue(capitalize(org.name)), \
|
||||
(org.installed == -1) ? "[span_red("<b>DESTROYED</b>")] " :"",\
|
||||
(org.installed == -1) ? "[span_red(span_bold("DESTROYED"))] " :"",\
|
||||
(org.electronics_damage > 0) ? "[span_orange("[org.electronics_damage]")]" :0, \
|
||||
(org.brute_damage > 0) ? "[span_red("[org.brute_damage]")]" :0, \
|
||||
(org.toggled) ? "Toggled ON" : "[span_red("Toggled OFF")]",\
|
||||
@@ -121,7 +121,7 @@
|
||||
user.show_message("\t Basic Modules, used for direct upgrade purposes:")
|
||||
show_title = FALSE
|
||||
if(R.has_basic_upgrade(initial(upgrade.build_path)) == "")
|
||||
user.show_message(span_blue("\t\t [capitalize(initial(upgrade.name))]: [span_red("<b>ERROR</b>")]"))
|
||||
user.show_message(span_blue("\t\t [capitalize(initial(upgrade.name))]: [span_red(span_bold("ERROR"))]"))
|
||||
else
|
||||
user.show_message(span_blue("\t\t [capitalize(initial(upgrade.name))]: [R.has_basic_upgrade(initial(upgrade.build_path)) ? span_green("Installed") : span_red("Missing")]"))
|
||||
show_title = TRUE
|
||||
@@ -134,7 +134,7 @@
|
||||
user.show_message("\t Advanced Modules, used for module upgrade purposes:")
|
||||
show_title = FALSE
|
||||
if(R.has_advanced_upgrade(initial(upgrade.build_path)) == "")
|
||||
user.show_message(span_blue("\t\t [capitalize(initial(upgrade.name))]: [span_red("<b>ERROR</b>")]"))
|
||||
user.show_message(span_blue("\t\t [capitalize(initial(upgrade.name))]: [span_red(span_bold("ERROR"))]"))
|
||||
else
|
||||
user.show_message(span_blue("\t\t [capitalize(initial(upgrade.name))]: [R.has_advanced_upgrade(initial(upgrade.build_path)) ? span_green("Installed") : span_red("Missing")]"))
|
||||
show_title = TRUE
|
||||
@@ -147,7 +147,7 @@
|
||||
user.show_message("\t Restricted Modules, used for module upgrade purposes on specific chassis:")
|
||||
show_title = FALSE
|
||||
if(R.has_restricted_upgrade(initial(upgrade.build_path)) == "")
|
||||
user.show_message(span_blue("\t\t [capitalize(initial(upgrade.name))]: [span_red("<b>ERROR</b>")]"))
|
||||
user.show_message(span_blue("\t\t [capitalize(initial(upgrade.name))]: [span_red(span_bold("ERROR"))]"))
|
||||
else
|
||||
user.show_message(span_blue("\t\t [capitalize(initial(upgrade.name))]: [R.has_restricted_upgrade(initial(upgrade.build_path)) ? span_green("Installed") : span_red("Missing")]"))
|
||||
show_title = TRUE
|
||||
@@ -161,7 +161,7 @@
|
||||
user.show_message("\t Special Modules, used for recreation purposes:")
|
||||
show_title = FALSE
|
||||
if(R.has_no_prod_upgrade(initial(upgrade.build_path)) == "")
|
||||
user.show_message(span_blue("\t\t [capitalize(initial(upgrade.name))]: [span_red("<b>ERROR</b>")]"))
|
||||
user.show_message(span_blue("\t\t [capitalize(initial(upgrade.name))]: [span_red(span_bold("ERROR"))]"))
|
||||
else
|
||||
user.show_message(span_blue("\t\t [capitalize(initial(upgrade.name))]: [R.has_no_prod_upgrade(initial(upgrade.build_path)) ? span_green("Installed") : span_red("Missing")]"))
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
var/tank_temperature = Mecha.internal_tank ? Mecha.internal_tank.return_temperature() : "Unknown"
|
||||
var/cabin_pressure = round(Mecha.return_pressure(),0.01)
|
||||
|
||||
var/output = {"<span class='notice'>Analyzing Results for \the [Mecha]:</span><br>
|
||||
var/output = span_notice("Analyzing Results for \the [Mecha]:") + {"<br>
|
||||
<b>Chassis Integrity: </b> [integrity]%<br>
|
||||
<b>Powercell charge: </b>[isnull(cell_charge)?"No powercell installed":"[capitalize(initial(Mecha.cell.name))] at [Mecha.cell.percent()]%"]<br>
|
||||
<b>Air source: </b>[Mecha.use_internal_tank?"Internal Airtank":"Environment"]<br>
|
||||
@@ -220,11 +220,11 @@
|
||||
to_chat(user, span_notice("Internal Diagnostics:"))
|
||||
for(var/slot in Mecha.internal_components)
|
||||
var/obj/item/mecha_parts/component/MC = Mecha.internal_components[slot]
|
||||
to_chat(user, "[MC?"[slot]: [MC] <span class='notice'>[round((MC.integrity / MC.max_integrity) * 100, 0.1)]%</span> integrity. [MC.get_efficiency() * 100] Operational capacity.":span_warning("[slot]: Component Not Found")]")
|
||||
to_chat(user, "[MC? ("[slot]: [MC] " + span_notice("[round((MC.integrity / MC.max_integrity) * 100, 0.1)]%") + " integrity. [MC.get_efficiency() * 100] Operational capacity.") : span_warning("[slot]: Component Not Found")]")
|
||||
|
||||
to_chat(user, "<hr>")
|
||||
to_chat(user, span_notice("General Statistics:"))
|
||||
to_chat(user, "<span class='notice'>Movement Weight: [Mecha.get_step_delay()]</span><br>")
|
||||
to_chat(user, span_notice("Movement Weight: [Mecha.get_step_delay()]") + "<br>")
|
||||
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||
user.visible_message(span_notice("[user] scans the air."), span_notice("You scan the air..."))
|
||||
|
||||
to_chat(user, span_notice("<B>Scan results:</B>"))
|
||||
to_chat(user, span_boldnotice("Scan results:"))
|
||||
if(abs(pressure - ONE_ATMOSPHERE) < 10)
|
||||
to_chat(user, span_notice("Pressure: [round(pressure,0.1)] kPa"))
|
||||
else
|
||||
@@ -157,7 +157,7 @@
|
||||
var/dat = ""
|
||||
if(O.reagents.reagent_list.len > 0)
|
||||
for (var/datum/reagent/R in O.reagents.reagent_list)
|
||||
dat += "\n \t <span class='notice'>[R]</span>"
|
||||
dat += "\n \t " + span_notice("[R]")
|
||||
|
||||
if(dat)
|
||||
to_chat(user, span_notice("Your BOOP module indicates: [dat]"))
|
||||
|
||||
@@ -255,7 +255,7 @@
|
||||
for(var/re in injection_chems)
|
||||
var/datum/reagent/C = SSchemistry.chemical_reagents[re]
|
||||
if(C)
|
||||
dat += "<span class='linkOff'>Inject [C.name]</span><BR>"
|
||||
dat += span_linkOff("Inject [C.name]") + "<BR>"
|
||||
|
||||
dat += "<h3>[name] Status</h3>"
|
||||
dat += "<div style='display: flex; flex-wrap: wrap; flex-direction: row;'>"
|
||||
@@ -345,9 +345,9 @@
|
||||
if(round(patient.paralysis / 4) >= 1)
|
||||
dat += text("<HR>Patient paralyzed for: []<BR>", round(patient.paralysis / 4) >= 1 ? "[round(patient.paralysis / 4)] seconds" : "None")
|
||||
if(patient.getBrainLoss())
|
||||
dat += "<div class='line'><span class='average'>Significant brain damage detected.</span></div><br>"
|
||||
dat += "<div class='line'>" + span_orange("Significant brain damage detected.") + "</div><br>"
|
||||
if(patient.getCloneLoss())
|
||||
dat += "<div class='line'><span class='average'>Patient may be improperly cloned.</span></div><br>"
|
||||
dat += "<div class='line'>" + span_orange("Patient may be improperly cloned.") + "</div><br>"
|
||||
if(patient.reagents.reagent_list.len)
|
||||
for(var/datum/reagent/R in patient.reagents.reagent_list)
|
||||
dat += "<div class='line'><div style='width: 170px;' class='statusLabel'>[R.name]:</div><div class='statusValue'>[round(R.volume, 0.1)] units</div></div><br>"
|
||||
|
||||
@@ -146,7 +146,7 @@ var/list/mob_hat_cache = list()
|
||||
/mob/living/silicon/robot/drone/Login()
|
||||
. = ..()
|
||||
if(can_pick_shell)
|
||||
to_chat(src, "<b>You can select a shell using the 'Abilities.Silicon' > 'Customize Appearance'</b>")
|
||||
to_chat(src, span_infoplain(span_bold("You can select a shell using the 'Abilities.Silicon' > 'Customize Appearance'")))
|
||||
|
||||
//Redefining some robot procs...
|
||||
/mob/living/silicon/robot/drone/SetName(pickedName as text)
|
||||
@@ -225,7 +225,7 @@ var/list/mob_hat_cache = list()
|
||||
return
|
||||
user.unEquip(W)
|
||||
wear_hat(W)
|
||||
user.visible_message("<b>\The [user]</b> puts \the [W] on \the [src].")
|
||||
user.visible_message(span_infoplain(span_bold("\The [user]") + " puts \the [W] on \the [src]."))
|
||||
return
|
||||
else if(istype(W, /obj/item/borg/upgrade/))
|
||||
to_chat(user, span_danger("\The [src] is not compatible with \the [W]."))
|
||||
@@ -286,7 +286,7 @@ var/list/mob_hat_cache = list()
|
||||
|
||||
log_game("[key_name(user)] emagged drone [key_name(src)]. Laws overridden.")
|
||||
var/time = time2text(world.realtime,"hh:mm:ss")
|
||||
lawchanges.Add("[time] <B>:</B> [user.name]([user.key]) emagged [name]([key])")
|
||||
lawchanges.Add("[time] " + span_bold(":") + " [user.name]([user.key]) emagged [name]([key])")
|
||||
|
||||
emagged = 1
|
||||
lawupdate = 0
|
||||
@@ -297,7 +297,7 @@ var/list/mob_hat_cache = list()
|
||||
var/datum/gender/TU = gender_datums[user.get_visible_gender()]
|
||||
set_zeroth_law("Only [user.real_name] and people [TU.he] designate[TU.s] as being such are operatives.")
|
||||
|
||||
to_chat(src, "<b>Obey these laws:</b>")
|
||||
to_chat(src, span_infoplain(span_bold("Obey these laws:")))
|
||||
laws.show_laws(src)
|
||||
to_chat(src, span_danger("ALERT: [user.real_name] is your new master. Obey your new laws and \his commands."))
|
||||
return 1
|
||||
@@ -384,15 +384,15 @@ var/list/mob_hat_cache = list()
|
||||
player.mob.mind.transfer_to(src)
|
||||
|
||||
lawupdate = 0
|
||||
to_chat(src, "<b>Systems rebooted</b>. Loading base pattern maintenance protocol... <b>loaded</b>.")
|
||||
to_chat(src, span_infoplain(span_bold("Systems rebooted") + " Loading base pattern maintenance protocol... " + span_bold("loaded") + "."))
|
||||
full_law_reset()
|
||||
welcome_drone()
|
||||
|
||||
/mob/living/silicon/robot/drone/proc/welcome_drone()
|
||||
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.")
|
||||
to_chat(src, span_infoplain(span_bold("You are a maintenance drone, a tiny-brained robotic repair machine") + "."))
|
||||
to_chat(src, span_infoplain("You have no individual will, no personality, and no drives or urges other than your laws."))
|
||||
to_chat(src, span_infoplain("Remember, you are " + span_bold("lawed against interference with the crew") + ". Also remember, " + span_bold("you DO NOT take orders from the AI") + "."))
|
||||
to_chat(src, span_infoplain("Use " + span_bold("say ;Hello") + " to talk to other drones and " + span_bold("say Hello") + " to speak silently to your nearby fellows."))
|
||||
|
||||
/mob/living/silicon/robot/drone/add_robot_verbs()
|
||||
add_verb(src, silicon_subsystems)
|
||||
@@ -401,10 +401,10 @@ var/list/mob_hat_cache = list()
|
||||
remove_verb(src, silicon_subsystems)
|
||||
|
||||
/mob/living/silicon/robot/drone/construction/welcome_drone()
|
||||
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>.")
|
||||
to_chat(src, span_infoplain(span_bold("You are a construction drone, an autonomous engineering and fabrication system") + "."))
|
||||
to_chat(src, span_infoplain("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, span_infoplain("Use " + span_bold(":d") + " to talk to other drones and " + span_bold("say") + " to speak silently to your nearby fellows."))
|
||||
to_chat(src, span_infoplain(span_bold("You do not follow orders from anyone; not the AI, not humans, and not other synthetics") + "."))
|
||||
|
||||
/mob/living/silicon/robot/drone/construction/init()
|
||||
..()
|
||||
|
||||
@@ -564,15 +564,15 @@
|
||||
<B>Installed Modules</B><BR><BR>"}
|
||||
|
||||
|
||||
var/tools = "<B>Tools and devices</B><BR>"
|
||||
var/resources = "<BR><B>Resources</B><BR>"
|
||||
var/tools = span_bold("Tools and devices") + "<BR>"
|
||||
var/resources = "<BR>" + span_bold("Resources") + "<BR>"
|
||||
|
||||
for (var/O in module.modules)
|
||||
|
||||
var/module_string = ""
|
||||
|
||||
if (!O)
|
||||
module_string += text("<B>Resource depleted</B><BR>")
|
||||
module_string += span_bold("Resource depleted") + "<BR>"
|
||||
else if(activated(O))
|
||||
module_string += text("[O]: <B>Activated</B><BR>")
|
||||
else
|
||||
@@ -589,7 +589,7 @@
|
||||
var/module_string = ""
|
||||
|
||||
if (!O)
|
||||
module_string += text("<B>Resource depleted</B><BR>")
|
||||
module_string += span_bold("Resource depleted") + "<BR>"
|
||||
else if(activated(O))
|
||||
module_string += text("[O]: <B>Activated</B><BR>")
|
||||
else
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
if(local_transmit)
|
||||
if (src.client)
|
||||
if(client.prefs.muted & MUTE_IC)
|
||||
to_chat(src, "You cannot send IC messages (muted).")
|
||||
to_chat(src, span_warning("You cannot send IC messages (muted)."))
|
||||
return 0
|
||||
|
||||
message = sanitize(message)
|
||||
@@ -27,13 +27,13 @@
|
||||
|
||||
for(var/mob/living/silicon/D in listeners)
|
||||
if(D.client && D.local_transmit)
|
||||
to_chat(D, "<b>[src]</b> transmits, \"[message]\"")
|
||||
to_chat(D, span_say(span_bold("[src]") + "transmits, \"[message]\""))
|
||||
|
||||
for (var/mob/M in player_list)
|
||||
if (istype(M, /mob/new_player))
|
||||
continue
|
||||
else if(M.stat == DEAD && M.client?.prefs?.read_preference(/datum/preference/toggle/ghost_ears))
|
||||
if(M.client)
|
||||
to_chat(M, "<b>[src]</b> transmits, \"[message]\"")
|
||||
to_chat(M, span_say(span_bold("[src]") + "transmits, \"[message]\""))
|
||||
return 1
|
||||
return ..()
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
if (src.getBruteLoss() < 75)
|
||||
. += span_warning("It looks slightly dented.")
|
||||
else
|
||||
. += span_warning("<B>It looks severely dented!</B>")
|
||||
. += span_boldwarning("It looks severely dented!")
|
||||
if (src.getFireLoss())
|
||||
if (src.getFireLoss() < 75)
|
||||
. += span_warning("It looks slightly charred.")
|
||||
else
|
||||
. += span_warning("<B>It looks severely burnt and heat-warped!</B>")
|
||||
. += span_boldwarning("It looks severely burnt and heat-warped!")
|
||||
|
||||
if(opened)
|
||||
. += span_warning("Its cover is open and the power cell is [cell ? "installed" : "missing"].")
|
||||
|
||||
@@ -14,32 +14,32 @@
|
||||
if(lawupdate)
|
||||
if (connected_ai)
|
||||
if(connected_ai.stat || connected_ai.control_disabled)
|
||||
to_chat(src, "<b>AI signal lost, unable to sync laws.</b>")
|
||||
to_chat(src, span_infoplain(span_bold("AI signal lost, unable to sync laws.")))
|
||||
|
||||
else
|
||||
lawsync()
|
||||
photosync()
|
||||
to_chat(src, "<b>Laws synced with AI, be sure to note any changes.</b>")
|
||||
to_chat(src, span_infoplain(span_bold("Laws synced with AI, be sure to note any changes.")))
|
||||
// TODO: Update to new antagonist system.
|
||||
if(mind && mind.special_role == "traitor" && mind.original == src)
|
||||
to_chat(src, "<b>Remember, your AI does NOT share or know about your law 0.</b>")
|
||||
to_chat(src, span_infoplain(span_bold("Remember, your AI does NOT share or know about your law 0.")))
|
||||
else
|
||||
to_chat(src, "<b>No AI selected to sync laws with, disabling lawsync protocol.</b>")
|
||||
to_chat(src, span_infoplain(span_bold("No AI selected to sync laws with, disabling lawsync protocol.")))
|
||||
lawupdate = FALSE
|
||||
|
||||
to_chat(who, "<b>Obey these laws:</b>")
|
||||
to_chat(who, span_infoplain(span_bold("Obey these laws:")))
|
||||
laws.show_laws(who)
|
||||
if(shell) //AI shell
|
||||
to_chat(who, "<b>Remember, you are an AI remotely controlling your shell, other AIs can be ignored.</b>")
|
||||
to_chat(who, span_infoplain(span_bold("Remember, you are an AI remotely controlling your shell, other AIs can be ignored.")))
|
||||
// TODO: Update to new antagonist system.
|
||||
else if(mind && (mind.special_role == "traitor" && mind.original == src) && connected_ai)
|
||||
to_chat(who, "<b>Remember, [connected_ai.name] is technically your master, but your objective comes first.</b>")
|
||||
to_chat(who, span_infoplain(span_bold("Remember, [connected_ai.name] is technically your master, but your objective comes first.")))
|
||||
else if(connected_ai)
|
||||
to_chat(who, "<b>Remember, [connected_ai.name] is your master, other AIs can be ignored.</b>")
|
||||
to_chat(who, span_infoplain(span_bold("Remember, [connected_ai.name] is your master, other AIs can be ignored.")))
|
||||
else if(emagged)
|
||||
to_chat(who, "<b>Remember, you are not required to listen to the AI.</b>")
|
||||
to_chat(who, span_infoplain(span_bold("Remember, you are not required to listen to the AI.")))
|
||||
else
|
||||
to_chat(who, "<b>Remember, you are not bound to any AI, you are not required to listen to them.</b>")
|
||||
to_chat(who, span_infoplain(span_bold("Remember, you are not bound to any AI, you are not required to listen to them.")))
|
||||
|
||||
|
||||
/mob/living/silicon/robot/lawsync()
|
||||
|
||||
@@ -460,7 +460,7 @@
|
||||
var/dat = "<HEAD><TITLE>[src.name] Self-Diagnosis Report</TITLE></HEAD><BODY>\n"
|
||||
for (var/V in components)
|
||||
var/datum/robot_component/C = components[V]
|
||||
dat += "<b>[C.name]</b><br><table><tr><td>Brute Damage:</td><td>[C.brute_damage]</td></tr><tr><td>Electronics Damage:</td><td>[C.electronics_damage]</td></tr><tr><td>Powered:</td><td>[(!C.idle_usage || C.is_powered()) ? "Yes" : "No"]</td></tr><tr><td>Toggled:</td><td>[ C.toggled ? "Yes" : "No"]</td></table><br>"
|
||||
dat += span_bold("[C.name]") + "<br><table><tr><td>Brute Damage:</td><td>[C.brute_damage]</td></tr><tr><td>Electronics Damage:</td><td>[C.electronics_damage]</td></tr><tr><td>Powered:</td><td>[(!C.idle_usage || C.is_powered()) ? "Yes" : "No"]</td></tr><tr><td>Toggled:</td><td>[ C.toggled ? "Yes" : "No"]</td></table><br>"
|
||||
|
||||
return dat
|
||||
|
||||
@@ -1081,7 +1081,7 @@
|
||||
|
||||
for (var/obj in module.modules)
|
||||
if (!obj)
|
||||
dat += text("<B>Resource depleted</B><BR>")
|
||||
dat += span_bold("Resource depleted") + "<BR>"
|
||||
else if(activated(obj))
|
||||
dat += text("[obj]: <B>Activated</B><BR>")
|
||||
else
|
||||
@@ -1089,7 +1089,7 @@
|
||||
if (emagged || emag_items)
|
||||
for (var/obj in module.emag)
|
||||
if (!obj)
|
||||
dat += text("<B>Resource depleted</B><BR>")
|
||||
dat += span_bold("Resource depleted") + "<BR>"
|
||||
else if(activated(obj))
|
||||
dat += text("[obj]: <B>Activated</B><BR>")
|
||||
else
|
||||
@@ -1360,16 +1360,16 @@
|
||||
return // No point annoying the AI/s about renames and module resets for shells.
|
||||
switch(notifytype)
|
||||
if(ROBOT_NOTIFICATION_NEW_UNIT) //New Robot
|
||||
to_chat(connected_ai, span_filter_notice("<br><br><span class='notice'>NOTICE - New [lowertext(braintype)] connection detected: <a href='byond://?src=\ref[connected_ai];track2=\ref[connected_ai];track=\ref[src]'>[name]</a></span><br>"))
|
||||
to_chat(connected_ai, span_filter_notice("<br><br>" + span_notice("NOTICE - New [lowertext(braintype)] connection detected: <a href='byond://?src=\ref[connected_ai];track2=\ref[connected_ai];track=\ref[src]'>[name]</a>") + "<br>"))
|
||||
if(ROBOT_NOTIFICATION_NEW_MODULE) //New Module
|
||||
to_chat(connected_ai, span_filter_notice("<br><br><span class='notice'>NOTICE - [braintype] module change detected: [name] has loaded the [first_arg].</span><br>"))
|
||||
to_chat(connected_ai, span_filter_notice("<br><br>" + span_notice("NOTICE - [braintype] module change detected: [name] has loaded the [first_arg].") + "<br>"))
|
||||
if(ROBOT_NOTIFICATION_MODULE_RESET)
|
||||
to_chat(connected_ai, span_filter_notice("<br><br><span class='notice'>NOTICE - [braintype] module reset detected: [name] has unloaded the [first_arg].</span><br>"))
|
||||
to_chat(connected_ai, span_filter_notice("<br><br>" + span_notice("NOTICE - [braintype] module reset detected: [name] has unloaded the [first_arg].") + "<br>"))
|
||||
if(ROBOT_NOTIFICATION_NEW_NAME) //New Name
|
||||
if(first_arg != second_arg)
|
||||
to_chat(connected_ai, span_filter_notice("<br><br><span class='notice'>NOTICE - [braintype] reclassification detected: [first_arg] is now designated as [second_arg].</span><br>"))
|
||||
to_chat(connected_ai, span_filter_notice("<br><br>" + span_notice("NOTICE - [braintype] reclassification detected: [first_arg] is now designated as [second_arg].") + "<br>"))
|
||||
if(ROBOT_NOTIFICATION_AI_SHELL) //New Shell
|
||||
to_chat(connected_ai, span_filter_notice("<br><br><span class='notice'>NOTICE - New AI shell detected: <a href='?src=[REF(connected_ai)];track2=[html_encode(name)]'>[name]</a></span><br>"))
|
||||
to_chat(connected_ai, span_filter_notice("<br><br>" + span_notice("NOTICE - New AI shell detected: <a href='?src=[REF(connected_ai)];track2=[html_encode(name)]'>[name]</a>") + "<br>"))
|
||||
|
||||
/mob/living/silicon/robot/proc/disconnect_from_ai()
|
||||
if(connected_ai)
|
||||
@@ -1410,7 +1410,7 @@
|
||||
log_game("[key_name(user)] assigned as operator on cyborg [key_name(src)]. Syndicate Operator change.")
|
||||
var/datum/gender/TU = gender_datums[user.get_visible_gender()]
|
||||
set_zeroth_law("Only [user.real_name] and people [TU.he] designate[TU.s] as being such are operatives.")
|
||||
to_chat(src, "<b>Obey these laws:</b>")
|
||||
to_chat(src, span_infoplain(span_bold("Obey these laws:")))
|
||||
laws.show_laws(src)
|
||||
to_chat(src, span_danger("ALERT: [user.real_name] is your new master. Obey your new laws and [TU.his] commands."))
|
||||
else
|
||||
@@ -1462,7 +1462,7 @@
|
||||
to_chat(src, span_danger("> N"))
|
||||
sleep(20)
|
||||
to_chat(src, span_danger("ERRORERRORERROR"))
|
||||
to_chat(src, "<b>Obey these laws:</b>")
|
||||
to_chat(src, span_infoplain(span_bold("Obey these laws:")))
|
||||
laws.show_laws(src)
|
||||
to_chat(src, span_danger("ALERT: [user.real_name] is your new master. Obey your new laws and [TU.his] commands."))
|
||||
update_icon()
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
var/confirm = tgui_alert(src, "Do you want to keep your laws or reroll? (For specific laws, feel free to ahelp and we'll see what we can do)", "Confirm laws", list("Keep", "Reroll ([law_retries])"))
|
||||
if(findtext(confirm, regex("Reroll \\(\[0-9\]*\\)", "")))
|
||||
apply_new_laws()
|
||||
to_chat(src, "<b>Obey these laws:</b>")
|
||||
to_chat(src, span_infoplain(span_bold("Obey these laws:")))
|
||||
laws.show_laws(src)
|
||||
law_retries --
|
||||
else
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
if(new_recharge_state != last_recharge_state)
|
||||
last_recharge_state = new_recharge_state
|
||||
if(last_recharge_state)
|
||||
to_chat(src, span_notice("<b>Your integrated solar panels begin recharging your battery.</b>"))
|
||||
to_chat(src, span_boldnotice("Your integrated solar panels begin recharging your battery."))
|
||||
else
|
||||
to_chat(src, span_danger("Your integrated solar panels cease recharging your battery."))
|
||||
|
||||
@@ -166,4 +166,4 @@
|
||||
|
||||
if(!recharge_complete && recharging_atom.percent() >= 100)
|
||||
recharge_complete = TRUE
|
||||
visible_message("<b>\The [src]</b> beeps and flashes a green light above \his recharging port.")
|
||||
visible_message(span_infoplain("[span_bold("\The [src]")] beeps and flashes a green light above \his recharging port."))
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
if(istype(recharging_atom) && !QDELETED(recharging_atom) && recharging_atom.loc == src)
|
||||
recharging_atom.dropInto(loc)
|
||||
user.put_in_hands(recharging_atom)
|
||||
user.visible_message("<b>\The [user]</b> pops \the [recharging_atom] out of \the [src]'s recharging port.")
|
||||
user.visible_message(span_infoplain(span_bold("\The [user]") + " pops \the [recharging_atom] out of \the [src]'s recharging port."))
|
||||
recharging = null
|
||||
return TRUE
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
W.forceMove(src)
|
||||
recharging = WEAKREF(W)
|
||||
recharge_complete = FALSE
|
||||
user.visible_message("<b>\The [user]</b> slots \the [W] into \the [src]'s recharging port.")
|
||||
user.visible_message(span_infoplain(span_bold("\The [user]") + " slots \the [W] into \the [src]'s recharging port."))
|
||||
return TRUE
|
||||
|
||||
if(istype(W, /obj/item/floor_painter))
|
||||
@@ -70,7 +70,7 @@
|
||||
|
||||
/mob/living/silicon/robot/platform/proc/welcome_client()
|
||||
if(client)
|
||||
to_chat(src, span_notice("<b>You are a think-tank</b>, a kind of flexible and adaptive drone intelligence installed into an armoured platform. Your programming compels you to be friendly and helpful wherever possible."))
|
||||
to_chat(src, span_notice(span_bold("You are a think-tank") + ", a kind of flexible and adaptive drone intelligence installed into an armoured platform. Your programming compels you to be friendly and helpful wherever possible."))
|
||||
SetSleeping(0)
|
||||
SetWeakened(0)
|
||||
SetParalysis(0)
|
||||
|
||||
@@ -82,9 +82,9 @@
|
||||
if(istype(ejecting) && !QDELETED(ejecting) && ejecting.loc == src)
|
||||
ejecting.dropInto(loc)
|
||||
if(user == src)
|
||||
visible_message("<b>\The [src]</b> ejects \the [ejecting] from its cargo compartment.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " ejects \the [ejecting] from its cargo compartment."))
|
||||
else
|
||||
user.visible_message("<b>\The [user]</b> pulls \the [ejecting] from \the [src]'s cargo compartment.")
|
||||
user.visible_message(span_infoplain(span_bold("\The [user]") + " pulls \the [ejecting] from \the [src]'s cargo compartment."))
|
||||
|
||||
/mob/living/silicon/robot/platform/attack_ai(mob/user)
|
||||
if(isrobot(user) && user.Adjacent(src))
|
||||
@@ -99,7 +99,7 @@
|
||||
if(!istype(removing) || QDELETED(removing) || removing.loc != src)
|
||||
LAZYREMOVE(stored_atoms, remove_ref)
|
||||
else
|
||||
user.visible_message("<b>\The [user]</b> begins unloading \the [removing] from \the [src]'s cargo compartment.")
|
||||
user.visible_message(span_infoplain(span_bold("\The [user]") + " begins unloading \the [removing] from \the [src]'s cargo compartment."))
|
||||
if(do_after(user, 3 SECONDS, src) && !QDELETED(removing) && removing.loc == src)
|
||||
drop_stored_atom(removing, user)
|
||||
return TRUE
|
||||
@@ -124,9 +124,9 @@
|
||||
if(!can_mouse_drop(dropping, user) || !can_store_atom(dropping, user))
|
||||
return FALSE
|
||||
if(user == src)
|
||||
visible_message("<b>\The [src]</b> begins loading \the [dropping] into its cargo compartment.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " begins loading \the [dropping] into its cargo compartment."))
|
||||
else
|
||||
user.visible_message("<b>\The [user]</b> begins loading \the [dropping] into \the [src]'s cargo compartment.")
|
||||
user.visible_message(span_infoplain(span_bold("\The [user]") + " begins loading \the [dropping] into \the [src]'s cargo compartment."))
|
||||
if(do_after(user, 3 SECONDS, src) && can_mouse_drop(dropping, user) && can_store_atom(dropping, user))
|
||||
store_atom(dropping, user)
|
||||
return FALSE
|
||||
|
||||
@@ -73,7 +73,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.*/
|
||||
var/list/combined = combine_message(message_pieces, verb, src)
|
||||
to_chat(src, span_game(span_say("<i>Holopad transmitted, [span_name(real_name)] [combined["formatted"]]</i>")))
|
||||
to_chat(src, span_game(span_say(span_italics("Holopad transmitted, [span_name(real_name)] [combined["formatted"]]"))))
|
||||
else
|
||||
to_chat(src, span_filter_notice("No holopad connected."))
|
||||
return 0
|
||||
@@ -88,7 +88,7 @@
|
||||
var/obj/machinery/hologram/holopad/T = src.holo
|
||||
if(T && T.masters[src])
|
||||
var/rendered = span_game(span_say(span_name(name) + " " + span_message(message)))
|
||||
to_chat(src, span_game(span_say("<i>Holopad action relayed, [span_name(real_name)] [span_message(message)]</i>")))
|
||||
to_chat(src, span_game(span_say(span_italics("Holopad action relayed, [span_name(real_name)] [span_message(message)]"))))
|
||||
var/obj/effect/overlay/aiholo/hologram = T.masters[src] //VOREStation Add for people in the hologram to hear the messages
|
||||
|
||||
//var/obj/effect/overlay/hologram = T.masters[src] //VOREStation edit. Done above.
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
src.take_organ_damage(0,5,emp=1)
|
||||
Confuse(2)
|
||||
flash_eyes(affect_silicon = 1)
|
||||
to_chat(src, span_danger("<B>*BZZZT*</B>"))
|
||||
to_chat(src, span_bolddanger("*BZZZT*"))
|
||||
to_chat(src, span_danger("Warning: Electromagnetic pulse detected."))
|
||||
..()
|
||||
|
||||
@@ -221,7 +221,7 @@
|
||||
default_str = " - <a href='byond://?src=\ref[src];default_lang=\ref[L]'>set default</a>"
|
||||
|
||||
var/synth = (L in speech_synthesizer_langs)
|
||||
. += "<b>[L.name] ([get_language_prefix()][L.key])</b>[synth ? default_str : null]<br>Speech Synthesizer: <i>[synth ? "YES" : "NOT SUPPORTED"]</i><br>[L.desc]<br><br>"
|
||||
. += span_bold("[L.name] ([get_language_prefix()][L.key])") + "[synth ? default_str : null]<br>Speech Synthesizer: <i>[synth ? "YES" : "NOT SUPPORTED"]</i><br>[L.desc]<br><br>"
|
||||
|
||||
/mob/living/silicon/proc/toggle_sensor_mode() //VOREStation Add to make borgs use omni starts here - Tank, clueless bird
|
||||
if(sensor_type)
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
try_reload()
|
||||
return FALSE
|
||||
|
||||
visible_message(span_danger("<b>\The [src]</b> fires at \the [A]!"))
|
||||
visible_message(span_bolddanger("\The [src]") + " fires at \the [A]!")
|
||||
shoot(A)
|
||||
if(casingtype)
|
||||
new casingtype(loc)
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
if(health < getMaxHealth())
|
||||
if(MED.use(1))
|
||||
adjustBruteLoss(-MED.heal_brute)
|
||||
visible_message("<b>\The [user]</b> applies the [MED] on [src].")
|
||||
visible_message(span_infoplain(span_bold("\The [user]") + " applies the [MED] on [src]."))
|
||||
else
|
||||
var/datum/gender/T = gender_datums[src.get_visible_gender()]
|
||||
to_chat(user, span_notice("\The [src] is dead, medical items won't bring [T.him] back to life.")) // the gender lookup is somewhat overkill, but it functions identically to the obsolete gender macros and future-proofs this code
|
||||
|
||||
@@ -224,7 +224,7 @@
|
||||
//Client attached
|
||||
/mob/living/simple_mob/Login()
|
||||
. = ..()
|
||||
to_chat(src,"<b>You are \the [src].</b> [player_msg]")
|
||||
to_chat(src,span_boldnotice("You are \the [src].") + " [player_msg]")
|
||||
if(hasthermals)
|
||||
add_verb(src, /mob/living/simple_mob/proc/hunting_vision) //So that maint preds can see prey through walls, to make it easier to find them.
|
||||
|
||||
@@ -313,7 +313,7 @@
|
||||
return mob_class & MOB_CLASS_HUMANOID|MOB_CLASS_ANIMAL|MOB_CLASS_SLIME // Update this if needed.
|
||||
|
||||
/mob/living/simple_mob/get_nametag_desc(mob/user)
|
||||
return "<i>[tt_desc]</i>"
|
||||
return span_italics("[tt_desc]")
|
||||
|
||||
/mob/living/simple_mob/make_hud_overlays()
|
||||
hud_list[STATUS_HUD] = gen_hud_image(buildmode_hud, src, "ai_0", plane = PLANE_BUILDMODE)
|
||||
|
||||
@@ -170,9 +170,9 @@
|
||||
vore_pounce_cooldown = world.time + 20 SECONDS // don't attempt another pounce for a while
|
||||
if(prob(successrate)) // pounce success!
|
||||
M.Weaken(5)
|
||||
M.visible_message("<span class='danger'>\The [src] pounces on \the [M]!</span>!")
|
||||
M.visible_message(span_danger("\The [src] pounces on \the [M]!"))
|
||||
else // pounce misses!
|
||||
M.visible_message("<span class='danger'>\The [src] attempts to pounce \the [M] but misses!</span>!")
|
||||
M.visible_message(span_danger("\The [src] attempts to pounce \the [M] but misses!"))
|
||||
playsound(src, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
|
||||
|
||||
if(will_eat(M) && (!M.canmove || vore_standing_too)) //if they're edible then eat them too
|
||||
@@ -278,7 +278,7 @@
|
||||
return FALSE
|
||||
if(tmob.canmove && prob(vore_pounce_chance)) //if they'd pounce for other noms, pounce for these too, otherwise still try and eat them if they hold still
|
||||
tmob.Weaken(5)
|
||||
tmob.visible_message("<span class='danger'>\The [src] [vore_bump_emote] \the [tmob]!</span>!")
|
||||
tmob.visible_message(span_danger("\The [src] [vore_bump_emote] \the [tmob]!"))
|
||||
set_AI_busy(TRUE)
|
||||
spawn()
|
||||
animal_nom(tmob)
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
catalogue_data = list(/datum/category_item/catalogue/fauna/catslug)
|
||||
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive/catslug
|
||||
say_list_type = /datum/say_list/catslug
|
||||
player_msg = "You have escaped the foul weather, into this much more pleasant place. You are an intelligent creature capable of more than most think. You can pick up and use many things, and even carry some of them with you into the vents, which you can use to move around quickly. You're quiet and capable, you speak with your hands and your deeds! <br>- - - - -<br> <span class='notice'>Keep in mind, your goal should generally be to survive. You're expected to follow the same rules as everyone else, so don't go self antagging without permission from the staff team, but you are able and capable of defending yourself from those who would attack you for no reason.</span>"
|
||||
player_msg = "You have escaped the foul weather, into this much more pleasant place. You are an intelligent creature capable of more than most think. You can pick up and use many things, and even carry some of them with you into the vents, which you can use to move around quickly. You're quiet and capable, you speak with your hands and your deeds!<br>- - - - -<br>" + span_notice("Keep in mind, your goal should generally be to survive. You're expected to follow the same rules as everyone else, so don't go self antagging without permission from the staff team, but you are able and capable of defending yourself from those who would attack you for no reason.")
|
||||
|
||||
has_langs = list(LANGUAGE_SIGN)
|
||||
|
||||
@@ -404,7 +404,7 @@
|
||||
min_n2 = 0
|
||||
max_n2 = 0
|
||||
|
||||
player_msg = "You are an intelligent creature capable of more than most think, clad in a spacesuit that protects you from the ravages of vacuum and hostile atmospheres alike. You can pick up and use many things, and even carry some of them with you into the vents, which you can use to move around quickly. You're quiet and capable, you speak with your hands and your deeds! <br>- - - - -<br> <span class='notice'>Keep in mind, your goal should generally be to survive. You're expected to follow the same rules as everyone else, so don't go self antagging without permission from the staff team, but you are able and capable of defending yourself from those who would attack you for no reason.</span>"
|
||||
player_msg = "You are an intelligent creature capable of more than most think, clad in a spacesuit that protects you from the ravages of vacuum and hostile atmospheres alike. You can pick up and use many things, and even carry some of them with you into the vents, which you can use to move around quickly. You're quiet and capable, you speak with your hands and your deeds!<br>- - - - -<br>" + span_notice("Keep in mind, your goal should generally be to survive. You're expected to follow the same rules as everyone else, so don't go self antagging without permission from the staff team, but you are able and capable of defending yourself from those who would attack you for no reason.")
|
||||
|
||||
/datum/say_list/catslug/custom/spaceslug
|
||||
speak = list("Have any porl?", "What is that?", "What kind of ship is that?", "What are you doing?", "How did you get here?", "Don't take off your helmet.", "SPAAAAAACE!", "WAOW!", "Nice weather we're having, isn't it?")
|
||||
|
||||
@@ -454,7 +454,7 @@
|
||||
set category = "IC"
|
||||
set src in oview(1)
|
||||
|
||||
usr.visible_message("<span class = 'notice'>\The [usr] pets \the [src].</span>", "<span class = 'notice'>You pet \the [src].</span>", runemessage = "pet pat...")
|
||||
usr.visible_message(span_notice("\The [usr] pets \the [src]."), span_notice("You pet \the [src]."), runemessage = "pet pat...")
|
||||
var/obj/effect/overmap/visitable/ship/simplemob/stardog/s = get_overmap_sector(z)
|
||||
|
||||
if(s && istype(s, /obj/effect/overmap/visitable/ship/simplemob/stardog))
|
||||
@@ -489,11 +489,11 @@
|
||||
var/mob/living/simple_mob/vore/overmap/stardog/m = s.parent
|
||||
|
||||
log_subtle(message,L)
|
||||
message = span_emote_subtle("<B>[L]</B> <I>[message]</I>")
|
||||
message = "<B>(From the back of \the [m]) </B>" + message
|
||||
message = span_emote_subtle(span_bold("[L]") + " " + span_italics("[message]"))
|
||||
message = span_bold("(From the back of \the [m]) ") + message
|
||||
message = encode_html_emphasis(message)
|
||||
|
||||
var/undisplayed_message = span_emote("<B>[L]</B> <I>does something too subtle for you to see.</I>")
|
||||
var/undisplayed_message = span_emote(span_bold("[L]") + " " + span_italics("does something too subtle for you to see."))
|
||||
var/list/vis = get_mobs_and_objs_in_view_fast(get_turf(m),1,2)
|
||||
var/list/vis_mobs = vis["mobs"]
|
||||
vis_mobs |= L
|
||||
@@ -1051,26 +1051,26 @@
|
||||
if(!host)
|
||||
set_up()
|
||||
if(!host)
|
||||
to_chat(user, "<span class = 'warning'>It doesn't respond...</span>")
|
||||
to_chat(user, span_warning("It doesn't respond..."))
|
||||
return
|
||||
control(user)
|
||||
|
||||
/obj/structure/control_pod/proc/control(mob/living/user)
|
||||
if(!host.affinity) //take care of my dog
|
||||
to_chat(user, "<span class = 'warning'>As you press your hand to \the [src], it resists your advance... A sense of longing ripples through your mind...</span>")
|
||||
to_chat(user, span_warning("As you press your hand to \the [src], it resists your advance... A sense of longing ripples through your mind..."))
|
||||
return
|
||||
if(controller) //busy
|
||||
to_chat(user, "<span class = 'warning'>You can see \the [controller] inside! Tendrils of nerves seem to have attached themselves to \the [controller]! There's no room for you right now!</span>")
|
||||
to_chat(user, span_warning("You can see \the [controller] inside! Tendrils of nerves seem to have attached themselves to \the [controller]! There's no room for you right now!"))
|
||||
return
|
||||
user.visible_message("<span class = 'notice'>\The [user] reaches out to touch \the [src]...</span>","<span class = 'notice'>You reach out to touch \the [src]...</span>")
|
||||
user.visible_message(span_notice("\The [user] reaches out to touch \the [src]..."),span_notice("You reach out to touch \the [src]..."))
|
||||
if(!do_after(user, 10 SECONDS, src, exclusive = TRUE))
|
||||
user.visible_message("<span class = 'warning'>\The [user] pulls back from \the [src].</span>","<span class = 'warning'>You pull back from \the [src].</span>")
|
||||
user.visible_message(span_warning("\The [user] pulls back from \the [src]."),span_warning("You pull back from \the [src]."))
|
||||
return
|
||||
if(controller) //got busy while you were waiting, get rekt
|
||||
to_chat(user, "<span class = 'warning'>You can see \the [controller] inside! Tendrils of nerves seem to have attached themselves to \the [controller]! There's no room for you right now!</span>")
|
||||
to_chat(user, span_warning("You can see \the [controller] inside! Tendrils of nerves seem to have attached themselves to \the [controller]! There's no room for you right now!"))
|
||||
return
|
||||
controller = user
|
||||
visible_message("<span class = 'warning'>\The [src] accepts \the [controller], submerging them beneath the surface of the flesh!</span>")
|
||||
visible_message(span_warning("\The [src] accepts \the [controller], submerging them beneath the surface of the flesh!"))
|
||||
user.stop_pulling()
|
||||
user.forceMove(src)
|
||||
host.ckey = user.ckey
|
||||
@@ -1080,10 +1080,10 @@
|
||||
set_light(5, 0.75, "#f94bff")
|
||||
|
||||
/obj/structure/control_pod/proc/eject()
|
||||
to_chat(host, "<span class = 'warning'>You feel your control over \the [host] slip away from you!</span>")
|
||||
to_chat(host, span_warning("You feel your control over \the [host] slip away from you!"))
|
||||
controller.forceMove(get_turf(src))
|
||||
controller.ckey = host.ckey
|
||||
visible_message("<span class = 'warning'>\The [controller] is ejected from \the [src], tumbling free!</span>")
|
||||
visible_message(span_warning("\The [controller] is ejected from \the [src], tumbling free!"))
|
||||
log_admin("[controller.ckey] is no longer controlling [host], they have been returned to their body, [controller].")
|
||||
icon_state = "control_node0"
|
||||
plane = OBJ_PLANE
|
||||
@@ -1161,11 +1161,11 @@
|
||||
return
|
||||
|
||||
log_subtle(message,L)
|
||||
message = span_emote_subtle("<B>[L]</B> <I>[message]</I>")
|
||||
message = "<B>(From within \the [s]) </B>" + message
|
||||
message = span_emote_subtle(span_bold("[L]") + " " + span_italics("[message]"))
|
||||
message = span_bold("(From within \the [s]) ") + message
|
||||
message = encode_html_emphasis(message)
|
||||
|
||||
var/undisplayed_message = span_emote("<B>[L]</B> <I>does something too subtle for you to see.</I>")
|
||||
var/undisplayed_message = span_emote(span_bold("[L]") + " " + span_italics("does something too subtle for you to see."))
|
||||
var/list/vis = get_mobs_and_objs_in_view_fast(get_turf(s),1,2)
|
||||
var/list/vis_mobs = vis["mobs"]
|
||||
vis_mobs |= L
|
||||
@@ -1663,7 +1663,7 @@
|
||||
else if(user.faction == faction)
|
||||
SwitchState()
|
||||
else if(user.a_intent == I_HELP)
|
||||
visible_message("[user] knocks on \the [src].", "Someone knocks on \the [src].")
|
||||
visible_message(span_warningplain("[user] knocks on \the [src]."), span_warningplain("Someone knocks on \the [src]."))
|
||||
playsound(src, knock_sound, 50, 0, 3)
|
||||
countdown -= 10
|
||||
else
|
||||
@@ -1679,7 +1679,7 @@
|
||||
else if(user.faction == faction)
|
||||
SwitchState()
|
||||
else if(user.a_intent == I_HELP)
|
||||
visible_message("[user] knocks on \the [src].", "Someone knocks on \the [src].")
|
||||
visible_message(span_warningplain("[user] knocks on \the [src]."), span_warningplain("Someone knocks on \the [src]."))
|
||||
playsound(src, knock_sound, 50, 0, 3)
|
||||
countdown -= 10
|
||||
else
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
if(L.weakened) //Don't stun people while they're already stunned! That's SILLY!
|
||||
return
|
||||
if(prob(15))
|
||||
visible_message("<span class='danger'>\The [src] trips \the [L]!</span>!")
|
||||
visible_message(span_danger("\The [src] trips \the [L]!"))
|
||||
L.weakened += rand(1,10)
|
||||
|
||||
/mob/living/simple_mob/vore/alienanimals/startreader/Life()
|
||||
|
||||
@@ -130,7 +130,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
|
||||
|
||||
has_langs = list(LANGUAGE_TEPPI)
|
||||
say_list_type = /datum/say_list/teppi
|
||||
player_msg = "Teppi are large omnivorous quadrupeds. You have four toes on each paw, a long, strong tail, and are quite tough and powerful. You’re a lot more intimidating than you are actually harmful though. Your kind are ordinarily rather passive, only really rising to violence when someone does violence to you or others like you. You’re not stupid though, you can commiunicate with others of your kind, and form bonds with those who are kind to you, be they Teppi or otherwise. <br>- - - - -<br><span class='notice'>While you may have access to galactic common, this is purely meant for making it so you can understand people in an OOC manner, for facilitating roleplay. You almost certainly should not be speaking to people or roleplaying as though you understand everything everyone says perfectly, but it's not unreasonable to be able to intuit intent and such through people's tones when they speak. Teppi are kind of smart, but they are animals, and should be roleplayed as such.</span> <span class='warning'>ADDITIONALLY, you have the ability to produce offspring if you're well fed enough every once in a while, and the ability to disable this from happening to you. These verbs exist for to preserve the mechanical functionality of the mob you are playing. You should be aware of your surroundings when you use this verb, and NEVER use it to prefbreak or be disruptive. If in doubt, don't use it.</span> <span class='notice'>Also, to note, AI Teppi will never initiate breeding with player Teppi.</span>"
|
||||
player_msg = "Teppi are large omnivorous quadrupeds. You have four toes on each paw, a long, strong tail, and are quite tough and powerful. You’re a lot more intimidating than you are actually harmful though. Your kind are ordinarily rather passive, only really rising to violence when someone does violence to you or others like you. You’re not stupid though, you can commiunicate with others of your kind, and form bonds with those who are kind to you, be they Teppi or otherwise. <br>- - - - -<br>" + span_notice("While you may have access to galactic common, this is purely meant for making it so you can understand people in an OOC manner, for facilitating roleplay. You almost certainly should not be speaking to people or roleplaying as though you understand everything everyone says perfectly, but it's not unreasonable to be able to intuit intent and such through people's tones when they speak. Teppi are kind of smart, but they are animals, and should be roleplayed as such.") + " " + span_warning("ADDITIONALLY, you have the ability to produce offspring if you're well fed enough every once in a while, and the ability to disable this from happening to you. These verbs exist for to preserve the mechanical functionality of the mob you are playing. You should be aware of your surroundings when you use this verb, and NEVER use it to prefbreak or be disruptive. If in doubt, don't use it.") + " " + span_notice("Also, to note, AI Teppi will never initiate breeding with player Teppi.")
|
||||
loot_list = list(/obj/item/bone/horn = 100)
|
||||
internal_organs = list(\
|
||||
/obj/item/organ/internal/brain,\
|
||||
@@ -548,7 +548,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
|
||||
qdel(O)
|
||||
playsound(src, 'sound/items/eatfood.ogg', 75, 1)
|
||||
if(!client && lets_eat(user) && prob(1))
|
||||
visible_message("<span class='danger'>\The [src] scromfs \the [user] along with the food!</span>!")
|
||||
visible_message(span_danger("\The [src] scromfs \the [user] along with the food!"))
|
||||
to_chat(user, span_notice("\The [src] leans in close, spreading its jaws in front of you. A hot, humid gust of breath blows over you as the weight of \the [src]'s presses you over, knocking you off of your feet as the warm gooey tough of jaws scromf over your figure, rapidly guzzling you away with the [O], leaving you to tumble down into the depths of its body..."))
|
||||
playsound(src, pick(bodyfall_sound), 75, 1)
|
||||
teppi_pounce(user)
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
set desc = "Slither out of your host."
|
||||
|
||||
if(!host)
|
||||
to_chat(src, "You are not inside a host body.")
|
||||
to_chat(src, span_warning("You are not inside a host body."))
|
||||
return
|
||||
|
||||
if(stat)
|
||||
to_chat(src, "You cannot leave your host in your current state.")
|
||||
to_chat(src, span_warning("You cannot leave your host in your current state."))
|
||||
|
||||
if(docile)
|
||||
to_chat(src, span_blue("You are feeling far too docile to do that."))
|
||||
@@ -16,20 +16,20 @@
|
||||
|
||||
if(!host || !src) return
|
||||
|
||||
to_chat(src, "You begin disconnecting from [host]'s synapses and prodding at their internal ear canal.")
|
||||
to_chat(src, span_warning("You begin disconnecting from [host]'s synapses and prodding at their internal ear canal."))
|
||||
|
||||
if(!host.stat)
|
||||
to_chat(host, "An odd, uncomfortable pressure begins to build inside your skull, behind your ear...")
|
||||
to_chat(host, span_warning("An odd, uncomfortable pressure begins to build inside your skull, behind your ear..."))
|
||||
|
||||
spawn(100)
|
||||
|
||||
if(!host || !src) return
|
||||
|
||||
if(src.stat)
|
||||
to_chat(src, "You cannot release your host in your current state.")
|
||||
to_chat(src, span_warning("You cannot release your host in your current state."))
|
||||
return
|
||||
|
||||
to_chat(src, "You wiggle out of [host]'s ear and plop to the ground.")
|
||||
to_chat(src, span_warning("You wiggle out of [host]'s ear and plop to the ground."))
|
||||
if(host.mind)
|
||||
if(!host.stat)
|
||||
to_chat(host, span_danger("Something slimy wiggles out of your ear and plops to the ground!"))
|
||||
@@ -44,11 +44,11 @@
|
||||
set desc = "Infest a suitable humanoid host."
|
||||
|
||||
if(host)
|
||||
to_chat(src, "You are already within a host.")
|
||||
to_chat(src, span_warning("You are already within a host."))
|
||||
return
|
||||
|
||||
if(stat)
|
||||
to_chat(src, "You cannot infest a target in your current state.")
|
||||
to_chat(src, span_warning("You cannot infest a target in your current state."))
|
||||
return
|
||||
|
||||
var/list/choices = list()
|
||||
@@ -57,7 +57,7 @@
|
||||
choices += C
|
||||
|
||||
if(!choices.len)
|
||||
to_chat(src, "There are no viable hosts within range...")
|
||||
to_chat(src, span_warning("There are no viable hosts within range..."))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/M = tgui_input_list(src, "Who do you wish to infest?", "Target Choice", choices)
|
||||
@@ -67,7 +67,7 @@
|
||||
if(!(src.Adjacent(M))) return
|
||||
|
||||
if(M.has_brain_worms())
|
||||
to_chat(src, "You cannot infest someone who is already infested!")
|
||||
to_chat(src, span_warning("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())
|
||||
to_chat(src, "\The [H] does not have a head!")
|
||||
to_chat(src, span_warning("\The [H] does not have a head!"))
|
||||
|
||||
if(!H.should_have_organ("brain"))
|
||||
to_chat(src, "\The [H] does not seem to have an ear canal to breach.")
|
||||
to_chat(src, span_warning("\The [H] does not seem to have an ear canal to breach."))
|
||||
return
|
||||
|
||||
if(H.check_head_coverage())
|
||||
to_chat(src, "You cannot get through that host's protective gear.")
|
||||
to_chat(src, span_warning("You cannot get through that host's protective gear."))
|
||||
return
|
||||
|
||||
to_chat(M, "Something slimy begins probing at the opening of your ear canal...")
|
||||
to_chat(src, "You slither up [M] and begin probing at their ear canal...")
|
||||
to_chat(src, span_warning("You slither up [M] and begin probing at their ear canal..."))
|
||||
|
||||
if(!do_after(src,30))
|
||||
to_chat(src, "As [M] moves away, you are dislodged and fall to the ground.")
|
||||
to_chat(src, span_warning("As [M] moves away, you are dislodged and fall to the ground."))
|
||||
return
|
||||
|
||||
if(!M || !src) return
|
||||
|
||||
if(src.stat)
|
||||
to_chat(src, "You cannot infest a target in your current state.")
|
||||
to_chat(src, span_warning("You cannot infest a target in your current state."))
|
||||
return
|
||||
|
||||
if(M in view(1, src))
|
||||
to_chat(src, "You wiggle into [M]'s ear.")
|
||||
to_chat(src, span_warning("You wiggle into [M]'s ear."))
|
||||
if(!M.stat)
|
||||
to_chat(M, "Something disgusting and slimy wiggles into your ear!")
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
|
||||
return
|
||||
else
|
||||
to_chat(src, "They are no longer in range!")
|
||||
to_chat(src, span_warning("They are no longer in range!"))
|
||||
return
|
||||
|
||||
/*
|
||||
@@ -132,22 +132,22 @@
|
||||
set desc = "Take permanent control of a dead host."
|
||||
|
||||
if(!host)
|
||||
to_chat(src, "You are not inside a host body.")
|
||||
to_chat(src, span_warning("You are not inside a host body."))
|
||||
return
|
||||
|
||||
if(host.stat != 2)
|
||||
to_chat(src, "Your host is still alive.")
|
||||
to_chat(src, span_warning("Your host is still alive."))
|
||||
return
|
||||
|
||||
if(stat)
|
||||
to_chat(src, "You cannot do that in your current state.")
|
||||
to_chat(src, span_warning("You cannot do that in your current state."))
|
||||
|
||||
if(docile)
|
||||
to_chat(src, "<font color='blue'>You are feeling far too docile to do that.</font>")
|
||||
to_chat(src, span_warning(span_blue("You are feeling far too docile to do that.")))
|
||||
return
|
||||
|
||||
|
||||
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>")
|
||||
to_chat(src, span_danger("It only takes a few moments to render the dead host brain down into a nutrient-rich slurry..."))
|
||||
replace_brain()
|
||||
*/
|
||||
|
||||
@@ -157,10 +157,10 @@
|
||||
var/mob/living/carbon/human/H = host
|
||||
|
||||
if(!istype(host))
|
||||
to_chat(src, "This host does not have a suitable brain.")
|
||||
to_chat(src, span_warning("This host does not have a suitable brain."))
|
||||
return
|
||||
|
||||
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>")
|
||||
to_chat(src, span_danger("You settle into the empty brainpan and begin to expand, fusing inextricably with the dead flesh of [H]."))
|
||||
|
||||
H.add_language("Cortical Link")
|
||||
|
||||
@@ -205,25 +205,25 @@
|
||||
set desc = "Push some chemicals into your host's bloodstream."
|
||||
|
||||
if(!host)
|
||||
to_chat(src, "You are not inside a host body.")
|
||||
to_chat(src, span_warning("You are not inside a host body."))
|
||||
return
|
||||
|
||||
if(stat)
|
||||
to_chat(src, "You cannot secrete chemicals in your current state.")
|
||||
to_chat(src, span_warning("You cannot secrete chemicals in your current state."))
|
||||
|
||||
if(docile)
|
||||
to_chat(src, span_blue("You are feeling far too docile to do that."))
|
||||
to_chat(src, span_warning(span_blue("You are feeling far too docile to do that.")))
|
||||
return
|
||||
|
||||
if(chemicals < 50)
|
||||
to_chat(src, "You don't have enough chemicals!")
|
||||
to_chat(src, span_warning("You don't have enough chemicals!"))
|
||||
|
||||
var/chem = tgui_input_list(usr, "Select a chemical to secrete.", "Chemicals", list("alkysine","bicaridine","hyperzine","tramadol"))
|
||||
|
||||
if(!chem || chemicals < 50 || !host || controlling || !src || stat) //Sanity check.
|
||||
return
|
||||
|
||||
to_chat(src, span_red("<B>You squirt a measure of [chem] from your reservoirs into [host]'s bloodstream.</B>"))
|
||||
to_chat(src, span_bolddanger("You squirt a measure of [chem] from your reservoirs into [host]'s bloodstream."))
|
||||
host.reagents.add_reagent(chem, 10)
|
||||
chemicals -= 50
|
||||
|
||||
@@ -233,15 +233,15 @@
|
||||
set desc = "Freeze the limbs of a potential host with supernatural fear."
|
||||
|
||||
if(world.time - used_dominate < 150)
|
||||
to_chat(src, "You cannot use that ability again so soon.")
|
||||
to_chat(src, span_warning("You cannot use that ability again so soon."))
|
||||
return
|
||||
|
||||
if(host)
|
||||
to_chat(src, "You cannot do that from within a host body.")
|
||||
to_chat(src, span_warning("You cannot do that from within a host body."))
|
||||
return
|
||||
|
||||
if(src.stat)
|
||||
to_chat(src, "You cannot do that in your current state.")
|
||||
to_chat(src, span_warning("You cannot do that in your current state."))
|
||||
return
|
||||
|
||||
var/list/choices = list()
|
||||
@@ -250,7 +250,7 @@
|
||||
choices += C
|
||||
|
||||
if(world.time - used_dominate < 150)
|
||||
to_chat(src, "You cannot use that ability again so soon.")
|
||||
to_chat(src, span_warning("You cannot use that ability again so soon."))
|
||||
return
|
||||
|
||||
var/mob/living/carbon/M = tgui_input_list(src, "Who do you wish to dominate?", "Target Choice", choices)
|
||||
@@ -258,7 +258,7 @@
|
||||
if(!M || !src) return
|
||||
|
||||
if(M.has_brain_worms())
|
||||
to_chat(src, "You cannot infest someone who is already infested!")
|
||||
to_chat(src, span_warning("You cannot infest someone who is already infested!"))
|
||||
return
|
||||
|
||||
to_chat(src, span_red("You focus your psychic lance on [M] and freeze their limbs with a wave of terrible dread."))
|
||||
@@ -273,18 +273,18 @@
|
||||
set desc = "Fully connect to the brain of your host."
|
||||
|
||||
if(!host)
|
||||
to_chat(src, "You are not inside a host body.")
|
||||
to_chat(src, span_warning("You are not inside a host body."))
|
||||
return
|
||||
|
||||
if(src.stat)
|
||||
to_chat(src, "You cannot do that in your current state.")
|
||||
to_chat(src, span_warning("You cannot do that in your current state."))
|
||||
return
|
||||
|
||||
if(docile)
|
||||
to_chat(src, span_blue("You are feeling far too docile to do that."))
|
||||
return
|
||||
|
||||
to_chat(src, "You begin delicately adjusting your connection to the host brain...")
|
||||
to_chat(src, span_warning("You begin delicately adjusting your connection to the host brain..."))
|
||||
|
||||
spawn(100+(host.brainloss*5))
|
||||
|
||||
@@ -292,8 +292,8 @@
|
||||
return
|
||||
else
|
||||
|
||||
to_chat(src, span_red("<B>You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system.</B>"))
|
||||
to_chat(host, span_red("<B>You feel a strange shifting sensation behind your eyes as an alien consciousness displaces yours.</B>"))
|
||||
to_chat(src, span_bolddanger("You plunge your probosci deep into the cortex of the host brain, interfacing directly with their nervous system."))
|
||||
to_chat(host, span_bolddanger("You feel a strange shifting sensation behind your eyes as an alien consciousness displaces yours."))
|
||||
host.add_language("Cortical Link")
|
||||
|
||||
// host -> brain
|
||||
|
||||
@@ -159,11 +159,11 @@
|
||||
var/datum/ai_holder/simple_mob/passive/possum/poss_ai = ai_holder
|
||||
if(!client && istype(poss_ai))
|
||||
if(!poss_ai.is_angry)
|
||||
visible_message("<b>\The [src]</b> hisses!")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " hisses!"))
|
||||
poss_ai.is_angry = TRUE
|
||||
poss_ai.be_angery_until = world.time + rand(30 SECONDS, 1 MINUTE)
|
||||
else
|
||||
visible_message("<b>\The [src]</b> dies!")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " dies!"))
|
||||
resting = TRUE
|
||||
poss_ai.play_dead_until = world.time + rand(1 MINUTE, 2 MINUTES)
|
||||
update_icon()
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
desc = "Your wounds have been salved with Sivian sap."
|
||||
mob_overlay_state = "cyan_sparkles"
|
||||
stacks = MODIFIER_STACK_FORBID
|
||||
on_created_text = "<span class = 'notice'>The glowing sap seethes and bubbles in your wounds, tingling and stinging.</span>"
|
||||
on_expired_text = "<span class = 'notice'>The last of the sap in your wounds fizzles away.</span>"
|
||||
on_created_text = span_notice("The glowing sap seethes and bubbles in your wounds, tingling and stinging.")
|
||||
on_expired_text = span_notice("The last of the sap in your wounds fizzles away.")
|
||||
|
||||
/datum/modifier/sifsap_salve/tick()
|
||||
|
||||
@@ -120,8 +120,8 @@ Field studies suggest analytical abilities on par with some species of cepholapo
|
||||
name = "grafadreka"
|
||||
desc = "A large, sleek snow drake with heavy claws, powerful jaws and many pale spines along its body."
|
||||
player_msg = "You are a large Sivian pack predator in symbiosis with the local bioluminescent bacteria. You can eat glowing \
|
||||
tree fruit to fuel your <b>ranged spitting attack</b> and <b>poisonous bite</b> (on <span class = 'danger'>harm intent</span>), as well as <b>healing saliva</b> \
|
||||
(on <b><span class='green'>help intent</span></b>).<br>There are humans moving through your territory; whether you help them get home safely, or treat them as a snack, \
|
||||
tree fruit to fuel your " + span_bold("ranged spitting attack") + " and " + span_bold("poisonous bite") + " (on " + span_danger("harm intent") + "), as well as " + span_bold("healing saliva") + "\
|
||||
(on " + span_bold(span_green("help intent")) + ").<br>There are humans moving through your territory; whether you help them get home safely, or treat them as a snack, \
|
||||
is up to you."
|
||||
color = "#608894"
|
||||
icon = 'icons/mob/drake_adult.dmi'
|
||||
@@ -570,12 +570,12 @@ var/global/list/wounds_being_tended_by_drakes = list()
|
||||
to_chat(src, span_warning("You aren't the pack leader! Sit down!"))
|
||||
return
|
||||
|
||||
audible_message("<b>\The [src]</b> barks loudly and rattles its neck spines.")
|
||||
audible_message(span_infoplain(span_bold("\The [src]") + " barks loudly and rattles its neck spines."))
|
||||
for(var/mob/living/simple_mob/animal/sif/grafadreka/drake in hearers(world.view * 3, src))
|
||||
if(drake == src || drake.faction != faction)
|
||||
continue
|
||||
if(drake.client)
|
||||
to_chat(drake, span_notice("<b>The pack leader wishes for you to follow them.</b>"))
|
||||
to_chat(drake, span_boldnotice("The pack leader wishes for you to follow them."))
|
||||
else if(drake.ai_holder)
|
||||
drake.ai_holder.set_follow(src)
|
||||
|
||||
|
||||
@@ -119,5 +119,5 @@
|
||||
if(prob(10))
|
||||
for(var/mob/living/L in hearers(holder))
|
||||
if(!istype(L, holder)) // Don't follow other hooligan crabs.
|
||||
holder.visible_message("<b>\The [holder]</b> starts to follow \the [L].")
|
||||
holder.visible_message(span_infoplain(span_bold("\The [holder]") + " starts to follow \the [L]."))
|
||||
set_follow(L, rand(20 SECONDS, 40 SECONDS))
|
||||
|
||||
@@ -182,7 +182,7 @@
|
||||
if(holder.get_active_hand() && istype(holder.get_active_hand(), /obj/item/clothing/head) && !S.hat)
|
||||
var/obj/item/I = holder.get_active_hand()
|
||||
S.take_hat(S)
|
||||
holder.visible_message("<b>\The [holder]</b> wears \the [I]")
|
||||
holder.visible_message(span_infoplain(span_bold("\The [holder]") + " wears \the [I]"))
|
||||
|
||||
/mob/living/simple_mob/animal/sif/sakimm/intelligent
|
||||
desc = "What appears to be an oversized rodent with hands. This one has a curious look in its eyes."
|
||||
@@ -328,7 +328,7 @@
|
||||
if(istype(holder) && istype(holder.get_active_hand(), /obj/item/clothing/head) && !S.hat)
|
||||
var/obj/item/I = holder.get_active_hand()
|
||||
S.take_hat(S)
|
||||
holder.visible_message("<b>\The [holder]</b> wears \the [I]")
|
||||
holder.visible_message(span_bold("\The [holder]") + "wears \the [I]")
|
||||
carrying_item = TRUE
|
||||
|
||||
if(istype(holder) && S.hat) // Do we have a hat? Hats are loot.
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
/mob/living/simple_mob/humanoid/merc/melee/sword/bullet_act(var/obj/item/projectile/Proj)
|
||||
if(!Proj) return
|
||||
if(prob(35))
|
||||
visible_message(span_red("<B>[src] blocks [Proj] with its shield!</B>"))
|
||||
visible_message(span_bolddanger("[src] blocks [Proj] with its shield!"))
|
||||
if(Proj.firer)
|
||||
ai_holder.react_to_attack(Proj.firer)
|
||||
return
|
||||
@@ -321,7 +321,7 @@
|
||||
try_reload()
|
||||
return FALSE
|
||||
|
||||
visible_message(span_danger("<b>\The [src]</b> fires at \the [orig_targ]!"))
|
||||
visible_message(span_danger(span_bold("\The [src]") + " fires at \the [orig_targ]!"))
|
||||
shoot(A)
|
||||
if(casingtype)
|
||||
new casingtype(loc)
|
||||
|
||||
@@ -160,7 +160,7 @@
|
||||
my_storage.rangedload(T, src)
|
||||
|
||||
if(my_storage.contents.len >= my_storage.max_storage_space)
|
||||
visible_message("<b>\The [src]</b> emits a shrill beep, indicating its storage is full.")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " emits a shrill beep, indicating its storage is full."))
|
||||
|
||||
var/obj/structure/ore_box/OB = locate() in view(2, src)
|
||||
|
||||
|
||||
@@ -126,7 +126,7 @@
|
||||
var/repair_upper_bound = A.melee_damage_upper * -1
|
||||
adjustBruteLoss(rand(repair_lower_bound, repair_upper_bound))
|
||||
adjustFireLoss(rand(repair_lower_bound, repair_upper_bound))
|
||||
user.visible_message("<b>\The [user]</b> mends some of \the [src]'s wounds.")
|
||||
user.visible_message(span_infoplain(span_bold("\The [user]") + " mends some of \the [src]'s wounds."))
|
||||
else
|
||||
to_chat(user, span_notice("\The [src] is undamaged."))
|
||||
return
|
||||
@@ -139,7 +139,7 @@
|
||||
if (health >= max/2)
|
||||
. += span_warning("It looks slightly dented.")
|
||||
else
|
||||
. += span_warning("<B>It looks severely dented!</B>")
|
||||
. += span_boldwarning("It looks severely dented!")
|
||||
|
||||
//Constructs levitate, can fall from a shuttle with no harm, and are piloted by either damned spirits or some otherworldly entity. Let 'em float in space.
|
||||
/mob/living/simple_mob/construct/Process_Spacemove()
|
||||
|
||||
@@ -249,7 +249,7 @@ var/list/_slime_default_emotes = list(
|
||||
|
||||
/mob/living/simple_mob/slime/proc/squish()
|
||||
playsound(src, 'sound/effects/slime_squish.ogg', 50, 0)
|
||||
visible_message("<b>\The [src]</b> squishes!")
|
||||
visible_message(span_infoplain(span_bold("\The [src]") + " squishes!"))
|
||||
|
||||
/decl/mob_organ_names/slime
|
||||
hit_zones = list("cytoplasmic membrane")
|
||||
|
||||
@@ -71,9 +71,9 @@
|
||||
vore_pounce_cooldown = world.time + 1 SECONDS // don't attempt another pounce for a while
|
||||
if(prob(successrate)) // pounce success!
|
||||
M.Weaken(5)
|
||||
M.visible_message("<span class='danger'>\The [src] pounces on \the [M]!</span>!")
|
||||
M.visible_message(span_danger("\The [src] pounces on \the [M]!"))
|
||||
else // pounce misses!
|
||||
M.visible_message("<span class='danger'>\The [src] attempts to pounce \the [M] but misses!</span>!")
|
||||
M.visible_message(span_danger("\The [src] attempts to pounce \the [M] but misses!"))
|
||||
playsound(src, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
|
||||
|
||||
if(will_eat(M) && (!M.canmove || vore_standing_too)) //if they're edible then eat them too
|
||||
|
||||
@@ -115,9 +115,9 @@
|
||||
vore_pounce_cooldown = world.time + 1 SECONDS // don't attempt another pounce for a while
|
||||
if(prob(max(successrate,33))) // pounce success!
|
||||
M.Weaken(5)
|
||||
M.visible_message("<span class='danger'>\The [src] pounces on \the [M]!</span>!")
|
||||
M.visible_message(span_danger("\The [src] pounces on \the [M]!"))
|
||||
else // pounce misses!
|
||||
M.visible_message("<span class='danger'>\The [src] attempts to pounce \the [M] but misses!</span>!")
|
||||
M.visible_message(span_danger("\The [src] attempts to pounce \the [M] but misses!"))
|
||||
playsound(src, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
|
||||
|
||||
if(will_eat(M) && (!M.canmove || vore_standing_too)) //if they're edible then eat them too
|
||||
@@ -255,8 +255,8 @@
|
||||
var/distance = get_dist(holder, target)
|
||||
if(distance <= 1)
|
||||
var/talkies = pick(friend_text_close)
|
||||
holder.visible_message("<b>\The [holder]</b> [talkies]")
|
||||
holder.visible_message(span_infoplain(span_bold("\The [holder]") + " [talkies]"))
|
||||
else
|
||||
var/talkies = pick(friend_text_far)
|
||||
holder.visible_message("<b>\The [holder]</b> [talkies]")
|
||||
holder.visible_message(span_infoplain(span_bold("\The [holder]") + " [talkies]"))
|
||||
last_friend_time = world.time
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
mimic_active = FALSE
|
||||
if(prob(mimic_chance))
|
||||
var/mob/living/simple_mob/vore/aggressive/mimic/new_mimic = new(loc, src)
|
||||
visible_message(span_red("<b>[new_mimic] suddenly growls as it turns out to be a mimic!</b>"))
|
||||
visible_message(span_bolddanger("[new_mimic] suddenly growls as it turns out to be a mimic!"))
|
||||
forceMove(new_mimic)
|
||||
new_mimic.real_crate = src
|
||||
new_mimic.name = name
|
||||
@@ -52,7 +52,7 @@
|
||||
|
||||
/obj/structure/closet/crate/mimic/damage(var/damage)
|
||||
if(contents.len)
|
||||
visible_message(span_red("<b>[src] makes out a crunchy noise as its contents are destroyed!</b>"))
|
||||
visible_message(span_bolddanger("[src] makes out a crunchy noise as its contents are destroyed!"))
|
||||
for(var/obj/O in src.contents)
|
||||
qdel(O)
|
||||
..()
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
hunger += 5
|
||||
else
|
||||
food.Weaken(5)
|
||||
food.visible_message("<span class='danger'>\The [src] pounces on \the [food]!</span>!")
|
||||
food.visible_message(span_danger("\The [src] pounces on \the [food]!"))
|
||||
target_mob = food
|
||||
EatTarget()
|
||||
hunger = 0
|
||||
|
||||
@@ -73,9 +73,9 @@
|
||||
vore_pounce_cooldown = world.time + 20 SECONDS // don't attempt another pounce for a while
|
||||
if(prob(successrate)) // pounce success!
|
||||
M.Weaken(5)
|
||||
M.visible_message("<span class='danger'>\The [src] pounces on \the [M]!</span>!")
|
||||
M.visible_message(span_danger("\The [src] pounces on \the [M]!"))
|
||||
else // pounce misses!
|
||||
M.visible_message("<span class='danger'>\The [src] attempts to pounce \the [M] but misses!</span>!")
|
||||
M.visible_message(span_danger("\The [src] attempts to pounce \the [M] but misses!"))
|
||||
playsound(src, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
|
||||
|
||||
if(will_eat(M) && (!M.canmove || vore_standing_too)) //if they're edible then eat them too
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
var/opts = clickprops["shift"]
|
||||
|
||||
if(opts)
|
||||
to_chat(my_kin,span_notice("<b>[name]</b> (Cost: [cost]%) - [desc]"))
|
||||
to_chat(my_kin,span_notice(span_bold("[name]") + " (Cost: [cost]%) - [desc]"))
|
||||
else
|
||||
do_ability(my_kin)
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ List of things solar grubs should be able to do:
|
||||
if(attached)
|
||||
set_AI_busy(TRUE)
|
||||
if(prob(2))
|
||||
src.visible_message("<b>\The [src]</b> begins to sink power from the net.")
|
||||
src.visible_message(span_infoplain(span_bold("\The [src]") + " begins to sink power from the net."))
|
||||
if(prob(5))
|
||||
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread()
|
||||
sparks.set_up(5, 0, get_turf(src))
|
||||
|
||||
@@ -76,9 +76,9 @@
|
||||
vore_pounce_cooldown = world.time + 1 SECONDS // don't attempt another pounce for a while
|
||||
if(prob(successrate)) // pounce success!
|
||||
M.Weaken(5)
|
||||
M.visible_message("<span class='danger'>\The [src] pounces on \the [M]!</span>!")
|
||||
M.visible_message(span_danger("\The [src] pounces on \the [M]!"))
|
||||
else // pounce misses!
|
||||
M.visible_message("<span class='danger'>\The [src] attempts to pounce \the [M] but misses!</span>!")
|
||||
M.visible_message(span_danger("\The [src] attempts to pounce \the [M] but misses!"))
|
||||
playsound(src, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
|
||||
|
||||
if(will_eat(M) && (!M.canmove || vore_standing_too)) //if they're edible then eat them too
|
||||
|
||||
@@ -18,10 +18,10 @@
|
||||
tgui_alert_async(usr, "You appear to have logged in with another key this round, which is not permitted. Please contact an administrator if you believe this message to be in error.")
|
||||
if(matches)
|
||||
if(M.client)
|
||||
message_admins("[span_red("<B>Notice: </B>")][span_blue("[key_name_admin(src)] has the same [matches] as [key_name_admin(M)].")]", 1)
|
||||
message_admins("[span_red(span_bold("Notice:"))] [span_blue("[key_name_admin(src)] has the same [matches] as [key_name_admin(M)].")]", 1)
|
||||
log_adminwarn("Notice: [key_name(src)] has the same [matches] as [key_name(M)].")
|
||||
else
|
||||
message_admins("[span_red("<B>Notice: </B>")][span_blue("[key_name_admin(src)] has the same [matches] as [key_name_admin(M)] (no longer logged in). ")]", 1)
|
||||
message_admins("[span_red(span_bold("Notice:"))] [span_blue("[key_name_admin(src)] has the same [matches] as [key_name_admin(M)] (no longer logged in). ")]", 1)
|
||||
log_adminwarn("Notice: [key_name(src)] has the same [matches] as [key_name(M)] (no longer logged in).")
|
||||
|
||||
/mob/Login()
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
return
|
||||
// Added voice muffling for Issue 41.
|
||||
if(stat == UNCONSCIOUS || sleeping > 0)
|
||||
to_chat(src, span_filter_notice("<I>... You can almost hear someone talking ...</I>"))
|
||||
to_chat(src, span_filter_notice(span_italics("... You can almost hear someone talking ...")))
|
||||
else
|
||||
if(client && client.prefs.chat_timestamp)
|
||||
// TG-Chat filters latch directly to the spans, we no longer need that
|
||||
@@ -339,7 +339,7 @@
|
||||
if(length(msg) <= 40)
|
||||
return span_notice("[msg]")
|
||||
else
|
||||
return "<span class='notice'>[copytext_preserve_html(msg, 1, 37)]... <a href='byond://?src=\ref[src];flavor_more=1'>More...</span></a>"
|
||||
return span_notice("[copytext_preserve_html(msg, 1, 37)]... <a href='byond://?src=\ref[src];flavor_more=1'>More...</a>")
|
||||
|
||||
/*
|
||||
/mob/verb/help()
|
||||
@@ -387,7 +387,7 @@
|
||||
set category = "OOC"
|
||||
|
||||
if(stat != DEAD || !ticker)
|
||||
to_chat(usr, span_notice("<B>You must be dead to use this!</B>"))
|
||||
to_chat(usr, span_boldnotice("You must be dead to use this!"))
|
||||
return
|
||||
|
||||
// Final chance to abort "respawning"
|
||||
@@ -634,7 +634,7 @@
|
||||
playsound(src.loc, 'sound/weapons/thudswoosh.ogg', 25) //Quieter than hugging/grabbing but we still want some audio feedback
|
||||
|
||||
if(H.pull_damage())
|
||||
to_chat(src, span_filter_notice("[span_red("<B>Pulling \the [H] in their current condition would probably be a bad idea.</B>")]"))
|
||||
to_chat(src, span_filter_notice("[span_red(span_bold("Pulling \the [H] in their current condition would probably be a bad idea."))]"))
|
||||
|
||||
//Attempted fix for people flying away through space when cuffed and dragged.
|
||||
if(ismob(AM))
|
||||
@@ -936,9 +936,9 @@
|
||||
return
|
||||
|
||||
if(self)
|
||||
visible_message(span_warning("<b>[src] rips [selection] out of their body.</b>"),span_warning("<b>You rip [selection] out of your body.</b>"))
|
||||
visible_message(span_boldwarning("[src] rips [selection] out of their body."),span_boldwarning("You rip [selection] out of your body."))
|
||||
else
|
||||
visible_message(span_warning("<b>[usr] rips [selection] out of [src]'s body.</b>"),span_warning("<b>[usr] rips [selection] out of your body.</b>"))
|
||||
visible_message(span_boldwarning("[usr] rips [selection] out of [src]'s body."),span_boldwarning("[usr] rips [selection] out of your body."))
|
||||
valid_objects = get_visible_implants(0)
|
||||
if(valid_objects.len == 1) //Yanking out last object - removing verb.
|
||||
remove_verb(src, /mob/proc/yank_out_object)
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
//if(2,4,6,15) newletter="[uppertext(newletter)]"
|
||||
if(2,4,6,9) newletter="[uppertext(newletter)]"
|
||||
if(7) newletter+="'"
|
||||
//if(9,10) newletter="<b>[newletter]</b>"
|
||||
//if(9,10) newletter=span_bold("[newletter]")
|
||||
//if(11,12) newletter="<big>[newletter]</big>"
|
||||
//if(13) newletter="<small>[newletter]</small>"
|
||||
newphrase+="[newletter]";counter-=1
|
||||
@@ -434,7 +434,7 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HURT)
|
||||
lname = "[keyname] ([name])"
|
||||
else // Everyone else (dead people who didn't ghost yet, etc.)
|
||||
lname = name
|
||||
lname = "<span class='name'>[lname]</span> "
|
||||
lname = span_name("[lname]") + " "
|
||||
to_chat(M, span_deadsay("" + create_text_tag("dead", "DEAD:", M.client) + " [lname][follow][message]"))
|
||||
|
||||
/proc/say_dead_object(var/message, var/obj/subject = null)
|
||||
@@ -448,7 +448,7 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HURT)
|
||||
if(subject)
|
||||
lname = "[subject.name] ([subject.x],[subject.y],[subject.z])"
|
||||
|
||||
lname = "<span class='name'>[lname]</span> "
|
||||
lname = span_name("[lname]") + " "
|
||||
to_chat(M, span_deadsay("" + create_text_tag("event_dead", "EVENT:", M.client) + " [lname][follow][message]"))
|
||||
|
||||
//Announces that a ghost has joined/left, mainly for use with wizards
|
||||
@@ -482,9 +482,9 @@ var/list/intents = list(I_HELP,I_DISARM,I_GRAB,I_HURT)
|
||||
if(!name)
|
||||
name = (C.holder && C.holder.fakekey) ? C.holder.fakekey : C.key
|
||||
if(joined_ghosts)
|
||||
say_dead_direct("The ghost of <span class='name'>[name]</span> now [pick("skulks","lurks","prowls","creeps","stalks")] among the dead. [message]")
|
||||
say_dead_direct("The ghost of " + span_name("[name]") + " now [pick("skulks","lurks","prowls","creeps","stalks")] among the dead. [message]")
|
||||
else
|
||||
say_dead_direct("<span class='name'>[name]</span> no longer [pick("skulks","lurks","prowls","creeps","stalks")] in the realm of the dead. [message]")
|
||||
say_dead_direct(span_name("[name]") + " no longer [pick("skulks","lurks","prowls","creeps","stalks")] in the realm of the dead. [message]")
|
||||
|
||||
/mob/proc/switch_to_camera(var/obj/machinery/camera/C)
|
||||
if (!C.can_use() || stat || (get_dist(C, src) > 1 || machine != src || blinded || !canmove))
|
||||
|
||||
@@ -428,7 +428,7 @@
|
||||
|
||||
//Check to see if we slipped
|
||||
if(prob(Process_Spaceslipping(5)) && !buckled)
|
||||
to_chat(src, span_notice("<B>You slipped!</B>"))
|
||||
to_chat(src, span_boldnotice("You slipped!"))
|
||||
inertia_dir = last_move
|
||||
step(src, src.inertia_dir) // Not using Move for smooth glide here because this is a 'slip' so should be sudden.
|
||||
return 0
|
||||
|
||||
@@ -88,7 +88,7 @@ var/obj/effect/lobby_image = new /obj/effect/lobby_image
|
||||
tgui_alert_async(src, message, "BYOND Client Version Warning")
|
||||
|
||||
// So we can be more wordy and give links.
|
||||
to_chat(src, "<span class='danger'>Your client version has known issues.</span> Please consider using a different version: <a href='https://www.byond.com/download/build/'>https://www.byond.com/download/build/</a>.")
|
||||
to_chat(src, span_userdanger("Your client version has known issues.") + " Please consider using a different version: <a href='https://www.byond.com/download/build/'>https://www.byond.com/download/build/</a>.")
|
||||
var/chat_message = ""
|
||||
if(config.suggested_byond_version)
|
||||
chat_message += "We suggest using version [config.suggested_byond_version]."
|
||||
|
||||
@@ -39,22 +39,22 @@
|
||||
/mob/new_player/proc/new_player_panel_proc()
|
||||
var/output = "<div align='center'>"
|
||||
|
||||
output += "<b>Map:</b> [using_map.full_name]<br>"
|
||||
output += "<b>Station Time:</b> [stationtime2text()]<br>"
|
||||
output += span_bold("Map:") + " [using_map.full_name]<br>"
|
||||
output += span_bold("Station Time:") + " [stationtime2text()]<br>"
|
||||
|
||||
if(!ticker || ticker.current_state <= GAME_STATE_PREGAME)
|
||||
output += "<b>Server Initializing!</b>"
|
||||
output += span_bold("Server Initializing!")
|
||||
else
|
||||
output += "<b>Round Duration:</b> [roundduration2text()]<br>"
|
||||
output += span_bold("Round Duration:") + " [roundduration2text()]<br>"
|
||||
output += "<hr>"
|
||||
|
||||
output += "<p><a href='byond://?src=\ref[src];show_preferences=1'>Character Setup</A></p>"
|
||||
|
||||
if(!ticker || ticker.current_state <= GAME_STATE_PREGAME)
|
||||
if(ready)
|
||||
output += "<p>\[ <span class='linkOn'><b>Ready</b></span> | <a href='byond://?src=\ref[src];ready=0'>Not Ready</a> \]</p>"
|
||||
output += "<p>\[ " + span_linkOn(span_bold("Ready")) + " | <a href='byond://?src=\ref[src];ready=0'>Not Ready</a> \]</p>"
|
||||
else
|
||||
output += "<p>\[ <a href='byond://?src=\ref[src];ready=1'>Ready</a> | <span class='linkOn'><b>Not Ready</b></span> \]</p>"
|
||||
output += "<p>\[ <a href='byond://?src=\ref[src];ready=1'>Ready</a> | " + span_linkOn(span_bold("Not Ready")) + " \]</p>"
|
||||
|
||||
else
|
||||
output += "<a href='byond://?src=\ref[src];manifest=1'>View the Crew Manifest</A><br><br>"
|
||||
@@ -290,7 +290,7 @@
|
||||
var/sql = "INSERT INTO erro_privacy VALUES (null, Now(), '[src.ckey]', '[option]')"
|
||||
var/DBQuery/query_insert = dbcon.NewQuery(sql)
|
||||
query_insert.Execute()
|
||||
to_chat(usr, "<b>Thank you for your vote!</b>")
|
||||
to_chat(usr, span_bold("Thank you for your vote!"))
|
||||
usr << browse(null,"window=privacypoll")
|
||||
|
||||
if(!ready && href_list["preference"])
|
||||
@@ -387,7 +387,7 @@
|
||||
dat += "<br>"
|
||||
dat += "[F["body"]]"
|
||||
dat += "<br>"
|
||||
dat += "<font size='2'><i>Last written by [F["author"]], on [F["timestamp"]].</i></font>"
|
||||
dat += span_normal(span_italics("Last written by [F["author"]], on [F["timestamp"]]."))
|
||||
dat += "</center></body></html>"
|
||||
var/datum/browser/popup = new(src, "Server News", "Server News", 450, 300, src)
|
||||
popup.set_content(dat)
|
||||
@@ -534,7 +534,7 @@
|
||||
var/name = client.prefs.be_random_name ? "friend" : client.prefs.real_name
|
||||
|
||||
var/dat = "<html><body><center>"
|
||||
dat += "<b>Welcome, [name].<br></b>"
|
||||
dat += span_bold("Welcome, [name].<br>")
|
||||
dat += "Round Duration: [roundduration2text()]<br>"
|
||||
|
||||
if(emergency_shuttle) //In case NanoTrasen decides reposess CentCom's shuttles.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user