From 55cb20ddc9e34a6034d4bba509f2759eeb2b8c49 Mon Sep 17 00:00:00 2001 From: Fermi Date: Mon, 29 Apr 2019 20:15:54 +0100 Subject: [PATCH] Small changes to SDGF. --- code/modules/reagents/chemistry/holder.dm | 3 - code/modules/reagents/chemistry/reagents.dm | 4 ++ .../chemistry/reagents/fermi_reagents.dm | 67 +++++++++---------- .../reagents/chemistry/recipes/fermi.dm | 8 ++- 4 files changed, 41 insertions(+), 41 deletions(-) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index f68f51999f..c51c318e3e 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -537,9 +537,6 @@ update_total() return reaction_occurred -/datum/reagents/proc/FermiExplode() - return - /datum/reagents/proc/isolate_reagent(reagent) var/list/cached_reagents = reagent_list for(var/_reagent in cached_reagents) diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 1bf862bd5e..4a3579bf07 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -130,3 +130,7 @@ rs += "[R.name], [R.volume]" return rs.Join(" | ") + +//Handler for explosion reaction +/datum/reagents/proc/FermiExplode(turf/T, obj/O, mob/living/M, volume) + return 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 56015b615d..e07e8b04ae 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -47,15 +47,13 @@ var/teleBool = FALSE mob/living/carbon/purgeBody - - /* /datum/reagent/fermi/eigenstate/on_new() location_created = get_turf(loc) //Sets up coordinate of where it was created message_admins("Attempting to get creation location from init() [location_created]") //..() */ - +//Main functions /datum/reagent/fermi/eigenstate/on_mob_life(mob/living/M) //Teleports to chemistry! switch(current_cycle) if(1) @@ -89,7 +87,7 @@ holder.remove_reagent(src.id, 0.5)//So you're not stuck for 10 minutes teleporting ..() //loop function - +//Addiction /datum/reagent/fermi/eigenstate/addiction_act_stage1(mob/living/M) //Welcome to Fermis' wild ride. switch(src.addictCyc1) if(1) @@ -196,31 +194,12 @@ var/list/result = list() var/list/group = null var/pollStarted = FALSE + var/location_created //var/fClone_current_controller = OWNER //var/mob/living/split_personality/clone//there's two so they can swap without overwriting //var/mob/living/split_personality/owner //var/mob/living/carbon/SM -/* -/datum/reagent/fermi/SDGF/New() - candidates = pollGhostCandidates("Do you want to play as a clone and do you agree to respect their character and act in a similar manner to them? I swear to god if you diddle them I will be very disapointed in you. ", "FermiClone", null, ROLE_SENTIENCE, 300) // see poll_ignore.dm, should allow admins to ban greifers or bullies - message_admins("Attempting to poll") -^^^breaks everything -*/ -/* -/datum/reagent/fermi/proc/sepPoll() - //var/list/procCandies = list() - //if (pollStarted == FALSE) - // procCandies = pollGhostCandidates("Do you want to play as a clone and do you agree to respect their character and act in a similar manner to them? I swear to god if you diddle them I will be very disapointed in you.") - sleep(300) - return procCandies -*/ - /*if(1) //I'm not sure how pollCanditdates works, so I did this. Gives a chance for people to say yes. - M.apply_status_effect(/datum/status_effect/chem/SDGF/candidates) - /datum/status_effect/chem/SDGF/candidates/candies = new /datum/status_effect/chem/SDGF/candidates - ///datum/status_effect/chem/SDGF/candidates/candies = M.apply_status_effect(/datum/status_effect/chem/SDGF/candidates) - //candies = pollGhostCandidates("Do you want to play as a clone of [M.name] and do you agree to respect their character and act in a similar manner to them? I swear to god if you diddle them I will be very disapointed in you. ", "FermiClone", null, ROLE_SENTIENCE, 300) // see poll_ignore.dm, should allow admins to ban greifers or bullies - message_admins("Attempting to poll")*/ /datum/reagent/fermi/SDGF/on_mob_life(mob/living/carbon/M) //Clones user, then puts a ghost in them! If that fails, makes a braindead clone. //Setup clone @@ -358,20 +337,33 @@ M.blood_volume += 100 if (M.nutrition < 1500) M.nutrition += 500 +//If the reaction explodes +/datum/reagent/fermi/SDGF/FermiExplode(turf/open/T)//Spawns an angery teratoma!! Spooky..! be careful!! + //var/mob/living/simple_animal/slime/S = new(get_turf(location_created),"grey") + var/mob/living/simple_animal/slime/S = new(T,"grey")//should work, in theory + 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"//horrifying!! + S.rabid = 1//Make them an angery boi + to_chat(M, "The cells clump up into a horrifying tumour.") +//Fail state of SDGF /datum/reagent/fermi/SDZF name = "synthetic-derived zombie factor" id = "SDZF" description = "A horribly peverse mass of Embryonic stem cells made real by the hands of a failed chemist. This message should never appear, how did you manage to get a hold of this?" color = "#60A584" // rgb: 96, 0, 255 metabolization_rate = 0.25 * REAGENTS_METABOLISM + var/startHunger /datum/reagent/fermi/SDZF/on_mob_life(mob/living/carbon/M) //If you're bad at fermichem, turns your clone into a zombie instead. message_admins("SGZF ingested") switch(current_cycle)//Pretends to be normal if(20) to_chat(M, "You feel the synethic cells rest uncomfortably within your body as they start to pulse and grow rapidly.") + startHunger = M.nutrition if(21 to 29) + M.nutrition = M.nutrition + (M.nutrition/10) if(30) to_chat(M, "You feel the synethic cells grow and expand within yourself, bloating your body outwards.") @@ -391,7 +383,7 @@ if(86) if (!holder.has_reagent("pen_acid"))//Counterplay is pent.) message_admins("Zombie spawned at [M.loc]") - M.nutrition -= 18500//YOU BEST BE RUNNING AWAY AFTER THIS YOU BADDIE + M.nutrition = startHunger - 500//YOU BEST BE RUNNING AWAY AFTER THIS YOU BADDIE M.next_move_modifier = 1 to_chat(M, "Your body splits away from the cell clone of yourself, your attempted clone birthing itself violently from you as it begins to shamble around, a terrifying abomination of science.") M.visible_message("[M] suddenly shudders, and splits into a funky smelling copy of themselves!") @@ -403,23 +395,26 @@ ZI.name = M.real_name //ZI.updateappearance(mutcolor_update=1) holder.remove_reagent(src.id, 20) - else + else//easier to deal with to_chat(M, "The pentetic acid seems to have stopped the decay for now, clumping up the cells into a horrifying tumour.") + M.nutrition = startHunger - 500 + var/mob/living/simple_animal/slime/S = new(get_turf(M.loc),"grey") //TODO: replace slime as own simplemob/add tumour slime cores for science/chemistry interplay + S.damage_coeff = list(BRUTE = ((1 / volume)**0.1) , BURN = 2, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) + S.name = "Living teratoma" + S.real_name = "Living teratoma"//horrifying!! + S.rabid = 1//Make them an angery boi + //S.updateappearance(mutcolor_update=1) + holder.remove_reagent(src.id, 20) if(87 to INFINITY)//purges chemical fast, producing a "slime" for each one. Said slime is weak to fire. TODO: turn tumour slime into real variant. - M.nutrition -= 100 - var/mob/living/simple_animal/slime/S = new(get_turf(M.loc),"grey") - S.damage_coeff = list(BRUTE = ((1 / volume)**0.1) , BURN = 2, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) - S.name = "Living teratoma" - S.real_name = "Living teratoma"//horrifying!! - S.rabid = 1//Make them an angery boi - //S.updateappearance(mutcolor_update=1) - holder.remove_reagent(src.id, 20) - M.adjustToxLoss(10, 0) - to_chat(M, "A large glob of the tumour suddenly splits itself from your body. You feel grossed out and slimey...") + M.adjustToxLoss(1, 0) message_admins("Growth nucleation occuring (SDGF), step [current_cycle] of 20") ..() + + to_chat(M, "A large glob of the tumour suddenly splits itself from your body. You feel grossed out and slimey...") + + //breast englargement //Honestly the most requested chems //I'm not a very kinky person, sorry if it's not great diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index af38b5fd8b..a4dd17914a 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -25,7 +25,8 @@ /datum/chemical_reaction/eigenstate/on_reaction(datum/reagents/holder) var/location = get_turf(holder.my_atom) - var/datum/reagent/fermi/eigenstate/location_created = location + var/datum/reagent/fermi/eigenstate/E = locate(/datum/reagent/fermi/eigenstate) in holder.reagent_list + E.location_created = location //serum /datum/chemical_reaction/SDGF @@ -53,7 +54,10 @@ InverseChemVal = 0.5 // If the impurity is below 0.5, replace ALL of the chem with InverseChem upon metabolising InverseChem = "SDZF" // What chem is metabolised when purity is below InverseChemVal - +/datum/chemical_reaction/eigenstate/on_reaction(datum/reagents/holder) + var/location = get_turf(holder.my_atom) + var/datum/reagent/fermi/eigenstate/E = locate(/datum/reagent/fermi/eigenstate) in holder.reagent_list + E.location_created = location /datum/chemical_reaction/BElarger name = ""