mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Overdose is more dangerous, Bicaridine works again
This commit is contained in:
@@ -72,6 +72,7 @@
|
||||
var/toxins_mod = 1 // Toxloss modifier
|
||||
var/radiation_mod = 1 // Radiation modifier
|
||||
var/flash_mod = 1 // Stun from blindness modifier.
|
||||
var/chemOD_mod = 1 // Damage modifier for overdose
|
||||
var/vision_flags = SEE_SELF // Same flags as glasses.
|
||||
|
||||
// Death vars.
|
||||
|
||||
@@ -174,6 +174,7 @@
|
||||
|
||||
darksight = 4
|
||||
flash_mod = 1.2
|
||||
chemOD_mod = 0.9
|
||||
|
||||
ambiguous_genders = TRUE
|
||||
|
||||
|
||||
@@ -698,10 +698,9 @@ Note that amputating the affected organ does in fact remove the infection from t
|
||||
if(W.internal && owner.bodytemperature >= 170)
|
||||
var/bicardose = owner.reagents.get_reagent_amount("bicaridine")
|
||||
var/inaprovaline = owner.reagents.get_reagent_amount("inaprovaline")
|
||||
if(!(W.can_autoheal() || (bicardose && inaprovaline))) //bicaridine and inaprovaline stop internal wounds from growing bigger with time, unless it is so small that it is already healing
|
||||
var/myeldose = owner.reagents.get_reagent_amount("myelamine")
|
||||
if(!(W.can_autoheal() || (bicardose && inaprovaline) || myeldose)) //bicaridine and inaprovaline stop internal wounds from growing bigger with time, unless it is so small that it is already healing
|
||||
W.open_wound(0.1 * wound_update_accuracy)
|
||||
if(bicardose >= 30) //overdose of bicaridine begins healing IB
|
||||
W.damage = max(0, W.damage - 0.2)
|
||||
|
||||
owner.vessel.remove_reagent("blood", wound_update_accuracy * W.damage/40) //line should possibly be moved to handle_blood, so all the bleeding stuff is in one place.
|
||||
if(prob(1 * wound_update_accuracy))
|
||||
|
||||
@@ -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