mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
borg hat moment (#32351)
Signed-off-by: CRUNCH <143041327+CRUNCH-Borg@users.noreply.github.com>
This commit is contained in:
@@ -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 ..()
|
||||
|
||||
Reference in New Issue
Block a user