Skip to content

Commit

Permalink
Bring T-rays back (#1792)
Browse files Browse the repository at this point in the history
<!-- Пишите **НИЖЕ** заголовков и **ВЫШЕ** комментариев, иначе что то
может пойти не так. -->
<!-- Вы можете прочитать Contributing.MD, если хотите узнать больше. -->

## Что этот PR делает
Отменяет действие [PR #1784
](#1784). Обновляет
описания T-ray сканеров. Изменяет стоимость исследования и производства
наиболее продвинутых вариантов. Удаляет неиспользуемый в игре хайриск
вариант. Балансирует уровни технологий, необходимые для создания
сканеров, и получаемые от их разбора.

<!-- Вкратце опишите изменения, которые вносите. -->
<!-- Опишите **все** изменения, так как противное может сказаться на
рассмотрении этого PR'а! -->
<!-- Если вы исправляете Issue, добавьте "Fixes #xxxx" (где xxxx - номер
Issue) где-нибудь в описании PR'а. Это автоматически закроет Issue после
принятия PR'а. -->

## Почему это хорошо для игры
T-ray сканеры - полезный инструмент для инженеров, у них интересная
ветка развития с постепенным улучшением характеристик. Наиболее
продвинутые варианты открываются при высоком уровне технологий, а их
производство требует ценных материалов. Убирается путь спидрана
технологий при помощи сканеров.

<!-- Опишите, почему, по вашему, следует добавить эти изменения в игру.
-->

## Изображения изменений
<!-- Если вы не меняли карту или спрайты, можете опустить эту секцию.
Если хотите, можете вставить видео. -->

## Тестирование
Запустил локальный сервер, заспавнил сканеры, посмотрел описания и
результат разбора в научном анализаторе.
<!-- Как вы тестировали свой PR, если делали это вовсе? -->

## Changelog

:cl:
add: T-ray сканеры добавлены обратно.
tweak: Сбалансированы уровни технологий, необходимые для создания
сканеров, и получаемые при помощи их разбора. Теперь поднять
максимальный уровень magnets при помощи последовательного разбора
сканеров не получится.
del: Неиспользуемый хайриск вариант сканера удален.
/:cl:

<!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы
можете написать свой ник справа от первого :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.
  • Loading branch information
MKardinal authored Feb 9, 2025
1 parent 6cf63c8 commit 7481879
Show file tree
Hide file tree
Showing 4 changed files with 132 additions and 1 deletion.
2 changes: 1 addition & 1 deletion code/game/objects/items/devices/scanners.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions modular_ss220/devices/_devices.dme
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#include "_devices.dm"

#include "code/items/scanners.dm"
#include "code/items/radio.dm"
#include "code/research_designs/equipment_designs.dm"
80 changes: 80 additions & 0 deletions modular_ss220/devices/code/items/scanners.dm
Original file line number Diff line number Diff line change
@@ -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;
49 changes: 49 additions & 0 deletions modular_ss220/devices/code/research_designs/equipment_designs.dm
Original file line number Diff line number Diff line change
@@ -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")

0 comments on commit 7481879

Please sign in to comment.