diff --git a/code/modules/reagents/reagents/toxin.dm b/code/modules/reagents/reagents/toxin.dm index 15573958fd8d2..9c1889e7919fa 100644 --- a/code/modules/reagents/reagents/toxin.dm +++ b/code/modules/reagents/reagents/toxin.dm @@ -503,6 +503,12 @@ if(is_type_in_typecache(current_reagent, GLOB.defiler_toxins_typecache_list)) //For each xeno toxin reagent, double the strength multiplier slowdown_multiplier *= 2 //Each other Defiler toxin increases the multiplier by 2x; 2x if we have 1 combo chem, 4x if we have 2 + //RUTGMC EDIT + if(L.has_status_effect(STATUS_EFFECT_INTOXICATED)) + var/datum/status_effect/stacking/intoxicated/debuff = L.has_status_effect(STATUS_EFFECT_INTOXICATED) + if(debuff.stacks > 10) + slowdown_multiplier *= 2 + switch(slowdown_multiplier) //Description varies in severity and probability with the multiplier if(0 to 1) if(prob(10)) @@ -549,6 +555,12 @@ if(is_type_in_typecache(current_reagent, GLOB.defiler_toxins_typecache_list)) //For each xeno toxin reagent, double the strength multiplier tox_cap_multiplier *= 2 //Each other Defiler toxin doubles the multiplier + //RUTGMC EDIT + if(L.has_status_effect(STATUS_EFFECT_INTOXICATED)) + var/datum/status_effect/stacking/intoxicated/debuff = L.has_status_effect(STATUS_EFFECT_INTOXICATED) + if(debuff.stacks > 10) + tox_cap_multiplier *= 2 + var/tox_loss = L.getToxLoss() if(tox_loss > DEFILER_TRANSVITOX_CAP) //If toxin levels are already at their cap, cancel out return ..() @@ -572,6 +584,12 @@ if(is_type_in_typecache(current_reagent, GLOB.defiler_toxins_typecache_list)) //For each xeno toxin reagent, double the strength multiplier tox_cap_multiplier *= 2 //Each other Defiler toxin doubles the multiplier + //RUTGMC EDIT + if(L.has_status_effect(STATUS_EFFECT_INTOXICATED)) + var/datum/status_effect/stacking/intoxicated/debuff = L.has_status_effect(STATUS_EFFECT_INTOXICATED) + if(debuff.stacks > 10) + tox_cap_multiplier *= 2 + var/tox_loss = L.getToxLoss() if(tox_loss > DEFILER_TRANSVITOX_CAP) //If toxin levels are already at their cap, cancel out return diff --git a/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/defiler/abilities_defiler.dm b/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/defiler/abilities_defiler.dm index 3144fcbe3bbd6..8ffbede3220b6 100644 --- a/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/defiler/abilities_defiler.dm +++ b/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/defiler/abilities_defiler.dm @@ -5,3 +5,37 @@ /datum/action/ability/activable/xeno/inject_egg_neurogas ability_cost = 80 keybind_flags = null + +///Called when we slash while reagent slash is active +/datum/action/ability/xeno_action/reagent_slash/reagent_slash(datum/source, mob/living/target, damage, list/damage_mod, list/armor_mod) + var/mob/living/carbon/xenomorph/xeno_owner = owner + if(xeno_owner.selected_reagent == /datum/reagent/toxin/acid) + + if(!target?.can_sting()) //We only care about targets that we can actually sting + return + + var/mob/living/carbon/xeno_target = target + + if(HAS_TRAIT(xeno_target, TRAIT_INTOXICATION_IMMUNE)) + xeno_target.balloon_alert(xeno_owner, "Immune to Intoxication") + return + + playsound(xeno_target, 'sound/effects/spray3.ogg', 20, TRUE) + if(xeno_target.has_status_effect(STATUS_EFFECT_INTOXICATED)) + var/datum/status_effect/stacking/intoxicated/debuff = xeno_target.has_status_effect(STATUS_EFFECT_INTOXICATED) + debuff.add_stacks(SENTINEL_TOXIC_SLASH_STACKS_PER + xeno_owner.xeno_caste.additional_stacks) + else + xeno_target.apply_status_effect(STATUS_EFFECT_INTOXICATED, SENTINEL_TOXIC_SLASH_STACKS_PER + xeno_owner.xeno_caste.additional_stacks) + + GLOB.round_statistics.defiler_reagent_slashes++ //Statistics + SSblackbox.record_feedback("tally", "round_statistics", 1, "defiler_reagent_slashes") + + reagent_slash_count-- //Decrement the toxic slash count + + if(!reagent_slash_count) //Deactivate if we have no reagent slashes remaining + reagent_slash_deactivate(xeno_owner) + + return + + return ..() + diff --git a/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/defiler/castedatum_defiler.dm b/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/defiler/castedatum_defiler.dm index d836773073047..6d6c689a5e8b1 100644 --- a/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/defiler/castedatum_defiler.dm +++ b/modular_RUtgmc/code/modules/mob/living/carbon/xenomorph/castes/defiler/castedatum_defiler.dm @@ -9,3 +9,4 @@ // *** Defense *** // soft_armor = list(MELEE = 55, BULLET = 55, LASER = 55, ENERGY = 55, BOMB = 30, BIO = 40, FIRE = 50, ACID = 40) + additional_stacks = 2