Refactors Borg Grippers a Bit More, Adds Mining Gripper. Borgs Drop Items in Storage Modules if Gibbed. (#25511)

* Another gripper refactor

* Update code/modules/mob/living/silicon/robot/robot_modules.dm

Co-authored-by: Deniz <66401072+Oyu07@users.noreply.github.com>
Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>

* refactor extended description

* Update cyborg_gripper.dm

* Update cyborg_gripper.dm

* Update cyborg_gripper.dm

---------

Signed-off-by: CRUNCH <143041327+Fordoxia@users.noreply.github.com>
Co-authored-by: Deniz <66401072+Oyu07@users.noreply.github.com>
This commit is contained in:
CRUNCH
2024-06-12 18:58:10 +01:00
committed by GitHub
parent 8f2b24be32
commit 77d83ef1b9
2 changed files with 98 additions and 58 deletions
@@ -320,6 +320,7 @@
/obj/item/robot_module/proc/handle_custom_removal(component_id, mob/living/user, obj/item/W)
return FALSE
/// Overriden for specific modules if they have storage items. These should have their contents emptied out onto the floor.
/obj/item/robot_module/proc/handle_death(mob/living/silicon/robot/R, gibbed)
return
@@ -477,8 +478,11 @@
/obj/item/robot_module/engineering/handle_death(mob/living/silicon/robot/R, gibbed)
var/obj/item/gripper/engineering/G = locate(/obj/item/gripper/engineering) in modules
var/obj/item/storage/part_replacer/P = locate(/obj/item/storage/part_replacer) in modules
if(G)
G.drop_gripped_item(silent = TRUE)
if(istype(P))
P.drop_inventory(R)
// Security cyborg module.
/obj/item/robot_module/security
@@ -531,6 +535,11 @@
/obj/item/extinguisher/mini
)
/obj/item/robot_module/janitor/handle_death(mob/living/silicon/robot/R, gibbed)
var/obj/item/storage/bag/trash/T = locate(/obj/item/storage/bag/trash) in modules
if(istype(T))
T.drop_inventory(R)
/obj/item/robot_module/janitor/Initialize(mapload)
. = ..()
var/mob/living/silicon/robot/R = loc
@@ -623,8 +632,11 @@
/obj/item/robot_module/butler/handle_death(mob/living/silicon/robot/R, gibbed)
var/obj/item/gripper/service/G = locate(/obj/item/gripper/service) in modules
var/obj/item/storage/bag/tray/cyborg/T = locate(/obj/item/storage/bag/tray/cyborg) in modules
if(G)
G.drop_gripped_item(silent = TRUE)
if(istype(T))
T.drop_inventory(R)
// This is a special type of beer given when emagged, one sip and the target falls asleep.
/obj/item/reagent_containers/drinks/cans/beer/sleepy_beer
@@ -654,12 +666,6 @@
R.add_language("Neo-Russkiya", 1)
R.add_language("Tkachi", 1)
/obj/item/robot_module/butler/handle_death(mob/living/silicon/robot/R, gibbed)
var/obj/item/storage/bag/tray/cyborg/T = locate(/obj/item/storage/bag/tray/cyborg) in modules
if(istype(T))
T.drop_inventory(R)
/obj/item/robot_module/miner
name = "miner robot module"
module_type = "Miner"
@@ -676,12 +682,21 @@
/obj/item/extinguisher/mini,
/obj/item/t_scanner/adv_mining_scanner/cyborg,
/obj/item/gun/energy/kinetic_accelerator/cyborg,
/obj/item/gps/cyborg
/obj/item/gps/cyborg,
/obj/item/gripper/mining
)
emag_modules = list(/obj/item/pickaxe/drill/jackhammer)
malf_modules = list(/obj/item/gun/energy/kinetic_accelerator/cyborg/malf)
special_rechargables = list(/obj/item/extinguisher/mini, /obj/item/weldingtool/mini)
/obj/item/robot_module/miner/handle_death(mob/living/silicon/robot/R, gibbed)
var/obj/item/gripper/mining/G = locate(/obj/item/gripper/mining) in modules
var/obj/item/storage/bag/ore/B = locate(/obj/item/storage/bag/ore) in modules
if(G)
G.drop_gripped_item(silent = TRUE)
if(istype(B))
B.drop_inventory(R)
// This makes it so others can crowbar out KA upgrades from the miner borg.
/obj/item/robot_module/miner/handle_custom_removal(component_id, mob/living/user, obj/item/W)
if(component_id == "KA modkits")