diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 59c5736943..794499fa37 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -617,16 +617,7 @@ var/global/list/obj/item/device/pda/PDAs = list() ownrank = id.rank name = "PDA-[owner] ([ownjob])" if("Eject")//Ejects the cart, only done from hub. - if (!isnull(cartridge)) - var/turf/T = loc - if(ismob(T)) - T = T.loc - cartridge.loc = T - mode = 0 - scanmode = 0 - if (cartridge.radio) - cartridge.radio.hostpda = null - cartridge = null + verb_remove_cartridge() //MENU FUNCTIONS=================================== @@ -1120,6 +1111,30 @@ var/global/list/obj/item/device/pda/PDAs = list() else usr << "You cannot do this while restrained." +/obj/item/device/pda/verb/verb_remove_cartridge() + set category = "Object" + set name = "Remove cartridge" + set src in usr + + if(issilicon(usr)) + return + + if (can_use(usr) && !isnull(cartridge)) + var/turf/T = get_turf(src) + cartridge.loc = T + if (ismob(loc)) + var/mob/M = loc + M.put_in_hands(cartridge) + else + cartridge.loc = get_turf(src) + mode = 0 + scanmode = 0 + if (cartridge.radio) + cartridge.radio.hostpda = null + cartridge = null + usr << "You remove \the [cartridge] from the [name]." + else + usr << "You cannot do this while restrained." /obj/item/device/pda/proc/id_check(mob/user as mob, choice as num)//To check for IDs; 1 for in-pda use, 2 for out of pda use. if(choice == 1) diff --git a/html/changelogs/PsiOmegaDelta-PR-8898.yml b/html/changelogs/PsiOmegaDelta-PR-8898.yml new file mode 100644 index 0000000000..2d35c1aa71 --- /dev/null +++ b/html/changelogs/PsiOmegaDelta-PR-8898.yml @@ -0,0 +1,5 @@ +author: PsiOmegaDelta +delete-after: True + +changes: + - rscadd: "Makes it possible to eject PDA cartridges using a verb."