From 9142010d1d6cb07bda6e075c27de4550a4cfe338 Mon Sep 17 00:00:00 2001 From: Lucy Date: Sun, 22 Oct 2023 11:16:36 -0400 Subject: [PATCH] Nanitemania: more nanite programs and stuff! (#9216) * Nyanitemania: more nanite programs and stuff! * Remove self-resp nanites. * Fix my laziness. * Comm remotes are actually buildable now. * Make invalid rules red in the UI * Fix nutrition sensors. * clean up code a bit * More optimization. * WHOOPS * Sanity check in vampiric synthesis. * Subdermal ID also takes access from pulled IDs now. * more sanity checks * slightly cleaner * Update, address reviews * That sprite doesn't exist... * New nanite blade icon --- beestation.dme | 1 + code/__DEFINES/mobs.dm | 3 + code/__DEFINES/nanites.dm | 15 + code/datums/components/nanites.dm | 186 +++++++---- code/game/turfs/turf.dm | 8 +- code/modules/mob/living/carbon/carbon.dm | 6 +- .../research/designs/electronics_designs.dm | 10 + .../research/designs/nanite_designs.dm | 112 ++++++- .../nanites/nanite_cloud_controller.dm | 47 +++ .../research/nanites/nanite_misc_items.dm | 3 +- .../research/nanites/nanite_programs.dm | 71 ++-- .../nanites/nanite_programs/buffing.dm | 39 +++ .../nanites/nanite_programs/protocol.dm | 302 ++++++++++++++++++ .../nanites/nanite_programs/sensor.dm | 133 ++++++++ .../nanites/nanite_programs/utility.dm | 107 ++++++- .../modules/research/nanites/nanite_remote.dm | 1 - code/modules/research/nanites/rules.dm | 142 ++++++-- code/modules/research/techweb/all_nodes.dm | 44 ++- icons/effects/blood.dmi | Bin 72718 -> 114207 bytes icons/mob/inhands/weapons/melee_lefthand.dmi | Bin 2606 -> 2885 bytes icons/mob/inhands/weapons/melee_righthand.dmi | Bin 2613 -> 2985 bytes icons/obj/nanite.dmi | Bin 0 -> 604 bytes .../tgui/interfaces/NaniteCloudControl.js | 84 ++++- 23 files changed, 1149 insertions(+), 165 deletions(-) create mode 100644 code/modules/research/nanites/nanite_programs/protocol.dm create mode 100644 icons/obj/nanite.dmi diff --git a/beestation.dme b/beestation.dme index 5006f78dec17d..fed78916df85a 100644 --- a/beestation.dme +++ b/beestation.dme @@ -3658,6 +3658,7 @@ #include "code\modules\research\nanites\extra_settings\type.dm" #include "code\modules\research\nanites\nanite_programs\buffing.dm" #include "code\modules\research\nanites\nanite_programs\healing.dm" +#include "code\modules\research\nanites\nanite_programs\protocol.dm" #include "code\modules\research\nanites\nanite_programs\rogue.dm" #include "code\modules\research\nanites\nanite_programs\sensor.dm" #include "code\modules\research\nanites\nanite_programs\suppression.dm" diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 1e650b93c7e30..d2e7a2f047554 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -515,6 +515,9 @@ #define VOMIT_TOXIC 1 /// The mob will vomit a purple color #define VOMIT_PURPLE 2 +/// The mob will vomit up nanites +#define VOMIT_NANITE 3 + /// Messages when (something) lays an egg #define EGG_LAYING_MESSAGES list("lays an egg.","squats down and croons.","begins making a huge racket.","begins clucking raucously.") diff --git a/code/__DEFINES/nanites.dm b/code/__DEFINES/nanites.dm index 8915070e8024a..cf5a3431d1c85 100644 --- a/code/__DEFINES/nanites.dm +++ b/code/__DEFINES/nanites.dm @@ -48,9 +48,24 @@ #define NES_ICON "Icon" #define NES_COLOR "Color" #define NES_RULE_LOGIC "Logic" +#define NES_NUTRITION "Nutrition" +#define NES_BLOOD_PERCENT "Blood Percent" +#define NES_SIGNAL_FREQUENCY "Signal Frequency" +#define NES_SIGNAL_CODE "Signal Code" +#define NES_ACTIVATION_CODE "Sent Activation Code" +#define NES_DEACTIVATION_CODE "Sent Deactivation Code" //Nanite Logic #define NL_AND "AND" #define NL_OR "OR" #define NL_NOR "NOR" #define NL_NAND "NAND" +#define NL_ALL list(NL_AND, NL_OR, NL_NOR, NL_NAND) + +//Nanite excess thresholds +#define NANITE_EXCESS_MINOR 25 +#define NANITE_EXCESS_VOMIT 100 +#define NANITE_EXCESS_BURST 350 + +/// How many nanites/sec to add to the regen rate once nanite harmonics are researched +#define HARMONIC_REGEN_BOOST 0.1 diff --git a/code/datums/components/nanites.dm b/code/datums/components/nanites.dm index cd0c49d93bfd2..4b0ce2501eee2 100644 --- a/code/datums/components/nanites.dm +++ b/code/datums/components/nanites.dm @@ -8,11 +8,11 @@ var/safety_threshold = 50 //how low nanites will get before they stop processing/triggering var/cloud_id = 0 //0 if not connected to the cloud, 1-100 to set a determined cloud backup to draw from var/cloud_active = TRUE //if false, won't sync to the cloud - var/next_sync = 0 var/list/datum/nanite_program/programs = list() var/max_programs = NANITE_PROGRAM_LIMIT + COOLDOWN_DECLARE(next_sync) - var/list/datum/nanite_program/protocol/protocols = list() ///Separate list of protocol programs, to avoid looping through the whole programs list when cheking for conflicts + var/list/datum/nanite_program/protocol/protocols = list() /// Separate list of protocol programs, to avoid looping through the whole programs list when cheking for conflicts var/start_time = 0 ///Timestamp to when the nanites were first inserted in the host var/stealth = FALSE //if TRUE, does not appear on HUDs and health scans var/diagnostics = TRUE //if TRUE, displays program list when scanned by nanite scanners @@ -103,42 +103,40 @@ /datum/component/nanites/InheritComponent(datum/component/nanites/new_nanites, i_am_original, amount, cloud) if(new_nanites) - adjust_nanites(null, new_nanites.nanite_volume) + adjust_nanites(amount = new_nanites.nanite_volume) else - adjust_nanites(null, amount) //just add to the nanite volume + adjust_nanites(amount = amount) //just add to the nanite volume /datum/component/nanites/process(delta_time) if(!IS_IN_STASIS(host_mob)) - adjust_nanites(null, regen_rate * delta_time) + adjust_nanites(amount = (regen_rate + (SSresearch.science_tech.researched_nodes["nanite_harmonic"] ? HARMONIC_REGEN_BOOST : 0)) * delta_time) add_research() - for(var/X in programs) - var/datum/nanite_program/NP = X - NP.on_process() - if(cloud_id && cloud_active && world.time > next_sync) + for(var/datum/nanite_program/program as anything in programs) + program.on_process() + if(cloud_id && cloud_active && COOLDOWN_FINISHED(src, next_sync)) cloud_sync() - next_sync = world.time + NANITE_SYNC_DELAY + COOLDOWN_START(src, next_sync, NANITE_SYNC_DELAY) set_nanite_bar() +/// Deletes nanites! /datum/component/nanites/proc/delete_nanites() SIGNAL_HANDLER qdel(src) -//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_settings = TRUE, copy_activation = FALSE) SIGNAL_HANDLER var/list/programs_to_remove = programs.Copy() var/list/programs_to_add = source.programs.Copy() - for(var/X in programs) - var/datum/nanite_program/NP = X - for(var/Y in programs_to_add) - var/datum/nanite_program/SNP = Y - if(NP.type == SNP.type) - programs_to_remove -= NP - programs_to_add -= SNP - SNP.copy_programming(NP, copy_activation) + for(var/datum/nanite_program/current_program as anything in programs) + for(var/datum/nanite_program/new_program as anything in programs_to_add) + if(current_program.type == new_program.type) + programs_to_remove -= current_program + programs_to_add -= new_program + new_program.copy_programming(current_program, copy_activation) break if(full_overwrite) for(var/X in programs_to_remove) @@ -148,9 +146,10 @@ cloud_id = source.cloud_id safety_threshold = source.safety_threshold for(var/X in programs_to_add) - var/datum/nanite_program/SNP = X - add_program(null, SNP.copy()) + for(var/datum/nanite_program/program as anything in programs_to_add) + add_program(new_program = program.copy()) +/// Syncs the nanites to their assigned cloud copy, if it is available. If it is not, there is a small chance of a software error instead. /datum/component/nanites/proc/cloud_sync() if(cloud_id) var/datum/nanite_cloud_backup/backup = SSnanites.get_cloud_backup(cloud_id) @@ -164,13 +163,13 @@ var/datum/nanite_program/NP = pick(programs) NP.software_error() +/// Adds a nanite program, replacing existing unique programs of the same type. A source program can be specified to copy its programming onto the new one. /datum/component/nanites/proc/add_program(datum/source, datum/nanite_program/new_program, datum/nanite_program/source_program) SIGNAL_HANDLER - for(var/X in programs) - var/datum/nanite_program/NP = X - if(NP.unique && NP.type == new_program.type) - qdel(NP) + for(var/datum/nanite_program/program as anything in programs) + if(program.unique && program.type == new_program.type) + qdel(program) if(programs.len >= max_programs) return COMPONENT_PROGRAM_NOT_INSTALLED if(source_program) @@ -182,16 +181,70 @@ /datum/component/nanites/proc/consume_nanites(amount, force = FALSE) if(!force && safety_threshold && (nanite_volume - amount < safety_threshold)) return FALSE - adjust_nanites(null, -amount) + adjust_nanites(amount = -amount) return (nanite_volume > 0) +/// Modifies the current nanite volume, then checks if the nanites are depleted or exceeding the maximum amount /datum/component/nanites/proc/adjust_nanites(datum/source, amount) SIGNAL_HANDLER - nanite_volume = clamp(nanite_volume + amount, 0, max_nanites) + nanite_volume += amount + if(nanite_volume > max_nanites) + reject_excess_nanites() if(nanite_volume <= 0) //oops we ran out qdel(src) +/** + * Handles how nanites leave the host's body if they find out that they're currently exceeding the maximum supported amount + * + * IC explanation: + * Normally nanites simply discard excess volume by slowing replication or 'sweating' it out in imperceptible amounts, + * but if there is a large excess volume, likely due to a programming change that leaves them unable to support their current volume, + * the nanites attempt to leave the host as fast as necessary to prevent nanite poisoning. This can range from minor oozing to nanites + * rapidly bursting out from every possible pathway, causing temporary inconvenience to the host. + */ +/datum/component/nanites/proc/reject_excess_nanites() + var/excess = nanite_volume - max_nanites + nanite_volume = max_nanites + + switch(excess) + if(0 to NANITE_EXCESS_MINOR) //Minor excess amount, the extra nanites are quietly expelled without visible effects + return + if((NANITE_EXCESS_MINOR + 0.1) to NANITE_EXCESS_VOMIT) //Enough nanites getting rejected at once to be visible to the naked eye + host_mob.visible_message("A grainy grey slurry starts oozing out of [host_mob].", "A grainy grey slurry starts oozing out of your skin.", vision_distance = 4); + if((NANITE_EXCESS_VOMIT + 0.1) to NANITE_EXCESS_BURST) //Nanites getting rejected in massive amounts, but still enough to make a semi-orderly exit through vomit + if(iscarbon(host_mob)) + var/mob/living/carbon/C = host_mob + host_mob.visible_message("[host_mob] vomits a grainy grey slurry!", "You suddenly vomit a metallic-tasting grainy grey slurry!"); + C.vomit(0, FALSE, TRUE, FLOOR(excess / 100, 1), FALSE, VOMIT_NANITE, FALSE) + else + host_mob.visible_message("A metallic grey slurry bursts out of [host_mob]'s skin!", "A metallic grey slurry violently bursts out of your skin!"); + if(isturf(host_mob.drop_location())) + var/turf/T = host_mob.drop_location() + T.add_vomit_floor(host_mob, VOMIT_NANITE, FALSE) + if((NANITE_EXCESS_BURST + 0.1) to INFINITY) //Way too many nanites, they just leave through the closest exit before they harm/poison the host + host_mob.visible_message("A torrent of metallic grey slurry violently bursts out of [host_mob]'s face and floods out of [host_mob.p_their()] skin!", + "A torrent of metallic grey slurry violently bursts out of your eyes, ears, and mouth, and floods out of your skin!"); + + host_mob.adjust_blindness(15) //nanites coming out of your eyes + host_mob.Paralyze(12 SECONDS) + if(iscarbon(host_mob)) + var/mob/living/carbon/C = host_mob + var/obj/item/organ/ears/ears = C.getorganslot(ORGAN_SLOT_EARS) + if(ears) + ears.adjustEarDamage(0, 30) //nanites coming out of your ears + C.vomit(0, FALSE, TRUE, 2, FALSE, VOMIT_NANITE, FALSE) //nanites coming out of your mouth + + //nanites everywhere + if(isturf(host_mob.drop_location())) + var/turf/T = host_mob.drop_location() + T.add_vomit_floor(host_mob, VOMIT_NANITE, FALSE) + for(var/turf/adjacent_turf in oview(host_mob, 1)) + if(adjacent_turf.density || !adjacent_turf.Adjacent(T)) + continue + adjacent_turf.add_vomit_floor(host_mob, VOMIT_NANITE, FALSE) + +/// Updates the nanite volume bar visible in diagnostic HUDs /datum/component/nanites/proc/set_nanite_bar(remove = FALSE) var/image/holder = host_mob.hud_list[DIAG_NANITE_FULL_HUD] var/icon/I = icon(host_mob.icon, host_mob.icon_state, host_mob.dir) @@ -207,7 +260,7 @@ SIGNAL_HANDLER nanite_volume *= (rand(60, 90) * 0.01) //Lose 10-40% of nanites - adjust_nanites(null, -(rand(5, 50))) //Lose 5-50 flat nanite volume + adjust_nanites(amount = -(rand(5, 50))) //Lose 5-50 flat nanite volume if(prob(40/severity)) cloud_id = 0 for(var/X in programs) @@ -223,18 +276,16 @@ if(!HAS_TRAIT_NOT_FROM(host_mob, TRAIT_SHOCKIMMUNE, "nanites"))//Another shock protection must protect nanites too, but nanites protect only host nanite_volume *= (rand(45, 80) * 0.01) //Lose 20-55% of nanites - adjust_nanites(null, -(rand(5, 50))) //Lose 5-50 flat nanite volume - for(var/X in programs) - var/datum/nanite_program/NP = X - NP.on_shock(shock_damage) + adjust_nanites(amount = -(rand(5, 50))) //Lose 5-50 flat nanite volume + for(var/datum/nanite_program/program as anything in programs) + program.on_shock(shock_damage) /datum/component/nanites/proc/on_minor_shock(datum/source) SIGNAL_HANDLER - adjust_nanites(null, -(rand(5, 15))) //Lose 5-15 flat nanite volume - for(var/X in programs) - var/datum/nanite_program/NP = X - NP.on_minor_shock() + adjust_nanites(amount = -(rand(5, 15))) //Lose 5-15 flat nanite volume + for(var/datum/nanite_program/program as anything in programs) + program.on_minor_shock() /datum/component/nanites/proc/check_stealth(datum/source) SIGNAL_HANDLER @@ -244,24 +295,20 @@ /datum/component/nanites/proc/on_death(datum/source, gibbed) SIGNAL_HANDLER - for(var/X in programs) - var/datum/nanite_program/NP = X - NP.on_death(gibbed) + for(var/datum/nanite_program/program as anything in programs) + program.on_death(gibbed) /datum/component/nanites/proc/receive_signal(datum/source, code, source = "an unidentified source") SIGNAL_HANDLER - for(var/X in programs) - var/datum/nanite_program/NP = X - NP.receive_signal(code, source) + for(var/datum/nanite_program/program as anything in programs) + program.receive_nanite_signal(code, source) /datum/component/nanites/proc/receive_comm_signal(datum/source, comm_code, comm_message, comm_source = "an unidentified source") SIGNAL_HANDLER - for(var/X in programs) - if(istype(X, /datum/nanite_program/comm)) - var/datum/nanite_program/comm/NP = X - NP.receive_comm_signal(comm_code, comm_message, comm_source) + for(var/datum/nanite_program/comm/program in programs) + program.receive_comm_signal(comm_code, comm_message, comm_source) /datum/component/nanites/proc/check_viable_biotype() SIGNAL_HANDLER @@ -287,7 +334,7 @@ /datum/component/nanites/proc/set_max_volume(datum/source, amount) SIGNAL_HANDLER - max_nanites = max(1, max_nanites) + max_nanites = max(1, amount) /datum/component/nanites/proc/set_cloud(datum/source, amount) SIGNAL_HANDLER @@ -368,10 +415,9 @@ if(!diagnostics) message += "Diagnostics Disabled" else - for(var/X in programs) - var/datum/nanite_program/program = X + for(var/datum/nanite_program/program as anything in programs) message += "[program.name] | [program.activated ? "Active" : "Inactive"]" - for(var/datum/nanite_rule/rule in program.rules) + for(var/datum/nanite_rule/rule as anything in program.rules) message += "[GLOB.TAB][rule.display()]" . = TRUE if(length(message)) @@ -382,32 +428,31 @@ data["has_nanites"] = TRUE data["nanite_volume"] = nanite_volume - data["regen_rate"] = regen_rate + data["regen_rate"] = regen_rate + (SSresearch.science_tech.researched_nodes["nanite_harmonic"] ? HARMONIC_REGEN_BOOST : 0) data["safety_threshold"] = safety_threshold data["cloud_id"] = cloud_id data["cloud_active"] = cloud_active var/list/mob_programs = list() var/id = 1 - for(var/X in programs) - var/datum/nanite_program/P = X + for(var/datum/nanite_program/program as anything in programs) var/list/mob_program = list() - mob_program["name"] = P.name - mob_program["desc"] = P.desc + mob_program["name"] = program.name + mob_program["desc"] = program.desc mob_program["id"] = id if(scan_level >= 2) - mob_program["activated"] = P.activated - mob_program["use_rate"] = P.use_rate - mob_program["can_trigger"] = P.can_trigger - mob_program["trigger_cost"] = P.trigger_cost - mob_program["trigger_cooldown"] = P.trigger_cooldown / 10 + mob_program["activated"] = program.activated + mob_program["use_rate"] = program.use_rate + mob_program["can_trigger"] = program.can_trigger + mob_program["trigger_cost"] = program.trigger_cost + mob_program["trigger_cooldown"] = program.trigger_cooldown / 10 if(scan_level >= 3) - mob_program["timer_restart"] = P.timer_restart / 10 - mob_program["timer_shutdown"] = P.timer_shutdown / 10 - mob_program["timer_trigger"] = P.timer_trigger / 10 - mob_program["timer_trigger_delay"] = P.timer_trigger_delay / 10 - var/list/extra_settings = P.get_extra_settings_frontend() + mob_program["timer_restart"] = program.timer_restart / 10 + mob_program["timer_shutdown"] = program.timer_shutdown / 10 + mob_program["timer_trigger"] = program.timer_trigger / 10 + mob_program["timer_trigger_delay"] = program.timer_trigger_delay / 10 + var/list/extra_settings = program.get_extra_settings_frontend() mob_program["extra_settings"] = extra_settings if(LAZYLEN(extra_settings)) mob_program["has_extra_settings"] = TRUE @@ -415,14 +460,13 @@ mob_program["has_extra_settings"] = FALSE if(scan_level >= 4) - mob_program["activation_code"] = P.activation_code - mob_program["deactivation_code"] = P.deactivation_code - mob_program["kill_code"] = P.kill_code - mob_program["trigger_code"] = P.trigger_code + mob_program["activation_code"] = program.activation_code + mob_program["deactivation_code"] = program.deactivation_code + mob_program["kill_code"] = program.kill_code + mob_program["trigger_code"] = program.trigger_code var/list/rules = list() var/rule_id = 1 - for(var/Z in P.rules) - var/datum/nanite_rule/nanite_rule = Z + for(var/datum/nanite_rule/nanite_rule as anything in program.rules) var/list/rule = list() rule["display"] = nanite_rule.display() rule["program_id"] = id diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index f56ae01bdb9d5..b6221d1419d1e 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -525,7 +525,7 @@ GLOBAL_LIST_EMPTY(created_baseturf_lists) /turf/AllowDrop() return TRUE -/turf/proc/add_vomit_floor(mob/living/M, toxvomit = NONE) +/turf/proc/add_vomit_floor(mob/living/M, toxvomit = NONE, purge = TRUE) var/obj/effect/decal/cleanable/vomit/V = new /obj/effect/decal/cleanable/vomit(src, M.get_static_viruses()) @@ -539,7 +539,11 @@ GLOBAL_LIST_EMPTY(created_baseturf_lists) V.icon_state = "vomitpurp_[pick(1,4)]" else if (toxvomit == VOMIT_TOXIC) V.icon_state = "vomittox_[pick(1,4)]" - if (iscarbon(M)) + else if (toxvomit == VOMIT_NANITE) + V.name = "metallic slurry" + V.desc = "A puddle of metallic slurry that looks vaguely like very fine sand. It almost seems like it's moving..." + V.icon_state = "vomitnanite_[pick(1,4)]" + if (purge && iscarbon(M)) var/mob/living/carbon/C = M if(C.reagents) clear_reagents_to_vomit_pool(C,V) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 72239138c600b..366b4aadb1a26 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -404,7 +404,7 @@ return 0 return ..() -/mob/living/carbon/proc/vomit(lost_nutrition = 10, blood = FALSE, stun = TRUE, distance = 1, message = TRUE, toxic = FALSE) +/mob/living/carbon/proc/vomit(lost_nutrition = 10, blood = FALSE, stun = TRUE, distance = 1, message = TRUE, toxic = VOMIT_TOXIC, purge = FALSE) if(HAS_TRAIT(src, TRAIT_NOHUNGER)) return 1 @@ -452,10 +452,10 @@ adjustBruteLoss(3) else if(src.reagents.has_reagent(/datum/reagent/consumable/ethanol/blazaam, needs_metabolizing = TRUE)) if(T) - T.add_vomit_floor(src, VOMIT_PURPLE) + T.add_vomit_floor(src, toxic || VOMIT_PURPLE, purge) else if(T) - T.add_vomit_floor(src, VOMIT_TOXIC)//toxic barf looks different + T.add_vomit_floor(src, toxic, purge)//toxic barf looks different T = get_step(T, dir) if (T.is_blocked_turf()) break diff --git a/code/modules/research/designs/electronics_designs.dm b/code/modules/research/designs/electronics_designs.dm index 83bf900dee9a2..f289307d61293 100644 --- a/code/modules/research/designs/electronics_designs.dm +++ b/code/modules/research/designs/electronics_designs.dm @@ -46,6 +46,16 @@ category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE +/datum/design/nanite_comm_remote + name = "Nanite Communication Remote" + desc = "Allows for the construction of a nanite communication remote." + id = "nanite_comm_remote" + build_type = PROTOLATHE + materials = list(/datum/material/glass = 500, /datum/material/iron = 500, /datum/material/copper = 200) + build_path = /obj/item/nanite_remote/comm + category = list("Electronics") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + /datum/design/nanite_scanner name = "Nanite Scanner" desc = "Allows for the construction of a nanite scanner." diff --git a/code/modules/research/designs/nanite_designs.dm b/code/modules/research/designs/nanite_designs.dm index 566fb5e5de933..ef9eb1e109f8c 100644 --- a/code/modules/research/designs/nanite_designs.dm +++ b/code/modules/research/designs/nanite_designs.dm @@ -60,6 +60,13 @@ program_type = /datum/nanite_program/dermal_button category = list("Utility Nanites") +/datum/design/nanites/dermal_toggle + name = "Dermal Toggle" + desc = "Displays a switch on the host's skin, which can be used to send a signal to the nanites." + id = "dermal_toggle_nanites" + program_type = /datum/nanite_program/dermal_button/toggle + category = list("Utility Nanites") + /datum/design/nanites/stealth name = "Stealth" desc = "The nanites hide their activity and programming from superficial scans." @@ -128,11 +135,25 @@ /datum/design/nanites/mitosis name = "Mitosis" desc = "The nanites gain the ability to self-replicate, using bluespace to power the process, instead of drawing from a template. This rapidly speeds up the replication rate,\ - but it causes occasional software errors due to faulty copies. Not compatible with cloud sync." + but it causes occasional software errors due to faulty copies." id = "mitosis_nanites" program_type = /datum/nanite_program/mitosis category = list("Utility Nanites") +/datum/design/nanites/signaler + name = "Remote Signaler" + desc = "The nanites send a pulse to all remote signalers on a given frequency and code." + id = "remote_signal_nanites" + program_type = /datum/nanite_program/signaler + category = list("Utility Nanites") + +/datum/design/nanites/vampire + name = "Vampiric Synthesis" + desc = "The nanites can consume the host's blood in order to replicate much faster. Does not have a built-in safety limiter." + id = "vampire_nanites" + program_type = /datum/nanite_program/vampire + category = list("Utility Nanites") + ////////////////////MEDICAL NANITES////////////////////////////////////// /datum/design/nanites/regenerative name = "Accelerated Regeneration" @@ -396,6 +417,13 @@ program_type = /datum/nanite_program/haste category = list("Weaponized Nanites") +/datum/design/nanites/armblade + name = "Nanite Blade" + desc = "The nanites form a sharp blade around the user's arm when activated." + id = "armblade_nanites" + program_type = /datum/nanite_program/armblade + category = list("Weaponized Nanites") + ////////////////////SUPPRESSION NANITES////////////////////////////////////// /datum/design/nanites/shock @@ -539,3 +567,85 @@ id = "sensor_species_nanites" program_type = /datum/nanite_program/sensor/species category = list("Sensor Nanites") + +/datum/design/nanites/sensor_nutrition + name = "Nutrition Sensor" + desc = "The nanites receive a signal when the host's nutrition level is above/below a certain percentage." + id = "sensor_nutrition_nanites" + program_type = /datum/nanite_program/sensor/nutrition + category = list("Sensor Nanites") + +/datum/design/nanites/sensor_blood + name = "Blood Sensor" + desc = "The nanites receive a signal when the host's blood level is above/below a certain percentage." + id = "sensor_blood_nanites" + program_type = /datum/nanite_program/sensor/blood + category = list("Sensor Nanites") + +/datum/design/nanites/sensor_receiver + name = "Remote Signal Receiver" + desc = "The nanites receive signals from remote signalers, and translate them into nanite signals." + id = "sensor_receiver_nanites" + program_type = /datum/nanite_program/sensor/receiver + category = list("Sensor Nanites") + + +////////////////////NANITE PROTOCOLS////////////////////////////////////// +//Note about the category name: The UI cuts the last 8 characters from the category name to remove the " Nanites" in the other categories +//Because of this, Protocols was getting cut down to "P", so i had to add some padding +/datum/design/nanites/kickstart + name = "Kickstart Protocol" + desc = "Replication Protocol: the nanites focus on early growth, heavily boosting replication rate for a few minutes after the initial implantation." + id = "kickstart_nanites" + program_type = /datum/nanite_program/protocol/kickstart + category = list("Protocols_Nanites") + +/datum/design/nanites/factory + name = "Factory Protocol" + desc = "Replication Protocol: the nanites build a factory matrix within the host, gradually increasing replication speed over time. The factory decays if the protocol is not active." + id = "factory_nanites" + program_type = /datum/nanite_program/protocol/factory + category = list("Protocols_Nanites") + +/datum/design/nanites/pyramid + name = "Pyramid Protocol" + desc = "Replication Protocol: the nanites implement an alternate cooperative replication protocol that is more efficient as long as the saturation level is above 80%." + id = "pyramid_nanites" + program_type = /datum/nanite_program/protocol/pyramid + category = list("Protocols_Nanites") + +/datum/design/nanites/offline + name = "Eclipse Protocol" + desc = "Replication Protocol: while the host is asleep or otherwise unconcious, the nanites exploit the reduced interference to replicate more quickly." + id = "offline_nanites" + program_type = /datum/nanite_program/protocol/offline + category = list("Protocols_Nanites") + +/datum/design/nanites/hive + name = "Hive Protocol" + desc = "Storage Protocol: the nanites use a more efficient grid arrangment for volume storage, increasing maximum volume in a host." + id = "hive_nanites" + program_type = /datum/nanite_program/protocol/hive + category = list("Protocols_Nanites") + +/datum/design/nanites/zip + name = "Zip Protocol" + desc = "Storage Protocol: the nanites are disassembled and compacted when unused, greatly increasing the maximum volume while in a host. However, the process slows down the replication rate slightly." + id = "zip_nanites" + program_type = /datum/nanite_program/protocol/zip + category = list("Protocols_Nanites") + +/datum/design/nanites/free_range + name = "Free-range Protocol" + desc = "Storage Protocol: the nanites discard their default storage protocols in favour of a cheaper and more organic approach. Reduces maximum volume, but increases the replication rate." + id = "free_range_nanites" + program_type = /datum/nanite_program/protocol/free_range + category = list("Protocols_Nanites") + +/datum/design/nanites/unsafe_storage + name = "S.L.O. Protocol" + desc = "Storage Protocol: 'S.L.O.P.', or Storage Level Override Protocol, completely disables the safety measures normally present in nanites,\ + allowing them to reach much higher saturation levels, but at the risk of causing internal damage to the host." + id = "unsafe_storage_nanites" + program_type = /datum/nanite_program/protocol/unsafe_storage + category = list("Protocols_Nanites") diff --git a/code/modules/research/nanites/nanite_cloud_controller.dm b/code/modules/research/nanites/nanite_cloud_controller.dm index 391f416b36cc7..c577e5616818f 100644 --- a/code/modules/research/nanites/nanite_cloud_controller.dm +++ b/code/modules/research/nanites/nanite_cloud_controller.dm @@ -195,6 +195,7 @@ playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) cloud_id = clamp(round(cloud_id, 1),1,100) generate_backup(cloud_id, usr) + balloon_alert(usr, "created backup") . = TRUE if("delete_backup") var/datum/nanite_cloud_backup/backup = get_backup(current_view) @@ -202,6 +203,7 @@ playsound(src, 'sound/machines/terminal_prompt.ogg', 50, FALSE) qdel(backup) investigate_log("[key_name(usr)] deleted the nanite cloud backup #[current_view]", INVESTIGATE_NANITES) + balloon_alert(usr, "deleted backup") . = TRUE if("upload_program") if(disk && disk.program) @@ -211,6 +213,7 @@ var/datum/component/nanites/nanites = backup.nanites nanites.add_program(null, disk.program.copy()) investigate_log("[key_name(usr)] uploaded program [disk.program.name] to cloud #[current_view]", INVESTIGATE_NANITES) + balloon_alert(usr, "uploaded program") . = TRUE if("remove_program") var/datum/nanite_cloud_backup/backup = get_backup(current_view) @@ -219,6 +222,7 @@ var/datum/component/nanites/nanites = backup.nanites var/datum/nanite_program/P = nanites.programs[text2num(params["program_id"])] investigate_log("[key_name(usr)] deleted program [P.name] from cloud #[current_view]", INVESTIGATE_NANITES) + balloon_alert(usr, "removed program") qdel(P) . = TRUE if("add_rule") @@ -232,6 +236,7 @@ var/datum/component/nanites/nanites = backup.nanites var/datum/nanite_program/P = nanites.programs[text2num(params["program_id"])] var/datum/nanite_rule/rule = rule_template.make_rule(P) + balloon_alert(usr, "added rule") investigate_log("[key_name(usr)] added rule [rule.display()] to program [P.name] in cloud #[current_view]", INVESTIGATE_NANITES) . = TRUE @@ -243,9 +248,51 @@ var/datum/nanite_program/P = nanites.programs[text2num(params["program_id"])] var/datum/nanite_rule/rule = P.rules[text2num(params["rule_id"])] rule.remove() + balloon_alert(usr, "removed rule") investigate_log("[key_name(usr)] removed rule [rule.display()] from program [P.name] in cloud #[current_view]", INVESTIGATE_NANITES) . = TRUE + if("combine_rules") + var/datum/nanite_cloud_backup/backup = get_backup(current_view) + if(backup) + playsound(src, 'sound/machines/terminal_prompt.ogg', 50, 0) + var/datum/component/nanites/nanites = backup.nanites + var/datum/nanite_program/program = nanites.programs[text2num(params["program_id"])] + if(!islist(params["rule_ids"])) + return + if(length(params["rule_ids"]) <= 1) + to_chat(usr, "Warning: you need to combine at least 2 rules.") + balloon_alert(usr, "not enough rules to combine") + return + if(length(params["rule_ids"]) > 5) + to_chat(usr, "Warning: cannot combine more than 5 rules.") + balloon_alert(usr, "too many rules to combine") + return + var/list/datum/nanite_rule/rules_to_copy = list() + var/list/rule_displays = list() + for(var/rule_id in params["rule_ids"]) + var/datum/nanite_rule/rule = program.rules[text2num(rule_id)] + if(!rule) + continue + if(!rule.combinable) + balloon_alert(usr, "rules cannot be combined") + to_chat(usr, "Warning: rule '[rule.display()]' cannot be combined.") + return + rule_displays += rule.display() + rules_to_copy += rule + if(!length(rules_to_copy)) + balloon_alert(usr, "no rules to combine") + to_chat(usr, "Warning: no rules to combine!") + return + var/list/datum/nanite_rule/copied_rules = list() + for(var/R in rules_to_copy) + var/datum/nanite_rule/rule = R + copied_rules += rule.copy_to(program, FALSE) + rule.remove() + new /datum/nanite_rule/combined(program, TRUE, copied_rules, params["op"]) + balloon_alert(usr, "rules combined") + investigate_log("[key_name(usr)] combined rules [english_list(rule_displays)] from program [program.name] in cloud #[current_view]", INVESTIGATE_NANITES) + . = TRUE /datum/nanite_cloud_backup var/cloud_id = 0 diff --git a/code/modules/research/nanites/nanite_misc_items.dm b/code/modules/research/nanites/nanite_misc_items.dm index 6837543d11190..5d7a16cf08118 100644 --- a/code/modules/research/nanites/nanite_misc_items.dm +++ b/code/modules/research/nanites/nanite_misc_items.dm @@ -6,4 +6,5 @@ icon_state = "nanite_remote" /obj/item/nanite_injector/attack_self(mob/user) - user.AddComponent(/datum/component/nanites, 150) + var/cloud_id = tgui_input_number(user, "Input Cloud ID", "Nanite Injector", 1, 99, 1) + user.AddComponent(/datum/component/nanites, 150, cloud_id) diff --git a/code/modules/research/nanites/nanite_programs.dm b/code/modules/research/nanites/nanite_programs.dm index 365f2fc052362..992247e12ee4c 100644 --- a/code/modules/research/nanites/nanite_programs.dm +++ b/code/modules/research/nanites/nanite_programs.dm @@ -11,6 +11,8 @@ var/trigger_cost = 0 //Amount of nanites required to trigger var/trigger_cooldown = 50 //Deciseconds required between each trigger activation var/next_trigger = 0 //World time required for the next trigger activation + var/activate_cooldown = 0 //Deciseconds required between each activation + COOLDOWN_DECLARE(next_activate) var/program_flags = NONE var/passive_enabled = FALSE //If the nanites have an on/off-style effect, it's tracked by this var @@ -173,9 +175,14 @@ deactivate() /datum/nanite_program/proc/activate() + if(!COOLDOWN_FINISHED(src, next_activate)) + deactivate() + return activated = TRUE if(timer_shutdown) timer_shutdown_next = world.time + timer_shutdown + if(activate_cooldown) + COOLDOWN_START(src, next_activate, activate_cooldown) /datum/nanite_program/proc/deactivate() if(passive_enabled) @@ -217,36 +224,38 @@ //If false, disables active and passive effects, but doesn't consume nanites //Can be used to avoid consuming nanites for nothing /datum/nanite_program/proc/check_conditions() - var/datum/nanite_extra_setting/logictype = extra_settings[NES_RULE_LOGIC] - if(logictype) - switch(logictype.get_value()) - if(NL_AND) - for(var/R in rules) - var/datum/nanite_rule/rule = R - if(!rule.check_rule()) - return FALSE - if(NL_OR) - for(var/R in rules) - var/datum/nanite_rule/rule = R - if(rule.check_rule()) - return TRUE - return FALSE - if(NL_NOR) - for(var/R in rules) - var/datum/nanite_rule/rule = R - if(rule.check_rule()) - return FALSE - if(NL_NAND) - for(var/R in rules) - var/datum/nanite_rule/rule = R - if(!rule.check_rule()) - return TRUE - return FALSE - else - for(var/R in rules) - var/datum/nanite_rule/rule = R - if(!rule.check_rule()) - return FALSE + var/rule_amt = length(rules) + if(rule_amt) + var/datum/nanite_extra_setting/logictype = extra_settings[NES_RULE_LOGIC] + if(logictype) + switch(logictype.get_value()) + if(NL_AND) + for(var/R in 1 to min(rule_amt, 5)) + var/datum/nanite_rule/rule = rules[R] + if(!rule.check_rule()) + return FALSE + if(NL_OR) + for(var/R in 1 to min(rule_amt, 5)) + var/datum/nanite_rule/rule = rules[R] + if(rule.check_rule()) + return TRUE + return FALSE + if(NL_NOR) + for(var/R in 1 to min(rule_amt, 5)) + var/datum/nanite_rule/rule = rules[R] + if(rule.check_rule()) + return FALSE + if(NL_NAND) + for(var/R in 1 to min(rule_amt, 5)) + var/datum/nanite_rule/rule = rules[R] + if(!rule.check_rule()) + return TRUE + return FALSE + else + for(var/R in 1 to min(rule_amt, 5)) + var/datum/nanite_rule/rule = rules[R] + if(!rule.check_rule()) + return FALSE return TRUE //Constantly procs as long as the program is active @@ -326,7 +335,7 @@ nanites.add_program(null, rogue, src) qdel(src) -/datum/nanite_program/proc/receive_signal(code, source) +/datum/nanite_program/proc/receive_nanite_signal(code, source) if(activation_code && code == activation_code && !activated) activate() host_mob.investigate_log("'s [name] nanite program was activated by [source] with code [code]. Cloud No.[nanites.cloud_id]", INVESTIGATE_NANITES) diff --git a/code/modules/research/nanites/nanite_programs/buffing.dm b/code/modules/research/nanites/nanite_programs/buffing.dm index 9e4137e079c2a..3a3e0c357cc2c 100644 --- a/code/modules/research/nanites/nanite_programs/buffing.dm +++ b/code/modules/research/nanites/nanite_programs/buffing.dm @@ -137,3 +137,42 @@ to_chat(host_mob, "Your body feels lighter and your legs feel relaxed!") host_mob.set_resting(FALSE) host_mob.reagents.add_reagent(/datum/reagent/medicine/amphetamine, 3) + +/datum/nanite_program/armblade + name = "Nanite Blade" + desc = "The nanites form a sharp blade around the user's arm when activated." + use_rate = 1 + activate_cooldown = 10 SECONDS + rogue_types = list(/datum/nanite_program/necrotic, /datum/nanite_program/skin_decay) + var/obj/item/melee/arm_blade/nanite/blade + +/datum/nanite_program/armblade/enable_passive_effect() + . = ..() + if(blade) + QDEL_NULL(blade) + if(!host_mob) + return + blade = new(host_mob) + host_mob.dropItemToGround(host_mob.get_active_held_item()) + if(!host_mob.put_in_hands(blade)) + to_chat(host_mob, "You feel an intense pain as your nanites fail to form a blade!") + host_mob.adjustBruteLoss(10) + QDEL_NULL(blade) + return + host_mob.visible_message("A metallic blade rapidly forms around [host_mob]'s arm!", "A nanite blade quickly forms around our arm!") + +/datum/nanite_program/armblade/disable_passive_effect() + . = ..() + if(blade) + host_mob.visible_message("The metallic blade around [host_mob]'s arm retracts and dissolves!", "Our nanite blade dissipates.") + QDEL_NULL(blade) + +/obj/item/melee/arm_blade/nanite + name = "metallic armblade" + desc = "Nanites have formed this extremely sharp blade around your arm. Owie." + force = 15 + icon = 'icons/obj/nanite.dmi' + icon_state = "nanite_blade" + item_state = "nanite_blade" + lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' + righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' diff --git a/code/modules/research/nanites/nanite_programs/protocol.dm b/code/modules/research/nanites/nanite_programs/protocol.dm new file mode 100644 index 0000000000000..67df9864a5055 --- /dev/null +++ b/code/modules/research/nanites/nanite_programs/protocol.dm @@ -0,0 +1,302 @@ +///A nanite program containing a behaviour protocol. Only one protocol of each class can be active at once. +/datum/nanite_program/protocol + name = "Nanite Protocol" + var/protocol_class = NONE + +/datum/nanite_program/protocol/check_conditions() + . = ..() + for(var/datum/nanite_program/protocol/protocol as anything in nanites.protocols) + if(protocol != src && protocol.activated && protocol.protocol_class == protocol_class) + return FALSE + +/datum/nanite_program/protocol/on_add(datum/component/nanites/_nanites) + ..() + nanites.protocols += src + +/datum/nanite_program/protocol/Destroy() + if(nanites) + nanites.protocols -= src + return ..() + +//Replication Protocols +/datum/nanite_program/protocol/kickstart + name = "Kickstart Protocol" + desc = "Replication Protocol: the nanites focus on early growth, heavily boosting replication rate for a few minutes after the initial implantation, \ + resulting in an additional 420 nanite volume being produced during the first two minutes." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_REPLICATION + var/boost_duration = 2 MINUTES + +/datum/nanite_program/protocol/kickstart/check_conditions() + if(!(world.time < nanites.start_time + boost_duration)) + return FALSE + return ..() + +/datum/nanite_program/protocol/kickstart/active_effect() + nanites.adjust_nanites(amount = 3.5) + + +/datum/nanite_program/protocol/factory + name = "Factory Protocol" + desc = "Replication Protocol: the nanites build a factory matrix within the host, gradually increasing replication speed over time, \ + granting a maximum of 2 additional nanite production after roughly 17 minutes. \ + The factory decays if the protocol is not active, or if the nanites are disrupted by shocks or EMPs." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_REPLICATION + var/factory_efficiency = 0 + var/max_efficiency = 1000 //Goes up to 2 bonus regen per tick after 16 minutes and 40 seconds + +/datum/nanite_program/protocol/factory/on_process() + if(!activated || !check_conditions()) + factory_efficiency = max(0, factory_efficiency - 5) + ..() + +/datum/nanite_program/protocol/factory/on_emp(severity) + ..() + factory_efficiency = max(0, factory_efficiency - 300) + +/datum/nanite_program/protocol/factory/on_shock(shock_damage) + ..() + factory_efficiency = max(0, factory_efficiency - 200) + +/datum/nanite_program/protocol/factory/on_minor_shock() + ..() + factory_efficiency = max(0, factory_efficiency - 100) + +/datum/nanite_program/protocol/factory/active_effect() + factory_efficiency = min(factory_efficiency + 1, max_efficiency) + nanites.adjust_nanites(amount = round(0.002 * factory_efficiency, 0.1)) + + +/datum/nanite_program/protocol/pyramid + name = "Pyramid Protocol" + desc = "Replication Protocol: the nanites implement an alternate cooperative replication protocol that is active as long as the nanite saturation level is above 80%, \ + resulting in an additional volume production of 1.2 per second." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_REPLICATION + var/boost = 1.2 + +/datum/nanite_program/protocol/pyramid/check_conditions() + if((nanites.nanite_volume / nanites.max_nanites) < 0.8) + return FALSE + + return ..() + +/datum/nanite_program/protocol/pyramid/active_effect() + nanites.adjust_nanites(amount = boost) + + +/datum/nanite_program/protocol/offline + name = "Eclipse Protocol" + desc = "Replication Protocol: while the host is asleep or otherwise unconcious, the nanites exploit the reduced interference to replicate more quickly." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_REPLICATION + var/boost = 3 + +/datum/nanite_program/protocol/offline/check_conditions() + if(nanites.host_mob.stat == CONSCIOUS) + return FALSE + return ..() + +/datum/nanite_program/protocol/offline/active_effect() + nanites.adjust_nanites(amount = boost) + + +/datum/nanite_program/protocol/hive + name = "Hive Protocol" + desc = "Storage Protocol: the nanites use a more efficient grid arrangment for volume storage, increasing maximum volume to 750." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_STORAGE + var/extra_volume = 250 + +/datum/nanite_program/protocol/hive/enable_passive_effect() + . = ..() + nanites.set_max_volume(amount = nanites.max_nanites + extra_volume) + +/datum/nanite_program/protocol/hive/disable_passive_effect() + . = ..() + nanites.set_max_volume(amount = nanites.max_nanites - extra_volume) + + +/datum/nanite_program/protocol/zip + name = "Zip Protocol" + desc = "Storage Protocol: the nanites are disassembled and compacted when unused, increasing the maximum volume to 1000. However, the process slows down their replication rate slightly." + use_rate = 0.2 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_STORAGE + var/extra_volume = 500 + +/datum/nanite_program/protocol/zip/enable_passive_effect() + . = ..() + nanites.set_max_volume(amount = nanites.max_nanites + extra_volume) + +/datum/nanite_program/protocol/zip/disable_passive_effect() + . = ..() + nanites.set_max_volume(amount = nanites.max_nanites - extra_volume) + + +/datum/nanite_program/protocol/free_range + name = "Free-range Protocol" + desc = "Storage Protocol: the nanites discard their default storage protocols in favour of a cheaper and more organic approach. Reduces maximum volume to 250, but increases the replication rate by 0.5." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_STORAGE + var/boost = 0.5 + var/extra_volume = -250 + +/datum/nanite_program/protocol/free_range/enable_passive_effect() + . = ..() + nanites.set_max_volume(amount = nanites.max_nanites + extra_volume) + +/datum/nanite_program/protocol/free_range/disable_passive_effect() + . = ..() + nanites.set_max_volume(amount = nanites.max_nanites - extra_volume) + +/datum/nanite_program/protocol/free_range/active_effect() + nanites.adjust_nanites(amount = boost) + + +/datum/nanite_program/protocol/unsafe_storage + name = "S.L.O. Protocol" + desc = "Storage Protocol: 'S.L.O.P.', or Storage Level Override Protocol, completely disables the safety measures normally present in nanites, \ + allowing them to reach a whopping maximum volume level of 2000, but at the risk of causing damage to the host at nanite concentrations above the standard limit of 500." + use_rate = 0 + rogue_types = list(/datum/nanite_program/necrotic) + protocol_class = NANITE_PROTOCOL_STORAGE + var/extra_volume = 1500 + var/next_warning = 0 + var/min_warning_cooldown = 120 + var/max_warning_cooldown = 350 + var/volume_warnings_stage_1 = list("You feel a dull pain in your abdomen.", + "You feel a tickling sensation in your abdomen.") + var/volume_warnings_stage_2 = list("You feel a dull pain in your stomach.", + "You feel a dull pain when breathing.", + "Your stomach grumbles.", + "You feel a tickling sensation in your throat.", + "You feel a tickling sensation in your lungs.", + "You feel a tickling sensation in your stomach.", + "Your lungs feel stiff.") + var/volume_warnings_stage_3 = list("You feel a dull pain in your chest.", + "You hear a faint buzzing coming from nowhere.", + "You hear a faint buzzing inside your head.", + "Your head aches.") + var/volume_warnings_stage_4 = list("You feel a dull pain in your ears.", + "You feel a dull pain behind your eyes.", + "You hear a loud, echoing buzz inside your ears.", + "You feel dizzy.", + "You feel an itch coming from behind your eyes.", + "Your eardrums itch.", + "You see tiny grey motes drifting in your field of view.") + var/volume_warnings_stage_5 = list("You feel sick.", + "You feel a dull pain from every part of your body.", + "You feel nauseous.") + var/volume_warnings_stage_6 = list("Your skin itches and burns.", + "Your muscles ache.", + "You feel tired.", + "You feel something skittering under your skin.",) + +/datum/nanite_program/protocol/unsafe_storage/enable_passive_effect() + . = ..() + nanites.set_max_volume(amount = nanites.max_nanites + extra_volume) + +/datum/nanite_program/protocol/unsafe_storage/disable_passive_effect() + . = ..() + nanites.set_max_volume(amount = nanites.max_nanites - extra_volume) + +/datum/nanite_program/protocol/unsafe_storage/active_effect() + if(!iscarbon(host_mob)) + if(prob(10)) + host_mob.adjustBruteLoss(((max(nanites.nanite_volume - 450, 0) / 450) ** 2 ) * 0.5) // 0.5 -> 2 -> 4.5 -> 8 damage per successful tick + return + + var/mob/living/carbon/C = host_mob + + if(nanites.nanite_volume < 500) + return + + var/current_stage = 0 + if(nanites.nanite_volume > 500) //Liver is the main hub of nanite replication and the first to be threatened by excess volume + if(prob(10)) + var/obj/item/organ/liver/liver = C.getorganslot(ORGAN_SLOT_LIVER) + if(liver) + liver.applyOrganDamage(0.6) + current_stage++ + if(nanites.nanite_volume > 750) //Extra volume spills out in other central organs + if(prob(10)) + var/obj/item/organ/stomach/stomach = C.getorganslot(ORGAN_SLOT_STOMACH) + if(stomach) + stomach.applyOrganDamage(0.75) + if(prob(10)) + var/obj/item/organ/lungs/lungs = C.getorganslot(ORGAN_SLOT_LUNGS) + if(lungs) + lungs.applyOrganDamage(0.75) + current_stage++ + if(nanites.nanite_volume > 1000) //Extra volume spills out in more critical organs + if(prob(10)) + var/obj/item/organ/heart/heart = C.getorganslot(ORGAN_SLOT_HEART) + if(heart) + heart.applyOrganDamage(0.75) + if(prob(10)) + var/obj/item/organ/brain/brain = C.getorganslot(ORGAN_SLOT_BRAIN) + if(brain) + brain.applyOrganDamage(0.75) + current_stage++ + if(nanites.nanite_volume > 1250) //Excess nanites start invading smaller organs for more space, including sensory organs + if(prob(13)) + var/obj/item/organ/eyes/eyes = C.getorganslot(ORGAN_SLOT_EYES) + if(eyes) + eyes.applyOrganDamage(0.75) + if(prob(13)) + var/obj/item/organ/ears/ears = C.getorganslot(ORGAN_SLOT_EARS) + if(ears) + ears.applyOrganDamage(0.75) + current_stage++ + if(nanites.nanite_volume > 1500) //Nanites start spilling into the bloodstream, causing toxicity + if(prob(15)) + C.adjustToxLoss(0.5, TRUE, forced = TRUE) //Not healthy for slimepeople either + current_stage++ + if(nanites.nanite_volume > 1750) //Nanites have almost reached their physical limit, and the pressure itself starts causing tissue damage + if(prob(15)) + C.adjustBruteLoss(0.75, TRUE) + current_stage++ + + volume_warning(current_stage) + +/datum/nanite_program/protocol/unsafe_storage/proc/volume_warning(tier) + if(world.time < next_warning) + return + + var/list/main_warnings + var/list/extra_warnings + + switch(tier) + if(1) + main_warnings = volume_warnings_stage_1 + extra_warnings = null + if(2) + main_warnings = volume_warnings_stage_2 + extra_warnings = volume_warnings_stage_1 + if(3) + main_warnings = volume_warnings_stage_3 + extra_warnings = volume_warnings_stage_1 + volume_warnings_stage_2 + if(4) + main_warnings = volume_warnings_stage_4 + extra_warnings = volume_warnings_stage_1 + volume_warnings_stage_2 + volume_warnings_stage_3 + if(5) + main_warnings = volume_warnings_stage_5 + extra_warnings = volume_warnings_stage_1 + volume_warnings_stage_2 + volume_warnings_stage_3 + volume_warnings_stage_4 + if(6) + main_warnings = volume_warnings_stage_6 + extra_warnings = volume_warnings_stage_1 + volume_warnings_stage_2 + volume_warnings_stage_3 + volume_warnings_stage_4 + volume_warnings_stage_5 + + if(prob(35)) + to_chat(host_mob, "[pick(main_warnings)]") + next_warning = world.time + rand(min_warning_cooldown, max_warning_cooldown) + else if(islist(extra_warnings)) + to_chat(host_mob, "[pick(extra_warnings)]") + next_warning = world.time + rand(min_warning_cooldown, max_warning_cooldown) diff --git a/code/modules/research/nanites/nanite_programs/sensor.dm b/code/modules/research/nanites/nanite_programs/sensor.dm index 3664058f4e89c..dfbecbfb451bb 100644 --- a/code/modules/research/nanites/nanite_programs/sensor.dm +++ b/code/modules/research/nanites/nanite_programs/sensor.dm @@ -328,3 +328,136 @@ rule.mode_rule = mode.get_value() rule.species_name_rule = species_name.get_value() return rule + +/datum/nanite_program/sensor/nutrition + name = "Nutrition Sensor" + desc = "The nanites receive a signal when the host's nutrition is above/below a target percentage." + can_rule = TRUE + var/static/list/possible_nutrition_values = list( + "Fat (100%)" = NUTRITION_LEVEL_FAT, + "Full (90%)" = NUTRITION_LEVEL_FULL, + "Well Fed (75%)" = NUTRITION_LEVEL_WELL_FED, + "Fed (60%)" = NUTRITION_LEVEL_FED, + "Hungry (40%)" = NUTRITION_LEVEL_HUNGRY, + "Starving (25%)" = NUTRITION_LEVEL_STARVING + ) + var/spent = TRUE + +/datum/nanite_program/sensor/nutrition/check_conditions() + return ..() && !HAS_TRAIT(host_mob, TRAIT_NOHUNGER) + +/datum/nanite_program/sensor/nutrition/register_extra_settings() + . = ..() + extra_settings[NES_NUTRITION] = new /datum/nanite_extra_setting/type("Fed (60%)", assoc_to_keys(possible_nutrition_values)) + extra_settings[NES_DIRECTION] = new /datum/nanite_extra_setting/boolean(TRUE, "Above", "Below") + +/datum/nanite_program/sensor/nutrition/check_event() + var/datum/nanite_extra_setting/nutrition = extra_settings[NES_NUTRITION] + var/threshold = possible_nutrition_values[nutrition.get_value()] + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] + var/detected = FALSE + if(direction.get_value()) + if(host_mob.nutrition >= threshold) + detected = TRUE + else + if(host_mob.nutrition < threshold) + detected = TRUE + + if(detected) + if(!spent) + spent = TRUE + return TRUE + return FALSE + else + spent = FALSE + return FALSE + +/datum/nanite_program/sensor/nutrition/make_rule(datum/nanite_program/target) + var/datum/nanite_rule/nutrition/rule = new(target) + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] + var/datum/nanite_extra_setting/nutrition = extra_settings[NES_NUTRITION] + rule.above = direction.get_value() + rule.threshold = possible_nutrition_values[nutrition.get_value()] + return rule + +/datum/nanite_program/sensor/blood + name = "Blood Sensor" + desc = "The nanites receive a signal when the host's blood level is above/below a target percentage." + can_rule = TRUE + var/spent = FALSE + +/datum/nanite_program/sensor/blood/register_extra_settings() + . = ..() + extra_settings[NES_BLOOD_PERCENT] = new /datum/nanite_extra_setting/number(80, -99, 100, "%") + extra_settings[NES_DIRECTION] = new /datum/nanite_extra_setting/boolean(TRUE, "Above", "Below") + +/datum/nanite_program/sensor/blood/check_conditions() + . = ..() + if(!.) + return FALSE + if(!iscarbon(host_mob)) + return FALSE + if(ishuman(host_mob)) + var/mob/living/carbon/human/host_human = host_mob + if(NOBLOOD in host_human.dna?.species?.species_traits) + return FALSE + +/datum/nanite_program/sensor/blood/check_event() + var/blood_percent = round((host_mob.blood_volume / BLOOD_VOLUME_NORMAL) * 100) + var/datum/nanite_extra_setting/percent = extra_settings[NES_HEALTH_PERCENT] + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] + var/detected = FALSE + if(direction.get_value()) + if(blood_percent >= percent.get_value()) + detected = TRUE + else + if(blood_percent < percent.get_value()) + detected = TRUE + + if(detected) + if(!spent) + spent = TRUE + return TRUE + return FALSE + else + spent = FALSE + return FALSE + +/datum/nanite_program/sensor/blood/make_rule(datum/nanite_program/target) + var/datum/nanite_rule/blood/rule = new(target) + var/datum/nanite_extra_setting/direction = extra_settings[NES_DIRECTION] + var/datum/nanite_extra_setting/percent = extra_settings[NES_BLOOD_PERCENT] + rule.above = direction.get_value() + rule.threshold = percent.get_value() + return rule + +/datum/nanite_program/sensor/receiver + name = "Remote Signal Receiver" + desc = "The nanites receive signals from remote signalers, and translate them into nanite signals." + var/datum/radio_frequency/radio_connection + +/datum/nanite_program/sensor/receiver/register_extra_settings() + . = ..() + extra_settings[NES_SIGNAL_FREQUENCY] = new /datum/nanite_extra_setting/number(FREQ_SIGNALER, MIN_FREQ, MAX_FREQ) + extra_settings[NES_SIGNAL_CODE] = new /datum/nanite_extra_setting/number(DEFAULT_SIGNALER_CODE, 1, 99) + extra_settings[NES_SENT_CODE] = new /datum/nanite_extra_setting/number(0, 1, 9999) + +/datum/nanite_program/sensor/receiver/enable_passive_effect() + . = ..() + var/datum/nanite_extra_setting/frequency = extra_settings[NES_SIGNAL_FREQUENCY] + radio_connection = SSradio.add_object(src, frequency.get_value(), RADIO_SIGNALER) + +/datum/nanite_program/sensor/receiver/disable_passive_effect() + . = ..() + var/datum/nanite_extra_setting/frequency = extra_settings[NES_SIGNAL_FREQUENCY] + SSradio.remove_object(src, frequency.get_value()) + +/datum/nanite_program/sensor/receiver/proc/receive_signal(datum/signal/signal) + . = FALSE + if(!signal || !radio_connection) + return + var/datum/nanite_extra_setting/code = extra_settings[NES_SIGNAL_CODE] + if(signal.data["code"] != code.get_value()) + return + send_code() + return TRUE diff --git a/code/modules/research/nanites/nanite_programs/utility.dm b/code/modules/research/nanites/nanite_programs/utility.dm index 8ebcee6a8958d..04e0a280b94db 100644 --- a/code/modules/research/nanites/nanite_programs/utility.dm +++ b/code/modules/research/nanites/nanite_programs/utility.dm @@ -146,20 +146,19 @@ /datum/nanite_program/metabolic_synthesis name = "Metabolic Synthesis" - desc = "The nanites use the metabolic cycle of the host to speed up their replication rate, using their extra nutrition as fuel." + desc = "The nanites use the metabolic cycle of the host to speed up their replication rate, using their extra nutrition as fuel. Does not have a built-in safety limiter." use_rate = -0.5 //generates nanites rogue_types = list(/datum/nanite_program/toxic) /datum/nanite_program/metabolic_synthesis/check_conditions() if(!iscarbon(host_mob)) return FALSE - var/mob/living/carbon/C = host_mob - if(C.nutrition <= NUTRITION_LEVEL_WELL_FED) + if(host_mob.nutrition <= 0) return FALSE return ..() /datum/nanite_program/metabolic_synthesis/active_effect() - host_mob.adjust_nutrition(-0.5) + host_mob.adjust_nutrition(-min(0.5, host_mob.nutrition)) /datum/nanite_program/research name = "Distributed Computing" @@ -227,6 +226,9 @@ current_item = host_mob.get_inactive_held_item() if(current_item) nanite_access |= current_item.GetAccess() + current_item = host_mob.pulling + if(isitem(current_item)) + nanite_access |= current_item.GetAccess() if(ishuman(host_mob)) var/mob/living/carbon/human/H = host_mob current_item = H.wear_id @@ -244,27 +246,30 @@ resulting in an extremely infective strain of nanites." use_rate = 1.50 rogue_types = list(/datum/nanite_program/aggressive_replication, /datum/nanite_program/necrotic) - var/spread_cooldown = 0 + COOLDOWN_DECLARE(spread_cooldown) /datum/nanite_program/spreading/active_effect() - if(spread_cooldown < world.time) + if(!COOLDOWN_FINISHED(src, spread_cooldown)) return - spread_cooldown = world.time + 50 var/list/mob/living/target_hosts = list() - for(var/mob/living/L in ohearers(5, host_mob)) - if(!prob(25)) + for(var/mob/living/target in ohearers(5, host_mob)) + if(prob(15 * max(get_dist(host_mob, target) - 1, 0))) continue - if(!(MOB_ORGANIC in L.mob_biotypes) && !(MOB_UNDEAD in L.mob_biotypes) && !HAS_TRAIT(host_mob, TRAIT_NANITECOMPATIBLE)) + if(!(MOB_ORGANIC in target.mob_biotypes) && !(MOB_UNDEAD in target.mob_biotypes) && !HAS_TRAIT(host_mob, TRAIT_NANITECOMPATIBLE)) continue - target_hosts += L + target_hosts += target if(!target_hosts.len) + COOLDOWN_START(src, spread_cooldown, 2 SECONDS) return var/mob/living/infectee = pick(target_hosts) if(prob(100 - (infectee.get_permeability_protection() * 100))) + COOLDOWN_START(src, spread_cooldown, 7.5 SECONDS) //this will potentially take over existing nanites! infectee.AddComponent(/datum/component/nanites, 10) SEND_SIGNAL(infectee, COMSIG_NANITE_SYNC, nanites) infectee.investigate_log("was infected by spreading nanites by [key_name(host_mob)] at [AREACOORD(infectee)].", INVESTIGATE_NANITES) + else + COOLDOWN_START(src, spread_cooldown, 2 SECONDS) /datum/nanite_program/nanite_sting name = "Nanite Sting" @@ -303,7 +308,7 @@ /datum/nanite_program/mitosis/active_effect() var/rep_rate = round(nanites.nanite_volume / 50, 1) //0.5 per 50 nanite volume rep_rate *= 0.5 - nanites.adjust_nanites(null, rep_rate) + nanites.adjust_nanites(amount = rep_rate) if(prob(rep_rate)) var/datum/nanite_program/fault = pick(nanites.programs) if(fault == src) @@ -319,16 +324,15 @@ /datum/nanite_program/dermal_button/register_extra_settings() extra_settings[NES_SENT_CODE] = new /datum/nanite_extra_setting/number(1, 1, 9999) extra_settings[NES_BUTTON_NAME] = new /datum/nanite_extra_setting/text("Button") - extra_settings[NES_ICON] = new /datum/nanite_extra_setting/type("power", list("one","two","three","four","five","plus","minus","power")) - extra_settings[NES_COLOR] = new /datum/nanite_extra_setting/type("green", list("green","red","yellow","blue")) + extra_settings[NES_ICON] = new /datum/nanite_extra_setting/type("power", list("one", "two", "three", "four", "five", "plus", "minus", "power")) + extra_settings[NES_COLOR] = new /datum/nanite_extra_setting/type("green", list("green", "red", "yellow", "blue")) /datum/nanite_program/dermal_button/enable_passive_effect() . = ..() var/datum/nanite_extra_setting/bn_name = extra_settings[NES_BUTTON_NAME] var/datum/nanite_extra_setting/bn_icon = extra_settings[NES_ICON] - var/datum/nanite_extra_setting/bn_color = extra_settings[NES_COLOR] if(!button) - button = new(src, bn_name.get_value(), bn_icon.get_value(), bn_color.get_value()) + button = new(src, bn_name.get_value(), bn_icon.get_value(), "red") button.target = host_mob button.Grant(host_mob) @@ -363,3 +367,74 @@ /datum/action/innate/nanite_button/Activate() program.press() + +/datum/action/innate/nanite_button/proc/update_icon(icon, color) + button_icon_state = "[icon]_[color]" + UpdateButtonIcon() + +/datum/nanite_program/dermal_button/toggle + name = "Dermal Toggle" + desc = "Displays a switch on the host's skin, which can be used to send an activation and deactivation signal to the nanites." + var/active = FALSE + +/datum/nanite_program/dermal_button/toggle/register_extra_settings() + extra_settings[NES_ACTIVATION_CODE] = new /datum/nanite_extra_setting/number(1, 1, 9999) + extra_settings[NES_DEACTIVATION_CODE] = new /datum/nanite_extra_setting/number(1, 1, 9999) + extra_settings[NES_BUTTON_NAME] = new /datum/nanite_extra_setting/text("Toggle") + extra_settings[NES_ICON] = new /datum/nanite_extra_setting/type("power", list("one", "two", "three", "four", "five", "plus", "minus", "power")) + +/datum/nanite_program/dermal_button/toggle/press() + if(!activated) + return + + var/datum/nanite_extra_setting/icon = extra_settings[NES_ICON] + var/datum/nanite_extra_setting/sent_code = extra_settings[active ? NES_DEACTIVATION_CODE : NES_ACTIVATION_CODE] + button.update_icon(icon.get_value(), active ? "red" : "green") + host_mob.visible_message("[host_mob] flicks a switch on [host_mob.p_their()] forearm.", + "You flick the nanite button on your forearm [active ? "off" : "on"].", null, 2) + active = !active + SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, sent_code.get_value(), "a [name] program") + +/datum/nanite_program/signaler + name = "Remote Signaler" + desc = "The nanites send a pulse to all remote signalers on a given frequency and code." + can_trigger = TRUE + trigger_cost = 10 + trigger_cooldown = 5 + var/datum/radio_frequency/radio_connection + +/datum/nanite_program/signaler/register_extra_settings() + extra_settings[NES_SIGNAL_FREQUENCY] = new /datum/nanite_extra_setting/number(FREQ_SIGNALER, MIN_FREQ, MAX_FREQ) + extra_settings[NES_SIGNAL_CODE] = new /datum/nanite_extra_setting/number(DEFAULT_SIGNALER_CODE, 1, 99) + +/datum/nanite_program/signaler/enable_passive_effect() + . = ..() + var/datum/nanite_extra_setting/frequency = extra_settings[NES_SIGNAL_FREQUENCY] + radio_connection = SSradio.return_frequency(frequency.get_value()) + +/datum/nanite_program/signaler/on_trigger() + if(!radio_connection) + return + var/datum/nanite_extra_setting/code = extra_settings[NES_SIGNAL_CODE] + radio_connection.post_signal(src, new /datum/signal(list("code" = code.get_value())), filter = RADIO_SIGNALER) + +/datum/nanite_program/vampire + name = "Vampiric Synthesis" + desc = "The nanites can consume the host's blood in order to replicate much faster. Does not have a built-in safety limiter." + use_rate = -0.75 + +/datum/nanite_program/vampire/check_conditions() + . = ..() + if(!.) + return FALSE + if(!iscarbon(host_mob)) + return FALSE + if(host_mob.blood_volume <= 0) + return FALSE + if(ishuman(host_mob)) + var/mob/living/carbon/human/host_human = host_mob + if(NOBLOOD in host_human.dna?.species?.species_traits) + return FALSE + +/datum/nanite_program/vampire/active_effect() + host_mob.blood_volume = max(host_mob.blood_volume - 1.5, 0) diff --git a/code/modules/research/nanites/nanite_remote.dm b/code/modules/research/nanites/nanite_remote.dm index 99ec99eb7c37a..1e36f2e78b61f 100644 --- a/code/modules/research/nanites/nanite_remote.dm +++ b/code/modules/research/nanites/nanite_remote.dm @@ -173,7 +173,6 @@ /obj/item/nanite_remote/comm name = "nanite communication remote" desc = "A device that can send text messages to specific programs." - icon_state = "nanite_comm_remote" var/comm_message = "" /obj/item/nanite_remote/comm/afterattack(atom/target, mob/user, etc) diff --git a/code/modules/research/nanites/rules.dm b/code/modules/research/nanites/rules.dm index f58835fdae870..c34a0527f6d56 100644 --- a/code/modules/research/nanites/rules.dm +++ b/code/modules/research/nanites/rules.dm @@ -1,14 +1,13 @@ /datum/nanite_rule var/name = "Generic Condition" var/desc = "When triggered, the program is active" + var/combinable = TRUE var/datum/nanite_program/program -/datum/nanite_rule/New(datum/nanite_program/new_program) +/datum/nanite_rule/New(datum/nanite_program/new_program, copy_to_rules = TRUE) program = new_program - if(LAZYLEN(new_program.rules) <= 5) //Avoid infinite stacking rules + if(copy_to_rules) new_program.rules += src - else - qdel(src) /datum/nanite_rule/proc/remove() program.rules -= src @@ -21,8 +20,8 @@ /datum/nanite_rule/proc/display() return name -/datum/nanite_rule/proc/copy_to(datum/nanite_program/new_program) - new type(new_program) +/datum/nanite_rule/proc/copy_to(datum/nanite_program/new_program, copy_to_rules = TRUE) + return new type(new_program, copy_to_rules) /datum/nanite_rule/health name = "Health" @@ -42,12 +41,13 @@ return FALSE /datum/nanite_rule/health/display() - return "[name] [above ? ">" : "<"] [threshold]%" + return "[name] [above ? ">=" : "<"] [threshold]%" -/datum/nanite_rule/health/copy_to(datum/nanite_program/new_program) - var/datum/nanite_rule/health/rule = new(new_program) +/datum/nanite_rule/health/copy_to(datum/nanite_program/new_program, copy_to_rules = TRUE) + var/datum/nanite_rule/health/rule = new(new_program, copy_to_rules) rule.above = above rule.threshold = threshold + return rule //TODO allow inversion /datum/nanite_rule/crit @@ -79,9 +79,10 @@ else return !program.nanites.cloud_active -/datum/nanite_rule/cloud_sync/copy_to(datum/nanite_program/new_program) - var/datum/nanite_rule/cloud_sync/rule = new(new_program) +/datum/nanite_rule/cloud_sync/copy_to(datum/nanite_program/new_program, copy_to_rules = TRUE) + var/datum/nanite_rule/cloud_sync/rule = new(new_program, copy_to_rules) rule.check_type = check_type + return rule /datum/nanite_rule/cloud_sync/display() return "[name]:[check_type]" @@ -103,13 +104,14 @@ return TRUE return FALSE -/datum/nanite_rule/nanites/copy_to(datum/nanite_program/new_program) - var/datum/nanite_rule/nanites/rule = new(new_program) +/datum/nanite_rule/nanites/copy_to(datum/nanite_program/new_program, copy_to_rules = TRUE) + var/datum/nanite_rule/nanites/rule = new(new_program, copy_to_rules) rule.above = above rule.threshold = threshold + return rule /datum/nanite_rule/nanites/display() - return "[name] [above ? ">" : "<"] [threshold]%" + return "[name] [above ? ">=" : "<"] [threshold]%" /datum/nanite_rule/damage name = "Damage" @@ -141,14 +143,15 @@ return TRUE return FALSE -/datum/nanite_rule/damage/copy_to(datum/nanite_program/new_program) - var/datum/nanite_rule/damage/rule = new(new_program) +/datum/nanite_rule/damage/copy_to(datum/nanite_program/new_program, copy_to_rules = TRUE) + var/datum/nanite_rule/damage/rule = new(new_program, copy_to_rules) rule.above = above rule.threshold = threshold rule.damage_type = damage_type + return rule /datum/nanite_rule/damage/display() - return "[damage_type] [above ? ">" : "<"] [threshold]" + return "[damage_type] [above ? ">=" : "<"] [threshold]" /datum/nanite_rule/species name = "Species" @@ -172,11 +175,112 @@ return species_match_rule ? mode_rule : !mode_rule -/datum/nanite_rule/species/copy_to(datum/nanite_program/new_program) - var/datum/nanite_rule/species/rule = new(new_program) +/datum/nanite_rule/species/copy_to(datum/nanite_program/new_program, copy_to_rules = TRUE) + var/datum/nanite_rule/species/rule = new(new_program, copy_to_rules) rule.species_rule = species_rule rule.mode_rule = mode_rule rule.species_name_rule = species_name_rule + return rule /datum/nanite_rule/species/display() return "[mode_rule ? "IS" : "IS NOT"] [species_name_rule]" + +/datum/nanite_rule/nutrition + name = "Nutrition" + desc = "Checks the host's nutrition" + + var/above = FALSE + var/threshold = NUTRITION_LEVEL_HUNGRY + +/datum/nanite_rule/nutrition/check_rule() + if(above) + return program.host_mob.nutrition >= threshold + else + return program.host_mob.nutrition < threshold + +/datum/nanite_rule/nutrition/copy_to(datum/nanite_program/new_program, copy_to_rules = TRUE) + var/datum/nanite_rule/nutrition/rule = new(new_program, copy_to_rules) + rule.above = above + rule.threshold = threshold + return rule + +/datum/nanite_rule/nutrition/display() + return "Nutrition [above ? ">=" : "<"] [min(round(threshold / NUTRITION_LEVEL_FAT, 5), 100)]%" + +/datum/nanite_rule/blood + name = "Blood" + desc = "Checks the host's blood level." + + var/threshold = 80 + var/above = TRUE + +/datum/nanite_rule/blood/check_rule() + var/blood_percent = round((program.host_mob.blood_volume / BLOOD_VOLUME_NORMAL) * 100) + if(above) + if(blood_percent >= threshold) + return TRUE + else + if(blood_percent < threshold) + return TRUE + return FALSE + +/datum/nanite_rule/blood/display() + return "[name] [above ? ">=" : "<"] [threshold]%" + +/datum/nanite_rule/blood/copy_to(datum/nanite_program/new_program, copy_to_rules = TRUE) + var/datum/nanite_rule/blood/rule = new(new_program, copy_to_rules) + rule.above = above + rule.threshold = threshold + return rule + +/datum/nanite_rule/combined + name = "Combined" + desc = "Combines multiple nanite rules into one." + combinable = FALSE + var/list/datum/nanite_rule/rules = list() + var/op = NL_AND + +/datum/nanite_rule/combined/New(datum/nanite_program/new_program, copy_to_rules, list/datum/nanite_rule/rules, op = NL_AND) + ..() + if(!length(rules) || length(rules) > 5) + qdel(src) + return + src.rules = rules + src.op = sanitize_inlist(op, NL_ALL, NL_AND) + +/datum/nanite_rule/combined/display() + var/list/rule_displays = list() + for(var/datum/nanite_rule/rule as anything in rules) + rule_displays += rule.display() + return "[op]([rule_displays.Join(", ")])" + +/datum/nanite_rule/combined/check_rule() + switch(op) + if(NL_AND) + for(var/datum/nanite_rule/rule as anything in rules) + if(!rule.check_rule()) + return FALSE + if(NL_OR) + for(var/datum/nanite_rule/rule as anything in rules) + if(rule.check_rule()) + return TRUE + return FALSE + if(NL_NOR) + for(var/datum/nanite_rule/rule as anything in rules) + if(rule.check_rule()) + return FALSE + if(NL_NAND) + for(var/datum/nanite_rule/rule as anything in rules) + if(!rule.check_rule()) + return TRUE + return FALSE + return TRUE + +/datum/nanite_rule/combined/copy_to(datum/nanite_program/new_program, copy_to_rules = TRUE) + var/datum/nanite_rule/combined/rule = new(new_program, copy_to_rules) + rule.op = op + for(var/datum/nanite_rule/subrule as anything in rules) + var/datum/nanite_rule/new_subrule = subrule.copy_to(new_program, FALSE) + if(new_subrule) + rule.rules += new_subrule + return rule diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 0c8ba1c7c58d8..343584355fc93 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -2116,6 +2116,7 @@ "nanite_program_hub", "nanite_programmer", "nanite_remote", + "nanite_comm_remote", "nanite_scanner", "public_nanite_chamber", "red_diag_nanites", @@ -2146,6 +2147,8 @@ "sensor_voice_nanites", "stealth_nanites", "voice_nanites", + "sensor_receiver_nanites", + "remote_signal_nanites", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500, TECHWEB_POINT_TYPE_NANITES = 500) export_price = 4000 @@ -2168,6 +2171,7 @@ "refractive_nanites", "shock_nanites", "temperature_nanites", + "dermal_toggle_nanites", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500, TECHWEB_POINT_TYPE_NANITES = 500) export_price = 5000 @@ -2191,6 +2195,8 @@ "sensor_damage_nanites", "sensor_death_nanites", "sensor_health_nanites", + "sensor_nutrition_nanites", + "sensor_blood_nanites", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500, TECHWEB_POINT_TYPE_NANITES = 500) export_price = 5000 @@ -2238,7 +2244,7 @@ id = "nanite_harmonic" tech_tier = 4 display_name = "Harmonic Nanite Programming" - description = "Nanite programs that require seamless integration between nanites and biology." + description = "Nanite programs that require seamless integration between nanites and biology. Passively increases nanite regeneration rate for all clouds upon researching." prereq_ids = list( "nanite_bio", "nanite_mesh", @@ -2253,10 +2259,39 @@ "purging_plus_nanites", "regenerative_plus_nanites", "sensor_species_nanites", + "vampire_nanites", ) - research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000, TECHWEB_POINT_TYPE_NANITES = 2000) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000, TECHWEB_POINT_TYPE_NANITES = 3000) export_price = 8000 +/datum/techweb_node/nanite_replication_protocols + id = "nanite_replication_protocols" + tech_tier = 4 + display_name = "Nanite Replication Protocols" + description = "Protocols that overwrite the default nanite replication routine to achieve more efficiency in certain circumstances." + prereq_ids = list("nanite_smart") + design_ids = list( + "factory_nanites", + "kickstart_nanites", + "offline_nanites", + "pyramid_nanites", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000, TECHWEB_POINT_TYPE_NANITES = 2500) + +/datum/techweb_node/nanite_storage_protocols + id = "nanite_storage_protocols" + tech_tier = 4 + display_name = "Nanite Storage Protocols" + description = "Protocols that overwrite the default nanite storage routine to achieve more efficiency or greater capacity." + prereq_ids = list("nanite_smart") + design_ids = list( + "free_range_nanites", + "hive_nanites", + "unsafe_storage_nanites", + "zip_nanites", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000, TECHWEB_POINT_TYPE_NANITES = 2500) + /datum/techweb_node/nanite_combat id = "nanite_military" tech_tier = 5 @@ -2273,6 +2308,7 @@ "nanite_sting_nanites", "pyro_nanites", "viral_nanites", + "armblade_nanites", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500, TECHWEB_POINT_TYPE_NANITES = 2500) export_price = 12500 @@ -2281,7 +2317,7 @@ id = "nanite_hazard" tech_tier = 5 display_name = "Hazard Nanite Programs" - description = "Extremely advanced Nanite programs with the potential of being extremely dangerous." + description = "Extremely advanced nanite programs using knowledge gained from advanced alien technology." prereq_ids = list( "alientech", "nanite_harmonic", @@ -2289,7 +2325,7 @@ design_ids = list( "mindcontrol_nanites", "mitosis_nanites", - "spreading_nanites", + "spreading_nanites" ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000, TECHWEB_POINT_TYPE_NANITES = 4000) export_price = 15000 diff --git a/icons/effects/blood.dmi b/icons/effects/blood.dmi index 0aaab7e2363729542cb7dab79d0cf8ae390ee857..0d46775b270bc00b19b8b3f58b4b5f4dbf8c19f5 100644 GIT binary patch literal 114207 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%0DUy3=f%0 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 LER5b8I!F8;huG9i diff --git a/icons/mob/inhands/weapons/melee_lefthand.dmi b/icons/mob/inhands/weapons/melee_lefthand.dmi index 14865d65f01d3982351331c4a89f88a7dd94c8fc..a86107178a34b950cd36cc387c80ef355cdc8b64 100644 GIT binary patch delta 2512 zcmZ9Nc{Cf?7ssQDCYDaoc8u6+$dAyVNN9Vl#jDN-q2P)k&m#8$*er6kmnAq}ImoHM_9f82N9J@1_N{e15|=hZ2{I&kZIiHF%b zMfw;F1`Gx_H#bu#6b^^e)6=7=sfnC>Q33z}BnU1TSAfkN%YWzaDSL`dGH6tZFsV^Z zG6FKiL|V%h4{k8q^_;_jkpTdpGs^Dx+1QfB(s2dud;%ddQF*@BvrTA ziuv4y0g*1Xa+PU`yYnjQy7C3%rX=*PNA)cV+2!_cGD^Q~gMoN6xK|j3$-Po*&L(~W zl|bHaVT%%xt}sk5Iyd?HTaWg(tEpaID9DxH--Lyd-VdcKrRw#yJH5Lq_A*e$l_IO| zTvLK=ZgebIg4?VEqsd;8`u8pdF3$FaKaTv8da*?ZY-R$U-*0T}8Cjpkv2W)z6)xA` zEL3e7P7>gBu$7y&esgJc4GrNgvIlDuqK3?=P`7A|{`{fgM>od~6Hq2t$O-zrHKlCX z8uS`z%z!LaaQ82x{)t92$*d-$m@p++bwCirD$0ZwqXc^~Tk~s-J^6?Ueq3&m*_BUY znxF3+s7+480gM0lk;=gA*F5s1a^dKQLJOx>?D(v6(D`%kEsw2^WaeofllW1@hucr~ zn_}h8YF~u&#ZlbUPQ-dJj07n%lzx!iP;46ym#jcxZfli*D?20Tm4gr^cE+^**xrr+ zMYe(jv+}fVqe^F{y@6Y9U-X{Bk~~zd`}RiM;D&1s*FHOar1FW*u2eh44EAiksyc_Y z@+|qcr(?LjpwCH(DE4>NAIv3oS$<|dX15Z_$s|hOBoKogY;it~2J zX%QTjcVS61cuDl>$pl&sUR^5NMe&Z4uvlqbJE+@?m7cYe{&ri}l+cr?^|s7^ygdJ? zn-AZu!{S0mDoA0%G1j4=o|@Dg2ZSmVilh3iUVoOt^$W!6y?6}T3|j#4;ph@_pK@$X zfh6{w^ZP`u2;8-qoTo6KvEUW?oBOZA?!*Dpg3lP-5UGzhKE|I}U~^d5vc%xm1P(P> z;-5DCy?=xdg6tN=DgB?giCqq-FU_rh!?ks`7nYPgSjlGs}IBE zM!i4M6DSb9sKF^{Xhx#sX8H(#Aid51_h|_boGY=`v6w@A3BmZ>b6_hPQ<0(|a_4o6jCK6x%grCnVnm*BNWzF2Uy!Tgqvyc8#DhTR!PB6^*8DKc*D2#^Cobo#c6*H>!*#$HHX3wW>+&wj z9A?8sY=l!=(OCNLP>B$dg>n|PSgid!d(8)o@MT6T$8Kft zY+Xcia@XF6$2~Wyl12EA5LAgFb-jAuYSR4WRAjVX{0c`Ovq4Mvpjk{b?1}G z*?3GoaKCH}P z6>{eY+^Zk@U1(j9gyC1T41CTrmov%O+x4DPP*J~DL3Md(M;9o4Lo)K6Tc+w$Qt*f9 zmrKq#Mu95h(Aj!beWVOfwm;?k{K2Xumr8S$F3Y;XLD&hYe8exH!53(?s8xYiA2+qV==w5DB;C?A)EB

!#t8>fKkD(V zZteXSdHwNKhRvoZUAl5)l|8`KHwH-iuCpt2*HE6NXu=kPZ=gzGsQy=&8AuxRt%yv zUCVpTw*5~IRx}Xub(=LevK2_u`MJN?1)YsQzFqqld z*`A&r*5+q#9v&Xv=qpZFc}(X=gSg5pVrdM9y14))_}ri}Pj(tN+Gbg zXzXumy#I_Fnuo`f2r$Q(&H?NWd~@wQmEanpKXBGyabhB2ewU#7pCoK0L7{2)q9v@y zzXD@NN?%`I5d#U*QLY|SV!jV#OX<^e(x$X_*ATFJLFXQhD)ER?5Xwh3c8QcdT~<-( zMH&+DEp0fA7{s}GHPY7~xDL3LzlmKT?O|Wm+nKG&W;6sDUTYX3Pu>{4VX%xeF*ixc@oFqK8bgNEn5%Gr9d0}Q7Dcf>-gO1(iGFoh4<;3fdIdPZ1N*C4e=!v& z4eBwP9At(b?KO5Bod{ncf9X**tPCr;mKP=LS0=sG--RTi*Zd{U5GCcV`HWhT6XBtMotDTWK2mo=Rztu(Wx6aiRm@@D>4aEWwr%)*u zaPtPAT?cDRO8Es9(50c%vZIehPyxrUtwQ=F-+is-*C9&wRe@IDOn2eomxm=|-Og`C z&^-9C#J=&siKdj+jU=LAPj7`qn?7AAWH9YQRub4U|LMW@)KN^Ug6LzI$V_v}(EHw# zKoLGa(_fN@AucEhmhorta(&gD-SvF7oXshoCjc#(Z|~Nfd{Z0c!3sS!f|h2Gl!$hSW?##v>E)e z50r}y%YwD(L2hDrgJpeY?l~591*eqj^~8QYl^Y=3x|fi@z7KYW1sWFK2?>m6 z`RZUf577G^15*XljC0H~j5$n7Y=XKl)=HXmM8u^qDKWKeC1e2>YbPd!cDq4EJQT$- zx6RVLKtCgC7VPXS&=&UT`CbzUD$z6frm8# z1gJlgbqY(w#pOkHu_WTwqAorX%N|IFW?K2dT0B5JV}v-4bQ+rq_F!LNahFUi*eQT@g_Jw5p(<>>05H^n35RgRHA^V3q7l_j)`d|AU&Ifanq;;qT!6z z$+Z0&b!Q)XnZ1HC64D_>!!W*o*`L_uw8RLd343ox_38Xvr&$ET=p}jbCXb=+y+5HN zy&A-oi+g)T;+epj<%J@ZlB?rqj-B5MrG2HeJ`t{!=S@{fq3tNlB|C-pmtX(p{8150 zJtFf=cLWdS@86P+ziUXbc8Rd{`nYZMj%9b@a-mX{v4#fdlP+KSr;PBE_c<#+_Tc2s3i!(P;UE`hxH@=Ua!#|6wYK`dgp%Rhb0Aae|tv5x_0y2RxqSAJ6ki$ znU>8~Ij4{FFG8Y1gz=sD3;0_Jo4cA4d96KM$Cl+=qdS9@=7y29T=r1xMW=i`Vd zM{d}6jCA{|6(W6V-{aPACx;_d$&Qd#n+V{n;C#c|qMG%fWIe>GPRHHQ4Z3HV@UZ>! zelz>DIdhHgu#`zgRSNZWsb89K?K1Feh{=SWtD{Lpsss%x#GR@8zk%D(i3{8L zY6d&uxWQUKb9uvBboUzbheLNAjQZo$OEp%X)=t!=lHp2}LwOx65kiY)Oa|W9Cxi>d zUm~nnwZt+?&S1jHjRh%jWN^?EH5LQmX$YC*SAlV&(OfM+<3o7^%ar?je^X}W$+k^f zgkf0fpmv6$UEUz4jnhU69G1W7pmBt9T$vLs44$w0wg5IUe-nW7MaLsydBb^e`u=7oss881dk7g;|*TKx|&HkvlTDrN6Te3bhtHt==t zHG#q_z#@?Ztm42|j`!rexBY1-&!uo@Rxi_@0L Ya!OUv=hAZR{{pqOI_PAHGxtyZ6Eo0RumAu6 diff --git a/icons/mob/inhands/weapons/melee_righthand.dmi b/icons/mob/inhands/weapons/melee_righthand.dmi index 0b12721f1e8b36968379ab0f3124073a2c571a7d..7bfe2506a467c71a56de7cd36d907cef53a05353 100644 GIT binary patch delta 2606 zcmZ9Lc{tQ<7sm%Ng~20}Z5X1IrFg6r#@3=Tlw{wx$TCXy@iUkrOXvwT7^OsZJwjxL zB>U1RlzoP=41=)^&3JUZ@AY22&;7@J-RGP?&gcG~@2L?f7EP1qs7gPUuZTn5|B&kBUcy=LPyuGJ<9A;|=k7FVRy6iUnmbDLnUEdWK1*vxa8M_K8U@Cm(VE%3;R2ax zj)?C`OC@|Uf**7MJF+0`PF}R?$`LBrxw4%&sf?V1!`5j&J_@)Hy_&JH0`2fnU~@DO z6$89%U*qEyEe?)t1<-mW$`0q{p79?~xx!4dmsw%%WM3b$!i;OdH zv4DBWHH*o~xyPBfJozae-fh_CoF8tT+O9%Vk>MX$)je6{zOHeE!&f^axwPOtM497S z)2XgD800Yq>n@Q5s*;pS+fVCq7&ak;S}iKqU*VMFJo+xRxo0aFm`uQA&yos7_LFl* zHU&abZfm2sf#h^SYXSM^m};r+;g5bCakjlMvp>1+GU4^$8$Oy6@|;o)qi0^mLx(Tg z-4CbKU2dagHU%HPm=D%aW^^<+6OTl!_bBjyxwx3OzmiOZ=Tv}-h-a5LfB&q|eG1O% z!k;ZCWthG>fA|OS9-#6G9$=omJUBcF2jGK1^?cu}f*-H8HwUuTvqLkfkQItu5D~^b9VSy=N!3*!yVw2Ujq;;!P zY(MIS4NAx*X`kmmQ7Dl3K;PssSmXg)1Sw?!+u^<{ZE+RNVO)z^ihfE^8}u( znDqmVSNcy1ZAkO~4!-}6!5tVl=xyA`z(V8+_}V3=QEo;N==M*geTIajvqu$)ifLz^ zi>_tZ56@0MmznS`kNKk>>(5!tz%DtZyB9wT3$c#nHFAb!rG+!M|4+|fh<}^1 zNLPvrWScu44$`S+xpcl>?ZRk8;6ju$s!45QH{6oC+rmic#t8*I%Pgkt^Ps1gZG$73 zt@Gt84{R2~?52aQ0r`IC@7Sh7G_C-njk~Z4|7l&LQ)EfNmY$WL#HawoRfhj zGSCAd{}KiS(l3>@cau^lM!9lz(6{^}n=CG_@1mRORJ76hE_Ppll+}z0I$tz`E<8dP zE$kK5+8<33E82ka<36~X8Bbk|lOC2NuPX&vWu#x5Fdvn<)-#{wcXC3omdu@J`tuMxvgSUB8~%{2UWM^K?#=G0HkI>swbrp(JiMTd zj`(u=cnX<=*Gc5l%OY!_=cT^6rL^Z7lW@B1V+fXHS=H1*=%7~kqo2njK4n$l6}r{# zGotdzcuU#xrun)GPK6hP&+vNp&+gH1^L380HEg-fzjAs;r*WUx&6266@LHvp-vFA2 zS%)q83Jt2-hj<^CzCo{gO`)wGTOOxQDADAuFHVG36;gDVuYl(*gu@z>uPB`Py^lu` z#sl83C=?5-sh+5|8A4=1cjz9wc*EEfomafU@%zC2gbxRNaqn-pzLJu2RYFBF!25QM z+J!v)Jme0>RrP63Zr24Z^p{j`Y7ggMy!`Qrc9k9uU9V@RdV>WpFEWa}ZNK6xwt5$> zfV-b9%Cl4LxtqFRr4Q*Dt|f*RaTK8ftD79@aUa$m+0@)R5HzYNgR1mquS$9Bi2g7v z07UcR%2-hf^F&S6auCVzEr9rWByfp(uA}XFCX4)qMC^i_JXbqDqH(H_)P*0n-=@w4 z`_6Sg^Y~bo?SurvCAY6^Xi2nZ@5ewk`Zz&k!C;6)0~Z$=RaD~MRz`$*Pl<0A zq}xlqFCZRcJ)j!7HW0>us5)Mg6oj<}K5&6g{|5(YP=SD5&?RMLxbT z_wBrur~8C(jwj=dH0sgpSBG%P0#37fLDzU>5c)2fOd~J5<=E_MSU#E23)U~s{PYH= z3Gb7;k$+X=A*3`=G|P^tK1FuleFo0DSU-;jrL3Ys;HwsF3P#r>BaQO#**o!U=4#rrLJ5uIYKF zp=b}W6MUH%bHw0CFskHNIk|xrF{gWl>xAu|e^F64kJFP}VTaU?A;w}+$K+r6%jdg@ zy~m>^NDZ9HSD8P4G*3K(mc=S1y-*b|5(umVYT^j!NZ-8xgvQ*1gR1}Yg%RW@99i?Q U@#OU7@?XnidLC&~ZsZdC4|;6$DF6Tf delta 2232 zcmY*Zc{tR27axkTXD4PtrDT1(-0VhOMAjl=!bFjEn6jJs$xx(ZOJy6EvL@<{>^spg zLb5d0!4PIJn8q-3b>HVcxA*(Uc|M=dALo0{`JCsJN>z)eoa87;Rm@kYtEU|Z4I3;}O-hYGARa3Vlk*PY zIcvEAPQ&KX_dAr2*9`R!xrSU7u6gtD_=x=yo9&$~?wodaD$l#fO7zW2`b{@VUv7lx zz%n|m;2`zElZdLbMa-<0LOU5*O>^3>#Ei)F93VM<0+x$4BI~ohYexl$%G6=Ed7df2S-#r4#wmJBE68=H4})N= zf3O0}G)X|9cP@i9i$K_3Y^e5u*?pTfjIa-)pSJDbzWBpiVjPexLVwg`#;#clrN-@I zJoZ%jY(1745u4hR`?^yeLr)KAH{L zKk~a*3HKWJQ{W2No;i8~{FK!Tv7)*oAr8#b!9h~2?anqHb~}{#7}yV5mv4uWm%P#o zzum~-3NGaM-#C88W6<;rPb)#0dkSaKXO3;6lzr>~9)X929!1igH@*Bn^Q@*#i#>TE zzR8tUj`C8QMR43ouvxV5(f7i2D)Jj26~_6zu3PE1?xCplzTX!)C~f~GNV_(kxnX=Z z%-mo{ABfM#@b7+jcd{}c;8_}g*9sER`VMG&p z?rb@xn4<5#gwqYK_wi@6FY&&c?p#x;D08<+PaeoKTAU`M)(3*t{}- zeK!#}tff&vXg>7P$u4}~gtLsD=snHx&Qhr{8uiQKfIuMQX{Xk&G6Z$@Pi5u=yUyVX}XgVY+*dq7N0}8l!ENb z36#NbnLEiRYb&~)pSue<#qw2Q{6=*qLiLi78}(e>_8fIRIaEu>|N9=KU|?L+sp}QP zXqU{Q(+zi`Z-|XBnFTEaQBS__$Jf!~D>e>vQvgQ??ou`Say9&EAbLK99?_JpNYJ6~ z?BCP9FwuNJ57s#$5X8|G$w#&bkCYiA11HikxLVVqxZ(zdfcKv?FR{>bl38)yi=u=B zbgC@QdrFkRMtl6~kVd83N_P`RBKo?@S>dUYO#1HQnc9nURGEGYVk#rd^)dE1J6d%3 zooWZ*tTmR)WVWKf@vMlGMab!9LG7Sj%4CBLweJ3Qn?uE!M*e*ft zV`nzei)A@*%P}?ihW>APaxRIateM0qr@$7Z+^2o?3^C&=Fsr{_J8>_dA?m4GZ(E~* zdWU6@+pykHW%xCr`s5#aVfA#CV_$)KmJh#b?R}GQG;tCISQH|JlD&pG@EiY)v3f#Cp!Sr!T#S36c=8$tl;i9%yL-V35Ko-}cYg-?s(Cq5?^v09 zqEg7B)RVWlz(&_yVnqs^EfjW%a4V3Zh}b>XO?xjFrZWGvWo6!~SC?ctC&4oStHUO4 zBZG_Qi5rSOYj~;zMWk*U*`Q;OO4}QA8Xu86yn4!2TGNdNsc_MgWF)u0ygh zsx`Fe652q8oF#?US8?Q@>3~3<9tzfx0y6u)0VkxA9PvGCtFO;>^(4`}uxZ+7pujG|O z!+bnYEhgR2e}jPeGyPGr@Az~jr(ol5;P~xWi|+0PRK)g)+Bo34+OzwF0t>V5g-u_E z=2$E4Dzfli?BAR`R9pTC{p_bOdyoK+Uw<_Uxc1YH+fI@?Ruikr5x*QzP)wsV3OT_u zS=gDuv@=^$b{sADL&^bCq|PkbxZxr(bD}Mq?+L8D?7`=bPffm4)s&3TBsF?bNKjL= zvy)%QPAPP2f`}kZ^+(#VdZE`xyQ1K?{Mc@#)(WrJ@%6gUzybae_YMWgC{|1UQ?+d*yx)EppNKF&I4B;VcDRH X)QZ+ff$w@hO|}4=+L*k#fQbDI3q?>B diff --git a/icons/obj/nanite.dmi b/icons/obj/nanite.dmi new file mode 100644 index 0000000000000000000000000000000000000000..7a362e2fdaad8b149b238bee7c9a1635feca404f GIT binary patch literal 604 zcmV-i0;BzjP)5KuL_|be zTU%LKSz20JU0q$ZQFzw?0004WQchCV=-0C=2J zR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5 zDK9ZEvm`Y>DJL-{Rf&r;C9|j)C~U~ZnO2mTn+jnoE4cc(fK3MgAIu!#pN!6E0002v zNklw1r%KsKqO6y~!H~B|vqJeH(gmj|vo4Dg`WO2LF0TwC5v9#RG#H|?*EG5*OSnA* zjPH<@sfwa7N!unBBTe#p`l+#erg_lIvdTNypq|(D*8$=F!8zmHK4k&R?+aM1A3=CM qJ-@(fU_G1d_HFatpN4<<-)aZ<#tauBF01 { @@ -133,9 +133,12 @@ export const NaniteCloudBackupList = (props, context) => { )); }; -export const NaniteCloudBackupDetails = (props, context) => { +export const NaniteCloudBackupDetails = (_props, context) => { const { act, data } = useBackend(context); const { current_view, disk, has_program, cloud_backup } = data; + const [combineSelection, setCombineSelection] = useLocalState(context, 'combineSelection', false); + const [toCombine, setToCombine] = useLocalState(context, 'toCombine', []); + const [combineOp, setCombineOp] = useLocalState(context, 'combineOp', 'AND'); const can_rule = (disk && disk.can_rule) || false; @@ -178,21 +181,70 @@ export const NaniteCloudBackupDetails = (props, context) => { level={2} buttons={ !!can_rule && ( -