From 5f706f2f0973087ca120c845710d3a2806d52ea0 Mon Sep 17 00:00:00 2001 From: Fermi Date: Tue, 23 Apr 2019 08:44:41 +0100 Subject: [PATCH] Added more the SDGF chem. --- .../code/datums/status_effects/chems.dm | 3 + .../chemistry/reagents/fermi_reagents.dm | 107 ++++++++++++------ .../reagents/chemistry/recipes/fermi.dm | 2 +- 3 files changed, 79 insertions(+), 33 deletions(-) diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index 65a644da34..54071bff27 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -3,6 +3,7 @@ var/mob/living/carbon/human/fermi_Clone = null /datum/status_effect/chem/SGDF/on_apply(mob/living/carbon/M) + message_admins("SGDF status appied") var/typepath = M.type fermi_Clone = new typepath(M.loc) //var/mob/living/carbon/M = owner @@ -14,7 +15,9 @@ return ..() /datum/status_effect/chem/SGDF/tick(mob/living/M) + message_admins("SDGF ticking") if(M.stat == DEAD) + message_admins("SGDF status swapping") if(fermi_Clone && fermi_Clone.stat != DEAD) if(M.mind) M.mind.transfer_to(fermi_Clone) 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 243ff10dad..d4c6e93c2a 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -186,43 +186,86 @@ //Setup clone message_admins("SGDF ingested") - var/list/candidates = pollCandidatesForMob("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? ", ROLE_SENTIENCE, null, ROLE_SENTIENCE, 50, M, POLL_IGNORE_SENTIENCE_POTION) // see poll_ignore.dm, should allow admins to ban greifers or bullies - if(LAZYLEN(candidates)) - message_admins("Candidate found!") - //var/typepath = owner.type - //clone = new typepath(owner.loc) - var/typepath = M.type - var/mob/living/carbon/fermi_Gclone = new typepath(M.loc) - //var/mob/living/carbon/SM = owner - //var/mob/living/carbon/M = M - var/mob/living/carbon/SM = fermi_Gclone - if(istype(SM) && istype(M)) - SM.real_name = M.real_name - M.dna.transfer_identity(SM) - SM.updateappearance(mutcolor_update=1) + switch(current_cycle) + if(1) + var/list/candidates = pollCandidatesForMob("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. ", ROLE_SENTIENCE, null, ROLE_SENTIENCE, 50, M, POLL_IGNORE_SENTIENCE_POTION) // see poll_ignore.dm, should allow admins to ban greifers or bullies + if(10 to INFINITY) + if(LAZYLEN(candidates)) + message_admins("Candidate found!") + //var/typepath = owner.type + //clone = new typepath(owner.loc) + var/typepath = M.type + var/mob/living/carbon/fermi_Gclone = new typepath(M.loc) + //var/mob/living/carbon/SM = owner + //var/mob/living/carbon/M = M + var/mob/living/carbon/SM = fermi_Gclone + if(istype(SM) && istype(M)) + SM.real_name = M.real_name + M.dna.transfer_identity(SM) + SM.updateappearance(mutcolor_update=1) - var/mob/dead/observer/C = pick(candidates) - SM.key = C.key - SM.mind.enslave_mind_to_creator(M) - //SM.sentience_act() - to_chat(SM, "You feel a strange sensation building in your mind as you realise there's two of you, before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with yourself, or rather, your original self.") - to_chat(SM, "While you find your newfound existence strange, you share the same memories as [M.real_name]. [pick("However, You find yourself indifferent to the goals you previously had, and take more interest in your newfound independence, but still have an indescribable care for the safety of your original", "Your mind has not deviated from the tasks you set out to do, and now that there's two of you the tasks should be much easier.")]") - to_chat(M, "You feel a strange sensation building in your mind as you realise there's two of you, before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with yourself.") - M.visible_message("[M] suddenly shudders, and splits into two identical twins!") - SM.copy_known_languages_from(M, FALSE) - //after_success(user, SM) - //qdel(src) - else - message_admins("Failed to find clone Candidate") - if(M.has_status_effect(/datum/status_effect/chem/SGDF) + if(M.getorganslot(ORGAN_SLOT_ZOMBIE))//sure, it "treats" it, but "you've" still got it. + var/obj/item/organ/zombie_infection/ZI = M.getorganslot(ORGAN_SLOT_ZOMBIE) + ZI.Remove(M) + ZI.Insert(C) - else - switch(20) - if(1) - M.apply_status_effect(/datum/status_effect/chem/SGDF) + var/mob/dead/observer/C = pick(candidates) + SM.key = C.key + SM.mind.enslave_mind_to_creator(M) + //SM.sentience_act() + to_chat(SM, "You feel a strange sensation building in your mind as you realise there's two of you, before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with yourself, or rather, your original self.") + to_chat(SM, "While you find your newfound existence strange, you share the same memories as [M.real_name]. [pick("However, You find yourself indifferent to the goals you previously had, and take more interest in your newfound independence, but still have an indescribable care for the safety of your original", "Your mind has not deviated from the tasks you set out to do, and now that there's two of you the tasks should be much easier.")]") + to_chat(M, "You feel a strange sensation building in your mind as you realise there's two of you, before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with yourself.") + M.visible_message("[M] suddenly shudders, and splits into two identical twins!") + SM.copy_known_languages_from(M, FALSE) + //BALANCE: should I make them a pacifist, or give them some cellular damage or weaknesses? + + //after_success(user, SM) + //qdel(src) + + else + message_admins("Failed to find clone Candidate") + if(M.has_status_effect(/datum/status_effect/chem/SGDF)) + to_chat(M, "The cells fail to catalyse around a nucleation event, instead merging with your cells.") //This stuff is hard enough to make to rob a user of some benefit. Shouldn't replace Rezadone as it requires the user to not only risk making a player controlled clone, but also requires them to have split in two (which also requires 30u of SGDF). + M.adjustCloneLoss(-0.5, 0) + M.adjustBruteLoss(-0.5, 0) + M.adjustFireLoss(-0.5, 0) + M.heal_bodypart_damage(1,1) + M.remove_trait(TRAIT_DISFIGURED, TRAIT_GENERIC) + else + switch(current_cycle) + message_admins("Growth nucleation occuring (SDGF), step [current_cycle] of 20") + if(10) + to_chat(M, "You feel the synethic cells rest uncomfortably within your body as they start to pulse and grow rapidly.") + M.nutrition = M.nutrition + (M.nutrition/30) + if(15) + to_chat(M, "You feel the synethic cells grow and expand within yourself, bloating your body outwards.") + M.nutrition = M.nutrition + (M.nutrition/20) + if(20) + to_chat(M, "The synethic cells begin to merge with your body, it feels like your body is made of a viscous water, making your movements difficult.") + M.next_move_modifier = 4//If this makes you fast then please fix it, it should make you slow!! + M.nutrition = M.nutrition + (M.nutrition/10) + if(28) + to_chat(M, "The cells begin to precipitate outwards of your body, you feel like you'll split soon...") + M.nutrition = 200 + if(30) + M.nutrition = 15//YOU BEST BE EATTING AFTER THIS YOU CUTIE + M.next_move_modifier = 1 + to_chat(M, "Your body splits away from the cell clone of yourself, leaving your with a drained and hollow feeling inside.") + M.apply_status_effect(/datum/status_effect/chem/SGDF) + M.reagents.del_reagent("SGDF")//removes SGDF on completion. ..() +/datum/reagent/fermi/SDGF/on_mob_delete(mob/living/M) //returns back to original location + if !(M.has_status_effect(/datum/status_effect/chem/SGDF) && M.next_move_modifier == 4) + to_chat(M, "You feel the cells begin to merge with your body, unable to reach nucleation, they instead merge with your body, healing any wounds.") + M.adjustCloneLoss(-10, 0) //I don't want to make Rezadone obsolete. + M.adjustBruteLoss(-50, 0) + M.adjustFireLoss(-50, 0) + M.heal_bodypart_damage(1,1) + M.next_move_modifier = 1 + //Breast englargement /datum/reagent/fermi/BElarger diff --git a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm index 481c7925cf..37729ef21f 100644 --- a/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm +++ b/modular_citadel/code/modules/reagents/chemistry/recipes/fermi.dm @@ -40,7 +40,7 @@ CatalystFact = 0 // How much the catalyst affects the reaction (0 = no catalyst) CurveSharpT = 4 // How sharp the temperature exponential curve is (to the power of value) CurveSharppH = 2 // How sharp the pH exponential curve is (to the power of value) - ThermicConstant = 20 //Temperature change per 1u produced + ThermicConstant = +20 //Temperature change per 1u produced HIonRelease = 0.01 //pH change per 1u reaction RateUpLim = 5 //Optimal/max rate possible if all conditions are perfect FermiChem = TRUE//If the chemical uses the Fermichem reaction mechanics