Skip to content

Commit

Permalink
Cobbduceus: (Baby) C2 Additions (Rhig,Troph) and Changes (Helbital) (t…
Browse files Browse the repository at this point in the history
…gstation#49356)

It's the year of the rat sisters, and now it's time to cut out those pesky C3s in your life!

Why It's Good For The Game

Rhig and Troph are no brainers considering they're on the same level of ease2make as the C2s and have no downside. They will still be good but they have some C2 component now. Kinda minor compared to the others but I'll see how it plays out.
Changelog

🆑
balance: Helbital now is more simple to use and is based off not crit/softcrit/hardcrit. You want to be in hardcrit for the best brute healing.
tweak: Troph has now been converted into a C2 with tweaks, now named Probital. Same recipe. Downside is stamina damage
tweak: Rhig has now been converted into a C2 with tweaks, now named Hercuri. Same Recipe. Downside is it can cool to dangerous levels.
/🆑
  • Loading branch information
ExcessiveUseOfCobblestone authored Feb 22, 2020
1 parent 1a95840 commit 0133414
Show file tree
Hide file tree
Showing 7 changed files with 115 additions and 96 deletions.
14 changes: 7 additions & 7 deletions code/game/objects/items/storage/firstaid.dm
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@
return
var/static/items_inside = list(
/obj/item/reagent_containers/pill/patch/aiuri = 3,
/obj/item/reagent_containers/spray/rhigoxane = 1,
/obj/item/reagent_containers/spray/hercuri = 1,
/obj/item/reagent_containers/hypospray/medipen/oxandrolone = 1,
/obj/item/reagent_containers/hypospray/medipen = 1)
generate_items_inside(items_inside,src)
Expand Down Expand Up @@ -222,7 +222,7 @@
var/static/items_inside = list(
/obj/item/reagent_containers/pill/patch/libital = 3,
/obj/item/stack/medical/gauze = 1,
/obj/item/storage/pill_bottle/trophazole = 1,
/obj/item/storage/pill_bottle/C2/probital = 1,
/obj/item/reagent_containers/hypospray/medipen/salacid = 1)
generate_items_inside(items_inside,src)

Expand Down Expand Up @@ -354,13 +354,13 @@
for(var/i in 1 to 3)
new /obj/item/reagent_containers/pill/potassiodide(src)

/obj/item/storage/pill_bottle/trophazole
name = "bottle of trophazole pills"
desc = "Contains pills used to treat brute damage.The tag in the bottle states 'Eat before ingesting'."
/obj/item/storage/pill_bottle/C2/probital
name = "bottle of probital pills"
desc = "Contains pills used to treat brute damage.The tag in the bottle states 'Eat before ingesting, may cause fatigue'."

/obj/item/storage/pill_bottle/trophazole/PopulateContents()
/obj/item/storage/pill_bottle/C2/probital/PopulateContents()
for(var/i in 1 to 4)
new /obj/item/reagent_containers/pill/trophazole(src)
new /obj/item/reagent_containers/pill/C2/probital(src)

/obj/item/storage/pill_bottle/iron
name = "bottle of iron pills"
Expand Down
4 changes: 2 additions & 2 deletions code/modules/cargo/bounties/reagent.dm
Original file line number Diff line number Diff line change
Expand Up @@ -238,8 +238,8 @@
/datum/reagent/medicine/atropine,\
/datum/reagent/medicine/cryoxadone,\
/datum/reagent/medicine/salbutamol,\
/datum/reagent/medicine/rhigoxane,\
/datum/reagent/medicine/trophazole,\
/datum/reagent/medicine/C2/hercuri,\
/datum/reagent/medicine/C2/probital,\
/datum/reagent/drug/methamphetamine,\
/datum/reagent/drug/crank,\
/datum/reagent/nitrous_oxide,\
Expand Down
110 changes: 94 additions & 16 deletions code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,34 @@
/******BRUTE******/
/*Suffix: -bital*/

/datum/reagent/medicine/C2/helbital //only REALLY a C2 if you heal the other damages but not being able to outright heal the other guys is close enough to damaging
/datum/reagent/medicine/C2/helbital //kinda a C2 only if you're not in hardcrit.
name = "Helbital"
description = "Named after the norse goddess Hel, this medicine heals the patient's bruises the closer they are to death. Burns, toxins, and asphyxition will increase healing but these damages must be maintained while the drug is being metabolized or the drug will react negatively."
description = "Named after the norse goddess Hel, this medicine heals the patient's bruises the closer they are to death. Patients will find the medicine 'aids' their healing if not near death by causing asphyxiation."
color = "#9400D3"
taste_description = "cold and lifeless"
overdose_threshold = 35
reagent_state = SOLID
var/helbent = FALSE
var/beginning_combo = 0
var/reaping = FALSE

/datum/reagent/medicine/C2/helbital/on_mob_metabolize(mob/living/carbon/M)
beginning_combo = M.getToxLoss() + M.getOxyLoss() + M.getFireLoss() //This DOES mean you can cure Tox/Oxy and then do burn to maintain the brute healing that way.
return ..()

/datum/reagent/medicine/C2/helbital/on_mob_life(mob/living/carbon/M)
. = TRUE
var/cccombo = M.getToxLoss() + M.getOxyLoss() + M.getFireLoss()
var/healed_this_iteration = FALSE
if(cccombo >= beginning_combo)
M.adjustBruteLoss(FLOOR(cccombo/-15,0.1)) //every 15 damage adds 1 per tick
healed_this_iteration = TRUE
else
M.adjustToxLoss((beginning_combo-cccombo)*0.1) //If you are just healing instead of converting the damage we'll KINDLY do it for you AND make it the most difficult!

if(healed_this_iteration && !reaping && prob(0.0001)) //janken with the grim reaper!
var/death_is_coming = (M.getToxLoss() + M.getOxyLoss() + M.getFireLoss() + M.getBruteLoss())
var/thou_shall_heal = 0
var/good_kind_of_healing = FALSE
switch(M.stat)
if(CONSCIOUS) //bad
thou_shall_heal = death_is_coming/50
M.adjustOxyLoss(2, TRUE)
if(SOFT_CRIT) //meh convert
thou_shall_heal = round(death_is_coming/47,0.1)
M.adjustOxyLoss(1, TRUE)
else //no convert
thou_shall_heal = round(death_is_coming/45,0.1)
good_kind_of_healing = TRUE
M.adjustBruteLoss(thou_shall_heal, FALSE)

if(good_kind_of_healing && !reaping && prob(0.0001)) //janken with the grim reaper!
reaping = TRUE
var/list/RockPaperScissors = list("rock" = "paper", "paper" = "scissors", "scissors" = "rock") //choice = loses to
if(M.apply_status_effect(/datum/status_effect/necropolis_curse,CURSE_BLINDING))
Expand Down Expand Up @@ -89,6 +91,47 @@
..()
return TRUE

/datum/reagent/medicine/C2/probital
name = "Probital"
description = "Originally developed as a prototype-gym supliment for those looking for quick workout turnover, this oral medication quickly repairs broken muscle tissue but causes lactic acid buildup, tiring the patient. Overdosing can cause extreme drowsiness. An Influx of nutrients promotes the muscle repair even further."
reagent_state = SOLID
color = "#FFFF6B"
overdose_threshold = 20

/datum/reagent/medicine/C2/probital/on_mob_life(mob/living/carbon/M)
M.adjustBruteLoss(-2.25*REM, FALSE)
var/ooo_youaregettingsleepy = 3.5
switch(round(M.getStaminaLoss()))
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
M.adjustStaminaLoss(ooo_youaregettingsleepy*REM, FALSE)
..()
. = TRUE

/datum/reagent/medicine/C2/probital/overdose_process(mob/living/M)
M.adjustStaminaLoss(3*REM, 0)
if(M.getStaminaLoss() >= 80)
M.drowsyness++
if(M.getStaminaLoss() >= 100)
to_chat(M,"<span class='warning'>You feel more tired than you usually do, perhaps if you rest your eyes for a bit...</span>")
M.adjustStaminaLoss(-100, TRUE)
M.Sleeping(10 SECONDS)
..()
. = TRUE

/datum/reagent/medicine/C2/probital/on_transfer(atom/A, method=INGEST, trans_volume)
if(method != INGEST || !iscarbon(A))
return

A.reagents.remove_reagent(/datum/reagent/medicine/C2/probital, trans_volume * 0.05)
A.reagents.add_reagent(/datum/reagent/medicine/metafactor, trans_volume * 0.25)

..()

/******BURN******/
/*Suffix: -uri*/
/datum/reagent/medicine/C2/lenturi
Expand Down Expand Up @@ -125,6 +168,41 @@
..()
return TRUE

/datum/reagent/medicine/C2/hercuri
name = "Hercuri"
description = "Not to be confused with element Mercury, this medicine excels in reverting effects of dangerous high-temperature environments. Prolonged exposure can cause hypothermia."
reagent_state = LIQUID
color = "#F7FFA5"
overdose_threshold = 25
reagent_weight = 0.6

/datum/reagent/medicine/C2/hercuri/on_mob_life(mob/living/carbon/M)
if(M.getFireLoss() > 50)
M.adjustFireLoss(-2*REM, FALSE)
else
M.adjustFireLoss(-1.25*REM, FALSE)
M.adjust_bodytemperature(rand(-25,-5)*(TEMPERATURE_DAMAGE_COEFFICIENT*REM), 50)
M.reagents?.chem_temp +=(-10*REM)
M.adjust_fire_stacks(-1)
..()
. = TRUE

/datum/reagent/medicine/C2/hercuri/reaction_mob(mob/living/carbon/M, method=VAPOR, reac_volume)
if(method != VAPOR)
return

M.adjust_bodytemperature(-reac_volume * TEMPERATURE_DAMAGE_COEFFICIENT, 50)
M.adjust_fire_stacks(-reac_volume / 2)
if(reac_volume >= metabolization_rate)
M.ExtinguishMob()

..()

/datum/reagent/medicine/C2/hercuri/overdose_process(mob/living/carbon/M)
M.adjust_bodytemperature(-10*TEMPERATURE_DAMAGE_COEFFICIENT*REM,50) //chilly chilly
..()


/******OXY******/
/*Suffix: -mol*/
#define CONVERMOL_RATIO 5 //# Oxygen damage to result in 1 tox
Expand Down
56 changes: 0 additions & 56 deletions code/modules/reagents/chemistry/reagents/medicine_reagents.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1214,32 +1214,6 @@
..()
. = 1

/datum/reagent/medicine/trophazole
name = "Trophazole"
description = "Orginally developed as fitness supplement, this chemical accelerates wound healing and if ingested turns nutriment into healing peptides"
reagent_state = LIQUID
color = "#FFFF6B"
overdose_threshold = 20

/datum/reagent/medicine/trophazole/on_mob_life(mob/living/carbon/M)
M.adjustBruteLoss(-1.5*REM, 0.) // heals 3 brute & 0.5 burn if taken with food. compared to 2.5 brute from bicard + nutriment
..()
. = 1

/datum/reagent/medicine/trophazole/overdose_process(mob/living/M)
M.adjustBruteLoss(3*REM, 0)
..()
. = 1

/datum/reagent/medicine/trophazole/on_transfer(atom/A, method=INGEST, trans_volume)
if(method != INGEST || !iscarbon(A))
return

A.reagents.remove_reagent(/datum/reagent/medicine/trophazole, trans_volume * 0.05)
A.reagents.add_reagent(/datum/reagent/medicine/metafactor, trans_volume * 0.25)

..()

/datum/reagent/medicine/metafactor
name = "Mitogen Metabolism Factor"
description = "This enzyme catalyzes the conversion of nutricious food into healing peptides."
Expand All @@ -1256,36 +1230,6 @@
M.vomit()
..()

/datum/reagent/medicine/rhigoxane
name = "Rhigoxane"
description = "A second generation burn treatment agent exhibiting a cooling effect that is especially pronounced when deployed as a spray. Its high halogen content helps extinguish fires."
reagent_state = LIQUID
color = "#F7FFA5"
overdose_threshold = 25
reagent_weight = 0.6

/datum/reagent/medicine/rhigoxane/on_mob_life(mob/living/carbon/M)
M.adjustFireLoss(-2*REM, 0.)
M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
..()
. = 1

/datum/reagent/medicine/rhigoxane/reaction_mob(mob/living/carbon/M, method=VAPOR, reac_volume)
if(method != VAPOR)
return

M.adjust_bodytemperature(-reac_volume * TEMPERATURE_DAMAGE_COEFFICIENT * 20, 200)
M.adjust_fire_stacks(-reac_volume / 2)
if(reac_volume >= metabolization_rate)
M.ExtinguishMob()

..()

/datum/reagent/medicine/rhigoxane/overdose_process(mob/living/carbon/M)
M.adjustFireLoss(3*REM, 0.)
M.adjust_bodytemperature(-35 * TEMPERATURE_DAMAGE_COEFFICIENT, 50)
..()

/datum/reagent/medicine/silibinin
name = "Silibinin"
description = "A thistle derrived hepatoprotective flavolignan mixture that help reverse damage to the liver."
Expand Down
11 changes: 4 additions & 7 deletions code/modules/reagents/chemistry/recipes/medicine.dm
Original file line number Diff line number Diff line change
Expand Up @@ -149,14 +149,14 @@
results = list(/datum/reagent/medicine/psicodine = 5)
required_reagents = list( /datum/reagent/medicine/mannitol = 2, /datum/reagent/water = 2, /datum/reagent/impedrezene = 1)

/datum/chemical_reaction/rhigoxane
results = list(/datum/reagent/medicine/rhigoxane/ = 5)
/datum/chemical_reaction/hercuri
results = list(/datum/reagent/medicine/C2/hercuri = 5)
required_reagents = list(/datum/reagent/cryostylane = 3, /datum/reagent/bromine = 1, /datum/reagent/lye = 1)
required_temp = 47
is_cold_recipe = TRUE

/datum/chemical_reaction/trophazole
results = list(/datum/reagent/medicine/trophazole = 4)
/datum/chemical_reaction/C2/probital
results = list(/datum/reagent/medicine/C2/probital = 4)
required_reagents = list(/datum/reagent/copper = 1, /datum/reagent/acetone = 2, /datum/reagent/phosphorus = 1)

/datum/chemical_reaction/granibitaluri
Expand All @@ -172,6 +172,3 @@
for(var/i = 1, i <= created_volume, i++)
new /obj/item/stack/medical/suture/medicated(location)
return



8 changes: 4 additions & 4 deletions code/modules/reagents/reagent_containers/pill.dm
Original file line number Diff line number Diff line change
Expand Up @@ -240,11 +240,11 @@
list_reagents = list(/datum/reagent/medicine/potass_iodide = 15)
rename_with_volume = TRUE

/obj/item/reagent_containers/pill/trophazole
name = "trophazole pill"
desc = "Used to treat brute damage of minor and moderate severity.The carving in the pill says 'Eat before ingesting'."
/obj/item/reagent_containers/pill/C2/probital
name = "Probital pill"
desc = "Used to treat brute damage of minor and moderate severity.The carving in the pill says 'Eat before ingesting'. Causes fatigue and diluted with granibitaluri."
icon_state = "pill12"
list_reagents = list(/datum/reagent/medicine/trophazole = 15)
list_reagents = list(/datum/reagent/medicine/C2/probital = 5, /datum/reagent/medicine/granibitaluri = 10)
rename_with_volume = TRUE

/obj/item/reagent_containers/pill/iron
Expand Down
8 changes: 4 additions & 4 deletions code/modules/reagents/reagent_containers/spray.dm
Original file line number Diff line number Diff line change
Expand Up @@ -406,8 +406,8 @@
item_state = "sprayer_med_blue"
M.update_inv_hands()

/obj/item/reagent_containers/spray/rhigoxane
name = "medical spray (rhigoxane)"
desc = "A medical spray bottle.This one contains rhigoxane, it is used to treat burns and cool down temperature if applied with spray."
/obj/item/reagent_containers/spray/hercuri
name = "medical spray (hercuri)"
desc = "A medical spray bottle.This one contains hercuri, a medicine used to negate the effects of dangerous high-temperature environments. Careful not to freeze the patient!"
icon_state = "sprayer_large"
list_reagents = list(/datum/reagent/medicine/rhigoxane = 100)
list_reagents = list(/datum/reagent/medicine/C2/hercuri = 100)

0 comments on commit 0133414

Please sign in to comment.