mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-17 02:54:44 +01:00
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:
@@ -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 ..()
|
||||
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
@@ -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)]")
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
. = ..()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user