//Programs that buff the host in generally passive ways. /datum/nanite_program/nervous name = "Nerve Support" desc = "The nanites act as a secondary nervous system, reducing the amount of time the host is stunned." use_rate = 1.5 rogue_types = list(/datum/nanite_program/nerve_decay) /datum/nanite_program/nervous/enable_passive_effect() . = ..() if(ishuman(host_mob)) var/mob/living/carbon/human/H = host_mob H.physiology.stun_mod *= 0.5 /datum/nanite_program/nervous/disable_passive_effect() . = ..() if(ishuman(host_mob)) var/mob/living/carbon/human/H = host_mob H.physiology.stun_mod *= 2 /datum/nanite_program/triggered/adrenaline name = "Adrenaline Burst" desc = "The nanites cause a burst of adrenaline when triggered, waking the host from stuns and temporarily increasing their speed." trigger_cost = 25 trigger_cooldown = 1200 rogue_types = list(/datum/nanite_program/toxic, /datum/nanite_program/nerve_decay) /datum/nanite_program/triggered/adrenaline/trigger() if(!..()) return to_chat(host_mob, "You feel a sudden surge of energy!") host_mob.SetStun(0) host_mob.SetKnockdown(0) host_mob.SetUnconscious(0) host_mob.adjustStaminaLoss(-10) //stimulants give stamina heal now host_mob.lying = 0 host_mob.update_canmove() host_mob.reagents.add_reagent(/datum/reagent/medicine/stimulants, 1.5) /datum/nanite_program/hardening name = "Dermal Hardening" desc = "The nanites form a mesh under the host's skin, protecting them from melee and bullet impacts." use_rate = 0.5 rogue_types = list(/datum/nanite_program/skin_decay) //TODO on_hit effect that turns skin grey for a moment /datum/nanite_program/hardening/enable_passive_effect() . = ..() if(ishuman(host_mob)) var/mob/living/carbon/human/H = host_mob H.physiology.armor.melee += 35 H.physiology.armor.bullet += 35 /datum/nanite_program/hardening/disable_passive_effect() . = ..() if(ishuman(host_mob)) var/mob/living/carbon/human/H = host_mob H.physiology.armor.melee -= 35 H.physiology.armor.bullet -= 35 /datum/nanite_program/refractive name = "Dermal Refractive Surface" desc = "The nanites form a membrane above the host's skin, reducing the effect of laser and energy impacts." use_rate = 0.50 rogue_types = list(/datum/nanite_program/skin_decay) /datum/nanite_program/refractive/enable_passive_effect() . = ..() if(ishuman(host_mob)) var/mob/living/carbon/human/H = host_mob H.physiology.armor.laser += 35 H.physiology.armor.energy += 35 /datum/nanite_program/refractive/disable_passive_effect() . = ..() if(ishuman(host_mob)) var/mob/living/carbon/human/H = host_mob H.physiology.armor.laser -= 35 H.physiology.armor.energy -= 35 /datum/nanite_program/coagulating name = "Rapid Coagulation" desc = "The nanites induce rapid coagulation when the host is wounded, dramatically reducing bleeding rate." use_rate = 0.10 rogue_types = list(/datum/nanite_program/suffocating) /datum/nanite_program/coagulating/enable_passive_effect() . = ..() if(ishuman(host_mob)) var/mob/living/carbon/human/H = host_mob H.physiology.bleed_mod *= 0.1 /datum/nanite_program/coagulating/disable_passive_effect() . = ..() if(ishuman(host_mob)) var/mob/living/carbon/human/H = host_mob H.physiology.bleed_mod *= 10 /datum/nanite_program/conductive name = "Electric Conduction" desc = "The nanites act as a grounding rod for electric shocks, protecting the host. Shocks can still damage the nanites themselves." use_rate = 0.20 program_flags = NANITE_SHOCK_IMMUNE rogue_types = list(/datum/nanite_program/nerve_decay) /datum/nanite_program/conductive/enable_passive_effect() . = ..() ADD_TRAIT(host_mob, TRAIT_SHOCKIMMUNE, "nanites") /datum/nanite_program/conductive/disable_passive_effect() . = ..() REMOVE_TRAIT(host_mob, TRAIT_SHOCKIMMUNE, "nanites") /datum/nanite_program/mindshield name = "Mental Barrier" desc = "The nanites form a protective membrane around the host's brain, shielding them from abnormal influences while they're active." use_rate = 0.40 rogue_types = list(/datum/nanite_program/brain_decay, /datum/nanite_program/brain_misfire) /datum/nanite_program/mindshield/enable_passive_effect() . = ..() if(!host_mob.mind.has_antag_datum(/datum/antagonist/rev)) //won't work if on a rev, to avoid having implanted revs ADD_TRAIT(host_mob, TRAIT_MINDSHIELD, "nanites") host_mob.sec_hud_set_implants() /datum/nanite_program/mindshield/disable_passive_effect() . = ..() REMOVE_TRAIT(host_mob, TRAIT_MINDSHIELD, "nanites") host_mob.sec_hud_set_implants()