Skip to content
This repository has been archived by the owner on Aug 21, 2024. It is now read-only.

Big defiler and his little friend sentinel #643

Merged
merged 2 commits into from
Jun 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions code/modules/reagents/reagents/toxin.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down Expand Up @@ -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 ..()
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 ..()

Original file line number Diff line number Diff line change
Expand Up @@ -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
Loading