mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-30 20:13:53 +00:00
Overdose is more dangerous, Bicaridine works again
This commit is contained in:
@@ -26,7 +26,8 @@
|
||||
var/touch_met = 0
|
||||
var/dose = 0
|
||||
var/max_dose = 0
|
||||
var/overdose = 0
|
||||
var/overdose = 0 //Amount at which overdose starts
|
||||
var/overdose_mod = 2 //Modifier to overdose damage
|
||||
var/scannable = 0 // Shows up on health analyzers.
|
||||
var/affects_dead = 0
|
||||
var/cup_icon_state = null
|
||||
@@ -60,8 +61,6 @@
|
||||
return
|
||||
if(!affects_dead && M.stat == DEAD)
|
||||
return
|
||||
if(overdose && (volume > overdose) && (location != CHEM_TOUCH))
|
||||
overdose(M, alien)
|
||||
var/removed = metabolism
|
||||
if(!mrate_static == TRUE)
|
||||
removed *= M.species.metabolic_rate
|
||||
@@ -80,6 +79,8 @@
|
||||
affect_ingest(M, alien, removed)
|
||||
if(CHEM_TOUCH)
|
||||
affect_touch(M, alien, removed)
|
||||
if(overdose && (volume > overdose) && (location != CHEM_TOUCH))
|
||||
overdose(M, alien, removed)
|
||||
remove_self(removed)
|
||||
return
|
||||
|
||||
@@ -93,9 +94,13 @@
|
||||
/datum/reagent/proc/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
return
|
||||
|
||||
/datum/reagent/proc/overdose(var/mob/living/carbon/M, var/alien) // Overdose effect. Doesn't happen instantly.
|
||||
M.adjustToxLoss(REM)
|
||||
return
|
||||
/datum/reagent/proc/overdose(var/mob/living/carbon/M, var/alien, var/removed) // Overdose effect. Doesn't happen instantly.
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
overdose_mod *= H.species.chemOD_mod
|
||||
M.adjustToxLoss(removed * overdose_mod)
|
||||
|
||||
/datum/reagent/proc/initialize_data(var/newdata) // Called when the reagent is created.
|
||||
if(!isnull(newdata))
|
||||
|
||||
@@ -32,6 +32,23 @@
|
||||
if(alien != IS_DIONA)
|
||||
M.heal_organ_damage(6 * removed, 0)
|
||||
|
||||
/datum/reagent/bicaridine/overdose(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
var/wound_heal = 1.5 * removed
|
||||
M.eye_blurry += (wound_heal)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
for(var/obj/item/organ/external/O in H.bad_external_organs)
|
||||
for(var/datum/wound/W in O.wounds)
|
||||
if(W.bleeding())
|
||||
W.damage = max(W.damage - wound_heal, 0)
|
||||
if(W.damage <= 0)
|
||||
O.wounds -= W
|
||||
if(W.internal)
|
||||
W.damage = max(W.damage - wound_heal, 0)
|
||||
if(W.damage <= 0)
|
||||
O.wounds -= W
|
||||
|
||||
/datum/reagent/kelotane
|
||||
name = "Kelotane"
|
||||
id = "kelotane"
|
||||
@@ -368,21 +385,23 @@
|
||||
metabolism = REM * 0.5
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
scannable = 1
|
||||
var/repair_strength = 3
|
||||
|
||||
/datum/reagent/myelamine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_DIONA)
|
||||
return
|
||||
M.eye_blurry += (3 * removed)
|
||||
M.eye_blurry += (repair_strength * removed)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
var/wound_heal = removed * repair_strength
|
||||
for(var/obj/item/organ/external/O in H.bad_external_organs)
|
||||
for(var/datum/wound/W in O.wounds)
|
||||
if(W.bleeding())
|
||||
W.damage = max(W.damage - removed, 0)
|
||||
W.damage = max(W.damage - wound_heal, 0)
|
||||
if(W.damage <= 0)
|
||||
O.wounds -= W
|
||||
if(W.internal)
|
||||
W.damage = max(W.damage - removed, 0)
|
||||
W.damage = max(W.damage - wound_heal, 0)
|
||||
if(W.damage <= 0)
|
||||
O.wounds -= W
|
||||
|
||||
|
||||
@@ -388,6 +388,7 @@
|
||||
color = "#000067"
|
||||
metabolism = REM * 0.5
|
||||
overdose = REAGENTS_OVERDOSE * 0.5
|
||||
overdose_mod = 5 //For that good, lethal feeling
|
||||
|
||||
/datum/reagent/chloralhydrate/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
if(alien == IS_DIONA)
|
||||
@@ -413,6 +414,11 @@
|
||||
if(effective_dose > 1 * threshold)
|
||||
M.adjustToxLoss(removed)
|
||||
|
||||
/datum/reagent/chloralhydrate/overdose(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
..()
|
||||
M.losebreath = (min(M.losebreath + 1, 10))
|
||||
M.adjustOxyLoss(removed * overdose_mod)
|
||||
|
||||
/datum/reagent/chloralhydrate/beer2 //disguised as normal beer for use by emagged brobots
|
||||
name = "Beer"
|
||||
id = "beer2"
|
||||
|
||||
Reference in New Issue
Block a user