-
Notifications
You must be signed in to change notification settings - Fork 127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix spy spider detection with detective scanner #1619
Fix spy spider detection with detective scanner #1619
Conversation
Там очень странный if(!scanning) в /obj/item/detective_scanner/scan(atom/A, mob/user). Я тестил и с ним и без него. Код работает в обоях случаях, но вдруг я чего-то не понимаю и он нужен. |
На будущее, куда тыкать, чтобы самому прикреплять ишью? Или права нужны? |
в теле PR'а писать Closes ссылка на пр |
fix[es]/resolve[s]/close[s] #номер_ишуе в описании ПРа |
Название ПРа на английском и внятное название коммитов. Если фикс, то в коммите должно быть это упомянуто чтобы лейблер правильно срабатывал. |
Если есть возможность, запиши видео работы сканнера с жучком, прикрепи в ПР |
Да, сейчас поправлю всё на что указали и запишу видео с тестом. |
Ну я вроде написал Fix, а бот всё равно убрал тэг, уууу глупая машина! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не лучшая реализация (точнее вообще не очень). Детективный анализатор сканирует на несколько тайлов, ты сканишь человека на расстоянии и находишь у него жучок который у тебя телепортируется в руку (а ты можешь даже не заметить).
Стоит сделать реализацию как это сделано с embed'ами (когда что-то острое вонзается в тело), то есть кликабельный текст "Найдено шпионское устройство!", при нажатии на которого через чек расстояния происходит снятие жучка в руку/на пол если рука занята.
Спасибо за обратную связь! Я мог бы наверное закрыть это костылём, а именно:
Но думаю лучше будет сделать как ты предлагаешь, а заодно посмотреть про verb.
Если такой вариант устроит, переделаю как будет время. |
Да. Не понимаю при чем тут верб, он тебе по сути не нужен. Касаемо полоски - do_after и do_after_once |
This pull request seems to be stale as there have been no changes in 14 days, please make changes within 7 days or the PR will be closed. If you believe this is a mistake, please inform a development team member on Discord. |
Забросил? |
Отложил в очень долгий ящик, но всё ещё в планах. |
https://github.com/user-attachments/assets/d4a5387a-e72b-43d1-a920-8272fe56f991
|
Если так, то окей. Смутил отступ, положение и стилизация текста. Может я забыл как оно в оригинале выглядит. |
Мне тоже не очень стиль нравится, Отступ там через /t, могу его убрать, если надо? А вот как менять шрифт, цвет текста и т.д. я уже не знаю. Тогда просто убираю /t, исправляю очепятки и готово? |
https://github.com/user-attachments/assets/e35c9475-ab3b-47f2-8a22-e95484e55ca1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Времени и желания смотреть код нет, по самой реализации - апрув (Если оно было сделано как обговорено).
@m-dzianishchyts, Максим, я понимаю это было давно, но вроде бы всё о чём мы говорили я сделал. Протестировал, у меня ничего не крашнулась, не дюпнулось. Можете на доверичах мержить. |
@m-dzianishchyts Ну что мержим? notice я добавил. |
Все еще используется sleep() вместо do_after() и не совсем там. Зачем резолвить обсуждение, если не сделано? |
Почему резольвнул? Потому что было у нас с тобой похоже обсуждение, в котором ты написал, что логика правильная, ну и подумал, что к этому этот комментарий, тоже относится. Сделать мне не сложно, но тогда при сканирование любой одежды будет do_after? Может вообще стоит убрать sleep т.к. задержка через sleep и так есть в родительском методе? Как я понимаю тут основной посыл - сделать так, чтобы этими действиями не спамили? |
@sourcery-ai review |
Reviewer's Guide by SourceryThis PR fixes a bug where spy spiders were not being detached when scanned by a detective scanner. The fix changes the way spy spider removal is handled. Instead of a verb, it now uses a topic link that is added when the detective scanner detects a spy spider. This topic link triggers the remove_spy_spider proc on the clothing item, which removes the spy spider and places it in the user's hand. Sequence diagram for spy spider detection and removal processsequenceDiagram
actor User
participant Scanner as Detective Scanner
participant Clothing
participant SpySpider
User->>Scanner: Use scanner on clothing
Scanner->>Clothing: scan()
alt Spy spider found
Scanner-->>User: Show 'Spy device found!' link
User->>Clothing: Click removal link
Clothing->>SpySpider: remove_spy_spider()
alt Successfully put in hand
SpySpider->>User: Move to user's hand
else Hand full
SpySpider->>Clothing: Drop to floor
end
else No spy spider
Scanner-->>User: Show 'Nothing found' message
end
Class diagram for spy spider and clothing interactionclassDiagram
class Clothing {
+obj/item/radio/spy_spider spy_spider_attached
+remove_spy_spider(cloth_uid, spider_uid)
+Topic(href, href_list)
}
class DetectiveScanner {
-bool scanning
+scan(atom/A, mob/user)
+add_log(message)
}
class SpySpider {
+forceMove(target)
}
Clothing "1" -- "0..1" SpySpider : has
DetectiveScanner ..> Clothing : scans
note for Clothing "Modified to use Topic-based
removal instead of verbs"
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @Drsmail - I've reviewed your changes and they look great!
Here's what I looked at during the review
- 🟢 General issues: all looks good
- 🟢 Security: all looks good
- 🟢 Testing: all looks good
- 🟢 Complexity: all looks good
- 🟢 Documentation: all looks good
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
@m-dzianishchyts Машина сказала, что я молодец! А если серьёзно, то всё готово. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Валидити
Что этот PR делает
Фиксит баг с жучком, который не открепляется при скане.
Почему это хорошо для игры
Баги - это плохо.
Тестирование
https://github.com/user-attachments/assets/dbb862a8-a496-4197-a92b-66f5d7d39e02
Прикрепил жучок, просканировал вещь, получил жучок обратно в руку.
Changelog
🆑
fix: Шпионские жучки снова можно снимать, просканировав детективным сканером одежду, на которой он закреплён.
/:cl:
Summary by Sourcery
Allow removing spy bugs from clothing via detective scanner.
Bug Fixes:
Enhancements: