diff --git a/code/modules/mob/living/simple_animal/astral.dm b/code/modules/mob/living/simple_animal/astral.dm index d58c013f10..7e0132ccd3 100644 --- a/code/modules/mob/living/simple_animal/astral.dm +++ b/code/modules/mob/living/simple_animal/astral.dm @@ -22,6 +22,10 @@ speak_emote = list("echos") movement_type = FLYING var/pseudo_death = FALSE + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + unsuitable_atmos_damage = 0 + minbodytemp = 0 + maxbodytemp = 100000 /mob/living/simple_animal/astral/death() icon_state = "shade_dead" diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index 2946040115..4bc83d2af6 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -576,6 +576,8 @@ /datum/status_effect/chem/enthrall/proc/owner_hear(var/hearer, message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode) + if(owner.client?.prefs.lewdchem == FALSE) + return if (cTriggered > 0) return var/mob/living/carbon/C = owner diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm index b9d57f6e71..415dfdf6f2 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/astrogen.dm @@ -40,6 +40,18 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die ghost.mind.transfer_to(origin) qdel(src) +/datum/reagent/fermi/astral/reaction_turf(turf/T, reac_volume) + if(isplatingturf(T) || istype(T, /turf/open/floor/plasteel)) + var/turf/open/floor/F = T + F.PlaceOnTop(/turf/open/floor/fakespace) + ..() + +/datum/reagent/fermi/astral/reaction_obj(obj/O, reac_volume) + if(istype(O, /obj/item/bedsheet)) + new /obj/item/bedsheet/cosmos(get_turf(O)) + qdel(O) + + /datum/reagent/fermi/astral/on_mob_life(mob/living/M) // Gives you the ability to astral project for a moment! M.alpha = 255 originalmind = M.mind @@ -58,10 +70,12 @@ I'd like to point out from my calculations it'll take about 60-80 minutes to die if(prob(50)) to_chat(G, "The high conentration of Astrogen in your blood causes you to lapse your concentration for a moment, bringing your projection back to yourself!") do_teleport(G, M.loc) - M.reagents.remove_reagent(id, current_cycle/6, FALSE)//exponent + M.reagents.remove_reagent(id, current_cycle/8, FALSE)//exponent sleepytime+=5 if(G.stat == DEAD || !G || G.pseudo_death == TRUE) - originalmind.transfer_to(M) + G.mind.transfer_to(M) + qdel(G) + if(!G) M.Sleeping(10, 0) ..() diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 801f1d9aae..bed9569024 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -125,7 +125,7 @@ /datum/chemical_reaction/fermi/SDGF/FermiExplode(datum/reagents, var/atom/my_atom, volume, temp, pH)//Spawns an angery teratoma! var/turf/T = get_turf(my_atom) - var/mob/living/simple_animal/slime/S = new(T,"grey") + var/mob/living/simple_animal/slime/S = new(T,"green") S.damage_coeff = list(BRUTE = 0.9 , BURN = 2, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) S.name = "Living teratoma" S.real_name = "Living teratoma" @@ -484,14 +484,14 @@ ExplodeTemp = (OptimalTempMax+rand(20, 200)) OptimalpHMin += rand(1, 10) OptimalpHMax = (OptimalpHMin + rand(1, 5)) - ReactpHLim += rand(-1.8, 2) + ReactpHLim += rand(-1.5, 2.5) CurveSharpT += (rand(1, 500)/100) CurveSharppH += (rand(1, 500)/100) ThermicConstant += rand(-20, 20) HIonRelease += (rand(-25, 25)/100) RateUpLim += (rand(1, 1000)/100) PurityMin += (rand(-1, 1)/10) - var/additions = list("aluminium", "silver", "gold", "plasma", "silicon", "bluespace", "uranium", "milk") + var/additions = list("aluminium", "silver", "gold", "plasma", "silicon", "uranium", "milk") required_reagents[pick(additions)] = rand(0.1, 0.5)//weird /datum/chemical_reaction/fermi/secretcatchem/FermiFinish(datum/reagents/holder, var/atom/my_atom) @@ -506,7 +506,7 @@ catto.name = "Chemcat" catto.desc = "A cute chem cat, created by a lot of compicated and confusing chemistry!" catto.color = "#770000" - my_atom.reagents.remove_any(10) + my_atom.reagents.remove_all(5) /datum/chemical_reaction/fermi/yamerol//done test name = "Yamerol"