diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index eae6edd3bd4..2f9cc98f164 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -118,17 +118,15 @@ if(usr.incapacitated()) return - - eject_occupant() - + eject_occupant(usr) add_fingerprint(usr) /obj/machinery/dna_scannernew/Destroy() - eject_occupant() + eject_occupant(null, TRUE) return ..() -/obj/machinery/dna_scannernew/proc/eject_occupant() - go_out() +/obj/machinery/dna_scannernew/proc/eject_occupant(user, force) + go_out(user, force) for(var/obj/O in src) if(!istype(O,/obj/item/circuitboard/clonescanner) && \ !istype(O,/obj/item/stock_parts) && \ @@ -271,15 +269,15 @@ occupant.notify_ghost_cloning(source = src) -/obj/machinery/dna_scannernew/proc/go_out() +/obj/machinery/dna_scannernew/proc/go_out(mob/user, force) if(!occupant) - to_chat(usr, "The scanner is empty!") + if(user) + to_chat(user, "The scanner is empty!") return - - if(locked) - to_chat(usr, "The scanner is locked!") + if(locked && !force) + if(user) + to_chat(user, "The scanner is locked!") return - occupant.forceMove(loc) occupant = null icon_state = "scanner_open" @@ -751,7 +749,7 @@ return TRUE if(href_list["ejectOccupant"]) - connected.eject_occupant() + connected.eject_occupant(usr) return TRUE // Transfer Buffer Management