From 13ebceb67002088fe0af5fcf3434e3f95f81a4cb Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sun, 22 Nov 2020 14:56:02 -0700 Subject: [PATCH] why did i do this --- code/__DEFINES/mobs.dm | 1 + code/datums/components/nanites.dm | 13 ++++++++----- .../research/nanites/nanite_programs/healing.dm | 12 ++++++------ .../research/nanites/nanite_programs/utility.dm | 12 ++++++------ 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 9dfa6116f1..153a82ad5e 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -58,6 +58,7 @@ #define BODYPART_ORGANIC 1 #define BODYPART_ROBOTIC 2 #define BODYPART_HYBRID 3 +#define BODYPART_NANITES 4 #define HYBRID_BODYPART_DAMAGE_THRESHHOLD 25 //How much damage has to be suffered until the damage threshhold counts as passed #define HYBRID_BODYPART_THESHHOLD_MINDAMAGE 15 //Which damage value this limb cannot be healed out of via easy nonsurgical means if the threshhold has been passed, state resets if damage value goes below mindamage. diff --git a/code/datums/components/nanites.dm b/code/datums/components/nanites.dm index 2b012ab82b..d8028de9c0 100644 --- a/code/datums/components/nanites.dm +++ b/code/datums/components/nanites.dm @@ -30,7 +30,7 @@ /// EMP flat deletion upper var/emp_flat_deletion_upper = 35 /// EMP flat deletion lower - var/emp_Flat_deletion_lower = 20 + var/emp_flat_deletion_lower = 20 /// EMP percent deletion upper var/emp_percent_deletion_upper = 0.35 /// EMP percent deletion lower @@ -165,7 +165,7 @@ */ /datum/component/nanites/proc/nanites_depleted() if(qdel_self_on_depletion) - delete_nantes() + delete_nanites() /** * Used to rid ourselves @@ -176,6 +176,8 @@ /** * Adds permanent programs + * + * WARNING: Has no sanity checks. Make sure you know what you are doing! (make sure programs do not conflict) */ /datum/component/nanites/proc/add_permanent_program(list/program, immutable = FALSE) if(!islist(program)) @@ -188,7 +190,8 @@ if(immutable) P.immutable = TRUE for(var/i in programs) - if(P.collision_check(i)) + var/datum/nanite_program/E = i + if(E.unique && (E.type == P.type)) qdel(i) programs += P @@ -208,7 +211,7 @@ * Checks if we can block out viral replica */ /datum/component/nanites/proc/check_viral_prevention() - return SEND_SIGNAL(src, COMSIG_NANITE_INTERNAL_VIRAL_LOCK_CHECK) + return SEND_SIGNAL(src, COMSIG_NANITE_INTERNAL_VIRAL_PREVENTION_CHECK) //Syncs the nanite component to another, making it so programs are the same with the same programming (except activation status) /datum/component/nanites/proc/sync(datum/signal_source, datum/component/nanites/source, full_overwrite = TRUE, copy_activation = FALSE) @@ -303,7 +306,7 @@ NP.on_shock(shock_damage) /datum/component/nanites/proc/on_minor_shock(datum/source) - adjust_nanites(null, -(rand(miner_shock_deletion_lower, miner_shock_deletion_uppper))) //Lose 5-15 flat nanite volume + adjust_nanites(null, -(rand(minor_shock_deletion_lower, minor_shock_deletion_upper))) //Lose 5-15 flat nanite volume for(var/X in programs) var/datum/nanite_program/NP = X NP.on_minor_shock() diff --git a/code/modules/research/nanites/nanite_programs/healing.dm b/code/modules/research/nanites/nanite_programs/healing.dm index 351318c2af..920faae928 100644 --- a/code/modules/research/nanites/nanite_programs/healing.dm +++ b/code/modules/research/nanites/nanite_programs/healing.dm @@ -11,7 +11,7 @@ return FALSE if(iscarbon(host_mob)) var/mob/living/carbon/C = host_mob - var/list/parts = C.get_damaged_bodyparts(TRUE,TRUE, status = list(BODYPART_ORGANIC)) + var/list/parts = C.get_damaged_bodyparts(TRUE,TRUE, status = list(BODYPART_ORGANIC, BODYPART_NANITES)) if(!parts.len) return FALSE return ..() @@ -19,7 +19,7 @@ /datum/nanite_program/regenerative/active_effect() if(iscarbon(host_mob)) var/mob/living/carbon/C = host_mob - var/list/parts = C.get_damaged_bodyparts(TRUE,TRUE, status = list(BODYPART_ORGANIC)) + var/list/parts = C.get_damaged_bodyparts(TRUE,TRUE, status = list(BODYPART_ORGANIC, BODYPART_NANITES)) if(!parts.len) return for(var/obj/item/bodypart/L in parts) @@ -121,7 +121,7 @@ if(iscarbon(host_mob)) var/mob/living/carbon/C = host_mob - var/list/parts = C.get_damaged_bodyparts(TRUE, TRUE, status = list(BODYPART_ROBOTIC, BODYPART_HYBRID)) + var/list/parts = C.get_damaged_bodyparts(TRUE, TRUE, status = list(BODYPART_ROBOTIC, BODYPART_HYBRID, BODYPART_NANITES)) if(!parts.len) return FALSE else @@ -132,7 +132,7 @@ /datum/nanite_program/repairing/active_effect(mob/living/M) if(iscarbon(host_mob)) var/mob/living/carbon/C = host_mob - var/list/parts = C.get_damaged_bodyparts(TRUE, TRUE, status = list(BODYPART_ROBOTIC, BODYPART_HYBRID)) + var/list/parts = C.get_damaged_bodyparts(TRUE, TRUE, status = list(BODYPART_ROBOTIC, BODYPART_HYBRID, BODYPART_NANITES)) if(!parts.len) return var/update = FALSE @@ -176,12 +176,12 @@ /datum/nanite_program/regenerative_advanced/active_effect() if(iscarbon(host_mob)) var/mob/living/carbon/C = host_mob - var/list/parts = C.get_damaged_bodyparts(TRUE,TRUE, status = list(BODYPART_ORGANIC)) + var/list/parts = C.get_damaged_bodyparts(TRUE,TRUE, status = list(BODYPART_ORGANIC, BODYPART_NANITES)) if(!parts.len) return var/update = FALSE for(var/obj/item/bodypart/L in parts) - if(L.heal_damage(3/parts.len, 3/parts.len, FALSE)) + if(L.heal_damage(3/parts.len, 3/parts.len, 0)) update = TRUE if(update) host_mob.update_damage_overlays() diff --git a/code/modules/research/nanites/nanite_programs/utility.dm b/code/modules/research/nanites/nanite_programs/utility.dm index eb76534f11..eea8b7f18e 100644 --- a/code/modules/research/nanites/nanite_programs/utility.dm +++ b/code/modules/research/nanites/nanite_programs/utility.dm @@ -16,7 +16,7 @@ var/datum/nanite_extra_setting/program = extra_settings[NES_PROGRAM_OVERWRITE] var/datum/nanite_extra_setting/cloud = extra_settings[NES_CLOUD_OVERWRITE] for(var/mob/M in orange(host_mob, 5)) - if(SEND_SIGNAL(M, COMSIG_NANITE_CHECK_VIRAL_PROTECTION)) + if(SEND_SIGNAL(M, COMSIG_NANITE_CHECK_VIRAL_PREVENTION)) continue switch(program.get_value()) if("Overwrite") @@ -354,7 +354,7 @@ /datum/nanite_program/lockout unique = TRUE var/emp_disable_time = 0 - var/shock_disbale_time = 0 + var/shock_disable_time = 0 var/minor_shock_disable_time = 0 var/disable_time = 0 var/lock_console = FALSE @@ -364,18 +364,18 @@ /datum/nanite_program/lockout/enable_passive_effect() . = ..() if(lock_console) - Registersignal(src, COMSIG_NANITE_INTERNAL_CONSOLE_LOCK_CHECK, .proc/check_antivirus) + RegisterSignal(src, COMSIG_NANITE_INTERNAL_CONSOLE_LOCK_CHECK, .proc/check_antivirus) if(lock_host) - Registersignal(src, COMSIG_NANITE_INTERNAL_HOST_LOCK_CHECK, .proc/check_antivirus) + RegisterSignal(src, COMSIG_NANITE_INTERNAL_HOST_LOCK_CHECK, .proc/check_antivirus) if(lock_virus) - Registersignal(src, COMSIG_NANITE_INTERNAL_VIRUS_LOCK_CHECK, .proc/check_antivirus) + RegisterSignal(src, COMSIG_NANITE_INTERNAL_VIRAL_PREVENTION_CHECK, .proc/check_antivirus) /datum/nanite_program/lockout/disable_passive_effect() . = ..() UnregisterSignal(src, list( COMSIG_NANITE_INTERNAL_HOST_LOCK_CHECK, COMSIG_NANITE_INTERNAL_CONSOLE_LOCK_CHECK, - COMSIG_NANITE_INTERNAL_ANTI_VIRAL_CHECK + COMSIG_NANITE_INTERNAL_VIRAL_PREVENTION_CHECK )) /datum/nanite_program/lockout/on_emp(severity)