mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-13 00:47:42 +01:00
Nanite Protocols and more Fat Programs
Restored Nanite Protocols, available through a tech node that requires the odd disk, a maint loot item. Added Adipose Conversion (-fat +nanites over time and BWOMF (-lot of fat + a a lot more of nanites) nanite programs.
This commit is contained in:
@@ -109,3 +109,53 @@
|
||||
id = "fat_adjuster_nanites"
|
||||
program_type = /datum/nanite_program/fat_adjuster
|
||||
category = list("Medical Nanites")
|
||||
|
||||
/datum/nanite_program/fat_converter
|
||||
name = "Adipose Conversion"
|
||||
desc = "Nanites learn to convert excess body mass to replicate."
|
||||
rogue_types = list(/datum/nanite_program/necrotic)
|
||||
|
||||
/datum/nanite_program/fat_converter/check_conditions()
|
||||
if(iscarbon(host_mob))
|
||||
var/mob/living/carbon/C = host_mob
|
||||
if(C.fatness_real <= 0 || nanites.nanite_volume >= nanites.max_nanites)
|
||||
return FALSE
|
||||
else
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/datum/nanite_program/fat_converter/active_effect()
|
||||
if(iscarbon(host_mob))
|
||||
var/mob/living/carbon/C = host_mob
|
||||
if(C.fatness_real > 0 && nanites.nanite_volume < nanites.max_nanites)
|
||||
nanites.adjust_nanites(src, min(round(C.fatness_real), 5))
|
||||
C.adjust_fatness(-(min(round(C.fatness_real), 5)), FATTENING_TYPE_WEIGHT_LOSS)
|
||||
|
||||
/datum/design/nanites/fat_converter
|
||||
name = "Adipose Conversion"
|
||||
desc = "The nanites use fat to replicate quickly."
|
||||
id = "fat_converter_nanites"
|
||||
program_type = /datum/nanite_program/fat_converter
|
||||
category = list("Medical Nanites")
|
||||
|
||||
/datum/nanite_program/bwomf
|
||||
name = "B.W.O.M.F." //Body Widening Operation for Mass Fattening
|
||||
desc = "Nanites remains on standy-by, massively increasing the host's mass on trigger.."
|
||||
unique = FALSE
|
||||
can_trigger = TRUE
|
||||
trigger_cost = 50
|
||||
trigger_cooldown = 50
|
||||
rogue_types = list(/datum/nanite_program/toxic)
|
||||
|
||||
/datum/nanite_program/bwomf/on_trigger(comm_message)
|
||||
if(iscarbon(host_mob))
|
||||
var/mob/living/carbon/C = host_mob
|
||||
C.adjust_fatness(100, FATTENING_TYPE_ITEM)
|
||||
to_chat(C, "<span class='warning'>[pick("Your belly expands quickly!", "Fat envelops you further!", "Lard grows all over you!")]</span>")
|
||||
|
||||
/datum/design/nanites/bwomf
|
||||
name = "B.W.O.M.F."
|
||||
desc = "Massively increase host's mass on trigger."
|
||||
id = "bwomf_nanites"
|
||||
program_type = /datum/nanite_program/bwomf
|
||||
category = list("Medical Nanites")
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
display_name = "Nutri-Tech Weapons"
|
||||
description = "Ever wanted to reach your daily caloric intake in just 5 seconds?"
|
||||
prereq_ids = list("biotech", "adv_engi")
|
||||
design_ids = list("fatoray_weak", "fatoray_cannon_weak", "alter_ray_metabolism", "alter_ray_reverser", "borg_upgrade_fatoray")
|
||||
design_ids = list("fatoray_weak", "fatoray_cannon_weak", "alter_ray_metabolism", "alter_ray_reverser", "borg_upgrade_fatoray", "bwomf_nanites")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
|
||||
boost_item_paths = list(/obj/item/gun/energy/fatoray, /obj/item/gun/energy/fatoray/cannon, /obj/item/trash/fatoray_scrap1, /obj/item/trash/fatoray_scrap2)
|
||||
export_price = 10000
|
||||
|
||||
@@ -157,3 +157,9 @@
|
||||
else
|
||||
icon_state = "sign_closed"
|
||||
desc = "A sign that reads 'closed'"
|
||||
|
||||
/obj/item/trash/odd_disk
|
||||
name = "odd disk"
|
||||
icon = 'icons/obj/module.dmi'
|
||||
icon_state = "datadisk0"
|
||||
desc = "A dusty disk, desconstruction will be needed to recover data."
|
||||
|
||||
@@ -46,3 +46,8 @@
|
||||
//GS13 DEFINES
|
||||
#define NES_FATNESS "BFI"
|
||||
#define NES_FAT_GAIN_LOSS "Loss/Gain"
|
||||
|
||||
//PROTOCOLS
|
||||
|
||||
#define NANITE_PROTOCOL_REPLICATION 1
|
||||
#define NANITE_PROTOCOL_STORAGE 2
|
||||
|
||||
@@ -113,6 +113,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
|
||||
/obj/item/storage/pill_bottle/breast_enlargement = 2,
|
||||
/obj/item/trash/fatoray_scrap1 = 1, //GS13 - added for researching fat guns
|
||||
/obj/item/trash/fatoray_scrap2 = 1, //GS13
|
||||
/obj/item/trash/odd_disk = 1, //GS13
|
||||
/obj/item/clothing/shoes/wheelys = 1,
|
||||
/obj/item/clothing/shoes/kindleKicks = 1,
|
||||
/obj/item/autosurgeon/penis = 1,
|
||||
|
||||
@@ -252,7 +252,7 @@
|
||||
nanite_volume = CLAMP(amount, 0, max_nanites)
|
||||
|
||||
/datum/component/nanites/proc/set_max_volume(datum/source, amount)
|
||||
max_nanites = max(1, max_nanites)
|
||||
max_nanites = max(1, amount)
|
||||
|
||||
/datum/component/nanites/proc/set_cloud(datum/source, amount)
|
||||
cloud_id = CLAMP(amount, 0, 100)
|
||||
|
||||
@@ -76,6 +76,7 @@
|
||||
/obj/item/trash/candy = 1,
|
||||
/obj/item/trash/fatoray_scrap1 = 1, // GS13
|
||||
/obj/item/trash/fatoray_scrap2 = 1,
|
||||
/obj/item/trash/odd_disk = 1,
|
||||
/obj/item/trash/chips = 1,
|
||||
/obj/item/reagent_containers/food/snacks/deadmouse = 1,
|
||||
/obj/item/trash/pistachios = 1,
|
||||
|
||||
@@ -525,36 +525,3 @@
|
||||
id = "sensor_nanite_volume"
|
||||
program_type = /datum/nanite_program/sensor/nanite_volume
|
||||
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/tinker
|
||||
name = "Tinker Protocol"
|
||||
desc = "Replication Protocol: the nanites learn to use metallic material in the host's bloodstream to speed up the replication process."
|
||||
id = "tinker_nanites"
|
||||
program_type = /datum/nanite_program/protocol/tinker
|
||||
category = list("Protocols_Nanites")
|
||||
|
||||
/datum/design/nanites/offline
|
||||
name = "Offline Production 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")
|
||||
*/
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
list(name = "Augmentation Nanites"),
|
||||
list(name = "Suppression Nanites"),
|
||||
list(name = "Weaponized Nanites"),
|
||||
//list(name = "Protocols") B.E.P.I.S Content, which we dont have
|
||||
list(name = "Protocols")
|
||||
)
|
||||
|
||||
/obj/machinery/nanite_program_hub/Initialize()
|
||||
|
||||
@@ -105,3 +105,66 @@
|
||||
|
||||
/datum/nanite_program/protocol/offline/active_effect()
|
||||
nanites.adjust_nanites(null, boost)
|
||||
|
||||
/datum/nanite_program/protocol/hive
|
||||
name = "Hive Protocol"
|
||||
desc = "The nanites use a more efficient grid arrangment for volume storage, increasing maximum volume in a host by 250."
|
||||
rogue_types = list(/datum/nanite_program/skin_decay)
|
||||
protocol_class = NANITE_PROTOCOL_STORAGE
|
||||
|
||||
/datum/nanite_program/protocol/hive/enable_passive_effect()
|
||||
nanites.set_max_volume(src, nanites.max_nanites + 250)
|
||||
..()
|
||||
|
||||
/datum/nanite_program/protocol/hive/disable_passive_effect()
|
||||
nanites.set_max_volume(src, nanites.max_nanites - 250)
|
||||
..()
|
||||
|
||||
////////////////////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/tinker
|
||||
name = "Tinker Protocol"
|
||||
desc = "Replication Protocol: the nanites learn to use metallic material in the host's bloodstream to speed up the replication process."
|
||||
id = "tinker_nanites"
|
||||
program_type = /datum/nanite_program/protocol/tinker
|
||||
category = list("Protocols_Nanites")
|
||||
|
||||
/datum/design/nanites/offline
|
||||
name = "Offline Production 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: safely increases the maximum volume of nanites in the host by 250."
|
||||
id = "hive_nanites"
|
||||
program_type = /datum/nanite_program/protocol/hive
|
||||
category = list("Protocols_Nanites")
|
||||
|
||||
/datum/techweb_node/nanite_protocol
|
||||
id = "nanite_protocol"
|
||||
display_name = "Nanite Protocols"
|
||||
description = "Advanced nanite protocols that massively increase their efficiency."
|
||||
prereq_ids = list("nanite_synaptic", "nanite_harmonic")
|
||||
design_ids = list("kickstart_nanites","factory_nanites","tinker_nanites", "offline_nanites", "hive_nanites")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000)
|
||||
export_price = 15000
|
||||
boost_item_paths = list(/obj/item/trash/odd_disk)
|
||||
hidden = TRUE
|
||||
|
||||
@@ -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", "fat_sensor_nanites", "fat_adjuster_nanites")
|
||||
"sensor_crit_nanites","sensor_death_nanites", "sensor_health_nanites", "sensor_damage_nanites", "fat_sensor_nanites", "fat_converter_nanites", "fat_adjuster_nanites")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
export_price = 5000
|
||||
|
||||
|
||||
@@ -2784,6 +2784,7 @@
|
||||
#include "code\modules\research\nanites\nanite_program_hub.dm"
|
||||
#include "code\modules\research\nanites\nanite_programmer.dm"
|
||||
#include "code\modules\research\nanites\nanite_programs.dm"
|
||||
#include "code\modules\research\nanites\nanite_programs\protocols.dm"
|
||||
#include "code\modules\research\nanites\nanite_remote.dm"
|
||||
#include "code\modules\research\nanites\program_disks.dm"
|
||||
#include "code\modules\research\nanites\public_chamber.dm"
|
||||
|
||||
Reference in New Issue
Block a user