Refactors most spans into span procs (#59645)

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

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

(Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
This commit is contained in:
Watermelon914
2021-06-14 13:03:53 -07:00
committed by GitHub
parent b9982f6970
commit 375a20e49b
1676 changed files with 15455 additions and 15226 deletions
@@ -25,26 +25,26 @@
time = 125
/datum/surgery_step/fold_cortex/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You start folding [target]'s outer cerebral cortex into a fractal pattern.</span>",
"<span class='notice'>[user] starts folding [target]'s outer cerebral cortex into a fractal pattern.</span>",
"<span class='notice'>[user] begins to perform surgery on [target]'s brain.</span>")
display_results(user, target, span_notice("You start folding [target]'s outer cerebral cortex into a fractal pattern."),
span_notice("[user] starts folding [target]'s outer cerebral cortex into a fractal pattern."),
span_notice("[user] begins to perform surgery on [target]'s brain."))
/datum/surgery_step/fold_cortex/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
display_results(user, target, "<span class='notice'>You fold [target]'s outer cerebral cortex into a fractal pattern!</span>",
"<span class='notice'>[user] folds [target]'s outer cerebral cortex into a fractal pattern!</span>",
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
display_results(user, target, span_notice("You fold [target]'s outer cerebral cortex into a fractal pattern!"),
span_notice("[user] folds [target]'s outer cerebral cortex into a fractal pattern!"),
span_notice("[user] completes the surgery on [target]'s brain."))
new /datum/bioware/cortex_fold(target)
return ..()
/datum/surgery_step/fold_cortex/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(target.getorganslot(ORGAN_SLOT_BRAIN))
display_results(user, target, "<span class='warning'>You screw up, damaging the brain!</span>",
"<span class='warning'>[user] screws up, damaging the brain!</span>",
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
display_results(user, target, span_warning("You screw up, damaging the brain!"),
span_warning("[user] screws up, damaging the brain!"),
span_notice("[user] completes the surgery on [target]'s brain."))
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 60)
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY)
else
user.visible_message("<span class='warning'>[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore.</span>", "<span class='warning'>You suddenly notice that the brain you were working on is not there anymore.</span>")
user.visible_message(span_warning("[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore."), span_warning("You suddenly notice that the brain you were working on is not there anymore."))
return FALSE
/datum/bioware/cortex_fold
@@ -25,26 +25,26 @@
time = 125
/datum/surgery_step/imprint_cortex/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You start carving [target]'s outer cerebral cortex into a self-imprinting pattern.</span>",
"<span class='notice'>[user] starts carving [target]'s outer cerebral cortex into a self-imprinting pattern.</span>",
"<span class='notice'>[user] begins to perform surgery on [target]'s brain.</span>")
display_results(user, target, span_notice("You start carving [target]'s outer cerebral cortex into a self-imprinting pattern."),
span_notice("[user] starts carving [target]'s outer cerebral cortex into a self-imprinting pattern."),
span_notice("[user] begins to perform surgery on [target]'s brain."))
/datum/surgery_step/imprint_cortex/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
display_results(user, target, "<span class='notice'>You reshape [target]'s outer cerebral cortex into a self-imprinting pattern!</span>",
"<span class='notice'>[user] reshapes [target]'s outer cerebral cortex into a self-imprinting pattern!</span>",
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
display_results(user, target, span_notice("You reshape [target]'s outer cerebral cortex into a self-imprinting pattern!"),
span_notice("[user] reshapes [target]'s outer cerebral cortex into a self-imprinting pattern!"),
span_notice("[user] completes the surgery on [target]'s brain."))
new /datum/bioware/cortex_imprint(target)
return ..()
/datum/surgery_step/imprint_cortex/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(target.getorganslot(ORGAN_SLOT_BRAIN))
display_results(user, target, "<span class='warning'>You screw up, damaging the brain!</span>",
"<span class='warning'>[user] screws up, damaging the brain!</span>",
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
display_results(user, target, span_warning("You screw up, damaging the brain!"),
span_warning("[user] screws up, damaging the brain!"),
span_notice("[user] completes the surgery on [target]'s brain."))
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 60)
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY)
else
user.visible_message("<span class='warning'>[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore.</span>", "<span class='warning'>You suddenly notice that the brain you were working on is not there anymore.</span>")
user.visible_message(span_warning("[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore."), span_warning("You suddenly notice that the brain you were working on is not there anymore."))
return FALSE
/datum/bioware/cortex_imprint
@@ -19,14 +19,14 @@
time = 125
/datum/surgery_step/reshape_ligaments/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You start reshaping [target]'s ligaments into a hook-like shape.</span>",
"<span class='notice'>[user] starts reshaping [target]'s ligaments into a hook-like shape.</span>",
"<span class='notice'>[user] starts manipulating [target]'s ligaments.</span>")
display_results(user, target, span_notice("You start reshaping [target]'s ligaments into a hook-like shape."),
span_notice("[user] starts reshaping [target]'s ligaments into a hook-like shape."),
span_notice("[user] starts manipulating [target]'s ligaments."))
/datum/surgery_step/reshape_ligaments/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
display_results(user, target, "<span class='notice'>You reshape [target]'s ligaments into a connective hook!</span>",
"<span class='notice'>[user] reshapes [target]'s ligaments into a connective hook!</span>",
"<span class='notice'>[user] finishes manipulating [target]'s ligaments.</span>")
display_results(user, target, span_notice("You reshape [target]'s ligaments into a connective hook!"),
span_notice("[user] reshapes [target]'s ligaments into a connective hook!"),
span_notice("[user] finishes manipulating [target]'s ligaments."))
new /datum/bioware/hooked_ligaments(target)
return ..()
@@ -19,14 +19,14 @@
time = 125
/datum/surgery_step/reinforce_ligaments/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You start reinforcing [target]'s ligaments.</span>",
"<span class='notice'>[user] starts reinforce [target]'s ligaments.</span>",
"<span class='notice'>[user] starts manipulating [target]'s ligaments.</span>")
display_results(user, target, span_notice("You start reinforcing [target]'s ligaments."),
span_notice("[user] starts reinforce [target]'s ligaments."),
span_notice("[user] starts manipulating [target]'s ligaments."))
/datum/surgery_step/reinforce_ligaments/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
display_results(user, target, "<span class='notice'>You reinforce [target]'s ligaments!</span>",
"<span class='notice'>[user] reinforces [target]'s ligaments!</span>",
"<span class='notice'>[user] finishes manipulating [target]'s ligaments.</span>")
display_results(user, target, span_notice("You reinforce [target]'s ligaments!"),
span_notice("[user] reinforces [target]'s ligaments!"),
span_notice("[user] finishes manipulating [target]'s ligaments."))
new /datum/bioware/reinforced_ligaments(target)
return ..()
@@ -18,14 +18,14 @@
time = 125
/datum/surgery_step/muscled_veins/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You start wrapping muscles around [target]'s circulatory system.</span>",
"<span class='notice'>[user] starts wrapping muscles around [target]'s circulatory system.</span>",
"<span class='notice'>[user] starts manipulating [target]'s circulatory system.</span>")
display_results(user, target, span_notice("You start wrapping muscles around [target]'s circulatory system."),
span_notice("[user] starts wrapping muscles around [target]'s circulatory system."),
span_notice("[user] starts manipulating [target]'s circulatory system."))
/datum/surgery_step/muscled_veins/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
display_results(user, target, "<span class='notice'>You reshape [target]'s circulatory system, adding a muscled membrane!</span>",
"<span class='notice'>[user] reshapes [target]'s circulatory system, adding a muscled membrane!</span>",
"<span class='notice'>[user] finishes manipulating [target]'s circulatory system.</span>")
display_results(user, target, span_notice("You reshape [target]'s circulatory system, adding a muscled membrane!"),
span_notice("[user] reshapes [target]'s circulatory system, adding a muscled membrane!"),
span_notice("[user] finishes manipulating [target]'s circulatory system."))
new /datum/bioware/muscled_veins(target)
return ..()
@@ -18,14 +18,14 @@
time = 155
/datum/surgery_step/ground_nerves/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You start rerouting [target]'s nerves.</span>",
"<span class='notice'>[user] starts rerouting [target]'s nerves.</span>",
"<span class='notice'>[user] starts manipulating [target]'s nervous system.</span>")
display_results(user, target, span_notice("You start rerouting [target]'s nerves."),
span_notice("[user] starts rerouting [target]'s nerves."),
span_notice("[user] starts manipulating [target]'s nervous system."))
/datum/surgery_step/ground_nerves/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
display_results(user, target, "<span class='notice'>You successfully reroute [target]'s nervous system!</span>",
"<span class='notice'>[user] successfully reroutes [target]'s nervous system!</span>",
"<span class='notice'>[user] finishes manipulating [target]'s nervous system.</span>")
display_results(user, target, span_notice("You successfully reroute [target]'s nervous system!"),
span_notice("[user] successfully reroutes [target]'s nervous system!"),
span_notice("[user] finishes manipulating [target]'s nervous system."))
new /datum/bioware/grounded_nerves(target)
return ..()
@@ -18,14 +18,14 @@
time = 155
/datum/surgery_step/splice_nerves/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You start splicing together [target]'s nerves.</span>",
"<span class='notice'>[user] starts splicing together [target]'s nerves.</span>",
"<span class='notice'>[user] starts manipulating [target]'s nervous system.</span>")
display_results(user, target, span_notice("You start splicing together [target]'s nerves."),
span_notice("[user] starts splicing together [target]'s nerves."),
span_notice("[user] starts manipulating [target]'s nervous system."))
/datum/surgery_step/splice_nerves/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
display_results(user, target, "<span class='notice'>You successfully splice [target]'s nervous system!</span>",
"<span class='notice'>[user] successfully splices [target]'s nervous system!</span>",
"<span class='notice'>[user] finishes manipulating [target]'s nervous system.</span>")
display_results(user, target, span_notice("You successfully splice [target]'s nervous system!"),
span_notice("[user] successfully splices [target]'s nervous system!"),
span_notice("[user] finishes manipulating [target]'s nervous system."))
new /datum/bioware/spliced_nerves(target)
return ..()
@@ -18,14 +18,14 @@
time = 125
/datum/surgery_step/thread_veins/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You start weaving [target]'s circulatory system.</span>",
"<span class='notice'>[user] starts weaving [target]'s circulatory system.</span>",
"<span class='notice'>[user] starts manipulating [target]'s circulatory system.</span>")
display_results(user, target, span_notice("You start weaving [target]'s circulatory system."),
span_notice("[user] starts weaving [target]'s circulatory system."),
span_notice("[user] starts manipulating [target]'s circulatory system."))
/datum/surgery_step/thread_veins/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
display_results(user, target, "<span class='notice'>You weave [target]'s circulatory system into a resistant mesh!</span>",
"<span class='notice'>[user] weaves [target]'s circulatory system into a resistant mesh!</span>",
"<span class='notice'>[user] finishes manipulating [target]'s circulatory system.</span>")
display_results(user, target, span_notice("You weave [target]'s circulatory system into a resistant mesh!"),
span_notice("[user] weaves [target]'s circulatory system into a resistant mesh!"),
span_notice("[user] finishes manipulating [target]'s circulatory system."))
new /datum/bioware/threaded_veins(target)
return ..()
+13 -13
View File
@@ -39,21 +39,21 @@
objective = stripped_input(user, "Choose the objective to imprint on your victim's brain.", "Brainwashing", null, MAX_MESSAGE_LEN)
if(!objective)
return -1
display_results(user, target, "<span class='notice'>You begin to brainwash [target]...</span>",
"<span class='notice'>[user] begins to fix [target]'s brain.</span>",
"<span class='notice'>[user] begins to perform surgery on [target]'s brain.</span>")
display_results(user, target, span_notice("You begin to brainwash [target]..."),
span_notice("[user] begins to fix [target]'s brain."),
span_notice("[user] begins to perform surgery on [target]'s brain."))
/datum/surgery_step/brainwash/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
if(!target.mind)
to_chat(user, "<span class='warning'>[target] doesn't respond to the brainwashing, as if [target.p_they()] lacked a mind...</span>")
to_chat(user, span_warning("[target] doesn't respond to the brainwashing, as if [target.p_they()] lacked a mind..."))
return FALSE
if(HAS_TRAIT(target, TRAIT_MINDSHIELD))
to_chat(user, "<span class='warning'>You hear a faint buzzing from a device inside [target]'s brain, and the brainwashing is erased.</span>")
to_chat(user, span_warning("You hear a faint buzzing from a device inside [target]'s brain, and the brainwashing is erased."))
return FALSE
display_results(user, target, "<span class='notice'>You succeed in brainwashing [target].</span>",
"<span class='notice'>[user] successfully fixes [target]'s brain!</span>",
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
to_chat(target, "<span class='userdanger'>A new compulsion fills your mind... you feel forced to obey it!</span>")
display_results(user, target, span_notice("You succeed in brainwashing [target]."),
span_notice("[user] successfully fixes [target]'s brain!"),
span_notice("[user] completes the surgery on [target]'s brain."))
to_chat(target, span_userdanger("A new compulsion fills your mind... you feel forced to obey it!"))
brainwash(target, objective)
message_admins("[ADMIN_LOOKUPFLW(user)] surgically brainwashed [ADMIN_LOOKUPFLW(target)] with the objective '[objective]'.")
target.log_message("has been brainwashed with the objective '[objective]' by [key_name(user)] using brainwashing surgery.", LOG_ATTACK)
@@ -63,10 +63,10 @@
/datum/surgery_step/brainwash/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(target.getorganslot(ORGAN_SLOT_BRAIN))
display_results(user, target, "<span class='warning'>You screw up, bruising the brain tissue!</span>",
"<span class='warning'>[user] screws up, causing brain damage!</span>",
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
display_results(user, target, span_warning("You screw up, bruising the brain tissue!"),
span_warning("[user] screws up, causing brain damage!"),
span_notice("[user] completes the surgery on [target]'s brain."))
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 40)
else
user.visible_message("<span class='warning'>[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore.</span>", "<span class='warning'>You suddenly notice that the brain you were working on is not there anymore.</span>")
user.visible_message(span_warning("[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore."), span_warning("You suddenly notice that the brain you were working on is not there anymore."))
return FALSE
+10 -10
View File
@@ -37,14 +37,14 @@
return TRUE
/datum/surgery_step/lobotomize/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to perform a lobotomy on [target]'s brain...</span>",
"<span class='notice'>[user] begins to perform a lobotomy on [target]'s brain.</span>",
"<span class='notice'>[user] begins to perform surgery on [target]'s brain.</span>")
display_results(user, target, span_notice("You begin to perform a lobotomy on [target]'s brain..."),
span_notice("[user] begins to perform a lobotomy on [target]'s brain."),
span_notice("[user] begins to perform surgery on [target]'s brain."))
/datum/surgery_step/lobotomize/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
display_results(user, target, "<span class='notice'>You succeed in lobotomizing [target].</span>",
"<span class='notice'>[user] successfully lobotomizes [target]!</span>",
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
display_results(user, target, span_notice("You succeed in lobotomizing [target]."),
span_notice("[user] successfully lobotomizes [target]!"),
span_notice("[user] completes the surgery on [target]'s brain."))
target.cure_all_traumas(TRAUMA_RESILIENCE_LOBOTOMY)
if(target.mind && target.mind.has_antag_datum(/datum/antagonist/brainwashed))
target.mind.remove_antag_datum(/datum/antagonist/brainwashed)
@@ -63,9 +63,9 @@
/datum/surgery_step/lobotomize/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
var/obj/item/organ/brain/target_brain = target.getorganslot(ORGAN_SLOT_BRAIN)
if(target_brain)
display_results(user, target, "<span class='warning'>You remove the wrong part, causing more damage!</span>",
"<span class='notice'>[user] successfully lobotomizes [target]!</span>",
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
display_results(user, target, span_warning("You remove the wrong part, causing more damage!"),
span_notice("[user] successfully lobotomizes [target]!"),
span_notice("[user] completes the surgery on [target]'s brain."))
target_brain.applyOrganDamage(80)
switch(rand(1,3))
if(1)
@@ -78,5 +78,5 @@
if(3)
target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_MAGIC)
else
user.visible_message("<span class='warning'>[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore.</span>", "<span class='warning'>You suddenly notice that the brain you were working on is not there anymore.</span>")
user.visible_message(span_warning("[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore."), span_warning("You suddenly notice that the brain you were working on is not there anymore."))
return FALSE
@@ -27,14 +27,14 @@
require_all_chems = FALSE
/datum/surgery_step/bionecrosis/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to grow a romerol tumor on [target]'s brain...</span>",
"<span class='notice'>[user] begins to tinker with [target]'s brain...</span>",
"<span class='notice'>[user] begins to perform surgery on [target]'s brain.</span>")
display_results(user, target, span_notice("You begin to grow a romerol tumor on [target]'s brain..."),
span_notice("[user] begins to tinker with [target]'s brain..."),
span_notice("[user] begins to perform surgery on [target]'s brain."))
/datum/surgery_step/bionecrosis/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
display_results(user, target, "<span class='notice'>You succeed in growing a romerol tumor on [target]'s brain.</span>",
"<span class='notice'>[user] successfully grows a romerol tumor on [target]'s brain!</span>",
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
display_results(user, target, span_notice("You succeed in growing a romerol tumor on [target]'s brain."),
span_notice("[user] successfully grows a romerol tumor on [target]'s brain!"),
span_notice("[user] completes the surgery on [target]'s brain."))
if(!target.getorganslot(ORGAN_SLOT_ZOMBIE))
var/obj/item/organ/zombie_infection/z_infection = new()
z_infection.Insert(target)
@@ -28,20 +28,20 @@
time = 40
/datum/surgery_step/pacify/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to pacify [target]...</span>",
"<span class='notice'>[user] begins to fix [target]'s brain.</span>",
"<span class='notice'>[user] begins to perform surgery on [target]'s brain.</span>")
display_results(user, target, span_notice("You begin to pacify [target]..."),
span_notice("[user] begins to fix [target]'s brain."),
span_notice("[user] begins to perform surgery on [target]'s brain."))
/datum/surgery_step/pacify/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
display_results(user, target, "<span class='notice'>You succeed in neurologically pacifying [target].</span>",
"<span class='notice'>[user] successfully fixes [target]'s brain!</span>",
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
display_results(user, target, span_notice("You succeed in neurologically pacifying [target]."),
span_notice("[user] successfully fixes [target]'s brain!"),
span_notice("[user] completes the surgery on [target]'s brain."))
target.gain_trauma(/datum/brain_trauma/severe/pacifism, TRAUMA_RESILIENCE_LOBOTOMY)
return ..()
/datum/surgery_step/pacify/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You screw up, rewiring [target]'s brain the wrong way around...</span>",
"<span class='warning'>[user] screws up, causing brain damage!</span>",
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
display_results(user, target, span_notice("You screw up, rewiring [target]'s brain the wrong way around..."),
span_warning("[user] screws up, causing brain damage!"),
span_notice("[user] completes the surgery on [target]'s brain."))
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY)
return FALSE
@@ -35,14 +35,14 @@
return TRUE
/datum/surgery_step/viral_bond/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You start heating [target]'s bone marrow with [tool]...</span>",
"<span class='notice'>[user] starts heating [target]'s bone marrow with [tool]...</span>",
"<span class='notice'>[user] starts heating something in [target]'s chest with [tool]...</span>")
display_results(user, target, span_notice("You start heating [target]'s bone marrow with [tool]..."),
span_notice("[user] starts heating [target]'s bone marrow with [tool]..."),
span_notice("[user] starts heating something in [target]'s chest with [tool]..."))
/datum/surgery_step/viral_bond/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results)
display_results(user, target, "<span class='notice'>[target]'s bone marrow begins pulsing slowly. The viral bonding is complete.</span>",
"<span class='notice'>[target]'s bone marrow begins pulsing slowly.</span>",
"<span class='notice'>[user] finishes the operation.</span>")
display_results(user, target, span_notice("[target]'s bone marrow begins pulsing slowly. The viral bonding is complete."),
span_notice("[target]'s bone marrow begins pulsing slowly."),
span_notice("[user] finishes the operation."))
for(var/datum/disease/infected_disease as anything in target.diseases)
infected_disease.carrier = TRUE
return TRUE
@@ -25,16 +25,16 @@
require_all_chems = FALSE
/datum/surgery_step/wing_reconstruction/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to fix [target]'s charred wing membranes...</span>",
"<span class='notice'>[user] begins to fix [target]'s charred wing membranes.</span>",
"<span class='notice'>[user] begins to perform surgery on [target]'s charred wing membranes.</span>")
display_results(user, target, span_notice("You begin to fix [target]'s charred wing membranes..."),
span_notice("[user] begins to fix [target]'s charred wing membranes."),
span_notice("[user] begins to perform surgery on [target]'s charred wing membranes."))
/datum/surgery_step/wing_reconstruction/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
if(ishuman(target))
var/mob/living/carbon/human/human_target = target
display_results(user, target, "<span class='notice'>You succeed in reconstructing [target]'s wings.</span>",
"<span class='notice'>[user] successfully reconstructs [target]'s wings!</span>",
"<span class='notice'>[user] completes the surgery on [target]'s wings.</span>")
display_results(user, target, span_notice("You succeed in reconstructing [target]'s wings."),
span_notice("[user] successfully reconstructs [target]'s wings!"),
span_notice("[user] completes the surgery on [target]'s wings."))
if(human_target.dna.features["original_moth_wings"] != null)
human_target.dna.features["moth_wings"] = human_target.dna.features["original_moth_wings"]
else
+6 -6
View File
@@ -26,14 +26,14 @@
time = 64
/datum/surgery_step/sever_limb/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to sever [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to sever [target]'s [parse_zone(target_zone)]!</span>",
"<span class='notice'>[user] begins to sever [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You begin to sever [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to sever [target]'s [parse_zone(target_zone)]!"),
span_notice("[user] begins to sever [target]'s [parse_zone(target_zone)]!"))
/datum/surgery_step/sever_limb/success(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
display_results(user, target, "<span class='notice'>You sever [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] severs [target]'s [parse_zone(target_zone)]!</span>",
"<span class='notice'>[user] severs [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You sever [target]'s [parse_zone(target_zone)]."),
span_notice("[user] severs [target]'s [parse_zone(target_zone)]!"),
span_notice("[user] severs [target]'s [parse_zone(target_zone)]!"))
if(surgery.operated_bodypart)
var/obj/item/bodypart/target_limb = surgery.operated_bodypart
target_limb.drop_limb()
+8 -8
View File
@@ -23,21 +23,21 @@
time = 2.5 SECONDS
/datum/surgery_step/filter_blood/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin filtering [target]'s blood...</span>",
"<span class='notice'>[user] uses [tool] to filter [target]'s blood.</span>",
"<span class='notice'>[user] uses [tool] on [target]'s chest.</span>")
display_results(user, target, span_notice("You begin filtering [target]'s blood..."),
span_notice("[user] uses [tool] to filter [target]'s blood."),
span_notice("[user] uses [tool] on [target]'s chest."))
/datum/surgery_step/filter_blood/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
if(target.reagents?.total_volume)
for(var/datum/reagent/chem as anything in target.reagents.reagent_list)
target.reagents.remove_reagent(chem.type, min(chem.volume * 0.22, 10))
display_results(user, target, "<span class='notice'>\The [tool] pings as it finishes filtering [target]'s blood.</span>",
"<span class='notice'>\The [tool] pings as it stops pumping [target]'s blood.</span>",
display_results(user, target, span_notice("\The [tool] pings as it finishes filtering [target]'s blood."),
span_notice("\The [tool] pings as it stops pumping [target]'s blood."),
"\The [tool] pings as it stops pumping.")
return ..()
/datum/surgery_step/filter_blood/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='warning'>You screw up, bruising [target]'s chest!</span>",
"<span class='warning'>[user] screws up, brusing [target]'s chest!</span>",
"<span class='warning'>[user] screws up!</span>")
display_results(user, target, span_warning("You screw up, bruising [target]'s chest!"),
span_warning("[user] screws up, brusing [target]'s chest!"),
span_warning("[user] screws up!"))
target.adjustBruteLoss(5)
+16 -16
View File
@@ -129,18 +129,18 @@
/obj/item/bodypart/examine(mob/user)
. = ..()
if(brute_dam > DAMAGE_PRECISION)
. += "<span class='warning'>This limb has [brute_dam > 30 ? "severe" : "minor"] bruising.</span>"
. += span_warning("This limb has [brute_dam > 30 ? "severe" : "minor"] bruising.")
if(burn_dam > DAMAGE_PRECISION)
. += "<span class='warning'>This limb has [burn_dam > 30 ? "severe" : "minor"] burns.</span>"
. += span_warning("This limb has [burn_dam > 30 ? "severe" : "minor"] burns.")
if(locate(/datum/wound/blunt) in wounds)
. += "<span class='warning'>The bones in this limb appear badly cracked.</span>"
. += span_warning("The bones in this limb appear badly cracked.")
if(locate(/datum/wound/slash) in wounds)
. += "<span class='warning'>The flesh on this limb appears badly lacerated.</span>"
. += span_warning("The flesh on this limb appears badly lacerated.")
if(locate(/datum/wound/pierce) in wounds)
. += "<span class='warning'>The flesh on this limb appears badly perforated.</span>"
. += span_warning("The flesh on this limb appears badly perforated.")
if(locate(/datum/wound/burn) in wounds)
. += "<span class='warning'>The flesh on this limb appears badly cooked.</span>"
. += span_warning("The flesh on this limb appears badly cooked.")
/obj/item/bodypart/blob_act()
take_damage(max_damage)
@@ -153,14 +153,14 @@
if(!human_victim.get_bodypart(body_zone) && !animal_origin)
user.temporarilyRemoveItemFromInventory(src, TRUE)
if(!attach_limb(victim))
to_chat(user, "<span class='warning'>[human_victim]'s body rejects [src]!</span>")
to_chat(user, span_warning("[human_victim]'s body rejects [src]!"))
forceMove(human_victim.loc)
if(human_victim == user)
human_victim.visible_message("<span class='warning'>[human_victim] jams [src] into [human_victim.p_their()] empty socket!</span>",\
"<span class='notice'>You force [src] into your empty socket, and it locks into place!</span>")
human_victim.visible_message(span_warning("[human_victim] jams [src] into [human_victim.p_their()] empty socket!"),\
span_notice("You force [src] into your empty socket, and it locks into place!"))
else
human_victim.visible_message("<span class='warning'>[user] jams [src] into [human_victim]'s empty socket!</span>",\
"<span class='notice'>[user] forces [src] into your empty socket, and it locks into place!</span>")
human_victim.visible_message(span_warning("[user] jams [src] into [human_victim]'s empty socket!"),\
span_notice("[user] forces [src] into your empty socket, and it locks into place!"))
return
..()
@@ -168,11 +168,11 @@
if(weapon.get_sharpness())
add_fingerprint(user)
if(!contents.len)
to_chat(user, "<span class='warning'>There is nothing left inside [src]!</span>")
to_chat(user, span_warning("There is nothing left inside [src]!"))
return
playsound(loc, 'sound/weapons/slice.ogg', 50, TRUE, -1)
user.visible_message("<span class='warning'>[user] begins to cut open [src].</span>",\
"<span class='notice'>You begin to cut open [src]...</span>")
user.visible_message(span_warning("[user] begins to cut open [src]."),\
span_notice("You begin to cut open [src]..."))
if(do_after(user, 54, target = src))
drop_organs(user, TRUE)
else
@@ -937,7 +937,7 @@
dam_mul *= iter_wound.damage_mulitplier_penalty
if(!LAZYLEN(wounds) && current_gauze && !replaced) // no more wounds = no need for the gauze anymore
owner.visible_message("<span class='notice'>\The [current_gauze] on [owner]'s [name] falls away.</span>", "<span class='notice'>The [current_gauze] on your [name] falls away.</span>")
owner.visible_message(span_notice("\The [current_gauze] on [owner]'s [name] falls away."), span_notice("The [current_gauze] on your [name] falls away."))
QDEL_NULL(current_gauze)
wound_damage_multiplier = dam_mul
@@ -1009,7 +1009,7 @@
return
current_gauze.absorption_capacity -= seep_amt
if(current_gauze.absorption_capacity <= 0)
owner.visible_message("<span class='danger'>\The [current_gauze] on [owner]'s [name] falls away in rags.</span>", "<span class='warning'>\The [current_gauze] on your [name] falls away in rags.</span>", vision_distance=COMBAT_MESSAGE_RANGE)
owner.visible_message(span_danger("\The [current_gauze] on [owner]'s [name] falls away in rags."), span_warning("\The [current_gauze] on your [name] falls away in rags."), vision_distance=COMBAT_MESSAGE_RANGE)
QDEL_NULL(current_gauze)
SEND_SIGNAL(src, COMSIG_BODYPART_GAUZE_DESTROYED)
@@ -16,7 +16,7 @@
var/obj/item/bodypart/affecting = limb_owner.get_bodypart(BODY_ZONE_CHEST)
affecting.receive_damage(clamp(brute_dam/2 * affecting.body_damage_coeff, 15, 50), clamp(burn_dam/2 * affecting.body_damage_coeff, 0, 50), wound_bonus=CANT_WOUND) //Damage the chest based on limb's existing damage
if(!silent)
limb_owner.visible_message("<span class='danger'><B>[limb_owner]'s [name] is violently dismembered!</B></span>")
limb_owner.visible_message(span_danger("<B>[limb_owner]'s [name] is violently dismembered!</B>"))
INVOKE_ASYNC(limb_owner, /mob.proc/emote, "scream")
playsound(get_turf(limb_owner), 'sound/effects/dismember.ogg', 80, TRUE)
SEND_SIGNAL(limb_owner, COMSIG_ADD_MOOD_EVENT, "dismembered", /datum/mood_event/dismembered)
@@ -118,7 +118,7 @@
if(phantom_owner.dna)
for(var/datum/mutation/human/mutation as anything in phantom_owner.dna.mutations) //some mutations require having specific limbs to be kept.
if(mutation.limb_req && mutation.limb_req == body_zone)
to_chat(phantom_owner, "<span class='warning'>You feel your [mutation] deactivating from the loss of your [body_zone]!</span>")
to_chat(phantom_owner, span_warning("You feel your [mutation] deactivating from the loss of your [body_zone]!"))
phantom_owner.dna.force_lose(mutation)
for(var/obj/item/organ/organ as anything in phantom_owner.internal_organs) //internal organs inside the dismembered limb are dropped.
+12 -12
View File
@@ -71,29 +71,29 @@
. = ..()
if(status == BODYPART_ORGANIC)
if(!brain)
. += "<span class='info'>The brain has been removed from [src].</span>"
. += span_info("The brain has been removed from [src].")
else if(brain.suicided || brainmob?.suiciding)
. += "<span class='info'>There's a miserable expression on [real_name]'s face; they must have really hated life. There's no hope of recovery.</span>"
. += span_info("There's a miserable expression on [real_name]'s face; they must have really hated life. There's no hope of recovery.")
else if(brainmob?.health <= HEALTH_THRESHOLD_DEAD)
. += "<span class='info'>It's leaking some kind of... clear fluid? The brain inside must be in pretty bad shape.</span>"
. += span_info("It's leaking some kind of... clear fluid? The brain inside must be in pretty bad shape.")
else if(brainmob)
if(brainmob.key || brainmob.get_ghost(FALSE, TRUE))
. += "<span class='info'>Its muscles are twitching slightly... It seems to have some life still in it.</span>"
. += span_info("Its muscles are twitching slightly... It seems to have some life still in it.")
else
. += "<span class='info'>It's completely lifeless. Perhaps there'll be a chance for them later.</span>"
. += span_info("It's completely lifeless. Perhaps there'll be a chance for them later.")
else if(brain?.decoy_override)
. += "<span class='info'>It's completely lifeless. Perhaps there'll be a chance for them later.</span>"
. += span_info("It's completely lifeless. Perhaps there'll be a chance for them later.")
else
. += "<span class='info'>It's completely lifeless.</span>"
. += span_info("It's completely lifeless.")
if(!eyes)
. += "<span class='info'>[real_name]'s eyes have been removed.</span>"
. += span_info("[real_name]'s eyes have been removed.")
if(!ears)
. += "<span class='info'>[real_name]'s ears have been removed.</span>"
. += span_info("[real_name]'s ears have been removed.")
if(!tongue)
. += "<span class='info'>[real_name]'s tongue has been removed.</span>"
. += span_info("[real_name]'s tongue has been removed.")
/obj/item/bodypart/head/can_dismember(obj/item/item)
@@ -108,14 +108,14 @@
for(var/obj/item/head_item in src)
if(head_item == brain)
if(user)
user.visible_message("<span class='warning'>[user] saws [src] open and pulls out a brain!</span>", "<span class='notice'>You saw [src] open and pull out a brain.</span>")
user.visible_message(span_warning("[user] saws [src] open and pulls out a brain!"), span_notice("You saw [src] open and pull out a brain."))
if(brainmob)
brainmob.container = null
brainmob.forceMove(brain)
brain.brainmob = brainmob
brainmob = null
if(violent_removal && prob(rand(80, 100))) //ghetto surgery can damage the brain.
to_chat(user, "<span class='warning'>[brain] was damaged in the process!</span>")
to_chat(user, span_warning("[brain] was damaged in the process!"))
brain.setOrganDamage(brain.maxHealth)
brain.forceMove(head_turf)
brain = null
+4 -4
View File
@@ -117,7 +117,7 @@
if(bodypart_disabled)
owner.set_usable_hands(owner.usable_hands - 1)
if(owner.stat < UNCONSCIOUS)
to_chat(owner, "<span class='userdanger'>Your lose control of your [name]!</span>")
to_chat(owner, span_userdanger("Your lose control of your [name]!"))
if(held_index)
owner.dropItemToGround(owner.get_item_for_held_index(held_index))
else if(!bodypart_disabled)
@@ -212,7 +212,7 @@
if(bodypart_disabled)
owner.set_usable_hands(owner.usable_hands - 1)
if(owner.stat < UNCONSCIOUS)
to_chat(owner, "<span class='userdanger'>Your lose control of your [name]!</span>")
to_chat(owner, span_userdanger("Your lose control of your [name]!"))
if(held_index)
owner.dropItemToGround(owner.get_item_for_held_index(held_index))
else if(!bodypart_disabled)
@@ -304,7 +304,7 @@
if(bodypart_disabled)
owner.set_usable_legs(owner.usable_legs - 1)
if(owner.stat < UNCONSCIOUS)
to_chat(owner, "<span class='userdanger'>Your lose control of your [name]!</span>")
to_chat(owner, span_userdanger("Your lose control of your [name]!"))
else if(!bodypart_disabled)
owner.set_usable_legs(owner.usable_legs + 1)
@@ -395,7 +395,7 @@
if(bodypart_disabled)
owner.set_usable_legs(owner.usable_legs - 1)
if(owner.stat < UNCONSCIOUS)
to_chat(owner, "<span class='userdanger'>Your lose control of your [name]!</span>")
to_chat(owner, span_userdanger("Your lose control of your [name]!"))
else if(!bodypart_disabled)
owner.set_usable_legs(owner.usable_legs + 1)
@@ -140,23 +140,23 @@
/obj/item/bodypart/chest/robot/attackby(obj/item/weapon, mob/user, params)
if(istype(weapon, /obj/item/stock_parts/cell))
if(cell)
to_chat(user, "<span class='warning'>You have already inserted a cell!</span>")
to_chat(user, span_warning("You have already inserted a cell!"))
return
else
if(!user.transferItemToLoc(weapon, src))
return
cell = weapon
to_chat(user, "<span class='notice'>You insert the cell.</span>")
to_chat(user, span_notice("You insert the cell."))
else if(istype(weapon, /obj/item/stack/cable_coil))
if(wired)
to_chat(user, "<span class='warning'>You have already inserted wire!</span>")
to_chat(user, span_warning("You have already inserted wire!"))
return
var/obj/item/stack/cable_coil/coil = weapon
if (coil.use(1))
wired = TRUE
to_chat(user, "<span class='notice'>You insert the wire.</span>")
to_chat(user, span_notice("You insert the wire."))
else
to_chat(user, "<span class='warning'>You need one length of coil to wire it!</span>")
to_chat(user, span_warning("You need one length of coil to wire it!"))
else
return ..()
@@ -166,7 +166,7 @@
return
. = TRUE
cutter.play_tool_sound(src)
to_chat(user, "<span class='notice'>You cut the wires out of [src].</span>")
to_chat(user, span_notice("You cut the wires out of [src]."))
new /obj/item/stack/cable_coil(drop_location(), 1)
wired = FALSE
@@ -174,10 +174,10 @@
..()
. = TRUE
if(!cell)
to_chat(user, "<span class='warning'>There's no power cell installed in [src]!</span>")
to_chat(user, span_warning("There's no power cell installed in [src]!"))
return
screwtool.play_tool_sound(src)
to_chat(user, "<span class='notice'>Remove [cell] from [src].</span>")
to_chat(user, span_notice("Remove [cell] from [src]."))
cell.forceMove(drop_location())
cell = null
@@ -186,14 +186,14 @@
. = ..()
if(cell)
. += {"It has a [cell] inserted.\n
<span class='info'>You can use a <b>screwdriver</b> to remove [cell].</span>"}
[span_info("You can use a <b>screwdriver</b> to remove [cell].")]"}
else
. += "<span class='info'>It has an empty port for a <b>power cell</b>.</span>"
. += span_info("It has an empty port for a <b>power cell</b>.")
if(wired)
. += "Its all wired up[cell ? " and ready for usage" : ""].\n"+\
"<span class='info'>You can use <b>wirecutters</b> to remove the wiring.</span>"
span_info("You can use <b>wirecutters</b> to remove the wiring.")
else
. += "<span class='info'>It has a couple spots that still need to be <b>wired</b>.</span>"
. += span_info("It has a couple spots that still need to be <b>wired</b>.")
/obj/item/bodypart/chest/robot/drop_organs(mob/user, violent_removal)
if(wired)
@@ -244,25 +244,25 @@
/obj/item/bodypart/head/robot/examine(mob/user)
. = ..()
if(!flash1 && !flash2)
. += "<span class='info'>It has two empty eye sockets for <b>flashes</b>.</span>"
. += span_info("It has two empty eye sockets for <b>flashes</b>.")
else
var/single_flash = FALSE
if(!flash1 || !flash2)
single_flash = TRUE
. += {"One of its eye sockets is currently occupied by a flash.\n
<span class='info'>It has an empty eye socket for another <b>flash</b>.</span>"}
[span_info("It has an empty eye socket for another <b>flash</b>.")]"}
else
. += "It has two eye sockets occupied by flashes."
. += "<span class='notice'>You can remove the seated flash[single_flash ? "":"es"] with a <b>crowbar</b>.</span>"
. += span_notice("You can remove the seated flash[single_flash ? "":"es"] with a <b>crowbar</b>.")
/obj/item/bodypart/head/robot/attackby(obj/item/weapon, mob/user, params)
if(istype(weapon, /obj/item/assembly/flash/handheld))
var/obj/item/assembly/flash/handheld/flash = weapon
if(flash1 && flash2)
to_chat(user, "<span class='warning'>You have already inserted the eyes!</span>")
to_chat(user, span_warning("You have already inserted the eyes!"))
return
else if(flash.burnt_out)
to_chat(user, "<span class='warning'>You can't use a broken flash!</span>")
to_chat(user, span_warning("You can't use a broken flash!"))
return
else
if(!user.transferItemToLoc(flash, src))
@@ -271,7 +271,7 @@
flash2 = flash
else
flash1 = flash
to_chat(user, "<span class='notice'>You insert the flash into the eye socket.</span>")
to_chat(user, span_notice("You insert the flash into the eye socket."))
return
return ..()
@@ -279,7 +279,7 @@
..()
if(flash1 || flash2)
prytool.play_tool_sound(src)
to_chat(user, "<span class='notice'>You remove the flash from [src].</span>")
to_chat(user, span_notice("You remove the flash from [src]."))
if(flash1)
flash1.forceMove(drop_location())
flash1 = null
@@ -287,7 +287,7 @@
flash2.forceMove(drop_location())
flash2 = null
else
to_chat(user, "<span class='warning'>There is no flash to remove from [src].</span>")
to_chat(user, span_warning("There is no flash to remove from [src]."))
return TRUE
+24 -24
View File
@@ -58,24 +58,24 @@
/datum/surgery_step/repair_bone_hairline/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(surgery.operated_wound)
display_results(user, target, "<span class='notice'>You begin to repair the fracture in [target]'s [parse_zone(user.zone_selected)]...</span>",
"<span class='notice'>[user] begins to repair the fracture in [target]'s [parse_zone(user.zone_selected)] with [tool].</span>",
"<span class='notice'>[user] begins to repair the fracture in [target]'s [parse_zone(user.zone_selected)].</span>")
display_results(user, target, span_notice("You begin to repair the fracture in [target]'s [parse_zone(user.zone_selected)]..."),
span_notice("[user] begins to repair the fracture in [target]'s [parse_zone(user.zone_selected)] with [tool]."),
span_notice("[user] begins to repair the fracture in [target]'s [parse_zone(user.zone_selected)]."))
else
user.visible_message("<span class='notice'>[user] looks for [target]'s [parse_zone(user.zone_selected)].</span>", "<span class='notice'>You look for [target]'s [parse_zone(user.zone_selected)]...</span>")
user.visible_message(span_notice("[user] looks for [target]'s [parse_zone(user.zone_selected)]."), span_notice("You look for [target]'s [parse_zone(user.zone_selected)]..."))
/datum/surgery_step/repair_bone_hairline/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
if(surgery.operated_wound)
if(istype(tool, /obj/item/stack))
var/obj/item/stack/used_stack = tool
used_stack.use(1)
display_results(user, target, "<span class='notice'>You successfully repair the fracture in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] successfully repairs the fracture in [target]'s [parse_zone(target_zone)] with [tool]!</span>",
"<span class='notice'>[user] successfully repairs the fracture in [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You successfully repair the fracture in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] successfully repairs the fracture in [target]'s [parse_zone(target_zone)] with [tool]!"),
span_notice("[user] successfully repairs the fracture in [target]'s [parse_zone(target_zone)]!"))
log_combat(user, target, "repaired a hairline fracture in", addition="COMBAT_MODE: [uppertext(user.combat_mode)]")
qdel(surgery.operated_wound)
else
to_chat(user, "<span class='warning'>[target] has no hairline fracture there!</span>")
to_chat(user, span_warning("[target] has no hairline fracture there!"))
return ..()
/datum/surgery_step/repair_bone_hairline/failure(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, fail_prob = 0)
@@ -98,23 +98,23 @@
/datum/surgery_step/reset_compound_fracture/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(surgery.operated_wound)
display_results(user, target, "<span class='notice'>You begin to reset the bone in [target]'s [parse_zone(user.zone_selected)]...</span>",
"<span class='notice'>[user] begins to reset the bone in [target]'s [parse_zone(user.zone_selected)] with [tool].</span>",
"<span class='notice'>[user] begins to reset the bone in [target]'s [parse_zone(user.zone_selected)].</span>")
display_results(user, target, span_notice("You begin to reset the bone in [target]'s [parse_zone(user.zone_selected)]..."),
span_notice("[user] begins to reset the bone in [target]'s [parse_zone(user.zone_selected)] with [tool]."),
span_notice("[user] begins to reset the bone in [target]'s [parse_zone(user.zone_selected)]."))
else
user.visible_message("<span class='notice'>[user] looks for [target]'s [parse_zone(user.zone_selected)].</span>", "<span class='notice'>You look for [target]'s [parse_zone(user.zone_selected)]...</span>")
user.visible_message(span_notice("[user] looks for [target]'s [parse_zone(user.zone_selected)]."), span_notice("You look for [target]'s [parse_zone(user.zone_selected)]..."))
/datum/surgery_step/reset_compound_fracture/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
if(surgery.operated_wound)
if(istype(tool, /obj/item/stack))
var/obj/item/stack/used_stack = tool
used_stack.use(1)
display_results(user, target, "<span class='notice'>You successfully reset the bone in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] successfully resets the bone in [target]'s [parse_zone(target_zone)] with [tool]!</span>",
"<span class='notice'>[user] successfully resets the bone in [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You successfully reset the bone in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] successfully resets the bone in [target]'s [parse_zone(target_zone)] with [tool]!"),
span_notice("[user] successfully resets the bone in [target]'s [parse_zone(target_zone)]!"))
log_combat(user, target, "reset a compound fracture in", addition="COMBAT MODE: [uppertext(user.combat_mode)]")
else
to_chat(user, "<span class='warning'>[target] has no compound fracture there!</span>")
to_chat(user, span_warning("[target] has no compound fracture there!"))
return ..()
/datum/surgery_step/reset_compound_fracture/failure(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, fail_prob = 0)
@@ -136,24 +136,24 @@
/datum/surgery_step/repair_bone_compound/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(surgery.operated_wound)
display_results(user, target, "<span class='notice'>You begin to repair the fracture in [target]'s [parse_zone(user.zone_selected)]...</span>",
"<span class='notice'>[user] begins to repair the fracture in [target]'s [parse_zone(user.zone_selected)] with [tool].</span>",
"<span class='notice'>[user] begins to repair the fracture in [target]'s [parse_zone(user.zone_selected)].</span>")
display_results(user, target, span_notice("You begin to repair the fracture in [target]'s [parse_zone(user.zone_selected)]..."),
span_notice("[user] begins to repair the fracture in [target]'s [parse_zone(user.zone_selected)] with [tool]."),
span_notice("[user] begins to repair the fracture in [target]'s [parse_zone(user.zone_selected)]."))
else
user.visible_message("<span class='notice'>[user] looks for [target]'s [parse_zone(user.zone_selected)].</span>", "<span class='notice'>You look for [target]'s [parse_zone(user.zone_selected)]...</span>")
user.visible_message(span_notice("[user] looks for [target]'s [parse_zone(user.zone_selected)]."), span_notice("You look for [target]'s [parse_zone(user.zone_selected)]..."))
/datum/surgery_step/repair_bone_compound/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
if(surgery.operated_wound)
if(istype(tool, /obj/item/stack))
var/obj/item/stack/used_stack = tool
used_stack.use(1)
display_results(user, target, "<span class='notice'>You successfully repair the fracture in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] successfully repairs the fracture in [target]'s [parse_zone(target_zone)] with [tool]!</span>",
"<span class='notice'>[user] successfully repairs the fracture in [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You successfully repair the fracture in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] successfully repairs the fracture in [target]'s [parse_zone(target_zone)] with [tool]!"),
span_notice("[user] successfully repairs the fracture in [target]'s [parse_zone(target_zone)]!"))
log_combat(user, target, "repaired a compound fracture in", addition="COMBAT MODE: [uppertext(user.combat_mode)]")
qdel(surgery.operated_wound)
else
to_chat(user, "<span class='warning'>[target] has no compound fracture there!</span>")
to_chat(user, span_warning("[target] has no compound fracture there!"))
return ..()
/datum/surgery_step/repair_bone_compound/failure(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, fail_prob = 0)
+10 -10
View File
@@ -28,14 +28,14 @@
return TRUE
/datum/surgery_step/fix_brain/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to fix [target]'s brain...</span>",
"<span class='notice'>[user] begins to fix [target]'s brain.</span>",
"<span class='notice'>[user] begins to perform surgery on [target]'s brain.</span>")
display_results(user, target, span_notice("You begin to fix [target]'s brain..."),
span_notice("[user] begins to fix [target]'s brain."),
span_notice("[user] begins to perform surgery on [target]'s brain."))
/datum/surgery_step/fix_brain/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
display_results(user, target, "<span class='notice'>You succeed in fixing [target]'s brain.</span>",
"<span class='notice'>[user] successfully fixes [target]'s brain!</span>",
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
display_results(user, target, span_notice("You succeed in fixing [target]'s brain."),
span_notice("[user] successfully fixes [target]'s brain!"),
span_notice("[user] completes the surgery on [target]'s brain."))
if(target.mind?.has_antag_datum(/datum/antagonist/brainwashed))
target.mind.remove_antag_datum(/datum/antagonist/brainwashed)
target.setOrganLoss(ORGAN_SLOT_BRAIN, target.getOrganLoss(ORGAN_SLOT_BRAIN) - 50) //we set damage in this case in order to clear the "failing" flag
@@ -46,11 +46,11 @@
/datum/surgery_step/fix_brain/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(target.getorganslot(ORGAN_SLOT_BRAIN))
display_results(user, target, "<span class='warning'>You screw up, causing more damage!</span>",
"<span class='warning'>[user] screws up, causing brain damage!</span>",
"<span class='notice'>[user] completes the surgery on [target]'s brain.</span>")
display_results(user, target, span_warning("You screw up, causing more damage!"),
span_warning("[user] screws up, causing brain damage!"),
span_notice("[user] completes the surgery on [target]'s brain."))
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 60)
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY)
else
user.visible_message("<span class='warning'>[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore.</span>", "<span class='warning'>You suddenly notice that the brain you were working on is not there anymore.</span>")
user.visible_message(span_warning("[user] suddenly notices that the brain [user.p_they()] [user.p_were()] working on is not there anymore."), span_warning("You suddenly notice that the brain you were working on is not there anymore."))
return FALSE
+20 -20
View File
@@ -60,23 +60,23 @@
if(surgery.operated_wound)
var/datum/wound/burn/burn_wound = surgery.operated_wound
if(burn_wound.infestation <= 0)
to_chat(user, "<span class='notice'>[target]'s [parse_zone(user.zone_selected)] has no infected flesh to remove!</span>")
to_chat(user, span_notice("[target]'s [parse_zone(user.zone_selected)] has no infected flesh to remove!"))
surgery.status++
repeatable = FALSE
return
display_results(user, target, "<span class='notice'>You begin to excise infected flesh from [target]'s [parse_zone(user.zone_selected)]...</span>",
"<span class='notice'>[user] begins to excise infected flesh from [target]'s [parse_zone(user.zone_selected)] with [tool].</span>",
"<span class='notice'>[user] begins to excise infected flesh from [target]'s [parse_zone(user.zone_selected)].</span>")
display_results(user, target, span_notice("You begin to excise infected flesh from [target]'s [parse_zone(user.zone_selected)]..."),
span_notice("[user] begins to excise infected flesh from [target]'s [parse_zone(user.zone_selected)] with [tool]."),
span_notice("[user] begins to excise infected flesh from [target]'s [parse_zone(user.zone_selected)]."))
else
user.visible_message("<span class='notice'>[user] looks for [target]'s [parse_zone(user.zone_selected)].</span>", "<span class='notice'>You look for [target]'s [parse_zone(user.zone_selected)]...</span>")
user.visible_message(span_notice("[user] looks for [target]'s [parse_zone(user.zone_selected)]."), span_notice("You look for [target]'s [parse_zone(user.zone_selected)]..."))
/datum/surgery_step/debride/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
var/datum/wound/burn/burn_wound = surgery.operated_wound
if(burn_wound)
var/progress_text = get_progress(user, target, burn_wound)
display_results(user, target, "<span class='notice'>You successfully excise some of the infected flesh from [target]'s [parse_zone(target_zone)][progress_text].</span>",
"<span class='notice'>[user] successfully excises some of the infected flesh from [target]'s [parse_zone(target_zone)] with [tool]!</span>",
"<span class='notice'>[user] successfully excises some of the infected flesh from [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You successfully excise some of the infected flesh from [target]'s [parse_zone(target_zone)][progress_text]."),
span_notice("[user] successfully excises some of the infected flesh from [target]'s [parse_zone(target_zone)] with [tool]!"),
span_notice("[user] successfully excises some of the infected flesh from [target]'s [parse_zone(target_zone)]!"))
log_combat(user, target, "excised infected flesh in", addition="COMBAT MODE: [uppertext(user.combat_mode)]")
surgery.operated_bodypart.receive_damage(brute=3, wound_bonus=CANT_WOUND)
burn_wound.infestation -= infestation_removed
@@ -84,14 +84,14 @@
if(burn_wound.infestation <= 0)
repeatable = FALSE
else
to_chat(user, "<span class='warning'>[target] has no infected flesh there!</span>")
to_chat(user, span_warning("[target] has no infected flesh there!"))
return ..()
/datum/surgery_step/debride/failure(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, fail_prob = 0)
..()
display_results(user, target, "<span class='notice'>You carve away some of the healthy flesh from [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] carves away some of the healthy flesh from [target]'s [parse_zone(target_zone)] with [tool]!</span>",
"<span class='notice'>[user] carves away some of the healthy flesh from [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You carve away some of the healthy flesh from [target]'s [parse_zone(target_zone)]."),
span_notice("[user] carves away some of the healthy flesh from [target]'s [parse_zone(target_zone)] with [tool]!"),
span_notice("[user] carves away some of the healthy flesh from [target]'s [parse_zone(target_zone)]!"))
surgery.operated_bodypart.receive_damage(brute=rand(4,8), sharpness=TRUE)
/datum/surgery_step/debride/initiate(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, try_to_fail = FALSE)
@@ -118,25 +118,25 @@
/datum/surgery_step/dress/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
var/datum/wound/burn/burn_wound = surgery.operated_wound
if(burn_wound)
display_results(user, target, "<span class='notice'>You begin to dress the burns on [target]'s [parse_zone(user.zone_selected)]...</span>",
"<span class='notice'>[user] begins to dress the burns on [target]'s [parse_zone(user.zone_selected)] with [tool].</span>",
"<span class='notice'>[user] begins to dress the burns on [target]'s [parse_zone(user.zone_selected)].</span>")
display_results(user, target, span_notice("You begin to dress the burns on [target]'s [parse_zone(user.zone_selected)]..."),
span_notice("[user] begins to dress the burns on [target]'s [parse_zone(user.zone_selected)] with [tool]."),
span_notice("[user] begins to dress the burns on [target]'s [parse_zone(user.zone_selected)]."))
else
user.visible_message("<span class='notice'>[user] looks for [target]'s [parse_zone(user.zone_selected)].</span>", "<span class='notice'>You look for [target]'s [parse_zone(user.zone_selected)]...</span>")
user.visible_message(span_notice("[user] looks for [target]'s [parse_zone(user.zone_selected)]."), span_notice("You look for [target]'s [parse_zone(user.zone_selected)]..."))
/datum/surgery_step/dress/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
var/datum/wound/burn/burn_wound = surgery.operated_wound
if(burn_wound)
display_results(user, target, "<span class='notice'>You successfully wrap [target]'s [parse_zone(target_zone)] with [tool].</span>",
"<span class='notice'>[user] successfully wraps [target]'s [parse_zone(target_zone)] with [tool]!</span>",
"<span class='notice'>[user] successfully wraps [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You successfully wrap [target]'s [parse_zone(target_zone)] with [tool]."),
span_notice("[user] successfully wraps [target]'s [parse_zone(target_zone)] with [tool]!"),
span_notice("[user] successfully wraps [target]'s [parse_zone(target_zone)]!"))
log_combat(user, target, "dressed burns in", addition="COMBAT MODE: [uppertext(user.combat_mode)]")
burn_wound.sanitization += sanitization_added
burn_wound.flesh_healing += flesh_healing_added
var/obj/item/bodypart/the_part = target.get_bodypart(target_zone)
the_part.apply_gauze(tool)
else
to_chat(user, "<span class='warning'>[target] has no burns there!</span>")
to_chat(user, span_warning("[target] has no burns there!"))
return ..()
/datum/surgery_step/dress/failure(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, fail_prob = 0)
+14 -14
View File
@@ -29,35 +29,35 @@
var/obj/item/bodypart/chest/target_chest = target.get_bodypart(BODY_ZONE_CHEST)
item_for_cavity = target_chest.cavity_item
if(tool)
display_results(user, target, "<span class='notice'>You begin to insert [tool] into [target]'s [target_zone]...</span>",
"<span class='notice'>[user] begins to insert [tool] into [target]'s [target_zone].</span>",
"<span class='notice'>[user] begins to insert [tool.w_class > WEIGHT_CLASS_SMALL ? tool : "something"] into [target]'s [target_zone].</span>")
display_results(user, target, span_notice("You begin to insert [tool] into [target]'s [target_zone]..."),
span_notice("[user] begins to insert [tool] into [target]'s [target_zone]."),
span_notice("[user] begins to insert [tool.w_class > WEIGHT_CLASS_SMALL ? tool : "something"] into [target]'s [target_zone]."))
else
display_results(user, target, "<span class='notice'>You check for items in [target]'s [target_zone]...</span>",
"<span class='notice'>[user] checks for items in [target]'s [target_zone].</span>",
"<span class='notice'>[user] looks for something in [target]'s [target_zone].</span>")
display_results(user, target, span_notice("You check for items in [target]'s [target_zone]..."),
span_notice("[user] checks for items in [target]'s [target_zone]."),
span_notice("[user] looks for something in [target]'s [target_zone]."))
/datum/surgery_step/handle_cavity/success(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool, datum/surgery/surgery = FALSE)
var/obj/item/bodypart/chest/target_chest = target.get_bodypart(BODY_ZONE_CHEST)
if(tool)
if(item_for_cavity || tool.w_class > WEIGHT_CLASS_NORMAL || HAS_TRAIT(tool, TRAIT_NODROP) || istype(tool, /obj/item/organ))
to_chat(user, "<span class='warning'>You can't seem to fit [tool] in [target]'s [target_zone]!</span>")
to_chat(user, span_warning("You can't seem to fit [tool] in [target]'s [target_zone]!"))
return FALSE
else
display_results(user, target, "<span class='notice'>You stuff [tool] into [target]'s [target_zone].</span>",
"<span class='notice'>[user] stuffs [tool] into [target]'s [target_zone]!</span>",
"<span class='notice'>[user] stuffs [tool.w_class > WEIGHT_CLASS_SMALL ? tool : "something"] into [target]'s [target_zone].</span>")
display_results(user, target, span_notice("You stuff [tool] into [target]'s [target_zone]."),
span_notice("[user] stuffs [tool] into [target]'s [target_zone]!"),
span_notice("[user] stuffs [tool.w_class > WEIGHT_CLASS_SMALL ? tool : "something"] into [target]'s [target_zone]."))
user.transferItemToLoc(tool, target, TRUE)
target_chest.cavity_item = tool
return ..()
else
if(item_for_cavity)
display_results(user, target, "<span class='notice'>You pull [item_for_cavity] out of [target]'s [target_zone].</span>",
"<span class='notice'>[user] pulls [item_for_cavity] out of [target]'s [target_zone]!</span>",
"<span class='notice'>[user] pulls [item_for_cavity.w_class > WEIGHT_CLASS_SMALL ? item_for_cavity : "something"] out of [target]'s [target_zone].</span>")
display_results(user, target, span_notice("You pull [item_for_cavity] out of [target]'s [target_zone]."),
span_notice("[user] pulls [item_for_cavity] out of [target]'s [target_zone]!"),
span_notice("[user] pulls [item_for_cavity.w_class > WEIGHT_CLASS_SMALL ? item_for_cavity : "something"] out of [target]'s [target_zone]."))
user.put_in_hands(item_for_cavity)
target_chest.cavity_item = null
return ..()
else
to_chat(user, "<span class='warning'>You don't find anything in [target]'s [target_zone].</span>")
to_chat(user, span_warning("You don't find anything in [target]'s [target_zone]."))
return FALSE
+7 -7
View File
@@ -22,17 +22,17 @@
time = 16
/datum/surgery_step/extract_core/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to extract a core from [target]...</span>",
"<span class='notice'>[user] begins to extract a core from [target].</span>",
"<span class='notice'>[user] begins to extract a core from [target].</span>")
display_results(user, target, span_notice("You begin to extract a core from [target]..."),
span_notice("[user] begins to extract a core from [target]."),
span_notice("[user] begins to extract a core from [target]."))
/datum/surgery_step/extract_core/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
var/mob/living/simple_animal/slime/target_slime = target
if(target_slime.cores > 0)
target_slime.cores--
display_results(user, target, "<span class='notice'>You successfully extract a core from [target]. [target_slime.cores] core\s remaining.</span>",
"<span class='notice'>[user] successfully extracts a core from [target]!</span>",
"<span class='notice'>[user] successfully extracts a core from [target]!</span>")
display_results(user, target, span_notice("You successfully extract a core from [target]. [target_slime.cores] core\s remaining."),
span_notice("[user] successfully extracts a core from [target]!"),
span_notice("[user] successfully extracts a core from [target]!"))
new target_slime.coretype(target_slime.loc)
@@ -42,5 +42,5 @@
else
return FALSE
else
to_chat(user, "<span class='warning'>There aren't any cores left in [target]!</span>")
to_chat(user, span_warning("There aren't any cores left in [target]!"))
return ..()
+17 -17
View File
@@ -29,16 +29,16 @@
time = 16
/datum/surgery_step/incise_heart/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to make an incision in [target]'s heart...</span>",
"<span class='notice'>[user] begins to make an incision in [target]'s heart.</span>",
"<span class='notice'>[user] begins to make an incision in [target]'s heart.</span>")
display_results(user, target, span_notice("You begin to make an incision in [target]'s heart..."),
span_notice("[user] begins to make an incision in [target]'s heart."),
span_notice("[user] begins to make an incision in [target]'s heart."))
/datum/surgery_step/incise_heart/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
if(ishuman(target))
var/mob/living/carbon/human/target_human = target
if (!(NOBLOOD in target_human.dna.species.species_traits))
display_results(user, target, "<span class='notice'>Blood pools around the incision in [target_human]'s heart.</span>",
"<span class='notice'>Blood pools around the incision in [target_human]'s heart.</span>",
display_results(user, target, span_notice("Blood pools around the incision in [target_human]'s heart."),
span_notice("Blood pools around the incision in [target_human]'s heart."),
"")
var/obj/item/bodypart/target_bodypart = target_human.get_bodypart(target_zone)
target_bodypart.generic_bleedstacks += 10
@@ -48,9 +48,9 @@
/datum/surgery_step/incise_heart/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(ishuman(target))
var/mob/living/carbon/human/target_human = target
display_results(user, target, "<span class='warning'>You screw up, cutting too deeply into the heart!</span>",
"<span class='warning'>[user] screws up, causing blood to spurt out of [target_human]'s chest!</span>",
"<span class='warning'>[user] screws up, causing blood to spurt out of [target_human]'s chest!</span>")
display_results(user, target, span_warning("You screw up, cutting too deeply into the heart!"),
span_warning("[user] screws up, causing blood to spurt out of [target_human]'s chest!"),
span_warning("[user] screws up, causing blood to spurt out of [target_human]'s chest!"))
var/obj/item/bodypart/target_bodypart = target_human.get_bodypart(target_zone)
target_bodypart.generic_bleedstacks += 10
target_human.adjustOrganLoss(ORGAN_SLOT_HEART, 10)
@@ -67,26 +67,26 @@
time = 90
/datum/surgery_step/coronary_bypass/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to graft a bypass onto [target]'s heart...</span>",
"<span class='notice'>[user] begins to graft something onto [target]'s heart!</span>",
"<span class='notice'>[user] begins to graft something onto [target]'s heart!</span>")
display_results(user, target, span_notice("You begin to graft a bypass onto [target]'s heart..."),
span_notice("[user] begins to graft something onto [target]'s heart!"),
span_notice("[user] begins to graft something onto [target]'s heart!"))
/datum/surgery_step/coronary_bypass/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
target.setOrganLoss(ORGAN_SLOT_HEART, 60)
var/obj/item/organ/heart/target_heart = target.getorganslot(ORGAN_SLOT_HEART)
if(target_heart) //slightly worrying if we lost our heart mid-operation, but that's life
target_heart.operated = TRUE
display_results(user, target, "<span class='notice'>You successfully graft a bypass onto [target]'s heart.</span>",
"<span class='notice'>[user] finishes grafting something onto [target]'s heart.</span>",
"<span class='notice'>[user] finishes grafting something onto [target]'s heart.</span>")
display_results(user, target, span_notice("You successfully graft a bypass onto [target]'s heart."),
span_notice("[user] finishes grafting something onto [target]'s heart."),
span_notice("[user] finishes grafting something onto [target]'s heart."))
return ..()
/datum/surgery_step/coronary_bypass/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(ishuman(target))
var/mob/living/carbon/human/target_human = target
display_results(user, target, "<span class='warning'>You screw up in attaching the graft, and it tears off, tearing part of the heart!</span>",
"<span class='warning'>[user] screws up, causing blood to spurt out of [target_human]'s chest profusely!</span>",
"<span class='warning'>[user] screws up, causing blood to spurt out of [target_human]'s chest profusely!</span>")
display_results(user, target, span_warning("You screw up in attaching the graft, and it tears off, tearing part of the heart!"),
span_warning("[user] screws up, causing blood to spurt out of [target_human]'s chest profusely!"),
span_warning("[user] screws up, causing blood to spurt out of [target_human]'s chest profusely!"))
target_human.adjustOrganLoss(ORGAN_SLOT_HEART, 20)
var/obj/item/bodypart/target_bodypart = target_human.get_bodypart(target_zone)
target_bodypart.generic_bleedstacks += 30
+7 -7
View File
@@ -11,9 +11,9 @@
time = 16
/datum/surgery_step/insert_pill/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to wedge [tool] in [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to wedge \the [tool] in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to wedge something in [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to wedge [tool] in [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to wedge \the [tool] in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to wedge something in [target]'s [parse_zone(target_zone)]."))
/datum/surgery_step/insert_pill/success(mob/user, mob/living/carbon/target, target_zone, obj/item/reagent_containers/pill/tool, datum/surgery/surgery, default_display_results = FALSE)
if(!istype(tool))
@@ -26,9 +26,9 @@
pill_action.target = tool
pill_action.Grant(target) //The pill never actually goes in an inventory slot, so the owner doesn't inherit actions from it
display_results(user, target, "<span class='notice'>You wedge [tool] into [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] wedges \the [tool] into [target]'s [parse_zone(target_zone)]!</span>",
"<span class='notice'>[user] wedges something into [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You wedge [tool] into [target]'s [parse_zone(target_zone)]."),
span_notice("[user] wedges \the [tool] into [target]'s [parse_zone(target_zone)]!"),
span_notice("[user] wedges something into [target]'s [parse_zone(target_zone)]!"))
return ..()
/datum/action/item_action/hands_free/activate_pill
@@ -37,7 +37,7 @@
/datum/action/item_action/hands_free/activate_pill/Trigger()
if(!..())
return FALSE
to_chat(owner, "<span class='notice'>You grit your teeth and burst the implanted [target.name]!</span>")
to_chat(owner, span_notice("You grit your teeth and burst the implanted [target.name]!"))
log_combat(owner, null, "swallowed an implanted pill", target)
if(target.reagents.total_volume)
target.reagents.trans_to(owner, target.reagents.total_volume, transfered_by = owner, methods = INGEST)
+14 -14
View File
@@ -22,21 +22,21 @@
/datum/surgery/eye_surgery/can_start(mob/user, mob/living/carbon/target)
var/obj/item/organ/eyes/target_eyes = target.getorganslot(ORGAN_SLOT_EYES)
if(!target_eyes)
to_chat(user, "<span class='warning'>It's hard to do surgery on someone's eyes when [target.p_they()] [target.p_do()]n't have any.</span>")
to_chat(user, span_warning("It's hard to do surgery on someone's eyes when [target.p_they()] [target.p_do()]n't have any."))
return FALSE
return TRUE
/datum/surgery_step/fix_eyes/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to fix [target]'s eyes...</span>",
"<span class='notice'>[user] begins to fix [target]'s eyes.</span>",
"<span class='notice'>[user] begins to perform surgery on [target]'s eyes.</span>")
display_results(user, target, span_notice("You begin to fix [target]'s eyes..."),
span_notice("[user] begins to fix [target]'s eyes."),
span_notice("[user] begins to perform surgery on [target]'s eyes."))
/datum/surgery_step/fix_eyes/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
var/obj/item/organ/eyes/target_eyes = target.getorganslot(ORGAN_SLOT_EYES)
user.visible_message("<span class='notice'>[user] successfully fixes [target]'s eyes!</span>", "<span class='notice'>You succeed in fixing [target]'s eyes.</span>")
display_results(user, target, "<span class='notice'>You succeed in fixing [target]'s eyes.</span>",
"<span class='notice'>[user] successfully fixes [target]'s eyes!</span>",
"<span class='notice'>[user] completes the surgery on [target]'s eyes.</span>")
user.visible_message(span_notice("[user] successfully fixes [target]'s eyes!"), span_notice("You succeed in fixing [target]'s eyes."))
display_results(user, target, span_notice("You succeed in fixing [target]'s eyes."),
span_notice("[user] successfully fixes [target]'s eyes!"),
span_notice("[user] completes the surgery on [target]'s eyes."))
target.cure_blind(list(EYE_DAMAGE))
target.set_blindness(0)
target.cure_nearsighted(list(EYE_DAMAGE))
@@ -46,12 +46,12 @@
/datum/surgery_step/fix_eyes/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(target.getorgan(/obj/item/organ/brain))
display_results(user, target, "<span class='warning'>You accidentally stab [target] right in the brain!</span>",
"<span class='warning'>[user] accidentally stabs [target] right in the brain!</span>",
"<span class='warning'>[user] accidentally stabs [target] right in the brain!</span>")
display_results(user, target, span_warning("You accidentally stab [target] right in the brain!"),
span_warning("[user] accidentally stabs [target] right in the brain!"),
span_warning("[user] accidentally stabs [target] right in the brain!"))
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 70)
else
display_results(user, target, "<span class='warning'>You accidentally stab [target] right in the brain! Or would have, if [target] had a brain.</span>",
"<span class='warning'>[user] accidentally stabs [target] right in the brain! Or would have, if [target] had a brain.</span>",
"<span class='warning'>[user] accidentally stabs [target] right in the brain!</span>")
display_results(user, target, span_warning("You accidentally stab [target] right in the brain! Or would have, if [target] had a brain."),
span_warning("[user] accidentally stabs [target] right in the brain! Or would have, if [target] had a brain."),
span_warning("[user] accidentally stabs [target] right in the brain!"))
return FALSE
+9 -9
View File
@@ -30,21 +30,21 @@
time = 52
/datum/surgery_step/gastrectomy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to cut out a damaged piece of [target]'s stomach...</span>",
"<span class='notice'>[user] begins to make an incision in [target].</span>",
"<span class='notice'>[user] begins to make an incision in [target].</span>")
display_results(user, target, span_notice("You begin to cut out a damaged piece of [target]'s stomach..."),
span_notice("[user] begins to make an incision in [target]."),
span_notice("[user] begins to make an incision in [target]."))
/datum/surgery_step/gastrectomy/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
var/mob/living/carbon/human/target_human = target
target_human.setOrganLoss(ORGAN_SLOT_STOMACH, 20) // Stomachs have a threshold for being able to even digest food, so I might tweak this number
display_results(user, target, "<span class='notice'>You successfully remove the damaged part of [target]'s stomach.</span>",
"<span class='notice'>[user] successfully removes the damaged part of [target]'s stomach.</span>",
"<span class='notice'>[user] successfully removes the damaged part of [target]'s stomach.</span>")
display_results(user, target, span_notice("You successfully remove the damaged part of [target]'s stomach."),
span_notice("[user] successfully removes the damaged part of [target]'s stomach."),
span_notice("[user] successfully removes the damaged part of [target]'s stomach."))
return ..()
/datum/surgery_step/gastrectomy/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery)
var/mob/living/carbon/human/target_human = target
target_human.adjustOrganLoss(ORGAN_SLOT_STOMACH, 15)
display_results(user, target, "<span class='warning'>You cut the wrong part of [target]'s stomach!</span>",
"<span class='warning'>[user] cuts the wrong part of [target]'s stomach!</span>",
"<span class='warning'>[user] cuts the wrong part of [target]'s stomach!</span>")
display_results(user, target, span_warning("You cut the wrong part of [target]'s stomach!"),
span_warning("[user] cuts the wrong part of [target]'s stomach!"),
span_warning("[user] cuts the wrong part of [target]'s stomach!"))
+10 -10
View File
@@ -60,9 +60,9 @@
if(istype(surgery,/datum/surgery/healing))
var/datum/surgery/healing/the_surgery = surgery
if(!the_surgery.antispam)
display_results(user, target, "<span class='notice'>You attempt to patch some of [target]'s [woundtype].</span>",
"<span class='notice'>[user] attempts to patch some of [target]'s [woundtype].</span>",
"<span class='notice'>[user] attempts to patch some of [target]'s [woundtype].</span>")
display_results(user, target, span_notice("You attempt to patch some of [target]'s [woundtype]."),
span_notice("[user] attempts to patch some of [target]'s [woundtype]."),
span_notice("[user] attempts to patch some of [target]'s [woundtype]."))
/datum/surgery_step/heal/initiate(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, try_to_fail = FALSE)
if(!..())
@@ -91,7 +91,7 @@
user_msg += get_progress(user, target, brute_healed, burn_healed)
display_results(user, target, "<span class='notice'>[user_msg].</span>",
display_results(user, target, span_notice("[user_msg]."),
"[target_msg].",
"[target_msg].")
if(istype(surgery, /datum/surgery/healing))
@@ -100,9 +100,9 @@
return ..()
/datum/surgery_step/heal/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='warning'>You screwed up!</span>",
"<span class='warning'>[user] screws up!</span>",
"<span class='notice'>[user] fixes some of [target]'s wounds.</span>", TRUE)
display_results(user, target, span_warning("You screwed up!"),
span_warning("[user] screws up!"),
span_notice("[user] fixes some of [target]'s wounds."), TRUE)
var/brute_dealt = brutehealing * 0.8
var/burn_dealt = burnhealing * 0.8
brute_dealt += round((target.getBruteLoss() * (brute_multiplier * 0.5)),0.1)
@@ -320,7 +320,7 @@
burn_multiplier = 0.4
/datum/surgery_step/heal/combo/upgraded/femto/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='warning'>You screwed up!</span>",
"<span class='warning'>[user] screws up!</span>",
"<span class='notice'>[user] fixes some of [target]'s wounds.</span>", TRUE)
display_results(user, target, span_warning("You screwed up!"),
span_warning("[user] screws up!"),
span_notice("[user] fixes some of [target]'s wounds."), TRUE)
target.take_bodypart_damage(5,5)
+9 -9
View File
@@ -29,21 +29,21 @@
time = 52
/datum/surgery_step/hepatectomy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to cut out a damaged piece of [target]'s liver...</span>",
"<span class='notice'>[user] begins to make an incision in [target].</span>",
"<span class='notice'>[user] begins to make an incision in [target].</span>")
display_results(user, target, span_notice("You begin to cut out a damaged piece of [target]'s liver..."),
span_notice("[user] begins to make an incision in [target]."),
span_notice("[user] begins to make an incision in [target]."))
/datum/surgery_step/hepatectomy/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
var/mob/living/carbon/human/human_target = target
human_target.setOrganLoss(ORGAN_SLOT_LIVER, 10) //not bad, not great
display_results(user, target, "<span class='notice'>You successfully remove the damaged part of [target]'s liver.</span>",
"<span class='notice'>[user] successfully removes the damaged part of [target]'s liver.</span>",
"<span class='notice'>[user] successfully removes the damaged part of [target]'s liver.</span>")
display_results(user, target, span_notice("You successfully remove the damaged part of [target]'s liver."),
span_notice("[user] successfully removes the damaged part of [target]'s liver."),
span_notice("[user] successfully removes the damaged part of [target]'s liver."))
return ..()
/datum/surgery_step/hepatectomy/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery)
var/mob/living/carbon/human/human_target = target
human_target.adjustOrganLoss(ORGAN_SLOT_LIVER, 15)
display_results(user, target, "<span class='warning'>You cut the wrong part of [target]'s liver!</span>",
"<span class='warning'>[user] cuts the wrong part of [target]'s liver!</span>",
"<span class='warning'>[user] cuts the wrong part of [target]'s liver!</span>")
display_results(user, target, span_warning("You cut the wrong part of [target]'s liver!"),
span_warning("[user] cuts the wrong part of [target]'s liver!"),
span_warning("[user] cuts the wrong part of [target]'s liver!"))
+13 -13
View File
@@ -25,19 +25,19 @@
implant = object
break
if(implant)
display_results(user, target, "<span class='notice'>You begin to extract [implant] from [target]'s [target_zone]...</span>",
"<span class='notice'>[user] begins to extract [implant] from [target]'s [target_zone].</span>",
"<span class='notice'>[user] begins to extract something from [target]'s [target_zone].</span>")
display_results(user, target, span_notice("You begin to extract [implant] from [target]'s [target_zone]..."),
span_notice("[user] begins to extract [implant] from [target]'s [target_zone]."),
span_notice("[user] begins to extract something from [target]'s [target_zone]."))
else
display_results(user, target, "<span class='notice'>You look for an implant in [target]'s [target_zone]...</span>",
"<span class='notice'>[user] looks for an implant in [target]'s [target_zone].</span>",
"<span class='notice'>[user] looks for something in [target]'s [target_zone].</span>")
display_results(user, target, span_notice("You look for an implant in [target]'s [target_zone]..."),
span_notice("[user] looks for an implant in [target]'s [target_zone]."),
span_notice("[user] looks for something in [target]'s [target_zone]."))
/datum/surgery_step/extract_implant/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
if(implant)
display_results(user, target, "<span class='notice'>You successfully remove [implant] from [target]'s [target_zone].</span>",
"<span class='notice'>[user] successfully removes [implant] from [target]'s [target_zone]!</span>",
"<span class='notice'>[user] successfully removes something from [target]'s [target_zone]!</span>")
display_results(user, target, span_notice("You successfully remove [implant] from [target]'s [target_zone]."),
span_notice("[user] successfully removes [implant] from [target]'s [target_zone]!"),
span_notice("[user] successfully removes something from [target]'s [target_zone]!"))
implant.removed(target)
var/obj/item/implantcase/case
@@ -50,14 +50,14 @@
case.imp = implant
implant.forceMove(case)
case.update_appearance()
display_results(user, target, "<span class='notice'>You place [implant] into [case].</span>",
"<span class='notice'>[user] places [implant] into [case]!</span>",
"<span class='notice'>[user] places it into [case]!</span>")
display_results(user, target, span_notice("You place [implant] into [case]."),
span_notice("[user] places [implant] into [case]!"),
span_notice("[user] places it into [case]!"))
else
qdel(implant)
else
to_chat(user, "<span class='warning'>You can't find anything in [target]'s [target_zone]!</span>")
to_chat(user, span_warning("You can't find anything in [target]'s [target_zone]!"))
return ..()
/datum/surgery/implant_removal/mechanic
+11 -11
View File
@@ -15,24 +15,24 @@
/datum/surgery_step/replace_limb/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(NOAUGMENTS in target.dna.species.species_traits)
to_chat(user, "<span class='warning'>[target] cannot be augmented!</span>")
to_chat(user, span_warning("[target] cannot be augmented!"))
return -1
if(istype(tool, /obj/item/borg/apparatus/organ_storage) && istype(tool.contents[1], /obj/item/bodypart))
tool = tool.contents[1]
var/obj/item/bodypart/aug = tool
if(aug.status != BODYPART_ROBOTIC)
to_chat(user, "<span class='warning'>That's not an augment, silly!</span>")
to_chat(user, span_warning("That's not an augment, silly!"))
return -1
if(aug.body_zone != target_zone)
to_chat(user, "<span class='warning'>[tool] isn't the right type for [parse_zone(target_zone)].</span>")
to_chat(user, span_warning("[tool] isn't the right type for [parse_zone(target_zone)]."))
return -1
target_limb = surgery.operated_bodypart
if(target_limb)
display_results(user, target, "<span class='notice'>You begin to augment [target]'s [parse_zone(user.zone_selected)]...</span>",
"<span class='notice'>[user] begins to augment [target]'s [parse_zone(user.zone_selected)] with [aug].</span>",
"<span class='notice'>[user] begins to augment [target]'s [parse_zone(user.zone_selected)].</span>")
display_results(user, target, span_notice("You begin to augment [target]'s [parse_zone(user.zone_selected)]..."),
span_notice("[user] begins to augment [target]'s [parse_zone(user.zone_selected)] with [aug]."),
span_notice("[user] begins to augment [target]'s [parse_zone(user.zone_selected)]."))
else
user.visible_message("<span class='notice'>[user] looks for [target]'s [parse_zone(user.zone_selected)].</span>", "<span class='notice'>You look for [target]'s [parse_zone(user.zone_selected)]...</span>")
user.visible_message(span_notice("[user] looks for [target]'s [parse_zone(user.zone_selected)]."), span_notice("You look for [target]'s [parse_zone(user.zone_selected)]..."))
//ACTUAL SURGERIES
@@ -59,10 +59,10 @@
tool = tool.contents[1]
if(istype(tool) && user.temporarilyRemoveItemFromInventory(tool))
tool.replace_limb(target, TRUE)
display_results(user, target, "<span class='notice'>You successfully augment [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] successfully augments [target]'s [parse_zone(target_zone)] with [tool]!</span>",
"<span class='notice'>[user] successfully augments [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You successfully augment [target]'s [parse_zone(target_zone)]."),
span_notice("[user] successfully augments [target]'s [parse_zone(target_zone)] with [tool]!"),
span_notice("[user] successfully augments [target]'s [parse_zone(target_zone)]!"))
log_combat(user, target, "augmented", addition="by giving him new [parse_zone(target_zone)] COMBAT MODE: [uppertext(user.combat_mode)]")
else
to_chat(user, "<span class='warning'>[target] has no organic [parse_zone(target_zone)] there!</span>")
to_chat(user, span_warning("[target] has no organic [parse_zone(target_zone)] there!"))
return ..()
+13 -13
View File
@@ -24,15 +24,15 @@
time = 64
/datum/surgery_step/cut_fat/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
user.visible_message("<span class='notice'>[user] begins to cut away [target]'s excess fat.</span>", "<span class='notice'>You begin to cut away [target]'s excess fat...</span>")
display_results(user, target, "<span class='notice'>You begin to cut away [target]'s excess fat...</span>",
"<span class='notice'>[user] begins to cut away [target]'s excess fat.</span>",
"<span class='notice'>[user] begins to cut [target]'s [target_zone] with [tool].</span>")
user.visible_message(span_notice("[user] begins to cut away [target]'s excess fat."), span_notice("You begin to cut away [target]'s excess fat..."))
display_results(user, target, span_notice("You begin to cut away [target]'s excess fat..."),
span_notice("[user] begins to cut away [target]'s excess fat."),
span_notice("[user] begins to cut [target]'s [target_zone] with [tool]."))
/datum/surgery_step/cut_fat/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results)
display_results(user, target, "<span class='notice'>You cut [target]'s excess fat loose.</span>",
"<span class='notice'>[user] cuts [target]'s excess fat loose!</span>",
"<span class='notice'>[user] finishes the cut on [target]'s [target_zone].</span>")
display_results(user, target, span_notice("You cut [target]'s excess fat loose."),
span_notice("[user] cuts [target]'s excess fat loose!"),
span_notice("[user] finishes the cut on [target]'s [target_zone]."))
return TRUE
//remove fat
@@ -45,14 +45,14 @@
time = 32
/datum/surgery_step/remove_fat/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to extract [target]'s loose fat...</span>",
"<span class='notice'>[user] begins to extract [target]'s loose fat!</span>",
"<span class='notice'>[user] begins to extract something from [target]'s [target_zone].</span>")
display_results(user, target, span_notice("You begin to extract [target]'s loose fat..."),
span_notice("[user] begins to extract [target]'s loose fat!"),
span_notice("[user] begins to extract something from [target]'s [target_zone]."))
/datum/surgery_step/remove_fat/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
display_results(user, target, "<span class='notice'>You extract [target]'s fat.</span>",
"<span class='notice'>[user] extracts [target]'s fat!</span>",
"<span class='notice'>[user] extracts [target]'s fat!</span>")
display_results(user, target, span_notice("You extract [target]'s fat."),
span_notice("[user] extracts [target]'s fat!"),
span_notice("[user] extracts [target]'s fat!"))
target.overeatduration = 0 //patient is unfatted
var/removednutriment = target.nutrition
target.set_nutrition(NUTRITION_LEVEL_WELL_FED)
+8 -8
View File
@@ -28,9 +28,9 @@
time = 42
/datum/surgery_step/lobectomy/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to make an incision in [target]'s lungs...</span>",
"<span class='notice'>[user] begins to make an incision in [target].</span>",
"<span class='notice'>[user] begins to make an incision in [target].</span>")
display_results(user, target, span_notice("You begin to make an incision in [target]'s lungs..."),
span_notice("[user] begins to make an incision in [target]."),
span_notice("[user] begins to make an incision in [target]."))
/datum/surgery_step/lobectomy/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
if(ishuman(target))
@@ -38,17 +38,17 @@
var/obj/item/organ/lungs/target_lungs = human_target.getorganslot(ORGAN_SLOT_LUNGS)
target_lungs.operated = TRUE
human_target.setOrganLoss(ORGAN_SLOT_LUNGS, 60)
display_results(user, target, "<span class='notice'>You successfully excise [human_target]'s most damaged lobe.</span>",
"<span class='notice'>Successfully removes a piece of [human_target]'s lungs.</span>",
display_results(user, target, span_notice("You successfully excise [human_target]'s most damaged lobe."),
span_notice("Successfully removes a piece of [human_target]'s lungs."),
"")
return ..()
/datum/surgery_step/lobectomy/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(ishuman(target))
var/mob/living/carbon/human/human_target = target
display_results(user, target, "<span class='warning'>You screw up, failing to excise [human_target]'s damaged lobe!</span>",
"<span class='warning'>[user] screws up!</span>",
"<span class='warning'>[user] screws up!</span>")
display_results(user, target, span_warning("You screw up, failing to excise [human_target]'s damaged lobe!"),
span_warning("[user] screws up!"),
span_warning("[user] screws up!"))
human_target.losebreath += 4
human_target.adjustOrganLoss(ORGAN_SLOT_LUNGS, 10)
return FALSE
+18 -18
View File
@@ -9,9 +9,9 @@
time = 24
/datum/surgery_step/mechanic_open/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to unscrew the shell of [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to unscrew the shell of [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to unscrew the shell of [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to unscrew the shell of [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to unscrew the shell of [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to unscrew the shell of [target]'s [parse_zone(target_zone)]."))
/datum/surgery_step/mechanic_open/tool_check(mob/user, obj/item/tool)
if(implement_type == /obj/item && !tool.get_sharpness())
@@ -30,9 +30,9 @@
time = 24
/datum/surgery_step/mechanic_close/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to screw the shell of [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to screw the shell of [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to screw the shell of [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to screw the shell of [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to screw the shell of [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to screw the shell of [target]'s [parse_zone(target_zone)]."))
/datum/surgery_step/mechanic_close/tool_check(mob/user, obj/item/tool)
if(implement_type == /obj/item && !tool.get_sharpness())
@@ -49,9 +49,9 @@
time = 24
/datum/surgery_step/prepare_electronics/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to prepare electronics in [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to prepare electronics in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to prepare electronics in [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to prepare electronics in [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to prepare electronics in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to prepare electronics in [target]'s [parse_zone(target_zone)]."))
//unwrench
/datum/surgery_step/mechanic_unwrench
@@ -62,9 +62,9 @@
time = 24
/datum/surgery_step/mechanic_unwrench/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to unwrench some bolts in [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to unwrench some bolts in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to unwrench some bolts in [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to unwrench some bolts in [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to unwrench some bolts in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to unwrench some bolts in [target]'s [parse_zone(target_zone)]."))
//wrench
/datum/surgery_step/mechanic_wrench
@@ -75,9 +75,9 @@
time = 24
/datum/surgery_step/mechanic_wrench/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to wrench some bolts in [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to wrench some bolts in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to wrench some bolts in [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to wrench some bolts in [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to wrench some bolts in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to wrench some bolts in [target]'s [parse_zone(target_zone)]."))
//open hatch
/datum/surgery_step/open_hatch
@@ -86,6 +86,6 @@
time = 10
/datum/surgery_step/open_hatch/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to open the hatch holders in [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to open the hatch holders in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to open the hatch holders in [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to open the hatch holders in [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to open the hatch holders in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to open the hatch holders in [target]'s [parse_zone(target_zone)]."))
+21 -21
View File
@@ -77,30 +77,30 @@
target_organ = null
if(istype(tool, /obj/item/borg/apparatus/organ_storage))
if(!tool.contents.len)
to_chat(user, "<span class='warning'>There is nothing inside [tool]!</span>")
to_chat(user, span_warning("There is nothing inside [tool]!"))
return -1
target_organ = tool.contents[1]
if(!isorgan(target_organ))
if (target_zone == BODY_ZONE_PRECISE_EYES)
target_zone = check_zone(target_zone)
to_chat(user, "<span class='warning'>You cannot put [target_organ] into [target]'s [parse_zone(target_zone)]!</span>")
to_chat(user, span_warning("You cannot put [target_organ] into [target]'s [parse_zone(target_zone)]!"))
return -1
tool = target_organ
if(isorgan(tool))
current_type = "insert"
target_organ = tool
if(target_zone != target_organ.zone || target.getorganslot(target_organ.slot))
to_chat(user, "<span class='warning'>There is no room for [target_organ] in [target]'s [parse_zone(target_zone)]!</span>")
to_chat(user, span_warning("There is no room for [target_organ] in [target]'s [parse_zone(target_zone)]!"))
return -1
var/obj/item/organ/meatslab = tool
if(!meatslab.useable)
to_chat(user, "<span class='warning'>[target_organ] seems to have been chewed on, you can't use this!</span>")
to_chat(user, span_warning("[target_organ] seems to have been chewed on, you can't use this!"))
return -1
if (target_zone == BODY_ZONE_PRECISE_EYES)
target_zone = check_zone(target_zone)
display_results(user, target, "<span class='notice'>You begin to insert [tool] into [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to insert [tool] into [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to insert something into [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to insert [tool] into [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to insert [tool] into [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to insert something into [target]'s [parse_zone(target_zone)]."))
else if(implement_type in implements_extract)
current_type = "extract"
@@ -108,7 +108,7 @@
if (target_zone == BODY_ZONE_PRECISE_EYES)
target_zone = check_zone(target_zone)
if(!organs.len)
to_chat(user, "<span class='warning'>There are no removable organs in [target]'s [parse_zone(target_zone)]!</span>")
to_chat(user, span_warning("There are no removable organs in [target]'s [parse_zone(target_zone)]!"))
return -1
else
for(var/obj/item/organ/organ in organs)
@@ -122,11 +122,11 @@
if(!target_organ)
return -1
if(target_organ.organ_flags & ORGAN_UNREMOVABLE)
to_chat(user, "<span class='warning'>[target_organ] is too well connected to take out!</span>")
to_chat(user, span_warning("[target_organ] is too well connected to take out!"))
return -1
display_results(user, target, "<span class='notice'>You begin to extract [target_organ] from [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to extract [target_organ] from [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to extract something from [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to extract [target_organ] from [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to extract [target_organ] from [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to extract something from [target]'s [parse_zone(target_zone)]."))
else
return -1
@@ -145,20 +145,20 @@
target_organ = tool
user.temporarilyRemoveItemFromInventory(target_organ, TRUE)
target_organ.Insert(target)
display_results(user, target, "<span class='notice'>You insert [tool] into [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] inserts [tool] into [target]'s [parse_zone(target_zone)]!</span>",
"<span class='notice'>[user] inserts something into [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You insert [tool] into [target]'s [parse_zone(target_zone)]."),
span_notice("[user] inserts [tool] into [target]'s [parse_zone(target_zone)]!"),
span_notice("[user] inserts something into [target]'s [parse_zone(target_zone)]!"))
else if(current_type == "extract")
if(target_organ && target_organ.owner == target)
display_results(user, target, "<span class='notice'>You successfully extract [target_organ] from [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] successfully extracts [target_organ] from [target]'s [parse_zone(target_zone)]!</span>",
"<span class='notice'>[user] successfully extracts something from [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You successfully extract [target_organ] from [target]'s [parse_zone(target_zone)]."),
span_notice("[user] successfully extracts [target_organ] from [target]'s [parse_zone(target_zone)]!"),
span_notice("[user] successfully extracts something from [target]'s [parse_zone(target_zone)]!"))
log_combat(user, target, "surgically removed [target_organ.name] from", addition="COMBAT MODE: [uppertext(user.combat_mode)]")
target_organ.Remove(target)
target_organ.forceMove(get_turf(target))
else
display_results(user, target, "<span class='warning'>You can't extract anything from [target]'s [parse_zone(target_zone)]!</span>",
"<span class='notice'>[user] can't seem to extract anything from [target]'s [parse_zone(target_zone)]!</span>",
"<span class='notice'>[user] can't seem to extract anything from [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_warning("You can't extract anything from [target]'s [parse_zone(target_zone)]!"),
span_notice("[user] can't seem to extract anything from [target]'s [parse_zone(target_zone)]!"),
span_notice("[user] can't seem to extract anything from [target]'s [parse_zone(target_zone)]!"))
return FALSE
+29 -29
View File
@@ -11,9 +11,9 @@
time = 16
/datum/surgery_step/incise/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to make an incision in [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to make an incision in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to make an incision in [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to make an incision in [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to make an incision in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to make an incision in [target]'s [parse_zone(target_zone)]."))
/datum/surgery_step/incise/tool_check(mob/user, obj/item/tool)
if(implement_type == /obj/item && !tool.get_sharpness())
@@ -25,8 +25,8 @@
if ishuman(target)
var/mob/living/carbon/human/human_target = target
if (!(NOBLOOD in human_target.dna.species.species_traits))
display_results(user, target, "<span class='notice'>Blood pools around the incision in [human_target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>Blood pools around the incision in [human_target]'s [parse_zone(target_zone)].</span>",
display_results(user, target, span_notice("Blood pools around the incision in [human_target]'s [parse_zone(target_zone)]."),
span_notice("Blood pools around the incision in [human_target]'s [parse_zone(target_zone)]."),
"")
var/obj/item/bodypart/target_bodypart = target.get_bodypart(target_zone)
if(target_bodypart)
@@ -34,9 +34,9 @@
return ..()
/datum/surgery_step/incise/nobleed/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to <i>carefully</i> make an incision in [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to <i>carefully</i> make an incision in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to <i>carefully</i> make an incision in [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to <i>carefully</i> make an incision in [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to <i>carefully</i> make an incision in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to <i>carefully</i> make an incision in [target]'s [parse_zone(target_zone)]."))
//clamp bleeders
/datum/surgery_step/clamp_bleeders
@@ -49,9 +49,9 @@
time = 24
/datum/surgery_step/clamp_bleeders/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to clamp bleeders in [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to clamp bleeders in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to clamp bleeders in [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to clamp bleeders in [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to clamp bleeders in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to clamp bleeders in [target]'s [parse_zone(target_zone)]."))
/datum/surgery_step/clamp_bleeders/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results)
if(locate(/datum/surgery_step/saw) in surgery.steps)
@@ -74,9 +74,9 @@
time = 24
/datum/surgery_step/retract_skin/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to retract the skin in [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to retract the skin in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to retract the skin in [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to retract the skin in [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to retract the skin in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to retract the skin in [target]'s [parse_zone(target_zone)]."))
@@ -91,9 +91,9 @@
time = 24
/datum/surgery_step/close/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to mend the incision in [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to mend the incision in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to mend the incision in [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to mend the incision in [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to mend the incision in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to mend the incision in [target]'s [parse_zone(target_zone)]."))
/datum/surgery_step/close/tool_check(mob/user, obj/item/tool)
if(implement_type == TOOL_WELDER || implement_type == /obj/item)
@@ -126,9 +126,9 @@
time = 54
/datum/surgery_step/saw/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to saw through the bone in [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to saw through the bone in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to saw through the bone in [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to saw through the bone in [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to saw through the bone in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to saw through the bone in [target]'s [parse_zone(target_zone)]."))
/datum/surgery_step/saw/tool_check(mob/user, obj/item/tool)
if(implement_type == /obj/item && !(tool.get_sharpness() && (tool.force >= 10)))
@@ -137,9 +137,9 @@
/datum/surgery_step/saw/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results)
target.apply_damage(50, BRUTE, "[target_zone]", wound_bonus=CANT_WOUND)
display_results(user, target, "<span class='notice'>You saw [target]'s [parse_zone(target_zone)] open.</span>",
"<span class='notice'>[user] saws [target]'s [parse_zone(target_zone)] open!</span>",
"<span class='notice'>[user] saws [target]'s [parse_zone(target_zone)] open!</span>")
display_results(user, target, span_notice("You saw [target]'s [parse_zone(target_zone)] open."),
span_notice("[user] saws [target]'s [parse_zone(target_zone)] open!"),
span_notice("[user] saws [target]'s [parse_zone(target_zone)] open!"))
return ..()
//drill bone
@@ -154,12 +154,12 @@
time = 30
/datum/surgery_step/drill/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to drill into the bone in [target]'s [parse_zone(target_zone)]...</span>",
"<span class='notice'>[user] begins to drill into the bone in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to drill into the bone in [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to drill into the bone in [target]'s [parse_zone(target_zone)]..."),
span_notice("[user] begins to drill into the bone in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to drill into the bone in [target]'s [parse_zone(target_zone)]."))
/datum/surgery_step/drill/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
display_results(user, target, "<span class='notice'>You drill into [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] drills into [target]'s [parse_zone(target_zone)]!</span>",
"<span class='notice'>[user] drills into [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You drill into [target]'s [parse_zone(target_zone)]."),
span_notice("[user] drills into [target]'s [parse_zone(target_zone)]!"),
span_notice("[user] drills into [target]'s [parse_zone(target_zone)]!"))
return ..()
+15 -15
View File
@@ -53,7 +53,7 @@
/obj/item/organ/cyberimp/arm/examine(mob/user)
. = ..()
. += "<span class='info'>[src] is assembled in the [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm configuration. You can use a screwdriver to reassemble it.</span>"
. += span_info("[src] is assembled in the [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm configuration. You can use a screwdriver to reassemble it.")
/obj/item/organ/cyberimp/arm/screwdriver_act(mob/living/user, obj/item/screwtool)
. = ..()
@@ -65,7 +65,7 @@
else
zone = BODY_ZONE_R_ARM
SetSlotFromZone()
to_chat(user, "<span class='notice'>You modify [src] to be installed on the [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm.</span>")
to_chat(user, span_notice("You modify [src] to be installed on the [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm."))
update_appearance()
/obj/item/organ/cyberimp/arm/Insert(mob/living/carbon/arm_owner, special = FALSE, drop_if_replaced = TRUE)
@@ -92,7 +92,7 @@
if(. & EMP_PROTECT_SELF)
return
if(prob(15/severity) && owner)
to_chat(owner, "<span class='warning'>The electromagnetic pulse causes [src] to malfunction!</span>")
to_chat(owner, span_warning("The electromagnetic pulse causes [src] to malfunction!"))
// give the owner an idea about why his implant is glitching
Retract()
@@ -115,9 +115,9 @@
if(!active_item || (active_item in src))
return
owner.visible_message("<span class='notice'>[owner] retracts [active_item] back into [owner.p_their()] [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm.</span>",
"<span class='notice'>[active_item] snaps back into your [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm.</span>",
"<span class='hear'>You hear a short mechanical noise.</span>")
owner.visible_message(span_notice("[owner] retracts [active_item] back into [owner.p_their()] [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm."),
span_notice("[active_item] snaps back into your [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm."),
span_hear("You hear a short mechanical noise."))
owner.transferItemToLoc(active_item, src, TRUE)
active_item = null
@@ -145,23 +145,23 @@
for(var/i in 1 to hand_items.len) //Can't just use *in* here.
var/hand_item = hand_items[i]
if(!owner.dropItemToGround(hand_item))
failure_message += "<span class='warning'>Your [hand_item] interferes with [src]!</span>"
failure_message += span_warning("Your [hand_item] interferes with [src]!")
continue
to_chat(owner, "<span class='notice'>You drop [hand_item] to activate [src]!</span>")
to_chat(owner, span_notice("You drop [hand_item] to activate [src]!"))
success = owner.put_in_hand(active_item, owner.get_empty_held_index_for_side(side))
break
if(!success)
for(var/i in failure_message)
to_chat(owner, i)
return
owner.visible_message("<span class='notice'>[owner] extends [active_item] from [owner.p_their()] [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm.</span>",
"<span class='notice'>You extend [active_item] from your [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm.</span>",
"<span class='hear'>You hear a short mechanical noise.</span>")
owner.visible_message(span_notice("[owner] extends [active_item] from [owner.p_their()] [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm."),
span_notice("You extend [active_item] from your [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm."),
span_hear("You hear a short mechanical noise."))
playsound(get_turf(owner), 'sound/mecha/mechmove03.ogg', 50, TRUE)
/obj/item/organ/cyberimp/arm/ui_action_click()
if((organ_flags & ORGAN_FAILING) || (!active_item && !contents.len))
to_chat(owner, "<span class='warning'>The implant doesn't respond. It seems to be broken...</span>")
to_chat(owner, span_warning("The implant doesn't respond. It seems to be broken..."))
return
if(!active_item || (active_item in src))
@@ -190,9 +190,9 @@
return
if(prob(30/severity) && owner && !(organ_flags & ORGAN_FAILING))
Retract()
owner.visible_message("<span class='danger'>A loud bang comes from [owner]\'s [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm!</span>")
owner.visible_message(span_danger("A loud bang comes from [owner]\'s [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm!"))
playsound(get_turf(owner), 'sound/weapons/flashbang.ogg', 100, TRUE)
to_chat(owner, "<span class='userdanger'>You feel an explosion erupt inside your [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm as your implant breaks!</span>")
to_chat(owner, span_userdanger("You feel an explosion erupt inside your [zone == BODY_ZONE_R_ARM ? "right" : "left"] arm as your implant breaks!"))
owner.adjust_fire_stacks(20)
owner.IgniteMob()
owner.adjustFireLoss(25)
@@ -238,7 +238,7 @@
if(istype(/obj/item/kitchen/knife/combat/cyborg, potential_knife))
return FALSE
to_chat(user, "<span class='notice'>You unlock [src]'s integrated knife!</span>")
to_chat(user, span_notice("You unlock [src]'s integrated knife!"))
items_list += WEAKREF(new /obj/item/kitchen/knife/combat/cyborg(src))
return TRUE
@@ -21,7 +21,7 @@
if(owner.nutrition <= hunger_threshold)
synthesizing = TRUE
to_chat(owner, "<span class='notice'>You feel less hungry...</span>")
to_chat(owner, span_notice("You feel less hungry..."))
owner.adjust_nutrition(25 * delta_time)
addtimer(CALLBACK(src, .proc/synth_cool), 50)
@@ -33,7 +33,7 @@
if(!owner || . & EMP_PROTECT_SELF)
return
owner.reagents.add_reagent(/datum/reagent/toxin/bad_food, poison_amount / severity)
to_chat(owner, "<span class='warning'>You feel like your insides are burning.</span>")
to_chat(owner, span_warning("You feel like your insides are burning."))
/obj/item/organ/cyberimp/chest/nutriment/plus
@@ -63,7 +63,7 @@
else
COOLDOWN_START(src, reviver_cooldown, revive_cost)
reviving = FALSE
to_chat(owner, "<span class='notice'>Your reviver implant shuts down and starts recharging. It will be ready again in [DisplayTimeText(revive_cost)].</span>")
to_chat(owner, span_notice("Your reviver implant shuts down and starts recharging. It will be ready again in [DisplayTimeText(revive_cost)]."))
return
if(!COOLDOWN_FINISHED(src, reviver_cooldown) || owner.suiciding)
@@ -73,7 +73,7 @@
if(UNCONSCIOUS, HARD_CRIT)
revive_cost = 0
reviving = TRUE
to_chat(owner, "<span class='notice'>You feel a faint buzzing as your reviver implant starts patching your wounds...</span>")
to_chat(owner, span_notice("You feel a faint buzzing as your reviver implant starts patching your wounds..."))
/obj/item/organ/cyberimp/chest/reviver/proc/heal()
@@ -104,7 +104,7 @@
var/mob/living/carbon/human/human_owner = owner
if(human_owner.stat != DEAD && prob(50 / severity) && human_owner.can_heartattack())
human_owner.set_heartattack(TRUE)
to_chat(human_owner, "<span class='userdanger'>You feel a horrible agony in your chest!</span>")
to_chat(human_owner, span_userdanger("You feel a horrible agony in your chest!"))
addtimer(CALLBACK(src, .proc/undo_heart_attack), 600 / severity)
/obj/item/organ/cyberimp/chest/reviver/proc/undo_heart_attack()
@@ -113,7 +113,7 @@
return
human_owner.set_heartattack(FALSE)
if(human_owner.stat == CONSCIOUS)
to_chat(human_owner, "<span class='notice'>You feel your heart beating again!</span>")
to_chat(human_owner, span_notice("You feel your heart beating again!"))
/obj/item/organ/cyberimp/chest/thrusters
@@ -149,7 +149,7 @@
if(!on)
if((organ_flags & ORGAN_FAILING))
if(!silent)
to_chat(owner, "<span class='warning'>Your thrusters set seems to be broken!</span>")
to_chat(owner, span_warning("Your thrusters set seems to be broken!"))
return FALSE
if(allow_thrust(0.01))
on = TRUE
@@ -158,14 +158,14 @@
owner.add_movespeed_modifier(/datum/movespeed_modifier/jetpack/cybernetic)
RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, .proc/pre_move_react)
if(!silent)
to_chat(owner, "<span class='notice'>You turn your thrusters set on.</span>")
to_chat(owner, span_notice("You turn your thrusters set on."))
else
ion_trail.stop()
UnregisterSignal(owner, COMSIG_MOVABLE_MOVED)
owner.remove_movespeed_modifier(/datum/movespeed_modifier/jetpack/cybernetic)
UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE)
if(!silent)
to_chat(owner, "<span class='notice'>You turn your thrusters set off.</span>")
to_chat(owner, span_notice("You turn your thrusters set off."))
on = FALSE
update_appearance()
@@ -35,7 +35,7 @@
return
var/stun_amount = 200/severity
owner.Stun(stun_amount)
to_chat(owner, "<span class='warning'>Your body seizes up!</span>")
to_chat(owner, span_warning("Your body seizes up!"))
/obj/item/organ/cyberimp/brain/anti_drop
@@ -55,17 +55,17 @@
var/list/hold_list = owner.get_empty_held_indexes()
if(LAZYLEN(hold_list) == owner.held_items.len)
to_chat(owner, "<span class='notice'>You are not holding any items, your hands relax...</span>")
to_chat(owner, span_notice("You are not holding any items, your hands relax..."))
active = FALSE
stored_items = list()
else
for(var/obj/item/stored_item in stored_items)
to_chat(owner, "<span class='notice'>Your [owner.get_held_index_name(owner.get_held_index_of_item(stored_item))]'s grip tightens.</span>")
to_chat(owner, span_notice("Your [owner.get_held_index_name(owner.get_held_index_of_item(stored_item))]'s grip tightens."))
ADD_TRAIT(stored_item, TRAIT_NODROP, IMPLANT_TRAIT)
else
release_items()
to_chat(owner, "<span class='notice'>Your hands relax...</span>")
to_chat(owner, span_notice("Your hands relax..."))
/obj/item/organ/cyberimp/brain/anti_drop/emp_act(severity)
@@ -79,7 +79,7 @@
for(var/obj/item/stored_item in stored_items)
throw_target = pick(oview(range))
stored_item.throw_at(throw_target, range, 2)
to_chat(owner, "<span class='warning'>Your [owner.get_held_index_name(owner.get_held_index_of_item(stored_item))] spasms and throws the [stored_item.name]!</span>")
to_chat(owner, span_warning("Your [owner.get_held_index_name(owner.get_held_index_of_item(stored_item))] spasms and throws the [stored_item.name]!"))
stored_items = list()
@@ -155,7 +155,7 @@
if(!owner || . & EMP_PROTECT_SELF)
return
if(prob(60/severity))
to_chat(owner, "<span class='warning'>Your breathing tube suddenly closes!</span>")
to_chat(owner, span_warning("Your breathing tube suddenly closes!"))
owner.losebreath += 2
//BOX O' IMPLANTS
+8 -8
View File
@@ -39,13 +39,13 @@
/obj/item/autosurgeon/organ/attack_self(mob/user)//when the object it used...
if(!uses)
to_chat(user, "<span class='alert'>[src] has already been used. The tools are dull and won't reactivate.</span>")
to_chat(user, span_alert("[src] has already been used. The tools are dull and won't reactivate."))
return
else if(!storedorgan)
to_chat(user, "<span class='alert'>[src] currently has no implant stored.</span>")
to_chat(user, span_alert("[src] currently has no implant stored."))
return
storedorgan.Insert(user)//insert stored organ into the user
user.visible_message("<span class='notice'>[user] presses a button on [src], and you hear a short mechanical noise.</span>", "<span class='notice'>You feel a sharp sting as [src] plunges into your body.</span>")
user.visible_message(span_notice("[user] presses a button on [src], and you hear a short mechanical noise."), span_notice("You feel a sharp sting as [src] plunges into your body."))
playsound(get_turf(user), 'sound/weapons/circsawhit.ogg', 50, TRUE)
storedorgan = null
name = initial(name)
@@ -57,15 +57,15 @@
/obj/item/autosurgeon/organ/attackby(obj/item/weapon, mob/user, params)
if(istype(weapon, organ_type))
if(storedorgan)
to_chat(user, "<span class='alert'>[src] already has an implant stored.</span>")
to_chat(user, span_alert("[src] already has an implant stored."))
return
else if(!uses)
to_chat(user, "<span class='alert'>[src] has already been used up.</span>")
to_chat(user, span_alert("[src] has already been used up."))
return
if(!user.transferItemToLoc(weapon, src))
return
storedorgan = weapon
to_chat(user, "<span class='notice'>You insert the [weapon] into [src].</span>")
to_chat(user, span_notice("You insert the [weapon] into [src]."))
else
return ..()
@@ -73,13 +73,13 @@
if(..())
return TRUE
if(!storedorgan)
to_chat(user, "<span class='warning'>There's no implant in [src] for you to remove!</span>")
to_chat(user, span_warning("There's no implant in [src] for you to remove!"))
else
var/atom/drop_loc = user.drop_location()
for(var/atom/movable/stored_implant as anything in src)
stored_implant.forceMove(drop_loc)
to_chat(user, "<span class='notice'>You remove the [storedorgan] from [src].</span>")
to_chat(user, span_notice("You remove the [storedorgan] from [src]."))
screwtool.play_tool_sound(src)
storedorgan = null
if(uses != INFINITE)
+3 -3
View File
@@ -30,7 +30,7 @@
/obj/item/organ/ears/on_life(delta_time, times_fired)
// only inform when things got worse, needs to happen before we heal
if((damage > low_threshold && prev_damage < low_threshold) || (damage > high_threshold && prev_damage < high_threshold))
to_chat(owner, "<span class='warning'>The ringing in your ears grows louder, blocking out any external noises for a moment.</span>")
to_chat(owner, span_warning("The ringing in your ears grows louder, blocking out any external noises for a moment."))
. = ..()
// if we have non-damage related deafness like mutations, quirks or clothing (earmuffs), don't bother processing here. Ear healing from earmuffs or chems happen elsewhere
@@ -88,13 +88,13 @@
/obj/item/organ/ears/penguin/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE)
. = ..()
if(istype(ear_owner))
to_chat(ear_owner, "<span class='notice'>You suddenly feel like you've lost your balance.</span>")
to_chat(ear_owner, span_notice("You suddenly feel like you've lost your balance."))
ear_owner.AddElement(/datum/element/waddling)
/obj/item/organ/ears/penguin/Remove(mob/living/carbon/human/ear_owner, special = 0)
. = ..()
if(istype(ear_owner))
to_chat(ear_owner, "<span class='notice'>Your sense of balance comes back to you.</span>")
to_chat(ear_owner, span_notice("Your sense of balance comes back to you."))
ear_owner.RemoveElement(/datum/element/waddling)
/obj/item/organ/ears/bronze
+5 -5
View File
@@ -159,7 +159,7 @@
return
if(prob(10 * severity))
return
to_chat(owner, "<span class='warning'>Static obfuscates your vision!</span>")
to_chat(owner, span_warning("Static obfuscates your vision!"))
owner.flash_act(visual = 1)
/obj/item/organ/eyes/robotic/basic
@@ -174,7 +174,7 @@
return
if(prob(10 * severity))
damage += 20 * severity
to_chat(owner, "<span class='warning'>Your eyes start to fizzle in their sockets!</span>")
to_chat(owner, span_warning("Your eyes start to fizzle in their sockets!"))
do_sparks(2, TRUE, owner)
owner.emote("scream")
@@ -334,13 +334,13 @@
/obj/item/organ/eyes/robotic/glow/proc/activate(silent = FALSE)
start_visuals()
if(!silent)
to_chat(owner, "<span class='warning'>Your [src] clicks and makes a whining noise, before shooting out a beam of light!</span>")
to_chat(owner, span_warning("Your [src] clicks and makes a whining noise, before shooting out a beam of light!"))
cycle_mob_overlay()
/obj/item/organ/eyes/robotic/glow/proc/deactivate(silent = FALSE)
clear_visuals()
if(!silent)
to_chat(owner, "<span class='warning'>Your [src] shuts off!</span>")
to_chat(owner, span_warning("Your [src] shuts off!"))
remove_mob_overlay()
/obj/item/organ/eyes/robotic/glow/proc/update_visuals(datum/source, olddir, newdir)
@@ -482,7 +482,7 @@
var/turf/owner_turf = get_turf(owner)
var/lums = owner_turf.get_lumcount()
if(lums > 0.5) //we allow a little more than usual so we can produce light from the adapted eyes
to_chat(owner, "<span class='danger'>Your eyes! They burn in the light!</span>")
to_chat(owner, span_danger("Your eyes! They burn in the light!"))
applyOrganDamage(10) //blind quickly
playsound(owner, 'sound/machines/grill/grillsizzle.ogg', 50)
else
+25 -25
View File
@@ -39,7 +39,7 @@
..()
if(!beating)
user.visible_message("<span class='notice'>[user] squeezes [src] to \
make it beat again!</span>","<span class='notice'>You squeeze [src] to make it beat again!</span>")
make it beat again!</span>",span_notice("You squeeze [src] to make it beat again!"))
Restart()
addtimer(CALLBACK(src, .proc/stop_if_unowned), 80)
@@ -75,7 +75,7 @@
if(heart_owner.health <= heart_owner.crit_threshold && beat != BEAT_SLOW)
beat = BEAT_SLOW
heart_owner.playsound_local(get_turf(heart_owner), slowbeat, 40, 0, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE)
to_chat(owner, "<span class='notice'>You feel your heart slow down...</span>")
to_chat(owner, span_notice("You feel your heart slow down..."))
if(beat == BEAT_SLOW && heart_owner.health > heart_owner.crit_threshold)
heart_owner.stop_sound_channel(CHANNEL_HEARTBEAT)
beat = BEAT_NONE
@@ -90,8 +90,8 @@
if(organ_flags & ORGAN_FAILING && !(HAS_TRAIT(src, TRAIT_STABLEHEART))) //heart broke, stopped beating, death imminent... unless you have veins that pump blood without a heart
if(owner.stat == CONSCIOUS)
owner.visible_message("<span class='danger'>[owner] clutches at [owner.p_their()] chest as if [owner.p_their()] heart is stopping!</span>", \
"<span class='userdanger'>You feel a terrible pain in your chest, as if your heart has stopped!</span>")
owner.visible_message(span_danger("[owner] clutches at [owner.p_their()] chest as if [owner.p_their()] heart is stopping!"), \
span_userdanger("You feel a terrible pain in your chest, as if your heart has stopped!"))
owner.set_heartattack(TRUE)
failed = TRUE
@@ -130,7 +130,7 @@
var/mob/living/carbon/human/accursed_human = owner
if(accursed_human.dna && !(NOBLOOD in accursed_human.dna.species.species_traits))
accursed_human.blood_volume = max(accursed_human.blood_volume - blood_loss, 0)
to_chat(accursed_human, "<span class='userdanger'>You have to keep pumping your blood!</span>")
to_chat(accursed_human, span_userdanger("You have to keep pumping your blood!"))
if(add_colour)
accursed_human.add_client_colour(/datum/client_colour/cursed_heart_blood) //bloody screen so real
add_colour = FALSE
@@ -140,7 +140,7 @@
/obj/item/organ/heart/cursed/Insert(mob/living/carbon/accursed, special = 0)
..()
if(owner)
to_chat(owner, "<span class='userdanger'>Your heart has been replaced with a cursed one, you have to pump this one manually otherwise you'll die!</span>")
to_chat(owner, span_userdanger("Your heart has been replaced with a cursed one, you have to pump this one manually otherwise you'll die!"))
/obj/item/organ/heart/cursed/Remove(mob/living/carbon/accursed, special = 0)
..()
@@ -156,12 +156,12 @@
var/obj/item/organ/heart/cursed/cursed_heart = target
if(world.time < (cursed_heart.last_pump + (cursed_heart.pump_delay-10))) //no spam
to_chat(owner, "<span class='userdanger'>Too soon!</span>")
to_chat(owner, span_userdanger("Too soon!"))
return
cursed_heart.last_pump = world.time
playsound(owner,'sound/effects/singlebeat.ogg',40,TRUE)
to_chat(owner, "<span class='notice'>Your heart beats.</span>")
to_chat(owner, span_notice("Your heart beats."))
var/mob/living/carbon/human/accursed = owner
if(istype(accursed))
@@ -222,8 +222,8 @@
if(prob(emp_vulnerability/severity)) //Chance of permanent effects
organ_flags |= ORGAN_SYNTHETIC_EMP //Starts organ faliure - gonna need replacing soon.
Stop()
owner.visible_message("<span class='danger'>[owner] clutches at [owner.p_their()] chest as if [owner.p_their()] heart is stopping!</span>", \
"<span class='userdanger'>You feel a terrible pain in your chest, as if your heart has stopped!</span>")
owner.visible_message(span_danger("[owner] clutches at [owner.p_their()] chest as if [owner.p_their()] heart is stopping!"), \
span_userdanger("You feel a terrible pain in your chest, as if your heart has stopped!"))
addtimer(CALLBACK(src, .proc/Restart), 10 SECONDS)
/obj/item/organ/heart/cybernetic/on_life(delta_time, times_fired)
@@ -250,7 +250,7 @@
. = ..()
if(owner.health < 5 && COOLDOWN_FINISHED(src, adrenaline_cooldown))
COOLDOWN_START(src, adrenaline_cooldown, rand(25 SECONDS, 1 MINUTES))
to_chat(owner, "<span class='userdanger'>You feel yourself dying, but you refuse to give up!</span>")
to_chat(owner, span_userdanger("You feel yourself dying, but you refuse to give up!"))
owner.heal_overall_damage(15, 15, 0, BODYPART_ORGANIC)
if(owner.reagents.get_reagent_amount(/datum/reagent/medicine/ephedrine) < 20)
owner.reagents.add_reagent(/datum/reagent/medicine/ephedrine, 10)
@@ -313,11 +313,11 @@
switch(timeleft(crystalize_timer_id))
if(0 to CRYSTALIZE_STAGE_ENGULFING)
examine_list += "<span class='warning'>Crystals are almost engulfing [examined_human]! </span>"
examine_list += span_warning("Crystals are almost engulfing [examined_human]! ")
if(CRYSTALIZE_STAGE_ENGULFING to CRYSTALIZE_STAGE_ENCROACHING)
examine_list += "<span class='notice'>Crystals are starting to cover [examined_human]. </span>"
examine_list += span_notice("Crystals are starting to cover [examined_human]. ")
if(CRYSTALIZE_STAGE_SMALL to INFINITY)
examine_list += "<span class='notice'>Some crystals are coming out of [examined_human]. </span>"
examine_list += span_notice("Some crystals are coming out of [examined_human]. ")
///On stat changes, if the victim is no longer dead but they're crystalizing, cancel it, if they become dead, start the crystalizing process if possible
/obj/item/organ/heart/ethereal/proc/on_stat_change(mob/living/victim, new_stat)
@@ -335,8 +335,8 @@
if(!COOLDOWN_FINISHED(src, crystalize_cooldown))
return //lol double rip
to_chat(victim, "<span class='nicegreen'>Crystals start forming around your dead body.</span>")
victim.visible_message("<span class='notice'>Crystals start forming around [victim].</span>")
to_chat(victim, span_nicegreen("Crystals start forming around your dead body."))
victim.visible_message(span_notice("Crystals start forming around [victim]."))
ADD_TRAIT(victim, TRAIT_CORPSELOCKED, SPECIES_TRAIT)
crystalize_timer_id = addtimer(CALLBACK(src, .proc/crystalize, victim), CRYSTALIZE_PRE_WAIT_TIME, TIMER_STOPPABLE)
@@ -348,8 +348,8 @@
///Ran when disarmed, prevents the ethereal from reviving
/obj/item/organ/heart/ethereal/proc/reset_crystalizing(mob/living/defender, mob/living/attacker, zone)
SIGNAL_HANDLER
to_chat(defender, "<span class='notice'>The crystals on your corpse are gently broken off, and will need some time to recover.</span>")
defender.visible_message("<span class='notice'>The crystals on [defender] are gently broken off.</span>")
to_chat(defender, span_notice("The crystals on your corpse are gently broken off, and will need some time to recover."))
defender.visible_message(span_notice("The crystals on [defender] are gently broken off."))
deltimer(crystalize_timer_id)
crystalize_timer_id = addtimer(CALLBACK(src, .proc/crystalize, defender), CRYSTALIZE_DISARM_WAIT_TIME, TIMER_STOPPABLE) //Lets us restart the timer on disarm
@@ -363,7 +363,7 @@
return //Should probably not happen, but lets be safe.
if(ismob(location) || isitem(location)) //Stops crystallization if they are eaten by a dragon, turned into a legion, consumed by his grace, etc.
to_chat(ethereal, "<span class='userwarning'>You were unable to finish your crystallization, for obvious reasons.</span>")
to_chat(ethereal, span_warning("You were unable to finish your crystallization, for obvious reasons."))
stop_crystalization_process(ethereal, FALSE)
return
COOLDOWN_START(src, crystalize_cooldown, INFINITY) //Prevent cheeky double-healing until we get out, this is against stupid admemery
@@ -405,8 +405,8 @@
var/mob/living/carbon/human/ethereal = source
to_chat(ethereal, "<span class='userwarning'>The crystals on your body have completely broken</span>")
ethereal.visible_message("<span class='notice'>The crystals on [ethereal] are completely shattered and stopped growing</span>")
to_chat(ethereal, span_warning("The crystals on your body have completely broken"))
ethereal.visible_message(span_notice("The crystals on [ethereal] are completely shattered and stopped growing"))
stop_crystalization_process(ethereal)
@@ -430,8 +430,8 @@
/obj/structure/ethereal_crystal/Initialize(mapload, obj/item/organ/heart/ethereal/ethereal_heart)
. = ..()
src.ethereal_heart = ethereal_heart
ethereal_heart.owner.visible_message("<span class='notice'>The crystals fully encase [ethereal_heart.owner]!</span>")
to_chat(ethereal_heart.owner, "<span class='notice'>You are encased in a huge crystal!</span>")
ethereal_heart.owner.visible_message(span_notice("The crystals fully encase [ethereal_heart.owner]!"))
to_chat(ethereal_heart.owner, span_notice("You are encased in a huge crystal!"))
playsound(get_turf(src), 'sound/effects/ethereal_crystalization.ogg', 50)
ethereal_heart.owner.forceMove(src) //put that ethereal in
add_atom_colour(ethereal_heart.ethereal_color, FIXED_COLOUR_PRIORITY)
@@ -459,7 +459,7 @@
ethereal_heart.owner.forceMove(get_turf(src))
REMOVE_TRAIT(ethereal_heart.owner, TRAIT_CORPSELOCKED, SPECIES_TRAIT)
deltimer(crystal_heal_timer)
visible_message("<span class='notice'>The crystals shatters, causing [ethereal_heart.owner] to fall out</span>")
visible_message(span_notice("The crystals shatters, causing [ethereal_heart.owner] to fall out"))
return ..()
/obj/structure/ethereal_crystal/update_overlays()
@@ -471,7 +471,7 @@
/obj/structure/ethereal_crystal/proc/heal_ethereal()
ethereal_heart.owner.revive(TRUE, FALSE)
to_chat(ethereal_heart.owner, "<span class='notice'>You burst out of the crystal with vigour... </span><span class='userdanger'>But at a cost.</span>")
to_chat(ethereal_heart.owner, span_notice("You burst out of the crystal with vigour... </span><span class='userdanger'>But at a cost."))
var/datum/brain_trauma/picked_trauma
if(prob(10)) //10% chance for a severe trauma
picked_trauma = pick(subtypesof(/datum/brain_trauma/severe))
+5 -5
View File
@@ -54,7 +54,7 @@
if(HAS_TRAIT(src, TRAIT_CULINARY_METABOLISM))
. += "The high iron content and slight smell of garlic, implies that this is the liver of a <em>cook</em>."
if(HAS_TRAIT(src, TRAIT_COMEDY_METABOLISM))
. += "A smell of bananas, a slippery sheen and <span class='clown'>honking</span> when depressed, implies that this is the liver of a <em>clown</em>."
. += "A smell of bananas, a slippery sheen and [span_clown("honking")] when depressed, implies that this is the liver of a <em>clown</em>."
if(HAS_TRAIT(src, TRAIT_MEDICAL_METABOLISM))
. += "Marks of stress and a faint whiff of medicinal alcohol, imply that this is the liver of a <em>medical worker</em>."
if(HAS_TRAIT(src, TRAIT_GREYTIDE_METABOLISM))
@@ -99,7 +99,7 @@
liver_owner.reagents.metabolize(liver_owner, delta_time, times_fired, can_overdose=TRUE)
if(provide_pain_message && damage > 10 && DT_PROB(damage/6, delta_time)) //the higher the damage the higher the probability
to_chat(liver_owner, "<span class='warning'>You feel a dull pain in your abdomen.</span>")
to_chat(liver_owner, span_warning("You feel a dull pain in your abdomen."))
if(damage > maxHealth)//cap liver damage
@@ -170,11 +170,11 @@
return
switch(failure_time)
if(0 to 3 * LIVER_FAILURE_STAGE_SECONDS - 1)
examine_list += "<span class='notice'>[owner]'s eyes are slightly yellow.</span>"
examine_list += span_notice("[owner]'s eyes are slightly yellow.")
if(3 * LIVER_FAILURE_STAGE_SECONDS to 4 * LIVER_FAILURE_STAGE_SECONDS - 1)
examine_list += "<span class='notice'>[owner]'s eyes are completely yellow, and he is visibly suffering.</span>"
examine_list += span_notice("[owner]'s eyes are completely yellow, and he is visibly suffering.")
if(4 * LIVER_FAILURE_STAGE_SECONDS to INFINITY)
examine_list += "<span class='danger'>[owner]'s eyes are completely yellow and swelling with pus. [owner.p_they()] don't look like they will be alive for much longer.</span>"
examine_list += span_danger("[owner]'s eyes are completely yellow and swelling with pus. [owner.p_they()] don't look like they will be alive for much longer.")
/obj/item/organ/liver/on_death(delta_time, times_fired)
. = ..()
+11 -11
View File
@@ -300,7 +300,7 @@
breather.emote("burp")
if (prob(nitryl_pp) && nitryl_pp>10)
breather.adjustOrganLoss(ORGAN_SLOT_LUNGS, nitryl_pp/2)
to_chat(breather, "<span class='notice'>You feel a burning sensation in your chest</span>")
to_chat(breather, span_notice("You feel a burning sensation in your chest"))
gas_breathed = breath_gases[/datum/gas/nitryl][MOLES]
if (gas_breathed > gas_stimulation_min)
breather.reagents.add_reagent(/datum/reagent/nitryl,1)
@@ -310,12 +310,12 @@
// Freon
var/freon_pp = breath.get_breath_partial_pressure(breath_gases[/datum/gas/freon][MOLES])
if (prob(freon_pp))
to_chat(breather, "<span class='alert'>Your mouth feels like it's burning!</span>")
to_chat(breather, span_alert("Your mouth feels like it's burning!"))
if (freon_pp >40)
breather.emote("gasp")
breather.adjustFireLoss(15)
if (prob(freon_pp/2))
to_chat(breather, "<span class='alert'>Your throat closes up!</span>")
to_chat(breather, span_alert("Your throat closes up!"))
breather.silent = max(breather.silent, 3)
else
breather.adjustFireLoss(freon_pp/4)
@@ -329,7 +329,7 @@
var/healium_pp = breath.get_breath_partial_pressure(breath_gases[/datum/gas/healium][MOLES])
if(healium_pp > gas_stimulation_min)
if(prob(15))
to_chat(breather, "<span class='alert'>Your head starts spinning and your lungs burn!</span>")
to_chat(breather, span_alert("Your head starts spinning and your lungs burn!"))
healium_euphoria = EUPHORIA_ACTIVE
breather.emote("gasp")
else
@@ -395,22 +395,22 @@
// At lower pp, give out a little warning
SEND_SIGNAL(owner, COMSIG_CLEAR_MOOD_EVENT, "smell")
if(prob(5))
to_chat(owner, "<span class='notice'>There is an unpleasant smell in the air.</span>")
to_chat(owner, span_notice("There is an unpleasant smell in the air."))
if(5 to 15)
//At somewhat higher pp, warning becomes more obvious
if(prob(15))
to_chat(owner, "<span class='warning'>You smell something horribly decayed inside this room.</span>")
to_chat(owner, span_warning("You smell something horribly decayed inside this room."))
SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "smell", /datum/mood_event/disgust/bad_smell)
if(15 to 30)
//Small chance to vomit. By now, people have internals on anyway
if(prob(5))
to_chat(owner, "<span class='warning'>The stench of rotting carcasses is unbearable!</span>")
to_chat(owner, span_warning("The stench of rotting carcasses is unbearable!"))
SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "smell", /datum/mood_event/disgust/nauseating_stench)
owner.vomit()
if(30 to INFINITY)
//Higher chance to vomit. Let the horror start
if(prob(15))
to_chat(owner, "<span class='warning'>The stench of rotting carcasses is unbearable!</span>")
to_chat(owner, span_warning("The stench of rotting carcasses is unbearable!"))
SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "smell", /datum/mood_event/disgust/nauseating_stench)
owner.vomit()
else
@@ -468,7 +468,7 @@
breather.apply_damage_type(cold_level_1_damage*cold_modifier, cold_damage_type)
if(breath_temperature < cold_level_1_threshold)
if(prob(20))
to_chat(breather, "<span class='warning'>You feel [cold_message] in your [name]!</span>")
to_chat(breather, span_warning("You feel [cold_message] in your [name]!"))
if(!HAS_TRAIT(breather, TRAIT_RESISTHEAT)) // HEAT DAMAGE
var/heat_modifier = breather.dna.species.heatmod
@@ -480,7 +480,7 @@
breather.apply_damage_type(heat_level_3_damage*heat_modifier, heat_damage_type)
if(breath_temperature > heat_level_1_threshold)
if(prob(20))
to_chat(breather, "<span class='warning'>You feel [hot_message] in your [name]!</span>")
to_chat(breather, span_warning("You feel [hot_message] in your [name]!"))
// The air you breathe out should match your body temperature
breath.temperature = breather.bodytemperature
@@ -495,7 +495,7 @@
if(do_i_cough)
owner.emote("cough")
if(organ_flags & ORGAN_FAILING && owner.stat == CONSCIOUS)
owner.visible_message("<span class='danger'>[owner] grabs [owner.p_their()] throat, struggling for breath!</span>", "<span class='userdanger'>You suddenly feel like you can't breathe!</span>")
owner.visible_message(span_danger("[owner] grabs [owner.p_their()] throat, struggling for breath!"), span_userdanger("You suddenly feel like you can't breathe!"))
failed = TRUE
/obj/item/organ/lungs/get_availability(datum/species/owner_species)
@@ -132,17 +132,17 @@
/obj/item/organ/examine(mob/user)
. = ..()
. += "<span class='notice'>It should be inserted in the [parse_zone(zone)].</span>"
. += span_notice("It should be inserted in the [parse_zone(zone)].")
if(organ_flags & ORGAN_FAILING)
if(status == ORGAN_ROBOTIC)
. += "<span class='warning'>[src] seems to be broken.</span>"
. += span_warning("[src] seems to be broken.")
return
. += "<span class='warning'>[src] has decayed for too long, and has turned a sickly color. It probably won't work without repairs.</span>"
. += span_warning("[src] has decayed for too long, and has turned a sickly color. It probably won't work without repairs.")
return
if(damage > high_threshold)
. += "<span class='warning'>[src] is starting to look discolored.</span>"
. += span_warning("[src] is starting to look discolored.")
/obj/item/organ/Initialize()
. = ..()
+5 -5
View File
@@ -106,13 +106,13 @@
//The stomach is damage has nutriment but low on theshhold, lo prob of vomit
if(DT_PROB(0.0125 * damage * nutri_vol * nutri_vol, delta_time))
body.vomit(damage)
to_chat(body, "<span class='warning'>Your stomach reels in pain as you're incapable of holding down all that food!</span>")
to_chat(body, span_warning("Your stomach reels in pain as you're incapable of holding down all that food!"))
return
// the change of vomit is now high
if(damage > high_threshold && DT_PROB(0.05 * damage * nutri_vol * nutri_vol, delta_time))
body.vomit(damage)
to_chat(body, "<span class='warning'>Your stomach reels in pain as you're incapable of holding down all that food!</span>")
to_chat(body, span_warning("Your stomach reels in pain as you're incapable of holding down all that food!"))
/obj/item/organ/stomach/get_availability(datum/species/owner_species)
return !(NOSTOMACH in owner_species.inherent_traits)
@@ -125,7 +125,7 @@
disgusted.stuttering += 1
disgusted.add_confusion(2)
if(DT_PROB(5, delta_time) && !disgusted.stat)
to_chat(disgusted, "<span class='warning'>You feel kind of iffy...</span>")
to_chat(disgusted, span_warning("You feel kind of iffy..."))
disgusted.jitteriness = max(disgusted.jitteriness - 3, 0)
if(disgusted.disgust >= DISGUST_LEVEL_VERYGROSS)
if(DT_PROB(pukeprob, delta_time)) //iT hAndLeS mOrE ThaN PukInG
@@ -174,7 +174,7 @@
var/mob/living/carbon/body = owner
if(milk.volume > 50)
reagents.remove_reagent(milk.type, milk.volume - 5)
to_chat(owner, "<span class='warning'>The excess milk is dripping off your bones!</span>")
to_chat(owner, span_warning("The excess milk is dripping off your bones!"))
body.heal_bodypart_damage(milk_brute_healing * REAGENTS_EFFECT_MULTIPLIER * delta_time, milk_burn_healing * REAGENTS_EFFECT_MULTIPLIER * delta_time)
for(var/datum/wound/iter_wound as anything in body.all_wounds)
@@ -218,7 +218,7 @@
if(flags & SHOCK_ILLUSION)
return
adjust_charge(shock_damage * siemens_coeff * 2)
to_chat(owner, "<span class='notice'>You absorb some of the shock into your body!</span>")
to_chat(owner, span_notice("You absorb some of the shock into your body!"))
/obj/item/organ/stomach/ethereal/proc/adjust_charge(amount)
crystal_charge = clamp(crystal_charge + amount, ETHEREAL_CHARGE_NONE, ETHEREAL_CHARGE_DANGEROUS)
+18 -18
View File
@@ -119,19 +119,19 @@
/datum/action/item_action/organ_action/statue/Trigger()
. = ..()
if(!iscarbon(owner))
to_chat(owner, "<span class='warning'>Your body rejects the powers of the tongue!</span>")
to_chat(owner, span_warning("Your body rejects the powers of the tongue!"))
return
var/mob/living/carbon/becoming_statue = owner
if(becoming_statue.health < 1)
to_chat(becoming_statue, "<span class='danger'>You are too weak to become a statue!</span>")
to_chat(becoming_statue, span_danger("You are too weak to become a statue!"))
return
if(!COOLDOWN_FINISHED(src, ability_cooldown))
to_chat(becoming_statue, "<span class='warning'>You just used the ability, wait a little bit!</span>")
to_chat(becoming_statue, span_warning("You just used the ability, wait a little bit!"))
return
var/is_statue = becoming_statue.loc == statue
to_chat(becoming_statue, "<span class='notice'>You begin to [is_statue ? "break free from the statue" : "make a glorious pose as you become a statue"]!</span>")
to_chat(becoming_statue, span_notice("You begin to [is_statue ? "break free from the statue" : "make a glorious pose as you become a statue"]!"))
if(!do_after(becoming_statue, (is_statue ? 5 : 30), target = get_turf(becoming_statue)))
to_chat(becoming_statue, "<span class='warning'>Your transformation is interrupted!</span>")
to_chat(becoming_statue, span_warning("Your transformation is interrupted!"))
COOLDOWN_START(src, ability_cooldown, 3 SECONDS)
return
COOLDOWN_START(src, ability_cooldown, 10 SECONDS)
@@ -142,12 +142,12 @@
statue.set_custom_materials(list(/datum/material/silver=MINERAL_MATERIAL_AMOUNT*5))
if(is_statue)
statue.visible_message("<span class='danger'>[statue] becomes animated!</span>")
statue.visible_message(span_danger("[statue] becomes animated!"))
becoming_statue.forceMove(get_turf(statue))
statue.moveToNullspace()
UnregisterSignal(becoming_statue, COMSIG_MOVABLE_MOVED)
else
becoming_statue.visible_message("<span class='notice'>[becoming_statue] hardens into a silver statue.</span>", "<span class='notice'>You have become a silver statue!</span>")
becoming_statue.visible_message(span_notice("[becoming_statue] hardens into a silver statue."), span_notice("You have become a silver statue!"))
statue.set_visuals(becoming_statue.appearance)
statue.forceMove(get_turf(becoming_statue))
becoming_statue.forceMove(statue)
@@ -162,7 +162,7 @@
UnregisterSignal(mover, COMSIG_MOVABLE_MOVED)
/datum/action/item_action/organ_action/statue/proc/statue_destroyed(datum/source)
to_chat(owner, "<span class='userdanger'>Your existence as a living creature snaps as your statue form crumbles!</span>")
to_chat(owner, span_userdanger("Your existence as a living creature snaps as your statue form crumbles!"))
if(iscarbon(owner))
//drop everything, just in case
var/mob/living/carbon/dying_carbon = owner
@@ -228,27 +228,27 @@
return
if(tongue.mothership == mothership)
to_chat(tongue_holder, "<span class='notice'>[src] is already attuned to the same channel as your own.</span>")
to_chat(tongue_holder, span_notice("[src] is already attuned to the same channel as your own."))
tongue_holder.visible_message("<span class='notice'>[tongue_holder] holds [src] in their hands, and concentrates for a moment.</span>", "<span class='notice'>You attempt to modify the attenuation of [src].</span>")
tongue_holder.visible_message(span_notice("[tongue_holder] holds [src] in their hands, and concentrates for a moment."), span_notice("You attempt to modify the attenuation of [src]."))
if(do_after(tongue_holder, delay=15, target=src))
to_chat(tongue_holder, "<span class='notice'>You attune [src] to your own channel.</span>")
to_chat(tongue_holder, span_notice("You attune [src] to your own channel."))
mothership = tongue.mothership
/obj/item/organ/tongue/abductor/examine(mob/examining_mob)
. = ..()
if(HAS_TRAIT(examining_mob, TRAIT_ABDUCTOR_TRAINING) || (examining_mob.mind && HAS_TRAIT(examining_mob.mind, TRAIT_ABDUCTOR_TRAINING)) || isobserver(examining_mob))
. += "<span class='notice'>It can be attuned to a different channel by using it inhand.</span>"
. += span_notice("It can be attuned to a different channel by using it inhand.")
if(!mothership)
. += "<span class='notice'>It is not attuned to a specific mothership.</span>"
. += span_notice("It is not attuned to a specific mothership.")
else
. += "<span class='notice'>It is attuned to [mothership].</span>"
. += span_notice("It is attuned to [mothership].")
/obj/item/organ/tongue/abductor/handle_speech(datum/source, list/speech_args)
//Hacks
var/message = speech_args[SPEECH_MESSAGE]
var/mob/living/carbon/human/user = source
var/rendered = "<span class='abductor'><b>[user.real_name]:</b> [message]</span>"
var/rendered = span_abductor("<b>[user.real_name]:</b> [message]")
user.log_talk(message, LOG_SAY, tag="abductor")
for(var/mob/living/carbon/human/living_mob in GLOB.alive_mob_list)
var/obj/item/organ/tongue/abductor/tongue = living_mob.getorganslot(ORGAN_SLOT_TONGUE)
@@ -463,8 +463,8 @@
speech_args[SPEECH_MESSAGE] = new_message
if(exclamation_found && question_found)
signer.visible_message("<span class='notice'>[signer] lowers one of [signer.p_their()] eyebrows, raising the other.</span>")
signer.visible_message(span_notice("[signer] lowers one of [signer.p_their()] eyebrows, raising the other."))
else if(exclamation_found)
signer.visible_message("<span class='notice'>[signer] raises [signer.p_their()] eyebrows.</span>")
signer.visible_message(span_notice("[signer] raises [signer.p_their()] eyebrows."))
else if(question_found)
signer.visible_message("<span class='notice'>[signer] lowers [signer.p_their()] eyebrows.</span>")
signer.visible_message(span_notice("[signer] lowers [signer.p_their()] eyebrows."))
+4 -4
View File
@@ -39,7 +39,7 @@
owner.say(".x[message]")
/obj/item/organ/vocal_cords/adamantine/handle_speech(message)
var/msg = "<span class='resonate'><span class='name'>[owner.real_name]</span> <span class='message'>resonates, \"[message]\"</span></span>"
var/msg = span_resonate(span_name("[owner.real_name]</span> <span class='message'>resonates, \"[message]\""))
for(var/player in GLOB.player_list)
if(iscarbon(player))
var/mob/living/carbon/speaker = player
@@ -86,7 +86,7 @@
. = ..()
if(!IsAvailable())
if(world.time < cords.next_command)
to_chat(owner, "<span class='notice'>You must wait [DisplayTimeText(cords.next_command - world.time)] before Speaking again.</span>")
to_chat(owner, span_notice("You must wait [DisplayTimeText(cords.next_command - world.time)] before Speaking again."))
return
var/command = input(owner, "Speak with the Voice of God", "Command")
if(QDELETED(src) || QDELETED(owner))
@@ -97,12 +97,12 @@
/obj/item/organ/vocal_cords/colossus/can_speak_with()
if(world.time < next_command)
to_chat(owner, "<span class='notice'>You must wait [DisplayTimeText(next_command - world.time)] before Speaking again.</span>")
to_chat(owner, span_notice("You must wait [DisplayTimeText(next_command - world.time)] before Speaking again."))
return FALSE
if(!owner)
return FALSE
if(!owner.can_speak_vocal())
to_chat(owner, "<span class='warning'>You are unable to speak!</span>")
to_chat(owner, span_warning("You are unable to speak!"))
return FALSE
return TRUE
+13 -13
View File
@@ -17,17 +17,17 @@
time = 64
/datum/surgery_step/reshape_face/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
user.visible_message("<span class='notice'>[user] begins to alter [target]'s appearance.</span>", "<span class='notice'>You begin to alter [target]'s appearance...</span>")
display_results(user, target, "<span class='notice'>You begin to alter [target]'s appearance...</span>",
"<span class='notice'>[user] begins to alter [target]'s appearance.</span>",
"<span class='notice'>[user] begins to make an incision in [target]'s face.</span>")
user.visible_message(span_notice("[user] begins to alter [target]'s appearance."), span_notice("You begin to alter [target]'s appearance..."))
display_results(user, target, span_notice("You begin to alter [target]'s appearance..."),
span_notice("[user] begins to alter [target]'s appearance."),
span_notice("[user] begins to make an incision in [target]'s face."))
/datum/surgery_step/reshape_face/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
if(HAS_TRAIT_FROM(target, TRAIT_DISFIGURED, TRAIT_GENERIC))
REMOVE_TRAIT(target, TRAIT_DISFIGURED, TRAIT_GENERIC)
display_results(user, target, "<span class='notice'>You successfully restore [target]'s appearance.</span>",
"<span class='notice'>[user] successfully restores [target]'s appearance!</span>",
"<span class='notice'>[user] finishes the operation on [target]'s face.</span>")
display_results(user, target, span_notice("You successfully restore [target]'s appearance."),
span_notice("[user] successfully restores [target]'s appearance!"),
span_notice("[user] finishes the operation on [target]'s face."))
else
var/list/names = list()
if(!isabductor(user))
@@ -43,17 +43,17 @@
var/oldname = target.real_name
target.real_name = chosen_name
var/newname = target.real_name //something about how the code handles names required that I use this instead of target.real_name
display_results(user, target, "<span class='notice'>You alter [oldname]'s appearance completely, [target.p_they()] is now [newname].</span>",
"<span class='notice'>[user] alters [oldname]'s appearance completely, [target.p_they()] is now [newname]!</span>",
"<span class='notice'>[user] finishes the operation on [target]'s face.</span>")
display_results(user, target, span_notice("You alter [oldname]'s appearance completely, [target.p_they()] is now [newname]."),
span_notice("[user] alters [oldname]'s appearance completely, [target.p_they()] is now [newname]!"),
span_notice("[user] finishes the operation on [target]'s face."))
if(ishuman(target))
var/mob/living/carbon/human/human_target = target
human_target.sec_hud_set_ID()
return ..()
/datum/surgery_step/reshape_face/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='warning'>You screw up, leaving [target]'s appearance disfigured!</span>",
"<span class='notice'>[user] screws up, disfiguring [target]'s appearance!</span>",
"<span class='notice'>[user] finishes the operation on [target]'s face.</span>")
display_results(user, target, span_warning("You screw up, leaving [target]'s appearance disfigured!"),
span_notice("[user] screws up, disfiguring [target]'s appearance!"),
span_notice("[user] finishes the operation on [target]'s face."))
ADD_TRAIT(target, TRAIT_DISFIGURED, TRAIT_GENERIC)
return FALSE
+25 -25
View File
@@ -33,42 +33,42 @@
/datum/surgery_step/add_prosthetic/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(istype(tool, /obj/item/borg/apparatus/organ_storage))
if(!tool.contents.len)
to_chat(user, "<span class='warning'>There is nothing inside [tool]!</span>")
to_chat(user, span_warning("There is nothing inside [tool]!"))
return -1
var/obj/item/organ_storage_contents = tool.contents[1]
if(!isbodypart(organ_storage_contents))
to_chat(user, "<span class='warning'>[organ_storage_contents] cannot be attached!</span>")
to_chat(user, span_warning("[organ_storage_contents] cannot be attached!"))
return -1
tool = organ_storage_contents
if(istype(tool, /obj/item/bodypart))
var/obj/item/bodypart/bodypart_to_attach = tool
if(ismonkey(target))// monkey patient only accept organic monkey limbs
if(bodypart_to_attach.status == BODYPART_ROBOTIC || bodypart_to_attach.animal_origin != MONKEY_BODYPART)
to_chat(user, "<span class='warning'>[bodypart_to_attach] doesn't match the patient's morphology.</span>")
to_chat(user, span_warning("[bodypart_to_attach] doesn't match the patient's morphology."))
return -1
if(bodypart_to_attach.status != BODYPART_ROBOTIC)
organ_rejection_dam = 10
if(ishuman(target))
if(bodypart_to_attach.animal_origin)
to_chat(user, "<span class='warning'>[bodypart_to_attach] doesn't match the patient's morphology.</span>")
to_chat(user, span_warning("[bodypart_to_attach] doesn't match the patient's morphology."))
return -1
var/mob/living/carbon/human/human_target = target
if(human_target.dna.species.id != bodypart_to_attach.species_id)
organ_rejection_dam = 30
if(target_zone == bodypart_to_attach.body_zone) //so we can't replace a leg with an arm, or a human arm with a monkey arm.
display_results(user, target, "<span class='notice'>You begin to replace [target]'s [parse_zone(target_zone)] with [tool]...</span>",
"<span class='notice'>[user] begins to replace [target]'s [parse_zone(target_zone)] with [tool].</span>",
"<span class='notice'>[user] begins to replace [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to replace [target]'s [parse_zone(target_zone)] with [tool]..."),
span_notice("[user] begins to replace [target]'s [parse_zone(target_zone)] with [tool]."),
span_notice("[user] begins to replace [target]'s [parse_zone(target_zone)]."))
else
to_chat(user, "<span class='warning'>[tool] isn't the right type for [parse_zone(target_zone)].</span>")
to_chat(user, span_warning("[tool] isn't the right type for [parse_zone(target_zone)]."))
return -1
else if(target_zone == BODY_ZONE_L_ARM || target_zone == BODY_ZONE_R_ARM)
display_results(user, target, "<span class='notice'>You begin to attach [tool] onto [target]...</span>",
"<span class='notice'>[user] begins to attach [tool] onto [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] begins to attach something onto [target]'s [parse_zone(target_zone)].</span>")
display_results(user, target, span_notice("You begin to attach [tool] onto [target]..."),
span_notice("[user] begins to attach [tool] onto [target]'s [parse_zone(target_zone)]."),
span_notice("[user] begins to attach something onto [target]'s [parse_zone(target_zone)]."))
else
to_chat(user, "<span class='warning'>[tool] must be installed onto an arm.</span>")
to_chat(user, span_warning("[tool] must be installed onto an arm."))
return -1
/datum/surgery_step/add_prosthetic/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
@@ -81,29 +81,29 @@
if(istype(tool, /obj/item/bodypart) && user.temporarilyRemoveItemFromInventory(tool))
var/obj/item/bodypart/limb_to_attach = tool
if(!limb_to_attach.attach_limb(target))
display_results(user, target, "<span class='warning'>You fail in replacing [target]'s [parse_zone(target_zone)]! Their body has rejected [limb_to_attach]!</span>",
"<span class='warning'>[user] fails to replace [target]'s [parse_zone(target_zone)]!</span>",
"<span class='warning'>[user] fails to replaces [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_warning("You fail in replacing [target]'s [parse_zone(target_zone)]! Their body has rejected [limb_to_attach]!"),
span_warning("[user] fails to replace [target]'s [parse_zone(target_zone)]!"),
span_warning("[user] fails to replaces [target]'s [parse_zone(target_zone)]!"))
return
if(organ_rejection_dam)
target.adjustToxLoss(organ_rejection_dam)
display_results(user, target, "<span class='notice'>You succeed in replacing [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] successfully replaces [target]'s [parse_zone(target_zone)] with [tool]!</span>",
"<span class='notice'>[user] successfully replaces [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You succeed in replacing [target]'s [parse_zone(target_zone)]."),
span_notice("[user] successfully replaces [target]'s [parse_zone(target_zone)] with [tool]!"),
span_notice("[user] successfully replaces [target]'s [parse_zone(target_zone)]!"))
return
else
var/obj/item/bodypart/limb_to_attach = target.newBodyPart(target_zone, FALSE, FALSE)
limb_to_attach.is_pseudopart = TRUE
if(!limb_to_attach.attach_limb(target))
display_results(user, target, "<span class='warning'>You fail in attaching [target]'s [parse_zone(target_zone)]! Their body has rejected [limb_to_attach]!</span>",
"<span class='warning'>[user] fails to attach [target]'s [parse_zone(target_zone)]!</span>",
"<span class='warning'>[user] fails to attach [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_warning("You fail in attaching [target]'s [parse_zone(target_zone)]! Their body has rejected [limb_to_attach]!"),
span_warning("[user] fails to attach [target]'s [parse_zone(target_zone)]!"),
span_warning("[user] fails to attach [target]'s [parse_zone(target_zone)]!"))
limb_to_attach.forceMove(target.loc)
return
user.visible_message("<span class='notice'>[user] finishes attaching [tool]!</span>", "<span class='notice'>You attach [tool].</span>")
display_results(user, target, "<span class='notice'>You attach [tool].</span>",
"<span class='notice'>[user] finishes attaching [tool]!</span>",
"<span class='notice'>[user] finishes the attachment procedure!</span>")
user.visible_message(span_notice("[user] finishes attaching [tool]!"), span_notice("You attach [tool]."))
display_results(user, target, span_notice("You attach [tool]."),
span_notice("[user] finishes attaching [tool]!"),
span_notice("[user] finishes the attachment procedure!"))
qdel(tool)
if(istype(tool, /obj/item/chainsaw))
var/obj/item/mounted_chainsaw/new_arm = new(target)
+22 -22
View File
@@ -41,27 +41,27 @@
/datum/surgery_step/repair_innards/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
var/datum/wound/pierce/pierce_wound = surgery.operated_wound
if(!pierce_wound)
user.visible_message("<span class='notice'>[user] looks for [target]'s [parse_zone(user.zone_selected)].</span>", "<span class='notice'>You look for [target]'s [parse_zone(user.zone_selected)]...</span>")
user.visible_message(span_notice("[user] looks for [target]'s [parse_zone(user.zone_selected)]."), span_notice("You look for [target]'s [parse_zone(user.zone_selected)]..."))
return
if(pierce_wound.blood_flow <= 0)
to_chat(user, "<span class='notice'>[target]'s [parse_zone(user.zone_selected)] has no puncture to repair!</span>")
to_chat(user, span_notice("[target]'s [parse_zone(user.zone_selected)] has no puncture to repair!"))
surgery.status++
return
display_results(user, target, "<span class='notice'>You begin to realign the torn blood vessels in [target]'s [parse_zone(user.zone_selected)]...</span>",
"<span class='notice'>[user] begins to realign the torn blood vessels in [target]'s [parse_zone(user.zone_selected)] with [tool].</span>",
"<span class='notice'>[user] begins to realign the torn blood vessels in [target]'s [parse_zone(user.zone_selected)].</span>")
display_results(user, target, span_notice("You begin to realign the torn blood vessels in [target]'s [parse_zone(user.zone_selected)]..."),
span_notice("[user] begins to realign the torn blood vessels in [target]'s [parse_zone(user.zone_selected)] with [tool]."),
span_notice("[user] begins to realign the torn blood vessels in [target]'s [parse_zone(user.zone_selected)]."))
/datum/surgery_step/repair_innards/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
var/datum/wound/pierce/pierce_wound = surgery.operated_wound
if(!pierce_wound)
to_chat(user, "<span class='warning'>[target] has no puncture wound there!</span>")
to_chat(user, span_warning("[target] has no puncture wound there!"))
return ..()
display_results(user, target, "<span class='notice'>You successfully realign some of the blood vessels in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] successfully realigns some of the blood vessels in [target]'s [parse_zone(target_zone)] with [tool]!</span>",
"<span class='notice'>[user] successfully realigns some of the blood vessels in [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You successfully realign some of the blood vessels in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] successfully realigns some of the blood vessels in [target]'s [parse_zone(target_zone)] with [tool]!"),
span_notice("[user] successfully realigns some of the blood vessels in [target]'s [parse_zone(target_zone)]!"))
log_combat(user, target, "excised infected flesh in", addition="COMBAT MODE: [uppertext(user.combat_mode)]")
surgery.operated_bodypart.receive_damage(brute=3, wound_bonus=CANT_WOUND)
pierce_wound.blood_flow -= 0.25
@@ -69,9 +69,9 @@
/datum/surgery_step/repair_innards/failure(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, fail_prob = 0)
. = ..()
display_results(user, target, "<span class='notice'>You jerk apart some of the blood vessels in [target]'s [parse_zone(target_zone)].</span>",
"<span class='notice'>[user] jerks apart some of the blood vessels in [target]'s [parse_zone(target_zone)] with [tool]!</span>",
"<span class='notice'>[user] jerk apart some of the blood vessels in [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You jerk apart some of the blood vessels in [target]'s [parse_zone(target_zone)]."),
span_notice("[user] jerks apart some of the blood vessels in [target]'s [parse_zone(target_zone)] with [tool]!"),
span_notice("[user] jerk apart some of the blood vessels in [target]'s [parse_zone(target_zone)]!"))
surgery.operated_bodypart.receive_damage(brute=rand(4,8), sharpness=SHARP_EDGED, wound_bonus = 10)
///// Sealing the vessels back together
@@ -93,28 +93,28 @@
/datum/surgery_step/seal_veins/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
var/datum/wound/pierce/pierce_wound = surgery.operated_wound
if(!pierce_wound)
user.visible_message("<span class='notice'>[user] looks for [target]'s [parse_zone(user.zone_selected)].</span>", "<span class='notice'>You look for [target]'s [parse_zone(user.zone_selected)]...</span>")
user.visible_message(span_notice("[user] looks for [target]'s [parse_zone(user.zone_selected)]."), span_notice("You look for [target]'s [parse_zone(user.zone_selected)]..."))
return
display_results(user, target, "<span class='notice'>You begin to meld some of the split blood vessels in [target]'s [parse_zone(user.zone_selected)]...</span>",
"<span class='notice'>[user] begins to meld some of the split blood vessels in [target]'s [parse_zone(user.zone_selected)] with [tool].</span>",
"<span class='notice'>[user] begins to meld some of the split blood vessels in [target]'s [parse_zone(user.zone_selected)].</span>")
display_results(user, target, span_notice("You begin to meld some of the split blood vessels in [target]'s [parse_zone(user.zone_selected)]..."),
span_notice("[user] begins to meld some of the split blood vessels in [target]'s [parse_zone(user.zone_selected)] with [tool]."),
span_notice("[user] begins to meld some of the split blood vessels in [target]'s [parse_zone(user.zone_selected)]."))
/datum/surgery_step/seal_veins/success(mob/living/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
var/datum/wound/pierce/pierce_wound = surgery.operated_wound
if(!pierce_wound)
to_chat(user, "<span class='warning'>[target] has no puncture there!</span>")
to_chat(user, span_warning("[target] has no puncture there!"))
return ..()
display_results(user, target, "<span class='notice'>You successfully meld some of the split blood vessels in [target]'s [parse_zone(target_zone)] with [tool].</span>",
"<span class='notice'>[user] successfully melds some of the split blood vessels in [target]'s [parse_zone(target_zone)] with [tool]!</span>",
"<span class='notice'>[user] successfully melds some of the split blood vessels in [target]'s [parse_zone(target_zone)]!</span>")
display_results(user, target, span_notice("You successfully meld some of the split blood vessels in [target]'s [parse_zone(target_zone)] with [tool]."),
span_notice("[user] successfully melds some of the split blood vessels in [target]'s [parse_zone(target_zone)] with [tool]!"),
span_notice("[user] successfully melds some of the split blood vessels in [target]'s [parse_zone(target_zone)]!"))
log_combat(user, target, "dressed burns in", addition="COMBAT MODE: [uppertext(user.combat_mode)]")
pierce_wound.blood_flow -= 0.5
if(pierce_wound.blood_flow > 0)
surgery.status = REALIGN_INNARDS
to_chat(user, "<span class='notice'><i>There still seems to be misaligned blood vessels to finish...<i></span>")
to_chat(user, span_notice("<i>There still seems to be misaligned blood vessels to finish...<i>"))
else
to_chat(user, "<span class='green'>You've repaired all the internal damage in [target]'s [parse_zone(target_zone)]!</span>")
to_chat(user, span_green("You've repaired all the internal damage in [target]'s [parse_zone(target_zone)]!"))
return ..()
#undef REALIGN_INNARDS
+14 -14
View File
@@ -40,48 +40,48 @@
if(istype(tool, /obj/item/shockpaddles))
var/obj/item/shockpaddles/paddles = tool
if((paddles.req_defib && !paddles.defib.powered) || !paddles.wielded || paddles.cooldown || paddles.busy)
to_chat(user, "<span class='warning'>You need to wield both paddles, and [paddles.defib] must be powered!</span>")
to_chat(user, span_warning("You need to wield both paddles, and [paddles.defib] must be powered!"))
return FALSE
if(istype(tool, /obj/item/melee/baton))
var/obj/item/melee/baton/baton = tool
if(!baton.turned_on)
to_chat(user, "<span class='warning'>[baton] needs to be active!</span>")
to_chat(user, span_warning("[baton] needs to be active!"))
return FALSE
if(istype(tool, /obj/item/gun/energy))
var/obj/item/gun/energy/egun = tool
if(egun.chambered && istype(egun.chambered, /obj/item/ammo_casing/energy/electrode))
return TRUE
else
to_chat(user, "<span class='warning'>You need an electrode for this!</span>")
to_chat(user, span_warning("You need an electrode for this!"))
return FALSE
/datum/surgery_step/revive/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You prepare to give [target]'s brain the spark of life with [tool].</span>",
"<span class='notice'>[user] prepares to shock [target]'s brain with [tool].</span>",
"<span class='notice'>[user] prepares to shock [target]'s brain with [tool].</span>")
display_results(user, target, span_notice("You prepare to give [target]'s brain the spark of life with [tool]."),
span_notice("[user] prepares to shock [target]'s brain with [tool]."),
span_notice("[user] prepares to shock [target]'s brain with [tool]."))
target.notify_ghost_cloning("Someone is trying to zap your brain.", source = target)
/datum/surgery_step/revive/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results)
display_results(user, target, "<span class='notice'>You successfully shock [target]'s brain with [tool]...</span>",
"<span class='notice'>[user] send a powerful shock to [target]'s brain with [tool]...</span>",
"<span class='notice'>[user] send a powerful shock to [target]'s brain with [tool]...</span>")
display_results(user, target, span_notice("You successfully shock [target]'s brain with [tool]..."),
span_notice("[user] send a powerful shock to [target]'s brain with [tool]..."),
span_notice("[user] send a powerful shock to [target]'s brain with [tool]..."))
playsound(get_turf(target), 'sound/magic/lightningbolt.ogg', 50, TRUE)
target.grab_ghost()
target.adjustOxyLoss(-50, 0)
target.updatehealth()
if(target.revive(full_heal = FALSE, admin_revive = FALSE))
target.visible_message("<span class='notice'>...[target] wakes up, alive and aware!</span>")
target.visible_message(span_notice("...[target] wakes up, alive and aware!"))
target.emote("gasp")
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 50, 199) //MAD SCIENCE
return TRUE
else
target.visible_message("<span class='warning'>...[target.p_they()] convulses, then lies still.</span>")
target.visible_message(span_warning("...[target.p_they()] convulses, then lies still."))
return FALSE
/datum/surgery_step/revive/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You shock [target]'s brain with [tool], but [target.p_they()] doesn't react.</span>",
"<span class='notice'>[user] send a powerful shock to [target]'s brain with [tool], but [target.p_they()] doesn't react.</span>",
"<span class='notice'>[user] send a powerful shock to [target]'s brain with [tool], but [target.p_they()] doesn't react.</span>")
display_results(user, target, span_notice("You shock [target]'s brain with [tool], but [target.p_they()] doesn't react."),
span_notice("[user] send a powerful shock to [target]'s brain with [tool], but [target.p_they()] doesn't react."),
span_notice("[user] send a powerful shock to [target]'s brain with [tool], but [target.p_they()] doesn't react."))
playsound(get_turf(target), 'sound/magic/lightningbolt.ogg', 50, TRUE)
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 15, 180)
return FALSE
+8 -8
View File
@@ -30,15 +30,15 @@
time = 20
/datum/surgery_step/stomach_pump/preop(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin pumping [target]'s stomach...</span>",
"<span class='notice'>[user] begins to pump [target]'s stomach.</span>",
"<span class='notice'>[user] begins to press on [target]'s chest.</span>")
display_results(user, target, span_notice("You begin pumping [target]'s stomach..."),
span_notice("[user] begins to pump [target]'s stomach."),
span_notice("[user] begins to press on [target]'s chest."))
/datum/surgery_step/stomach_pump/success(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = FALSE)
if(ishuman(target))
var/mob/living/carbon/human/target_human = target
display_results(user, target, "<span class='notice'>[user] forces [target_human] to vomit, cleansing their stomach of some chemicals!</span>",
"<span class='notice'>[user] forces [target_human] to vomit, cleansing their stomach of some chemicals!</span>",
display_results(user, target, span_notice("[user] forces [target_human] to vomit, cleansing their stomach of some chemicals!"),
span_notice("[user] forces [target_human] to vomit, cleansing their stomach of some chemicals!"),
"[user] forces [target_human] to vomit!")
target_human.vomit(20, FALSE, TRUE, 1, TRUE, FALSE, purge_ratio = 0.67) //higher purge ratio than regular vomiting
return ..()
@@ -46,8 +46,8 @@
/datum/surgery_step/stomach_pump/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
if(ishuman(target))
var/mob/living/carbon/human/target_human = target
display_results(user, target, "<span class='warning'>You screw up, brusing [target_human]'s chest!</span>",
"<span class='warning'>[user] screws up, brusing [target_human]'s chest!</span>",
"<span class='warning'>[user] screws up!</span>")
display_results(user, target, span_warning("You screw up, brusing [target_human]'s chest!"),
span_warning("[user] screws up, brusing [target_human]'s chest!"),
span_warning("[user] screws up!"))
target_human.adjustOrganLoss(ORGAN_SLOT_STOMACH, 5)
target_human.adjustBruteLoss(5)
+1 -1
View File
@@ -104,7 +104,7 @@
if(step.try_op(user, target, user.zone_selected, tool, src, try_to_fail))
return TRUE
if(tool && tool.item_flags & SURGICAL_TOOL) //Just because you used the wrong tool it doesn't mean you meant to whack the patient with it
to_chat(user, "<span class='warning'>This step requires a different tool!</span>")
to_chat(user, span_warning("This step requires a different tool!"))
return TRUE
return FALSE
+11 -11
View File
@@ -42,7 +42,7 @@
if(get_location_accessible(target, target_zone) || surgery.ignore_clothes)
initiate(user, target, target_zone, tool, surgery, try_to_fail)
else
to_chat(user, "<span class='warning'>You need to expose [target]'s [parse_zone(target_zone)] to perform surgery on it!</span>")
to_chat(user, span_warning("You need to expose [target]'s [parse_zone(target_zone)] to perform surgery on it!"))
return TRUE //returns TRUE so we don't stab the guy in the dick or wherever.
if(repeatable)
@@ -114,15 +114,15 @@
return advance
/datum/surgery_step/proc/preop(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery)
display_results(user, target, "<span class='notice'>You begin to perform surgery on [target]...</span>",
"<span class='notice'>[user] begins to perform surgery on [target].</span>",
"<span class='notice'>[user] begins to perform surgery on [target].</span>")
display_results(user, target, span_notice("You begin to perform surgery on [target]..."),
span_notice("[user] begins to perform surgery on [target]."),
span_notice("[user] begins to perform surgery on [target]."))
/datum/surgery_step/proc/success(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, default_display_results = TRUE)
if(default_display_results)
display_results(user, target, "<span class='notice'>You succeed.</span>",
"<span class='notice'>[user] succeeds!</span>",
"<span class='notice'>[user] finishes.</span>")
display_results(user, target, span_notice("You succeed."),
span_notice("[user] succeeds!"),
span_notice("[user] finishes."))
return TRUE
/datum/surgery_step/proc/failure(mob/user, mob/living/target, target_zone, obj/item/tool, datum/surgery/surgery, fail_prob = 0)
@@ -135,9 +135,9 @@
if(75 to 99)
screwedmessage = " This is practically impossible in these conditions..."
display_results(user, target, "<span class='warning'>You screw up![screwedmessage]</span>",
"<span class='warning'>[user] screws up!</span>",
"<span class='notice'>[user] finishes.</span>", TRUE) //By default the patient will notice if the wrong thing has been cut
display_results(user, target, span_warning("You screw up![screwedmessage]"),
span_warning("[user] screws up!"),
span_notice("[user] finishes."), TRUE) //By default the patient will notice if the wrong thing has been cut
return FALSE
/datum/surgery_step/proc/tool_check(mob/user, obj/item/tool)
@@ -174,4 +174,4 @@
user.visible_message(detailed_message, self_message, vision_distance = 1, ignored_mobs = target_detailed ? null : target)
if(!target_detailed)
var/you_feel = pick("a brief pain", "your body tense up", "an unnerving sensation")
target.show_message(vague_message, MSG_VISUAL, "<span class='notice'>You feel [you_feel] as you are operated on.</span>")
target.show_message(vague_message, MSG_VISUAL, span_notice("You feel [you_feel] as you are operated on."))
+17 -17
View File
@@ -58,7 +58,7 @@
toolspeed = 1
/obj/item/cautery/ignition_effect(atom/A, mob/user)
. = "<span class='notice'>[user] touches the end of [src] to \the [A], igniting it with a puff of smoke.</span>"
. = span_notice("[user] touches the end of [src] to \the [A], igniting it with a puff of smoke.")
/obj/item/cautery/augment
desc = "A heated element that cauterizes wounds."
@@ -80,11 +80,11 @@
playsound(get_turf(user), 'sound/weapons/tap.ogg', 50, TRUE)
if(tool_behaviour == TOOL_CAUTERY)
tool_behaviour = TOOL_DRILL
to_chat(user, "<span class='notice'>You dilate the lenses of [src], it is now in drilling mode.</span>")
to_chat(user, span_notice("You dilate the lenses of [src], it is now in drilling mode."))
icon_state = "surgicaldrill_a"
else
tool_behaviour = TOOL_CAUTERY
to_chat(user, "<span class='notice'>You focus the lenses of [src], it is now in mending mode.</span>")
to_chat(user, span_notice("You focus the lenses of [src], it is now in mending mode."))
icon_state = "cautery_a"
/obj/item/cautery/advanced/examine()
@@ -117,7 +117,7 @@
AddElement(/datum/element/eyestab)
/obj/item/surgicaldrill/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] rams [src] into [user.p_their()] chest! It looks like [user.p_theyre()] trying to commit suicide!</span>")
user.visible_message(span_suicide("[user] rams [src] into [user.p_their()] chest! It looks like [user.p_theyre()] trying to commit suicide!"))
addtimer(CALLBACK(user, /mob/living/carbon.proc/gib, null, null, TRUE, TRUE), 25)
user.SpinAnimation(3, 10)
playsound(user, 'sound/machines/juicer.ogg', 20, TRUE)
@@ -165,7 +165,7 @@
toolspeed = 0.5
/obj/item/scalpel/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is slitting [user.p_their()] [pick("wrists", "throat", "stomach")] with [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
user.visible_message(span_suicide("[user] is slitting [user.p_their()] [pick("wrists", "throat", "stomach")] with [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
return (BRUTELOSS)
@@ -234,13 +234,13 @@
if(!proximity)
return
if(istype(O, /obj/item/disk/surgery))
to_chat(user, "<span class='notice'>You load the surgery protocol from [O] into [src].</span>")
to_chat(user, span_notice("You load the surgery protocol from [O] into [src]."))
var/obj/item/disk/surgery/D = O
if(do_after(user, 10, target = O))
advanced_surgeries |= D.surgeries
return TRUE
if(istype(O, /obj/machinery/computer/operating))
to_chat(user, "<span class='notice'>You copy surgery protocols from [O] into [src].</span>")
to_chat(user, span_notice("You copy surgery protocols from [O] into [src]."))
var/obj/machinery/computer/operating/OC = O
if(do_after(user, 10, target = O))
advanced_surgeries |= OC.advanced_surgeries
@@ -265,13 +265,13 @@
playsound(get_turf(user), 'sound/machines/click.ogg', 50, TRUE)
if(tool_behaviour == TOOL_SCALPEL)
tool_behaviour = TOOL_SAW
to_chat(user, "<span class='notice'>You increase the power of [src], now it can cut bones.</span>")
to_chat(user, span_notice("You increase the power of [src], now it can cut bones."))
set_light_range(2)
force += 1 //we don't want to ruin sharpened stuff
icon_state = "saw_a"
else
tool_behaviour = TOOL_SCALPEL
to_chat(user, "<span class='notice'>You lower the power of [src], it can no longer cut bones.</span>")
to_chat(user, span_notice("You lower the power of [src], it can no longer cut bones."))
set_light_range(1)
force -= 1
icon_state = "scalpel_a"
@@ -291,11 +291,11 @@
playsound(get_turf(user), 'sound/items/change_drill.ogg', 50, TRUE)
if(tool_behaviour == TOOL_RETRACTOR)
tool_behaviour = TOOL_HEMOSTAT
to_chat(user, "<span class='notice'>You configure the gears of [src], they are now in hemostat mode.</span>")
to_chat(user, span_notice("You configure the gears of [src], they are now in hemostat mode."))
icon_state = "hemostat_a"
else
tool_behaviour = TOOL_RETRACTOR
to_chat(user, "<span class='notice'>You configure the gears of [src], they are now in retractor mode.</span>")
to_chat(user, span_notice("You configure the gears of [src], they are now in retractor mode."))
icon_state = "retractor_a"
/obj/item/retractor/advanced/examine()
@@ -331,7 +331,7 @@
var/mob/living/carbon/patient = M
if(HAS_TRAIT(patient, TRAIT_NODISMEMBER))
to_chat(user, "<span class='warning'>The patient's limbs look too sturdy to amputate.</span>")
to_chat(user, span_warning("The patient's limbs look too sturdy to amputate."))
return
var/candidate_name
@@ -341,20 +341,20 @@
if(user.zone_selected == BODY_ZONE_PRECISE_GROIN)
tail_snip_candidate = patient.getorganslot(ORGAN_SLOT_TAIL)
if(!tail_snip_candidate)
to_chat(user, "<span class='warning'>[patient] does not have a tail.</span>")
to_chat(user, span_warning("[patient] does not have a tail."))
return
candidate_name = tail_snip_candidate.name
else
limb_snip_candidate = patient.get_bodypart(check_zone(user.zone_selected))
if(!limb_snip_candidate)
to_chat(user, "<span class='warning'>[patient] is already missing that limb, what more do you want?</span>")
to_chat(user, span_warning("[patient] is already missing that limb, what more do you want?"))
return
candidate_name = limb_snip_candidate.name
var/amputation_speed_mod = 1
patient.visible_message("<span class='danger'>[user] begins to secure [src] around [patient]'s [candidate_name].</span>", "<span class='userdanger'>[user] begins to secure [src] around your [candidate_name]!</span>")
patient.visible_message(span_danger("[user] begins to secure [src] around [patient]'s [candidate_name]."), span_userdanger("[user] begins to secure [src] around your [candidate_name]!"))
playsound(get_turf(patient), 'sound/items/ratchet.ogg', 20, TRUE)
if(patient.stat >= UNCONSCIOUS || HAS_TRAIT(patient, TRAIT_INCAPACITATED)) //if you're incapacitated (due to paralysis, a stun, being in staminacrit, etc.), critted, unconscious, or dead, it's much easier to properly line up a snip
amputation_speed_mod *= 0.5
@@ -368,10 +368,10 @@
tail_snip_candidate.forceMove(get_turf(patient))
else
limb_snip_candidate.dismember()
user.visible_message("<span class='danger'>[src] violently slams shut, amputating [patient]'s [candidate_name].</span>", "<span class='notice'>You amputate [patient]'s [candidate_name] with [src].</span>")
user.visible_message(span_danger("[src] violently slams shut, amputating [patient]'s [candidate_name]."), span_notice("You amputate [patient]'s [candidate_name] with [src]."))
/obj/item/shears/suicide_act(mob/living/carbon/user)
user.visible_message("<span class='suicide'>[user] is pinching [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
user.visible_message(span_suicide("[user] is pinching [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
var/timer = 1 SECONDS
for(var/obj/item/bodypart/thing in user.bodyparts)
if(thing.body_part == CHEST)