diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 64ecf35e4b..bbe882627f 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -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 diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index aa218c8193..27e8094127 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -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) diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 63327e1d85..5c39cd9db2 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -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) - */ diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 40654ae60b..d7fc347728 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -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 -*/ diff --git a/modular_citadel/code/modules/arousal/organs/genitals.dm b/modular_citadel/code/modules/arousal/organs/genitals.dm index cc14e5ad95..03de151f94 100644 --- a/modular_citadel/code/modules/arousal/organs/genitals.dm +++ b/modular_citadel/code/modules/arousal/organs/genitals.dm @@ -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? -*/ diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/modular_citadel/code/modules/arousal/organs/penis.dm index fd23e1054e..8cb1560b98 100644 --- a/modular_citadel/code/modules/arousal/organs/penis.dm +++ b/modular_citadel/code/modules/arousal/organs/penis.dm @@ -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)) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm index 742e446f10..cc5a2c9515 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -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, "The residual voltage in your system causes you to seize up!") 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 diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 7ed8af67c1..a37e55d87a 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -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))