Refactors most spans into span procs (#59645)

Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs.
Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines.

Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing.
Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc.

(Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
This commit is contained in:
Watermelon914
2021-06-14 21:03:53 +01:00
committed by GitHub
parent b9982f6970
commit 375a20e49b
1676 changed files with 15455 additions and 15226 deletions
+8 -8
View File
@@ -28,7 +28,7 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/structure/closet/crate/secure/loot/attack_hand(mob/user, list/modifiers)
if(locked)
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 = input(usr, "Enter [codelen] digits. All digits must be unique.", "Deca-Code Lock", "") as text|null
if(user.canUseTopic(src, BE_CLOSE))
var/list/sanitised = list()
@@ -43,7 +43,7 @@
if(sanitised[i] == sanitised[j])
sanitycheck = FALSE //if a digit is repeated, reject the input
if(input == code)
to_chat(user, "<span class='notice'>The crate unlocks!</span>")
to_chat(user, span_notice("The crate unlocks!"))
locked = FALSE
cut_overlays()
add_overlay("securecrateg")
@@ -51,9 +51,9 @@
if(!spawned_loot)
spawn_loot()
else if(!input || !sanitycheck || length(sanitised) != codelen)
to_chat(user, "<span class='notice'>You leave the crate alone.</span>")
to_chat(user, span_notice("You leave the crate alone."))
else
to_chat(user, "<span class='warning'>A red light flashes.</span>")
to_chat(user, span_warning("A red light flashes."))
lastattempt = input
attempts--
if(attempts == 0)
@@ -69,11 +69,11 @@
/obj/structure/closet/crate/secure/loot/attackby(obj/item/W, mob/user)
if(locked)
if(W.tool_behaviour == TOOL_MULTITOOL)
to_chat(user, "<span class='notice'>DECA-CODE LOCK REPORT:</span>")
to_chat(user, span_notice("DECA-CODE LOCK REPORT:"))
if(attempts == 1)
to_chat(user, "<span class='warning'>* Anti-Tamper Bomb will activate on next failed access attempt.</span>")
to_chat(user, span_warning("* Anti-Tamper Bomb will activate on next failed access attempt."))
else
to_chat(user, "<span class='notice'>* Anti-Tamper Bomb will activate after [attempts] failed access attempts.</span>")
to_chat(user, span_notice("* Anti-Tamper Bomb will activate after [attempts] failed access attempts."))
if(lastattempt != null)
var/bulls = 0 //right position, right number
var/cows = 0 //wrong position but in the puzzle
@@ -97,7 +97,7 @@
lastattempt_it += length(lastattempt_char)
code_it += length(code_char)
to_chat(user, "<span class='notice'>Last code attempt, [lastattempt], had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions.</span>")
to_chat(user, span_notice("Last code attempt, [lastattempt], had [bulls] correct digits at correct positions and [cows] correct digits at incorrect positions."))
return
return ..()
+23 -23
View File
@@ -130,7 +130,7 @@
*/
/obj/machinery/computer/auxiliary_base/proc/launch_check(mob/user)
if(!is_station_level(z) && shuttleId == "colony_drop")
to_chat(user, "<span class='warning'>You can't move the base again!</span>")
to_chat(user, span_warning("You can't move the base again!"))
return FALSE
return TRUE
@@ -139,7 +139,7 @@
if(.)
return
if(!allowed(usr))
to_chat(usr, "<span class='danger'>Access denied.</span>")
to_chat(usr, span_danger("Access denied."))
return
switch(action)
@@ -148,7 +148,7 @@
return
var/shuttle_error = SSshuttle.moveShuttle(shuttleId, params["shuttle_id"], 1)
if(launch_warning)
say("<span class='danger'>Launch sequence activated! Prepare for drop!!</span>")
say(span_danger("Launch sequence activated! Prepare for drop!!"))
playsound(loc, 'sound/machines/warning-buzzer.ogg', 70, FALSE)
launch_warning = FALSE
blind_drop_ready = FALSE
@@ -168,10 +168,10 @@
var/turf/LZ = pick(all_mining_turfs) //Pick a random mining Z-level turf
if(!ismineralturf(LZ) && !istype(LZ, /turf/open/floor/plating/asteroid))
//Find a suitable mining turf. Reduces chance of landing in a bad area
to_chat(usr, "<span class='warning'>Landing zone scan failed. Please try again.</span>")
to_chat(usr, span_warning("Landing zone scan failed. Please try again."))
return
if(set_landing_zone(LZ, usr) != ZONE_SET)
to_chat(usr, "<span class='warning'>Landing zone unsuitable. Please recalculate.</span>")
to_chat(usr, span_warning("Landing zone unsuitable. Please recalculate."))
return
blind_drop_ready = FALSE
return TRUE
@@ -201,7 +201,7 @@
/obj/machinery/computer/auxiliary_base/proc/set_landing_zone(turf/T, mob/user, no_restrictions)
var/obj/docking_port/mobile/auxiliary_base/base_dock = locate(/obj/docking_port/mobile/auxiliary_base) in SSshuttle.mobile
if(!base_dock) //Not all maps have an Aux base. This object is useless in that case.
to_chat(user, "<span class='warning'>This station is not equipped with an auxiliary base. Please contact your Nanotrasen contractor.</span>")
to_chat(user, span_warning("This station is not equipped with an auxiliary base. Please contact your Nanotrasen contractor."))
return
if(!no_restrictions)
var/static/list/disallowed_turf_types = typecacheof(list(
@@ -245,7 +245,7 @@
//Serves as a nice mechanic to people get ready for the launch.
minor_announce("Auxiliary base landing zone coordinates locked in for [A]. Launch command now available!")
to_chat(user, "<span class='notice'>Landing zone set.</span>")
to_chat(user, span_notice("Landing zone set."))
return ZONE_SET
@@ -265,7 +265,7 @@
if(setting)
return
to_chat(user, "<span class='notice'>You begin setting the landing zone parameters...</span>")
to_chat(user, span_notice("You begin setting the landing zone parameters..."))
setting = TRUE
if(!do_after(user, 50, target = user)) //You get a few seconds to cancel if you do not want to drop there.
setting = FALSE
@@ -280,20 +280,20 @@
AB = A
break
if(!AB)
to_chat(user, "<span class='warning'>No auxiliary base console detected.</span>")
to_chat(user, span_warning("No auxiliary base console detected."))
return
switch(AB.set_landing_zone(T, user, no_restrictions))
if(ZONE_SET)
qdel(src)
if(BAD_ZLEVEL)
to_chat(user, "<span class='warning'>This uplink can only be used in a designed mining zone.</span>")
to_chat(user, span_warning("This uplink can only be used in a designed mining zone."))
if(BAD_AREA)
to_chat(user, "<span class='warning'>Unable to acquire a targeting lock. Find an area clear of structures or entirely within one.</span>")
to_chat(user, span_warning("Unable to acquire a targeting lock. Find an area clear of structures or entirely within one."))
if(BAD_COORDS)
to_chat(user, "<span class='warning'>Location is too close to the edge of the station's scanning range. Move several paces away and try again.</span>")
to_chat(user, span_warning("Location is too close to the edge of the station's scanning range. Move several paces away and try again."))
if(BAD_TURF)
to_chat(user, "<span class='warning'>The landing zone contains turfs unsuitable for a base. Make sure you've removed all walls and dangerous terrain from the landing zone.</span>")
to_chat(user, span_warning("The landing zone contains turfs unsuitable for a base. Make sure you've removed all walls and dangerous terrain from the landing zone."))
/obj/item/assault_pod/mining/unrestricted
name = "omni-locational landing field designator"
@@ -344,11 +344,11 @@
if(.)
return
if(anchored)
to_chat(user, "<span class='warning'>Landing zone already set.</span>")
to_chat(user, span_warning("Landing zone already set."))
return
if(anti_spam_cd)
to_chat(user, "<span class='warning'>[src] is currently recalibrating. Please wait.</span>")
to_chat(user, span_warning("[src] is currently recalibrating. Please wait."))
return
anti_spam_cd = 1
@@ -357,7 +357,7 @@
var/turf/landing_spot = get_turf(src)
if(!is_mining_level(landing_spot.z))
to_chat(user, "<span class='warning'>This device is only to be used in a mining zone.</span>")
to_chat(user, span_warning("This device is only to be used in a mining zone."))
return
var/obj/machinery/computer/auxiliary_base/aux_base_console
for(var/obj/machinery/computer/auxiliary_base/ABC in GLOB.machines)
@@ -365,7 +365,7 @@
aux_base_console = ABC
break
if(!aux_base_console) //Needs to be near the base to serve as its dock and configure it to control the mining shuttle.
to_chat(user, "<span class='warning'>The auxiliary base's console must be within [console_range] meters in order to interface.</span>")
to_chat(user, span_warning("The auxiliary base's console must be within [console_range] meters in order to interface."))
return
//Mining shuttles may not be created equal, so we find the map's shuttle dock and size accordingly.
@@ -388,7 +388,7 @@
break
if(!Mport)
to_chat(user, "<span class='warning'>This station is not equipped with an appropriate mining shuttle. Please contact Nanotrasen Support.</span>")
to_chat(user, span_warning("This station is not equipped with an appropriate mining shuttle. Please contact Nanotrasen Support."))
return
var/obj/docking_port/mobile/mining_shuttle
@@ -402,7 +402,7 @@
break
if(!mining_shuttle) //Not having a mining shuttle is a map issue
to_chat(user, "<span class='warning'>No mining shuttle signal detected. Please contact Nanotrasen Support.</span>")
to_chat(user, span_warning("No mining shuttle signal detected. Please contact Nanotrasen Support."))
SSshuttle.stationary.Remove(Mport)
qdel(Mport)
return
@@ -410,24 +410,24 @@
for(var/i in 1 to landing_turfs.len) //You land NEAR the base, not IN it.
var/turf/L = landing_turfs[i]
if(!L) //This happens at map edges
to_chat(user, "<span class='warning'>Unable to secure a valid docking zone. Please try again in an open area near, but not within the auxiliary mining base.</span>")
to_chat(user, span_warning("Unable to secure a valid docking zone. Please try again in an open area near, but not within the auxiliary mining base."))
SSshuttle.stationary.Remove(Mport)
qdel(Mport)
return
if(istype(get_area(L), /area/shuttle/auxiliary_base))
to_chat(user, "<span class='warning'>The mining shuttle must not land within the mining base itself.</span>")
to_chat(user, span_warning("The mining shuttle must not land within the mining base itself."))
SSshuttle.stationary.Remove(Mport)
qdel(Mport)
return
if(mining_shuttle.canDock(Mport) != SHUTTLE_CAN_DOCK)
to_chat(user, "<span class='warning'>Unable to secure a valid docking zone. Please try again in an open area near, but not within the auxiliary mining base.</span>")
to_chat(user, span_warning("Unable to secure a valid docking zone. Please try again in an open area near, but not within the auxiliary mining base."))
SSshuttle.stationary.Remove(Mport)
qdel(Mport)
return
aux_base_console.set_mining_mode() //Lets the colony park the shuttle there, now that it has a dock.
to_chat(user, "<span class='notice'>Mining shuttle calibration successful! Shuttle interface available at base console.</span>")
to_chat(user, span_notice("Mining shuttle calibration successful! Shuttle interface available at base console."))
set_anchored(TRUE) //Locks in place to mark the landing zone.
playsound(loc, 'sound/machines/ping.ogg', 50, FALSE)
log_shuttle("[key_name(usr)] has registered the mining shuttle beacon at [COORD(landing_spot)].")
@@ -75,9 +75,9 @@
if(istype(C) && DT_PROB(1, delta_time)) //cursed by bubblegum
if(DT_PROB(7.5, delta_time))
new /datum/hallucination/oh_yeah(C)
to_chat(C, "<span class='colossus'><b>[pick("I AM IMMORTAL.","I SHALL TAKE BACK WHAT'S MINE.","I SEE YOU.","YOU CANNOT ESCAPE ME FOREVER.","DEATH CANNOT HOLD ME.")]</b></span>")
to_chat(C, span_colossus("<b>[pick("I AM IMMORTAL.","I SHALL TAKE BACK WHAT'S MINE.","I SEE YOU.","YOU CANNOT ESCAPE ME FOREVER.","DEATH CANNOT HOLD ME.")]</b>"))
else
to_chat(C, "<span class='warning'>[pick("You hear faint whispers.","You smell ash.","You feel hot.","You hear a roar in the distance.")]</span>")
to_chat(C, span_warning("[pick("You hear faint whispers.","You smell ash.","You feel hot.","You hear a roar in the distance.")]"))
/obj/item/clothing/head/helmet/space/hostile_environment
name = "H.E.C.K. helmet"
@@ -57,22 +57,22 @@
/obj/item/kinetic_crusher/examine(mob/living/user)
. = ..()
. += "<span class='notice'>Mark a large creature with the destabilizing force, then hit them in melee to do <b>[force + detonation_damage]</b> damage.</span>"
. += "<span class='notice'>Does <b>[force + detonation_damage + backstab_bonus]</b> damage if the target is backstabbed, instead of <b>[force + detonation_damage]</b>.</span>"
. += span_notice("Mark a large creature with the destabilizing force, then hit them in melee to do <b>[force + detonation_damage]</b> damage.")
. += span_notice("Does <b>[force + detonation_damage + backstab_bonus]</b> damage if the target is backstabbed, instead of <b>[force + detonation_damage]</b>.")
for(var/t in trophies)
var/obj/item/crusher_trophy/T = t
. += "<span class='notice'>It has \a [T] attached, which causes [T.effect_desc()].</span>"
. += span_notice("It has \a [T] attached, which causes [T.effect_desc()].")
/obj/item/kinetic_crusher/attackby(obj/item/I, mob/living/user)
if(I.tool_behaviour == TOOL_CROWBAR)
if(LAZYLEN(trophies))
to_chat(user, "<span class='notice'>You remove [src]'s trophies.</span>")
to_chat(user, span_notice("You remove [src]'s trophies."))
I.play_tool_sound(src)
for(var/t in trophies)
var/obj/item/crusher_trophy/T = t
T.remove_from(src, user)
else
to_chat(user, "<span class='warning'>There are no trophies on [src].</span>")
to_chat(user, span_warning("There are no trophies on [src]."))
else if(istype(I, /obj/item/crusher_trophy))
var/obj/item/crusher_trophy/T = I
T.add_to(src, user)
@@ -81,7 +81,7 @@
/obj/item/kinetic_crusher/attack(mob/living/target, mob/living/carbon/user)
if(!wielded)
to_chat(user, "<span class='warning'>[src] is too heavy to use with one hand! You fumble and drop everything.</span>")
to_chat(user, span_warning("[src] is too heavy to use with one hand! You fumble and drop everything."))
user.drop_all_held_items()
return
var/datum/status_effect/crusher_damage/C = target.has_status_effect(STATUS_EFFECT_CRUSHERDAMAGETRACKING)
@@ -212,7 +212,7 @@
/obj/item/crusher_trophy/examine(mob/living/user)
. = ..()
. += "<span class='notice'>Causes [effect_desc()] when attached to a kinetic crusher.</span>"
. += span_notice("Causes [effect_desc()] when attached to a kinetic crusher.")
/obj/item/crusher_trophy/proc/effect_desc()
return "errors"
@@ -227,12 +227,12 @@
for(var/t in H.trophies)
var/obj/item/crusher_trophy/T = t
if(istype(T, denied_type) || istype(src, T.denied_type))
to_chat(user, "<span class='warning'>You can't seem to attach [src] to [H]. Maybe remove a few trophies?</span>")
to_chat(user, span_warning("You can't seem to attach [src] to [H]. Maybe remove a few trophies?"))
return FALSE
if(!user.transferItemToLoc(src, H))
return
H.trophies += src
to_chat(user, "<span class='notice'>You attach [src] to [H].</span>")
to_chat(user, span_notice("You attach [src] to [H]."))
return TRUE
/obj/item/crusher_trophy/proc/remove_from(obj/item/kinetic_crusher/H, mob/living/user)
@@ -23,7 +23,7 @@
if(isanimal(target))
var/mob/living/simple_animal/M = target
if(M.sentience_type != revive_type)
to_chat(user, "<span class='info'>[src] does not work on this sort of creature.</span>")
to_chat(user, span_info("[src] does not work on this sort of creature."))
return
if(M.stat == DEAD)
M.faction = list("neutral")
@@ -39,16 +39,16 @@
else
H.attack_same = 0
loaded = 0
user.visible_message("<span class='notice'>[user] injects [M] with [src], reviving it.</span>")
user.visible_message(span_notice("[user] injects [M] with [src], reviving it."))
SSblackbox.record_feedback("tally", "lazarus_injector", 1, M.type)
playsound(src,'sound/effects/refill.ogg',50,TRUE)
icon_state = "lazarus_empty"
return
else
to_chat(user, "<span class='info'>[src] is only effective on the dead.</span>")
to_chat(user, span_info("[src] is only effective on the dead."))
return
else
to_chat(user, "<span class='info'>[src] is only effective on lesser beings.</span>")
to_chat(user, span_info("[src] is only effective on lesser beings."))
return
/obj/item/lazarus_injector/emp_act()
@@ -61,6 +61,6 @@
/obj/item/lazarus_injector/examine(mob/user)
. = ..()
if(!loaded)
. += "<span class='info'>[src] is empty.</span>"
. += span_info("[src] is empty.")
if(malfunctioning)
. += "<span class='info'>The display on [src] seems to be flickering.</span>"
. += span_info("The display on [src] seems to be flickering.")
@@ -48,13 +48,13 @@ GLOBAL_LIST_INIT(marker_beacon_colors, sortList(list(
/obj/item/stack/marker_beacon/attack_self(mob/user)
if(!isturf(user.loc))
to_chat(user, "<span class='warning'>You need more space to place a [singular_name] here.</span>")
to_chat(user, span_warning("You need more space to place a [singular_name] here."))
return
if(locate(/obj/structure/marker_beacon) in user.loc)
to_chat(user, "<span class='warning'>There is already a [singular_name] here.</span>")
to_chat(user, span_warning("There is already a [singular_name] here."))
return
if(use(1))
to_chat(user, "<span class='notice'>You activate and anchor [amount ? "a":"the"] [singular_name] in place.</span>")
to_chat(user, span_notice("You activate and anchor [amount ? "a":"the"] [singular_name] in place."))
playsound(user, 'sound/machines/click.ogg', 50, TRUE)
var/obj/structure/marker_beacon/M = new(user.loc, picked_color)
transfer_fingerprints_to(M)
@@ -99,7 +99,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, sortList(list(
/obj/structure/marker_beacon/examine(mob/user)
. = ..()
. += "<span class='notice'>Alt-click to select a color. Current color is [picked_color].</span>"
. += span_notice("Alt-click to select a color. Current color is [picked_color].")
/obj/structure/marker_beacon/update_appearance(updates)
while(!picked_color || !GLOB.marker_beacon_colors[picked_color])
@@ -116,7 +116,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, sortList(list(
. = ..()
if(.)
return
to_chat(user, "<span class='notice'>You start picking [src] up...</span>")
to_chat(user, span_notice("You start picking [src] up..."))
if(do_after(user, remove_speed, target = src))
var/obj/item/stack/marker_beacon/M = new(loc)
M.picked_color = picked_color
@@ -129,7 +129,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, sortList(list(
/obj/structure/marker_beacon/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/stack/marker_beacon))
var/obj/item/stack/marker_beacon/M = I
to_chat(user, "<span class='notice'>You start picking [src] up...</span>")
to_chat(user, span_notice("You start picking [src] up..."))
if(do_after(user, remove_speed, target = src) && M.amount + 1 <= M.max_amount)
M.add(1)
playsound(src, 'sound/items/deconstruct.ogg', 50, TRUE)
@@ -138,7 +138,7 @@ GLOBAL_LIST_INIT(marker_beacon_colors, sortList(list(
if(istype(I, /obj/item/light_eater))
var/obj/effect/decal/cleanable/ash/A = new /obj/effect/decal/cleanable/ash(drop_location())
A.desc += "\nLooks like this used to be \a [src] some time ago."
visible_message("<span class='danger'>[src] is disintegrated by [I]!</span>")
visible_message(span_danger("[src] is disintegrated by [I]!"))
playsound(src, 'sound/items/welder.ogg', 50, TRUE)
qdel(src)
return
@@ -20,10 +20,10 @@
attack_verb_simple = list("hit", "pierce", "slice", "attack")
/obj/item/pickaxe/suicide_act(mob/living/user)
user.visible_message("<span class='suicide'>[user] begins digging into [user.p_their()] chest! It looks like [user.p_theyre()] trying to commit suicide!</span>")
user.visible_message(span_suicide("[user] begins digging into [user.p_their()] chest! It looks like [user.p_theyre()] trying to commit suicide!"))
if(use_tool(user, user, 30, volume=50))
return BRUTELOSS
user.visible_message("<span class='suicide'>[user] couldn't do it!</span>")
user.visible_message(span_suicide("[user] couldn't do it!"))
return SHAME
/obj/item/pickaxe/rusted
@@ -144,10 +144,10 @@
AddComponent(/datum/component/butchering, 150, 40) //it's sharp, so it works, but barely.
/obj/item/shovel/suicide_act(mob/living/user)
user.visible_message("<span class='suicide'>[user] begins digging their own grave! It looks like [user.p_theyre()] trying to commit suicide!</span>")
user.visible_message(span_suicide("[user] begins digging their own grave! It looks like [user.p_theyre()] trying to commit suicide!"))
if(use_tool(user, user, 30, volume=50))
return BRUTELOSS
user.visible_message("<span class='suicide'>[user] couldn't do it!</span>")
user.visible_message(span_suicide("[user] couldn't do it!"))
return SHAME
/obj/item/shovel/spade
@@ -12,11 +12,11 @@
return
var/obj/item/organ/regenerative_core/C = M
if(!istype(C, /obj/item/organ/regenerative_core))
to_chat(user, "<span class='warning'>The stabilizer only works on certain types of monster organs, generally regenerative in nature.</span>")
to_chat(user, span_warning("The stabilizer only works on certain types of monster organs, generally regenerative in nature."))
return
C.preserved()
to_chat(user, "<span class='notice'>You inject the [M] with the stabilizer. It will no longer go inert.</span>")
to_chat(user, span_notice("You inject the [M] with the stabilizer. It will no longer go inert."))
qdel(src)
/************************Hivelord core*******************/
@@ -59,7 +59,7 @@
/obj/item/organ/regenerative_core/ui_action_click()
if(inert)
to_chat(owner, "<span class='notice'>[src] breaks down as it tries to activate.</span>")
to_chat(owner, span_notice("[src] breaks down as it tries to activate."))
else
owner.revive(full_heal = TRUE, admin_revive = FALSE)
qdel(src)
@@ -74,17 +74,17 @@
if(ishuman(target))
var/mob/living/carbon/human/H = target
if(inert)
to_chat(user, "<span class='notice'>[src] has decayed and can no longer be used to heal.</span>")
to_chat(user, span_notice("[src] has decayed and can no longer be used to heal."))
return
else
if(H.stat == DEAD)
to_chat(user, "<span class='notice'>[src] is useless on the dead.</span>")
to_chat(user, span_notice("[src] is useless on the dead."))
return
if(H != user)
H.visible_message("<span class='notice'>[user] forces [H] to apply [src]... Black tendrils entangle and reinforce [H.p_them()]!</span>")
H.visible_message(span_notice("[user] forces [H] to apply [src]... Black tendrils entangle and reinforce [H.p_them()]!"))
SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "other"))
else
to_chat(user, "<span class='notice'>You start to smear [src] on yourself. Disgusting tendrils hold you together and allow you to keep moving, but for how long?</span>")
to_chat(user, span_notice("You start to smear [src] on yourself. Disgusting tendrils hold you together and allow you to keep moving, but for how long?"))
SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self"))
H.apply_status_effect(STATUS_EFFECT_REGENERATIVE_CORE)
SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "core", /datum/mood_event/healsbadman) //Now THIS is a miner buff (fixed - nerf)
@@ -103,11 +103,11 @@
. = ..()
if(!preserved && !inert)
preserved(TRUE)
owner.visible_message("<span class='notice'>[src] stabilizes as it's inserted.</span>")
owner.visible_message(span_notice("[src] stabilizes as it's inserted."))
/obj/item/organ/regenerative_core/Remove(mob/living/carbon/M, special = 0)
if(!inert && !special)
owner.visible_message("<span class='notice'>[src] rapidly decays as it's removed.</span>")
owner.visible_message(span_notice("[src] rapidly decays as it's removed."))
go_inert()
return ..()
+6 -6
View File
@@ -24,10 +24,10 @@
/obj/item/resonator/attack_self(mob/user)
if(mode == RESONATOR_MODE_AUTO)
to_chat(user, "<span class='info'>You set the resonator's fields to detonate only after you hit one with it.</span>")
to_chat(user, span_info("You set the resonator's fields to detonate only after you hit one with it."))
mode = RESONATOR_MODE_MANUAL
else
to_chat(user, "<span class='info'>You set the resonator's fields to automatically detonate after 2 seconds.</span>")
to_chat(user, span_info("You set the resonator's fields to automatically detonate after 2 seconds."))
mode = RESONATOR_MODE_AUTO
/obj/item/resonator/proc/CreateResonance(target, mob/user)
@@ -113,7 +113,7 @@
for(var/mob/living/L in T)
if(creator)
log_combat(creator, L, "used a resonator field on", "resonator")
to_chat(L, "<span class='userdanger'>[src] ruptured with you in it!</span>")
to_chat(L, span_userdanger("[src] ruptured with you in it!"))
L.apply_damage(resonance_damage, BRUTE)
L.add_movespeed_modifier(/datum/movespeed_modifier/resonance)
addtimer(CALLBACK(L, /mob/proc/remove_movespeed_modifier, /datum/movespeed_modifier/resonance), 10 SECONDS, TIMER_UNIQUE | TIMER_OVERRIDE)
@@ -142,13 +142,13 @@
/obj/item/resonator/upgraded/attack_self(mob/user)
if(mode == RESONATOR_MODE_AUTO)
to_chat(user, "<span class='info'>You set the resonator's fields to detonate only after you hit one with it.</span>")
to_chat(user, span_info("You set the resonator's fields to detonate only after you hit one with it."))
mode = RESONATOR_MODE_MANUAL
else if(mode == RESONATOR_MODE_MANUAL)
to_chat(user, "<span class='info'>You set the resonator's fields to work as matrix traps.</span>")
to_chat(user, span_info("You set the resonator's fields to work as matrix traps."))
mode = RESONATOR_MODE_MATRIX
else
to_chat(user, "<span class='info'>You set the resonator's fields to automatically detonate after 2 seconds.</span>")
to_chat(user, span_info("You set the resonator's fields to automatically detonate after 2 seconds."))
mode = RESONATOR_MODE_AUTO
#undef RESONATOR_MODE_AUTO
@@ -41,18 +41,18 @@
//Can't grab when capsule is New() because templates aren't loaded then
get_template()
if(!used)
loc.visible_message("<span class='warning'>\The [src] begins to shake. Stand back!</span>")
loc.visible_message(span_warning("\The [src] begins to shake. Stand back!"))
used = TRUE
sleep(50)
var/turf/deploy_location = get_turf(src)
var/status = template.check_deploy(deploy_location)
switch(status)
if(SHELTER_DEPLOY_BAD_AREA)
src.loc.visible_message("<span class='warning'>\The [src] will not function in this area.</span>")
src.loc.visible_message(span_warning("\The [src] will not function in this area."))
if(SHELTER_DEPLOY_BAD_TURFS, SHELTER_DEPLOY_ANCHORED_OBJECTS, SHELTER_DEPLOY_OUTSIDE_MAP)
var/width = template.width
var/height = template.height
src.loc.visible_message("<span class='warning'>\The [src] doesn't have room to deploy! You need to clear a [width]x[height] area!</span>")
src.loc.visible_message(span_warning("\The [src] doesn't have room to deploy! You need to clear a [width]x[height] area!"))
if(status != SHELTER_DEPLOY_ALLOWED)
used = FALSE
return
@@ -168,8 +168,8 @@
if(flags_1 & NODECONSTRUCT_1)
return TRUE
user.visible_message("<span class='warning'>[user] disassembles [src].</span>",
"<span class='notice'>You start to disassemble [src]...</span>", "<span class='hear'>You hear clanking and banging noises.</span>")
user.visible_message(span_warning("[user] disassembles [src]."),
span_notice("You start to disassemble [src]..."), span_hear("You hear clanking and banging noises."))
if(I.use_tool(src, user, 20, volume=50))
new /obj/item/gps(loc)
qdel(src)
@@ -242,8 +242,8 @@
if(flags_1 & NODECONSTRUCT_1)
return TRUE
user.visible_message("<span class='warning'>[user] disassembles [src].</span>",
"<span class='notice'>You start to disassemble [src]...</span>", "<span class='hear'>You hear clanking and banging noises.</span>")
user.visible_message(span_warning("[user] disassembles [src]."),
span_notice("You start to disassemble [src]..."), span_hear("You hear clanking and banging noises."))
if(I.use_tool(src, user, 20, volume=50))
deconstruct()
return TRUE
@@ -15,14 +15,14 @@
slot_flags = ITEM_SLOT_BELT
/obj/item/wormhole_jaunter/attack_self(mob/user)
user.visible_message("<span class='notice'>[user.name] activates the [src.name]!</span>")
user.visible_message(span_notice("[user.name] activates the [src.name]!"))
SSblackbox.record_feedback("tally", "jaunter", 1, "User") // user activated
activate(user, TRUE)
/obj/item/wormhole_jaunter/proc/turf_check(mob/user)
var/turf/device_turf = get_turf(user)
if(!device_turf || is_centcom_level(device_turf.z) || is_reserved_level(device_turf.z))
to_chat(user, "<span class='notice'>You're having difficulties getting the [src.name] to work.</span>")
to_chat(user, span_notice("You're having difficulties getting the [src.name] to work."))
return FALSE
return TRUE
@@ -42,7 +42,7 @@
var/list/L = get_destinations(user)
if(!L.len)
to_chat(user, "<span class='notice'>The [src.name] found no beacons in the world to anchor a wormhole to.</span>")
to_chat(user, span_notice("The [src.name] found no beacons in the world to anchor a wormhole to."))
return
var/chosen_beacon = pick(L)
var/obj/effect/portal/jaunt_tunnel/J = new (get_turf(src), 100, null, FALSE, get_turf(chosen_beacon))
@@ -66,17 +66,17 @@
triggered = TRUE
if(triggered)
M.visible_message("<span class='warning'>[src] overloads and activates!</span>")
M.visible_message(span_warning("[src] overloads and activates!"))
SSblackbox.record_feedback("tally", "jaunter", 1, "EMP") // EMP accidental activation
activate(M)
/obj/item/wormhole_jaunter/proc/chasm_react(mob/user)
if(user.get_item_by_slot(ITEM_SLOT_BELT) == src)
to_chat(user, "<span class='notice'>Your [name] activates, saving you from the chasm!</span>")
to_chat(user, span_notice("Your [name] activates, saving you from the chasm!"))
SSblackbox.record_feedback("tally", "jaunter", 1, "Chasm") // chasm automatic activation
activate(user, FALSE)
else
to_chat(user, "<span class='userdanger'>[src] is not attached to your belt, preventing it from saving you from the chasm. RIP.</span>")
to_chat(user, span_userdanger("[src] is not attached to your belt, preventing it from saving you from the chasm. RIP."))
//jaunter tunnel
/obj/effect/portal/jaunt_tunnel
+8 -8
View File
@@ -25,7 +25,7 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
possible_beacons += EP
if(!possible_beacons.len)
to_chat(user, "<span class='warning'>There are no extraction beacons in existence!</span>")
to_chat(user, span_warning("There are no extraction beacons in existence!"))
return
else
@@ -36,21 +36,21 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
if(!A)
return
beacon = A
to_chat(user, "<span class='notice'>You link the extraction pack to the beacon system.</span>")
to_chat(user, span_notice("You link the extraction pack to the beacon system."))
/obj/item/extraction_pack/afterattack(atom/movable/A, mob/living/carbon/human/user, flag, params)
. = ..()
if(!beacon)
to_chat(user, "<span class='warning'>[src] is not linked to a beacon, and cannot be used!</span>")
to_chat(user, span_warning("[src] is not linked to a beacon, and cannot be used!"))
return
if(!(beacon in GLOB.total_extraction_beacons))
beacon = null
to_chat(user, "<span class='warning'>The connected beacon has been destroyed!</span>")
to_chat(user, span_warning("The connected beacon has been destroyed!"))
return
if(!can_use_indoors)
var/area/area = get_area(A)
if(!area.outdoors)
to_chat(user, "<span class='warning'>[src] can only be used on things that are outdoors!</span>")
to_chat(user, span_warning("[src] can only be used on things that are outdoors!"))
return
if(!flag)
return
@@ -58,15 +58,15 @@ GLOBAL_LIST_EMPTY(total_extraction_beacons)
return
else
if(!safe_for_living_creatures && check_for_living_mobs(A))
to_chat(user, "<span class='warning'>[src] is not safe for use with living creatures, they wouldn't survive the trip back!</span>")
to_chat(user, span_warning("[src] is not safe for use with living creatures, they wouldn't survive the trip back!"))
return
if(!isturf(A.loc)) // no extracting stuff inside other stuff
return
if(A.anchored || (A.move_resist > max_force_fulton))
return
to_chat(user, "<span class='notice'>You start attaching the pack to [A]...</span>")
to_chat(user, span_notice("You start attaching the pack to [A]..."))
if(do_after(user,50,target=A))
to_chat(user, "<span class='notice'>You attach the pack to [A] and activate it.</span>")
to_chat(user, span_notice("You attach the pack to [A] and activate it."))
if(loc == user && istype(user.back, /obj/item/storage/backpack))
var/obj/item/storage/backpack/B = user.back
SEND_SIGNAL(B, COMSIG_TRY_STORAGE_INSERT, src, user, FALSE, FALSE)
@@ -19,10 +19,10 @@
return FALSE
var/obj/docking_port/mobile/M = SSshuttle.getShuttle("laborcamp")
if(!M)
to_chat(user, "<span class='warning'>Cannot locate shuttle!</span>")
to_chat(user, span_warning("Cannot locate shuttle!"))
return FALSE
var/obj/docking_port/stationary/S = M.get_docked()
if(S?.name == "laborcamp_away")
to_chat(user, "<span class='warning'>Shuttle is already at the outpost!</span>")
to_chat(user, span_warning("Shuttle is already at the outpost!"))
return FALSE
return TRUE
+13 -13
View File
@@ -100,26 +100,26 @@ GLOBAL_LIST(labor_sheet_values)
var/obj/item/card/id/advanced/prisoner/P = I
P.points += stacking_machine.points
stacking_machine.points = 0
to_chat(M, "<span class='notice'>Points transferred.</span>")
to_chat(M, span_notice("Points transferred."))
return TRUE
else
to_chat(M, "<span class='alert'>No valid id for point transfer detected.</span>")
to_chat(M, span_alert("No valid id for point transfer detected."))
if("move_shuttle")
if(!alone_in_area(get_area(src), M))
to_chat(M, "<span class='alert'>Prisoners are only allowed to be released while alone.</span>")
to_chat(M, span_alert("Prisoners are only allowed to be released while alone."))
return
switch(SSshuttle.moveShuttle("laborcamp", "laborcamp_home", TRUE))
if(1)
to_chat(M, "<span class='alert'>Shuttle not found.</span>")
to_chat(M, span_alert("Shuttle not found."))
if(2)
to_chat(M, "<span class='alert'>Shuttle already at station.</span>")
to_chat(M, span_alert("Shuttle already at station."))
if(3)
to_chat(M, "<span class='alert'>No permission to dock could be granted.</span>")
to_chat(M, span_alert("No permission to dock could be granted."))
else
if(!(obj_flags & EMAGGED))
Radio.set_frequency(FREQ_SECURITY)
Radio.talk_into(src, "A prisoner has returned to the station. Minerals and Prisoner ID card ready for retrieval.", FREQ_SECURITY)
to_chat(M, "<span class='notice'>Shuttle received message and will be sent shortly.</span>")
to_chat(M, span_notice("Shuttle received message and will be sent shortly."))
return TRUE
/obj/machinery/mineral/labor_claim_console/proc/locate_stacking_machine()
@@ -130,7 +130,7 @@ GLOBAL_LIST(labor_sheet_values)
/obj/machinery/mineral/labor_claim_console/emag_act(mob/user)
if(!(obj_flags & EMAGGED))
obj_flags |= EMAGGED
to_chat(user, "<span class='warning'>PZZTTPFFFT</span>")
to_chat(user, span_warning("PZZTTPFFFT"))
/**********************Prisoner Collection Unit**************************/
@@ -167,11 +167,11 @@ GLOBAL_LIST(labor_sheet_values)
if(istype(I, /obj/item/card/id))
if(istype(I, /obj/item/card/id/advanced/prisoner))
var/obj/item/card/id/advanced/prisoner/prisoner_id = I
to_chat(user, "<span class='notice'><B>ID: [prisoner_id.registered_name]</B></span>")
to_chat(user, "<span class='notice'>Points Collected:[prisoner_id.points]</span>")
to_chat(user, "<span class='notice'>Point Quota: [prisoner_id.goal]</span>")
to_chat(user, "<span class='notice'>Collect points by bringing smelted minerals to the Labor Shuttle stacking machine. Reach your quota to earn your release.</span>")
to_chat(user, span_notice("<B>ID: [prisoner_id.registered_name]</B>"))
to_chat(user, span_notice("Points Collected:[prisoner_id.points]"))
to_chat(user, span_notice("Point Quota: [prisoner_id.goal]"))
to_chat(user, span_notice("Collect points by bringing smelted minerals to the Labor Shuttle stacking machine. Reach your quota to earn your release."))
else
to_chat(user, "<span class='warning'>Error: Invalid ID</span>")
to_chat(user, span_warning("Error: Invalid ID"))
else
return ..()
+3 -3
View File
@@ -41,7 +41,7 @@
msg = harvest_message_low
else if(rand_harvested == harvest_amount_high)
msg = harvest_message_high
to_chat(user, "<span class='notice'>[msg]</span>")
to_chat(user, span_notice("[msg]"))
for(var/i in 1 to rand_harvested)
new harvest(get_turf(src))
@@ -60,7 +60,7 @@
/obj/structure/flora/ash/attackby(obj/item/W, mob/user, params)
if(!harvested && needs_sharp_harvest && W.get_sharpness())
user.visible_message("<span class='notice'>[user] starts to harvest from [src] with [W].</span>","<span class='notice'>You begin to harvest from [src] with [W].</span>")
user.visible_message(span_notice("[user] starts to harvest from [src] with [W]."),span_notice("You begin to harvest from [src] with [W]."))
if(do_after(user, harvest_time, target = src))
harvest(user)
else
@@ -71,7 +71,7 @@
if(.)
return
if(!harvested && !needs_sharp_harvest)
user.visible_message("<span class='notice'>[user] starts to harvest from [src].</span>","<span class='notice'>You begin to harvest from [src].</span>")
user.visible_message(span_notice("[user] starts to harvest from [src]."),span_notice("You begin to harvest from [src]."))
if(do_after(user, harvest_time, target = src))
harvest(user)
@@ -79,7 +79,7 @@
new /obj/item/clothing/neck/necklace/memento_mori(src)
spawned_loot = TRUE
qdel(item)
to_chat(user, "<span class='notice'>You disable the magic lock, revealing the loot.</span>")
to_chat(user, span_notice("You disable the magic lock, revealing the loot."))
return TRUE
/obj/structure/closet/crate/necropolis/tendril/can_open(mob/living/user, force = FALSE)
@@ -165,15 +165,15 @@
if(activated)
return
if(!iscarbon(user))
to_chat(user, "<span class='warning'>The snake carving seems to come alive, if only for a moment, before returning to its dormant state, almost as if it finds you incapable of holding its oath.</span>")
to_chat(user, span_warning("The snake carving seems to come alive, if only for a moment, before returning to its dormant state, almost as if it finds you incapable of holding its oath."))
return
var/mob/living/carbon/itemUser = user
usedHand = itemUser.get_held_index_of_item(src)
if(itemUser.has_status_effect(STATUS_EFFECT_HIPPOCRATIC_OATH))
to_chat(user, "<span class='warning'>You can't possibly handle the responsibility of more than one rod!</span>")
to_chat(user, span_warning("You can't possibly handle the responsibility of more than one rod!"))
return
var/failText = "<span class='warning'>The snake seems unsatisfied with your incomplete oath and returns to its previous place on the rod, returning to its dormant, wooden state. You must stand still while completing your oath!</span>"
to_chat(itemUser, "<span class='notice'>The wooden snake that was carved into the rod seems to suddenly come alive and begins to slither down your arm! The compulsion to help others grows abnormally strong...</span>")
var/failText = span_warning("The snake seems unsatisfied with your incomplete oath and returns to its previous place on the rod, returning to its dormant, wooden state. You must stand still while completing your oath!")
to_chat(itemUser, span_notice("The wooden snake that was carved into the rod seems to suddenly come alive and begins to slither down your arm! The compulsion to help others grows abnormally strong..."))
if(do_after(itemUser, 40, target = itemUser))
itemUser.say("I swear to fulfill, to the best of my ability and judgment, this covenant:", forced = "hippocratic oath")
else
@@ -194,7 +194,7 @@
else
to_chat(itemUser, failText)
return
to_chat(itemUser, "<span class='notice'>The snake, satisfied with your oath, attaches itself and the rod to your forearm with an inseparable grip. Your thoughts seem to only revolve around the core idea of helping others, and harm is nothing more than a distant, wicked memory...</span>")
to_chat(itemUser, span_notice("The snake, satisfied with your oath, attaches itself and the rod to your forearm with an inseparable grip. Your thoughts seem to only revolve around the core idea of helping others, and harm is nothing more than a distant, wicked memory..."))
var/datum/status_effect/hippocratic_oath/effect = itemUser.apply_status_effect(STATUS_EFFECT_HIPPOCRATIC_OATH)
effect.hand = usedHand
activated()
@@ -232,9 +232,9 @@
return ..()
/obj/item/clothing/neck/necklace/memento_mori/proc/memento(mob/living/carbon/human/user)
to_chat(user, "<span class='warning'>You feel your life being drained by the pendant...</span>")
to_chat(user, span_warning("You feel your life being drained by the pendant..."))
if(do_after(user, 40, target = user))
to_chat(user, "<span class='notice'>Your lifeforce is now linked to the pendant! You feel like removing it would kill you, and yet you instinctively know that until then, you won't die.</span>")
to_chat(user, span_notice("Your lifeforce is now linked to the pendant! You feel like removing it would kill you, and yet you instinctively know that until then, you won't die."))
ADD_TRAIT(user, TRAIT_NODEATH, CLOTHING_TRAIT)
ADD_TRAIT(user, TRAIT_NOHARDCRIT, CLOTHING_TRAIT)
ADD_TRAIT(user, TRAIT_NOCRITDAMAGE, CLOTHING_TRAIT)
@@ -247,7 +247,7 @@
return
var/mob/living/carbon/human/H = active_owner //to avoid infinite looping when dust unequips the pendant
active_owner = null
to_chat(H, "<span class='userdanger'>You feel your life rapidly slipping away from you!</span>")
to_chat(H, span_userdanger("You feel your life rapidly slipping away from you!"))
H.dust(TRUE, TRUE)
/datum/action/item_action/hands_free/memento_mori
@@ -275,18 +275,18 @@
/obj/item/wisp_lantern/attack_self(mob/user)
if(!wisp)
to_chat(user, "<span class='warning'>The wisp has gone missing!</span>")
to_chat(user, span_warning("The wisp has gone missing!"))
icon_state = "lantern"
return
if(wisp.loc == src)
to_chat(user, "<span class='notice'>You release the wisp. It begins to bob around your head.</span>")
to_chat(user, span_notice("You release the wisp. It begins to bob around your head."))
icon_state = "lantern"
wisp.orbit(user, 20)
SSblackbox.record_feedback("tally", "wisp_lantern", 1, "Freed")
else
to_chat(user, "<span class='notice'>You return the wisp to the lantern.</span>")
to_chat(user, span_notice("You return the wisp to the lantern."))
icon_state = "lantern-blue"
wisp.forceMove(src)
SSblackbox.record_feedback("tally", "wisp_lantern", 1, "Returned")
@@ -300,7 +300,7 @@
if(wisp.loc == src)
qdel(wisp)
else
wisp.visible_message("<span class='notice'>[wisp] has a sad feeling for a moment, then it passes.</span>")
wisp.visible_message(span_notice("[wisp] has a sad feeling for a moment, then it passes."))
return ..()
/obj/effect/wisp
@@ -321,13 +321,13 @@
RegisterSignal(thing, COMSIG_MOB_UPDATE_SIGHT, .proc/update_user_sight)
var/mob/being = thing
being.update_sight()
to_chat(thing, "<span class='notice'>The wisp enhances your vision.</span>")
to_chat(thing, span_notice("The wisp enhances your vision."))
/obj/effect/wisp/stop_orbit(datum/component/orbiter/orbits)
. = ..()
if(ismob(orbits.parent))
UnregisterSignal(orbits.parent, COMSIG_MOB_UPDATE_SIGHT)
to_chat(orbits.parent, "<span class='notice'>Your vision returns to normal.</span>")
to_chat(orbits.parent, span_notice("Your vision returns to normal."))
/obj/effect/wisp/proc/update_user_sight(mob/user)
SIGNAL_HANDLER
@@ -355,7 +355,7 @@
var/turf/current_location = get_turf(user)
var/area/current_area = current_location.loc
if(!linked || (current_area.area_flags & NOTELEPORT))
to_chat(user, "<span class='warning'>[src] fizzles uselessly.</span>")
to_chat(user, span_warning("[src] fizzles uselessly."))
return
if(teleporting)
return
@@ -419,7 +419,7 @@
force = 18
/obj/item/gun/magic/hook/shoot_with_empty_chamber(mob/living/user)
to_chat(user, "<span class='warning'>[src] isn't ready to fire yet!</span>")
to_chat(user, span_warning("[src] isn't ready to fire yet!"))
/obj/item/ammo_casing/magic/hook
name = "hook"
@@ -454,7 +454,7 @@
var/atom/movable/A = target
if(A.anchored)
return
A.visible_message("<span class='danger'>[A] is snagged by [firer]'s hook!</span>")
A.visible_message(span_danger("[A] is snagged by [firer]'s hook!"))
new /datum/forced_movement(A, get_turf(firer), 5, TRUE)
if (isliving(target))
var/mob/living/fresh_meat = target
@@ -502,7 +502,7 @@
cooldown = world.time + 600
new /obj/effect/immortality_talisman(get_turf(user), user)
else
to_chat(user, "<span class='warning'>[src] is not ready yet!</span>")
to_chat(user, span_warning("[src] is not ready yet!"))
/obj/effect/immortality_talisman
name = "hole in reality"
@@ -518,7 +518,7 @@
vanish(new_user)
/obj/effect/immortality_talisman/proc/vanish(mob/user)
user.visible_message("<span class='danger'>[user] [vanish_description], leaving a hole in [user.p_their()] place!</span>")
user.visible_message(span_danger("[user] [vanish_description], leaving a hole in [user.p_their()] place!"))
desc = "It's shaped an awful lot like [user.name]."
setDir(user.dir)
@@ -536,7 +536,7 @@
user.notransform = FALSE
user.forceMove(get_turf(src))
user.visible_message("<span class='danger'>[user] pops back into reality!</span>")
user.visible_message(span_danger("[user] pops back into reality!"))
can_destroy = TRUE
qdel(src)
@@ -598,7 +598,7 @@
/obj/item/book_of_babel/attack_self(mob/user)
if(!user.can_read(src))
return FALSE
to_chat(user, "<span class='notice'>You flip through the pages of the book, quickly and conveniently learning every language in existence. Somewhat less conveniently, the aging book crumbles to dust in the process. Whoops.</span>")
to_chat(user, span_notice("You flip through the pages of the book, quickly and conveniently learning every language in existence. Somewhat less conveniently, the aging book crumbles to dust in the process. Whoops."))
user.grant_all_languages()
new /obj/effect/decal/cleanable/ash(get_turf(user))
qdel(src)
@@ -631,10 +631,10 @@
var/holycheck = ishumanbasic(exposed_carbon)
if(reac_volume < 5 || !(holycheck || islizard(exposed_carbon) || (ismoth(exposed_carbon) && exposed_carbon.dna.features["moth_wings"] != "Burnt Off"))) // implying xenohumans are holy //as with all things,
if((methods & INGEST) && show_message)
to_chat(exposed_carbon, "<span class='notice'><i>You feel nothing but a terrible aftertaste.</i></span>")
to_chat(exposed_carbon, span_notice("<i>You feel nothing but a terrible aftertaste.</i>"))
return
if(exposed_carbon.dna.species.has_innate_wings)
to_chat(exposed_carbon, "<span class='userdanger'>A terrible pain travels down your back as your wings change shape!</span>")
to_chat(exposed_carbon, span_userdanger("A terrible pain travels down your back as your wings change shape!"))
if(!exposed_carbon.dna.features["original_moth_wings"]) //Stores their wings for later possible reconstruction
exposed_carbon.dna.features["original_moth_wings"] = exposed_carbon.dna.features["moth_wings"]
exposed_carbon.dna.features["moth_wings"] = "None"
@@ -642,10 +642,10 @@
exposed_carbon.dna.features["original_moth_antennae"] = exposed_carbon.dna.features["moth_antennae"]
exposed_carbon.dna.features["moth_antennae"] = "Regal"
else
to_chat(exposed_carbon, "<span class='userdanger'>A terrible pain travels down your back as wings burst out!</span>")
to_chat(exposed_carbon, span_userdanger("A terrible pain travels down your back as wings burst out!"))
exposed_carbon.dna.species.GiveSpeciesFlight(exposed_carbon)
if(holycheck)
to_chat(exposed_carbon, "<span class='notice'>You feel blessed!</span>")
to_chat(exposed_carbon, span_notice("You feel blessed!"))
ADD_TRAIT(exposed_carbon, TRAIT_HOLY, SPECIES_TRAIT)
playsound(exposed_carbon.loc, 'sound/items/poster_ripped.ogg', 50, TRUE, -1)
exposed_carbon.adjustBruteLoss(20)
@@ -662,7 +662,7 @@
var/turf/T = get_turf(src)
var/ladder_x = T.x
var/ladder_y = T.y
to_chat(user, "<span class='notice'>You unfold the ladder. It extends much farther than you were expecting.</span>")
to_chat(user, span_notice("You unfold the ladder. It extends much farther than you were expecting."))
var/last_ladder = null
for(var/i in 1 to world.maxz)
if(is_centcom_level(i) || is_reserved_level(i) || is_away_level(i))
@@ -757,7 +757,7 @@
"Transforming it immediately after an attack causes the next attack to come out faster.</span>"
/obj/item/melee/transforming/cleaving_saw/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is [active ? "closing [src] on [user.p_their()] neck" : "opening [src] into [user.p_their()] chest"]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
user.visible_message(span_suicide("[user] is [active ? "closing [src] on [user.p_their()] neck" : "opening [src] into [user.p_their()] chest"]! It looks like [user.p_theyre()] trying to commit suicide!"))
transform_cooldown = 0
transform_weapon(user, TRUE)
return BRUTELOSS
@@ -773,14 +773,14 @@
/obj/item/melee/transforming/cleaving_saw/transform_messages(mob/living/user, supress_message_text)
if(!supress_message_text)
if(active)
to_chat(user, "<span class='notice'>You open [src]. It will now cleave enemies in a wide arc and deal additional damage to fauna.</span>")
to_chat(user, span_notice("You open [src]. It will now cleave enemies in a wide arc and deal additional damage to fauna."))
else
to_chat(user, "<span class='notice'>You close [src]. It will now attack rapidly and cause fauna to bleed.</span>")
to_chat(user, span_notice("You close [src]. It will now attack rapidly and cause fauna to bleed."))
playsound(user, 'sound/magic/clockwork/fellowship_armory.ogg', 35, TRUE, frequency = 90000 - (active * 30000))
/obj/item/melee/transforming/cleaving_saw/clumsy_transform_effect(mob/living/user)
if(HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50))
to_chat(user, "<span class='warning'>You accidentally cut yourself with [src], like a doofus!</span>")
to_chat(user, span_warning("You accidentally cut yourself with [src], like a doofus!"))
user.take_bodypart_damage(10)
/obj/item/melee/transforming/cleaving_saw/melee_attack_chain(mob/user, atom/target, params)
@@ -875,9 +875,9 @@
/obj/item/melee/ghost_sword/attack_self(mob/user)
if(summon_cooldown > world.time)
to_chat(user, "<span class='warning'>You just recently called out for aid. You don't want to annoy the spirits!</span>")
to_chat(user, span_warning("You just recently called out for aid. You don't want to annoy the spirits!"))
return
to_chat(user, "<span class='notice'>You call out for aid, attempting to summon spirits to your side.</span>")
to_chat(user, span_notice("You call out for aid, attempting to summon spirits to your side."))
notify_ghosts("[user] is raising [user.p_their()] [src], calling for your help!",
enter_link="<a href=?src=[REF(src)];orbit=1>(Click to help)</a>",
@@ -923,13 +923,13 @@
var/ghost_counter = ghost_check()
force = clamp((ghost_counter * 4), 0, 75)
user.visible_message("<span class='danger'>[user] strikes with the force of [ghost_counter] vengeful spirits!</span>")
user.visible_message(span_danger("[user] strikes with the force of [ghost_counter] vengeful spirits!"))
..()
/obj/item/melee/ghost_sword/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
var/ghost_counter = ghost_check()
final_block_chance += clamp((ghost_counter * 5), 0, 75)
owner.visible_message("<span class='danger'>[owner] is protected by a ring of [ghost_counter] ghosts!</span>")
owner.visible_message(span_danger("[owner] is protected by a ring of [ghost_counter] ghosts!"))
return ..()
//Blood
@@ -949,20 +949,20 @@
switch(random)
if(1)
to_chat(user, "<span class='danger'>Your appearance morphs to that of a very small humanoid ash dragon! You get to look like a freak without the cool abilities.</span>")
to_chat(user, span_danger("Your appearance morphs to that of a very small humanoid ash dragon! You get to look like a freak without the cool abilities."))
H.dna.features = list("mcolor" = "A02720", "tail_lizard" = "Dark Tiger", "tail_human" = "None", "snout" = "Sharp", "horns" = "Curled", "ears" = "None", "wings" = "None", "frills" = "None", "spines" = "Long", "body_markings" = "Dark Tiger Body", "legs" = "Digitigrade Legs")
H.eye_color = "fee5a3"
H.set_species(/datum/species/lizard)
if(2)
to_chat(user, "<span class='danger'>Your flesh begins to melt! Miraculously, you seem fine otherwise.</span>")
to_chat(user, span_danger("Your flesh begins to melt! Miraculously, you seem fine otherwise."))
H.set_species(/datum/species/skeleton)
if(3)
to_chat(user, "<span class='danger'>Power courses through you! You can now shift your form at will.</span>")
to_chat(user, span_danger("Power courses through you! You can now shift your form at will."))
if(user.mind)
var/obj/effect/proc_holder/spell/targeted/shapeshift/dragon/D = new
user.mind.AddSpell(D)
if(4)
to_chat(user, "<span class='danger'>You feel like you could walk straight through lava now.</span>")
to_chat(user, span_danger("You feel like you could walk straight through lava now."))
LAZYOR(H.weather_immunities, "lava")
playsound(user.loc,'sound/items/drink.ogg', rand(10,50), TRUE)
@@ -1028,12 +1028,12 @@
var/obj/effect/temp_visual/lavastaff/L = new /obj/effect/temp_visual/lavastaff(T)
L.alpha = 0
animate(L, alpha = 255, time = create_delay)
user.visible_message("<span class='danger'>[user] points [src] at [T]!</span>")
user.visible_message(span_danger("[user] points [src] at [T]!"))
timer = world.time + create_delay + 1
if(do_after(user, create_delay, target = T))
var/old_name = T.name
if(T.TerraformTurf(turf_type, flags = CHANGETURF_INHERIT_AIR))
user.visible_message("<span class='danger'>[user] turns \the [old_name] into [transform_string]!</span>")
user.visible_message(span_danger("[user] turns \the [old_name] into [transform_string]!"))
message_admins("[ADMIN_LOOKUPFLW(user)] fired the lava staff at [ADMIN_VERBOSEJMP(T)]")
log_game("[key_name(user)] fired the lava staff at [AREACOORD(T)].")
timer = world.time + create_cooldown
@@ -1044,7 +1044,7 @@
else
var/old_name = T.name
if(T.TerraformTurf(reset_turf_type, flags = CHANGETURF_INHERIT_AIR))
user.visible_message("<span class='danger'>[user] turns \the [old_name] into [reset_string]!</span>")
user.visible_message(span_danger("[user] turns \the [old_name] into [reset_string]!"))
timer = world.time + reset_cooldown
playsound(T,'sound/magic/fireball.ogg', 200, TRUE)
@@ -1082,9 +1082,9 @@
/obj/item/mayhem/attack_self(mob/user)
for(var/mob/living/carbon/human/H in range(7,user))
H.apply_status_effect(STATUS_EFFECT_MAYHEM)
to_chat(user, "<span class='notice'>You shatter the bottle!</span>")
to_chat(user, span_notice("You shatter the bottle!"))
playsound(user.loc, 'sound/effects/glassbr1.ogg', 100, TRUE)
message_admins("<span class='adminnotice'>[ADMIN_LOOKUPFLW(user)] has activated a bottle of mayhem!</span>")
message_admins(span_adminnotice("[ADMIN_LOOKUPFLW(user)] has activated a bottle of mayhem!"))
user.log_message("activated a bottle of mayhem", LOG_ATTACK)
qdel(src)
@@ -1124,7 +1124,7 @@
/datum/action/innate/dash/hierophant/Teleport(mob/user, atom/target)
var/dist = get_dist(user, target)
if(dist > HIEROPHANT_BLINK_RANGE)
to_chat(user, "<span class='hierophant_warning'>Blink destination out of range.</span>")
to_chat(user, span_hierophant_warning("Blink destination out of range."))
return
. = ..()
@@ -1146,7 +1146,7 @@
if(recharge_sound)
playsound(dashing_item, recharge_sound, 50, TRUE)
to_chat(owner, "<span class='notice'>[src] now has [current_charges]/[max_charges] charges.</span>")
to_chat(owner, span_notice("[src] now has [current_charges]/[max_charges] charges."))
/obj/item/hierophant_club
name = "hierophant club"
@@ -1192,14 +1192,14 @@
/obj/item/hierophant_club/examine(mob/user)
. = ..()
. += "<span class='hierophant_warning'>The[beacon ? " beacon is not currently":"re is a beacon"] attached.</span>"
. += span_hierophant_warning("The[beacon ? " beacon is not currently":"re is a beacon"] attached.")
/obj/item/hierophant_club/suicide_act(mob/living/user)
say("Xverwpsgexmrk...", forced = "hierophant club suicide")
user.visible_message("<span class='suicide'>[user] holds [src] into the air! It looks like [user.p_theyre()] trying to commit suicide!</span>")
user.visible_message(span_suicide("[user] holds [src] into the air! It looks like [user.p_theyre()] trying to commit suicide!"))
new/obj/effect/temp_visual/hierophant/telegraph(get_turf(user))
playsound(user,'sound/machines/airlockopen.ogg', 75, TRUE)
user.visible_message("<span class='hierophant_warning'>[user] fades out, leaving [user.p_their()] belongings behind!</span>")
user.visible_message(span_hierophant_warning("[user] fades out, leaving [user.p_their()] belongings behind!"))
for(var/obj/item/I in user)
if(I != src)
user.dropItemToGround(I)
@@ -1210,7 +1210,7 @@
/obj/item/hierophant_club/attack_self(mob/user)
blink_activated = !blink_activated
to_chat(user, "<span class='notice'>You [blink_activated ? "enable" : "disable"] the blink function on [src].</span>")
to_chat(user, span_notice("You [blink_activated ? "enable" : "disable"] the blink function on [src]."))
/obj/item/hierophant_club/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
. = ..()
@@ -1226,37 +1226,37 @@
/obj/item/hierophant_club/ui_action_click(mob/user, action)
if(!user.is_holding(src)) //you need to hold the staff to teleport
to_chat(user, "<span class='warning'>You need to hold the club in your hands to [beacon ? "teleport with it":"detach the beacon"]!</span>")
to_chat(user, span_warning("You need to hold the club in your hands to [beacon ? "teleport with it":"detach the beacon"]!"))
return
if(!beacon || QDELETED(beacon))
if(isturf(user.loc))
user.visible_message("<span class='hierophant_warning'>[user] starts fiddling with [src]'s pommel...</span>", \
"<span class='notice'>You start detaching the hierophant beacon...</span>")
user.visible_message(span_hierophant_warning("[user] starts fiddling with [src]'s pommel..."), \
span_notice("You start detaching the hierophant beacon..."))
if(do_after(user, 50, target = user) && !beacon)
var/turf/T = get_turf(user)
playsound(T,'sound/magic/blind.ogg', 200, TRUE, -4)
new /obj/effect/temp_visual/hierophant/telegraph/teleport(T, user)
beacon = new/obj/effect/hierophant(T)
user.update_action_buttons_icon()
user.visible_message("<span class='hierophant_warning'>[user] places a strange machine beneath [user.p_their()] feet!</span>", \
"<span class='hierophant'>You detach the hierophant beacon, allowing you to teleport yourself and any allies to it at any time!</span>\n\
<span class='notice'>You can remove the beacon to place it again by striking it with the club.</span>")
user.visible_message(span_hierophant_warning("[user] places a strange machine beneath [user.p_their()] feet!"), \
"[span_hierophant("You detach the hierophant beacon, allowing you to teleport yourself and any allies to it at any time!")]\n\
[span_notice("You can remove the beacon to place it again by striking it with the club.")]")
else
to_chat(user, "<span class='warning'>You need to be on solid ground to detach the beacon!</span>")
to_chat(user, span_warning("You need to be on solid ground to detach the beacon!"))
return
if(get_dist(user, beacon) <= 2) //beacon too close abort
to_chat(user, "<span class='warning'>You are too close to the beacon to teleport to it!</span>")
to_chat(user, span_warning("You are too close to the beacon to teleport to it!"))
return
var/turf/beacon_turf = get_turf(beacon)
if(beacon_turf?.is_blocked_turf(TRUE))
to_chat(user, "<span class='warning'>The beacon is blocked by something, preventing teleportation!</span>")
to_chat(user, span_warning("The beacon is blocked by something, preventing teleportation!"))
return
if(!isturf(user.loc))
to_chat(user, "<span class='warning'>You don't have enough space to teleport from here!</span>")
to_chat(user, span_warning("You don't have enough space to teleport from here!"))
return
teleporting = TRUE //start channel
user.update_action_buttons_icon()
user.visible_message("<span class='hierophant_warning'>[user] starts to glow faintly...</span>")
user.visible_message(span_hierophant_warning("[user] starts to glow faintly..."))
beacon.icon_state = "hierophant_tele_on"
var/obj/effect/temp_visual/hierophant/telegraph/edge/TE1 = new /obj/effect/temp_visual/hierophant/telegraph/edge(user.loc)
var/obj/effect/temp_visual/hierophant/telegraph/edge/TE2 = new /obj/effect/temp_visual/hierophant/telegraph/edge(beacon.loc)
@@ -1265,7 +1265,7 @@
var/turf/source = get_turf(user)
if(T.is_blocked_turf(TRUE))
teleporting = FALSE
to_chat(user, "<span class='warning'>The beacon is blocked by something, preventing teleportation!</span>")
to_chat(user, span_warning("The beacon is blocked by something, preventing teleportation!"))
user.update_action_buttons_icon()
beacon.icon_state = "hierophant_tele_off"
return
@@ -1282,7 +1282,7 @@
return
if(T.is_blocked_turf(TRUE))
teleporting = FALSE
to_chat(user, "<span class='warning'>The beacon is blocked by something, preventing teleportation!</span>")
to_chat(user, span_warning("The beacon is blocked by something, preventing teleportation!"))
user.update_action_buttons_icon()
beacon.icon_state = "hierophant_tele_off"
return
@@ -1315,7 +1315,7 @@
sleep(1)
if(!M)
return
M.visible_message("<span class='hierophant_warning'>[M] fades out!</span>")
M.visible_message(span_hierophant_warning("[M] fades out!"))
sleep(2)
if(!M)
return
@@ -1327,7 +1327,7 @@
sleep(1)
if(!M)
return
M.visible_message("<span class='hierophant_warning'>[M] fades in!</span>")
M.visible_message(span_hierophant_warning("[M] fades in!"))
if(user != M && success)
log_combat(user, M, "teleported", null, "from [AREACOORD(source)]")
+1 -1
View File
@@ -35,7 +35,7 @@
if(.)
return
if(obj_flags & IN_USE)
to_chat(user, "<span class='warning'>It's already in use - wait a bit!</span>")
to_chat(user, span_warning("It's already in use - wait a bit!"))
return
else
obj_flags |= IN_USE
+11 -11
View File
@@ -38,9 +38,9 @@
/obj/machinery/mineral/ore_redemption/examine(mob/user)
. = ..()
if(in_range(user, src) || isobserver(user))
. += "<span class='notice'>The status display reads: Smelting <b>[ore_multiplier]</b> sheet(s) per piece of ore.<br>Reward point generation at <b>[point_upgrade*100]%</b>.</span>"
. += span_notice("The status display reads: Smelting <b>[ore_multiplier]</b> sheet(s) per piece of ore.<br>Reward point generation at <b>[point_upgrade*100]%</b>.")
if(panel_open)
. += "<span class='notice'>Alt-click to rotate the input and output direction.</span>"
. += span_notice("Alt-click to rotate the input and output direction.")
/obj/machinery/mineral/ore_redemption/proc/smelt_ore(obj/item/stack/ore/O)
if(QDELETED(O))
@@ -180,7 +180,7 @@
var/obj/item/stack/ore/O = W
if(istype(O))
if(O.refined_type == null)
to_chat(user, "<span class='warning'>[O] has already been refined!</span>")
to_chat(user, span_warning("[O] has already been refined!"))
return
return ..()
@@ -192,7 +192,7 @@
if(panel_open)
input_dir = turn(input_dir, -90)
output_dir = turn(output_dir, -90)
to_chat(user, "<span class='notice'>You change [src]'s I/O settings, setting the input to [dir2text(input_dir)] and the output to [dir2text(output_dir)].</span>")
to_chat(user, span_notice("You change [src]'s I/O settings, setting the input to [dir2text(input_dir)] and the output to [dir2text(output_dir)]."))
unregister_input_turf() // someone just rotated the input and output directions, unregister the old turf
register_input_turf() // register the new one
return TRUE
@@ -257,17 +257,17 @@
I.mining_points += points
points = 0
else
to_chat(usr, "<span class='warning'>No valid ID detected.</span>")
to_chat(usr, span_warning("No valid ID detected."))
else
to_chat(usr, "<span class='warning'>No points to claim.</span>")
to_chat(usr, span_warning("No points to claim."))
return TRUE
if("Release")
if(!mat_container)
return
if(materials.on_hold())
to_chat(usr, "<span class='warning'>Mineral access is on hold, please contact the quartermaster.</span>")
to_chat(usr, span_warning("Mineral access is on hold, please contact the quartermaster."))
else if(!allowed(usr)) //Check the ID inside, otherwise check the user
to_chat(usr, "<span class='warning'>Required access not found.</span>")
to_chat(usr, span_warning("Required access not found."))
else
var/datum/material/mat = locate(params["id"])
@@ -301,7 +301,7 @@
return
inserted_disk = disk
else
to_chat(usr, "<span class='warning'>Not a valid Design Disk!</span>")
to_chat(usr, span_warning("Not a valid Design Disk!"))
return TRUE
if("diskEject")
if(inserted_disk)
@@ -317,7 +317,7 @@
if(!mat_container)
return
if(materials.on_hold())
to_chat(usr, "<span class='warning'>Mineral access is on hold, please contact the quartermaster.</span>")
to_chat(usr, span_warning("Mineral access is on hold, please contact the quartermaster."))
return
var/alloy_id = params["id"]
var/datum/design/alloy = stored_research.isDesignResearchedID(alloy_id)
@@ -342,7 +342,7 @@
output = new alloy.build_path(src)
unload_mineral(output)
else
to_chat(usr, "<span class='warning'>Required access not found.</span>")
to_chat(usr, span_warning("Required access not found."))
return TRUE
/obj/machinery/mineral/ore_redemption/ex_act(severity, target)
+4 -4
View File
@@ -55,11 +55,11 @@ GLOBAL_LIST_EMPTY(silo_access_logs)
if(I.item_flags & ABSTRACT)
return
if(!istype(I) || (I.flags_1 & HOLOGRAM_1) || (I.item_flags & NO_MAT_REDEMPTION))
to_chat(user, "<span class='warning'>[M] won't accept [I]!</span>")
to_chat(user, span_warning("[M] won't accept [I]!"))
return
var/item_mats = materials.get_item_material_amount(I, breakdown_flags)
if(!item_mats)
to_chat(user, "<span class='warning'>[I] does not contain sufficient materials to be accepted by [M].</span>")
to_chat(user, span_warning("[I] does not contain sufficient materials to be accepted by [M]."))
return
// assumes unlimited space...
var/amount = I.amount
@@ -183,7 +183,7 @@ GLOBAL_LIST_EMPTY(silo_access_logs)
/obj/machinery/ore_silo/multitool_act(mob/living/user, obj/item/multitool/I)
. = ..()
if (istype(I))
to_chat(user, "<span class='notice'>You log [src] in the multitool's buffer.</span>")
to_chat(user, span_notice("You log [src] in the multitool's buffer."))
I.buffer = src
return TRUE
@@ -203,7 +203,7 @@ GLOBAL_LIST_EMPTY(silo_access_logs)
/obj/machinery/ore_silo/examine(mob/user)
. = ..()
. += "<span class='notice'>[src] can be linked to techfabs, circuit printers and protolathes with a multitool.</span>"
. += span_notice("[src] can be linked to techfabs, circuit printers and protolathes with a multitool.")
/datum/ore_silo_log
var/name // for VV
+2 -2
View File
@@ -29,7 +29,7 @@
return
var/obj/item/multitool/M = I
M.buffer = src
to_chat(user, "<span class='notice'>You store linkage information in [I]'s buffer.</span>")
to_chat(user, span_notice("You store linkage information in [I]'s buffer."))
return TRUE
/obj/machinery/mineral/stacking_unit_console/ui_interact(mob/user, datum/tgui/ui)
@@ -115,7 +115,7 @@
if(istype(M.buffer, /obj/machinery/mineral/stacking_unit_console))
console = M.buffer
console.machine = src
to_chat(user, "<span class='notice'>You link [src] to the console in [M]'s buffer.</span>")
to_chat(user, span_notice("You link [src] to the console in [M]'s buffer."))
return TRUE
/obj/machinery/mineral/stacking_machine/proc/process_sheet(obj/item/stack/sheet/inp)
+7 -7
View File
@@ -139,20 +139,20 @@
var/mob/living/L = usr
I = L.get_idcard(TRUE)
if(!istype(I))
to_chat(usr, "<span class='alert'>Error: An ID is required!</span>")
to_chat(usr, span_alert("Error: An ID is required!"))
flick(icon_deny, src)
return
var/datum/data/mining_equipment/prize = locate(params["ref"]) in prize_list
if(!prize || !(prize in prize_list))
to_chat(usr, "<span class='alert'>Error: Invalid choice!</span>")
to_chat(usr, span_alert("Error: Invalid choice!"))
flick(icon_deny, src)
return
if(prize.cost > I.mining_points)
to_chat(usr, "<span class='alert'>Error: Insufficient points for [prize.equipment_name] on [I]!</span>")
to_chat(usr, span_alert("Error: Insufficient points for [prize.equipment_name] on [I]!"))
flick(icon_deny, src)
return
I.mining_points -= prize.cost
to_chat(usr, "<span class='notice'>[src] clanks to life briefly before vending [prize.equipment_name]!</span>")
to_chat(usr, span_notice("[src] clanks to life briefly before vending [prize.equipment_name]!"))
new prize.equipment_path(loc)
SSblackbox.record_feedback("nested tally", "mining_equipment_bought", 1, list("[type]", "[prize.equipment_path]"))
. = TRUE
@@ -247,15 +247,15 @@
if(points)
var/obj/item/card/id/C = I
C.mining_points += points
to_chat(user, "<span class='info'>You transfer [points] points to [C].</span>")
to_chat(user, span_info("You transfer [points] points to [C]."))
points = 0
else
to_chat(user, "<span class='alert'>There's no points left on [src].</span>")
to_chat(user, span_alert("There's no points left on [src]."))
..()
/obj/item/card/mining_point_card/examine(mob/user)
..()
to_chat(user, "<span class='alert'>There's [points] point\s on the card.</span>")
to_chat(user, span_alert("There's [points] point\s on the card."))
/obj/item/storage/backpack/duffelbag/mining_conscript
name = "mining conscription kit"
+1 -1
View File
@@ -80,7 +80,7 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/obj/machinery/computer/shuttle/mining/attack_hand(mob/user, list/modifiers)
if(is_station_level(user.z) && user.mind && IS_HEAD_REVOLUTIONARY(user) && !(user.mind in dumb_rev_heads))
to_chat(user, "<span class='warning'>You get a feeling that leaving the station might be a REALLY dumb idea...</span>")
to_chat(user, span_warning("You get a feeling that leaving the station might be a REALLY dumb idea..."))
dumb_rev_heads += user.mind
return
. = ..()
+17 -17
View File
@@ -79,34 +79,34 @@
var/t_s = p_s()
if(health < maxHealth)
if(health >= maxHealth * 0.5)
. += "<span class='warning'>[t_He] look[t_s] slightly dented.</span>"
. += span_warning("[t_He] look[t_s] slightly dented.")
else
. += "<span class='boldwarning'>[t_He] look[t_s] severely dented!</span>"
. += span_boldwarning("[t_He] look[t_s] severely dented!")
. += {"<span class='notice'>Using a mining scanner on [t_him] will instruct [t_him] to drop stored ore. <b>[max(0, LAZYLEN(contents) - 1)] Stored Ore</b>\n
Field repairs can be done with a welder."}
if(stored_gun?.max_mod_capacity)
. += "<b>[stored_gun.get_remaining_mod_capacity()]%</b> mod capacity remaining."
for(var/obj/item/borg/upgrade/modkit/modkit as anything in stored_gun.modkits)
. += "<span class='notice'>There is \a [modkit] installed, using <b>[modkit.cost]%</b> capacity.</span>"
. += span_notice("There is \a [modkit] installed, using <b>[modkit.cost]%</b> capacity.")
/mob/living/simple_animal/hostile/mining_drone/welder_act(mob/living/user, obj/item/welder)
..()
. = TRUE
if(mode == MINEDRONE_ATTACK)
to_chat(user, "<span class='warning'>[src] can't be repaired while in attack mode!</span>")
to_chat(user, span_warning("[src] can't be repaired while in attack mode!"))
return
if(maxHealth == health)
to_chat(user, "<span class='info'>[src] is at full integrity.</span>")
to_chat(user, span_info("[src] is at full integrity."))
return
if(welder.use_tool(src, user, 0, volume=40))
adjustBruteLoss(-15)
to_chat(user, "<span class='info'>You repair some of the armor on [src].</span>")
to_chat(user, span_info("You repair some of the armor on [src]."))
/mob/living/simple_animal/hostile/mining_drone/attackby(obj/item/item_used, mob/user, params)
if(istype(item_used, /obj/item/mining_scanner) || istype(item_used, /obj/item/t_scanner/adv_mining_scanner))
to_chat(user, "<span class='info'>You instruct [src] to drop any collected ore.</span>")
to_chat(user, span_info("You instruct [src] to drop any collected ore."))
DropOre()
return
if(item_used.tool_behaviour == TOOL_CROWBAR || istype(item_used, /obj/item/borg/upgrade/modkit))
@@ -130,9 +130,9 @@
toggle_mode()
switch(mode)
if(MINEDRONE_COLLECT)
to_chat(user, "<span class='info'>[src] has been set to search and store loose ore.</span>")
to_chat(user, span_info("[src] has been set to search and store loose ore."))
if(MINEDRONE_ATTACK)
to_chat(user, "<span class='info'>[src] has been set to attack hostile wildlife.</span>")
to_chat(user, span_info("[src] has been set to attack hostile wildlife."))
return
/mob/living/simple_animal/hostile/mining_drone/CanAllowThrough(atom/movable/object)
@@ -154,7 +154,7 @@
minimum_distance = 1
retreat_distance = null
icon_state = "mining_drone"
to_chat(src, "<span class='info'>You are set to collect mode. You can now collect loose ore.</span>")
to_chat(src, span_info("You are set to collect mode. You can now collect loose ore."))
/mob/living/simple_animal/hostile/mining_drone/proc/SetOffenseBehavior()
mode = MINEDRONE_ATTACK
@@ -165,7 +165,7 @@
retreat_distance = 2
minimum_distance = 1
icon_state = "mining_drone_offense"
to_chat(src, "<span class='info'>You are set to attack mode. You can now attack from range.</span>")
to_chat(src, span_info("You are set to attack mode. You can now attack from range."))
/mob/living/simple_animal/hostile/mining_drone/AttackingTarget()
if(istype(target, /obj/item/stack/ore) && mode == MINEDRONE_COLLECT)
@@ -187,10 +187,10 @@
/mob/living/simple_animal/hostile/mining_drone/proc/DropOre(message = 1)
if(!contents.len)
if(message)
to_chat(src, "<span class='warning'>You attempt to dump your stored ore, but you have none!</span>")
to_chat(src, span_warning("You attempt to dump your stored ore, but you have none!"))
return
if(message)
to_chat(src, "<span class='notice'>You dump your stored ore.</span>")
to_chat(src, span_notice("You dump your stored ore."))
for(var/obj/item/stack/ore/O in contents)
O.forceMove(drop_location())
@@ -214,7 +214,7 @@
user.sync_lighting_plane_alpha()
to_chat(user, "<span class='notice'>You toggle your meson vision [(user.sight & SEE_TURFS) ? "on" : "off"].</span>")
to_chat(user, span_notice("You toggle your meson vision [(user.sight & SEE_TURFS) ? "on" : "off"]."))
/mob/living/simple_animal/hostile/mining_drone/proc/toggle_mode()
@@ -239,7 +239,7 @@
/datum/action/innate/minedrone/toggle_light/Activate()
var/mob/living/simple_animal/hostile/mining_drone/user = owner
user.set_light_on(!user.light_on)
to_chat(user, "<span class='notice'>You toggle your light [user.light_on ? "on" : "off"].</span>")
to_chat(user, span_notice("You toggle your light [user.light_on ? "on" : "off"]."))
/datum/action/innate/minedrone/toggle_mode
@@ -277,7 +277,7 @@
/obj/item/mine_bot_upgrade/proc/upgrade_bot(mob/living/simple_animal/hostile/mining_drone/minebot, mob/user)
if(minebot.melee_damage_upper != initial(minebot.melee_damage_upper))
to_chat(user, "<span class='warning'>[minebot] already has a combat upgrade installed!</span>")
to_chat(user, span_warning("[minebot] already has a combat upgrade installed!"))
return
minebot.melee_damage_lower += 7
minebot.melee_damage_upper += 7
@@ -291,7 +291,7 @@
/obj/item/mine_bot_upgrade/health/upgrade_bot(mob/living/simple_animal/hostile/mining_drone/minebot, mob/user)
if(minebot.maxHealth != initial(minebot.maxHealth))
to_chat(user, "<span class='warning'>[minebot] already has reinforced armor!</span>")
to_chat(user, span_warning("[minebot] already has reinforced armor!"))
return
minebot.maxHealth += 45
minebot.updatehealth()
+23 -23
View File
@@ -122,12 +122,12 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
return
var/mob/living/carbon/human/C = hit_atom
if(C.is_eyes_covered())
C.visible_message("<span class='danger'>[C]'s eye protection blocks the sand!</span>", "<span class='warning'>Your eye protection blocks the sand!</span>")
C.visible_message(span_danger("[C]'s eye protection blocks the sand!"), span_warning("Your eye protection blocks the sand!"))
return
C.adjust_blurriness(6)
C.adjustStaminaLoss(15)//the pain from your eyes burning does stamina damage
C.add_confusion(5)
to_chat(C, "<span class='userdanger'>\The [src] gets into your eyes! The pain, it burns!</span>")
to_chat(C, span_userdanger("\The [src] gets into your eyes! The pain, it burns!"))
qdel(src)
/obj/item/stack/ore/glass/ex_act(severity, target)
@@ -156,7 +156,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
merge_type = /obj/item/stack/ore/plasma
/obj/item/stack/ore/plasma/welder_act(mob/living/user, obj/item/I)
to_chat(user, "<span class='warning'>You can't hit a high enough temperature to smelt [src] properly!</span>")
to_chat(user, span_warning("You can't hit a high enough temperature to smelt [src] properly!"))
return TRUE
/obj/item/stack/ore/silver
@@ -255,7 +255,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
/obj/item/gibtonite/attackby(obj/item/I, mob/user, params)
if(!wires && istype(I, /obj/item/assembly/igniter))
user.visible_message("<span class='notice'>[user] attaches [I] to [src].</span>", "<span class='notice'>You attach [I] to [src].</span>")
user.visible_message(span_notice("[user] attaches [I] to [src]."), span_notice("You attach [I] to [src]."))
wires = new /datum/wires/explosive/gibtonite(src)
attacher = key_name(user)
qdel(I)
@@ -275,7 +275,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
primed = FALSE
if(det_timer)
deltimer(det_timer)
user.visible_message("<span class='notice'>The chain reaction stopped! ...The ore's quality looks diminished.</span>", "<span class='notice'>You stopped the chain reaction. ...The ore's quality looks diminished.</span>")
user.visible_message(span_notice("The chain reaction stopped! ...The ore's quality looks diminished."), span_notice("You stopped the chain reaction. ...The ore's quality looks diminished."))
icon_state = "Gibtonite ore"
quality = GIBTONITE_QUALITY_LOW
return
@@ -313,7 +313,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
log_game(bomb_message)
GLOB.bombers += bomb_message
else
user.visible_message("<span class='warning'>[user] strikes \the [src], causing a chain reaction!</span>", "<span class='danger'>You strike \the [src], causing a chain reaction.</span>")
user.visible_message(span_warning("[user] strikes \the [src], causing a chain reaction!"), span_danger("You strike \the [src], causing a chain reaction."))
log_bomber(user, "has primed a", src, "for detonation", notify_admins)
det_timer = addtimer(CALLBACK(src, .proc/detonate, notify_admins), det_time, TIMER_STOPPABLE)
@@ -378,9 +378,9 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
return value
/obj/item/coin/suicide_act(mob/living/user)
user.visible_message("<span class='suicide'>[user] contemplates suicide with \the [src]!</span>")
user.visible_message(span_suicide("[user] contemplates suicide with \the [src]!"))
if (!attack_self(user))
user.visible_message("<span class='suicide'>[user] couldn't flip \the [src]!</span>")
user.visible_message(span_suicide("[user] couldn't flip \the [src]!"))
return SHAME
addtimer(CALLBACK(src, .proc/manual_suicide, user), 10)//10 = time takes for flip animation
return MANUAL_SUICIDE_NONLETHAL
@@ -388,31 +388,31 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
/obj/item/coin/proc/manual_suicide(mob/living/user)
var/index = sideslist.Find(coinflip)
if (index==2)//tails
user.visible_message("<span class='suicide'>\the [src] lands on [coinflip]! [user] promptly falls over, dead!</span>")
user.visible_message(span_suicide("\the [src] lands on [coinflip]! [user] promptly falls over, dead!"))
user.adjustOxyLoss(200)
user.death(0)
user.set_suicide(TRUE)
user.suicide_log()
else
user.visible_message("<span class='suicide'>\the [src] lands on [coinflip]! [user] keeps on living!</span>")
user.visible_message(span_suicide("\the [src] lands on [coinflip]! [user] keeps on living!"))
/obj/item/coin/examine(mob/user)
. = ..()
. += "<span class='info'>It's worth [value] credit\s.</span>"
. += span_info("It's worth [value] credit\s.")
/obj/item/coin/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/CC = W
if(string_attached)
to_chat(user, "<span class='warning'>There already is a string attached to this coin!</span>")
to_chat(user, span_warning("There already is a string attached to this coin!"))
return
if (CC.use(1))
add_overlay("coin_string_overlay")
string_attached = 1
to_chat(user, "<span class='notice'>You attach a string to the coin.</span>")
to_chat(user, span_notice("You attach a string to the coin."))
else
to_chat(user, "<span class='warning'>You need one length of cable to attach a string to the coin!</span>")
to_chat(user, span_warning("You need one length of cable to attach a string to the coin!"))
return
else
..()
@@ -425,13 +425,13 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
new /obj/item/stack/cable_coil(drop_location(), 1)
overlays = list()
string_attached = null
to_chat(user, "<span class='notice'>You detach the string from the coin.</span>")
to_chat(user, span_notice("You detach the string from the coin."))
return TRUE
/obj/item/coin/attack_self(mob/user)
if(cooldown < world.time)
if(string_attached) //does the coin have a wire attached
to_chat(user, "<span class='warning'>The coin won't flip very well with something attached!</span>" )
to_chat(user, span_warning("The coin won't flip very well with something attached!") )
return FALSE//do not flip the coin
cooldown = world.time + 15
flick("coin_[coinflip]_flip", src)
@@ -441,9 +441,9 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
var/oldloc = loc
sleep(15)
if(loc == oldloc && user && !user.incapacitated())
user.visible_message("<span class='notice'>[user] flips [src]. It lands on [coinflip].</span>", \
"<span class='notice'>You flip [src]. It lands on [coinflip].</span>", \
"<span class='hear'>You hear the clattering of loose change.</span>")
user.visible_message(span_notice("[user] flips [src]. It lands on [coinflip]."), \
span_notice("You flip [src]. It lands on [coinflip]."), \
span_hear("You hear the clattering of loose change."))
return TRUE//did the coin flip? useful for suicide_act
/obj/item/coin/gold
@@ -500,7 +500,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
/obj/item/coin/gold/debug/attack_self(mob/user)
if(cooldown < world.time)
if(string_attached) //does the coin have a wire attached
to_chat(user, "<span class='warning'>The coin won't flip very well with something attached!</span>" )
to_chat(user, span_warning("The coin won't flip very well with something attached!") )
return FALSE//do not flip the coin
cooldown = world.time + 15
flick("coin_[coinflip]_flip", src)
@@ -510,9 +510,9 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
var/oldloc = loc
sleep(15)
if(loc == oldloc && user && !user.incapacitated())
user.visible_message("<span class='notice'>[user] flips [src]. It lands on [coinflip].</span>", \
"<span class='notice'>You flip [src]. It lands on [coinflip].</span>", \
"<span class='hear'>You hear the clattering of loose change.</span>")
user.visible_message(span_notice("[user] flips [src]. It lands on [coinflip]."), \
span_notice("You flip [src]. It lands on [coinflip]."), \
span_hear("You hear the clattering of loose change."))
SSeconomy.fire()
to_chat(user,"<span class='bounty'>[SSeconomy.inflation_value()] is the inflation value.</span>")
return TRUE//did the coin flip? useful for suicide_act
+5 -5
View File
@@ -14,7 +14,7 @@
user.transferItemToLoc(W, src)
else if(SEND_SIGNAL(W, COMSIG_CONTAINS_STORAGE))
SEND_SIGNAL(W, COMSIG_TRY_STORAGE_TAKE_TYPE, /obj/item/stack/ore, src)
to_chat(user, "<span class='notice'>You empty the ore in [W] into \the [src].</span>")
to_chat(user, span_notice("You empty the ore in [W] into \the [src]."))
else
return ..()
@@ -24,9 +24,9 @@
/obj/structure/ore_box/crowbar_act(mob/living/user, obj/item/I)
if(I.use_tool(src, user, 50, volume=50))
user.visible_message("<span class='notice'>[user] pries \the [src] apart.</span>",
"<span class='notice'>You pry apart \the [src].</span>",
"<span class='hear'>You hear splitting wood.</span>")
user.visible_message(span_notice("[user] pries \the [src] apart."),
span_notice("You pry apart \the [src]."),
span_hear("You hear splitting wood."))
deconstruct(TRUE, user)
return TRUE
@@ -89,7 +89,7 @@
switch(action)
if("removeall")
dump_box_contents()
to_chat(usr, "<span class='notice'>You open the release hatch on the box..</span>")
to_chat(usr, span_notice("You open the release hatch on the box.."))
/obj/structure/ore_box/deconstruct(disassembled = TRUE, mob/user)
var/obj/item/stack/sheet/mineral/wood/WD = new (loc, 4)