diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index 79b5df1991..9c188c4435 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -470,7 +470,7 @@ var/deltapH = 0 var/stepChemAmmount = 0 var/ammoReacted = 0 - + //get purity from combined beaker reactant purities. var/purity = 1 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 b299677c68..98577f1218 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/fermi_reagents.dm @@ -7,6 +7,18 @@ //And tips their hat //Naninte chem +/datum/reagent/fermi + name = "Fermi" + id = "fermi" + taste_description = "If a petpat had a taste, this would be it." + +/datum/reagent/fermi/on_mob_life(mob/living/carbon/M) + current_cycle++ + holder.remove_reagent(src.id, metabolization_rate / M.metabolism_efficiency) //fermi reagents stay longer if you have a better metabolism + +/datum/reagent/fermi/overdose_start(mob/living/carbon/M) + current_cycle++ + //eigenstate Chem //Teleports you to chemistry and back //OD teleports you randomly around the Station @@ -24,6 +36,7 @@ addiction_stage4_end = 55 //Incase it's too long var/turf/open/location_created = null var/turf/open/location_return = null + addictCyc3 = 1 ///obj/item/reagent/fermi/eigenstate/Initialize() @@ -50,16 +63,17 @@ ..() /datum/reagent/fermi/eigenstate/overdose_start(mob/living/M) //Overdose, makes you teleport randomly - if(10) - to_chat(M, "Oh god, you feel like your wavefunction is about to hurl.") - M.Jitter(10) + switch(current_cycle) + if(10) + to_chat(M, "Oh god, you feel like your wavefunction is about to hurl.") + M.Jitter(10) - if(15 to INFINITY) - do_sparks(5,FALSE,src) - do_teleport(src, get_turf(src), 50, asoundin = 'sound/effects/phasein.ogg') - do_sparks(5,FALSE,src) - M.reagents.remove_reagent("eigenstate",1)//So you're not stuck for 10 minutes teleporting - ..() + if(15 to INFINITY) + do_sparks(5,FALSE,src) + do_teleport(src, get_turf(src), 50, asoundin = 'sound/effects/phasein.ogg') + do_sparks(5,FALSE,src) + M.reagents.remove_reagent("eigenstate",1)//So you're not stuck for 10 minutes teleporting + ..() //..() //loop function @@ -86,26 +100,27 @@ to_chat(M, "Your eigenstate starts to rip apart, causing a localised collapsed field as you're ripped from alternative universes, trapped around the densisty of the eigenstate event horizon.") //Clone function - spawns a clone then deletes it - simulates multiple copies of the player teleporting in - if(1) - var/typepath = M.type - var/fermi_Tclone = new typepath(M.loc) - //var/mob/living/carbon/O = M - var/mob/living/carbon/C = fermi_Tclone - C.appearance = M.appearance + switch(src.addictCyc3) + if(1) + var/typepath = M.type + var/fermi_Tclone = new typepath(M.loc) + //var/mob/living/carbon/O = M + var/mob/living/carbon/C = fermi_Tclone + C.appearance = M.appearance - //Incase Kevin breaks my code: - //if(istype(C) && istype(O)) - // C.real_name = O.real_name - // O.dna.transfer_identity(C) - // C.updateappearance(mutcolor_update=1) + //Incase Kevin breaks my code: + //if(istype(C) && istype(O)) + // C.real_name = O.real_name + // O.dna.transfer_identity(C) + // C.updateappearance(mutcolor_update=1) - visible_message("[M] collapses in from an alternative reality!") - if(2) - do_teleport(C, get_turf(C), 3, no_effects=TRUE) //teleports clone so it's hard to find the real one! - if(3) - qdel(C) //Deletes CLONE, or at least I hope it is. - visible_message("[M] is snapped across to a different alternative reality!") - .=1 //counter + visible_message("[M] collapses in from an alternative reality!") + if(2) + do_teleport(C, get_turf(C), 3, no_effects=TRUE) //teleports clone so it's hard to find the real one! + if(3) + qdel(C) //Deletes CLONE, or at least I hope it is. + visible_message("[M] is snapped across to a different alternative reality!") + src.addictCyc3 = 1 //counter do_teleport(src, get_turf(src), 3, no_effects=TRUE) //Teleports player randomly ..() //loop function