From bd85095590cb5ad7fc0b6b74b12ac7a14f8a3c7d Mon Sep 17 00:00:00 2001 From: Fermi Date: Sun, 26 May 2019 05:34:28 +0100 Subject: [PATCH] Prebed tweaks --- code/modules/reagents/chemistry/holder.dm | 11 +++-- code/modules/surgery/organs/vocal_cords.dm | 30 ++++++------ .../code/datums/status_effects/chems.dm | 46 ++++++++++--------- .../code/modules/arousal/organs/breasts.dm | 2 +- .../chemistry/reagents/fermi_reagents.dm | 16 ++++--- .../reagents/chemistry/recipes/fermi.dm | 31 ++++++++----- tgstation.dme | 12 ++--- 7 files changed, 86 insertions(+), 62 deletions(-) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index e4aa9fcdc2..a1359072a4 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -347,7 +347,7 @@ im /datum/reagents/proc/beaker_check(atom/A) if(istype(A, /obj/item/reagent_containers/glass/beaker/meta)) return - if((A.type == /obj/item/reagent_containers/glass/beaker/plastic)) + if(istype(A, /obj/item/reagent_containers/glass/beaker/plastic)) if(chem_temp > 444)//assuming polypropylene var/list/seen = viewers(5, get_turf(A)) var/iconhtml = icon2html(A, seen) @@ -361,6 +361,7 @@ im var/list/seen = viewers(5, get_turf(A)) var/iconhtml = icon2html(A, seen) for(var/mob/M in seen) + message_admins("pH at melting: [pH]") to_chat(M, "[iconhtml] \The [my_atom]'s melts from the extreme pH!") playsound(get_turf(A), 'sound/FermiChem/acidmelt.ogg', 80, 1) qdel(A) @@ -723,7 +724,7 @@ im //TODO: Check overall beaker purity with proc //Then adjust purity of result AND yeild ammount with said purity. - stepChemAmmount *= reactant_purity(C) + purity *= reactant_purity(C) // End. /* @@ -758,15 +759,17 @@ im //return said amount to compare for next step. return (reactedVol) +//Currently calculates it irrespective of required reagents at the start /datum/reagents/proc/reactant_purity(var/datum/chemical_reaction/fermi/C, holder) var/list/cached_reagents = reagent_list - var/i + var/i = 0 var/cachedPurity //var/fermiChem for(var/datum/reagent/R in my_atom.reagents.reagent_list) if (R in cached_reagents) cachedPurity += R.purity i++ + //message_admins("total reactant purity = [cachedPurity/i]") return cachedPurity/i /datum/reagents/proc/isolate_reagent(reagent) @@ -952,7 +955,7 @@ im R.data = data R.on_new(data) if(R.addProc == TRUE) - R.on_new(src) + R.on_new(pH) //Add more as desired. if(istype(D, /datum/reagent/fermi))//Is this a fermichem? var/datum/reagent/fermi/Ferm = D //It's Fermi time! Ferm.FermiNew(my_atom) //Seriously what is "data" ???? diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index aca74359fc..389dc2a335 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -837,7 +837,7 @@ if(length(message)) E.enthrallTally += (power_multiplier*(((length(message))/200) + 1)) //encourage players to say more than one word. else - E.enthrallTally += power_multiplier*1.25 + E.enthrallTally += power_multiplier*1.25 //thinking about it, I don't know how this can proc if(L.canbearoused) if(L.lewd) addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[E.enthrallGender] is so nice to listen to."), 5) @@ -851,10 +851,10 @@ power_multiplier *= distancelist[get_dist(user, V)+1] //power_multiplier += (get_dist(V, user)**-2)*2 //2, 2, 0.5, 0.2, 0.125, 0.05, 0.04, 0.03, alternatively make a list and use the return as index values if (L.lewd) - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[E.enthrallGender] has praised me!!"), 5) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[E.enthrallGender] has praised me!!"), 5) if(L.has_trait(TRAIT_NYMPHO)) L.adjustArousalLoss(2*power_multiplier) - /* TODO: ADD THIS IN WHEN MASO IS MERGED + /*enable when maso is added if(L.has_trait(TRAIT_MASO)) E.enthrallTally -= power_multiplier E.resistanceTally += power_multiplier @@ -864,7 +864,7 @@ addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "I've been praised for doing a good job!"), 5) E.resistanceTally -= power_multiplier E.enthrallTally += power_multiplier - var/descmessage = "[(L.lewd?"I feel so happy! I'm a good pet who [E.enthrallGender] loves!":"I did a good job!")]" + var/descmessage = "[(L.lewd?"I feel so happy! I'm a good pet who [E.enthrallGender] loves!":"I did a good job!")]" SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "enthrallpraise", /datum/mood_event/enthrallpraise, descmessage) E.cooldown += 1 @@ -877,14 +877,16 @@ //power_multiplier += (get_dist(V, user)**-2)*2 //2, 2, 0.5, 0.2, 0.125, 0.05, 0.04, 0.03, alternatively make a list and use the return as index values var/descmessage = "[(L.lewd?"I've failed [E.enthrallGender]... What a bad, bad pet!":"I did a bad job...")]" if (L.lewd) - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "I've let [E.enthrallGender] down..."), 5) - /* TODO: ADD THIS IN WHEN MASO IS MERGED + //TODO: ADD THIS IN WHEN MASO IS MERGED + /* if(L.has_trait(TRAIT_MASO)) L.adjustArousalLoss(3*power_multiplier) - descmessage += " And yet, it feels good..!" + descmessage += "And yet, it feels so good..!" //I don't really understand masco, is this the right sort of thing they like? E.enthrallTally += power_multiplier E.resistanceTally -= power_multiplier - */ + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "I've let [E.enthrallGender] down...!"), 5) + else*/ + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "I've let [E.enthrallGender] down..."), 5) else addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "I've failed [E.master]..."), 5) E.resistanceTally += power_multiplier @@ -1000,7 +1002,9 @@ var/datum/status_effect/chem/enthrall/E = H.has_status_effect(/datum/status_effect/chem/enthrall) if(E.phase > 1) if(H.has_trait(TRAIT_NYMPHO) && H.canbearoused) // probably a redundant check but for good measure + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "Your [E.enthrallGender] pushes you over the limit, overwhelming your body with pleasure."), 5) H.mob_climax(forced_climax=TRUE) + H.SetStun(20) H.setArousalLoss(H.min_arousal) E.resistanceTally = 0 //makes resistance 0, but resets arousal, resistance buildup is faster unaroused (massively so). E.enthrallTally += power_multiplier @@ -1027,7 +1031,7 @@ var/datum/status_effect/chem/enthrall/E = H.has_status_effect(/datum/status_effect/chem/enthrall) switch(E.phase) if(2 to INFINITY) - playsound(get_turf(H), pick('sound/effects/meow1.ogg', 'modular_citadel/sound/voice/nya.ogg'), 50, 1, -1) + playsound(get_turf(H), pick('sound/effects/meow1.ogg', 'modular_citadel/sound/voice/nya.ogg'), 50, 1, -1) //I'm very tempted to write a Fermis clause that makes them merowr.ogg if it's me. But, I also don't think snowflakism is okay. I would've gotten away for it too, if it wern't for my morals. H.emote("me", 1, "lets out a nya!") E.cooldown += 1 @@ -1051,7 +1055,7 @@ for(var/obj/item/W in items) if(W == H.w_uniform || W == H.wear_suit) H.dropItemToGround(W, TRUE) - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "Before you can even think about it, you quickly remove your clothes in response to [(H.lewd?"your [E.enthrallGender]'s command'":"[E.master]'s directive'")]."), 5) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, H, "Before you can even think about it, you quickly remove your clothes in response to [(H.lewd?"your [E.enthrallGender]'s command'":"[E.master]'s directive'")]."), 5) E.cooldown += 10 //WALK doesn't work? it does, randomly, work now @@ -1065,7 +1069,7 @@ L.toggle_move_intent() E.cooldown += 1 - //RUN doesn't work? + //RUN doesn't work? Nope, it randomly works now else if((findtext(message, run_words))) for(var/V in listeners) var/mob/living/L = V @@ -1085,7 +1089,7 @@ if(2 to INFINITY)//Tier 2 only L.lay_down() E.cooldown += 10 - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "You suddenly lie down!'"), 5) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "[(L.lewd?"You eagerly lie down!":"You suddenly lie down!'")]"), 5) //KNOCKDOWN else if(findtext(message, knockdown_words)) @@ -1217,7 +1221,7 @@ if(3 to INFINITY)//Tier 3 only L.Stun(40 * power_multiplier) E.cooldown += 8 - addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "You freeze up!"), 5) + addtimer(CALLBACK(GLOBAL_PROC, .proc/to_chat, L, "Your muscles freeze up!"), 5) //HALLUCINATE else if(findtext(message, hallucinate_words)) diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index 999b345caa..6944fc49dd 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -192,29 +192,31 @@ /datum/status_effect/chem/enthrall id = "enthrall" alert_type = null - var/mob/living/E //E for enchanter - //var/mob/living/V = list() //V for victims var/enthrallTally = 1 //Keeps track of the enthralling process var/resistanceTally = 0 //Keeps track of the resistance var/deltaResist //The total resistance added per resist click - //var/deltaEnthrall //currently unused (i think) + var/phase = 1 //-1: resisted state, due to be removed.0: sleeper agent, no effects unless triggered 1: initial, 2: 2nd stage - more commands, 3rd: fully enthralled, 4th Mindbroken + var/status = null //status effects var/statusStrength = 0 //strength of status effect + var/mob/living/master //Enchanter's person var/enthrallID //Enchanter's ckey var/enthrallGender //Use master or mistress - //var/mob/living/master == null + var/mental_capacity //Higher it is, lower the cooldown on commands, capacity reduces with resistance. - //var/mental_cost //Current cost of custom triggers - //var/mindbroken = FALSE //Not sure I use this, replaced with phase 4 var/datum/weakref/redirect_component //resistance //var/datum/weakref/redirect_component2 //say //var/datum/weakref/redirect_component3 //hear + var/distancelist = list(2,1.5,1,0.8,0.6,0.5,0.4,0.3,0.2) //Distance multipliers + var/withdrawal = FALSE //withdrawl var/withdrawalTick = 0 //counts how long withdrawl is going on for + var/list/customTriggers = list() //the list of custom triggers (maybe have to split into two) + var/cooldown = 0 var/cooldownMsg = TRUE var/cTriggered = FALSE @@ -244,7 +246,7 @@ mental_capacity = 500 - B.get_brain_damage() var/message = "[(owner.lewd?"I am a good pet for [enthrallGender].":"[master] is a really inspirational person!")]" SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "enthrall", /datum/mood_event/enthrall, message) - to_chat(owner, "You feel inexplicably drawn towards [master], their words having a demonstrable effect on you. It seems the closer you are to them, the stronger the effect is. However you aren't fully swayed yet and can still repeatedly resist their effects! (Mash resist to fight back!!)") + to_chat(owner, "You feel inexplicably drawn towards [master], their words having a demonstrable effect on you. It seems the closer you are to them, the stronger the effect is. However you aren't fully swayed yet and can resist their effects by repeatedly resisting as much as you can!") return ..() /datum/status_effect/chem/enthrall/tick() @@ -267,8 +269,8 @@ mental_capacity += 10 //mindshield check - if(M.has_trait(TRAIT_MINDSHIELD))//If you manage to enrapture a head, wow, GJ. - resistanceTally += 5 + if(M.has_trait(TRAIT_MINDSHIELD))//If you manage to enrapture a head, wow, GJ. (resisting gives a bigger bonus with a mindshield) + resistanceTally += 2 if(prob(10)) to_chat(owner, "You feel lucidity returning to your mind as the mindshield buzzes, attempting to return your brain to normal function.") if(phase == 4) @@ -301,18 +303,18 @@ if(owner.lewd) to_chat(owner, "[pick("It feels so good to listen to [master].", "You can't keep your eyes off [master].", "[master]'s voice is making you feel so sleepy.", "You feel so comfortable with [master]", "[master] is so dominant, it feels right to obey them.")].") if (2) //partially enthralled - if (enthrallTally > 200) + if (enthrallTally > 250) phase += 1 mental_capacity -= resistanceTally//leftover resistance per step is taken away from mental_capacity. enthrallTally = 0 resistanceTally /= 2 if(owner.lewd) - to_chat(owner, "Your mind gives, eagerly obeying and serving [master].") - to_chat(owner, "You are now fully enthralled to [master], and eager to follow their commands. However you find that in your intoxicated state you are unable to resort to violence. Equally you are unable to commit suicide, even if ordered to, as you cannot serve your [enthrallGender] in death. ")//If people start using this as an excuse to be violent I'll just make them all pacifists so it's not OP. + to_chat(owner, "Your mind gives, eagerly obeying and serving [master].") + to_chat(owner, "You are now fully enthralled to [master], and eager to follow their commands. However you find that in your intoxicated state you are unable to resort to violence. Equally you are unable to commit suicide, even if ordered to, as you cannot serve your [enthrallGender] in death. ")//If people start using this as an excuse to be violent I'll just make them all pacifists so it's not OP. else to_chat(owner, "You are unable to put up a resistance any longer, and now are under the control of [master]. However you find that in your intoxicated state you are unable to resort to violence. Equally you are unable to commit suicide, even if ordered to, as you cannot serve your [master] in death. ") owner.add_trait(TRAIT_PACIFISM, "MKUltra") //IMPORTANT - else if (resistanceTally > 200) + else if (resistanceTally > 250) enthrallTally *= 0.5 phase -= 1 resistanceTally = 0 @@ -332,7 +334,7 @@ owner.remove_trait(TRAIT_PACIFISM, "MKUltra") if(prob(2)) if(owner.lewd) - to_chat(owner, "[pick("I belong to [enthrallGender].", "[enthrallGender] knows whats best for me.", "Obedence is pleasure.", "I exist to serve [enthrallGender].", "[enthrallGender] is so dominant, it feels right to obey them.")].") + to_chat(owner, "[pick("I belong to [enthrallGender].", "[enthrallGender] knows whats best for me.", "Obedence is pleasure.", "I exist to serve [enthrallGender].", "[enthrallGender] is so dominant, it feels right to obey them.")].") if (4) //mindbroken if (mental_capacity >= 499 && (owner.getBrainLoss() >=20 || M.has_trait(TRAIT_MINDSHIELD)) && !owner.reagents.has_reagent("MKUltra")) phase = 2 @@ -362,14 +364,14 @@ SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing2") SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing3") SEND_SIGNAL(M, COMSIG_CLEAR_MOOD_EVENT, "EnthMissing3") - if(9 to INFINITY)//If + if(9 to INFINITY)//If they're not nearby, enable withdrawl effects. withdrawal = TRUE //Withdrawal subproc: if (withdrawal == TRUE)//Your minions are really REALLY needy. switch(withdrawalTick)//denial if(5)//To reduce spam - to_chat(owner, "You are unable to complete your [master]'s orders without their presence, and any commands given to you prior are not in effect until you are back with them.") + to_chat(owner, "You are unable to complete your [master]'s orders without their presence, and any commands and objectives given to you prior are not in effect until you are back with them.") if(10 to 35)//Gives wiggle room, so you're not SUPER needy if(prob(5)) to_chat(owner, "You're starting to miss [(owner.lewd?"your [enthrallGender]":"[master]")].") @@ -422,7 +424,7 @@ var/message = "[(owner.lewd?"I'm all alone, It's so hard to continute without [enthrallGender]...":"I really need to find [master]!!!")]" SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "EnthMissing4", /datum/mood_event/enthrallmissing4, message) to_chat(owner, "You can hardly find the strength to continue without your [enthrallGender].") - if(120 to 140) //depression + if(120 to 140) //depression 2, revengeance if(prob(15)) owner.Stun(50) owner.emote("cry")//does this exist? @@ -447,7 +449,7 @@ owner.adjustBrainLoss(2) M.hallucination += 50 - withdrawalTick += 0.5 + withdrawalTick += 0.5//Usually enough to leave you with a major brain trauma, but not kill you. //Status subproc - statuses given to you from your Master //currently 3 statuses; antiresist -if you press resist, increases your enthrallment instead, HEAL - which slowly heals the pet, CHARGE - which breifly increases speed, PACIFY - makes pet a pacifist, ANTIRESIST - frustrates resist presses. @@ -498,19 +500,20 @@ resistanceTally += deltaResist deltaResist = 0 if (cooldown > 0) - cooldown -= (1 + (mental_capacity/1000)) + cooldown -= (0.8 + (mental_capacity/500)) cooldownMsg = FALSE else if (cooldownMsg == FALSE) if(master.lewd) - to_chat(master, "Your pet [owner] appears to have finished internalising your last command.") + to_chat(master, "Your pet [owner] appears to have finished internalising your last command.") else to_chat(master, "Your thrall [owner] appears to have finished internalising your last command.") cooldownMsg = TRUE cooldown = 0 if (tranceTime > 0) //custom trances only last 50 ticks. tranceTime -= 1 - else + else if (!tranceTime == null) //remove trance after. M.remove_status_effect(/datum/status_effect/trance) + tranceTime = null //..() //Remove all stuff @@ -579,6 +582,7 @@ if (C.has_trait(TRAIT_NYMPHO)) if (C.getArousalLoss() > 80) C.mob_climax(forced_climax=TRUE) + C.SetStun(20)//We got your stun effects in somewhere, Kev. else C.adjustArousalLoss(10) else diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index 43c75bce48..f10f9916a9 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -60,7 +60,7 @@ desc += " They're very small and flatchested, however." else desc += " You estimate that they're [uppertext(size)]-cups." - string = "breasts_[lowertext(shape)]_[size]-s" + //string = "breasts_[lowertext(shape)]_[size]-s" if(producing && aroused_state) desc += " They're leaking [fluid_id]." 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 5273022c2a..2da168a388 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -122,7 +122,7 @@ addiction_stage2_end = 30 addiction_stage3_end = 41 addiction_stage4_end = 44 //Incase it's too long - var/location_created + var/turf/open/location_created var/turf/open/location_return = null var/addictCyc1 = 0 var/addictCyc2 = 0 @@ -1185,6 +1185,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y /datum/reagent/fermi/enthrall/on_mob_life(mob/living/carbon/M) + . = ..() if(purity < 0.5)//DO NOT SPLIT INTO DIFFERENT CHEM: This relies on DoNotSplit - has to be done this way. if (M.ckey == creatorID && creatorName == M.real_name)//If the creator drinks it, they fall in love randomly. If someone else drinks it, the creator falls in love with them. if(M.has_status_effect(STATUS_EFFECT_INLOVE)) @@ -1287,7 +1288,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y if(!love) return M.apply_status_effect(STATUS_EFFECT_INLOVE, love) - to_chat(M, "You develop deep feelings for [love], your heart beginning to race as you look upon them with new eyes.") + to_chat(M, "You develop overwhelmingly deep feelings for [love], your heart beginning to race as you look upon them with new eyes. You are determined to keep them safe above all other priorities.") else if(get_dist(M, love) < 8) if(M.has_trait(TRAIT_NYMPHO)) //Add this back when merged/updated. @@ -1504,7 +1505,8 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y name = "Acid vapour" id = "fermiAcid" description = "Someone didn't do like an otter, and add acid to water." - taste_description = "acid burns, ow!!" + taste_description = "acid burns, ow" + color = "#000000" pH = 0 /datum/reagent/fermi/fermiAcid/on_mob_life(mob/living/carbon/C, method) @@ -1577,6 +1579,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y id = "fermiTox" description = "You should be really careful with this...! Also, how did you get this?" data = "merge" + color = "#000000" /datum/reagent/fermi/fermiTox/on_mob_life(mob/living/carbon/C, method) if(C.dna && istype(C.dna.species, /datum/species/jelly)) @@ -1592,10 +1595,11 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y taste_description = "an acidy sort of taste, blech." color = "#fbc314" addProc = FALSE - pH = 3 + pH = 6 -/datum/reagent/fermi/fermiABuffer/on_new() +/datum/reagent/fermi/fermiABuffer/on_new(oldpH) if(LAZYLEN(holder.reagent_list) == 1) + return pH = ((holder.pH * holder.total_volume)+(pH * src.volume))/(holder.total_volume + src.volume) holder.remove_reagent(src.id, 1000) @@ -1608,7 +1612,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y taste_description = "an soapy sort of taste, blech." color = "#3853a4" addProc = FALSE - pH = 11 + pH = 8 /datum/reagent/fermi/fermiBBuffer/on_new() if(LAZYLEN(holder.reagent_list) == 1) diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 654f7f6073..f1c158d4cb 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -30,8 +30,9 @@ pHmod = 2 for (var/datum/reagent/reagent in my_atom.reagents.reagent_list) //make gas for reagents - if (istype(reagent, /datum/reagent/fermi)) + /*if (istype(reagent, /datum/reagent/fermi)) continue //Don't allow fermichems into the mix (fermi explosions are handled elsewhere and it's a huge pain) + */ R.add_reagent(reagent, reagent.volume) if (reagent.purity < 0.6) ImpureTot = (ImpureTot + (1-reagent.purity)) / 2 @@ -114,11 +115,11 @@ CurveSharpT = 4 // How sharp the temperature exponential curve is (to the power of value) CurveSharppH = 4 // How sharp the pH exponential curve is (to the power of value) ThermicConstant = -5 // Temperature change per 1u produced - HIonRelease = 0.05 // pH change per 1u reaction - RateUpLim = 2 // Optimal/max rate possible if all conditions are perfect + HIonRelease = 0.05 // pH change per 1u reaction (inverse for some reason) + RateUpLim = 3 // Optimal/max rate possible if all conditions are perfect FermiChem = TRUE // If the chemical uses the Fermichem reaction mechanics FermiExplode = TRUE // If the chemical explodes in a special way - PurityMin = 0.25 + PurityMin = 0.2 /datum/chemical_reaction/fermi/SDGF/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH)//Spawns an angery teratoma!! Spooky..! be careful!! TODO: Add teratoma slime subspecies var/turf/T = get_turf(my_atom) @@ -201,8 +202,8 @@ /datum/chemical_reaction/fermi/astral //done //BORKEN name = "Astrogen" id = "astral" - results = list("astral" = 5) - required_reagents = list("eigenstate" = 1, "plasma" = 1, "synaptizine" = 1, "aluminium" = 5) + results = list("astral" = 0.5) + required_reagents = list("eigenstate" = 0.1, "plasma" = 0.1, "synaptizine" = 0.1, "aluminium" = 0.5) //FermiChem vars: OptimalTempMin = 700 OptimalTempMax = 800 @@ -328,7 +329,7 @@ CurveSharppH = 0.5 ThermicConstant = -10 HIonRelease = -0.1 - RateUpLim = 2 + RateUpLim = 10 FermiChem = TRUE PurityMin = 0.30 @@ -379,11 +380,15 @@ RateUpLim = 20 FermiChem = TRUE -//This reaction bugs and turns everything in it to FermiABuffer - but now it's a feature instead! +//This reaction bugs and turns everything in it to FermiABuffer - but now it's a feature instead! And then I fixed it anyways /datum/chemical_reaction/fermi/fermiABuffer/FermiFinish(datum/reagents/holder, var/atom/my_atom) //might need this var/datum/reagent/fermi/fermiABuffer/Fa = locate(/datum/reagent/fermi/fermiABuffer) in my_atom.reagents.reagent_list + if (Fa.pH <= 3) + Fa.pH = 3 + Fa.data = 3 + return Fa.pH = my_atom.reagents.pH - Fa.data = "merge" + Fa.data = Fa.pH /datum/chemical_reaction/fermi/fermiBBuffer//done test name = "Ethyl Ethanoate buffer" @@ -406,8 +411,12 @@ RateUpLim = 15 FermiChem = TRUE -//This reaction bugs and turns everything in it to FermiBBuffer - but now it's a feature instead! +//This reaction bugs and turns everything in it to FermiBBuffer - but now it's a feature instead! And then I fixed it anyways /datum/chemical_reaction/fermi/fermiBBuffer/FermiFinish(datum/reagents/holder, var/atom/my_atom) //might need this var/datum/reagent/fermi/fermiBBuffer/Fb = locate(/datum/reagent/fermi/fermiBBuffer) in my_atom.reagents.reagent_list + if (Fb.pH >= 11) + Fb.pH = 11 + Fb.data = 11 + return Fb.pH = my_atom.reagents.pH - Fb.data = "merge" + Fb.data = Fb.pH diff --git a/tgstation.dme b/tgstation.dme index c653b521b2..1eb169aa9e 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2504,12 +2504,6 @@ #include "code\modules\research\server.dm" #include "code\modules\research\stock_parts.dm" #include "code\modules\research\designs\AI_module_designs.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_construction.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_electronics.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_medical_and_dinnerware.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm" -#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm" #include "code\modules\research\designs\biogenerator_designs.dm" #include "code\modules\research\designs\bluespace_designs.dm" #include "code\modules\research\designs\comp_board_designs.dm" @@ -2529,6 +2523,12 @@ #include "code\modules\research\designs\stock_parts_designs.dm" #include "code\modules\research\designs\telecomms_designs.dm" #include "code\modules\research\designs\weapon_designs.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_construction.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_electronics.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_medical_and_dinnerware.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_sec_and_hacked.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tcomms_and_misc.dm" +#include "code\modules\research\designs\autolathe_desings\autolathe_designs_tools.dm" #include "code\modules\research\machinery\_production.dm" #include "code\modules\research\machinery\circuit_imprinter.dm" #include "code\modules\research\machinery\departmental_circuit_imprinter.dm"