Endless fixes

This commit is contained in:
Fermi
2019-05-19 23:32:30 +01:00
parent 072a4ce6a6
commit a6ede9fecc
6 changed files with 147 additions and 94 deletions
+19 -18
View File
@@ -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]")
@@ -4,11 +4,11 @@
/datum/mood_event/enthrall
mood_change = 5
description = "<span class='warning'>I am a good pet for Master.</span>\n"
description = "<span class='nicegreen'>I am a good pet for Master.</span>\n"
/datum/mood_event/enthrallpraise
mood_change = 12
description = "<span class='warning'>I feel so happy! I'm a good pet who Master loves!</span>\n"
description = "<span class='nicegreen'>I feel so happy! I'm a good pet who Master loves!</span>\n"
timeout = 600
/datum/mood_event/enthrallscold
@@ -34,7 +34,7 @@
/datum/mood_event/InLove
mood_change = 10
description = "<span class='warning'>I'm in love!!</span>\n"
description = "<span class='nicegreen'>I'm in love!!</span>\n"
/datum/mood_event/MissingLove
mood_change = -10
@@ -76,27 +76,19 @@
o.dropItemToGround(W, TRUE)
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
to_chat(owner, "<span class='warning'>Your enormous breasts are way too large to fit anything over them!</b></span>")
//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, "<span class='notice'>Your expansive chest has become a more managable size, liberating your movements.</b></span>")
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, "<span class='warning'>Your indulgent busom is so substantial, it's affecting your movements!</b></span>")
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, "<span class='notice'>Your back is feeling a little sore.</b></span>")
..()
/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, "<span class='warning'>Your enormous package is way to large to fit anything over!</b></span>")
switch(round(P.cached_length))
if(11)
if(21)
if (!(P.prev_size == P.size))
to_chat(o, "<span class='warning'>Your rascally willy has become a more managable size, liberating your movements.</b></span>")
to_chat(o, "<span class='notice'>Your rascally willy has become a more managable size, liberating your movements.</b></span>")
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, "<span class='warning'>Your indulgent johnson is so substantial, it's affecting your movements!</b></span>")
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, "<span class='notice'><i>Your pet [owner.name] appears to have finished internalising your last command.</i></span>")
..()
//Check for proximity of master DONE
//Place triggerreacts here - create a dictionary of triggerword and effect.
@@ -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, "<span class='notice'>You develop deep feelings for [love], your heart beginning to race as you look upon them with new eyes.</span>")
else
@@ -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, "<span class='warning'>The reaction suddenly condenses, creating a pair of breasts!</b></span>")//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, "<span class='warning'>The reaction suddenly condenses, creating a penis!</b></span>")//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"
@@ -50,35 +50,35 @@
to_chat(user, "<span class='warning'>[user] has already been used!</span>")
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