Skip to content

Commit

Permalink
Дрейкборги (CeladonSS13#535)
Browse files Browse the repository at this point in the history
* Дрейкборги: начало

* Дрейкборги: впаивание спрайтов и создание платы

* Дрейкборги: окончание работы

* Вот теперь точно окончание
  • Loading branch information
RalseiDreemuurr authored May 15, 2024
1 parent 746641e commit 5c4202c
Show file tree
Hide file tree
Showing 9 changed files with 471 additions and 0 deletions.
78 changes: 78 additions & 0 deletions mod_celadon/drakeborgs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@


#### Список PRов:

- https://github.com/MysticalFaceLesS/Shiptest/pull/535
<!--
Ссылки на PRы, связанные с модом:
- Создание
- Большие изменения
-->

<!-- Название мода. Не важно на русском или на английском. -->
## Мод-пример

ID мода: DRAKEBORGS
<!--
Название модпака прописными буквами, СОЕДИНЁННЫМИ_ПОДЧЁРКИВАНИЕМ,
которое ты будешь использовать для обозначения файлов.
-->

### Описание мода

Добавление моделек дрейкборгов и их модулей, плат для превращения в них обычных боргов, новое исследование в РнД, некоторые изменения обычных киборгов
<!--
Что он делает, что добавляет: что, куда, зачем и почему - всё здесь.
А также любая полезная информация.
-->

### Изменения *кор кода*

- Отсутствуют
<!--
Если вы редактировали какие-либо процедуры или переменные в кор коде,
они должны быть указаны здесь.
Нужно указать и файл, и процедуры/переменные.
Изменений нет - напиши "Отсутствуют"
-->

### Оверрайды

- Отсутствуют
<!--
Если ты добавлял новый модульный оверрайд, его нужно указать здесь.
Здесь указываются оверрайды в твоём моде и папке `_master_files`
Изменений нет - напиши "Отсутствуют"
-->

### Дефайны

- Отсутствуют
<!--
Если требовалось добавить какие-либо дефайны, укажи файлы,
в которые ты их добавил, а также перечисли имена.
И то же самое, если ты используешь дефайны, определённые другим модом.
Не используешь - напиши "Отсутствуют"
-->

### Используемые файлы, не содержащиеся в модпаке

- Отсутствуют
<!--
Будь то немодульный файл или модульный файл, который не содержится в папке,
принадлежащей этому конкретному моду, он должен быть упомянут здесь.
Хорошими примерами являются иконки или звуки, которые используются одновременно
несколькими модулями, или что-либо подобное.
-->

### Авторы:

Автор кода - RalseiDreemuurr, поставщик спрайтов - DarkSer
<!--
Здесь находится твой никнейм
Если работал совместно - никнеймы тех, кто помогал.
В случае порта чего-либо должна быть ссылка на источник.
-->
6 changes: 6 additions & 0 deletions mod_celadon/drakeborgs/_drakeborgs.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/datum/modpack/drakeborgs
name = "Дрейкборги"
desc = "Добавление платы для превращения обычных боргов в дрейкборгов"
author = "Автор кода - RalseiDreemuur, поставщик спрайтов - DarkSer"

///**********************************************************************///
10 changes: 10 additions & 0 deletions mod_celadon/drakeborgs/_drakeborgs.dme
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#ifndef MODPACK_CELADON_DRAKEBORGS
#define MODPACK_CELADON_DRAKEBORGS

#include "_drakeborgs.dm"

#include "code/newforrobots.dm"
#include "code/drake_modules.dm"
#include "code/rnd.dm"

#endif
146 changes: 146 additions & 0 deletions mod_celadon/drakeborgs/code/drake_modules.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
/obj/item/robot_module/drake
name = "Default"
icon = 'icons/obj/module.dmi'
icon_state = "std_mod"
w_class = WEIGHT_CLASS_GIGANTIC
item_state = "electronic"
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
flags_1 = CONDUCT_1
cyborg_icon_override = 'mod_celadon/drakeborgs/icons/drakeborg_vr-1.dmi'
hasrest = TRUE

/obj/item/robot_module/drake/medical
name = "Drake Medical"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
/obj/item/healthanalyzer,
/obj/item/reagent_containers/borghypo,
/obj/item/borg/apparatus/beaker,
/obj/item/reagent_containers/dropper,
/obj/item/reagent_containers/syringe,
/obj/item/retractor,
/obj/item/hemostat,
/obj/item/cautery,
/obj/item/surgicaldrill,
/obj/item/scalpel,
/obj/item/circular_saw,
/obj/item/extinguisher/mini,
/obj/item/roller/robo,
/obj/item/borg/cyborghug/medical,
/obj/item/stack/medical/gauze/cyborg,
/obj/item/organ_storage,
/obj/item/borg/lollipop)
emag_modules = list(/obj/item/reagent_containers/borghypo/hacked)
cyborg_base_icon = "drakemed"
moduleselect_icon = "medical"
can_be_pushed = FALSE
hat_offset = 3

/obj/item/robot_module/drake/engineering
name = "Drake Engineering"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
/obj/item/borg/sight/meson,
/obj/item/construction/rcd/borg,
/obj/item/pipe_dispenser,
/obj/item/extinguisher,
/obj/item/weldingtool/largetank/cyborg,
/obj/item/screwdriver/cyborg,
/obj/item/wrench/cyborg,
/obj/item/crowbar/cyborg,
/obj/item/wirecutters/cyborg,
/obj/item/multitool/cyborg,
/obj/item/t_scanner,
/obj/item/analyzer,
/obj/item/geiger_counter/cyborg,
/obj/item/assembly/signaler/cyborg,
/obj/item/areaeditor/shuttle/cyborg,
/obj/item/electroadaptive_pseudocircuit,
/obj/item/stack/sheet/metal/cyborg,
/obj/item/stack/sheet/glass/cyborg,
/obj/item/stack/sheet/rglass/cyborg,
/obj/item/stack/rods/cyborg,
/obj/item/stack/tile/plasteel/cyborg,
/obj/item/stack/cable_coil/cyborg)
emag_modules = list(/obj/item/borg/stun)
cyborg_base_icon = "drakeeng"
moduleselect_icon = "engineer"
magpulsing = TRUE
hat_offset = -4

/obj/item/robot_module/drake/security
name = "Drake Security"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
/obj/item/restraints/handcuffs/cable/zipties,
/obj/item/melee/baton/loaded,
/obj/item/gun/energy/disabler/cyborg,
/obj/item/clothing/mask/gas/sechailer/cyborg,
/obj/item/extinguisher/mini)
emag_modules = list(/obj/item/gun/energy/laser/cyborg)
cyborg_base_icon = "drakesec"
moduleselect_icon = "security"
can_be_pushed = FALSE
hat_offset = 3

/obj/item/robot_module/drake/peacekeeper
name = "Drake Peacekeeper"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
/obj/item/rsf/cookiesynth,
/obj/item/harmalarm,
/obj/item/reagent_containers/borghypo/peace,
/obj/item/holosign_creator/cyborg,
/obj/item/borg/cyborghug/peacekeeper,
/obj/item/extinguisher,
/obj/item/borg/projectile_dampen)
emag_modules = list(/obj/item/reagent_containers/borghypo/peace/hacked)
cyborg_base_icon = "drakepeace"
moduleselect_icon = "standard"
can_be_pushed = FALSE
hat_offset = -2

/obj/item/robot_module/drake/janitor
name = "Drake Janitor"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
/obj/item/screwdriver/cyborg,
/obj/item/crowbar/cyborg,
/obj/item/stack/tile/plasteel/cyborg,
/obj/item/soap/nanotrasen,
/obj/item/storage/bag/trash/cyborg,
/obj/item/melee/flyswatter,
/obj/item/extinguisher/mini,
/obj/item/mop/cyborg,
/obj/item/reagent_containers/glass/bucket,
/obj/item/paint/paint_remover,
/obj/item/lightreplacer/cyborg,
/obj/item/holosign_creator/janibarrier,
/obj/item/reagent_containers/spray/cyborg_drying)
emag_modules = list(/obj/item/reagent_containers/spray/cyborg_lube)
cyborg_base_icon = "drakejanit"
moduleselect_icon = "janitor"
hat_offset = -5
clean_on_move = TRUE

/obj/item/robot_module/drake/miner
name = "Drake Miner"
basic_modules = list(
/obj/item/assembly/flash/cyborg,
/obj/item/borg/sight/meson,
/obj/item/storage/bag/ore/cyborg,
/obj/item/pickaxe/drill/cyborg,
/obj/item/shovel,
/obj/item/crowbar/cyborg,
/obj/item/weldingtool/mini,
/obj/item/extinguisher/mini,
/obj/item/storage/bag/sheetsnatcher/borg,
/obj/item/gun/energy/kinetic_accelerator/cyborg,
/obj/item/gps/cyborg,
/obj/item/stack/marker_beacon)
emag_modules = list(/obj/item/borg/stun)
cyborg_base_icon = "drakemine"
moduleselect_icon = "miner"
hat_offset = 0
var/obj/item/t_scanner/adv_mining_scanner/cyborg/mining_scanner
78 changes: 78 additions & 0 deletions mod_celadon/drakeborgs/code/newforrobots.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
/mob/living/silicon/robot
var/sitting = 0
var/bellyup = 0
var/has_reststyle = TRUE

/obj/item/robot_module
var/hasrest = FALSE //For the new borgs

/mob/living/silicon/robot/verb/rest_style()
set name = "Switch Rest Style"
set category = "MMI"
set desc = "Select your resting pose."
sitting = 0
bellyup = 0

if(!has_reststyle)
to_chat(src, "<span class='warning'>Your module does not support it!</span>")
return

var/choice = alert(src, "Select resting pose", "", "Resting", "Sitting", "Belly up")
switch(choice)
if("Resting")
update_icons()
return 0
if("Sitting")
sitting = 1
if("Belly up")
bellyup = 1
update_icons()


/mob/living/silicon/robot/update_resting()
if(sitting)
ADD_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_FLOORED)
if(bellyup)
ADD_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_FLOORED)
if(resting)
ADD_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_FLOORED)
else if (!sitting && !bellyup && !resting)
REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_FLOORED)
return ..()

/mob/living/silicon/robot/update_icons()
. = ..()
if(client && stat != DEAD && (module.hasrest == TRUE))
if(body_position == LYING_DOWN)
if(sitting)
icon_state = "[module.cyborg_base_icon]-sit"
if(bellyup)
icon_state = "[module.cyborg_base_icon]-bellyup"
if(resting)
icon_state = "[module.cyborg_base_icon]-rest"
cut_overlays()
else if(body_position == 0)
icon_state = "[module.cyborg_base_icon]"
else
icon_state = "[module.cyborg_base_icon]"
if(stat == DEAD && module.hasrest == TRUE)
icon_state = "[module.cyborg_base_icon]-wreck"

/mob/living/silicon/robot/set_resting()
. = ..()
update_icons()

/mob/living/silicon/robot/get_up()
. = ..()
update_icons()

/mob/living/silicon/robot/on_standing_up()
. = ..()
update_icons()

/mob/living/silicon/death(gibbed)
diag_hud_set_status()
diag_hud_set_health()
update_health_hud()
ADD_TRAIT(src, TRAIT_IMMOBILIZED, TRAIT_FLOORED)
return ..()
Loading

0 comments on commit 5c4202c

Please sign in to comment.