converts our spans (#9185)

This commit is contained in:
Kashargul
2024-10-07 20:47:23 +02:00
committed by GitHub
parent f4155aa973
commit a92a42b85b
162 changed files with 1360 additions and 1269 deletions

View File

@@ -47,6 +47,7 @@
#define span_say(str) ("<span class='say'>" + str + "</span>")
#define span_emote(str) ("<span class='emote'>" + str + "</span>")
#define span_emote_subtle(str) ("<span class='emotesubtle'>" + str + "</span>")
#define span_filter_say(str) ("<span class='filter_say'>" + str + "</span>")
// Filtered as NPC messages
#define span_npc_say(str) ("<span class='npcsay'>" + str + "</span>")
@@ -58,13 +59,9 @@
// Unfiltered, only style!
#define span_name(str) ("<span class='name'>" + str + "</span>")
#define span_game(str) ("<span class='game'>" + str + "</span>")
#define span_filter_say(str) ("<span class='filter_say'>" + str + "</span>")
#define span_message(str) ("<span class='message'>" + str + "</span>") // TODO: This makes no sense, check it!
#define span_notify(str) ("<span class='notify'>" + str + "</span>") // TODO: This makes no sense, check it!
#define span_body(str) ("<span class='body'>" + str + "</span>")
#define span_filter_warning(str) ("<span class='filter_warning'>" + str + "</span>")
#define span_filter_combat(str) ("<span class='filter_combat'>" + str + "</span>")
#define span_filter_notice(str) ("<span class='filter_notice'>" + str + "</span>")
// Filtered under combat!
#define span_attack(str) ("<span class='attack'>" + str + "</span>")
@@ -72,6 +69,7 @@
#define span_passive(str) ("<span class='passive'>" + str + "</span>")
#define span_danger(str) ("<span class='danger'>" + str + "</span>")
#define span_bolddanger(str) ("<span class='bolddanger'>" + str + "</span>")
#define span_filter_combat(str) ("<span class='filter_combat'>" + str + "</span>")
// Filtered under warning messages
#define span_critical(str) ("<span class='critical'>" + str + "</span>")
@@ -79,7 +77,7 @@
#define span_warning(str) ("<span class='warning'>" + str + "</span>")
#define span_warningplain(str) ("<span class='warningplain'>" + str + "</span>")
#define span_boldwarning(str) ("<span class='boldwarning'>" + str + "</span>")
#define span_sinister(str) ("<span class='sinister'>" + str + "</span>")
#define span_filter_warning(str) ("<span class='filter_warning'>" + str + "</span>") // Close to warning plain, maybe replace
// FIltered under info
#define span_info(str) ("<span class='info'>" + str + "</span>")
@@ -88,12 +86,13 @@
#define span_unconscious(str) ("<span class='unconscious'>" + str + "</span>")
#define span_hear(str) ("<span class='hear'>" + str + "</span>")
#define span_notice(str) ("<span class='notice'>" + str + "</span>")
#define span_filter_notice(str) ("<span class='filter_notice'>" + str + "</span>") // Close to infoplain, maybe replace
#define span_boldnotice(str) ("<span class='boldnotice'>" + str + "</span>")
#define span_adminnotice(str) ("<span class='adminnotice'>" + str + "</span>")
#define span_alium(str) ("<span class='alium'>" + str + "</span>")
#define span_cult(str) ("<span class='cult'>" + str + "</span>")
#define span_wingdings(str) ("<span class='wingdings'>" + str + "</span>") //CHOMPAdd
#define span_pnarrate(str) ("<span class='pnarrate'>" + str + "</span>")
/* Direct communication spans */
// Local pred / prey filter
@@ -150,6 +149,7 @@
#define span_orange(str) ("<span class='orange'>" + str + "</span>")
#define span_blue(str) ("<span class='blue'>" + str + "</span>")
#define span_green(str) ("<span class='green'>" + str + "</span>")
#define span_darkgreen(str) ("<span class='darkgreen'>" + str + "</span>") // Do not use regularly!
#define span_purple(str) ("<span class='purple'>" + str + "</span>")
#define span_yellow(str) ("<span class='yellow'>" + str + "</span>")
#define span_pink(str) ("<span class='pink'>" + str + "</span>")
@@ -158,25 +158,29 @@
#define span_maroon(str) ("<span class='maroon'>" + str + "</span>")
#define span_brown(str) ("<span class='brown'>" + str + "</span>")
#define span_lightpurple(str) ("<span class='lightpurple'>" + str + "</span>")
#define span_darkpink(str) ("<span class='darkpurple'>" + str + "</span>")
#define span_darkpink(str) ("<span class='darkpink'>" + str + "</span>")
#define span_rose(str) ("<span class='rose'>" + str + "</span>")
/* System and Debug */
// System filter
#define span_boldannounce(str) ("<span class='boldannounce'>" + str + "</span>")
#define span_world(str) ("<span class='world'>" + str + "</span>") // Bold system messages, use this for important world messages to make sure players can't filter them!
#define span_filter_system(str) ("<span class='filter_system'>" + str + "</span>") // Plain system filter
#define span_sinister(str) ("<span class='sinister'>" + str + "</span>")
// Unfiltered
#define span_prefix(str) ("<span class='prefix'>" + str + "</span>")
#define span_admin(str) ("<span class='admin'>" + str + "</span>")
#define span_linkOn(str) ("<span class='linkOn'>" + str + "</span>")
#define span_linkOff(str) ("<span class='linkOff'>" + str + "</span>")
#define span_filter_system(str) ("<span class='filter_system'>" + str + "</span>")
#define span_filter_pm(str) ("<span class='filter_pm'>" + str + "</span>")
#define span_filter_pray(str) ("<span class='filter_pray'>" + str + "</span>")
#define span_filter_pray(str) ("<span class='filter_pray'>" + str + "</span>") // (Uses the chat message type directly)
// Admin log filters
#define span_log_message(str) ("<span class='log_message'>" + str + "</span>")
#define span_filter_adminlog(str) ("<span class='filter_adminlog'>" + str + "</span>")
#define span_filter_adminlog(str) ("<span class='filter_adminlog'>" + str + "</span>") // (Uses the chat message type directly)
// Attack log filter
#define span_filter_attacklog(str) ("<span class='filter_attacklog'>" + str + "</span>") // (Uses the chat message type directly)
// Debug filter
#define span_debug_error(str) ("<span class='debug_error'>" + str + "</span>")
@@ -184,7 +188,7 @@
#define span_debug_info(str) ("<span class='debug_info'>" + str + "</span>")
#define span_debug_debug(str) ("<span class='debug_debug'>" + str + "</span>")
#define span_debug_trace(str) ("<span class='debug_trace'>" + str + "</span>")
#define span_filter_debuglogs(str) ("<span class='filter_debuglogs'>" + str + "</span>")
#define span_filter_debuglogs(str) ("<span class='filter_debuglogs'>" + str + "</span>") // (Uses the chat message type directly)
/* Admin only usage */
// Admin pm filter
@@ -192,6 +196,7 @@
#define span_adminhelp(str) ("<span class='adminhelp'>" + str + "</span>")
#define span_admin_pm_notice(str) ("<span class='pm notice'>" + str + "</span>")
#define span_admin_pm_warning(str) ("<span class='pm warning'>" + str + "</span>")
#define span_filter_pm(str) ("<span class='filter_pm'>" + str + "</span>")
// Mentor pm filter
#define span_mentor(str) ("<span class='mentor'>" + str + "</span>")
@@ -217,6 +222,10 @@
#define span_giant(str) "<font size='5'>" + str + "</font>"
#define span_giganteus(str) "<font size='6'>" + str + "</font>"
#define span_massive(str) "<font size='7'>" + str + "</font>"
#define span_narsie(str) "<font size='15'>" + str + "</font>"
#define span_cascade(str) "<span style='font-size:22pt'>" + str + "</span>"
@@ -229,3 +238,6 @@
// Links!
#define span_linkify(str) ("<span class='linkify'>" + str + "</span>")
// Just used downstream
#define span_wingdings(str) ("<span class='wingdings'>" + str + "</span>")

View File

@@ -77,7 +77,7 @@ SUBSYSTEM_DEF(server_maint)
var/cmob = C.mob
if (!isnewplayer(cmob) || !SSticker.queued_players.Find(cmob))
log_access("AFK: [key_name(C)]")
to_chat(C, span_userdanger("You have been inactive for more than [DisplayTimeText(afk_period)] and have been disconnected.</span><br><span class='danger'>You may reconnect via the button in the file menu or by <b><u><a href='byond://winset?command=.reconnect'>clicking here to reconnect</a></u></b>."))
to_chat(C, span_userdanger("You have been inactive for more than [DisplayTimeText(afk_period)] and have been disconnected.") + "<br>" + span_danger("You may reconnect via the button in the file menu or by " + span_bold(span_underline("<a href='byond://winset?command=.reconnect'>clicking here to reconnect</a>")" + "."))
QDEL_IN(C, 1) //to ensure they get our message before getting disconnected
continue*/

View File

@@ -161,14 +161,14 @@ SUBSYSTEM_DEF(statpanels)
examine_update += "[target.examine_icon]&emsp;<font size='5'>[description_holders["name"]]</font>" //The name, written in big letters.
examine_update += "[description_holders["desc"]]" //the default examine text.
if(description_holders["info"])
examine_update += "<font color='#084B8A'><b>[replacetext(description_holders["info"], "\n", "<BR>")]</b></font><br />" //Blue, informative text.
examine_update += "<font color='#084B8A'>" + span_bold("[replacetext(description_holders["info"], "\n", "<BR>")]") + "</font><br />" //Blue, informative text.
if(description_holders["interactions"])
for(var/line in description_holders["interactions"])
examine_update += "<font color='#084B8A'><b>[line]</b></font><br />"
examine_update += "<font color='#084B8A'>" + span_bold("[line]") + "</font><br />"
if(description_holders["fluff"])
examine_update += "<font color='#298A08'><b>[replacetext(description_holders["fluff"], "\n", "<BR>")]</b></font><br />" //Green, fluff-related text.
examine_update += "<font color='#298A08'>" + span_bold("[replacetext(description_holders["fluff"], "\n", "<BR>")]") + "</font><br />" //Green, fluff-related text.
if(description_holders["antag"])
examine_update += "<font color='#8A0808'><b>[description_holders["antag"]]</b></font><br />" //Red, malicious antag-related text
examine_update += "<font color='#8A0808'>" + span_bold("[description_holders["antag"]]") + "</font><br />" //Red, malicious antag-related text
target.stat_panel.send_message("update_examine", examine_update)

View File

@@ -37,7 +37,7 @@
impact_type = /obj/effect/projectile/impact/laser_omni
/obj/item/projectile/beam/crippling_beam/proc/bang(var/mob/living/carbon/M)
to_chat(M, "<span class='danger'>You hear a loud roar.</span>")
to_chat(M, span_danger("You hear a loud roar."))
playsound(src, 'sound/effects/bang.ogg', 50, 1)
var/ear_safety = 0
ear_safety = M.get_ear_protection()
@@ -52,14 +52,14 @@
M.ear_deaf = max(M.ear_deaf,15)
M.deaf_loop.start()
if (M.ear_damage >= 15)
to_chat(M, "<span class='danger'>Your ears start to ring badly!</span>")
to_chat(M, span_danger("Your ears start to ring badly!"))
if (prob(M.ear_damage - 5))
to_chat(M, "<span class='danger'>You can't hear anything!</span>")
to_chat(M, span_danger("You can't hear anything!"))
M.sdisabilities |= DEAF
M.deaf_loop.start()
else
if (M.ear_damage >= 5)
to_chat(M, "<span class='danger'>Your ears start to ring!</span>")
to_chat(M, span_danger("Your ears start to ring!"))
M.update_icons()
/obj/item/projectile/beam/crippling_beam/on_hit(var/atom/target)
@@ -208,8 +208,8 @@
name = "soothe"
desc = "Your body is soothed of pain."
on_created_text = "<span class='notice'>A blue lightning quickly covers your body. Pain quickly fading.</span>"
on_expired_text = "<span class='notice'>The lightning fades, and so too does the ongoing soothing of pain.</span>"
on_created_text = span_notice("A blue lightning quickly covers your body. Pain quickly fading.")
on_expired_text = span_notice("The lightning fades, and so too does the ongoing soothing of pain.")
stacks = MODIFIER_STACK_EXTEND
@@ -221,7 +221,7 @@
var/mob/living/carbon/human/H = holder
H.apply_effect(-20, AGONY)
if(prob(10))
to_chat(H, "<span class='warning'>It feels so comforting!</span>")
to_chat(H, span_warning("It feels so comforting!"))
////////////////////////////
// Purity Construct - Priest - Spells
@@ -256,8 +256,8 @@
name = "holy mending"
desc = "Your body is mending, rejoice!"
on_created_text = "<span class='notice'>A holy light envelops your body as it begins to mend.</span>"
on_expired_text = "<span class='notice'>The cloak of unease dissipates.</span>"
on_created_text = span_notice("A holy light envelops your body as it begins to mend.")
on_expired_text = span_notice("The cloak of unease dissipates.")
stacks = MODIFIER_STACK_EXTEND
@@ -300,7 +300,7 @@
if(iscultist(H))
H.apply_effect(100, AGONY)//it will heal cultists but purity really doesn't like them so causes much pain
if(prob(10))
to_chat(H, "<span class='danger'>It feels as though your body is being torn apart!</span>")
to_chat(H, span_danger("It feels as though your body is being torn apart!"))
L.updatehealth()
/spell/targeted/purity_repair_aura
@@ -329,8 +329,8 @@
name = "aura of repair (purity)"
desc = "You are emitting a field of strange energy, capable of repairing constructs."
on_created_text = "<span class='notice'>You begin emitting an purity repair aura.</span>"
on_expired_text = "<span class='notice'>The purity repair aura fades.</span>"
on_created_text = span_notice("You begin emitting an purity repair aura.")
on_expired_text = span_notice("The purity repair aura fades.")
stacks = MODIFIER_STACK_EXTEND
/datum/modifier/repair_aura_purity/tick()

View File

@@ -38,10 +38,10 @@
if(usr.ckey == santa_ckey)
if(anchored == 0)
anchored = 1
to_chat(usr,"<span class='notice'>You bind the sack, none can make off with it now!</span> ")
to_chat(usr,span_notice("You bind the sack, none can make off with it now!"))
else
anchored = 0
to_chat(usr,"<span class='notice'>You unbind the sack, you can now drag it off. But so can anyone else!</span> ")
to_chat(usr,span_notice("You unbind the sack, you can now drag it off. But so can anyone else!"))
else
to_chat(usr, span_warning("Only Santa can bind and unbind his sack!"))
return
@@ -66,7 +66,7 @@
new /obj/item/a_gift/advanced(src.loc)
for(var/mob/O in view(src, null))
O.show_message("<span class='warning'>Santa pulls out a present for [T.name]! \"Merry Christmas!</span>",1)
O.show_message(span_warning("Santa pulls out a present for [T.name]! \"Merry Christmas!"),1)
var/santa_log = "[T.ckey] playing as [T.name] got a present!"
nice_list_log[++nice_list_log.len] = santa_log

View File

@@ -65,7 +65,7 @@
if(mem_count[type] < 10000) mem_count -= type
world.log << "[display_bytes(accounted_for)] of memory accounted for"
world.log << "Sorting and exporting data"
to_world("<span class='alert'>Memory profiler is exporting data. Expect server to freeze for 10-30 seconds.</span>")
to_world(span_alert("Memory profiler is exporting data. Expect server to freeze for 10-30 seconds."))
sortTim(types_count, /proc/cmp_numeric_desc, TRUE)
var/output = ""
for(var/type in types_count)

View File

@@ -36,7 +36,7 @@
if(!resetmode)
resetmode = 1
to_chat(usr, "Painter reset.")
to_chat(usr, span_infoplain("Painter reset."))
else
var/color_input = input(usr,"","Choose Light Color",setcolor) as color|null
if(color_input)
@@ -47,7 +47,7 @@
var/setcolorB = num2hex(setcolorRGB[3] * dimming, 2)
setnightcolor = addtext("#", setcolorR, setcolorG, setcolorB)
resetmode = 0
to_chat(usr, "Painter color set.")
to_chat(usr, span_infoplain("Painter color set."))
/obj/item/lightpainter/proc/ColorLight(var/obj/machinery/light/target, var/mob/living/U)
@@ -55,11 +55,11 @@
src.add_fingerprint(U)
if(resetmode)
to_chat(U, "<span class='notice'>You reset the color of the [target.get_fitting_name()].</span>")
to_chat(U, span_notice("You reset the color of the [target.get_fitting_name()]."))
target.brightness_color = dcolor
target.brightness_color_ns = dnightcolor
else
to_chat(U, "<span class='notice'>You set the color of the [target.get_fitting_name()].</span>")
to_chat(U, span_notice("You set the color of the [target.get_fitting_name()]."))
target.brightness_color = setcolor
target.brightness_color_ns = setnightcolor

View File

@@ -5,14 +5,14 @@
switch(alert(user, "Do you wish to add access to [src] or remove access from [src]?",,"Add Access","Remove Access", "Cancel"))
if("Add Access")
src.pai.idcard.access |= ID.access
to_chat(user, "<span class='notice'>You add the access from the [W] to [src].</span>")
to_chat(user, span_notice("You add the access from the [W] to [src]."))
return
if("Remove Access")
src.pai.idcard.access = list()
to_chat(user, "<span class='notice'>You remove the access from [src].</span>")
to_chat(user, span_notice("You remove the access from [src]."))
return
if("Cancel")
return
else if (istype(W, /obj/item/card/id) && src.pai.idaccessible == 0)
to_chat(user, "<span class='notice'>[src] is not accepting access modifications at this time.</span>")
to_chat(user, span_notice("[src] is not accepting access modifications at this time."))
return

View File

@@ -15,7 +15,7 @@
/obj/item/implant/reagent_generator/egg/post_implant(mob/living/carbon/source)
START_PROCESSING(SSobj, src)
to_chat(source, "<span class='notice'>You implant [source] with \the [src].</span>")
to_chat(source, span_notice("You implant [source] with \the [src]."))
add_verb(source,assigned_proc) //CHOMPEdit TGPanel
add_verb(source,/mob/living/carbon/human/proc/toggle_cascade) //CHOMPEdit TGPanel
return 1
@@ -45,15 +45,15 @@
if(rimplant.reagents.total_volume >= rimplant.usable_volume*0.75)
if(usr != src)
to_chat(usr, "<span class='notice'>[src] is very full on eggs, squeezing them now may result in a cascade!</span>")
to_chat(src, "<span class='notice'>[pick(rimplant.full_message)]</span>")
to_chat(usr, span_notice("[src] is very full on eggs, squeezing them now may result in a cascade!"))
to_chat(src, span_notice("[pick(rimplant.full_message)]"))
if(rimplant.reagents.total_volume <= rimplant.transfer_amount)
if(usr != src)
to_chat(usr, "<span class='notice'>It seems that [src] is out of eggs!</span>")
to_chat(src, "<span class='notice'>[pick(rimplant.empty_message)]</span>")
to_chat(usr, span_notice("It seems that [src] is out of eggs!"))
to_chat(src, span_notice("[pick(rimplant.empty_message)]"))
return
visible_message("<span class='danger'>[usr] starts squeezing [src]'s lower body firmly...</span>")
visible_message(span_danger("[usr] starts squeezing [src]'s lower body firmly..."))
if (rimplant && do_after(usr,120,src))
if(src.Adjacent(usr))
var/egg = rimplant.eggtype
@@ -66,18 +66,18 @@
var/emote = rimplant.emote_descriptor[index]
var/verb_desc = rimplant.verb_descriptor[index]
var/self_verb_desc = rimplant.self_verb_descriptor[index]
visible_message("<span class='notice'>[usr] [verb_desc] [emote]</span>",
"<span class='notice'>You [self_verb_desc] [emote]</span>")
visible_message(span_notice("[usr] [verb_desc] [emote]"),
span_notice("You [self_verb_desc] [emote]"))
else
visible_message("<span class='notice'>[src] [pick(rimplant.short_emote_descriptor)] an egg.</span>",
"<span class='notice'>You [pick(rimplant.self_emote_descriptor)] an egg.</span>")
visible_message(span_notice("[src] [pick(rimplant.short_emote_descriptor)] an egg."),
span_notice("You [pick(rimplant.self_emote_descriptor)] an egg."))
if(prob(15))
visible_message("<span class='notice'>[src] [pick(rimplant.random_emote)].</span>")
visible_message(span_notice("[src] [pick(rimplant.random_emote)]."))
rimplant.reagents.remove_any(rimplant.transfer_amount)
if(rimplant.cascade)
to_chat(src, "<span class='notice'>You feel your legs quake as your muscles fail to stand strong!</span>")
to_chat(src, span_notice("You feel your legs quake as your muscles fail to stand strong!"))
while(rimplant.reagents.total_volume >= rimplant.transfer_amount)
if(do_after(src,30))
src.SetStunned(3)
@@ -86,7 +86,7 @@
new egg(get_turf(src))
rimplant.reagents.remove_any(rimplant.transfer_amount)
if(prob(25))
visible_message("<span class='notice'>[src] [pick(rimplant.random_emote)].</span>")
visible_message(span_notice("[src] [pick(rimplant.random_emote)]."))
else
return
/mob/living/carbon/human/proc/toggle_cascade()
@@ -104,10 +104,10 @@
if(rimplant.cascade)
rimplant.cascade = 0
to_chat(src, "<span class='notice'>You toggle cascading off</span>")
to_chat(src, span_notice("You toggle cascading off"))
else
rimplant.cascade = 1
to_chat(src, "<span class='notice'>You toggle cascading on</span>")
to_chat(src, span_notice("You toggle cascading on"))
/obj/item/implant/reagent_generator/egg/slow

View File

@@ -12,24 +12,24 @@
if(istype(thing, /obj/item/stack/rods) && construction_stage == 1)
var/obj/item/stack/rods = thing
if(rods.get_amount() < 4)
to_chat(user, "<span class='warning'>You need at least 4 rods for this task.</span>")
to_chat(user, span_warning("You need at least 4 rods for this task."))
return
rods.use(4)
user.visible_message("<span class='notice'>\The [user] puts some rods together in \the [src] hole.</span>")
user.visible_message(span_notice("\The [user] puts some rods together in \the [src] hole."))
increment_construction_stage()
return
if(istype(thing, /obj/item/weldingtool) && construction_stage == 2)
var/obj/item/weldingtool/welder = thing
if(!welder.isOn())
to_chat(user, "<span class='warning'>Turn it on first!</span>")
to_chat(user, span_warning("Turn it on first!"))
return
if(!welder.remove_fuel(0,user))
to_chat(user, "<span class='warning'>You need more fuel!</span>")
to_chat(user, span_warning("You need more fuel!"))
return
user.visible_message("<span class='notice'>\The [user] weld the rods to the head \the [src] together with \the [thing].</span>")
user.visible_message(span_notice("\The [user] weld the rods to the head \the [src] together with \the [thing]."))
playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
spawn(5)
increment_construction_stage()
@@ -38,10 +38,10 @@
if(istype(thing, /obj/item/stack/rods) && construction_stage == 3)
var/obj/item/stack/rods = thing
if(rods.get_amount() < 4)
to_chat(user, "<span class='warning'>You need at least 4 rods for this task.</span>")
to_chat(user, span_warning("You need at least 4 rods for this task."))
return
rods.use(4)
user.visible_message("<span class='notice'>\The [user] jams \the [thing]'s into \the [src].</span>")
user.visible_message(span_notice("\The [user] jams \the [thing]'s into \the [src]."))
increment_construction_stage()
return
@@ -49,14 +49,14 @@
var/obj/item/weldingtool/welder = thing
if(!welder.isOn())
to_chat(user, "<span class='warning'>Turn it on first!</span>")
to_chat(user, span_warning("Turn it on first!"))
return
if(!welder.remove_fuel(0,user))
to_chat(user, "<span class='warning'>You need more fuel!</span>")
to_chat(user, span_warning("You need more fuel!"))
return
user.visible_message("<span class='notice'>\The [user] welds the rods together of the handle into place, forming a long irregular shaft.</span>")
user.visible_message(span_notice("\The [user] welds the rods together of the handle into place, forming a long irregular shaft."))
playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
increment_construction_stage()
@@ -67,29 +67,29 @@
var/material/reinforcing_with = reinforcing.get_material()
if(reinforcing_with.name == DEFAULT_WALL_MATERIAL) // Steel
if(reinforcing.get_amount() < 3)
to_chat(user, "<span class='warning'>You need at least 3 [reinforcing.singular_name]\s for this task.</span>")
to_chat(user, span_warning("You need at least 3 [reinforcing.singular_name]\s for this task."))
return
reinforcing.use(3)
user.visible_message("<span class='notice'>\The [user] shapes some metal sheets around the rods.</span>")
user.visible_message(span_notice("\The [user] shapes some metal sheets around the rods."))
increment_construction_stage()
return
if(istype(thing, /obj/item/weldingtool) && construction_stage == 6)
var/obj/item/weldingtool/welder = thing
if(!welder.isOn())
to_chat(user, "<span class='warning'>Turn it on first!</span>")
to_chat(user, span_warning("Turn it on first!"))
return
if(!welder.remove_fuel(10,user))
to_chat(user, "<span class='warning'>You need more fuel!</span>")
to_chat(user, span_warning("You need more fuel!"))
return
user.visible_message("<span class='notice'>\The [user] heats up the metal sheets until it glows red.</span>")
user.visible_message(span_notice("\The [user] heats up the metal sheets until it glows red."))
playsound(src.loc, 'sound/items/Welder2.ogg', 100, 1)
increment_construction_stage()
return
if(istype(thing, /obj/item/tool/wrench) && construction_stage == 7)
user.visible_message("<span class='notice'>\The [user] whacks at \the [src] like a caveman, shaping the metal with \the [thing] into a rough handle, finishing it off.</span>")
user.visible_message(span_notice("\The [user] whacks at \the [src] like a caveman, shaping the metal with \the [thing] into a rough handle, finishing it off."))
increment_construction_stage()
playsound(src.loc, 'sound/weapons/smash5.ogg', 100, 1)
var/obj/item/material/twohanded/sledgehammer/sledge = new(loc)
@@ -115,10 +115,10 @@
. = ..(user,2)
if(.)
switch(construction_stage)
if(2) to_chat(user, "<span class='notice'>It has a bunch of rods sticking out of the hole.</span>")
if(3) to_chat(user, "<span class='notice'>It has a short rough metal shaft sticking to it, quite short.</span>")
if(4) to_chat(user, "<span class='notice'>It has a bunch of rods jammed into the shaft/</span>")
if(4) to_chat(user, "<span class='notice'>It has a pretty long rough metal shaft sticking out of it, it look hard to grab.</span>")
if(5) to_chat(user, "<span class='notice'>It has a few sheets bent in half across the handle.</span>")
if(6) to_chat(user, "<span class='notice'>It has red hot, pliable looking metal sheets spread over the handle. What a sloppy job.</span>")
if(7) to_chat(user, "<span class='notice'>It has a roughly shaped metal handle.</span>")
if(2) to_chat(user, span_notice("It has a bunch of rods sticking out of the hole."))
if(3) to_chat(user, span_notice("It has a short rough metal shaft sticking to it, quite short."))
if(4) to_chat(user, span_notice("It has a bunch of rods jammed into the shaft/"))
if(4) to_chat(user, span_notice("It has a pretty long rough metal shaft sticking out of it, it look hard to grab."))
if(5) to_chat(user, span_notice("It has a few sheets bent in half across the handle."))
if(6) to_chat(user, span_notice("It has red hot, pliable looking metal sheets spread over the handle. What a sloppy job."))
if(7) to_chat(user, span_notice("It has a roughly shaped metal handle."))

View File

@@ -121,31 +121,31 @@
if(!proximity)
return
if(!ready)
to_chat(user, "<span class='notice'>The Task Manager is still recharging!</span>")
to_chat(user, span_notice("The Task Manager is still recharging!"))
return
if(mode == 0)
to_chat(user, "<span class='notice'>You must choose a department first!</span>")
to_chat(user, span_notice("You must choose a department first!"))
return
if((target.type in scannables) && scancount < scanreq && !(target.type in scanned))
scancount = scancount + 1
scanned.Add(target.type)
var/scansleft = scanreq - scancount
playsound(src, 'sound/machines/beep.ogg', 50)
to_chat(user, "<span class='notice'>You must scan [scansleft] more department objects!</span>")
to_chat(user, span_notice("You must scan [scansleft] more department objects!"))
if (scancount == scanreq)
formatx1 = rand(1,5)
formatx2 = rand(0,80)
formatx3 = rand(1,6)
format = "Greetings supervisors,<BR> I have detected [formatx1] infractions in this department alone.<BR> Scans indicate that this department is functioning at [formatx2]% capacity.<BR> Additional supplies are requested, priority level [formatx3]<BR> I await your delivery"
to_chat(user, "<span class='notice'>Scans complete! [formatx1] infractions detected, department at [formatx2]% capacity, alert level [formatx3]</span>")
to_chat(user, "<span class='notice'>Please write down the following form on a paper, and replace all X's with the appopriate number. Do NOT change anything but the X's</span>")
to_chat(user, "<span class='notice'>Greetings supervisors,<BR> I have detected X infractions in this department alone.<BR> Scans indicate that this department is functioning at X% capacity.<BR> Additional supplies are requested, priority level X<BR> I await your delivery</span>")
to_chat(user, span_notice("Scans complete! [formatx1] infractions detected, department at [formatx2]% capacity, alert level [formatx3]"))
to_chat(user, span_notice("Please write down the following form on a paper, and replace all X's with the appopriate number. Do NOT change anything but the X's"))
to_chat(user, span_notice("Greetings supervisors,<BR> I have detected X infractions in this department alone.<BR> Scans indicate that this department is functioning at X% capacity.<BR> Additional supplies are requested, priority level X<BR> I await your delivery"))
return
if(istype(target,/obj/item/paper) && scancount == scanreq)
scan_paper(user,target)
return
else
to_chat(user, "<span class='notice'>The Task Manager can't scan this!</span>")
to_chat(user, span_notice("The Task Manager can't scan this!"))
return
/obj/item/taskmanager/proc/scan_paper(user,paper)
@@ -155,16 +155,16 @@
scancount = 0
scanned = list()
del(P)
to_chat(user, "<span class='notice'>Format accepted, printing voucher!</span>")
to_chat(user, span_notice("Format accepted, printing voucher!"))
ready = 0
spawn(300 SECONDS)
ready = 1
return
if(!findtext(P.info,format))
to_chat(user, "<span class='notice'>Incorrect format!</span>")
to_chat(user, span_notice("Incorrect format!"))
return
else
to_chat(user, "<span class='notice'>If you are reading this, something has gone horribly wrong!</span>")
to_chat(user, span_notice("If you are reading this, something has gone horribly wrong!"))
return
/obj/item/taskmanager/proc/deploy_voucher(var/turf/T)

View File

@@ -47,9 +47,9 @@
. += "It is set to [rotation_angle] degrees, and the rotation is [can_rotate ? "unlocked" : "locked"]."
if(!admin)
if(can_rotate)
. += "<span class='notice'>Alt-click to adjust its direction.</span>"
. += span_notice("Alt-click to adjust its direction.")
else
. += "<span class='notice'>Use screwdriver to unlock the rotation.</span>"
. += span_notice("Use screwdriver to unlock the rotation.")
/obj/structure/reflector/proc/Fire()
UNTIL(!bullet_act_in_progress)
@@ -105,16 +105,16 @@
if(W.is_screwdriver())
can_rotate = !can_rotate
to_chat(user, "<span class='notice'>You [can_rotate ? "unlock" : "lock"] [src]'s rotation.</span>")
to_chat(user, span_notice("You [can_rotate ? "unlock" : "lock"] [src]'s rotation."))
playsound(W, W.usesound, 50, 1)
return
if(W.is_wrench() && can_decon)
if(anchored)
to_chat(user, "<span class='warning'>Unweld [src] from the floor first!</span>")
to_chat(user, span_warning("Unweld [src] from the floor first!"))
return
user.visible_message("<span class='notice'>[user] starts to dismantle [src].</span>", "<span class='notice'>You start to dismantle [src]...</span>")
to_chat(user, "<span class='notice'>You dismantle [src].</span>")
user.visible_message(span_notice("[user] starts to dismantle [src]."), span_notice("You start to dismantle [src]..."))
to_chat(user, span_notice("You dismantle [src]."))
new framebuildstacktype(drop_location(), framebuildstackamount)
if(buildstackamount)
new buildstacktype(drop_location(), buildstackamount)
@@ -125,20 +125,20 @@
if(!I.remove_fuel(1,user))
return
user.visible_message("<span class='notice'>[user] starts to weld [src] to the floor.</span>",
"<span class='notice'>You start to weld [src] to the floor...</span>",
"<span class='hear'>You hear welding.</span>")
user.visible_message(span_notice("[user] starts to weld [src] to the floor."),
span_notice("You start to weld [src] to the floor..."),
span_hear("You hear welding."))
anchored = TRUE
to_chat(user, "<span class='notice'>You weld [src] to the floor.</span>")
to_chat(user, span_notice("You weld [src] to the floor."))
else
if(!I.remove_fuel(1,user))
return
user.visible_message("<span class='notice'>[user] starts to cut [src] free from the floor.</span>",
"<span class='notice'>You start to cut [src] free from the floor...</span>",
"<span class='hear'>You hear welding.</span>")
user.visible_message(span_notice("[user] starts to cut [src] free from the floor."),
span_notice("You start to cut [src] free from the floor..."),
span_hear("You hear welding."))
anchored = FALSE
to_chat(user, "<span class='notice'>You cut [src] free from the floor.</span>")
to_chat(user, span_notice("You cut [src] free from the floor."))
//Finishing the frame
else if(istype(W, /obj/item/stack/material))
@@ -150,14 +150,14 @@
new /obj/structure/reflector/single(drop_location())
qdel(src)
else
to_chat(user, "<span class='warning'>You need five sheets of glass to create a reflector!</span>")
to_chat(user, span_warning("You need five sheets of glass to create a reflector!"))
return
if(istype(S, /obj/item/stack/material/glass/reinforced))
if(S.use(10))
new /obj/structure/reflector/double(drop_location())
qdel(src)
else
to_chat(user, "<span class='warning'>You need ten sheets of reinforced glass to create a double reflector!</span>")
to_chat(user, span_warning("You need ten sheets of reinforced glass to create a double reflector!"))
return
if(istype(S, /obj/item/stack/material/diamond))
if(S.use(1))
@@ -168,7 +168,7 @@
/obj/structure/reflector/proc/rotate(mob/user)
if (!can_rotate || admin)
to_chat(user, "<span class='warning'>The rotation is locked!</span>")
to_chat(user, span_warning("The rotation is locked!"))
return FALSE
var/new_angle = input(user, "Input a new angle for primary reflection face.", "Reflector Angle", rotation_angle) as null|num
if(!CanUseTopic(user))

View File

@@ -12,15 +12,15 @@
return
if(!istype(H))
to_chat(usr,"<span class='warning'>That mob type ([H.type]) doesn't support NIFs, sorry.</span>")
to_chat(usr,span_warning("That mob type ([H.type]) doesn't support NIFs, sorry."))
return
if(!H.get_organ(BP_HEAD))
to_chat(usr,"<span class='warning'>Target is unsuitable.</span>")
to_chat(usr,span_warning("Target is unsuitable."))
return
if(H.nif)
to_chat(usr,"<span class='warning'>Target already has a NIF.</span>")
to_chat(usr,span_warning("Target already has a NIF."))
return
if(H.species.flags & NO_SCAN)

View File

@@ -10,7 +10,7 @@
info = "They don't make you kill people. There, we said it. Now get back to work!"
/obj/item/paper/pamphlet/gateway
info = "<b>Welcome to the Nanotrasen Gateway project...</b><br>\
info = span_bold("Welcome to the Nanotrasen Gateway project...") + "<br>\
Congratulations! If you're reading this, you and your superiors have decided that you're \
ready to commit to a life spent colonising the rolling hills of far away worlds. You \
must be ready for a lifetime of adventure, a little bit of hard work, and an award \
@@ -20,7 +20,7 @@
been fully scanned by a Nanotrasen expeditionary team, and are certified to be 100% safe. \
We've even left a case of space beer along with the basic materials you'll need to expand \
Nanotrasen's operational area and start your new life.<br><br>\
<b>Gateway Operation Basics</b><br>\
" + span_bold("Gateway Operation Basics") + "<br>\
All Nanotrasen approved Gateways operate on the same basic principals. They operate off \
area equipment power as you would expect, and without this supply, it cannot safely function, \
causinng it to reject all attempts at operation.<br><br>\
@@ -29,14 +29,14 @@
interface will give you an estimate accurate to the minute. Power loss will not interrupt the \
searching process. Influenza will not interrupt the searching process. Temporal anomalies \
may cause the estimate to be inaccurate, but will not interrupt the searching process.<br><br> \
<b>Life On The Other Side</b><br>\
" + span_bold("Life On The Other Side") + "<br>\
Once you have traversed the Gateway, you may experience some disorientation. Do not panic. \
This is a normal side effect of travelling vast distances in a short period of time. You should \
survey the immediate area, and attempt to locate your complimentary case of space beer. Our \
expeditionary teams have ensured the complete safety of all away locations, but in a small \
number of cases, the Gateway they have established may not be immediately obvious. \
Do not panic if you cannot locate the return Gateway. Begin colonisation of the destination. \
<br><br><b>A New World</b><br>\
<br><br>" + span_bold("A New World") + "<br>\
As a participant in the Nanotrasen Gateway Project, you will be on the frontiers of space. \
Though complete safety is assured, participants are advised to prepare for inhospitable \
environs."

View File

@@ -1234,7 +1234,7 @@
acronym = "SFI"
desc = "Founded in 2437 by Astara Junea, StarFlight Incorporated is now one of the biggest passenger liner businesses in human-occupied space and has even begun breaking into alien markets - all despite a rocky start, and several high-profile ship disappearances and shipjackings. With space traffic at an all-time high, it's a depressing reality that SFI's incidents are just a tiny drop in the bucket compared to everything else going on. \
<br><br> \
SFI's fleet is, somewhat endearingly, named after various species of bird, though the designation <i>Pigeon</i> was removed from the lineup after a particularly unusual chain of events involving a business liner. For reasons that have continued to remain unclear since the company's foundation, SFI vessels are permitted to use the same high-level identifier pattern as governmental vessels."
SFI's fleet is, somewhat endearingly, named after various species of bird, though the designation " + span_italics("Pigeon") + " was removed from the lineup after a particularly unusual chain of events involving a business liner. For reasons that have continued to remain unclear since the company's foundation, SFI vessels are permitted to use the same high-level identifier pattern as governmental vessels."
history = ""
work = "luxury, business, and economy passenger flights"
headquarters = "Spin Aerostat, Jupiter"
@@ -2608,7 +2608,7 @@
acronym = "SAARE"
desc = "SAARE consistently have the worst reputation of any paramilitary group. This is because they specialize in deniability and secrecy. Although publically they work in asset recovery, they have a substantiated reputation for info-theft and piracy that has lead to them butting heads with the law on more than one occasion. Nonetheless, they are an invaluable part of the Solar economy, and other TSCs and small colonial governments keep them in business.\
<br><br>\
For the purposes of plausible deniability, SAARE designates their ships using a series of rotating identifiers, with ships on a specific operation or in a particular area all using the same initial designation (<i>e.g.</i> 'Sledgehammer') and having a different numerical identifier, with the most important ships involved bearing a unique additional codename (such as 'Actual' for Command \& Control ships). As ships are shuffled in and out of operating areas, it can be difficult to pin down exactly which ship in SAARE's fleet was responsible for which act. SAARE's misdirection is multilayered, including elements such as extensive use of repainting, false IFFs, bribes, forged documents, intimidation, camouflage, and all manner of other underhanded tactics."
For the purposes of plausible deniability, SAARE designates their ships using a series of rotating identifiers, with ships on a specific operation or in a particular area all using the same initial designation (" + span_italics("e.g.") + " 'Sledgehammer') and having a different numerical identifier, with the most important ships involved bearing a unique additional codename (such as 'Actual' for Command \& Control ships). As ships are shuffled in and out of operating areas, it can be difficult to pin down exactly which ship in SAARE's fleet was responsible for which act. SAARE's misdirection is multilayered, including elements such as extensive use of repainting, false IFFs, bribes, forged documents, intimidation, camouflage, and all manner of other underhanded tactics."
history = ""
work = "mercenary contractors"
headquarters = ""

View File

@@ -196,18 +196,18 @@
to_chat(usr, span_warning("The cake hums away quietly as the singulo powered goodness slowly recovers the large amount of lost mass, best to give it a moment before cutting another slice."))
return
else
to_chat(user, "<span class='notice'>You cut a slice of the cake. The slice looks like the cake was just baked, and you can see before your eyes as the spot where you cut the slice slowly regenerates!</span>")
to_chat(user, span_notice("You cut a slice of the cake. The slice looks like the cake was just baked, and you can see before your eyes as the spot where you cut the slice slowly regenerates!"))
slices = slices - 1
new /obj/item/reagent_containers/food/snacks/thecakeslice(src.loc)
else
to_chat(user, "<span class='notice'>It looks so good... But it feels so wrong to eat it before it's finished...</span>")
to_chat(user, span_notice("It looks so good... But it feels so wrong to eat it before it's finished..."))
return
if(istype(W,/obj/item/thecake_layer))
var/obj/item/thecake_layer/C = W
if(C.layer_stage == 5)
for(var/mob/O in view(src, null))
O.show_message("<span class='warning'>It has been done! \The Infinity Cake has been assembled!</span>",1)
O.show_message(span_warning("It has been done! \The Infinity Cake has been assembled!"),1)
qdel(W)
stage++
desc = desclist[stage]
@@ -496,7 +496,7 @@
new /obj/item/reagent_containers/food/snacks/chaoscakeslice(src.loc)
else
to_chat(user, "<span class='notice'>It looks so good... But it feels so wrong to eat it before it's finished...</span>")
to_chat(user, span_notice("It looks so good... But it feels so wrong to eat it before it's finished..."))
return
if(istype(W,/obj/item/chaoscake_layer))
var/obj/item/chaoscake_layer/C = W
@@ -542,11 +542,11 @@
/obj/structure/theonepizza/attackby(var/obj/item/W, var/mob/living/user)
if(istype(W,/obj/item/material/knife))
user.visible_message("<b>\The [user]</b> starts to slowly cut through The One Pizza.", "<span class='notice'>You start to slowly cut through The One Pizza.</span>")
user.visible_message(span_bold("\The [user]") + " starts to slowly cut through The One Pizza.", span_notice("You start to slowly cut through The One Pizza."))
if(do_after(user, slicetime, exclusive = TASK_USER_EXCLUSIVE))
if(!src)
return // We got disappeared already
user.visible_message("<b>\The [user]</b> successfully cuts The One Pizza.", "<span class='notice'>You successfully cut The One Pizza.</span>")
user.visible_message(span_infoplain(span_bold("\The [user]") + " successfully cuts The One Pizza."), span_notice("You successfully cut The One Pizza."))
for(var/slicetype in slicelist)
new slicetype(src.loc)
qdel(src)

View File

@@ -28,9 +28,9 @@
/datum/lore/codex/page/borealis_majoris/add_content()
name = "Borealis Majoris (Arctic/Tundra)"
keywords += list("Borealis Majoris")
data = "Situated 10 lightseconds from the system's primary, Borealis Majoris is - in the politest terms - a frozen hellhole. With surface temperatures <i>peaking</i> at a bone-chilling -30 celsius (-22 fahrenheit) but dropping as low as -80 C (-112 F) if not lower on the planet's dark side, the planet's primary redeeming features include its abundance of oxygen and phoron. Its atmosphere hovers between 90 and 110 kPa, and consists of 72% O2, 2% CO2, and 24% N2, with other trace gases. Due to the low temperatures, the vast majority of the planet's phoron is found crystallized underground, or within the flora and fauna, the substance presumably making its way into the wildlife via what little hardy vegetation clings to the planet's surface, mostly mosses and lichens.\
data = "Situated 10 lightseconds from the system's primary, Borealis Majoris is - in the politest terms - a frozen hellhole. With surface temperatures " + span_italics("peaking") + " at a bone-chilling -30 celsius (-22 fahrenheit) but dropping as low as -80 C (-112 F) if not lower on the planet's dark side, the planet's primary redeeming features include its abundance of oxygen and phoron. Its atmosphere hovers between 90 and 110 kPa, and consists of 72% O2, 2% CO2, and 24% N2, with other trace gases. Due to the low temperatures, the vast majority of the planet's phoron is found crystallized underground, or within the flora and fauna, the substance presumably making its way into the wildlife via what little hardy vegetation clings to the planet's surface, mostly mosses and lichens.\
<br><br>\
Despite the fact that Borealis Majoris is near-constantly lashed by swirling blizzards, howling winds, vicious hailstorms, and icy rain, it is nonetheless host to a handful of colonies and outposts, the largest and most prosperous of which is the NT-operated NSC <i>Cryogaia</i>."
Despite the fact that Borealis Majoris is near-constantly lashed by swirling blizzards, howling winds, vicious hailstorms, and icy rain, it is nonetheless host to a handful of colonies and outposts, the largest and most prosperous of which is the NT-operated NSC " + span_italics("Cryogaia") + "."
/datum/lore/codex/page/borealis_majoris_beta/add_content()
name = "Borealis Majoris Beta (Barren Moon)"
@@ -40,14 +40,14 @@
/datum/lore/codex/page/nsc_cryogaia/add_content()
name = "NSC Cryogaia (NT Phoron Mining & Research Installation)"
keywords += list("Cryogaia")
data = "The terrestrial half of NT's operations on Borealis Majoris, the NSC <i>Cryogaia</i> Outpost handles the acquisition and low-level refining of phoron extracted from the surrounding planetary environment, as well as extensive research into the material given its abundance. Whilst it's a relatively small operation in the grand scheme of things and is constantly under threat from all manner of angry wildlife, the sheer volume of phoron available makes the installation extremely profitable; enough for NT to maintain a dedicated Asset Response Annex aboard the NCS <i>Serenity</i>, ready to deploy at a moment's notice should a major threat appear.\
data = "The terrestrial half of NT's operations on Borealis Majoris, the NSC " + span_italics("Cryogaia") + " Outpost handles the acquisition and low-level refining of phoron extracted from the surrounding planetary environment, as well as extensive research into the material given its abundance. Whilst it's a relatively small operation in the grand scheme of things and is constantly under threat from all manner of angry wildlife, the sheer volume of phoron available makes the installation extremely profitable; enough for NT to maintain a dedicated Asset Response Annex aboard the NCS " + span_italics("Serenity") + ", ready to deploy at a moment's notice should a major threat appear.\
<br><br>\
The half-subterranean <i>Cryogaia</i> installation is considered a work in progress, and undergoes renovations and updates on a relatively frequent but highly erratic basis. Notably, it is built on one of the few natural hot springs available on the planet, though NT has opted to use another of its Supermatter Research-Reactors backed up by solar arrays, in lieu of a more conventional geothermal power plant for the time being."
The half-subterranean " + span_italics("Cryogaia") + " installation is considered a work in progress, and undergoes renovations and updates on a relatively frequent but highly erratic basis. Notably, it is built on one of the few natural hot springs available on the planet, though NT has opted to use another of its Supermatter Research-Reactors backed up by solar arrays, in lieu of a more conventional geothermal power plant for the time being."
/datum/lore/codex/page/ncs_serenity/add_content()
name = "NCS Serenity (NT Phoron Refinery & Refuelling Station)"
keywords += list("Serenity")
data = "The orbital half of NT's operations on Borealis Majoris, the NCS <i>Serenity</i> installation is responsible for the vast majority of phoron refinery efforts, either by processing purified crystals or cut lumber shipped up from NCS <i>Cryogaia</i>. It also includes crew relief facilities for Cryogaia's personnel, and handles the vast majority of interplanetary traffic in the system. NT does brisk business selling phoron-based fuel directly to passing vessels, but this accounts for only a small fraction of the full profits from their operations in the system."
data = "The orbital half of NT's operations on Borealis Majoris, the NCS " + span_italics("Serenity") + " installation is responsible for the vast majority of phoron refinery efforts, either by processing purified crystals or cut lumber shipped up from NCS " + span_italics("Cryogaia") + ". It also includes crew relief facilities for Cryogaia's personnel, and handles the vast majority of interplanetary traffic in the system. NT does brisk business selling phoron-based fuel directly to passing vessels, but this accounts for only a small fraction of the full profits from their operations in the system."
/datum/lore/codex/page/borealis_three_alpha/add_content()
name = "Borealis 3 Alpha (No Data)"

View File

@@ -20,7 +20,7 @@
// We're a bird.
/datum/lore/codex/page/about_lore
name = "About"
data = "<i>The Traveler's Guide to Human Space</i> is a series of books detailing a specific location inside a location colonized by humans. \
data = span_italics("The Traveler's Guide to Human Space") + " is a series of books detailing a specific location inside a location colonized by humans. \
This book is for the Borealis System, and was written by Eshi Tache, an explorer whom has visited many star systems, and \
has personally visited and seen many of the locations described inside this book. Two other people have also assisted in the creation of this \
book, being Qooqr Volquum, whom is an expert on synthetics, and Damian Fischer, a historian. Together, they provide valuable information and facts that lie outside of Tache's expertise.\
@@ -29,5 +29,5 @@
to an immigrant from another system, or even from outside human space, and anyone inbetween. The publisher wishes to note that any opinions expressed \
in this text does not reflect the opinions of the publisher, and are instead the author's.\
<br><br>\
Eshi Tache has also written other <i>The Traveler's Guide</i> books, including <i>Sol Edition</i>, <i>Tau Ceti Edition</i>, <i>Alpha Centauri Edition</i>, <i>Vir Edition</i>, <i>Virgo Edition</i>, and more, \
Eshi Tache has also written other " + span_italics("The Traveler's Guide") + " books, including " + span_italics("Sol Edition") + ", " + span_italics("Tau Ceti Edition") + ", " + span_italics("Alpha Centauri Edition") + ", " + span_italics("Vir Edition") + ", " + span_italics("Virgo Edition") + ", and more, \
which you can find in your local book store, library, or e-reader device."

View File

@@ -1,6 +1,6 @@
/datum/lore/codex/category/political_factions
name = "Political Factions"
data = "<i>For some weird reason, this section is blank. This looks like a publishing error.</i>"
data = span_italics("For some weird reason, this section is blank. This looks like a publishing error.")
/*data = "Those wishing to immigrate to somewhere in Borealis, or otherwise plan to stay for a long time should get to know human politics. \
There are presently three major political parties that exist throughout USG space, being the Icarus Front, the Shadow Coalition, and \
the Sol Economic Organization, and several smaller ones which tend to align themselves among one of the major parties. In the Borealis system, the \
@@ -12,4 +12,4 @@
/datum/lore/codex/page/blank/add_content()
name = "Blank Page"
keywords += list("Blank")
data = "<i>For some weird reason, this section is blank. This looks like a publishing error.</i>" // ToDo: A lot.
data = span_italics("For some weird reason, this section is blank. This looks like a publishing error.") // ToDo: A lot.

View File

@@ -198,27 +198,27 @@
keywords += list("Packs")
data = "There are several packs you may come across;<small>\
<br><br>\
<b>Eshi</b><br>\
" + span_bold("Eshi") + "<br>\
A large, old, politically neutral pack heavily involved in efforts to get Teshari into space. Probably the most \
common pack to see outside of a [quick_link("Skrell")] colony, and probably the most numerous Teshari pack outside of Sirisai and associated colonies.\
<br><br>\
<b>Nasemari</b><br>\
" + span_bold("Nasemari") + "<br>\
A very small pack. Generally focused around supporting and providing for packs on the homeworlds, they have devoted \
themselves to training as technicians and engineers in order to obtain skills and training to take back to Sirisai. \
The pack is only around thirty people in size, but owns and maintains a nuclear power plant.\
<br><br>\
<b>Schasaraca</b><br>\
" + span_bold("Schasaraca") + "<br>\
One of the more Skrell-devoted and integrated packs. They tend to be rather sycophantic towards the Skrell and work as \
scientists and field researchers on a variety of projects, generally biology or technical research. They have a reputation \
for working as spies and informants for the Skrell governments amongst other Teshari.\
<br><br>\
<b>Ceea</b><br>\
" + span_bold("Ceea") + "<br>\
An isolationist pack from the northern tundra of Sirisai; generally known as disliking the Skrell. Small to average in size; \
only around sixty members. Their regional culture is built around the study culture and anthropology, as well as archaeology, \
originally for the purposes of recovering history and materials \"lost\" due to Skrell interference. It would be very rare to \
see them on your travels, however they are listed here for the sake of completeness.\
<br><br>\
<b>Resca</b><br>\
" + span_bold("Resca") + "<br>\
A pack that sold off its small native territory for the chance to get into space. Very musically inclined. They tend towards medical professions.</small>"
/datum/lore/codex/page/teshari_physical/add_content()
@@ -255,7 +255,7 @@
name = "Physical Structure of a Positronic Brain"
keywords = list("Physical Posibrain", "Physical Positronic")
data = "A positronic brain is a cube of complex metal alloy between two and six inches to a side. They usually weigh just under ten kilograms and are \
<b>very fragile</b> when exposed to the stresses of heat or cold, as well as physical trauma. The exterior surface is chased with a network of grooves, forming \
" + span_bold("very fragile") + " when exposed to the stresses of heat or cold, as well as physical trauma. The exterior surface is chased with a network of grooves, forming \
a maze of geometric patterns right down to the molecular level, and the interior is hollow; complex particle generators and densely packed computational \
arrays form the basis of a self-computing neural network, complex and somewhat poorly understood. Most modern positronic brains are equipped with \
standardized I/O ports, and all have some interface for imprinting."
@@ -391,7 +391,7 @@
/datum/lore/codex/page/class_aa
name = "AA Class"
data = "AA-class drones <b>do not yet exist</b>. Hypothetically, they are equal to living in every respect, with psychology that would not be abnormal in a baseline \
data = "AA-class drones " + span_bold("do not yet exist") + ". Hypothetically, they are equal to living in every respect, with psychology that would not be abnormal in a baseline \
human. The type of AA-class drone most frequently discussed is a hypothetical digitized consciousness of a human, a human brain that is somehow translated into \
software. Some argue that a small fraction of the A-class drones would more properly be considered AA, but as of yet no action has been taken. Some Mercurials \
will jokingly refer to themselves or other organics and positronics as AAs. Research into brain uploading is heavily regulated and generally illegal."

View File

@@ -58,13 +58,13 @@
if(!isSynthetic())
if(prob(5) && prob(100 * RADIATION_SPEED_COEFFICIENT))
radiation -= 5 * rad_mult
to_chat(src, "<span class='warning'>You feel weak.</span>")
to_chat(src, span_warning("You feel weak."))
Weaken(3)
if(!lying)
emote("collapse")
if(prob(5) && prob(100 * RADIATION_SPEED_COEFFICIENT) && species.get_bodytype() == SPECIES_HUMAN) //apes go bald
if((h_style != "Bald" || f_style != "Shaved" ))
to_chat(src, "<span class='warning'>Your hair falls out.</span>")
to_chat(src, span_warning("Your hair falls out."))
h_style = "Bald"
f_style = "Shaved"
update_hair()
@@ -76,7 +76,7 @@
if(prob(5))
take_overall_damage(0, 5 * RADIATION_SPEED_COEFFICIENT, used_weapon = "Radiation Burns")
if(prob(1))
to_chat(src, "<span class='warning'>You feel strange!</span>")
to_chat(src, span_warning("You feel strange!"))
adjustCloneLoss(5 * RADIATION_SPEED_COEFFICIENT)
emote("gasp")

View File

@@ -58,7 +58,7 @@
return
if(is_shadekin(M))
if(get_ability_flags(M) & AB_DARK_RESPITE)
to_chat(M, "<span class='warning'>You can't go through this portal so soon after an emergency warp!</span>")
to_chat(M, span_warning("You can't go through this portal so soon after an emergency warp!"))
var/mob/living/user = M
user.Stun(10)
return
@@ -96,10 +96,10 @@ GLOBAL_LIST_BOILERPLATE(all_darkportal_hubs, /obj/structure/dark_portal/hub)
/obj/structure/dark_portal/hub/attack_hand(mob/user)
if(is_shadekin(user))
if(get_ability_flags(user) & AB_DARK_RESPITE)
to_chat(user, "<span class='warning'>You can't use this so soon after an emergency warp!</span>")
to_chat(user, span_warning("You can't use this so soon after an emergency warp!"))
return
if(get_ability_flags(user) & AB_PHASE_SHIFTED)
to_chat(user, "<span class='warning'>You can't use this while phase shifted!</span>")
to_chat(user, span_warning("You can't use this while phase shifted!"))
return
if(locked != src)
var/confirm = alert(user, "This portal is currently open to [locked_name]. Change the portal destination?", "Change Portal Destination", "Yes", "Cancel")
@@ -121,7 +121,7 @@ GLOBAL_LIST_BOILERPLATE(all_darkportal_hubs, /obj/structure/dark_portal/hub)
locked_name = desc
return
else if(locked_name == "somewhere on the station" || locked_name == "somewhere in the wilderness")
to_chat(user, "<span class='warning'>The portal distorts for a moment, before returning to how it was, seemingly already determined where to send you.</span>")
to_chat(user, span_warning("The portal distorts for a moment, before returning to how it was, seemingly already determined where to send you."))
return
else if(istype(user, /mob/living/carbon/human))
var/mob/living/carbon/human/H = user
@@ -132,7 +132,7 @@ GLOBAL_LIST_BOILERPLATE(all_darkportal_hubs, /obj/structure/dark_portal/hub)
floors.Add(floor)
if(!LAZYLEN(floors))
log_and_message_admins("[src]: There were no floors to teleport to in [picked_area]!")
to_chat(user, "<span class='warning'>The portal distorts for a moment, seemingly unable to determine where to send you.</span>")
to_chat(user, span_warning("The portal distorts for a moment, seemingly unable to determine where to send you."))
close_portal()
destination_station_areas.Remove(picked_area)
return
@@ -140,10 +140,10 @@ GLOBAL_LIST_BOILERPLATE(all_darkportal_hubs, /obj/structure/dark_portal/hub)
locked_name = "somewhere on the station"
one_time_use = TRUE
precision = 0
to_chat(user, "<span class='notice'>The portal distorts for a moment, resolving itself soon after. You feel like it will lead you to the station now.</span>")
to_chat(user, span_notice("The portal distorts for a moment, resolving itself soon after. You feel like it will lead you to the station now."))
return
if(!LAZYLEN(destination_wilderness_areas))
to_chat(user, "<span class='warning'>The portal distorts for a moment, seemingly unable to determine where to send you.</span>")
to_chat(user, span_warning("The portal distorts for a moment, seemingly unable to determine where to send you."))
close_portal()
return
var/list/floors = list()
@@ -152,7 +152,7 @@ GLOBAL_LIST_BOILERPLATE(all_darkportal_hubs, /obj/structure/dark_portal/hub)
floors.Add(floor)
if(!LAZYLEN(floors))
log_and_message_admins("[src]: There were no floors to teleport to in [picked_area]!")
to_chat(user, "<span class='warning'>The portal distorts for a moment, seemingly unable to determine where to send you.</span>")
to_chat(user, span_warning("The portal distorts for a moment, seemingly unable to determine where to send you."))
close_portal()
destination_wilderness_areas.Remove(picked_area)
return
@@ -160,7 +160,7 @@ GLOBAL_LIST_BOILERPLATE(all_darkportal_hubs, /obj/structure/dark_portal/hub)
locked_name = "somewhere in the wilderness"
one_time_use = TRUE
precision = 0
to_chat(user, "<span class='notice'>The portal distorts for a moment, resolving itself soon after. You feel like it will lead you to somewhere in the wilderness now.</span>")
to_chat(user, span_notice("The portal distorts for a moment, resolving itself soon after. You feel like it will lead you to somewhere in the wilderness now."))
return
/obj/structure/dark_portal/hub/Bumped(M as mob|obj)
@@ -183,10 +183,10 @@ GLOBAL_LIST_BOILERPLATE(all_darkportal_minions, /obj/structure/dark_portal/minio
/obj/structure/dark_portal/minion/attack_hand(mob/user)
if(is_shadekin(user))
if(get_ability_flags(user) & AB_DARK_RESPITE)
to_chat(user, "<span class='warning'>You can't use this so soon after an emergency warp!</span>")
to_chat(user, span_warning("You can't use this so soon after an emergency warp!"))
return FALSE
if(get_ability_flags(user) & AB_PHASE_SHIFTED)
to_chat(user, "<span class='warning'>You can't use this while phase shifted!</span>")
to_chat(user, span_warning("You can't use this while phase shifted!"))
return FALSE
if(icon_state == "minion1")
var/confirm = alert(user, "This portal is currently open to [locked_name]. Close this portal to the dark?", "Close Portal", "Yes", "Cancel")
@@ -196,10 +196,10 @@ GLOBAL_LIST_BOILERPLATE(all_darkportal_minions, /obj/structure/dark_portal/minio
close_portal()
return
if(get_shadekin_energy(user) < 10)
to_chat(user, "<span class='warning'>Not enough energy to open up the portal! (10 required)</span>")
to_chat(user, span_warning("Not enough energy to open up the portal! (10 required)"))
return
if(!LAZYLEN(GLOB.all_darkportal_hubs))
to_chat(user, "<span class='warning'>No hub portals exist!</span>")
to_chat(user, span_warning("No hub portals exist!"))
return
if(LAZYLEN(GLOB.all_darkportal_hubs) == 1)
adjust_shadekin_energy(user, -10)
@@ -226,9 +226,9 @@ GLOBAL_LIST_BOILERPLATE(all_darkportal_minions, /obj/structure/dark_portal/minio
else if(!istype(user, /mob/living))
return
else if(icon_state == "minion0")
to_chat(user, "<span class='notice'>You touch the portal... nothing happens.</span>")
to_chat(user, span_notice("You touch the portal... nothing happens."))
else
to_chat(user, "<span class='notice'>You touch the portal, your hand able to pass through without harm.</span>")
to_chat(user, span_notice("You touch the portal, your hand able to pass through without harm."))
/obj/structure/dark_portal/minion/Bumped(M as mob|obj)
spawn()

View File

@@ -15,17 +15,17 @@
var/obj/item/grab/G = src.get_active_hand()
if(!istype(G))
to_chat(C, "<span class='warning'>You must be grabbing a creature in your active hand to bite them.</span>")
to_chat(C, span_warning("You must be grabbing a creature in your active hand to bite them."))
return
var/mob/living/carbon/human/T = G.affecting
if(!istype(T) || T.isSynthetic())
to_chat(src, "<span class='warning'>\The [T] is not able to be bitten.</span>")
to_chat(src, span_warning("\The [T] is not able to be bitten."))
return
if(G.state != GRAB_NECK)
to_chat(C, "<span class='warning'>You must have a tighter grip to bite this creature.</span>")
to_chat(C, span_warning("You must have a tighter grip to bite this creature."))
return
var/choice = input(src, "What do you wish to inject?") as null|anything in list("Aphrodisiac", "Numbing", "Paralyzing")
@@ -35,20 +35,20 @@
if(!choice)
return
src.visible_message(span_red("<b>[src] moves their head next to [T]'s neck, seemingly looking for something!</b>"))
src.visible_message(span_bolddanger("[src] moves their head next to [T]'s neck, seemingly looking for something!"))
if(do_after(src, 300, T)) //Thrirty seconds.
if(choice == "Aphrodisiac")
src.show_message("<span class='warning'>You sink your fangs into [T] and inject your aphrodisiac!</span>")
src.show_message(span_warning("You sink your fangs into [T] and inject your aphrodisiac!"))
src.visible_message(span_red("[src] sinks their fangs into [T]!"))
T.bloodstr.add_reagent("succubi_aphrodisiac",100)
return 0
else if(choice == "Numbing")
src.show_message("<span class='warning'>You sink your fangs into [T] and inject your poison!</span>")
src.show_message(span_warning("You sink your fangs into [T] and inject your poison!"))
src.visible_message(span_red("[src] sinks their fangs into [T]!"))
T.bloodstr.add_reagent("numbing_enzyme",20) //Poisons should work when more units are injected
else if(choice == "Paralyzing")
src.show_message("<span class='warning'>You sink your fangs into [T] and inject your poison!</span>")
src.show_message(span_warning("You sink your fangs into [T] and inject your poison!"))
src.visible_message(span_red("[src] sinks their fangs into [T]!"))
T.bloodstr.add_reagent("succubi_paralize",20) //Poisons should work when more units are injected
else
@@ -59,7 +59,7 @@ mob/living/carbon/proc/charmed() //TODO
charmed = 1
spawn(0)
for(var/i = 1,i > 0, i--)
src << "<font color='#6F6FE2'><i>... [pick(charmed)] ...</i></font>"
src << "<font color='#6F6FE2'>" + span_italics("... [pick(charmed)] ...") + "</font>"
charmed = 0
*/
@@ -73,7 +73,7 @@ mob/living/carbon/proc/charmed() //TODO
/datum/reagent/succubi_aphrodisiac/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(prob(3))
M.show_message("<span class='warning'>You feel funny, and fall in love with the person in front of you</span>")
M.show_message(span_warning("You feel funny, and fall in love with the person in front of you"))
M.say(pick("!blushes", "!moans", "!giggles", "!turns visibly red")) //using mob say so we dont have to define this dumb one time use emote that equates to just blushing -shark
//M.charmed() //TODO
return
@@ -93,7 +93,7 @@ mob/living/carbon/proc/charmed() //TODO
M.Weaken(2)
M.drowsyness = max(M.drowsyness, 20)
if(prob(7))
M.show_message("<span class='warning'>You start to feel weakened, your body seems heavy.</span>")
M.show_message(span_warning("You start to feel weakened, your body seems heavy."))
return
/datum/reagent/succubi_paralize
@@ -109,7 +109,7 @@ mob/living/carbon/proc/charmed() //TODO
M.Weaken(20)
M.eye_blurry = max(M.eye_blurry, 10)
if(prob(10))
M.show_message("<span class='warning'>You lose sensation of your body.</span>")
M.show_message(span_warning("You lose sensation of your body."))
return
@@ -135,33 +135,33 @@ var/eggs = 0
if(do_after(src, 300)) //Thrirty seconds.
if(choice == "Make a Egg")
src.show_message("<span class='warning'>You feel your belly bulging a bit, you made an egg!</span>")
src.show_message(span_warning("You feel your belly bulging a bit, you made an egg!"))
C.nutrition -=150
eggs += 1
return 0
else if(choice == "Make a Egg" && eggs > 5)
src.show_message("<span class='warning'>Your Belly is full of Eggs you cant have more!!</span>")
src.show_message(span_warning("Your Belly is full of Eggs you cant have more!!"))
return 0
else if(choice == "lay your Eggs" && eggs > 0)
src.visible_message(span_white("<b>[src] freezes and vissibly tries to squat down</b>"))
src.visible_message(span_infoplain(span_white("[src] freezes and vissibly tries to squat down")))
while(eggs > 0)
src.show_message("<span class='warning'>You lay a egg!</span>")
src.show_message(span_warning("You lay a egg!"))
eggs--
var/obj/item/reagent_containers/food/snacks/egg/E = new(get_turf(src))
E.pixel_x = rand(-6,6)
E.pixel_y = rand(-6,6)
return
else
src.visible_message("<span class='warning'>you dont have any eggs!</span>")
src.visible_message(span_warning("you dont have any eggs!"))
return //Should never happen
/*
if(layeggs == 1)
src.visible_message("<font color='white'><b>[src] freezes and vissibly tries to squat down</b></font>")
src.visible_message(span_infoplain(span_white(span_bold("[src] freezes and vissibly tries to squat down"))))
while(eggs > 0)
src.show_message("<span class='warning'>You lay you egg!</span>")
src.show_message(span_warning("You lay you egg!"))
eggs--
var/obj/item/reagent_containers/food/snacks/egg/E = new(get_turf(src))
E.pixel_x = rand(-6,6)
@@ -187,11 +187,11 @@ var/eggs = 0
if(!T)
return
if(T.isSynthetic())
to_chat(src, "<span class='notice'>We are unable to pierce the outer shell of [T].</span>")
to_chat(src, span_notice("We are unable to pierce the outer shell of [T]."))
return
to_chat(src, "<span class='notice'>You jab your stinger into [T].</span>")
to_chat(T, "<span class='danger'>You feel a stabbing pain as you are stung!</span>")
src.visible_message(span_red("[src] sinks their stinger into [T]!"))
to_chat(src, span_notice("You jab your stinger into [T]."))
to_chat(T, span_danger("You feel a stabbing pain as you are stung!"))
src.visible_message(span_infoplain(span_red("[src] sinks their stinger into [T]!")))
T.bloodstr.add_reagent("condensedcapsaicin_v",3)
last_special = world.time + 50 // Many little jabs instead of one big one

View File

@@ -57,13 +57,13 @@
return
if((H.nutrition < 200) && prob(5))
if(H.nutrition > 100)
to_chat(H,"<span class='warning'>You start to feel noticeably weak as your stomach rumbles, begging for more food. Maybe you should eat something to keep your blood sugar up</span>")
to_chat(H,span_warning("You start to feel noticeably weak as your stomach rumbles, begging for more food. Maybe you should eat something to keep your blood sugar up"))
else if(H.nutrition > 50)
to_chat(H,"<span class='warning'>You begin to feel rather weak, and your stomach rumbles loudly. You feel lightheaded and it's getting harder to think. You really need to eat something.</span>")
to_chat(H,span_warning("You begin to feel rather weak, and your stomach rumbles loudly. You feel lightheaded and it's getting harder to think. You really need to eat something."))
else if(H.nutrition > 25)
to_chat(H,"<span class='danger'>You're feeling very weak and lightheaded, and your stomach continously rumbles at you. You really need to eat something!</span>")
to_chat(H,span_danger("You're feeling very weak and lightheaded, and your stomach continously rumbles at you. You really need to eat something!"))
else
to_chat(H,"<span class='critical'>You're feeling extremely weak and lightheaded. You feel as though you might pass out any moment and your stomach is screaming for food by now! You should really find something to eat!</span>")
to_chat(H,span_critical("You're feeling extremely weak and lightheaded. You feel as though you might pass out any moment and your stomach is screaming for food by now! You should really find something to eat!"))
if((H.nutrition < 100) && prob(10))
H.Confuse(10)
if((H.nutrition < 50) && prob(25))
@@ -207,7 +207,7 @@
var/list/panicmessages = list( "Why am I still here? I have to leave and get some space!",
"Please, just let me be alone!",
"I need to be alone!")
return "<span class='danger'><b>[pick(panicmessages)]</b></span>"
return span_bolddanger("[pick(panicmessages)]")
return FALSE
/datum/trait/negative/agoraphobia/proc/find_held_by(var/atom/item)
@@ -291,7 +291,7 @@
/datum/trait/negative/lonely/proc/sub_loneliness(var/mob/living/carbon/human/H,var/amount = 4)
H.loneliness_stage = max(H.loneliness_stage - 4, 0)
if(world.time >= H.next_loneliness_time && H.loneliness_stage > 0)
to_chat(H, "The nearby company calms you down...")
to_chat(H, span_infoplain("The nearby company calms you down..."))
H.next_loneliness_time = world.time+500
/datum/trait/negative/lonely/proc/check_mob_company(var/mob/living/carbon/human/H,var/mob/living/M)
@@ -379,7 +379,7 @@
if(H.stuttering < hallucination_cap)
H.stuttering += 5
if(H.loneliness_stage >= warning_cap)
ms = "<span class='danger'><b>[pick("Where are the others?", "Please, there has to be someone nearby!", "I don't want to be alone!")]</b></span>"
ms = span_danger(span_bold("[pick("Where are the others?", "Please, there has to be someone nearby!", "I don't want to be alone!")]"))
if(world.time < H.next_loneliness_time)
return
if(ms != "")

View File

@@ -236,8 +236,8 @@
/datum/modifier/adrenaline
name = "Adrenaline Rush"
desc = "A rush of adrenaline, usually caused by near death in situations."
on_created_text = "<span class='danger'>You suddenly feel adrenaline pumping through your veins as your body refuses to give up! You feel stronger, and faster, and the pain fades away quickly.</span>"
on_expired_text = "<span class='danger'>You feel your body finally give in once more as the adrenaline subsides. The pain returns in full blast, along with your strength fading once more.</span>"
on_created_text = span_danger("You suddenly feel adrenaline pumping through your veins as your body refuses to give up! You feel stronger, and faster, and the pain fades away quickly.")
on_expired_text = span_danger("You feel your body finally give in once more as the adrenaline subsides. The pain returns in full blast, along with your strength fading once more.")
disable_duration_percent = 0 //Immune to being disabled.
pain_immunity = TRUE //Immune to pain
@@ -281,8 +281,8 @@
/datum/modifier/adrenaline_recovery
name = "Adrenaline detox"
desc = "After an adrenaline rush, one will find themselves suffering from adrenaline detox, which is their body recovering from an intense adrenaline rush."
on_created_text = "<span class='danger'>Your body aches and groans, forcing you into a period of rest as it recovers from the intense adrenaline rush.</span>"
on_expired_text = "<span class='notice'>You finally recover from your adrenaline rush, your body returning to its normal state.</span>"
on_created_text = span_danger("Your body aches and groans, forcing you into a period of rest as it recovers from the intense adrenaline rush.")
on_expired_text = span_notice("You finally recover from your adrenaline rush, your body returning to its normal state.")
disable_duration_percent = 1.35
outgoing_melee_damage_percent = 0.75

View File

@@ -169,12 +169,12 @@ What Borgs are available is sadly handled in the above file in the proc
if(patient && patient.reagents)
if(chem in injection_chems + "inaprovaline")
if(hound.cell.charge < 200) //This is so borgs don't kill themselves with it.
to_chat(hound, "<span class='notice'>You don't have enough power to synthesize fluids.</span>")
to_chat(hound, span_notice("You don't have enough power to synthesize fluids."))
return
else if(patient.reagents.get_reagent_amount(chem) + 10 >= 50) //Preventing people from accidentally killing themselves by trying to inject too many chemicals!
to_chat(hound, "<span class='notice'>Your stomach is currently too full of fluids to secrete more fluids of this kind.</span>")
to_chat(hound, span_notice("Your stomach is currently too full of fluids to secrete more fluids of this kind."))
else if(patient.reagents.get_reagent_amount(chem) + 10 <= 50) //No overdoses for you
patient.reagents.add_reagent(chem, inject_amount)
drain(100) //-100 charge per injection
var/units = round(patient.reagents.get_reagent_amount(chem))
to_chat(hound, "<span class='notice'>Injecting [units] unit\s into occupant.</span>") //If they were immersed, the reagents wouldn't leave with them.
to_chat(hound, span_notice("Injecting [units] unit\s into occupant.")) //If they were immersed, the reagents wouldn't leave with them.

View File

@@ -97,11 +97,11 @@
/mob/living/simple_mob/animal/passive/armadillo/proc/remove_hat(var/mob/living/user)
if(!hat)
to_chat(user, "<span class='warning'>\The [src] doesn't have a hat to remove.</span>")
to_chat(user, span_warning("\The [src] doesn't have a hat to remove."))
else
hat.forceMove(get_turf(src))
user.put_in_hands(hat)
to_chat(user, "<span class='warning'>You take away \the [src]'s [hat.name]. How mean.</span>")
to_chat(user, span_warning("You take away \the [src]'s [hat.name]. How mean."))
hat = null
update_icon()

View File

@@ -168,7 +168,7 @@
var/ruptured = 0
/mob/living/simple_mob/animal/space/mouse_army/pyro/death()
visible_message("<span class='critical'>\The [src]'s tank groans!</span>")
visible_message(span_critical("\The [src]'s tank groans!"))
var/delay = rand(1, 3)
spawn(0)
// Flash black and red as a warning.
@@ -181,7 +181,7 @@
spawn(rand (1,5))
if(!ruptured)
visible_message("<span class='critical'>\The [src]'s tank ruptures!</span>")
visible_message(span_critical("\The [src]'s tank ruptures!"))
ruptured = 1
adjust_fire_stacks(2)
IgniteMob()
@@ -226,7 +226,7 @@
ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive
/mob/living/simple_mob/animal/space/mouse_army/ammo/death()
visible_message("<span class='critical'>\The [src]'s body begins to rupture!</span>")
visible_message(span_critical("\The [src]'s body begins to rupture!"))
var/delay = rand(explosion_delay_lower, explosion_delay_upper)
spawn(0)
// Flash black and red as a warning.
@@ -239,7 +239,7 @@
spawn(rand(1,5))
if(src && !exploded)
visible_message("<span class='critical'>\The [src]'s body detonates!</span>")
visible_message(span_critical("\The [src]'s body detonates!"))
exploded = 1
explosion(src.loc, explosion_dev_range, explosion_heavy_range, explosion_light_range, explosion_flash_range)
qdel(src)

View File

@@ -496,20 +496,20 @@
/mob/living/simple_mob/humanoid/cultist/elite/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(O.force)
if(prob(30))
visible_message("<span class='danger'>\The [src] blocks \the [O] with its shield!</span>")
visible_message(span_danger("\The [src] blocks \the [O] with its shield!"))
if(user)
ai_holder.react_to_attack(user)
return
else
..()
else
to_chat(user, "<span class='warning'>This weapon is ineffective, it does no damage.</span>")
visible_message("<span class='warning'>\The [user] gently taps [src] with \the [O].</span>")
to_chat(user, span_warning("This weapon is ineffective, it does no damage."))
visible_message(span_warning("\The [user] gently taps [src] with \the [O]."))
/mob/living/simple_mob/humanoid/cultist/elite/bullet_act(var/obj/item/projectile/Proj)
if(!Proj) return
if(prob(50))
visible_message(span_red("<B>[Proj] disappears into the mirror world as it hits the shield.</B>"))
visible_message(span_bolddanger("[Proj] disappears into the mirror world as it hits the shield."))
if(Proj.firer)
ai_holder.react_to_attack(Proj.firer)
return

View File

@@ -252,18 +252,18 @@
/mob/living/simple_mob/humanoid/merc/ranged/space/suppressor/attackby(var/obj/item/O, var/mob/user)
if(O.force)
if(prob(50))
visible_message("<span class='danger'>\The [src] blocks \the [O] with its shield!</span>")
visible_message(span_danger("\The [src] blocks \the [O] with its shield!"))
if(user)
ai_holder.react_to_attack(user)
return
else
..()
else
visible_message("<span class='warning'>\The [user] gently taps [src] with \the [O].</span>")
visible_message(span_warning("\The [user] gently taps [src] with \the [O]."))
/mob/living/simple_mob/humanoid/merc/ranged/space/suppressor/bullet_act(var/obj/item/projectile/Proj)
if(!Proj) return
if(prob(50))
visible_message("<span class='warning'>[src] blocks [Proj] with its shield!</span>")
visible_message(span_warning("[src] blocks [Proj] with its shield!"))
if(Proj.firer)
ai_holder.react_to_attack(Proj.firer)
return
@@ -375,20 +375,20 @@
/mob/living/simple_mob/humanoid/merc/voxpirate/boarder/attackby(var/obj/item/O, var/mob/user)
if(O.force)
if(prob(20))
visible_message("<span class='danger'>\The [src] blocks \the [O] with its sword!</span>")
visible_message(span_danger("\The [src] blocks \the [O] with its sword!"))
if(user)
ai_holder.react_to_attack(user)
return
else
..()
else
to_chat(user, "<span class='warning'>This weapon is ineffective, it does no damage.</span>")
visible_message("<span class='warning'>\The [user] gently taps [src] with \the [O].</span>")
to_chat(user, span_warning("This weapon is ineffective, it does no damage."))
visible_message(span_warning("\The [user] gently taps [src] with \the [O]."))
/mob/living/simple_mob/humanoid/merc/voxpirate/boarder/bullet_act(var/obj/item/projectile/Proj)
if(!Proj) return
if(prob(35))
visible_message("<span class='warning'>[src] blocks [Proj] with its sword!</span>")
visible_message(span_warning("[src] blocks [Proj] with its sword!"))
if(Proj.firer)
ai_holder.react_to_attack(Proj.firer)
return

View File

@@ -143,20 +143,20 @@
/mob/living/simple_mob/humanoid/pirate/shield/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(O.force)
if(prob(15))
visible_message("<span class='danger'>\The [src] blocks \the [O] with its shield!</span>")
visible_message(span_danger("\The [src] blocks \the [O] with its shield!"))
if(user)
ai_holder.react_to_attack(user)
return
else
..()
else
to_chat(user, "<span class='warning'>This weapon is ineffective, it does no damage.</span>")
visible_message("<span class='warning'>\The [user] gently taps [src] with \the [O].</span>")
to_chat(user, span_warning("This weapon is ineffective, it does no damage."))
visible_message(span_warning("\The [user] gently taps [src] with \the [O]."))
/mob/living/simple_mob/humanoid/merc/melee/sword/bullet_act(var/obj/item/projectile/Proj)
if(!Proj) return
if(prob(25))
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

View File

@@ -123,7 +123,7 @@
//What about if someone's in it? Well here you go.
/mob/living/simple_mob/humanoid/possessed/Login()
to_chat(src,"<b>Why are you in this [src]? Why can't you say more than a few phrases? Why. What. Kill. Kill. Kill. Kill. KILL! KILL! KILL!</b> [player_msg]")
to_chat(src,span_infoplain(span_bold("Why are you in this [src]? Why can't you say more than a few phrases? Why. What. Kill. Kill. Kill. Kill. KILL! KILL! KILL!") + " [player_msg]"))
/obj/item/rig/eva/old
name = "old EVA suit control module"

View File

@@ -103,7 +103,7 @@
// Does actual poison injection, after all checks passed.
/mob/living/simple_mob/mechanical/cyber_horror/plasma_cyber_horror/proc/inject_poison(mob/living/L, target_zone)
if(prob(poison_chance))
to_chat(L, "<span class='warning'>You feel nanites digging into your skin!</span>")
to_chat(L, span_warning("You feel nanites digging into your skin!"))
L.reagents.add_reagent(poison_type, poison_per_bite)
@@ -388,7 +388,7 @@
// Does actual poison injection, after all checks passed.
/mob/living/simple_mob/mechanical/cyber_horror/cat_cyber_horror/proc/inject_poison(mob/living/L, target_zone)
if(prob(poison_chance))
to_chat(L, "<span class='warning'>You feel an uncomfortable prick!</span>")
to_chat(L, span_warning("You feel an uncomfortable prick!"))
L.reagents.add_reagent(poison_type, poison_per_bite)
//These are the projectiles mobs use

View File

@@ -296,11 +296,11 @@ I think I covered everything.
set category = "Abilities.Settings"
if(norange)
to_chat(src, "<span class='userdanger'>You don't have a breath attack!</span>")
to_chat(src, span_userdanger("You don't have a breath attack!"))
return
flametoggle = !flametoggle
to_chat(src, "<span class='notice'>You will [flametoggle?"now breath":"no longer breath"] attack on harm intent.</span>")
to_chat(src, span_notice("You will [flametoggle?"now breath":"no longer breath"] attack on harm intent."))
/mob/living/simple_mob/vore/bigdragon/proc/special_toggle()
set name = "Toggle special attacks"
@@ -308,11 +308,11 @@ I think I covered everything.
set category = "Abilities.Settings"
if(nospecial)
to_chat(src, "<span class='userdanger'>You don't have special attacks!</span>")
to_chat(src, span_userdanger("You don't have special attacks!"))
return
specialtoggle = !specialtoggle
to_chat(src, "<span class='notice'>You will [specialtoggle?"now special":"no longer special"] attack on grab/disarm intent.</span>")
to_chat(src, span_notice("You will [specialtoggle?"now special":"no longer special"] attack on grab/disarm intent."))
/* //Implemented upstream
/mob/living/simple_mob/vore/bigdragon/proc/set_name()
@@ -320,7 +320,7 @@ I think I covered everything.
set desc = "Sets your mobs name. You only get to do this once."
set category = "Abilities.Settings"
if(nameset)
to_chat(src, "<span class='userdanger'>You've already set your name. Ask an admin to toggle \"nameset\" to 0 if you really must.</span>")
to_chat(src, span_userdanger("You've already set your name. Ask an admin to toggle \"nameset\" to 0 if you really must."))
return
var/newname
newname = sanitizeSafe(input(src,"Set your name. You only get to do this once. Max 52 chars.", "Name set","") as text, MAX_NAME_LEN)
@@ -784,14 +784,14 @@ I think I covered everything.
M.Weaken(5)
if(!gentle)
M.adjustBruteLoss(50) //A dragon just slammed ontop of you
to_chat(M, "<span class='userdanger'>You're slammed into the floor by [src]!</span>")
to_chat(M, span_userdanger("You're slammed into the floor by [src]!"))
else
if(isliving(AM))
var/mob/living/M = AM
M.Weaken(1.5)
if(!gentle)
M.adjustBruteLoss(20)
to_chat(M, "<span class='userdanger'>You're thrown back by [src]!</span>")
to_chat(M, span_userdanger("You're thrown back by [src]!"))
playsound(src, get_sfx("punch"), 50, 1)
AM.throw_at(throwtarget, maxthrow, 3, src)
@@ -844,7 +844,7 @@ I think I covered everything.
/mob/living/simple_mob/vore/bigdragon/proc/firebreathend(var/atom/A)
var/obj/item/projectile/P = new /obj/item/projectile/bullet/dragon(get_turf(src))
src.visible_message("<span class='danger'>\The [src] spews fire at \the [A]!</span>")
src.visible_message(span_danger("\The [src] spews fire at \the [A]!"))
playsound(src, "sound/weapons/Flamer.ogg", 50, 1)
P.launch_projectile(A, BP_TORSO, src)
set_AI_busy(FALSE)

View File

@@ -174,7 +174,7 @@
/mob/living/simple_mob/vore/demonAI/proc/inject_poison(mob/living/L, target_zone)
if(prob(poison_chance))
to_chat(L, "<span class='warning'>You feel a tiny prick.</span>")
to_chat(L, span_warning("You feel a tiny prick."))
L.reagents.add_reagent(poison_type, poison_per_bite)

View File

@@ -7,11 +7,11 @@
var/turf/T = get_turf(src)
if(shifted_out)
to_chat(src,"<span class='warning'>You must be in the physical world to create blood!</span>")
to_chat(src,span_warning("You must be in the physical world to create blood!"))
return FALSE
if(world.time - blood_spawn < 1500)
to_chat(src,"<span class='warning'>You can't create blood so soon! You need to wait [round(((blood_spawn+1500)-world.time)/10)] second\s!</span>")
to_chat(src,span_warning("You can't create blood so soon! You need to wait [round(((blood_spawn+1500)-world.time)/10)] second\s!"))
return FALSE
@@ -30,9 +30,9 @@
enable_autolaugh = !enable_autolaugh
if(enable_autolaugh)
to_chat(src,"<span class='warning'>Autolaugh has been toggled on</span>")
to_chat(src,span_warning("Autolaugh has been toggled on"))
else
to_chat(src,"<span class='warning'>Autolaugh has been toggled off</span>")
to_chat(src,span_warning("Autolaugh has been toggled off"))
/mob/living/simple_mob/vore/demon/verb/manual_laugh()
set name = "Laugh"
@@ -45,7 +45,7 @@
enable_autolaugh = !enable_autolaugh
else
laugh()
to_chat(src,"<span class='warning'>You laugh!</span>") //lets add some fluff response for clicking the feel good button.
to_chat(src,span_warning("You laugh!")) //lets add some fluff response for clicking the feel good button.
/mob/living/simple_mob/vore/demon/verb/sizespell()
set name = "Shrink/Grow Prey"
@@ -56,15 +56,15 @@
var/obj/item/grab/G = src.get_active_hand()
if(!istype(G))
to_chat(src, "<span class='warning'>You must be grabbing a creature in your active hand to affect them.</span>")
to_chat(src, span_warning("You must be grabbing a creature in your active hand to affect them."))
return
var/mob/living/carbon/human/T = G.affecting
if(!istype(T))
to_chat(src, "<span class='warning'>\The [T] is not able to be affected.</span>")
to_chat(src, span_warning("\The [T] is not able to be affected."))
return
if(G.state != GRAB_NECK)
to_chat(src, "<span class='warning'>You must have a tighter grip to affect this creature.</span>")
to_chat(src, span_warning("You must have a tighter grip to affect this creature."))
return
if(!checkClickCooldown() || incapacitated(INCAPACITATION_ALL))
@@ -72,7 +72,7 @@
setClickCooldown(8)
T.resize(size_amount)
visible_message("<span class='warning'>[src] shrinks [T]!</span>","<span class='notice'>You shrink [T].</span>")
visible_message(span_warning("[src] shrinks [T]!"),span_notice("You shrink [T]."))
/mob/living/simple_mob/vore/demon
var/size_amount = RESIZE_TINY //Adding a var to keep track of sizespell setting
@@ -84,10 +84,10 @@
var/size_select = input("Put the desired size (25-200%)", "Set Size", size_amount * 100) as num //Stolen from sizegun code
if(size_select > 200 || size_select < 25)
to_chat(usr, "<span class='notice'>Invalid size.</span>")
to_chat(usr, span_notice("Invalid size."))
return
size_amount = (size_select/100)
to_chat(src,"<span class='notice'>Size spell set to [size_select]%</span>") //Telling the user the new amount
to_chat(src,span_notice("Size spell set to [size_select]%")) //Telling the user the new amount
/mob/living/simple_mob/vore/demon/verb/demon_bite()
set name = "Mindbreaker Bite"
@@ -98,15 +98,15 @@
var/obj/item/grab/G = src.get_active_hand()
if(!istype(G))
to_chat(src, "<span class='warning'>You must be grabbing a creature in your active hand to affect them.</span>")
to_chat(src, span_warning("You must be grabbing a creature in your active hand to affect them."))
return
var/mob/living/carbon/human/T = G.affecting
if(!istype(T))
to_chat(src, "<span class='warning'>\The [T] is not able to be affected.</span>")
to_chat(src, span_warning("\The [T] is not able to be affected."))
return
if(G.state != GRAB_NECK)
to_chat(src, "<span class='warning'>You must have a tighter grip to affect this creature.</span>")
to_chat(src, span_warning("You must have a tighter grip to affect this creature."))
return
if(!checkClickCooldown() || incapacitated(INCAPACITATION_ALL))
@@ -114,4 +114,4 @@
setClickCooldown(8)
T.reagents.add_reagent(poison_type, poison_per_bite)
visible_message("<span class='warning'>[src] bites [T]!</span>","<span class='notice'>You bite [T].</span>")
visible_message(span_warning("[src] bites [T]!"),span_notice("You bite [T]."))

View File

@@ -117,7 +117,7 @@
/mob/living/simple_mob/vore/demon/proc/inject_poison(mob/living/L, target_zone)
if(prob(poison_chance))
to_chat(L, "<span class='warning'>You feel a tiny prick.</span>")
to_chat(L, span_warning("You feel a tiny prick."))
L.reagents.add_reagent(poison_type, poison_per_bite)
/mob/living/simple_mob/vore/demon/death()

View File

@@ -413,7 +413,7 @@
if(M.zone_sel.selecting == BP_GROIN)
if(M.vore_bellyrub(src))
return
M.visible_message("<span class='notice'>[M] [response_help] \the [src].</span>")
M.visible_message(span_notice("[M] [response_help] \the [src]."))
if(has_AI())
var/datum/ai_holder/AI = ai_holder
AI.set_stance(STANCE_IDLE)
@@ -490,7 +490,7 @@
goia_overlays["spike"],
goia_overlays["zorgoia_belly"],
goia_overlays["belly"]), ";")
to_chat(src, "<span class='notice'>Exported style string is \" [output_style] \". Use this to get the same style in the future with import style</span>")
to_chat(src, span_notice("Exported style string is \" [output_style] \". Use this to get the same style in the future with import style"))
/mob/living/simple_mob/vore/zorgoia/proc/import_style()
set name = "Import style string"

View File

@@ -108,10 +108,10 @@
if(!has_AI())//No autobarf on player control.
return
if(istype(O, /obj/item/reagent_containers/food/snacks/donut) && istype(src, /mob/living/simple_mob/vore/greatwolf/black))
to_chat(user,"<span class='notice'>The huge wolf begrudgingly accepts your offer in exchange for it's catch.</span>")
to_chat(user,span_notice("The huge wolf begrudgingly accepts your offer in exchange for it's catch."))
release_vore_contents()
else if(prob(2)) //Small chance to get prey out from white doggos
to_chat(user,"<span class='notice'>The huge wolf accepts your offer for their catch.</span>")
to_chat(user,span_notice("The huge wolf accepts your offer for their catch."))
release_vore_contents()
return
. = ..()

View File

@@ -18,7 +18,7 @@
mimic_active = FALSE
if(prob(mimic_chance))
var/mob/living/simple_mob/vore/aggressive/mimic/airlock/new_mimic = new(loc, src)
visible_message(span_red("<b>The [new_mimic] suddenly growls as it turns out to be a mimic!</b>")) //Controls the vars of the mimic that spawns
visible_message(span_bolddanger("The [new_mimic] suddenly growls as it turns out to be a mimic!")) //Controls the vars of the mimic that spawns
forceMove(new_mimic)
new_mimic.real_crate = src
new_mimic.name = name
@@ -41,7 +41,7 @@
/obj/structure/closet/crate/mimic/airlock/damage(var/damage)
if(contents.len)
visible_message(span_red("<b>The [src] let's out an enraged screach!</b>"))
visible_message(span_bolddanger("The [src] let's out an enraged screach!"))
for(var/obj/O in src.contents)
qdel(O)
..()
@@ -115,7 +115,7 @@
mimic_active = FALSE
if(prob(mimic_chance))
var/mob/living/simple_mob/vore/aggressive/mimic/closet/new_mimic = new(loc, src)
visible_message(span_red("<b>The [new_mimic] suddenly growls as it turns out to be a mimic!</b>")) //Controls the mimic that spawns
visible_message(span_bolddanger("The [new_mimic] suddenly growls as it turns out to be a mimic!")) //Controls the mimic that spawns
forceMove(new_mimic)
new_mimic.real_crate = src
new_mimic.name = name
@@ -135,7 +135,7 @@
/obj/structure/closet/crate/mimic/closet/damage(var/damage)
if(contents.len)
visible_message(span_red("<b>The [src] makes out a crunchy noise as its contents are destroyed!</b>"))
visible_message(span_bolddanger("The [src] makes out a crunchy noise as its contents are destroyed!"))
for(var/obj/O in src.contents)
qdel(O)
..()
@@ -224,7 +224,7 @@
qdel(src)
return
var/mob/living/simple_mob/vore/aggressive/mimic/floor/new_mimic = new mimic_type(drop_location())
visible_message("<span class='boldwarning'>The [new_mimic] suddenly growls beneath you as it turns out to be a mimic!</span>")
visible_message(span_boldwarning("The [new_mimic] suddenly growls beneath you as it turns out to be a mimic!"))
qdel(src)
/obj/effect/floormimic/attackby(obj/item/I, mob/living/L)

View File

@@ -220,7 +220,7 @@
buckle_mob(L)
L.stop_pulling()
L.Weaken(2)
to_chat(L, "<span class='warning'>You tripped in the sticky substance, sticking to [my_turf]!</span>")
to_chat(L, span_warning("You tripped in the sticky substance, sticking to [my_turf]!"))
playsound(src, 'sound/rakshasa/Decay3.ogg', 100, 1)
alert_slug(L)

View File

@@ -87,7 +87,7 @@
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
s.set_up(5, 1, L)
s.start()
visible_message("<span class='danger'>The moth releases a powerful shock!</span>")
visible_message(span_danger("The moth releases a powerful shock!"))
else
if(L.reagents)
var/target_zone = pick(BP_TORSO,BP_TORSO,BP_TORSO,BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_HEAD)
@@ -97,7 +97,7 @@
// Does actual poison injection, after all checks passed.
/mob/living/simple_mob/vore/solarmoth/proc/inject_poison(mob/living/L, target_zone)
if(prob(poison_chance))
to_chat(L, "<span class='warning'>You feel a small shock rushing through your veins.</span>")
to_chat(L, span_warning("You feel a small shock rushing through your veins."))
L.reagents.add_reagent(poison_type, poison_per_bite)
/mob/living/simple_mob/vore/solarmoth/Life()
@@ -189,7 +189,7 @@
if(prob(20))
for(var/obj/machinery/door/firedoor/door in range(14, src)) //double viewrange
if(prob(5))
visible_message("<span class='danger'>Emergency Shutter malfunction!</span>")
visible_message(span_danger("Emergency Shutter malfunction!"))
door.blocked = 0
door.open(1)

View File

@@ -75,7 +75,7 @@ GLOBAL_VAR_INIT(ENERGY_DAMAGE_ORGAN_FACTOR,0.035)
var/absorber = ballistic_armor ? "armor" : "body" //There is a super tiny chance that small rounds can get deflected without armor, so this is just incase.
to_chat(src,"<span class='warning'>You feel the energy of the bullet painfully transfered [pain_hit] as your [absorber] deflects it!</span>")
to_chat(src,span_warning("You feel the energy of the bullet painfully transfered [pain_hit] as your [absorber] deflects it!"))
apply_damage(hurt_value_pain,HALLOSS,def_zone)
if(hurt_value_bruise)
apply_damage(hurt_value_bruise,BRUTE,def_zone)

View File

@@ -145,7 +145,7 @@
var/absorber = ballistic_armor ? "armor" : "body" //There is a super tiny chance that small rounds can get deflected without armor, so this is just incase.
to_chat(src,"<span class='warning'>You feel the energy of the bullet painfully transfered [pain_hit] as your [absorber] deflects it!</span>")
to_chat(src,span_warning("You feel the energy of the bullet painfully transfered [pain_hit] as your [absorber] deflects it!"))
apply_damage(hurt_value_pain,HALLOSS,def_zone)
if(hurt_value_bruise)
apply_damage(hurt_value_bruise,BRUTE,def_zone)

View File

@@ -23,7 +23,7 @@
/obj/item/fuel_assembly/blitz/throw_impact(atom/hit_atom)
if(!..())
visible_message("<span class='warning'>\The [src] loses stability and shatters in a violent explosion!</span>")
visible_message(span_warning("\The [src] loses stability and shatters in a violent explosion!"))
explosion(src.loc, 1, 2, 4, 6)
qdel(src)
@@ -32,13 +32,13 @@
var/obj/item/stack/material/lead/M = I
if(istype(M))
if(M.get_amount() > 5)
to_chat(user,"<span class='notice'>You add a lead shell to the blitz rod.</span>")
to_chat(user,span_notice("You add a lead shell to the blitz rod."))
qdel(src)
var/obj/item/fuel_assembly/blitz/shielded/rod = new(get_turf(user))
user.put_in_hands(rod)
return
else
to_chat(user,"<span class='warning'>You need at least five sheets of lead to add shielding!</span>")
to_chat(user,span_warning("You need at least five sheets of lead to add shielding!"))
/obj/item/fuel_assembly/blitz/unshielded/attack_hand(mob/user)
. = ..()
@@ -56,7 +56,7 @@
burn_user = FALSE
if(burn_user)
H.visible_message("<span class='danger'>\The [src] flashes as it scorches [H]'s hands!</span>")
H.visible_message(span_danger("\The [src] flashes as it scorches [H]'s hands!"))
H.apply_damage(7, BURN, "r_hand", used_weapon="Blitz Rod")
H.apply_damage(7, BURN, "l_hand", used_weapon="Blitz Rod")
H.drop_from_inventory(src, get_turf(H))

View File

@@ -91,10 +91,10 @@
if(istype(id) && lockable)
if(check_access(id))
locked = !locked
to_chat(user, "<span class='warning'>You [locked ? "enable" : "disable"] the safety lock on \the [src].</span>")
to_chat(user, span_warning("You [locked ? "enable" : "disable"] the safety lock on \the [src]."))
else
to_chat(user, "<span class='warning'>Access denied.</span>")
user.visible_message("<span class='notice'>[user] swipes \the [I] against \the [src].</span>")
to_chat(user, span_warning("Access denied."))
user.visible_message(span_notice("[user] swipes \the [I] against \the [src]."))
else
return ..()
@@ -102,13 +102,13 @@
..()
if(lockable)
locked = !locked
to_chat(user, "<span class='warning'>You [locked ? "enable" : "disable"] the safety lock on \the [src]!</span>")
to_chat(user, span_warning("You [locked ? "enable" : "disable"] the safety lock on \the [src]!"))
/obj/item/gun/energy/locked/special_check(mob/user)
if(locked)
var/turf/T = get_turf(src)
if(T.z in using_map.station_levels)
to_chat(user, "<span class='warning'>The safety device prevents the gun from firing this close to the facility.</span>")
to_chat(user, span_warning("The safety device prevents the gun from firing this close to the facility."))
return 0
return ..()
@@ -145,8 +145,8 @@
return
recharging = 1
update_icon()
user.visible_message("<span class='notice'>[user] opens \the [src] and starts pumping the handle.</span>", \
"<span class='notice'>You open \the [src] and start pumping the handle.</span>")
user.visible_message(span_notice("[user] opens \the [src] and starts pumping the handle."), \
span_notice("You open \the [src] and start pumping the handle."))
while(recharging)
if(!do_after(user, 10, src))
break

View File

@@ -1020,7 +1020,7 @@
/*
/obj/item/gun/projectile/automatic/serdy/kord/afteratt(atom/A, mob/living/user, adjacent, params)
if(user.size_multiplier <= 0.5) //They're 50% or lower. If they fire this gun, they're gonna get obliterated.
to_chat(user,"<span class='warning'>You struggle to reach the trigger. Maybe shooting such a big gun isn't such a good idea...</span>")
to_chat(user,span_warning("You struggle to reach the trigger. Maybe shooting such a big gun isn't such a good idea..."))
if(do_after(user, 5 SECONDS)) //Give them a chance to take it back.
. = ..() //RIP
@@ -1041,8 +1041,8 @@
if(is_human && H.eyecheck() < 1)
user.flash_eyes() //Flashbang effect
user.visible_message(/*What other people experience*/"<span class='notice'>[user] manages to pull the trigger on the [src], causing a large bang and a big flash before [src] recoils backwards, crashing violently into [user] and causing them to go flying!</span>", \
/*What you experience*/ "<span class='warning'>As you pull the trigger, you suddenly see a flash of bright white light and a loud bang which immediately triggers ringing in your ears. Before you can even react, you feel the giant gun crashing into you and propelling you backwards, and then everything goes black!</span>")
user.visible_message(/*What other people experience*/span_notice("[user] manages to pull the trigger on the [src], causing a large bang and a big flash before [src] recoils backwards, crashing violently into [user] and causing them to go flying!"), \
/*What you experience*/ span_warning("As you pull the trigger, you suddenly see a flash of bright white light and a loud bang which immediately triggers ringing in your ears. Before you can even react, you feel the giant gun crashing into you and propelling you backwards, and then everything goes black!"))
if(user.organs && user.organs.len) //You are going to break a lot of bones.
user.apply_damage(15, BRUTE, BP_L_ARM)
user.apply_damage(15, BRUTE, BP_R_ARM)
@@ -1071,7 +1071,7 @@
var/damage_factor = (1 - unhappy_factor) //Unhappy factor is 0 at max unhappiness. Damage_factor is 1 at max unhappiness.
var/prob_to_drop = (33 + damage_factor*66) //100% if just above 50%, 33% if just below 125%
var/damage_taken = 5 + 10 * damage_factor //15 damage if just above 50%, 5 if just below 125%
var/message_on_fire = "<span class='notice'>As you pull the trigger, you feel the gun painfully slam into your shoulder, leaving a painful bruise!</span>"
var/message_on_fire = span_notice("As you pull the trigger, you feel the gun painfully slam into your shoulder, leaving a painful bruise!")
var/in_left_hand = TRUE
if(user.r_hand == src)
in_left_hand = FALSE
@@ -1079,7 +1079,7 @@
user.apply_damage(damage_taken,BRUTE,damaged_body_part) //Bruise
user.apply_damage(damage_taken * 3,HALLOSS) //Ouchie juice
if(prob(prob_to_drop))
message_on_fire += "<span class='notice'> The force causes you to stumble backwards, dropping the gun and falling to the ground.</span>"
message_on_fire += span_notice(" The force causes you to stumble backwards, dropping the gun and falling to the ground.")
user.drop_item()
user.apply_effect(25,WEAKEN)
*/
@@ -1637,11 +1637,11 @@
if(istype(A, /obj/item/surgical/circular_saw) || istype(A, /obj/item/melee/energy) || istype(A, /obj/item/pickaxe/plasmacutter))
if(sawn_off) //Don't do anything if we were already sawed off.
return
to_chat(user, "<span class='notice'>You begin to shorten the barrel of \the [src].</span>")
to_chat(user, span_notice("You begin to shorten the barrel of \the [src]."))
if(loaded.len)
var/burstsetting = burst
burst = 2
user.visible_message("<span class='danger'>The shotgun goes off!</span>", "<span class='danger'>The shotgun goes off in your face!</span>")
user.visible_message(span_danger("The shotgun goes off!"), span_danger("The shotgun goes off in your face!"))
Fire_userless(user)
burst = burstsetting
return
@@ -1650,7 +1650,7 @@
item_state = "sawnshotgun"
desc = "Omar's coming!"
to_chat(user, "<span class='warning'>You shorten the barrel of \the [src]!</span>")
to_chat(user, span_warning("You shorten the barrel of \the [src]!"))
else
..()

View File

@@ -36,24 +36,24 @@
switch(one_handed_penalty)
if(1 to 15)
if(prob(50)) //don't need to tell them every single time
to_chat(user, "<span class='warning'>Your aim wavers slightly.</span>")
to_chat(user, span_warning("Your aim wavers slightly."))
if(16 to 30)
to_chat(user, "<span class='warning'>Your aim wavers as you fire \the [src] with just one hand.</span>")
to_chat(user, span_warning("Your aim wavers as you fire \the [src] with just one hand."))
if(31 to 45)
to_chat(user, "<span class='warning'>You have trouble keeping \the [src] on target with just one hand.</span>")
to_chat(user, span_warning("You have trouble keeping \the [src] on target with just one hand."))
if(46 to INFINITY)
to_chat(user, "<span class='warning'>You struggle to keep \the [src] on target with just one hand!</span>")
to_chat(user, span_warning("You struggle to keep \the [src] on target with just one hand!"))
else if(!user.can_wield_item(src))
switch(one_handed_penalty)
if(1 to 15)
if(prob(50)) //don't need to tell them every single time
to_chat(user, "<span class='warning'>Your aim wavers slightly.</span>")
to_chat(user, span_warning("Your aim wavers slightly."))
if(16 to 30)
to_chat(user, "<span class='warning'>Your aim wavers as you try to hold \the [src] steady.</span>")
to_chat(user, span_warning("Your aim wavers as you try to hold \the [src] steady."))
if(31 to 45)
to_chat(user, "<span class='warning'>You have trouble holding \the [src] steady.</span>")
to_chat(user, span_warning("You have trouble holding \the [src] steady."))
if(46 to INFINITY)
to_chat(user, "<span class='warning'>You struggle to hold \the [src] steady!</span>")
to_chat(user, span_warning("You struggle to hold \the [src] steady!"))
if(recoil)
spawn()
@@ -80,7 +80,7 @@
var/result = bolt_toggle(TRUE)
update_icon()
if(!result)
to_chat(user,"<span class='notice'>Nothing happens.</span>")
to_chat(user,span_notice("Nothing happens."))
else
var/closed = CHECK_BITFIELD(result,BOLT_CLOSED)
var/opened = CHECK_BITFIELD(result,BOLT_OPENED)
@@ -93,38 +93,38 @@
var/casing_chambered = CHECK_BITFIELD(result,BOLT_CASING_CHAMBERED) ? ", chambering a new round" : ""
if(closed && opened)
playsound(src, sound_ejectchamber, 50, 0)
user.visible_message("<span class='notice'>[user] pulls back \the [bolt_name] before releasing it[close_open_ejected] causing it to slide forward again[casing_chambered].</span>", \
"<span class='notice'>You pull back \the [bolt_name] before releasing it[close_open_ejected] causing it to slide forward again[casing_chambered].</span>")
user.visible_message(span_notice("[user] pulls back \the [bolt_name] before releasing it[close_open_ejected] causing it to slide forward again[casing_chambered]."), \
span_notice("You pull back \the [bolt_name] before releasing it[close_open_ejected] causing it to slide forward again[casing_chambered]."))
user.hud_used.update_ammo_hud(user, src)
else if(opened)
playsound(src, sound_eject, 50, 0)
if(locked)
if(CHECK_BITFIELD(auto_loading_type,LOCK_MANUAL_LOCK))
playsound(src, sound_ejectchamber, 50, 0)
user.visible_message("<span class='notice'>[user] pulls back \the [bolt_name] and locks it in the open position[casing_chambered][other_ejected].</span>", \
"<span class='notice'>You pull back \the [bolt_name] and lock it in the open position[other_ejected][casing_chambered].</span>")
user.visible_message(span_notice("[user] pulls back \the [bolt_name] and locks it in the open position[casing_chambered][other_ejected]."), \
span_notice("You pull back \the [bolt_name] and lock it in the open position[other_ejected][casing_chambered]."))
else
user.visible_message("<span class='notice'>[user] pulls back \the [bolt_name] before releasing it, causing it to lock in the open position[casing_chambered][other_ejected].</span>", \
"<span class='notice'>You pull back \the [bolt_name] before releasing it, causing it to lock in the open position[casing_chambered][other_ejected].</span>")
user.visible_message(span_notice("[user] pulls back \the [bolt_name] before releasing it, causing it to lock in the open position[casing_chambered][other_ejected]."), \
span_notice("You pull back \the [bolt_name] before releasing it, causing it to lock in the open position[casing_chambered][other_ejected]."))
else
user.visible_message("<span class='notice'>[user] opens \the [bolt_name][casing_chambered][other_ejected].</span>", \
"<span class='notice'>You pull back \the [bolt_name][casing_chambered][other_ejected].</span>")
user.visible_message(span_notice("[user] opens \the [bolt_name][casing_chambered][other_ejected]."), \
span_notice("You pull back \the [bolt_name][casing_chambered][other_ejected]."))
else if(closed)
playsound(src, sound_chamber, 50, 0)
if(unlocked)
if(bolt_release)
if(user.a_intent == I_HURT && CHECK_BITFIELD(auto_loading_type,LOCK_SLAPPABLE))
user.visible_message("<span class='notice'>[user] slaps the [bolt_release], causing \the [bolt_name] to slide forward[casing_chambered]!</span>", \
"<span class='notice'>You slap the [bolt_release], causing \the [bolt_name] to slide forward[casing_chambered]!</span>")
user.visible_message(span_notice("[user] slaps the [bolt_release], causing \the [bolt_name] to slide forward[casing_chambered]!"), \
span_notice("You slap the [bolt_release], causing \the [bolt_name] to slide forward[casing_chambered]!"))
else
user.visible_message("<span class='notice'>[user] presses the [bolt_release], causing \the [bolt_name] to slide forward[casing_chambered].</span>", \
"<span class='notice'>You press the [bolt_release], causing \the [bolt_name] to slide forward[casing_chambered].</span>")
user.visible_message(span_notice("[user] presses the [bolt_release], causing \the [bolt_name] to slide forward[casing_chambered]."), \
span_notice("You press the [bolt_release], causing \the [bolt_name] to slide forward[casing_chambered]."))
else
user.visible_message("<span class='notice'>[user] pulls \the [bolt_name] back the rest of the way, causing it to slide forward[casing_chambered].</span>", \
"<span class='notice'>You pull \the [bolt_name] back the rest of the way, causing it to slide forward[casing_chambered].</span>")
user.visible_message(span_notice("[user] pulls \the [bolt_name] back the rest of the way, causing it to slide forward[casing_chambered]."), \
span_notice("You pull \the [bolt_name] back the rest of the way, causing it to slide forward[casing_chambered]."))
else
user.visible_message("<span class='notice'>[user] closes \the [bolt_name][casing_chambered].</span>", \
"<span class='notice'>You close \the [bolt_name][casing_chambered].</span>")
user.visible_message(span_notice("[user] closes \the [bolt_name][casing_chambered]."), \
span_notice("You close \the [bolt_name][casing_chambered]."))
user.hud_used.update_ammo_hud(user, src)
/obj/item/gun/projectile/proc/bolt_toggle(var/manual)
@@ -146,7 +146,7 @@
return output
else
if(!manual)
visible_message(src,"<span class='notice'>The [src] fires its last round, causing the [bolt_name] to lock.</span>")
visible_message(src,span_notice("The [src] fires its last round, causing the [bolt_name] to lock."))
bolt_open = TRUE
bolt_locked = TRUE
var/ejected = process_chambered()
@@ -271,22 +271,22 @@
if(istype(A, /obj/item/ammo_magazine))
var/obj/item/ammo_magazine/AM = A
if(!(load_method & AM.mag_type) || caliber != AM.caliber || allowed_magazines && !is_type_in_list(A, allowed_magazines))
to_chat(user, "<span class='warning'>[AM] won't load into [src]!</span>")
to_chat(user, span_warning("[AM] won't load into [src]!"))
return
var/loading_method = AM.mag_type & load_method
if(loading_method == (MAGAZINE & SPEEDLOADER)) loading_method = MAGAZINE //Default to magazine if both are valid
switch(loading_method)
if(MAGAZINE)
if(ammo_magazine)
to_chat(user, "<span class='warning'>[src] already has a magazine loaded.</span>") //already a magazine here
to_chat(user, span_warning("[src] already has a magazine loaded.")) //already a magazine here
return
if(manual_chamber && CHECK_BITFIELD(auto_loading_type,OPEN_BOLT) && bolt_open)
to_chat(user, "<span class='warning'>This is an open bolt gun. Make sure you close the bolt before inserting a new magazine.</span>")
to_chat(user, span_warning("This is an open bolt gun. Make sure you close the bolt before inserting a new magazine."))
return
user.remove_from_mob(AM)
AM.loc = src
ammo_magazine = AM
user.visible_message("[user] inserts [AM] into [src].", "<span class='notice'>You insert [AM] into [src].</span>")
user.visible_message("[user] inserts [AM] into [src].", span_notice("You insert [AM] into [src]."))
if(manual_chamber && CHECK_BITFIELD(auto_loading_type,CHAMBER_ON_RELOAD) && bolt_open && !chambered)
chamber_bullet()
bolt_toggle()
@@ -294,10 +294,10 @@
user.hud_used.update_ammo_hud(user, src)
if(SPEEDLOADER)
if(only_open_load && !bolt_open)
to_chat(user, "<span_class='warning'>[src] must have its bolt open to be loaded!</span>")
to_chat(user, span_warning("[src] must have its bolt open to be loaded!"))
return
if(loaded.len >= max_shells)
to_chat(user, "<span class='warning'>[src] is full!</span>")
to_chat(user, span_warning("[src] is full!"))
return
var/count = 0
for(var/obj/item/ammo_casing/C in AM.stored_ammo)
@@ -309,7 +309,7 @@
AM.stored_ammo -= C //should probably go inside an ammo_magazine proc, but I guess less proc calls this way...
count++
if(count)
user.visible_message("[user] reloads [src].", "<span class='notice'>You load [count] round\s into [src].</span>")
user.visible_message("[user] reloads [src].", span_notice("You load [count] round\s into [src]."))
playsound(src, 'sound/weapons/empty.ogg', 50, 1)
user.hud_used.update_ammo_hud(user, src)
AM.update_icon()
@@ -323,27 +323,27 @@
if(!chambered)
if(bolt_open)
if(do_after(user,5))
user.visible_message("<span class='notice'>[user] slides \the [C] into the [src]'s chamber.</span>","<span class='notice'>You slide \the [C] into the [src]'s chamber.</span>")
user.visible_message(span_notice("[user] slides \the [C] into the [src]'s chamber."),span_notice("You slide \the [C] into the [src]'s chamber."))
chambered = C
user.hud_used.update_ammo_hud(user, src)
else
return
else if(!(CHECK_BITFIELD(auto_loading_type,LOCK_OPEN_EMPTY) || (CHECK_BITFIELD(auto_loading_type,LOCK_MANUAL_LOCK))))
if(do_after(user,15))
user.visible_message("<span class='notice'>[user] holds open \the [src]'s [bolt_name] and slides [C] into the chamber before letting the bolt close again.</span>","<span class='notice'>You slide \the [C] into the [src]'s chamber.</span>")
user.visible_message(span_notice("[user] holds open \the [src]'s [bolt_name] and slides [C] into the chamber before letting the bolt close again."),span_notice("You slide \the [C] into the [src]'s chamber."))
chambered = C
user.hud_used.update_ammo_hud(user, src)
else
return
else
to_chat(user,"<span class='warning'>Open the bolt first before chambering a round!</span>")
to_chat(user,span_warning("Open the bolt first before chambering a round!"))
return
else
to_chat(user,"<span class='warning'>Eject the current chambered round before trying to chamber a new one!</span>")
to_chat(user,span_warning("Eject the current chambered round before trying to chamber a new one!"))
return
else
to_chat(user,"<span class='warning'>You can't manually chamber rounds with an open bolt gun!</span>")
to_chat(user,span_warning("You can't manually chamber rounds with an open bolt gun!"))
return
user.remove_from_mob(C)
C.loc = src
@@ -352,16 +352,16 @@
else
return
if(only_open_load && !bolt_open)
to_chat(user, "<span_class='warning'>[src] must have its bolt open to be loaded!</span>")
to_chat(user, span_warning("[src] must have its bolt open to be loaded!"))
return
if(loaded.len >= max_shells)
to_chat(user, "<span class='warning'>[src] is full.</span>")
to_chat(user, span_warning("[src] is full."))
return
user.remove_from_mob(C)
C.loc = src
loaded.Insert(1, C) //add to the head of the list
user.visible_message("[user] inserts \a [C] into [src].", "<span class='notice'>You insert \a [C] into [src].</span>")
user.visible_message("[user] inserts \a [C] into [src].", span_notice("You insert \a [C] into [src]."))
playsound(src, 'sound/weapons/empty.ogg', 50, 1)
user.hud_used.update_ammo_hud(user, src)
@@ -370,7 +370,7 @@
if(!(load_method & SINGLE_CASING))
return //incompatible
to_chat(user, "<span class='notice'>You start loading \the [src].</span>")
to_chat(user, span_notice("You start loading \the [src]."))
sleep(1 SECOND)
for(var/obj/item/ammo_casing/ammo in storage.contents)
if(caliber != ammo.caliber)
@@ -380,7 +380,7 @@
user.hud_used.update_ammo_hud(user, src)
if(loaded.len >= max_shells)
to_chat(user, "<span class='warning'>[src] is full.</span>")
to_chat(user, span_warning("[src] is full."))
break
sleep(1 SECOND)
@@ -392,7 +392,7 @@
ammo_magazine.loc = get_turf(src.loc)
user.visible_message(
"[ammo_magazine] falls out and clatters on the floor!",
"<span class='notice'>[ammo_magazine] falls out and clatters on the floor!</span>"
span_notice("[ammo_magazine] falls out and clatters on the floor!")
)
if(auto_eject_sound)
playsound(src, auto_eject_sound, 40, 1)
@@ -411,7 +411,7 @@
return
if(user && user.a_intent == I_HELP && user.read_preference(/datum/preference/toggle/safefiring)) //regardless of what happens, refuse to shoot if help intent is on
to_chat(user, "<span class='warning'>You refrain from firing your [src] as your intent is set to help.</span>")
to_chat(user, span_warning("You refrain from firing your [src] as your intent is set to help."))
return
else
@@ -422,13 +422,13 @@
if(..())
if(manual_chamber)
if(CHECK_BITFIELD(auto_loading_type,OPEN_BOLT) && !bolt_open)
to_chat(user,"<span class='warning'>This is an open bolt gun! You need to open the bolt before firing it!</span>")
to_chat(user,span_warning("This is an open bolt gun! You need to open the bolt before firing it!"))
return 0
else if(CHECK_BITFIELD(auto_loading_type,CLOSED_BOLT) && bolt_open)
to_chat(user,"<span class='warning'>This is a closed bolt gun! You need to close the bolt before firing it!</span>")
to_chat(user,span_warning("This is a closed bolt gun! You need to close the bolt before firing it!"))
return 0
else if((!auto_loading_type) && bolt_open)
to_chat(user,"<span class='warning'>This is a manual action gun, the bolt or chamber must be closed before firing it!</span>")
to_chat(user,span_warning("This is a manual action gun, the bolt or chamber must be closed before firing it!"))
return 0
else
return 1
@@ -437,13 +437,13 @@
/obj/item/gun/projectile/unload_ammo(mob/user, var/allow_dump=1)
if(manual_chamber && only_open_load && !bolt_open)
to_chat(user,"<span class='warning'>You must open the bolt to load or unload this gun!</span>")
to_chat(user,span_warning("You must open the bolt to load or unload this gun!"))
else
return ..()
/obj/item/gun/projectile/handle_click_empty(mob/user)
if (user)
user.visible_message("*click click*", "<span class='danger'>*click*</span>")
user.visible_message("*click click*", span_danger("*click*"))
else
src.visible_message("*click click*")
playsound(src, 'sound/weapons/empty.ogg', 100, 1)

View File

@@ -30,6 +30,6 @@
var/mob/living/M = A
if(istype(M) && M.maxHealth<=200)
M.dust()
visible_message("<span class='warning'>\The [src] impacts energetically with its target and shatters in a violent explosion!</span>")
visible_message(span_warning("\The [src] impacts energetically with its target and shatters in a violent explosion!"))
explosion(src.loc, 3, 4, 5, 10)
..(A)

View File

@@ -145,13 +145,13 @@
if(H.hasnutriment()) // make sure it actually has the conditions to revive
if(H.revive_ready >= 1) // if it's not reviving, start doing so
H.revive_ready = REVIVING_READY // overrides the normal cooldown
H.visible_message("<span class='info'>[H] shudders briefly, then relaxes, faint movements stirring within.</span>")
H.visible_message(span_info("[H] shudders briefly, then relaxes, faint movements stirring within."))
H.chimera_regenerate()
else if (/mob/living/carbon/human/proc/hatch in H.verbs)// already reviving, check if they're ready to hatch
H.chimera_hatch()
H.visible_message("<span class='danger'><p><font size=4>[H] violently convulses and then bursts open, revealing a new, intact copy in the pool of viscera.</font></p></span>") // Hope you were wearing waterproofs, doc...
H.visible_message(span_danger(span_huge("[H] violently convulses and then bursts open, revealing a new, intact copy in the pool of viscera."))) // Hope you were wearing waterproofs, doc...
H.adjustBrainLoss(10) // they're reviving from dead, so take 10 brainloss
else //they're already reviving but haven't hatched. Give a little message to tell them to wait.
H.visible_message("<span class='info'>[H] stirs faintly, but doesn't appear to be ready to wake up yet.</span>")
H.visible_message(span_info("[H] stirs faintly, but doesn't appear to be ready to wake up yet."))
else
H.visible_message("<span class='info'>[H] twitches for a moment, but remains still.</span>") // no nutriment
H.visible_message(span_info("[H] twitches for a moment, but remains still.")) // no nutriment

View File

@@ -50,7 +50,7 @@
if(istype(L) && L.faction)
if(L.faction == "plants") //This would be better with a variable but I'm not adding that because upstream conflicts. If you send this upstream please do this.
L.adjustToxLoss(15 * amount)
L.visible_message("<span class='warning'>[L] withers rapidly!</span>", "<span class='danger'>The chemical burns you!</span>")
L.visible_message(span_warning("[L] withers rapidly!"), span_danger("The chemical burns you!"))
//////SAP IN UNREFINED FORM////
@@ -101,11 +101,11 @@
switch(data["count"])
if(1 to 30)
if(prob(9)) M.visible_emote("blushes")
if(prob(9)) to_chat(M, "<span class='warning'>You feel so needy..</span>")
if(prob(9)) to_chat(M, span_warning("You feel so needy.."))
if (30 to INFINITY)
if(prob(3)) M.visible_emote("blushes")
if(prob(5)) M.audible_emote("moans out lewdly!")
if(prob(9)) to_chat(M, "<span class='warning'>You can't help but want to touch yourself then and now!</span>")
if(prob(9)) to_chat(M, span_warning("You can't help but want to touch yourself then and now!"))
data["count"]++
holder.remove_reagent(src.id, 0.2)
//..()

View File

@@ -19,7 +19,7 @@
return
if(user)
user.visible_message("<span class='notice'>[user] is injecting a backup implant into [user].</span>")
user.visible_message(span_notice("[user] is injecting a backup implant into [user]."))
user.setClickCooldown(DEFAULT_QUICK_COOLDOWN)
@@ -35,7 +35,7 @@
if(imp.handle_implant(user, user.zone_sel.selecting))
imp.post_implant(user)
add_attack_logs(user, user, "Implanted backup implant")
user.visible_message("<span class='notice'>[user] has been backup implanted by [user].</span>")
user.visible_message(span_notice("[user] has been backup implanted by [user]."))
//If implanting somehow fails, delete the implant.
else
@@ -45,23 +45,23 @@
if(O.is_wrench())
if(anchored)
to_chat(user, "<span class='notice'>You start to unwrench the implanter.</span>")
to_chat(user, span_notice("You start to unwrench the implanter."))
playsound(src, O.usesound, 50, 1)
if(do_after(user, 15 * O.toolspeed))
to_chat(user, "<span class='notice'>You unwrench the implanter.</span>")
to_chat(user, span_notice("You unwrench the implanter."))
anchored = FALSE
return
else
return
else
to_chat(user, "<span class='notice'>You start to wrench the implanter into place.</span>")
to_chat(user, span_notice("You start to wrench the implanter into place."))
playsound(src, O.usesound, 50, 1)
if(do_after(user, 15 * O.toolspeed))
to_chat(user, "<span class='notice'>You wrench the implanter into place.</span>")
to_chat(user, span_notice("You wrench the implanter into place."))
anchored = TRUE
return
else

View File

@@ -61,16 +61,16 @@
detect(user)
if(!linked_pad || QDELETED(linked_pad))
if(!map_pad_link_id || !initMappedLink())
to_chat(user, "<span class='warning'>There is no linked pad!</span>")
to_chat(user, span_warning("There is no linked pad!"))
return
if(teleporting)
to_chat(user, "<span class='warning'>[src] is charging up. Please wait.</span>")
to_chat(user, span_warning("[src] is charging up. Please wait."))
return
if(world.time < last_teleport + teleport_cooldown)
to_chat(user, "<span class='warning'>[src] is recharging power. Please wait [round((last_teleport + teleport_cooldown - world.time)/10)] seconds.</span>")
to_chat(user, span_warning("[src] is recharging power. Please wait [round((last_teleport + teleport_cooldown - world.time)/10)] seconds."))
return
if(linked_pad.teleporting)
to_chat(user, "<span class='warning'>Linked pad is busy. Please wait.</span>")
to_chat(user, span_warning("Linked pad is busy. Please wait."))
return
src.add_fingerprint(user)
startteleport(user)
@@ -102,7 +102,7 @@
ready = 1
start_charge()
else
to_chat(user, "<span class='warning'>Pad detect failed. Are all eight pieces linked?</span>")
to_chat(user, span_warning("Pad detect failed. Are all eight pieces linked?"))
/obj/machinery/hyperpad/centre/proc/startteleport(mob/user)
if(!linked_pad)
@@ -123,7 +123,7 @@
teleporting = 0
return
if(!linked_pad || QDELETED(linked_pad))
to_chat(user, "<span class='warning'>Linked pad is not responding to ping. Teleport aborted.</span>")
to_chat(user, span_warning("Linked pad is not responding to ping. Teleport aborted."))
teleporting = 0
return

View File

@@ -33,7 +33,7 @@
if(data_core)
html = data_core.get_manifest(FALSE,TRUE,snowflake = TRUE)
else
html = "<b>ERROR: NO DATACORE</b>" //Could make the error more fancy later
html = span_bold("ERROR: NO DATACORE") //Could make the error more fancy later
rustg_file_write(html,"[CONFIG_GET(string/nodebot_location)]\\html.html")
/datum/tgs_chat_command/manifest/Run(datum/tgs_chat_user/sender, params)

View File

@@ -122,7 +122,7 @@
if(!RTB)
return FALSE
to_chat(src, "<span class='vnotice'>[RTB] has [RTB.reagents.total_volume] units of liquid.</span>")
to_chat(src, span_vnotice("[RTB] has [RTB.reagents.total_volume] units of liquid."))
/mob/living/proc/vore_transfer_reagents()
set name = "Transfer Liquid (Vore)"
@@ -139,7 +139,7 @@
if(!TG)
return FALSE
if(TG.give_reagents == FALSE && user != TG) //User isnt forced to allow giving in prefs if they are the one doing it
to_chat(user, "<span class='vwarning'>This person's prefs dont allow that!</span>")
to_chat(user, span_vwarning("This person's prefs dont allow that!"))
return FALSE
var/obj/belly/RTB = input("Choose which vore belly to transfer from") as null|anything in TG.vore_organs //First they choose the belly to transfer from.
@@ -164,20 +164,20 @@
if(!Adjacent(TR) || !Adjacent(TG))
return //No long distance transfer
if(!TR.reagents.get_free_space())
to_chat(user, "<span class='vnotice'>[TB] is full!</span>")
to_chat(user, span_vnotice("[TB] is full!"))
return FALSE
if(TG == user)
user.custom_emote_vr(1, "<span class='vnotice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from their [lowertext(RTB.name)] into their [lowertext(TB.name)].</span>")
user.custom_emote_vr(1, span_vnotice("[RTB.reagent_transfer_verb] [RTB.reagent_name] from their [lowertext(RTB.name)] into their [lowertext(TB.name)]."))
else
user.custom_emote_vr(1, "<span class='vnotice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from [TG]'s [lowertext(RTB.name)] into their [lowertext(TB.name)].</span>")
user.custom_emote_vr(1, span_vnotice("[RTB.reagent_transfer_verb] [RTB.reagent_name] from [TG]'s [lowertext(RTB.name)] into their [lowertext(TB.name)]."))
add_attack_logs(user,TR,"Transfered [RTB.reagent_name] from [TG]'s [RTB] to [TR]'s [TB]") //Bonus for staff so they can see if people have abused transfer and done pref breaks
RTB.reagents.vore_trans_to_mob(TR, transfer_amount, CHEM_VORE, 1, 0, TB)
if(RTB.count_liquid_for_sprite || TB.count_liquid_for_sprite)
update_fullness()
else if(TR.receive_reagents == FALSE)
to_chat(user, "<span class='vwarning'>This person's prefs dont allow that!</span>")
to_chat(user, span_vwarning("This person's prefs dont allow that!"))
return FALSE
else
@@ -187,13 +187,13 @@
if(!Adjacent(TR) || !Adjacent(TG))
return //No long distance transfer
if(!TR.reagents.get_free_space())
to_chat(user, "<span class='vnotice'>[TR]'s [lowertext(TB.name)] is full!</span>")
to_chat(user, span_vnotice("[TR]'s [lowertext(TB.name)] is full!"))
return FALSE
if(TG == user)
user.custom_emote_vr(1, "<span class='vnotice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from their [lowertext(RTB.name)] into [TR]'s [lowertext(TB.name)].</span>")
user.custom_emote_vr(1, span_vnotice("[RTB.reagent_transfer_verb] [RTB.reagent_name] from their [lowertext(RTB.name)] into [TR]'s [lowertext(TB.name)]."))
else
user.custom_emote_vr(1, "<span class='vnotice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from [TG]s [lowertext(RTB.name)] into [TR]'s [lowertext(TB.name)].</span>")
user.custom_emote_vr(1, span_vnotice("[RTB.reagent_transfer_verb] [RTB.reagent_name] from [TG]s [lowertext(RTB.name)] into [TR]'s [lowertext(TB.name)]."))
RTB.reagents.vore_trans_to_mob(TR, transfer_amount, CHEM_VORE, 1, 0, TB)
add_attack_logs(user,TR,"Transfered reagents from [TG]'s [RTB] to [TR]'s [TB]") //Bonus for staff so they can see if people have abused transfer and done pref breaks
@@ -211,23 +211,23 @@
if(TR == user) //Proceed, we dont need to have prefs enabled for transfer within user
if(TG == user)
user.custom_emote_vr(1, "<span class='vnotice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from their [lowertext(RTB.name)] into their stomach.</span>")
user.custom_emote_vr(1, span_vnotice("[RTB.reagent_transfer_verb] [RTB.reagent_name] from their [lowertext(RTB.name)] into their stomach."))
else
user.custom_emote_vr(1, "<span class='vnotice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from [TG]'s [lowertext(RTB.name)] into their stomach.</span>")
user.custom_emote_vr(1, span_vnotice("[RTB.reagent_transfer_verb] [RTB.reagent_name] from [TG]'s [lowertext(RTB.name)] into their stomach."))
RTB.reagents.vore_trans_to_mob(TR, transfer_amount, CHEM_INGEST, 1, 0, null)
add_attack_logs(user,TR,"Transfered [RTB.reagent_name] from [TG]'s [RTB] to [TR]'s Stomach")
if(RTB.count_liquid_for_sprite)
update_fullness()
else if(TR.receive_reagents == FALSE)
to_chat(user, "<span class='vwarning'>This person's prefs dont allow that!</span>")
to_chat(user, span_vwarning("This person's prefs dont allow that!"))
return FALSE
else
if(TG == user)
user.custom_emote_vr(1, "<span class='vnotice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from their [lowertext(RTB.name)] into [TR]'s stomach.</span>")
user.custom_emote_vr(1, span_vnotice("[RTB.reagent_transfer_verb] [RTB.reagent_name] from their [lowertext(RTB.name)] into [TR]'s stomach."))
else
user.custom_emote_vr(1, "<span class='vnotice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from [TG]'s [lowertext(RTB.name)] into [TR]'s stomach.</span>")
user.custom_emote_vr(1, span_vnotice("[RTB.reagent_transfer_verb] [RTB.reagent_name] from [TG]'s [lowertext(RTB.name)] into [TR]'s stomach."))
RTB.reagents.vore_trans_to_mob(TR, transfer_amount, CHEM_INGEST, 1, 0, null)
add_attack_logs(user,TR,"Transfered [RTB.reagent_name] from [TG]'s [RTB] to [TR]'s Stomach") //Bonus for staff so they can see if people have abused transfer and done pref breaks
@@ -247,9 +247,9 @@
return //No long distance transfer
if(TG == user)
user.custom_emote_vr(1, "<span class='vnotice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from their [lowertext(RTB.name)] into [T].</span>")
user.custom_emote_vr(1, span_vnotice("[RTB.reagent_transfer_verb] [RTB.reagent_name] from their [lowertext(RTB.name)] into [T]."))
else
user.custom_emote_vr(1, "<span class='vnotice'>[RTB.reagent_transfer_verb] [RTB.reagent_name] from [TG]'s [lowertext(RTB.name)] into [T].</span>")
user.custom_emote_vr(1, span_vnotice("[RTB.reagent_transfer_verb] [RTB.reagent_name] from [TG]'s [lowertext(RTB.name)] into [T]."))
RTB.reagents.vore_trans_to_con(T, transfer_amount, 1, 0)
add_attack_logs(user, T,"Transfered [RTB.reagent_name] from [TG]'s [RTB] to a [T]") //Bonus for staff so they can see if people have abused transfer and done pref breaks
@@ -264,13 +264,13 @@
var/puddle_amount = round(amount_removed/5)
if(puddle_amount == 0)
to_chat(user,"<span class='vnotice'>[RTB.reagent_name] dripples from the [lowertext(RTB.name)], not enough to form a puddle.</span> ")
to_chat(user,span_vnotice("[RTB.reagent_name] dripples from the [lowertext(RTB.name)], not enough to form a puddle."))
return
if(TG == user)
user.custom_emote_vr(1, "<span class='vnotice'>spills [RTB.reagent_name] from their [lowertext(RTB.name)] onto the floor!</span>")
user.custom_emote_vr(1, span_vnotice("spills [RTB.reagent_name] from their [lowertext(RTB.name)] onto the floor!"))
else
user.custom_emote_vr(1, "<span class='vnotice'>spills [RTB.reagent_name] from [TG]'s [lowertext(RTB.name)] onto the floor!</span>")
user.custom_emote_vr(1, span_vnotice("spills [RTB.reagent_name] from [TG]'s [lowertext(RTB.name)] onto the floor!"))
var/obj/effect/decal/cleanable/blood/reagent/puddle = null
if (RTB.custom_reagentcolor)
@@ -308,7 +308,7 @@
custom_emote_vr(1, "gives some rubs over [T]'s [belly_rub_target ? belly_rub_target : lowertext(B.name)].")
B.quick_cycle()
return TRUE
to_chat(src, "<span class='vwarning'>There is no suitable belly for rubs.</span>")
to_chat(src, span_vwarning("There is no suitable belly for rubs."))
return FALSE
/mob/living/proc/mute_entry()
@@ -316,21 +316,21 @@
set category = "Preferences.Vore"
set desc = "Mute the chatlog messages when something enters a vore belly."
mute_entry = !mute_entry
to_chat(src, "<span class='vwarning'>Entrance logs [mute_entry ? "disabled" : "enabled"].</span>")
to_chat(src, span_vwarning("Entrance logs [mute_entry ? "disabled" : "enabled"]."))
/mob/living/proc/restrict_trasheater()
set name = "Restrict Trash Eater"
set category = "Abilities.Vore"
set desc = "Toggle Trash Eater restriction level."
adminbus_trash = !adminbus_trash
to_chat(src, "<span class='vwarning'>Trash Eater restriction level set to [adminbus_trash ? "everything not blacklisted" : "only whitelisted items"].</span>")
to_chat(src, span_vwarning("Trash Eater restriction level set to [adminbus_trash ? "everything not blacklisted" : "only whitelisted items"]."))
/mob/living/proc/liquidbelly_visuals()
set name = "Toggle Liquidbelly Visuals"
set category = "Preferences.Vore"
set desc = "Toggle liquidbelly fullscreen visual effect."
liquidbelly_visuals = !liquidbelly_visuals
to_chat(src, "<span class='vwarning'>Liquidbelly overlays [liquidbelly_visuals ? "enabled" : "disabled"].</span>")
to_chat(src, span_vwarning("Liquidbelly overlays [liquidbelly_visuals ? "enabled" : "disabled"]."))
/mob/living/proc/fix_vore_effects()
set name = "Fix Vore Effects"
@@ -351,7 +351,7 @@
set name = "Check Nutrition"
set category = "Abilities.Vore"
set desc = "Check your current nutrition level."
to_chat(src, "<span class='vnotice'>Current nutrition level: [nutrition].</span>")
to_chat(src, span_vnotice("Current nutrition level: [nutrition]."))
// This proc will either return the first belly the mob is in or return null if they're not in one
/mob/living/proc/surrounding_belly()

View File

@@ -157,22 +157,22 @@ h4
}
.uiTitleWrapper
{
{
position:fixed;
top:0px;
left:0px;
right:0px;
z-index: 10
}
}
.uiTitleButtons
{
.uiTitleButtons
{
position:fixed;
top:0px;
right:0px;
height:32px;
z-index:11;
}
}
.uiTitle.icon
@@ -189,17 +189,17 @@ h4
font-family: Verdana, Geneva, sans-serif;
}
.good
.good, .green
{
color: #00ff00;
}
.average
.average, .orange
{
color: #d09000;
}
.bad
.bad, .red
{
color: #ff0000;
}
@@ -214,6 +214,64 @@ h4
color: #272727;
}
.darkgreen {
color: #008000;
}
.grey {
color: #838383;
}
.crimson {
color: #dc143c;
}
.maroon {
color: #800000;
}
.brown {
color: #8d4925;
}
.blue {
color: #0000ff;
}
.black {
color: #000000;
}
.white {
color: #000000;
}
.darkgray {
color: #808080;
}
.gray {
color: #a9a9a9;
}
.yellow {
color: #ffcc00;
}
.pink {
color: #ffc0cb;
}
.cyan {
color: #00ffff;
}
.nicegreen {
color: #14a833;
}
.notice
{
position: relative;
@@ -225,6 +283,18 @@ h4
margin: 4px;
}
.boldnotice
{
position: relative;
background: #E9C183;
color: #15345A;
font-weight: bold;
font-size: 10px;
font-style: italic;
padding: 2px 4px 0 4px;
margin: 4px;
}
.notice.icon
{
padding: 2px 4px 0 20px;
@@ -328,3 +398,16 @@ div.notice
width: 100%;
clear: both;
}
.italic,
.italics {
font-style: italic;
}
.bold {
font-weight: bold;
}
.underline {
text-decoration: underline;
}

View File

@@ -537,38 +537,38 @@
/obj/item/paper/awaygate/snowfield/evacuation_order
name = "Order Directives"
info = "<center><B><font size=\"6\">HIGH PRIORITY ORDERS</font></B><BR><BR><BR>ORDERS \
TO <B>ALL CLASS 1, 2, 3 PERSONNEL</B><BR>Date of Order : <B>April 10, 1979</B>.</center> <BR><BR><BR>\
Directives : <B>Evacuation preparation from Facility. <BR>All related personnel, EXCLUDING 3M personnel \
info = "<center>" + span_bold(span_giganteus("HIGH PRIORITY ORDERS")) + "<BR><BR><BR>ORDERS \
TO " + span_bold("ALL CLASS 1, 2, 3 PERSONNEL") + "<BR>Date of Order : " + span_bold("April 10, 1979") + ".</center> <BR><BR><BR>\
Directives : " + span_bold("Evacuation preparation from Facility. <BR>All related personnel, EXCLUDING 3M personnel \
must head to Chelyabinsk until 2100, April 10 and await for further directives.<BR>Base MUST \
maintain necessary items only. </B><BR><BR>Further directives and details shall be guided by <B>Class 4 \
or above personnel.</B>"
maintain necessary items only.") + "<BR><BR>Further directives and details shall be guided by " + span_bold("Class 4 \
or above personnel.")
/obj/item/paper/awaygate/snowfield/evacuation_order2
name = "Mid Command Order Directives"
info = "<center><B><font size=\"6\">HIGH PRIORITY ORDERS</font></B><BR><BR><BR>ORDERS \
TO <B>ALL CLASS 4 PERSONNEL</B><BR>Date of Order : <B>April 10, 1979</B>.</center> <BR><BR><BR>\
Directives : <B>Evacuation preparation from Facility. <BR>All class 1,2,3 personnel must head to \
info = "<center>" + span_bold(span_giganteus("HIGH PRIORITY ORDERS")) + "<BR><BR><BR>ORDERS \
TO " + span_bold("ALL CLASS 4 PERSONNEL") + "<BR>Date of Order : " + span_bold("April 10, 1979") + ".</center> <BR><BR><BR>\
Directives : " + span_bold("Evacuation preparation from Facility. <BR>All class 1,2,3 personnel must head to \
Chelyabinsk and empty the facility, EXCLUDING Medical team. (3M)<BR>Base MUST maintain necessary items only \
to operate 'Tunguska' and supplies for the crews who remains. 'Tunguska' Activation time at 0300, April 11, \
1979.</B><BR><BR>Further directives and details shall be guided by <B>Class 6 or above personnel.</B>"
1979.") + "<BR><BR>Further directives and details shall be guided by " + span_bold("Class 6 or above personnel.") + ""
/obj/item/paper/awaygate/snowfield/evacuation_order3
name = "High Command Order Directives"
info = "<center><B><font size=\"6\">HIGH PRIORITY ORDERS</font></B><BR><BR><BR>ORDERS \
TO <B>ALL CLASS 5, 6 PERSONNEL</B><BR>Date of Order : <B>April 10, 1979</B>.</center> <BR><BR><BR>\
Directives : <B>Evacuation preparation from Facility. <BR>All Class 1, 2, 3 personnel must head to \
info = "<center>" + span_bold(span_giganteus("HIGH PRIORITY ORDERS")) + "<BR><BR><BR>ORDERS \
TO " + span_bold("ALL CLASS 5, 6 PERSONNEL") + "<BR>Date of Order : " + span_bold("April 10, 1979") + ".</center> <BR><BR><BR>\
Directives : " + span_bold("Evacuation preparation from Facility. <BR>All Class 1, 2, 3 personnel must head to \
Chelyabinsk and empty the facility, excluding Class 3M, guided by Class 4 personnel. <BR>All Class 5, 6 must \
check the stability of 'Tunguska' before the operation. Activation time at 0300, April 11, 1979.</B>"
check the stability of 'Tunguska' before the operation. Activation time at 0300, April 11, 1979.")
/obj/item/paper/awaygate/snowfield/activation_order
name = "High Command Order Directives"
info = "<center><B><font size=\"6\">HIGH PRIORITY ORDERS</font></B><BR><BR><BR>ORDERS \
TO <B>ALL CLASS 5, 6 PERSONNEL</B><BR>Date of Order : <B>April 11, 1979</B>.</center> <BR><BR><BR>\
Directives : <B>Activation of 'Tunguska.' <BR>All class 5, 6 personnel must have a full search by \
info = "<center>" + span_bold(span_giganteus("HIGH PRIORITY ORDERS")) + "<BR><BR><BR>ORDERS \
TO " + span_bold("ALL CLASS 5, 6 PERSONNEL") + "<BR>Date of Order : " + span_bold("April 11, 1979") + ".</center> <BR><BR><BR>\
Directives : " + span_bold("Activation of 'Tunguska.' <BR>All class 5, 6 personnel must have a full search by \
Class 4 before entering the operation room. <BR>Any personnel who is not on the operations area shall \
be terminated on the spot. Notify to nearest Class 4 and 6 personnel if necessary.</B><BR><BR>Further directives \
and details shall be guided by <B>Class 6 Personnel.</B>"
be terminated on the spot. Notify to nearest Class 4 and 6 personnel if necessary.") + "<BR><BR>Further directives \
and details shall be guided by " + span_bold("Class 6 Personnel.")
/obj/item/paper/awaygate/snowfield/interrogation
name = "Interrogation note"
@@ -584,10 +584,10 @@
/obj/item/paper/awaygate/snowfield/final_note
name = "Final note"
info = "Gosh. We have opened up the hell's gate...<BR>Everyone is screaming and yelling into mid-air like a mania, \
and this... Whispering voice!<BR><B>It's in my head!</B><BR><BR>Peoples who managed to escape after the initial lockdown \
and this... Whispering voice!<BR>" + span_bold("It's in my head!") + "<BR><BR>Peoples who managed to escape after the initial lockdown \
are now trying their damnnest to break back INSIDE the base!<BR><BR>I tried my best to ignore the voice and cornered \
in this security outpost, but I'm not sure how long I will maintain sane, unlike those peoples out there...\
The voice is now <B>yelling, SCREAMING</B> at me as the time passes by! <BR><BR> I can't take this anymore longer, \
The voice is now " + span_bold("yelling, SCREAMING") + " at me as the time passes by! <BR><BR> I can't take this anymore longer, \
it is madness... Pure madness... <BR>I blew up the fastest way to the command center, so these maniacs won't be able to \
get to the command center, where the voice is echoing... But they have guns now... <BR> I'm not sure how long the blockade \
will last with that much firepower and manpower... And their pure will of madness... <BR><BR> I don't want to be one of them..."
@@ -596,14 +596,14 @@
desc = "A gift card with a heart on the cover. Hey, there's a scribble on its back..."
name = "letter"
icon_state = "greetingcard_heart"
info = "<center><B><font size=\"6\">Congradulations!</font></B></center><BR><BR>You have just found a paper that \
info = "<center>" + span_bold(span_giganteus("Congradulations!")) + "</center><BR><BR>You have just found a paper that \
was sitting at out of nowhere.<BR>Let there be a celebration to you, finding this tiny paper. But leaving this empty \
will be awkward, so, some few honorable mentions shall be here.<BR><BR><B>Maker of the Map:</B> H.K <BR><BR><B>Huge \
Emotional Support (And my life changer):</B> BlackMajor, Salty S<BR><BR><B>Supporters in the most troubled times</B>: \
BlackMajor, Ender, Jack, Lone/Einarr, Mango, Nickner, Salty S, Serdy, Skitz, Verkister<BR><BR><B>Helpers on the map work:</B> \
will be awkward, so, some few honorable mentions shall be here.<BR><BR>" + span_bold("Maker of the Map:") + " H.K <BR><BR>" + span_bold("Huge \
Emotional Support (And my life changer):") + " BlackMajor, Salty S<BR><BR>" + span_bold("Supporters in the most troubled times") + ": \
BlackMajor, Ender, Jack, Lone/Einarr, Mango, Nickner, Salty S, Serdy, Skitz, Verkister<BR><BR>" + span_bold("Helpers on the map work:") + " \
BlackMajor, Blitzkrieg, Dan 'Clanker' Neposh, Kassc, Mango, Rykka Stormheart, Salty S, Serdy, Verkister<BR><BR>\
<B>Map recovery helper (Curse you github, almost deleting the project):</B> BlackMajor, Helmian, Jennard.L, Kashtan <BR>\
<B>Also, not to forget - Huge thank you to</B>:You, who is reading this note. <BR><BR><BR>Let this be my 25c to remember."
" + span_bold("Map recovery helper (Curse you github, almost deleting the project):") + " BlackMajor, Helmian, Jennard.L, Kashtan <BR>\
" + span_bold("Also, not to forget - Huge thank you to") + ":You, who is reading this note. <BR><BR><BR>Let this be my 25c to remember."
/obj/item/paper/awaygate/snowfield/diary
desc = "A part of a ripped paper, likely from the book."
@@ -614,8 +614,8 @@
Thank goodness. <BR> What the militsiya says it is from the government's orders. We had to leave \
sometime soon and find another coal vein, anyways. <BR><BR> Anatoly, two days ago, said he saw the army \
truck passing by few times around the mountains, so I think this is one of it. <BR><BR> Best to \
take our stuffs tomorrow. And some vodka bottles I have hidden.<BR><BR><BR><BR><B>BLAST, \
IT'S EMPTY! DIMITRY, THAT SCUMBAG - HOW DID HE EVEN KNEW THE BOTTLE'S THERE?!</B>"
take our stuffs tomorrow. And some vodka bottles I have hidden.<BR><BR><BR><BR>" + span_bold("BLAST, \
IT'S EMPTY! DIMITRY, THAT SCUMBAG - HOW DID HE EVEN KNEW THE BOTTLE'S THERE?!")
/obj/item/card/id/gateway/snowfield // Basic access
name = "Class 1 ID"

View File

@@ -498,7 +498,7 @@
/obj/item/gun/launcher/scopedrocket/examine(mob/user)
. = ..()
if(get_dist(user, src) <= 2)
. += "<font color='blue'>[rockets.len] / [max_rockets] rockets.</font>"
. += span_blue("[rockets.len] / [max_rockets] rockets.")
/obj/item/gun/launcher/scopedrocket/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, /obj/item/ammo_casing/rocket))
@@ -537,38 +537,38 @@
/obj/item/paper/awaygate/snowfield/evacuation_order
name = "Order Directives"
info = "<center><B><font size=\"6\">HIGH PRIORITY ORDERS</font></B><BR><BR><BR>ORDERS \
TO <B>ALL CLASS 1, 2, 3 PERSONNEL</B><BR>Date of Order : <B>April 10, 1979</B>.</center> <BR><BR><BR>\
Directives : <B>Evacuation preparation from Facility. <BR>All related personnel, EXCLUDING 3M personnel \
info = "<center>" + span_bold(span_giganteus("HIGH PRIORITY ORDERS")) + "<BR><BR><BR>ORDERS \
TO " + span_bold("ALL CLASS 1, 2, 3 PERSONNEL") + "<BR>Date of Order : " + span_bold("April 10, 1979") + ".</center> <BR><BR><BR>\
Directives : " + span_bold("Evacuation preparation from Facility. <BR>All related personnel, EXCLUDING 3M personnel \
must head to Chelyabinsk until 2100, April 10 and await for further directives.<BR>Base MUST \
maintain necessary items only. </B><BR><BR>Further directives and details shall be guided by <B>Class 4 \
or above personnel.</B>"
maintain necessary items only.") + "<BR><BR>Further directives and details shall be guided by " span_boild("Class 4 \
or above personnel.")
/obj/item/paper/awaygate/snowfield/evacuation_order2
name = "Mid Command Order Directives"
info = "<center><B><font size=\"6\">HIGH PRIORITY ORDERS</font></B><BR><BR><BR>ORDERS \
TO <B>ALL CLASS 4 PERSONNEL</B><BR>Date of Order : <B>April 10, 1979</B>.</center> <BR><BR><BR>\
Directives : <B>Evacuation preparation from Facility. <BR>All class 1,2,3 personnel must head to \
info = "<center>" + span_bold(span_giganteus("HIGH PRIORITY ORDERS")) + "<BR><BR><BR>ORDERS \
TO " + span_bold("ALL CLASS 4 PERSONNEL") + "<BR>Date of Order : " + span_bold("April 10, 1979") + ".</center> <BR><BR><BR>\
Directives : " + span_bold("Evacuation preparation from Facility. <BR>All class 1,2,3 personnel must head to \
Chelyabinsk and empty the facility, EXCLUDING Medical team. (3M)<BR>Base MUST maintain necessary items only \
to operate 'Tunguska' and supplies for the crews who remains. 'Tunguska' Activation time at 0300, April 11, \
1979.</B><BR><BR>Further directives and details shall be guided by <B>Class 6 or above personnel.</B>"
1979.") + "<BR><BR>Further directives and details shall be guided by " + span_bold("Class 6 or above personnel.") + ""
/obj/item/paper/awaygate/snowfield/evacuation_order3
name = "High Command Order Directives"
info = "<center><B><font size=\"6\">HIGH PRIORITY ORDERS</font></B><BR><BR><BR>ORDERS \
TO <B>ALL CLASS 5, 6 PERSONNEL</B><BR>Date of Order : <B>April 10, 1979</B>.</center> <BR><BR><BR>\
Directives : <B>Evacuation preparation from Facility. <BR>All Class 1, 2, 3 personnel must head to \
info = "<center>" + span_bold(span_giganteus("HIGH PRIORITY ORDERS")) + "<BR><BR><BR>ORDERS \
TO " + span_bold("ALL CLASS 5, 6 PERSONNEL") + "<BR>Date of Order : " + span_bold("April 10, 1979") + ".</center> <BR><BR><BR>\
Directives : " + span_bold("Evacuation preparation from Facility. <BR>All Class 1, 2, 3 personnel must head to \
Chelyabinsk and empty the facility, excluding Class 3M, guided by Class 4 personnel. <BR>All Class 5, 6 must \
check the stability of 'Tunguska' before the operation. Activation time at 0300, April 11, 1979.</B>"
check the stability of 'Tunguska' before the operation. Activation time at 0300, April 11, 1979.")
/obj/item/paper/awaygate/snowfield/activation_order
name = "High Command Order Directives"
info = "<center><B><font size=\"6\">HIGH PRIORITY ORDERS</font></B><BR><BR><BR>ORDERS \
TO <B>ALL CLASS 5, 6 PERSONNEL</B><BR>Date of Order : <B>April 11, 1979</B>.</center> <BR><BR><BR>\
Directives : <B>Activation of 'Tunguska.' <BR>All class 5, 6 personnel must have a full search by \
info = "<center>" + span_bold(span_giganteus("HIGH PRIORITY ORDERS")) + "<BR><BR><BR>ORDERS \
TO " + span_bold("ALL CLASS 5, 6 PERSONNEL") + "<BR>Date of Order : " + span_bold("April 11, 1979") + ".</center> <BR><BR><BR>\
Directives : " + span_bold("Activation of 'Tunguska.' <BR>All class 5, 6 personnel must have a full search by \
Class 4 before entering the operation room. <BR>Any personnel who is not on the operations area shall \
be terminated on the spot. Notify to nearest Class 4 and 6 personnel if necessary.</B><BR><BR>Further directives \
and details shall be guided by <B>Class 6 Personnel.</B>"
be terminated on the spot. Notify to nearest Class 4 and 6 personnel if necessary.") + "<BR><BR>Further directives \
and details shall be guided by " + span_bold("Class 6 Personnel.") + ""
/obj/item/paper/awaygate/snowfield/interrogation
name = "Interrogation note"
@@ -584,10 +584,10 @@
/obj/item/paper/awaygate/snowfield/final_note
name = "Final note"
info = "Gosh. We have opened up the hell's gate...<BR>Everyone is screaming and yelling into mid-air like a mania, \
and this... Whispering voice!<BR><B>It's in my head!</B><BR><BR>Peoples who managed to escape after the initial lockdown \
and this... Whispering voice!<BR>" + span_bold("It's in my head!") + "<BR><BR>Peoples who managed to escape after the initial lockdown \
are now trying their damnnest to break back INSIDE the base!<BR><BR>I tried my best to ignore the voice and cornered \
in this security outpost, but I'm not sure how long I will maintain sane, unlike those peoples out there...\
The voice is now <B>yelling, SCREAMING</B> at me as the time passes by! <BR><BR> I can't take this anymore longer, \
The voice is now " + span_bold("yelling, SCREAMING") + " at me as the time passes by! <BR><BR> I can't take this anymore longer, \
it is madness... Pure madness... <BR>I blew up the fastest way to the command center, so these maniacs won't be able to \
get to the command center, where the voice is echoing... But they have guns now... <BR> I'm not sure how long the blockade \
will last with that much firepower and manpower... And their pure will of madness... <BR><BR> I don't want to be one of them..."
@@ -596,14 +596,14 @@
desc = "A gift card with a heart on the cover. Hey, there's a scribble on its back..."
name = "letter"
icon_state = "greetingcard_heart"
info = "<center><B><font size=\"6\">Congradulations!</font></B></center><BR><BR>You have just found a paper that \
info = "<center>" + span_bold(span_giganteus("Congradulations!")) + "</center><BR><BR>You have just found a paper that \
was sitting at out of nowhere.<BR>Let there be a celebration to you, finding this tiny paper. But leaving this empty \
will be awkward, so, some few honorable mentions shall be here.<BR><BR><B>Maker of the Map:</B> H.K <BR><BR><B>Huge \
Emotional Support (And my life changer):</B> BlackMajor, Salty S<BR><BR><B>Supporters in the most troubled times</B>: \
BlackMajor, Ender, Jack, Lone/Einarr, Mango, Nickner, Salty S, Serdy, Skitz, Verkister<BR><BR><B>Helpers on the map work:</B> \
will be awkward, so, some few honorable mentions shall be here.<BR><BR>" + span_bold("Maker of the Map:") + " H.K <BR><BR>" + span_bold("Huge \
Emotional Support (And my life changer):") + " BlackMajor, Salty S<BR><BR>" + span_bold("Supporters in the most troubled times") + ": \
BlackMajor, Ender, Jack, Lone/Einarr, Mango, Nickner, Salty S, Serdy, Skitz, Verkister<BR><BR>" + span_bold("Helpers on the map work:") + " \
BlackMajor, Blitzkrieg, Dan 'Clanker' Neposh, Kassc, Mango, Rykka Stormheart, Salty S, Serdy, Verkister<BR><BR>\
<B>Map recovery helper (Curse you github, almost deleting the project):</B> BlackMajor, Helmian, Jennard.L, Kashtan <BR>\
<B>Also, not to forget - Huge thank you to</B>:You, who is reading this note. <BR><BR><BR>Let this be my 25c to remember."
" + span_bold("Map recovery helper (Curse you github, almost deleting the project):") + " BlackMajor, Helmian, Jennard.L, Kashtan <BR>\
" + span_bold("Also, not to forget - Huge thank you to") + ":You, who is reading this note. <BR><BR><BR>Let this be my 25c to remember."
/obj/item/paper/awaygate/snowfield/diary
desc = "A part of a ripped paper, likely from the book."
@@ -614,8 +614,8 @@
Thank goodness. <BR> What the militsiya says it is from the government's orders. We had to leave \
sometime soon and find another coal vein, anyways. <BR><BR> Anatoly, two days ago, said he saw the army \
truck passing by few times around the mountains, so I think this is one of it. <BR><BR> Best to \
take our stuffs tomorrow. And some vodka bottles I have hidden.<BR><BR><BR><BR><B>BLAST, \
IT'S EMPTY! DIMITRY, THAT SCUMBAG - HOW DID HE EVEN KNEW THE BOTTLE'S THERE?!</B>"
take our stuffs tomorrow. And some vodka bottles I have hidden.<BR><BR><BR><BR>" + span_vold("BLAST, \
IT'S EMPTY! DIMITRY, THAT SCUMBAG - HOW DID HE EVEN KNEW THE BOTTLE'S THERE?!")
/obj/item/card/id/gateway/snowfield // Basic access
name = "Class 1 ID"

View File

@@ -25,7 +25,7 @@
/obj/effect/landmark/engine_loader_pickable/proc/annihilate_bounds()
var/deleted_atoms = 0
var/killed_mobs = 0
admin_notice("<span class='danger'>Annihilating objects in engine loading location.</span>", R_DEBUG)
admin_notice(span_danger("Annihilating objects in engine loading location."), R_DEBUG)
var/list/turfs_to_clean = get_turfs_to_clean()
if(turfs_to_clean.len)
for(var/x in 1 to 2) // Delete things that shouldn't be players.
@@ -41,15 +41,15 @@
for(var/turf/T in turfs_to_clean) //now deal with those pesky players.
for(var/mob/living/LH in T)
if(istype(LH, /mob/living))
to_chat(LH, "<span class='danger'>It feels like you're being torn apart!</span>")
to_chat(LH, span_danger("It feels like you're being torn apart!"))
LH.apply_effect(20, AGONY, 0, 0)
LH.visible_message("<span class='danger'>[LH.name] is ripped apart by something you can't see!</span>")
LH.visible_message(span_danger("[LH.name] is ripped apart by something you can't see!"))
LH.gib() //Murder them horribly!
message_admins("[key_name(LH, LH.client)] was just killed by the engine loader!", R_DEBUG)
++killed_mobs
admin_notice("<span class='danger'>Annihilated [deleted_atoms] objects.</span>", R_DEBUG)
admin_notice("<span class='danger'>Annihilated [killed_mobs] Living Mobs.</span>", R_DEBUG)
admin_notice(span_danger("Annihilated [deleted_atoms] objects."), R_DEBUG)
admin_notice(span_danger("Annihilated [killed_mobs] Living Mobs."), R_DEBUG)
//Basically, initialise all of the Atmos machines, as if we just wrenched them down.
/obj/effect/landmark/engine_loader_pickable/proc/lateload_init()
@@ -79,7 +79,7 @@
if(AM.node2)
AM.node2.build_network()
admin_notice("<span class='danger'>Initialised [init_machines] Atmos machines and [init_nodes] Atmos network nodes..</span>", R_DEBUG)
admin_notice(span_danger("Initialised [init_machines] Atmos machines and [init_nodes] Atmos network nodes.."), R_DEBUG)
/obj/machinery/computer/pickengine
name = "Engine Selector."
@@ -101,13 +101,13 @@
if(istype(user, /mob/living/silicon/robot))
return attack_hand(user)
else
user << "<span class='warning'>The network data sent by this machine is encrypted!</span>"
user << span_warning("The network data sent by this machine is encrypted!")
return
/obj/machinery/computer/pickengine/attack_hand(var/mob/user as mob)
if(!allowed(user))
user << "<span class='warning'>Access Denied.</span>"
user << span_warning("Access Denied.")
return
if(..())
@@ -117,7 +117,7 @@
user.set_machine(src)
var/dat
dat += "<B>Engine Select console</B><BR>"
dat += span_bold("Engine Select console") + "<BR>"
dat += "Please select an engine for construction.<BR><HR>"
// dat += "Engine autoselect in [time2text(src.lifetime SECONDS, "mm:ss")].<BR>"
dat += "WARNING: Selecting an engine will deploy nanobots to construct it. These nanobots will attempt to disassemble anything in their way, including curious engineers!.<BR>"

View File

@@ -14,10 +14,10 @@
return ..()
var/turf/T = src.loc
if (level==1 && isturf(T) && !T.is_plating())
to_chat(user, "<span class='warning'>You must remove the plating first.</span>")
to_chat(user, span_warning("You must remove the plating first."))
return 1
if(!can_unwrench())
to_chat(user, "<span class='warning'>You cannot unwrench \the [src], it is too exerted due to internal pressure.</span>")
to_chat(user, span_warning("You cannot unwrench \the [src], it is too exerted due to internal pressure."))
add_fingerprint(user)
return 1
@@ -28,18 +28,18 @@
var/internal_pressure = int_air.return_pressure()-env_air.return_pressure()
if (internal_pressure > 2*ONE_ATMOSPHERE)
to_chat(user, "<span class='warning'>As you begin unwrenching \the [src] a gush of air blows in your face... maybe you should reconsider?</span>")
to_chat(user, span_warning("As you begin unwrenching \the [src] a gush of air blows in your face... maybe you should reconsider?"))
unsafe_wrenching = TRUE //here we go
else
to_chat(user, "<span class='notice'>You begin to unfasten \the [src]...</span>")
to_chat(user, span_notice("You begin to unfasten \the [src]..."))
playsound(src, W.usesound, 50, 1)
if (do_after(user, 10 * W.toolspeed))
user.visible_message( \
"<b>\The [user]</b> unfastens \the [src].", \
"<span class='notice'>You have unfastened \the [src].</span>", \
"You hear a ratchet.")
span_infoplain(span_bold("\The [user]") + " unfastens \the [src]."), \
span_notice("You have unfastened \the [src]."), \
span_hear("You hear a ratchet."))
if(unsafe_wrenching)
unsafe_pressure_release(user, internal_pressure)
deconstruct()
@@ -53,7 +53,7 @@
var/datum/gas_mixture/env_air = loc.return_air()
pressures = int_air.return_pressure() - env_air.return_pressure()
user.visible_message("<span class='danger'>[user] is sent flying by pressure!</span>","<span class='userdanger'>The pressure sends you flying!</span>")
user.visible_message(span_danger("[user] is sent flying by pressure!"),span_userdanger("The pressure sends you flying!"))
// if get_dir(src, user) is not 0, target is the edge_target_turf on that dir
// otherwise, edge_target_turf uses a random cardinal direction

View File

@@ -66,10 +66,10 @@
var/datum/component/gargoyle/comp = GetComponent(/datum/component/gargoyle)
if (comp)
if (comp.energy <= 0 && isturf(loc))
to_chat(src, "<span class='danger'>You suddenly turn into a [comp.identifier] as you run out of energy!</span>")
to_chat(src, span_danger("You suddenly turn into a [comp.identifier] as you run out of energy!"))
else if (comp.cooldown > world.time)
var/time_to_wait = (comp.cooldown - world.time) / (1 SECONDS)
to_chat(src, "<span class='warning'>You can't transform just yet again! Wait for another [round(time_to_wait,0.1)] seconds!</span>")
to_chat(src, span_warning("You can't transform just yet again! Wait for another [round(time_to_wait,0.1)] seconds!"))
return
if (istype(loc, /obj/structure/gargoyle))
qdel(loc)
@@ -89,7 +89,7 @@
comp.paused = TRUE
comp.paused_loc = loc
comp.RegisterSignal(src, COMSIG_ATOM_ENTERING, /datum/component/gargoyle/proc/unpause)
to_chat(src, "<span class='notice'>You start conserving your energy.</span>")
to_chat(src, span_notice("You start conserving your energy."))
/mob/living/carbon/human/proc/gargoyle_checkenergy()
set name = "Gargoyle - Check Energy"
@@ -98,4 +98,4 @@
var/datum/component/gargoyle/comp = GetComponent(/datum/component/gargoyle)
if (comp)
to_chat(src, "<span class='notice'>You have [round(comp.energy,0.01)] energy remaining. It is currently [comp.paused ? "stable" : (comp.transformed ? "increasing" : "decreasing")].</span>")
to_chat(src, span_notice("You have [round(comp.energy,0.01)] energy remaining. It is currently [comp.paused ? "stable" : (comp.transformed ? "increasing" : "decreasing")]."))

View File

@@ -83,7 +83,7 @@
orbiter.SpinAnimation(rotation_speed, -1, clockwise, rotation_segments)
orbiter.forceMove(get_turf(parent))
to_chat(orbiter, "<span class='notice'>Now orbiting [parent].</span>")
to_chat(orbiter, span_notice("Now orbiting [parent]."))
/datum/component/orbiter/proc/end_orbit(atom/movable/orbiter, refreshing=FALSE)
if(!orbiters[orbiter])

View File

@@ -26,8 +26,8 @@
/datum/modifier/aura/xenoqueenbuff
name = "Adrenal Surge"
on_created_text = "<span class='notice'>The influence of a nearby Xenomorph Queen strengthens your body... </span>"
on_expired_text = "<span class='warning'>You feel the influence of the Queen slip away, causing your body to relax.</span>"
on_created_text = span_notice("The influence of a nearby Xenomorph Queen strengthens your body... ")
on_expired_text = span_warning("You feel the influence of the Queen slip away, causing your body to relax.")
stacks = MODIFIER_STACK_FORBID
aura_max_distance = 7 // Viewrange.
mob_overlay_state = "purple_electricity_constant"
@@ -58,8 +58,8 @@
if(X.aura_active)
STOP_PROCESSING(SSprocessing,X)
X.aura_active = 0
to_chat (src, "<span class = 'notice'>You cease empowering those around you.</span>")
to_chat (src, span_notice("You cease empowering those around you."))
else
START_PROCESSING(SSprocessing,X)
X.aura_active = 1
to_chat (src, "<span class = 'notice'>You begin empowering those around you.</span>")
to_chat (src, span_notice("You begin empowering those around you."))

View File

@@ -220,7 +220,7 @@
var/atom/target_zone = get_edge_target_turf(user,get_dir(user, target))
if(!target.anchored)
target.throw_at(target_zone, 6, 2, user, FALSE)
user.visible_message("<span class='warning'>\The [src] discharges with a thunderous boom!</span>")
user.visible_message(span_warning("\The [src] discharges with a thunderous boom!"))
playsound(src, 'sound/weapons/resonator_blast.ogg', 100, 1, -1)
//Eel stuff
@@ -247,10 +247,10 @@
if(.)
return .
if(default_parry_check(user, attacker, damage_source) && prob(defend_chance))
user.visible_message("<span class='danger'>\The [user] parries [attack_text] with \the [src]!</span>")
user.visible_message(span_danger("\The [user] parries [attack_text] with \the [src]!"))
return 1
if(unique_parry_check(user, attacker, damage_source) && prob(projectile_parry_chance))
user.visible_message("<span class='danger'>\The [user] deflects [attack_text] with \the [src]!</span>")
user.visible_message(span_danger("\The [user] deflects [attack_text] with \the [src]!"))
return 1
return 0
@@ -271,7 +271,7 @@
if(H && H.gloves == src)
wearer = H
if(wearer.can_feel_pain())
to_chat(H, "<span class='danger'>You feel a stabbing sensation in your hands as you slide \the [src] on!</span>")
to_chat(H, span_danger("You feel a stabbing sensation in your hands as you slide \the [src] on!"))
wearer.custom_pain("You feel a sharp pain in your hands!",1)
..()
@@ -279,7 +279,7 @@
..()
if(wearer)
if(wearer.can_feel_pain())
to_chat(wearer, "<span class='danger'>You feel the hypodermic needles as you slide \the [src] off!</span>")
to_chat(wearer, span_danger("You feel the hypodermic needles as you slide \the [src] off!"))
wearer.custom_pain("Your hands hurt like hell!",1)
wearer = null

View File

@@ -28,7 +28,7 @@
/* DON'T CARE, DIDN'T ASK. YOU WILL PERFORM THE MACGUFFIN HEAT EXCHANGE AND NOT POWER DOWN UNTIL YOU ARE TOLD TO!
if(draw_power(idle_power_usage) < idle_power_usage)
visible_message("<b>\The [src]</b> shuts down.")
visible_message(span_infoplain(span_bold("\The [src]") + " shuts down."))
turn_off()
return
*/

View File

@@ -4,7 +4,7 @@
/obj/machinery/button/remote/blast_door/single_use/attack_hand(mob/user as mob)
if(has_been_pressed)
to_chat(user,"<span class='notice'>Nothing happens.</span>")
to_chat(user,span_notice("Nothing happens."))
return
. = ..()
@@ -22,7 +22,7 @@
/obj/machinery/button/remote/blast_door/single_use/slab/attack_hand(mob/user as mob)
. = ..()
to_chat(user,"<span class='notice'>You hear a heavy mechanism open somewhere in the distance.</span>")
to_chat(user,span_notice("You hear a heavy mechanism open somewhere in the distance."))
icon_state = "slab1"
/obj/machinery/button/remote/blast_door/single_use/slab/update_icon()

View File

@@ -68,7 +68,7 @@
if (notice)
message = "A notice pops up on the interface: \"[message]\""
if (target)
to_chat(usr, "<span class='notice'>[message]</span>")
to_chat(usr, span_notice("[message]"))
/obj/machinery/petrification/proc/petrify(var/obj/item/petrifier/petrifier = null)
. = FALSE
@@ -135,7 +135,7 @@
comp?.cooldown = INFINITY
if (!petrifier)
visible_message("<span class='notice'>A ray of purple light streams out of \the [src], aimed directly at [statue]. Everywhere the light touches on them quickly [adj] into [mat].</span>")
visible_message(span_notice("A ray of purple light streams out of \the [src], aimed directly at [statue]. Everywhere the light touches on them quickly [adj] into [mat]."))
SStgui.update_uis(src)
return TRUE
@@ -234,7 +234,7 @@
if (is_valid_target(target) && istext(material) && istext(identifier) && istext(adjective) && istext(tint))
var/obj/item/petrifier/PE = remotes[target]
if (!QDELETED(PE))
PE.visible_message("<span class='warning'>\The [PE] disappears!</span>")
PE.visible_message(span_warning("\The [PE] disappears!"))
qdel(PE)
var/obj/item/petrifier/P = new(loc, src)
P.material = material
@@ -251,4 +251,4 @@
/obj/item/paper/petrification_notes
name = "written notes"
info = "<font face=\"Times New Roman\"><i>Found this buried in the machine over there after digging through it a bit- I hooked it up to one of our displays so it was a bit more usable- seems to be a spare part, it was right next to another one that actually <b>was</b> hooked up. Turns things into other materials, probably one of the components that makes that machine work.</i></font>"
info = "<font face=\"Times New Roman\">" + span_italics("Found this buried in the machine over there after digging through it a bit- I hooked it up to one of our displays so it was a bit more usable- seems to be a spare part, it was right next to another one that actually " + span_bold("was") + " hooked up. Turns things into other materials, probably one of the components that makes that machine work.") + "</font>"

View File

@@ -42,10 +42,10 @@
if(stat & (NOPOWER|BROKEN))
if(occupant)
go_out()
visible_message("<b>\The [src]</b> emits a low droning sound, before the pod door clicks open.")
visible_message(span_infoplain(span_bold("\The [src]") + " emits a low droning sound, before the pod door clicks open."))
return
else if(eject_dead && occupant && occupant.stat == DEAD) // If someone dies somehow while inside, spit them out.
visible_message("<span class='warning'>\The [src] sounds an alarm, swinging its hatch open.</span>")
visible_message(span_warning("\The [src] sounds an alarm, swinging its hatch open."))
go_out()
/obj/machinery/vr_sleeper/update_icon()
@@ -55,14 +55,14 @@
/obj/machinery/vr_sleeper/examine(mob/user)
. = ..()
if(occupant)
. += "<span class='notice'>[occupant] is inside.</span>"
. += span_notice("[occupant] is inside.")
/obj/machinery/vr_sleeper/Topic(href, href_list)
if(..())
return 1
if(usr == occupant)
to_chat(usr, "<span class='warning'>You can't reach the controls from the inside.</span>")
to_chat(usr, span_warning("You can't reach the controls from the inside."))
return
add_fingerprint(usr)
@@ -115,7 +115,7 @@
if(prob(15 / ( severity / 4 )) && occupant.species.has_organ[O_BRAIN] && occupant.internal_organs_by_name[O_BRAIN])
var/obj/item/organ/O = occupant.internal_organs_by_name[O_BRAIN]
O.take_damage(severity * 2)
visible_message("<span class='danger'>\The [src]'s internal lighting flashes rapidly, before the hatch swings open with a cloud of smoke.</span>")
visible_message(span_danger("\The [src]'s internal lighting flashes rapidly, before the hatch swings open with a cloud of smoke."))
smoke.set_up(severity, 0, src)
smoke.start("#202020")
go_out()
@@ -159,9 +159,9 @@
if(stat & (BROKEN|NOPOWER))
return
if(!ishuman(M))
to_chat(user, "<span class='warning'>\The [src] rejects [M] with a sharp beep.</span>")
to_chat(user, span_warning("\The [src] rejects [M] with a sharp beep."))
if(occupant)
to_chat(user, "<span class='warning'>\The [src] is already occupied.</span>")
to_chat(user, span_warning("\The [src] is already occupied."))
return
if(M == user)
@@ -171,7 +171,7 @@
if(do_after(user, 20))
if(occupant)
to_chat(user, "<span class='warning'>\The [src] is already occupied.</span>")
to_chat(user, span_warning("\The [src] is already occupied."))
return
M.stop_pulling()
if(M.client)
@@ -188,7 +188,7 @@
update_use_power(USE_POWER_ACTIVE)
enter_vr()
else
to_chat(user, "<span class='warning'>\The [src] rejects [M] with a sharp beep.</span>")
to_chat(user, span_warning("\The [src] rejects [M] with a sharp beep."))
//VOREstation edit end
return

View File

@@ -43,17 +43,17 @@
if(istype(L.species, /datum/species/crew_shadekin))
L.halloss += 5
if(prob(50))
to_chat(L, "<span class='danger'>The more you move through this darkness, the more you can feel a throbbing, shooting ache in your bones.</span>")
to_chat(L, span_danger("The more you move through this darkness, the more you can feel a throbbing, shooting ache in your bones."))
if(prob(5))
L.visible_message("[L]'s body gives off a faint, sparking, haze...", "Your body gives off a faint, sparking, haze...", runemessage = "gives off a faint, sparking haze")
else if(istype(L.species, /datum/species/shadekin))
var/obj/item/organ/internal/brain/shadekin/B = L.internal_organs_by_name["brain"]
B.dark_energy += 10
if(prob(10))
to_chat(L, "<span class='notice'>You can feel the energy flowing into you!</span>")
to_chat(L, span_notice("You can feel the energy flowing into you!"))
else
if(prob(0.25))
to_chat(L, "<span class='danger'>The darkness seethes under your feet...</span>")
to_chat(L, span_danger("The darkness seethes under your feet..."))
L.hallucination += 50
/obj/effect/dark/proc/light_check()

View File

@@ -56,4 +56,4 @@
set desc = "Toggle item's digestability."
digestable = !digestable
if(!digestable)
to_chat(usr, "<span class='notice'>[src] is now protected from digestion.</span>")
to_chat(usr, span_notice("[src] is now protected from digestion."))

View File

@@ -176,21 +176,21 @@
if(pai != null) //Have a person in them already?
return ..()
if(is_damage_critical())
to_chat(usr, "<span class='warning'>That card is too damaged to activate!</span>")
to_chat(usr, span_warning("That card is too damaged to activate!"))
return
var/time_till_respawn = user.time_till_respawn()
if(time_till_respawn == -1) // Special case, never allowed to respawn
to_chat(usr, "<span class='warning'>Respawning is not allowed!</span>")
to_chat(usr, span_warning("Respawning is not allowed!"))
else if(time_till_respawn) // Nonzero time to respawn
to_chat(usr, "<span class='warning'>You can't do that yet! You died too recently. You need to wait another [round(time_till_respawn/10/60, 0.1)] minutes.</span>")
to_chat(usr, span_warning("You can't do that yet! You died too recently. You need to wait another [round(time_till_respawn/10/60, 0.1)] minutes."))
return
if(jobban_isbanned(usr, "pAI"))
to_chat(usr,"<span class='warning'>You cannot join a pAI card when you are banned from playing as a pAI.</span>")
to_chat(usr,span_warning("You cannot join a pAI card when you are banned from playing as a pAI."))
return
for(var/ourkey in paikeys)
if(ourkey == user.ckey)
to_chat(usr, "<span class='warning'>You can't just rejoin any old pAI card!!! Your card still exists.</span>")
to_chat(usr, span_warning("You can't just rejoin any old pAI card!!! Your card still exists."))
return
var/choice = tgui_alert(user, "You sure you want to inhabit this PAI, or submit yourself to being recruited?", "Confirmation", list("Inhabit", "Recruit", "Cancel"))

View File

@@ -25,13 +25,13 @@
/obj/item/mindbinder/proc/toggle_self_bind()
if(possessed_voice.len == 1)
to_chat(usr,"<span class='warning'>The device beeps a warning that there is already a mind loaded!</span>")
to_chat(usr,span_warning("The device beeps a warning that there is already a mind loaded!"))
return
self_bind = !self_bind
if(self_bind)
to_chat(usr,"<span class='notice'>You prepare the device to use your own mind!</span>")
to_chat(usr,span_notice("You prepare the device to use your own mind!"))
else
to_chat(usr,"<span class='notice'>You disable the device from using your mind.</span>")
to_chat(usr,span_notice("You disable the device from using your mind."))
update_icon()
/obj/item/mindbinder/pre_attack(atom/A)
@@ -44,7 +44,7 @@
if(istype(A, /mob/living))
var/mob/living/M = A
if(!M.allow_mind_transfer)
to_chat(usr,"<span class='danger'>The target's mind is too complex to be affected!</span>")
to_chat(usr,span_danger("The target's mind is too complex to be affected!"))
return
if(usr == M)
toggle_self_bind()
@@ -66,11 +66,11 @@
// Handle placing a mind into a mob
/obj/item/mindbinder/proc/bind_mob(mob/living/target)
if(possessed_voice.len == 0 && !self_bind)
to_chat(usr,"<span class='warning'>The device beeps a warning that it doesn't contain a mind to bind!</span>")
to_chat(usr,span_warning("The device beeps a warning that it doesn't contain a mind to bind!"))
return
if(target.ckey)
to_chat(usr,"<span class='warning'>The device beeps a warning that the target is already sentient!</span>")
to_chat(usr,span_warning("The device beeps a warning that the target is already sentient!"))
return
if(self_bind)
@@ -78,17 +78,17 @@
if(!choice || choice == "Cancel") return
choice = tgui_alert(usr,"No really. You cannot OOC Escape this. Are you sure?","Confirmation",list("Yes I'm sure","Cancel"))
if(choice == "Yes I'm sure" && usr.get_active_hand() == src && usr.Adjacent(target))
usr.visible_message("<span class='warning'>[usr] presses [src] against [target]. The device beginning to let out a series of beeps!</span>","<span class='notice'>You begin to bind yourself into [target]!</span>")
usr.visible_message(span_warning("[usr] presses [src] against [target]. The device beginning to let out a series of beeps!"),span_notice("You begin to bind yourself into [target]!"))
log_and_message_admins("attempted to bind themselves to \an [target] with a Mind Binder.")
if(do_after(usr,30 SECONDS,target))
if(!target.ckey)
usr.mind.transfer_to(target)
self_bind = !self_bind
update_icon()
to_chat(usr,"<span class='notice'>Your mind as been bound to [target].</span>")
to_chat(usr,span_notice("Your mind as been bound to [target]."))
return
usr.visible_message("<span class='warning'>[usr] presses [src] against [target]. The device beginning to let out a series of beeps!</span>","<span class='notice'>You begin to bind someone's mind into [target]!</span>")
usr.visible_message(span_warning("[usr] presses [src] against [target]. The device beginning to let out a series of beeps!"),span_notice("You begin to bind someone's mind into [target]!"))
log_and_message_admins("attempted to bind [key_name(src.possessed_voice[1])] to \an [target] with a Mind Binder.")
var/doTime = 30 SECONDS
if(ishuman(target) || issilicon(target) || isanimal(target))
@@ -99,22 +99,22 @@
V.mind.transfer_to(target)
V.Destroy()
possessed_voice = list()
to_chat(usr,"<span class='notice'>Mind bound to [target].</span>")
to_chat(usr,span_notice("Mind bound to [target]."))
update_icon()
// Handle placing a mind into an item
/obj/item/mindbinder/proc/bind_item(obj/item/item)
if(possessed_voice.len == 0 && !self_bind)
to_chat(usr,"<span class='warning'>The device beeps a warning that it doesn't contain a mind to bind!</span>")
to_chat(usr,span_warning("The device beeps a warning that it doesn't contain a mind to bind!"))
return
if(item.possessed_voice && item.possessed_voice.len)
to_chat(usr,"<span class='warning'>The device beeps a warning that the target is already sentient!</span>")
to_chat(usr,span_warning("The device beeps a warning that the target is already sentient!"))
return
if(is_type_in_list(item, item_vore_blacklist))
to_chat(usr,"<span class='danger'>The item resists your transfer attempt!</span>")
to_chat(usr,span_danger("The item resists your transfer attempt!"))
return
if(self_bind)
@@ -123,34 +123,34 @@
choice = tgui_alert(usr,"No really. You cannot OOC Escape this. Are you sure?","Confirmation",list("Yes I'm sure","Cancel"))
if(choice == "Yes I'm sure" && usr.get_active_hand() == src && usr.Adjacent(item))
log_and_message_admins("attempted to bind themselves to \an [item] with a Mind Binder.")
usr.visible_message("<span class='warning'>[usr] presses [src] against [item]. The device beginning to let out a series of beeps!</span>","<span class='notice'>You begin to bind yourself into [item]!</span>")
usr.visible_message(span_warning("[usr] presses [src] against [item]. The device beginning to let out a series of beeps!"),span_notice("You begin to bind yourself into [item]!"))
if(do_after(usr,30 SECONDS,item))
item.inhabit_item(usr, null, null, TRUE)
self_bind = !self_bind
update_icon()
to_chat(usr,"<span class='notice'>Your mind as been bound to [item].</span>")
to_chat(usr,span_notice("Your mind as been bound to [item]."))
return
log_and_message_admins("attempted to bind [key_name(src.possessed_voice[1])] to \an [item] with a Mind Binder.")
usr.visible_message("<span class='warning'>[usr] presses [src] against [item]. The device beginning to let out a series of beeps!</span>","<span class='notice'>You begin to bind someone's mind into [item]!</span>")
usr.visible_message(span_warning("[usr] presses [src] against [item]. The device beginning to let out a series of beeps!"),span_notice("You begin to bind someone's mind into [item]!"))
if(do_after(usr,5 SECONDS,item))
if(possessed_voice.len == 1)
var/mob/living/voice/V = possessed_voice[1]
item.inhabit_item(V, null, V.tf_mob_holder, TRUE)
V.Destroy()
possessed_voice = list()
to_chat(usr,"<span class='notice'>Mind bound to [item].</span>")
to_chat(usr,span_notice("Mind bound to [item]."))
update_icon()
// Handle taking a mind out of a mob
/obj/item/mindbinder/proc/store_mob(mob/living/target)
if(possessed_voice.len != 0)
to_chat(usr,"<span class='warning'>The device beeps a warning that there is already a mind loaded!</span>")
to_chat(usr,span_warning("The device beeps a warning that there is already a mind loaded!"))
return
if(!target.mind || (target.mind.name in prevent_respawns))
to_chat(usr,"<span class='warning'>The device beeps a warning that the target isn't sentient.</span>")
to_chat(usr,span_warning("The device beeps a warning that the target isn't sentient."))
return
var/choice = tgui_alert(usr,"This will download the target's mind into the device. Once their mind is loaded you can then bind it into an item. This will result in the target being stuck until you put them back in their original body. Please make sure OOC prefs align! Continue?","Confirmation",list("Continue","Cancel"))
@@ -159,18 +159,18 @@
log_and_message_admins("attempted to take [key_name(target)]'s mind with a Mind Binder while they were SSD!")
else
log_and_message_admins("attempted to take [key_name(target)]'s mind with a Mind Binder.")
usr.visible_message("<span class='warning'>[usr] presses [src] against [target]'s head. The device beginning to let out a series of beeps!</span>","<span class='notice'>You begin to download [target]'s mind!</span>")
usr.visible_message(span_warning("[usr] presses [src] against [target]'s head. The device beginning to let out a series of beeps!"),span_notice("You begin to download [target]'s mind!"))
if(do_after(usr,30 SECONDS,target))
if(possessed_voice.len == 0 && target.mind)
inhabit_item(target, target.real_name, null)
to_chat(usr,"<span class='notice'>Mind successfully stored!</span>")
to_chat(usr,span_notice("Mind successfully stored!"))
update_icon()
// Handle taking a mind out of an item
/obj/item/mindbinder/proc/store_item(obj/item/item)
if(possessed_voice.len != 0)
to_chat(usr,"<span class='warning'>The device beeps a warning that there is already a mind loaded!</span>")
to_chat(usr,span_warning("The device beeps a warning that there is already a mind loaded!"))
return
if(!(item.possessed_voice && item.possessed_voice.len))
@@ -179,13 +179,13 @@
var/mob/living/voice/target = item.possessed_voice[1]
log_and_message_admins("attempted to take [key_name(target)]'s mind out of \an [item] with a Mind Binder.")
usr.visible_message("<span class='warning'>[usr] presses [src] against [item]. The device beginning to let out a series of beeps!</span>","<span class='notice'>You begin to download someone's mind from [item]!</span>")
usr.visible_message(span_warning("[usr] presses [src] against [item]. The device beginning to let out a series of beeps!"),span_notice("You begin to download someone's mind from [item]!"))
if(do_after(usr,5 SECONDS,item))
if(possessed_voice.len == 0 && item.possessed_voice.Find(target))
inhabit_item(target, target.real_name, target.tf_mob_holder)
target.Destroy()
item.possessed_voice.Remove(target)
to_chat(usr,"<span class='notice'>Mind successfully stored!</span>")
to_chat(usr,span_notice("Mind successfully stored!"))
update_icon()

View File

@@ -71,7 +71,7 @@
spark_system.set_up(5, 0, user.loc)
spark_system.start()
playsound(src, "sparks", 50, 1)
user.visible_message("<span class='danger'>[user] is abruptly flung somewhere else in response to the damage!</span>")
user.visible_message(span_danger("[user] is abruptly flung somewhere else in response to the damage!"))
do_teleport(user, locate(telex,teley,telez), local = 0, bohsafe = 1)
tele_threshold = initial(tele_threshold)
return TRUE

View File

@@ -35,7 +35,7 @@
if(set_input)
if(set_input == "output destination")
if(vac_owner && user != vac_owner)
to_chat(user, "<span class='warning'>Only designated owner can change this setting.</span>")
to_chat(user, span_warning("Only designated owner can change this setting."))
return
var/vac_options = list("Vore Belly", "Trash Bag") //Dont show option for borg belly if the user isnt even a borg. QOL!
if(isrobot(user))
@@ -50,7 +50,7 @@
if(istype(S))
output_dest = S
return
to_chat(user, "<span class='warning'>Borg belly not found.</span>")
to_chat(user, span_warning("Borg belly not found."))
if("Trash Bag")
if(isrobot(user))
var/mob/living/silicon/robot/R = user
@@ -63,7 +63,7 @@
if(istype(T))
output_dest = T
return
to_chat(user, "<span class='warning'>Trash bag not found.</span>")
to_chat(user, span_warning("Trash bag not found."))
if("Vore Belly")
if(user.vore_selected)
output_dest = user.vore_selected
@@ -84,20 +84,20 @@
vac_power = 0
icon_state = "sucker-0"
output_dest = null
to_chat(user, "<span class='warning'>Trash bag not found. Shutting down.</span>")
to_chat(user, span_warning("Trash bag not found. Shutting down."))
return
var/obj/item/storage/bag/trash/B = output_dest
if(LAZYLEN(B.contents) >= B.max_storage_space) //A bit more lenient than the w_class system to avoid complicated spaghetti.
to_chat(user, "<span class='warning'>Trash bag full. Empty trash bag contents to continue.</span>")
to_chat(user, span_warning("Trash bag full. Empty trash bag contents to continue."))
return
if(istype(output_dest,/obj/item/dogborg/sleeper))
var/obj/item/dogborg/sleeper/B = output_dest
if(LAZYLEN(B.contents) >= B.max_item_count)
to_chat(user, "<span class='warning'>[B.name] full. Empty or process contents to continue.</span>")
to_chat(user, span_warning("[B.name] full. Empty or process contents to continue."))
return
if(B.ore_storage)
if(B.current_capacity >= B.max_ore_storage)
to_chat(user, "<span class='warning'>Ore storage full. Deposit ore contents to a box continue.</span>")
to_chat(user, span_warning("Ore storage full. Deposit ore contents to a box continue."))
return
if(isbelly(output_dest))
var/turf/T = get_turf(output_dest)
@@ -107,12 +107,12 @@
vac_power = 0
icon_state = "sucker-0"
output_dest = null
to_chat(user, "<span class='warning'>Target destination not found. Shutting down.</span>")
to_chat(user, span_warning("Target destination not found. Shutting down."))
return
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
var/auto_setting = 1
if(isturf(target))
user.visible_message("<span class='filter_notice'>[user] begins vacuuming the mess off \the [target.name]...</span>", "<span class='notice'>You begin vacuuming the mess off \the [target.name]...</span>")
user.visible_message(span_filter_notice("[user] begins vacuuming the mess off \the [target.name]..."), span_notice("You begin vacuuming the mess off \the [target.name]..."))
var/list/suckables = list()
if(vac_power >= 1)
for(var/obj/effect/decal/cleanable/C in target)
@@ -184,7 +184,7 @@
if(istype(output_dest,/obj/item/storage/bag/trash))
var/obj/item/storage/bag/trash/B = output_dest
if(LAZYLEN(B.contents) >= B.max_storage_space)
to_chat(user, "<span class='warning'>Trash bag full. Empty trash bag contents to continue.</span>")
to_chat(user, span_warning("Trash bag full. Empty trash bag contents to continue."))
return
if(vac_conga < 100)
vac_conga += 3
@@ -220,7 +220,7 @@
else
auto_setting = vac_power
playsound(src, 'sound/machines/kitchen/candymaker/candymaker-mid1.ogg', auto_setting * 20, 1, -1)
user.visible_message("<span class='filter_notice'>[user] vacuums up \the [target.name].</span>", "<span class='notice'>You vacuum up \the [target.name]...</span>")
user.visible_message(span_filter_notice("[user] vacuums up \the [target.name]."), span_notice("You vacuum up \the [target.name]..."))
I.SpinAnimation(5,1)
spawn(5)
if(!I.Adjacent(user) || src.loc != user || vac_power < 2) //Cancel if moved/unpowered/dropped
@@ -231,7 +231,7 @@
I.forceMove(output_dest)
else if(istype(target,/obj/effect/decal/cleanable))
playsound(src, 'sound/machines/kitchen/candymaker/candymaker-mid1.ogg', auto_setting * 20, 1, -1)
user.visible_message("<span class='filter_notice'>[user] vacuums up \the [target.name].</span>", "<span class='notice'>You vacuum up \the [target.name]...</span>")
user.visible_message(span_filter_notice("[user] vacuums up \the [target.name]."), span_notice("You vacuum up \the [target.name]..."))
qdel(target)
else if(isliving(target))
var/mob/living/L = target
@@ -247,7 +247,7 @@
auto_setting = 6
if(valid_to_suck)
playsound(src, 'sound/machines/kitchen/candymaker/candymaker-mid1.ogg', auto_setting * 20, 1, -1)
user.visible_message("<span class='filter_notice'>[user] vacuums up \the [target.name].</span>", "<span class='notice'>You vacuum up \the [target.name]...</span>")
user.visible_message(span_filter_notice("[user] vacuums up \the [target.name]."), span_notice("You vacuum up \the [target.name]..."))
L.SpinAnimation(5,1)
spawn(5)
if(!L.Adjacent(user) || src.loc != user || vac_power < 2) //Cancel if moved/unpowered/dropped

View File

@@ -22,11 +22,11 @@
var/turf/T = get_turf(target)
var/obj/structure/holosign/H = locate(holosign_type) in T
if(H)
to_chat(user, "<span class='notice'>You use [src] to deactivate [H].</span>")
to_chat(user, span_notice("You use [src] to deactivate [H]."))
qdel(H)
else
if(holocreator_busy)
to_chat(user, "<span class='notice'>[src] is busy creating a hologram.</span>")
to_chat(user, span_notice("[src] is busy creating a hologram."))
return
if(signs.len < max_signs)
playsound(src.loc, 'sound/machines/click.ogg', 20, 1)
@@ -41,9 +41,9 @@
if(is_blocked_turf(T, TRUE)) //don't try to sneak dense stuff on our tile during the wait.
return
H = new holosign_type(get_turf(target), src)
to_chat(user, "<span class='notice'>You create \a [H] with [src].</span>")
to_chat(user, span_notice("You create \a [H] with [src]."))
else
to_chat(user, "<span class='notice'>[src] is projecting at max capacity!</span>")
to_chat(user, span_notice("[src] is projecting at max capacity!"))
/obj/item/holosign_creator/attack_self(mob/user)
. = ..()
@@ -52,7 +52,7 @@
if(signs.len)
for(var/H in signs)
qdel(H)
to_chat(user, "<span class='notice'>You clear all active holograms.</span>")
to_chat(user, span_notice("You clear all active holograms."))
/obj/item/holosign_creator/combifan
name = "ATMOS holo-combifan projector"

View File

@@ -20,9 +20,9 @@
/obj/item/petrifier/attack_self(var/mob/user)
. = ..()
if (!isturf(user.loc) && user.get_ultimate_mob() != target)
to_chat(user, "<span class='warning'>The device beeps but does nothing.</span>")
to_chat(user, span_warning("The device beeps but does nothing."))
return
if (linked?.petrify(src))
visible_message("<span class='notice'>A ray of purple light streams out of \the [src], aimed directly at [target]. Everywhere the light touches on them quickly [adjective] into [material].</span>")
to_chat(user, "<span class='warning'>The device fizzles and crumbles into dust.</span>")
visible_message(span_notice("A ray of purple light streams out of \the [src], aimed directly at [target]. Everywhere the light touches on them quickly [adjective] into [material]."))
to_chat(user, span_warning("The device fizzles and crumbles into dust."))
qdel(src)

View File

@@ -9,4 +9,4 @@
name = "target notice"
/obj/item/paper/target/New()
info = {"Your target is <b>[random_name(pick(MALE,FEMALE))]</b>. Make sure they don't get out of there alive."}
info = "Your target is " + span_bold("[random_name(pick(MALE,FEMALE))]") + ". Make sure they don't get out of there alive."

View File

@@ -87,9 +87,9 @@ rborosilicate = 12
var/amount_to_use = min(S.amount, maxsheets)
S.use(amount_to_use)
stored_matter += value*amount_to_use
to_chat(user, "<span class='notice'>You insert [amount_to_use] [S.name] sheets into [src]. </span>")
to_chat(user, span_notice("You insert [amount_to_use] [S.name] sheets into [src]. "))
return 1
to_chat(user, "<span class='warning'>You can't insert any more [S.name] sheets into [src]!</span>")
to_chat(user, span_warning("You can't insert any more [S.name] sheets into [src]!"))
return 0
/obj/item/rcd/attack_self(mob/living/user)
@@ -242,7 +242,7 @@ rborosilicate = 12
else
return
playsound(src, 'sound/effects/pop.ogg', 50, FALSE)
to_chat(user, "<span class='notice'>You change RCD's mode to '[choice]'.</span>")
to_chat(user, span_notice("You change RCD's mode to '[choice]'."))
/obj/item/rcd/proc/get_airlock_image(airlock_type)
var/obj/machinery/door/airlock/proto = airlock_type
@@ -385,17 +385,17 @@ rborosilicate = 12
t1 += "<a href='?src=[REF(src)];access=all'>Remove All</a><br>"
var/accesses = ""
accesses += "<div align='center'><b>Access</b></div>"
accesses += "<div align='center'>" + span_bold("Access") + "</div>"
accesses += "<table style='width:100%'>"
accesses += "<tr>"
for(var/i = 1; i <= 7; i++)
accesses += "<td style='width:14%'><b>[get_region_accesses_name(i)]:</b></td>"
accesses += "<td style='width:14%'>" + span_bold("[get_region_accesses_name(i)]:") + "</td>"
accesses += "</tr><tr>"
for(var/i = 1; i <= 7; i++)
accesses += "<td style='width:14%' valign='top'>"
for(var/A in get_region_accesses(i))
if(A in conf_access)
accesses += "<a href='?src=[REF(src)];access=[A]'><font color=\"red\">[replacetext(get_access_desc(A), " ", "&nbsp")]</font></a> "
accesses += "<a href='?src=[REF(src)];access=[A]'>" + span_red("[replacetext(get_access_desc(A), " ", "&nbsp")]") + "</a> "
else
accesses += "<a href='?src=[REF(src)];access=[A]'>[replacetext(get_access_desc(A), " ", "&nbsp")]</a> "
accesses += "<br>"

View File

@@ -21,7 +21,7 @@
formatted_desc = replacetext(in_gut.desc, "%belly", lowertext(in_gut.name)) //replace with this belly's name
formatted_desc = replacetext(formatted_desc, "%pred", in_gut.owner) //replace with this belly's owner
formatted_desc = replacetext(formatted_desc, "%prey", contained) //replace with whatever mob entered into this belly
to_chat(contained, "<span class='notice'><B>[formatted_desc]</B></span>")
to_chat(contained, span_boldnotice("[formatted_desc]"))
/obj/item/capture_crystal/exit_belly()
for(var/mob/living/contained in src.contents)
@@ -102,7 +102,7 @@
/* // Disabled (and untested) for now, left to make it easier if we want to enable this later.
if(in_gut.disable_hud)
if(contained?.hud_used?.hud_shown)
to_chat(contained, "<span class='notice'>((Your pred has disabled huds in their belly. Turn off vore FX and hit F12 to get it back; or relax, and enjoy the serenity.))</span>")
to_chat(contained, span_notice("((Your pred has disabled huds in their belly. Turn off vore FX and hit F12 to get it back; or relax, and enjoy the serenity.))"))
contained.toggle_hud_vis(TRUE) */
// Inelegant copy-pasta since I can't steal the proc from bellies.
@@ -136,14 +136,14 @@
/obj/item/capture_crystal/loadout/attack(mob/living/M, mob/living/user)
if(!bound_mob && M != user)
to_chat(user, "<span class='notice'>\The [src] emits an unpleasant tone...</span>")
to_chat(user, span_notice("\The [src] emits an unpleasant tone..."))
playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
return
. = ..()
/obj/item/capture_crystal/loadout/attack_self(mob/living/user)
if(!bound_mob)
to_chat(user, "<span class='notice'>\The [src] emits an unpleasant tone... It is not ready yet.</span>")
to_chat(user, span_notice("\The [src] emits an unpleasant tone... It is not ready yet."))
playsound(src, 'sound/effects/capture-crystal-problem.ogg', 75, 1, -1)
return
. = ..()
@@ -160,12 +160,12 @@
//The basic capture command does most of the registration work.
/obj/item/capture_crystal/cheap/capture(mob/living/M, mob/living/U)
if(!M.capture_crystal || M.capture_caught)
to_chat(U, "<span class='warning'>This creature is not suitable for capture with this crystal.</span>")
to_chat(U, span_warning("This creature is not suitable for capture with this crystal."))
playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
return
knowyoursignals(M, U)
if(isanimal(M) || !M.client)
to_chat(U, "<span class='warning'>This creature is not suitable for capture.</span>")
to_chat(U, span_warning("This creature is not suitable for capture."))
playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
return
owner = U
@@ -178,7 +178,7 @@
/obj/item/capture_crystal/cheap/activate(mob/living/user, target)
if(!cooldown_check()) //Are we ready to do things yet?
to_chat(thrower, "<span class='notice'>\The [src] clicks unsatisfyingly... It is not ready yet.</span>")
to_chat(thrower, span_notice("\The [src] clicks unsatisfyingly... It is not ready yet."))
playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
return
if(spawn_mob_type && !bound_mob) //We don't already have a mob, but we know what kind of mob we want
@@ -201,31 +201,31 @@
last_activate = world.time
if(M.capture_caught) //Can't capture things that were already caught.
playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
to_chat(user, "<span class='notice'>\The [src] clicks unsatisfyingly... \The [M] is already under someone else's control.</span>")
to_chat(user, span_notice("\The [src] clicks unsatisfyingly... \The [M] is already under someone else's control."))
return
else if(M.stat == DEAD) //Is it dead? We can't influence dead things.
playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
to_chat(user, "<span class='notice'>\The [src] clicks unsatisfyingly... \The [M] is not in a state to be captured.</span>")
to_chat(user, span_notice("\The [src] clicks unsatisfyingly... \The [M] is not in a state to be captured."))
return
else if(M.client) //Is it player controlled?
capture_player(M, user) //We have to do things a little differently if so.
return
else if(!isanimal(M)) //So it's not player controlled, but it's also not a simplemob?
to_chat(user, "<span class='warning'>This creature is not suitable for capture.</span>")
to_chat(user, span_warning("This creature is not suitable for capture."))
playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
return
var/mob/living/simple_mob/S = M
if(!S.ai_holder) //We don't really want to capture simplemobs that don't have an AI
to_chat(user, "<span class='warning'>This creature is not suitable for capture.</span>")
to_chat(user, span_warning("This creature is not suitable for capture."))
playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
else //Shoot, it didn't work and now it's mad!!!
S.ai_holder.go_wake()
S.ai_holder.give_target(user, urgent = TRUE)
user.visible_message("\The [src] bonks into \the [S], angering it!")
playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
to_chat(user, "<span class='notice'>\The [src] clicks unsatisfyingly.</span>")
to_chat(user, span_notice("\The [src] clicks unsatisfyingly."))
update_icon()
return
//The target is not a mob, so let's not do anything.
playsound(src, 'sound/effects/capture-crystal-negative.ogg', 75, 1, -1)
to_chat(user, "<span class='notice'>\The [src] clicks unsatisfyingly.</span>")
to_chat(user, span_notice("\The [src] clicks unsatisfyingly."))

View File

@@ -38,12 +38,12 @@
item_state = "[base_state]on"
playsound(src, activation_sound, 75, 1)
if(prob(50))
user.visible_message("<span class='rose'>[user] safely activates the [src] with a push of a button!</span>")
user.visible_message(span_rose("[user] safely activates the [src] with a push of a button!"))
else
if(prob(95))
user.visible_message("<span class='notice'>After a few attempts, [user] manages to excite the supermatter within the [src].</span>")
user.visible_message(span_notice("After a few attempts, [user] manages to excite the supermatter within the [src]."))
else // Just like the cheap lighter, this time you can shock/burn yourself a little on the hardlight shield
to_chat(user, "<span class='warning'>You hurt yourself on the shielding!</span>")
to_chat(user, span_warning("You hurt yourself on the shielding!"))
if (user.get_left_hand() == src)
user.apply_damage(1,SEARING,"l_hand")
user.apply_damage(2,ELECTROCUTE,"l_hand")
@@ -54,7 +54,7 @@
user.apply_damage(2,ELECTROCUTE,"r_hand")
user.apply_damage(3,CLONE,"r_hand")
user.apply_damage(4,ELECTROMAG,"r_hand")
user.visible_message("<span class='notice'>After a few attempts, [user] manages to activate the [src], they however sting themselves on the shielding!</span>")
user.visible_message(span_notice("After a few attempts, [user] manages to activate the [src], they however sting themselves on the shielding!"))
set_light(2)
START_PROCESSING(SSobj, src)
@@ -64,9 +64,9 @@
item_state = "[base_state]"
playsound(src, deactivation_sound, 75, 1)
if(istype(src, /obj/item/flame/lighter/supermatter) )
user.visible_message("<span class='rose'>You hear a quiet click, as [user] shuts the [src] without even looking at what they're doing.</span>")
user.visible_message(span_rose("You hear a quiet click, as [user] shuts the [src] without even looking at what they're doing."))
else
user.visible_message("<span class='notice'>[user] quietly shuts the [src].</span>")
user.visible_message(span_notice("[user] quietly shuts the [src]."))
set_light(0)
STOP_PROCESSING(SSobj, src)
@@ -87,9 +87,9 @@
cig.attackby(src, user)
else
if(istype(src, /obj/item/flame/lighter/supermatter))
cig.light("<span class='rose'>[user] whips the [name] out and holds it for [M].</span>")
cig.light(span_rose("[user] whips the [name] out and holds it for [M]."))
else
cig.light("<span class='notice'>[user] holds the [name] out for [M], and lights the [cig.name].</span>")
cig.light(span_notice("[user] holds the [name] out for [M], and lights the [cig.name]."))
else
..()
@@ -109,12 +109,12 @@
item_state = "[base_state]on"
playsound(src, activation_sound, 75, 1)
if(prob(50))
user.visible_message("<span class='rose'>[user] safely activates the [src] with a push of a button!</span>")
user.visible_message(span_rose("[user] safely activates the [src] with a push of a button!"))
else
if(prob(95))
user.visible_message("<span class='notice'>After a few attempts, [user] manages to excite the supermatter within the [src].</span>")
user.visible_message(span_notice("After a few attempts, [user] manages to excite the supermatter within the [src]."))
else // Just like with the cheap lighter, but this time you can hurt yourself on the heated phoron field
to_chat(user, "<span class='warning'>You singe yourself on the phoron shielding the excited supermatter!</span>")
to_chat(user, span_warning("You singe yourself on the phoron shielding the excited supermatter!"))
if (user.get_left_hand() == src)
user.apply_damage(30,HALLOSS,"l_hand")
user.apply_effect(20,IRRADIATE)
@@ -125,7 +125,7 @@
user.apply_effect(20,IRRADIATE)
user.apply_damage(5,BURN,"r_hand")
user.apply_damage(5,ELECTROCUTE,"r_hand")
user.visible_message("<span class='notice'>After a few attempts, [user] manages to activate the [src], they however burn themselves with the heated phoron field!</span>")
user.visible_message(span_notice("After a few attempts, [user] manages to activate the [src], they however burn themselves with the heated phoron field!"))
set_light(2)
START_PROCESSING(SSobj, src)
@@ -135,9 +135,9 @@
item_state = "[base_state]"
playsound(src, deactivation_sound, 75, 1)
if(istype(src, /obj/item/flame/lighter/supermatter/syndismzippo) )
user.visible_message("<span class='rose'>You hear a quiet click, as [user] shuts the [src] without even looking at what they're doing.</span>")
user.visible_message(span_rose("You hear a quiet click, as [user] shuts the [src] without even looking at what they're doing."))
else
user.visible_message("<span class='notice'>[user] quietly shuts the [src].</span>")
user.visible_message(span_notice("[user] quietly shuts the [src]."))
set_light(0)
STOP_PROCESSING(SSobj, src)
@@ -158,9 +158,9 @@
cig.attackby(src, user)
else
if(istype(src, /obj/item/flame/lighter/supermatter/syndismzippo))
cig.light("<span class='rose'>[user] whips the [name] out and holds it for [M].</span>")
cig.light(span_rose("[user] whips the [name] out and holds it for [M]."))
else
cig.light("<span class='notice'>[user] holds the [name] out for [M], and lights the [cig.name].</span>")
cig.light(span_notice("[user] holds the [name] out for [M], and lights the [cig.name]."))
else
..()
@@ -182,15 +182,15 @@
var/i = rand(1, 100)
switch(i)
if(1 to 22)
to_chat(user, "<span class='rose'>[user] safely reveals the supermatter shard within the [src]!</span>")
user.visible_message("<span class='rose'>You safely revealed the supermatter shard within the [src]!</span>")
to_chat(user, span_rose("[user] safely reveals the supermatter shard within the [src]!"))
user.visible_message(span_rose("You safely revealed the supermatter shard within the [src]!"))
if (user.get_left_hand() == src)
user.apply_damage(1, IRRADIATE, "l_hand")
else // Even using this safely will irradiate you a tiny tiny bit.
user.apply_damage(1, IRRADIATE, "r_hand")
if(23 to 33)
to_chat(user, "<span class='warning'>[user]'s hand slipped and they brush against the supermatter within [src]!</span>")
user.visible_message("<span class='notice'>You accidentally grazed your hand across the supermatter!</span>")
to_chat(user, span_warning("[user]'s hand slipped and they brush against the supermatter within [src]!"))
user.visible_message(span_notice("You accidentally grazed your hand across the supermatter!"))
if (user.get_left_hand() == src)
user.apply_damage(10, IRRADIATE, "l_hand")
user.apply_damage(20, BURN, "l_hand")
@@ -202,8 +202,8 @@
user.apply_damage(20, ELECTROCUTE, "r_hand")
user.apply_damage(50, AGONY, "r_hand")
if(34 to 44)
to_chat(user, "<span class='warning'>[user] burned themselves on the [src]!</span>")
user.visible_message("<span class='notice'>You accidentally burn yourself on the [src]!</span>")
to_chat(user, span_warning("[user] burned themselves on the [src]!"))
user.visible_message(span_notice("You accidentally burn yourself on the [src]!"))
if (user.get_left_hand() == src)
user.apply_damage(30, IRRADIATE, "l_hand")
user.apply_damage(20, SEARING, "l_hand")
@@ -213,8 +213,8 @@
user.apply_damage(20, SEARING, "r_hand")
user.apply_damage(15, BURN, "r_hand")
if(45 to 55)
to_chat(user, "<span class='warning'>[user] fumbled the [src] and the supermatter let out sparks!</span>")
user.visible_message("<span class='notice'>You fumble the [src], letting the supermatter spark as the case opens!</span>")
to_chat(user, span_warning("[user] fumbled the [src] and the supermatter let out sparks!"))
user.visible_message(span_notice("You fumble the [src], letting the supermatter spark as the case opens!"))
if (user.get_left_hand() == src)
user.apply_damage(1, ELECTROCUTE, "l_hand")
user.apply_damage(100, ELECTROMAG, "l_hand")
@@ -222,8 +222,8 @@
user.apply_damage(1, ELECTROCUTE, "r_hand")
user.apply_damage(100, ELECTROMAG, "r_hand")
if(56 to 66)
to_chat(user, "<span class='warning'>[user] struggles to open their [src], but when they do they get burned by the extreme heat within!</span>")
user.visible_message("<span class='notice'>You struggle to get the case to open, and when it does the heat that pours out of the [src] burns!</span>")
to_chat(user, span_warning("[user] struggles to open their [src], but when they do they get burned by the extreme heat within!"))
user.visible_message(span_notice("You struggle to get the case to open, and when it does the heat that pours out of the [src] burns!"))
if (user.get_left_hand() == src)
user.apply_damage(1, IRRADIATE, "l_hand")
user.apply_damage(1, BRUISE, "l_hand")
@@ -235,8 +235,8 @@
user.apply_damage(200, BURN, "r_hand")
user.drop_r_hand()
if(67 to 77)
to_chat(user, "<span class='warning'>Ouch! While pushing on the release to open the [src], [user]'s finger slipped right as the case opened, pressing their finger firm against the supermatter!</span>")
user.visible_message("<span class='notice'>You accidentally pushed your finger against the supermatter!</span>")
to_chat(user, span_warning("Ouch! While pushing on the release to open the [src], [user]'s finger slipped right as the case opened, pressing their finger firm against the supermatter!"))
user.visible_message(span_notice("You accidentally pushed your finger against the supermatter!"))
if (user.get_left_hand() == src)
user.apply_damage(50, HALLOSS, "l_hand")
user.apply_damage(40, IRRADIATE, "l_hand")
@@ -256,8 +256,8 @@
user.apply_effect(15, SLUR)
user.apply_effect(5, STUN)
if(78 to 88)
to_chat(user, "<span class='notice'>[user] managed to pinch themselves on the case of their [src]... it could have been worse.</span>")
user.visible_message("<span class='notice'>You manage to pinch yourself on the case!</span>")
to_chat(user, span_notice("[user] managed to pinch themselves on the case of their [src]... it could have been worse."))
user.visible_message(span_notice("You manage to pinch yourself on the case!"))
if (user.get_left_hand() == src)
user.apply_damage(1, CLONE, "l_hand")
user.apply_damage(1, HALLOSS, "l_hand")
@@ -265,8 +265,8 @@
user.apply_damage(1, CLONE, "r_hand")
user.apply_damage(1, HALLOSS, "r_hand")
if(89 to 99)
to_chat(user, "<span class='notice'>[user] opened the [src] but forgot that you aren't supposed to look at supermatter!</span>")
user.visible_message("<span class='notice'>You find yourself looking at the supermatter for longer than you should...</span>")
to_chat(user, span_notice("[user] opened the [src] but forgot that you aren't supposed to look at supermatter!"))
user.visible_message(span_notice("You find yourself looking at the supermatter for longer than you should..."))
if (user.get_left_hand() == src)
user.apply_damage(15, HALLOSS, "l_hand")
user.apply_effect(5, WEAKEN)
@@ -284,8 +284,8 @@
user.apply_damage(15, OXY)
user.eye_blurry = 10
if(100) // This is the part that makes it admin only for the moment, it spawns 500 rads from the carbon's position, and dusts the carbon instantly. It does also drop everything unlike the supermatter crystal though, so hopefully you won't lose any items if you fumble this badly!
to_chat(user, "<span class='warning'>OH NO! [user] almost dropped their live [src]! Thank goodness they caught it... by the glowing yellow crystal... oh.</span>")
user.visible_message("<span class='danger'>You almost dropped your [src], thank goodness you caught it! By the glowing crystal within. You find your ears filled with unearthly ringing and your last thought is \"Oh, fuck.\"</span>")
to_chat(user, span_warning("OH NO! [user] almost dropped their live [src]! Thank goodness they caught it... by the glowing yellow crystal... oh."))
user.visible_message(span_danger("You almost dropped your [src], thank goodness you caught it! By the glowing crystal within. You find your ears filled with unearthly ringing and your last thought is \"Oh, fuck.\""))
user.drop_r_hand() // To ensure the lighter is dropped <3
user.drop_l_hand() // To ensure the lighter is dropped <3
for(var/obj/item/e in user)
@@ -303,9 +303,9 @@
item_state = "[base_state]"
playsound(src, deactivation_sound, 75, 1)
if (istype(src, /obj/item/flame/lighter/supermatter/expsmzippo))
user.visible_message("<span class='rose'>You hear a quiet click, as [user] closes the [src].</span>")
user.visible_message(span_rose("You hear a quiet click, as [user] closes the [src]."))
else
user.visible_message("<span class='notice'>[user] quietly shuts the [src].</span>")
user.visible_message(span_notice("[user] quietly shuts the [src]."))
set_light(0)
STOP_PROCESSING(SSobj, src)
@@ -324,9 +324,9 @@
cig.attackby(src, user)
else
if (istype(src, /obj/item/flame/lighter/supermatter/expsmzippo))
cig.light("<span class='rose'>[user] whips the [name] out and holds it for [M].</span>")
cig.light(span_rose("[user] whips the [name] out and holds it for [M]."))
else
cig.light("<span class='notice'>[user] holds the [name] out for [M], and lights the [cig.name].</span>")
cig.light(span_notice("[user] holds the [name] out for [M], and lights the [cig.name]."))
else
..()

View File

@@ -123,7 +123,7 @@
flapping = H.flapping
H.toggle_tail(FALSE, FALSE)
H.toggle_wing(FALSE, FALSE)
H.visible_message("<span class='warning'>[H]'s skin rapidly [adjective] as they turn to [material]!</span>", "<span class='warning'>Your skin abruptly [adjective] as you turn to [material]!</span>")
H.visible_message(span_warning("[H]'s skin rapidly [adjective] as they turn to [material]!"), span_warning("Your skin abruptly [adjective] as you turn to [material]!"))
H.forceMove(src)
H.SetBlinded(0)
H.SetSleeping(0)
@@ -142,7 +142,7 @@
if (can_revert)
unpetrify(deleting = FALSE) //don't delete if we're already deleting!
else
visible_message("<span class='warning'>The [identifier] loses shape and crumbles into a pile of [material]!</span>")
visible_message(span_warning("The [identifier] loses shape and crumbles into a pile of [material]!"))
. = ..()
/obj/structure/gargoyle/process()
@@ -205,10 +205,10 @@
var/f = (original_int - obj_integrity) / 10
for (var/x in 1 to 10)
gargoyle.adjustBruteLoss(f)
hurtmessage = " <b>You feel your body take the damage that was dealt while being [material]!</b>"
hurtmessage = " " + span_bold("You feel your body take the damage that was dealt while being [material]!")
gargoyle.updatehealth()
alpha = 0
gargoyle.visible_message("<span class='warning'>[gargoyle]'s skin rapidly reverts, returning them to normal!</span>", "<span class='warning'>Your skin reverts, freeing your movement once more![hurtmessage]</span>")
gargoyle.visible_message(span_warning("[gargoyle]'s skin rapidly reverts, returning them to normal!"), span_warning("Your skin reverts, freeing your movement once more![hurtmessage]"))
gargoyle = null
if (deleting)
qdel(src)
@@ -235,25 +235,25 @@
/obj/structure/gargoyle/attack_generic(var/mob/user, var/damage, var/attack_message = "hits")
user.do_attack_animation(src)
visible_message("<span class='danger'>[user] [attack_message] the [src]!</span>")
visible_message(span_danger("[user] [attack_message] the [src]!"))
damage(damage)
/obj/structure/gargoyle/attackby(var/obj/item/W as obj, var/mob/living/user as mob)
if(W.is_wrench())
if (isspace(loc) || isopenspace(loc))
to_chat(user, "<span class='warning'>You can't anchor that here!</span>")
to_chat(user, span_warning("You can't anchor that here!"))
anchored = FALSE
return ..()
playsound(src, W.usesound, 50, 1)
if (do_after(user, (2 SECONDS) * W.toolspeed, target = src))
to_chat(user, "<span class='notice'>You [anchored ? "un" : ""]anchor the [src].</span>")
to_chat(user, span_notice("You [anchored ? "un" : ""]anchor the [src]."))
anchored = !anchored
else if(!isrobot(user) && gargoyle && gargoyle.vore_selected && gargoyle.trash_catching)
if(istype(W,/obj/item/grab || /obj/item/holder))
gargoyle.vore_attackby(W, user)
return
if(gargoyle.adminbus_trash || is_type_in_list(W,edible_trash) && W.trash_eatable && !is_type_in_list(W,item_vore_blacklist))
to_chat(user, "<span class='warning'>You slip [W] into [gargoyle]'s [lowertext(gargoyle.vore_selected.name)] .</span>")
to_chat(user, span_warning("You slip [W] into [gargoyle]'s [lowertext(gargoyle.vore_selected.name)] ."))
user.drop_item()
W.forceMove(gargoyle.vore_selected)
return

View File

@@ -37,7 +37,7 @@
if((L.resting || L.lying) && !L.buckled)
bowl_contents += L
if(bowl_contents.len)
user.visible_message("<span class='notice'>[user] flushes the [lowertext(name)].</span>", "<span class='notice'>You flush the [lowertext(name)].</span>")
user.visible_message(span_notice("[user] flushes the [lowertext(name)]."), span_notice("You flush the [lowertext(name)]."))
playsound(src, 'sound/vore/death7.ogg', 50, 1) //Got lazy about getting new sound files. Have a sick remix lmao.
playsound(src, 'sound/effects/bubbles.ogg', 50, 1)
playsound(src, 'sound/mecha/powerup.ogg', 30, 1)
@@ -78,7 +78,7 @@
panic_mult = 1
if(refilling)
playsound(src, 'sound/machines/door_locked.ogg', 30, 1)
to_chat(user, "<span class='notice'>The [lowertext(name)] is still refilling its tank.</span>")
to_chat(user, span_notice("The [lowertext(name)] is still refilling its tank."))
return ..()
/obj/structure/toilet/attackby(obj/item/I as obj, mob/living/user as mob)

View File

@@ -29,21 +29,21 @@
to_chat(user, "The machine is destroyed.")
if(P.weather_holder == /datum/weather/sif/sandstorm)
visible_message(span_orange("<B>The [src] begins to tremble before something emerges!.</B>"))
visible_message(span_bolddanger(span_orange("The [src] begins to tremble before something emerges!.")))
uses = 0
new /mob/living/simple_mob/vore/weatherbeast/sandstorm (src.loc)
if(P.weather_holder == /datum/weather/sif/toxinrain)
visible_message(span_orange("<B>The [src] begins to tremble before something emerges!.</B>"))
visible_message(span_bolddanger(span_orange("The [src] begins to tremble before something emerges!.")))
uses = 0
new /mob/living/simple_mob/vore/weatherbeast/acidrain (src.loc)
if(P.weather_holder == /datum/weather/sif/midnightfog)
visible_message(span_orange("<B>The [src] begins to tremble before something emerges!.</B>"))
visible_message(span_bolddanger(span_orange("The [src] begins to tremble before something emerges!.")))
uses = 0
new /mob/living/simple_mob/vore/weatherbeast/darkmist (src.loc)
if(P.weather_holder == /datum/weather/sif/starryrift)
visible_message(span_orange("<B>The [src] begins to tremble before something emerges!.</B>"))
visible_message(span_bolddanger(span_orange("The [src] begins to tremble before something emerges!.")))
uses = 0
new /mob/living/simple_mob/vore/weatherbeast/starsky (src.loc)

View File

@@ -23,13 +23,13 @@
/turf/simulated/floor/outdoors/desert_planet/sand/attackby(var/obj/item/W, var/mob/user)
if(istype(W, /obj/item/shovel))
to_chat(user, "<span class='notice'>You begin to remove \the [src] with your [W].</span>")
to_chat(user, span_notice("You begin to remove \the [src] with your [W]."))
if(do_after(user, 4 SECONDS * W.toolspeed))
to_chat(user, "<span class='notice'>\The [src] has been dug up, and now lies in a pile nearby.</span>")
to_chat(user, span_notice("\The [src] has been dug up, and now lies in a pile nearby."))
icon_state = "sand_dug"
new /obj/item/ore/glass (src)
else
to_chat(user, "<span class='notice'>You decide to not finish removing \the [src].</span>")
to_chat(user, span_notice("You decide to not finish removing \the [src]."))
else
..()
@@ -89,7 +89,7 @@
// Stolen from mineral turf code.
/turf/simulated/floor/outdoors/desert_planet/stonewall/attackby(obj/item/W as obj, mob/user as mob)
if(!user.IsAdvancedToolUser())
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
to_chat(user, span_warning("You don't have the dexterity to do this!"))
return
if(istype(W, /obj/item/pickaxe))
@@ -102,11 +102,11 @@
last_act = world.time
playsound(user, P.drill_sound, 20, 1)
to_chat(user, "<span class='notice'>You start [P.drill_verb].</span>")
to_chat(user, span_notice("You start [P.drill_verb]."))
if(do_after(user,P.digspeed))
to_chat(user, "<span class='notice'>You finish [P.drill_verb] \the [src].</span>")
to_chat(user, span_notice("You finish [P.drill_verb] \the [src]."))
new /obj/item/stack/material/sandstone(src)
density = FALSE
opacity = FALSE

View File

@@ -26,7 +26,7 @@
// Stolen from mineral turf code.
/turf/simulated/floor/outdoors/lavaland/ashrock/attackby(obj/item/W as obj, mob/user as mob)
if(!user.IsAdvancedToolUser())
to_chat(user, "<span class='warning'>You don't have the dexterity to do this!</span>")
to_chat(user, span_warning("You don't have the dexterity to do this!"))
return
if(istype(W, /obj/item/pickaxe))
@@ -39,11 +39,11 @@
last_act = world.time
playsound(user, P.drill_sound, 20, 1)
to_chat(user, "<span class='notice'>You start [P.drill_verb].</span>")
to_chat(user, span_notice("You start [P.drill_verb]."))
if(do_after(user,P.digspeed))
to_chat(user, "<span class='notice'>You finish [P.drill_verb] \the [src].</span>")
to_chat(user, span_notice("You finish [P.drill_verb] \the [src]."))
density = FALSE
opacity = FALSE
demote() // Converts the turf to the next layer in turf_layers.

View File

@@ -111,7 +111,7 @@
sleep(1 * world.tick_lag)
if(istype(M, /mob/living))
if(M.stunned == 0)
to_chat(M, "<span class='warning'>You slide across the ice!</span>")
to_chat(M, span_warning("You slide across the ice!"))
M.SetStunned(1)
step(M,M.dir)

View File

@@ -12,4 +12,4 @@ GLOBAL_VAR_INIT(global_vantag_hud, 0)
L.vantag_hud = TRUE
L.recalculate_vis()
to_chat(src, "<span class='warning'>Global Event HUD has been turned [GLOB.global_vantag_hud ? "on" : "off"].</span>")
to_chat(src, span_warning("Global Event HUD has been turned [GLOB.global_vantag_hud ? "on" : "off"]."))

View File

@@ -14,9 +14,9 @@
continue
full++
if(full >= 2)
to_chat(user, "<span class='warning'>It doesn't seem like there is room in \the [src]!</span>")
to_chat(user, span_warning("It doesn't seem like there is room in \the [src]!"))
else
to_chat(user, "<span class='warning'>You crawl into \the [src]!</span>")
to_chat(user, span_warning("You crawl into \the [src]!"))
user.forceMove(src)
return ..()
@@ -56,7 +56,7 @@
"The wearer of \the [name] walks, and their feet press down on you heavily with each step.",
"With each step of their unhurried walk, you're tightly sandwiched between [pred]'s feet and the insole of their boots.",
"As [pred] walks, their foot presses you tightly against the insole of their boots with each step.")
to_chat(prey, span_emote_subtle("<I>[message_prey]</I>"))
to_chat(prey, span_emote_subtle(span_italics("[message_prey]")))
return //No message for pred if I_HELP

View File

@@ -79,7 +79,7 @@
if(H && H.gloves == src)
wearer = H
if(wearer.can_feel_pain())
to_chat(H, "<span class='danger'>You feel strange as hunger vanishes!</span>")
to_chat(H, span_danger("You feel strange as hunger vanishes!"))
wearer.custom_pain("Your hands feel strange!",1)
..()
@@ -87,7 +87,7 @@
..()
if(wearer)
if(wearer.can_feel_pain())
to_chat(wearer, "<span class='danger'>You feel hungry!</span>")
to_chat(wearer, span_danger("You feel hungry!"))
wearer.custom_pain("Your hands feel strange",1)
wearer = null
@@ -123,7 +123,7 @@
/obj/item/clothing/suit/armor/buffvest/proc/activate_ability(var/mob/living/wearer)
cooldown = world.time + cooldown_duration
to_chat(wearer, flavor_activate)
to_chat(wearer, "<span class='danger'>The inside of your head hurts...</span>")
to_chat(wearer, span_danger("The inside of your head hurts..."))
wearer.adjustBrainLoss(brainloss_cost)
wearer.add_modifier(/datum/modifier/aura/candy_blue, 30 SECONDS)

View File

@@ -72,36 +72,36 @@
var/message = phrase_list[key]
if (!safety)
to_chat(usr, "<span class='notice'>You set the restrictor to: FUCK YOUR CUNT YOU SHIT EATING COCKSUCKER MAN EAT A DONG FUCKING ASS RAMMING SHIT FUCK EAT PENISES IN YOUR FUCK FACE AND SHIT OUT ABORTIONS OF FUCK AND DO SHIT IN YOUR ASS YOU COCK FUCK SHIT MONKEY FUCK ASS WANKER FROM THE DEPTHS OF SHIT.</span>")
to_chat(usr, span_notice("You set the restrictor to: FUCK YOUR CUNT YOU SHIT EATING COCKSUCKER MAN EAT A DONG FUCKING ASS RAMMING SHIT FUCK EAT PENISES IN YOUR FUCK FACE AND SHIT OUT ABORTIONS OF FUCK AND DO SHIT IN YOUR ASS YOU COCK FUCK SHIT MONKEY FUCK ASS WANKER FROM THE DEPTHS OF SHIT."))
return
switch(aggressiveness)
if(1)
phrase = (phrase < 6) ? (phrase + 1) : 1
key = phrase_list[phrase]
message = phrase_list[key]
to_chat(usr,"<span class='notice'>You set the restrictor to: [message]</span>")
to_chat(usr,span_notice("You set the restrictor to: [message]"))
if(2)
phrase = (phrase < 11 && phrase >= 7) ? (phrase + 1) : 7
key = phrase_list[phrase]
message = phrase_list[key]
to_chat(usr,"<span class='notice'>You set the restrictor to: [message]</span>")
to_chat(usr,span_notice("You set the restrictor to: [message]"))
if(3)
phrase = (phrase < 18 && phrase >= 12 ) ? (phrase + 1) : 12
key = phrase_list[phrase]
message = phrase_list[key]
to_chat(usr,"<span class='notice'>You set the restrictor to: [message]</span>")
to_chat(usr,span_notice("You set the restrictor to: [message]"))
if(4)
phrase = (phrase < 18 && phrase >= 1 ) ? (phrase + 1) : 1
key = phrase_list[phrase]
message = phrase_list[key]
to_chat(usr,"<span class='notice'>You set the restrictor to: [message]</span>")
to_chat(usr,span_notice("You set the restrictor to: [message]"))
else
to_chat(usr, "<span class='notice'>It's broken.</span>")
to_chat(usr, span_notice("It's broken."))
/obj/item/clothing/mask/gas/sechailer/emag_act(mob/user)
if(safety)
safety = 0
to_chat(user, "<span class='warning'>You silently fry [src]'s vocal circuit with the cryptographic sequencer.</span>")
to_chat(user, span_warning("You silently fry [src]'s vocal circuit with the cryptographic sequencer."))
else
return
@@ -109,30 +109,30 @@
if(I.is_screwdriver())
switch(aggressiveness)
if(1)
to_chat(user, "<span class='notice'>You set the aggressiveness restrictor to the second position.</span>")
to_chat(user, span_notice("You set the aggressiveness restrictor to the second position."))
aggressiveness = 2
phrase = 7
if(2)
to_chat(user, "<span class='notice'>You set the aggressiveness restrictor to the third position.</span>")
to_chat(user, span_notice("You set the aggressiveness restrictor to the third position."))
aggressiveness = 3
phrase = 13
if(3)
to_chat(user, "<span class='notice'>You set the aggressiveness restrictor to the fourth position.</span>")
to_chat(user, span_notice("You set the aggressiveness restrictor to the fourth position."))
aggressiveness = 4
phrase = 1
if(4)
to_chat(user, "<span class='notice'>You set the aggressiveness restrictor to the first position.</span>")
to_chat(user, span_notice("You set the aggressiveness restrictor to the first position."))
aggressiveness = 1
phrase = 1
if(5)
to_chat(user, "<span class='warning'>You adjust the restrictor but nothing happens, probably because its broken.</span>")
to_chat(user, span_warning("You adjust the restrictor but nothing happens, probably because its broken."))
if(I.is_wirecutter())
if(aggressiveness != 5)
to_chat(user, "<span class='warning'>You broke it!</span>")
to_chat(user, span_warning("You broke it!"))
aggressiveness = 5
if(I.is_crowbar())
if(!hailer)
to_chat(user, "<span class='warning'>This mask has an integrated hailer, you can't remove it!</span>")
to_chat(user, span_warning("This mask has an integrated hailer, you can't remove it!"))
else
var/obj/N = new /obj/item/clothing/mask/gas/half(src.loc)
playsound(src, 'sound/items/Screwdriver.ogg', 50, 1)
@@ -159,11 +159,11 @@
if(cooldown < world.time - 35) // A cooldown, to stop people being jerks
if(!safety)
message = "FUCK YOUR CUNT YOU SHIT EATING COCKSUCKER MAN EAT A DONG FUCKING ASS RAMMING SHIT FUCK EAT PENISES IN YOUR FUCK FACE AND SHIT OUT ABORTIONS OF FUCK AND DO SHIT IN YOUR ASS YOU COCK FUCK SHIT MONKEY FUCK ASS WANKER FROM THE DEPTHS OF SHIT."
usr.visible_message("[usr]'s Compli-o-Nator: <font color='red' size='4'><b>[message]</b></font>")
usr.visible_message(span_infoplain("[usr]'s Compli-o-Nator: " + span_red(span_huge(span_bold("[message]")))))
playsound(src, 'sound/voice/binsult.ogg', 50, 0, 4) //Future sound channel = something like SFX
cooldown = world.time
return
usr.visible_message("[usr]'s Compli-o-Nator: <font color='red' size='4'><b>[message]</b></font>")
usr.visible_message(span_infoplain("[usr]'s Compli-o-Nator: " + span_red(span_huge(span_bold("[message]")))))
playsound(src, "sound/voice/complionator/[key].ogg", 50, 0, 4) //future sound channel = something like SFX
cooldown = world.time

View File

@@ -37,8 +37,8 @@
/obj/item/rig/ch/aegis/bullet_act(var/obj/item/projectile/P)
var/reflectchance = 70 - round(P.damage)
if(prob(reflectchance))
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shell!</span>", \
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shell!</span>")
visible_message(span_danger("The [P.name] gets reflected by [src]'s shell!"), \
span_userdanger("The [P.name] gets reflected by [src]'s shell!"))
// Find a turf near or on the original location to bounce to
if(P.starting)
@@ -57,8 +57,8 @@
/obj/item/clothing/suit/space/rig/ch/aegis/bullet_act(var/obj/item/projectile/P)
var/reflectchance = 70 - round(P.damage)
if(prob(reflectchance))
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shell!</span>", \
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shell!</span>")
visible_message(span_danger("The [P.name] gets reflected by [src]'s shell!"), \
span_userdanger("The [P.name] gets reflected by [src]'s shell!"))
// Find a turf near or on the original location to bounce to
if(P.starting)
@@ -77,8 +77,8 @@
/obj/item/clothing/head/helmet/space/rig/ch/aegis/bullet_act(var/obj/item/projectile/P)
var/reflectchance = 70 - round(P.damage)
if(prob(reflectchance))
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shell!</span>", \
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shell!</span>")
visible_message(span_danger("The [P.name] gets reflected by [src]'s shell!"), \
span_userdanger("The [P.name] gets reflected by [src]'s shell!"))
// Find a turf near or on the original location to bounce to
if(P.starting)
@@ -98,8 +98,8 @@
/obj/item/clothing/gloves/gauntlets/rig/ch/aegis/bullet_act(var/obj/item/projectile/P)
var/reflectchance = 70 - round(P.damage)
if(prob(reflectchance))
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shell!</span>", \
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shell!</span>")
visible_message(span_danger("The [P.name] gets reflected by [src]'s shell!"), \
span_userdanger("The [P.name] gets reflected by [src]'s shell!"))
// Find a turf near or on the original location to bounce to
if(P.starting)
@@ -119,8 +119,8 @@
/obj/item/clothing/shoes/magboots/rig/ch/aegis/bullet_act(var/obj/item/projectile/P)
var/reflectchance = 70 - round(P.damage)
if(prob(reflectchance))
visible_message("<span class='danger'>The [P.name] gets reflected by [src]'s shell!</span>", \
"<span class='userdanger'>The [P.name] gets reflected by [src]'s shell!</span>")
visible_message(span_danger("The [P.name] gets reflected by [src]'s shell!"), \
span_userdanger("The [P.name] gets reflected by [src]'s shell!"))
// Find a turf near or on the original location to bounce to
if(P.starting)

View File

@@ -21,4 +21,4 @@
/obj/item/shockpaddles/standalone/rig/attack_self()
use_on_synthetic = !use_on_synthetic
to_chat(usr, "<span class='notice'>You switch the [src] to [use_on_synthetic ? "FBP" : "organic"] compatibility.</span>")
to_chat(usr, span_notice("You switch the [src] to [use_on_synthetic ? "FBP" : "organic"] compatibility."))

View File

@@ -25,8 +25,8 @@ These should come standard with the Protean rigsuit, unless you want them to wor
var/mob/living/carbon/human/H = holder.wearer
if(H)
to_chat(usr, span_blue("<b>You activate the suit's energy syphon.</b>"))
to_chat(H, "<span class='warning'>Your suit begins to sap at your own energy stores.</span>")
to_chat(usr, span_boldnotice("You activate the suit's energy syphon."))
to_chat(H, span_warning("Your suit begins to sap at your own energy stores."))
active = 1
else
return 0
@@ -39,8 +39,8 @@ These should come standard with the Protean rigsuit, unless you want them to wor
return
var/mob/living/carbon/human/H = holder.wearer
if(H)
to_chat(usr, span_blue("<b>You deactivate the suit's energy syphon.</b>"))
to_chat(H, "<span class='warning'>Your suit ceases from sapping your own energy.</span>")
to_chat(usr, span_boldnotice("You deactivate the suit's energy syphon."))
to_chat(H, span_warning("Your suit ceases from sapping your own energy."))
active = 0
else
return 0
@@ -50,7 +50,7 @@ These should come standard with the Protean rigsuit, unless you want them to wor
var/mob/living/carbon/human/H = holder.wearer
var/mob/living/P = holder?:myprotean
if(istype(H.species, /datum/species/protean))
to_chat(H, "<span class='warning'>Your Protean modules do not function on yourself.</span>")
to_chat(H, span_warning("Your Protean modules do not function on yourself."))
deactivate(1)
else
P = P?:humanform
@@ -87,7 +87,7 @@ These should come standard with the Protean rigsuit, unless you want them to wor
/obj/item/rig_module/protean/armor/activate()
if(holder?:assimilated_rig)
to_chat(usr, span_red("<b>Armor module non-functional while a RIG is assimilated.</b>"))
to_chat(usr, span_bolddanger("Armor module non-functional while a RIG is assimilated."))
return
if(!..(1))
return 0
@@ -96,8 +96,8 @@ These should come standard with the Protean rigsuit, unless you want them to wor
if(H)
var/list/temparmor = list("bio" = 100, "rad" = 100)
temparmor = armor_settings + temparmor
to_chat(usr, span_blue("<b>You signal the suit to harden.</b>"))
to_chat(H, "<span class='notice'>Your suit hardens in response to physical trauma.</span>")
to_chat(usr, span_boldnotice("You signal the suit to harden."))
to_chat(H, span_notice("Your suit hardens in response to physical trauma."))
holder.armor = temparmor.Copy()
for(var/obj/item/piece in list(holder.gloves,holder.helmet,holder.boots,holder.chest))
piece.armor = temparmor.Copy()
@@ -118,8 +118,8 @@ These should come standard with the Protean rigsuit, unless you want them to wor
return
var/mob/living/carbon/human/H = holder.wearer
if(H)
to_chat(usr, span_blue("<b>You signal the suit to relax.</b>"))
to_chat(H, "<span class='warning'>Your suit softens.</span>")
to_chat(usr, span_boldnotice("You signal the suit to relax."))
to_chat(H, span_warning("Your suit softens."))
holder.armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100)
for(var/obj/item/piece in list(holder.gloves,holder.helmet,holder.boots,holder.chest))
piece.armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 100)
@@ -132,7 +132,7 @@ These should come standard with the Protean rigsuit, unless you want them to wor
if(active)
var/mob/living/carbon/human/H = holder.wearer
if(istype(H.species, /datum/species/protean))
to_chat(H, "<span class='warning'>Your Protean modules do not function on yourself.</span>")
to_chat(H, span_warning("Your Protean modules do not function on yourself."))
deactivate(1)
@@ -155,13 +155,13 @@ These should come standard with the Protean rigsuit, unless you want them to wor
var/mob/living/P = holder?:myprotean
if(H && P)
if(istype(H.species, /datum/species/protean))
to_chat(H, "<span class='warning'>Your Protean modules do not function on yourself.</span>")
to_chat(H, span_warning("Your Protean modules do not function on yourself."))
return 0
var/obj/item/organ/internal/nano/refactory/R = P.nano_get_refactory()
if(R.get_stored_material(MAT_STEEL) >= 100)
healing = holder.wearer.add_modifier(/datum/modifier/protean/steel, origin = R)
to_chat(usr, span_blue("<b>You activate the suit's restorative nanites.</b>"))
to_chat(H, "<span class='warning'>Your suit begins mending your injuries.</span>")
to_chat(usr, span_boldnotice("You activate the suit's restorative nanites."))
to_chat(H, span_warning("Your suit begins mending your injuries."))
active = 1
return 1
return 0
@@ -171,8 +171,8 @@ These should come standard with the Protean rigsuit, unless you want them to wor
return 0
var/mob/living/carbon/human/H = holder.wearer
if(H)
to_chat(usr, span_blue("<b>You deactivate the suit's restorative nanites.</b>"))
to_chat(H, "<span class='warning'>Your suit is no longer mending your injuries.</span>")
to_chat(usr, span_boldnotice("You deactivate the suit's restorative nanites."))
to_chat(H, span_warning("Your suit is no longer mending your injuries."))
active = 0
if(healing)
healing.expire()
@@ -186,12 +186,12 @@ These should come standard with the Protean rigsuit, unless you want them to wor
var/mob/living/carbon/human/H = holder.wearer
var/mob/living/P = holder?:myprotean
if((istype(H.species, /datum/species/protean)) || !H || !P)
to_chat(H, "<span class='warning'>Your Protean modules do not function on yourself.</span>")
to_chat(H, span_warning("Your Protean modules do not function on yourself."))
deactivate()
return
var/obj/item/organ/internal/nano/refactory/R = P.nano_get_refactory()
if((!R.get_stored_material(MAT_STEEL)))
to_chat(H, "<span class='warning'>Your [holder] is out of steel.</span>")
to_chat(H, span_warning("Your [holder] is out of steel."))
deactivate()
return
@@ -204,6 +204,6 @@ These should come standard with the Protean rigsuit, unless you want them to wor
var/obj/item/organ/internal/nano/refactory/R = P?.nano_get_refactory()
if(R?.add_stored_material(S.material.name,1*S.perunit) && S.use(1))
to_chat(user, span_blue("<b>You directly feed some steel to the [holder].</b>"))
to_chat(user, span_boldnotice("You directly feed some steel to the [holder]."))
return 1
return 0

View File

@@ -43,30 +43,30 @@
/obj/item/rig/ch/precursor/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(prob(block_chance))
user.visible_message("<span class='danger'>\The [src] completely absorbs [attack_text]!</span>")
user.visible_message(span_danger("\The [src] completely absorbs [attack_text]!"))
return TRUE
return FALSE
/obj/item/clothing/suit/space/rig/ch/precursor/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(prob(block_chance))
user.visible_message("<span class='danger'>\The [src] completely absorbs [attack_text]!</span>")
user.visible_message(span_danger("\The [src] completely absorbs [attack_text]!"))
return TRUE
return FALSE
/obj/item/clothing/head/helmet/space/rig/ch/precursor/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(prob(block_chance))
user.visible_message("<span class='danger'>\The [src] completely absorbs [attack_text]!</span>")
user.visible_message(span_danger("\The [src] completely absorbs [attack_text]!"))
return TRUE
return FALSE
/obj/item/clothing/gloves/gauntlets/rig/ch/precursor/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(prob(block_chance))
user.visible_message("<span class='danger'>\The [src] completely absorbs [attack_text]!</span>")
user.visible_message(span_danger("\The [src] completely absorbs [attack_text]!"))
return TRUE
return FALSE
/obj/item/clothing/shoes/magboots/rig/ch/precursor/handle_shield(mob/user, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack")
if(prob(block_chance))
user.visible_message("<span class='danger'>\The [src] completely absorbs [attack_text]!</span>")
user.visible_message(span_danger("\The [src] completely absorbs [attack_text]!"))
return TRUE
return FALSE

View File

@@ -12,16 +12,16 @@
/obj/structure/closet/crate/secure/lootsafe/emag_act(var/remaining_charges, var/mob/user)
if (locked)
if(prob(60 - hackguard))
to_chat(user, "<span class='notice'>The safe unlocks!</span>")
to_chat(user, span_notice("The safe unlocks!"))
locked = 0
return 1
if(prob(15 + hackguard))
to_chat(user, "<span class='notice'>The safe buzzes as a security drone is teleported in!</span>")
to_chat(user, span_notice("The safe buzzes as a security drone is teleported in!"))
new /mob/living/simple_mob/mechanical/combat_drone (src.loc) //if I ever make security stun drones remind me to replace this with those
//new /effect/system/spark_spread (src.loc) I am to tired to make this work right now
return 1
else
to_chat(user, "<span class='notice'>The safe buzzes but the security systems don't trigger.</span>")
to_chat(user, span_notice("The safe buzzes but the security systems don't trigger."))
return 1
//Loot for lootsafes
@@ -117,7 +117,7 @@
if(!locked)
return
to_chat(user, "<span class='notice'>The crate is locked with a Deca-code lock.</span>")
to_chat(user, span_notice("The crate is locked with a Deca-code lock."))
var/input = tgui_input_text(usr, "Enter [codelen] digits. All digits must be unique.", "Deca-Code Lock", "")
if(!Adjacent(user))
return
@@ -131,16 +131,16 @@
sanitycheck = null //if a digit is repeated, reject the input
if(input == null || sanitycheck == null || length(input) != codelen)
to_chat(user, "<span class='notice'>You leave the crate alone.</span>")
to_chat(user, span_notice("You leave the crate alone."))
else if(check_input(input))
to_chat(user, "<span class='notice'>The crate unlocks!</span>")
to_chat(user, span_notice("The crate unlocks!"))
playsound(src, 'sound/machines/lockreset.ogg', 50, 1)
set_locked(0)
else
visible_message("<span class='warning'>A red light on \the [src]'s control panel flashes briefly.</span>")
visible_message(span_warning("A red light on \the [src]'s control panel flashes briefly."))
attempts--
if (attempts == 0)
to_chat(user, "<span class='danger'>The crate's anti-tamper system activates!</span>")
to_chat(user, span_danger("The crate's anti-tamper system activates!"))
var/turf/T = get_turf(src.loc)
explosion(T, 0, 0, 1, 2)
qdel(src)
@@ -160,11 +160,11 @@
/obj/structure/closet/crate/secure/lootsafe/numberlock/attackby(obj/item/W as obj, mob/user as mob)
if(locked)
if (istype(W, /obj/item/multitool)) // Greetings Urist McProfessor, how about a nice game of cows and bulls?
to_chat(user, "<span class='notice'>DECA-CODE LOCK ANALYSIS:</span>")
to_chat(user, span_notice("DECA-CODE LOCK ANALYSIS:"))
if (attempts == 1)
to_chat(user, "<span class='warning'>* Anti-Tamper system will activate on the next failed access attempt.</span>")
to_chat(user, span_warning("* Anti-Tamper system will activate on the next failed access attempt."))
else
to_chat(user, "<span class='notice'>* Anti-Tamper system will activate after [src.attempts] failed access attempts.</span>")
to_chat(user, span_notice("* Anti-Tamper system will activate after [src.attempts] failed access attempts."))
if(lastattempt.len)
var/bulls = 0
var/cows = 0
@@ -179,7 +179,7 @@
var/previousattempt = null //convert back to string for readback
for(var/i in 1 to codelen)
previousattempt = addtext(previousattempt, lastattempt[i])
to_chat(user, "<span class='notice'>Last code attempt, [previousattempt], had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions.</span>")
to_chat(user, span_notice("Last code attempt, [previousattempt], had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions."))
return
..()
@@ -219,7 +219,7 @@
if(!locked)
return
to_chat(user, "<span class='notice'>The crate is locked with a Deca-code lock.</span>")
to_chat(user, span_notice("The crate is locked with a Deca-code lock."))
var/input = tgui_input_text(usr, "Enter [codelen] digits. All digits must be unique.", "Deca-Code Lock", "")
if(!Adjacent(user))
return
@@ -233,16 +233,16 @@
sanitycheck = null //if a digit is repeated, reject the input
if(input == null || sanitycheck == null || length(input) != codelen)
to_chat(user, "<span class='notice'>You leave the crate alone.</span>")
to_chat(user, span_notice("You leave the crate alone."))
else if(check_input(input))
to_chat(user, "<span class='notice'>The crate unlocks!</span>")
to_chat(user, span_notice("The crate unlocks!"))
playsound(src, 'sound/machines/lockreset.ogg', 50, 1)
set_locked(0)
else
visible_message("<span class='warning'>A red light on \the [src]'s control panel flashes briefly.</span>")
visible_message(span_warning("A red light on \the [src]'s control panel flashes briefly."))
attempts--
if (attempts == 0)
to_chat(user, "<span class='danger'>The crate's anti-tamper system activates!</span>")
to_chat(user, span_danger("The crate's anti-tamper system activates!"))
var/turf/T = get_turf(src.loc)
explosion(T, 0, 0, 1, 2)
qdel(src)
@@ -262,11 +262,11 @@
/obj/structure/closet/crate/secure/lootsafe/devillock/attackby(obj/item/W as obj, mob/user as mob)
if(locked)
if (istype(W, /obj/item/multitool)) // Greetings Urist McProfessor, how about a nice game of cows and bulls?
to_chat(user, "<span class='notice'>DECA-CODE LOCK ANALYSIS:</span>")
to_chat(user, span_notice("DECA-CODE LOCK ANALYSIS:"))
if (attempts == 1)
to_chat(user, "<span class='warning'>* Anti-Tamper system will activate on the next failed access attempt.</span>")
to_chat(user, span_warning("* Anti-Tamper system will activate on the next failed access attempt."))
else
to_chat(user, "<span class='notice'>* Anti-Tamper system will activate after [src.attempts] failed access attempts.</span>")
to_chat(user, span_notice("* Anti-Tamper system will activate after [src.attempts] failed access attempts."))
if(lastattempt.len)
var/bulls = 0
var/cows = 0
@@ -281,6 +281,6 @@
var/previousattempt = null //convert back to string for readback
for(var/i in 1 to codelen)
previousattempt = addtext(previousattempt, lastattempt[i])
to_chat(user, "<span class='notice'>Last code attempt, [previousattempt], had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions.</span>")
to_chat(user, span_notice("Last code attempt, [previousattempt], had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions."))
return
..()

View File

@@ -76,7 +76,7 @@
var/datum/callback/something_happens = next_message
next_message = something_happens.InvokeAsync(src)
to_chat(src, span_notice("<i>... [next_message] ...</i>"))
to_chat(src, span_notice(span_italics("... [next_message] ...")))
if(LAZYLEN(dream_fragments))
var/next_wait = rand(10, 30)

View File

@@ -71,7 +71,7 @@
var/datum/lore/codex/checked = current_page["[user]"]
if(istype(checked))
var/output = ""
output = "<b>[checked.name]</b>"
output = span_bold("[checked.name]")
while(checked.parent)
output = "<a href='?src=\ref[src];target=\ref[checked.parent]'>[checked.parent.name]</a> \> [output]"
checked = checked.parent

View File

@@ -7,25 +7,25 @@
each component spell. Hark, reader beware! To peruse beyond permission of the mighty Wizard Federation is to \
be struck with a 10,000 year imprisonment curse of cuboidal containment sphere!\
<br><br>\
<hr><b>Heat Applicator</b>: A device, commonly of metal, into which component spells are inserted and transmogrified \
<hr>" + span_bold("Heat Applicator") + ": A device, commonly of metal, into which component spells are inserted and transmogrified \
into the Gustomancic Product. Applicators convert Electromancy into heat, and may require heating to an ideal \
temperature before spellcrafting. Overapplication will result in failure of the spell, and respiratory distress! \
<br>\
<hr><b>Pure Fluids</b>: A purified substance, typically of liquid form, added to the Applicator from a fluid vessel. \
<hr>" + span_bold("Pure Fluids") + ": A purified substance, typically of liquid form, added to the Applicator from a fluid vessel. \
Fluids are typically extracted from a bearing object, ground from bulk form, or produced by Chemomancy. \
<br>\
<hr><b>Material Objects</b>: Any component spell object not created by Botanomancy. Most are created by lesser \
<hr>" + span_bold("Material Objects") + ": Any component spell object not created by Botanomancy. Most are created by lesser \
Gustomancy tools or Gustomancy spells. Others may require creative acquistion methods! \
<br>\
<hr><b>Grown Produce</b>: A product of the soils and vessels of Botanomancy, typically fruit or vegetable. The \
<hr>" + span_bold("Grown Produce") + ": A product of the soils and vessels of Botanomancy, typically fruit or vegetable. The \
methods of Botanomancy lie beyond the scope of this Gustomancy tome! \
<br>\
<hr><b>Cooked Shell</b>: A coating of specified pure fluid, typically batter, applied to all component spell \
<hr>" + span_bold("Cooked Shell") + ": A coating of specified pure fluid, typically batter, applied to all component spell \
objects. Traditionally, specified fluid is placed in a glass vessel and each component spell dipped within. \
<br>\
<hr><b>Temporal Shift</b>: Length of passage through the temporial medium, unaffected by Chronomancy. \
<hr>" + span_bold("Temporal Shift") + ": Length of passage through the temporial medium, unaffected by Chronomancy. \
<br>\
<hr><b>Meal Quantity</b>: Number of uses of the completed spell. \
<hr>" + span_bold("Meal Quantity") + ": Number of uses of the completed spell. \
<hr><br><br>\
The segmented fusion of Gustomancy and Chemomancy is currently beyond the scope of this tome, as is the \
usage of simple Gustomantic techniques such as rolling flat and slicing dough. The Gustomancer is reminded \
@@ -76,7 +76,7 @@
text = "Cereal maker"
else
text = ""
D.data = "<b>Heat Applicator</b>: [text ? text : "none"]<br>"
D.data = span_bold("Heat Applicator") + ": [text ? text : "none"]<br>"
text = ""
if(LAZYLEN(R.reagents))
@@ -86,7 +86,7 @@
text += ", "
text += "[capitalize(thing)]: [R.reagents[thing]] units"
i++
D.data += "<b>Pure Fluids</b>: [text ? text : "none"]<br>"
D.data += span_bold("Pure Fluids") + ": [text ? text : "none"]<br>"
text = ""
if(LAZYLEN(R.items))
@@ -96,7 +96,7 @@
text += ", "
text += "[capitalize(initial(AM.name))]"
i++
D.data += "<b>Material Objects</b>: [text ? text : "none"]<br>"
D.data += span_bold("Material Objects") + ": [text ? text : "none"]<br>"
text = ""
if(LAZYLEN(R.fruit)) // Inelegant copypasta time
@@ -106,23 +106,23 @@
text += ", "
text += "[capitalize(thing)]: [R.fruit[thing]] quantity"
i++
D.data += "<b>Grown Produce</b>: [text ? text : "none"]<br>"
D.data += span_bold("Grown Produce") + ": [text ? text : "none"]<br>"
text = ""
if(R.coating)
var/datum/reagent/ooze = initial(R.coating) // Datum typepath
text = capitalize(initial(ooze.name))
D.data += "<b>Cooked Shell</b>: [text ? text : "none"]<br>"
D.data += span_bold("Cooked Shell") + ": [text ? text : "none"]<br>"
text = 0
if(R.time) // Deciseconds
text = R.time
D.data += "<b>Temporal Shift</b>: [text ? text/10 : 0] second\s<br>"
D.data += span_bold("Temporal Shift") + ": [text ? text/10 : 0] second\s<br>"
text = 0
if(R.result_quantity) // Should never be null.
text = R.result_quantity
D.data += "<b>Meal Quantity</b>: [text ? text : 0] plate\s<br>"
D.data += span_bold("Meal Quantity") + ": [text ? text : 0] plate\s<br>"
new_children_list[D.name] = D // We make this an associative list so we can alphabetize later
qdel(R) // Delete recipe datum after we're done with it

View File

@@ -18,10 +18,10 @@
/* Temp removal while I figure out how to reduce the respawn time to 1 minute
var/time_till_respawn = time_till_respawn()
if(time_till_respawn == -1) // Special case, never allowed to respawn
to_chat(usr, "<span class='warning'>Respawning is not allowed!</span>")
to_chat(usr, span_warning("Respawning is not allowed!"))
return
if(time_till_respawn) // Nonzero time to respawn
to_chat(usr, "<span class='warning'>You can't do that yet! You died too recently. You need to wait another [round(time_till_respawn/10/60, 0.1)] minutes.</span>")
to_chat(usr, span_warning("You can't do that yet! You died too recently. You need to wait another [round(time_till_respawn/10/60, 0.1)] minutes."))
return
*/
var/datum/data/record/record_found

View File

@@ -11,7 +11,7 @@
set category = "IC.Settings"
if(stat)
to_chat(src, "<span class='warning'>You must be awake and standing to perform this action!</span>")
to_chat(src, span_warning("You must be awake and standing to perform this action!"))
return
speech_sound_enabled = !speech_sound_enabled

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