[MIRROR] Adds some more engi borg modules and buffs the engi borg RPED [MDB IGNORE] (#25199)

* Adds some more engi borg modules and buffs the engi borg RPED (#79374)

- add Internal inducer: An inducer for engi borgs, it uses power from
there own cell to charge other devices
- Buff the RPED module to be onpar with BSRPED in storage(same
otherwise)
- Borg chargers now also draw from powernet like cells do

The RPED buff is more because the standard capacity for parts is really
low, this lets borgs use RPED more hassle free. They still need to
physicaly be next to the machine so its not an insane buff otherwise

* Adds some more engi borg modules and buffs the engi borg RPED

---------

Co-authored-by: Autisem <36102060+Autisem@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-11-23 03:24:14 +01:00
committed by GitHub
parent 3027169772
commit 5aff98201e
8 changed files with 60 additions and 8 deletions

View File

@@ -0,0 +1,4 @@
/// 3 differnt modes for the firefighter extinquisher
#define EXTINGUISHER 0
#define RESIN_LAUNCHER 1
#define RESIN_FOAM 2

View File

@@ -156,4 +156,7 @@
/obj/machinery/recharge_station/proc/process_occupant(seconds_per_tick)
if(!occupant)
return
SEND_SIGNAL(occupant, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, recharge_speed * seconds_per_tick / 2, repairs, sendmats)
var/main_draw = use_power_from_net(recharge_speed * seconds_per_tick, take_any = TRUE) //Pulls directly from the Powernet to dump into the cell
if(!main_draw)
return
SEND_SIGNAL(occupant, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, main_draw, repairs, sendmats)

View File

@@ -598,7 +598,6 @@
/obj/item/borg/upgrade/rped/action(mob/living/silicon/robot/R, user = usr)
. = ..()
if(.)
var/obj/item/storage/part_replacer/cyborg/RPED = locate() in R
if(RPED)
to_chat(user, span_warning("This unit is already equipped with a RPED module!"))
@@ -615,6 +614,38 @@
if (RPED)
R.model.remove_module(RPED, TRUE)
/obj/item/borg/upgrade/inducer
name = "engineering integrated power inducer"
desc = "An integrated inducer that can charge a device's internal cell from power provided by the cyborg."
require_model = TRUE
model_type = list(/obj/item/robot_model/engineering, /obj/item/robot_model/saboteur)
model_flags = BORG_MODEL_ENGINEERING
/obj/item/borg/upgrade/inducer/action(mob/living/silicon/robot/R, user = usr)
. = ..()
if(.)
var/obj/item/inducer/cyborg/inter_inducer = locate() in R
if(inter_inducer)
return FALSE
inter_inducer = new(R.model)
R.model.basic_modules += inter_inducer
R.model.add_module(inter_inducer, FALSE, TRUE)
inter_inducer.cell = R.cell
/obj/item/borg/upgrade/inducer/deactivate(mob/living/silicon/robot/R, user = usr)
. = ..()
if (.)
var/obj/item/inducer/cyborg/inter_inducer = locate() in R.model
if (inter_inducer)
R.model.remove_module(inter_inducer, TRUE)
inter_inducer.cell = null
/obj/item/inducer/cyborg
name = "Internal inducer"
powertransfer = 1500
icon = 'icons/obj/tools.dmi'
icon_state = "inducer-engi"
/obj/item/borg/upgrade/pinpointer
name = "medical cyborg crew pinpointer"
desc = "A crew pinpointer module for the medical cyborg. Permits remote access to the crew monitor."

View File

@@ -205,11 +205,6 @@
to_chat(user, span_notice("You [amount_per_transfer_from_this == 10 ? "remove" : "affix"] the nozzle. You'll now use [amount_per_transfer_from_this] units per spray."))
//ATMOS FIRE FIGHTING BACKPACK
#define EXTINGUISHER 0
#define RESIN_LAUNCHER 1
#define RESIN_FOAM 2
/obj/item/watertank/atmos
name = "backpack firefighter tank"
desc = "A refrigerated and pressurized backpack tank with extinguisher nozzle, intended to fight fires. Swaps between extinguisher, resin launcher and a smaller scale resin foamer."

View File

@@ -1581,6 +1581,17 @@
RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ENGINEERING
)
/datum/design/borg_upgrade_inducer
name = "Cyborg inducer"
id = "borg_upgrade_inducer"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/inducer
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2.5, /datum/material/silver = SHEET_MATERIAL_AMOUNT * 2)
construction_time = 120
category = list(
RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_ENGINEERING
)
/datum/design/borg_upgrade_circuit_app
name = "Circuit Manipulator"
id = "borg_upgrade_circuitapp"

View File

@@ -197,12 +197,18 @@ If you create T5+ please take a pass at mech_fabricator.dm. The parts being good
/obj/item/storage/part_replacer/cyborg //SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODULE
name = "rapid part exchange device"
desc = "Special mechanical module made to store, sort, and apply standard machine parts."
desc = "Special mechanical module made to store, sort, and apply standard machine parts. This one has an extra large compartment for more parts."
icon_state = "borgrped"
inhand_icon_state = "RPED"
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi'
/obj/item/storage/part_replacer/cyborg/Initialize(mapload)
. = ..()
atom_storage.max_slots = 400
atom_storage.max_total_storage = 800
atom_storage.max_specific_storage = WEIGHT_CLASS_GIGANTIC
/obj/item/storage/part_replacer/proc/get_sorted_parts(ignore_stacks = FALSE)
var/list/part_list = list()
//Assemble a list of current parts, then sort them by their rating!

View File

@@ -1017,6 +1017,7 @@
"borg_upgrade_lavaproof",
"borg_upgrade_rped",
"borg_upgrade_hypermod",
"borg_upgrade_inducer",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)

View File

@@ -154,6 +154,7 @@
#include "code\__DEFINES\movespeed_modification.dm"
#include "code\__DEFINES\multiz.dm"
#include "code\__DEFINES\nitrile.dm"
#include "code\__DEFINES\nozzle_define.dm"
#include "code\__DEFINES\nuclear_bomb.dm"
#include "code\__DEFINES\obj_flags.dm"
#include "code\__DEFINES\observers.dm"