Skip to content

Commit

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

## Что этот PR делает
За основу спрайтов был взят спрайт СБшной рации с рупары, были
портированы QOL изменения рации оттуда же (Альт-клик, Шифт-альт-клик)

Добавляет несколько новых раций:
1. Альтернативая - замена существующей зеленой рации, была перерисована
в заметные, жёлтые цвета.
2. СБшная
3. Синдикатовская
4. Специализированная - для ЕРТ, и так далее

## Почему это хорошо для игры
...

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

![image](https://github.com/ss220club/Paradise-SS220/assets/20109643/84b78500-30b7-45b1-bbe4-9863a2656f90)

## Тестирование
Проверял в игре

## Changelog

:cl:
add: 4 новые рации, улучшение удобства их использования
/:cl:

<!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы
можете написать свой ник справа от первого :cl:, если хотите. Иначе
будет использован ваш ник на ГитХабе. -->
<!-- Вы можете использовать несколько записей с одинаковым префиксом
(Они используются только для иконки в игре) и удалить ненужные. Помните,
что чейнджлог должен быть понятен обычным игроком. -->
<!-- Если чейнджлог не влияет на игроков(например, это рефактор), вы
можете исключить всю секцию. -->

---------

Co-authored-by: Furior <[email protected]>
  • Loading branch information
dj-34 and Furrior authored Sep 23, 2023
1 parent 8154f9c commit 0bb37b8
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 0 deletions.
1 change: 1 addition & 0 deletions modular_ss220/devices/_devices.dme
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
#include "_devices.dm"

#include "code/items/scanners.dm"
#include "code/items/radio.dm"
#include "code/research_designs/equipment_designs.dm"
65 changes: 65 additions & 0 deletions modular_ss220/devices/code/items/radio.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
// Just renaming
/obj/item/radio
name = "handheld radio"
desc = "A basic shortwave radio that can communicate with local telecommunication networks."

// I don't want to mess up icons, so I'll just make an "alternate" version
/obj/item/radio/alternative
name = "handheld radio"
desc = "A basic shortwave radio that can communicate with local telecommunication networks. This model is painted in contrasted, visible colors."
icon = 'modular_ss220/devices/icons/radio.dmi'
icon_state = "walkietalkie"

/obj/item/radio/security
name = "security handheld radio"
desc = "A basic shortwave radio that can communicate with local telecommunication networks on security frequency. This model is painted in black colors."
icon = 'modular_ss220/devices/icons/radio.dmi'
icon_state = "walkietalkie_sec"
frequency = SEC_FREQ

/obj/item/radio/tactical
name = "tactical handheld radio"
desc = "A tactical shortwave radio that used by some special forces. That can communicate with local telecommunication networks on allocated frequencies. This model is painted in gray camouflage."
icon = 'modular_ss220/devices/icons/radio.dmi'
icon_state = "walkietalkie_special"
frequency = DTH_FREQ

// DO NOT PLACE IT IN MAINT SPAWNERS, PLEASE
/obj/item/radio/syndicate
name = "suspecious handheld radio"
desc = "A suspecious shortwave radio. This model is painted in reddish colors, there is some numbers and letters on back of it."
icon = 'modular_ss220/devices/icons/radio.dmi'
icon_state = "walkietalkie_syndie"
frequency = SYNDTEAM_FREQ

/*
* Radio QoL improvement
* So players can Alt+click to enable dynamic and Ctrl+Shift+click to enable speaker
*/
/obj/item/radio/examine(mob/user)
. = ..()
if(in_range(src, user) || loc == user)
. += span_info("Alt-click on \the [name] to toggle broadcasting.")
. += span_info("Ctrl-Shift-click on \the [src] to toggle speaker.")

/obj/item/radio/AltClick(mob/user)
if(!Adjacent(user))
return
if(!iscarbon(usr) && !isrobot(usr))
return
if(!istype(user) || user.incapacitated())
to_chat(user, span_warning("You can't do that right now!"))
return
broadcasting = !broadcasting
to_chat(user, span_notice("You toggle broadcasting [broadcasting ? "on" : "off"]."))

/obj/item/radio/CtrlShiftClick(mob/user)
if(!Adjacent(user))
return
if(!iscarbon(usr) && !isrobot(usr))
return
if(!istype(user) || user.incapacitated())
to_chat(user, span_warning("You can't do that right now!"))
return
listening = !listening
to_chat(user, span_notice("You toggle speaker [listening ? "on" : "off"]."))
Binary file added modular_ss220/devices/icons/radio.dmi
Binary file not shown.

0 comments on commit 0bb37b8

Please sign in to comment.