diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm
index 263fbdde2a..409d584502 100644
--- a/code/modules/reagents/chemistry/holder.dm
+++ b/code/modules/reagents/chemistry/holder.dm
@@ -478,15 +478,16 @@ im
targetVol = cached_results[P]*multiplier
message_admins("FermiChem target volume: [targetVol]")
- if (chem_temp > C.OptimalTempMin)//To prevent pointless reactions
+ if ((chem_temp > C.OptimalTempMin) && (pH > (C.OptimalpHMin - C.ReactpHLim)) && (pH < (C.OptimalpHMax + C.ReactpHLim)))//To prevent pointless reactions
//if (reactedVol < targetVol)
if (fermiIsReacting == TRUE)
return 0
else
//reactedVol = FermiReact(selected_reaction, chem_temp, pH, multiplier, reactedVol, targetVol, cached_required_reagents, cached_results)
- selected_reaction.on_reaction(src, multiplier)
+ //selected_reaction.on_reaction(src, my_atom, multiplier)
START_PROCESSING(SSprocessing, src)
message_admins("FermiChem processing started")
+ selected_reaction.on_reaction(src, my_atom, multiplier)
fermiIsReacting = TRUE
fermiReactID = selected_reaction
reaction_occurred = 1
@@ -560,7 +561,7 @@ im
targetVol = 0
handle_reactions()
update_total()
- var/datum/reagent/fermi/Ferm = GLOB.chemical_reagents_list[C]
+ var/datum/reagent/fermi/Ferm = GLOB.chemical_reagents_list[C.id]
Ferm.FermiFinish(src, multiplier)
//C.on_reaction(src, multiplier, special_react_result)
return
@@ -585,7 +586,7 @@ im
targetVol = 0
handle_reactions()
update_total()
- var/datum/reagent/fermi/Ferm = GLOB.chemical_reagents_list[C]
+ var/datum/reagent/fermi/Ferm = GLOB.chemical_reagents_list[C.id]
Ferm.FermiFinish(src, multiplier)
//C.on_reaction(src, multiplier, special_react_result)
return
@@ -597,14 +598,14 @@ im
targetVol = 0
handle_reactions()
update_total()
- var/datum/reagent/fermi/Ferm = GLOB.chemical_reagents_list[C]
+ var/datum/reagent/fermi/Ferm = GLOB.chemical_reagents_list[C.id]
Ferm.FermiFinish(src, multiplier)
//C.on_reaction(src, multiplier, special_react_result)
return
//handle_reactions()
-/datum/reagents/proc/FermiReact(selected_reaction, chem_temp, pH, reactedVol, targetVol, cached_required_reagents, cached_results, multiplier)
+/datum/reagents/proc/FermiReact(selected_reaction, cached_temp, pH, reactedVol, targetVol, cached_required_reagents, cached_results, multiplier)
var/datum/chemical_reaction/fermi/C = selected_reaction
var/deltaT = 0
var/deltapH = 0
@@ -620,10 +621,10 @@ im
//Check extremes first
- if (chem_temp > C.ExplodeTemp)
+ if (cached_temp > C.ExplodeTemp)
//go to explode proc
- message_admins("temperature is over limit: [C.ExplodeTemp] Current temperature: [chem_temp]")
- C.FermiExplode(src, my_atom, (reactedVol+targetVol), chem_temp, pH)
+ message_admins("temperature is over limit: [C.ExplodeTemp] Current temperature: [cached_temp]")
+ C.FermiExplode(src, my_atom, (reactedVol+targetVol), cached_temp, pH)
if (pH > 14)
pH = 14
@@ -635,7 +636,7 @@ im
message_admins("pH is lover limit, cur pH: [pH]")
if ((purity < C.PurityMin) && (!C.PurityMin == 0))//If purity is below the min, blow it up.
- C.FermiExplode(src, (reactedVol+targetVol), chem_temp, pH, C)
+ C.FermiExplode(src, (reactedVol+targetVol), cached_temp, pH, C)
//For now, purity is handled elsewhere
@@ -648,8 +649,8 @@ im
else
deltapH = (((pH - (C.OptimalpHMin - C.ReactpHLim))**C.CurveSharppH)/((C.ReactpHLim**C.CurveSharppH)))
//Upper range
- else if (pH > C.OptimalpHMin)
- if (pH > (C.OptimalpHMin + C.ReactpHLim))
+ else if (pH > C.OptimalpHMax)
+ if (pH > (C.OptimalpHMax + C.ReactpHLim))
deltapH = 0
return //If outside pH range, no reaction
else
@@ -665,9 +666,9 @@ im
message_admins("calculating pH factor(purity), pH: [pH], min: [C.OptimalpHMin]-[C.ReactpHLim], max: [C.OptimalpHMax]+[C.ReactpHLim], deltapH: [deltapH]")
//Calculate DeltaT (Deviation of T from optimal)
- if (chem_temp < C.OptimalTempMax && chem_temp >= C.OptimalTempMin)
- deltaT = (((chem_temp - C.OptimalTempMin)**C.CurveSharpT)/((C.OptimalTempMax - C.OptimalTempMin)**C.CurveSharpT))
- else if (chem_temp >= C.OptimalTempMax)
+ if (cached_temp < C.OptimalTempMax && cached_temp >= C.OptimalTempMin)
+ deltaT = (((cached_temp - C.OptimalTempMin)**C.CurveSharpT)/((C.OptimalTempMax - C.OptimalTempMin)**C.CurveSharpT))
+ else if (cached_temp >= C.OptimalTempMax)
deltaT = 1
else
deltaT = 0
@@ -706,14 +707,14 @@ im
for(var/P in cached_results)//Not sure how this works, what is selected_reaction.results?
//reactedVol = max(reactedVol, 1) //this shouldnt happen ...
SSblackbox.record_feedback("tally", "chemical_reaction", cached_results[P]*stepChemAmmount, P)//log
- add_reagent(P, cached_results[P]*stepChemAmmount, null, chem_temp, purity)//add reagent function!! I THINK I can do this:
+ add_reagent(P, cached_results[P]*stepChemAmmount, null, cached_temp, purity)//add reagent function!! I THINK I can do this:
C.FermiCreate(src)
message_admins("purity: [purity], purity of beaker")
message_admins("Temp before change: [chem_temp], pH after change: [pH]")
//Apply pH changes and thermal output of reaction to beaker
- //chem_temp = round(chem_temp + (C.ThermicConstant * stepChemAmmount)) //Why won't you update!!!
- adjust_thermal_energy((chem_temp*(C.ThermicConstant * stepChemAmmount *100)), 0, 1500) //(J, min_temp = 2.7, max_temp = 1000)
+ chem_temp = round(cached_temp + (C.ThermicConstant * stepChemAmmount)) //Why won't you update!!!
+ //adjust_thermal_energy((cached_temp*(C.ThermicConstant * stepChemAmmount *100)), 0, 1500) //(J, min_temp = 2.7, max_temp = 1000)
pH += (C.HIonRelease * stepChemAmmount)
message_admins("Temp after change: [chem_temp], pH after change: [pH]")
diff --git a/modular_citadel/code/datums/mood_events/chem_events.dm b/modular_citadel/code/datums/mood_events/chem_events.dm
index 79d8c115d5..933128f031 100644
--- a/modular_citadel/code/datums/mood_events/chem_events.dm
+++ b/modular_citadel/code/datums/mood_events/chem_events.dm
@@ -4,11 +4,11 @@
/datum/mood_event/enthrall
mood_change = 5
- description = "I am a good pet for Master.\n"
+ description = "I am a good pet for Master.\n"
/datum/mood_event/enthrallpraise
mood_change = 12
- description = "I feel so happy! I'm a good pet who Master loves!\n"
+ description = "I feel so happy! I'm a good pet who Master loves!\n"
timeout = 600
/datum/mood_event/enthrallscold
@@ -34,7 +34,7 @@
/datum/mood_event/InLove
mood_change = 10
- description = "I'm in love!!\n"
+ description = "I'm in love!!\n"
/datum/mood_event/MissingLove
mood_change = -10
diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm
index 5a704e6784..95dee449bd 100644
--- a/modular_citadel/code/datums/status_effects/chems.dm
+++ b/modular_citadel/code/datums/status_effects/chems.dm
@@ -76,27 +76,19 @@
o.dropItemToGround(W, TRUE)
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
to_chat(owner, "Your enormous breasts are way too large to fit anything over them!")
- //message_admins("BElarge tick!")
- /*
- var/items = o.get_contents()
- for(var/obj/item/W in items)
- if(W == o.w_uniform || W == o.wear_suit)
- o.dropItemToGround(W)
- //items |= owner.get_equipped_items(TRUE)
-
- //owner.dropItemToGround(owner.wear_suit)
- //owner.dropItemToGround(owner.w_uniform)
- */
switch(round(B.cached_size))
if(9)
if (!(B.breast_sizes[B.prev_size] == B.size))
+ to_chat(o, "Your expansive chest has become a more managable size, liberating your movements.")
o.remove_movespeed_modifier("megamilk")
o.next_move_modifier = 1
if(10 to INFINITY)
if (!(B.breast_sizes[B.prev_size] == B.size))
to_chat(H, "Your indulgent busom is so substantial, it's affecting your movements!")
- o.add_movespeed_modifier("megamilk", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (round(B.cached_size) - 8))
- o.next_move_modifier = (round(B.cached_size) - 8)
+ o.add_movespeed_modifier("megamilk", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = ((round(B.cached_size) - 8))/3)
+ o.next_move_modifier = (round(B.cached_size) - 8)/3
+ if(prob(5))
+ to_chat(H, "Your back is feeling a little sore.")
..()
/datum/status_effect/chem/BElarger/on_remove(mob/living/carbon/M)
@@ -139,18 +131,21 @@
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
to_chat(owner, "Your enormous package is way to large to fit anything over!")
switch(round(P.cached_length))
- if(11)
+ if(21)
if (!(P.prev_size == P.size))
- to_chat(o, "Your rascally willy has become a more managable size, liberating your movements.")
+ to_chat(o, "Your rascally willy has become a more managable size, liberating your movements.")
o.remove_movespeed_modifier("hugedick")
o.next_move_modifier = 1
- if(12 to INFINITY)
+ if(22 to INFINITY)
if (!(P.prev_size == P.size))
to_chat(o, "Your indulgent johnson is so substantial, it's affecting your movements!")
- o.add_movespeed_modifier("hugedick", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (P.length - 11.1))
- o.next_move_modifier = (round(P.length) - 11)
+ o.add_movespeed_modifier("hugedick", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (P.length - 21.1))
+ o.next_move_modifier = (round(P.length) - 21)
..()
+/datum/status_effect/chem/PElarger/on_remove(mob/living/carbon/M)
+ owner.remove_movespeed_modifier("hugedick")
+ owner.next_move_modifier = 1
/*//////////////////////////////////////////
Mind control functions
@@ -185,6 +180,14 @@
var/cooldown = 0
/datum/status_effect/chem/enthrall/on_apply(mob/living/carbon/M)
+ var/datum/reagent/fermi/enthrall/E = locate(/datum/reagent/fermi/enthrall) in M.reagents.reagent_list
+ enthrallID = E.creatorID
+ enthrallGender = E.creatorGender
+ master = E.creator
+ if(!E)
+ message_admins("WARNING: No chem found in thrall!!!!")
+ if(!master)
+ message_admins("WARNING: No master! found in thrall!!!!")
if(M.key == enthrallID)
owner.remove_status_effect(src)//This shouldn't happen, but just in case
redirect_component1 = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_LIVING_RESIST = CALLBACK(src, .proc/owner_resist)))) //Do resistance calc if resist is pressed#
@@ -195,6 +198,7 @@
SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, "enthrall", /datum/mood_event/enthrall)
/datum/status_effect/chem/enthrall/tick(mob/living/carbon/M)
+ message_admins("Enthrall processing for [M]: ")
//chem calculations
if (owner.reagents.has_reagent("MKUltra"))
@@ -398,6 +402,7 @@
cooldown -= (1 + (mental_capacity/1000 ))
else
to_chat(master, "Your pet [owner.name] appears to have finished internalising your last command.")
+ ..()
//Check for proximity of master DONE
//Place triggerreacts here - create a dictionary of triggerword and effect.
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 2f8936c9ed..050d1edeaf 100644
--- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm
@@ -24,7 +24,7 @@
//return ..()
//Called when reaction stops. #STOP_PROCESSING
-/datum/reagent/fermi/proc/FermiFinish(holder) //You can get holder by reagents.holder WHY DID I LEARN THIS NOW???
+/datum/reagent/fermi/proc/FermiFinish(datum/reagents/holder, multipler) //You can get holder by reagents.holder WHY DID I LEARN THIS NOW???
return
//Called when added to a beaker without any of the reagent present. #add_reagent
@@ -34,6 +34,8 @@
//This should process fermichems to find out how pure they are and what effect to do.
//TODO: add this to the main on_mob_add proc, and check if Fermichem = TRUE
/datum/reagent/fermi/on_mob_add(mob/living/carbon/M)
+ if(!M)
+ return ..()
message_admins("purity of chem is [purity]")
if(src.purity < 0)
CRASH("Purity below 0 for chem: [src.id], Please let Fermis Know!")
@@ -53,6 +55,8 @@
..()
/datum/reagent/fermi/on_merge(mob/living/carbon/M, amount, other_purity)
+ if(!M)
+ return ..()
if(other_purity < 0)
CRASH("Purity below 0 for chem: [src.id], Please let Fermis Know!")
if (other_purity == 1 || src.DoNotSplit == TRUE)
@@ -364,7 +368,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
//reaction_mob(SM, )I forget what this is for
//Damage the clone
SM.blood_volume = BLOOD_VOLUME_NORMAL/2
- SM.adjustCloneLoss(80, 0)
+ SM.adjustCloneLoss(60, 0)
SM.setBrainLoss(40)
SM.nutrition = startHunger/2
//var/datum/reagents/SMR = SM
@@ -1049,14 +1053,14 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
taste_description = "synthetic chocolate, a base tone of alcohol, and high notes of roses"
overdose_threshold = 100 //If this is too easy to get 100u of this, then double it please.
DoNotSplit = TRUE
- data = list("creatorID" = null, "creatorGender" = null, "creatorName" = null)
+ data// = list("creatorID" = null, "creatorGender" = null, "creatorName" = null)
var/creatorID //ckey
var/creatorGender
var/creatorName
var/mob/living/creator
-/datum/reagent/fermi/enthrall/nn_new(list/data)
+/datum/reagent/fermi/enthrall/on_new(list/data)
message_admins("FermiNew for enthral proc'd")
creatorID = data.["creatorID"]
creatorGender = data.["creatorGender"]
@@ -1073,11 +1077,23 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
creatorID = B.data.["ckey"]
*/
+/datum/reagent/fermi/enthrall/FermiFinish(datum/reagents/holder)
+ message_admins("On finish for enthral proc'd")
+ var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list
+ var/datum/reagent/fermi/enthrall/E = locate(/datum/reagent/fermi/enthrall) in holder.reagent_list
+ if (B.data.["gender"] == "female")
+ E.data.["creatorGender"] = "Mistress"
+ else
+ E.data.["creatorGender"] = "Master"
+ E.data["creatorName"] = B.data.["real_name"]
+ E.data.["creatorID"] = B.data.["ckey"]
+ message_admins("name: [E.creatorName], ID: [E.creatorID], gender: [E.creatorGender]")
/datum/reagent/fermi/enthrall/on_mob_add(mob/living/carbon/M)
. = ..()
if(!creatorID)
CRASH("Something went wrong in enthral creation")
+ message_admins("key: [M.key] vs [creatorID], ")
if(purity < 0.5)//Impure chems don't function as you expect
return
else if(M.key == creatorID && creatorName == M.real_name) //same name AND same player - same instance of the player. (should work for clones?)
@@ -1090,16 +1106,20 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
creator = M
else
M.apply_status_effect(/datum/status_effect/chem/enthrall)
- var/datum/status_effect/chem/enthrall/E = M.has_status_effect(/datum/status_effect/chem/enthrall)
+ //var/datum/status_effect/chem/enthrall/E = M.has_status_effect(/datum/status_effect/chem/enthrall)
+ /*
if(creator)
E.enthrallID = creatorID
E.enthrallGender = creatorGender
E.master = creator
+ */
/datum/reagent/fermi/enthrall/on_mob_life(mob/living/carbon/M)
if(purity < 0.5)//Placeholder for now. I'd like to get this done.
if (M.key == 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))
+ return
var/list/seen = viewers(7, get_turf(M))//Sound and sight checkers
for(var/victim in seen)
if((victim == /mob/living/simple_animal/pet/) || (victim == M))
@@ -1111,6 +1131,8 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
return
else // If someone else drinks it, the creator falls in love with them!
var/mob/living/carbon/C = get_mob_by_key(creatorID)
+ if(C.has_status_effect(STATUS_EFFECT_INLOVE))
+ return
if(C in viewers(7, get_turf(M)))
M.reagents.remove_reagent(src.id, src.volume)
FallInLove(C, M)
@@ -1158,9 +1180,11 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
for(var/victim in seen)
if((victim == /mob/living/simple_animal/pet/) || (victim == M))
seen = seen - victim
- if(!seen)
+ if(seen.len == 0)
+ return
+ love = pick(seen)
+ if(!love)
return
- love = seen
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.")
else
diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
index 798e416e98..95229f9745 100644
--- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
+++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm
@@ -6,39 +6,56 @@
//Called when temperature is above a certain threshold
//....Is this too much?
-/datum/chemical_reaction/fermi/proc/FermiExplode(src, my_atom, volume, temp, pH, Reaction) //You can get holder by reagents.holder WHY DID I LEARN THIS NOW???
- var/Svol = volume
+/datum/chemical_reaction/fermi/proc/FermiExplode(src, var/atom/my_atom, datum/reagents/holder, volume, temp, pH, Reaction, Exploding = FALSE) //You can get holder by reagents.holder WHY DID I LEARN THIS NOW???
+ //var/Svol = volume
+ if (Exploding == TRUE)
+ return
+ var/ImpureTot = 0
+ var/pHmod = 1
var/turf/T = get_turf(my_atom)
if(temp>600)//if hot, start a fire
switch(temp)
if (601 to 800)
for(var/turf/turf in range(1,T))
new /obj/effect/hotspot(turf)
- volume /= 3
+ //volume /= 3
if (801 to 1100)
for(var/turf/turf in range(2,T))
new /obj/effect/hotspot(turf)
- volume /= 4
- if (1101 to INFINITY)
+ //volume /= 4
+ if (1101 to INFINITY) //If you're crafty
for(var/turf/turf in range(3,T))
new /obj/effect/hotspot(turf)
- volume /= 5
+ //volume /= 5
- var/datum/effect_system/smoke_spread/chem/smoke_machine/s = new
- if(pH < 2.5)
- s.set_up(/datum/reagent/fermi/fermiAcid, (volume/3), pH*10, T)
- volume /=3
- for (var/reagent in holder.reagent_list)
- var/datum/reagent/R = reagent
- s.set_up(R, R.volume/3, pH*10, T)
- //R.on_reaction(T, volume/10) //Uneeded, I think (hope)
- s.start()
-
- if (pH > 12)
+ //var/datum/effect_system/smoke_spread/chem/smoke_machine/s = new
+ var/datum/reagents/R = new/datum/reagents(3000)//Hey, just in case.
+ var/datum/effect_system/smoke_spread/chem/s = new()
+ if(pH < 4)
+ //s.set_up(/datum/reagent/fermi/fermiAcid, (volume/3), pH*10, T)
+ R.add_reagent("fermiAcid", ((volume/3)/pH))
+ pHmod = 2
+ if (pH > 10)
var/datum/effect_system/reagents_explosion/e = new()
- e.set_up(round(volume/Svol, 1), T, 0, 0)
+ e.set_up(round((volume/30)*(pH-9)), T, 0, 0)
e.start()
- message_admins("Fermi explosion at [T], with a temperature of [temp], pH of [pH], containing [holder.reagent_list]")
+ pHmod = 1.5
+ for (var/datum/reagent/reagent in my_atom.reagents.reagent_list)
+ if (istype(reagent, /datum/reagent/fermi))
+ var/datum/chemical_reaction/fermi/Ferm = GLOB.chemical_reagents_list[reagent.id]
+ Ferm.FermiExplode(src, my_atom, holder, volume, temp, pH, Exploding = TRUE)
+ 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
+ if(R.reagent_list)
+ s.set_up(R, (volume/10)*pHmod, T)
+ s.start()
+ if(!ImpureTot == 0)
+ ImpureTot *= volume
+ empulse(T, volume/10, ImpureTot/10, 1)
+ message_admins("Fermi explosion at [T], with a temperature of [temp], pH of [pH], Impurity tot of [ImpureTot], containing [my_atom.reagents.reagent_list]")
+ my_atom.reagents.clear_reagents()
return
/datum/chemical_reaction/fermi/eigenstate
@@ -95,7 +112,7 @@
PurityMin = 0.25
/datum/chemical_reaction/fermi/SDGF/FermiExplode(src, datum/reagents/holder, volume, temp, pH, Reaction)//Spawns an angery teratoma!! Spooky..! be careful!! TODO: Add teratoma slime subspecies
- var/turf/T = get_turf(holder.my_atom)
+ var/turf/T = get_turf(holder)
var/mob/living/simple_animal/slime/S = new(T,"grey")//should work, in theory
S.damage_coeff = list(BRUTE = 0.9 , BURN = 2, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)//I dunno how slimes work cause fire is burny
S.name = "Living teratoma"
@@ -127,8 +144,8 @@
/datum/chemical_reaction/fermi/BElarger/FermiExplode(src, datum/reagents/holder, volume, temp, pH, Reaction)
//var/obj/item/organ/genital/breasts/B =
- new /obj/item/organ/genital/breasts(holder.my_atom.loc)
- var/list/seen = viewers(5, get_turf(holder.my_atom))
+ new /obj/item/organ/genital/breasts(get_turf(holder))
+ var/list/seen = viewers(5, get_turf(holder))
for(var/mob/M in seen)
to_chat(M, "The reaction suddenly condenses, creating a pair of breasts!")//OwO
..()
@@ -138,7 +155,6 @@
id = "PElarger"
results = list("PElarger" = 3)
required_reagents = list("plasma" = 1, "stable_plasma" = 1, "sugar" = 1)
- required_catalysts = list("blood" = 1)
//required_reagents = list("stable_plasma" = 5, "slimejelly" = 5, "synthflesh" = 10, "blood" = 10)
//FermiChem vars:
OptimalTempMin = 200
@@ -159,8 +175,8 @@
/datum/chemical_reaction/fermi/PElarger/FermiExplode(src, datum/reagents/holder, volume, temp, pH, Reaction)
//var/obj/item/organ/genital/penis/nP =
- new /obj/item/organ/genital/penis(holder.my_atom.loc)
- var/list/seen = viewers(5, get_turf(holder.my_atom))
+ new /obj/item/organ/genital/penis(get_turf(holder))
+ var/list/seen = viewers(5, get_turf(holder))
for(var/mob/M in seen)
to_chat(M, "The reaction suddenly condenses, creating a penis!")//OwO
..()
@@ -214,10 +230,12 @@
FermiExplode = TRUE
PurityMin = 0.15
-/datum/chemical_reaction/fermi/enthrall/on_reaction(var/atom/my_atom)
+//Apprently works..?Negative
+/*
+/datum/chemical_reaction/fermi/enthrall/on_reaction(datum/reagents/holder)
message_admins("On reaction for enthral proc'd")
- var/datum/reagent/blood/B = locate(/datum/reagent/blood) in my_atom.reagent_list
- var/datum/reagent/fermi/enthrall/E = locate(/datum/reagent/fermi/enthrall) in my_atom.reagent_list
+ var/datum/reagent/blood/B = locate(/datum/reagent/blood) in holder.reagent_list
+ var/datum/reagent/fermi/enthrall/E = locate(/datum/reagent/fermi/enthrall) in holder.reagent_list
if (B.data.["gender"] == "female")
E.data.["creatorGender"] = "Mistress"
else
@@ -226,14 +244,19 @@
E.data.["creatorID"] = B.data.["ckey"]
message_admins("name: [E.creatorName], ID: [E.creatorID], gender: [E.creatorGender]")
..()
+
//var/enthrallID = B.get_blood_data()
+*/
/datum/chemical_reaction/fermi/enthrall/FermiExplode(src, var/atom/my_atom, volume, temp, pH, Reaction)
var/turf/T = get_turf(my_atom)
- var/datum/effect_system/smoke_spread/chem/smoke_machine/s = new
- s.set_up(/datum/reagent/fermi/enthrallExplo, volume, pH*10, T)
+ var/datum/reagents/R = new/datum/reagents(350)
+ var/datum/effect_system/smoke_spread/chem/s = new()
+ R.add_reagent("enthrallExplo", volume)
+ s.set_up(R, volume, T)
s.start()
- ..()
+ my_atom.reagents.clear_reagents()
+ //..() //Please don't kill everyone too.
/datum/chemical_reaction/fermi/hatmium
name = "Hat growth serum"
diff --git a/modular_citadel/code/modules/reagents/objects/items.dm b/modular_citadel/code/modules/reagents/objects/items.dm
index 113d0783d9..1319048bc8 100644
--- a/modular_citadel/code/modules/reagents/objects/items.dm
+++ b/modular_citadel/code/modules/reagents/objects/items.dm
@@ -50,35 +50,35 @@
to_chat(user, "[user] has already been used!")
return
switch(cont.reagents.pH)
- if(13.5 to INFINITY)
+ if(14 to INFINITY)
color = "#462c83"
- if(12.5 to 13.5)
+ if(13 to 14)
color = "#63459b"
- if(11.5 to 12.5)
+ if(12 to 13)
color = "#5a51a2"
- if(10.5 to 11.5)
+ if(11 to 12)
color = "#3853a4"
- if(9.5 to 10.5)
+ if(10 to 11)
color = "#3f93cf"
- if(8.5 to 9.5)
+ if(9 to 10)
color = "#0bb9b7"
- if(7.5 to 8.5)
+ if(8 to 9)
color = "#23b36e"
- if(6.5 to 7.5)
+ if(7 to 8)
color = "#3aa651"
- if(5.5 to 6.5)
+ if(6 to 7)
color = "#4cb849"
- if(4.5 to 5.5)
+ if(5 to 6)
color = "#b5d335"
- if(3.5 to 4.5)
- color = "#b5d333"
- if(2.5 to 3.5)
+ if(4 to 5)
color = "#f7ec1e"
- if(1.5 to 2.5)
+ if(3 to 4)
color = "#fbc314"
- if(0.5 to 1.5)
+ if(2 to 3)
color = "#f26724"
- if(-INFINITY to 0.5)
+ if(1 to 2)
color = "#ef1d26"
- description += " The paper looks to be around [round(glass.reagents.pH)]"
+ if(-INFINITY to 1)
+ color = "#c6040c"
+ desc += " The paper looks to be around a pH of [round(cont.reagents.pH)]"
used = TRUE