mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-10 09:54:52 +00:00
why did i do this
This commit is contained in:
@@ -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.
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user