From 9a65bedfc4e866143823cb25f9a367cf66a51841 Mon Sep 17 00:00:00 2001 From: EctoplasmIsGood <109397347+EctoplasmIsGood@users.noreply.github.com> Date: Thu, 3 Apr 2025 02:30:33 -0500 Subject: [PATCH] Salvage / Borg Tweaks (#2145) # Description Originally started because I wanted to add some stuff to salvage, but ended up with me porting over whitelisted borg hands, the PKA module, and some other stuff. --- # Changelog :cl: - add: Engi borgs can now carry electronics, and medical borgs can carry organs - add: Salvage borgs now get a PKA module - tweak: All mining drills have had their damage turned to piercing and have received a moderate damage buff - tweak: Exosuit drills now swing at the same speed as normal drills (why were they worse???) - tweak: The RPD and RCD modules for borg have been merged into one - tweak: Salvage can now purchase drills from their vendor - tweak: Salvage borgs mining module no longer contains a shovel --------- Co-authored-by: Your Name Co-authored-by: Whatstone Co-authored-by: RatherUncreative Co-authored-by: Aidenkrz (cherry picked from commit ed8850e551bd9c0d533d69cad262a8743442a62a) --- .../Systems/Hands/HandsUIController.cs | 15 +++ .../_NF/Hands/UI/HandPlaceholderStatus.cs | 13 ++ .../_NF/Hands/UI/HandPlaceholderStatus.xaml | 3 + .../HandPlaceholderVisualsComponent.cs | 10 ++ .../Systems/HandPlaceholderVisualsSystem.cs | 47 +++++++ .../Tests/MaterialArbitrageTest.cs | 2 +- .../Tests/Sprite/ItemSpriteTest.cs | 3 +- .../Construction/MachineFrameSystem.cs | 59 +++++++-- .../Silicons/Borgs/BorgSystem.Modules.cs | 109 +++++++++++++++- Content.Server/Stack/StackSystem.cs | 2 +- .../Components/ElectronicsComponent.cs | 7 + .../Components/StockPartComponent.cs | 7 + .../Construction/MachinePartSystem.cs | 3 +- Content.Shared/Materials/MaterialPrototype.cs | 2 +- .../Components/ItemBorgModuleComponent.cs | 27 +++- Content.Shared/Stacks/StackPrototype.cs | 19 +-- .../Components/HandPlaceholderComponent.cs | 22 ++++ .../HandPlaceholderRemoveableComponent.cs | 17 +++ .../Systems/SharedHandPlaceholderSystem.cs | 118 +++++++++++++++++ .../Locale/en-US/_NF/hands/hands-system.ftl | 1 + Resources/Maps/glacier.yml | 1 - Resources/Migrations/migration.yml | 2 + Resources/Prototypes/Body/Organs/human.yml | 1 + .../Prototypes/Corvax/Stack/other_stacks.yml | 2 +- .../Inventories/salvage_points.yml | 2 + .../Devices/Electronics/base_electronics.yml | 3 +- .../Entities/Objects/Misc/machine_parts.yml | 25 ++-- .../Specific/Robotics/borg_modules.yml | 122 +++++++++++++++--- .../Entities/Objects/Tools/fulton.yml | 1 - .../Entities/Objects/Weapons/Melee/mining.yml | 18 +-- .../Entities/Structures/Machines/lathe.yml | 1 - .../Prototypes/Recipes/Lathes/robotics.yml | 5 - Resources/Prototypes/Research/industrial.yml | 1 - .../Stacks/Materials/Sheets/glass.yml | 7 - .../Stacks/Materials/Sheets/metal.yml | 3 - .../Stacks/Materials/Sheets/other.yml | 4 - .../Prototypes/Stacks/Materials/crystals.yml | 4 - .../Prototypes/Stacks/Materials/ingots.yml | 3 - .../Prototypes/Stacks/Materials/materials.yml | 13 +- Resources/Prototypes/Stacks/Materials/ore.yml | 11 -- .../Prototypes/Stacks/Materials/parts.yml | 1 - .../Prototypes/Stacks/consumable_stacks.yml | 11 -- .../Prototypes/Stacks/engineering_stacks.yml | 2 - .../Prototypes/Stacks/floor_tile_stacks.yml | 75 +---------- .../Prototypes/Stacks/medical_stacks.yml | 7 - Resources/Prototypes/Stacks/power_stacks.yml | 3 - Resources/Prototypes/Stacks/prizeticket.yml | 1 - .../Prototypes/Stacks/science_stacks.yml | 19 ++- .../Mech/Weapons/Melee/industrial.yml | 16 +-- .../Specific/Robotics/borg_modules.yml | 18 +++ .../Robotics/borg_hand_placeholder.yml | 10 ++ .../_Nuclear14/Stacks/material_stacks.yml | 7 - .../Specific/Robotics/borg_modules.yml | 34 ----- Resources/Prototypes/borg_types.yml | 1 + Resources/Prototypes/tags.yml | 3 + .../actions_borg.rsi/adv-surgery-module.png | Bin 0 -> 509 bytes .../Actions/actions_borg.rsi/meta.json | 6 + .../actions_borg.rsi/surgery-module.png | Bin 0 -> 475 bytes .../Robotics/borgmodule.rsi/cargo.png | Bin 0 -> 565 bytes .../Robotics/borgmodule.rsi/icon-pka.png | Bin 0 -> 299 bytes .../Robotics/borgmodule.rsi/meta.json | 17 +++ 61 files changed, 666 insertions(+), 280 deletions(-) create mode 100644 Content.Client/_NF/Hands/UI/HandPlaceholderStatus.cs create mode 100644 Content.Client/_NF/Hands/UI/HandPlaceholderStatus.xaml create mode 100644 Content.Client/_NF/Interaction/Components/HandPlaceholderVisualsComponent.cs create mode 100644 Content.Client/_NF/Interaction/Systems/HandPlaceholderVisualsSystem.cs create mode 100644 Content.Server/_Goobstation/Whitelist/Components/ElectronicsComponent.cs create mode 100644 Content.Server/_Goobstation/Whitelist/Components/StockPartComponent.cs create mode 100644 Content.Shared/_NF/Interaction/Components/HandPlaceholderComponent.cs create mode 100644 Content.Shared/_NF/Interaction/Components/HandPlaceholderRemoveableComponent.cs create mode 100644 Content.Shared/_NF/Interaction/Systems/SharedHandPlaceholderSystem.cs create mode 100644 Resources/Locale/en-US/_NF/hands/hands-system.ftl create mode 100644 Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Robotics/borg_modules.yml create mode 100644 Resources/Prototypes/_NF/Entities/Objects/Specific/Robotics/borg_hand_placeholder.yml create mode 100644 Resources/Textures/Interface/Actions/actions_borg.rsi/adv-surgery-module.png create mode 100644 Resources/Textures/Interface/Actions/actions_borg.rsi/surgery-module.png create mode 100644 Resources/Textures/_Goobstation/Objects/Specific/Robotics/borgmodule.rsi/cargo.png create mode 100644 Resources/Textures/_Goobstation/Objects/Specific/Robotics/borgmodule.rsi/icon-pka.png create mode 100644 Resources/Textures/_Goobstation/Objects/Specific/Robotics/borgmodule.rsi/meta.json diff --git a/Content.Client/UserInterface/Systems/Hands/HandsUIController.cs b/Content.Client/UserInterface/Systems/Hands/HandsUIController.cs index 9ee429ba7e..9083adba7b 100644 --- a/Content.Client/UserInterface/Systems/Hands/HandsUIController.cs +++ b/Content.Client/UserInterface/Systems/Hands/HandsUIController.cs @@ -13,6 +13,7 @@ using Robust.Client.UserInterface.Controllers; using Robust.Shared.Input; using Robust.Shared.Timing; using Robust.Shared.Utility; +using Content.Shared._NF.Interaction.Components; namespace Content.Client.UserInterface.Systems.Hands; @@ -133,6 +134,13 @@ public sealed class HandsUIController : UIController, IOnStateEntered +