Skip to content

Commit

Permalink
[NO GBP] Prevents Cryogeledia trapping you in stasis hell...AGAIN (tg…
Browse files Browse the repository at this point in the history
…station#89531)

## About The Pull Request

Foolishly, I thought stomachs at least respected reagent flags. They do
not.

However, if I use the previous proc and allow the stomach > bloodstream
trickling method, it will result in a different kind of stasis hell as
it will constantly reapply the stasis effects over and over again.

All in all, I'm just limiting this down to not ingest rather than
disentangling whatever is going on with stomach code.

Fixes tgstation#89525

## Why It's Good For The Game

I worked all this out but then, not testing it, I just assumed that flag
worked with stomachs and let any method of exposure work...

This is a lesson. Don't trust my gut.

## Changelog
:cl:
fix: Prevents Cryogelidia from putting you into a permanent stasis until
someone injects you with the reagent.
/:cl:
  • Loading branch information
necromanceranne authored Feb 19, 2025
1 parent f05b772 commit 41d148c
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions code/modules/reagents/chemistry/reagents/impure_reagents.dm
Original file line number Diff line number Diff line change
Expand Up @@ -84,27 +84,28 @@
/*
* Freezes the player in a block of ice, 1s = 1u
* Will be removed when the required reagent is removed too
* Does not work via INGEST method (pills, drinking)
* is processed on the dead.
*/

/datum/reagent/inverse/cryostylane
name = "Cryogelidia"
description = "Freezes the live or dead patient in a cryostasis ice block."
description = "Freezes the live or dead patient in a cryostasis ice block. Won't work if you drink it."
color = "#03dbfc"
taste_description = "your tongue freezing, shortly followed by your thoughts. Brr!"
ph = 14
chemical_flags = REAGENT_DEAD_PROCESS | REAGENT_IGNORE_STASIS | REAGENT_DONOTSPLIT
chemical_flags = REAGENT_DEAD_PROCESS | REAGENT_IGNORE_STASIS | REAGENT_DONOTSPLIT | REAGENT_UNAFFECTED_BY_METABOLISM
metabolization_rate = 1 * REM

/datum/reagent/inverse/cryostylane/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message = TRUE)
. = ..()
if(HAS_TRAIT(exposed_mob, TRAIT_RESISTCOLD))
holder.remove_reagent(type, volume)
return

exposed_mob.apply_status_effect(/datum/status_effect/frozenstasis/irresistable)
if(!exposed_mob.has_status_effect(/datum/status_effect/grouped/stasis, STASIS_CHEMICAL_EFFECT))
exposed_mob.apply_status_effect(/datum/status_effect/grouped/stasis, STASIS_CHEMICAL_EFFECT)
if(!(methods & INGEST))
exposed_mob.apply_status_effect(/datum/status_effect/frozenstasis/irresistable)
if(!exposed_mob.has_status_effect(/datum/status_effect/grouped/stasis, STASIS_CHEMICAL_EFFECT))
exposed_mob.apply_status_effect(/datum/status_effect/grouped/stasis, STASIS_CHEMICAL_EFFECT)

/datum/reagent/inverse/cryostylane/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
. = ..()
Expand Down

0 comments on commit 41d148c

Please sign in to comment.