Convert most spans to defines (#31080)

* spanish?

* aaaagain

* keep maptext

* Update robot_items.dm

* Update span_defines.dm

* compiles

* Update silicon_mob.dm

* compile
This commit is contained in:
kyunkyunkyun
2025-12-13 23:55:48 +00:00
committed by GitHub
parent e5f0a6fffb
commit b0463d3c83
1624 changed files with 15737 additions and 15581 deletions
+1 -1
View File
@@ -115,7 +115,7 @@
if(!(antimagic_flags & knownspell.antimagic_flags))
continue
to_chat(equipper, "<span class='warning'>[parent] is interfering with your ability to cast magic!</span>")
to_chat(equipper, SPAN_WARNING("[parent] is interfering with your ability to cast magic!"))
alert_caster_on_equip = FALSE
break
+3 -3
View File
@@ -79,8 +79,8 @@
addtimer(CALLBACK(true_parent, TYPE_PROC_REF(/atom/movable, throw_at), thrown_by, boomerang_throw_range, throwing_datum.speed, null, TRUE), 0.1 SECONDS)
COOLDOWN_START(src, last_boomerang_throw, BOOMERANG_REBOUND_INTERVAL)
var/mob/thrower = throwing_datum?.get_thrower()
true_parent.visible_message("<span class='danger'>[true_parent] is flying back at [thrower]!</span>", \
"<span class='danger'>You see [true_parent] fly back at you!</span>", \
"<span class='hear'>You hear an aerodynamic woosh!</span>")
true_parent.visible_message(SPAN_DANGER("[true_parent] is flying back at [thrower]!"), \
SPAN_DANGER("You see [true_parent] fly back at you!"), \
SPAN_HEAR("You hear an aerodynamic woosh!"))
#undef BOOMERANG_REBOUND_INTERVAL
+2 -2
View File
@@ -83,9 +83,9 @@
if(cooldown < world.time - 10) //cooldown to avoid message spam.
if(!H.incapacitated(ignore_restraints = TRUE))
H.visible_message("<span class='danger'>[H] steps on [A].</span>", "<span class='userdanger'>You step on [A]!</span>")
H.visible_message(SPAN_DANGER("[H] steps on [A]."), SPAN_USERDANGER("You step on [A]!"))
else
H.visible_message("<span class='danger'>[H] slides on [A]!</span>", "<span class='userdanger'>You slide on [A]!</span>")
H.visible_message(SPAN_DANGER("[H] slides on [A]!"), SPAN_USERDANGER("You slide on [A]!"))
cooldown = world.time
H.Weaken(weaken_duration)
+2 -2
View File
@@ -27,6 +27,6 @@
if(corpse.stat != DEAD || !description_text)
return // Why the hell you put this on them then
if(naive_description && HAS_TRAIT(corpse_inspector, TRAIT_COMIC_SANS))
examine_list += "<span class='notice'>[naive_description]</span>"
examine_list += SPAN_NOTICE("[naive_description]")
return
examine_list += "<span class='notice'>[description_text]</span>"
examine_list += SPAN_NOTICE("[description_text]")
+11 -11
View File
@@ -79,17 +79,17 @@
return
var/cooldown = ckey_to_cooldown[source.ckey] - world.time
if(cooldown > 0)
to_chat(source, "<span class='warning'>Your deadchat control inputs are still on cooldown for another [CEILING(cooldown * 0.1, 1)] second\s.</span>")
to_chat(source, SPAN_WARNING("Your deadchat control inputs are still on cooldown for another [CEILING(cooldown * 0.1, 1)] second\s."))
return MOB_DEADSAY_SIGNAL_INTERCEPT
ckey_to_cooldown[source.ckey] = world.time + input_cooldown
addtimer(CALLBACK(src, PROC_REF(end_cooldown), source.ckey), input_cooldown)
inputs[message].Invoke()
to_chat(source, "<span class='notice'>\"[message]\" input accepted. You are now on cooldown for [input_cooldown * 0.1] second\s.</span>")
to_chat(source, SPAN_NOTICE("\"[message]\" input accepted. You are now on cooldown for [input_cooldown * 0.1] second\s."))
return MOB_DEADSAY_SIGNAL_INTERCEPT
if(deadchat_mode & DEADCHAT_DEMOCRACY_MODE)
ckey_to_cooldown[source.ckey] = message
to_chat(source, "<span class='notice'>You have voted for \"[message]\".</span>")
to_chat(source, SPAN_NOTICE("You have voted for \"[message]\"."))
return MOB_DEADSAY_SIGNAL_INTERCEPT
/datum/component/deadchat_control/proc/democracy_loop()
@@ -147,11 +147,11 @@
if(isobserver(orbiter))
var/mob/dead/observer/O = orbiter
if(O.client && !(O.client.prefs.toggles & PREFTOGGLE_CHAT_DEAD))
to_chat(O, "<span class='deadsay'>You have deadchat muted, and as such will not receive messages related to, nor be able to participate in, controlling this object.</span>")
to_chat(O, "<span class='notice'>If you would like to participate, unmute deadchat and follow this object again.</span>")
to_chat(O, SPAN_DEADSAY("You have deadchat muted, and as such will not receive messages related to, nor be able to participate in, controlling this object."))
to_chat(O, SPAN_NOTICE("If you would like to participate, unmute deadchat and follow this object again."))
return
else
to_chat(O, "<span class='deadsay'>[parent] is deadchat-controllable! Examine [parent] to see possible commands you can use while orbiting [parent.p_them()] to control [parent.p_their()] behavior!</span>")
to_chat(O, SPAN_DEADSAY("[parent] is deadchat-controllable! Examine [parent] to see possible commands you can use while orbiting [parent.p_them()] to control [parent.p_their()] behavior!"))
RegisterSignal(orbiter, COMSIG_MOB_DEADSAY, PROC_REF(deadchat_react))
RegisterSignal(orbiter, COMSIG_MOB_AUTOMUTE_CHECK, PROC_REF(waive_automute))
@@ -191,10 +191,10 @@
if(!isobserver(user))
return
examine_list += "<span class='notice'>[A.p_theyre(TRUE)] currently under deadchat control using the [(deadchat_mode & DEADCHAT_DEMOCRACY_MODE) ? "democracy" : "anarchy"] ruleset!</span>"
examine_list += SPAN_NOTICE("[A.p_theyre(TRUE)] currently under deadchat control using the [(deadchat_mode & DEADCHAT_DEMOCRACY_MODE) ? "democracy" : "anarchy"] ruleset!")
if(user.client && !(user.client.prefs.toggles & PREFTOGGLE_CHAT_DEAD))
examine_list += "<span class='deadsay'>As you have deadchat disabled, you will not see vote messages, nor be able to participate in voting.</span>"
examine_list += SPAN_DEADSAY("As you have deadchat disabled, you will not see vote messages, nor be able to participate in voting.")
return
if(!(user in orbiters))
@@ -203,9 +203,9 @@
if(deadchat_mode & DEADCHAT_DEMOCRACY_MODE)
examine_list += "<span class='notice'>Type a command into chat to vote on an action. This happens once every [input_cooldown * 0.1] second\s.</span>"
examine_list += SPAN_NOTICE("Type a command into chat to vote on an action. This happens once every [input_cooldown * 0.1] second\s.")
else if(deadchat_mode & DEADCHAT_ANARCHY_MODE)
examine_list += "<span class='notice'>Type a command into chat to perform. You may do this once every [input_cooldown * 0.1] second\s.</span>"
examine_list += SPAN_NOTICE("Type a command into chat to perform. You may do this once every [input_cooldown * 0.1] second\s.")
var/extended_examine = "<span class='notice'>Command list:"
@@ -221,7 +221,7 @@
var/mob/ghost = get_mob_by_ckey(ghost_ckey)
if(!ghost || isliving(ghost))
return
to_chat(ghost, "<span class='green'>Your deadchat control inputs for [parent] ([ghost_follow_link(parent, ghost)]) are no longer on cooldown.</span>")
to_chat(ghost, SPAN_GREEN("Your deadchat control inputs for [parent] ([ghost_follow_link(parent, ghost)]) are no longer on cooldown."))
/// Dummy to call since we can't proc reference builtins
/datum/component/deadchat_control/proc/_step(ref, dir)
+37 -37
View File
@@ -92,11 +92,11 @@
if(safety)
safety = FALSE
unit.visible_message("<span class='notice'>[unit] beeps: Safety protocols disabled!</span>")
unit.visible_message(SPAN_NOTICE("[unit] beeps: Safety protocols disabled!"))
playsound(get_turf(unit), safety_off_sound, 50, FALSE)
else
safety = TRUE
unit.visible_message("<span class='notice'>[unit] beeps: Safety protocols enabled!</span>")
unit.visible_message(SPAN_NOTICE("[unit] beeps: Safety protocols enabled!"))
playsound(get_turf(unit), safety_on_sound, 50, FALSE)
/datum/component/defib/proc/on_emag(obj/item/unit, mob/user)
@@ -148,12 +148,12 @@
var/application_result = SEND_SIGNAL(parent, COMSIG_DEFIB_PADDLES_APPLIED, user, target, should_cause_harm)
if(application_result & COMPONENT_BLOCK_DEFIB_DEAD)
user.visible_message("<span class='notice'>[defib_ref] beeps: Unit is unpowered.</span>")
user.visible_message(SPAN_NOTICE("[defib_ref] beeps: Unit is unpowered."))
playsound(get_turf(defib_ref), fail_sound, 50, FALSE)
return
if(on_cooldown)
to_chat(user, "<span class='notice'>[defib_ref] is recharging.</span>")
to_chat(user, SPAN_NOTICE("[defib_ref] is recharging."))
return
if(application_result & COMPONENT_BLOCK_DEFIB_MISC)
@@ -161,9 +161,9 @@
if(!istype(target))
if(robotic)
to_chat(user, "<span class='notice'>This unit is only designed to work on humanoid lifeforms.</span>")
to_chat(user, SPAN_NOTICE("This unit is only designed to work on humanoid lifeforms."))
else
to_chat(user, "<span class='notice'>The instructions on [defib_ref] don't mention how to defibrillate that...</span>")
to_chat(user, SPAN_NOTICE("The instructions on [defib_ref] don't mention how to defibrillate that..."))
return
if(should_cause_harm && combat && heart_attack_chance == 100)
@@ -178,23 +178,23 @@
return
user.visible_message(
"<span class='warning'>[user] begins to place [parent] on [target]'s chest.</span>",
"<span class='warning'>You begin to place [parent] on [target.name]'s chest.</span>"
SPAN_WARNING("[user] begins to place [parent] on [target]'s chest."),
SPAN_WARNING("You begin to place [parent] on [target.name]'s chest.")
)
busy = TRUE
var/mob/dead/observer/ghost = target.get_ghost()
if(ghost)
to_chat(ghost, "<span class='ghostalert'>Your heart is being defibrillated. Return to your body if you want to be revived!</span> (Verbs -> Ghost -> Re-enter corpse)")
to_chat(ghost, "[SPAN_GHOSTALERT("Your heart is being defibrillated. Return to your body if you want to be revived!")] (Verbs -> Ghost -> Re-enter corpse)")
window_flash(ghost.client)
SEND_SOUND(ghost, sound('sound/effects/genetics.ogg'))
else if(HAS_TRAIT_FROM(target, TRAIT_FAKEDEATH, CHANGELING_TRAIT))
to_chat(target, "<span class='ghostalert'>Your heart is being defibrillated. Click the defibrillator status to be revived!</span>")
to_chat(target, SPAN_GHOSTALERT("Your heart is being defibrillated. Click the defibrillator status to be revived!"))
window_flash(target.client)
SEND_SOUND(target, sound('sound/effects/genetics.ogg'))
target.throw_alert("cling_defib", /atom/movable/screen/alert/changeling_defib_revive, alert_args = list(parent, target))
user.visible_message("<span class='notice'>[user] places [parent] on [target]'s chest.</span>", "<span class='warning'>You place [parent] on [target]'s chest.</span>")
user.visible_message(SPAN_NOTICE("[user] places [parent] on [target]'s chest."), SPAN_WARNING("You place [parent] on [target]'s chest."))
playsound(get_turf(defib_ref), charge_sound, 50, FALSE)
if(ghost && !ghost.client && !QDELETED(ghost))
@@ -208,7 +208,7 @@
return
if(istype(target.wear_suit, /obj/item/clothing/suit/space) && !combat)
user.visible_message("<span class='notice'>[defib_ref] buzzes: Patient's chest is obscured. Operation aborted.</span>")
user.visible_message(SPAN_NOTICE("[defib_ref] buzzes: Patient's chest is obscured. Operation aborted."))
playsound(get_turf(defib_ref), fail_sound, 50, FALSE)
busy = FALSE
return
@@ -223,9 +223,9 @@
if(target.undergoing_cardiac_arrest() && target.stat != DEAD) // Can have a heart attack and heart is either missing, necrotic, or not beating
var/datum/organ/heart/heart = target.get_int_organ_datum(ORGAN_DATUM_HEART)
if(!heart)
user.visible_message("<span class='boldnotice'>[defib_ref] buzzes: Resuscitation failed - Failed to pick up any heart electrical activity.</span>")
user.visible_message(SPAN_BOLDNOTICE("[defib_ref] buzzes: Resuscitation failed - Failed to pick up any heart electrical activity."))
else if(heart.linked_organ.status & ORGAN_DEAD)
user.visible_message("<span class='boldnotice'>[defib_ref] buzzes: Resuscitation failed - Heart necrosis detected.</span>")
user.visible_message(SPAN_BOLDNOTICE("[defib_ref] buzzes: Resuscitation failed - Heart necrosis detected."))
if(!heart || (heart.linked_organ.status & ORGAN_DEAD))
playsound(get_turf(defib_ref), fail_sound, 50, FALSE)
busy = FALSE
@@ -235,8 +235,8 @@
SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK, 100)
SEND_SIGNAL(parent, COMSIG_DEFIB_SHOCK_APPLIED, user, target, should_cause_harm, TRUE)
set_cooldown(cooldown)
user.visible_message("<span class='boldnotice'>[defib_ref] pings: Cardiac arrhythmia corrected.</span>")
target.visible_message("<span class='warning'>[target]'s body convulses a bit.</span>", "<span class='userdanger'>You feel a jolt, and your heartbeat seems to steady.</span>")
user.visible_message(SPAN_BOLDNOTICE("[defib_ref] pings: Cardiac arrhythmia corrected."))
target.visible_message(SPAN_WARNING("[target]'s body convulses a bit."), SPAN_USERDANGER("You feel a jolt, and your heartbeat seems to steady."))
playsound(get_turf(defib_ref), zap_sound, 50, TRUE, -1)
playsound(get_turf(defib_ref), "bodyfall", 50, TRUE)
playsound(get_turf(defib_ref), success_sound, 50, FALSE)
@@ -244,12 +244,12 @@
return
if(target.stat != DEAD && !HAS_TRAIT(target, TRAIT_FAKEDEATH))
user.visible_message("<span class='notice'>[defib_ref] buzzes: Patient is not in a valid state. Operation aborted.</span>")
user.visible_message(SPAN_NOTICE("[defib_ref] buzzes: Patient is not in a valid state. Operation aborted."))
playsound(get_turf(defib_ref), fail_sound, 50, FALSE)
busy = FALSE
return
target.visible_message("<span class='warning'>[target]'s body convulses a bit.</span>")
target.visible_message(SPAN_WARNING("[target]'s body convulses a bit."))
playsound(get_turf(defib_ref), "bodyfall", 50, TRUE)
playsound(get_turf(defib_ref), zap_sound, 50, TRUE, -1)
ghost = target.get_ghost(TRUE) // We have to double check whether the dead guy has entered their body during the above
@@ -259,31 +259,31 @@
var/failure_message
if(!target.is_revivable())
failure_message = "<span class='boldnotice'>[defib_ref] buzzes: Resuscitation failed - Heart tissue damage beyond point of no return for defibrillation.</span>"
failure_message = SPAN_BOLDNOTICE("[defib_ref] buzzes: Resuscitation failed - Heart tissue damage beyond point of no return for defibrillation.")
else if(target.getBruteLoss() >= 180 || target.getFireLoss() >= 180)
failure_message = "<span class='boldnotice'>[defib_ref] buzzes: Resuscitation failed - Severe tissue damage detected.</span>"
failure_message = SPAN_BOLDNOTICE("[defib_ref] buzzes: Resuscitation failed - Severe tissue damage detected.")
else if(HAS_TRAIT(target, TRAIT_HUSK))
failure_message = "<span class='boldnotice'>[defib_ref] buzzes: Resuscitation failed - Subject is husked.</span>"
failure_message = SPAN_BOLDNOTICE("[defib_ref] buzzes: Resuscitation failed - Subject is husked.")
else if(target.blood_volume < BLOOD_VOLUME_SURVIVE)
failure_message = "<span class='boldnotice'>[defib_ref] buzzes: Resuscitation failed - Patient blood volume critically low.</span>"
failure_message = SPAN_BOLDNOTICE("[defib_ref] buzzes: Resuscitation failed - Patient blood volume critically low.")
else if(!target.get_organ_slot("brain")) // So things like headless clings don't get outed
failure_message = "<span class='boldnotice'>[defib_ref] buzzes: Resuscitation failed - No brain detected within patient.</span>"
failure_message = SPAN_BOLDNOTICE("[defib_ref] buzzes: Resuscitation failed - No brain detected within patient.")
else if(ghost)
if(!(ghost.ghost_flags & GHOST_CAN_REENTER) || target.suiciding) // DNR or AntagHUD
failure_message = "<span class='boldnotice'>[defib_ref] buzzes: Resuscitation failed - No electrical brain activity detected.</span>"
failure_message = SPAN_BOLDNOTICE("[defib_ref] buzzes: Resuscitation failed - No electrical brain activity detected.")
else
failure_message = "<span class='boldnotice'>[defib_ref] buzzes: Resuscitation failed - Patient's brain is unresponsive. Further attempts may succeed.</span>"
failure_message = SPAN_BOLDNOTICE("[defib_ref] buzzes: Resuscitation failed - Patient's brain is unresponsive. Further attempts may succeed.")
else if(HAS_TRAIT(target, TRAIT_FAKEDEATH))
if(signal_result & COMPONENT_DEFIB_FAKEDEATH_DENIED)
failure_message = "<span class='boldnotice'>[defib_ref] buzzes: Resuscitation failed - Patient's brain is unresponsive. Further attempts may succeed.</span>"
failure_message = SPAN_BOLDNOTICE("[defib_ref] buzzes: Resuscitation failed - Patient's brain is unresponsive. Further attempts may succeed.")
else if(signal_result & COMPONENT_DEFIB_FAKEDEATH_ACCEPTED)
// as much as I hate that this is here, it has to come after the `Patient is not in a valid state. Operation aborted.` check.
REMOVE_TRAIT(target, TRAIT_FAKEDEATH, CHANGELING_TRAIT)
else
failure_message = "<span class='boldnotice'>[defib_ref] buzzes: Resuscitation failed.</span>" // has a fakedeath like capulettium
failure_message = SPAN_BOLDNOTICE("[defib_ref] buzzes: Resuscitation failed.") // has a fakedeath like capulettium
else if((signal_result & COMPONENT_BLOCK_DEFIB) || HAS_TRAIT(target, TRAIT_BADDNA) || target.suiciding) // these are a bit more arbitrary
failure_message = "<span class='boldnotice'>[defib_ref] buzzes: Resuscitation failed.</span>"
failure_message = SPAN_BOLDNOTICE("[defib_ref] buzzes: Resuscitation failed.")
if(failure_message)
user.visible_message(failure_message)
@@ -313,11 +313,11 @@
if(target.check_brain_threshold(BRAIN_DAMAGE_RATIO_CRITICAL))
// If you want to treat this with mannitol, it'll have to metabolize while the patient is alive, so it's alright to bring them back up for a minute
playsound(get_turf(defib_ref), safety_off_sound, 50, FALSE)
user.visible_message("<span class='boldnotice'>[defib_ref] chimes: Minimal brain activity detected, brain treatment recommended for full resuscitation.</span>")
user.visible_message(SPAN_BOLDNOTICE("[defib_ref] chimes: Minimal brain activity detected, brain treatment recommended for full resuscitation."))
else
playsound(get_turf(defib_ref), success_sound, 50, FALSE)
user.visible_message("<span class='boldnotice'>[defib_ref] pings: Resuscitation successful.</span>")
user.visible_message(SPAN_BOLDNOTICE("[defib_ref] pings: Resuscitation successful."))
SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK, 100)
if(ishuman(target.pulledby)) // For some reason, pulledby isnt a list despite it being possible to be pulled by multiple people
@@ -349,8 +349,8 @@
if(!istype(target))
return
busy = TRUE
target.visible_message("<span class='danger'>[user] has touched [target] with [parent]!</span>", \
"<span class='userdanger'>[user] touches you with [parent], and you feel a strong jolt!</span>")
target.visible_message(SPAN_DANGER("[user] has touched [target] with [parent]!"), \
SPAN_USERDANGER("[user] touches you with [parent], and you feel a strong jolt!"))
target.apply_damage(60, STAMINA)
target.KnockDown(10 SECONDS)
playsound(get_turf(parent), zap_sound, 50, TRUE, -1)
@@ -373,13 +373,13 @@
if(IS_HORIZONTAL(target) && HAS_TRAIT(target, TRAIT_HANDS_BLOCKED)) // Weakening exists which doesn't floor you while stunned
add_attack_logs(user, target, "Gave a heart attack with [parent]")
target.set_heartattack(TRUE)
target.visible_message("<span class='danger'>[user] has touched [target] with [parent]!</span>", \
"<span class='userdanger'>[user] touches you with [parent], and you feel a strong jolt!</span>")
target.visible_message(SPAN_DANGER("[user] has touched [target] with [parent]!"), \
SPAN_USERDANGER("[user] touches you with [parent], and you feel a strong jolt!"))
playsound(get_turf(parent), zap_sound, 50, TRUE, -1)
SEND_SIGNAL(target, COMSIG_LIVING_MINOR_SHOCK, 100)
set_cooldown(cooldown)
return
target.visible_message("<span class='danger'>[user] touches [target] lightly with [parent]!</span>")
target.visible_message(SPAN_DANGER("[user] touches [target] lightly with [parent]!"))
set_cooldown(2.5 SECONDS)
/*
@@ -407,8 +407,8 @@
if(electrocute_mob(affecting, power_source, origin)) // shock anyone touching them >:)
var/datum/organ/heart/heart = affecting.get_int_organ_datum(ORGAN_DATUM_HEART)
if(heart.linked_organ.parent_organ == "chest" && affecting.has_both_hands()) // making sure the shock will go through their heart (drask hearts are in their head), and that they have both arms so the shock can cross their heart inside their chest
affecting.visible_message("<span class='danger'>[affecting]'s entire body shakes as a shock travels up [affecting.p_their()] arm!</span>", \
"<span class='userdanger'>You feel a powerful shock travel up your [affecting.hand ? affecting.get_organ("l_arm") : affecting.get_organ("r_arm")] and back down your [affecting.hand ? affecting.get_organ("r_arm") : affecting.get_organ("l_arm")]!</span>")
affecting.visible_message(SPAN_DANGER("[affecting]'s entire body shakes as a shock travels up [affecting.p_their()] arm!"), \
SPAN_USERDANGER("You feel a powerful shock travel up your [affecting.hand ? affecting.get_organ("l_arm") : affecting.get_organ("r_arm")] and back down your [affecting.hand ? affecting.get_organ("r_arm") : affecting.get_organ("l_arm")]!"))
affecting.set_heartattack(TRUE)
#undef DEFIB_TIME
@@ -63,7 +63,7 @@
/datum/component/direct_explosive_trap/proc/on_examined(datum/source, mob/user, list/examine_text)
SIGNAL_HANDLER // COMSIG_PARENT_EXAMINE
if(get_dist(source, user) <= 2)
examine_text += "<span class='notice'>Looks odd!</span>"
examine_text += SPAN_NOTICE("Looks odd!")
/// Blow up
/datum/component/direct_explosive_trap/proc/explode(atom/source, mob/living/victim)
@@ -77,9 +77,9 @@
return
else if(result == DIRECT_EXPLOSIVE_TRAP_IGNORE)
return
to_chat(victim, "<span class='danger'>[source] was boobytrapped!</span>")
to_chat(victim, SPAN_DANGER("[source] was boobytrapped!"))
if(!isnull(saboteur))
to_chat(saboteur, "<span class='danger'>Success! Your trap on [source] caught [victim.name]!</span>")
to_chat(saboteur, SPAN_DANGER("Success! Your trap on [source] caught [victim.name]!"))
playsound(source, 'sound/effects/explosion2.ogg', 200, TRUE)
victim.ex_act(explosive_force)
// A bomb went off in your hands. Actually lets people follow up with it if
@@ -90,7 +90,7 @@
/// Called if we sit too long without going off
/datum/component/direct_explosive_trap/proc/bomb_expired()
if(!isnull(saboteur))
to_chat(saboteur, "<span class='danger'>Failure! Your trap on [parent] didn't catch anyone this time.</span>")
to_chat(saboteur, SPAN_DANGER("Failure! Your trap on [parent] didn't catch anyone this time."))
qdel(src)
/// Don't hang a reference to the person who placed the bomb
+4 -4
View File
@@ -22,7 +22,7 @@
I.add_tape()
/datum/component/proc/add_tape_text(datum/source, mob/user, list/examine_list)
examine_list += "<span class='notice'>There's some sticky tape attached to [source].</span>"
examine_list += SPAN_NOTICE("There's some sticky tape attached to [source].")
/datum/component/ducttape/proc/add_tape_overlay(obj/item/O, list/overlays)
SIGNAL_HANDLER // COMSIG_ATOM_UPDATE_OVERLAYS
@@ -32,7 +32,7 @@
overlays += tape_overlay
/datum/component/ducttape/proc/remove_tape(obj/item/I, mob/user)
to_chat(user, "<span class='notice'>You tear the tape off [I]!</span>")
to_chat(user, SPAN_NOTICE("You tear the tape off [I]!"))
playsound(I, 'sound/items/poster_ripped.ogg', 50, 1)
new /obj/item/trash/tapetrash(user.loc)
I.update_icon()
@@ -58,7 +58,7 @@
var/target_direction = get_dir(source_turf, target_turf)//The direction we clicked
// Snowflake diagonal handling
if(target_direction in GLOB.diagonals)
to_chat(user, "<span class='warning'>You can't reach [target_turf].</span>")
to_chat(user, SPAN_WARNING("You can't reach [target_turf]."))
return
if(target_direction & EAST)
x_offset = 16
@@ -74,7 +74,7 @@
y_offset = -16
if(!user.drop_item_to_ground(I))
return
to_chat(user, "<span class='notice'>You stick [I] to [target_turf].</span>")
to_chat(user, SPAN_NOTICE("You stick [I] to [target_turf]."))
I.pixel_x = x_offset
I.pixel_y = y_offset
+3 -3
View File
@@ -67,7 +67,7 @@
return
if(SEND_SIGNAL(parent, COMSIG_TWOHANDED_WIELDED_TRY_WIELD_INTERACT) && airlock.arePowerSystemsOn())
to_chat(user, "<span class='warning'>You need to be wielding [parent] to do that!</span>")
to_chat(user, SPAN_WARNING("You need to be wielding [parent] to do that!"))
return TRUE
if(!airlock.density)
@@ -94,7 +94,7 @@
// opening failed
if(airlock.density)
to_chat(user, "<span class='warning'>Despite your attempts, [airlock] refuses to open.</span>")
to_chat(user, SPAN_WARNING("Despite your attempts, [airlock] refuses to open."))
/// open door without checks
/datum/component/forces_doors_open/proc/open_unpowered_door(obj/machinery/door/door)
@@ -110,7 +110,7 @@
var/obj/item/melee/mantis_blade/secondblade = user.get_inactive_hand()
if(!istype(secondblade, /obj/item/melee/mantis_blade))
to_chat(user, "<span class='warning'>You need a second [parent] to pry open doors!</span>")
to_chat(user, SPAN_WARNING("You need a second [parent] to pry open doors!"))
return ITEM_INTERACT_COMPLETE
if(try_to_force_open_airlock(user, target))
+1 -1
View File
@@ -290,7 +290,7 @@
var/other_hand = shooter.get_organ(shooter.hand ? BODY_ZONE_PRECISE_R_HAND : BODY_ZONE_PRECISE_L_HAND)
if(weapon_weight == WEAPON_HEAVY && (shooter.get_inactive_hand() || !other_hand))
to_chat(shooter, "<span class='warning'>You need to use both hands!</span>")
to_chat(shooter, SPAN_WARNING("You need to use both hands!"))
return FALSE
return TRUE
@@ -63,7 +63,7 @@
var/mob/living/our_mob = parent
if(our_mob.stat == DEAD || our_mob.key || awaiting_ghosts)
return
examine_text += "<span class='boldnotice'>You could take control of this mob by clicking on it.</span>"
examine_text += SPAN_BOLDNOTICE("You could take control of this mob by clicking on it.")
/// Send out a request for a brain
/datum/component/ghost_direct_control/proc/request_ghost_control(poll_question, role_name, poll_length)
@@ -95,10 +95,10 @@
if(!hopeful_ghost.client)
return COMPONENT_CANCEL_ATTACK_CHAIN
if(awaiting_ghosts)
to_chat(hopeful_ghost, "<span class='warning'>Ghost candidate selection currently in progress!</span>")
to_chat(hopeful_ghost, SPAN_WARNING("Ghost candidate selection currently in progress!"))
return COMPONENT_CANCEL_ATTACK_CHAIN
if(!SSticker.HasRoundStarted())
to_chat(hopeful_ghost, "<span class='warning'>You cannot assume control of this until after the round has started!</span>")
to_chat(hopeful_ghost, SPAN_WARNING("You cannot assume control of this until after the round has started!"))
return COMPONENT_CANCEL_ATTACK_CHAIN
INVOKE_ASYNC(src, PROC_REF(attempt_possession), our_mob, hopeful_ghost)
return COMPONENT_CANCEL_ATTACK_CHAIN
@@ -113,17 +113,17 @@
/// Grant possession of our mob, component is now no longer required
/datum/component/ghost_direct_control/proc/assume_direct_control(mob/harbinger)
if(QDELETED(src))
to_chat(harbinger, "<span class='warning'>Offer to possess creature has expired!</span>")
to_chat(harbinger, SPAN_WARNING("Offer to possess creature has expired!"))
return
if(jobban_isbanned(harbinger, ban_type) || jobban_isbanned(harbinger, ROLE_SENTIENT) || (is_antag_spawner && jobban_isbanned(harbinger, ROLE_SYNDICATE)))
to_chat(harbinger, "<span class='warning'>You are banned from playing as this role!</span>")
to_chat(harbinger, SPAN_WARNING("You are banned from playing as this role!"))
return
var/mob/living/new_body = parent
if(new_body.stat == DEAD)
to_chat(harbinger, "<span class='warning'>This body has passed away, it is of no use!</span>")
to_chat(harbinger, SPAN_WARNING("This body has passed away, it is of no use!"))
return
if(new_body.key)
to_chat(harbinger, "<span class='warning'>[parent] has already become sapient!</span>")
to_chat(harbinger, SPAN_WARNING("[parent] has already become sapient!"))
qdel(src)
return
if(extra_control_checks && !extra_control_checks.Invoke(harbinger))
@@ -142,6 +142,6 @@
// This proc is called the very moment .key is set, so we need to force mind to initialize here if we want the invoke to affect the mind of the mob
if(isnull(harbinger.mind))
harbinger.mind_initialize()
to_chat(harbinger, "<span class='boldnotice'>[assumed_control_message]</span>")
to_chat(harbinger, SPAN_BOLDNOTICE("[assumed_control_message]"))
after_assumed_control?.Invoke(harbinger)
qdel(src)
+3 -3
View File
@@ -63,7 +63,7 @@
apply_label()
/datum/component/label/proc/on_examine(datum/source, mob/user, list/examine_list)
examine_list += "<span class='notice'>It has a label with some words written on it. Use a hand labeler to remove it.</span>"
examine_list += SPAN_NOTICE("It has a label with some words written on it. Use a hand labeler to remove it.")
/// Applies a label to the name of the parent in the format of: "parent_name (label)"
/datum/component/label/proc/apply_label()
@@ -94,7 +94,7 @@
owner = person
if(department)
owner += " in [department]"
if(from_cc)
label_name = owner
else
@@ -113,4 +113,4 @@
/// Adds detailed information to the examine text.
/datum/component/label/goal/on_examine(datum/source, mob/user, list/examine_list)
examine_list += "<span class='notice'>It has a label on it, marking it as part of a secondary goal for [owner]. Use a hand labeler to remove it.</span>"
examine_list += SPAN_NOTICE("It has a label on it, marking it as part of a secondary goal for [owner]. Use a hand labeler to remove it.")
+7 -7
View File
@@ -59,7 +59,7 @@
var/datum/material/M = materials[I]
var/amt = amount(M.id)
if(amt)
examine_list += "<span class='notice'>It has [amt] units of [lowertext(M.name)] stored.</span>"
examine_list += SPAN_NOTICE("It has [amt] units of [lowertext(M.name)] stored.")
/datum/component/material_container/proc/OnAttackBy(datum/source, obj/item/I, mob/living/user)
var/list/tc = allowed_typecache
@@ -72,7 +72,7 @@
if(I.flags & ABSTRACT)
return
if((I.flags_2 & (HOLOGRAM_2 | NO_MAT_REDEMPTION_2)) || (tc && !is_type_in_typecache(I, tc)))
to_chat(user, "<span class='warning'>[parent] won't accept [I]!</span>")
to_chat(user, SPAN_WARNING("[parent] won't accept [I]!"))
return
. = COMPONENT_SKIP_AFTERATTACK
var/datum/callback/pc = precondition
@@ -80,10 +80,10 @@
return
var/material_amount = get_item_material_amount(I)
if(!material_amount)
to_chat(user, "<span class='warning'>[I] does not contain sufficient amounts of metal or glass to be accepted by [parent].</span>")
to_chat(user, SPAN_WARNING("[I] does not contain sufficient amounts of metal or glass to be accepted by [parent]."))
return
if(!has_space(material_amount))
to_chat(user, "<span class='warning'>[parent] is full. Please remove metal or glass from [parent] in order to insert more.</span>")
to_chat(user, SPAN_WARNING("[parent] is full. Please remove metal or glass from [parent] in order to insert more."))
return
user_insert(I, user)
@@ -99,18 +99,18 @@
if(QDELETED(I) || QDELETED(user) || QDELETED(src) || parent != current_parent || user.incapacitated() || !in_range(current_parent, user) || user.l_hand != I && user.r_hand != I)
return
if(!user.drop_item())
to_chat(user, "<span class='warning'>[I] is stuck to you and cannot be placed into [parent].</span>")
to_chat(user, SPAN_WARNING("[I] is stuck to you and cannot be placed into [parent]."))
return
var/inserted = insert_item(I, stack_amt = requested_amount)
if(inserted)
if(istype(I, /obj/item/stack))
var/obj/item/stack/S = I
to_chat(user, "<span class='notice'>You insert [inserted] [S.singular_name][inserted>1 ? "s" : ""] into [parent].</span>")
to_chat(user, SPAN_NOTICE("You insert [inserted] [S.singular_name][inserted>1 ? "s" : ""] into [parent]."))
if(!QDELETED(I) && !user.put_in_hands(I))
stack_trace("Warning: User could not put object back in hand during material container insertion, line [__LINE__]! This can lead to issues.")
I.forceMove(user.drop_location())
else
to_chat(user, "<span class='notice'>You insert a material total of [inserted] into [parent].</span>")
to_chat(user, SPAN_NOTICE("You insert a material total of [inserted] into [parent]."))
qdel(I)
if(after_insert)
after_insert.Invoke(I.type, last_inserted_id, inserted)
+2 -2
View File
@@ -17,7 +17,7 @@
return
. = COMPONENT_SKIP_AFTERATTACK
if(spraycan.capped)
to_chat(user, "<span class='warning'>Take the cap off first!</span>")
to_chat(user, SPAN_WARNING("Take the cap off first!"))
return
if(spraycan.uses < 2)
to_chat(user, "<span class ='warning'>There is not enough paint in the can!")
@@ -28,4 +28,4 @@
var/atom/A = parent
A.add_atom_colour(colour, FIXED_COLOUR_PRIORITY)
playsound(spraycan, 'sound/effects/spray.ogg', 5, TRUE, 5)
to_chat(user, "<span class='notice'>You spray [spraycan] on [A], painting it.</span>")
to_chat(user, SPAN_NOTICE("You spray [spraycan] on [A], painting it."))
+1 -1
View File
@@ -63,7 +63,7 @@
for(var/attack_type in parryable_attack_types)
attack_list += attack_types_english[attack_type]
examine_text = "<span class='notice'>It's able to <b>parry</b> [english_list(attack_list)].</span>"
examine_text = SPAN_NOTICE("It's able to <b>parry</b> [english_list(attack_list)].")
/datum/component/parry/proc/equipped(datum/source, mob/user, slot)
SIGNAL_HANDLER
@@ -57,4 +57,4 @@
return
if(!(user in source.ai_controller?.blackboard[BB_FRIENDS_LIST]))
return
examine_list += "<span class='notice'>[source.p_they(TRUE)] seem[source.p_s()] happy to see you!</span>"
examine_list += SPAN_NOTICE("[source.p_they(TRUE)] seem[source.p_s()] happy to see you!")
@@ -175,5 +175,5 @@
if(!look_for_target(friend, potential_target) || !set_command_target(parent, potential_target))
return FALSE
var/suffix = pointed_reaction ? " [pointed_reaction]" : ""
parent.visible_message("<span class='warning'>[parent] follows [friend]'s gesture towards [potential_target][suffix]!</span>")
parent.visible_message(SPAN_WARNING("[parent] follows [friend]'s gesture towards [potential_target][suffix]!"))
return TRUE
@@ -125,7 +125,7 @@
/datum/pet_command/attack/proc/refuse_target(mob/living/parent, atom/target)
var/mob/living/living_parent = parent
living_parent.custom_emote(EMOTE_VISIBLE, refuse_reaction)
living_parent.visible_message("<span class='notice'>[living_parent] refuses to attack [target].</span>")
living_parent.visible_message(SPAN_NOTICE("[living_parent] refuses to attack [target]."))
/datum/pet_command/attack/execute_action(datum/ai_controller/controller)
controller.queue_behavior(attack_behaviour, BB_CURRENT_PET_TARGET, targeting_strategy_key)
+1 -1
View File
@@ -136,7 +136,7 @@
fragments += "[length(fragments) ? " and [master.p_they()] " : "[master] "]hurt[master.p_s()] to look at."
if(length(fragments))
out += "<span class='warning'>[fragments.Join()]</span>"
out += SPAN_WARNING("[fragments.Join()]")
/datum/component/radioactive/proc/rad_attack(datum/source, atom/movable/target, mob/living/user)
SIGNAL_HANDLER
+1 -1
View File
@@ -103,7 +103,7 @@
/// This proc is called when the rider attempts to grab something, preventing them from doing so.
/datum/component/riding/proc/on_rider_try_pull(mob/living/rider_pulling, atom/movable/target, force)
SIGNAL_HANDLER // COMSIG_LIVING_TRY_PULL
to_chat(rider_pulling, "<span class='warning'>You can't pull [target]!</span>")
to_chat(rider_pulling, SPAN_WARNING("You can't pull [target]!"))
return COMSIG_LIVING_CANCEL_PULL
/// Some ridable atoms may want to only show on top of the rider in certain directions, like wheelchairs
+14 -14
View File
@@ -19,43 +19,43 @@
if(!keycheck(user))
if(COOLDOWN_FINISHED(src, message_cooldown))
to_chat(user, "<span class='warning'>[vehicle_parent] has no key inserted!</span>")
to_chat(user, SPAN_WARNING("[vehicle_parent] has no key inserted!"))
COOLDOWN_START(src, message_cooldown, 5 SECONDS)
return COMPONENT_DRIVER_BLOCK_MOVE
if(user.incapacitated())
if(ride_check_flags & UNBUCKLE_DISABLED_RIDER)
INVOKE_ASYNC(vehicle_parent, TYPE_PROC_REF(/atom/movable, unbuckle_mob), user, TRUE)
user.visible_message("<span class='danger'>[user] falls off [vehicle_parent].</span>",\
"<span class='danger'>You slip off [vehicle_parent] as your body slumps!</span>")
user.visible_message(SPAN_DANGER("[user] falls off [vehicle_parent]."),\
SPAN_DANGER("You slip off [vehicle_parent] as your body slumps!"))
user.Stun(3 SECONDS)
if(COOLDOWN_FINISHED(src, message_cooldown))
to_chat(user, "<span class='warning'>You cannot operate [vehicle_parent] right now!</span>")
to_chat(user, SPAN_WARNING("You cannot operate [vehicle_parent] right now!"))
COOLDOWN_START(src, message_cooldown, 5 SECONDS)
return COMPONENT_DRIVER_BLOCK_MOVE
if(ride_check_flags & RIDER_NEEDS_LEGS && HAS_TRAIT(user, TRAIT_FLOORED))
if(ride_check_flags & UNBUCKLE_DISABLED_RIDER)
INVOKE_ASYNC(vehicle_parent, TYPE_PROC_REF(/atom/movable, unbuckle_mob), user, TRUE)
user.visible_message("<span class='danger'>[user] falls off [vehicle_parent].</span>",\
"<span class='danger'>You fall off [vehicle_parent] while trying to operate it while unable to stand!</span>")
user.visible_message(SPAN_DANGER("[user] falls off [vehicle_parent]."),\
SPAN_DANGER("You fall off [vehicle_parent] while trying to operate it while unable to stand!"))
user.Stun(3 SECONDS)
if(COOLDOWN_FINISHED(src, message_cooldown))
to_chat(user, "<span class='warning'>You can't seem to manage that while unable to stand up enough to move [vehicle_parent]...</span>")
to_chat(user, SPAN_WARNING("You can't seem to manage that while unable to stand up enough to move [vehicle_parent]..."))
COOLDOWN_START(src, message_cooldown, 5 SECONDS)
return COMPONENT_DRIVER_BLOCK_MOVE
if(ride_check_flags & RIDER_NEEDS_ARMS && HAS_TRAIT(user, TRAIT_HANDS_BLOCKED))
if(ride_check_flags & UNBUCKLE_DISABLED_RIDER)
INVOKE_ASYNC(vehicle_parent, TYPE_PROC_REF(/atom/movable, unbuckle_mob), user, TRUE)
user.visible_message("<span class='danger'>[user] falls off [vehicle_parent].</span>",\
"<span class='danger'>You fall off [vehicle_parent] while trying to operate it without being able to hold on!</span>")
user.visible_message(SPAN_DANGER("[user] falls off [vehicle_parent]."),\
SPAN_DANGER("You fall off [vehicle_parent] while trying to operate it without being able to hold on!"))
user.Stun(3 SECONDS)
if(COOLDOWN_FINISHED(src, message_cooldown))
to_chat(user, "<span class='warning'>You can't seem to hold onto [vehicle_parent] to move it...</span>")
to_chat(user, SPAN_WARNING("You can't seem to hold onto [vehicle_parent] to move it..."))
COOLDOWN_START(src, message_cooldown, 5 SECONDS)
return COMPONENT_DRIVER_BLOCK_MOVE
@@ -71,7 +71,7 @@
if(!istype(next) || !istype(current))
return //not happening.
if(!turf_check(next, current))
to_chat(user, "<span class='warning'>[movable_parent] cannot go onto [next]!</span>")
to_chat(user, SPAN_WARNING("[movable_parent] cannot go onto [next]!"))
return
if(GLOB.move_manager.processing_on(movable_parent, SSspacedrift) && !override_allow_spacemove)
return
@@ -126,7 +126,7 @@
/datum/component/riding/vehicle/scooter/skateboard/proc/on_examine(datum/source, mob/user, list/examine_list)
SIGNAL_HANDLER //COMSIG_PARENT_EXAMINE
examine_list += "<span class='notice'>Going nice and slow at walk speed will prevent crashing into things.</span>"
examine_list += SPAN_NOTICE("Going nice and slow at walk speed will prevent crashing into things.")
/datum/component/riding/vehicle/scooter/skateboard/vehicle_mob_buckle(datum/source, mob/living/rider, force = FALSE)
. = ..()
@@ -157,8 +157,8 @@
if((L.getStaminaLoss() >= 60 || L.health <= 40) && !L.absorb_stun(0)) // Only injured people can be shot off. Hulks and people on stimulants can not be shot off.
S.unbuckle_mob(L)
L.KnockDown(2 SECONDS)
L.visible_message("<span class='warning'>[L] gets shot off [S] by [projectile]!</span>",
"<span class='warning'>You get shot off [S] by [projectile]!</span>")
L.visible_message(SPAN_WARNING("[L] gets shot off [S] by [projectile]!"),
SPAN_WARNING("You get shot off [S] by [projectile]!"))
/datum/component/riding/vehicle/scooter/skateboard/pro
vehicle_move_delay = 1
+5 -5
View File
@@ -75,7 +75,7 @@
if(!is_zoomed_in())
return
if(source.loc != tracker.owner) //Dropped.
to_chat(tracker.owner, "<span class='warning'>[parent]'s scope is overloaded by movement and shuts down!</span>")
to_chat(tracker.owner, SPAN_WARNING("[parent]'s scope is overloaded by movement and shuts down!"))
stop_zooming(tracker.owner)
/datum/component/scope/proc/on_action_trigger(datum/action/source)
@@ -113,7 +113,7 @@
var/scope = istype(parent, /obj/item/gun) ? "scope in" : "zoom out"
switch(zoom_method)
if(ZOOM_METHOD_WIELD)
examine_list += "<span class='notice'>You can [scope] by wielding it with both hands.</span>"
examine_list += SPAN_NOTICE("You can [scope] by wielding it with both hands.")
/**
* We find and return the best target to hit on a given turf.
@@ -154,13 +154,13 @@
if(isnull(user.client))
return
if(HAS_TRAIT(user, TRAIT_SCOPED))
to_chat(user, "<span class='warning'>You are already zoomed in!</span>")
to_chat(user, SPAN_WARNING("You are already zoomed in!"))
return
if((flags & SCOPE_TURF_ONLY) && !isturf(user.loc))
to_chat(user, "<span class='warning'>There is not enough space to zoom in!</span>")
to_chat(user, SPAN_WARNING("There is not enough space to zoom in!"))
return
if((flags & SCOPE_NEED_ACTIVE_HAND) && user.get_active_hand() != parent)
to_chat(user, "<span class='warning'>You need to hold [parent] in your active hand to zoom in!</span>")
to_chat(user, SPAN_WARNING("You need to hold [parent] in your active hand to zoom in!"))
return
if(time_to_scope)
if(!do_after_once(user, time_to_scope, target = parent))
+6 -6
View File
@@ -43,7 +43,7 @@
return
var/joined_results = english_list(results)
examine_list += "<span class='notice'>It currently holds: [joined_results].</span>"
examine_list += SPAN_NOTICE("It currently holds: [joined_results].")
/datum/component/shelver/proc/prepare_autoshelf()
SIGNAL_HANDLER // COMSIG_SHELF_ADDED_ON_MAPLOAD
@@ -131,7 +131,7 @@
return
if(length(allowed_types) && !(attacker.type in allowed_types))
to_chat(user, "<span class='notice'>[attacker] won't fit on [parent]!</span>")
to_chat(user, SPAN_NOTICE("[attacker] won't fit on [parent]!"))
return COMPONENT_SKIP_AFTERATTACK
var/list/PL = params2list(params)
@@ -143,15 +143,15 @@
i++
if(icon_x >= coords[1] && icon_x <= coords[3] && icon_y >= coords[2] && icon_y <= coords[4])
if(used_places[i])
to_chat(user, "<span class='notice'>There's already something there on [parent].</span>")
to_chat(user, SPAN_NOTICE("There's already something there on [parent]."))
return COMPONENT_SKIP_AFTERATTACK
var/position_details = placement_zones[coords]
if(user.drop_item())
add_item(attacker, i, position_details)
user.visible_message(
"<span class='notice'>[user] places [attacker] on [parent].</span>",
"<span class='notice'>You place [attacker] on [parent].</span>",
SPAN_NOTICE("[user] places [attacker] on [parent]."),
SPAN_NOTICE("You place [attacker] on [parent]."),
)
return COMPONENT_SKIP_AFTERATTACK
@@ -301,7 +301,7 @@
CRASH("received non-obj shelf with UID [shelf_uid]")
var/shelf_name = shelf ? "flies off [shelf]" : "falls down"
O.visible_message("<span class='notice'>[O] [shelf_name]!</span>")
O.visible_message(SPAN_NOTICE("[O] [shelf_name]!"))
O.throw_at(pick(clear_turfs), 2, 3)
qdel(src)
+2 -2
View File
@@ -180,7 +180,7 @@
/// Default on_hit proc, since cult robes are stupid and have different descriptions/sparks
/datum/component/shielded/proc/default_run_hit_callback(mob/living/owner, attack_text, current_charges)
do_sparks(2, TRUE, owner)
owner.visible_message("<span class='danger'>[owner]'s shields deflect [attack_text] in a shower of sparks!</span>")
owner.visible_message(SPAN_DANGER("[owner]'s shields deflect [attack_text] in a shower of sparks!"))
if(current_charges <= 0)
owner.visible_message("<span class='warning'>[owner]'s shield overloads!</span>")
owner.visible_message(SPAN_WARNING("[owner]'s shield overloads!"))
+1 -1
View File
@@ -54,7 +54,7 @@
L.nest = src
L.faction = src.faction
ADD_TRAIT(L, TRAIT_FROM_TENDRIL, INNATE_TRAIT)
P.visible_message("<span class='danger'>[L] [spawn_text] [P].</span>")
P.visible_message(SPAN_DANGER("[L] [spawn_text] [P]."))
P.on_mob_spawn(L)
return L
+3 -3
View File
@@ -2,7 +2,7 @@
/datum/component/special_tastes
/// associated list of item to reagents and tastes
/// Typepath = (list(reagents = list(reagents), tastes = list(tastes)); Ex: list(/obj/item/stack/sheet/mineral/silver = list("reagents" = list("nutriment" = 5, "vitamin" = 1), "tastes" = list("metal and blood" = 1)))
var/list/obj/item/edible_items = list()
var/list/obj/item/edible_items = list()
/datum/component/special_tastes/Initialize(list/edible_items)
if(!length(edible_items))
@@ -37,7 +37,7 @@
if(istype(attacking_item, /obj/item/stack))
var/obj/item/stack/stacked_item = attacking_item
if(stacked_item.amount > 1)
to_chat(user, "<span class='notice'>You can only eat one of [stacked_item] at a time.</span>")
to_chat(user, SPAN_NOTICE("You can only eat one of [stacked_item] at a time."))
return
var/obj/item/food/food = turn_into_food(attacking_item, similar_to)
user.drop_item_to_ground(attacking_item, TRUE, TRUE)
@@ -50,7 +50,7 @@
food.On_Consume(user, user)
qdel(attacking_item)
return // couldnt eat it, undo
to_chat(user, "<span class='notice'>You are too full to eat [attacking_item].</span>")
to_chat(user, SPAN_NOTICE("You are too full to eat [attacking_item]."))
user.drop_item_to_ground(food, TRUE, TRUE)
user.put_in_active_hand(attacking_item)
qdel(food)
+4 -4
View File
@@ -35,7 +35,7 @@
if((H.getStaminaLoss() > 95) && (!istype(H.dna.species, /datum/species/diona) && !istype(H.dna.species, /datum/species/machine) && !istype(H.dna.species, /datum/species/slime) && !istype(H.dna.species, /datum/species/golem) && !istype(H.dna.species, /datum/species/plasmaman) && !istype(H.dna.species, /datum/species/skeleton)))
H.Stun(40 SECONDS)
H.set_species(/datum/species/skeleton) // Makes the OP skelly
H.visible_message("<span class='warning'>[H] has given up on life as a mortal.</span>")
H.visible_message(SPAN_WARNING("[H] has given up on life as a mortal."))
var/T = get_turf(H)
if(too_spooky)
if(prob(30))
@@ -45,9 +45,9 @@
else if(prob(30))
new/obj/item/instrument/trombone/spectral(T)
else
to_chat(H, "<span class='boldwarning'>The spooky gods forgot to ship your instrument. Better luck next unlife.</span>")
to_chat(H, "<span class='boldnotice'>You are the spooky skeleton!</span>")
to_chat(H, "<span class='boldnotice'>A new life and identity has begun. Help your fellow skeletons into bringing out the spooky-pocalypse. You haven't forgotten your past life, and are still beholden to past loyalties.</span>")
to_chat(H, SPAN_BOLDWARNING("The spooky gods forgot to ship your instrument. Better luck next unlife."))
to_chat(H, SPAN_BOLDNOTICE("You are the spooky skeleton!"))
to_chat(H, SPAN_BOLDNOTICE("A new life and identity has begun. Help your fellow skeletons into bringing out the spooky-pocalypse. You haven't forgotten your past life, and are still beholden to past loyalties."))
change_name(H) //time for a new name!
/datum/component/spooky/proc/change_name(mob/living/carbon/human/H)
+4 -4
View File
@@ -18,7 +18,7 @@
if(attached_to)
if(!QDELETED(parent) && isitem(parent))
var/obj/item/I = parent
I.visible_message("<span class='notice'>[parent] falls off of [attached_to].</span>")
I.visible_message(SPAN_NOTICE("[parent] falls off of [attached_to]."))
pick_up(parent)
move_to_the_thing(parent, get_turf(parent))
@@ -55,7 +55,7 @@
attached_to = target
move_to_the_thing(parent)
if(user)
to_chat(user, "<span class='notice'>You attach [parent] to [attached_to].</span>")
to_chat(user, SPAN_NOTICE("You attach [parent] to [attached_to]."))
overlay = icon(I.icon, I.icon_state)
//Clamp it so that the icon never moves more than 16 pixels in either direction
@@ -103,7 +103,7 @@
move_to_the_thing(parent)
if(user)
INVOKE_ASYNC(user, TYPE_PROC_REF(/mob, put_in_hands), I)
to_chat(user, "<span class='notice'>You take [parent] off of [attached_to].</span>")
to_chat(user, SPAN_NOTICE("You take [parent] off of [attached_to]."))
I.invisibility = initial(I.invisibility)
@@ -116,7 +116,7 @@
SIGNAL_HANDLER
if(!in_range(user, attached_to))
return
examine_list += "<span class='notice'>There is [parent] attached to [source], grab [attached_to.p_them()] to remove it.</span>"
examine_list += SPAN_NOTICE("There is [parent] attached to [source], grab [attached_to.p_them()] to remove it.")
/datum/component/sticky/proc/on_move(datum/source, oldloc, move_dir)
SIGNAL_HANDLER
+27 -27
View File
@@ -59,7 +59,7 @@
/datum/component/surgery_initiator/proc/on_parent_examine_more(datum/source, mob/user, list/examine_list)
SIGNAL_HANDLER // COMSIG_PARENT_EXAMINE_MORE
examine_list += "<span class='notice'>You can use this on someone who is laying down to begin surgery on them.</span>"
examine_list += SPAN_NOTICE("You can use this on someone who is laying down to begin surgery on them.")
/// Keep tabs on the attached item's sharpness.
/// This component gets added in atoms when they're made sharp as well.
@@ -93,7 +93,7 @@
return
if(L.has_status_effect(STATUS_EFFECT_SUMMONEDGHOST))
to_chat(user, "<span class='notice'>You realise that a ghost probably doesn't have any useful organs.</span>")
to_chat(user, SPAN_NOTICE("You realise that a ghost probably doesn't have any useful organs."))
return //no cult ghost surgery please
INVOKE_ASYNC(src, PROC_REF(do_initiate_surgery_moment), target, user)
// This signal is actually part of the attack chain, so it needs to return true to stop it
@@ -128,9 +128,9 @@
if(!length(available_surgeries))
if(IS_HORIZONTAL(target) || isanimal(target))
to_chat(user, "<span class='notice'>There aren't any surgeries you can perform there right now.</span>")
to_chat(user, SPAN_NOTICE("There aren't any surgeries you can perform there right now."))
else
to_chat(user, "<span class='notice'>You can't perform any surgeries there while [target] is standing.</span>")
to_chat(user, SPAN_NOTICE("You can't perform any surgeries there while [target] is standing."))
return
// if we have a surgery that should be performed regardless with this item,
@@ -170,8 +170,8 @@
/datum/component/surgery_initiator/proc/cancel_unstarted_surgery_fluff(datum/surgery/the_surgery, mob/living/patient, mob/user, selected_zone)
user.visible_message(
"<span class='notice'>[user] stops the surgery on [patient]'s [parse_zone(selected_zone)] with [parent].</span>",
"<span class='notice'>You stop the surgery on [patient]'s [parse_zone(selected_zone)] with [parent].</span>",
SPAN_NOTICE("[user] stops the surgery on [patient]'s [parse_zone(selected_zone)] with [parent]."),
SPAN_NOTICE("You stop the surgery on [patient]'s [parse_zone(selected_zone)] with [parent]."),
)
/// Does the surgery de-initiation.
@@ -226,7 +226,7 @@
else
close_tool = locate(/obj/item/crowbar) in user.get_all_slots()
if(!close_tool)
to_chat(user, "<span class='warning'>You need a prying tool in an inactive slot to stop the surgery!</span>")
to_chat(user, SPAN_WARNING("You need a prying tool in an inactive slot to stop the surgery!"))
return TRUE
else if(other_hand)
@@ -236,7 +236,7 @@
break
if(!close_tool)
to_chat(user, "<span class='warning'>You need a [is_robotic ? "prying": "cauterizing"] tool in your inactive hand to stop the surgery!</span>")
to_chat(user, SPAN_WARNING("You need a [is_robotic ? "prying": "cauterizing"] tool in your inactive hand to stop the surgery!"))
return TRUE
if(skip_surgery || chosen_close_step.try_op(user, patient, selected_zone, close_tool, the_surgery) == SURGERY_INITIATE_SUCCESS)
@@ -255,13 +255,13 @@
// The item was moved somewhere else
if(!(parent in user))
to_chat(user, "<span class='warning'>You cannot start an operation if you aren't holding the tool anymore.</span>")
to_chat(user, SPAN_WARNING("You cannot start an operation if you aren't holding the tool anymore."))
return FALSE
// While we were choosing, another surgery was started at the same location
for(var/datum/surgery/surgery in target.surgeries)
if(surgery.location == user.zone_selected)
to_chat(user, "<span class='warning'>There's already another surgery in progress on their [parse_zone(surgery.location)].</span>")
to_chat(user, SPAN_WARNING("There's already another surgery in progress on their [parse_zone(surgery.location)]."))
return FALSE
return TRUE
@@ -280,32 +280,32 @@
if(surgery.requires_bodypart == isnull(affecting_limb))
if(surgery.requires_bodypart)
to_chat(user, "<span class='warning'>The patient has no [parse_zone(selected_zone)]!</span>")
to_chat(user, SPAN_WARNING("The patient has no [parse_zone(selected_zone)]!"))
else
to_chat(user, "<span class='warning'>The patient has \a [parse_zone(selected_zone)]!</span>")
to_chat(user, SPAN_WARNING("The patient has \a [parse_zone(selected_zone)]!"))
return
if(iscarbon(target))
if(!isnull(affecting_limb))
if((surgery.requires_organic_bodypart && affecting_limb.is_robotic()) || (!surgery.requires_organic_bodypart && !affecting_limb.is_robotic()))
to_chat(user, "<span class='warning'>That's not the right type of limb for this operation!</span>")
to_chat(user, SPAN_WARNING("That's not the right type of limb for this operation!"))
return
if(surgery_needs_exposure(surgery, target))
to_chat(user, "<span class='warning'>You have to expose [target.p_their()] [parse_zone(selected_zone)] first!</span>")
to_chat(user, SPAN_WARNING("You have to expose [target.p_their()] [parse_zone(selected_zone)] first!"))
return
if(surgery.lying_required && !on_operable_surface(target))
to_chat(user, "<span class='notice'>Patient must be lying down for this operation.</span>")
to_chat(user, SPAN_NOTICE("Patient must be lying down for this operation."))
return
if(target == user && !surgery.self_operable)
to_chat(user, "<span class='notice'>You can't perform that operation on yourself!</span>")
to_chat(user, SPAN_NOTICE("You can't perform that operation on yourself!"))
return
if(!surgery.can_start(user, target))
to_chat(user, "<span class='warning'>Can't start the surgery!</span>")
to_chat(user, SPAN_WARNING("Can't start the surgery!"))
return
var/datum/surgery/procedure = new surgery.type(target, selected_zone, affecting_limb)
@@ -314,7 +314,7 @@
if(istype(procedure, /datum/surgery/dissect))
if(isnull(target.surgery_container))
log_debug("A dissection was started on [target] with contains_xeno_organ as TRUE, however its surgery_container was null!")
CRASH("<span class='userdanger'>[target] does not have a dissection surgery information set to it. Please inform an admin or developer.</span>")
CRASH(SPAN_USERDANGER("[target] does not have a dissection surgery information set to it. Please inform an admin or developer."))
if(ispath(target.surgery_container, /datum/xenobiology_surgery_container))
target.surgery_container = new target.surgery_container
procedure.steps = target.surgery_container.dissection_tool_step
@@ -335,8 +335,8 @@
/// Handle to allow for easily overriding the message shown
/datum/component/surgery_initiator/proc/show_starting_message(mob/user, mob/living/target, datum/surgery/procedure)
user.visible_message(
"<span class='notice'>[user] holds [parent] over [target]'s [parse_zone(user.zone_selected)] to prepare for surgery.</span>",
"<span class='notice'>You hold [parent] over [target]'s [parse_zone(user.zone_selected)] to prepare for \an [procedure.name].</span>",
SPAN_NOTICE("[user] holds [parent] over [target]'s [parse_zone(user.zone_selected)] to prepare for surgery."),
SPAN_NOTICE("You hold [parent] over [target]'s [parse_zone(user.zone_selected)] to prepare for \an [procedure.name]."),
)
/datum/component/surgery_initiator/proc/on_prevent_germs()
@@ -367,14 +367,14 @@
/datum/component/surgery_initiator/cloth/show_starting_message(mob/user, mob/living/target, datum/surgery/procedure)
user.visible_message(
"<span class='notice'>[user] drapes [parent] over [target]'s [parse_zone(user.zone_selected)] to prepare for surgery.</span>",
"<span class='notice'>You drape [parent] over [target]'s [parse_zone(user.zone_selected)] to prepare for \an [procedure.name].</span>",
SPAN_NOTICE("[user] drapes [parent] over [target]'s [parse_zone(user.zone_selected)] to prepare for surgery."),
SPAN_NOTICE("You drape [parent] over [target]'s [parse_zone(user.zone_selected)] to prepare for \an [procedure.name]."),
)
/datum/component/surgery_initiator/cloth/on_surgery_selection(mob/user, mob/living/target, datum/surgery/target_surgery)
user.visible_message(
"<span class='notice'>[user] starts to apply [parent] onto [target].</span>",
"<span class='notice'>You start to apply [parent] onto [target].</span>",
SPAN_NOTICE("[user] starts to apply [parent] onto [target]."),
SPAN_NOTICE("You start to apply [parent] onto [target]."),
)
if(!isnull(surgery_start_sound))
@@ -383,8 +383,8 @@
playsound(src, surgery_start_sound)
if(!do_after_once(user, 3 SECONDS, TRUE, target))
user.visible_message(
"<span class='warning'>[user] stops applying [parent] onto [target].</span>",
"<span class='warning'>You stop applying [parent] onto [target].</span>"
SPAN_WARNING("[user] stops applying [parent] onto [target]."),
SPAN_WARNING("You stop applying [parent] onto [target].")
)
return
@@ -395,7 +395,7 @@
/datum/component/surgery_initiator/cloth/on_blood_splash(datum/surgery, mob/user, mob/target, zone, obj/item/tool)
if(prob(90 * germ_prevention_quality))
target.visible_message("<span class='notice'>Blood splashes onto the dressing.</span>")
target.visible_message(SPAN_NOTICE("Blood splashes onto the dressing."))
var/obj/item/I = parent // safety: this component can only go onto an item
I.add_mob_blood(target)
return COMPONENT_BLOOD_SPLASH_HANDLED
+1 -1
View File
@@ -62,7 +62,7 @@
if(QDELETED(animal) || chosen_name == animal.name)
return
if(!chosen_name)
to_chat(tamer, "<span class='warning'>Please enter a valid name.</span>")
to_chat(tamer, SPAN_WARNING("Please enter a valid name."))
rename_pet(animal, tamer)
return
animal.rename_character(animal.name, chosen_name)
+4 -4
View File
@@ -74,7 +74,7 @@
return
var/atom/atom = parent
atom?.setDir(get_dir(parent, newloc))
to_chat(atom, "<span class='warning'>You can't move in that direction with the [tethered_to] tethered to you!</span>")
to_chat(atom, SPAN_WARNING("You can't move in that direction with the [tethered_to] tethered to you!"))
return COMPONENT_MOVABLE_BLOCK_PRE_MOVE
/datum/component/tether/proc/pre_tethered_movement(atom/movable/source, newloc)
@@ -86,13 +86,13 @@
durability_cost()
var/atom/atom = parent
atom?.setDir(get_dir(parent, newloc))
to_chat(atom, "<span class='warning'>You can't move in that direction with the [tethered_to] tethered to you!</span>")
to_chat(atom, SPAN_WARNING("You can't move in that direction with the [tethered_to] tethered to you!"))
return COMPONENT_MOVABLE_BLOCK_PRE_MOVE
/datum/component/tether/proc/can_equip(atom/source, mob/user)
// Check to make sure we dont go into an inventory outside of our range
if(get_dist(get_turf(parent), get_turf(user)) > max_range)
to_chat(user, "<span class='warning'>You try to pick up [tethered_to], you can't pull it's [tether_name] any farther!</span>")
to_chat(user, SPAN_WARNING("You try to pick up [tethered_to], you can't pull it's [tether_name] any farther!"))
return COMPONENT_CANCEL_ATTACK_CHAIN
/datum/component/tether/proc/parent_check_bounds(atom/movable/source, atom/mover, atom/old_loc, direction)
@@ -167,7 +167,7 @@
return
durability -= cost
if(durability <= 0 && !QDELETED(tethered_to))
tethered_to.visible_message("<span class='warning'>[tethered_to]'s [tether_name] wears out and snaps back!</span>")
tethered_to.visible_message(SPAN_WARNING("[tethered_to]'s [tether_name] wears out and snaps back!"))
terminate()
return TRUE // it breaks, let the parent move outside of the range again
return FALSE
+5 -5
View File
@@ -49,7 +49,7 @@
/datum/component/tilted/proc/on_examine(datum/source, mob/user, list/examine_list)
SIGNAL_HANDLER // COMSIG_PARENT_EXAMINE
examine_list += "<span class='notice'>It's been tilted over. <i>Alt+Click</i> it to right it.</span>"
examine_list += SPAN_NOTICE("It's been tilted over. <i>Alt+Click</i> it to right it.")
/datum/component/tilted/proc/on_alt_click(atom/source, mob/user)
SIGNAL_HANDLER // COMSIG_CLICK_ALT
@@ -59,7 +59,7 @@
/datum/component/tilted/proc/on_interact(atom/source, mob/user)
SIGNAL_HANDLER // COMSIG_ATOM_ATTACK_HAND
if(block_interactions)
to_chat(user, "<span class='warning'>You can't do that right now, you need to right it first!</span>")
to_chat(user, SPAN_WARNING("You can't do that right now, you need to right it first!"))
return COMPONENT_CANCEL_ATTACK_CHAIN
/datum/component/tilted/proc/on_untilt(atom/source, mob/user)
@@ -88,9 +88,9 @@
if(!do_after(user, duration, TRUE, parent) || QDELETED(src))
return
user.visible_message(
"<span class='notice'>[user] rights [atom_parent].</span>",
"<span class='notice'>You right [atom_parent].</span>",
"<span class='notice'>You hear a loud clang.</span>"
SPAN_NOTICE("[user] rights [atom_parent]."),
SPAN_NOTICE("You right [atom_parent]."),
SPAN_NOTICE("You hear a loud clang.")
)
if(QDELETED(atom_parent))
+16 -16
View File
@@ -84,16 +84,16 @@
return
if(tip_time > 0)
to_chat(tipper, "<span class='warning'>You begin tipping over [tipped_mob]...</span>")
to_chat(tipper, SPAN_WARNING("You begin tipping over [tipped_mob]..."))
tipped_mob.visible_message(
"<span class='warning'>[tipper] begins tipping over [tipped_mob].</span>",
"<span class='userdanger'>[tipper] begins tipping you over!</span>"
SPAN_WARNING("[tipper] begins tipping over [tipped_mob]."),
SPAN_USERDANGER("[tipper] begins tipping you over!")
)
if(!do_after(tipper, tip_time, target = tipped_mob))
if(!isnull(tipped_mob.client))
add_attack_logs(tipper, tipped_mob, "attempted to tip over")
to_chat(tipper, "<span class='danger'>You fail to tip over [tipped_mob].</span>")
to_chat(tipper, SPAN_DANGER("You fail to tip over [tipped_mob]."))
return
do_tip(tipped_mob, tipper)
@@ -111,12 +111,12 @@
if(is_tipped) // sanity check in case multiple people try to tip at the same time
return
to_chat(tipper, "<span class='warning'>You tip over [tipped_mob].</span>")
to_chat(tipper, SPAN_WARNING("You tip over [tipped_mob]."))
if(!isnull(tipped_mob.client))
add_attack_logs(tipper, tipped_mob, "tipped over")
tipped_mob.visible_message(
"<span class='warning'>[tipper] tips over [tipped_mob].</span>",
"<span class='danger'>You are tipped over by [tipper]!</span>"
SPAN_WARNING("[tipper] tips over [tipped_mob]."),
SPAN_DANGER("You are tipped over by [tipper]!")
)
set_tipped_status(tipped_mob, TRUE)
@@ -137,14 +137,14 @@
*/
/datum/component/tippable/proc/try_untip(mob/living/tipped_mob, mob/untipper)
if(untip_time > 0)
to_chat(untipper, "<span class='notice'>You begin righting [tipped_mob]...</span>")
to_chat(untipper, SPAN_NOTICE("You begin righting [tipped_mob]..."))
tipped_mob.visible_message(
"<span class='notice'>[untipper] begins righting [tipped_mob].</span>",
"<span class='notice'>[untipper] begins righting you.</span>",
SPAN_NOTICE("[untipper] begins righting [tipped_mob]."),
SPAN_NOTICE("[untipper] begins righting you."),
)
if(!do_after(untipper, untip_time, target = tipped_mob))
to_chat(untipper, "<span class='warning'>You fail to right [tipped_mob].</span>")
to_chat(untipper, SPAN_WARNING("You fail to right [tipped_mob]."))
return
do_untip(tipped_mob, untipper)
@@ -162,10 +162,10 @@
if(!is_tipped) // sanity check in case multiple people try to untip at the same time
return
to_chat(untipper, "<span class='notice'>You right [tipped_mob].</span>")
to_chat(untipper, SPAN_NOTICE("You right [tipped_mob]."))
tipped_mob.visible_message(
"<span class='notice'>[untipper] rights [tipped_mob].</span>",
"<span class='notice'>You are righted by [untipper]!</span>"
SPAN_NOTICE("[untipper] rights [tipped_mob]."),
SPAN_NOTICE("You are righted by [untipper]!")
)
if(self_untip_timer)
@@ -187,8 +187,8 @@
post_untipped_callback?.Invoke()
tipped_mob.visible_message(
"<span class='notice'>[tipped_mob] rights [tipped_mob.p_themselves()].</span>",
"<span class='notice'>You right yourself.</span>"
SPAN_NOTICE("[tipped_mob] rights [tipped_mob.p_themselves()]."),
SPAN_NOTICE("You right yourself.")
)
/**
+13 -13
View File
@@ -163,7 +163,7 @@
/datum/component/two_handed/proc/on_attack_hand(datum/source, mob/user)
SIGNAL_HANDLER // COMSIG_ATOM_ATTACK_HAND if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_HAND, user) & COMPONENT_CANCEL_ATTACK_CHAIN)
if(require_twohands && user.get_inactive_hand())
to_chat(user, "<span class='notice'>[parent] is too cumbersome to carry in one hand!</span>")
to_chat(user, SPAN_NOTICE("[parent] is too cumbersome to carry in one hand!"))
return COMPONENT_CANCEL_ATTACK_CHAIN
/**
@@ -177,22 +177,22 @@
return
if(ismonkeybasic(user))
if(require_twohands)
to_chat(user, "<span class='notice'>[parent] is too heavy and cumbersome for you to carry!</span>")
to_chat(user, SPAN_NOTICE("[parent] is too heavy and cumbersome for you to carry!"))
user.drop_item_to_ground(parent, force = TRUE)
else
to_chat(user, "<span class='notice'>[parent] too heavy for you to wield fully.</span>")
to_chat(user, SPAN_NOTICE("[parent] too heavy for you to wield fully."))
return
if(user.get_inactive_hand())
if(require_twohands)
to_chat(user, "<span class='notice'>[parent] is too cumbersome to carry in one hand!</span>")
to_chat(user, SPAN_NOTICE("[parent] is too cumbersome to carry in one hand!"))
user.drop_item_to_ground(parent, force = TRUE)
else
to_chat(user, "<span class='warning'>You need your other hand to be empty!</span>")
to_chat(user, SPAN_WARNING("You need your other hand to be empty!"))
return
if(!user.has_both_hands())
if(require_twohands)
user.drop_item_to_ground(parent, force = TRUE)
to_chat(user, "<span class='warning'>You don't have enough intact hands.</span>")
to_chat(user, SPAN_WARNING("You don't have enough intact hands."))
return
// wield update status
@@ -218,9 +218,9 @@
parent_item.update_appearance()
if(isrobot(user))
to_chat(user, "<span class='notice'>You dedicate your module to [parent].</span>")
to_chat(user, SPAN_NOTICE("You dedicate your module to [parent]."))
else
to_chat(user, "<span class='notice'>You grab [parent] with both hands.</span>")
to_chat(user, SPAN_NOTICE("You grab [parent] with both hands."))
// Play sound if one is set
if(wieldsound)
@@ -293,11 +293,11 @@
// Show message if requested
if(show_message)
if(isrobot(user))
to_chat(user, "<span class='notice'>You free up your module.</span>")
to_chat(user, SPAN_NOTICE("You free up your module."))
else if(require_twohands)
to_chat(user, "<span class='notice'>You drop [parent].</span>")
to_chat(user, SPAN_NOTICE("You drop [parent]."))
else
to_chat(user, "<span class='notice'>You are now carrying [parent] with one hand.</span>")
to_chat(user, SPAN_NOTICE("You are now carrying [parent] with one hand."))
// Play sound if set
if(unwieldsound)
@@ -395,12 +395,12 @@
if(require_twohands)
INVOKE_ASYNC(src, PROC_REF(try_drop_item), user)
else
user.visible_message("<span class='notice'>[user] unwields [parent] as the handcuffs make it too hard to hold properly.</span>")
user.visible_message(SPAN_NOTICE("[user] unwields [parent] as the handcuffs make it too hard to hold properly."))
INVOKE_ASYNC(src, PROC_REF(unwield), user)
/datum/component/two_handed/proc/try_drop_item(mob/user)
if(user.drop_item_to_ground(parent))
user.visible_message("<span class='notice'>[user] loses [user.p_their()] grip on [parent]!</span>")
user.visible_message(SPAN_NOTICE("[user] loses [user.p_their()] grip on [parent]!"))
/**
* The offhand dummy item for two handed items
+1 -1
View File
@@ -42,7 +42,7 @@
zomboid.reagents.remove_reagent("zombiecure4", the_cure.metabolization_rate * zomboid.metabolism_efficiency)
return
zombie_rejuv()
to_chat(zomboid, "<span class='zombielarge'>We... Awaken...</span>")
to_chat(zomboid, SPAN_ZOMBIELARGE("We... Awaken..."))
zomboid.notify_ghost_cloning("Your zombie body has risen again, re-enter your corpse to continue the feast!", source = zomboid)
// If no client, but they were a player thats not SSD (debrained, revived but hasn't returned to body, etc)