Current state
This commit is contained in:
@@ -345,24 +345,25 @@ im
|
||||
|
||||
//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))
|
||||
else 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/list/seen = viewers(5, get_turf(A))
|
||||
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>")
|
||||
to_chat(M, "<span class='notice'>[iconhtml] \The [my_atom]'s melts from the temperature!</span>")
|
||||
playsound(get_turf(A), 'sound/effects/bubbles.ogg', 80, 1)
|
||||
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))
|
||||
else if(istype(A, /obj/item/reagent_containers/glass) && ((pH < 0.5) || (pH > 13.5)))//maybe make it higher? Though..Hmm!
|
||||
var/list/seen = viewers(5, get_turf(A))
|
||||
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>")
|
||||
to_chat(M, "<span class='notice'>[iconhtml] \The [my_atom]'s melts from the extreme pH!</span>")
|
||||
playsound(get_turf(A), 'sound/effects/bubbles.ogg', 80, 1)
|
||||
qdel(A)
|
||||
return
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -379,8 +380,6 @@ 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
|
||||
reaction_occurred = 0 // sets it back to 0?
|
||||
@@ -650,9 +649,9 @@ im
|
||||
//message_admins("Loop beginning")
|
||||
//Begin Parse
|
||||
|
||||
message_admins("Purity precalc: [overallPurity]")
|
||||
WARNING("Purity precalc: [overallPurity]")
|
||||
update_holder_purity(C)//updates holder's purity
|
||||
message_admins("Purity postcalc: [overallPurity]")
|
||||
WARNING("Purity postcalc: [overallPurity]")
|
||||
|
||||
//Check extremes first
|
||||
if (cached_temp > C.ExplodeTemp)
|
||||
@@ -765,14 +764,15 @@ im
|
||||
|
||||
return (reactedVol)
|
||||
|
||||
/datum/reagents/proc/update_holder_purity(var/datum/chemical_reaction/fermi/C)
|
||||
/datum/reagents/proc/update_holder_purity(var/datum/chemical_reaction/fermi/C, holder)
|
||||
var/list/cached_reagents = reagent_list
|
||||
var/i
|
||||
var/cachedPurity
|
||||
//var/fermiChem
|
||||
for(var/reagent in C.required_reagents)
|
||||
cachedPurity += cached_reagents[reagent].purity
|
||||
i++
|
||||
for(var/datum/reagent/R in my_atom.reagents.reagent_list)
|
||||
if (R in cached_reagents)
|
||||
cachedPurity += R.purity
|
||||
i++
|
||||
overallPurity = cachedPurity/i
|
||||
|
||||
/datum/reagents/proc/isolate_reagent(reagent)
|
||||
@@ -879,17 +879,19 @@ 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
|
||||
var/datum/effect_system/smoke_spread/chem/s = new
|
||||
var/turf/T = get_turf(my_atom)
|
||||
var/datum/reagents/R = new/datum/reagents(3000)//I don't want to hold it back..!
|
||||
var/datum/reagents/R = new/datum/re agents(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.set_up(R, CLAMP(amount/10, 0, 3), T)
|
||||
s.start()
|
||||
return FALSE
|
||||
|
||||
beaker_check(my_atom) //Beaker resilience test
|
||||
|
||||
if(!pH)
|
||||
other_pH = D.pH
|
||||
|
||||
|
||||
@@ -35,8 +35,7 @@
|
||||
var/self_consuming = FALSE
|
||||
//Fermichem vars:
|
||||
var/purity = 1
|
||||
var/addProc = FALSE //When this reagent is added to a new beaker, it does something.
|
||||
//var/ImpureChem = "toxin"
|
||||
var/addProc = FALSE
|
||||
var/loc = null //Should be the creation location!
|
||||
var/pH = 7
|
||||
|
||||
|
||||
@@ -1022,7 +1022,7 @@
|
||||
var/datum/status_effect/chem/enthrall/E = C.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
switch(E.phase)
|
||||
if(2 to INFINITY)
|
||||
C.Sleeping(30 * power_multiplier)
|
||||
C.Sleeping(40 * power_multiplier)
|
||||
E.cooldown += 10
|
||||
|
||||
//STRIP
|
||||
@@ -1032,7 +1032,6 @@
|
||||
var/datum/status_effect/chem/enthrall/E = H.has_status_effect(/datum/status_effect/chem/enthrall)
|
||||
switch(E.phase)
|
||||
if(2 to INFINITY)//Tier 2 only
|
||||
E.phase = 1
|
||||
var/items = H.get_contents()
|
||||
for(var/obj/item/W in items)
|
||||
if(W == H.w_uniform || W == H.wear_suit)
|
||||
|
||||
@@ -10,14 +10,16 @@
|
||||
|
||||
/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(120, 360))//increase by 100, it's lower so I can test it.
|
||||
addtimer(CALLBACK(src, /datum/quirk/Hypno.proc/triggered, quirk_holder), rand(12000, 36000))//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
|
||||
var/list/seen = viewers(8, get_turf(H))
|
||||
seen - quirk_holder
|
||||
if(LAZYLEN(seen) == 0)
|
||||
to_chat(H, "<span class='notice'><i>That object accidentally sets off your implanted trigger, sending you into a hypnotic daze!</i></span>")
|
||||
else
|
||||
to_chat(H, "<span class='notice'><i>[pick(seen)] accidentally sets off your implanted trigger, sending you into a hypnotic daze!</i></span>")
|
||||
H.apply_status_effect(/datum/status_effect/trance, 200, TRUE)
|
||||
message_admins("Trance applied")
|
||||
qdel(src)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
zone = "chest"
|
||||
slot = "breasts"
|
||||
w_class = 3
|
||||
size = BREASTS_SIZE_DEF //SHOULD BE A LETTER
|
||||
size = BREASTS_SIZE_DEF //SHOULD BE A LETTER, starts as a number...???
|
||||
var/cached_size = null//for enlargement SHOULD BE A NUMBER
|
||||
var/prev_size //For flavour texts SHOULD BE A LETTER
|
||||
var/breast_sizes = list ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "huge", "flat")
|
||||
@@ -26,8 +26,10 @@
|
||||
reagents.add_reagent(fluid_id, fluid_max_volume)
|
||||
prev_size = size
|
||||
cached_size = breast_values[size]
|
||||
/* This breaks the character creation sceen. for some reason sizes are set to numbers there.
|
||||
if (cached_size == "c")//fix for a weird bug that has something to do with how they're set up on the character create screen.
|
||||
cached_size = 3
|
||||
*/
|
||||
|
||||
/obj/item/organ/genital/breasts/on_life()
|
||||
if(QDELETED(src))
|
||||
@@ -93,6 +95,8 @@
|
||||
prev_size = size
|
||||
return
|
||||
//message_admins("Breast size at start: [size], [cached_size], [owner]")
|
||||
if(!isnum(cached_size))
|
||||
cached_size = breast_values[cached_size]
|
||||
if(cached_size < 0)//I don't actually know what round() does to negative numbers, so to be safe!!(Why does this runtime??)
|
||||
to_chat(owner, "<span class='warning'>You feel your breasts shrinking away from your body as your chest flattens out.</b></span>")
|
||||
src.Remove(owner)
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
|
||||
/obj/item/organ/genital/penis/Initialize()
|
||||
. = ..()
|
||||
var/mob/living/carbon/human/o = owner
|
||||
length = o.dna.features["cock_length"] //for whatever reason, this doesn't set up correctly.
|
||||
prev_size = length
|
||||
cached_length = length
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
var/InverseChemVal = 0.25 // If the impurity is below 0.5, replace ALL of the chem with InverseChem upon metabolising
|
||||
var/InverseChem = "fermiTox" // What chem is metabolised when purity is below InverseChemVal, this shouldn't be made, but if it does, well, I guess I'll know about it.
|
||||
var/DoNotSplit = FALSE // If impurity is handled within the main chem itself
|
||||
//var/addProc = FALSE //When this reagent is added to a new beaker, it does something.
|
||||
|
||||
///datum/reagent/fermi/on_mob_life(mob/living/carbon/M)
|
||||
//current_cycle++
|
||||
@@ -634,6 +635,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
|
||||
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)
|
||||
B.prev_size = B.size
|
||||
B.cached_size = sizeConv[B.size]
|
||||
@@ -740,14 +742,14 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
|
||||
. = ..()
|
||||
var/mob/living/carbon/human/H = M
|
||||
H.genital_override = TRUE
|
||||
var/obj/item/organ/genital/penis/P = H.getorganslot("penis")
|
||||
var/obj/item/organ/genital/penis/P = M.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
|
||||
message_admins("init P len: [P.length], prev: [P.prev_size], cache = [P.cached_length]")
|
||||
message_admins("init P len chem: [P.length], prev: [P.prev_size], cache = [P.cached_length]")
|
||||
|
||||
/datum/reagent/fermi/PElarger/on_mob_life(mob/living/carbon/M) //Increases penis size, 5u = +1 inch.
|
||||
var/mob/living/carbon/human/H = M
|
||||
@@ -757,10 +759,10 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
|
||||
var/obj/item/organ/genital/penis/nP = new
|
||||
nP.Insert(M)
|
||||
if(nP)
|
||||
nP.length = 0.2
|
||||
nP.length = 1
|
||||
to_chat(M, "<span class='warning'>Your groin feels warm, as you feel a newly forming bulge down below.</b></span>")//OwO
|
||||
nP.cached_length = 0.2
|
||||
nP.prev_size = 0.2
|
||||
nP.cached_length = 1
|
||||
nP.prev_size = 1
|
||||
M.reagents.remove_reagent(src.id, 5)
|
||||
P = nP
|
||||
|
||||
@@ -780,7 +782,6 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
|
||||
var/obj/item/organ/genital/vagina/V = M.getorganslot("vagina")
|
||||
var/obj/item/organ/genital/womb/W = M.getorganslot("womb")
|
||||
|
||||
message_admins("PE Breast status: [B]")
|
||||
if(M.gender == FEMALE)
|
||||
M.gender = MALE
|
||||
M.visible_message("<span class='boldnotice'>[M] suddenly looks more masculine!</span>", "<span class='boldwarning'>You suddenly feel more masculine!</span>")
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
if (reagent.purity < 0.6)
|
||||
ImpureTot = (ImpureTot + (1-reagent.purity)) / 2
|
||||
if(R.reagent_list)
|
||||
s.set_up(R, (volume/10)*pHmod, T)
|
||||
s.set_up(R, (volume/10)*pHmod, 10, T)
|
||||
s.start()
|
||||
if(!ImpureTot == 0)
|
||||
ImpureTot *= volume
|
||||
@@ -225,10 +225,9 @@
|
||||
id = "enthrall"
|
||||
results = list("enthrall" = 0.3)
|
||||
required_reagents = list("iron" = 0.1, "iodine" = 0.1)
|
||||
//required_reagents = list("cocoa" = 1, "astral" = 1, "mindbreaker" = 1, "psicodine" = 1, "happiness" = 1)
|
||||
//required_reagents = list("cocoa" = 0.1, "astral" = 0.1, "mindbreaker" = 0.1, "psicodine" = 0.1, "happiness" = 0.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
|
||||
OptimalTempMax = 800
|
||||
@@ -269,24 +268,6 @@
|
||||
E.creatorID = B.data.["ckey"]
|
||||
message_admins("MKUltra made name: [E.creatorName], ID: [E.creatorID], gender: [E.creatorGender]")
|
||||
|
||||
//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 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]")
|
||||
..()
|
||||
|
||||
//var/enthrallID = B.get_blood_data()
|
||||
*/
|
||||
|
||||
/datum/chemical_reaction/fermi/enthrall/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH)
|
||||
var/turf/T = get_turf(my_atom)
|
||||
var/datum/reagents/R = new/datum/reagents(1000)
|
||||
|
||||
Reference in New Issue
Block a user