Shouldn't it be

>(!locked && !istype(usr, /mob/living/silicon))

as well?