[Ready]Adds more Bioware Surgeries (#49621)

* Adds more adv surgeries

* Update cortex_folding.dm

* Update cortex_imprint.dm

* fixes define

* fix double trauma gain

* Update code/modules/surgery/advanced/bioware/cortex_folding.dm

Co-Authored-By: Rohesie <rohesie@gmail.com>

* Update code/modules/surgery/advanced/bioware/cortex_folding.dm

Co-Authored-By: Rohesie <rohesie@gmail.com>

* Update code/modules/surgery/advanced/bioware/cortex_folding.dm

Co-Authored-By: Rohesie <rohesie@gmail.com>

* Only minor trauma immunity

Co-authored-by: Rohesie <rohesie@gmail.com>
This commit is contained in:
XDTM
2020-04-01 09:38:59 -04:00
committed by GitHub
co-authored by Rohesie
parent 73d2482bd0
commit d8640110e4
10 changed files with 155 additions and 6 deletions
@@ -6,6 +6,7 @@
var/mob/living/carbon/human/owner
var/desc = "If you see this something's wrong, warn a coder."
var/active = FALSE
var/can_process = FALSE
var/mod_type = BIOWARE_GENERIC
/datum/bioware/New(mob/living/carbon/human/_owner)
@@ -17,7 +18,7 @@
return
owner.bioware += src
on_gain()
/datum/bioware/Destroy()
owner = null
if(active)
@@ -26,6 +27,9 @@
/datum/bioware/proc/on_gain()
active = TRUE
if(can_process)
START_PROCESSING(SSobj, src)
/datum/bioware/proc/on_lose()
STOP_PROCESSING(SSobj, src)
return
@@ -0,0 +1,61 @@
/datum/surgery/advanced/bioware/cortex_folding
name = "Cortex Folding"
desc = "A surgical procedure which modifies the cerebral cortex into a complex fold, giving space to non-standard neural patterns."
steps = list(/datum/surgery_step/incise,
/datum/surgery_step/retract_skin,
/datum/surgery_step/clamp_bleeders,
/datum/surgery_step/incise,
/datum/surgery_step/incise,
/datum/surgery_step/imprint_cortex,
/datum/surgery_step/close)
possible_locs = list(BODY_ZONE_HEAD)
target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
bioware_target = BIOWARE_LIGAMENTS
/datum/surgery/advanced/bioware/cortex_folding/can_start(mob/user, mob/living/carbon/target)
var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN)
if(!B)
return FALSE
return ..()
/datum/surgery_step/fold_cortex
name = "fold cortex"
accept_hand = TRUE
time = 125
experience_given = MEDICAL_SKILL_ADVANCED
/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>")
/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>")
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>")
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>")
return FALSE
/datum/bioware/cortex_fold
name = "Cortex Fold"
desc = "The cerebral cortex has been folded into a complex fractal pattern, and can support non-standard neural patterns."
mod_type = BIOWARE_CORTEX
/datum/bioware/cortex_fold/on_gain()
. = ..()
ADD_TRAIT(owner, TRAIT_SPECIAL_TRAUMA_BOOST, "cortex_fold")
/datum/bioware/cortex_fold/on_lose()
REMOVE_TRAIT(owner, TRAIT_SPECIAL_TRAUMA_BOOST, "cortex_fold")
return ..()
@@ -0,0 +1,58 @@
/datum/surgery/advanced/bioware/cortex_imprint
name = "Cortex Imprint"
desc = "A surgical procedure which modifies the cerebral cortex into a redundant neural pattern, making the brain able to bypass damage caused by minor brain traumas."
steps = list(/datum/surgery_step/incise,
/datum/surgery_step/retract_skin,
/datum/surgery_step/clamp_bleeders,
/datum/surgery_step/incise,
/datum/surgery_step/incise,
/datum/surgery_step/imprint_cortex,
/datum/surgery_step/close)
possible_locs = list(BODY_ZONE_HEAD)
target_mobtypes = list(/mob/living/carbon/human, /mob/living/carbon/monkey)
bioware_target = BIOWARE_LIGAMENTS
/datum/surgery/advanced/bioware/cortex_imprint/can_start(mob/user, mob/living/carbon/target)
var/obj/item/organ/brain/B = target.getorganslot(ORGAN_SLOT_BRAIN)
if(!B)
return FALSE
return ..()
/datum/surgery_step/imprint_cortex
name = "imprint cortex"
accept_hand = TRUE
time = 125
experience_given = MEDICAL_SKILL_ADVANCED
/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>")
/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>")
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>")
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>")
return FALSE
/datum/bioware/cortex_imprint
name = "Cortex Imprint"
desc = "The cerebral cortex has been reshaped into a redundant neural pattern, making the brain able to bypass damage caused by minor brain traumas."
mod_type = BIOWARE_CORTEX
can_process = TRUE
/datum/bioware/cortex_imprint/process()
owner.cure_trauma_type(resilience = TRAUMA_RESILIENCE_BASIC)
+8 -2
View File
@@ -50,7 +50,10 @@
target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_MAGIC)
experience_given = MEDICAL_SKILL_ADVANCED*0.9
if(2)
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_MAGIC)
if(HAS_TRAIT(target, TRAIT_SPECIAL_TRAUMA_BOOST) && prob(50))
target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_MAGIC)
else
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_MAGIC)
experience_given = MEDICAL_SKILL_ADVANCED*0.8
if(3)
target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_MAGIC)
@@ -68,7 +71,10 @@
if(1)
target.gain_trauma_type(BRAIN_TRAUMA_MILD, TRAUMA_RESILIENCE_MAGIC)
if(2)
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_MAGIC)
if(HAS_TRAIT(target, TRAIT_SPECIAL_TRAUMA_BOOST) && prob(50))
target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_MAGIC)
else
target.gain_trauma_type(BRAIN_TRAUMA_SEVERE, TRAUMA_RESILIENCE_MAGIC)
if(3)
target.gain_trauma_type(BRAIN_TRAUMA_SPECIAL, TRAUMA_RESILIENCE_MAGIC)
else