woooah.
@@ -920,7 +920,7 @@ im
|
||||
R.data = data
|
||||
R.on_new(data)
|
||||
if(R.addProc == TRUE)
|
||||
R.on_new(my_atom)
|
||||
R.on_new(src)
|
||||
if(istype(D, /datum/reagent/fermi))//Is this a fermichem?
|
||||
var/datum/reagent/fermi/Ferm = D //It's Fermi time!
|
||||
Ferm.FermiNew(my_atom) //Seriously what is "data" ????
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#define LUNGS_MAX_HEALTH 500
|
||||
#define LUNGS_MAX_HEALTH 450
|
||||
|
||||
/obj/item/organ/lungs
|
||||
name = "lungs"
|
||||
@@ -410,8 +410,8 @@
|
||||
H.apply_damage_type(cold_level_2_damage*cold_modifier, cold_damage_type)
|
||||
adjustLungLoss(cold_level_2_damage*cold_modifier)
|
||||
if(breath_temperature > cold_level_2_threshold && breath_temperature < cold_level_1_threshold)
|
||||
adjustLungLoss(cold_level_1_damage*cold_modifier)
|
||||
H.apply_damage_type(cold_level_1_damage*cold_modifier, cold_damage_type)
|
||||
adjustLungLoss(cold_level_1_damage*cold_modifier)
|
||||
if(breath_temperature < cold_level_1_threshold)
|
||||
if(prob(20))
|
||||
to_chat(H, "<span class='warning'>You feel [cold_message] in your [name]!</span>")
|
||||
|
||||
@@ -34,8 +34,8 @@
|
||||
if((fermi_Clone && fermi_Clone.stat != DEAD) || (fermi_Clone == null))
|
||||
if(owner.mind)
|
||||
owner.mind.transfer_to(fermi_Clone)
|
||||
owner.visible_message("<span class='warning'>Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.</span>")
|
||||
fermi_Clone.visible_message("<span class='warning'>Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.</span>")
|
||||
to_chat(owner, "<span class='warning'>Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.</span>")
|
||||
to_chat(fermi_Clone, "<span class='warning'>Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. curiously, you find that you memories are blank after you ingested the sythetic serum, leaving you to wonder where the other you is.</span>")
|
||||
fermi_Clone = null
|
||||
owner.remove_status_effect(src)
|
||||
// to_chat(owner, "<span class='notice'>[linked_extract] desperately tries to move your soul to a living body, but can't find one!</span>")
|
||||
@@ -79,7 +79,16 @@
|
||||
o.dropItemToGround(W, TRUE)
|
||||
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
to_chat(owner, "<span class='warning'>Your enormous breasts are way too large to fit anything over them!</b></span>")
|
||||
if (B.breast_values[B.size] > B.breast_values[B.prev_size])
|
||||
if (B.size == "huge")
|
||||
if(prob(2))
|
||||
to_chat(H, "<span class='notice'>Your back is feeling a little sore.</b></span>")
|
||||
var/target = o.get_bodypart(BODY_ZONE_CHEST)
|
||||
o.apply_damage(0.1, BRUTE, target)
|
||||
if(!B.cached_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
|
||||
return ..()
|
||||
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
|
||||
else if (B.breast_values[B.size] < B.breast_values[B.prev_size])
|
||||
@@ -207,21 +216,19 @@
|
||||
/datum/status_effect/chem/enthrall/on_apply()
|
||||
var/mob/living/carbon/M = owner
|
||||
var/datum/reagent/fermi/enthrall/E = locate(/datum/reagent/fermi/enthrall) in M.reagents.reagent_list
|
||||
if(!E.creatorID)
|
||||
message_admins("WARNING: FermiChem No master found in thrall, this makes me max sad.")
|
||||
if(!E)
|
||||
message_admins("WARNING: FermiChem: No chem found in thrall, did you bus in the chem? Someone set up the reaction incorrectly if not. Console them with a fermiplush please.")
|
||||
enthrallID = E.creatorID
|
||||
enthrallGender = E.creatorGender
|
||||
master = get_mob_by_key(enthrallID)
|
||||
if(!E)
|
||||
message_admins("WARNING: No chem found in thrall!!!!")
|
||||
if(!master)
|
||||
message_admins("WARNING: No master! found in thrall!!!!")
|
||||
message_admins("WARNING: FermiChem: No master found in thrall, did you bus in the chem? Someone set up the reaction incorrectly if not. Console them with a fermiplush please.")
|
||||
if(M.ckey == enthrallID)
|
||||
owner.remove_status_effect(src)//This shouldn't happen, but just in case
|
||||
redirect_component = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_LIVING_RESIST = CALLBACK(src, .proc/owner_resist)))) //Do resistance calc if resist is pressed#
|
||||
//redirect_component2 = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_LIVING_SAY = CALLBACK(src, .proc/owner_say)))) //Do resistance calc if resist is pressed
|
||||
//redirect_component3 = WEAKREF(owner.AddComponent(/datum/component/redirect, list(COMSIG_MOVABLE_HEAR = CALLBACK(src, .proc/owner_hear)))) //Do resistance calc if resist is pressed
|
||||
//RegisterSignal(owner, COMSIG_GLOB_LIVING_SAY_SPECIAL, .proc/owner_say)
|
||||
//RegisterSignal(owner, COMSIG_GLOB_LIVING_SAY_SPECIAL, .proc/owner_say) //to add, maybe.
|
||||
RegisterSignal(owner, COMSIG_MOVABLE_HEAR, .proc/owner_hear)
|
||||
//Might need to add redirect component for listening too.
|
||||
var/obj/item/organ/brain/B = M.getorganslot(ORGAN_SLOT_BRAIN) //It's their brain!
|
||||
@@ -506,7 +513,7 @@
|
||||
redirect_component = null
|
||||
UnregisterSignal(owner, COMSIG_MOVABLE_HEAR)
|
||||
owner.remove_trait(TRAIT_PACIFISM, "MKUltra")
|
||||
//UnregisterSignal(owner, COMSIG_GLOB_LIVING_SAY_SPECIAL)
|
||||
//UnregisterSignal(owner, COMSIG_GLOB_LIVING_SAY_SPECIAL) //Should still make custom commands work after freedom, need to check.
|
||||
|
||||
/*
|
||||
/datum/status_effect/chem/enthrall/mob/say(message, bubble_type, var/list/spans = list(), sanitize = TRUE, datum/language/language = null, ignore_spam = FALSE, forced = null)
|
||||
|
||||
@@ -139,5 +139,7 @@
|
||||
H.Force_update_genitals()
|
||||
prev_size = size
|
||||
|
||||
else if (cached_size == 16.2)
|
||||
to_chat(owner, "<span class='warning'>Your breasts [pick("swell up to", "flourish into", "expand into", "burst forth into", "grow eagerly into", "amplify into")] a hefty [uppertext(size)]cm diameter bosom.</b></span>")// taking both of your hands to hold!.</b></span>")
|
||||
else if (cached_size >= 16)
|
||||
if(size != "huge")
|
||||
to_chat(owner, "<span class='warning'>Your breasts [pick("swell up to", "flourish into", "expand into", "burst forth into", "grow eagerly into", "amplify into")] a hefty [uppertext(size)]cm diameter bosom.</b></span>")// taking both of your hands to hold!.</b></span>")
|
||||
size = "huge"
|
||||
|
||||
@@ -270,7 +270,7 @@
|
||||
dna.species.handle_genitals(src)
|
||||
|
||||
/mob/living/carbon/human/proc/Force_update_genitals(mob/living/carbon/human/H) //called in fermiChem
|
||||
dna.species.handle_genitals(src, ignoreGenitalFlags = TRUE)
|
||||
dna.species.handle_genitals(src)
|
||||
//dna.species.handle_breasts(src)
|
||||
//H.update_body()
|
||||
//species_traits = list(NOTRANSSTING,NOGENITALS)
|
||||
@@ -316,8 +316,7 @@
|
||||
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.
|
||||
if ((G.cached_size > 5) && (layertext == "BEHIND"))
|
||||
size = "e" //I don't understand the BEHIND sprite honestly, so this is a way to just use the largest.
|
||||
if(size == "huge")
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -850,7 +850,7 @@ Buginess level: works as intended - except teleport makes sparks for some reason
|
||||
//M.alpha = 255//Reset addiction
|
||||
//antiGenetics = 255// DOesn't work for some reason?
|
||||
switch(current_cycle)
|
||||
if(1)//Require a minimum
|
||||
if(0)//Require a minimum
|
||||
origin = M
|
||||
if (G == null)
|
||||
G = new(get_turf(M.loc))
|
||||
@@ -1072,6 +1072,8 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
(thats not written yet but thats the idea.)
|
||||
*/
|
||||
|
||||
//TODO rewrite code so that the low purity stuff is a seperate chem for clarity.
|
||||
|
||||
/datum/reagent/fermi/enthrall
|
||||
name = "MKUltra"
|
||||
id = "enthrall"
|
||||
@@ -1085,6 +1087,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
var/creatorGender
|
||||
var/creatorName
|
||||
var/mob/living/creator
|
||||
pH = 10
|
||||
|
||||
/datum/reagent/fermi/enthrall/test
|
||||
name = "MKUltraTest"
|
||||
@@ -1305,6 +1308,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
overdose_threshold = 25
|
||||
var/obj/item/clothing/head/hattip/hat
|
||||
DoNotSplit = TRUE
|
||||
pH = 4
|
||||
|
||||
|
||||
/datum/reagent/fermi/hatmium/on_mob_add(mob/living/carbon/human/M)
|
||||
@@ -1347,6 +1351,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
InverseChemVal = 0
|
||||
var/obj/item/organ/tongue/nT
|
||||
DoNotSplit = TRUE
|
||||
pH = 5
|
||||
|
||||
/datum/reagent/fermi/furranium/on_mob_life(mob/living/carbon/M)
|
||||
|
||||
@@ -1404,6 +1409,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
ImpureChem = "naninte_b_goneTox" //If you make an inpure chem, it stalls growth
|
||||
InverseChemVal = 0.25
|
||||
InverseChem = "naninte_b_goneTox" //At really impure vols, it just becomes 100% inverse
|
||||
pH = 9
|
||||
|
||||
/datum/reagent/fermi/naninte_b_gone/on_mob_life(mob/living/carbon/C)
|
||||
//var/component/nanites/N = M.GetComponent(/datum/component/nanites)
|
||||
@@ -1453,6 +1459,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
name = "Acid vapour"
|
||||
id = "fermiAcid"
|
||||
description = "Someone didn't do like an otter, and add acid to water."
|
||||
pH = 0
|
||||
|
||||
/datum/reagent/fermi/fermiAcid/on_mob_life(mob/living/carbon/C, method)
|
||||
var/target = C.get_bodypart(BODY_ZONE_CHEST)
|
||||
@@ -1490,7 +1497,7 @@ And as stated earlier, this chem is hard to make, and is punishing on failure. Y
|
||||
//data = list("Big bang" = 1, "please work" = 2)
|
||||
addProc = TRUE
|
||||
|
||||
/datum/reagent/fermi/fermiTest/on_new()
|
||||
/datum/reagent/fermi/fermiTest/on_new(datum/reagents/holder)
|
||||
..()
|
||||
if(LAZYLEN(holder.reagent_list) == 1)
|
||||
return
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
id = "eigenstate"
|
||||
results = list("eigenstate" = 0.1)
|
||||
required_reagents = list("bluespace" = 0.1, "stable_plasma" = 0.1, "sugar" = 0.1)
|
||||
mix_message = "zaps brightly into existance, diffusing the energy from the localised gravity well as light"
|
||||
mix_message = "the reaction zaps suddenly!"
|
||||
//FermiChem vars:
|
||||
OptimalTempMin = 350 // Lower area of bell curve for determining heat based rate reactions
|
||||
OptimalTempMax = 500 // Upper end for above
|
||||
@@ -229,14 +229,14 @@
|
||||
OptimalTempMin = 780
|
||||
OptimalTempMax = 800
|
||||
ExplodeTemp = 820
|
||||
OptimalpHMin = 1
|
||||
OptimalpHMax = 2
|
||||
OptimalpHMin = 12
|
||||
OptimalpHMax = 13
|
||||
ReactpHLim = 2
|
||||
//CatalystFact = 0
|
||||
CurveSharpT = 0.5
|
||||
CurveSharppH = 4
|
||||
ThermicConstant = 20
|
||||
HIonRelease = 0.1
|
||||
HIonRelease = -0.1
|
||||
RateUpLim = 5
|
||||
FermiChem = TRUE
|
||||
FermiExplode = TRUE
|
||||
@@ -248,7 +248,7 @@
|
||||
message_admins("On finish for enthral proc'd")
|
||||
var/datum/reagent/blood/B = locate(/datum/reagent/blood) in my_atom.reagents.reagent_list
|
||||
var/datum/reagent/fermi/enthrall/E = locate(/datum/reagent/fermi/enthrall) in my_atom.reagents.reagent_list
|
||||
if(!B.data)
|
||||
if(!B)
|
||||
var/list/seen = viewers(5, get_turf(my_atom))
|
||||
for(var/mob/M in seen)
|
||||
to_chat(M, "<span class='warning'>The reaction splutters and fails to react.</span>")
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
numberOfPages--
|
||||
playsound(user.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
add_fingerprint(user)
|
||||
if(numberOfPages == 0)
|
||||
icon_state = "pHbookletEmpty"
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[src] is empty!</span>")
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 703 B After Width: | Height: | Size: 593 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |