mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-17 02:54:44 +01:00
Merge remote-tracking branch 'tgstation/master' into upstream-2025-11-29
# Conflicts: # _maps/RandomRuins/SpaceRuins/derelict_sulaco.dmm # _maps/RandomRuins/SpaceRuins/garbagetruck2.dmm # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # _maps/map_files/tramstation/tramstation.dmm # code/_onclick/hud/new_player.dm # code/datums/components/squashable.dm # code/datums/diseases/advance/symptoms/heal.dm # code/datums/diseases/chronic_illness.dm # code/datums/status_effects/buffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/stamcrit.dm # code/game/machinery/computer/crew.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/wall_mounted.dm # code/game/turfs/closed/indestructible.dm # code/modules/admin/view_variables/filterrific.dm # code/modules/antagonists/heretic/influences.dm # code/modules/cargo/orderconsole.dm # code/modules/client/preferences.dm # code/modules/events/space_vines/vine_mutations.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/carbon/human/death.dm # code/modules/mob/living/carbon/human/species_types/jellypeople.dm # code/modules/mob/living/damage_procs.dm # code/modules/mob/living/living.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mob_spawn/mob_spawn.dm # code/modules/projectiles/ammunition/energy/laser.dm # code/modules/projectiles/guns/ballistic/launchers.dm # code/modules/projectiles/guns/energy/laser.dm # code/modules/reagents/chemistry/machinery/chem_dispenser.dm # code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/medicine_reagents.dm # code/modules/surgery/healing.dm # code/modules/unit_tests/designs.dm # icons/mob/inhands/items_lefthand.dmi # icons/mob/inhands/items_righthand.dmi # tgui/packages/tgui/interfaces/ChemDispenser.tsx
This commit is contained in:
@@ -373,10 +373,9 @@
|
||||
total_step_added += step_add
|
||||
|
||||
#ifdef REAGENTS_TESTING //Kept in so that people who want to write fermireactions can contact me with this log so I can help them
|
||||
if(GLOB.Debug2) //I want my spans for my sanity
|
||||
message_admins(span_green("Reaction step active for:[reaction.type]"))
|
||||
message_admins(span_notice("|Reaction conditions| Temp: [holder.chem_temp], pH: [holder.ph], reactions: [length(holder.reaction_list)], awaiting reactions: [length(holder.failed_but_capable_reactions)], no. reagents:[length(holder.reagent_list)], no. prev reagents: [length(holder.previous_reagent_list)]"))
|
||||
message_admins(span_warning("Reaction vars: PreReacted:[reacted_vol] of [step_target_vol] of total [target_vol]. delta_t [delta_t], multiplier [multiplier], delta_chem_factor [delta_chem_factor] Pfactor [product_ratio], purity of [purity] from a delta_ph of [delta_ph]. DeltaTime: [seconds_per_tick]"))
|
||||
debug_admins(span_green("Reaction step active for:[reaction.type]"))
|
||||
debug_admins(span_notice("|Reaction conditions| Temp: [holder.chem_temp], pH: [holder.ph], reactions: [length(holder.reaction_list)], awaiting reactions: [length(holder.failed_but_capable_reactions)], no. reagents:[length(holder.reagent_list)], no. prev reagents: [length(holder.previous_reagent_list)]"))
|
||||
debug_admins(span_warning("Reaction vars: PreReacted:[reacted_vol] of [step_target_vol] of total [target_vol]. delta_t [delta_t], multiplier [multiplier], delta_chem_factor [delta_chem_factor] Pfactor [product_ratio], purity of [purity] from a delta_ph of [delta_ph]. DeltaTime: [seconds_per_tick]"))
|
||||
#endif
|
||||
|
||||
//Apply thermal output of reaction to beaker
|
||||
|
||||
@@ -257,27 +257,8 @@
|
||||
//Use GLOB list - saves processing
|
||||
data["master_reaction_list"] = GLOB.chemical_reactions_results_lookup_list
|
||||
data["bitflags"] = list()
|
||||
data["bitflags"]["BRUTE"] = REACTION_TAG_BRUTE
|
||||
data["bitflags"]["BURN"] = REACTION_TAG_BURN
|
||||
data["bitflags"]["TOXIN"] = REACTION_TAG_TOXIN
|
||||
data["bitflags"]["OXY"] = REACTION_TAG_OXY
|
||||
data["bitflags"]["HEALING"] = REACTION_TAG_HEALING
|
||||
data["bitflags"]["DAMAGING"] = REACTION_TAG_DAMAGING
|
||||
data["bitflags"]["EXPLOSIVE"] = REACTION_TAG_EXPLOSIVE
|
||||
data["bitflags"]["OTHER"] = REACTION_TAG_OTHER
|
||||
data["bitflags"]["DANGEROUS"] = REACTION_TAG_DANGEROUS
|
||||
data["bitflags"]["EASY"] = REACTION_TAG_EASY
|
||||
data["bitflags"]["MODERATE"] = REACTION_TAG_MODERATE
|
||||
data["bitflags"]["HARD"] = REACTION_TAG_HARD
|
||||
data["bitflags"]["ORGAN"] = REACTION_TAG_ORGAN
|
||||
data["bitflags"]["DRINK"] = REACTION_TAG_DRINK
|
||||
data["bitflags"]["FOOD"] = REACTION_TAG_FOOD
|
||||
data["bitflags"]["SLIME"] = REACTION_TAG_SLIME
|
||||
data["bitflags"]["DRUG"] = REACTION_TAG_DRUG
|
||||
data["bitflags"]["UNIQUE"] = REACTION_TAG_UNIQUE
|
||||
data["bitflags"]["CHEMICAL"] = REACTION_TAG_CHEMICAL
|
||||
data["bitflags"]["PLANT"] = REACTION_TAG_PLANT
|
||||
data["bitflags"]["COMPETITIVE"] = REACTION_TAG_COMPETITIVE
|
||||
for(var/readable_flag, real_flag in REACTION_TAG_READABLE)
|
||||
data["bitflags"][readable_flag] = real_flag
|
||||
|
||||
return data
|
||||
|
||||
@@ -407,5 +388,12 @@
|
||||
if("toggle_tag_competitive")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_COMPETITIVE
|
||||
return TRUE
|
||||
if("toggle_tag_component")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_COMPONENT
|
||||
return TRUE
|
||||
if("toggle_tag_active")
|
||||
ui_tags_selected = ui_tags_selected ^ REACTION_TAG_ACTIVE
|
||||
return TRUE
|
||||
|
||||
if("update_ui")
|
||||
return TRUE
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
/// If the UI has the pH meter shown
|
||||
var/show_ph = TRUE
|
||||
/// The overlay used to display the beaker on the machine
|
||||
var/mutable_appearance/beaker_overlay
|
||||
VAR_PRIVATE/mutable_appearance/beaker_overlay
|
||||
/// Icon to display when the machine is powered
|
||||
var/working_state = "dispenser_working"
|
||||
/// Icon to display when the machine is not powered
|
||||
@@ -47,9 +47,14 @@
|
||||
/// Starting purity of the created reagents
|
||||
var/base_reagent_purity = 1
|
||||
/// Records the reagents dispensed by the user if this list is not null
|
||||
var/list/recording_recipe
|
||||
VAR_PRIVATE/list/recording_recipe
|
||||
/// Saves all the recipes recorded by the machine
|
||||
var/list/saved_recipes = list()
|
||||
VAR_PRIVATE/list/saved_recipes = list()
|
||||
|
||||
/// Filters out all reactions that don't have any of these tags from the reaction list
|
||||
var/shown_reaction_tags = DAMAGE_HEALING_REACTION_TAGS | MEDICATION_REACTION_TAGS | CHEMIST_REACTION_TAGS
|
||||
/// Filters out all reactions that have any one of these tags from the reaction list
|
||||
var/hidden_reaction_tags = REACTION_TAG_ACTIVE | REACTION_TAG_FOOD | REACTION_TAG_DRINK
|
||||
// SKYRAT EDIT ADDITION BEGIN
|
||||
/// Used for custom transfer amounts
|
||||
var/list/transferAmounts = list()
|
||||
@@ -83,11 +88,8 @@
|
||||
/datum/reagent/sulfur,
|
||||
/datum/reagent/toxin/acid,
|
||||
/datum/reagent/water,
|
||||
/datum/reagent/fuel,
|
||||
/datum/reagent/fuel
|
||||
)
|
||||
|
||||
//SKYRAT EDIT CHANGE BEGIN - ORIGINAL
|
||||
/*
|
||||
/// The default list of reagents upgrade_reagents
|
||||
var/static/list/default_upgrade_reagents = list(
|
||||
/datum/reagent/acetone,
|
||||
@@ -105,33 +107,6 @@
|
||||
/datum/reagent/drug/space_drugs,
|
||||
/datum/reagent/toxin
|
||||
)
|
||||
*/
|
||||
var/static/list/default_upgrade_reagents = list(
|
||||
/datum/reagent/fuel/oil,
|
||||
/datum/reagent/ammonia,
|
||||
/datum/reagent/ash
|
||||
)
|
||||
|
||||
var/static/list/default_upgrade2_reagents = list(
|
||||
/datum/reagent/acetone,
|
||||
/datum/reagent/phenol,
|
||||
/datum/reagent/diethylamine
|
||||
)
|
||||
|
||||
var/static/list/default_upgrade3_reagents = list(
|
||||
/datum/reagent/medicine/mine_salve,
|
||||
/datum/reagent/toxin
|
||||
)
|
||||
|
||||
var/static/list/default_emagged_reagents = list(
|
||||
/datum/reagent/drug/space_drugs,
|
||||
/datum/reagent/toxin/plasma,
|
||||
/datum/reagent/consumable/frostoil,
|
||||
/datum/reagent/toxin/carpotoxin,
|
||||
/datum/reagent/toxin/histamine,
|
||||
/datum/reagent/medicine/morphine
|
||||
)
|
||||
//SKYRAT EDIT CHANGE END
|
||||
|
||||
/obj/machinery/chem_dispenser/Initialize(mapload)
|
||||
if(dispensable_reagents != null && !dispensable_reagents.len)
|
||||
@@ -143,16 +118,6 @@
|
||||
upgrade_reagents = default_upgrade_reagents
|
||||
if(upgrade_reagents)
|
||||
upgrade_reagents = sort_list(upgrade_reagents, GLOBAL_PROC_REF(cmp_reagents_asc))
|
||||
//SKYRAT EDIT ADDITION BEGIN
|
||||
if(upgrade2_reagents != null && !upgrade2_reagents.len)
|
||||
upgrade2_reagents = default_upgrade2_reagents
|
||||
if(upgrade2_reagents)
|
||||
upgrade2_reagents = sort_list(upgrade2_reagents, GLOBAL_PROC_REF(cmp_reagents_asc))
|
||||
if(upgrade3_reagents != null && !upgrade3_reagents.len)
|
||||
upgrade3_reagents = default_upgrade3_reagents
|
||||
if(upgrade3_reagents)
|
||||
upgrade3_reagents = sort_list(upgrade3_reagents, GLOBAL_PROC_REF(cmp_reagents_asc))
|
||||
//SKYRAT EDIT ADDITION END
|
||||
|
||||
if(emagged_reagents != null && !emagged_reagents.len)
|
||||
emagged_reagents = default_emagged_reagents
|
||||
@@ -310,6 +275,18 @@
|
||||
beaker_data["contents"] = beakerContents
|
||||
.["beaker"] = beaker_data
|
||||
|
||||
/obj/machinery/chem_dispenser/ui_static_data(mob/user)
|
||||
var/list/data = list()
|
||||
|
||||
data["reaction_list"] = get_reaction_list()
|
||||
data["all_bitflags"] = list()
|
||||
for(var/readable_flag, real_flag in REACTION_TAG_READABLE)
|
||||
if((real_flag & hidden_reaction_tags) || !(real_flag & shown_reaction_tags))
|
||||
continue
|
||||
data["all_bitflags"][readable_flag] = real_flag
|
||||
|
||||
return data
|
||||
|
||||
/obj/machinery/chem_dispenser/ui_act(action, params, datum/tgui/ui, datum/ui_state/state)
|
||||
. = ..()
|
||||
if(.)
|
||||
@@ -592,6 +569,61 @@
|
||||
/obj/machinery/chem_dispenser/attack_ai_secondary(mob/user, list/modifiers)
|
||||
return attack_hand_secondary(user, modifiers)
|
||||
|
||||
/obj/machinery/chem_dispenser/proc/get_reaction_list()
|
||||
var/static/list/reaction_list
|
||||
if(reaction_list?[type])
|
||||
return reaction_list[type]
|
||||
|
||||
reaction_list ||= list()
|
||||
reaction_list[type] = list()
|
||||
|
||||
var/list/new_reaction_list = list()
|
||||
for(var/result, reactions in GLOB.chemical_reactions_list_product_index - dispensable_reagents)
|
||||
var/datum/reagent/result_datum = GLOB.chemical_reagents_list[result]
|
||||
for(var/datum/chemical_reaction/reaction as anything in reactions)
|
||||
if(!(reaction.reaction_tags & shown_reaction_tags))
|
||||
continue
|
||||
if(reaction.reaction_tags & hidden_reaction_tags)
|
||||
continue
|
||||
if(reaction.required_container)
|
||||
continue
|
||||
|
||||
var/index = result_datum.name
|
||||
var/list/new_info = get_reaction_info(reaction)
|
||||
new_info["description"] = result_datum.description
|
||||
new_info["color"] = result_datum.color
|
||||
|
||||
var/num_alts = 0
|
||||
while(new_reaction_list[index])
|
||||
num_alts++
|
||||
index = "[result_datum.name] (Alt[num_alts == 1 ? "" : " #[num_alts]"])"
|
||||
|
||||
new_reaction_list[index] = new_info
|
||||
|
||||
reaction_list[type] = new_reaction_list
|
||||
return reaction_list[type]
|
||||
|
||||
/obj/machinery/chem_dispenser/proc/get_reaction_info(datum/chemical_reaction/reaction)
|
||||
var/list/info = list()
|
||||
info["id"] = reaction.type
|
||||
info["lower_temperature"] = reaction.required_temp
|
||||
info["upper_temperature"] = reaction.optimal_temp
|
||||
info["lower_ph"] = reaction.optimal_ph_min
|
||||
info["upper_ph"] = reaction.optimal_ph_max
|
||||
info["bitflags"] = reaction.reaction_tags
|
||||
info["required_reagents"] = reagent_list_to_info(reaction.required_reagents)
|
||||
info["required_catalysts"] = reagent_list_to_info(reaction.required_catalysts)
|
||||
return info
|
||||
|
||||
/obj/machinery/chem_dispenser/proc/reagent_list_to_info(list/reagent_list)
|
||||
var/list/info = list()
|
||||
for(var/datum/reagent/reagent_typepath as anything in reagent_list)
|
||||
info += list(list(
|
||||
"name" = reagent_typepath::name,
|
||||
"amount" = reagent_list[reagent_typepath],
|
||||
"typepath" = reagent_typepath,
|
||||
))
|
||||
return info
|
||||
|
||||
/obj/machinery/chem_dispenser/drinks
|
||||
name = "soda dispenser"
|
||||
@@ -608,6 +640,8 @@
|
||||
nopower_state = null
|
||||
pass_flags = PASSTABLE
|
||||
show_ph = FALSE
|
||||
shown_reaction_tags = KITCHEN_REACTION_TAGS
|
||||
hidden_reaction_tags = REACTION_TAG_ACTIVE
|
||||
/// The default list of reagents dispensable by the soda dispenser
|
||||
var/static/list/drinks_dispensable_reagents = list(
|
||||
/datum/reagent/consumable/coffee,
|
||||
@@ -798,6 +832,8 @@
|
||||
name = "botanical chemical dispenser"
|
||||
desc = "Creates and dispenses chemicals useful for botany."
|
||||
circuit = /obj/item/circuitboard/machine/chem_dispenser/mutagensaltpeter
|
||||
shown_reaction_tags = BOTANIST_REACTION_TAGS
|
||||
hidden_reaction_tags = REACTION_TAG_ACTIVE
|
||||
|
||||
/// The default list of dispensable reagents available in the mutagensaltpeter chem dispenser
|
||||
var/static/list/mutagensaltpeter_dispensable_reagents = list(
|
||||
|
||||
@@ -47,9 +47,9 @@
|
||||
. = ..()
|
||||
breather.SetSleeping(30 SECONDS)
|
||||
var/need_mob_update
|
||||
need_mob_update = breather.adjustFireLoss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += breather.adjustToxLoss(-5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += breather.adjustBruteLoss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = breather.adjust_fire_loss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += breather.adjust_tox_loss(-5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += breather.adjust_brute_loss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -80,8 +80,8 @@
|
||||
/datum/reagent/nitrium_high_metabolization/on_mob_life(mob/living/carbon/breather, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = breather.adjustStaminaLoss(-4 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += breather.adjustToxLoss(0.1 * (current_cycle-1) * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype) // 1 toxin damage per cycle at cycle 10
|
||||
need_mob_update = breather.adjust_stamina_loss(-4 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += breather.adjust_tox_loss(0.1 * (current_cycle-1) * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype) // 1 toxin damage per cycle at cycle 10
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -135,9 +135,9 @@
|
||||
/datum/reagent/zauker/on_mob_life(mob/living/breather, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = breather.adjustBruteLoss(6 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += breather.adjustOxyLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += breather.adjustFireLoss(2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += breather.adjustToxLoss(2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = breather.adjust_brute_loss(6 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += breather.adjust_oxy_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += breather.adjust_fire_loss(2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += breather.adjust_tox_loss(2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -26,22 +26,22 @@
|
||||
|
||||
/datum/reagent/medicine/c2/helbital/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/death_is_coming = (affected_mob.getToxLoss() + affected_mob.getOxyLoss() + affected_mob.getFireLoss() + affected_mob.getBruteLoss())*normalise_creation_purity()
|
||||
var/death_is_coming = (affected_mob.get_tox_loss() + affected_mob.get_oxy_loss() + affected_mob.get_fire_loss() + affected_mob.get_brute_loss())*normalise_creation_purity()
|
||||
var/thou_shall_heal = 0
|
||||
var/good_kind_of_healing = FALSE
|
||||
var/need_mob_update = FALSE
|
||||
switch(affected_mob.stat)
|
||||
if(CONSCIOUS) //bad
|
||||
thou_shall_heal = max(death_is_coming/20, 3)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(2 * REM * seconds_per_tick, TRUE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(2 * REM * seconds_per_tick, TRUE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
if(SOFT_CRIT) //meh convert
|
||||
thou_shall_heal = round(death_is_coming/13,0.1)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(1 * REM * seconds_per_tick, TRUE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(1 * REM * seconds_per_tick, TRUE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
good_kind_of_healing = TRUE
|
||||
else //no convert
|
||||
thou_shall_heal = round(death_is_coming/10, 0.1)
|
||||
good_kind_of_healing = TRUE
|
||||
need_mob_update += affected_mob.adjustBruteLoss(-thou_shall_heal * REM * seconds_per_tick, FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(-thou_shall_heal * REM * seconds_per_tick, FALSE, required_bodytype = affected_bodytype)
|
||||
if(need_mob_update)
|
||||
. = UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -110,8 +110,8 @@
|
||||
/datum/reagent/medicine/c2/libital/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.3 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += affected_mob.adjustBruteLoss(-3 * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_LIVER, 0.3 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(-3 * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -128,28 +128,28 @@
|
||||
/datum/reagent/medicine/c2/probital/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-3 * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-3 * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
var/ooo_youaregettingsleepy = 3.5
|
||||
switch(round(affected_mob.getStaminaLoss()))
|
||||
switch(round(affected_mob.get_stamina_loss()))
|
||||
if(10 to 40)
|
||||
ooo_youaregettingsleepy = 3
|
||||
if(41 to 60)
|
||||
ooo_youaregettingsleepy = 2.5
|
||||
if(61 to 200) //you really can only go to 120
|
||||
ooo_youaregettingsleepy = 2
|
||||
need_mob_update += affected_mob.adjustStaminaLoss(ooo_youaregettingsleepy * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
need_mob_update += affected_mob.adjust_stamina_loss(ooo_youaregettingsleepy * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/c2/probital/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustStaminaLoss(3 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
if(affected_mob.getStaminaLoss() >= 80)
|
||||
need_mob_update = affected_mob.adjust_stamina_loss(3 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
if(affected_mob.get_stamina_loss() >= 80)
|
||||
affected_mob.adjust_drowsiness(2 SECONDS * REM * seconds_per_tick)
|
||||
if(affected_mob.getStaminaLoss() >= 100)
|
||||
if(affected_mob.get_stamina_loss() >= 100)
|
||||
to_chat(affected_mob,span_warning("You feel more tired than you usually do, perhaps if you rest your eyes for a bit..."))
|
||||
need_mob_update += affected_mob.adjustStaminaLoss(-100, updating_stamina = FALSE) // Don't add the biotype parameter here as it results in infinite sleep and chat spam.
|
||||
need_mob_update += affected_mob.adjust_stamina_loss(-100, updating_stamina = FALSE) // Don't add the biotype parameter here as it results in infinite sleep and chat spam.
|
||||
affected_mob.Sleeping(10 SECONDS)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
@@ -179,8 +179,8 @@
|
||||
/datum/reagent/medicine/c2/lenturi/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustFireLoss(-3.75 * REM * normalise_creation_purity() * seconds_per_tick, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_STOMACH, 0.4 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update = affected_mob.adjust_fire_loss(-3.75 * REM * normalise_creation_purity() * seconds_per_tick, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_STOMACH, 0.4 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -198,8 +198,8 @@
|
||||
/datum/reagent/medicine/c2/aiuri/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustFireLoss(-2 * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_EYES, 0.25 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update = affected_mob.adjust_fire_loss(-2 * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_EYES, 0.25 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -218,14 +218,10 @@
|
||||
/datum/reagent/medicine/c2/hercuri/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
// SKYRAT EDIT CHANGE BEGIN -- Adds check for owner_flags; indented the getFireLoss check and everything under it, so synths can get cooled down
|
||||
var/owner_flags = affected_mob.dna.species.reagent_flags
|
||||
if (owner_flags & PROCESS_ORGANIC)
|
||||
if(affected_mob.getFireLoss() > 50)
|
||||
need_mob_update = affected_mob.adjustFireLoss(-2 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
else
|
||||
need_mob_update = affected_mob.adjustFireLoss(-1.25 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
// SKYRAT EDIT CHANGE END
|
||||
if(affected_mob.get_fire_loss() > 50)
|
||||
need_mob_update = affected_mob.adjust_fire_loss(-3 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
else
|
||||
need_mob_update = affected_mob.adjust_fire_loss(-2.25 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
affected_mob.adjust_bodytemperature(rand(-25,-5) * TEMPERATURE_DAMAGE_COEFFICIENT * REM * seconds_per_tick, 50)
|
||||
if(ishuman(affected_mob))
|
||||
var/mob/living/carbon/human/humi = affected_mob
|
||||
@@ -271,10 +267,10 @@
|
||||
. = ..()
|
||||
var/oxycalc = 2.5 * REM * (current_cycle-1)
|
||||
if(!overdosed)
|
||||
oxycalc = min(oxycalc, affected_mob.getOxyLoss() + 0.5) //if NOT overdosing, we lower our toxdamage to only the damage we actually healed with a minimum of 0.1*current_cycle. IE if we only heal 10 oxygen damage but we COULD have healed 20, we will only take toxdamage for the 10. We would take the toxdamage for the extra 10 if we were overdosing.
|
||||
oxycalc = min(oxycalc, affected_mob.get_oxy_loss() + 0.5) //if NOT overdosing, we lower our toxdamage to only the damage we actually healed with a minimum of 0.1*current_cycle. IE if we only heal 10 oxygen damage but we COULD have healed 20, we will only take toxdamage for the 10. We would take the toxdamage for the extra 10 if we were overdosing.
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOxyLoss(-oxycalc * seconds_per_tick * normalise_creation_purity(), FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjustToxLoss(oxycalc * seconds_per_tick / CONVERMOL_RATIO, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_oxy_loss(-oxycalc * seconds_per_tick * normalise_creation_purity(), FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(oxycalc * seconds_per_tick / CONVERMOL_RATIO, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if(SPT_PROB((current_cycle-1) / 2, seconds_per_tick) && affected_mob.losebreath)
|
||||
affected_mob.losebreath--
|
||||
need_mob_update = TRUE
|
||||
@@ -302,8 +298,8 @@
|
||||
/datum/reagent/medicine/c2/tirimol/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOxyLoss(-4.5 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjustStaminaLoss(2 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_oxy_loss(-4.5 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_stamina_loss(2 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
if(drowsycd && COOLDOWN_FINISHED(src, drowsycd))
|
||||
affected_mob.adjust_drowsiness(20 SECONDS)
|
||||
COOLDOWN_START(src, drowsycd, 45 SECONDS)
|
||||
@@ -345,7 +341,7 @@
|
||||
var/toxcalc = min(round(5 + ((chemtemp-1000)/175), 0.1), 5) * REM * seconds_per_tick * normalise_creation_purity() //max 2.5 tox healing per second
|
||||
var/need_mob_update
|
||||
if(toxcalc > 0)
|
||||
need_mob_update = affected_mob.adjustToxLoss(-toxcalc, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_tox_loss(-toxcalc, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
healypoints += toxcalc
|
||||
|
||||
//and you're cold
|
||||
@@ -354,14 +350,14 @@
|
||||
radcalc *= normalise_creation_purity()
|
||||
// extra rad healing if you are SUPER cold
|
||||
if(chemtemp < rads_heal_threshold*0.1)
|
||||
need_mob_update += affected_mob.adjustToxLoss(-radcalc * 0.9, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-radcalc * 0.9, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
else if(chemtemp < rads_heal_threshold)
|
||||
need_mob_update += affected_mob.adjustToxLoss(-radcalc * 0.75, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-radcalc * 0.75, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
healypoints += (radcalc / 5)
|
||||
|
||||
//you're yes and... oh no!
|
||||
healypoints = round(healypoints, 0.1)
|
||||
affected_mob.adjustOrganLoss(ORGAN_SLOT_HEART, healypoints / 5, required_organ_flag = affected_organ_flags)
|
||||
affected_mob.adjust_organ_loss(ORGAN_SLOT_HEART, healypoints / 5, required_organ_flag = affected_organ_flags)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -383,8 +379,8 @@
|
||||
if(creation_purity >= 1) //Perfectly pure multivers gives a bonus of 2!
|
||||
medibonus += 1
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustToxLoss(-0.5 * min(medibonus, 3 * normalise_creation_purity()) * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype) //not great at healing but if you have nothing else it will work
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_LUNGS, 0.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags) //kills at 40u
|
||||
need_mob_update = affected_mob.adjust_tox_loss(-0.5 * min(medibonus, 3 * normalise_creation_purity()) * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype) //not great at healing but if you have nothing else it will work
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_LUNGS, 0.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags) //kills at 40u
|
||||
if(!holder.has_reagent(/datum/reagent/toxin/anacea))
|
||||
for(var/datum/reagent/second_reagent as anything in affected_mob.reagents.reagent_list)
|
||||
if(second_reagent == src)
|
||||
@@ -417,7 +413,7 @@
|
||||
return
|
||||
|
||||
if(trans_volume >= 0.4) //prevents cheesing with ultralow doses.
|
||||
exposed_mob.adjustToxLoss((-3 * min(2, trans_volume) * REM) * normalise_creation_purity(), required_biotype = affected_biotype) //This is to promote iv pole use for that chemotherapy feel.
|
||||
exposed_mob.adjust_tox_loss((-3 * min(2, trans_volume) * REM) * normalise_creation_purity(), required_biotype = affected_biotype) //This is to promote iv pole use for that chemotherapy feel.
|
||||
var/obj/item/organ/liver/L = exposed_mob.organs_slot[ORGAN_SLOT_LIVER]
|
||||
if(!L || L.organ_flags & ORGAN_FAILING)
|
||||
return
|
||||
@@ -430,8 +426,8 @@
|
||||
/datum/reagent/medicine/c2/syriniver/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.8 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += affected_mob.adjustToxLoss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_LIVER, 0.8 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
for(var/datum/reagent/R in affected_mob.reagents.reagent_list)
|
||||
if(issyrinormusc(R))
|
||||
continue
|
||||
@@ -442,7 +438,7 @@
|
||||
|
||||
/datum/reagent/medicine/c2/syriniver/overdose_process(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_LIVER, 1.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_LIVER, 1.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
affected_mob.adjust_disgust(3 * REM * seconds_per_tick)
|
||||
affected_mob.reagents.add_reagent(/datum/reagent/medicine/c2/musiver, 0.225 * REM * seconds_per_tick)
|
||||
@@ -460,8 +456,8 @@
|
||||
/datum/reagent/medicine/c2/musiver/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.1 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += affected_mob.adjustToxLoss(-1.5 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_LIVER, 0.1 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-1.5 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_biotype = affected_biotype)
|
||||
for(var/datum/reagent/reagent as anything in affected_mob.reagents.reagent_list)
|
||||
if(issyrinormusc(reagent))
|
||||
continue
|
||||
@@ -481,7 +477,7 @@
|
||||
|
||||
/datum/reagent/medicine/c2/musiver/overdose_process(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_LIVER, 1.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_LIVER, 1.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
affected_mob.adjust_disgust(3 * REM * seconds_per_tick)
|
||||
|
||||
@@ -503,18 +499,18 @@
|
||||
if(!(methods & (PATCH|TOUCH|VAPOR)))
|
||||
return
|
||||
|
||||
var/current_bruteloss = carbies.getBruteLoss() // because this will be changed after calling adjustBruteLoss()
|
||||
var/current_fireloss = carbies.getFireLoss() // because this will be changed after calling adjustFireLoss()
|
||||
var/current_bruteloss = carbies.get_brute_loss() // because this will be changed after calling adjust_brute_loss()
|
||||
var/current_fireloss = carbies.get_fire_loss() // because this will be changed after calling adjust_fire_loss()
|
||||
var/touch_protection_interference = (1 - touch_protection)
|
||||
if(!touch_protection_interference)
|
||||
return
|
||||
var/harmies = clamp(carbies.adjustBruteLoss(-1.25 * reac_volume * touch_protection_interference, updating_health = FALSE, required_bodytype = affected_bodytype), 0, current_bruteloss)
|
||||
var/burnies = clamp(carbies.adjustFireLoss(-1.25 * reac_volume * touch_protection_interference, updating_health = FALSE, required_bodytype = affected_bodytype), 0, current_fireloss)
|
||||
var/harmies = clamp(carbies.adjust_brute_loss(-1.25 * reac_volume * touch_protection_interference, updating_health = FALSE, required_bodytype = affected_bodytype), 0, current_bruteloss)
|
||||
var/burnies = clamp(carbies.adjust_fire_loss(-1.25 * reac_volume * touch_protection_interference, updating_health = FALSE, required_bodytype = affected_bodytype), 0, current_fireloss)
|
||||
for(var/i in carbies.all_wounds)
|
||||
var/datum/wound/iter_wound = i
|
||||
iter_wound.on_synthflesh(reac_volume)
|
||||
var/need_mob_update = harmies + burnies
|
||||
need_mob_update = carbies.adjustToxLoss((harmies + burnies)*(0.5 + (0.25*(1-creation_purity))), updating_health = FALSE, required_biotype = affected_biotype) || need_mob_update //0.5 - 0.75
|
||||
need_mob_update = carbies.adjust_tox_loss((harmies + burnies)*(0.5 + (0.25*(1-creation_purity))), updating_health = FALSE, required_biotype = affected_biotype) || need_mob_update //0.5 - 0.75
|
||||
|
||||
if(need_mob_update)
|
||||
carbies.updatehealth()
|
||||
@@ -529,7 +525,7 @@
|
||||
return
|
||||
|
||||
//don't try to unhusk mobs above burn damage threshold
|
||||
if(carbies.getFireLoss() > UNHUSK_DAMAGE_THRESHOLD)
|
||||
if(carbies.get_fire_loss() > UNHUSK_DAMAGE_THRESHOLD)
|
||||
if(show_message && !need_mob_update)
|
||||
carbies.visible_message(span_minoralert("The liquid fails to properly stick on [carbies]. [carbies]'s burns need to be repaired first!"))
|
||||
return
|
||||
@@ -602,18 +598,17 @@
|
||||
/datum/reagent/medicine/c2/penthrite/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustStaminaLoss(-12.5 * REM * seconds_per_tick, updating_stamina = FALSE) //SKYRAT EDIT ADDITION - COMBAT - makes your heart beat faster, fills you with energy. For miners
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_STOMACH, 0.25 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_STOMACH, 0.25 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
if(affected_mob.health <= HEALTH_THRESHOLD_CRIT && affected_mob.health > (affected_mob.crit_threshold + HEALTH_THRESHOLD_FULLCRIT * (2 * normalise_creation_purity()))) //we cannot save someone below our lowered crit threshold.
|
||||
|
||||
need_mob_update += affected_mob.adjustToxLoss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustBruteLoss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(-6 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(-6 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
|
||||
affected_mob.losebreath = 0
|
||||
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_HEART, max(volume/10, 1) * REM * seconds_per_tick, required_organ_flag = affected_organ_flags) // your heart is barely keeping up!
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_HEART, max(volume/10, 1) * REM * seconds_per_tick, required_organ_flag = affected_organ_flags) // your heart is barely keeping up!
|
||||
|
||||
affected_mob.set_jitter_if_lower(rand(0 SECONDS, 4 SECONDS) * REM * seconds_per_tick)
|
||||
affected_mob.set_dizzy_if_lower(rand(0 SECONDS, 4 SECONDS) * REM * seconds_per_tick)
|
||||
@@ -641,8 +636,8 @@
|
||||
. = ..()
|
||||
REMOVE_TRAIT(affected_mob, TRAIT_STABLEHEART, type)
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustStaminaLoss(10 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_HEART, 10 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update = affected_mob.adjust_stamina_loss(10 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_HEART, 10 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += affected_mob.set_heartattack(TRUE)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -263,7 +263,7 @@
|
||||
eyes.forceMove(get_turf(drinker))
|
||||
to_chat(drinker, span_userdanger("You double over in pain as you feel your eyeballs liquify in your head!"))
|
||||
drinker.emote("scream")
|
||||
if(drinker.adjustBruteLoss(15 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype))
|
||||
if(drinker.adjust_brute_loss(15 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
else
|
||||
to_chat(drinker, span_userdanger("You scream in terror as you go blind!"))
|
||||
@@ -303,7 +303,7 @@
|
||||
|
||||
/datum/reagent/consumable/ethanol/bilk/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(drinker.getBruteLoss() && SPT_PROB(5, seconds_per_tick))
|
||||
if(drinker.get_brute_loss() && SPT_PROB(5, seconds_per_tick))
|
||||
if(drinker.heal_bodypart_damage(brute = 1 * REM * seconds_per_tick, updating_health = FALSE))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -556,10 +556,10 @@
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
if(cubano.mind && cubano.mind.has_antag_datum(/datum/antagonist/rev)) //Cuba Libre, the traditional drink of revolutions! Heals revolutionaries.
|
||||
need_mob_update = cubano.adjustBruteLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += cubano.adjustFireLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += cubano.adjustToxLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += cubano.adjustOxyLoss(-5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update = cubano.adjust_brute_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += cubano.adjust_fire_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += cubano.adjust_tox_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += cubano.adjust_oxy_loss(-5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -646,7 +646,7 @@
|
||||
if(HAS_TRAIT(liver, TRAIT_ENGINEER_METABOLISM))
|
||||
ADD_TRAIT(drinker, TRAIT_HALT_RADIATION_EFFECTS, "[type]")
|
||||
if (HAS_TRAIT(drinker, TRAIT_IRRADIATED))
|
||||
if(drinker.adjustToxLoss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(drinker.adjust_tox_loss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/ethanol/screwdrivercocktail/on_mob_end_metabolize(mob/living/drinker)
|
||||
@@ -672,8 +672,7 @@
|
||||
|
||||
/datum/reagent/consumable/ethanol/bloody_mary/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(drinker.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
drinker.blood_volume = min(drinker.blood_volume + (1 * REM * seconds_per_tick), BLOOD_VOLUME_NORMAL) //Bloody Mary quickly restores blood loss. // SKYRAT EDIT - Bloodshot is now the go-to drink for bloodloss, not Bloody Mary - ORIGINAL: drinker.blood_volume = min(drinker.blood_volume + (3 * REM * delta_time), BLOOD_VOLUME_NORMAL)
|
||||
drinker.adjust_blood_volume(3 * REM * seconds_per_tick, maximum = BLOOD_VOLUME_NORMAL) // Bloody Mary quickly restores blood loss.
|
||||
|
||||
/datum/reagent/consumable/ethanol/brave_bull
|
||||
name = "Brave Bull"
|
||||
@@ -771,7 +770,7 @@
|
||||
var/obj/item/organ/liver/liver = drinker.get_organ_slot(ORGAN_SLOT_LIVER)
|
||||
// if you have a liver and that liver is an officer's liver
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
if(drinker.adjustStaminaLoss(-10 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype))
|
||||
if(drinker.adjust_stamina_loss(-10 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
if(SPT_PROB(10, seconds_per_tick))
|
||||
drinker.cause_hallucination(get_random_valid_hallucination_subtype(/datum/hallucination/nearby_fake_item), name)
|
||||
@@ -822,8 +821,8 @@
|
||||
. = ..()
|
||||
if(dorf_mode)
|
||||
var/need_mob_update
|
||||
need_mob_update = dwarf.adjustBruteLoss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += dwarf.adjustFireLoss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = dwarf.adjust_brute_loss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += dwarf.adjust_fire_loss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -946,7 +945,7 @@
|
||||
if(ishuman(drinker)) //Barefoot causes the imbiber to quickly regenerate brute trauma if they're not wearing shoes.
|
||||
var/mob/living/carbon/human/unshoed = drinker
|
||||
if(!unshoed.shoes)
|
||||
if(unshoed.adjustBruteLoss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype))
|
||||
if(unshoed.adjust_brute_loss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/ethanol/snowwhite
|
||||
@@ -1356,10 +1355,10 @@
|
||||
. = ..()
|
||||
if(drinker.health <= 0)
|
||||
var/need_mob_update
|
||||
need_mob_update = drinker.adjustBruteLoss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += drinker.adjustFireLoss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += drinker.adjustOxyLoss(-4 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += drinker.adjustToxLoss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = drinker.adjust_brute_loss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += drinker.adjust_fire_loss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += drinker.adjust_oxy_loss(-4 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += drinker.adjust_tox_loss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -1393,7 +1392,7 @@
|
||||
drinker.Sleeping(100 * REM * seconds_per_tick)
|
||||
if(202 to INFINITY)
|
||||
drinker.AdjustSleeping(4 SECONDS * REM * seconds_per_tick)
|
||||
if(drinker.adjustToxLoss(2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(drinker.adjust_tox_loss(2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/ethanol/gargle_blaster
|
||||
@@ -1417,12 +1416,12 @@
|
||||
if(56 to 201)
|
||||
drinker.set_drugginess(110 SECONDS * REM * seconds_per_tick)
|
||||
if(201 to INFINITY)
|
||||
if(drinker.adjustToxLoss(2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(drinker.adjust_tox_loss(2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/ethanol/neurotoxin
|
||||
name = "Neurotoxin"
|
||||
description = "A strong neurotoxin that puts the subject into a death-like state."
|
||||
description = "A strong neurotoxin that puts the patient into a death-like state."
|
||||
color = "#2E2E61" // rgb: 46, 46, 97
|
||||
boozepwr = 50
|
||||
quality = DRINK_VERYGOOD
|
||||
@@ -1438,18 +1437,18 @@
|
||||
drinker.set_drugginess(100 SECONDS * REM * seconds_per_tick)
|
||||
drinker.adjust_dizzy(4 SECONDS * REM * seconds_per_tick)
|
||||
var/need_mob_update
|
||||
need_mob_update = drinker.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1 * REM * seconds_per_tick, 150, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update = drinker.adjust_organ_loss(ORGAN_SLOT_BRAIN, 1 * REM * seconds_per_tick, 150, required_organ_flag = affected_organ_flags)
|
||||
if(SPT_PROB(10, seconds_per_tick))
|
||||
need_mob_update += drinker.adjustStaminaLoss(10 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += drinker.adjust_stamina_loss(10 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
drinker.drop_all_held_items()
|
||||
to_chat(drinker, span_notice("You cant feel your hands!"))
|
||||
if(current_cycle > 6)
|
||||
if(SPT_PROB(10, seconds_per_tick))
|
||||
var/paralyzed_limb = pick_paralyzed_limb()
|
||||
ADD_TRAIT(drinker, paralyzed_limb, type)
|
||||
need_mob_update += drinker.adjustStaminaLoss(10 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += drinker.adjust_stamina_loss(10 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
if(current_cycle > 31)
|
||||
need_mob_update += drinker.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += drinker.adjust_organ_loss(ORGAN_SLOT_BRAIN, 2 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
if(current_cycle > 51 && SPT_PROB(7.5, seconds_per_tick))
|
||||
if(!drinker.undergoing_cardiac_arrest() && drinker.can_heartattack())
|
||||
drinker.set_heartattack(TRUE)
|
||||
@@ -1464,7 +1463,7 @@
|
||||
REMOVE_TRAIT(drinker, TRAIT_PARALYSIS_R_ARM, type)
|
||||
REMOVE_TRAIT(drinker, TRAIT_PARALYSIS_R_LEG, type)
|
||||
REMOVE_TRAIT(drinker, TRAIT_PARALYSIS_L_LEG, type)
|
||||
drinker.adjustStaminaLoss(10, required_biotype = affected_biotype)
|
||||
drinker.adjust_stamina_loss(10, required_biotype = affected_biotype)
|
||||
|
||||
/datum/reagent/consumable/ethanol/hippies_delight
|
||||
name = "Hippie's Delight"
|
||||
@@ -1506,7 +1505,7 @@
|
||||
if(SPT_PROB(23, seconds_per_tick))
|
||||
drinker.emote(pick("twitch","giggle"))
|
||||
if(SPT_PROB(16, seconds_per_tick))
|
||||
if(drinker.adjustToxLoss(2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(drinker.adjust_tox_loss(2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/ethanol/eggnog
|
||||
@@ -1608,7 +1607,7 @@
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_LAW_ENFORCEMENT_METABOLISM))
|
||||
var/need_mob_update
|
||||
need_mob_update = drinker.heal_bodypart_damage(2 * REM * seconds_per_tick, 2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += drinker.adjustStaminaLoss(-5 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += drinker.adjust_stamina_loss(-5 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -1649,12 +1648,12 @@
|
||||
heal_points = 20 //heal more if we're in softcrit
|
||||
var/need_mob_update
|
||||
var/heal_amt = min(volume, heal_points) //only heals 1 point of damage per unit on add, for balance reasons
|
||||
need_mob_update = drinker.adjustBruteLoss(-heal_amt, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += drinker.adjustFireLoss(-heal_amt, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += drinker.adjustToxLoss(-heal_amt, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += drinker.adjustOxyLoss(-heal_amt, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update = drinker.adjust_brute_loss(-heal_amt, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += drinker.adjust_fire_loss(-heal_amt, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += drinker.adjust_tox_loss(-heal_amt, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += drinker.adjust_oxy_loss(-heal_amt, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
// heal stamina loss on first metabolization, but only to a max of 20
|
||||
need_mob_update += drinker.adjustStaminaLoss(max(-heal_amt * 5, -20), updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += drinker.adjust_stamina_loss(max(-heal_amt * 5, -20), updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
drinker.updatehealth()
|
||||
drinker.visible_message(span_warning("[drinker] shivers with renewed vigor!"), span_notice("One taste of [LOWER_TEXT(name)] fills you with energy!"))
|
||||
@@ -1665,11 +1664,11 @@
|
||||
. = ..()
|
||||
if(drinker.health > 0)
|
||||
var/need_mob_update
|
||||
need_mob_update = drinker.adjustBruteLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += drinker.adjustFireLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += drinker.adjustToxLoss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += drinker.adjustOxyLoss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += drinker.adjustStaminaLoss(-5 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = drinker.adjust_brute_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += drinker.adjust_fire_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += drinker.adjust_tox_loss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += drinker.adjust_oxy_loss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += drinker.adjust_stamina_loss(-5 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -1720,7 +1719,7 @@
|
||||
|
||||
/datum/reagent/consumable/ethanol/crevice_spike/on_mob_metabolize(mob/living/drinker) //damage only applies when drink first enters system and won't again until drink metabolizes out
|
||||
. = ..()
|
||||
drinker.adjustBruteLoss(3 * min(5,volume), required_bodytype = affected_bodytype) //minimum 3 brute damage on ingestion to limit non-drink means of injury - a full 5 unit gulp of the drink trucks you for the full 15
|
||||
drinker.adjust_brute_loss(3 * min(5,volume), required_bodytype = affected_bodytype) //minimum 3 brute damage on ingestion to limit non-drink means of injury - a full 5 unit gulp of the drink trucks you for the full 15
|
||||
|
||||
/datum/reagent/consumable/ethanol/sake
|
||||
name = "Sake"
|
||||
@@ -1822,15 +1821,15 @@
|
||||
return
|
||||
|
||||
var/need_mob_update
|
||||
if(drinker.getBruteLoss() && drinker.getFireLoss()) //If you are damaged by both types, slightly increased healing but it only heals one. The more the merrier wink wink.
|
||||
if(drinker.get_brute_loss() && drinker.get_fire_loss()) //If you are damaged by both types, slightly increased healing but it only heals one. The more the merrier wink wink.
|
||||
if(prob(50))
|
||||
need_mob_update = drinker.adjustBruteLoss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = drinker.adjust_brute_loss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
else
|
||||
need_mob_update = drinker.adjustFireLoss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
else if(drinker.getBruteLoss()) //If you have only one, it still heals but not as well.
|
||||
need_mob_update = drinker.adjustBruteLoss(-0.2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
else if(drinker.getFireLoss())
|
||||
need_mob_update = drinker.adjustFireLoss(-0.2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = drinker.adjust_fire_loss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
else if(drinker.get_brute_loss()) //If you have only one, it still heals but not as well.
|
||||
need_mob_update = drinker.adjust_brute_loss(-0.2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
else if(drinker.get_fire_loss())
|
||||
need_mob_update = drinker.adjust_fire_loss(-0.2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -1873,7 +1872,7 @@
|
||||
/datum/reagent/consumable/ethanol/fernet/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(drinker.nutrition <= NUTRITION_LEVEL_STARVING)
|
||||
if(drinker.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(drinker.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
drinker.adjust_nutrition(-5 * REM * seconds_per_tick)
|
||||
drinker.overeatduration = 0
|
||||
@@ -1890,7 +1889,7 @@
|
||||
/datum/reagent/consumable/ethanol/fernet_cola/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(drinker.nutrition <= NUTRITION_LEVEL_STARVING)
|
||||
if(drinker.adjustToxLoss(0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(drinker.adjust_tox_loss(0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
drinker.adjust_nutrition(-3 * REM * seconds_per_tick)
|
||||
drinker.overeatduration = 0
|
||||
@@ -1913,7 +1912,7 @@
|
||||
/datum/reagent/consumable/ethanol/fanciulli/on_mob_metabolize(mob/living/drinker)
|
||||
. = ..()
|
||||
if(drinker.health > 0)
|
||||
drinker.adjustStaminaLoss(20, required_biotype = affected_biotype)
|
||||
drinker.adjust_stamina_loss(20, required_biotype = affected_biotype)
|
||||
|
||||
/datum/reagent/consumable/ethanol/branca_menta
|
||||
name = "Branca Menta"
|
||||
@@ -1932,7 +1931,7 @@
|
||||
/datum/reagent/consumable/ethanol/branca_menta/on_mob_metabolize(mob/living/drinker)
|
||||
. = ..()
|
||||
if(drinker.health > 0)
|
||||
drinker.adjustStaminaLoss(35, required_biotype = affected_biotype)
|
||||
drinker.adjust_stamina_loss(35, required_biotype = affected_biotype)
|
||||
|
||||
/datum/reagent/consumable/ethanol/blank_paper
|
||||
name = "Blank Paper"
|
||||
@@ -2081,9 +2080,9 @@
|
||||
if(drinker?.mind?.has_antag_datum(/datum/antagonist/wizard))
|
||||
var/need_mob_update
|
||||
need_mob_update = drinker.heal_bodypart_damage(1 * REM * seconds_per_tick, 1 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += drinker.adjustOxyLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += drinker.adjustToxLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += drinker.adjustStaminaLoss(-5 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += drinker.adjust_oxy_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += drinker.adjust_tox_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += drinker.adjust_stamina_loss(-5 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -2104,7 +2103,7 @@
|
||||
/datum/reagent/consumable/ethanol/bug_spray/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
// Does some damage to bug biotypes
|
||||
if(drinker.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(drinker.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
// Random chance of causing a screm if we did some damage
|
||||
if(SPT_PROB(2, seconds_per_tick))
|
||||
@@ -2140,7 +2139,7 @@
|
||||
. = ..()
|
||||
if(SPT_PROB(2, seconds_per_tick))
|
||||
to_chat(drinker, span_notice("[pick("You feel disregard for the rule of law.", "You feel pumped!", "Your head is pounding.", "Your thoughts are racing..")]"))
|
||||
if(drinker.adjustStaminaLoss(-0.5 * drinker.get_drunk_amount() * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype))
|
||||
if(drinker.adjust_stamina_loss(-0.5 * drinker.get_drunk_amount() * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/ethanol/old_timer
|
||||
@@ -2200,7 +2199,7 @@
|
||||
/datum/reagent/consumable/ethanol/trappist/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(drinker.mind?.holy_role)
|
||||
if(drinker.adjustFireLoss(-2.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype))
|
||||
if(drinker.adjust_fire_loss(-2.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
drinker.adjust_jitter(-2 SECONDS * REM * seconds_per_tick)
|
||||
drinker.adjust_stutter(-2 SECONDS * REM * seconds_per_tick)
|
||||
@@ -2340,7 +2339,7 @@
|
||||
|
||||
/datum/reagent/consumable/ethanol/kortara/on_mob_life(mob/living/carbon/drinker, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(drinker.getBruteLoss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(drinker.get_brute_loss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(drinker.heal_bodypart_damage(brute = 1 * REM * seconds_per_tick, burn = 0, updating_health = FALSE))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -2637,7 +2636,7 @@
|
||||
var/mob/living/carbon/exposed_carbon = exposed_mob
|
||||
var/obj/item/organ/stomach/ethereal/stomach = exposed_carbon.get_organ_slot(ORGAN_SLOT_STOMACH)
|
||||
if(istype(stomach))
|
||||
stomach.adjust_charge(reac_volume * 5 * ETHEREAL_DISCHARGE_RATE)
|
||||
stomach.adjust_charge(reac_volume * 10 * ETHEREAL_DISCHARGE_RATE)
|
||||
|
||||
/datum/reagent/consumable/ethanol/telepole
|
||||
name = "Telepole"
|
||||
@@ -2657,7 +2656,7 @@
|
||||
var/mob/living/carbon/exposed_carbon = exposed_mob
|
||||
var/obj/item/organ/stomach/ethereal/stomach = exposed_carbon.get_organ_slot(ORGAN_SLOT_STOMACH)
|
||||
if(istype(stomach))
|
||||
stomach.adjust_charge(reac_volume * 10 * ETHEREAL_DISCHARGE_RATE)
|
||||
stomach.adjust_charge(reac_volume * 20 * ETHEREAL_DISCHARGE_RATE)
|
||||
|
||||
/datum/reagent/consumable/ethanol/pod_tesla
|
||||
name = "Pod Tesla"
|
||||
@@ -2984,7 +2983,7 @@
|
||||
. = ..()
|
||||
affected_mob.apply_status_effect(/datum/status_effect/headache_soothed) //prevents headaches
|
||||
affected_mob.adjust_disgust(-5 * REM * seconds_per_tick) //removes disgust, same with sol dry
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -0.5 * REM * seconds_per_tick * normalise_creation_purity(), required_organ_flag = affected_organ_flags)) //heals brain damage very slowly, about 12 damage per 5u
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, -0.5 * REM * seconds_per_tick * normalise_creation_purity(), required_organ_flag = affected_organ_flags)) //heals brain damage very slowly, about 12 damage per 5u
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/ethanol/blue_blazer
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
|
||||
/datum/reagent/consumable/orangejuice/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.getOxyLoss() && SPT_PROB(16, seconds_per_tick))
|
||||
if(affected_mob.adjustOxyLoss(-1 * REM * seconds_per_tick, FALSE, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type))
|
||||
if(affected_mob.get_oxy_loss() && SPT_PROB(16, seconds_per_tick))
|
||||
if(affected_mob.adjust_oxy_loss(-1 * REM * seconds_per_tick, FALSE, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/tomatojuice
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
/datum/reagent/consumable/tomatojuice/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.getFireLoss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.get_fire_loss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.heal_bodypart_damage(brute = 0, burn = 1 * REM * seconds_per_tick, updating_health = FALSE))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -38,8 +38,8 @@
|
||||
|
||||
/datum/reagent/consumable/limejuice/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.getToxLoss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.adjustToxLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.get_tox_loss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.adjust_tox_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/carrotjuice
|
||||
@@ -57,9 +57,9 @@
|
||||
switch(current_cycle)
|
||||
if(21 to 110)
|
||||
if(SPT_PROB(100 * (1 - (sqrt(110 - current_cycle) / 10)), seconds_per_tick))
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_EYES, -2 * REM * seconds_per_tick)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_EYES, -2 * REM * seconds_per_tick)
|
||||
if(110 to INFINITY)
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_EYES, -2 * REM * seconds_per_tick)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_EYES, -2 * REM * seconds_per_tick)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
|
||||
/datum/reagent/consumable/poisonberryjuice/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/watermelonjuice
|
||||
@@ -183,7 +183,7 @@
|
||||
. = ..()
|
||||
var/obj/item/organ/liver/liver = affected_mob.get_organ_slot(ORGAN_SLOT_LIVER)
|
||||
if((liver && HAS_TRAIT(liver, TRAIT_CORONER_METABOLISM)))
|
||||
if(affected_mob.adjustToxLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/grapejuice
|
||||
@@ -219,7 +219,7 @@
|
||||
myseed.adjust_potency(-round(volume * 0.5))
|
||||
|
||||
/datum/reagent/consumable/milk/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
if(affected_mob.getBruteLoss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.get_brute_loss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.heal_bodypart_damage(brute = 1 * REM * seconds_per_tick, burn = 0, updating_health = FALSE))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
if(holder.has_reagent(/datum/reagent/consumable/capsaicin))
|
||||
@@ -242,7 +242,7 @@
|
||||
|
||||
/datum/reagent/consumable/soymilk/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.getBruteLoss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.get_brute_loss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.heal_bodypart_damage(1, 0))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -301,8 +301,8 @@
|
||||
affected_mob.adjust_drowsiness(-2 SECONDS * REM * seconds_per_tick)
|
||||
affected_mob.adjust_jitter(-6 SECONDS * REM * seconds_per_tick)
|
||||
affected_mob.AdjustSleeping(-2 SECONDS * REM * seconds_per_tick)
|
||||
if(affected_mob.getToxLoss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.adjustToxLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.get_tox_loss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.adjust_tox_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
affected_mob.adjust_bodytemperature(20 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * seconds_per_tick, 0, affected_mob.get_body_temp_normal())
|
||||
|
||||
@@ -400,7 +400,7 @@
|
||||
affected_mob.adjust_drowsiness(-6 SECONDS * REM * seconds_per_tick)
|
||||
affected_mob.AdjustSleeping(-6 SECONDS * REM * seconds_per_tick)
|
||||
affected_mob.adjust_bodytemperature(-7 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * seconds_per_tick, affected_mob.get_body_temp_normal())
|
||||
if(affected_mob.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/icetea
|
||||
@@ -417,8 +417,8 @@
|
||||
affected_mob.adjust_dizzy(-4 SECONDS * REM * seconds_per_tick)
|
||||
affected_mob.adjust_drowsiness(-2 SECONDS * REM * seconds_per_tick)
|
||||
affected_mob.AdjustSleeping(-4 SECONDS * REM * seconds_per_tick)
|
||||
if(affected_mob.getToxLoss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.adjustToxLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.get_tox_loss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.adjust_tox_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
affected_mob.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * seconds_per_tick, affected_mob.get_body_temp_normal())
|
||||
|
||||
@@ -492,7 +492,7 @@
|
||||
REMOVE_TRAIT(affected_mob, TRAIT_DOUBLE_TAP, type)
|
||||
if(current_cycle > 10)
|
||||
to_chat(affected_mob, span_warning("You feel kinda tired as your sugar rush wears off..."))
|
||||
affected_mob.adjustStaminaLoss(min(80, current_cycle * 3), required_biotype = affected_biotype)
|
||||
affected_mob.adjust_stamina_loss(min(80, current_cycle * 3), required_biotype = affected_biotype)
|
||||
affected_mob.adjust_drowsiness((current_cycle-1) * 2 SECONDS)
|
||||
|
||||
/datum/reagent/consumable/rootbeer/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
@@ -658,11 +658,11 @@
|
||||
var/need_mob_update
|
||||
switch(affected_mob.mob_mood.sanity_level)
|
||||
if (SANITY_LEVEL_GREAT to SANITY_LEVEL_NEUTRAL)
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-1.5 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-1.5 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
if (SANITY_LEVEL_DISTURBED to SANITY_LEVEL_UNSTABLE)
|
||||
affected_mob.add_mood_event("wellcheers", /datum/mood_event/wellcheers)
|
||||
if (SANITY_LEVEL_CRAZY to SANITY_LEVEL_INSANE)
|
||||
need_mob_update = affected_mob.adjustStaminaLoss(3 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
need_mob_update = affected_mob.adjust_stamina_loss(3 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -732,7 +732,7 @@
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.SetSleeping(0)
|
||||
affected_mob.adjust_bodytemperature(5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * seconds_per_tick, 0, affected_mob.get_body_temp_normal())
|
||||
if(affected_mob.getBruteLoss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.get_brute_loss() && SPT_PROB(10, seconds_per_tick))
|
||||
need_mob_update += affected_mob.heal_bodypart_damage(brute = 1 * REM * seconds_per_tick, burn = 0, updating_health = FALSE)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
@@ -759,7 +759,7 @@
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.SetSleeping(0)
|
||||
affected_mob.adjust_bodytemperature(5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * seconds_per_tick, 0, affected_mob.get_body_temp_normal())
|
||||
if(affected_mob.getBruteLoss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.get_brute_loss() && SPT_PROB(10, seconds_per_tick))
|
||||
need_mob_update += affected_mob.heal_bodypart_damage(brute = 1 * REM * seconds_per_tick, burn = 0, updating_health = FALSE)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
@@ -775,10 +775,10 @@
|
||||
/datum/reagent/consumable/doctor_delight/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustToxLoss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
if(affected_mob.nutrition && (affected_mob.nutrition - 2 > 0))
|
||||
var/obj/item/organ/liver/liver = affected_mob.get_organ_slot(ORGAN_SLOT_LIVER)
|
||||
if(!(HAS_TRAIT(liver, TRAIT_MEDICAL_METABOLISM)))
|
||||
@@ -890,7 +890,7 @@
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.SetSleeping(0)
|
||||
affected_mob.adjust_bodytemperature(5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * seconds_per_tick, 0, affected_mob.get_body_temp_normal())
|
||||
if(affected_mob.getBruteLoss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.get_brute_loss() && SPT_PROB(10, seconds_per_tick))
|
||||
need_mob_update += affected_mob.heal_bodypart_damage(brute = 1 * REM * seconds_per_tick, burn = 0, updating_health = FALSE)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
@@ -955,7 +955,7 @@
|
||||
|
||||
/datum/reagent/consumable/hot_coco/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
affected_mob.adjust_bodytemperature(5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * seconds_per_tick, 0, affected_mob.get_body_temp_normal())
|
||||
if(affected_mob.getBruteLoss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.get_brute_loss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.heal_bodypart_damage(brute = 1 * REM * seconds_per_tick, burn = 0, updating_health = FALSE))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
if(holder.has_reagent(/datum/reagent/consumable/capsaicin))
|
||||
@@ -1003,8 +1003,8 @@
|
||||
. = ..()
|
||||
if(IS_REVOLUTIONARY(drinker))
|
||||
drinker.set_dizzy_if_lower(10 SECONDS * REM * seconds_per_tick)
|
||||
if(drinker.getStaminaLoss() < 80)
|
||||
drinker.adjustStaminaLoss(12, required_biotype = affected_biotype) //The pomegranate stops free radicals! Har har.
|
||||
if(drinker.get_stamina_loss() < 80)
|
||||
drinker.adjust_stamina_loss(12, required_biotype = affected_biotype) //The pomegranate stops free radicals! Har har.
|
||||
|
||||
/datum/reagent/consumable/parsnipjuice
|
||||
name = "Parsnip Juice"
|
||||
@@ -1113,8 +1113,8 @@
|
||||
|
||||
/datum/reagent/consumable/aloejuice/on_mob_life(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.getToxLoss() && SPT_PROB(16, seconds_per_tick))
|
||||
if(affected_mob.adjustToxLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.get_tox_loss() && SPT_PROB(16, seconds_per_tick))
|
||||
if(affected_mob.adjust_tox_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/agua_fresca
|
||||
@@ -1128,8 +1128,8 @@
|
||||
/datum/reagent/consumable/agua_fresca/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
affected_mob.adjust_bodytemperature(-8 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * seconds_per_tick, affected_mob.get_body_temp_normal())
|
||||
if(affected_mob.getToxLoss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.adjustToxLoss(-0.5, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.get_tox_loss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(affected_mob.adjust_tox_loss(-0.5, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/mushroom_tea
|
||||
@@ -1143,7 +1143,7 @@
|
||||
/datum/reagent/consumable/mushroom_tea/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(islizard(affected_mob))
|
||||
if(affected_mob.adjustOxyLoss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type))
|
||||
if(affected_mob.adjust_oxy_loss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
//Moth Stuff
|
||||
@@ -1164,7 +1164,7 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/strawberry_banana
|
||||
name = "strawberry banana smoothie"
|
||||
name = "Strawberry Banana Smoothie"
|
||||
description = "A classic smoothie made from strawberries and bananas."
|
||||
color = "#FF9999"
|
||||
nutriment_factor = 0
|
||||
@@ -1172,7 +1172,7 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/berry_blast
|
||||
name = "berry blast smoothie"
|
||||
name = "Berry Blast Smoothie"
|
||||
description = "A classic smoothie made from mixed berries."
|
||||
color = "#A76DC5"
|
||||
nutriment_factor = 0
|
||||
@@ -1180,7 +1180,7 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/funky_monkey
|
||||
name = "funky monkey smoothie"
|
||||
name = "Funky Monkey Smoothie"
|
||||
description = "A classic smoothie made from chocolate and bananas."
|
||||
color = COLOR_BROWNER_BROWN
|
||||
nutriment_factor = 0
|
||||
@@ -1188,7 +1188,7 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/green_giant
|
||||
name = "green giant smoothie"
|
||||
name = "Green Giant Smoothie"
|
||||
description = "A green vegetable smoothie, made without vegetables."
|
||||
color = COLOR_VERY_DARK_LIME_GREEN
|
||||
nutriment_factor = 0
|
||||
@@ -1196,7 +1196,7 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/melon_baller
|
||||
name = "melon baller smoothie"
|
||||
name = "Melon Baller Smoothie"
|
||||
description = "A classic smoothie made from melons."
|
||||
color = "#D22F55"
|
||||
nutriment_factor = 0
|
||||
@@ -1204,7 +1204,7 @@
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/consumable/vanilla_dream
|
||||
name = "vanilla dream smoothie"
|
||||
name = "Vanilla Dream Smoothie"
|
||||
description = "A classic smoothie made from vanilla and fresh cream."
|
||||
color = "#FFF3DD"
|
||||
nutriment_factor = 0
|
||||
@@ -1230,8 +1230,8 @@
|
||||
/datum/reagent/consumable/cucumberlemonade/on_mob_life(mob/living/carbon/doll, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
doll.adjust_bodytemperature(-8 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * seconds_per_tick, doll.get_body_temp_normal())
|
||||
if(doll.getToxLoss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(doll.adjustToxLoss(-0.5, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(doll.get_tox_loss() && SPT_PROB(10, seconds_per_tick))
|
||||
if(doll.adjust_tox_loss(-0.5, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/mississippi_queen
|
||||
@@ -1267,8 +1267,8 @@
|
||||
affected_mob.set_silence_if_lower(MIMEDRINK_SILENCE_DURATION)
|
||||
affected_mob.adjust_drowsiness(-6 SECONDS * REM * seconds_per_tick)
|
||||
affected_mob.AdjustSleeping(-4 SECONDS * REM * seconds_per_tick)
|
||||
if(affected_mob.getToxLoss() && SPT_PROB(25, seconds_per_tick))
|
||||
if(affected_mob.adjustToxLoss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.get_tox_loss() && SPT_PROB(25, seconds_per_tick))
|
||||
if(affected_mob.adjust_tox_loss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/consumable/hakka_mate
|
||||
@@ -1333,9 +1333,9 @@
|
||||
if(found_valid_cooler)
|
||||
affected_mob.clear_alert("punch_bad")
|
||||
affected_mob.throw_alert("punch_good", /atom/movable/screen/alert/fruit_punch_good)
|
||||
need_mob_update = affected_mob.adjustToxLoss(-0.6 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-0.6 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update = affected_mob.adjustFireLoss(-0.6 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update = affected_mob.adjust_tox_loss(-0.6 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-0.6 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update = affected_mob.adjust_fire_loss(-0.6 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
affected_mob.remove_movespeed_modifier(/datum/movespeed_modifier/punch_punishment)
|
||||
else
|
||||
affected_mob.clear_alert("punch_good")
|
||||
|
||||
@@ -93,8 +93,8 @@
|
||||
/datum/reagent/drug/nicotine/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustToxLoss(0.1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(1.1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update = affected_mob.adjust_tox_loss(0.1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(1.1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -122,14 +122,14 @@
|
||||
affected_human.set_facial_hairstyle("Shaved", update = FALSE)
|
||||
affected_human.set_hairstyle("Bald", update = FALSE)
|
||||
affected_mob.set_species(/datum/species/human/krokodil_addict)
|
||||
if(affected_mob.adjustBruteLoss(50 * REM, updating_health = FALSE, required_bodytype = affected_bodytype)) // holy shit your skin just FELL THE FUCK OFF
|
||||
if(affected_mob.adjust_brute_loss(50 * REM, updating_health = FALSE, required_bodytype = affected_bodytype)) // holy shit your skin just FELL THE FUCK OFF
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/drug/krokodil/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.25 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update = affected_mob.adjustToxLoss(0.25 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 0.25 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update = affected_mob.adjust_tox_loss(0.25 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -176,9 +176,9 @@
|
||||
affected_mob.add_mood_event("tweaking", /datum/mood_event/stimulant_medium)
|
||||
affected_mob.AdjustAllImmobility(-40 * REM * seconds_per_tick)
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustStaminaLoss(-5 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_stamina_loss(-5 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
affected_mob.set_jitter_if_lower(4 SECONDS * REM * seconds_per_tick)
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, rand(1, 4) * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, rand(1, 4) * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
if(need_mob_update)
|
||||
. = UPDATE_MOB_HEALTH
|
||||
if(SPT_PROB(2.5, seconds_per_tick))
|
||||
@@ -195,8 +195,8 @@
|
||||
affected_mob.visible_message(span_danger("[affected_mob]'s hands flip out and flail everywhere!"))
|
||||
affected_mob.drop_all_held_items()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, (rand(5, 10) / 10) * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update = affected_mob.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, (rand(5, 10) / 10) * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -233,8 +233,8 @@
|
||||
to_chat(affected_mob, span_notice("[high_message]"))
|
||||
affected_mob.add_mood_event("salted", /datum/mood_event/stimulant_heavy)
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustStaminaLoss(-6 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 4 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update = affected_mob.adjust_stamina_loss(-6 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 4 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
affected_mob.adjust_hallucinations(10 SECONDS * REM * seconds_per_tick)
|
||||
if(need_mob_update)
|
||||
. = UPDATE_MOB_HEALTH
|
||||
@@ -269,11 +269,11 @@
|
||||
if(SPT_PROB(2.5, seconds_per_tick))
|
||||
to_chat(affected_mob, span_notice("[high_message]"))
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustStaminaLoss(-18 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustToxLoss(0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_stamina_loss(-18 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if(SPT_PROB(30, seconds_per_tick))
|
||||
affected_mob.losebreath++
|
||||
need_mob_update += affected_mob.adjustOxyLoss(1, FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(1, FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -302,7 +302,7 @@
|
||||
affected_mob.remove_status_effect(/datum/status_effect/jitter)
|
||||
affected_mob.remove_status_effect(/datum/status_effect/confusion)
|
||||
affected_mob.disgust = 0
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.2 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 0.2 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/drug/happiness/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
@@ -319,7 +319,7 @@
|
||||
if(3)
|
||||
affected_mob.emote("frown")
|
||||
affected_mob.add_mood_event("happiness_drug", /datum/mood_event/happiness_drug_bad_od)
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 0.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/drug/pumpup
|
||||
@@ -347,7 +347,7 @@
|
||||
to_chat(affected_mob, span_notice("[pick("Go! Go! GO!", "You feel ready...", "You feel invincible...")]"))
|
||||
if(SPT_PROB(7.5, seconds_per_tick))
|
||||
affected_mob.losebreath++
|
||||
affected_mob.adjustToxLoss(2, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
affected_mob.adjust_tox_loss(2, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/drug/pumpup/overdose_start(mob/living/affected_mob)
|
||||
@@ -364,10 +364,10 @@
|
||||
affected_mob.emote(pick("twitch","drool"))
|
||||
if(SPT_PROB(10, seconds_per_tick))
|
||||
affected_mob.losebreath++
|
||||
affected_mob.adjustStaminaLoss(4, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
affected_mob.adjust_stamina_loss(4, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = TRUE
|
||||
if(SPT_PROB(7.5, seconds_per_tick))
|
||||
need_mob_update += affected_mob.adjustToxLoss(2, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(2, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -397,7 +397,7 @@
|
||||
|
||||
/datum/reagent/drug/maint/powder/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.1 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 0.1 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
// 5x if you want to OD, you can potentially go higher, but good luck managing the brain damage.
|
||||
var/amt = max(round(volume/3, 0.1), 1)
|
||||
affected_mob?.mind?.experience_multiplier_reasons |= type
|
||||
@@ -410,7 +410,7 @@
|
||||
|
||||
/datum/reagent/drug/maint/powder/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 6 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 6 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/drug/maint/sludge
|
||||
@@ -425,7 +425,7 @@
|
||||
|
||||
/datum/reagent/drug/maint/sludge/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustToxLoss(0.5 * REM * seconds_per_tick, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(0.5 * REM * seconds_per_tick, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/drug/maint/sludge/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
@@ -435,9 +435,9 @@
|
||||
var/mob/living/carbon/carbie = affected_mob
|
||||
//You will be vomiting so the damage is really for a few ticks before you flush it out of your system
|
||||
var/need_mob_update
|
||||
need_mob_update = carbie.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = carbie.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if(SPT_PROB(5, seconds_per_tick))
|
||||
need_mob_update += carbie.adjustToxLoss(5, required_biotype = affected_biotype, updating_health = FALSE)
|
||||
need_mob_update += carbie.adjust_tox_loss(5, required_biotype = affected_biotype, updating_health = FALSE)
|
||||
carbie.vomit(VOMIT_CATEGORY_DEFAULT)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
@@ -453,14 +453,14 @@
|
||||
/datum/reagent/drug/maint/tar/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
affected_mob.AdjustAllImmobility(-10 * REM * seconds_per_tick)
|
||||
affected_mob.adjustOrganLoss(ORGAN_SLOT_LIVER, 1.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
affected_mob.adjust_organ_loss(ORGAN_SLOT_LIVER, 1.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/drug/maint/tar/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_update
|
||||
need_update = affected_mob.adjustToxLoss(5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_LIVER, 3 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_update = affected_mob.adjust_tox_loss(5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_LIVER, 3 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
if(need_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -613,7 +613,7 @@
|
||||
|
||||
/datum/reagent/drug/blastoff/on_mob_life(mob/living/carbon/dancer, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(dancer.adjustOrganLoss(ORGAN_SLOT_LUNGS, 0.3 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
if(dancer.adjust_organ_loss(ORGAN_SLOT_LUNGS, 0.3 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
dancer.AdjustKnockdown(-20)
|
||||
|
||||
@@ -622,7 +622,7 @@
|
||||
|
||||
/datum/reagent/drug/blastoff/overdose_process(mob/living/dancer, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(dancer.adjustOrganLoss(ORGAN_SLOT_LUNGS, 0.3 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
if(dancer.adjust_organ_loss(ORGAN_SLOT_LUNGS, 0.3 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
|
||||
if(SPT_PROB(BLASTOFF_DANCE_MOVE_CHANCE_PER_UNIT * volume, seconds_per_tick))
|
||||
@@ -685,7 +685,7 @@
|
||||
|
||||
/datum/reagent/drug/saturnx/on_mob_life(mob/living/carbon/invisible_man, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(invisible_man.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.3 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
if(invisible_man.adjust_organ_loss(ORGAN_SLOT_LIVER, 0.3 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/drug/saturnx/on_mob_metabolize(mob/living/invisible_man)
|
||||
@@ -761,7 +761,7 @@
|
||||
invisible_man.emote("giggle")
|
||||
if(SPT_PROB(5, seconds_per_tick))
|
||||
invisible_man.emote("laugh")
|
||||
if(invisible_man.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.4 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
if(invisible_man.adjust_organ_loss(ORGAN_SLOT_LIVER, 0.4 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/drug/saturnx/stable
|
||||
@@ -834,13 +834,13 @@ If you have at over 25u in your body you restore more than 20 stamina per cycle,
|
||||
to_chat(druggo, span_nicegreen(pick("You feel the cowardice melt away...", "You feel unbothered by the judgements of others.", "My life feels lovely!", "You lower your snout... and suddenly feel more charitable!")))
|
||||
else
|
||||
stamina_heal_per_unit = 6
|
||||
druggo.adjustStaminaLoss(-stamina_heal_per_unit * trans_volume)
|
||||
druggo.adjust_stamina_loss(-stamina_heal_per_unit * trans_volume)
|
||||
|
||||
/datum/reagent/drug/kronkaine/on_mob_life(mob/living/carbon/kronkaine_fiend, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
kronkaine_fiend.add_mood_event("tweaking", /datum/mood_event/stimulant_medium)
|
||||
if(kronkaine_fiend.adjustOrganLoss(ORGAN_SLOT_HEART, (0.1 + 0.04 * volume) * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
if(kronkaine_fiend.adjust_organ_loss(ORGAN_SLOT_HEART, (0.1 + 0.04 * volume) * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
need_mob_update = UPDATE_MOB_HEALTH
|
||||
if(kronkaine_fiend.get_organ_loss(ORGAN_SLOT_HEART) >= 75 && prob(15))
|
||||
to_chat(kronkaine_fiend, span_userdanger("You feel like your heart is about to explode!"))
|
||||
@@ -852,7 +852,7 @@ If you have at over 25u in your body you restore more than 20 stamina per cycle,
|
||||
|
||||
The reason why I choose to add the adrenal crisis anti-cheese mechanic is because the main combat benefit is so front loaded, you could easily negate all the risk and downsides by mixing it with a small amount of a purger like haloperidol.
|
||||
I think that level of safety goes against the design we would like achieve with drugs; great rewards but at the cost of great risk.*/
|
||||
if(kronkaine_fiend.getStaminaLoss() > 30)
|
||||
if(kronkaine_fiend.get_stamina_loss() > 30)
|
||||
for(var/possible_purger in kronkaine_fiend.reagents.reagent_list)
|
||||
if(istype(possible_purger, /datum/reagent/medicine/c2/multiver) || istype(possible_purger, /datum/reagent/medicine/haloperidol))
|
||||
if(kronkaine_fiend.HasDisease(/datum/disease/adrenal_crisis))
|
||||
@@ -860,13 +860,13 @@ If you have at over 25u in your body you restore more than 20 stamina per cycle,
|
||||
kronkaine_fiend.visible_message(span_bolddanger("[kronkaine_fiend.name] suddenly tenses up, it looks like the shock is causing their body to shut down!"), span_userdanger("The sudden shock in combination with the cocktail of drugs and purgatives in your body makes your adrenal system go haywire. Uh oh!"))
|
||||
kronkaine_fiend.ForceContractDisease(new /datum/disease/adrenal_crisis(), FALSE, TRUE) //We punish players for purging, since unchecked purging would allow players to reap the stamina healing benefits without any drawbacks. This also has the benefit of making haloperidol a counter, like it is supposed to be.
|
||||
break
|
||||
need_mob_update = kronkaine_fiend.adjustStaminaLoss(-0.8 * volume * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = kronkaine_fiend.adjust_stamina_loss(-0.8 * volume * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/drug/kronkaine/overdose_process(mob/living/kronkaine_fiend, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(kronkaine_fiend.adjustOrganLoss(ORGAN_SLOT_HEART, 0.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
if(kronkaine_fiend.adjust_organ_loss(ORGAN_SLOT_HEART, 0.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
kronkaine_fiend.set_jitter_if_lower(20 SECONDS * REM * seconds_per_tick)
|
||||
if(SPT_PROB(10, seconds_per_tick))
|
||||
|
||||
@@ -194,7 +194,7 @@
|
||||
span_userdanger("You're covered in boiling oil!"))
|
||||
if(FryLoss)
|
||||
exposed_mob.emote("scream")
|
||||
exposed_mob.adjustFireLoss(FryLoss)
|
||||
exposed_mob.adjust_fire_loss(FryLoss)
|
||||
playsound(exposed_mob, 'sound/machines/fryer/deep_fryer_emerge.ogg', 25, TRUE)
|
||||
ADD_TRAIT(exposed_mob, TRAIT_OIL_FRIED, "cooking_oil_react")
|
||||
addtimer(CALLBACK(exposed_mob, TYPE_PROC_REF(/mob/living, unfry_mob)), 2 SECONDS)
|
||||
@@ -422,7 +422,7 @@
|
||||
if(reac_volume < 5)
|
||||
return
|
||||
for(var/mob/living/basic/slime/exposed_slime in exposed_turf)
|
||||
exposed_slime.adjustToxLoss(rand(15,30))
|
||||
exposed_slime.adjust_tox_loss(rand(15,30))
|
||||
|
||||
/datum/reagent/consumable/condensedcapsaicin
|
||||
name = "Condensed Capsaicin"
|
||||
@@ -825,10 +825,10 @@
|
||||
holder.add_reagent(/datum/reagent/consumable/sugar, 3 * REM * seconds_per_tick)
|
||||
var/need_mob_update
|
||||
if(SPT_PROB(33, seconds_per_tick))
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-1, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-1, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(-1, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustToxLoss(-1, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-1, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-1, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(-1, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-1, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -914,9 +914,9 @@
|
||||
affected_mob.Unconscious(40 * REM * seconds_per_tick, FALSE)
|
||||
if(SPT_PROB(10, seconds_per_tick))
|
||||
affected_mob.losebreath += 4
|
||||
affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2*REM, 150, affected_biotype)
|
||||
affected_mob.adjustToxLoss(3*REM, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
affected_mob.adjustStaminaLoss(10*REM, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 2*REM, 150, affected_biotype)
|
||||
affected_mob.adjust_tox_loss(3*REM, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
affected_mob.adjust_stamina_loss(10*REM, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
affected_mob.set_eye_blur_if_lower(10 SECONDS)
|
||||
need_mob_update = TRUE
|
||||
if(need_mob_update)
|
||||
@@ -960,8 +960,8 @@
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
if(SPT_PROB(55, seconds_per_tick))
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -989,7 +989,7 @@
|
||||
/datum/reagent/consumable/liquidelectricity/enriched/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(isethereal(affected_mob))
|
||||
affected_mob.blood_volume += 1 * seconds_per_tick
|
||||
affected_mob.adjust_blood_volume(1 * seconds_per_tick)
|
||||
else if(SPT_PROB(10, seconds_per_tick)) //lmao at the newbs who eat energy bars
|
||||
affected_mob.electrocute_act(rand(5,10), "Liquid Electricity in their body", 1, SHOCK_NOGLOVES) //the shock is coming from inside the house
|
||||
playsound(affected_mob, SFX_SPARKS, 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
var/need_mob_update
|
||||
|
||||
if(liver)//Though, lets be safe
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_LIVER, liver_damage * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_LIVER, liver_damage * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
else
|
||||
need_mob_update = affected_mob.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)//Incase of no liver!
|
||||
need_mob_update = affected_mob.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)//Incase of no liver!
|
||||
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
/datum/reagent/inverse/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustToxLoss(tox_damage * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(tox_damage * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
//Failed chems - generally use inverse if you want to use a impure subtype for it
|
||||
@@ -106,30 +106,19 @@
|
||||
holder.del_reagent(type)
|
||||
return
|
||||
|
||||
human_thing.apply_status_effect(/datum/status_effect/frozenstasis/irresistable)
|
||||
if(!human_thing.has_status_effect(/datum/status_effect/grouped/stasis, STASIS_CHEMICAL_EFFECT))
|
||||
human_thing.apply_status_effect(/datum/status_effect/grouped/stasis, STASIS_CHEMICAL_EFFECT)
|
||||
human_thing.apply_status_effect(/datum/status_effect/reagent_effect/freeze, type)
|
||||
|
||||
/datum/reagent/inverse/cryostylane/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(!affected_mob.has_status_effect(/datum/status_effect/frozenstasis/irresistable))
|
||||
holder.remove_reagent(type, volume) // remove it all if we were broken out
|
||||
return
|
||||
metabolization_rate += 0.01 //speed up our metabolism over time. Chop chop.
|
||||
|
||||
/datum/reagent/inverse/cryostylane/metabolize_reagent(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
if(current_cycle >= 60)
|
||||
holder.remove_reagent(type, volume) // remove it all if we're past 60 cycles
|
||||
return
|
||||
|
||||
return ..()
|
||||
|
||||
/datum/reagent/inverse/cryostylane/on_mob_end_metabolize(mob/living/affected_mob)
|
||||
. = ..()
|
||||
affected_mob.remove_status_effect(/datum/status_effect/frozenstasis/irresistable)
|
||||
affected_mob.remove_status_effect(/datum/status_effect/grouped/stasis, STASIS_CHEMICAL_EFFECT)
|
||||
|
||||
/datum/reagent/inverse/cryostylane/on_mob_delete(mob/living/affected_mob, amount)
|
||||
. = ..()
|
||||
affected_mob.remove_status_effect(/datum/status_effect/frozenstasis/irresistable)
|
||||
affected_mob.remove_status_effect(/datum/status_effect/grouped/stasis, STASIS_CHEMICAL_EFFECT)
|
||||
|
||||
affected_mob.remove_status_effect(/datum/status_effect/reagent_effect/freeze)
|
||||
|
||||
+24
-25
@@ -41,13 +41,13 @@
|
||||
var/pick = pick("brute", "burn", "tox", "oxy")
|
||||
switch(pick)
|
||||
if("brute")
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-0.5, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-0.5, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
if("burn")
|
||||
need_mob_update += affected_mob.adjustFireLoss(-0.5, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-0.5, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
if("tox")
|
||||
need_mob_update += affected_mob.adjustToxLoss(-0.5, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-0.5, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if("oxy")
|
||||
need_mob_update += affected_mob.adjustOxyLoss(-0.5, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(-0.5, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -132,7 +132,7 @@ Basically, we fill the time between now and 2s from now with hands based off the
|
||||
|
||||
/datum/reagent/inverse/libitoil/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
affected_mob.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.1 * REM * seconds_per_tick)
|
||||
affected_mob.adjust_organ_loss(ORGAN_SLOT_LIVER, 0.1 * REM * seconds_per_tick)
|
||||
|
||||
/datum/reagent/inverse/libitoil/on_mob_add(mob/living/affected_mob, amount)
|
||||
. = ..()
|
||||
@@ -192,7 +192,7 @@ Basically, we fill the time between now and 2s from now with hands based off the
|
||||
|
||||
/datum/reagent/peptides_failed/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.25 * seconds_per_tick, 170))
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 0.25 * seconds_per_tick, 170))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
affected_mob.adjust_nutrition(-5 * REAGENTS_METABOLISM * seconds_per_tick)
|
||||
|
||||
@@ -224,7 +224,7 @@ Basically, we fill the time between now and 2s from now with hands based off the
|
||||
tox_damage = 0
|
||||
|
||||
/datum/reagent/inverse/aiuri/on_mob_life(mob/living/carbon/owner, seconds_per_tick, times_fired)
|
||||
owner.adjustOrganLoss(ORGAN_SLOT_EYES, 0.1 * REM * seconds_per_tick)
|
||||
owner.adjust_organ_loss(ORGAN_SLOT_EYES, 0.1 * REM * seconds_per_tick)
|
||||
owner.adjust_eye_blur(amount_of_blur_applied * seconds_per_tick)
|
||||
. = ..()
|
||||
return TRUE
|
||||
@@ -264,7 +264,7 @@ Basically, we fill the time between now and 2s from now with hands based off the
|
||||
|
||||
/datum/reagent/inverse/hercuri/overdose_process(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_LIVER, 2 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)) //Makes it so you can't abuse it with pyroxadone very easily (liver dies from 25u unless it's fully upgraded)
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_LIVER, 2 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)) //Makes it so you can't abuse it with pyroxadone very easily (liver dies from 25u unless it's fully upgraded)
|
||||
. = UPDATE_MOB_HEALTH
|
||||
var/heating = 10 * creation_purity * REM * seconds_per_tick * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
affected_mob.adjust_bodytemperature(heating) //hot hot
|
||||
@@ -409,7 +409,7 @@ Basically, we fill the time between now and 2s from now with hands based off the
|
||||
time_until_next_poison -= seconds_per_tick * (1 SECONDS)
|
||||
if (time_until_next_poison <= 0)
|
||||
time_until_next_poison = poison_interval
|
||||
if(affected_mob.adjustToxLoss(creation_purity * 1, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(creation_purity * 1, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
//Kind of a healing effect, Presumably you're using syrinver to purge so this helps that
|
||||
@@ -461,9 +461,9 @@ Basically, we fill the time between now and 2s from now with hands based off the
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
if(length(affected_mob.reagents.reagent_list) > 1)
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_LUNGS, 0.5 * seconds_per_tick, required_organ_flag = affected_organ_flags) //Hey! It's everyone's favourite drawback from multiver!
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_LUNGS, 0.5 * seconds_per_tick, required_organ_flag = affected_organ_flags) //Hey! It's everyone's favourite drawback from multiver!
|
||||
else
|
||||
need_mob_update = affected_mob.adjustToxLoss(-2 * REM * creation_purity * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_tox_loss(-2 * REM * creation_purity * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -527,8 +527,8 @@ Basically, we fill the time between now and 2s from now with hands based off the
|
||||
for(var/datum/wound/iter_wound as anything in affected_mob.all_wounds)
|
||||
iter_wound.adjust_blood_flow(creation_impurity * REM * seconds_per_tick)
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustBruteLoss(5 * creation_impurity * REM * seconds_per_tick, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_HEART, ((1 + creation_impurity) * REM * seconds_per_tick), required_organ_flag = affected_organ_flags)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(5 * creation_impurity * REM * seconds_per_tick, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_HEART, ((1 + creation_impurity) * REM * seconds_per_tick), required_organ_flag = affected_organ_flags)
|
||||
if(affected_mob.health < HEALTH_THRESHOLD_CRIT)
|
||||
affected_mob.add_movespeed_modifier(/datum/movespeed_modifier/reagent/nooartrium)
|
||||
if(affected_mob.health < HEALTH_THRESHOLD_FULLCRIT)
|
||||
@@ -828,7 +828,7 @@ Basically, we fill the time between now and 2s from now with hands based off the
|
||||
if(SPT_PROB(25, seconds_per_tick))
|
||||
affected_mob.adjust_bodytemperature(30 * TEMPERATURE_DAMAGE_COEFFICIENT * REM * seconds_per_tick)
|
||||
affected_mob.set_jitter_if_lower(3 SECONDS)
|
||||
affected_mob.adjustStaminaLoss(5 * REM * seconds_per_tick)
|
||||
affected_mob.adjust_stamina_loss(5 * REM * seconds_per_tick)
|
||||
else if(SPT_PROB(5, seconds_per_tick))
|
||||
affected_mob.vomit(VOMIT_CATEGORY_BLOOD, lost_nutrition = 0, distance = 3)
|
||||
affected_mob.Paralyze(3 SECONDS)
|
||||
@@ -877,10 +877,10 @@ Basically, we fill the time between now and 2s from now with hands based off the
|
||||
/datum/reagent/inverse/atropine/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_STOMACH, -1 * REM * seconds_per_tick)
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_HEART, -1 * REM * seconds_per_tick)
|
||||
if(affected_mob.getToxLoss() <= 25)
|
||||
need_mob_update = affected_mob.adjustToxLoss(-0.5, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_STOMACH, -1 * REM * seconds_per_tick)
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_HEART, -1 * REM * seconds_per_tick)
|
||||
if(affected_mob.get_tox_loss() <= 25)
|
||||
need_mob_update = affected_mob.adjust_tox_loss(-0.5, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -897,7 +897,7 @@ Basically, we fill the time between now and 2s from now with hands based off the
|
||||
ORGAN_SLOT_APPENDIX,
|
||||
ORGAN_SLOT_TONGUE,
|
||||
)
|
||||
affected_mob.adjustOrganLoss(pick(possible_organs) ,2 * seconds_per_tick)
|
||||
affected_mob.adjust_organ_loss(pick(possible_organs) ,2 * seconds_per_tick)
|
||||
affected_mob.reagents.remove_reagent(type, 1 * REM * seconds_per_tick)
|
||||
|
||||
/datum/reagent/inverse/ammoniated_mercury
|
||||
@@ -1010,10 +1010,10 @@ Basically, we fill the time between now and 2s from now with hands based off the
|
||||
|
||||
if(is_simian(affected_mob))
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
|
||||
if(holder.has_reagent(/datum/reagent/consumable/monkey_energy))
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
|
||||
if(need_mob_update)
|
||||
. = UPDATE_MOB_HEALTH
|
||||
@@ -1035,7 +1035,7 @@ Basically, we fill the time between now and 2s from now with hands based off the
|
||||
if(overdosed)
|
||||
return
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_LIVER, -1 * REM * seconds_per_tick)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_LIVER, -1 * REM * seconds_per_tick)
|
||||
for(var/datum/wound/iter_wound as anything in affected_mob.all_wounds)
|
||||
if(iter_wound.blood_flow)
|
||||
if(holder.has_reagent(/datum/reagent/medicine/coagulant, 3))
|
||||
@@ -1043,8 +1043,7 @@ Basically, we fill the time between now and 2s from now with hands based off the
|
||||
else
|
||||
holder.add_reagent(/datum/reagent/medicine/coagulant, 0.2 * REM * seconds_per_tick)
|
||||
|
||||
if(affected_mob.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
need_mob_update += affected_mob.blood_volume += min(3 * seconds_per_tick, BLOOD_VOLUME_NORMAL)
|
||||
affected_mob.adjust_blood_volume(3 * seconds_per_tick, maximum = BLOOD_VOLUME_NORMAL)
|
||||
|
||||
switch(current_cycle)
|
||||
if(10)
|
||||
@@ -1205,7 +1204,7 @@ Basically, we fill the time between now and 2s from now with hands based off the
|
||||
/datum/reagent/inverse/baldium/on_mob_delete(mob/living/affected_mob)
|
||||
. = ..()
|
||||
affected_mob.log_message("has taken [delayed_burn_damage] burn damage from maldium's aftereffects", LOG_ATTACK)
|
||||
affected_mob.adjustFireLoss(delayed_burn_damage, updating_health = TRUE, required_bodytype = affected_bodytype)
|
||||
affected_mob.adjust_fire_loss(delayed_burn_damage, updating_health = TRUE, required_bodytype = affected_bodytype)
|
||||
|
||||
/datum/reagent/inverse/colorful_reagent
|
||||
name = "Dulling Reagent"
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
/datum/reagent/impurity/chloralax/on_mob_life(mob/living/carbon/owner, seconds_per_tick)
|
||||
. = ..()
|
||||
if(owner.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(owner.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
//Mindbreaker Toxin - Impure Version
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
/datum/reagent/medicine/adminordrazine/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
affected_mob.heal_bodypart_damage(brute = 5 * REM * seconds_per_tick, burn = 5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
affected_mob.adjustToxLoss(-5 * REM * seconds_per_tick, updating_health = FALSE, forced = TRUE, required_biotype = affected_biotype)
|
||||
affected_mob.adjust_tox_loss(-5 * REM * seconds_per_tick, updating_health = FALSE, forced = TRUE, required_biotype = affected_biotype)
|
||||
// Heal everything! That we want to. But really don't heal reagents. Otherwise we'll lose ... us.
|
||||
affected_mob.fully_heal(full_heal_flags & ~HEAL_ALL_REAGENTS) // there is no need to return UPDATE_MOB_HEALTH because this proc calls updatehealth()
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
holder.remove_reagent(/datum/reagent/toxin/mindbreaker, 5 * REM * seconds_per_tick)
|
||||
affected_mob.adjust_hallucinations(-20 SECONDS * REM * seconds_per_tick)
|
||||
if(SPT_PROB(16, seconds_per_tick))
|
||||
if(affected_mob.adjustToxLoss(1, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(1, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/synaphydramine
|
||||
@@ -113,7 +113,7 @@
|
||||
holder.remove_reagent(/datum/reagent/toxin/histamine, 5 * REM * seconds_per_tick)
|
||||
affected_mob.adjust_hallucinations(-20 SECONDS * REM * seconds_per_tick)
|
||||
if(SPT_PROB(16, seconds_per_tick))
|
||||
if(affected_mob.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/sansufentanyl
|
||||
@@ -127,7 +127,7 @@
|
||||
. = ..()
|
||||
affected_mob.adjust_confusion_up_to(3 SECONDS * REM * seconds_per_tick, 5 SECONDS)
|
||||
affected_mob.adjust_dizzy_up_to(6 SECONDS * REM * seconds_per_tick, 12 SECONDS)
|
||||
if(affected_mob.adjustStaminaLoss(1 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
if(affected_mob.adjust_stamina_loss(1 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
|
||||
if(SPT_PROB(10, seconds_per_tick))
|
||||
@@ -152,10 +152,10 @@
|
||||
return
|
||||
var/power = -0.00003 * (affected_mob.bodytemperature ** 2) + 3
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOxyLoss(-3 * power * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjustBruteLoss(-power * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-power * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustToxLoss(-power * REM * seconds_per_tick, updating_health = FALSE, forced = TRUE, required_biotype = affected_biotype) //heals TOXINLOVERs
|
||||
need_mob_update = affected_mob.adjust_oxy_loss(-3 * power * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(-power * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-power * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-power * REM * seconds_per_tick, updating_health = FALSE, forced = TRUE, required_biotype = affected_biotype) //heals TOXINLOVERs
|
||||
for(var/i in affected_mob.all_wounds)
|
||||
var/datum/wound/iter_wound = i
|
||||
iter_wound.on_xadone(power * REM * seconds_per_tick)
|
||||
@@ -191,10 +191,10 @@
|
||||
power *= 2
|
||||
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOxyLoss(-2 * power * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjustBruteLoss(-power * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-1.5 * power * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustToxLoss(-power * REM * seconds_per_tick, updating_health = FALSE, forced = TRUE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_oxy_loss(-2 * power * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(-power * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-1.5 * power * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-power * REM * seconds_per_tick, updating_health = FALSE, forced = TRUE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
. = UPDATE_MOB_HEALTH
|
||||
for(var/i in affected_mob.all_wounds)
|
||||
@@ -227,7 +227,7 @@
|
||||
|
||||
/datum/reagent/medicine/rezadone/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
affected_mob.set_dizzy_if_lower(10 SECONDS * REM * seconds_per_tick)
|
||||
affected_mob.set_jitter_if_lower(10 SECONDS * REM * seconds_per_tick)
|
||||
@@ -240,7 +240,7 @@
|
||||
var/functional_react_volume = reac_volume * (1 - touch_protection)
|
||||
|
||||
var/mob/living/carbon/patient = exposed_mob
|
||||
if(functional_react_volume >= 5 && HAS_TRAIT(patient, TRAIT_HUSK) && patient.getFireLoss() < UNHUSK_DAMAGE_THRESHOLD) //One carp yields 12u rezadone. // BUBBER EDIT CHANGE - Synthflesh works on ling husks - Original: HAS_TRAIT_FROM(patient, TRAIT_HUSK, BURN)
|
||||
if(functional_react_volume >= 5 && HAS_TRAIT(patient, TRAIT_HUSK) && patient.get_fire_loss() < UNHUSK_DAMAGE_THRESHOLD) //One carp yields 12u rezadone. // BUBBER EDIT CHANGE - Synthflesh works on ling husks - Original: HAS_TRAIT_FROM(patient, TRAIT_HUSK, BURN)
|
||||
patient.cure_husk() // BUBBER EDIT CHANGE - Synthflesh works on ling husks - Original: patient.cure_husk(BURN)
|
||||
patient.visible_message(span_nicegreen("[patient]'s body rapidly absorbs moisture from the environment, taking on a more healthy appearance."))
|
||||
|
||||
@@ -271,17 +271,17 @@
|
||||
/datum/reagent/medicine/oxandrolone/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
if(affected_mob.getFireLoss() > 25)
|
||||
need_mob_update = affected_mob.adjustFireLoss(-4 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_bodytype = affected_bodytype) //Twice as effective as AIURI for severe burns
|
||||
if(affected_mob.get_fire_loss() > 25)
|
||||
need_mob_update = affected_mob.adjust_fire_loss(-4 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_bodytype = affected_bodytype) //Twice as effective as AIURI for severe burns
|
||||
else
|
||||
need_mob_update = affected_mob.adjustFireLoss(-0.5 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_bodytype = affected_bodytype) //But only a quarter as effective for more minor ones
|
||||
need_mob_update = affected_mob.adjust_fire_loss(-0.5 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_bodytype = affected_bodytype) //But only a quarter as effective for more minor ones
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/oxandrolone/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.getFireLoss()) //It only makes existing burns worse
|
||||
if(affected_mob.adjustFireLoss(4.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_biotype)) // it's going to be healing either 4 or 0.5
|
||||
if(affected_mob.get_fire_loss()) //It only makes existing burns worse
|
||||
if(affected_mob.adjust_fire_loss(4.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_biotype)) // it's going to be healing either 4 or 0.5
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/salglu_solution
|
||||
@@ -291,30 +291,34 @@
|
||||
metabolization_rate = 0.5 * REAGENTS_METABOLISM
|
||||
overdose_threshold = 60
|
||||
taste_description = "sweetness and salt"
|
||||
var/last_added = 0
|
||||
var/maximum_reachable = BLOOD_VOLUME_NORMAL - 10 //So that normal blood regeneration can continue with salglu active
|
||||
var/extra_regen = 0.25 // in addition to acting as temporary blood, also add about half this much to their actual blood per second
|
||||
ph = 5.5
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/// Add about half this much extra blood regen per second.
|
||||
var/extra_regen = 0.25
|
||||
|
||||
/// Add many extra units of blood per unit of saline.
|
||||
var/dilution_per_unit = 5
|
||||
|
||||
/// Doesn't dilute blood beyond this point.
|
||||
var/dilution_cap = BLOOD_VOLUME_NORMAL
|
||||
|
||||
/// Only supplements blood types that use this restoration chem.
|
||||
var/required_restoration_chem = /datum/reagent/iron
|
||||
|
||||
/datum/reagent/medicine/salglu_solution/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update = FALSE
|
||||
|
||||
if(SPT_PROB(18, seconds_per_tick))
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_biotype)
|
||||
|
||||
// Regen is handled here, dilution is handled in [living/proc/get_blood_volume]
|
||||
var/datum/blood_type/blood_type = affected_mob.get_bloodtype()
|
||||
// Only suppliments base blood types
|
||||
if(blood_type?.restoration_chem != /datum/reagent/iron)
|
||||
return need_mob_update ? UPDATE_MOB_HEALTH : null
|
||||
if(last_added)
|
||||
affected_mob.blood_volume -= last_added
|
||||
last_added = 0
|
||||
if(affected_mob.blood_volume < maximum_reachable) //Can only up to double your effective blood level.
|
||||
var/amount_to_add = min(affected_mob.blood_volume, 5*volume)
|
||||
var/new_blood_level = min(affected_mob.blood_volume + amount_to_add, maximum_reachable)
|
||||
last_added = new_blood_level - affected_mob.blood_volume
|
||||
affected_mob.blood_volume = new_blood_level + (extra_regen * REM * seconds_per_tick)
|
||||
if(blood_type?.restoration_chem == required_restoration_chem)
|
||||
affected_mob.adjust_blood_volume(extra_regen * REM * seconds_per_tick)
|
||||
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -332,8 +336,8 @@
|
||||
holder.add_reagent(/datum/reagent/consumable/sugar, 1)
|
||||
holder.remove_reagent(/datum/reagent/medicine/salglu_solution, 0.5)
|
||||
if(SPT_PROB(18, seconds_per_tick))
|
||||
need_mob_update = affected_mob.adjustBruteLoss(0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -349,8 +353,8 @@
|
||||
/datum/reagent/medicine/mine_salve/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-0.25 * REM * seconds_per_tick, FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-0.25 * REM * seconds_per_tick, FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-0.25 * REM * seconds_per_tick, FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-0.25 * REM * seconds_per_tick, FALSE, required_bodytype = affected_bodytype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -399,20 +403,20 @@
|
||||
/datum/reagent/medicine/omnizine/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustToxLoss(-healing * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(-healing * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjustBruteLoss(-healing * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-healing * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = affected_mob.adjust_tox_loss(-healing * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(-healing * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(-healing * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-healing * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/omnizine/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustToxLoss(1.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(1.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjustBruteLoss(1.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(1.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = affected_mob.adjust_tox_loss(1.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(1.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(1.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(1.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -441,13 +445,13 @@
|
||||
continue
|
||||
affected_mob.reagents.remove_reagent(target_reagent.type, 3 * target_reagent.purge_multiplier * REM * seconds_per_tick)
|
||||
var/toxin_amount = round(affected_mob.health / 40, 0.1)
|
||||
if(affected_mob.adjustToxLoss(toxin_amount * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(toxin_amount * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/calomel/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
affected_mob.reagents.remove_reagent(type, 2 * REM * seconds_per_tick)
|
||||
if(affected_mob.adjustToxLoss(2.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(2.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/ammoniated_mercury
|
||||
@@ -470,8 +474,8 @@
|
||||
for(var/datum/reagent/toxin/target_reagent in affected_mob.reagents.reagent_list)
|
||||
toxin_chem_amount += 1
|
||||
affected_mob.reagents.remove_reagent(target_reagent.type, 5 * target_reagent.purge_multiplier * REM * seconds_per_tick)
|
||||
var/toxin_amount = round(affected_mob.getBruteLoss() / 15, 0.1) + round(affected_mob.getFireLoss() / 30, 0.1) - 3
|
||||
if(affected_mob.adjustToxLoss(toxin_amount * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
var/toxin_amount = round(affected_mob.get_brute_loss() / 15, 0.1) + round(affected_mob.get_fire_loss() / 30, 0.1) - 3
|
||||
if(affected_mob.adjust_tox_loss(toxin_amount * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
if(toxin_chem_amount == 0)
|
||||
for(var/datum/reagent/medicine/ammoniated_mercury/target_reagent in affected_mob.reagents.reagent_list)
|
||||
@@ -479,7 +483,7 @@
|
||||
|
||||
/datum/reagent/medicine/ammoniated_mercury/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustToxLoss(3 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(3 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/potass_iodide
|
||||
@@ -494,7 +498,7 @@
|
||||
/datum/reagent/medicine/potass_iodide/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(HAS_TRAIT(affected_mob, TRAIT_IRRADIATED))
|
||||
if(affected_mob.adjustToxLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/pen_acid
|
||||
@@ -510,7 +514,7 @@
|
||||
|
||||
/datum/reagent/medicine/pen_acid/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustToxLoss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
for(var/datum/reagent/reagent as anything in affected_mob.reagents.reagent_list)
|
||||
if(reagent != src)
|
||||
@@ -530,17 +534,17 @@
|
||||
/datum/reagent/medicine/sal_acid/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
if(affected_mob.getBruteLoss() > 25)
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-4 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
if(affected_mob.get_brute_loss() > 25)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-4 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
else
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-0.5 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-0.5 * REM * seconds_per_tick * normalise_creation_purity(), updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/sal_acid/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.getBruteLoss()) //It only makes existing bruises worse
|
||||
if(affected_mob.adjustBruteLoss(4.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC)) // it's going to be healing either 4 or 0.5
|
||||
if(affected_mob.get_brute_loss()) //It only makes existing bruises worse
|
||||
if(affected_mob.adjust_brute_loss(4.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = BODYTYPE_ORGANIC)) // it's going to be healing either 4 or 0.5
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/salbutamol
|
||||
@@ -556,7 +560,7 @@
|
||||
/datum/reagent/medicine/salbutamol/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOxyLoss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update = affected_mob.adjust_oxy_loss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
if(affected_mob.losebreath >= 4)
|
||||
var/obj/item/organ/lungs/affected_lungs = affected_mob.get_organ_slot(ORGAN_SLOT_LUNGS)
|
||||
var/our_respiration_type = affected_lungs ? affected_lungs.respiration_type : affected_mob.mob_respiration_type // use lungs' respiration type or mob_respiration_type if no lungs
|
||||
@@ -630,8 +634,8 @@
|
||||
if (current_cycle > secondary_overdose_effect_cycle_threshold)
|
||||
if (SPT_PROB(30, seconds_per_tick))
|
||||
carbon_mob.adjust_eye_blur_up_to(6 SECONDS, 30 SECONDS)
|
||||
if (carbon_mob.getStaminaLoss() < maximum_od_stamina_damage)
|
||||
carbon_mob.adjustStaminaLoss(seconds_per_tick)
|
||||
if (carbon_mob.get_stamina_loss() < maximum_od_stamina_damage)
|
||||
carbon_mob.adjust_stamina_loss(seconds_per_tick)
|
||||
|
||||
/datum/reagent/medicine/albuterol/proc/holder_lost_organ(datum/source, obj/item/organ/lost)
|
||||
SIGNAL_HANDLER
|
||||
@@ -680,7 +684,7 @@
|
||||
affected_mob.set_jitter_if_lower(20 SECONDS)
|
||||
|
||||
affected_mob.AdjustAllImmobility(-20 * REM * seconds_per_tick * normalise_creation_purity())
|
||||
affected_mob.adjustStaminaLoss(-4 * REM * seconds_per_tick * normalise_creation_purity(), updating_stamina = FALSE)
|
||||
affected_mob.adjust_stamina_loss(-4 * REM * seconds_per_tick * normalise_creation_purity(), updating_stamina = FALSE)
|
||||
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -695,7 +699,7 @@
|
||||
to_chat(affected_mob, span_notice("[pick("Your head pounds.", "You feel a tight pain in your chest.", "You find it hard to stay still.", "You feel your heart practically beating out of your chest.")]"))
|
||||
|
||||
if(SPT_PROB(18 * (1 + (1-normalise_creation_purity())), seconds_per_tick))
|
||||
affected_mob.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
affected_mob.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
affected_mob.losebreath++
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -847,7 +851,7 @@
|
||||
|
||||
/datum/reagent/medicine/oculine/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_EYES, 1.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_EYES, 1.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/oculine/flumpuline
|
||||
@@ -956,10 +960,10 @@
|
||||
. = ..()
|
||||
if(affected_mob.health <= affected_mob.crit_threshold)
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustToxLoss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustBruteLoss(-2* REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(-5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update = affected_mob.adjust_tox_loss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(-2* REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(-5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
if(need_mob_update)
|
||||
. = UPDATE_MOB_HEALTH
|
||||
var/obj/item/organ/lungs/affected_lungs = affected_mob.get_organ_slot(ORGAN_SLOT_LUNGS)
|
||||
@@ -972,14 +976,15 @@
|
||||
|
||||
/datum/reagent/medicine/atropine/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustToxLoss(0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
affected_mob.set_dizzy_if_lower(2 SECONDS * REM * seconds_per_tick)
|
||||
affected_mob.set_jitter_if_lower(2 SECONDS * REM * seconds_per_tick)
|
||||
|
||||
/datum/reagent/medicine/epinephrine
|
||||
name = "Epinephrine"
|
||||
description = "Very minor boost to stun resistance. Slowly heals damage if a patient is in critical condition, as well as regulating oxygen loss. Overdose causes weakness and toxin damage."
|
||||
description = "Stabilizes and slowly heals patients in critical condition, and slows suffocation. \
|
||||
Also provides a very minor boost to stun resistance. Overdose causes weakness and toxin damage."
|
||||
color = "#D2FFFA"
|
||||
metabolization_rate = 0.25 * REAGENTS_METABOLISM
|
||||
overdose_threshold = 30
|
||||
@@ -996,10 +1001,10 @@
|
||||
|
||||
var/need_mob_update
|
||||
if(affected_mob.health <= affected_mob.crit_threshold)
|
||||
need_mob_update = affected_mob.adjustToxLoss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustBruteLoss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update = affected_mob.adjust_tox_loss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
if(affected_mob.losebreath >= 4)
|
||||
var/obj/item/organ/lungs/affected_lungs = affected_mob.get_organ_slot(ORGAN_SLOT_LUNGS)
|
||||
var/our_respiration_type = affected_lungs ? affected_lungs.respiration_type : affected_mob.mob_respiration_type
|
||||
@@ -1009,7 +1014,7 @@
|
||||
if(affected_mob.losebreath < 0)
|
||||
affected_mob.losebreath = 0
|
||||
need_mob_update = TRUE
|
||||
need_mob_update += affected_mob.adjustStaminaLoss(-2 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
need_mob_update += affected_mob.adjust_stamina_loss(-2 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
if(SPT_PROB(10, seconds_per_tick))
|
||||
affected_mob.AdjustAllImmobility(-20)
|
||||
need_mob_update = TRUE
|
||||
@@ -1026,8 +1031,8 @@
|
||||
. = ..()
|
||||
if(SPT_PROB(18, REM * seconds_per_tick))
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustStaminaLoss(2.5 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
need_mob_update += affected_mob.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_stamina_loss(2.5 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
var/obj/item/organ/lungs/affected_lungs = affected_mob.get_organ_slot(ORGAN_SLOT_LUNGS)
|
||||
var/our_respiration_type = affected_lungs ? affected_lungs.respiration_type : affected_mob.mob_respiration_type
|
||||
if(our_respiration_type & affected_respiration_type)
|
||||
@@ -1074,7 +1079,7 @@
|
||||
|
||||
/// Calculates the amount of reagent to at a bare minimum make the target not dead
|
||||
/datum/reagent/medicine/strange_reagent/proc/calculate_amount_needed_to_revive(mob/living/benefactor)
|
||||
var/their_health = benefactor.getMaxHealth() - (benefactor.getBruteLoss() + benefactor.getFireLoss())
|
||||
var/their_health = benefactor.getMaxHealth() - (benefactor.get_brute_loss() + benefactor.get_fire_loss())
|
||||
if(their_health > 0)
|
||||
return 1
|
||||
|
||||
@@ -1082,7 +1087,7 @@
|
||||
|
||||
/// Calculates the amount of reagent that will be needed to both revive and full heal the target. Looks at healing_per_reagent_unit and excess_healing_ratio
|
||||
/datum/reagent/medicine/strange_reagent/proc/calculate_amount_needed_to_full_heal(mob/living/benefactor)
|
||||
var/their_health = benefactor.getBruteLoss() + benefactor.getFireLoss()
|
||||
var/their_health = benefactor.get_brute_loss() + benefactor.get_fire_loss()
|
||||
var/max_health = benefactor.getMaxHealth()
|
||||
if(their_health >= max_health)
|
||||
return 1
|
||||
@@ -1106,7 +1111,7 @@
|
||||
exposed_mob.visible_message(span_warning("[exposed_mob]'s body lets off a puff of smoke..."))
|
||||
return
|
||||
|
||||
if((exposed_mob.getBruteLoss() + exposed_mob.getFireLoss()) > (exposed_mob.getMaxHealth() * max_revive_damage_ratio))
|
||||
if((exposed_mob.get_brute_loss() + exposed_mob.get_fire_loss()) > (exposed_mob.getMaxHealth() * max_revive_damage_ratio))
|
||||
exposed_mob.visible_message(span_warning("[exposed_mob]'s body convulses violently, before falling still..."))
|
||||
return
|
||||
|
||||
@@ -1146,8 +1151,8 @@
|
||||
. = ..()
|
||||
var/damage_at_random = rand(0, 250)/100 //0 to 2.5
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustBruteLoss(damage_at_random * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(damage_at_random * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(damage_at_random * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(damage_at_random * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -1186,7 +1191,7 @@
|
||||
|
||||
/datum/reagent/medicine/mannitol/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -2 * REM * seconds_per_tick * normalise_creation_purity(), required_organ_flag = affected_organ_flags))
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, -2 * REM * seconds_per_tick * normalise_creation_purity(), required_organ_flag = affected_organ_flags))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/mannitol/overdose_start(mob/living/affected_mob)
|
||||
@@ -1233,7 +1238,7 @@
|
||||
return
|
||||
var/mob/living/carbon/affected_carbon = affected_mob
|
||||
if(initial_bdamage < affected_carbon.get_organ_loss(ORGAN_SLOT_BRAIN))
|
||||
affected_carbon.setOrganLoss(ORGAN_SLOT_BRAIN, initial_bdamage)
|
||||
affected_carbon.set_organ_loss(ORGAN_SLOT_BRAIN, initial_bdamage)
|
||||
|
||||
/datum/reagent/medicine/neurine/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
@@ -1244,7 +1249,7 @@
|
||||
|
||||
/datum/reagent/medicine/neurine/on_mob_dead(mob/living/carbon/affected_mob, seconds_per_tick)
|
||||
. = ..()
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -1 * REM * seconds_per_tick * normalise_creation_purity(), required_organ_flag = affected_organ_flags))
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, -1 * REM * seconds_per_tick * normalise_creation_purity(), required_organ_flag = affected_organ_flags))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/mutadone
|
||||
@@ -1299,7 +1304,7 @@
|
||||
for(var/effect in status_effects_to_clear)
|
||||
affected_mob.remove_status_effect(effect)
|
||||
affected_mob.reagents.remove_reagent(/datum/reagent/consumable/ethanol, 8 * REM * seconds_per_tick * normalise_creation_purity(), include_subtypes = TRUE)
|
||||
if(affected_mob.adjustToxLoss(-0.2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(-0.2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
affected_mob.adjust_drunk_effect(-10 * REM * seconds_per_tick * normalise_creation_purity())
|
||||
|
||||
@@ -1334,20 +1339,20 @@
|
||||
. = ..()
|
||||
if(affected_mob.health < 50 && affected_mob.health > 0)
|
||||
var/need_mob_update
|
||||
need_mob_update += affected_mob.adjustOxyLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjustToxLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustBruteLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
if(need_mob_update)
|
||||
. = UPDATE_MOB_HEALTH
|
||||
affected_mob.AdjustAllImmobility(-60 * REM * seconds_per_tick)
|
||||
affected_mob.adjustStaminaLoss(-12 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
affected_mob.adjust_stamina_loss(-12 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
|
||||
/datum/reagent/medicine/stimulants/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(SPT_PROB(18, seconds_per_tick))
|
||||
affected_mob.adjustStaminaLoss(2.5, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
affected_mob.adjustToxLoss(1, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
affected_mob.adjust_stamina_loss(2.5, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
affected_mob.adjust_tox_loss(1, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
affected_mob.losebreath++
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -1400,10 +1405,10 @@
|
||||
/datum/reagent/medicine/regen_jelly/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-1.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-1.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(-1.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjustToxLoss(-1.5 * REM * seconds_per_tick, updating_health = FALSE, forced = TRUE, required_biotype = affected_biotype) //heals TOXINLOVERs
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-1.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-1.5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(-1.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-1.5 * REM * seconds_per_tick, updating_health = FALSE, forced = TRUE, required_biotype = affected_biotype) //heals TOXINLOVERs
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -1418,11 +1423,11 @@
|
||||
/datum/reagent/medicine/syndicate_nanites/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-5 * REM * seconds_per_tick, updating_health = FALSE) //A ton of healing - this is a 50 telecrystal investment.
|
||||
need_mob_update += affected_mob.adjustFireLoss(-5 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(-15 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjustToxLoss(-5 * REM * seconds_per_tick, updating_health = FALSE, forced = TRUE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, -15 * REM * seconds_per_tick)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-5 * REM * seconds_per_tick, updating_health = FALSE) //A ton of healing - this is a 50 telecrystal investment.
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-5 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(-15 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-5 * REM * seconds_per_tick, updating_health = FALSE, forced = TRUE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, -15 * REM * seconds_per_tick)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -1447,19 +1452,19 @@
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
if(current_cycle < 25) //10u has to be processed before u get into THE FUN ZONE
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjustToxLoss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustStaminaLoss(-2 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1 * REM * seconds_per_tick, 150, affected_organ_flags) //This does, after all, come from ambrosia, and the most powerful ambrosia in existence, at that!
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-0.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_stamina_loss(-2 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 1 * REM * seconds_per_tick, 150, affected_organ_flags) //This does, after all, come from ambrosia, and the most powerful ambrosia in existence, at that!
|
||||
else
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype) //slow to start, but very quick healing once it gets going
|
||||
need_mob_update += affected_mob.adjustFireLoss(-5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjustToxLoss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustStaminaLoss(-8 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2 * REM * seconds_per_tick, 150, affected_organ_flags)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype) //slow to start, but very quick healing once it gets going
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-5 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-3 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_stamina_loss(-8 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 2 * REM * seconds_per_tick, 150, affected_organ_flags)
|
||||
affected_mob.adjust_jitter_up_to(6 SECONDS * REM * seconds_per_tick, 1 MINUTES)
|
||||
if(SPT_PROB(5, seconds_per_tick))
|
||||
affected_mob.say(return_hippie_line(), forced = /datum/reagent/medicine/earthsblood)
|
||||
@@ -1472,9 +1477,9 @@
|
||||
affected_mob.adjust_hallucinations_up_to(10 SECONDS * REM * seconds_per_tick, 120 SECONDS)
|
||||
var/need_mob_update
|
||||
if(current_cycle > 26)
|
||||
need_mob_update = affected_mob.adjustToxLoss(4 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_tox_loss(4 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if(current_cycle > 101) //podpeople get out reeeeeeeeeeeeeeeeeeeee
|
||||
need_mob_update += affected_mob.adjustToxLoss(6 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(6 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if(iscarbon(affected_mob))
|
||||
var/mob/living/carbon/hippie = affected_mob
|
||||
hippie.gain_trauma(/datum/brain_trauma/severe/pacifism)
|
||||
@@ -1515,13 +1520,13 @@
|
||||
if (affected_mob.get_timed_status_effect_duration(/datum/status_effect/hallucination) >= 10 SECONDS)
|
||||
affected_mob.adjust_hallucinations(-10 SECONDS * REM * seconds_per_tick)
|
||||
|
||||
if(affected_mob.getStaminaLoss() >= 100)
|
||||
if(affected_mob.get_stamina_loss() >= 100)
|
||||
affected_mob.reagents.remove_reagent(type, metabolization_rate * REM * seconds_per_tick)
|
||||
|
||||
var/need_mob_update = FALSE
|
||||
if(SPT_PROB(10, seconds_per_tick))
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1, 50, affected_organ_flags)
|
||||
need_mob_update += affected_mob.adjustStaminaLoss(2.5 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 1, 50, affected_organ_flags)
|
||||
need_mob_update += affected_mob.adjust_stamina_loss(2.5 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -1536,7 +1541,7 @@
|
||||
/datum/reagent/medicine/changelingadrenaline/on_mob_life(mob/living/carbon/metabolizer, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
metabolizer.AdjustAllImmobility(-20 * REM * seconds_per_tick)
|
||||
if(metabolizer.adjustStaminaLoss(-30 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
if(metabolizer.adjust_stamina_loss(-30 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
metabolizer.set_jitter_if_lower(20 SECONDS * REM * seconds_per_tick)
|
||||
metabolizer.set_dizzy_if_lower(20 SECONDS * REM * seconds_per_tick)
|
||||
@@ -1557,14 +1562,14 @@
|
||||
|
||||
/datum/reagent/medicine/changelingadrenaline/proc/on_stamcrit(mob/living/affected_mob)
|
||||
SIGNAL_HANDLER
|
||||
affected_mob?.setStaminaLoss(90, updating_stamina = TRUE)
|
||||
affected_mob?.set_stamina_loss(90, updating_stamina = TRUE)
|
||||
to_chat(affected_mob, span_changeling("Our gene-stim flares! We are invigorated, but its potency wanes."))
|
||||
volume -= (min(volume, 1))
|
||||
return STAMCRIT_CANCELLED
|
||||
|
||||
/datum/reagent/medicine/changelingadrenaline/overdose_process(mob/living/metabolizer, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(metabolizer.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE))
|
||||
if(metabolizer.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/changelinghaste
|
||||
@@ -1584,7 +1589,7 @@
|
||||
|
||||
/datum/reagent/medicine/changelinghaste/on_mob_life(mob/living/carbon/metabolizer, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(metabolizer.adjustToxLoss(2 * REM * seconds_per_tick, updating_health = FALSE))
|
||||
if(metabolizer.adjust_tox_loss(2 * REM * seconds_per_tick, updating_health = FALSE))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/higadrite
|
||||
@@ -1642,7 +1647,7 @@
|
||||
return
|
||||
overdose_threshold = overdose_threshold + ((rand(-10, 10) / 10) * REM * seconds_per_tick) // for extra fun
|
||||
metabolizer.AdjustAllImmobility(-5 * REM * seconds_per_tick)
|
||||
metabolizer.adjustStaminaLoss(-3 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
metabolizer.adjust_stamina_loss(-3 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
metabolizer.set_jitter_if_lower(1 SECONDS * REM * seconds_per_tick)
|
||||
metabolization_rate = 0.005 * REAGENTS_METABOLISM * rand(5, 20) // randomizes metabolism between 0.02 and 0.08 per second
|
||||
return UPDATE_MOB_HEALTH
|
||||
@@ -1665,8 +1670,8 @@
|
||||
affected_mob.losebreath++
|
||||
need_mob_update = TRUE
|
||||
if(41 to 80)
|
||||
need_mob_update = affected_mob.adjustOxyLoss(0.1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjustStaminaLoss(0.1 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_oxy_loss(0.1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_stamina_loss(0.1 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
affected_mob.adjust_jitter_up_to(2 SECONDS * REM * seconds_per_tick, 40 SECONDS)
|
||||
affected_mob.adjust_stutter_up_to(2 SECONDS * REM * seconds_per_tick, 40 SECONDS)
|
||||
affected_mob.set_dizzy_if_lower(20 SECONDS * REM * seconds_per_tick)
|
||||
@@ -1679,13 +1684,13 @@
|
||||
affected_mob.Paralyze(20) // you should be in a bad spot at this point unless epipen has been used
|
||||
if(81)
|
||||
to_chat(affected_mob, span_userdanger("You feel too exhausted to continue!")) // at this point you will eventually die unless you get charcoal
|
||||
need_mob_update = affected_mob.adjustOxyLoss(0.1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjustStaminaLoss(0.1 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_oxy_loss(0.1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_stamina_loss(0.1 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
if(82 to INFINITY)
|
||||
REMOVE_TRAIT(affected_mob, TRAIT_SLEEPIMMUNE, type)
|
||||
affected_mob.Sleeping(100 * REM * seconds_per_tick)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(1.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjustStaminaLoss(1.5 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(1.5 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_stamina_loss(1.5 * REM * seconds_per_tick, updating_stamina = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -1711,7 +1716,7 @@
|
||||
/datum/reagent/medicine/psicodine/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
affected_mob.adjust_hallucinations_up_to(10 SECONDS * REM * seconds_per_tick, 120 SECONDS)
|
||||
if(affected_mob.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/metafactor
|
||||
@@ -1742,7 +1747,7 @@
|
||||
|
||||
/datum/reagent/medicine/silibinin/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_LIVER, -2 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)) // Add a chance to cure liver trauma once implemented.
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_LIVER, -2 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)) // Add a chance to cure liver trauma once implemented.
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/polypyr //This is intended to be an ingredient in advanced chems.
|
||||
@@ -1757,8 +1762,8 @@
|
||||
/datum/reagent/medicine/polypyr/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) //I wanted a collection of small positive effects, this is as hard to obtain as coniine after all.
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_LUNGS, -0.25 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += affected_mob.adjustBruteLoss(-0.35 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_LUNGS, -0.25 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(-0.35 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -1771,7 +1776,7 @@
|
||||
|
||||
/datum/reagent/medicine/polypyr/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_LUNGS, 0.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_LUNGS, 0.5 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/granibitaluri
|
||||
@@ -1785,18 +1790,18 @@
|
||||
|
||||
/datum/reagent/medicine/granibitaluri/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/healamount = max(0.5 - round(0.01 * (affected_mob.getBruteLoss() + affected_mob.getFireLoss()), 0.1), 0) //base of 0.5 healing per cycle and loses 0.1 healing for every 10 combined brute/burn damage you have
|
||||
var/healamount = max(0.5 - round(0.01 * (affected_mob.get_brute_loss() + affected_mob.get_fire_loss()), 0.1), 0) //base of 0.5 healing per cycle and loses 0.1 healing for every 10 combined brute/burn damage you have
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustBruteLoss(-healamount * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-healamount * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(-healamount * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-healamount * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/medicine/granibitaluri/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_LIVER, 0.2 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += affected_mob.adjustToxLoss(0.2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype) //Only really deadly if you eat over 100u
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_LIVER, 0.2 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(0.2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype) //Only really deadly if you eat over 100u
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -1832,7 +1837,7 @@
|
||||
|
||||
/datum/reagent/medicine/coagulant/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(!affected_mob.blood_volume || !affected_mob.all_wounds)
|
||||
if(!CAN_HAVE_BLOOD(affected_mob) || !affected_mob.all_wounds)
|
||||
return
|
||||
|
||||
var/datum/wound/bloodiest_wound
|
||||
@@ -1853,7 +1858,7 @@
|
||||
|
||||
/datum/reagent/medicine/coagulant/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(!affected_mob.blood_volume)
|
||||
if(!CAN_HAVE_BLOOD(affected_mob))
|
||||
return
|
||||
|
||||
// SKYRAT EDIT CHANGE BEGIN -- Adds check for owner_flags
|
||||
@@ -1866,12 +1871,12 @@
|
||||
// SKYRAT EDIT CHANGE END
|
||||
if(SPT_PROB(7.5, seconds_per_tick))
|
||||
affected_mob.losebreath += rand(2, 4)
|
||||
affected_mob.adjustOxyLoss(rand(1, 3), updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
affected_mob.adjust_oxy_loss(rand(1, 3), updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
if(prob(30))
|
||||
to_chat(affected_mob, span_danger("You can feel your blood clotting up in your veins!"))
|
||||
else if(prob(10))
|
||||
to_chat(affected_mob, span_userdanger("You feel like your blood has stopped moving!"))
|
||||
affected_mob.adjustOxyLoss(rand(3, 4) * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
affected_mob.adjust_oxy_loss(rand(3, 4) * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
|
||||
if(prob(50))
|
||||
var/obj/item/organ/lungs/our_lungs = affected_mob.get_organ_slot(ORGAN_SLOT_LUNGS)
|
||||
@@ -1926,8 +1931,8 @@
|
||||
. = ..()
|
||||
if(SPT_PROB(8, seconds_per_tick))
|
||||
affected_mob.adjust_drowsiness(2 SECONDS * REM * seconds_per_tick)
|
||||
if(SPT_PROB(15, seconds_per_tick) && !affected_mob.getStaminaLoss())
|
||||
if(affected_mob.adjustStaminaLoss(10 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
if(SPT_PROB(15, seconds_per_tick) && !affected_mob.get_stamina_loss())
|
||||
if(affected_mob.adjust_stamina_loss(10 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
affected_mob.adjust_disgust(-10 * REM * seconds_per_tick)
|
||||
|
||||
|
||||
@@ -233,16 +233,15 @@
|
||||
liver.apply_organ_damage(-healing_bonus * REM * seconds_per_tick)
|
||||
|
||||
var/water_adaptation = HAS_TRAIT(affected_mob, TRAIT_WATER_ADAPTATION)
|
||||
if(affected_mob.blood_volume)
|
||||
var/blood_restored = water_adaptation ? 0.3 : 0.1
|
||||
affected_mob.blood_volume += blood_restored * REM * seconds_per_tick // water is good for you!
|
||||
var/blood_restored = water_adaptation ? 0.3 : 0.1
|
||||
affected_mob.adjust_blood_volume(blood_restored * REM * seconds_per_tick) // water is good for you!
|
||||
var/drunkness_restored = water_adaptation ? -0.5 : -0.25
|
||||
affected_mob.adjust_drunk_effect(drunkness_restored * REM * seconds_per_tick) // and even sobers you up slowly!!
|
||||
if(water_adaptation)
|
||||
var/need_mob_update = FALSE
|
||||
need_mob_update = affected_mob.adjustToxLoss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustBruteLoss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update = affected_mob.adjust_tox_loss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(-0.25 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
return need_mob_update ? UPDATE_MOB_HEALTH : .
|
||||
|
||||
// For weird backwards situations where water manages to get added to trays nutrients, as opposed to being snowflaked away like usual.
|
||||
@@ -366,7 +365,7 @@
|
||||
else if(HAS_TRAIT(affected_mob, TRAIT_EVIL) && SPT_PROB(25, seconds_per_tick)) //Congratulations, your committment to evil has now made holy water a deadly poison to you!
|
||||
if(!IS_CULTIST(affected_mob) || affected_mob.mind?.holy_role != HOLY_ROLE_PRIEST)
|
||||
affected_mob.emote("scream")
|
||||
need_mob_update += affected_mob.adjustFireLoss(3 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(3 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
|
||||
if(data["deciseconds_metabolized"] >= (1 MINUTES)) // 24 units
|
||||
if(IS_CULTIST(affected_mob))
|
||||
@@ -374,7 +373,7 @@
|
||||
affected_mob.Unconscious(10 SECONDS)
|
||||
else if(HAS_TRAIT(affected_mob, TRAIT_EVIL)) //At this much holy water, you're probably going to fucking melt. good luck
|
||||
if(!IS_CULTIST(affected_mob) || affected_mob.mind?.holy_role != HOLY_ROLE_PRIEST)
|
||||
need_mob_update += affected_mob.adjustFireLoss(10 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(10 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
affected_mob.remove_status_effect(/datum/status_effect/jitter)
|
||||
affected_mob.remove_status_effect(/datum/status_effect/speech/stutter)
|
||||
for(var/datum/status_effect/eldritch_painting/eldritch_curses in affected_mob.status_effects)
|
||||
@@ -442,7 +441,7 @@
|
||||
var/damage_to_inflict = 2 * max(1 - touch_protection, 0)
|
||||
|
||||
if(damage_to_inflict)
|
||||
exposed_mob.adjustFireLoss(damage_to_inflict)
|
||||
exposed_mob.adjust_fire_loss(damage_to_inflict)
|
||||
|
||||
/datum/reagent/fuel/unholywater //if you somehow managed to extract this from someone, dont splash it on yourself and have a smoke
|
||||
name = "Unholy Water"
|
||||
@@ -466,14 +465,14 @@
|
||||
if(IS_CULTIST(affected_mob))
|
||||
affected_mob.adjust_drowsiness(-10 SECONDS * REM * seconds_per_tick)
|
||||
affected_mob.AdjustAllImmobility(-40 * REM * seconds_per_tick)
|
||||
need_mob_update += affected_mob.adjustStaminaLoss(-10 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
need_mob_update += affected_mob.adjustToxLoss(-2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(-2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjustBruteLoss(-2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjust_stamina_loss(-10 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(-2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(-2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(-2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update = TRUE
|
||||
if(ishuman(affected_mob) && affected_mob.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
affected_mob.blood_volume += 3 * REM * seconds_per_tick
|
||||
if(ishuman(affected_mob))
|
||||
affected_mob.adjust_blood_volume(3 * REM * seconds_per_tick, maximum = BLOOD_VOLUME_NORMAL)
|
||||
|
||||
var/datum/wound/bloodiest_wound
|
||||
|
||||
@@ -485,11 +484,11 @@
|
||||
bloodiest_wound.adjust_blood_flow(-2 * REM * seconds_per_tick)
|
||||
|
||||
else // Will deal about 90 damage when 50 units are thrown
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3 * REM * seconds_per_tick, 150)
|
||||
need_mob_update += affected_mob.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjustFireLoss(1 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjustOxyLoss(1 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjustBruteLoss(1 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 3 * REM * seconds_per_tick, 150)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(1 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(1 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(1 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -509,9 +508,9 @@
|
||||
affected_mob.set_fire_stacks(min(affected_mob.fire_stacks + (1.5 * seconds_per_tick), 5))
|
||||
affected_mob.ignite_mob() //Only problem with igniting people is currently the commonly available fire suits make you immune to being on fire
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustToxLoss(0.5*seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjustFireLoss(0.5*seconds_per_tick, updating_health = FALSE) //Hence the other damages... ain't I a bastard?
|
||||
affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2.5*seconds_per_tick, 150)
|
||||
need_mob_update = affected_mob.adjust_tox_loss(0.5*seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(0.5*seconds_per_tick, updating_health = FALSE) //Hence the other damages... ain't I a bastard?
|
||||
affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 2.5*seconds_per_tick, 150)
|
||||
if(holder)
|
||||
holder.remove_reagent(type, 0.5 * seconds_per_tick)
|
||||
if(need_mob_update)
|
||||
@@ -983,7 +982,7 @@
|
||||
step(affected_mob, pick(GLOB.cardinals))
|
||||
if(SPT_PROB(3.5, seconds_per_tick))
|
||||
affected_mob.emote(pick("twitch","drool","moan"))
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5*seconds_per_tick))
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 0.5*seconds_per_tick))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/sulfur
|
||||
@@ -1049,7 +1048,7 @@
|
||||
|
||||
/datum/reagent/fluorine/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustToxLoss(0.5*REM*seconds_per_tick, updating_health = FALSE))
|
||||
if(affected_mob.adjust_tox_loss(0.5*REM*seconds_per_tick, updating_health = FALSE))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/sodium
|
||||
@@ -1091,7 +1090,7 @@
|
||||
|
||||
/datum/reagent/glycerol
|
||||
name = "Glycerol"
|
||||
description = "Glycerol is a simple polyol compound. Glycerol is sweet-tasting and of low toxicity."
|
||||
description = "A simple polyol compound. Sweet-tasting and of low toxicity."
|
||||
color = "#D3B913"
|
||||
taste_description = "sweetness"
|
||||
ph = 9
|
||||
@@ -1164,7 +1163,7 @@
|
||||
var/chance = min(volume / (20 - rad_power * 5), rad_power)
|
||||
if(SPT_PROB(chance, seconds_per_tick)) // ignore rad protection calculations bc it's inside of us
|
||||
affected_mob.AddComponent(/datum/component/irradiated)
|
||||
if(affected_mob.adjustToxLoss(tox_damage * seconds_per_tick * REM, updating_health = FALSE))
|
||||
if(affected_mob.adjust_tox_loss(tox_damage * seconds_per_tick * REM, updating_health = FALSE))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/uranium/expose_obj(obj/exposed_obj, reac_volume, methods=TOUCH, show_message=TRUE)
|
||||
@@ -1310,7 +1309,7 @@
|
||||
var/obj/item/organ/liver/liver = victim.get_organ_slot(ORGAN_SLOT_LIVER)
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_HUMAN_AI_METABOLISM))
|
||||
return
|
||||
if(victim.adjustToxLoss(0.5 * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(victim.adjust_tox_loss(0.5 * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/fuel/expose_turf(turf/exposed_turf, reac_volume)
|
||||
@@ -1349,7 +1348,7 @@
|
||||
exposed_turf.wash(clean_types, TRUE)
|
||||
|
||||
for(var/mob/living/basic/slime/exposed_slime in exposed_turf)
|
||||
exposed_slime.adjustToxLoss(rand(5,10))
|
||||
exposed_slime.adjust_tox_loss(rand(5,10))
|
||||
|
||||
/datum/reagent/space_cleaner/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message=TRUE, touch_protection=0)
|
||||
. = ..()
|
||||
@@ -1377,9 +1376,9 @@
|
||||
/datum/reagent/space_cleaner/ez_clean/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustBruteLoss(1.665*seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjustFireLoss(1.665*seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjustToxLoss(1.665*seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update = affected_mob.adjust_brute_loss(1.665*seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(1.665*seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(1.665*seconds_per_tick, updating_health = FALSE)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -1391,8 +1390,8 @@
|
||||
var/damage_to_inflict = 1.5 * max(1 - touch_protection, 0)
|
||||
|
||||
if(damage_to_inflict)
|
||||
exposed_mob.adjustBruteLoss(damage_to_inflict)
|
||||
exposed_mob.adjustFireLoss(damage_to_inflict)
|
||||
exposed_mob.adjust_brute_loss(damage_to_inflict)
|
||||
exposed_mob.adjust_fire_loss(damage_to_inflict)
|
||||
|
||||
/datum/reagent/cryptobiolin
|
||||
name = "Cryptobiolin"
|
||||
@@ -1418,7 +1417,7 @@
|
||||
|
||||
/datum/reagent/impedrezene
|
||||
name = "Impedrezene"
|
||||
description = "Impedrezene is a narcotic that impedes one's ability by slowing down the higher brain cell functions."
|
||||
description = "A narcotic that impedes one's ability by slowing down the higher brain cell functions."
|
||||
color = "#E07DDD" // pink = happy = dumb
|
||||
taste_description = "numbness"
|
||||
ph = 9.1
|
||||
@@ -1429,7 +1428,7 @@
|
||||
. = ..()
|
||||
affected_mob.adjust_jitter(-5 SECONDS * seconds_per_tick)
|
||||
if(SPT_PROB(55, seconds_per_tick))
|
||||
affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2)
|
||||
affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 2)
|
||||
. = TRUE
|
||||
if(SPT_PROB(30, seconds_per_tick))
|
||||
affected_mob.adjust_drowsiness(6 SECONDS)
|
||||
@@ -1582,7 +1581,7 @@
|
||||
var/drowsiness_to_apply = max(round(reac_volume, 1) * 2 SECONDS * (1 - touch_protection), 4 SECONDS)
|
||||
exposed_mob.adjust_drowsiness(drowsiness_to_apply)
|
||||
if(methods & INHALE)
|
||||
exposed_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.25 * reac_volume, required_organ_flag = affected_organ_flags)
|
||||
exposed_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 0.25 * reac_volume, required_organ_flag = affected_organ_flags)
|
||||
exposed_mob.adjust_hallucinations(10 SECONDS * reac_volume)
|
||||
|
||||
/datum/reagent/nitrous_oxide/on_mob_metabolize(mob/living/affected_mob)
|
||||
@@ -1752,7 +1751,7 @@
|
||||
/datum/reagent/plantnutriment/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(SPT_PROB(tox_prob, seconds_per_tick))
|
||||
if(affected_mob.adjustToxLoss(1, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(1, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/plantnutriment/eznutriment
|
||||
@@ -2089,21 +2088,21 @@
|
||||
|
||||
/datum/reagent/pentaerythritol
|
||||
name = "Pentaerythritol"
|
||||
description = "Slow down, it ain't no spelling bee!"
|
||||
color = "#E66FFF"
|
||||
description = "A crystalline compound used in the synthesis of explosives and other chemicals."
|
||||
color = "#EEEEEF"
|
||||
taste_description = "acid"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/acetaldehyde
|
||||
name = "Acetaldehyde"
|
||||
description = "Similar to plastic. Tastes like dead people."
|
||||
description = "A colorless liquid with a strong smell. Used in the synthesis of other chemicals."
|
||||
color = "#EEEEEF"
|
||||
taste_description = "dead people" //made from formaldehyde, ya get da joke ?
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
|
||||
/datum/reagent/acetone_oxide
|
||||
name = "Acetone Oxide"
|
||||
description = "Enslaved oxygen"
|
||||
description = "A highly reactive compoud derived from acetone. Known to cause burns on contact. Used in the synthesis of various explosives."
|
||||
color = "#966199cb"
|
||||
taste_description = "acid"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
@@ -2116,7 +2115,7 @@
|
||||
var/damage_to_inflict = 2 * max(1 - touch_protection, 0)
|
||||
|
||||
if(damage_to_inflict)
|
||||
exposed_mob.adjustFireLoss(damage_to_inflict)
|
||||
exposed_mob.adjust_fire_loss(damage_to_inflict)
|
||||
|
||||
exposed_mob.adjust_fire_stacks((reac_volume / 10))
|
||||
|
||||
@@ -2130,7 +2129,7 @@
|
||||
|
||||
/datum/reagent/ash
|
||||
name = "Ash"
|
||||
description = "Supposedly phoenixes rise from these, but you've never seen it."
|
||||
description = "A fine ash. Supposedly phoenixes rise from these, but you've never seen it."
|
||||
color = "#515151"
|
||||
taste_description = "ash"
|
||||
ph = 6.5
|
||||
@@ -2572,7 +2571,7 @@
|
||||
|
||||
/datum/reagent/plastic_polymers
|
||||
name = "Plastic Polymers"
|
||||
description = "the petroleum based components of plastic."
|
||||
description = "Petroleum based components of plastic."
|
||||
color = "#f7eded"
|
||||
taste_description = "plastic"
|
||||
ph = 6
|
||||
@@ -2705,8 +2704,8 @@
|
||||
. = ..()
|
||||
var/healthcomp = (100 - affected_mob.health) //DOES NOT ACCOUNT FOR ADMINBUS THINGS THAT MAKE YOU HAVE MORE THAN 200/210 HEALTH, OR SOMETHING OTHER THAN A HUMAN PROCESSING THIS.
|
||||
. = FALSE
|
||||
if(affected_mob.getStaminaLoss() < (45 - healthcomp)) //At 50 health you would have 200 - 150 health meaning 50 compensation. 60 - 50 = 10, so would only do 10-19 stamina.)
|
||||
if(affected_mob.adjustStaminaLoss(10 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
if(affected_mob.get_stamina_loss() < (45 - healthcomp)) //At 50 health you would have 200 - 150 health meaning 50 compensation. 60 - 50 = 10, so would only do 10-19 stamina.)
|
||||
if(affected_mob.adjust_stamina_loss(10 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
if(SPT_PROB(16, seconds_per_tick))
|
||||
to_chat(affected_mob, "You should sit down and take a rest...")
|
||||
@@ -2911,7 +2910,7 @@
|
||||
for(var/thing in affected_mob.all_wounds)
|
||||
var/datum/wound/W = thing
|
||||
stam_crash += (W.severity + 1) * 3 // spike of 3 stam damage per wound severity (moderate = 6, severe = 9, critical = 12) when the determination wears off if it was a combat rush
|
||||
affected_mob.adjustStaminaLoss(stam_crash)
|
||||
affected_mob.adjust_stamina_loss(stam_crash)
|
||||
affected_mob.remove_status_effect(/datum/status_effect/determined)
|
||||
|
||||
/datum/reagent/determination/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
@@ -2927,7 +2926,7 @@
|
||||
var/obj/item/bodypart/wounded_part = W.limb
|
||||
if(wounded_part)
|
||||
wounded_part.heal_damage(0.25 * REM * seconds_per_tick, 0.25 * REM * seconds_per_tick)
|
||||
if(affected_mob.adjustStaminaLoss(-1 * REM * seconds_per_tick, updating_stamina = FALSE)) // the more wounds, the more stamina regen
|
||||
if(affected_mob.adjust_stamina_loss(-1 * REM * seconds_per_tick, updating_stamina = FALSE)) // the more wounds, the more stamina regen
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
// unholy water, but for heretics.
|
||||
@@ -2952,13 +2951,12 @@
|
||||
if(IS_HERETIC_OR_MONSTER(drinker))
|
||||
drinker.adjust_drowsiness(-10 * REM * seconds_per_tick)
|
||||
drinker.AdjustAllImmobility(-40 * REM * seconds_per_tick)
|
||||
need_mob_update += drinker.adjustStaminaLoss(-10 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
need_mob_update += drinker.adjustToxLoss(-2 * REM * seconds_per_tick, updating_health = FALSE, forced = TRUE)
|
||||
need_mob_update += drinker.adjustOxyLoss(-2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += drinker.adjustBruteLoss(-2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += drinker.adjustFireLoss(-2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
if(drinker.blood_volume < BLOOD_VOLUME_NORMAL)
|
||||
drinker.blood_volume += 3 * REM * seconds_per_tick
|
||||
need_mob_update += drinker.adjust_stamina_loss(-10 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
need_mob_update += drinker.adjust_tox_loss(-2 * REM * seconds_per_tick, updating_health = FALSE, forced = TRUE)
|
||||
need_mob_update += drinker.adjust_oxy_loss(-2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += drinker.adjust_brute_loss(-2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += drinker.adjust_fire_loss(-2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
drinker.adjust_blood_volume(3 * REM * seconds_per_tick, maximum = BLOOD_VOLUME_NORMAL)
|
||||
// Slowly regulates your body temp
|
||||
drinker.adjust_bodytemperature((drinker.get_body_temp_normal() - drinker.bodytemperature) / 5)
|
||||
for(var/datum/reagent/reagent as anything in drinker.reagents.reagent_list)
|
||||
@@ -2970,11 +2968,11 @@
|
||||
drinker.heal_bodypart_damage(heal_amount, heal_amount, required_bodytype = BODYTYPE_ROBOTIC)
|
||||
// BUBBER EDIT END
|
||||
else
|
||||
need_mob_update = drinker.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3 * REM * seconds_per_tick, 150)
|
||||
need_mob_update += drinker.adjustToxLoss(2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += drinker.adjustFireLoss(2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += drinker.adjustOxyLoss(2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += drinker.adjustBruteLoss(2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update = drinker.adjust_organ_loss(ORGAN_SLOT_BRAIN, 3 * REM * seconds_per_tick, 150)
|
||||
need_mob_update += drinker.adjust_tox_loss(2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += drinker.adjust_fire_loss(2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += drinker.adjust_oxy_loss(2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
need_mob_update += drinker.adjust_brute_loss(2 * REM * seconds_per_tick, updating_health = FALSE)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -3033,7 +3031,7 @@
|
||||
|
||||
/datum/reagent/ants/on_mob_life(mob/living/carbon/victim, seconds_per_tick)
|
||||
. = ..()
|
||||
victim.adjustBruteLoss(max(0.1, round((ant_ticks * ant_damage),0.1))) //Scales with time. Roughly 32 brute with 100u.
|
||||
victim.adjust_brute_loss(max(0.1, round((ant_ticks * ant_damage),0.1))) //Scales with time. Roughly 32 brute with 100u.
|
||||
ant_ticks++
|
||||
if(ant_ticks < 5) // Makes ant food a little more appetizing, since you won't be screaming as much.
|
||||
return
|
||||
@@ -3118,7 +3116,7 @@
|
||||
|
||||
/datum/reagent/lead/on_mob_life(mob/living/carbon/victim)
|
||||
. = ..()
|
||||
if(victim.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5))
|
||||
if(victim.adjust_organ_loss(ORGAN_SLOT_BRAIN, 0.5))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
//The main feedstock for kronkaine production, also a shitty stamina healer.
|
||||
@@ -3134,8 +3132,8 @@
|
||||
/datum/reagent/kronkus_extract/on_mob_life(mob/living/carbon/kronkus_enjoyer, seconds_per_tick)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = kronkus_enjoyer.adjustOrganLoss(ORGAN_SLOT_HEART, 0.2 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += kronkus_enjoyer.adjustStaminaLoss(-6, updating_stamina = FALSE)
|
||||
need_mob_update = kronkus_enjoyer.adjust_organ_loss(ORGAN_SLOT_HEART, 0.2 * REM * seconds_per_tick, required_organ_flag = affected_organ_flags)
|
||||
need_mob_update += kronkus_enjoyer.adjust_stamina_loss(-6, updating_stamina = FALSE)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -3148,7 +3146,7 @@
|
||||
|
||||
/datum/reagent/brimdust/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustFireLoss((ispodperson(affected_mob) ? -1 : 1 * seconds_per_tick), updating_health = FALSE))
|
||||
if(affected_mob.adjust_fire_loss((ispodperson(affected_mob) ? -1 : 1 * seconds_per_tick), updating_health = FALSE))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/brimdust/on_hydroponics_apply(obj/machinery/hydroponics/mytray, mob/user)
|
||||
@@ -3232,7 +3230,7 @@
|
||||
affected_mob.AdjustParalyzed(-5 SECONDS * REM * seconds_per_tick)
|
||||
affected_mob.AdjustImmobilized(-5 SECONDS * REM * seconds_per_tick)
|
||||
else
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_HEART, REM * seconds_per_tick)) //1 heart damage per tick
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_HEART, REM * seconds_per_tick)) //1 heart damage per tick
|
||||
. = UPDATE_MOB_HEALTH
|
||||
if(SPT_PROB(10, seconds_per_tick))
|
||||
affected_mob.emote(pick("twitch","choke","shiver","gag"))
|
||||
@@ -3301,7 +3299,7 @@
|
||||
added_light = TRUE
|
||||
|
||||
if (SPT_PROB(8, seconds_per_tick))
|
||||
if(affected_mob.adjustToxLoss(1, updating_health = FALSE))
|
||||
if(affected_mob.adjust_tox_loss(1, updating_health = FALSE))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/luminescent_fluid/proc/on_organ_added(mob/living/source, obj/item/organ/eyes/new_eyes)
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
/datum/reagent/thermite/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustFireLoss(1 * REM * seconds_per_tick, updating_health = FALSE))
|
||||
if(affected_mob.adjust_fire_loss(1 * REM * seconds_per_tick, updating_health = FALSE))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/nitroglycerin
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
/datum/reagent/nitroglycerin/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_HEART, -1 * REM * seconds_per_tick * normalise_creation_purity(), required_organ_flag = affected_organ_flags))
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_HEART, -1 * REM * seconds_per_tick * normalise_creation_purity(), required_organ_flag = affected_organ_flags))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/stabilizing_agent
|
||||
@@ -42,7 +42,7 @@
|
||||
|
||||
/datum/reagent/clf3
|
||||
name = "Chlorine Trifluoride"
|
||||
description = "Makes a temporary 3x3 fireball when it comes into existence, so be careful when mixing. ClF3 applied to a surface burns things that wouldn't otherwise burn, sometimes through the very floors of the station and exposing it to the vacuum of space."
|
||||
description = "A very flammable liquid capable of burning even through the hull of the station. Bursts into a fireball upon creation."
|
||||
color = "#FFC8C8"
|
||||
metabolization_rate = 10 * REAGENTS_METABOLISM
|
||||
taste_description = "burning"
|
||||
@@ -52,7 +52,7 @@
|
||||
/datum/reagent/clf3/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
affected_mob.adjust_fire_stacks(2 * REM * seconds_per_tick)
|
||||
if(affected_mob.adjustFireLoss(0.3 * max(affected_mob.fire_stacks, 1) * REM * seconds_per_tick, updating_health = FALSE))
|
||||
if(affected_mob.adjust_fire_loss(0.3 * max(affected_mob.fire_stacks, 1) * REM * seconds_per_tick, updating_health = FALSE))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/clf3/expose_turf(turf/exposed_turf, reac_volume)
|
||||
@@ -168,13 +168,13 @@
|
||||
exposed_mob.adjust_fire_stacks(1)
|
||||
var/burndmg = max(0.3*exposed_mob.fire_stacks * (1 - touch_protection), 0.3)
|
||||
if(burndmg)
|
||||
exposed_mob.adjustFireLoss(burndmg, 0)
|
||||
exposed_mob.adjust_fire_loss(burndmg, 0)
|
||||
exposed_mob.ignite_mob()
|
||||
|
||||
/datum/reagent/phlogiston/on_mob_life(mob/living/carbon/metabolizer, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
metabolizer.adjust_fire_stacks(1 * REM * seconds_per_tick)
|
||||
if(metabolizer.adjustFireLoss(0.3 * max(metabolizer.fire_stacks, 0.15) * REM * seconds_per_tick, updating_health = FALSE))
|
||||
if(metabolizer.adjust_fire_loss(0.3 * max(metabolizer.fire_stacks, 0.15) * REM * seconds_per_tick, updating_health = FALSE))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/napalm
|
||||
@@ -256,7 +256,7 @@
|
||||
if(reac_volume < 5)
|
||||
return
|
||||
for(var/mob/living/basic/slime/exposed_slime in exposed_turf)
|
||||
exposed_slime.adjustToxLoss(rand(15,30))
|
||||
exposed_slime.adjust_tox_loss(rand(15,30))
|
||||
|
||||
#undef CRYO_SPEED_PREFACTOR
|
||||
#undef CRYO_SPEED_CONSTANT
|
||||
@@ -338,7 +338,7 @@
|
||||
if(!isjellyperson(affected_mob)) //everyone but jellypeople get shocked as normal.
|
||||
return ..()
|
||||
affected_mob.AdjustAllImmobility(-40 *REM * seconds_per_tick)
|
||||
if(affected_mob.adjustStaminaLoss(-10 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
if(affected_mob.adjust_stamina_loss(-10 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
if(is_species(affected_mob, /datum/species/jelly/luminescent))
|
||||
var/mob/living/carbon/human/affected_human = affected_mob
|
||||
|
||||
@@ -156,19 +156,35 @@
|
||||
if(!.)
|
||||
return
|
||||
|
||||
for(var/_reagent in target.reagent_list)
|
||||
var/datum/reagent/reaction_agent/reagent = _reagent
|
||||
var/conversion_buffer = amount * 10 //Converts up to 10 units of reagent per 1 unit of inversing buffer.
|
||||
var/converted = 0
|
||||
var/list/cached_reagents = target.reagent_list.Copy()
|
||||
for(var/datum/reagent/reagent as anything in cached_reagents)
|
||||
if(!conversion_buffer)
|
||||
return
|
||||
if(reagent.purity <= reagent.inverse_chem_val)
|
||||
target.my_atom.audible_message(span_warning("The beaker goes into a rolling boil as the contents begin inversing!"))
|
||||
playsound(target.my_atom, 'sound/effects/chemistry/catalyst.ogg', 50, TRUE)
|
||||
var/converted = min(reagent.volume, amount * 10)//Converts up to 10 units of reagent per 1 unit of inversing buffer.
|
||||
if(converted > 0)
|
||||
target.remove_reagent(reagent.type, converted, safety = FALSE)
|
||||
target.add_reagent(reagent.inverse_chem, converted, FALSE, added_purity = reagent.get_inverse_purity(reagent.purity))
|
||||
volume -= amount
|
||||
holder.update_total()
|
||||
break
|
||||
else
|
||||
target.my_atom.audible_message(span_warning("The buffer quietly fizzles away with no effect."))
|
||||
volume -= amount
|
||||
holder.update_total()
|
||||
//compute volume of reagent to be converted
|
||||
converted = min(reagent.volume, conversion_buffer)
|
||||
//remove original reagent from target
|
||||
reagent.volume -= converted
|
||||
target.update_total()
|
||||
//add new inverse reagent to target
|
||||
target.add_reagent(reagent.inverse_chem, converted, FALSE, added_purity = reagent.get_inverse_purity(reagent.purity))
|
||||
//remove from buffer remaining
|
||||
conversion_buffer -= converted
|
||||
|
||||
//audible feedback
|
||||
if(conversion_buffer < amount * 10)
|
||||
target.my_atom.audible_message(span_warning("The beaker goes into a rolling boil as the contents begin inversing!"))
|
||||
playsound(target.my_atom, 'sound/effects/chemistry/catalyst.ogg', 50, TRUE)
|
||||
else
|
||||
target.my_atom.audible_message(span_warning("The buffer fizzles with no effect."))
|
||||
|
||||
//remove inversening reagent based on total buffer removed
|
||||
var/volume_to_transfer = amount - (amount * (1 - (conversion_buffer / (amount * 10))))
|
||||
if(volume_to_transfer)
|
||||
target.add_reagent(type, volume_to_transfer, reagtemp = holder.chem_temp, added_purity = purity, added_ph = ph)
|
||||
if(!copy_only)
|
||||
volume -= amount
|
||||
holder.update_total()
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/datum/reagent/toxin/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(toxpwr && affected_mob.health > health_required)
|
||||
if(affected_mob.adjustToxLoss(toxpwr * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(toxpwr * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/toxin/amatoxin
|
||||
@@ -67,7 +67,7 @@
|
||||
|
||||
/datum/reagent/toxin/mutagen/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustToxLoss(0.5 * seconds_per_tick * REM, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(0.5 * seconds_per_tick * REM, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/toxin/mutagen/on_hydroponics_apply(obj/machinery/hydroponics/mytray, mob/user)
|
||||
@@ -193,7 +193,7 @@
|
||||
/datum/reagent/toxin/lexorin/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(!HAS_TRAIT(affected_mob, TRAIT_NOBREATH))
|
||||
affected_mob.adjustOxyLoss(5 * REM * normalise_creation_purity() * seconds_per_tick, FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
affected_mob.adjust_oxy_loss(5 * REM * normalise_creation_purity() * seconds_per_tick, FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
affected_mob.losebreath += 2 * REM * normalise_creation_purity() * seconds_per_tick
|
||||
. = UPDATE_MOB_HEALTH
|
||||
if(SPT_PROB(10, seconds_per_tick))
|
||||
@@ -225,7 +225,7 @@
|
||||
. = ..()
|
||||
if(SPT_PROB(5, seconds_per_tick))
|
||||
to_chat(affected_mob, span_danger("Your insides are burning!"))
|
||||
if(affected_mob.adjustToxLoss(rand(20, 60), updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(rand(20, 60), updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
else if(SPT_PROB(23, seconds_per_tick))
|
||||
if(affected_mob.heal_bodypart_damage(5))
|
||||
@@ -248,7 +248,7 @@
|
||||
|
||||
/datum/reagent/toxin/zombiepowder
|
||||
name = "Zombie Powder"
|
||||
description = "A strong neurotoxin that puts the subject into a death-like state."
|
||||
description = "A strong neurotoxin that puts the patient into a death-like state."
|
||||
silent_toxin = TRUE
|
||||
creation_purity = REAGENT_STANDARD_PURITY
|
||||
purity = REAGENT_STANDARD_PURITY
|
||||
@@ -280,9 +280,9 @@
|
||||
/datum/reagent/toxin/zombiepowder/proc/zombify(mob/living/holder_mob)
|
||||
PRIVATE_PROC(TRUE)
|
||||
|
||||
holder_mob.adjustOxyLoss(0.5*REM, FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
holder_mob.adjust_oxy_loss(0.5*REM, FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
if((data?["method"] & (INGEST|INHALE)) && holder_mob.stat != DEAD)
|
||||
holder_mob.fakedeath(type)
|
||||
holder_mob.apply_status_effect(/datum/status_effect/reagent_effect/fakedeath, type)
|
||||
|
||||
/datum/reagent/toxin/zombiepowder/on_mob_metabolize(mob/living/holder_mob)
|
||||
. = ..()
|
||||
@@ -290,7 +290,7 @@
|
||||
|
||||
/datum/reagent/toxin/zombiepowder/on_mob_end_metabolize(mob/living/affected_mob)
|
||||
. = ..()
|
||||
affected_mob.cure_fakedeath(type)
|
||||
affected_mob.remove_status_effect(/datum/status_effect/reagent_effect/fakedeath)
|
||||
|
||||
/datum/reagent/toxin/zombiepowder/on_mob_life(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
@@ -303,7 +303,7 @@
|
||||
affected_mob.adjust_drowsiness(2 SECONDS * REM * seconds_per_tick)
|
||||
affected_mob.adjust_slurring(6 SECONDS * REM * seconds_per_tick)
|
||||
if(6 to 9)
|
||||
need_mob_update = affected_mob.adjustStaminaLoss(40 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
need_mob_update = affected_mob.adjust_stamina_loss(40 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
if(10 to INFINITY)
|
||||
if(affected_mob.stat != DEAD)
|
||||
affected_mob.fakedeath(type)
|
||||
@@ -324,7 +324,7 @@
|
||||
|
||||
/datum/reagent/toxin/ghoulpowder/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustOxyLoss(1 * REM * seconds_per_tick, FALSE, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type))
|
||||
if(affected_mob.adjust_oxy_loss(1 * REM * seconds_per_tick, FALSE, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/toxin/mindbreaker
|
||||
@@ -399,7 +399,7 @@
|
||||
var/damage = min(round(0.4 * reac_volume, 0.1), 10)
|
||||
if(exposed_mob.mob_biotypes & MOB_PLANT)
|
||||
// spray bottle emits 5u so it's dealing ~15 dmg per spray
|
||||
if(exposed_mob.adjustToxLoss(damage * 20, required_biotype = affected_biotype))
|
||||
if(exposed_mob.adjust_tox_loss(damage * 20, required_biotype = affected_biotype))
|
||||
return
|
||||
|
||||
if(!(methods & VAPOR) || !iscarbon(exposed_mob))
|
||||
@@ -407,7 +407,7 @@
|
||||
|
||||
var/mob/living/carbon/exposed_carbon = exposed_mob
|
||||
if(!exposed_carbon.wear_mask)
|
||||
exposed_carbon.adjustToxLoss(damage, required_biotype = affected_biotype)
|
||||
exposed_carbon.adjust_tox_loss(damage, required_biotype = affected_biotype)
|
||||
|
||||
/datum/reagent/toxin/plantbgone/weedkiller
|
||||
name = "Weed Killer"
|
||||
@@ -435,7 +435,7 @@
|
||||
|
||||
/datum/reagent/toxin/pestkiller/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustToxLoss(2 * toxpwr * REM * seconds_per_tick, updating_health = FALSE, required_biotype = MOB_BUG))
|
||||
if(affected_mob.adjust_tox_loss(2 * toxpwr * REM * seconds_per_tick, updating_health = FALSE, required_biotype = MOB_BUG))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
//Pest Spray
|
||||
@@ -521,7 +521,7 @@
|
||||
affected_mob.Sleeping(40 * REM * normalise_creation_purity() * seconds_per_tick)
|
||||
if(52 to INFINITY)
|
||||
affected_mob.Sleeping(40 * REM * normalise_creation_purity() * seconds_per_tick)
|
||||
if(affected_mob.adjustToxLoss(1 * (current_cycle - 51) * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(1 * (current_cycle - 51) * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/toxin/fakebeer //disguised as normal beer for use by emagged brobots
|
||||
@@ -552,7 +552,7 @@
|
||||
affected_mob.Sleeping(40 * REM * seconds_per_tick)
|
||||
if(52 to INFINITY)
|
||||
affected_mob.Sleeping(40 * REM * seconds_per_tick)
|
||||
if(affected_mob.adjustToxLoss(1 * (current_cycle - 50) * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(1 * (current_cycle - 50) * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/toxin/coffeepowder
|
||||
@@ -611,7 +611,7 @@
|
||||
|
||||
/datum/reagent/toxin/staminatoxin/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustStaminaLoss(data * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
if(affected_mob.adjust_stamina_loss(data * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
data = max(data - 1, 3)
|
||||
|
||||
@@ -632,7 +632,7 @@
|
||||
if(SPT_PROB(chance, seconds_per_tick)) // ignore rad protection calculations bc it's inside of us
|
||||
affected_mob.AddComponent(/datum/component/irradiated)
|
||||
else
|
||||
if(affected_mob.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/toxin/polonium/expose_obj(obj/exposed_obj, reac_volume, methods=TOUCH, show_message=TRUE)
|
||||
@@ -691,21 +691,22 @@
|
||||
if(4)
|
||||
if(prob(75))
|
||||
to_chat(affected_mob, span_danger("You scratch at an itch."))
|
||||
if(affected_mob.adjustBruteLoss(2* REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype))
|
||||
if(affected_mob.adjust_brute_loss(2* REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/toxin/histamine/overdose_process(mob/living/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOxyLoss(2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjustBruteLoss(2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustToxLoss(2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update = affected_mob.adjust_oxy_loss(2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(2 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/toxin/formaldehyde
|
||||
name = "Formaldehyde"
|
||||
description = "Formaldehyde, on its own, is a fairly weak toxin. It contains trace amounts of Histamine, very rarely making it decay into Histamine. When used in a dead body, will prevent organ decay."
|
||||
description = "A fairly weak toxin that helps prevent organ decay in dead bodies. \
|
||||
It will slowly decay into Histamine over time."
|
||||
silent_toxin = TRUE
|
||||
color = "#B4004B"
|
||||
metabolization_rate = 0.5 * REAGENTS_METABOLISM
|
||||
@@ -719,7 +720,7 @@
|
||||
/datum/reagent/toxin/formaldehyde/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
var/obj/item/organ/liver/liver = affected_mob.get_organ_slot(ORGAN_SLOT_LIVER)
|
||||
if(liver && HAS_TRAIT(liver, TRAIT_CORONER_METABOLISM)) //mmmm, the forbidden pickle juice
|
||||
if(affected_mob.adjustToxLoss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)) //it counteracts its own toxin damage.
|
||||
if(affected_mob.adjust_tox_loss(-1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)) //it counteracts its own toxin damage.
|
||||
return UPDATE_MOB_HEALTH
|
||||
return
|
||||
else if(SPT_PROB(2.5, seconds_per_tick) && !HAS_TRAIT(affected_mob, TRAIT_BLOCK_FORMALDEHYDE_METABOLISM))
|
||||
@@ -749,7 +750,7 @@
|
||||
current_size = newsize
|
||||
toxpwr = 0.1 * volume
|
||||
|
||||
if(affected_mob.adjustBruteLoss((0.3 * volume) * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype))
|
||||
if(affected_mob.adjust_brute_loss((0.3 * volume) * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
|
||||
// chance to either decay into histamine or go the normal route of toxin metabolization
|
||||
@@ -766,7 +767,7 @@
|
||||
|
||||
/datum/reagent/toxin/fentanyl
|
||||
name = "Fentanyl"
|
||||
description = "Fentanyl will inhibit brain function and cause toxin damage before eventually knocking out its victim."
|
||||
description = "Inhibits brain function and causes toxin damage before eventually knocking out the patient."
|
||||
color = "#64916E"
|
||||
metabolization_rate = 0.5 * REAGENTS_METABOLISM
|
||||
creation_purity = REAGENT_STANDARD_PURITY
|
||||
@@ -779,9 +780,9 @@
|
||||
/datum/reagent/toxin/fentanyl/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 3 * REM * normalise_creation_purity() * seconds_per_tick, 150)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 3 * REM * normalise_creation_purity() * seconds_per_tick, 150)
|
||||
if(affected_mob.toxloss <= 60)
|
||||
need_mob_update += affected_mob.adjustToxLoss(1 * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(1 * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if(current_cycle > 4)
|
||||
affected_mob.add_mood_event("smacked out", /datum/mood_event/narcotic_heavy, name)
|
||||
if(current_cycle > 18)
|
||||
@@ -809,7 +810,7 @@
|
||||
if(SPT_PROB(4, seconds_per_tick))
|
||||
to_chat(affected_mob, span_danger("You feel horrendously weak!"))
|
||||
affected_mob.Stun(40)
|
||||
need_mob_update += affected_mob.adjustToxLoss(2*REM * normalise_creation_purity(), updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_tox_loss(2*REM * normalise_creation_purity(), updating_health = FALSE, required_biotype = affected_biotype)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -878,7 +879,7 @@
|
||||
affected_mob.Paralyze(60)
|
||||
if(2)
|
||||
affected_mob.losebreath += 10
|
||||
affected_mob.adjustOxyLoss(rand(5,25), updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
affected_mob.adjust_oxy_loss(rand(5,25), updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update = TRUE
|
||||
if(3)
|
||||
if(!affected_mob.undergoing_cardiac_arrest() && affected_mob.can_heartattack())
|
||||
@@ -887,7 +888,7 @@
|
||||
affected_mob.visible_message(span_userdanger("[affected_mob] clutches at [affected_mob.p_their()] chest as if [affected_mob.p_their()] heart stopped!"))
|
||||
else
|
||||
affected_mob.losebreath += 10
|
||||
need_mob_update = affected_mob.adjustOxyLoss(rand(5,25), updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update = affected_mob.adjust_oxy_loss(rand(5,25), updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
@@ -923,7 +924,7 @@
|
||||
. = ..()
|
||||
if(current_cycle > 10)
|
||||
affected_mob.Sleeping(40 * REM * seconds_per_tick)
|
||||
if(affected_mob.adjustStaminaLoss(10 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
if(affected_mob.adjust_stamina_loss(10 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/toxin/sulfonal
|
||||
@@ -960,7 +961,7 @@
|
||||
/datum/reagent/toxin/amanitin/on_mob_delete(mob/living/affected_mob)
|
||||
. = ..()
|
||||
affected_mob.log_message("has taken [delayed_toxin_damage] toxin damage from amanitin toxin", LOG_ATTACK)
|
||||
affected_mob.adjustToxLoss(delayed_toxin_damage, required_biotype = affected_biotype)
|
||||
affected_mob.adjust_tox_loss(delayed_toxin_damage, required_biotype = affected_biotype)
|
||||
|
||||
/datum/reagent/toxin/lipolicide
|
||||
name = "Lipolicide"
|
||||
@@ -979,7 +980,7 @@
|
||||
/datum/reagent/toxin/lipolicide/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.nutrition <= NUTRITION_LEVEL_STARVING)
|
||||
if(affected_mob.adjustToxLoss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(1 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
affected_mob.adjust_nutrition(-3 * REM * normalise_creation_purity() * seconds_per_tick) // making the chef more valuable, one meme trap at a time
|
||||
affected_mob.overeatduration = 0
|
||||
@@ -1041,12 +1042,13 @@
|
||||
. = ..()
|
||||
if(current_cycle > 11)
|
||||
affected_mob.Paralyze(60 * REM * seconds_per_tick)
|
||||
if(affected_mob.adjustOxyLoss(0.5*REM*seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type))
|
||||
if(affected_mob.adjust_oxy_loss(0.5*REM*seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/toxin/heparin //Based on a real-life anticoagulant. I'm not a doctor, so this won't be realistic.
|
||||
name = "Heparin"
|
||||
description = "A powerful anticoagulant. All open cut wounds on the victim will open up and bleed much faster. It directly purges sanguirite, a coagulant."
|
||||
description = "A powerful anticoagulant. All open cut wounds on the patient will open up and bleed much faster. \
|
||||
Counters coagulants like Sanguirite, purging them."
|
||||
silent_toxin = TRUE
|
||||
creation_purity = REAGENT_STANDARD_PURITY
|
||||
purity = REAGENT_STANDARD_PURITY
|
||||
@@ -1064,7 +1066,7 @@
|
||||
|
||||
/datum/reagent/toxin/rotatium //Rotatium. Fucks up your rotation and is hilarious
|
||||
name = "Rotatium"
|
||||
description = "A constantly swirling, oddly colourful fluid. Causes the consumer's sense of direction and hand-eye coordination to become wild."
|
||||
description = "A constantly swirling, oddly colourful fluid. Causes the patient's sense of direction and hand-eye coordination to become wild."
|
||||
silent_toxin = TRUE
|
||||
creation_purity = REAGENT_STANDARD_PURITY
|
||||
purity = REAGENT_STANDARD_PURITY
|
||||
@@ -1141,10 +1143,10 @@
|
||||
return
|
||||
reac_volume = round(reac_volume,0.1)
|
||||
if(methods & (INGEST|INHALE))
|
||||
exposed_carbon.adjustBruteLoss(min(6*toxpwr, reac_volume * toxpwr), required_bodytype = affected_bodytype)
|
||||
exposed_carbon.adjust_brute_loss(min(6*toxpwr, reac_volume * toxpwr), required_bodytype = affected_bodytype)
|
||||
return
|
||||
if(methods & INJECT)
|
||||
exposed_carbon.adjustBruteLoss(1.5 * min(6*toxpwr, reac_volume * toxpwr), required_bodytype = affected_bodytype)
|
||||
exposed_carbon.adjust_brute_loss(1.5 * min(6*toxpwr, reac_volume * toxpwr), required_bodytype = affected_bodytype)
|
||||
return
|
||||
exposed_carbon.acid_act(acidpwr, reac_volume)
|
||||
|
||||
@@ -1164,7 +1166,7 @@
|
||||
|
||||
/datum/reagent/toxin/acid/fluacid
|
||||
name = "Fluorosulfuric Acid"
|
||||
description = "Fluorosulfuric acid is an extremely corrosive chemical substance."
|
||||
description = "An extremely corrosive chemical substance."
|
||||
color = "#5050FF"
|
||||
creation_purity = REAGENT_STANDARD_PURITY
|
||||
purity = REAGENT_STANDARD_PURITY
|
||||
@@ -1181,12 +1183,12 @@
|
||||
|
||||
/datum/reagent/toxin/acid/fluacid/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustFireLoss(((current_cycle-1)/15) * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype))
|
||||
if(affected_mob.adjust_fire_loss(((current_cycle-1)/15) * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype))
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/toxin/acid/nitracid
|
||||
name = "Nitric Acid"
|
||||
description = "Nitric acid is an extremely corrosive chemical substance that violently reacts with living organic tissue."
|
||||
description = "An extremely corrosive chemical substance that violently reacts with living organic tissue."
|
||||
color = "#5050FF"
|
||||
creation_purity = REAGENT_STANDARD_PURITY
|
||||
purity = REAGENT_STANDARD_PURITY
|
||||
@@ -1197,7 +1199,7 @@
|
||||
|
||||
/datum/reagent/toxin/acid/nitracid/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustFireLoss((volume/10) * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)) //here you go nervar
|
||||
if(affected_mob.adjust_fire_loss((volume/10) * REM * normalise_creation_purity() * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)) //here you go nervar
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/toxin/delayed
|
||||
@@ -1216,7 +1218,7 @@
|
||||
return
|
||||
if(holder)
|
||||
holder.remove_reagent(type, actual_metaboliztion_rate * affected_mob.metabolism_efficiency * seconds_per_tick)
|
||||
if(affected_mob.adjustToxLoss(actual_toxpwr * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
if(affected_mob.adjust_tox_loss(actual_toxpwr * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
if(SPT_PROB(5, seconds_per_tick))
|
||||
affected_mob.Paralyze(20)
|
||||
@@ -1253,7 +1255,7 @@
|
||||
|
||||
/datum/reagent/toxin/bonehurtingjuice/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustStaminaLoss(7.5 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
if(affected_mob.adjust_stamina_loss(7.5 * REM * seconds_per_tick, updating_stamina = FALSE))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
if(!SPT_PROB(10, seconds_per_tick))
|
||||
return
|
||||
@@ -1297,7 +1299,7 @@
|
||||
|
||||
/datum/reagent/toxin/bungotoxin/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(affected_mob.adjustOrganLoss(ORGAN_SLOT_HEART, 3 * REM * seconds_per_tick))
|
||||
if(affected_mob.adjust_organ_loss(ORGAN_SLOT_HEART, 3 * REM * seconds_per_tick))
|
||||
. = UPDATE_MOB_HEALTH
|
||||
|
||||
// If our mob's currently dizzy from anything else, we will also gain confusion
|
||||
@@ -1322,8 +1324,8 @@
|
||||
/datum/reagent/toxin/leadacetate/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/need_mob_update
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_EARS, 1 * REM * seconds_per_tick)
|
||||
need_mob_update += affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1 * REM * seconds_per_tick)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_EARS, 1 * REM * seconds_per_tick)
|
||||
need_mob_update += affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 1 * REM * seconds_per_tick)
|
||||
if(need_mob_update)
|
||||
. = UPDATE_MOB_HEALTH
|
||||
if(SPT_PROB(0.5, seconds_per_tick))
|
||||
@@ -1374,10 +1376,10 @@
|
||||
liver_tolerance_multiplier = 0
|
||||
silent_toxin = TRUE
|
||||
remove_paralysis()
|
||||
need_mob_update += affected_mob.adjustOxyLoss(-0.7 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update = affected_mob.adjustToxLoss(-0.75 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjustBruteLoss(-1.2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjustFireLoss(-1.35 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_oxy_loss(-0.7 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype, required_respiration_type = affected_respiration_type)
|
||||
need_mob_update = affected_mob.adjust_tox_loss(-0.75 * REM * seconds_per_tick, updating_health = FALSE, required_biotype = affected_biotype)
|
||||
need_mob_update += affected_mob.adjust_brute_loss(-1.2 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
need_mob_update += affected_mob.adjust_fire_loss(-1.35 * REM * seconds_per_tick, updating_health = FALSE, required_bodytype = affected_bodytype)
|
||||
return need_mob_update ? UPDATE_MOB_HEALTH : .
|
||||
|
||||
liver_tolerance_multiplier = initial(liver_tolerance_multiplier)
|
||||
@@ -1397,7 +1399,7 @@
|
||||
if(13 to 21)
|
||||
silent_toxin = FALSE
|
||||
toxpwr = 0.5
|
||||
need_mob_update = affected_mob.adjustStaminaLoss(2.5 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
need_mob_update = affected_mob.adjust_stamina_loss(2.5 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
if(SPT_PROB(20, seconds_per_tick))
|
||||
affected_mob.losebreath += 1 * REM * seconds_per_tick
|
||||
need_mob_update = TRUE
|
||||
@@ -1405,7 +1407,7 @@
|
||||
affected_mob.set_jitter_if_lower(rand(2 SECONDS, 3 SECONDS) * REM * seconds_per_tick)
|
||||
affected_mob.adjust_disgust(3 * REM * seconds_per_tick)
|
||||
affected_mob.set_slurring_if_lower(1 SECONDS * REM * seconds_per_tick)
|
||||
affected_mob.adjustStaminaLoss(2 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
affected_mob.adjust_stamina_loss(2 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
if(SPT_PROB(4, seconds_per_tick))
|
||||
paralyze_limb(affected_mob)
|
||||
need_mob_update = TRUE
|
||||
@@ -1413,8 +1415,8 @@
|
||||
affected_mob.adjust_confusion(rand(6 SECONDS, 8 SECONDS))
|
||||
if(21 to 29)
|
||||
toxpwr = 1
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5)
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_LUNGS, 0.7)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 0.5)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_LUNGS, 0.7)
|
||||
if(SPT_PROB(40, seconds_per_tick))
|
||||
affected_mob.losebreath += 2 * REM * seconds_per_tick
|
||||
need_mob_update = TRUE
|
||||
@@ -1422,7 +1424,7 @@
|
||||
affected_mob.set_slurring_if_lower(3 SECONDS * REM * seconds_per_tick)
|
||||
if(SPT_PROB(5, seconds_per_tick))
|
||||
to_chat(affected_mob, span_danger("You feel horribly weak."))
|
||||
need_mob_update += affected_mob.adjustStaminaLoss(5 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
need_mob_update += affected_mob.adjust_stamina_loss(5 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
if(SPT_PROB(8, seconds_per_tick))
|
||||
paralyze_limb(affected_mob)
|
||||
need_mob_update = TRUE
|
||||
@@ -1430,10 +1432,10 @@
|
||||
affected_mob.adjust_confusion(rand(6 SECONDS, 8 SECONDS))
|
||||
if(29 to INFINITY)
|
||||
toxpwr = 1.5
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1, BRAIN_DAMAGE_DEATH)
|
||||
need_mob_update = affected_mob.adjustOrganLoss(ORGAN_SLOT_LUNGS, 1.4)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_BRAIN, 1, BRAIN_DAMAGE_DEATH)
|
||||
need_mob_update = affected_mob.adjust_organ_loss(ORGAN_SLOT_LUNGS, 1.4)
|
||||
affected_mob.set_silence_if_lower(3 SECONDS * REM * seconds_per_tick)
|
||||
need_mob_update += affected_mob.adjustStaminaLoss(5 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
need_mob_update += affected_mob.adjust_stamina_loss(5 * REM * seconds_per_tick, updating_stamina = FALSE)
|
||||
affected_mob.adjust_disgust(2 * REM * seconds_per_tick)
|
||||
if(SPT_PROB(15, seconds_per_tick))
|
||||
paralyze_limb(affected_mob)
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
rate_up_lim = 12.5
|
||||
purity_min = 0.5 //100u will natrually just dip under this w/ no buffer
|
||||
reaction_flags = REACTION_HEAT_ARBITARY //Heating up is arbitary because of submechanics of this reaction.
|
||||
reaction_tags = REACTION_TAG_MODERATE | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DRUG | REACTION_TAG_DANGEROUS
|
||||
reaction_tags = REACTION_TAG_MODERATE | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DRUG | REACTION_TAG_DANGEROUS | REACTION_TAG_ORGAN
|
||||
|
||||
//The less pure it is, the faster it heats up. tg please don't hate me for making your meth even more dangerous
|
||||
/datum/chemical_reaction/methamphetamine/reaction_step(datum/reagents/holder, datum/equilibrium/reaction, delta_t, delta_ph, step_reaction_vol)
|
||||
@@ -160,7 +160,7 @@
|
||||
required_reagents = list(/datum/reagent/kronkus_extract = 15, /datum/reagent/fuel = 5, /datum/reagent/ammonia = 3)
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_ORGAN | REACTION_TAG_DAMAGING
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_ORGAN | REACTION_TAG_DAMAGING | REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/moon_rock/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -176,7 +176,7 @@
|
||||
required_reagents = list(/datum/reagent/silver = 10, /datum/reagent/toxin/cyanide = 10, /datum/reagent/lye = 5)
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_ORGAN | REACTION_TAG_DAMAGING
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_ORGAN | REACTION_TAG_DAMAGING | REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/blastoff_ampoule/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -189,7 +189,7 @@
|
||||
required_reagents = list(/datum/reagent/lead = 5, /datum/reagent/consumable/nothing = 5, /datum/reagent/drug/maint/tar = 10)
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_ORGAN | REACTION_TAG_DAMAGING
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DRUG | REACTION_TAG_ORGAN | REACTION_TAG_DAMAGING | REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/saturnx_glob/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
results = list(/datum/reagent/medicine/albuterol = 4, /datum/reagent/medicine/sal_acid = 0.5, /datum/reagent/ammonia = 0.5)
|
||||
required_catalysts = list(/datum/reagent/toxin/acid = 1)
|
||||
required_reagents = list(/datum/reagent/medicine/salbutamol = 5, /datum/reagent/medicine/c2/convermol = 1)
|
||||
reaction_tags = REACTION_TAG_MODERATE | REACTION_TAG_ORGAN | REACTION_TAG_OTHER
|
||||
reaction_tags = REACTION_TAG_MODERATE | REACTION_TAG_ORGAN | REACTION_TAG_OTHER | REACTION_TAG_ACTIVE
|
||||
required_temp = 500
|
||||
optimal_temp = 610
|
||||
overheat_temp = 980
|
||||
@@ -181,7 +181,7 @@
|
||||
results = list(/datum/reagent/medicine/salbutamol = 2, /datum/reagent/ammonia = 1)
|
||||
required_catalysts = list(/datum/reagent/toxin/acid = 1)
|
||||
required_reagents = list(/datum/reagent/medicine/albuterol = 3, /datum/reagent/oxygen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_ORGAN | REACTION_TAG_OTHER
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_ORGAN | REACTION_TAG_OTHER | REACTION_TAG_ACTIVE
|
||||
required_temp = 300
|
||||
optimal_temp = 500
|
||||
overheat_temp = 800
|
||||
@@ -191,7 +191,7 @@
|
||||
results = list(/datum/reagent/inverse/healing/convermol = 1, /datum/reagent/lithium = 3, /datum/reagent/aluminium = 3, /datum/reagent/bromine = 3)
|
||||
required_catalysts = list(/datum/reagent/toxin/acid/fluacid = 1)
|
||||
required_reagents = list(/datum/reagent/medicine/albuterol = 5)
|
||||
reaction_tags = REACTION_TAG_MODERATE | REACTION_TAG_ORGAN | REACTION_TAG_OTHER
|
||||
reaction_tags = REACTION_TAG_MODERATE | REACTION_TAG_ORGAN | REACTION_TAG_OTHER | REACTION_TAG_ACTIVE
|
||||
required_temp = 900
|
||||
optimal_temp = 920
|
||||
overheat_temp = 990
|
||||
@@ -401,7 +401,7 @@
|
||||
/datum/chemical_reaction/medicine/medsuture
|
||||
required_reagents = list(/datum/reagent/cellulose = 2, /datum/reagent/toxin/formaldehyde = 4, /datum/reagent/medicine/polypyr = 3) //This might be a bit much, reagent cost should be reviewed after implementation.
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE | REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/medicine/medsuture/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
new /obj/item/stack/medical/suture/medicated(get_turf(holder.my_atom), round(created_volume * 4))
|
||||
@@ -409,7 +409,7 @@
|
||||
/datum/chemical_reaction/medicine/medmesh
|
||||
required_reagents = list(/datum/reagent/cellulose = 2, /datum/reagent/consumable/aloejuice = 4, /datum/reagent/space_cleaner/sterilizine = 2)
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BURN
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BURN | REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/medicine/medmesh/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
new /obj/item/stack/medical/mesh/advanced(get_turf(holder.my_atom), round(created_volume * 3))
|
||||
@@ -417,7 +417,7 @@
|
||||
/datum/chemical_reaction/medicine/poultice
|
||||
required_reagents = list(/datum/reagent/toxin/bungotoxin = 4, /datum/reagent/cellulose = 4, /datum/reagent/consumable/aloejuice = 4 )
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE | REACTION_TAG_BURN
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_HEALING | REACTION_TAG_BRUTE | REACTION_TAG_BURN | REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/medicine/poultice/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
new /obj/item/stack/medical/poultice(get_turf(holder.my_atom), round(created_volume * 3))
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
/datum/chemical_reaction/sodiumchloride
|
||||
results = list(/datum/reagent/consumable/salt = 2)
|
||||
required_reagents = list(/datum/reagent/sodium = 1, /datum/reagent/chlorine = 1) // That's what I said! Sodium Chloride!
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_FOOD
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_FOOD | REACTION_TAG_COMPONENT
|
||||
required_other = TRUE
|
||||
|
||||
/datum/chemical_reaction/sodiumchloride/pre_reaction_other_checks(datum/reagents/holder)
|
||||
@@ -233,6 +233,7 @@
|
||||
var/level_min = 1
|
||||
var/level_max = 2
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/mix_virus/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list
|
||||
@@ -386,18 +387,18 @@
|
||||
optimal_ph_min = 1 // Lets increase our range for this basic chem
|
||||
optimal_ph_max = 12
|
||||
H_ion_release = -0.02 //handmade is more neutral
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_PLANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_PLANT | REACTION_TAG_COMPONENT
|
||||
|
||||
/datum/chemical_reaction/diethylamine
|
||||
results = list(/datum/reagent/diethylamine = 2)
|
||||
required_reagents = list (/datum/reagent/ammonia = 1, /datum/reagent/consumable/ethanol = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_PLANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_PLANT | REACTION_TAG_COMPONENT
|
||||
|
||||
/datum/chemical_reaction/space_cleaner
|
||||
results = list(/datum/reagent/space_cleaner = 2)
|
||||
required_reagents = list(/datum/reagent/ammonia = 1, /datum/reagent/water = 1)
|
||||
rate_up_lim = 40
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_COMPONENT
|
||||
|
||||
/datum/chemical_reaction/plantbgone
|
||||
results = list(/datum/reagent/toxin/plantbgone = 5)
|
||||
@@ -418,14 +419,14 @@
|
||||
/datum/chemical_reaction/drying_agent
|
||||
results = list(/datum/reagent/drying_agent = 3)
|
||||
required_reagents = list(/datum/reagent/stable_plasma = 2, /datum/reagent/consumable/ethanol = 1, /datum/reagent/sodium = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE | REACTION_TAG_COMPONENT
|
||||
|
||||
//////////////////////////////////// Other goon stuff ///////////////////////////////////////////
|
||||
|
||||
/datum/chemical_reaction/acetone
|
||||
results = list(/datum/reagent/acetone = 3)
|
||||
required_reagents = list(/datum/reagent/fuel/oil = 1, /datum/reagent/fuel = 1, /datum/reagent/oxygen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_COMPONENT
|
||||
|
||||
/datum/chemical_reaction/carpet
|
||||
results = list(/datum/reagent/carpet = 2)
|
||||
@@ -526,18 +527,18 @@
|
||||
/datum/chemical_reaction/oil
|
||||
results = list(/datum/reagent/fuel/oil = 3)
|
||||
required_reagents = list(/datum/reagent/fuel = 1, /datum/reagent/carbon = 1, /datum/reagent/hydrogen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_COMPONENT
|
||||
|
||||
/datum/chemical_reaction/phenol
|
||||
results = list(/datum/reagent/phenol = 3)
|
||||
required_reagents = list(/datum/reagent/water = 1, /datum/reagent/chlorine = 1, /datum/reagent/fuel/oil = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_COMPONENT
|
||||
|
||||
/datum/chemical_reaction/ash
|
||||
results = list(/datum/reagent/ash = 1)
|
||||
required_reagents = list(/datum/reagent/fuel/oil = 1)
|
||||
required_temp = 480
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_PLANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_PLANT | REACTION_TAG_COMPONENT
|
||||
|
||||
/datum/chemical_reaction/colorful_reagent
|
||||
results = list(/datum/reagent/colorful_reagent = 5)
|
||||
@@ -643,19 +644,19 @@
|
||||
/datum/chemical_reaction/electrolysis
|
||||
results = list(/datum/reagent/oxygen = 2.5, /datum/reagent/hydrogen = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/liquidelectricity = 1, /datum/reagent/water = 5)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/electrolysis2
|
||||
results = list(/datum/reagent/oxygen = 2.5, /datum/reagent/hydrogen = 5)
|
||||
required_reagents = list(/datum/reagent/consumable/liquidelectricity/enriched = 1, /datum/reagent/water = 5)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
//salt electrolysis
|
||||
/datum/chemical_reaction/saltelectrolysis
|
||||
results = list(/datum/reagent/chlorine = 2.5, /datum/reagent/sodium = 2.5)
|
||||
required_reagents = list(/datum/reagent/consumable/salt = 5)
|
||||
required_catalysts = list(/datum/reagent/consumable/liquidelectricity = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_UNIQUE
|
||||
|
||||
/datum/chemical_reaction/saltelectrolysis/enriched
|
||||
required_catalysts = list(/datum/reagent/consumable/liquidelectricity/enriched = 1)
|
||||
@@ -722,18 +723,18 @@
|
||||
/datum/chemical_reaction/saltpetre
|
||||
results = list(/datum/reagent/saltpetre = 3)
|
||||
required_reagents = list(/datum/reagent/potassium = 1, /datum/reagent/nitrogen = 1, /datum/reagent/oxygen = 3)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_PLANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_PLANT | REACTION_TAG_COMPONENT
|
||||
|
||||
/datum/chemical_reaction/lye
|
||||
results = list(/datum/reagent/lye = 3)
|
||||
required_reagents = list(/datum/reagent/sodium = 1, /datum/reagent/hydrogen = 1, /datum/reagent/oxygen = 1)
|
||||
required_temp = 10 //So hercuri still shows life.
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_COMPONENT
|
||||
|
||||
/datum/chemical_reaction/lye2
|
||||
results = list(/datum/reagent/lye = 2)
|
||||
required_reagents = list(/datum/reagent/ash = 1, /datum/reagent/water = 1, /datum/reagent/carbon = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_COMPONENT
|
||||
|
||||
/datum/chemical_reaction/royal_bee_jelly
|
||||
results = list(/datum/reagent/royal_bee_jelly = 5)
|
||||
@@ -901,7 +902,7 @@
|
||||
purity_min = 0
|
||||
mix_message = "The solution freezes up into ice!"
|
||||
reaction_flags = REACTION_COMPETITIVE
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_DRINK
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_CHEMICAL | REACTION_TAG_DRINK | REACTION_TAG_COMPONENT | REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/water
|
||||
results = list(/datum/reagent/water = 0.92)//rough density excahnge
|
||||
@@ -1092,5 +1093,3 @@
|
||||
|
||||
glitter.data["colors"] = list("[accumulated_color]" = 100)
|
||||
glitter.color = accumulated_color
|
||||
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
var/strengthdiv = 10
|
||||
var/modifier = 0
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EXPLOSIVE | REACTION_TAG_MODERATE | REACTION_TAG_DANGEROUS
|
||||
reaction_tags = REACTION_TAG_EXPLOSIVE | REACTION_TAG_MODERATE | REACTION_TAG_DANGEROUS | REACTION_TAG_ACTIVE
|
||||
required_temp = 0 //Prevent impromptu RPGs
|
||||
// Only clear mob reagents in special cases
|
||||
var/clear_mob_reagents = FALSE
|
||||
@@ -189,7 +189,7 @@
|
||||
/datum/chemical_reaction/gunpowder
|
||||
results = list(/datum/reagent/gunpowder = 3)
|
||||
required_reagents = list(/datum/reagent/saltpetre = 1, /datum/reagent/medicine/c2/multiver = 1, /datum/reagent/sulfur = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_CHEMICAL
|
||||
|
||||
/datum/chemical_reaction/reagent_explosion/gunpowder_explosion
|
||||
required_reagents = list(/datum/reagent/gunpowder = 1)
|
||||
@@ -208,7 +208,7 @@
|
||||
|
||||
/datum/chemical_reaction/emp_pulse
|
||||
required_reagents = list(/datum/reagent/uranium = 1, /datum/reagent/iron = 1, /datum/reagent/aluminium = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS | REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/emp_pulse/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
//pretending this reaction took two ingredients and not three for its effects
|
||||
@@ -228,7 +228,7 @@
|
||||
|
||||
/datum/chemical_reaction/beesplosion
|
||||
required_reagents = list(/datum/reagent/consumable/honey = 1, /datum/reagent/medicine/strange_reagent = 1, /datum/reagent/uranium/radium = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS | REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/beesplosion/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
var/location = holder.my_atom.drop_location()
|
||||
@@ -251,7 +251,7 @@
|
||||
/datum/chemical_reaction/stabilizing_agent
|
||||
results = list(/datum/reagent/stabilizing_agent = 3)
|
||||
required_reagents = list(/datum/reagent/iron = 1, /datum/reagent/oxygen = 1, /datum/reagent/hydrogen = 1)
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_CHEMICAL | REACTION_TAG_PLANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_CHEMICAL | REACTION_TAG_PLANT | REACTION_TAG_COMPONENT
|
||||
|
||||
/datum/chemical_reaction/clf3
|
||||
results = list(/datum/reagent/clf3 = 4)
|
||||
@@ -300,7 +300,7 @@
|
||||
/datum/chemical_reaction/sorium_vortex
|
||||
required_reagents = list(/datum/reagent/sorium = 1)
|
||||
required_temp = 474
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS | REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/sorium_vortex/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
@@ -323,7 +323,7 @@
|
||||
/datum/chemical_reaction/ldm_vortex
|
||||
required_reagents = list(/datum/reagent/liquid_dark_matter = 1)
|
||||
required_temp = 474
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS | REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/ldm_vortex/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
@@ -356,7 +356,7 @@
|
||||
/datum/chemical_reaction/flash_powder_flash
|
||||
required_reagents = list(/datum/reagent/flash_powder = 1)
|
||||
required_temp = 374
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS | REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/flash_powder_flash/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -397,7 +397,7 @@
|
||||
required_temp = 374
|
||||
mob_react = FALSE
|
||||
reaction_flags = REACTION_INSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS | REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/smoke_powder_smoke/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
@@ -427,7 +427,7 @@
|
||||
/datum/chemical_reaction/sonic_powder_deafen
|
||||
required_reagents = list(/datum/reagent/sonic_powder = 1)
|
||||
required_temp = 374
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_EXPLOSIVE | REACTION_TAG_DANGEROUS | REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/sonic_powder_deafen/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
|
||||
@@ -409,7 +409,7 @@
|
||||
required_reagents = list(/datum/reagent/toxin/plasma = 1)
|
||||
|
||||
/datum/chemical_reaction/slime/slimepotion2/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
new /obj/item/slimepotion/slime/sentience(get_turf(holder.my_atom))
|
||||
new /obj/item/slimepotion/sentience(get_turf(holder.my_atom))
|
||||
..()
|
||||
|
||||
/datum/chemical_reaction/slime/renaming
|
||||
@@ -417,7 +417,7 @@
|
||||
required_reagents = list(/datum/reagent/water = 1)
|
||||
|
||||
/datum/chemical_reaction/slime/renaming/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
new /obj/item/slimepotion/slime/renaming(holder.my_atom.drop_location())
|
||||
new /obj/item/slimepotion/renaming(holder.my_atom.drop_location())
|
||||
..()
|
||||
|
||||
|
||||
@@ -454,7 +454,7 @@
|
||||
required_container = /obj/item/slime_extract/bluespace
|
||||
|
||||
/datum/chemical_reaction/slime/slimeradio/on_reaction(datum/reagents/holder, datum/equilibrium/reaction, created_volume)
|
||||
new /obj/item/slimepotion/slime/slimeradio(get_turf(holder.my_atom))
|
||||
new /obj/item/slimepotion/slimeradio(get_turf(holder.my_atom))
|
||||
..()
|
||||
|
||||
//Cerulean
|
||||
|
||||
@@ -177,7 +177,7 @@
|
||||
rate_up_lim = 10
|
||||
purity_min = 0.7
|
||||
reaction_flags = REACTION_PH_VOL_CONSTANT
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_PLANT | REACTION_TAG_OTHER
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_PLANT | REACTION_TAG_OTHER | REACTION_TAG_COMPONENT
|
||||
|
||||
/datum/chemical_reaction/lexorin
|
||||
results = list(/datum/reagent/toxin/lexorin = 3)
|
||||
@@ -204,7 +204,7 @@
|
||||
required_reagents = list(/datum/reagent/toxin/hot_ice = 1)
|
||||
required_temp = T0C + 30 //Don't burst into flames when you melt
|
||||
thermic_constant = -200//Counter the heat
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_CHEMICAL | REACTION_TAG_TOXIN
|
||||
reaction_tags = REACTION_TAG_EASY | REACTION_TAG_DAMAGING | REACTION_TAG_CHEMICAL | REACTION_TAG_TOXIN | REACTION_TAG_ACTIVE
|
||||
|
||||
/datum/chemical_reaction/chloralhydrate
|
||||
results = list(/datum/reagent/toxin/chloralhydrate = 1)
|
||||
|
||||
@@ -410,7 +410,8 @@
|
||||
|
||||
var/trans = round(reagents.trans_to(target, amount_per_transfer_from_this, transferred_by = user), CHEMICAL_VOLUME_ROUNDING)
|
||||
playsound(target.loc, SFX_LIQUID_POUR, 50, TRUE)
|
||||
to_chat(user, span_notice("You transfer [trans] unit\s of the solution to [target]."))
|
||||
if(trans)
|
||||
to_chat(user, span_notice("You transfer [trans] unit\s of the solution to [target]."))
|
||||
SEND_SIGNAL(src, COMSIG_REAGENTS_CUP_TRANSFER_TO, target)
|
||||
target.update_appearance()
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
|
||||
@@ -212,6 +212,7 @@
|
||||
name = "x-large beaker"
|
||||
desc = "An extra-large beaker. Can hold up to 120 units."
|
||||
icon_state = "beakerwhite"
|
||||
inhand_icon_state = "beaker_white"
|
||||
custom_materials = list(/datum/material/glass=SHEET_MATERIAL_AMOUNT*1.25, /datum/material/plastic=SHEET_MATERIAL_AMOUNT * 1.5)
|
||||
volume = 120
|
||||
amount_per_transfer_from_this = 10
|
||||
@@ -222,6 +223,7 @@
|
||||
name = "metamaterial beaker"
|
||||
desc = "A large beaker. Can hold up to 180 units."
|
||||
icon_state = "beakergold"
|
||||
inhand_icon_state = "beaker_gold"
|
||||
custom_materials = list(/datum/material/glass=SHEET_MATERIAL_AMOUNT*1.25, /datum/material/plastic=SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/gold=HALF_SHEET_MATERIAL_AMOUNT, /datum/material/titanium=HALF_SHEET_MATERIAL_AMOUNT)
|
||||
volume = 180
|
||||
amount_per_transfer_from_this = 10
|
||||
@@ -233,6 +235,7 @@
|
||||
desc = "A cryostasis beaker that allows for chemical storage without \
|
||||
reactions. Can hold up to 50 units."
|
||||
icon_state = "beakernoreact"
|
||||
inhand_icon_state = "beaker_cryo"
|
||||
custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT * 1.5)
|
||||
initial_reagent_flags = OPENCONTAINER | NO_REACT
|
||||
volume = 50
|
||||
@@ -244,6 +247,7 @@
|
||||
and Element Cuban combined with the Compound Pete. Can hold up to \
|
||||
300 units."
|
||||
icon_state = "beakerbluespace"
|
||||
inhand_icon_state = "beaker_bluespace"
|
||||
custom_materials = list(/datum/material/glass =SHEET_MATERIAL_AMOUNT * 2.5, /datum/material/plasma =SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/diamond =HALF_SHEET_MATERIAL_AMOUNT, /datum/material/bluespace =HALF_SHEET_MATERIAL_AMOUNT)
|
||||
volume = 300
|
||||
amount_per_transfer_from_this = 10
|
||||
@@ -447,7 +451,7 @@
|
||||
if(!grinded)
|
||||
to_chat(user, span_warning("There is nothing to grind!"))
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
if(user.getStaminaLoss() > 50)
|
||||
if(user.get_stamina_loss() > 50)
|
||||
to_chat(user, span_warning("You are too tired to work!"))
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
var/list/choose_options = list(
|
||||
@@ -460,7 +464,7 @@
|
||||
to_chat(user, span_notice("You start grinding..."))
|
||||
if(!do_after(user, 2.5 SECONDS, target = src))
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
user.adjustStaminaLoss(40)
|
||||
user.adjust_stamina_loss(40)
|
||||
switch(picked_option)
|
||||
if("Juice")
|
||||
return juice_item(grinded, user) ? ITEM_INTERACT_BLOCKING : ITEM_INTERACT_SUCCESS
|
||||
|
||||
@@ -548,7 +548,8 @@
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
|
||||
var/transfer_amount = round(reagents.trans_to(tool, amount_per_transfer_from_this, transferred_by = user), CHEMICAL_VOLUME_ROUNDING)
|
||||
balloon_alert(user, "transferred [transfer_amount] unit\s")
|
||||
if(transfer_amount)
|
||||
balloon_alert(user, "transferred [transfer_amount] unit\s")
|
||||
flick("syrup_anim",src)
|
||||
tool.update_appearance()
|
||||
update_appearance()
|
||||
|
||||
@@ -60,7 +60,8 @@
|
||||
log_combat(user, M, "squirted", reagents.get_reagent_log_string())
|
||||
|
||||
trans = round(reagents.trans_to(target, amount_per_transfer_from_this, transferred_by = user), CHEMICAL_VOLUME_ROUNDING)
|
||||
to_chat(user, span_notice("You transfer [trans] unit\s of the solution."))
|
||||
if(trans)
|
||||
to_chat(user, span_notice("You transfer [trans] unit\s of the solution."))
|
||||
update_appearance()
|
||||
target.update_appearance()
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
@@ -74,8 +75,8 @@
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
|
||||
var/trans = round(target.reagents.trans_to(src, amount_per_transfer_from_this, transferred_by = user), CHEMICAL_VOLUME_ROUNDING)
|
||||
|
||||
to_chat(user, span_notice("You fill [src] with [trans] unit\s of the solution."))
|
||||
if(trans)
|
||||
to_chat(user, span_notice("You fill [src] with [trans] unit\s of the solution."))
|
||||
|
||||
update_appearance()
|
||||
target.update_appearance()
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
/obj/item/reagent_containers/medigel/synthflesh/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers)
|
||||
if(iscarbon(interacting_with) && reagents?.total_volume)
|
||||
var/mob/living/carbon/carbies = interacting_with
|
||||
if(HAS_TRAIT_FROM(carbies, TRAIT_HUSK, BURN) && carbies.getFireLoss() > UNHUSK_DAMAGE_THRESHOLD * 2.5)
|
||||
if(HAS_TRAIT_FROM(carbies, TRAIT_HUSK, BURN) && carbies.get_fire_loss() > UNHUSK_DAMAGE_THRESHOLD * 2.5)
|
||||
// give them a warning if the mob is a husk but synthflesh won't unhusk yet
|
||||
carbies.visible_message(span_boldwarning("[carbies]'s burns need to be repaired first before synthflesh will unhusk it!"))
|
||||
|
||||
|
||||
@@ -208,7 +208,7 @@
|
||||
return
|
||||
// Check mob damage for synthflesh unhusking
|
||||
var/mob/living/carbon/carbies = eater
|
||||
if(HAS_TRAIT_FROM(carbies, TRAIT_HUSK, BURN) && carbies.getFireLoss() > UNHUSK_DAMAGE_THRESHOLD * 2.5)
|
||||
if(HAS_TRAIT_FROM(carbies, TRAIT_HUSK, BURN) && carbies.get_fire_loss() > UNHUSK_DAMAGE_THRESHOLD * 2.5)
|
||||
// give them a warning if the mob is a husk but synthflesh won't unhusk yet
|
||||
carbies.visible_message(span_boldwarning("[carbies]'s burns need to be repaired first before synthflesh will unhusk it!"))
|
||||
|
||||
|
||||
@@ -137,8 +137,8 @@
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
|
||||
var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this, transferred_by = user) // transfer from, transfer to - who cares?
|
||||
|
||||
to_chat(user, span_notice("You fill [src] with [trans] units of the solution. It now contains [reagents.total_volume] units."))
|
||||
if(trans)
|
||||
to_chat(user, span_notice("You fill [src] with [trans] units of the solution. It now contains [reagents.total_volume] units."))
|
||||
target.update_appearance()
|
||||
return ITEM_INTERACT_SUCCESS
|
||||
|
||||
|
||||
@@ -370,7 +370,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/reagent_dispensers/wall/peppertank, 3
|
||||
if(prob(1))
|
||||
desc = "IT'S PEPPER TIME, BITCH!"
|
||||
if(mapload)
|
||||
find_and_hang_on_wall()
|
||||
find_and_hang_on_atom()
|
||||
|
||||
/obj/structure/reagent_dispensers/water_cooler
|
||||
name = "water cooler"
|
||||
@@ -629,7 +629,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/reagent_dispensers/wall/virusfood, 30
|
||||
/obj/structure/reagent_dispensers/wall/virusfood/Initialize(mapload)
|
||||
. = ..()
|
||||
if(mapload)
|
||||
find_and_hang_on_wall()
|
||||
find_and_hang_on_atom()
|
||||
|
||||
/obj/structure/reagent_dispensers/cooking_oil
|
||||
name = "vat of cooking oil"
|
||||
|
||||
Reference in New Issue
Block a user