mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-26 21:49:11 +01:00
Patch fix, Neurotoxins, and Paralysis (#18853)
* Makes zombie powder and lich powder somewhat more useful Also makes the scanners act mostly the same with fakedeath * Makes patches actually apply via touch I killed myself during testing with bicaridaze * Make things respect fakedeath * Some more fixes * Makes paralysis apply in more places Also makes paralysis no longer make you unable to see emotes. Makes it so you can not /me, but you can /subtle while paralyzed * Adds another method for zombie powder mix
This commit is contained in:
@@ -397,6 +397,12 @@
|
||||
required_reagents = list(REAGENT_ID_CARPOTOXIN = 5, REAGENT_ID_STOXIN = 5, REAGENT_ID_COPPER = 5)
|
||||
result_amount = 2
|
||||
|
||||
/decl/chemical_reaction/instant/zombiepowder/alt
|
||||
name = REAGENT_ZOMBIEPOWDER + "_alternative_mix"
|
||||
id = REAGENT_ID_ZOMBIEPOWDER + "_alternative_mix"
|
||||
required_reagents = list(REAGENT_ID_POTASSIUMCHLOROPHORIDE = 5, REAGENT_ID_STOXIN = 5, REAGENT_ID_CHLORALHYDRATE = 5, REAGENT_ID_MERCURY = 5)
|
||||
result_amount = 2
|
||||
|
||||
/decl/chemical_reaction/instant/carpotoxin
|
||||
name = REAGENT_CARPOTOXIN
|
||||
id = REAGENT_ID_CARPOTOXIN
|
||||
|
||||
@@ -87,3 +87,9 @@
|
||||
desc = "A measuring cup."
|
||||
icon_state = "measure_cup"
|
||||
item_state = "measure_cup"
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/lichpowder
|
||||
prefill = list(REAGENT_ID_LICHPOWDER = 50)
|
||||
|
||||
/obj/item/reagent_containers/glass/beaker/zombiepowder
|
||||
prefill = list(REAGENT_ID_ZOMBIEPOWDER = 50)
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
to_chat(H, span_notice("\The [src] is placed on your [affecting]."))
|
||||
M.drop_from_inventory(src) //icon update
|
||||
if(reagents.total_volume)
|
||||
reagents.trans_to_mob(M, reagents.total_volume, CHEM_BLOOD) //CHEM_TOUCH
|
||||
reagents.trans_to_mob(M, reagents.total_volume, CHEM_TOUCH)
|
||||
qdel(src)
|
||||
return 1
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
M.drop_from_inventory(src) //icon update
|
||||
|
||||
if(reagents.total_volume)
|
||||
reagents.trans_to_mob(M, reagents.total_volume, CHEM_BLOOD) //CHEM_TOUCH
|
||||
reagents.trans_to_mob(M, reagents.total_volume, CHEM_TOUCH) //CHEM_TOUCH
|
||||
qdel(src)
|
||||
|
||||
return 1
|
||||
|
||||
@@ -195,6 +195,7 @@
|
||||
return
|
||||
|
||||
/datum/reagent/proc/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
M.bloodstr.add_reagent(id, removed * 0.25) //Medications that are dermal compatible use affect_touch. Those that aren't apply the reagent to the bloodstream at 25% efficiency.
|
||||
return
|
||||
|
||||
/datum/reagent/proc/overdose(var/mob/living/carbon/M, var/alien, var/removed) // Overdose effect.
|
||||
|
||||
@@ -1289,7 +1289,6 @@
|
||||
affect_blood(M, alien, removed * 0.8)
|
||||
|
||||
/datum/reagent/spacomycaze/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
if(alien == IS_SLIME)
|
||||
if(volume <= 0.1 && data != -1)
|
||||
data = -1
|
||||
|
||||
@@ -353,15 +353,12 @@
|
||||
|
||||
// Same as if you boop it wrong. It touches you, you die
|
||||
/datum/reagent/supermatter/affect_touch(mob/living/carbon/M, alien, removed)
|
||||
. = ..()
|
||||
M.ash()
|
||||
|
||||
/datum/reagent/supermatter/affect_ingest(mob/living/carbon/M, alien, removed)
|
||||
. = ..()
|
||||
M.ash()
|
||||
|
||||
/datum/reagent/supermatter/affect_blood(mob/living/carbon/M, alien, removed)
|
||||
. = ..()
|
||||
M.ash()
|
||||
|
||||
|
||||
|
||||
@@ -364,6 +364,7 @@
|
||||
metabolism = REM
|
||||
strength = 3
|
||||
mrate_static = TRUE
|
||||
scannable = FALSE
|
||||
supply_conversion_value = REFINERYEXPORT_VALUE_HIGHREFINED
|
||||
industrial_use = REFINERYEXPORT_REASON_MEDSCI
|
||||
|
||||
@@ -371,10 +372,12 @@
|
||||
..()
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
if(!(M.status_flags & FAKEDEATH))
|
||||
M.emote("deathgasp")
|
||||
M.status_flags |= FAKEDEATH
|
||||
M.adjustOxyLoss(3 * removed)
|
||||
M.Weaken(10)
|
||||
M.adjustOxyLoss(1 * removed)
|
||||
M.silent = max(M.silent, 10)
|
||||
M.paralysis = max(M.paralysis, 10)
|
||||
M.tod = stationtime2text()
|
||||
|
||||
/datum/reagent/toxin/zombiepowder/Destroy()
|
||||
@@ -383,32 +386,33 @@
|
||||
M.status_flags &= ~FAKEDEATH
|
||||
return ..()
|
||||
|
||||
/datum/reagent/toxin/lichpowder
|
||||
/datum/reagent/lichpowder
|
||||
name = REAGENT_LICHPOWDER
|
||||
id = REAGENT_ID_LICHPOWDER
|
||||
description = "A stablized nerve agent that puts the subject into a strange state of un-death."
|
||||
reagent_state = SOLID
|
||||
color = "#666666"
|
||||
metabolism = REM * 0.75
|
||||
strength = 2
|
||||
mrate_static = TRUE
|
||||
scannable = FALSE
|
||||
supply_conversion_value = REFINERYEXPORT_VALUE_MASSINDUSTRY
|
||||
industrial_use = REFINERYEXPORT_REASON_MEDSCI
|
||||
|
||||
/datum/reagent/toxin/lichpowder/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
/datum/reagent/lichpowder/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
if(!(M.status_flags & FAKEDEATH))
|
||||
M.emote("deathgasp")
|
||||
M.status_flags |= FAKEDEATH
|
||||
M.adjustOxyLoss(1 * removed)
|
||||
M.silent = max(M.silent, 10)
|
||||
M.paralysis = max(M.paralysis, 10)
|
||||
M.tod = stationtime2text()
|
||||
|
||||
if(prob(1))
|
||||
if(prob(0.1))
|
||||
M.visible_message("[M] wheezes.", "You wheeze sharply... it's cold.")
|
||||
M.bodytemperature = max(M.bodytemperature - 10 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C - 10)
|
||||
|
||||
/datum/reagent/toxin/lichpowder/Destroy()
|
||||
/datum/reagent/lichpowder/Destroy()
|
||||
if(holder && holder.my_atom && ismob(holder.my_atom))
|
||||
var/mob/M = holder.my_atom
|
||||
M.status_flags &= ~FAKEDEATH
|
||||
|
||||
Reference in New Issue
Block a user