diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/Department/science.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/Department/science.yml
index ddc31c946e..ad840c306b 100644
--- a/Resources/Prototypes/Entities/Markers/Spawners/Random/Department/science.yml
+++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/Department/science.yml
@@ -107,19 +107,12 @@
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
diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml
index 934e9d3674..8b8007368b 100644
--- a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml
+++ b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml
@@ -474,7 +474,6 @@
borg_module:
- BorgModuleTool
- BorgModuleFireExtinguisher
- - BorgModuleGPS
- type: ItemSlots
slots:
cell_slot:
diff --git a/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml b/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml
index e8061c5913..fe2103195e 100644
--- a/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml
+++ b/Resources/Prototypes/Entities/Objects/Devices/holoprojectors.yml
@@ -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
@@ -83,6 +85,20 @@
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
diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml
index 59d8ed1922..5676c49324 100644
--- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml
+++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/glass.yml
@@ -197,6 +197,15 @@
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
@@ -327,6 +336,15 @@
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
diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml
index 2156124749..bd22eee691 100644
--- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml
+++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/metal.yml
@@ -229,3 +229,12 @@
- 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
diff --git a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml
index 4bc98a4d4b..4a37e18ccf 100644
--- a/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml
+++ b/Resources/Prototypes/Entities/Objects/Materials/Sheets/other.yml
@@ -132,6 +132,16 @@
- 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
diff --git a/Resources/Prototypes/Entities/Objects/Materials/parts.yml b/Resources/Prototypes/Entities/Objects/Materials/parts.yml
index 1106ce057c..44d72cda12 100644
--- a/Resources/Prototypes/Entities/Objects/Materials/parts.yml
+++ b/Resources/Prototypes/Entities/Objects/Materials/parts.yml
@@ -117,3 +117,21 @@
- 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
diff --git a/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml b/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml
index 4b4200fed8..696c312871 100644
--- a/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml
+++ b/Resources/Prototypes/Entities/Objects/Misc/fire_extinguisher.yml
@@ -75,6 +75,20 @@
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
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml
index e8a5ff22bb..b692f20dd9 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml
@@ -100,6 +100,36 @@
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
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/trashbag.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/trashbag.yml
index 9927d836ba..31d8d629ce 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/trashbag.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/trashbag.yml
@@ -64,3 +64,14 @@
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
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
index 96eb8ed8ad..98565931fd 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
@@ -118,6 +118,15 @@
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.
@@ -219,6 +228,15 @@
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.
@@ -272,6 +290,7 @@
components:
- type: Stack
lingering: true
+ count: 10
- type: entity
parent: BaseHealingItem
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml
index 0c73a5a5c9..73d90a856c 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml
@@ -244,7 +244,7 @@
- state: base-part-inhand-right
- state: base-stripes-inhand-right
color: "#7B0F12"
-
+
- type: entity
id: BaseBorgModuleSyndicateAssault
@@ -278,6 +278,7 @@
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:
@@ -289,6 +290,7 @@
- CableMVStackLingering10
- CableHVStackLingering10
- Wirecutter
+ - Crowbar
- trayScanner
- type: BorgModuleIcon
icon: { sprite: Interface/Actions/actions_borg.rsi, state: wire-module }
@@ -296,7 +298,8 @@
- 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:
@@ -304,42 +307,12 @@
- state: icon-fire-extinguisher
- type: ItemBorgModule
items:
- - FireExtinguisher
+ - BorgFireExtinguisher
+ - BorgHandheldGPSBasic
+ - HandHeldMassScannerBorg
- 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
- - 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 }
-
- type: entity
id: BorgModuleTool
parent: [ BaseBorgModule, BaseProviderBorgModule ]
@@ -355,8 +328,8 @@
- Wrench
- Screwdriver
- Wirecutter
- - Multitool
- WelderIndustrial
+ - Multitool
- type: BorgModuleIcon
icon: { sprite: Interface/Actions/actions_borg.rsi, state: tool-module }
@@ -373,6 +346,11 @@
- type: ItemBorgModule
items:
- AppraisalTool
+ - Pen
+ - HandLabeler
+ - RubberStampApproved
+ - RubberStampDenied
+ - RadioHandheld
- type: BorgModuleIcon
icon: { sprite: Interface/Actions/actions_borg.rsi, state: appraisal-module }
@@ -390,15 +368,33 @@
- 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: grappling gun cyborg module
+ 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: traversal cyborg module
components:
- type: Sprite
layers:
@@ -407,7 +403,9 @@
- type: ItemBorgModule
items:
- WeaponGrapplingGun
- - HandheldGPSBasic
+ - BorgFireExtinguisher
+ - BorgHandheldGPSBasic
+ - HandHeldMassScannerBorg
- type: BorgModuleIcon
icon: { sprite: Interface/Actions/actions_borg.rsi, state: grappling-module }
@@ -416,6 +414,7 @@
id: BorgModuleAdvancedTool
parent: [ BaseBorgModuleEngineering, BaseProviderBorgModule ]
name: advanced tool cyborg module
+ description: Advanced engineering module containing cutting-edge tools.
components:
- type: Sprite
layers:
@@ -425,11 +424,9 @@
items:
- JawsOfLife
- PowerDrill
- - Multitool
- WelderExperimental
- - RemoteSignaller
- - GasAnalyzer
- - GeigerCounter
+ - Multitool
+ - RemoteSignallerAdvanced
- type: BorgModuleIcon
icon: { sprite: Interface/Actions/actions_borg.rsi, state: adv-tools-module }
@@ -446,15 +443,20 @@
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:
@@ -463,14 +465,19 @@
- 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:
@@ -479,8 +486,9 @@
- type: ItemBorgModule
items:
- LightReplacer
- - Crowbar
- - Screwdriver
+ - BorgTrashBag
+ - Plunger
+ - SoapNT
- type: BorgModuleIcon
icon: { sprite: Interface/Actions/actions_borg.rsi, state: light-replacer-module }
@@ -496,8 +504,9 @@
- type: ItemBorgModule
items:
- MopItem
- - Bucket
- - TrashBag
+ - BorgBucket
+ - BorgSprayBottle
+ - HoloprojectorBorg
- type: BorgModuleIcon
icon: { sprite: Interface/Actions/actions_borg.rsi, state: cleaning-module }
@@ -505,6 +514,7 @@
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:
@@ -513,10 +523,10 @@
- type: ItemBorgModule
items:
- AdvMopItem
+ - BorgMegaSprayBottle
- HoloprojectorBorg
- - SprayBottleSpaceCleaner
- - Dropper
- - TrashBag
+ - BorgDropper
+ - BorgBeaker
- type: BorgModuleIcon
icon: { sprite: Interface/Actions/actions_borg.rsi, state: adv-cleaning-module }
@@ -538,9 +548,9 @@
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:
@@ -549,18 +559,19 @@
- 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:
@@ -568,14 +579,39 @@
- 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-chem
+ - type: ItemBorgModule
+ items:
+ - HandheldHealthAnalyzerUnpowered
+ - 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:
@@ -584,12 +620,13 @@
- type: ItemBorgModule
items:
- HandheldHealthAnalyzerUnpowered
- - Beaker
- - Beaker
- - BorgDropper
- 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.
@@ -605,11 +642,11 @@
- 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 }
@@ -627,8 +664,9 @@
- AnomalyScanner
- AnomalyLocatorUnpowered
- AnomalyLocatorWideUnpowered
- - RemoteSignaller
- - Multitool
+ - HandLabeler
+ - SheetRGlassLingering0
+ - SheetRPGlassLingering0
- type: BorgModuleIcon
icon: { sprite: Interface/Actions/actions_borg.rsi, state: anomaly-module }
@@ -645,11 +683,12 @@
- 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 }
diff --git a/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml b/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml
index a36bfaf676..87643773db 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/Salvage/ore_bag.yml
@@ -26,3 +26,13 @@
- 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
diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemistry-vials.yml b/Resources/Prototypes/Entities/Objects/Specific/chemistry-vials.yml
index 69da415a48..60441bb475 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/chemistry-vials.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/chemistry-vials.yml
@@ -103,6 +103,63 @@
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
@@ -149,7 +206,7 @@
reagents:
- ReagentId: Chlorine
Quantity: 5
-
+
- type: entity
id: PlasmaChemistryVial
parent: BaseChemistryEmptyVial
diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml
index 0ccc42f54a..ce945ac95b 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml
@@ -94,6 +94,64 @@
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
@@ -314,10 +372,10 @@
- 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
@@ -329,7 +387,7 @@
- type: SolutionContainerManager
solutions:
injector:
- maxVol: 10
+ maxVol: 15
- type: Item
sprite: Objects/Specific/Chemistry/dropper.rsi
@@ -591,7 +649,7 @@
areaInsertRadius: 1
storageInsertSound: /Audio/Effects/pill_insert.ogg
storageRemoveSound: /Audio/Effects/pill_remove.ogg
- whitelist:
+ whitelist:
tags:
- Pill
- type: Dumpable
diff --git a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml
index b64aa3a041..992c3313e2 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/bucket.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/bucket.yml
@@ -68,3 +68,14 @@
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
diff --git a/Resources/Prototypes/Entities/Objects/Tools/gps.yml b/Resources/Prototypes/Entities/Objects/Tools/gps.yml
index becbb638f4..990d0d0437 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/gps.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/gps.yml
@@ -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.
diff --git a/Resources/Prototypes/Entities/Objects/Tools/tools.yml b/Resources/Prototypes/Entities/Objects/Tools/tools.yml
index d84dec120a..71c1e6bf4e 100644
--- a/Resources/Prototypes/Entities/Objects/Tools/tools.yml
+++ b/Resources/Prototypes/Entities/Objects/Tools/tools.yml
@@ -356,7 +356,7 @@
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
diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml b/Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml
index 19bff4a94e..d6d88992d7 100644
--- a/Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml
+++ b/Resources/Prototypes/Recipes/Lathes/Packs/robotics.yml
@@ -11,10 +11,8 @@
- type: latheRecipePack
id: BorgModulesStatic
recipes:
- - BorgModuleCable
- - BorgModuleFireExtinguisher
- - BorgModuleRadiationDetection
- BorgModuleTool
+ - BorgModuleFireExtinguisher
- type: latheRecipePack
id: BorgLimbsStatic
@@ -38,13 +36,8 @@
recipes:
- BorgModuleAdvancedCleaning
- BorgModuleAdvancedTool
- - BorgModuleGPS
- - BorgModuleArtifact
- - BorgModuleAnomaly
- - BorgModuleGardening
- - BorgModuleHarvesting
- - BorgModuleDefibrillator
- - BorgModuleAdvancedTreatment
+ - BorgModuleAdvancedChemical
+ - BorgModuleAdvancedMining
- type: latheRecipePack
id: MechParts
diff --git a/Resources/Prototypes/Recipes/Lathes/robotics.yml b/Resources/Prototypes/Recipes/Lathes/robotics.yml
index 60b762c1f1..15f6d7ea6c 100644
--- a/Resources/Prototypes/Recipes/Lathes/robotics.yml
+++ b/Resources/Prototypes/Recipes/Lathes/robotics.yml
@@ -124,28 +124,20 @@
- 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
+# Cargo Modules
- type: latheRecipe
- parent: BaseBorgModuleRecipe
- id: BorgModuleRadiationDetection
- result: BorgModuleRadiationDetection
-
-- type: latheRecipe
- parent: BaseBorgModuleRecipe
- id: BorgModuleTool
- result: BorgModuleTool
+ parent: BaseGoldBorgModuleRecipe
+ id: BorgModuleAdvancedMining
+ result: BorgModuleAdvancedMining
# Engineering Modules
@@ -165,34 +157,9 @@
- type: latheRecipe
parent: BaseGoldBorgModuleRecipe
- id: BorgModuleAdvancedTreatment
- result: BorgModuleAdvancedTreatment
+ id: BorgModuleAdvancedChemical
+ result: BorgModuleAdvancedChemical
-- type: latheRecipe
- parent: BaseGoldBorgModuleRecipe
- id: BorgModuleDefibrillator
- result: BorgModuleDefibrillator
-
-# Science Modules
-
-- 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
diff --git a/Resources/Prototypes/Research/civilianservices.yml b/Resources/Prototypes/Research/civilianservices.yml
index cdb8225544..55298d05a1 100644
--- a/Resources/Prototypes/Research/civilianservices.yml
+++ b/Resources/Prototypes/Research/civilianservices.yml
@@ -10,8 +10,6 @@
tier: 1
cost: 5000
recipeUnlocks:
- - BorgModuleGardening
- - BorgModuleHarvesting
- SeedExtractorMachineCircuitboard
- HydroponicsTrayMachineCircuitboard
- ReagentGrinderIndustrialMachineCircuitboard
@@ -71,18 +69,6 @@
- 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
@@ -131,7 +117,7 @@
- CryostasisBeaker
- SyringeCryostasis
-- type: technology
+- type: technology # Merge with other T2 medical research if possible!
id: MechanizedTreatment
name: research-technology-mechanized-treatment
icon:
@@ -141,8 +127,7 @@
tier: 2
cost: 5000
recipeUnlocks:
- - BorgModuleAdvancedTreatment
- - BorgModuleDefibrillator
+ - BorgModuleAdvancedChemical
- type: technology
id: AdvancedCleaning
@@ -156,6 +141,7 @@
recipeUnlocks:
- AdvMopItem
- MegaSprayBottle
+ - BorgModuleAdvancedCleaning
- type: technology
id: HONKMech
diff --git a/Resources/Prototypes/Research/experimental.yml b/Resources/Prototypes/Research/experimental.yml
index da3c053c68..b5646de7e7 100644
--- a/Resources/Prototypes/Research/experimental.yml
+++ b/Resources/Prototypes/Research/experimental.yml
@@ -25,7 +25,6 @@
- AnomalyScanner
- AnomalyLocator
- AnomalyLocatorWide
- - BorgModuleAnomaly
- APECircuitboard
- AnomalyVesselCircuitboard
@@ -40,7 +39,6 @@
cost: 5000
recipeUnlocks:
- NodeScanner
- - BorgModuleArtifact
- AnalysisComputerCircuitboard
- ArtifactAnalyzerMachineCircuitboard
diff --git a/Resources/Prototypes/Research/industrial.yml b/Resources/Prototypes/Research/industrial.yml
index c0f184f71b..c9c9520894 100644
--- a/Resources/Prototypes/Research/industrial.yml
+++ b/Resources/Prototypes/Research/industrial.yml
@@ -27,8 +27,7 @@
recipeUnlocks:
- RadarConsoleCircuitboard
- HandHeldMassScanner
- - BorgModuleGPS
-
+
- type: technology
id: AdvancedPowercells
name: research-technology-advanced-powercells
@@ -182,6 +181,7 @@
- OreBagOfHolding
- MiningDrillDiamond
- AdvancedMineralScannerEmpty
+ - BorgModuleAdvancedMining
# Tier 3
diff --git a/Resources/Prototypes/borg_types.yml b/Resources/Prototypes/borg_types.yml
index 2f1eb21b1f..1c49713e26 100644
--- a/Resources/Prototypes/borg_types.yml
+++ b/Resources/Prototypes/borg_types.yml
@@ -14,7 +14,8 @@
defaultModules:
- BorgModuleTool
-
+ - BorgModuleArtifact
+ - BorgModuleAnomaly
radioChannels:
- Science
@@ -81,10 +82,10 @@
- BorgModuleCargo
defaultModules:
- - BorgModuleMining
- - BorgModuleGrapplingGun
- - BorgModuleAppraisal
- BorgModuleTool
+ - BorgModuleMining
+ - BorgModuleTraversal
+ - BorgModuleAppraisal
radioChannels:
- Supply
@@ -118,8 +119,9 @@
- BorgModuleJanitor
defaultModules:
- - BorgModuleLightReplacer
+ - BorgModuleTool
- BorgModuleCleaning
+ - BorgModuleCustodial
radioChannels:
- Science
@@ -153,7 +155,10 @@
- BorgModuleMedical
defaultModules:
- - BorgModuleTreatment
+ - BorgModuleTool
+ - BorgModuleChemical
+ - BorgModuleTopicals
+ - BorgModuleRescue
radioChannels:
- Science
@@ -200,10 +205,12 @@
- BorgModuleService
defaultModules:
+ - BorgModuleTool
- BorgModuleMusique
- BorgModuleService
- BorgModuleClowning
-
+ - BorgModuleGardening
+ - BorgModuleHarvesting
radioChannels:
- Science
- Service
diff --git a/Resources/ServerInfo/Guidebook/Science/Cyborgs.xml b/Resources/ServerInfo/Guidebook/Science/Cyborgs.xml
index c1507ca539..9015ef59af 100644
--- a/Resources/ServerInfo/Guidebook/Science/Cyborgs.xml
+++ b/Resources/ServerInfo/Guidebook/Science/Cyborgs.xml
@@ -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]
-
@@ -56,7 +55,7 @@
-
+
[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
index 0000000000..39020fb819
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
index 0000000000..36f6f8da44
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
index 0000000000..d1a71fa4ca
Binary files /dev/null and b/Resources/Textures/Interface/Actions/actions_borg.rsi/chem-module.png differ
diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json b/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json
index 2ebb6eddcf..884e922ac8 100644
--- a/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json
+++ b/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json
@@ -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"
},
@@ -61,6 +64,12 @@
{
"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
index 0000000000..857580355d
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
index 0000000000..a517885b1b
Binary files /dev/null and b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-mining-adv.png differ
diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json
index cb48ef147b..3a25fbc953 100644
--- a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json
+++ b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/meta.json
@@ -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"
},
diff --git a/Resources/migration.yml b/Resources/migration.yml
index 74b2ca987f..742429bbec 100644
--- a/Resources/migration.yml
+++ b/Resources/migration.yml
@@ -540,6 +540,10 @@ LightTree06: LightTree
DrinkIrishCarBomb: DrinkIrishSlammer
# 2025-01-06
+BorgModuleRadiationDetection: null
+BorgModuleGPS: null
+BorgModuleLightReplacer: BorgModuleCustodial
+BorgModuleAdvancedTreatment: null
ClothingMaskSexyClown: ClothingMaskBlushingClown
ClothingMaskSexyMime: ClothingMaskBlushingMime