Add jet injectors (#40076)

This commit is contained in:
Vanessa 2025-12-24 20:40:23 -06:00
parent 504aecba37
commit 4530e78e86
25 changed files with 208 additions and 8 deletions

View File

@ -174,3 +174,8 @@
license: "CC0-1.0"
copyright: "Created by romulofs, converted to OGG, and edited by TiniestShark (Github)"
source: "https://freesound.org/s/127541/"
- files: ["jet_injector.ogg"]
license: "CC-BY-3.0"
copyright: "Orginal audio by EminYILDIRIM -- https://freesound.org/s/548009/ -- License: Attribution 4.0, 2imitk -- https://freesound.org/s/279044/ -- License: Attribution 3.0 and brunoboselli -- https://freesound.org/s/457294/ -- License: Creative Commons 0, modified by Princess-Cheeseballs (GitHub)"
source: "https://github.com/space-wizards/space-station-14/pull/40076"

Binary file not shown.

View File

@ -44,6 +44,8 @@ injector-component-needle-injecting-user = You start injecting the needle.
injector-component-needle-injecting-target = {CAPITALIZE(THE($user))} is trying to inject a needle into you!
injector-component-needle-drawing-user = You start drawing the needle.
injector-component-needle-drawing-target = {CAPITALIZE(THE($user))} is trying to use a needle to draw from you!
injector-component-spray-injecting-user = You start preparing the spray nozzle.
injector-component-spray-injecting-target = {CAPITALIZE(THE($user))} is trying to place a spray nozzle onto you!
## Target Popup Success messages
injector-component-feel-prick-message = You feel a tiny prick!

View File

@ -68,6 +68,7 @@
- id: UniformScrubsColorPurple
weight: 0.05
- id: ClothingMaskSterile
- id: JetInjector
- type: entity
parent: LockerMedical
@ -140,6 +141,7 @@
- id: HandheldGPSBasic
- id: MedkitFilled
prob: 0.3
- id: JetInjector
- type: entity
parent: LockerParamedic

View File

@ -37,19 +37,20 @@
Brutepack: 5
Ointment: 5
Bloodpack: 5
Tourniquet: 2
ChemistryBottleEpinephrine: 3
Syringe: 8 # DeltaV - was 5
JetInjector: 2
BoxBottle: 4 # DeltaV - was 3
Portafib: 1 # DeltaV - Add Portafibs, see Prototypes/_DV/Entities/Objects/Devices/Medical/portafib.yml
ClothingEyesHudMedical: 3 # DeltaV - was 2
ClothingEyesEyepatchHudMedical: 2
ChemistryBottleEpinephrine: 3
ChemistryBottleBicaridine: 1
PillCanisterTricordrazine: 3
PillCanisterIron: 1
PillCanisterCopper: 1
PillCanisterPotassiumIodide: 1
SyringeIpecac: 1
ClothingEyesEyepatchHudMedical: 2
Tourniquet: 2
contrabandInventory:
PillCanisterRandom: 3
PillSpaceDrugs: 3

View File

@ -43,6 +43,7 @@
abstract: true
id: BaseBluespaceSyringeMode
mobTime: 2.5
delayPerVolume: 0.05
transferAmounts:
- 5
- 10
@ -95,24 +96,59 @@
## Hyposprays
- type: injectorMode
abstract: true
id: HyposprayBaseMode
id: BaseHyposprayMode
injectSound: /Audio/Items/hypospray.ogg
injectPopupTarget: injector-component-feel-prick-message
injectOnUse: true
mobTime: 0
delayPerVolume: 0
transferAmounts:
- 5
- type: injectorMode
parent: [ HyposprayBaseMode, BaseInjectMode ]
abstract: true
parent: BaseHyposprayMode
id: BaseInstantHyposprayMode
mobTime: 0
- type: injectorMode
parent: [ BaseInstantHyposprayMode, BaseInjectMode ]
id: HyposprayInjectMode
- type: injectorMode
parent: [ HyposprayBaseMode, BaseDynamicMode ]
parent: [ BaseInstantHyposprayMode, BaseDynamicMode ]
id: HyposprayDynamicMode
- type: injectorMode
parent: HyposprayDynamicMode
id: HypopenDynamicMode
containerDrawTime: 0.75
- type: injectorMode
abstract: true
parent: BaseHyposprayMode
id: BaseJetInjectorMode
injectSound: /Audio/Items/jet_injector.ogg
popupUserAttempt: injector-component-spray-injecting-user
popupTargetAttempt: injector-component-spray-injecting-target
- type: injectorMode
parent: [ BaseJetInjectorMode, BaseInjectMode ]
id: JetInjectorInjectMode
- type: injectorMode
parent: [ BaseJetInjectorMode, BaseDynamicMode ]
id: JetInjectorDynamicMode
- type: injectorMode
abstract: true
parent: BaseJetInjectorMode
id: BaseAdvancedJetInjectorMode
mobTime: 2.5
- type: injectorMode
parent: [ BaseAdvancedJetInjectorMode, BaseInjectMode ]
id: AdvancedJetInjectorInjectMode
- type: injectorMode
parent: [ BaseAdvancedJetInjectorMode, BaseDynamicMode ]
id: AdvancedJetInjectorDynamicMode

View File

@ -79,7 +79,7 @@
- type: entity
parent: BaseHypospray
id: BorgHypo
name: borg hypo
name: borghypo
description: A sterile injector for rapid administration of drugs to patients. A cheaper and more specialised version for medical borgs.
components:
- type: Sprite
@ -98,6 +98,68 @@
- type: UseDelay
delay: 0.5
- type: entity
parent: BaseHypospray
id: JetInjector
name: jet injector
description: A sterile injector for convenient administration of drugs to patients.
components:
- type: Sprite
sprite: Objects/Specific/Medical/jetinjector.rsi
layers:
- state: jetinjector_base
map: [ "enum.SolutionContainerLayers.Base" ]
- state: jetinjector_filled1
map: [ "enum.SolutionContainerLayers.Fill" ]
visible: false
- type: Item
sprite: Objects/Specific/Medical/jetinjector.rsi
- type: UseDelay
delay: 2.0
- type: SolutionContainerManager
solutions:
hypospray:
maxVol: 15
- type: SolutionContainerVisuals
maxFillLevels: 3
fillBaseName: jetinjector_filled
solutionName: hypospray
- type: Injector
solutionName: hypospray
currentTransferAmount: null # Inject everything on injection.
activeModeProtoId: JetInjectorDynamicMode
allowedModes:
- JetInjectorDynamicMode
- JetInjectorInjectMode
- type: entity
parent: JetInjector
id: AdvancedJetInjector
name: advanced jet injector
description: A pristine, fashionable, high quality injector. Allows for a faster injection, with a slightly larger capacity.
components:
- type: Sprite
sprite: Objects/Specific/Medical/advanced_jetinjector.rsi
layers:
- state: jetinjector_base
map: [ "enum.SolutionContainerLayers.Base" ]
- state: jetinjector_filled1
map: [ "enum.SolutionContainerLayers.Fill" ]
visible: false
- type: Item
sprite: Objects/Specific/Medical/advanced_jetinjector.rsi
- type: SolutionContainerManager
solutions:
hypospray:
maxVol: 20
- type: SolutionContainerVisuals
maxFillLevels: 4
- type: Injector
activeModeProtoId: AdvancedJetInjectorDynamicMode
allowedModes:
- AdvancedJetInjectorDynamicMode
- AdvancedJetInjectorInjectMode
- type: entity
name: experimental hypospray
suffix: Admeme

View File

@ -54,6 +54,7 @@
- WhiteCane
- OffsetCane
- OffsetCaneWood
- JetInjector
- type: latheRecipePack
id: RollerBedsStatic
@ -109,6 +110,7 @@
- SyringeBluespace
- LauncherSyringe
- MiniSyringe
- AdvancedJetInjector
- type: latheRecipePack
parent:

View File

@ -252,3 +252,27 @@
Glass: 100
Plastic: 100
- type: latheRecipe
id: JetInjector
result: JetInjector
categories:
- Tools
completetime: 5
materials:
Steel: 500
Glass: 500
Plastic: 250
Silver: 250
- type: latheRecipe
id: AdvancedJetInjector
result: AdvancedJetInjector
categories:
- Tools
completetime: 5
materials:
Steel: 500
Glass: 500
Plastic: 250
Silver: 400
Gold: 50 # A bit of gold for the gold ornaments on it!

View File

@ -145,6 +145,7 @@
cost: 5000
recipeUnlocks:
- BorgModuleAdvancedChemical
- AdvancedJetInjector
- type: technology
id: AdvancedCleaning

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 384 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

View File

@ -0,0 +1,34 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Sprites made by @Sir_Warock on Discord, remastered by @Phantasai on Github",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "jetinjector_base"
},
{
"name": "jetinjector_filled1"
},
{
"name": "jetinjector_filled2"
},
{
"name": "jetinjector_filled3"
},
{
"name": "jetinjector_filled4"
},
{
"name": "inhand-left",
"directions": 4
},
{
"name": "inhand-right",
"directions": 4
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 381 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 388 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 B

View File

@ -0,0 +1,31 @@
{
"version": 1,
"license": "CC-BY-SA-3.0",
"copyright": "Sprites made by @Sir_Warock on Discord, remastered by @Phantasai on Github",
"size": {
"x": 32,
"y": 32
},
"states": [
{
"name": "jetinjector_base"
},
{
"name": "jetinjector_filled1"
},
{
"name": "jetinjector_filled2"
},
{
"name": "jetinjector_filled3"
},
{
"name": "inhand-left",
"directions": 4
},
{
"name": "inhand-right",
"directions": 4
}
]
}