diff --git a/modular_ss220/modular_ss220.dme b/modular_ss220/modular_ss220.dme index c3bf96c79f69..df388894fcac 100644 --- a/modular_ss220/modular_ss220.dme +++ b/modular_ss220/modular_ss220.dme @@ -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" diff --git a/modular_ss220/silicons/_silicons.dm b/modular_ss220/silicons/_silicons.dm new file mode 100644 index 000000000000..1a7edaf2bfb5 --- /dev/null +++ b/modular_ss220/silicons/_silicons.dm @@ -0,0 +1,4 @@ +/datum/modpack/silicons + name = "Silicons Modpack" + desc = "Изменения для синтетиков." + author = "PhantomRU" diff --git a/modular_ss220/silicons/_silicons.dme b/modular_ss220/silicons/_silicons.dme new file mode 100644 index 000000000000..ed0d8dfee58c --- /dev/null +++ b/modular_ss220/silicons/_silicons.dme @@ -0,0 +1,3 @@ +#include "_silicons.dm" + +#include "code/robot_modules.dm" diff --git a/modular_ss220/silicons/code/robot_modules.dm b/modular_ss220/silicons/code/robot_modules.dm new file mode 100644 index 000000000000..8f89068a5c98 --- /dev/null +++ b/modular_ss220/silicons/code/robot_modules.dm @@ -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("Как синтетик, вы можете восстановить их в cyborg recharger") + +/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