diff --git a/modular_meta/features/novichok/code/bottle.dm b/modular_meta/features/novichok/code/bottle.dm new file mode 100644 index 000000000000..f28e2e407fd0 --- /dev/null +++ b/modular_meta/features/novichok/code/bottle.dm @@ -0,0 +1,5 @@ +/obj/item/reagent_containers/cup/bottle/novichok + name = "novichok bottle" + desc = "A bottle full of an odd liquid, that seemingly has no color, as well as any sort of distinctive smell" + list_reagents = list(/datum/reagent/toxin/novichok = 30) + diff --git a/modular_meta/features/novichok/code/novichok_reagent.dm b/modular_meta/features/novichok/code/novichok_reagent.dm new file mode 100644 index 000000000000..281c0709cc7a --- /dev/null +++ b/modular_meta/features/novichok/code/novichok_reagent.dm @@ -0,0 +1,37 @@ +/datum/reagent/toxin/novichok + name = "Novichok" + description = "A lethal nerve agent." + color = "#D9D9D9" + toxpwr = 2 + metabolization_rate = 0.3 * REAGENTS_METABOLISM + +/datum/reagent/toxin/novichok/proc/pick_paralyzed_limb() + return pick(TRAIT_PARALYSIS_L_ARM, TRAIT_PARALYSIS_R_ARM, TRAIT_PARALYSIS_R_LEG, TRAIT_PARALYSIS_L_LEG) + +/datum/reagent/toxin/novichok/on_mob_life(mob/living/carbon/M, seconds_per_tick, times_fired) + . = ..() + var/need_update + if(times_fired % 3 == 0) + need_update += M.adjustOxyLoss(12, updating_health = TRUE) + need_update += M.adjustOrganLoss(ORGAN_SLOT_HEART, 3 * REM * seconds_per_tick) + need_update += M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3 * REM * seconds_per_tick) + if(times_fired % 30 == 0 && times_fired > 0) + if(ishuman(M) && !M.undergoing_cardiac_arrest() && M.can_heartattack()) + M.set_heartattack(TRUE) + if(M.stat == CONSCIOUS) + M.visible_message(span_userdanger("[M] clutches at [M.p_their()] chest as if [M.p_their()] heart stopped!")) + if(SPT_PROB(10, seconds_per_tick)) + var/paralyzed_limb = pick_paralyzed_limb() + ADD_TRAIT(M, paralyzed_limb, type) + need_update += M.adjustStaminaLoss(10 * REM * seconds_per_tick, updating_stamina = FALSE) + if(need_update) + return UPDATE_MOB_HEALTH + +/datum/reagent/toxin/novichok/on_mob_end_metabolize(mob/living/carbon/M) + . = ..() + if(!ishuman(M)) + return + REMOVE_TRAIT(M, TRAIT_PARALYSIS_L_ARM, type) + REMOVE_TRAIT(M, TRAIT_PARALYSIS_R_ARM, type) + REMOVE_TRAIT(M, TRAIT_PARALYSIS_L_LEG, type) + REMOVE_TRAIT(M, TRAIT_PARALYSIS_R_LEG, type) \ No newline at end of file diff --git a/modular_meta/features/novichok/code/poison_kit.dm b/modular_meta/features/novichok/code/poison_kit.dm new file mode 100644 index 000000000000..63713913eecb --- /dev/null +++ b/modular_meta/features/novichok/code/poison_kit.dm @@ -0,0 +1,5 @@ + +/obj/item/storage/box/syndie_kit/chemical/PopulateContents() + .=..() + new /obj/item/reagent_containers/cup/bottle/novichok(src) + diff --git a/modular_meta/features/novichok/includes.dm b/modular_meta/features/novichok/includes.dm new file mode 100644 index 000000000000..8018710ba6d0 --- /dev/null +++ b/modular_meta/features/novichok/includes.dm @@ -0,0 +1,11 @@ +#include "code\novichok_reagent.dm" +#include "code\poison_kit.dm" +#include "code\bottle.dm" + +/datum/modpack/novichok + id = "novichok" + name = "Новичок" + group = "Features" + desc = "Добавляет яд из СССР" + author = "DarkPush" + diff --git a/modular_meta/main_modular_include.dm b/modular_meta/main_modular_include.dm index b4fbff4a3fa3..03b4bd5653c1 100644 --- a/modular_meta/main_modular_include.dm +++ b/modular_meta/main_modular_include.dm @@ -37,6 +37,7 @@ #include "features\telescience\includes.dm" #include "features\deathmatch\includes.dm" #include "features\countdown_antimov_sfx\includes.dm" +#include "features\novichok\includes.dm" /* --- Reverts --- */