borg hat moment (#32351)

Signed-off-by: CRUNCH <143041327+CRUNCH-Borg@users.noreply.github.com>
This commit is contained in:
CRUNCH
2026-08-12 23:26:02 +00:00
committed by GitHub
parent e46fdac5cd
commit 1d7ed1ebe9
3 changed files with 58 additions and 95 deletions
@@ -247,6 +247,11 @@
/obj/item/robot_module/proc/update_cells(unlink_cell = FALSE)
return
/obj/item/robot_module/emag_act(mob/user)
for(var/obj/item/gripper/G in modules)
G.emag_act()
return ..()
/**
* Called when the robot owner of this module has the `unemag()` proc called on them, which is only via admin means.
*
@@ -254,6 +259,8 @@
*/
/obj/item/robot_module/unemag()
. = ..()
for(var/obj/item/gripper/G in modules)
G.emag_act()
for(var/item in emag_modules)
var/obj/item/old_item = item
var/obj/item/new_item = new old_item.type(src)
@@ -320,7 +327,9 @@
/// 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
var/obj/item/gripper/G = locate(/obj/item/gripper) in modules
if(G)
G.drop_gripped_item(silent = TRUE)
// MARK: Robot Modules
// Medical
@@ -362,29 +371,18 @@
/obj/item/gun/syringemalf
)
/obj/item/robot_module/medical/handle_death(mob/living/silicon/robot/R, gibbed)
var/obj/item/gripper/medical/G = locate(/obj/item/gripper/medical) in modules
if(G)
G.drop_gripped_item(silent = TRUE)
// Emag the robot's equipment.
/obj/item/robot_module/medical/emag_act(mob/user)
. = ..()
for(var/obj/item/borg_defib/F in modules)
F.emag_act()
for(var/obj/item/reagent_containers/borghypo/F in modules)
F.emag_act()
for(var/obj/item/gripper/F in modules)
F.emag_act()
return ..()
// Remove the emagging on the robot's equipment.
/obj/item/robot_module/medical/unemag()
for(var/obj/item/borg_defib/F in modules)
F.emag_act()
for(var/obj/item/reagent_containers/borghypo/F in modules)
F.emag_act()
for(var/obj/item/gripper/F in modules)
F.emag_act()
return ..()
/// Malf Syringe Gun
@@ -482,23 +480,11 @@
special_rechargables = list(/obj/item/extinguisher, /obj/item/extinguisher/mini/cyborg, /obj/item/weldingtool/largetank/cyborg, /obj/item/gun/energy/emitter/cyborg)
/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)
/obj/item/robot_module/engineering/emag_act(mob/user)
. = ..()
for(var/obj/item/gripper/F in modules)
F.emag_act()
/obj/item/robot_module/engineering/unemag()
for(var/obj/item/gripper/F in modules)
F.emag_act()
return ..()
// Security
/obj/item/robot_module/security
name = "security robot module"
@@ -540,6 +526,7 @@
/obj/item/borg/push_broom,
/obj/item/melee/flyswatter,
/obj/item/extinguisher/mini/cyborg,
/obj/item/gripper/janitor,
)
emag_override_modules = list(/obj/item/reagent_containers/spray/cyborg_lube)
emag_modules = list(/obj/item/reagent_containers/spray/cyborg_facid, /obj/item/borg/push_broom/combat)
@@ -552,6 +539,7 @@
)
/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)
@@ -623,23 +611,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)
/obj/item/robot_module/butler/emag_act(mob/user)
. = ..()
for(var/obj/item/gripper/F in modules)
F.emag_act()
/obj/item/robot_module/butler/unemag()
for(var/obj/item/gripper/F in modules)
F.emag_act()
return ..()
// This is a special type of beer given when emagged, one sip and the target falls asleep.
/obj/item/reagent_containers/drinks/bottle/beer/sleepy_beer
name = "Mickey Finn's Special Brew"
@@ -695,23 +671,11 @@
special_rechargables = list(/obj/item/extinguisher/mini/cyborg, /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)
/obj/item/robot_module/miner/emag_act(mob/user)
. = ..()
for(var/obj/item/gripper/F in modules)
F.emag_act()
/obj/item/robot_module/miner/unemag()
for(var/obj/item/gripper/F in modules)
F.emag_act()
return ..()
// 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")
@@ -731,6 +695,7 @@
/obj/item/melee/energy/alien/claws,
/obj/item/flash/cyborg/alien,
/obj/item/reagent_containers/spray/alien/smoke,
/obj/item/gripper/security,
)
emag_override_modules = list(/obj/item/reagent_containers/spray/alien/acid)
special_rechargables = list(
@@ -778,21 +743,6 @@
/obj/item/lightreplacer/cyborg
)
/obj/item/robot_module/drone/handle_death(mob/living/silicon/robot/R, gibbed)
var/obj/item/gripper/engineering/G = locate(/obj/item/gripper/engineering) in modules
if(G)
G.drop_gripped_item(silent = TRUE)
/obj/item/robot_module/drone/emag_act(mob/user)
. = ..()
for(var/obj/item/gripper/F in modules)
F.emag_act()
/obj/item/robot_module/drone/unemag()
for(var/obj/item/gripper/F in modules)
F.emag_act()
return ..()
// Sydicate Assault cyborg module.
/obj/item/robot_module/syndicate
name = "syndicate assault robot module"
@@ -805,6 +755,7 @@
/obj/item/card/emag,
/obj/item/crowbar/cyborg/red,
/obj/item/pinpointer/operative,
/obj/item/gripper/security,
)
// Sydicate Medical cyborg module.
@@ -841,16 +792,6 @@
)
special_rechargables = list(/obj/item/extinguisher/mini)
/obj/item/robot_module/syndicate_medical/emag_act(mob/user)
. = ..()
for(var/obj/item/gripper/F in modules)
F.emag_act()
/obj/item/robot_module/syndicate_medical/unemag()
for(var/obj/item/gripper/F in modules)
F.emag_act()
return ..()
// Sydicate Sabotuer/Engineering cyborg module.
/obj/item/robot_module/syndicate_saboteur
name = "saboteur robot module" // Disguises are handled in the actual cyborg projector
@@ -882,16 +823,6 @@
)
special_rechargables = list(/obj/item/extinguisher, /obj/item/weldingtool/largetank/cyborg)
/obj/item/robot_module/syndicate_saboteur/emag_act(mob/user)
. = ..()
for(var/obj/item/gripper/F in modules)
F.emag_act()
/obj/item/robot_module/syndicate_saboteur/unemag()
for(var/obj/item/gripper/F in modules)
F.emag_act()
return ..()
// Gamma security module.
/obj/item/robot_module/combat
name = "combat robot module"
@@ -908,7 +839,8 @@
/obj/item/melee/baton/loaded, // secondary weapon, for things immune to burn, immune to ranged weapons, or for arresting low-grade threats
/obj/item/restraints/handcuffs/cable/zipties/cyborg,
/obj/item/pickaxe/drill/jackhammer, // for breaking walls to execute flanking moves
/obj/item/extinguisher/mini/cyborg // for friendly fire from their immolator gun.
/obj/item/extinguisher/mini/cyborg, // for friendly fire from their immolator gun.
/obj/item/gripper/security,
)
special_rechargables = list(
/obj/item/melee/baton/loaded,
@@ -928,7 +860,8 @@
/obj/item/melee/baton/loaded, // secondary weapon, for things immune to burn, immune to ranged weapons, or for arresting low-grade threats
/obj/item/restraints/handcuffs/cable/zipties/cyborg,
/obj/item/pickaxe/drill/jackhammer, // for breaking walls to execute flanking moves
/obj/item/borg/destroyer/mobility
/obj/item/borg/destroyer/mobility,
/obj/item/gripper/security,
)
special_rechargables = list(
/obj/item/melee/baton/loaded,
@@ -945,6 +878,7 @@
/obj/item/melee/energy/sword/cyborg,
/obj/item/gun/energy/pulse/cyborg,
/obj/item/crowbar/cyborg/red,
/obj/item/gripper, // They're supposed to be ushering in the end of the round. No such thing as OP.
)
special_rechargables = list(/obj/item/gun/energy/pulse/cyborg)
@@ -295,9 +295,9 @@
return 2
/mob/living/silicon/item_interaction(mob/living/user, obj/item/I, list/modifiers)
if(istype(I, /obj/item/clothing/head) && user.a_intent == INTENT_HELP)
place_on_head(user.get_active_hand(), user)
/mob/living/silicon/item_interaction(mob/living/user, obj/item/used, list/modifiers)
if(istype(used, /obj/item/clothing/head) && user.a_intent == INTENT_HELP)
place_on_head(used, user)
return ITEM_INTERACT_COMPLETE
return ..()