From 00804b9f61b8645062b854db1a914a67806fa5b1 Mon Sep 17 00:00:00 2001 From: Fermi Date: Mon, 29 Apr 2019 19:30:36 +0100 Subject: [PATCH] Breasts are still bust 2 new react vars New broken chems: Furranium Yeehaw --- .../chemistry/reagents/medicine_reagents.dm | 3 ++ code/modules/reagents/chemistry/recipes.dm | 3 ++ .../code/datums/status_effects/chems.dm | 19 +++++++ .../code/modules/arousal/organs/breasts.dm | 13 +++-- .../clothing/fermichemclothe/fermiclothes.dm | 16 ++++++ .../chemistry/reagents/fermi_reagents.dm | 52 ++++++++++++++++--- .../reagents/chemistry/recipes/fermi.dm | 33 ++++++------ 7 files changed, 113 insertions(+), 26 deletions(-) create mode 100644 modular_citadel/code/modules/clothing/fermichemclothe/fermiclothes.dm diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 4e278d2ede..58926d0c69 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -60,6 +60,9 @@ M.SetSleeping(0, 0) M.jitteriness = 0 M.cure_all_traumas(TRAUMA_RESILIENCE_MAGIC) + if(M.blood_volume < BLOOD_VOLUME_NORMAL) + M.blood_volume = BLOOD_VOLUME_NORMAL + for(var/thing in M.diseases) var/datum/disease/D = thing if(D.severity == DISEASE_SEVERITY_POSITIVE) diff --git a/code/modules/reagents/chemistry/recipes.dm b/code/modules/reagents/chemistry/recipes.dm index f5f5eda104..59f4b4576c 100644 --- a/code/modules/reagents/chemistry/recipes.dm +++ b/code/modules/reagents/chemistry/recipes.dm @@ -35,6 +35,9 @@ var/FermiChem = FALSE //If the chemical uses the Fermichem reaction mechanics var/FermiExplode = FALSE //If the chemical explodes in a special way as a result of var/ImpureChem = "toxin" //What chemical is produced with an inpure reaction + var/InverseChemVal = 0.3 + var/InverseChem = "toxin" + /datum/chemical_reaction/proc/on_reaction(datum/reagents/holder, created_volume, specialreact) return diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index 61e7c7a90c..288a3ffd5b 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -129,6 +129,25 @@ o.next_move_modifier = (round(P.length) - 11) ..() +/datum/status_effect/chem/OwO + id = "OwO" + +/datum/status_effect/chem/PElarger/tick(message) + if(copytext(message, 1, 2) != "*") + message = replacetext(message, "ne", "nye") + message = replacetext(message, "nu", "nyu") + message = replacetext(message, "na", "nya") + message = replacetext(message, "no", "nyo") + message = replacetext(message, "ove", "uv") + message = replacetext(message, "ove", "uv") + message = replacetext(message, "th", "ff") + message = replacetext(message, "l", "w") + message = replacetext(message, "r", "w") + if(prob(20)) + message = replacetext(message, ".", "OwO.") + else if(prob(30)) + message = replacetext(message, ".", "uwu.") + message = lowertext(message) /*Doesn't work /datum/status_effect/chem/SDGF/candidates diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index ae4d05cc58..4095b32d29 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -7,8 +7,8 @@ slot = "breasts" w_class = 3 size = BREASTS_SIZE_DEF - var/cached_size = 3//for enlargement - var/prev_size = 3//For flavour texts + var/cached_size = null//for enlargement + var/prev_size = BREASTS_SIZE_DEF//For flavour texts var/breast_sizes = list ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "huge", "flat") var/breast_values = list ("A" = 1, "B" = 2, "C" = 3, "D" = 4, "E" = 5, "F" = 6, "G" = 7, "H" = 8, "I" = 9, "J" = 10, "K" = 11, "L" = 12, "M" = 13, "N" = 14, "O" = 15, "huge" = 16, "flat" = 0) var/statuscheck = FALSE @@ -78,6 +78,9 @@ /obj/item/organ/genital/breasts/update_size()//wah //var/mob/living/carbon/human/o = owner //var/obj/item/organ/genital/breasts/B = o.getorganslot("breasts") + if (cached_size == null) + prev_size = size + return message_admins("Breast size at start: [size], [cached_size], [owner]") if(cached_size < 0)//I don't actually know what round() does to negative numbers, so to be safe!! to_chat(owner, "You feel your breasts shrinking away from your body as your chest flattens out.") @@ -123,6 +126,6 @@ else if (cached_size == 16.2) to_chat(owner, "Your breasts [pick("swell up to", "flourish into", "expand into", "burst forth into", "grow eagerly into", "amplify into")] a hefty [uppertext(size)]cm diameter bosom, taking both of your hands to hold!.") - icon_state = sanitize_text("breasts_[shape]_[size]") - owner.update_body() - update_icon() + //icon_state = sanitize_text("breasts_[shape]_[size]") + //owner.update_body() + //update_icon() diff --git a/modular_citadel/code/modules/clothing/fermichemclothe/fermiclothes.dm b/modular_citadel/code/modules/clothing/fermichemclothe/fermiclothes.dm new file mode 100644 index 0000000000..80ae690ada --- /dev/null +++ b/modular_citadel/code/modules/clothing/fermichemclothe/fermiclothes.dm @@ -0,0 +1,16 @@ +//Fermiclothes! +//Clothes made from FermiChem + +/obj/item/clothing/head/hattip //Actually the M1 Helmet + name = "flak helmet" + con = 'icons/obj/clothing/hats.dmi' + icon_state = "top_hat" + desc = "A sythesized hat, you can't seem to take it off. And tips their hat." + +/obj/item/clothing/head/hattip/attack_hand(mob/user) + if(iscarbon(user)) + var/mob/living/carbon/C = user + if(src == C.head) + M.emote("me",1,"tips their hat.",TRUE) + return + return ..() 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 2b07526ae7..56015b615d 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -569,15 +569,15 @@ id = "astral" description = "An opalescent murky liquid that is said to distort your soul from your being." color = "#A080H4" // rgb: , 0, 255 - taste_description = "velvety brambles " - metabolization_rate = 0 + taste_description = "velvety brambles" + metabolization_rate = 0//Removal is exponential, see code overdose_threshold = 20 addiction_threshold = 30 addiction_stage1_end = 9999//Should never end. var/mob/living/carbon/origin var/mob/living/simple_animal/hostile/retaliate/ghost/G = null var/ODing = FALSE - var/Svol = volume + //var/Svol = volume /datum/reagent/fermi/astral/on_mob_life(mob/living/M) // Gives you the ability to astral project for a moment! M.alpha = 255//Reset addiction @@ -607,8 +607,8 @@ /datum/reagent/fermi/astral/on_mob_delete(mob/living/carbon/M) G.mind.transfer_to(origin) qdel(G) - if(ODing = TRUE) - M.Sleeping(10*Svol, 0) + if(ODing == TRUE) + M.Sleeping(10*volume, 0) ODing = FALSE ..() @@ -651,10 +651,32 @@ to_chat(M, "Your body disperses from existence, as you become one with the universe.") to_chat(M, "As your body disappears, your consciousness doesn't. Should you find a way back into the mortal coil, your memories of the afterlife remain with you. (At the cost of staying in character while dead.)")//Legalised IC OOK? I have a suspicion this won't make it past the review. At least it'll be presented as a neat idea! If this is unacceptable how about the player can retain living memories across lives if they die in this way only. M.visible_message("[M] suddenly disappears, their body evaporating from existence, freeing [M] from their mortal coil.") - qdel(M) + qdel(M) //Approx 60minutes till death from initial addiction ..() +/datum/reagent/fermi/mindControl + name = "Astrogen" + id = "astral" + description = "An opalescent murky liquid that is said to distort your soul from your being." + color = "#A080H4" // rgb: , 0, 255 + taste_description = "synthetic chocolate, a base tone of alcohol, and high notes of roses" + metabolization_rate = 0 + overdose_threshold = 20 + addiction_threshold = 30 + addiction_stage1_end = 9999//Should never end. +/datum/reagent/fermi/furranium + name = "Furranium" + id = "furranium" + description = "OwO whats this?" + color = "#H04044" // rgb: , 0, 255 + taste_description = "dewicious degenyewacy" + +/datum/reagent/fermi/furranium/on_mob_life(mob/living/carbon/M) + M.apply_status_effect(/datum/status_effect/chem/OwO) + +/datum/reagent/fermi/astral/on_mob_delete(mob/living/carbon/M) + M.remove_status_effect(/datum/status_effect/chem/OwO) /* /mob/living/simple_animal/hostile/retaliate/ghost incorporeal_move = 1 @@ -686,3 +708,21 @@ reduce viewrange? return nane.regen_rate = -7.5 */ + +/* + _________________________________________ +||Fermichem toxic / impure chems here. || +|| || +||_______________________________________|| +*/ + +/datum/reagent/fermi/SDGFTox + name = "Impure synthetic cells" + id = "SDGFtox" + description = "A chem that makes Fermis angry at you if you're reading this, how did you get this??." + color = "#A080H4" // rgb: , 0, 255 + taste_description = "Forbidden chemistry" //Check to make sure this doesn't proc taste when added to mobs + metabolization_rate = 1 //1u = 2clone damage (too much?) + +/datum/reagent/fermi/SDGFTox/on_mob_life(mob/living/M) + M.adjustCloneLoss(2, 0) diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 604faaffef..af38b5fd8b 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -35,21 +35,24 @@ required_reagents = list("plasma" = 1, "stable_plasma" = 1, "sugar" = 1) //required_reagents = list("stable_plasma" = 5, "slimejelly" = 5, "synthflesh" = 10, "blood" = 10) //FermiChem vars: - OptimalTempMin = 350 // Lower area of bell curve for determining heat based rate reactions - OptimalTempMax = 500 // Upper end for above - ExplodeTemp = 550 //Temperature at which reaction explodes - OptimalpHMin = 4 // Lowest value of pH determining pH a 1 value for pH based rate reactions (Plateu phase) - OptimalpHMax = 9.5 // Higest value for above - ReactpHLim = 2 // How far out pH wil react, giving impurity place (Exponential phase) - CatalystFact = 0 // How much the catalyst affects the reaction (0 = no catalyst) - CurveSharpT = 4 // How sharp the temperature exponential curve is (to the power of value) - CurveSharppH = 2 // How sharp the pH exponential curve is (to the power of value) - ThermicConstant = 20 //Temperature change per 1u produced - HIonRelease = 0.01 //pH change per 1u reaction - RateUpLim = 5 //Optimal/max rate possible if all conditions are perfect - FermiChem = TRUE//If the chemical uses the Fermichem reaction mechanics - FermiExplode = FALSE //If the chemical explodes in a special way - ImpureChem = "toxin" //What chemical is produced with an inpure reaction + OptimalTempMin = 350 // Lower area of bell curve for determining heat based rate reactions + OptimalTempMax = 500 // Upper end for above + ExplodeTemp = 550 // Temperature at which reaction explodes + OptimalpHMin = 4 // Lowest value of pH determining pH a 1 value for pH based rate reactions (Plateu phase) + OptimalpHMax = 9.5 // Higest value for above + ReactpHLim = 2 // How far out pH wil react, giving impurity place (Exponential phase) + CatalystFact = 0 // How much the catalyst affects the reaction (0 = no catalyst) + CurveSharpT = 4 // How sharp the temperature exponential curve is (to the power of value) + CurveSharppH = 2 // How sharp the pH exponential curve is (to the power of value) + ThermicConstant = 20 // Temperature change per 1u produced + HIonRelease = 0.01 // pH change per 1u reaction + RateUpLim = 5 // Optimal/max rate possible if all conditions are perfect + FermiChem = TRUE // If the chemical uses the Fermichem reaction mechanics + FermiExplode = FALSE // If the chemical explodes in a special way + ImpureChem = "SDGFTox" // What chemical is metabolised with an inpure reaction + InverseChemVal = 0.5 // If the impurity is below 0.5, replace ALL of the chem with InverseChem upon metabolising + InverseChem = "SDZF" // What chem is metabolised when purity is below InverseChemVal + /datum/chemical_reaction/BElarger