From e002a293750123aab8ef21d0bf97aa867bc21c0f Mon Sep 17 00:00:00 2001 From: InsightfulParasite Date: Sun, 17 Mar 2024 21:56:13 -0400 Subject: [PATCH] Widespread Attribute Chems Reagent Update Widespread Attribute Chems Reagent Update Attribute Increasing Reagents This is a attempt to make food more interesting for agents. In order to prevent a all around buff the chems react with eachother to form a detrimental chemical. --- .../Teguicons/tegu_effects10x10.dmi | Bin 1369 -> 1496 bytes .../code/fish/LC13_fish/freshwater_fish.dm | 18 +++ .../code/fish/LC13_fish/saltwater_fish.dm | 3 +- ModularTegustation/tegu_chemistry/recipes.dm | 56 ++++++++ ModularTegustation/tegufood.dm | 9 +- code/datums/status_effects/debuffs.dm | 23 +++ .../simple_animal/abnormality/_abnormality.dm | 2 + .../simple_animal/abnormality/teth/MHz.dm | 1 + .../abnormality/teth/beauty_beast.dm | 1 + .../abnormality/teth/blood_bath.dm | 1 + .../simple_animal/abnormality/teth/cleaner.dm | 1 + .../abnormality/teth/crumbling_armor.dm | 1 + .../abnormality/teth/drowned_sisters.dm | 1 + .../abnormality/teth/forsaken_murderer.dm | 8 ++ .../abnormality/teth/lady_facing_the_wall.dm | 1 + .../abnormality/teth/old_lady.dm | 1 + .../abnormality/teth/penitent_girl.dm | 1 + .../abnormality/teth/scorched_girl.dm | 1 + .../abnormality/teth/training_rabbit.dm | 1 + .../reagents/abnormality_reagents.dm | 132 ++++++++++++++++++ 20 files changed, 257 insertions(+), 5 deletions(-) diff --git a/ModularTegustation/Teguicons/tegu_effects10x10.dmi b/ModularTegustation/Teguicons/tegu_effects10x10.dmi index c5892eb167bc45764abafe2da38c69048c54f8e3..51903c0eaccb98e58c4e3fffc1b13a57a23ed926 100644 GIT binary patch delta 1478 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 IM6N<$f*CZT#Q*>R diff --git a/ModularTegustation/fishing/code/fish/LC13_fish/freshwater_fish.dm b/ModularTegustation/fishing/code/fish/LC13_fish/freshwater_fish.dm index 3c6856566ccd..4be98379daf0 100644 --- a/ModularTegustation/fishing/code/fish/LC13_fish/freshwater_fish.dm +++ b/ModularTegustation/fishing/code/fish/LC13_fish/freshwater_fish.dm @@ -18,6 +18,11 @@ stable_population = 2 microwaved_type = null fillet_type = /obj/item/food/canned + food_reagents = list( + /datum/reagent/consumable/nutriment/organ_tissue = 3, + /datum/reagent/consumable/nutriment/vile_fluid = 1, + /datum/reagent/abnormality/bittersyrup = 1, + ) /obj/item/food/fish/fresh_water/northernpike name = "northern pike" @@ -40,6 +45,12 @@ sprite_height = 8 average_size = 50 average_weight = 6803 + food_reagents = list( + /datum/reagent/consumable/nutriment/protein = 2, + /datum/reagent/consumable/nutriment/organ_tissue = 1, + /datum/reagent/consumable/nutriment/vile_fluid = 2, + /datum/reagent/abnormality/bittersyrup = 4, + ) /obj/item/food/fish/fresh_water/yin name = "yin carp" @@ -50,6 +61,12 @@ sprite_height = 8 average_size = 50 average_weight = 6803 + food_reagents = list( + /datum/reagent/consumable/nutriment/protein = 2, + /datum/reagent/consumable/nutriment/organ_tissue = 1, + /datum/reagent/consumable/nutriment/vile_fluid = 2, + /datum/reagent/abnormality/tastesyrup = 4, + ) /obj/item/food/fish/fresh_water/mosb name = "mountain of smiling fish" @@ -64,6 +81,7 @@ average_weight = 16000 food_reagents = list( /datum/reagent/medicine/mental_stabilizator = 2, + /datum/reagent/abnormality/heartysyrup = 4, /datum/reagent/consumable/nutriment/vile_fluid = 6, ) fillet_type = /obj/item/food/meat/slab/human/mutant/zombie //zombi meat diff --git a/ModularTegustation/fishing/code/fish/LC13_fish/saltwater_fish.dm b/ModularTegustation/fishing/code/fish/LC13_fish/saltwater_fish.dm index 9bb1346f9d20..f9f9fce84779 100644 --- a/ModularTegustation/fishing/code/fish/LC13_fish/saltwater_fish.dm +++ b/ModularTegustation/fishing/code/fish/LC13_fish/saltwater_fish.dm @@ -58,5 +58,6 @@ food_reagents = list( /datum/reagent/consumable/nutriment/protein = 1, /datum/reagent/consumable/nutriment/organ_tissue = 1, - /datum/reagent/consumable/salt = 8, + /datum/reagent/abnormality/bittersyrup = 4, + /datum/reagent/consumable/salt = 4, ) diff --git a/ModularTegustation/tegu_chemistry/recipes.dm b/ModularTegustation/tegu_chemistry/recipes.dm index 60ea136aaf6b..553f576325cf 100644 --- a/ModularTegustation/tegu_chemistry/recipes.dm +++ b/ModularTegustation/tegu_chemistry/recipes.dm @@ -5,3 +5,59 @@ mix_message = "The mixture laughs at you mockingly." required_temp = 420 mix_sound = 'sound/items/SitcomLaugh1.ogg' + +//LC13 Mixtures +/datum/chemical_reaction/odisone + results = list(/datum/reagent/abnormality/odisone = 1) + required_reagents = list(/datum/reagent/abnormality/focussyrup = 1, /datum/reagent/abnormality/violence = 1) + mix_message = "The mixture gives off a spicy odor." + +/* +* Ideally each of the abnormality chems would have a useful reaction. These are the two chemicals i have not yet found a place for. +/datum/chemical_reaction/sange_rau + results = list(/datum/reagent/abnormality/sange_rau = 1) + required_reagents = list(/datum/reagent/abnormality/focussyrup = 1, /datum/reagent/abnormality/nutrition = 1, /datum/reagent/blood) + +/datum/chemical_reaction/sange_rau + results = list(/datum/reagent/abnormality/sange_rau = 1) + required_reagents = list(/datum/reagent/abnormality/tastesyrup = 1, /datum/reagent/abnormality/amusement = 1) +*/ + +/datum/chemical_reaction/culpusumidus + results = list(/datum/reagent/abnormality/culpusumidus = 1) + required_reagents = list(/datum/reagent/abnormality/tastesyrup = 1, /datum/reagent/abnormality/woe = 1) + required_catalysts = list(/datum/reagent/water = 1) + mix_message = "The mixture gives off a odor of soggy bread." + +/datum/chemical_reaction/serelam + results = list(/datum/reagent/abnormality/serelam = 1) + required_reagents = list(/datum/reagent/abnormality/bittersyrup = 1, /datum/reagent/abnormality/tastesyrup = 1) + mix_message = "The mixture starts to swirl around." + +/datum/chemical_reaction/nepenthe + results = list(/datum/reagent/abnormality/nepenthe = 1) + required_reagents = list(/datum/reagent/abnormality/bittersyrup = 1, /datum/reagent/abnormality/consensus = 1) + mix_message = "The mixture gives off a flowery odor." + +/datum/chemical_reaction/piedrabital + results = list(/datum/reagent/abnormality/piedrabital = 1) + required_reagents = list(/datum/reagent/abnormality/heartysyrup = 1, /datum/reagent/abnormality/cleanliness = 1) + mix_message = "The mixture becomes chunky." + +/datum/chemical_reaction/dyscrasone + results = list(/datum/reagent/abnormality/dyscrasone = 2) + required_reagents = list(/datum/reagent/abnormality/heartysyrup = 1, /datum/reagent/abnormality/odisone = 1) + mix_message = "The mixture starts sizzling." + +/* +* Bad Reactions +* These reactions are for when two chemicals are a little too overpowered when mixed together +* and one of the ways to prevent people getting dosed up on 4 of the best chemicals is to make +* those chemicals mix into something gross. Think of depressents with stimulants or those weird +* internet challenges where they mix foods. +*/ + +/datum/chemical_reaction/serelam_bad_react1 + results = list(/datum/reagent/yuck = 1) + required_reagents = list(/datum/reagent/abnormality/serelam = 5, /datum/reagent/abnormality/culpusumidus = 5) + diff --git a/ModularTegustation/tegufood.dm b/ModularTegustation/tegufood.dm index 8dc947e3f5d1..74cd0a2aae90 100644 --- a/ModularTegustation/tegufood.dm +++ b/ModularTegustation/tegufood.dm @@ -38,12 +38,13 @@ /obj/item/food/cookie/sugar/pbird desc = "A sweet cookie shaped like a cute little bird." icon_state = "sugarcookie_pbird" + food_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/abnormality/heartysyrup = 1) /obj/item/food/cake/bbird name = "Big Bird cake" desc = "A cake that seems like it's watching you." icon_state = "bbcake" - food_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/vitamin = 5) + food_reagents = list(/datum/reagent/consumable/nutriment = 20, /datum/reagent/consumable/nutriment/vitamin = 5, /datum/reagent/abnormality/tastesyrup = 3) tastes = list("cake" = 1, "vigilance" = 1) foodtypes = GRAIN | DAIRY @@ -60,7 +61,7 @@ name = "Judgement sundae" desc = "A sweet, sweet serving of justice." icon_state = "sundae" //PLACEHOLDER - food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/banana = 5, /datum/reagent/consumable/nutriment/vitamin = 2) + food_reagents = list(/datum/reagent/consumable/nutriment = 6, /datum/reagent/consumable/banana = 5, /datum/reagent/consumable/nutriment/vitamin = 2, /datum/reagent/abnormality/focussyrup = 5) tastes = list("judgement" = 1, "paranoia" = 1) foodtypes = DAIRY | SUGAR @@ -79,7 +80,7 @@ name = "Apocalypse trifle" desc = "A huge serving of monstrously good cake, custard, and forest fruit." icon_state = "apoctrifle" - food_reagents = list(/datum/reagent/consumable/nutriment = 15, /datum/reagent/consumable/sugar = 5) + food_reagents = list(/datum/reagent/abnormality/tastesyrup = 9, /datum/reagent/abnormality/focussyrup = 9, /datum/reagent/abnormality/heartysyrup = 9, /datum/reagent/consumable/nutriment = 15, /datum/reagent/consumable/sugar = 5) tastes = list("cake" = 3, "custard" = 3, "fresh fruit" = 3, "fear" = 1) foodtypes = DAIRY | SUGAR | FRUIT @@ -143,7 +144,7 @@ name = "sweeper soup" desc = "Liquid sweeper in a bowl made of its own shell." icon_state = "redbeetsoup" //PLACEHOLDER - food_reagents = list(/datum/reagent/consumable/nutriment/protein = 6, /datum/reagent/blood = 10) + food_reagents = list(/datum/reagent/consumable/nutriment/protein = 6, /datum/reagent/blood = 10, /datum/reagent/abnormality/heartysyrup = 2) tastes = list("something metallic" = 1) foodtypes = MEAT diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 12ee35b3b380..5de116b073b9 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -1168,3 +1168,26 @@ src.apply_status_effect(/datum/status_effect/stacking/lc_burn, stacks) else B.add_stacks(stacks) + +/datum/status_effect/display/dyscrasone_withdrawl + id = "dyscrasone_withdrawl" + status_type = STATUS_EFFECT_UNIQUE + duration = 15 SECONDS + alert_type = null + display_name = "sadface_all_stats" + +/datum/status_effect/display/dyscrasone_withdrawl/on_apply() + . = ..() + var/mob/living/carbon/human/L = owner + L.adjust_attribute_buff(FORTITUDE_ATTRIBUTE, -25) + L.adjust_attribute_buff(PRUDENCE_ATTRIBUTE, -25) + L.adjust_attribute_buff(TEMPERANCE_ATTRIBUTE, -25) + L.adjust_attribute_buff(JUSTICE_ATTRIBUTE, -25) + +/datum/status_effect/display/dyscrasone_withdrawl/on_remove() + var/mob/living/carbon/human/L = owner + L.adjust_attribute_buff(FORTITUDE_ATTRIBUTE, 25) + L.adjust_attribute_buff(PRUDENCE_ATTRIBUTE, 25) + L.adjust_attribute_buff(TEMPERANCE_ATTRIBUTE, 25) + L.adjust_attribute_buff(JUSTICE_ATTRIBUTE, 25) + return ..() diff --git a/code/modules/mob/living/simple_animal/abnormality/_abnormality.dm b/code/modules/mob/living/simple_animal/abnormality/_abnormality.dm index 6690452a6d93..c0e709ab6833 100644 --- a/code/modules/mob/living/simple_animal/abnormality/_abnormality.dm +++ b/code/modules/mob/living/simple_animal/abnormality/_abnormality.dm @@ -84,6 +84,8 @@ /datum/reagent/abnormality/consensus, /datum/reagent/abnormality/amusement, /datum/reagent/abnormality/violence, + /datum/reagent/abnormality/woe, + /datum/reagent/abnormality/abno_oil, ) // Increased Abno appearance chance /// Assoc list, you do [path] = [probability_multiplier] for each entry diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/MHz.dm b/code/modules/mob/living/simple_animal/abnormality/teth/MHz.dm index 5de7e5004904..92549801c577 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/MHz.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/MHz.dm @@ -21,6 +21,7 @@ ) work_damage_amount = 5 work_damage_type = WHITE_DAMAGE + chem_type = /datum/reagent/abnormality/abno_oil ego_list = list( /datum/ego_datum/weapon/noise, diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/beauty_beast.dm b/code/modules/mob/living/simple_animal/abnormality/teth/beauty_beast.dm index 9d173134fb03..14169a5384fb 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/beauty_beast.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/beauty_beast.dm @@ -22,6 +22,7 @@ ) work_damage_amount = 5 work_damage_type = WHITE_DAMAGE + chem_type = /datum/reagent/abnormality/violence ego_list = list( /datum/ego_datum/weapon/horn, diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/blood_bath.dm b/code/modules/mob/living/simple_animal/abnormality/teth/blood_bath.dm index 6e4a2fb3289d..b4135e576be3 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/blood_bath.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/blood_bath.dm @@ -15,6 +15,7 @@ ) work_damage_amount = 8 work_damage_type = WHITE_DAMAGE + chem_type = /datum/reagent/abnormality/woe max_boxes = 14 ego_list = list( diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/cleaner.dm b/code/modules/mob/living/simple_animal/abnormality/teth/cleaner.dm index fab6a6cfe45e..58be32e5836b 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/cleaner.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/cleaner.dm @@ -31,6 +31,7 @@ ) work_damage_amount = 7 work_damage_type = RED_DAMAGE + chem_type = /datum/reagent/abnormality/abno_oil ego_list = list( /datum/ego_datum/weapon/sanitizer, diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/crumbling_armor.dm b/code/modules/mob/living/simple_animal/abnormality/teth/crumbling_armor.dm index 039a185402cb..4cb77dbd620e 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/crumbling_armor.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/crumbling_armor.dm @@ -17,6 +17,7 @@ ) work_damage_amount = 5 work_damage_type = RED_DAMAGE + chem_type = /datum/reagent/abnormality/violence ego_list = list( /datum/ego_datum/weapon/daredevil, diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/drowned_sisters.dm b/code/modules/mob/living/simple_animal/abnormality/teth/drowned_sisters.dm index 270447ae2070..3b176d17fab1 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/drowned_sisters.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/drowned_sisters.dm @@ -17,6 +17,7 @@ start_qliphoth = 3 work_damage_amount = 5 //Calculated later work_damage_type = WHITE_DAMAGE + chem_type = /datum/reagent/abnormality/woe pixel_x = -32 base_pixel_x = -32 diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_murderer.dm b/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_murderer.dm index 0789dd690aaf..b10aa11dde9b 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_murderer.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_murderer.dm @@ -63,6 +63,14 @@ ) work_damage_amount = 6 work_damage_type = RED_DAMAGE + + /* + * This is related to abnochem where a chemical can be harvested from abnormalities. + * This is more for general flavor and will be randomly filled if left empty. + * I placed this here because i felt like violence makes the most sense. + */ + chem_type = /datum/reagent/abnormality/violence + //shows in chat when the creature is defeated. Default is "stops moving". death_message = "falls over." //Phrases that the creature will emote randomly based on speak chance. diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/lady_facing_the_wall.dm b/code/modules/mob/living/simple_animal/abnormality/teth/lady_facing_the_wall.dm index 0cc672528c53..e0bef9d53fb4 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/lady_facing_the_wall.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/lady_facing_the_wall.dm @@ -18,6 +18,7 @@ work_damage_amount = 7 work_damage_type = WHITE_DAMAGE + chem_type = /datum/reagent/abnormality/woe start_qliphoth = 2 var/scream_range = 10 var/scream_damage = 45 diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/old_lady.dm b/code/modules/mob/living/simple_animal/abnormality/teth/old_lady.dm index 16d30d460dcd..4e93fc78ff54 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/old_lady.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/old_lady.dm @@ -17,6 +17,7 @@ start_qliphoth = 4 work_damage_amount = 6 work_damage_type = WHITE_DAMAGE + chem_type = /datum/reagent/abnormality/woe ego_list = list( /datum/ego_datum/weapon/solitude, /datum/ego_datum/armor/solitude, diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/penitent_girl.dm b/code/modules/mob/living/simple_animal/abnormality/teth/penitent_girl.dm index a253ccddd7c2..2b812fdbd9de 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/penitent_girl.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/penitent_girl.dm @@ -19,6 +19,7 @@ is_flying_animal = TRUE work_damage_amount = 6 work_damage_type = WHITE_DAMAGE + chem_type = /datum/reagent/abnormality/woe ego_list = list( /datum/ego_datum/weapon/sorrow, diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/scorched_girl.dm b/code/modules/mob/living/simple_animal/abnormality/teth/scorched_girl.dm index 0cb3cbc777fa..f12842704ecd 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/scorched_girl.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/scorched_girl.dm @@ -21,6 +21,7 @@ ) work_damage_amount = 6 work_damage_type = RED_DAMAGE + chem_type = /datum/reagent/abnormality/woe damage_coeff = list(RED_DAMAGE = 0.5, WHITE_DAMAGE = 2, BLACK_DAMAGE = 1, PALE_DAMAGE = 2) faction = list("hostile") can_breach = TRUE diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/training_rabbit.dm b/code/modules/mob/living/simple_animal/abnormality/teth/training_rabbit.dm index 710f799c4d77..80248edf6442 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/training_rabbit.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/training_rabbit.dm @@ -18,6 +18,7 @@ ) work_damage_amount = 2 work_damage_type = RED_DAMAGE + chem_type = /datum/reagent/blood damage_coeff = list(RED_DAMAGE = 0.5, WHITE_DAMAGE = 1.5, BLACK_DAMAGE = 1, PALE_DAMAGE = 1) can_breach = TRUE start_qliphoth = 1 diff --git a/code/modules/reagents/chemistry/reagents/abnormality_reagents.dm b/code/modules/reagents/chemistry/reagents/abnormality_reagents.dm index d01d2c64d800..479ddb1ce447 100644 --- a/code/modules/reagents/chemistry/reagents/abnormality_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/abnormality_reagents.dm @@ -108,6 +108,138 @@ health_restore = -2 stat_changes = list(0, 0, 0, 10) +/datum/reagent/abnormality/abno_oil // Generally found in mechanical abnormalities. Increases vulnerability to Black damage. Increases resistance to normal damage. + name = "Generic Enkephalin Derivate type RO" + description = "Barely stable, but it exists..." + color = COLOR_GRAY + special_properties = list("substance may make the subject gain the defenses of a machine.") + damage_mods = list(0.8, 0.9, 1.5, 1) + +/datum/reagent/abnormality/woe // Eats away at health to restore sanity. + name = "Generic Enkephalin Derivate type WP" + description = "Barely stable, but it exists..." + color = COLOR_GRAY + // Attempting to balance this by making the hp cost twice the sanity restored. + health_restore = -4 + sanity_restore = 2 + special_properties = list("substance transforms mental wounds into physical injuries.") + +///// Common Abnochems +/datum/reagent/abnormality/odisone // Increases Fort and Justice by 10 while reducing all other stats by 20 + name = "Odisone" + description = "Deriving from the latin odium, this substance \ + highens the thrill of combat while greatly reducing the \ + subjects ability to think." + metabolization_rate = 0.8 * REAGENTS_METABOLISM + color = COLOR_RED + stat_changes = list(10, -20, -20, 10) + +/datum/reagent/abnormality/dyscrasone // Addictive stat buffing. Debuff is in status_effects/debuff.dm + name = "Dyscrasone" + description = "This drug increases all of a subjects attributes \ + but induces a heavy withdrawl penalty." + metabolization_rate = 0.8 * REAGENTS_METABOLISM + color = COLOR_BUBBLEGUM_RED + stat_changes = list(10, 10, 10, 10) + +/datum/reagent/abnormality/dyscrasone/on_mob_metabolize(mob/living/L) + . = ..() + if(ishuman(L)) + var/mob/living/carbon/human/H = L + H.remove_status_effect(/datum/status_effect/display/dyscrasone_withdrawl) + +/datum/reagent/abnormality/dyscrasone/on_mob_end_metabolize(mob/living/L) + . = ..() + if(ishuman(L)) + var/mob/living/carbon/human/H = L + H.apply_status_effect(/datum/status_effect/display/dyscrasone_withdrawl) + +/datum/reagent/abnormality/serelam // Increases Prudence and Temperance by 10 while reducing all other stats by 20 + name = "Serelam" + description = "Formed from the mixture of mundance and \ + supernatural fluids, this substance strengthens the \ + users calm in intense situations but also weakens \ + their muscles during combat." + metabolization_rate = 0.8 * REAGENTS_METABOLISM + stat_changes = list(-20, 10, 10, -20) + +/datum/reagent/abnormality/culpusumidus // Increases Prudence but inflicts sanity damage when exiting system. + name = "Culpus Umidus" + description = "This fluid increases prudence but induces \ + a intense feeling of remorse when leaving the subjects system." + metabolization_rate = 0.8 * REAGENTS_METABOLISM + color = COLOR_BEIGE + stat_changes = list(0, 10, 0, 0) + +/datum/reagent/abnormality/culpusumidus/on_mob_end_metabolize(mob/living/L) + . = ..() + if(ishuman(L)) + var/mob/living/carbon/human/H = L + to_chat(H, span_warning("You need to suffer for what was done.")) + H.adjustSanityLoss(H.maxSanity * 0.15, TRUE) + +/datum/reagent/abnormality/nepenthe // Rapidly restores sanity to those who are insane. + name = "Lesser Nepenthe" + description = "Rapidly restores sanity to those who have gone insane. \ + For those who consume this drink, forgetfulness takes away their sorrow." + metabolization_rate = 1 * REAGENTS_METABOLISM + color = COLOR_BLUE + +/datum/reagent/abnormality/nepenthe/on_mob_life(mob/living/carbon/M) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.sanity_lost) + H.adjustSanityLoss((-H.maxSanity*0.05)*REM) + else + H.adjustSanityLoss(-1*REM) + return ..() + +/datum/reagent/abnormality/piedrabital // Heals but has a chance of immobalizing the subject + name = "Piedrabital" + description = "Closes wounds and heals bruises but sometimes causes \ + muscles to seize up due to tissue build up." + metabolization_rate = 0.6 * REAGENTS_METABOLISM + color = COLOR_BUBBLEGUM_RED + +/datum/reagent/abnormality/piedrabital/on_mob_life(mob/living/carbon/M) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(prob(20 + (0.5 * current_cycle))) + //Chance of stun increases by 0.5 per cycle + H.Stun(20*REM) + else + H.adjustBruteLoss(rand(-8,-4)*REM) + return ..() + + //Subtypes +/datum/reagent/abnormality/heartysyrup + name = "Hearty Syrup" + description = "A substance of certain vitamins that can be found in some foods. \ + Increases fortitude by 6 while in system." + color = COLOR_VIVID_RED + stat_changes = list(6, 0, 0, 0) + +/datum/reagent/abnormality/bittersyrup + name = "Bitter Syrup" + description = "A substance that distrupts mental attacks. \ + Increases prudence by 6 while in system." + color = COLOR_BEIGE + stat_changes = list(0, 6, 0, 0) + +/datum/reagent/abnormality/tastesyrup + name = "Tasteless Syrup" + description = "A substance that calms the body and mind. \ + Increases temperance by 6 while in system." + color = COLOR_PURPLE + stat_changes = list(0, 0, 6, 0) + +/datum/reagent/abnormality/focussyrup + name = "Focused Syrup" + description = "A substance that increases reaction time and movement. \ + Increases justice by 6 while in system." + color = COLOR_CYAN + stat_changes = list(0, 0, 0, 6) + ///// Abnochem scanner! /obj/item/enkephalin_scanner