From cdbc992e14896348eeb8cb17ce20df0e2db0632a Mon Sep 17 00:00:00 2001 From: SandPoot <43283559+SandPoot@users.noreply.github.com> Date: Sun, 5 Sep 2021 20:14:09 -0300 Subject: [PATCH] Adds an upgrade to engineering borgs (RSD) (#179) --- .../objects/items/robot/robot_upgrades.dm | 46 ++++++++++++++++--- .../designs/mechfabricator_designs.dm | 8 ++++ .../research/techweb/{ => nodes}/all_nodes.dm | 0 .../techweb/{ => nodes}/bluespace_nodes.dm | 14 ++++-- tgstation.dme | 6 +-- 5 files changed, 59 insertions(+), 15 deletions(-) rename modular_sand/code/modules/research/techweb/{ => nodes}/all_nodes.dm (100%) rename modular_sand/code/modules/research/techweb/{ => nodes}/bluespace_nodes.dm (94%) diff --git a/modular_sand/code/game/objects/items/robot/robot_upgrades.dm b/modular_sand/code/game/objects/items/robot/robot_upgrades.dm index 5c1c375608..f1b1fd2099 100644 --- a/modular_sand/code/game/objects/items/robot/robot_upgrades.dm +++ b/modular_sand/code/game/objects/items/robot/robot_upgrades.dm @@ -2,8 +2,9 @@ name = "engineering cyborg experimental welding tool" desc = "An experimental welding tool replacement for the engineering module's standard welding tool." icon_state = "cyborg_upgrade3" - require_module = 1 - module_type = BORG_MODULE_ENGINEERING + require_module = TRUE + module_type = list(/obj/item/robot_module/engineering) + module_flags = BORG_MODULE_ENGINEERING /obj/item/borg/upgrade/xwelding/action(mob/living/silicon/robot/R, user = usr) . = ..() @@ -38,7 +39,8 @@ desc = "An upgrade that allows cyborgs the ability to use plasma and assorted plasma products." icon_state = "cyborg_upgrade3" require_module = 1 - module_type = BORG_MODULE_ENGINEERING + module_type = list(/obj/item/robot_module/engineering) + module_flags = BORG_MODULE_ENGINEERING */ /* Shit doesnt work, do it later @@ -67,8 +69,9 @@ name = "engineering cyborg bluespace RPD" desc = "A bluespace RPD replacement for the engineering module's standard RPD." icon_state = "cyborg_upgrade3" - require_module = 1 - module_type = BORG_MODULE_ENGINEERING + require_module = TRUE + module_type = list(/obj/item/robot_module/engineering) + module_flags = BORG_MODULE_ENGINEERING /obj/item/borg/upgrade/bsrpd/action(mob/living/silicon/robot/R, user = usr) . = ..() @@ -102,8 +105,9 @@ name = "mining cyborg premium KA" desc = "A premium kinetic accelerator replacement for the mining module's standard kinetic accelerator." icon_state = "cyborg_upgrade3" - require_module = 1 - module_type = BORG_MODULE_MINER + require_module = TRUE + module_type = list(/obj/item/robot_module/miner) + module_flags = BORG_MODULE_MINER /obj/item/borg/upgrade/premiumka/action(mob/living/silicon/robot/R, user = usr) . = ..() @@ -216,3 +220,31 @@ /obj/item/borg/upgrade/transform/syndicatejack/action(mob/living/silicon/robot/R, user = usr) if(R.emagged) return ..() + +/obj/item/borg/upgrade/shuttlemaking + name = "engineering cyborg rapid shuttle designator" + desc = "A device used to define the area required for custom ships. Uses bluespace crystals to create bluespace-capable ships.\n\ + It appears to be a rough adaptation for cyborgs." + icon_state = "cyborg_upgrade5" + require_module = TRUE + module_type = list(/obj/item/robot_module/engineering) + module_flags = BORG_MODULE_ENGINEERING + +/obj/item/borg/upgrade/shuttlemaking/action(mob/living/silicon/robot/R, user = usr) + . = ..() + if(.) + var/obj/item/shuttle_creator/shuttle_maker = locate() in R + if(!shuttle_maker) + shuttle_maker = locate() in R.module + if(shuttle_maker) + to_chat(user, "This unit is already equipped with a rapid shuttle designator module.") + return FALSE + shuttle_maker = new(R.module) + R.module.basic_modules += shuttle_maker + R.module.add_module(shuttle_maker, FALSE, TRUE) + +/obj/item/borg/upgrade/shuttlemaking/deactivate(mob/living/silicon/robot/R, user = usr) + . = ..() + if (.) + for(var/obj/item/shuttle_creator/shuttle_maker in R.module) + R.module.remove_module(shuttle_maker, TRUE) diff --git a/modular_sand/code/modules/research/designs/mechfabricator_designs.dm b/modular_sand/code/modules/research/designs/mechfabricator_designs.dm index 1e78878e34..7fdac5f0e8 100644 --- a/modular_sand/code/modules/research/designs/mechfabricator_designs.dm +++ b/modular_sand/code/modules/research/designs/mechfabricator_designs.dm @@ -52,6 +52,14 @@ construction_time = 120 category = list("Cyborg Upgrade Modules") +/datum/design/borg_upgrade_shuttlemaking + name = "Cyborg Upgrade (Rapid Shuttle Designator)" + id = "borg_upgrade_shuttlemaking" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/shuttlemaking + materials = list(/datum/material/iron=6000, /datum/material/titanium=3750, /datum/material/bluespace=3750) //75% cost of the non-borg counterpart, balanced? i don't know + construction_time = 120 //Try to make it take longer just in case + category = list("Cyborg Upgrade Modules") ///Power Armor /datum/design/powerarmor_skeleton diff --git a/modular_sand/code/modules/research/techweb/all_nodes.dm b/modular_sand/code/modules/research/techweb/nodes/all_nodes.dm similarity index 100% rename from modular_sand/code/modules/research/techweb/all_nodes.dm rename to modular_sand/code/modules/research/techweb/nodes/all_nodes.dm diff --git a/modular_sand/code/modules/research/techweb/bluespace_nodes.dm b/modular_sand/code/modules/research/techweb/nodes/bluespace_nodes.dm similarity index 94% rename from modular_sand/code/modules/research/techweb/bluespace_nodes.dm rename to modular_sand/code/modules/research/techweb/nodes/bluespace_nodes.dm index 103fcb0f14..ce6986a8c0 100644 --- a/modular_sand/code/modules/research/techweb/bluespace_nodes.dm +++ b/modular_sand/code/modules/research/techweb/nodes/bluespace_nodes.dm @@ -1,8 +1,3 @@ -/datum/techweb_node/bluespace_portal/New() - design_ids += "borg_upgrade_bsrpd" - design_ids += "bsrpd" - . = ..() - /datum/techweb_node/cryptominer id = "cryptominer" display_name = "Cryptocurrency Mining" @@ -46,3 +41,12 @@ /datum/techweb_node/shuttle_route_upgrade_hyper/New() design_ids += "disk_shuttle_smoothsail" . = ..() + +/datum/techweb_node/bluespace_portal/New() + design_ids += "borg_upgrade_bsrpd" + design_ids += "bsrpd" + . = ..() + +/datum/techweb_node/basic_shuttle_tech/New() + design_ids += "borg_upgrade_shuttlemaking" + . = ..() diff --git a/tgstation.dme b/tgstation.dme index d00c79ed96..7432ba2c98 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -183,8 +183,8 @@ #include "code\__HELPERS\icon_smoothing.dm" #include "code\__HELPERS\icons.dm" #include "code\__HELPERS\level_traits.dm" -#include "code\__HELPERS\markov.dm" #include "code\__HELPERS\lighting.dm" +#include "code\__HELPERS\markov.dm" #include "code\__HELPERS\matrices.dm" #include "code\__HELPERS\mobs.dm" #include "code\__HELPERS\mouse_control.dm" @@ -4025,9 +4025,9 @@ #include "modular_sand\code\modules\research\designs\autolathe_designs\autolathe_designs_medical_and_dinnerware.dm" #include "modular_sand\code\modules\research\designs\machine_designs\machine_designs_all_misc.dm" #include "modular_sand\code\modules\research\nanites\nanite_programs\utility.dm" -#include "modular_sand\code\modules\research\techweb\all_nodes.dm" -#include "modular_sand\code\modules\research\techweb\bluespace_nodes.dm" #include "modular_sand\code\modules\research\techweb\nodes\alien_nodes.dm" +#include "modular_sand\code\modules\research\techweb\nodes\all_nodes.dm" +#include "modular_sand\code\modules\research\techweb\nodes\bluespace_nodes.dm" #include "modular_sand\code\modules\research\techweb\nodes\computer_hud_nodes.dm" #include "modular_sand\code\modules\research\techweb\nodes\robotics_nodes.dm" #include "modular_sand\code\modules\ruins\lavalandruin_code\doom.dm"