From 748187927115f1a3812ed1443f992796e3dacabb Mon Sep 17 00:00:00 2001 From: MKardinal <198214555+MKardinal@users.noreply.github.com> Date: Sun, 9 Feb 2025 15:03:00 +0100 Subject: [PATCH] Bring T-rays back (#1792) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Что этот PR делает Отменяет действие [PR #1784 ](https://github.com/ss220club/Paradise-SS220/pull/1784). Обновляет описания T-ray сканеров. Изменяет стоимость исследования и производства наиболее продвинутых вариантов. Удаляет неиспользуемый в игре хайриск вариант. Балансирует уровни технологий, необходимые для создания сканеров, и получаемые от их разбора. ## Почему это хорошо для игры T-ray сканеры - полезный инструмент для инженеров, у них интересная ветка развития с постепенным улучшением характеристик. Наиболее продвинутые варианты открываются при высоком уровне технологий, а их производство требует ценных материалов. Убирается путь спидрана технологий при помощи сканеров. ## Изображения изменений ## Тестирование Запустил локальный сервер, заспавнил сканеры, посмотрел описания и результат разбора в научном анализаторе. ## Changelog :cl: add: T-ray сканеры добавлены обратно. tweak: Сбалансированы уровни технологий, необходимые для создания сканеров, и получаемые при помощи их разбора. Теперь поднять максимальный уровень magnets при помощи последовательного разбора сканеров не получится. del: Неиспользуемый хайриск вариант сканера удален. /:cl: ## Summary by Sourcery Reintroduce T-ray scanners with updated descriptions and adjusted research and production costs for advanced versions. Remove the unused high-risk scanner variant. New Features: - Reintroduced T-ray scanners. Tests: - Tested T-ray scanners on a local server to verify descriptions and functionality. --- code/game/objects/items/devices/scanners.dm | 2 +- modular_ss220/devices/_devices.dme | 2 + modular_ss220/devices/code/items/scanners.dm | 80 +++++++++++++++++++ .../research_designs/equipment_designs.dm | 49 ++++++++++++ 4 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 modular_ss220/devices/code/items/scanners.dm create mode 100644 modular_ss220/devices/code/research_designs/equipment_designs.dm diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 8a81b1fe56ff..02b35fe0769c 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -14,7 +14,7 @@ SLIME SCANNER //////////////////////////////////////// /obj/item/t_scanner name = "\improper T-ray scanner" - desc = "A terahertz-ray emitter and scanner used to detect underfloor objects such as cables and pipes." + desc = "Излучатель и сканер терагерцового излучения, используемый для обнаружения скрытых инженерных коммуникаций под полом, таких как трубы и провода." icon = 'icons/obj/device.dmi' icon_state = "t-ray0" var/on = FALSE diff --git a/modular_ss220/devices/_devices.dme b/modular_ss220/devices/_devices.dme index aa69a82f75f1..c5209490a5bb 100644 --- a/modular_ss220/devices/_devices.dme +++ b/modular_ss220/devices/_devices.dme @@ -1,3 +1,5 @@ #include "_devices.dm" +#include "code/items/scanners.dm" #include "code/items/radio.dm" +#include "code/research_designs/equipment_designs.dm" diff --git a/modular_ss220/devices/code/items/scanners.dm b/modular_ss220/devices/code/items/scanners.dm new file mode 100644 index 000000000000..ea387609f6f1 --- /dev/null +++ b/modular_ss220/devices/code/items/scanners.dm @@ -0,0 +1,80 @@ +// debug +/obj/item/t_scanner/mod + name = "Модификация T-ray сканера" + desc = "Предмодифицированный сканер, который не должен был попасть в ваши руки. Отнесите его в ближайший научный отдел \ + \nдля изучения кодерами." + icon = 'modular_ss220/devices/icons/device.dmi' + icon_state = "t-ray0" + origin_tech = "magnets=3;engineering=3" + var/scan_range = 3 + var/pulse_duration = 8 + +/obj/item/t_scanner/mod/scan() + t_ray_scan(loc, pulse_duration, scan_range) + +// new scanners +/obj/item/t_scanner/mod/extended_range + name = "Расширенный T-ray сканер" + desc = "Расширенный T-ray сканер с увеличенной дальностью и стандартной продолжительностью отображения скрытых инженерных коммуникаций." + icon_state = "t-ray-range0" + scan_range = 5 + origin_tech = "magnets=3;engineering=3" + +/obj/item/t_scanner/mod/pulse + name = "Пульсовый T-ray сканер" + desc = "Пульсовый T-ray сканер с увеличенной длительностью и стандартной дальностью отображения скрытых инженерных коммуникаций." + icon_state = "t-ray-pulse0" + pulse_duration = 2 SECONDS + origin_tech = "magnets=3;engineering=3" + +/obj/item/t_scanner/mod/advanced + name = "Продвинутый T-ray сканер" + desc = "Продвинутый T-ray сканер с увеличенной длительностью и дальностью отображения скрытых инженерных коммуникаций." + icon_state = "t-ray-advanced0" + pulse_duration = 2 SECONDS + scan_range = 5 + origin_tech = "magnets=5;engineering=5" + +/obj/item/t_scanner/mod/science + name = "Научный T-ray сканер" + desc = "Научный T-ray сканер, дальнейшее развитие улучшенного T-ray сканера." + icon_state = "t-ray-science0" + scan_range = 7 + pulse_duration = 5 SECONDS + origin_tech = "magnets=6;engineering=6" + materials = list(MAT_METAL=500) + +/obj/item/t_scanner/mod/security + name = "Специализированный био T-ray сканер" + desc = "Специализированный вариант T-ray сканера, используемый для обнаружения биологических объектов. Устройство уязвимо для ЭМИ излучения." + icon = 'modular_ss220/devices/icons/device.dmi' + lefthand_file = 'modular_ss220/devices/icons/inhands/items_lefthand.dmi' + righthand_file = 'modular_ss220/devices/icons/inhands/items_righthand.dmi' + item_state = "sb_t-ray" + icon_state = "sb_t-ray0" + scan_range = 4 + pulse_duration = 15 + var/was_alerted = FALSE // Protection against spam alerts from this scanner + var/burnt = FALSE // Did emp break us? + var/datum/effect_system/spark_spread/spark_system //The spark system, used for generating... sparks? + origin_tech = "magnets=6;engineering=6;biotech=6" + +/obj/item/t_scanner/mod/security/Initialize(mapload) + . = ..() + //Sets up a spark system + spark_system = new /datum/effect_system/spark_spread + spark_system.set_up(5, 0, src) + spark_system.attach(src) + +/obj/item/t_scanner/mod/security/toggle_on() + if(!burnt) + on = !on + icon_state = copytext(icon_state, 1, length(icon_state))+"[on]" + if(on) + START_PROCESSING(SSobj, src) + +/obj/item/t_scanner/mod/security/emp_act(severity) + . = ..() + if(prob(25) && !burnt) + burnt = TRUE + on = FALSE; diff --git a/modular_ss220/devices/code/research_designs/equipment_designs.dm b/modular_ss220/devices/code/research_designs/equipment_designs.dm new file mode 100644 index 000000000000..056d5fb6a9a3 --- /dev/null +++ b/modular_ss220/devices/code/research_designs/equipment_designs.dm @@ -0,0 +1,49 @@ +/datum/design/tray_scanner_range + name = "Extended T-ray" + desc = "Расширенный T-ray сканер с увеличенной дальностью и стандартной продолжительностью отображения скрытых инженерных коммуникаций." + id = "tray_range" + req_tech = list("magnets" = 3, "programming" = 3, "engineering" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 500, MAT_DIAMOND = 200) + build_path = /obj/item/t_scanner/mod/extended_range + category = list("Equipment") + +/datum/design/tray_scanner_pulse + name = "Pulse T-ray" + desc = "Пульсовый T-ray сканер с увеличенной длительностью и стандартной дальностью отображения скрытых инженерных коммуникаций." + id = "tray_pulse" + req_tech = list("magnets" = 3, "programming" = 3, "engineering" = 3) + build_type = PROTOLATHE + materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 500, MAT_DIAMOND = 200) + build_path = /obj/item/t_scanner/mod/pulse + category = list("Equipment") + +/datum/design/tray_scanner_advanced + name = "Advanced T-ray" + desc = "Продвинутый T-ray сканер с увеличенной длительностью и дальностью отображения скрытых инженерных коммуникаций." + id = "tray_advanced" + req_tech = list("magnets" = 6, "programming" = 6, "engineering" = 6) + build_type = PROTOLATHE + materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_SILVER = 1000, MAT_DIAMOND = 500) + build_path = /obj/item/t_scanner/mod/advanced + category = list("Equipment") + +/datum/design/tray_scanner_science + name = "Science T-ray" + desc = "Научный T-ray сканер, дальнейшее развитие улучшенного T-ray сканнера." + id = "tray_science" + req_tech = list("magnets" = 7, "programming" = 7, "engineering" = 7) // вершина ветки развития сканнеров, сложно открыть + build_type = PROTOLATHE + materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_SILVER = 2000, MAT_DIAMOND = 1500) + build_path = /obj/item/t_scanner/mod/science + category = list("Equipment") + +/datum/design/sec_tray_scanner + name = "Security T-ray" + desc = "Специальный вариант T-ray сканера, используемый для обнаружения биологических объектов. Устройство уязвимо для ЭМИ излучения." + id = "sec_tray" + req_tech = list("magnets" = 7, "programming" = 7, "engineering" = 7, "biotech" = 7) // вариант научного сканнера с упором на биообъекты + build_type = PROTOLATHE + materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_SILVER = 2000, MAT_DIAMOND = 1500) + build_path = /obj/item/t_scanner/mod/security + category = list("Equipment")