diff --git a/code/modules/mob/living/basic/lavaland/raptor/raptor_dex.dm b/code/modules/mob/living/basic/lavaland/raptor/raptor_dex.dm index 93191bd7838..60a3d83141b 100644 --- a/code/modules/mob/living/basic/lavaland/raptor/raptor_dex.dm +++ b/code/modules/mob/living/basic/lavaland/raptor/raptor_dex.dm @@ -7,6 +7,10 @@ /// Raptor scan data we have stored var/list/scan_data = list("raptor_scan" = FALSE) +/obj/item/raptor_dex/Initialize(mapload) + . = ..() + register_item_context() + /obj/item/raptor_dex/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) @@ -61,6 +65,12 @@ scan_data["inherited_traits"] += GLOB.raptor_inherit_traits[index] playsound(src, 'sound/mobs/non-humanoids/orbie/orbie_send_out.ogg', 20) - balloon_alert(my_raptor, "scanned") + my_raptor.balloon_alert(user, "scanned") ui_interact(user) return ITEM_INTERACT_SUCCESS + +/obj/item/raptor_dex/add_item_context(obj/item/source, list/context, atom/target, mob/living/user) + if(!istype(target, /mob/living/basic/raptor)) + return NONE + context[SCREENTIP_CONTEXT_LMB] = "Scan Raptor" + return CONTEXTUAL_SCREENTIP_SET diff --git a/code/modules/modular_computers/file_system/programs/raptordex.dm b/code/modules/modular_computers/file_system/programs/raptordex.dm index 36c5d722a59..e040d037398 100644 --- a/code/modules/modular_computers/file_system/programs/raptordex.dm +++ b/code/modules/modular_computers/file_system/programs/raptordex.dm @@ -61,3 +61,22 @@ /datum/computer_file/program/raptordex/ui_data(mob/user) return scan_data + +/datum/computer_file/program/raptordex/on_made_active_program(mob/user) + RegisterSignal(computer, COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET, PROC_REF(add_item_context)) + computer.item_flags |= ITEM_HAS_CONTEXTUAL_SCREENTIPS + +/datum/computer_file/program/raptordex/background_program(mob/user) + . = ..() + UnregisterSignal(computer, COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET) + +/datum/computer_file/program/raptordex/kill_program(mob/user) + . = ..() + UnregisterSignal(computer, COMSIG_ITEM_REQUESTING_CONTEXT_FOR_TARGET) + +/datum/computer_file/program/raptordex/proc/add_item_context(obj/item/source, list/context, atom/target, mob/living/user) + SIGNAL_HANDLER + if(!istype(target, /mob/living/basic/raptor)) + return NONE + context[SCREENTIP_CONTEXT_RMB] = "Scan Raptor" + return CONTEXTUAL_SCREENTIP_SET