diff --git a/modular_ss220/spy_spider/code/spy_spider.dm b/modular_ss220/spy_spider/code/spy_spider.dm
index 035004ede83f..effcfae87bfd 100644
--- a/modular_ss220/spy_spider/code/spy_spider.dm
+++ b/modular_ss220/spy_spider/code/spy_spider.dm
@@ -82,22 +82,29 @@
to_chat(user, span_info("Ты незаметно прикрепляешь жучок к [src]."))
return TRUE
-/obj/item/clothing/proc/remove_spy_spider()
- set name = "Снять жучок"
- set category = "Object"
- set src in range(1, usr)
-
- if(!ishuman(usr))
+/obj/item/clothing/proc/remove_spy_spider(cloth_uid, spider_uid)
+ if(!in_range(src, usr))
+ to_chat(usr, span_info("Тебе нужно подойти ближе, чтобы снять жучок с [src.declent_ru(GENITIVE)]."))
+ return
+ if(usr.stat || HAS_TRAIT(usr, TRAIT_HANDS_BLOCKED) || usr.restrained())
+ to_chat(usr, span_info("Тебе нужны свободные руки для этого"))
+ return
+ if(isnull(src.spy_spider_attached))
+ to_chat(usr, span_info("На [src.declent_ru(PREPOSITIONAL)] нет жучка."))
return
- var/mob/living/carbon/human/user = usr
- if(spy_spider_attached)
- if(!user.put_in_any_hand_if_possible(spy_spider_attached, del_on_fail = FALSE))
- var/turf/user_loc = get_turf(user)
- spy_spider_attached.forceMove(user_loc)
+ var/obj/item/I = locate(spider_uid)
+ if(do_after(usr, 3 SECONDS, needhand = TRUE, target = src))
+ if(usr.put_in_any_hand_if_possible(I))
+ usr.visible_message("[capitalize(usr.declent_ru(NOMINATIVE))] что-то снимает с [src.declent_ru(GENITIVE)] !", span_notice("Вы успешно снимаете жучок с [src.declent_ru(ACCUSATIVE)]."))
+ else
+ I.forceMove(get_turf(src))
+ usr.visible_message("[capitalize(usr.declent_ru(NOMINATIVE))] роняет шпионский жучок на пол.", span_notice("Вы роняете жучок на пол."))
spy_spider_attached = null
- verbs -= /obj/item/clothing/proc/remove_spy_spider
+/obj/item/clothing/Topic(href, href_list)
+ . = ..()
+ remove_spy_spider(href_list["src"], href_list["remove_spy_spider"])
/**
* HUMAN PART
@@ -107,7 +114,7 @@
return ..()
if(!(w_uniform || wear_suit))
- to_chat(user, span_warning("У тебя нет желания лезть к [src] в трусы. Жучок надо крепить на одежду!"))
+ to_chat(user, span_warning("У тебя нет желания лезть к [src.declent_ru(GENITIVE)] в трусы. Жучок надо крепить на одежду!"))
return TRUE
var/obj/item/radio/spy_spider/spy_spider = I
@@ -127,7 +134,7 @@
user.unEquip(spy_spider)
spy_spider.forceMove(clothing_for_attach)
clothing_for_attach.spy_spider_attached = spy_spider
- to_chat(user, span_info("Ты незаметно прикрепляешь жучок к одежде [src]."))
+ to_chat(user, span_info("Ты незаметно прикрепляешь жучок к одежде [src.declent_ru(ACCUSATIVE)]."))
return TRUE
/obj/item/clothing/suit/storage/attackby__legacy__attackchain(obj/item/W as obj, mob/user as mob, params)
@@ -138,19 +145,17 @@
// Spy spider detection
/obj/item/detective_scanner/scan(atom/A, mob/user)
. = ..()
- var/found_spy_device = FALSE
+
if(!scanning)
scanning = TRUE
- if(istype(A, /obj/item/clothing))
- var/obj/item/clothing/scanned_clothing = A
- if(scanned_clothing.spy_spider_attached)
- found_spy_device = TRUE
-
- if(found_spy_device)
- sleep(1 SECONDS)
- add_log(span_info("Найдено шпионское устройство!"))
- if(!(/obj/item/clothing/proc/remove_spy_spider in A.verbs))
- add_verb(A, /obj/item/clothing/proc/remove_spy_spider)
+ if(istype(A, /obj/item/clothing))
+ var/obj/item/clothing/scanned_clothing = A
+ usr.visible_message("[capitalize(usr.declent_ru(NOMINATIVE))] сканирует одежду на наличие шпиоского устройства.")
- scanning = FALSE
+ if(scanned_clothing.spy_spider_attached)
+ // Triger /obj/item/clothing/Topic
+ add_log(span_info("Найдено шпионское устройство!"))
+ else
+ usr.visible_message("Но ничего не находит")
+ scanning = FALSE