mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 21:48:21 +01:00
borg hat moment (#32351)
Signed-off-by: CRUNCH <143041327+CRUNCH-Borg@users.noreply.github.com>
This commit is contained in:
@@ -340,7 +340,9 @@
|
||||
desc = "A grasping tool for cyborgs. This one is covered with hygenic medical-grade silicone rubber. \
|
||||
Use it to help patients up once surgery is complete, or to substitute for hands in surgical operations."
|
||||
can_help_up = TRUE
|
||||
can_hold = list(
|
||||
can_hold = list(
|
||||
/obj/item/clothing/head,
|
||||
/obj/item/key/ambulance, // I mean, the paramedic never uses it, so...
|
||||
/obj/item/reagent_containers/glass/beaker,
|
||||
/obj/item/reagent_containers/glass/bottle,
|
||||
/obj/item/reagent_containers/applicator,
|
||||
@@ -361,13 +363,14 @@
|
||||
can_help_up = TRUE
|
||||
// Everything in this list is currently for either playing games or otherwise assisting the crew in mundane, non-impactful ways.
|
||||
can_hold = list(
|
||||
/obj/item/clothing/head,
|
||||
/obj/item/deck,
|
||||
/obj/item/cardhand,
|
||||
/obj/item/coin,
|
||||
/obj/item/paper,
|
||||
/obj/item/photo,
|
||||
/obj/item/toy/plushie,
|
||||
/obj/item/clothing/mask/cigarette
|
||||
/obj/item/clothing/mask/cigarette,
|
||||
)
|
||||
|
||||
// Mining Gripper
|
||||
@@ -376,9 +379,10 @@
|
||||
name = "mining gripper"
|
||||
desc = "A grasping tool for cyborgs. This ruggedized version will let you add goliath plating to yourself and activate survival capsules. You could also use it to swing a pickaxe if you don't feel like using your drill."
|
||||
can_hold = list(
|
||||
/obj/item/clothing/head,
|
||||
/obj/item/pickaxe, // Because the image of a mining borg ignoring its built-in drill and instead choosing to swing an old-fashioned pickaxe is funny.
|
||||
/obj/item/stack/sheet/animalhide/goliath_hide,
|
||||
/obj/item/survivalcapsule
|
||||
/obj/item/survivalcapsule,
|
||||
)
|
||||
|
||||
// Engineering Gripper
|
||||
@@ -388,6 +392,7 @@
|
||||
desc = "A grasping tool for cyborgs. This version can hold a wide variety of constructon components for use in engineering work."
|
||||
engineering_machine_interaction = TRUE
|
||||
can_hold = list(
|
||||
/obj/item/clothing/head,
|
||||
/obj/item/firealarm_electronics,
|
||||
/obj/item/airalarm_electronics,
|
||||
/obj/item/airlock_electronics,
|
||||
@@ -409,3 +414,27 @@
|
||||
/obj/item/light,
|
||||
/obj/item/nuclear_rod,
|
||||
)
|
||||
|
||||
// Janitorial Gripper
|
||||
// For Janitorial borgs. Mostly just to let them put on a hat.
|
||||
/obj/item/gripper/janitor
|
||||
name = "janitorial gripper"
|
||||
desc = "A grasping tool for cyborgs. This version is made from hygenic easy-clean material so you can easily keep it (and everything else) clean."
|
||||
can_hold = list(
|
||||
/obj/item/clothing/head,
|
||||
/obj/item/caution, // Holosigns are overrated!
|
||||
/obj/item/key/janitor, // It'll be funny I swear.
|
||||
)
|
||||
|
||||
// Security Gripper
|
||||
// For secruity borgs. Mostly just to let them put on a hat.
|
||||
/obj/item/gripper/security
|
||||
name = "security gripper"
|
||||
desc = "A grasping tool for cyborgs. This version can hold a few basic security items, but isn't too useful on the front line."
|
||||
can_hold = list(
|
||||
/obj/item/clothing/head,
|
||||
/obj/item/key/security, // Secway!
|
||||
/obj/item/taperecorder,
|
||||
/obj/item/tape,
|
||||
/obj/item/food/donut, // "Borg! Bring me a donut, with the sprinkles!"
|
||||
)
|
||||
|
||||
@@ -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