Skip to content

Commit

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

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

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

## Изображения изменений

![image](https://github.com/ss220club/Paradise-SS220/assets/144079671/45717236-5b07-49c4-a4b6-31dd242b522d)


## Тестирование
<!-- Как вы тестировали свой PR, если делали это вовсе? -->
Проверил ключики. Имеют доступ куда надо.
## Changelog

:cl:
add: Теперь у ГП есть ключи для отделов.
/:cl:

<!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы
можете написать свой ник справа от первого :cl:, если хотите. Иначе
будет использован ваш ник на ГитХабе. -->
<!-- Вы можете использовать несколько записей с одинаковым префиксом
(Они используются только для иконки в игре) и удалить ненужные. Помните,
что чейнджлог должен быть понятен обычным игроком. -->
<!-- Если чейнджлог не влияет на игроков(например, это рефактор), вы
можете исключить всю секцию. -->
  • Loading branch information
Kar4es authored Nov 20, 2023
1 parent 034aeca commit e196702
Show file tree
Hide file tree
Showing 4 changed files with 113 additions and 0 deletions.
3 changes: 3 additions & 0 deletions _maps/map_files220/delta/delta.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -68204,6 +68204,9 @@
/obj/item/folder/blue,
/obj/item/pen/multi,
/obj/item/lighter/zippo/hop,
/obj/item/storage/box/keys{
pixel_x = -15
},
/turf/simulated/floor/wood/oak,
/area/station/command/office/hop)
"lEt" = (
Expand Down
1 change: 1 addition & 0 deletions modular_ss220/objects/_objects.dme
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@
#include "code/posters.dm"
#include "code/tribune.dm"
#include "code/weapons.dm"
#include "code/key.dm"
109 changes: 109 additions & 0 deletions modular_ss220/objects/code/key.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@

/obj/item/door_remote/key
desc = "Обычный немного ржавый ключ."
icon = 'modular_ss220/objects/icons/key.dmi'
icon_state = "key"
/// Are you already using the key?
var/busy = FALSE
/// How fast does the key open an airlock.
var/hack_speed = 1 SECONDS

/obj/item/door_remote/key/attack_self(mob/user)
return

/obj/item/door_remote/key/afterattack(obj/machinery/door/airlock/attacked_airlock, mob/user, proximity)
if(!proximity)
return

if(!istype(attacked_airlock))
return

if(HAS_TRAIT(attacked_airlock, TRAIT_CMAGGED))
to_chat(user, span_danger("[src] не вставляется в панель доступа [attacked_airlock], тут повсюду слизь!"))
return

if(attacked_airlock.is_special)
to_chat(user, span_danger("[src] не помещается в панель доступа [attacked_airlock]!"))
return

if(!attacked_airlock.arePowerSystemsOn())
to_chat(user, span_danger("[attacked_airlock] без питания!"))
return

if(busy)
to_chat(user, span_warning("Ты уже используешь [src] на панели доступа [attacked_airlock]!"))
return

playsound(src, 'sound/items/keyring_unlock.ogg', 50)
attacked_airlock.add_fingerprint(user)

busy = TRUE
if(!do_after(user, hack_speed, target = attacked_airlock, progress = 1))
busy = FALSE
return
busy = FALSE

if(!attacked_airlock.check_access(ID))
to_chat(user, span_danger("[src] похоже не подходит к панели доступа [attacked_airlock]!"))
return

if(!attacked_airlock.density)
attacked_airlock.close()
return
attacked_airlock.open()

/obj/item/door_remote/key/engineer
name = "\proper ключ от инженерного отдела"
icon_state = "eng"
additional_access = list(ACCESS_ENGINE,ACCESS_CONSTRUCTION)

/obj/item/door_remote/key/medical
name = "\proper ключ от медицинского отдела"
icon_state = "med"
additional_access = list(ACCESS_MEDICAL)

/obj/item/door_remote/key/supply
name = "\proper ключ от отдела снабжения"
icon_state = "supply"
additional_access = list(ACCESS_CARGO, ACCESS_MINING)

/obj/item/door_remote/key/rnd
name = "\proper ключ от отдела исследований"
icon_state = "rnd"
additional_access = list(ACCESS_RESEARCH)

/obj/item/door_remote/key/sec
name = "\proper ключ от отдела службы безопасности"
icon_state = "sec"
additional_access = list(ACCESS_SEC_DOORS)

/obj/item/door_remote/key/service
name = "\proper ключ от отдела сервиса"
icon_state = "service"
additional_access = list(ACCESS_KITCHEN, ACCESS_BAR, ACCESS_HYDROPONICS, ACCESS_JANITOR)

/obj/item/door_remote/key/command
name = "\proper ключ командования"
icon_state = "com"
additional_access = list(ACCESS_HEADS)

/obj/item/storage/box/keys
name = "коробка с ключами"
desc = "Коробка с ключами к отделам. Имеют неполный доступ к шлюзам."

/obj/item/storage/box/keys/populate_contents()
new /obj/item/door_remote/key/sec(src)
new /obj/item/door_remote/key/sec(src)
new /obj/item/door_remote/key/supply(src)
new /obj/item/door_remote/key/supply(src)
new /obj/item/door_remote/key/service(src)
new /obj/item/door_remote/key/service(src)
new /obj/item/door_remote/key/engineer(src)
new /obj/item/door_remote/key/engineer(src)
new /obj/item/door_remote/key/rnd(src)
new /obj/item/door_remote/key/rnd(src)
new /obj/item/door_remote/key/command(src)
new /obj/item/door_remote/key/command(src)
new /obj/item/door_remote/key/medical(src)
new /obj/item/door_remote/key/medical(src)

Binary file added modular_ss220/objects/icons/key.dmi
Binary file not shown.

0 comments on commit e196702

Please sign in to comment.