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