Files
Bubberstation/code/modules/surgery/advanced/viral_bonding.dm
T
CRITAWAKETSandGitHub dba95083a0 Makes HMS (and uncurable severity diseases) actually uncurable. (#76291)
This PR makes HMS and any other diseases set to uncurable severity (only
HMS counts right now) actually uncurable through either aheal or viral
bonding.

Well, simply put, you shouldn't be able to cure quirks. Viral bonding
doesn't technically "cure" the disease but makes you into a carrier for
something that doesn't spread, which has been fixed.
2023-07-10 22:13:32 +00:00

60 lines
2.3 KiB
Plaintext

/datum/surgery/advanced/viral_bonding
name = "Viral Bonding"
desc = "A surgical procedure that forces a symbiotic relationship between a virus and its host. The patient must be dosed with spaceacillin, virus food, and formaldehyde."
possible_locs = list(BODY_ZONE_CHEST)
steps = list(
/datum/surgery_step/incise,
/datum/surgery_step/retract_skin,
/datum/surgery_step/clamp_bleeders,
/datum/surgery_step/incise,
/datum/surgery_step/viral_bond,
/datum/surgery_step/close,
)
/datum/surgery/advanced/viral_bonding/can_start(mob/user, mob/living/carbon/target)
. = ..()
if(!.)
return FALSE
if(!LAZYLEN(target.diseases))
return FALSE
return TRUE
/datum/surgery_step/viral_bond
name = "viral bond (cautery)"
implements = list(
TOOL_CAUTERY = 100,
TOOL_WELDER = 50,
/obj/item = 30) // 30% success with any hot item.
time = 100
chems_needed = list(/datum/reagent/medicine/spaceacillin,/datum/reagent/consumable/virus_food,/datum/reagent/toxin/formaldehyde)
/datum/surgery_step/viral_bond/tool_check(mob/user, obj/item/tool)
if(implement_type == TOOL_WELDER || implement_type == /obj/item)
return tool.get_temperature()
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_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]..."),
)
display_pain(target, "You feel a searing heat spread through your chest!")
/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_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."),
)
display_pain(target, "You feel a faint throbbing in your chest.")
for(var/datum/disease/infected_disease as anything in target.diseases)
if(infected_disease.severity != DISEASE_SEVERITY_UNCURABLE) //no curing quirks, sweaty
infected_disease.carrier = TRUE
return TRUE