]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Cyborg Rebalance (#34186)
authorNox <nebulousnox38@gmail.com>
Fri, 25 Apr 2025 02:29:16 +0000 (19:29 -0700)
committerGitHub <noreply@github.com>
Fri, 25 Apr 2025 02:29:16 +0000 (19:29 -0700)
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
33 files changed:
Resources/Prototypes/Entities/Markers/Spawners/Random/Department/science.yml
Resources/Prototypes/Entities/Mobs/Player/silicon.yml
Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml
Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml
Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml
Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml
Resources/Prototypes/Entities/Objects/Materials/parts.yml
Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml
Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml
Resources/Prototypes/Entities/Objects/Specific/Janitorial/trashbag.yml
Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml
Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml
Resources/Prototypes/Entities/Objects/Specific/chemistry-vials.yml
Resources/Prototypes/Entities/Objects/Specific/chemistry.yml
Resources/Prototypes/Entities/Objects/Tools/bucket.yml
Resources/Prototypes/Entities/Objects/Tools/gps.yml
Resources/Prototypes/Entities/Objects/Tools/tools.yml
Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml
Resources/Prototypes/Recipes/Lathes/robotics.yml
Resources/Prototypes/Research/civilianservices.yml
Resources/Prototypes/Research/experimental.yml
Resources/Prototypes/Research/industrial.yml
Resources/Prototypes/borg_types.yml
Resources/ServerInfo/Guidebook/Science/Cyborgs.xml
Resources/Textures/Interface/Actions/actions_borg.rsi/adv-chem-module.png [new file with mode: 0644]
Resources/Textures/Interface/Actions/actions_borg.rsi/adv-mining-module.png [new file with mode: 0644]
Resources/Textures/Interface/Actions/actions_borg.rsi/chem-module.png [new file with mode: 0644]
Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json
Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-chem.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-mining-adv.png [new file with mode: 0644]
Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json
Resources/migration.yml

index ddc31c946e09269c9e1e7fd6391e1760f1fe0a45..ad840c306b47ebf9f46ba471945c02ab29b5d5c8 100644 (file)
       state: generic
   - type: RandomSpawner
     rarePrototypes:
-    - BorgModuleDefibrillator
+    - BorgModuleAdvancedChemical
     - BorgModuleAdvancedCleaning
-    - BorgModuleClowning
-    - BorgModuleGardening
-    - BorgModuleHarvesting
+    - BorgModuleAdvancedTool
+
     rareChance: 0.1
     prototypes:
-    - BorgModuleCable
     - BorgModuleFireExtinguisher
-    - BorgModuleGPS
-    - BorgModuleRadiationDetection
-    - BorgModuleTool
-    - BorgModuleArtifact
-    - BorgModuleAnomaly
     chance: 0.9
     offset: 0.2
index 934e9d3674460a67b113e71f24a85e7df9fefafb..8b8007368b9542e6008b7bc52a23bd9598932dc7 100644 (file)
       borg_module:
         - BorgModuleTool
         - BorgModuleFireExtinguisher
-        - BorgModuleGPS
   - type: ItemSlots
     slots:
       cell_slot:
index e8061c59130c24775a10df6fea273c9ee27ff637..fe2103195e0b66dc59f1a51a91f19112e90c9754 100644 (file)
@@ -39,6 +39,8 @@
   parent: Holoprojector
   id: HoloprojectorBorg
   suffix: borg
+  name: holosign projector
+  description: A modified holographic sign projector for use in custodial cyborgs. Automatically self-charges.
   components:
   - type: HolosignProjector
     chargeUse: 240
       cell_slot:
         name: power-cell-slot-component-slot-name-default
 
+- type: entity
+  parent: HolofanProjector
+  id: HolofanProjectorBorg
+  name: integrated holofan
+  description: Stops idiots from causing more crew harm during atmospheric emergencies. Installed directly into an engineering cyborg, it  recharges over time.
+  components:
+  - type: ItemSlots
+    slots:
+      cell_slot:
+        name: power-cell-slot-component-slot-name-default
+        startingItem: PowerCellMicroreactor
+        disableEject: true
+        swap: false
+
 - type: entity
   parent: Holoprojector
   id: HoloprojectorField
index 59d8ed192205e5b2d5dda5da4c3e21bb48f5e2ec..5676c4932485f07bc181654181fd132c7e93dcc3 100644 (file)
           Quantity: 0.5
         canReact: false
 
+- type: entity
+  parent: SheetRGlass
+  id: SheetRGlassLingering0
+  suffix: Lingering, 0
+  components:
+  - type: Stack
+    lingering: true
+    count: 0
+
 - type: entity
   parent: SheetGlassBase
   id: SheetPGlass
     stackType: ReinforcedPlasmaGlass
     count: 1
 
+- type: entity
+  parent: SheetRPGlass
+  id: SheetRPGlassLingering0
+  suffix: Lingering, 0
+  components:
+  - type: Stack
+    lingering: true
+    count: 0
+
 - type: entity
   parent: SheetGlassBase
   id: SheetUGlass
index 21561247492697975e5617153c798f113ee46eaf..bd22eee6911f0fc0ed687e433d46cf55770d60da 100644 (file)
   - type: Stack
     stackType: Plasteel
     count: 1
+
+- type: entity
+  parent: SheetPlasteel
+  id: SheetPlasteelLingering0
+  suffix: Lingering, 0
+  components:
+  - type: Stack
+    lingering: true
+    count: 0
\ No newline at end of file
index 4bc98a4d4b077a312eecc51caeb60283cde96ba3..4a37e18ccf280fd48c1d2d7a5f5e10c42fc2f1aa 100644 (file)
   - type: Stack
     count: 1
 
+- type: entity
+  parent: SheetPlasma
+  id: SheetPlasmaLingering0
+  name: plasma
+  suffix: 0, Lingering
+  components:
+  - type: Stack
+    lingering: true
+    count: 0
+
 - type: entity
   parent: SheetOtherBase
   id: SheetPlastic
index 1106ce057c81e061d0a52315bbc513a7f7183fbd..44d72cda12fda71c44bcc4a7f4e89d0f3557aab0 100644 (file)
   - type: Stack
     lingering: true
     count: 0
+
+- type: entity
+  parent: FloorTileItemWhite
+  id: FloorTileItemWhiteLingering0
+  suffix: Lingering, 0
+  components:
+  - type: Stack
+    lingering: true
+    count: 0
+
+- type: entity
+  parent: FloorTileItemDark
+  id: FloorTileItemDarkLingering0
+  suffix: Lingering, 0
+  components:
+  - type: Stack
+    lingering: true
+    count: 0
index 4b4200fed8f677dfdc6c1af18bc70e83c5d35493..696c31287139a289ebe515b54816b50b35ab0a2b 100644 (file)
     materialComposition:
       Steel: 100
 
+- type: entity
+  parent: FireExtinguisher
+  id: BorgFireExtinguisher
+  name: maneuvering jet
+  description: Based on fire extinguisher technology, the maneuvering jet is... well yes, its just a bigger fire extinguisher.
+  components:
+  - type: SolutionContainerManager
+    solutions:
+      spray:
+        maxVol: 200
+        reagents:
+        - ReagentId: Water
+          Quantity: 200
+
 - type: entity
   name: extinguisher spray
   id: ExtinguisherSpray
index e8a5ff22bb65a2236b8e79617d054cc89e4b14f8..b692f20dd91e27ce61943a030a822b8e53be58ba 100644 (file)
     tags:
       - Spray
 
+- type: entity
+  parent: SprayBottle
+  id: BorgSprayBottle
+  name: internal spray jet
+  suffix: Filled
+  description: A pressurized vessel for spraying reagents, installed directly into a custodial cyborg. Typically filled with space cleaner for dealing with those nasty spills.
+  components:
+  - type: SolutionContainerManager
+    solutions:
+      spray:
+        maxVol: 200
+        reagents:
+        - ReagentId: SpaceCleaner
+          Quantity: 200
+
+- type: entity
+  parent: MegaSprayBottle
+  id: BorgMegaSprayBottle
+  name: adv. internal spray jet
+  suffix: Filled
+  description: An upgraded version of the integrated spray bottle, installed directly into a custodial cyborg. Typically filled with space cleaner for dealing with those nasty spills.
+  components:
+  - type: SolutionContainerManager
+    solutions:
+      spray:
+        maxVol: 500
+        reagents:
+        - ReagentId: SpaceCleaner
+          Quantity: 500
+
 # Vapor
 - type: entity
   id: Vapor
index 9927d836baa314aaf780f0aceb7d9b05d2e3a8df..31d8d629ced1022d5ace814fe40f4901e7ac7f8d 100644 (file)
     quickInsert: true
     areaInsert: true
     areaInsertRadius: 5
+
+- type: entity
+  parent: TrashBag
+  id: BorgTrashBag
+  name: internal trash bag
+  description: An upgraded trash bag with a larger internal volume, installed directly into a custodial cyborg.
+  components:
+  - type: Storage
+    maxItemSize: Huge
+    grid:
+    - 0,0,7,6
index 96eb8ed8ad77eb50121e5e8ce19df53a91e279f4..98565931fd5e8b5a7201da2703c5bf9daf3c93ab 100644 (file)
     stackType: RegenerativeMesh
     count: 1
 
+- type: entity
+  parent: RegenerativeMesh
+  id: RegenerativeMeshLingering0
+  suffix: 0, Lingering
+  components:
+  - type: Stack
+    lingering: true
+    count: 0
+
 - type: entity
   name: bruise pack
   description: A therapeutic gel pack and bandages designed to treat blunt-force trauma.
     stackType: MedicatedSuture
     count: 1
 
+- type: entity
+  parent: MedicatedSuture
+  id: MedicatedSutureLingering0
+  suffix: 0, Lingering
+  components:
+  - type: Stack
+    lingering: true
+    count: 0
+
 - type: entity
   name: blood pack
   description: Contains a groundbreaking universal blood replacement created by Nanotrasen's advanced medical science.
   components:
   - type: Stack
     lingering: true
+    count: 10
 
 - type: entity
   parent: BaseHealingItem
index 0c73a5a5c9082dfb1840910fd035a415e85a9342..73d90a856c287973425423a0e43106145f750000 100644 (file)
       - state: base-part-inhand-right
       - state: base-stripes-inhand-right
         color: "#7B0F12"
-      
+
 
 - type: entity
   id: BaseBorgModuleSyndicateAssault
   id: BorgModuleCable
   parent: [ BaseBorgModule, BaseProviderBorgModule ]
   name: cable cyborg module
+  description: A universal cyborg module which allows the unit to install and manipulate electrical systems.
   components:
   - type: Sprite
     layers:
     - CableMVStackLingering10
     - CableHVStackLingering10
     - Wirecutter
+    - Crowbar
     - trayScanner
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: wire-module }
 - type: entity
   id: BorgModuleFireExtinguisher
   parent: [ BaseBorgModule, BaseProviderBorgModule ]
-  name: fire extinguisher cyborg module
+  name: thruster cyborg module
+  description: NT assigned a team to design a jetpack for cyborg units, but they ran out of funding and just made a bigger fire extinguisher. It comes with a integrated GPS and mass scanner though!
   components:
   - type: Sprite
     layers:
     - state: icon-fire-extinguisher
   - type: ItemBorgModule
     items:
-    - FireExtinguisher
-  - type: BorgModuleIcon
-    icon: { sprite: Interface/Actions/actions_borg.rsi, state: extinguisher-module }
-
-- type: entity
-  id: BorgModuleGPS
-  parent: [ BaseBorgModule, BaseProviderBorgModule ]
-  name: GPS cyborg module
-  components:
-  - type: Sprite
-    layers:
-    - state: generic
-    - state: icon-gps
-  - type: ItemBorgModule
-    items:
-    - HandheldGPSBasic
+    - BorgFireExtinguisher
+    - BorgHandheldGPSBasic
     - HandHeldMassScannerBorg
-    - HandheldStationMapUnpowered
-  - type: BorgModuleIcon
-    icon: { sprite: Interface/Actions/actions_borg.rsi, state: gps-module }
-
-- type: entity
-  id: BorgModuleRadiationDetection
-  parent: [ BaseBorgModule, BaseProviderBorgModule ]
-  name: radiation detection cyborg module
-  components:
-  - type: Sprite
-    layers:
-    - state: generic
-    - state: icon-radiation
-  - type: ItemBorgModule
-    items:
-    - GeigerCounter
   - type: BorgModuleIcon
-    icon: { sprite: Interface/Actions/actions_borg.rsi, state: geiger-module }
+    icon: { sprite: Interface/Actions/actions_borg.rsi, state: extinguisher-module }
 
 - type: entity
   id: BorgModuleTool
     - Wrench
     - Screwdriver
     - Wirecutter
-    - Multitool
     - WelderIndustrial
+    - Multitool
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: tool-module }
 
   - type: ItemBorgModule
     items:
     - AppraisalTool
+    - Pen
+    - HandLabeler
+    - RubberStampApproved
+    - RubberStampDenied
+    - RadioHandheld
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: appraisal-module }
 
     - MiningDrill
     - Shovel
     - MineralScannerUnpowered
-    - OreBag
-    - RadioHandheld
+    - BorgOreBag
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: mining-module }
 
 - type: entity
-  id: BorgModuleGrapplingGun
+  id: BorgModuleAdvancedMining
+  parent: [ BaseBorgModuleCargo, BaseProviderBorgModule ]
+  name: advanced mining cyborg module
+  description: Advanced cargo module containing advanced mining equipment. Studies show it advances productivity of a cyborg by 150%.
+  components:
+  - type: Sprite
+    layers:
+    - state: cargo
+    - state: icon-mining-adv
+  - type: ItemBorgModule
+    items:
+    - MiningDrillDiamond
+    - Shovel
+    - AdvancedMineralScannerUnpowered
+    - OreBagOfHolding
+  - type: BorgModuleIcon
+    icon: { sprite: Interface/Actions/actions_borg.rsi, state: adv-mining-module }
+
+- type: entity
+  id: BorgModuleTraversal
   parent: [ BaseBorgModuleCargo, BaseProviderBorgModule ]
-  name: grappling gun cyborg module
+  name: traversal cyborg module
   components:
   - type: Sprite
     layers:
   - type: ItemBorgModule
     items:
     - WeaponGrapplingGun
-    - HandheldGPSBasic
+    - BorgFireExtinguisher
+    - BorgHandheldGPSBasic
+    - HandHeldMassScannerBorg
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: grappling-module }
 
   id: BorgModuleAdvancedTool
   parent: [ BaseBorgModuleEngineering, BaseProviderBorgModule ]
   name: advanced tool cyborg module
+  description: Advanced engineering module containing cutting-edge tools.
   components:
   - type: Sprite
     layers:
     items:
     - JawsOfLife
     - PowerDrill
-    - Multitool
     - WelderExperimental
-    - RemoteSignaller
-    - GasAnalyzer
-    - GeigerCounter
+    - Multitool
+    - RemoteSignallerAdvanced
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: adv-tools-module }
 
     items:
     - SheetSteelLingering0
     - SheetGlassLingering0
+    - SheetRGlassLingering0
+    - SheetRPGlassLingering0
+    - SheetPlasteelLingering0
     - PartRodMetalLingering0
     - FloorTileItemSteelLingering0
+    - FloorTileItemWhiteLingering0
+    - FloorTileItemDarkLingering0
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: construction-module }
 
 - type: entity
   id: BorgModuleRCD
   parent: [ BaseBorgModuleEngineering, BaseProviderBorgModule ]
-  name: RCD cyborg module
+  name: engineering cyborg module
   components:
   - type: Sprite
     layers:
   - type: ItemBorgModule
     items:
     - RCDRecharging
+    - BorgFireExtinguisher
+    - BorgHandheldGPSBasic
+    - GasAnalyzer
+    - HolofanProjectorBorg
+    - GeigerCounter
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: rcd-module }
 
 # janitorial modules (this gets its own unique things because janis are epic)
 - type: entity
-  id: BorgModuleLightReplacer
+  id: BorgModuleCustodial
   parent: [ BaseBorgModuleJanitor, BaseProviderBorgModule ]
-  name: light replacer cyborg module
+  name: custodial cyborg module
   components:
   - type: Sprite
     layers:
   - type: ItemBorgModule
     items:
     - LightReplacer
-    - Crowbar
-    - Screwdriver
+    - BorgTrashBag
+    - Plunger
+    - SoapNT
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: light-replacer-module }
 
   - type: ItemBorgModule
     items:
     - MopItem
-    - Bucket
-    - TrashBag
+    - BorgBucket
+    - BorgSprayBottle
+    - HoloprojectorBorg
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: cleaning-module }
 
   id: BorgModuleAdvancedCleaning
   parent: [ BaseBorgModuleJanitor, BaseProviderBorgModule ]
   name: advanced cleaning cyborg module
+  description: Advanced janitorial module containing, well... advanced janitor equipment. What were you expecting?
   components:
   - type: Sprite
     layers:
   - type: ItemBorgModule
     items:
     - AdvMopItem
+    - BorgMegaSprayBottle
     - HoloprojectorBorg
-    - SprayBottleSpaceCleaner
-    - Dropper
-    - TrashBag
+    - BorgDropper
+    - BorgBeaker
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: adv-cleaning-module }
 
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: diagnosis-module }
 
 - type: entity
-  id: BorgModuleTreatment
+  id: BorgModuleTopicals
   parent: [ BaseBorgModuleMedical, BaseProviderBorgModule ]
-  name: treatment cyborg module
+  name: topicals cyborg module
   components:
   - type: Sprite
     layers:
   - type: ItemBorgModule
     items:
     - HandheldHealthAnalyzerUnpowered
+    - Gauze10Lingering
     - Brutepack10Lingering
     - Ointment10Lingering
-    - Gauze10Lingering
     - Bloodpack10Lingering
-    - Syringe
+    - RegenerativeMeshLingering0
+    - MedicatedSutureLingering0
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: treatment-module }
 
 - type: entity
-  id: BorgModuleDefibrillator
+  id: BorgModuleRescue
   parent: [ BaseBorgModuleMedical, BaseProviderBorgModule ]
-  name: defibrillator cyborg module
+  name: rescue cyborg module
   components:
   - type: Sprite
     layers:
     - state: icon-defib
   - type: ItemBorgModule
     items:
+    - HandheldHealthAnalyzerUnpowered
     - DefibrillatorOneHandedUnpowered
+    - BorgFireExtinguisher
+    - BorgHandheldGPSBasic
+    - HandLabeler
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: defib-module }
 
 - type: entity
-  id: BorgModuleAdvancedTreatment
+  id: BorgModuleChemical
   parent: [ BaseBorgModuleMedical, BaseProviderBorgModule ]
-  name: advanced treatment cyborg module
+  name: chemical cyborg module
   components:
   - type: Sprite
     layers:
     - state: medical
-    - state: icon-chemist
+    - state: icon-chem
   - type: ItemBorgModule
     items:
     - HandheldHealthAnalyzerUnpowered
-    - Beaker
-    - Beaker
+    - Syringe
     - BorgDropper
+    - BorgVial
+    - BorgVial
+    - BorgVial
+  - type: BorgModuleIcon
+    icon: { sprite: Interface/Actions/actions_borg.rsi, state: chem-module }
+
+- type: entity
+  id: BorgModuleAdvancedChemical
+  parent: [ BaseBorgModuleMedical, BaseProviderBorgModule ]
+  name: advanced chemical cyborg module
+  description: Advanced medical module containing the cyborg adaptation of the highly coveted hypospray. Now your cyborgs can inject crew-harmers with chloral hydrate even faster!
+  components:
+  - type: Sprite
+    layers:
+    - state: medical
+    - state: icon-chemist
+  - type: ItemBorgModule
+    items:
+    - HandheldHealthAnalyzerUnpowered
     - BorgHypo
+    - Syringe
+    - BorgDropper
+    - BorgBeaker
+    - BorgBeaker
   - type: BorgModuleIcon
-    icon: { sprite: Interface/Actions/actions_borg.rsi, state: adv-diagnosis-module }
+    icon: { sprite: Interface/Actions/actions_borg.rsi, state: adv-chem-module }
 
 # science modules
 # todo: if science ever gets their own custom robot, add more "sci" modules.
   - type: ItemBorgModule
     items:
     - NodeScanner
-    - Multitool
-    - Wrench
     - SprayBottle
-    - Beaker
-    - Syringe
+    - GasAnalyzer
+    - BorgDropper
+    - BorgVial
+    - GeigerCounter
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: node-scanner-module }
 
     - AnomalyScanner
     - AnomalyLocatorUnpowered
     - AnomalyLocatorWideUnpowered
-    - RemoteSignaller
-    - Multitool
+    - HandLabeler
+    - SheetRGlassLingering0
+    - SheetRPGlassLingering0
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: anomaly-module }
 
   - type: ItemBorgModule
     items:
     - Pen
-    - BooksBag
+    #- BooksBag (Add back when hand whitelisting exists, at the moment they can only use it like an orebag.)
     - HandLabeler
-    - Lighter
-    - DrinkShaker
+    - RubberStampApproved
+    - RubberStampDenied
     - BorgDropper
+    - BorgVial
   - type: BorgModuleIcon
     icon: { sprite: Interface/Actions/actions_borg.rsi, state: service-module }
 
index a36bfaf676be2d93f151d3bdde5871adbc471b65..87643773db5f8976cef35970b9e49ba6e84da3b2 100644 (file)
         - ArtifactFragment
         - Ore
   - type: Dumpable
+
+- type: entity
+  parent: OreBag
+  id: BorgOreBag
+  name: integrated ore bag
+  description: A large ore bag built into the frame of a mining cyborg.
+  components:
+    - type: Storage
+      grid:
+      - 0,0,9,5
index 69da415a48b055b08c5bcba180a1024552be9f2e..60441bb4750ddb3584ccad2e6ac3bfd18434bdce 100644 (file)
     solution: beaker
   - type: DnaSubstanceTrace
 
+- type: entity
+  parent: BaseItem
+  id: BorgVial
+  name: integrated vial
+  description: An internal compartment installed into a cyborg. Rated for 30 units of any liquid.
+  components:
+  # All this shit is here to avoid inheriting breakable, since borgs can't replace broken vials.
+  - type: Sprite
+    sprite: Objects/Specific/Chemistry/vial.rsi
+    layers:
+      - state: vial-1
+      - state: vial-1-1
+        map: ["enum.SolutionContainerLayers.Fill"]
+        visible: false
+  - type: Appearance
+  - type: SolutionContainerVisuals
+    maxFillLevels: 6
+    fillBaseName: vial-1-
+    inHandsMaxFillLevels: 4
+    inHandsFillBaseName: -fill-
+  - type: Drink
+    solution: beaker
+  - type: SolutionContainerManager
+    solutions:
+      beaker:
+        maxVol: 30
+  - type: MixableSolution
+    solution: beaker
+  - type: RefillableSolution
+    solution: beaker
+  - type: DrainableSolution
+    solution: beaker
+  - type: ExaminableSolution
+    solution: beaker
+  - type: DrawableSolution
+    solution: beaker
+  - type: SolutionTransfer
+    maxTransferAmount: 30
+    canChangeTransferAmount: true
+  - type: SolutionItemStatus
+    solution: beaker
+  - type: UserInterface
+    interfaces:
+      enum.TransferAmountUiKey.Key:
+        type: TransferAmountBoundUserInterface
+  - type: Item
+    size: Tiny
+    sprite: Objects/Specific/Chemistry/vial.rsi
+    shape:
+    - 0,0,0,0
+  - type: MeleeWeapon
+    soundNoDamage:
+      path: "/Audio/Effects/Fluids/splat.ogg"
+    damage:
+      types:
+        Blunt: 0
+
 - type: entity
   id: VestineChemistryVial
   parent: BaseChemistryEmptyVial
         reagents:
           - ReagentId: Chlorine
             Quantity: 5
-            
+
 - type: entity
   id: PlasmaChemistryVial
   parent: BaseChemistryEmptyVial
index 0ccc42f54aca3c9259a8bd1f7f3d0b330d0c8d06..ce945ac95b642bed39a4662a7e790085e6021308 100644 (file)
     price: 30
   - type: DnaSubstanceTrace
 
+- type: entity
+  parent: BaseItem
+  id: BorgBeaker
+  name: integrated beaker
+  description: An internal compartment installed into a cyborg. Rated for 50 units of any liquid.
+  components:
+  # 3 morbillion components are to avoid inheriting breakable since borgs can't replace beakers.
+  - type: Tag
+    tags:
+    - GlassBeaker
+  - type: Sprite
+    sprite: Objects/Specific/Chemistry/beaker.rsi
+    layers:
+      - state: beaker
+      - state: beaker1
+        map: ["enum.SolutionContainerLayers.Fill"]
+        visible: false
+  - type: Item
+    sprite: Objects/Specific/Chemistry/beaker.rsi
+  - type: MeleeWeapon
+    soundNoDamage:
+      path: "/Audio/Effects/Fluids/splat.ogg"
+    damage:
+      types:
+        Blunt: 0
+  - type: SolutionContainerManager
+    solutions:
+      beaker:
+        maxVol: 50
+  - type: MixableSolution
+    solution: beaker
+  - type: FitsInDispenser
+    solution: beaker
+  - type: RefillableSolution
+    solution: beaker
+  - type: DrainableSolution
+    solution: beaker
+  - type: ExaminableSolution
+    solution: beaker
+  - type: DrawableSolution
+    solution: beaker
+  - type: InjectableSolution
+    solution: beaker
+  - type: SolutionTransfer
+    canChangeTransferAmount: true
+  - type: SolutionItemStatus
+    solution: beaker
+  - type: UserInterface
+    interfaces:
+      enum.TransferAmountUiKey.Key:
+        type: TransferAmountBoundUserInterface
+  - type: Drink
+    solution: beaker
+  - type: Appearance
+  - type: SolutionContainerVisuals
+    maxFillLevels: 6
+    fillBaseName: beaker
+
 - type: entity
   parent: BaseItem
   id: BaseBeakerMetallic
   - type: PhysicalComposition
 
 - type: entity
-  name: borgdropper
   parent: Dropper
-  description: Used to transfer small amounts of chemical solution between containers. Extended for use by medical borgs.
   id: BorgDropper
+  name: hydraulic pipette
+  description: State-of-the-art hydraulic dropper built for cyborgs. It features a higher capacity than hand-powered droppers, able to hold 15 units of liquid.
   components:
   - type: Sprite
     sprite: Objects/Specific/Chemistry/dropper.rsi
   - type: SolutionContainerManager
     solutions:
       injector:
-        maxVol: 10
+        maxVol: 15
   - type: Item
     sprite: Objects/Specific/Chemistry/dropper.rsi
 
     areaInsertRadius: 1
     storageInsertSound: /Audio/Effects/pill_insert.ogg
     storageRemoveSound: /Audio/Effects/pill_remove.ogg
-    whitelist: 
+    whitelist:
       tags:
       - Pill
   - type: Dumpable
index b64aa3a0412b0e7a0af63484b6df8e2e4ff22a7c..992c3313e2e8debb74d67faf80c363532776dcab 100644 (file)
     materialComposition:
       Plastic: 50
   - type: DnaSubstanceTrace
+
+- type: entity
+  parent: Bucket
+  id: BorgBucket
+  name: internal tank
+  description: The internal reservoir of a custodial cyborg, capable of holding a entire mop bucket worth of water.
+  components:
+  - type: SolutionContainerManager
+    solutions:
+      bucket:
+        maxVol: 500
index becbb638f4f405356c3e960fbf65bf2783ba9345..990d0d04374fe62fa291ca28ae1d64ceb0d5a0fe 100644 (file)
@@ -19,3 +19,9 @@
   - type: Tag
     tags:
     - GPS
+
+- type: entity #why does this exist? Well, "global positioning system" is too long to fit in the cyborg's hand slot.
+  name: Integrated GPS
+  parent: HandheldGPSBasic
+  id: BorgHandheldGPSBasic
+  description: A miniaturized Global Positioning System for use in cyborg units.
index d84dec120addf7c48772e445b08ff2e562dfa233..71c1e6bf4e49e9fd839041316ffdea032c6a165f 100644 (file)
   id: RCDRecharging
   parent: RCD
   name: experimental RCD
-  description: A bluespace-enhanced rapid construction device that passively generates its own compressed matter.
+  description: Cyborg-mounted Rapid Construction Device which creates compressed matter on the fly using an internal fabricator.
   suffix: AutoRecharge
   components:
   - type: LimitedCharges
index 19bff4a94e0b757c3c5a68d5b3e76f864d1ee932..d6d88992d7304619ba9f35bb6724a4335c3446bb 100644 (file)
 - type: latheRecipePack
   id: BorgModulesStatic
   recipes:
-  - BorgModuleCable
-  - BorgModuleFireExtinguisher
-  - BorgModuleRadiationDetection
   - BorgModuleTool
+  - BorgModuleFireExtinguisher
 
 - type: latheRecipePack
   id: BorgLimbsStatic
   recipes:
   - BorgModuleAdvancedCleaning
   - BorgModuleAdvancedTool
-  - BorgModuleGPS
-  - BorgModuleArtifact
-  - BorgModuleAnomaly
-  - BorgModuleGardening
-  - BorgModuleHarvesting
-  - BorgModuleDefibrillator
-  - BorgModuleAdvancedTreatment
+  - BorgModuleAdvancedChemical
+  - BorgModuleAdvancedMining
 
 - type: latheRecipePack
   id: MechParts
index 60b762c1f1adc0dc6fbb822df0f59d14f55758da..15f6d7ea6cb6ab02ec4dcac519c849599ce18ac0 100644 (file)
 
 - type: latheRecipe
   parent: BaseBorgModuleRecipe
-  id: BorgModuleCable
-  result: BorgModuleCable
+  id: BorgModuleTool
+  result: BorgModuleTool
 
 - type: latheRecipe
   parent: BaseBorgModuleRecipe
   id: BorgModuleFireExtinguisher
   result: BorgModuleFireExtinguisher
 
-- type: latheRecipe
-  parent: BaseBorgModuleRecipe
-  id: BorgModuleGPS
-  result: BorgModuleGPS
-
-- type: latheRecipe
-  parent: BaseBorgModuleRecipe
-  id: BorgModuleRadiationDetection
-  result: BorgModuleRadiationDetection
+# Cargo Modules
 
 - type: latheRecipe
-  parent: BaseBorgModuleRecipe
-  id: BorgModuleTool
-  result: BorgModuleTool
+  parent: BaseGoldBorgModuleRecipe
+  id: BorgModuleAdvancedMining
+  result: BorgModuleAdvancedMining
 
 # Engineering Modules
 
 
 - type: latheRecipe
   parent: BaseGoldBorgModuleRecipe
-  id: BorgModuleAdvancedTreatment
-  result: BorgModuleAdvancedTreatment
-
-- type: latheRecipe
-  parent: BaseGoldBorgModuleRecipe
-  id: BorgModuleDefibrillator
-  result: BorgModuleDefibrillator
-
-# Science Modules
+  id: BorgModuleAdvancedChemical
+  result: BorgModuleAdvancedChemical
 
-- type: latheRecipe
-  parent: BaseBorgModuleRecipe
-  id: BorgModuleArtifact
-  result: BorgModuleArtifact
-
-- type: latheRecipe
-  parent: BaseBorgModuleRecipe
-  id: BorgModuleAnomaly
-  result: BorgModuleAnomaly
+# Science Modules (if we add a advanced sci module that requires crafting)
 
 # Service Modules
-
-- type: latheRecipe
-  parent: BaseBorgModuleRecipe
-  id: BorgModuleGardening
-  result: BorgModuleGardening
-
-- type: latheRecipe
-  parent: BaseBorgModuleRecipe
-  id: BorgModuleHarvesting
-  result: BorgModuleHarvesting
index cdb82255448e3f7663f4654c9c1d5d6b75b8eee5..55298d05a1789dc373109a652b48c0f7eaba7378 100644 (file)
@@ -10,8 +10,6 @@
   tier: 1
   cost: 5000
   recipeUnlocks:
-  - BorgModuleGardening
-  - BorgModuleHarvesting
   - SeedExtractorMachineCircuitboard
   - HydroponicsTrayMachineCircuitboard
   - ReagentGrinderIndustrialMachineCircuitboard
     - MassMediaCircuitboard
     - JukeboxCircuitBoard
 
-- type: technology
-  id: RoboticCleanliness
-  name: research-technology-robotic-cleanliness
-  icon:
-    sprite: Mobs/Silicon/chassis.rsi
-    state: janitor
-  discipline: CivilianServices
-  tier: 1
-  cost: 5000
-  recipeUnlocks:
-  - BorgModuleAdvancedCleaning
-
 - type: technology
   id: MeatManipulation
   name: research-technology-meat-manipulation
   - CryostasisBeaker
   - SyringeCryostasis
 
-- type: technology
+- type: technology # Merge with other T2 medical research if possible!
   id: MechanizedTreatment
   name: research-technology-mechanized-treatment
   icon:
   tier: 2
   cost: 5000
   recipeUnlocks:
-  - BorgModuleAdvancedTreatment
-  - BorgModuleDefibrillator
+  - BorgModuleAdvancedChemical
 
 - type: technology
   id: AdvancedCleaning
   recipeUnlocks:
   - AdvMopItem
   - MegaSprayBottle
+  - BorgModuleAdvancedCleaning
 
 - type: technology
   id: HONKMech
index da3c053c68961a559a44cd2ffa9cbf09acce5fb4..b5646de7e7cb5be9d6c3f766db76e4dbf1545fa9 100644 (file)
@@ -25,7 +25,6 @@
   - AnomalyScanner
   - AnomalyLocator
   - AnomalyLocatorWide
-  - BorgModuleAnomaly
   - APECircuitboard
   - AnomalyVesselCircuitboard
 
@@ -40,7 +39,6 @@
   cost: 5000
   recipeUnlocks:
   - NodeScanner
-  - BorgModuleArtifact
   - AnalysisComputerCircuitboard
   - ArtifactAnalyzerMachineCircuitboard
 
index c0f184f71b0cd08127704a043ae894d3d117621b..c9c952089456f69f9bdd15fc5123145591a2899c 100644 (file)
@@ -27,8 +27,7 @@
   recipeUnlocks:
   - RadarConsoleCircuitboard
   - HandHeldMassScanner
-  - BorgModuleGPS
-
+  
 - type: technology
   id: AdvancedPowercells
   name: research-technology-advanced-powercells
     - OreBagOfHolding
     - MiningDrillDiamond
     - AdvancedMineralScannerEmpty
+    - BorgModuleAdvancedMining
 
 # Tier 3
 
index 2f1eb21b1f12f9dd51557c1d9cc963eef7c6c3df..1c49713e26476af03b510573b422ac9e0ec871e4 100644 (file)
@@ -14,7 +14,8 @@
 
   defaultModules:
   - BorgModuleTool
-
+  - BorgModuleArtifact
+  - BorgModuleAnomaly
   radioChannels:
   - Science
 
     - BorgModuleCargo
 
   defaultModules:
+  - BorgModuleTool
   - BorgModuleMining
-  - BorgModuleGrapplingGun
+  - BorgModuleTraversal
   - BorgModuleAppraisal
-  - BorgModuleTool
 
   radioChannels:
   - Supply
     - BorgModuleJanitor
 
   defaultModules:
-  - BorgModuleLightReplacer
+  - BorgModuleTool
   - BorgModuleCleaning
+  - BorgModuleCustodial
 
   radioChannels:
   - Science
     - BorgModuleMedical
 
   defaultModules:
-  - BorgModuleTreatment
+  - BorgModuleTool
+  - BorgModuleChemical
+  - BorgModuleTopicals
+  - BorgModuleRescue
 
   radioChannels:
   - Science
     - BorgModuleService
 
   defaultModules:
+  - BorgModuleTool
   - BorgModuleMusique
   - BorgModuleService
   - BorgModuleClowning
-
+  - BorgModuleGardening
+  - BorgModuleHarvesting
   radioChannels:
   - Science
   - Service
index c1507ca53960a78bf4dab4d48564cb2f4f6133af..9015ef59af24248a82e4dbf3877896940450f009 100644 (file)
@@ -42,7 +42,6 @@
   [color=#a4885c]Generic[/color] modules add versatility. They can be fitted into any chassis, granting useful tools such as crowbars, GPS, and the ability to interact with cables. [bold]The generic cyborg chassis can fit up to five additional modules.[/bold]
   <Box>
     <GuideEntityEmbed Entity="BorgModuleCable" Caption="Cable"/>
-    <GuideEntityEmbed Entity="BorgModuleGPS" Caption="GPS"/>
     <GuideEntityEmbed Entity="BorgModuleFireExtinguisher" Caption="Fire Extinguisher"/>
   </Box>
   <Box>
@@ -56,7 +55,7 @@
     <GuideEntityEmbed Entity="BorgModuleMining" Caption="Mining"/>
     <GuideEntityEmbed Entity="BorgModuleCleaning" Caption="Cleaning"/>
     <GuideEntityEmbed Entity="BorgModuleService" Caption="Service"/>
-    <GuideEntityEmbed Entity="BorgModuleTreatment" Caption="Treatment"/>
+    <GuideEntityEmbed Entity="BorgModuleChemical" Caption="Chemical"/>
   </Box>
   <Box>
     [italic]Examples of specialized modules. Note the housing and circuit board colors.
diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-chem-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-chem-module.png
new file mode 100644 (file)
index 0000000..39020fb
Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-chem-module.png differ
diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-mining-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-mining-module.png
new file mode 100644 (file)
index 0000000..36f6f8d
Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-mining-module.png differ
diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/chem-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/chem-module.png
new file mode 100644 (file)
index 0000000..d1a71fa
Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/chem-module.png differ
index 2ebb6eddcf50b5a39a62c7db3c3d289d2fa76814..884e922ac898432c85d68e9acfa102cc3764df1f 100644 (file)
@@ -1,7 +1,7 @@
 {
     "version": 1,
     "license": "CC-BY-SA-3.0",
-    "copyright": "Taken from vgstation at commit https://github.com/vgstation-coders/vgstation13/commit/cdbcb1e858b11f083994a7a269ed67ef5b452ce9",
+    "copyright": "Taken from vgstation at commit https://github.com/vgstation-coders/vgstation13/commit/cdbcb1e858b11f083994a7a269ed67ef5b452ce9, Module actions by Scarky0. chem, adv-chem, and adv-mining by mubururu_",
     "size": {
         "x": 32,
         "y": 32
@@ -46,6 +46,9 @@
         {
             "name":"mining-module"
         },
+        {
+            "name":"adv-mining-module"
+        },
         {
             "name":"light-replacer-module"
         },
         {
             "name":"treatment-module"
         },
+        {
+            "name":"chem-module"
+        },
+        {
+            "name":"adv-chem-module"
+        },
         {
             "name":"adv-diagnosis-module"
         },
diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-chem.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-chem.png
new file mode 100644 (file)
index 0000000..8575803
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-chem.png differ
diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-mining-adv.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-mining-adv.png
new file mode 100644 (file)
index 0000000..a517885
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-mining-adv.png differ
index cb48ef147b4c3b703edd620e843e69f0263197d9..3a25fbc953d38d10c8b8ed9a8e123c3a20d6880e 100644 (file)
@@ -1,7 +1,7 @@
 {
     "version": 1,
     "license": "CC0-1.0",
-    "copyright": "Created by EmoGarbage404 (github) for Space Station 14. icon-construction.png created by deltanedas (github). syndicateborgbomb.png created by Mangohydra (github). layered inhands by mubururu_ (github).",
+    "copyright": "Created by EmoGarbage404 (github) for Space Station 14. icon-construction.png created by deltanedas (github). syndicateborgbomb.png created by Mangohydra (github). icon-chem.png & icon-mining-adv.png created by mubururu_ (github)",
     "size": {
         "x": 32,
         "y": 32
@@ -31,6 +31,9 @@
         {
             "name": "icon-chemist"
         },
+        {
+            "name": "icon-chem"
+        },
         {
             "name": "icon-clown"
         },
@@ -67,6 +70,9 @@
         {
             "name": "icon-mining"
         },
+        {
+            "name": "icon-mining-adv"
+        },
         {
             "name": "icon-mop"
         },
index 74b2ca987ff1a7a58de49aaf7cc6c4a8c3d1a3d7..742429bbecab0eac6b20c2197774d3f55b06bdde 100644 (file)
@@ -540,6 +540,10 @@ LightTree06: LightTree
 DrinkIrishCarBomb: DrinkIrishSlammer
 
 # 2025-01-06
+BorgModuleRadiationDetection: null
+BorgModuleGPS: null
+BorgModuleLightReplacer: BorgModuleCustodial
+BorgModuleAdvancedTreatment: null
 ClothingMaskSexyClown: ClothingMaskBlushingClown
 ClothingMaskSexyMime: ClothingMaskBlushingMime