Endless fixes
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user