Nanites Fixes & BFI Nanites

Fixed health-restoring nanites
Fixed voice sensor nanites
Added BFI Sensor and BFI Regulator, found in the Biological Nanite Programming tech node. Sensor sends code if the host is above/under the specified amount of fatness, Regulator adds/removes the specified amount of fatness every activations, using up nanites.
This commit is contained in:
Alphas00
2024-06-02 15:28:20 +02:00
parent 8c0f4002ff
commit 73965145bc
6 changed files with 123 additions and 33 deletions
@@ -9,25 +9,11 @@
/datum/nanite_program/regenerative/check_conditions()
if(!host_mob.getBruteLoss() && !host_mob.getFireLoss())
return FALSE
if(iscarbon(host_mob))
var/mob/living/carbon/C = host_mob
var/list/parts = C.get_damaged_bodyparts(TRUE,TRUE, status = BODYPART_ORGANIC)
if(!parts.len)
return FALSE
return ..()
/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 = BODYPART_ORGANIC)
if(!parts.len)
return
for(var/obj/item/bodypart/L in parts)
if(L.heal_damage(0.5/parts.len, 0.5/parts.len, null, BODYPART_ORGANIC))
host_mob.update_damage_overlays()
else
host_mob.adjustBruteLoss(-0.5, TRUE)
host_mob.adjustFireLoss(-0.5, TRUE)
host_mob.adjustBruteLoss(-0.5, TRUE)
host_mob.adjustFireLoss(-0.5, TRUE)
/datum/nanite_program/temperature
name = "Temperature Adjustment"
@@ -173,20 +159,8 @@
rogue_types = list(/datum/nanite_program/suffocating, /datum/nanite_program/necrotic)
/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 = BODYPART_ORGANIC)
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, null, BODYPART_ORGANIC))
update = TRUE
if(update)
host_mob.update_damage_overlays()
else
host_mob.adjustBruteLoss(-3, TRUE)
host_mob.adjustFireLoss(-3, TRUE)
host_mob.adjustBruteLoss(-3, TRUE)
host_mob.adjustFireLoss(-3, TRUE)
/datum/nanite_program/brain_heal_advanced
name = "Neural Reimaging"
@@ -256,8 +256,8 @@
if(!sentence.get_value())
return
if(inclusive.get_value())
if(findtextEx(hearing_args[HEARING_RAW_MESSAGE], sentence))
if(findtext(hearing_args[HEARING_RAW_MESSAGE], sentence.get_value()))
send_code()
else
if(hearing_args[HEARING_RAW_MESSAGE] == sentence)
if(hearing_args[HEARING_RAW_MESSAGE] == sentence.get_value())
send_code()
+1 -1
View File
@@ -999,7 +999,7 @@
description = "Nanite programs that require complex biological interaction."
prereq_ids = list("nanite_base","biotech")
design_ids = list("regenerative_nanites", "bloodheal_nanites", "coagulating_nanites","poison_nanites","flesheating_nanites",\
"sensor_crit_nanites","sensor_death_nanites", "sensor_health_nanites", "sensor_damage_nanites")
"sensor_crit_nanites","sensor_death_nanites", "sensor_health_nanites", "sensor_damage_nanites", "fat_sensor_nanites", "fat_adjuster_nanites")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000