mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-27 23:27:34 +01:00
The Inversenning : Superior Healing Medications (#79342)
Introducing new inverse reagents for existing superior healing medications! This push includes... **Benzoic Acid** : Inverse of Salicylic Acid. Robust fertilizer that provides a decent range of benefits for plant life. **Oxymetholone** : Inverse of Oxandrolone. Anabolic steroid that promotes the growth of muscle during and after exercise. **Bamethan** : Inverse of Salbutamol. Blood thinner that drastically increases the chance of receiving bleeding wounds. **Pendetide** : Inverse of Pentetic Acid. An unusual bioradioactive drug that purges basic radiation healing chems. Also increases the severity of radiation poisoning. **Hyoscyamine** : Inverse of Atropine. Heals heart and stomach damage, and slowly removes minor toxin damage. **Ammoniated Sludge** : Inverse of Ammoniated Mercury. A ghastly looking mess of mercury by-product which causes bursts of manic hysteria. **Inreziniver** : Inverse of Rezadone. Makes the user horribly afraid of all things related to carps. This is an effort to add more variety to the existing inverse reagent system within chemistry. Not only should this variety serve to provide additional options for a Chemist to experiment with, they should also broaden the possibilities for already existing strategies.
This commit is contained in:
@@ -190,6 +190,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
|
||||
#define TRAIT_EASILY_WOUNDED "easy_limb_wound"
|
||||
#define TRAIT_HARDLY_WOUNDED "hard_limb_wound"
|
||||
#define TRAIT_NEVER_WOUNDED "never_wounded"
|
||||
/// Species with this trait have 50% extra chance of bleeding from piercing and slashing wounds
|
||||
#define TRAIT_EASYBLEED "easybleed"
|
||||
#define TRAIT_TOXINLOVER "toxinlover"
|
||||
/// Doesn't get overlays from being in critical.
|
||||
#define TRAIT_NOCRITOVERLAY "no_crit_overlay"
|
||||
|
||||
@@ -8,6 +8,7 @@ GLOBAL_LIST_INIT(phobia_types, sort_list(list(
|
||||
"authority",
|
||||
"birds",
|
||||
"blood",
|
||||
"carps",
|
||||
"clowns",
|
||||
"doctors",
|
||||
"falling",
|
||||
@@ -32,6 +33,7 @@ GLOBAL_LIST_INIT(phobia_regexes, list(
|
||||
"authority" = construct_phobia_regex("authority"),
|
||||
"birds" = construct_phobia_regex("birds"),
|
||||
"blood" = construct_phobia_regex("blood"),
|
||||
"carps" = construct_phobia_regex("carps"),
|
||||
"clowns" = construct_phobia_regex("clowns"),
|
||||
"conspiracies" = construct_phobia_regex("conspiracies"),
|
||||
"doctors" = construct_phobia_regex("doctors"),
|
||||
@@ -64,6 +66,9 @@ GLOBAL_LIST_INIT(phobia_mobs, list(
|
||||
/mob/living/basic/parrot,
|
||||
/mob/living/basic/pet/penguin,
|
||||
)),
|
||||
"carps" = typecacheof(list(
|
||||
/mob/living/basic/carp,
|
||||
)),
|
||||
"conspiracies" = typecacheof(list(
|
||||
/mob/living/basic/drone,
|
||||
/mob/living/basic/pet/penguin,
|
||||
@@ -234,6 +239,27 @@ GLOBAL_LIST_INIT(phobia_objs, list(
|
||||
/obj/item/reagent_containers/syringe,
|
||||
/obj/machinery/iv_drip,
|
||||
)),
|
||||
"carps" = typecacheof(list(
|
||||
/obj/item/clothing/head/hooded/carp_hood,
|
||||
/obj/item/clothing/suit/hooded/carp_costume,
|
||||
/obj/item/clothing/head/fedora/carpskin,
|
||||
/obj/item/clothing/mask/gas/carp,
|
||||
/obj/item/clothing/mask/cigarette/carp,
|
||||
/obj/item/clothing/under/suit/carpskin,
|
||||
/obj/item/food/cubancarp,
|
||||
/obj/item/food/fishmeat/carp,
|
||||
/obj/item/grenade/clusterbuster/spawner_spesscarp,
|
||||
/obj/item/grenade/spawnergrenade/spesscarp,
|
||||
/obj/item/knife/carp,
|
||||
/obj/item/nullrod/carp,
|
||||
/obj/item/organ/internal/lungs/carp,
|
||||
/obj/item/organ/internal/tongue/carp,
|
||||
/obj/item/organ/internal/brain/carp,
|
||||
/obj/item/organ/internal/heart/carp,
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_carp,
|
||||
/obj/item/stack/sheet/animalhide/carp,
|
||||
/obj/item/toy/plush/carpplushie,
|
||||
)),
|
||||
"clowns" = typecacheof(list(
|
||||
/obj/item/bedsheet/clown,
|
||||
/obj/item/clothing/head/chaplain/clownmitre,
|
||||
|
||||
@@ -172,6 +172,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
|
||||
"TRAIT_DWARF" = TRAIT_DWARF,
|
||||
"TRAIT_EASILY_WOUNDED" = TRAIT_EASILY_WOUNDED,
|
||||
"TRAIT_EASYDISMEMBER" = TRAIT_EASYDISMEMBER,
|
||||
"TRAIT_EASYBLEED" = TRAIT_EASYBLEED,
|
||||
"TRAIT_ECHOLOCATION_EXTRA_RANGE" = TRAIT_ECHOLOCATION_EXTRA_RANGE,
|
||||
"TRAIT_ECHOLOCATION_RECEIVER" = TRAIT_ECHOLOCATION_RECEIVER,
|
||||
"TRAIT_ELITE_CHALLENGER" = TRAIT_ELITE_CHALLENGER,
|
||||
|
||||
@@ -163,6 +163,10 @@
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
/datum/brain_trauma/mild/phobia/carps
|
||||
phobia_type = "carps"
|
||||
random_gain = FALSE
|
||||
|
||||
/datum/brain_trauma/mild/phobia/clowns
|
||||
phobia_type = "clowns"
|
||||
random_gain = FALSE
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
/// Having any of these reagents in your system extends the duration
|
||||
var/static/list/supplementary_reagents_bonus = list(
|
||||
/datum/reagent/consumable/ethanol/protein_blend = 30 SECONDS, // protein shakes are very robust
|
||||
/datum/reagent/inverse/oxandrolone = 25 SECONDS,
|
||||
/datum/reagent/consumable/eggwhite = 20 SECONDS,
|
||||
/datum/reagent/consumable/eggyolk = 15 SECONDS,
|
||||
/datum/reagent/consumable/nutriment/protein = 15 SECONDS,
|
||||
@@ -201,6 +202,9 @@
|
||||
if(new_owner.reagents.has_reagent(/datum/reagent/drug/pumpup)) // steriods? yes please!
|
||||
modifier += 3
|
||||
|
||||
if(new_owner.reagents.has_reagent(/datum/reagent/inverse/oxandrolone)) // MOREEEEE
|
||||
modifier += 2
|
||||
|
||||
var/food_boost = 0
|
||||
for(var/datum/reagent/workout_reagent in supplementary_reagents_bonus)
|
||||
if(new_owner.reagents.has_reagent(workout_reagent))
|
||||
|
||||
@@ -790,3 +790,154 @@ Basically, we fill the time between now and 2s from now with hands based off the
|
||||
return
|
||||
|
||||
hearing_args[HEARING_RAW_MESSAGE] = "<span class='[randomSpan]'>[hearing_args[HEARING_RAW_MESSAGE]]</span>"
|
||||
|
||||
/datum/reagent/inverse/sal_acid
|
||||
name = "Benzoic Acid"
|
||||
description = "Robust fertilizer that provides a decent range of benefits for plant life."
|
||||
taste_description = "flowers"
|
||||
reagent_state = LIQUID
|
||||
color = "#e6c843"
|
||||
ph = 3.4
|
||||
tox_damage = 0
|
||||
|
||||
/datum/reagent/inverse/sal_acid/on_hydroponics_apply(obj/machinery/hydroponics/mytray, mob/user)
|
||||
mytray.adjust_plant_health(round(volume * 0.5))
|
||||
mytray.myseed?.adjust_production(-round(volume * 0.2))
|
||||
mytray.myseed?.adjust_potency(round(volume * 0.25))
|
||||
mytray.myseed?.adjust_yield(round(volume * 0.2))
|
||||
|
||||
/datum/reagent/inverse/oxandrolone
|
||||
name = "Oxymetholone"
|
||||
description = "Anabolic steroid that promotes the growth of muscle during and after exercise."
|
||||
reagent_state = LIQUID
|
||||
color = "#520c23"
|
||||
taste_description = "sweat"
|
||||
metabolization_rate = 0.4 * REM
|
||||
overdose_threshold = 25
|
||||
ph = 12.2
|
||||
tox_damage = 0
|
||||
|
||||
/datum/reagent/inverse/oxandrolone/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/high_message = pick("You feel unstoppable.", "Giving it EVERYTHING!!", "You feel ready for anything.", "You feel like doing a thousand jumping jacks!")
|
||||
if(SPT_PROB(2, seconds_per_tick))
|
||||
to_chat(affected_mob, span_notice("[high_message]"))
|
||||
|
||||
/datum/reagent/inverse/oxandrolone/overdose_process(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
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)
|
||||
else if(SPT_PROB(5, seconds_per_tick))
|
||||
affected_mob.vomit(VOMIT_CATEGORY_BLOOD, lost_nutrition = 0, distance = 3)
|
||||
affected_mob.Paralyze(3 SECONDS)
|
||||
|
||||
/datum/reagent/inverse/salbutamol
|
||||
name = "Bamethan"
|
||||
description = "Blood thinner that drastically increases the chance of receiving bleeding wounds."
|
||||
reagent_state = LIQUID
|
||||
color = "#ecd4d6"
|
||||
taste_description = "paint thinner"
|
||||
ph = 4.5
|
||||
metabolization_rate = 0.08 * REM
|
||||
tox_damage = 0
|
||||
|
||||
/datum/reagent/inverse/salbutamol/on_mob_metabolize(mob/living/affected_mob)
|
||||
. = ..()
|
||||
ADD_TRAIT(affected_mob, TRAIT_EASYBLEED, type)
|
||||
|
||||
/datum/reagent/inverse/salbutamol/on_mob_end_metabolize(mob/living/affected_mob)
|
||||
. = ..()
|
||||
REMOVE_TRAIT(affected_mob, TRAIT_EASYBLEED, type)
|
||||
|
||||
/datum/reagent/inverse/pen_acid
|
||||
name = "Pendetide"
|
||||
description = "Purges basic toxin healing medications and increases the severity of radiation poisoning."
|
||||
reagent_state = LIQUID
|
||||
color = "#09ff00"
|
||||
ph = 3.7
|
||||
taste_description = "venom"
|
||||
metabolization_rate = 0.25 * REM
|
||||
tox_damage = 0
|
||||
|
||||
/datum/reagent/inverse/pen_acid/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
holder.remove_reagent(/datum/reagent/medicine/c2/seiver, 5 * REM * seconds_per_tick)
|
||||
holder.remove_reagent(/datum/reagent/medicine/potass_iodide, 5 * REM * seconds_per_tick)
|
||||
holder.remove_reagent(/datum/reagent/medicine/c2/multiver, 5 * REM * seconds_per_tick)
|
||||
|
||||
. = ..()
|
||||
if(HAS_TRAIT(affected_mob, TRAIT_IRRADIATED))
|
||||
affected_mob.set_jitter_if_lower(10 SECONDS)
|
||||
affected_mob.adjust_disgust(3 * REM * seconds_per_tick)
|
||||
if(SPT_PROB(2.5, seconds_per_tick))
|
||||
to_chat(affected_mob, span_warning("A horrible ache spreads in your insides!"))
|
||||
affected_mob.adjust_confusion_up_to(10 SECONDS, 15 SECONDS)
|
||||
|
||||
/datum/reagent/inverse/atropine
|
||||
name = "Hyoscyamine"
|
||||
description = "Slowly regenerates all damaged organs, but cannot restore non-functional organs."
|
||||
reagent_state = LIQUID
|
||||
color = "#273333"
|
||||
ph = 13.6
|
||||
metabolization_rate = 0.2 * REM
|
||||
tox_damage = 0
|
||||
overdose_threshold = 40
|
||||
|
||||
/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)
|
||||
if(need_mob_update)
|
||||
return UPDATE_MOB_HEALTH
|
||||
|
||||
/datum/reagent/inverse/atropine/overdose_process(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
var/static/list/possible_organs = list(
|
||||
ORGAN_SLOT_HEART,
|
||||
ORGAN_SLOT_LIVER,
|
||||
ORGAN_SLOT_LUNGS,
|
||||
ORGAN_SLOT_STOMACH,
|
||||
ORGAN_SLOT_EYES,
|
||||
ORGAN_SLOT_EARS,
|
||||
ORGAN_SLOT_BRAIN,
|
||||
ORGAN_SLOT_APPENDIX,
|
||||
ORGAN_SLOT_TONGUE,
|
||||
)
|
||||
affected_mob.adjustOrganLoss(pick(possible_organs) ,2 * seconds_per_tick)
|
||||
affected_mob.reagents.remove_reagent(type, 1 * REM * seconds_per_tick)
|
||||
|
||||
/datum/reagent/inverse/ammoniated_mercury
|
||||
name = "Ammoniated Sludge"
|
||||
description = "A ghastly looking mess of mercury by-product. Causes bursts of manic hysteria."
|
||||
reagent_state = LIQUID
|
||||
color = "#353535"
|
||||
ph = 10.2
|
||||
metabolization_rate = 0.4 * REM
|
||||
tox_damage = 0
|
||||
|
||||
/datum/reagent/inverse/ammoniated_mercury/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
if(SPT_PROB(7.5, seconds_per_tick))
|
||||
affected_mob.emote("scream")
|
||||
affected_mob.say(pick("AAAAAAAHHHHH!!","OOOOH NOOOOOO!!","GGGUUUUHHHHH!!","AIIIIIEEEEEE!!","HAHAHAHAHAAAAAA!!","OORRRGGGHHH!!","AAAAAAAJJJJJJJJJ!!"), forced = type)
|
||||
|
||||
/datum/reagent/inverse/rezadone
|
||||
name = "Inreziniver"
|
||||
description = "Makes the user horribly afraid of all things related to carps."
|
||||
reagent_state = LIQUID
|
||||
color = "#c92eb4"
|
||||
ph = 13.9
|
||||
metabolization_rate = 0.05 * REM
|
||||
tox_damage = 0
|
||||
|
||||
/datum/reagent/inverse/rezadone/on_mob_metabolize(mob/living/carbon/affected_mob)
|
||||
. = ..()
|
||||
affected_mob.gain_trauma(/datum/brain_trauma/mild/phobia/carps, TRAUMA_RESILIENCE_ABSOLUTE)
|
||||
|
||||
/datum/reagent/inverse/rezadone/on_mob_end_metabolize(mob/living/carbon/affected_mob)
|
||||
. = ..()
|
||||
affected_mob.cure_trauma_type(/datum/brain_trauma/mild/phobia/carps, resilience = TRAUMA_RESILIENCE_ABSOLUTE)
|
||||
|
||||
@@ -231,6 +231,8 @@
|
||||
ph = 12.2
|
||||
taste_description = "fish"
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
inverse_chem_val = 0.25
|
||||
inverse_chem = /datum/reagent/inverse/rezadone
|
||||
|
||||
/datum/reagent/medicine/rezadone/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
@@ -285,6 +287,8 @@
|
||||
overdose_threshold = 25
|
||||
ph = 10.7
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
inverse_chem_val = 0.3
|
||||
inverse_chem = /datum/reagent/inverse/oxandrolone
|
||||
|
||||
/datum/reagent/medicine/oxandrolone/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
@@ -478,6 +482,8 @@
|
||||
overdose_threshold = 10
|
||||
ph = 7
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
inverse_chem_val = 0.50
|
||||
inverse_chem = /datum/reagent/inverse/ammoniated_mercury
|
||||
|
||||
/datum/reagent/medicine/ammoniated_mercury/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
@@ -528,6 +534,8 @@
|
||||
metabolization_rate = 0.5 * REAGENTS_METABOLISM
|
||||
ph = 1 //One of the best buffers, NEVERMIND!
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
inverse_chem_val = 0.4
|
||||
inverse_chem = /datum/reagent/inverse/pen_acid
|
||||
|
||||
/datum/reagent/medicine/pen_acid/on_mob_metabolize(mob/living/affected_mob)
|
||||
. = ..()
|
||||
@@ -554,6 +562,8 @@
|
||||
overdose_threshold = 25
|
||||
ph = 2.1
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
inverse_chem_val = 0.3
|
||||
inverse_chem = /datum/reagent/inverse/sal_acid
|
||||
|
||||
/datum/reagent/medicine/sal_acid/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
@@ -579,6 +589,8 @@
|
||||
metabolization_rate = 0.25 * REAGENTS_METABOLISM
|
||||
ph = 2
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
inverse_chem_val = 0.25
|
||||
inverse_chem = /datum/reagent/inverse/salbutamol
|
||||
|
||||
/datum/reagent/medicine/salbutamol/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired)
|
||||
. = ..()
|
||||
@@ -821,6 +833,8 @@
|
||||
overdose_threshold = 35
|
||||
ph = 12
|
||||
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
|
||||
inverse_chem_val = 0.35
|
||||
inverse_chem = /datum/reagent/inverse/atropine
|
||||
|
||||
/datum/reagent/medicine/atropine/on_mob_add(mob/living/affected_mob)
|
||||
. = ..()
|
||||
|
||||
@@ -67,6 +67,9 @@
|
||||
if(HAS_TRAIT(owner, TRAIT_EASYDISMEMBER))
|
||||
damage *= 1.1
|
||||
|
||||
if(HAS_TRAIT(owner, TRAIT_EASYBLEED) && ((woundtype == WOUND_PIERCE) || (woundtype == WOUND_SLASH)))
|
||||
damage *= 1.5
|
||||
|
||||
var/base_roll = rand(1, round(damage ** WOUND_DAMAGE_EXPONENT))
|
||||
var/injury_roll = base_roll
|
||||
injury_roll += check_woundings_mods(woundtype, damage, wound_bonus, bare_wound_bonus)
|
||||
|
||||
@@ -113,6 +113,23 @@
|
||||
"transfusion"
|
||||
],
|
||||
|
||||
"carps": [
|
||||
"aquarium",
|
||||
"carp",
|
||||
"carps",
|
||||
"carpotoxin",
|
||||
"fin",
|
||||
"fins",
|
||||
"fish",
|
||||
"fang",
|
||||
"gnash",
|
||||
"migration",
|
||||
"slash",
|
||||
"shred",
|
||||
"teeth",
|
||||
"tooth"
|
||||
],
|
||||
|
||||
"clowns": [
|
||||
"banana",
|
||||
"clown",
|
||||
|
||||
Reference in New Issue
Block a user