From b6309d5a312c4d1d976db7768e5dde69b042e971 Mon Sep 17 00:00:00 2001 From: Thalpy Date: Sat, 29 Jun 2019 02:47:32 +0100 Subject: [PATCH] Fixes explosion bug, tweaks hypo and fiddles pH. --- code/modules/reagents/chemistry/holder.dm | 6 ++-- code/modules/reagents/chemistry/reagents.dm | 3 +- .../reagents/reagent_containers/glass.dm | 12 +++---- .../reagents/chemistry/reagents/astrogen.dm | 14 ++++++++ .../chemistry/reagents/enlargement.dm | 33 +++++++++++++++++-- .../chemistry/reagents/fermi_reagents.dm | 1 + 6 files changed, 57 insertions(+), 12 deletions(-) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 675ea75198..4864470706 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -465,7 +465,7 @@ if (chem_temp > C.ExplodeTemp) //This is first to ensure explosions. var/datum/chemical_reaction/fermi/Ferm = selected_reaction fermiIsReacting = FALSE - SSblackbox.record_feedback("tally", "fermi_chem", 1, (Ferm+" explosion")) + SSblackbox.record_feedback("tally", "fermi_chem", 1, ("[Ferm] explosion")) Ferm.FermiExplode(src, my_atom, volume = total_volume, temp = chem_temp, pH = pH) return 0 @@ -666,7 +666,7 @@ if(P == R.id) if (R.purity < C.PurityMin)//If purity is below the min, blow it up. fermiIsReacting = FALSE - SSblackbox.record_feedback("tally", "fermi_chem", 1, (P+" explosion")) + SSblackbox.record_feedback("tally", "fermi_chem", 1, ("[P] explosion")) C.FermiExplode(src, my_atom, (reactedVol+targetVol), cached_temp, pH) STOP_PROCESSING(SSprocessing, src) return 0 @@ -683,7 +683,7 @@ if (chem_temp > C.ExplodeTemp) //go to explode proc fermiIsReacting = FALSE - SSblackbox.record_feedback("tally", "fermi_chem", 1, (C+" explosions")) + SSblackbox.record_feedback("tally", "fermi_chem", 1, ("[C] explosions")) C.FermiExplode(src, my_atom, (reactedVol+targetVol), chem_temp, pH) STOP_PROCESSING(SSprocessing, src) return diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index fe1bea503d..45c6069318 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -68,7 +68,8 @@ /datum/reagent/proc/on_mob_life(mob/living/carbon/M) current_cycle++ - holder.remove_reagent(src.id, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears. + if(holder) + holder.remove_reagent(src.id, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears. return // Called when this reagent is first added to a mob diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 3efd17b29b..014401b72c 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -6,7 +6,7 @@ reagent_flags = OPENCONTAINER spillable = TRUE resistance_flags = ACID_PROOF - container_HP = 2 + container_HP = 3 /obj/item/reagent_containers/glass/attack(mob/M, mob/user, obj/target) @@ -115,7 +115,7 @@ item_state = "beaker" materials = list(MAT_GLASS=500) beaker_weakness_bitflag = PH_WEAK - container_HP = 3 + container_HP = 5 /obj/item/reagent_containers/glass/beaker/Initialize() . = ..() @@ -167,7 +167,7 @@ volume = 100 amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,20,25,30,50,100) - container_HP = 4 + container_HP = 6 /obj/item/reagent_containers/glass/beaker/plastic name = "x-large beaker" @@ -227,7 +227,7 @@ volume = 300 amount_per_transfer_from_this = 10 possible_transfer_amounts = list(5,10,15,20,25,30,50,100,300) - container_HP = 5 + container_HP = 8 /obj/item/reagent_containers/glass/beaker/cryoxadone list_reagents = list("cryoxadone" = 30) @@ -338,7 +338,7 @@ materials = list(MAT_GLASS=0) volume = 50 amount_per_transfer_from_this = 10 - container_HP = 1 + container_HP = 2 /obj/item/reagent_containers/glass/beaker/waterbottle/Initialize() beaker_weakness_bitflag |= TEMP_WEAK @@ -354,7 +354,7 @@ list_reagents = list("water" = 100) volume = 100 amount_per_transfer_from_this = 20 - container_HP = 1 + container_HP = 2 /obj/item/reagent_containers/glass/beaker/waterbottle/large/empty list_reagents = list() diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm index e977987b68..2b50c5e132 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm @@ -11,6 +11,8 @@ There's afairly major catch regarding the death though. I'm not gonna say here, I'd like to point out from my calculations it'll take about 60-80 minutes to die this way too. Plenty of time to visit me and ask for some pills to quench your addiction. */ + + /datum/reagent/fermi/astral // Gives you the ability to astral project for a moment! name = "Astrogen" id = "astral" @@ -28,6 +30,15 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die InverseChemVal = 0.25 can_synth = FALSE +/datum/action/chem/astral + name = "Return to body" + var/mob/living/carbon/origin = null + var/mob/living/simple_animal/hostile/retaliate/ghost = null + +/datum/action/chem/astral/Trigger() + ghost.mind.transfer_to(origin) + qdel(src) + /datum/reagent/fermi/astral/on_mob_life(mob/living/M) // Gives you the ability to astral project for a moment! M.alpha = 255 if(current_cycle == 0) @@ -48,6 +59,9 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die G.incorporeal_move = 1 G.alpha = 35 G.name = "[M]'s astral projection" + var/datum/action/chem/astral/AS = new(G) + AS.origin = M + AS.ghost = G M.mind.transfer_to(G) sleepytime = 15*volume SSblackbox.record_feedback("tally", "fermi_chem", 1, "Astral projections") diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm index dcd4169ac8..70cef57f0f 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/enlargement.dm @@ -157,10 +157,25 @@ B.update() ..() -/datum/reagent/fermi/BEsmaller/hypo +/datum/reagent/fermi/BEsmaller_hypo name = "Modesty milk" id = "BEsmaller_hypo" + color = "#E60584" + taste_description = "a milky ice cream like flavour." description = "A medicine used to treat organomegaly in a patient's breasts." + var/sizeConv = list("a" = 1, "b" = 2, "c" = 3, "d" = 4, "e" = 5) + +/datum/reagent/fermi/BEsmaller_hypo/on_mob_life(mob/living/carbon/M) + var/obj/item/organ/genital/breasts/B = M.getorganslot("breasts") + if(!B) + return..() + if(B.cached_size > (sizeConv[M.dna.features["breasts_size"]]+0.1)) + B.cached_size = B.cached_size - 0.05 + B.update() + else if(B.cached_size < (sizeConv[M.dna.features["breasts_size"]])+0.1) + B.cached_size = B.cached_size + 0.05 + B.update() + ..() //////////////////////////////////////////////////////////////////////////////////////////////////// // PENIS ENLARGE @@ -294,7 +309,21 @@ P.update() ..() -/datum/reagent/fermi/PEsmaller/hypo +/datum/reagent/fermi/PEsmaller_hypo name = "Chastity draft" id = "PEsmaller_hypo" + color = "#888888" // This is greyish..? + taste_description = "chinese dragon powder" description = "A medicine used to treat organomegaly in a patient's penis." + +/datum/reagent/fermi/PEsmaller_hypo/on_mob_life(mob/living/carbon/M) + var/obj/item/organ/genital/penis/P = M.getorganslot("penis") + if(!P) + return ..() + if(P.cached_length > (M.dna.features["cock_length"]+0.1)) + P.cached_length = P.cached_length - 0.1 + P.update() + else if(P.cached_length < (M.dna.features["cock_length"]+0.1)) + P.cached_length = P.cached_length + 0.1 + P.update() + ..() diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm index 11626bf72f..929e0605e3 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -194,6 +194,7 @@ InverseChem = "nanite_b_goneTox" //At really impure vols, it just becomes 100% inverse taste_description = "what can only be described as licking a battery." pH = 9 + can_synth = FALSE /datum/reagent/fermi/nanite_b_gone/on_mob_life(mob/living/carbon/C) //var/component/nanites/N = M.GetComponent(/datum/component/nanites)