From 6d1876a0fd356232133c9775f96889616b23d9f7 Mon Sep 17 00:00:00 2001 From: Marm <85680653+ItsMarmite@users.noreply.github.com> Date: Tue, 19 Jul 2022 17:46:25 +0100 Subject: [PATCH] Reworks CNS Implant + Emagged Upgraded Cybernetic Heart (#18202) * just dodge Changes all instances of anti_stun to anti_stam in the code in relation to the CNS implant. Reworks the CNS implant to protect against large bursts of stamina damage. Reworks the emagged upgraded cybernetic heart to cause the user to regen stamina passively. Disabler shots can now cause the emagged upgraded cybernetic heart to fail, causing heart attacks. Removes emagged upgraded cyberheart's ability to negate drowsiness and sleeping. The upgraded cybernetic heart now makes a passive heartbeat noise, much like the cursed heart. * dodge dodge revolution Lowers chance of heart attack. Removes audible heartbeat. * boxed emp kit * elaboration * Update code/modules/surgery/organs/augments_internal.dm Sure Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com> * Update code/modules/surgery/organs/augments_internal.dm Why not? Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com> * i finally got around to it Co-authored-by: Sirryan2002 <80364400+Sirryan2002@users.noreply.github.com> --- code/datums/outfits/outfit_admin.dm | 4 +- code/datums/uplink_item.dm | 4 +- code/game/jobs/job/central.dm | 2 +- .../research/designs/medical_designs.dm | 4 +- code/modules/response_team/ert_outfits.dm | 12 +++--- .../surgery/organs/augments_internal.dm | 39 ++++++++----------- code/modules/surgery/organs/autosurgeon.dm | 4 +- code/modules/surgery/organs/heart.dm | 4 +- 8 files changed, 32 insertions(+), 41 deletions(-) diff --git a/code/datums/outfits/outfit_admin.dm b/code/datums/outfits/outfit_admin.dm index d2e545df25a..8501d14d36c 100644 --- a/code/datums/outfits/outfit_admin.dm +++ b/code/datums/outfits/outfit_admin.dm @@ -241,7 +241,7 @@ cybernetic_implants = list( /obj/item/organ/internal/cyberimp/eyes/hud/security, /obj/item/organ/internal/eyes/cybernetic/xray, - /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened, + /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened, /obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened, /obj/item/organ/internal/cyberimp/arm/combat/centcom ) @@ -774,7 +774,7 @@ cybernetic_implants = list( /obj/item/organ/internal/cyberimp/eyes/hud/security, /obj/item/organ/internal/cyberimp/chest/nutriment/hardened, - /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened, + /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened, /obj/item/organ/internal/cyberimp/arm/flash, /obj/item/organ/internal/eyes/cybernetic/shield ) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 3cf8a38ead8..274cd901cba 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -1611,9 +1611,9 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) /datum/uplink_item/cyber_implants/antistun name = "Hardened CNS Rebooter Implant" - desc = "This implant will help you get back up on your feet faster after being stunned. It is immune to EMP attacks. Comes with an autosurgeon." + desc = "This implant will help you get back up on your feet faster after being fatigued. It is immune to EMP attacks. Comes with an autosurgeon." reference = "CIAS" - item = /obj/item/autosurgeon/organ/syndicate/anti_stun + item = /obj/item/autosurgeon/organ/syndicate/anti_stam cost = 12 /datum/uplink_item/cyber_implants/reviver diff --git a/code/game/jobs/job/central.dm b/code/game/jobs/job/central.dm index 51a3891e9df..28bce6271ff 100644 --- a/code/game/jobs/job/central.dm +++ b/code/game/jobs/job/central.dm @@ -94,7 +94,7 @@ ) cybernetic_implants = list( /obj/item/organ/internal/eyes/cybernetic/xray/hardened, - /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened, + /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened, /obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened, /obj/item/organ/internal/cyberimp/arm/combat/centcom ) diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 48c6690ed61..1545d6a7bd3 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -455,13 +455,13 @@ /datum/design/cyberimp_antistun name = "CNS Rebooter implant" - desc = "This implant will automatically give you back control over your central nervous system, reducing downtime when stunned. Incompatible with the Neural Jumpstarter." + desc = "This implant will automatically give you back control over your central nervous system, reducing downtime when fatigued. Incompatible with the Neural Jumpstarter." id = "ci-antistun" req_tech = list("materials" = 6, "programming" = 5, "biotech" = 6) build_type = PROTOLATHE | MECHFAB construction_time = 60 materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 1000) - build_path = /obj/item/organ/internal/cyberimp/brain/anti_stun + build_path = /obj/item/organ/internal/cyberimp/brain/anti_stam category = list("Medical") /datum/design/cyberimp_antisleep diff --git a/code/modules/response_team/ert_outfits.dm b/code/modules/response_team/ert_outfits.dm index 57b8705aeec..c6c08b67656 100644 --- a/code/modules/response_team/ert_outfits.dm +++ b/code/modules/response_team/ert_outfits.dm @@ -110,7 +110,7 @@ cybernetic_implants = list( /obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened, /obj/item/organ/internal/cyberimp/eyes/hud/security, - /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened, + /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened, /obj/item/organ/internal/cyberimp/arm/flash ) @@ -198,7 +198,7 @@ cybernetic_implants = list( /obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened, /obj/item/organ/internal/cyberimp/eyes/hud/security, - /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened, + /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened, /obj/item/organ/internal/cyberimp/arm/telebaton, /obj/item/organ/internal/cyberimp/chest/reviver/hardened ) @@ -282,7 +282,7 @@ cybernetic_implants = list( /obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened, /obj/item/organ/internal/cyberimp/eyes/hud/security, - /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened, + /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened, /obj/item/organ/internal/eyes/cybernetic/shield, /obj/item/organ/internal/cyberimp/arm/toolset ) @@ -395,7 +395,7 @@ /obj/item/organ/internal/cyberimp/arm/medibeam, /obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened, /obj/item/organ/internal/cyberimp/eyes/hud/medical, - /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened + /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened ) implants = list(/obj/item/implant/mindshield, @@ -462,7 +462,7 @@ cybernetic_implants = list( /obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened, /obj/item/organ/internal/cyberimp/eyes/hud/security, - /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened + /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened ) implants = list(/obj/item/implant/mindshield, @@ -534,7 +534,7 @@ cybernetic_implants = list( /obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened, /obj/item/organ/internal/cyberimp/arm/advmop, - /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened + /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened ) implants = list(/obj/item/implant/mindshield, diff --git a/code/modules/surgery/organs/augments_internal.dm b/code/modules/surgery/organs/augments_internal.dm index 2d30343883c..8b6ab0dc10d 100644 --- a/code/modules/surgery/organs/augments_internal.dm +++ b/code/modules/surgery/organs/augments_internal.dm @@ -29,10 +29,10 @@ /obj/item/organ/internal/cyberimp/brain/emp_act(severity) if(!owner || emp_proof) return - var/stun_amount = (5 + (severity-1 ? 0 : 5)) STATUS_EFFECT_CONSTANT - owner.Stun(stun_amount) + var/weaken_time = (5 + (severity - 1 ? 0 : 5)) STATUS_EFFECT_CONSTANT + owner.Weaken(weaken_time) to_chat(owner, "Your body seizes up!") - return stun_amount + return weaken_time /obj/item/organ/internal/cyberimp/brain/anti_drop @@ -120,42 +120,35 @@ ui_action_click() return ..() -/obj/item/organ/internal/cyberimp/brain/anti_stun +/obj/item/organ/internal/cyberimp/brain/anti_stam name = "CNS Rebooter implant" - desc = "This implant will automatically give you back control over your central nervous system, reducing downtime when stunned. Incompatible with the Neural Jumpstarter." + desc = "This implant will automatically give you back control over your central nervous system, reducing downtime when fatigued. Incompatible with the Neural Jumpstarter." implant_color = "#FFFF00" slot = "brain_antistun" origin_tech = "materials=5;programming=4;biotech=5" - var/stun_max_amount = 4 SECONDS + var/last_stamina_damage = 0 + var/max_stamina_increment = 40 -/obj/item/organ/internal/cyberimp/brain/anti_stun/hardened - name = "Hardened CNS Rebooter implant" - emp_proof = TRUE - -/obj/item/organ/internal/cyberimp/brain/anti_stun/hardened/Initialize(mapload) - . = ..() - desc += " The implant has been hardened. It is invulnerable to EMPs." - -/obj/item/organ/internal/cyberimp/brain/anti_stun/on_life() +/obj/item/organ/internal/cyberimp/brain/anti_stam/on_life() ..() if(crit_fail) return - if(owner.AmountStun() > stun_max_amount) - owner.SetStunned(stun_max_amount) - if(owner.AmountWeakened() > stun_max_amount) - owner.SetWeakened(stun_max_amount) + if(last_stamina_damage + max_stamina_increment < owner.getStaminaLoss()) + owner.setStaminaLoss(last_stamina_damage + max_stamina_increment) + last_stamina_damage = owner.getStaminaLoss() -/obj/item/organ/internal/cyberimp/brain/anti_stun/emp_act(severity) + +/obj/item/organ/internal/cyberimp/brain/anti_stam/emp_act(severity) ..() if(crit_fail || emp_proof) return crit_fail = TRUE addtimer(CALLBACK(src, .proc/reboot), 90 / severity) -/obj/item/organ/internal/cyberimp/brain/anti_stun/proc/reboot() +/obj/item/organ/internal/cyberimp/brain/anti_stam/proc/reboot() crit_fail = FALSE -/obj/item/organ/internal/cyberimp/brain/anti_stun/hardened +/obj/item/organ/internal/cyberimp/brain/anti_stam/hardened name = "Hardened CNS Rebooter implant" desc = "A military-grade version of the standard implant, for NT's more elite forces." origin_tech = "materials=6;programming=5;biotech=5" @@ -443,7 +436,7 @@ var/list/boxed = list( /obj/item/autosurgeon/organ/syndicate/thermal_eyes, /obj/item/autosurgeon/organ/syndicate/xray_eyes, - /obj/item/autosurgeon/organ/syndicate/anti_stun, + /obj/item/autosurgeon/organ/syndicate/anti_stam, /obj/item/autosurgeon/organ/syndicate/reviver) var/amount = 5 diff --git a/code/modules/surgery/organs/autosurgeon.dm b/code/modules/surgery/organs/autosurgeon.dm index 96e94fdf815..c87987303d2 100644 --- a/code/modules/surgery/organs/autosurgeon.dm +++ b/code/modules/surgery/organs/autosurgeon.dm @@ -94,8 +94,8 @@ /obj/item/autosurgeon/organ/syndicate/xray_eyes starting_organ = /obj/item/organ/internal/eyes/cybernetic/xray/hardened -/obj/item/autosurgeon/organ/syndicate/anti_stun - starting_organ = /obj/item/organ/internal/cyberimp/brain/anti_stun/hardened +/obj/item/autosurgeon/organ/syndicate/anti_stam + starting_organ = /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened /obj/item/autosurgeon/organ/syndicate/reviver starting_organ = /obj/item/organ/internal/cyberimp/chest/reviver/hardened diff --git a/code/modules/surgery/organs/heart.dm b/code/modules/surgery/organs/heart.dm index 4aff0c66e4f..870b42d380e 100644 --- a/code/modules/surgery/organs/heart.dm +++ b/code/modules/surgery/organs/heart.dm @@ -215,13 +215,11 @@ if(!(status & ORGAN_DEAD)) var/boost = emagged ? 2 : 1 - owner.AdjustDrowsy(-8 SECONDS * boost) owner.AdjustParalysis(-2 SECONDS * boost) owner.AdjustStunned(-2 SECONDS * boost) owner.AdjustWeakened(-2 SECONDS * boost) owner.AdjustKnockDown(-2 SECONDS * boost) - owner.SetSleeping(0) - owner.adjustStaminaLoss(-1 * boost) + owner.adjustStaminaLoss(-10 * boost) /obj/item/organ/internal/heart/cybernetic/upgraded/proc/message_to_owner(mob/M, message)