why did i do this

This commit is contained in:
silicons
2020-11-22 14:56:02 -07:00
parent c7e60191df
commit 13ebceb670
4 changed files with 21 additions and 17 deletions

View File

@@ -58,6 +58,7 @@
#define BODYPART_ORGANIC 1 #define BODYPART_ORGANIC 1
#define BODYPART_ROBOTIC 2 #define BODYPART_ROBOTIC 2
#define BODYPART_HYBRID 3 #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_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. #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.

View File

@@ -30,7 +30,7 @@
/// EMP flat deletion upper /// EMP flat deletion upper
var/emp_flat_deletion_upper = 35 var/emp_flat_deletion_upper = 35
/// EMP flat deletion lower /// EMP flat deletion lower
var/emp_Flat_deletion_lower = 20 var/emp_flat_deletion_lower = 20
/// EMP percent deletion upper /// EMP percent deletion upper
var/emp_percent_deletion_upper = 0.35 var/emp_percent_deletion_upper = 0.35
/// EMP percent deletion lower /// EMP percent deletion lower
@@ -165,7 +165,7 @@
*/ */
/datum/component/nanites/proc/nanites_depleted() /datum/component/nanites/proc/nanites_depleted()
if(qdel_self_on_depletion) if(qdel_self_on_depletion)
delete_nantes() delete_nanites()
/** /**
* Used to rid ourselves * Used to rid ourselves
@@ -176,6 +176,8 @@
/** /**
* Adds permanent programs * 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) /datum/component/nanites/proc/add_permanent_program(list/program, immutable = FALSE)
if(!islist(program)) if(!islist(program))
@@ -188,7 +190,8 @@
if(immutable) if(immutable)
P.immutable = TRUE P.immutable = TRUE
for(var/i in programs) 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) qdel(i)
programs += P programs += P
@@ -208,7 +211,7 @@
* Checks if we can block out viral replica * Checks if we can block out viral replica
*/ */
/datum/component/nanites/proc/check_viral_prevention() /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) //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) /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) NP.on_shock(shock_damage)
/datum/component/nanites/proc/on_minor_shock(datum/source) /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) for(var/X in programs)
var/datum/nanite_program/NP = X var/datum/nanite_program/NP = X
NP.on_minor_shock() NP.on_minor_shock()

View File

@@ -11,7 +11,7 @@
return FALSE return FALSE
if(iscarbon(host_mob)) if(iscarbon(host_mob))
var/mob/living/carbon/C = 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) if(!parts.len)
return FALSE return FALSE
return ..() return ..()
@@ -19,7 +19,7 @@
/datum/nanite_program/regenerative/active_effect() /datum/nanite_program/regenerative/active_effect()
if(iscarbon(host_mob)) if(iscarbon(host_mob))
var/mob/living/carbon/C = 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) if(!parts.len)
return return
for(var/obj/item/bodypart/L in parts) for(var/obj/item/bodypart/L in parts)
@@ -121,7 +121,7 @@
if(iscarbon(host_mob)) if(iscarbon(host_mob))
var/mob/living/carbon/C = 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) if(!parts.len)
return FALSE return FALSE
else else
@@ -132,7 +132,7 @@
/datum/nanite_program/repairing/active_effect(mob/living/M) /datum/nanite_program/repairing/active_effect(mob/living/M)
if(iscarbon(host_mob)) if(iscarbon(host_mob))
var/mob/living/carbon/C = 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) if(!parts.len)
return return
var/update = FALSE var/update = FALSE
@@ -176,12 +176,12 @@
/datum/nanite_program/regenerative_advanced/active_effect() /datum/nanite_program/regenerative_advanced/active_effect()
if(iscarbon(host_mob)) if(iscarbon(host_mob))
var/mob/living/carbon/C = 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) if(!parts.len)
return return
var/update = FALSE var/update = FALSE
for(var/obj/item/bodypart/L in parts) 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 update = TRUE
if(update) if(update)
host_mob.update_damage_overlays() host_mob.update_damage_overlays()

View File

@@ -16,7 +16,7 @@
var/datum/nanite_extra_setting/program = extra_settings[NES_PROGRAM_OVERWRITE] var/datum/nanite_extra_setting/program = extra_settings[NES_PROGRAM_OVERWRITE]
var/datum/nanite_extra_setting/cloud = extra_settings[NES_CLOUD_OVERWRITE] var/datum/nanite_extra_setting/cloud = extra_settings[NES_CLOUD_OVERWRITE]
for(var/mob/M in orange(host_mob, 5)) 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 continue
switch(program.get_value()) switch(program.get_value())
if("Overwrite") if("Overwrite")
@@ -354,7 +354,7 @@
/datum/nanite_program/lockout /datum/nanite_program/lockout
unique = TRUE unique = TRUE
var/emp_disable_time = 0 var/emp_disable_time = 0
var/shock_disbale_time = 0 var/shock_disable_time = 0
var/minor_shock_disable_time = 0 var/minor_shock_disable_time = 0
var/disable_time = 0 var/disable_time = 0
var/lock_console = FALSE var/lock_console = FALSE
@@ -364,18 +364,18 @@
/datum/nanite_program/lockout/enable_passive_effect() /datum/nanite_program/lockout/enable_passive_effect()
. = ..() . = ..()
if(lock_console) 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) 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) 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() /datum/nanite_program/lockout/disable_passive_effect()
. = ..() . = ..()
UnregisterSignal(src, list( UnregisterSignal(src, list(
COMSIG_NANITE_INTERNAL_HOST_LOCK_CHECK, COMSIG_NANITE_INTERNAL_HOST_LOCK_CHECK,
COMSIG_NANITE_INTERNAL_CONSOLE_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) /datum/nanite_program/lockout/on_emp(severity)