mirror of
https://github.com/KabKebab/GS13.git
synced 2026-06-28 09:29:32 +01:00
03d812af7e
Since people were talking about deep-rooted trauma's, I buffed lobotomy. Lobotomy removes deep-rooted trauma's, but gives a trauma back that can be cured with basic brain surgery, if you fail the lobotomy, it just adds another lobotomy based trauma.
70 lines
3.3 KiB
Plaintext
70 lines
3.3 KiB
Plaintext
/datum/surgery/advanced/lobotomy
|
|
name = "Lobotomy"
|
|
desc = "An invasive surgical procedure which guarantees removal of almost all brain traumas, but might cause another permanent trauma in return."
|
|
steps = list(
|
|
/datum/surgery_step/incise,
|
|
/datum/surgery_step/retract_skin,
|
|
/datum/surgery_step/saw,
|
|
/datum/surgery_step/clamp_bleeders,
|
|
/datum/surgery_step/lobotomize,
|
|
/datum/surgery_step/close)
|
|
|
|
target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
|
|
possible_locs = list(BODY_ZONE_HEAD)
|
|
requires_bodypart_type = 0
|
|
/datum/surgery/advanced/lobotomy/can_start(mob/user, mob/living/carbon/target)
|
|
if(!..())
|
|
return FALSE
|
|
var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN)
|
|
if(!B)
|
|
return FALSE
|
|
return TRUE
|
|
/datum/surgery_step/lobotomize
|
|
name = "perform lobotomy"
|
|
implements = list(TOOL_SCALPEL = 90, /obj/item/melee/transforming/energy/sword = 55, /obj/item/kitchen/knife = 35,
|
|
/obj/item/shard = 25, /obj/item = 20)
|
|
time = 100
|
|
/datum/surgery_step/lobotomize/tool_check(mob/user, obj/item/tool)
|
|
if(implement_type == /obj/item && !tool.is_sharp())
|
|
return FALSE
|
|
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>",
|
|
"[user] begins to perform a lobotomy on [target]'s brain.",
|
|
"[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)
|
|
display_results(user, target, "<span class='notice'>You succeed in lobotomizing [target].</span>",
|
|
"[user] successfully lobotomizes [target]!",
|
|
"[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)
|
|
switch(rand(1,4))//Now let's see what hopefully-not-important part of the brain we cut off
|
|
if(1)
|
|
target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_SURGERY)
|
|
if(2)
|
|
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_SURGERY)
|
|
if(3)
|
|
target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_SURGERY)
|
|
return TRUE
|
|
|
|
/datum/surgery_step/lobotomize/failure(mob/user, mob/living/carbon/target, target_zone, obj/item/tool, datum/surgery/surgery)
|
|
var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN)
|
|
if(B)
|
|
display_results(user, target, "<span class='warning'>You remove the wrong part, causing more damage!</span>",
|
|
"[user] successfully lobotomizes [target]!",
|
|
"[user] completes the surgery on [target]'s brain.")
|
|
B.applyOrganDamage(80)
|
|
switch(rand(1,3))
|
|
if(1)
|
|
target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_LOBOTOMY)
|
|
if(2)
|
|
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_LOBOTOMY)
|
|
if(3)
|
|
target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, 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 class='warning'>You suddenly notice that the brain you were working on is not there anymore.</span>")
|
|
return FALSE
|