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