mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-14 04:02:31 +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/toxins_mod = 1 // Toxloss modifier
|
||||||
var/radiation_mod = 1 // Radiation modifier
|
var/radiation_mod = 1 // Radiation modifier
|
||||||
var/flash_mod = 1 // Stun from blindness 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.
|
var/vision_flags = SEE_SELF // Same flags as glasses.
|
||||||
|
|
||||||
// Death vars.
|
// Death vars.
|
||||||
|
|||||||
@@ -174,6 +174,7 @@
|
|||||||
|
|
||||||
darksight = 4
|
darksight = 4
|
||||||
flash_mod = 1.2
|
flash_mod = 1.2
|
||||||
|
chemOD_mod = 0.9
|
||||||
|
|
||||||
ambiguous_genders = TRUE
|
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)
|
if(W.internal && owner.bodytemperature >= 170)
|
||||||
var/bicardose = owner.reagents.get_reagent_amount("bicaridine")
|
var/bicardose = owner.reagents.get_reagent_amount("bicaridine")
|
||||||
var/inaprovaline = owner.reagents.get_reagent_amount("inaprovaline")
|
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)
|
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.
|
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))
|
if(prob(1 * wound_update_accuracy))
|
||||||
|
|||||||
@@ -26,7 +26,8 @@
|
|||||||
var/touch_met = 0
|
var/touch_met = 0
|
||||||
var/dose = 0
|
var/dose = 0
|
||||||
var/max_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/scannable = 0 // Shows up on health analyzers.
|
||||||
var/affects_dead = 0
|
var/affects_dead = 0
|
||||||
var/cup_icon_state = null
|
var/cup_icon_state = null
|
||||||
@@ -60,8 +61,6 @@
|
|||||||
return
|
return
|
||||||
if(!affects_dead && M.stat == DEAD)
|
if(!affects_dead && M.stat == DEAD)
|
||||||
return
|
return
|
||||||
if(overdose && (volume > overdose) && (location != CHEM_TOUCH))
|
|
||||||
overdose(M, alien)
|
|
||||||
var/removed = metabolism
|
var/removed = metabolism
|
||||||
if(!mrate_static == TRUE)
|
if(!mrate_static == TRUE)
|
||||||
removed *= M.species.metabolic_rate
|
removed *= M.species.metabolic_rate
|
||||||
@@ -80,6 +79,8 @@
|
|||||||
affect_ingest(M, alien, removed)
|
affect_ingest(M, alien, removed)
|
||||||
if(CHEM_TOUCH)
|
if(CHEM_TOUCH)
|
||||||
affect_touch(M, alien, removed)
|
affect_touch(M, alien, removed)
|
||||||
|
if(overdose && (volume > overdose) && (location != CHEM_TOUCH))
|
||||||
|
overdose(M, alien, removed)
|
||||||
remove_self(removed)
|
remove_self(removed)
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -93,9 +94,13 @@
|
|||||||
/datum/reagent/proc/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
|
/datum/reagent/proc/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
|
||||||
return
|
return
|
||||||
|
|
||||||
/datum/reagent/proc/overdose(var/mob/living/carbon/M, var/alien) // Overdose effect. Doesn't happen instantly.
|
/datum/reagent/proc/overdose(var/mob/living/carbon/M, var/alien, var/removed) // Overdose effect. Doesn't happen instantly.
|
||||||
M.adjustToxLoss(REM)
|
if(alien == IS_DIONA)
|
||||||
return
|
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.
|
/datum/reagent/proc/initialize_data(var/newdata) // Called when the reagent is created.
|
||||||
if(!isnull(newdata))
|
if(!isnull(newdata))
|
||||||
|
|||||||
@@ -32,6 +32,23 @@
|
|||||||
if(alien != IS_DIONA)
|
if(alien != IS_DIONA)
|
||||||
M.heal_organ_damage(6 * removed, 0)
|
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
|
/datum/reagent/kelotane
|
||||||
name = "Kelotane"
|
name = "Kelotane"
|
||||||
id = "kelotane"
|
id = "kelotane"
|
||||||
@@ -368,21 +385,23 @@
|
|||||||
metabolism = REM * 0.5
|
metabolism = REM * 0.5
|
||||||
overdose = REAGENTS_OVERDOSE * 0.5
|
overdose = REAGENTS_OVERDOSE * 0.5
|
||||||
scannable = 1
|
scannable = 1
|
||||||
|
var/repair_strength = 3
|
||||||
|
|
||||||
/datum/reagent/myelamine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
/datum/reagent/myelamine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||||
if(alien == IS_DIONA)
|
if(alien == IS_DIONA)
|
||||||
return
|
return
|
||||||
M.eye_blurry += (3 * removed)
|
M.eye_blurry += (repair_strength * removed)
|
||||||
if(ishuman(M))
|
if(ishuman(M))
|
||||||
var/mob/living/carbon/human/H = 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/obj/item/organ/external/O in H.bad_external_organs)
|
||||||
for(var/datum/wound/W in O.wounds)
|
for(var/datum/wound/W in O.wounds)
|
||||||
if(W.bleeding())
|
if(W.bleeding())
|
||||||
W.damage = max(W.damage - removed, 0)
|
W.damage = max(W.damage - wound_heal, 0)
|
||||||
if(W.damage <= 0)
|
if(W.damage <= 0)
|
||||||
O.wounds -= W
|
O.wounds -= W
|
||||||
if(W.internal)
|
if(W.internal)
|
||||||
W.damage = max(W.damage - removed, 0)
|
W.damage = max(W.damage - wound_heal, 0)
|
||||||
if(W.damage <= 0)
|
if(W.damage <= 0)
|
||||||
O.wounds -= W
|
O.wounds -= W
|
||||||
|
|
||||||
|
|||||||
@@ -388,6 +388,7 @@
|
|||||||
color = "#000067"
|
color = "#000067"
|
||||||
metabolism = REM * 0.5
|
metabolism = REM * 0.5
|
||||||
overdose = REAGENTS_OVERDOSE * 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)
|
/datum/reagent/chloralhydrate/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||||
if(alien == IS_DIONA)
|
if(alien == IS_DIONA)
|
||||||
@@ -413,6 +414,11 @@
|
|||||||
if(effective_dose > 1 * threshold)
|
if(effective_dose > 1 * threshold)
|
||||||
M.adjustToxLoss(removed)
|
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
|
/datum/reagent/chloralhydrate/beer2 //disguised as normal beer for use by emagged brobots
|
||||||
name = "Beer"
|
name = "Beer"
|
||||||
id = "beer2"
|
id = "beer2"
|
||||||
|
|||||||
38
html/changelogs/Anewbe - Overdose.yml
Normal file
38
html/changelogs/Anewbe - Overdose.yml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
################################
|
||||||
|
# Example Changelog File
|
||||||
|
#
|
||||||
|
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
|
||||||
|
#
|
||||||
|
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
|
||||||
|
# When it is, any changes listed below will disappear.
|
||||||
|
#
|
||||||
|
# Valid Prefixes:
|
||||||
|
# bugfix
|
||||||
|
# wip (For works in progress)
|
||||||
|
# tweak
|
||||||
|
# soundadd
|
||||||
|
# sounddel
|
||||||
|
# rscadd (general adding of nice things)
|
||||||
|
# rscdel (general deleting of nice things)
|
||||||
|
# imageadd
|
||||||
|
# imagedel
|
||||||
|
# maptweak
|
||||||
|
# spellcheck (typo fixes)
|
||||||
|
# experiment
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Your name.
|
||||||
|
author: Anewbe
|
||||||
|
|
||||||
|
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
|
||||||
|
delete-after: True
|
||||||
|
|
||||||
|
# Any changes you've made. See valid prefix list above.
|
||||||
|
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
|
||||||
|
# SCREW THIS UP AND IT WON'T WORK.
|
||||||
|
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
|
||||||
|
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
|
||||||
|
changes:
|
||||||
|
- bugfix: "Bicaridine and Myelamine should now properly repair internal bleeding."
|
||||||
|
- rscadd: "Overdoses are now more dangerous."
|
||||||
|
- rscadd: "Chloral Hydrate overdoses are now even more dangerous."
|
||||||
Reference in New Issue
Block a user