CHECK PLASMA THOUGH!

This commit is contained in:
Fermi
2019-05-28 05:03:58 +01:00
parent df2a14880e
commit 8282819c84
8 changed files with 28 additions and 111 deletions
-6
View File
@@ -49,12 +49,6 @@
/mob/living/carbon/handle_breathing(times_fired)
if((times_fired % 4) == 2 || failed_last_breath)
breathe() //Breathe per 4 ticks, unless suffocating
/* Hey maintainer reading this right now, should we handle suffocation this way?
if(failed_last_breath)
SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "suffocation", /datum/mood_event/suffocation)
else
SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "suffocation")
*/
else
if(istype(loc, /obj/))
var/obj/location_as_object = loc
@@ -323,7 +323,7 @@
id = "secretcatchem"
results = list("secretcatchem" = 0.5)
required_reagents = list("stable_plasma" = 0.1, "sugar" = 0.1, "cream" = 0.1, "blood" = 0.1, "slimejelly" = 0.1)
//required_catalysts = list("water" = 5)
required_catalysts = list("felinidmutationtoxin" = 1)
required_temp = 600
mix_message = "the reaction gives off a meow!"
mix_sound = "modular_citadel/sound/voice/merowr.ogg"
@@ -359,11 +359,10 @@
HIonRelease += (rand(-25, 25)/100)
RateUpLim += (rand(1, 1000)/100)
PurityMin += (rand(-1, 1)/10)
var/additions = list("aluminum", "silver", "gold", "plasma", "silicon", "bluespace")
var/additions = list("aluminum", "silver", "gold", "plasma", "silicon", "bluespace", "uranium", "milk")
//var/chosenA = pick(additions)
var/cataly = list ("felinidmutationtoxin", "uranium", "bluespace", "milk")
required_reagents[pick(additions)] = rand(1, 5)//weird
required_catalysts = list("[pick(cataly)]" = 1)
//required_catalysts = list("[pick(cataly)]" = 1)
/datum/chemical_reaction/fermi/secretcatchem/FermiFinish(datum/reagents/holder, var/atom/my_atom)//Strange how this doesn't work but the other does.
message_admins("Someone found the hidden reaction. Amazing!! Please tell Fermis!!")
@@ -391,7 +390,7 @@
if((mutation != current_species) && (purity >= 0.8))//ONLY if purity is high, and given the stuff is random. It's basically impossible to get this to 1. It already requires felind too, so no new functionality there.
H.set_species(mutation)
H.gender = FEMALE
//exception(al) handler, I said cat tail damnit!
//exception(al) handler:
H.dna.features["mam_tail"] = "Cat"
H.dna.features["tail_human"] = "Cat"
H.dna.features["ears"] = "Cat"
@@ -409,7 +408,6 @@
catto.name = H.name
catto.desc = "A cute catto! They remind you of [H] somehow."
catto.color = "#[H.dna.features["mcolor"]]"
//H.moveToNullspace() classic breaking Japes
H.forceMove(locate(10,6,1))//To the zelda room.
/datum/reagent/fermi/secretcatchem/on_mob_life(mob/living/carbon/H)
@@ -319,10 +319,3 @@
beaker.reagents.remove_reagent("sugar", amount)
beaker.reagents.remove_reagent("moonshine", amount)
beaker.reagents.add_reagent("moonsugar", amount*2)
/*Add later
if(beaker.reagents.has_reagent("synthflesh") &&
var/amount = min(beaker.reagents.get_reagent_amount("synthflesh"), beaker.reagents.get_reagent_amount("whiskey"))
beaker.reagents.remove_reagent("sugar", amount)
beaker.reagents.remove_reagent("moonshine", amount)
beaker.reagents.add_reagent("meat", amount*2)
*/
@@ -131,8 +131,3 @@
rs += "[R.name], [R.volume]"
return rs.Join(" | ")
/* MOVED TO CHEMICAL REACTION
//Handler for explosion reaction
/datum/reagents/proc/FermiExplode(turf/T, obj/O, mob/living/M, volume)
return
*/
@@ -292,9 +292,15 @@
dna.features["genitals_use_skintone"] = TRUE
dna.species.use_skintones = TRUE
return
if(MUTCOLORS)
if(fixed_mut_color)
genital_overlay.color = "#[fixed_mut_color]"
else
genital_overlay.color = "#[H.dna.features["mcolor"]]"
return
//So people who haven't set stuff up don't get rainbow surprises.
//dna.features["cock_color"] = "#[dna.features["mcolor"]]"
//dna.features["breasts_color"] = "#[dna.features["mcolor"]]"
dna.features["cock_color"] = "#[dna.features["mcolor"]]"
dna.features["breasts_color"] = "#[dna.features["mcolor"]]"
return
/datum/species/proc/handle_genitals(mob/living/carbon/human/H)//more like handle sadness
@@ -335,7 +341,7 @@
S = GLOB.vagina_shapes_list[G.shape]
if(/obj/item/organ/genital/breasts)
S = GLOB.breasts_shapes_list[G.shape]
aroused_state = 0//Breasts don't have aroused_states, there's literally no difference in the spite.
var/temp_aroused_state = 0//Breasts don't have aroused_states, there's literally no difference in the spite. When someone touched up/edits the code for their implementation, remove this and change temp_aroused_state to aroused_state
//if(size == "huge")
@@ -344,14 +350,14 @@
if(!S || S.icon_state == "none")
continue
var/mutable_appearance/genital_overlay = mutable_appearance(S.icon, layer = -layer)
genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]_[aroused_state]_[layertext]"
genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]_[temp_aroused_state]_[layertext]"
if(S.center)
genital_overlay = center_image(genital_overlay, S.dimension_x, S.dimension_y)
if(use_skintones && H.dna.features["genitals_use_skintone"])
genital_overlay.color = "#[skintone2hex(H.skin_tone)]"
genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]-s_[aroused_state]_[layertext]"
genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size]-s_[temp_aroused_state]_[layertext]"
else
switch(S.color_src)
if("cock_color")
@@ -383,75 +389,3 @@
for(var/L in relevant_layers)
H.apply_overlay(L)
/* Behold the maddness I went through. This is here until the genetial problem is confirmed fixed.
/datum/species/proc/handle_breasts(mob/living/carbon/human/H)
//check for breasts first!
var/obj/item/organ/genital/breasts/B = H.getorganslot("breasts")
if(!B)
return
message_admins("attempting to update sprite in a hacky way")
//obj/item/organ/genital/breasts/update_icon(/obj/item/organ/genital) //Where did this come from?
//Variables:
var/size = B.size
var/list/relevant_layers = list(GENITALS_BEHIND_LAYER, GENITALS_ADJ_LAYER, GENITALS_FRONT_LAYER)
var/datum/sprite_accessory/S = GLOB.breasts_shapes_list[B.shape]
var/list/standing = list()
//if(!S || S.icon_state == "none")
//return
for(var/layer in relevant_layers)
var/layertext = genitals_layertext(layer)
S = GLOB.breasts_shapes_list[B.shape]
message_admins("Attempting sprite calc: Bslot:[B.slot], B.shape:[B.shape], size:[size], Arouse:[B.aroused_state], layertxt:[layertext]")
var/mutable_appearance/genital_overlay = mutable_appearance(S.icon, layer = -layer)
//If breasts are hueg (larger than 5 only have one sprite atm)
if (B.breast_values[size] > 5)
genital_overlay.icon_state = "[B.slot]_[B.shape]_[size]_0_[layertext]"//I haven't done around sizes above 5, I dunno how..!
else
genital_overlay.icon_state = "[B.slot]_[S.icon_state]_[size]_[B.aroused_state]_[layertext]"
//center icon
if(S.center)
genital_overlay = center_image(genital_overlay, S.dimension_x, S.dimension_y)
//Check skin colour
if(use_skintones && H.dna.features["genitals_use_skintone"])
genital_overlay.color = "#[skintone2hex(H.skin_tone)]"
else
switch(S.color_src)
if("vag_color")
genital_overlay.color = "#[H.dna.features["vag_color"]]"
if(MUTCOLORS)
if(fixed_mut_color)
genital_overlay.color = "#[fixed_mut_color]"
else
genital_overlay.color = "#[H.dna.features["mcolor"]]"
if(MUTCOLORS2)
if(fixed_mut_color2)
genital_overlay.color = "#[fixed_mut_color2]"
else
genital_overlay.color = "#[H.dna.features["mcolor2"]]"
if(MUTCOLORS3)
if(fixed_mut_color3)
genital_overlay.color = "#[fixed_mut_color3]"
else
genital_overlay.color = "#[H.dna.features["mcolor3"]]"
standing += genital_overlay
//Standing..?
if(LAZYLEN(standing))
H.overlays_standing[layer] = standing.Copy()
standing = list()
for(var/L in relevant_layers)
H.apply_overlay(L)
H.update_icons()
///obj/item/organ/genital/breasts/update_icon(/obj/item/organ/genital) //Where did this come from?
*/
@@ -48,12 +48,12 @@
size = 3
if(owner.has_status_effect(/datum/status_effect/chem/PElarger))
o.remove_status_effect(/datum/status_effect/chem/PElarger)
if(21 to 29) //If massive and due for large effects
if(21 to 34) //If massive and due for large effects
length = cached_length
size = 3
if(!owner.has_status_effect(/datum/status_effect/chem/PElarger))
o.apply_status_effect(/datum/status_effect/chem/PElarger)
if(30 to INFINITY) //If comical
if(35 to INFINITY) //If comical
length = cached_length
size = 4 //no new sprites for anything larger yet
if(!owner.has_status_effect(/datum/status_effect/chem/PElarger))
@@ -1444,7 +1444,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
//Increases shock events.
/datum/reagent/fermi/naninte_b_goneTox/on_mob_life(mob/living/carbon/C)//Damages the taker if their purity is low. Extended use of impure chemicals will make the original die. (thus can't be spammed unless you've very good)
if(prob(5))
if(prob(15))
to_chat(C, "<span class='warning'>The residual voltage in your system causes you to seize up!</b></span>")
C.electrocute_act(10, (get_turf(C)), 1, FALSE, FALSE, FALSE, TRUE)
if(prob(50))
@@ -1538,12 +1538,13 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
description = "You should be really careful with this...! Also, how did you get this?"
data = "merge"
color = "FFFFFF"
//I'm concerned this is too weak, but I also don't want deathmixes.
/datum/reagent/fermi/fermiTox/on_mob_life(mob/living/carbon/C, method)
if(C.dna && istype(C.dna.species, /datum/species/jelly))
C.adjustToxLoss(-1)
C.adjustToxLoss(-2.5)
else
C.adjustToxLoss(1)
C.adjustToxLoss(2.5)
..()
/datum/reagent/fermi/fermiABuffer
@@ -40,15 +40,17 @@
message_admins("Fermi explosion at [T], with a temperature of [temp], pH of [pH], Impurity tot of [ImpureTot].")
var/datum/reagents/R = new/datum/reagents(3000)//Hey, just in case.
var/datum/effect_system/smoke_spread/chem/s = new()
/*Endless loop hell
Endless loop hell
for (var/datum/reagent/reagent in my_atom.reagents.reagent_list) //make gas for reagents
if (istype(reagent, /datum/reagent/fermi))
my_atom.reagents.remove_reagent(reagent.id, 1000)//Prevent endless loops
continue //Don't allow fermichems into the mix (fermi explosions are handled elsewhere and it's a huge pain)
R.add_reagent(reagent.id, reagent.volume)
else if (istype(reagent, /datum/reagent/toxin/plasma))
R.add_reagent(reagent.id, reagent.volume) //for !FUN! (am I doing this right?)
continue //Only 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(pH < 4) //if acidic, make acid spray
//s.set_up(/datum/reagent/fermi/fermiAcid, (volume/3), pH*10, T)
R.add_reagent("fermiAcid", ((volume/3)/pH))