Fixed acid to water and funbits.
This commit is contained in:
@@ -343,6 +343,29 @@ im
|
||||
R.on_update (A)
|
||||
update_total()
|
||||
|
||||
//beaker check proc,
|
||||
/datum/reagents/proc/beaker_check(atom/A)
|
||||
message_admins("beaker check proc'd")
|
||||
if(istype(A, /obj/item/reagent_containers/glass/beaker/meta))
|
||||
return
|
||||
if(istype(A, /obj/item/reagent_containers/glass/beaker/plastic))
|
||||
if(chem_temp > 444)//assuming polypropylene
|
||||
var/list/seen = viewers(5, get_turf(my_atom))
|
||||
var/iconhtml = icon2html(A, seen)
|
||||
for(var/mob/M in seen)
|
||||
to_chat(M, "<span class='notice'>[iconhtml] \The [my_atom]'s beak melts from the temperature!</span>")
|
||||
qdel(A)
|
||||
return
|
||||
if ((pH < 0.5) || (pH > 13.5))//maybe make it higher? Though..Hmm!
|
||||
var/list/seen = viewers(5, get_turf(my_atom))
|
||||
var/iconhtml = icon2html(A, seen)
|
||||
for(var/mob/M in seen)
|
||||
to_chat(M, "<span class='notice'>[iconhtml] \The [my_atom]'s beak melts from the extreme pH!</span>")
|
||||
qdel(A)
|
||||
return
|
||||
|
||||
|
||||
|
||||
/datum/reagents/proc/handle_reactions()//HERE EDIT HERE THE MAIN REACTION FERMICHEMS ASSEMBLE! I hope rp is similar
|
||||
if(fermiIsReacting == TRUE)
|
||||
//reagents_holder_flags |= REAGENT_NOREACT unsure if this is needed
|
||||
@@ -356,7 +379,7 @@ im
|
||||
var/reaction_occurred = 0 // checks if reaction, binary variable
|
||||
var/continue_reacting = FALSE //Helps keep track what kind of reaction is occuring; standard or fermi.
|
||||
|
||||
|
||||
beaker_check(my_atom) //Beaker resilience test
|
||||
|
||||
do //What does do do in byond? It sounds very redundant? is it a while loop?
|
||||
var/list/possible_reactions = list() //init list
|
||||
@@ -627,7 +650,9 @@ im
|
||||
//message_admins("Loop beginning")
|
||||
//Begin Parse
|
||||
|
||||
//update_holder_purity(C)//updates holder's purity
|
||||
message_admins("Purity precalc: [overallPurity]")
|
||||
update_holder_purity(C)//updates holder's purity
|
||||
message_admins("Purity postcalc: [overallPurity]")
|
||||
|
||||
//Check extremes first
|
||||
if (cached_temp > C.ExplodeTemp)
|
||||
@@ -645,7 +670,7 @@ im
|
||||
//TODO Strong acids eat glass, make it so you NEED plastic beakers for superacids(for some reactions)
|
||||
//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.
|
||||
if (purity < C.PurityMin)//If purity is below the min, blow it up.
|
||||
C.FermiExplode(src, my_atom, (reactedVol+targetVol), cached_temp, pH)
|
||||
return
|
||||
|
||||
@@ -704,6 +729,7 @@ im
|
||||
|
||||
//TODO: Check overall beaker purity with proc
|
||||
//Then adjust purity of result AND yeild ammount with said purity.
|
||||
stepChemAmmount *= overallPurity
|
||||
|
||||
// End.
|
||||
/*
|
||||
@@ -838,6 +864,8 @@ im
|
||||
chem_temp = CLAMP(chem_temp + (J / (S * total_volume)), min_temp, max_temp)
|
||||
|
||||
/datum/reagents/proc/add_reagent(reagent, amount, list/data=null, reagtemp = 300, other_purity = 1, other_pH, no_react = 0)//EDIT HERE TOO ~FERMICHEM~
|
||||
//beaker_check(my_atom)
|
||||
|
||||
if(!isnum(amount) || !amount)
|
||||
return FALSE
|
||||
|
||||
@@ -852,11 +880,15 @@ im
|
||||
if (D.id == "water") //Do like an otter, add acid to water.
|
||||
if (pH <= 2)
|
||||
var/datum/effect_system/smoke_spread/chem/smoke_machine/s = new
|
||||
s.set_up(/datum/reagent/fermi/fermiAcid, total_volume, pH*10, src)
|
||||
var/turf/T = get_turf(my_atom)
|
||||
var/datum/reagents/R = new/datum/reagents(3000)//I don't want to hold it back..!
|
||||
R.add_reagent("fermiAcid", amount)
|
||||
for (var/datum/reagent/reagentgas in reagent_list)
|
||||
R.add_reagent(reagentgas, amount/5)
|
||||
remove_reagent(reagentgas, amount/5)
|
||||
s.set_up(R, amount, T)
|
||||
s.start()
|
||||
remove_any(amount/10)
|
||||
return
|
||||
|
||||
return FALSE
|
||||
|
||||
if(!pH)
|
||||
other_pH = D.pH
|
||||
|
||||
@@ -44,49 +44,6 @@
|
||||
/obj/item/reagent_containers/attack(mob/M, mob/user, def_zone)
|
||||
if(user.a_intent == INTENT_HARM)
|
||||
return ..()
|
||||
/*Checking to see if I can delete this
|
||||
/obj/item/reagent_containers/attack(obj/item/W, mob/user, params)
|
||||
..()
|
||||
if(!istype(W, /obj/item/pHpaper))
|
||||
return
|
||||
var/obj/item/pHpaper/P = W
|
||||
if(P.used == TRUE)
|
||||
to_chat(user, "<span class='warning'>[src] has already been used!</span>")
|
||||
return
|
||||
switch(src.reagents.pH)
|
||||
if(14 to INFINITY)
|
||||
P.color = "#462c83"
|
||||
if(13 to 14)
|
||||
P.color = "#63459b"
|
||||
if(12 to 13)
|
||||
P.color = "#5a51a2"
|
||||
if(11 to 12)
|
||||
P.color = "#3853a4"
|
||||
if(10 to 11)
|
||||
P.color = "#3f93cf"
|
||||
if(9 to 10)
|
||||
P.color = "#0bb9b7"
|
||||
if(8 to 9)
|
||||
P.color = "#23b36e"
|
||||
if(7 to 8)
|
||||
P.color = "#3aa651"
|
||||
if(6 to 7)
|
||||
P.color = "#4cb849"
|
||||
if(5 to 6)
|
||||
P.color = "#b5d335"
|
||||
if(4 to 5)
|
||||
P.color = "#b5d333"
|
||||
if(3 to 4)
|
||||
P.color = "#f7ec1e"
|
||||
if(2 to 3)
|
||||
P.color = "#fbc314"
|
||||
if(1 to 2)
|
||||
P.color = "#f26724"
|
||||
if(-INFINITY to 1)
|
||||
P.color = "#ef1d26"
|
||||
P.used = TRUE
|
||||
*/
|
||||
|
||||
|
||||
/obj/item/reagent_containers/proc/canconsume(mob/eater, mob/user)
|
||||
if(!iscarbon(eater))
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
var/convert_damage = FALSE //If you want to convert the caster's health to the shift, and vice versa.
|
||||
var/convert_damage_type = BRUTE //Since simplemobs don't have advanced damagetypes, what to convert damage back into.
|
||||
|
||||
var/shapeshift_type //Incase I ever get lucky enough to be a wizard. Also why can you be a dog but not a cat!! Racist
|
||||
var/shapeshift_type //Incase I ever get lucky enough to be a wizard. Also why can you be a dog but not a cat!! I know this isn't fermichem related, but this is really important!!!
|
||||
var/list/possible_shapes = list(/mob/living/simple_animal/mouse,\
|
||||
/mob/living/simple_animal/pet/cat,\
|
||||
/mob/living/simple_animal/pet/dog/corgi,\
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
/datum/status_effect/chem/BElarger/tick(mob/living/carbon/human/H)//If you try to wear clothes, you fail. Slows you down if you're comically huge
|
||||
var/mob/living/carbon/human/o = owner
|
||||
var/obj/item/organ/genital/breasts/B = o.getorganslot("breasts")
|
||||
moveCalc = 1+((round(B.cached_size) - 9)/10) //Afffects how fast you move, and how often you can click.
|
||||
moveCalc = 1+((round(B.cached_size) - 9)/5) //Afffects how fast you move, and how often you can click.
|
||||
if(!B)
|
||||
o.remove_movespeed_modifier("megamilk")
|
||||
o.next_move_modifier /= moveCalc
|
||||
@@ -94,7 +94,7 @@
|
||||
else if (B.breast_values[B.size] < B.breast_values[B.prev_size])
|
||||
o.add_movespeed_modifier("megamilk", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = moveCalc)
|
||||
o.next_move_modifier /= moveCalc
|
||||
if((B.size) < 16)
|
||||
if((B.cached_size) < 16)
|
||||
switch(round(B.cached_size))
|
||||
if(9)
|
||||
if (!(B.breast_sizes[B.prev_size] == B.size))
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
/datum/quirk/Hypno/add()
|
||||
//You caught me, it's not actually based off a trigger, stop spoiling the effect! Code diving ruins the magic!
|
||||
addtimer(CALLBACK(src, /datum/quirk/Hypno.proc/triggered, quirk_holder), rand(1200, 3600))//increase by 10, it's lower so I can test it.
|
||||
addtimer(CALLBACK(src, /datum/quirk/Hypno.proc/triggered, quirk_holder), rand(120, 360))//increase by 100, it's lower so I can test it.
|
||||
|
||||
/datum/quirk/Hypno/proc/triggered(quirk_holder)//I figured I might as well make a trait of code I added.
|
||||
var/mob/living/carbon/human/H = quirk_holder
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
|
||||
//proc to give a player their genitals and stuff when they log in
|
||||
/mob/living/carbon/human/proc/give_genitals(clean=0)//clean will remove all pre-existing genitals. proc will then give them any genitals that are enabled in their DNA
|
||||
if ((NOGENITALS in dna.species.species_traits) && (genital_override = FALSE))
|
||||
if (NOGENITALS in dna.species.species_traits)
|
||||
return
|
||||
if(clean)
|
||||
var/obj/item/organ/genital/GtoClean
|
||||
@@ -155,7 +155,7 @@
|
||||
/mob/living/carbon/human/proc/give_penis()
|
||||
if(!dna)
|
||||
return FALSE
|
||||
if((NOGENITALS in dna.species.species_traits) && (genital_override = FALSE))
|
||||
if(NOGENITALS in dna.species.species_traits)
|
||||
return FALSE
|
||||
if(!getorganslot("penis"))
|
||||
var/obj/item/organ/genital/penis/P = new
|
||||
@@ -173,7 +173,7 @@
|
||||
/mob/living/carbon/human/proc/give_balls()
|
||||
if(!dna)
|
||||
return FALSE
|
||||
if((NOGENITALS in dna.species.species_traits) && (genital_override = FALSE))
|
||||
if(NOGENITALS in dna.species.species_traits)
|
||||
return FALSE
|
||||
if(!getorganslot("testicles"))
|
||||
var/obj/item/organ/genital/testicles/T = new
|
||||
@@ -194,7 +194,7 @@
|
||||
/mob/living/carbon/human/proc/give_breasts()
|
||||
if(!dna)
|
||||
return FALSE
|
||||
if((NOGENITALS in dna.species.species_traits) && (genital_override = FALSE))
|
||||
if(NOGENITALS in dna.species.species_traits)
|
||||
return FALSE
|
||||
if(!getorganslot("breasts"))
|
||||
var/obj/item/organ/genital/breasts/B = new
|
||||
@@ -217,7 +217,7 @@
|
||||
/mob/living/carbon/human/proc/give_vagina()
|
||||
if(!dna)
|
||||
return FALSE
|
||||
if((NOGENITALS in dna.species.species_traits) && (genital_override = FALSE))
|
||||
if(NOGENITALS in dna.species.species_traits)
|
||||
return FALSE
|
||||
if(!getorganslot("vagina"))
|
||||
var/obj/item/organ/genital/vagina/V = new
|
||||
@@ -233,7 +233,7 @@
|
||||
/mob/living/carbon/human/proc/give_womb()
|
||||
if(!dna)
|
||||
return FALSE
|
||||
if((NOGENITALS in dna.species.species_traits) && (genital_override = FALSE))
|
||||
if(NOGENITALS in dna.species.species_traits)
|
||||
return FALSE
|
||||
if(!getorganslot("womb"))
|
||||
var/obj/item/organ/genital/womb/W = new
|
||||
@@ -269,12 +269,22 @@
|
||||
if(src && !QDELETED(src))
|
||||
dna.species.handle_genitals(src)
|
||||
|
||||
//fermichem procs
|
||||
/mob/living/carbon/human/proc/Force_update_genitals(mob/living/carbon/human/H) //called in fermiChem
|
||||
dna.species.handle_genitals(src)
|
||||
//dna.species.handle_breasts(src)
|
||||
//H.update_body()
|
||||
//species_traits = list(NOTRANSSTING,NOGENITALS)
|
||||
|
||||
/mob/living/carbon/human/proc/emergent_genital_call()
|
||||
var/organCheck = FALSE
|
||||
for(var/obj/item/organ/O in internal_organs)
|
||||
if(istype(O, /obj/item/organ/genital))
|
||||
organCheck = TRUE
|
||||
if (organCheck == FALSE)
|
||||
dna.features["genitals_use_skintone"] = TRUE
|
||||
dna.species.use_skintones = TRUE
|
||||
return
|
||||
|
||||
/datum/species/proc/handle_genitals(mob/living/carbon/human/H)
|
||||
//message_admins("attempting to update sprite")
|
||||
|
||||
@@ -64,14 +64,14 @@
|
||||
//message_admins("Pinas size: [length], [cached_length], [o]")
|
||||
//message_admins("2. size vs prev_size")
|
||||
if (round(length) > round(prev_size))
|
||||
to_chat(o, "<span class='warning'>Your [pick("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")] [pick("swells up to", "flourishes into", "expands into", "bursts forth into", "grows eagerly into", "amplifys into")] a [uppertext(length)] inch penis.</b></span>")
|
||||
to_chat(o, "<span class='warning'>Your [pick("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "Chase Redtail", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")] [pick("swells up to", "flourishes into", "expands into", "bursts forth into", "grows eagerly into", "amplifys into")] a [uppertext(length)] inch penis.</b></span>")
|
||||
else if (round(length) < round(prev_size))
|
||||
to_chat(o, "<span class='warning'>Your [pick("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")] [pick("shrinks down to", "decreases into", "diminishes into", "deflates into", "shrivels regretfully into", "contracts into")] a [uppertext(length)] inch penis.</b></span>")
|
||||
to_chat(o, "<span class='warning'>Your [pick("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "Chase Redtail", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")] [pick("shrinks down to", "decreases into", "diminishes into", "deflates into", "shrivels regretfully into", "contracts into")] a [uppertext(length)] inch penis.</b></span>")
|
||||
prev_size = length
|
||||
icon_state = sanitize_text("penis_[shape]_[size]")
|
||||
//update_body()
|
||||
//P.update_icon() //Either of these don't work, why???
|
||||
girth = (length * girth_ratio)
|
||||
girth = (length * girth_ratio)//Is it just me or is this ludicous, why not make it exponentially decay?
|
||||
//var/mob/living/carbon/human/H = owner
|
||||
//H.update_genitals()
|
||||
//owner.update_genitals()
|
||||
|
||||
@@ -631,6 +631,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
|
||||
H.genital_override = TRUE
|
||||
var/obj/item/organ/genital/breasts/B = H.getorganslot("breasts")
|
||||
if(!B)
|
||||
H.emergent_genital_call()
|
||||
message_admins("No breasts found on init!")
|
||||
return
|
||||
var/sizeConv = list("a" = 1, "b" = 2, "c" = 3, "d" = 4, "e" = 5)
|
||||
@@ -735,13 +736,14 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
|
||||
InverseChem = "PEsmaller" //At really impure vols, it just becomes 100% inverse
|
||||
//var/mob/living/carbon/human/H
|
||||
|
||||
/datum/reagent/fermi/BElarger/on_mob_add(mob/living/carbon/M)
|
||||
/datum/reagent/fermi/PElarger/on_mob_add(mob/living/carbon/M)
|
||||
. = ..()
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.genital_override = TRUE
|
||||
var/obj/item/organ/genital/penis/P = H.getorganslot("penis")
|
||||
if(!P)
|
||||
message_admins("No penis found on init!")
|
||||
H.emergent_genital_call()
|
||||
return
|
||||
P.prev_size = P.length
|
||||
P.cached_length = P.length
|
||||
@@ -785,7 +787,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
|
||||
|
||||
if(B)
|
||||
B.cached_size = B.cached_size - 0.1
|
||||
message_admins("Breast size: [B.size], [B.cached_size], [holder]")
|
||||
//message_admins("Breast size: [B.size], [B.cached_size], [holder]")
|
||||
B.update()
|
||||
if(V)
|
||||
V.Remove(M)
|
||||
|
||||
@@ -135,9 +135,9 @@
|
||||
/datum/chemical_reaction/fermi/BElarger //done
|
||||
name = "Sucubus milk"
|
||||
id = "BElarger"
|
||||
results = list("BElarger" = 6)
|
||||
results = list("BElarger" = 0.6)
|
||||
required_reagents = list("salglu_solution" = 0.1, "milk" = 0.5, "synthflesh" = 0.2, "silicon" = 0.2, "aphro" = 0.2)
|
||||
mix_message = "the reaction gives off a sent of milkshakes!"
|
||||
mix_message = "the reaction gives off a mist of milk."
|
||||
//FermiChem vars:
|
||||
OptimalTempMin = 200
|
||||
OptimalTempMax = 800
|
||||
@@ -169,6 +169,7 @@
|
||||
id = "PElarger"
|
||||
results = list("PElarger" = 0.3)
|
||||
required_reagents = list("plasma" = 0.1, "stable_plasma" = 0.1, "sugar" = 0.1)
|
||||
mix_message = ""
|
||||
//required_reagents = list("stable_plasma" = 5, "slimejelly" = 5, "synthflesh" = 10, "blood" = 10)
|
||||
//FermiChem vars:
|
||||
OptimalTempMin = 200
|
||||
@@ -226,6 +227,7 @@
|
||||
required_reagents = list("iron" = 0.1, "iodine" = 0.1)
|
||||
//required_reagents = list("cocoa" = 1, "astral" = 1, "mindbreaker" = 1, "psicodine" = 1, "happiness" = 1)
|
||||
required_catalysts = list("blood" = 0.1)
|
||||
mix_message = "the reaction gives off a burgundy plume of smoke!"
|
||||
//required_reagents = list("stable_plasma" = 5, "slimejelly" = 5, "synthflesh" = 10, "blood" = 10)
|
||||
//FermiChem vars:
|
||||
OptimalTempMin = 780
|
||||
@@ -265,7 +267,7 @@
|
||||
E.creatorName = B.data.["real_name"]
|
||||
E.data.["creatorID"] = B.data.["ckey"]
|
||||
E.creatorID = B.data.["ckey"]
|
||||
message_admins("name: [E.creatorName], ID: [E.creatorID], gender: [E.creatorGender]")
|
||||
message_admins("MKUltra made name: [E.creatorName], ID: [E.creatorID], gender: [E.creatorGender]")
|
||||
|
||||
//Apprently works..?Negative
|
||||
/*
|
||||
@@ -293,7 +295,7 @@
|
||||
s.set_up(R, volume, T)
|
||||
s.start()
|
||||
my_atom.reagents.clear_reagents()
|
||||
//..() //Please don't kill everyone too.
|
||||
..(volume = 0, pH = 7, purity = 1) //Just a lil fire.
|
||||
|
||||
/datum/chemical_reaction/fermi/hatmium // done
|
||||
name = "Hat growth serum"
|
||||
|
||||
Reference in New Issue
Block a user