Skip to content

Commit

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

## Что этот PR делает

Частично портируем голобарьеры со старопары, но с небольшими
изменениями.
Юниты теперь устанавливают надувные стены, а голобарьер уходит в
пользование дронам.
Вот такой "порт" (даже беем повеяло).

Надувные барьеры потребляют заряд борга. 400/600

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

Юниты могут заниматься действительно большими дырами, например
последствиями взрыва СМ.
А дрончикам многого и не надо, они маленькие и барьер у них компактный +
не используют в личных корыстных целях.

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

**Картинка борга с надувными стенами**

## Тестирование
<!-- Как вы тестировали свой PR, если делали это вовсе? -->

Да

## Changelog

:cl:
add: Киборги получают надувные стены, потребляющие заряд 400/600
add: Дроны получили голобарьер
/:cl:

<!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы
можете написать свой ник справа от первого :cl:, если хотите. Иначе
будет использован ваш ник на ГитХабе. -->
<!-- Вы можете использовать несколько записей с одинаковым префиксом
(Они используются только для иконки в игре) и удалить ненужные. Помните,
что чейнджлог должен быть понятен обычным игроком. -->
<!-- Если чейнджлог не влияет на игроков(например, это рефактор), вы
можете исключить всю секцию. -->
  • Loading branch information
PhantornRU authored and BR54FF committed Oct 23, 2023
1 parent 111fdc1 commit b19b7e0
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 0 deletions.
1 change: 1 addition & 0 deletions modular_ss220/modular_ss220.dme
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
#include "unique_objects/_unique_objects.dme"
#include "vending/vending.dme"
#include "wire_splicing/wiresplicing.dme"
#include "silicons/_silicons.dme"

// --- MISC --- //
#include "administration/_administration.dme"
Expand Down
4 changes: 4 additions & 0 deletions modular_ss220/silicons/_silicons.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/datum/modpack/silicons
name = "Silicons Modpack"
desc = "Изменения для синтетиков."
author = "PhantomRU"
3 changes: 3 additions & 0 deletions modular_ss220/silicons/_silicons.dme
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#include "_silicons.dm"

#include "code/robot_modules.dm"
57 changes: 57 additions & 0 deletions modular_ss220/silicons/code/robot_modules.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/obj/item/robot_module/drone/Initialize(mapload)
. = ..()
basic_modules |= list(
/obj/item/holosign_creator/atmos,
)

/obj/item/robot_module/engineering/Initialize(mapload)
. = ..()
basic_modules |= list(
/obj/item/inflatable/cyborg,
/obj/item/inflatable/cyborg/door,
)


// надувные стены
/obj/item/inflatable/cyborg
name = "надувная стена"
desc = "Сложенная надувная стена, которая при активации быстро расширяется до большой кубической мембраны."
var/power_use = 400
var/structure_type = /obj/structure/inflatable

/obj/item/inflatable/cyborg/door
name = "надувной шлюз"
desc = "Сложенный надувной шлюз, который при активации быстро расширяется в простую дверь."
icon_state = "folded_door"
power_use = 600
structure_type = /obj/structure/inflatable/door

/obj/item/inflatable/cyborg/examine(mob/user)
. = ..()
. += span_notice("Как синтетик, вы можете восстановить их в <b>cyborg recharger</b>")

/obj/item/inflatable/cyborg/attack_self(mob/user)
if(locate(/obj/structure/inflatable) in get_turf(user))
to_chat(user, span_warning("Здесь уже есть надувная стена!"))
return FALSE

playsound(loc, 'sound/items/zip.ogg', 75, 1)
to_chat(user, span_notice("Вы надули [name]"))
var/obj/structure/inflatable/R = new structure_type(user.loc)
transfer_fingerprints_to(R)
R.add_fingerprint(user)
useResource(user)

/obj/item/inflatable/cyborg/proc/useResource(mob/user)
if(!isrobot(user))
return FALSE
var/mob/living/silicon/robot/R = user
if(R.cell.charge < power_use)
to_chat(user, span_warning("Недостаточно заряда!"))
return FALSE
return R.cell.use(power_use)

//Небольшой багфикс "непрозрачного открытого шлюза"
/obj/structure/inflatable/door/operate()
. = ..()
opacity = FALSE

0 comments on commit b19b7e0

Please sign in to comment.