mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-31 09:08:30 +01:00
[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:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user