Miscellaneous Injector fixes + BorgHypo fill sprites. (#41932)

* Various fixes

* Fix Gorlex Hypo not showing visuals

* Give Borg Hypo Fill sprites

* Bluespace Syringe speed increase

* fix

* one whitespace change

* Undo debug change

* Replaced String Message with better

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
This commit is contained in:
Sir Warock
2026-04-04 16:57:19 +02:00
committed by BarryNorfolk
co-authored by Princess Cheeseballs
parent f5801718a3
commit b4d182348c
7 changed files with 81 additions and 61 deletions
@@ -284,6 +284,13 @@ public sealed partial class InjectorSystem : EntitySystem
} }
else else
{ {
// Check if we have anything to inject.
if (injectorSolution.Volume == 0)
{
_popup.PopupClient(Loc.GetString("injector-component-empty-message", ("injector", injector)), target, user);
return false;
}
// additional delay is based on actual volume left to inject in syringe when smaller than transfer amount // additional delay is based on actual volume left to inject in syringe when smaller than transfer amount
// If CurrentTransferAmount is null, it'll want to inject its entire contents, e.g., epipens. // If CurrentTransferAmount is null, it'll want to inject its entire contents, e.g., epipens.
amount = injector.Comp.CurrentTransferAmount ?? injectorSolution.Volume; amount = injector.Comp.CurrentTransferAmount ?? injectorSolution.Volume;
@@ -349,7 +356,7 @@ public sealed partial class InjectorSystem : EntitySystem
if (!_solutionContainer.TryGetDrawableSolution(target, out _, out var drawableSol)) if (!_solutionContainer.TryGetDrawableSolution(target, out _, out var drawableSol))
{ {
_popup.PopupClient(Loc.GetString("injector-component-cannot-transfer-message", ("target", Identity.Entity(target, EntityManager))), injector, user); _popup.PopupClient(Loc.GetString("injector-component-cannot-draw-message", ("target", Identity.Entity(target, EntityManager))), injector, user);
return false; return false;
} }
@@ -511,7 +518,7 @@ public sealed partial class InjectorSystem : EntitySystem
else else
_solutionContainer.Refill(target, targetSolution, removedSolution); _solutionContainer.Refill(target, targetSolution, removedSolution);
LocId msgSuccess = target == user ? "injector-component-transfer-success-message-self" : "injector-component-transfer-success-message"; LocId msgSuccess = target == user ? "injector-component-inject-success-message-self" : "injector-component-inject-success-message";
if (selfEv.OverrideMessage != null) if (selfEv.OverrideMessage != null)
msgSuccess = selfEv.OverrideMessage; msgSuccess = selfEv.OverrideMessage;
@@ -12,12 +12,12 @@ injector-component-inject-mode-name = Inject
injector-component-draw-mode-name = Draw injector-component-draw-mode-name = Draw
injector-component-dynamic-mode-name = Dynamic injector-component-dynamic-mode-name = Dynamic
injector-component-mode-changed-text = Now {$mode} injector-component-mode-changed-text = Now {$mode}
injector-component-inject-success-message = You inject {$amount}u into {THE($target)}!
injector-component-inject-success-message-self = You inject {$amount}u into yourself!
injector-component-transfer-success-message = You transfer {$amount}u into {THE($target)}. injector-component-transfer-success-message = You transfer {$amount}u into {THE($target)}.
injector-component-transfer-success-message-self = You transfer {$amount}u into yourself. injector-component-transfer-success-message-self = You transfer {$amount}u into yourself.
injector-component-inject-success-message = You inject {$amount}u into {THE($target)}!
injector-component-inject-success-message-self = You inject {$amount}u into yourself!
injector-component-draw-success-message = You draw {$amount}u from {THE($target)}. injector-component-draw-success-message = You draw {$amount}u from {THE($target)}.
injector-component-draw-success-message-self = You draw {$amount}u from youself. injector-component-draw-success-message-self = You draw {$amount}u from yourself.
## Fail Messages ## Fail Messages
@@ -33,10 +33,10 @@ injector-component-blocked-user = Protective gear blocked your injection!
injector-component-blocked-other = {CAPITALIZE(THE(POSS-ADJ($target)))} armor blocked {THE($user)}'s injection! injector-component-blocked-other = {CAPITALIZE(THE(POSS-ADJ($target)))} armor blocked {THE($user)}'s injection!
injector-component-cannot-transfer-message = You aren't able to transfer into {THE($target)}! injector-component-cannot-transfer-message = You aren't able to transfer into {THE($target)}!
injector-component-cannot-transfer-message-self = You aren't able to transfer into yourself! injector-component-cannot-transfer-message-self = You aren't able to transfer into yourself!
injector-component-cannot-draw-message = You aren't able to draw from {THE($target)}!
injector-component-cannot-draw-message-self = You aren't able to draw from yourself!
injector-component-cannot-inject-message = You aren't able to inject into {THE($target)}! injector-component-cannot-inject-message = You aren't able to inject into {THE($target)}!
injector-component-cannot-inject-message-self = You aren't able to inject into yourself! injector-component-cannot-inject-message-self = You aren't able to inject into yourself!
injector-component-cannot-draw-message = You aren't able to draw from {THE($target)}!
injector-component-cannot-draw-message-self = You aren't able to draw from yourself!
injector-component-ignore-mobs = This injector can only interact with containers! injector-component-ignore-mobs = This injector can only interact with containers!
## mob-inject doafter messages ## mob-inject doafter messages
@@ -14,6 +14,7 @@
solution: hypospray solution: hypospray
- type: ExaminableSolution - type: ExaminableSolution
solution: hypospray solution: hypospray
exactVolume: true
- type: Appearance - type: Appearance
- type: entity - type: entity
@@ -50,7 +51,6 @@
- HighRiskItem - HighRiskItem
- type: StealTarget - type: StealTarget
stealGroup: Hypospray stealGroup: Hypospray
- type: Appearance
- type: SolutionContainerVisuals - type: SolutionContainerVisuals
maxFillLevels: 6 maxFillLevels: 6
fillBaseName: hypo_fill fillBaseName: hypo_fill
@@ -89,7 +89,12 @@
components: components:
- type: Sprite - type: Sprite
sprite: Objects/Specific/Medical/hypospray.rsi sprite: Objects/Specific/Medical/hypospray.rsi
state: borghypo layers:
- state: borghypo
map: [ "enum.SolutionContainerLayers.Base" ]
- state: borghypo_fill1
map: [ "enum.SolutionContainerLayers.Fill" ]
visible: false
- type: Item - type: Item
sprite: Objects/Specific/Medical/hypospray.rsi sprite: Objects/Specific/Medical/hypospray.rsi
- type: SolutionContainerManager - type: SolutionContainerManager
@@ -100,6 +105,10 @@
solution: hypospray solution: hypospray
- type: ExaminableSolution - type: ExaminableSolution
solution: hypospray solution: hypospray
- type: SolutionContainerVisuals
maxFillLevels: 2
fillBaseName: borghypo_fill
solutionName: hypospray
- type: UseDelay - type: UseDelay
delay: 0.5 delay: 0.5
@@ -220,7 +229,6 @@
activeModeProtoId: HyposprayInjectMode activeModeProtoId: HyposprayInjectMode
allowedModes: allowedModes:
- HyposprayInjectMode - HyposprayInjectMode
- type: Appearance
- type: SolutionContainerVisuals - type: SolutionContainerVisuals
maxFillLevels: 1 maxFillLevels: 1
changeColor: false changeColor: false
@@ -548,7 +556,6 @@
layers: layers:
- state: hypovolemic - state: hypovolemic
map: [ "enum.SolutionContainerLayers.Fill" ] map: [ "enum.SolutionContainerLayers.Fill" ]
- type: Appearance
- type: SolutionContainerVisuals - type: SolutionContainerVisuals
maxFillLevels: 1 maxFillLevels: 1
changeColor: false changeColor: false
Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 517 B

After

Width:  |  Height:  |  Size: 532 B

@@ -1,53 +1,59 @@
{ {
"version": 1, "version": 1,
"license": "CC-BY-SA-3.0", "license": "CC-BY-SA-3.0",
"copyright": "Taken from vgstation at commit https://github.com/vgstation-coders/vgstation13/commit/1cdfb0230cc96d0ba751fa002d04f8aa2f25ad7d, modified with fill sprites by SlamBamActionman (github)", "copyright": "Taken from vgstation at commit https://github.com/vgstation-coders/vgstation13/commit/1cdfb0230cc96d0ba751fa002d04f8aa2f25ad7d, modified with fill sprites by SlamBamActionman (github), borghypo fill sprites by SirWarock (Github)",
"size": { "size": {
"x": 32, "x": 32,
"y": 32 "y": 32
},
"states": [
{
"name": "borghypo"
}, },
{ "states": [
"name": "borghypo_s" {
}, "name": "borghypo"
{ },
"name": "combat_hypo" {
}, "name": "borghypo_s"
{ },
"name": "hypo" {
}, "name": "borghypo_fill1"
{ },
"name": "hypo_fill1" {
}, "name": "borghypo_fill2"
{ },
"name": "hypo_fill2" {
}, "name": "combat_hypo"
{ },
"name": "hypo_fill3" {
}, "name": "hypo"
{ },
"name": "hypo_fill4" {
}, "name": "hypo_fill1"
{ },
"name": "hypo_fill5" {
}, "name": "hypo_fill2"
{ },
"name": "hypo_fill6" {
}, "name": "hypo_fill3"
{ },
"name": "inhand-left", {
"directions": 4 "name": "hypo_fill4"
}, },
{ {
"name": "inhand-right", "name": "hypo_fill5"
"directions": 4 },
}, {
{ "name": "hypo_fill6"
"name": "equipped-BELT", },
"directions": 4 {
} "name": "inhand-left",
] "directions": 4
},
{
"name": "inhand-right",
"directions": 4
},
{
"name": "equipped-BELT",
"directions": 4
}
]
} }