diff --git a/code/game/machinery/computer/dna_console.dm b/code/game/machinery/computer/dna_console.dm index ae7773fb3dc..b35ac98e0fe 100644 --- a/code/game/machinery/computer/dna_console.dm +++ b/code/game/machinery/computer/dna_console.dm @@ -86,13 +86,18 @@ if(A.used) to_chat(user,"Recycled [I].") if(A.research) - var/c_typepath = generate_chromosome() - var/obj/item/chromosome/CM = new c_typepath (drop_location()) - to_chat(user,"Recycled [I].") - if((LAZYLEN(stored_chromosomes) < max_chromosomes) && prob(60)) - CM.forceMove(src) - stored_chromosomes += CM - to_chat(user,"[capitalize(CM.name)] added to storage.") + if(prob(60)) + var/c_typepath = generate_chromosome() + var/obj/item/chromosome/CM = new c_typepath (drop_location()) + if(LAZYLEN(stored_chromosomes) < max_chromosomes) + CM.forceMove(src) + stored_chromosomes += CM + to_chat(user,"[capitalize(CM.name)] added to storage.") + else + to_chat(user, "You cannot store any more chromosomes!") + to_chat(user, "[capitalize(CM.name)] added on top of the console.") + else + to_chat(user, "There was not enough genetic data to extract a viable chromosome.") qdel(I) return @@ -877,13 +882,13 @@ else to_chat(usr, "Not enough space to store potential mutation.") if("ejectchromosome") - if(LAZYLEN(stored_chromosomes) <= num) + if(LAZYLEN(stored_chromosomes) >= num) var/obj/item/chromosome/CM = stored_chromosomes[num] CM.forceMove(drop_location()) adjust_item_drop_location(CM) stored_chromosomes -= CM if("applychromosome") - if(viable_occupant && (LAZYLEN(viable_occupant.dna.mutations) <= num)) + if(viable_occupant && (LAZYLEN(viable_occupant.dna.mutations) >= num)) var/datum/mutation/human/HM = viable_occupant.dna.mutations[num] var/list/chromosomes = list() for(var/obj/item/chromosome/CM in stored_chromosomes) @@ -920,7 +925,7 @@ var/datum/mutation/human/HM = B if(HM.type == mutation) true_selection -= HM - break + break if("remove_advinjector") var/selection = href_list["injector"] diff --git a/code/game/objects/items/dna_injector.dm b/code/game/objects/items/dna_injector.dm index 24b28616401..e8ef0674f55 100644 --- a/code/game/objects/items/dna_injector.dm +++ b/code/game/objects/items/dna_injector.dm @@ -513,6 +513,7 @@ if(M.has_dna() && !HAS_TRAIT(M, TRAIT_RADIMMUNE) && !HAS_TRAIT(M, TRAIT_BADDNA)) M.radiation += rand(20/(damage_coeff ** 2),50/(damage_coeff ** 2)) var/log_msg = "[key_name(user)] injected [key_name(M)] with the [name]" + var/pref = "" for(var/mutation in add_mutations) var/datum/mutation/human/HM = mutation if(istype(HM, /datum/mutation/human)) @@ -522,13 +523,14 @@ log_msg += "(FAILED)" else M.dna.add_mutation(HM, MUT_EXTRA) - name = "expended [name]" + pref = "expended" else if(research && M.client) filled = TRUE - name = "filled [name]" + pref = "filled" else - name = "expended [name]" + pref = "expended" log_msg += "([mutation])" + name = "[pref] [name]" log_attack("[log_msg] [loc_name(user)]") return TRUE return FALSE