gun, ref AmmoShotEvent args)
+ {
+ foreach (var projectile in args.FiredProjectiles)
+ if (TryComp(projectile, out SolutionInjectOnEmbedComponent? inject))
+ {
+ inject.Shot = true;
+ inject.PierceArmor = gun.Comp.PierceArmor;
+ }
+ }
+
+}
diff --git a/Content.Shared/_Goobstation/Weapons/Ranged/SyringeGunComponent.cs b/Content.Shared/_Goobstation/Weapons/Ranged/SyringeGunComponent.cs
new file mode 100644
index 00000000000..fd0cef1a826
--- /dev/null
+++ b/Content.Shared/_Goobstation/Weapons/Ranged/SyringeGunComponent.cs
@@ -0,0 +1,13 @@
+using Robust.Shared.GameStates;
+
+namespace Content.Shared._Goobstation.Weapons.Ranged;
+
+///
+/// Component that allows guns to instantly inject all the contents of any syringe on a target.
+///
+[RegisterComponent]
+public sealed partial class SyringeGunComponent : Component
+{
+ [DataField]
+ public bool PierceArmor;
+}
diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl
index 82c80dab1f4..acba66d74bb 100644
--- a/Resources/Locale/en-US/store/uplink-catalog.ftl
+++ b/Resources/Locale/en-US/store/uplink-catalog.ftl
@@ -213,6 +213,9 @@ uplink-decoy-kit-desc = State-of-the-art distraction technology straight from RN
uplink-chemistry-kit-name = Chemical Synthesis Kit
uplink-chemistry-kit-desc = A starter kit for the aspiring chemist, includes toxin and vestine for all your criminal needs!
+uplink-dart-syringe-gun-name = Dart Syringe Gun
+uplink-dart-syringe-gun-desc = A gun that takes in syringes as ammunition, and injects their contents on its victims. Can pierce through armor.
+
uplink-knives-kit-name = Throwing Knives Kit
uplink-knives-kit-desc = A set of 4 syndicate branded throwing knives, perfect for embedding into the body of your victims.
diff --git a/Resources/Locale/ru-RU/backmen/research/technologies.ftl b/Resources/Locale/ru-RU/backmen/research/technologies.ftl
index 0bed66c01d8..6b7d798291a 100644
--- a/Resources/Locale/ru-RU/backmen/research/technologies.ftl
+++ b/Resources/Locale/ru-RU/backmen/research/technologies.ftl
@@ -3,3 +3,4 @@ research-technology-metempsychosis = Метемпсихоз
research-technology-navigation = Навигация
research-technology-psionic-countermeasures = Псионические контрмеры
research-technology-teleportation = Телепортация
+research-technology-medical-defense = Экстремальные методы контроля
diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml
index fbf4e69f91f..e87e6a9d19f 100644
--- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml
+++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml
@@ -244,6 +244,8 @@
- id: FlatpackMetempsychoticMachine # backmen
- id: MedicalBiofabMachineBoard # backmen
- id: MedTekCartridge
+ - id: RapidSyringeGun # backmen
+ - id: BoxSyringePax # backmen
# Hardsuit table, used for suit storage as well
- type: entityTable
diff --git a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml
index edaa8288145..5230e009181 100644
--- a/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml
+++ b/Resources/Prototypes/Entities/Objects/Specific/chemistry.yml
@@ -359,6 +359,40 @@
maxVol: 15
- type: Injector
injectOnly: false
+ # GoobStation Start - Added embeddable properties for syringe gun
+ - type: EmbeddableProjectile
+ offset: "-0.1,0"
+ minimumSpeed: 3
+ removalTime: 0.25
+ embedOnThrow: true
+ - type: SolutionInjectOnEmbed
+ transferAmount: 2
+ solution: injector
+ - type: Fixtures
+ fixtures:
+ fix1:
+ shape: !type:PhysShapeCircle
+ radius: 0.2
+ density: 5
+ mask:
+ - ItemMask
+ restitution: 0.3
+ friction: 0.2
+ projectile:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "-0.1,-0.3,0.1,0.3"
+ hard: false
+ mask:
+ - Impassable
+ - BulletImpassable
+ - type: Projectile
+ deleteOnCollide: false
+ onlyCollideWhenShot: true
+ damage:
+ types:
+ Piercing: 5
+ # GoobStation End
- type: ExaminableSolution
solution: injector
- type: Spillable
@@ -374,6 +408,7 @@
- type: Tag
tags:
- Syringe
+ - SyringeGunAmmo # GoobStation
- type: entity
parent: BaseSyringe
@@ -386,6 +421,7 @@
tags:
- Syringe
- Trash
+ - SyringeGunAmmo # GoobStation
- type: entity
name: mini syringe
@@ -409,7 +445,7 @@
offset: "-0.1,0"
minimumSpeed: 3
removalTime: 0.25
- embedOnThrow: false
+ embedOnThrow: true
- type: SolutionInjectWhileEmbedded
transferAmount: 1
solution: injector
@@ -589,7 +625,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/Weapons/Guns/pneumatic_cannon.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml
index 63a7acd2576..273c428ff38 100644
--- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml
+++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml
@@ -103,7 +103,7 @@
containers:
storagebase: !type:Container
ents: []
-
+
- type: entity
name: syringe gun
parent: BaseStorageItem
diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
index f6c3ec65ad5..28fdf346fce 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml
@@ -786,6 +786,7 @@
- WeaponFlareGunSecurity
- WeaponLaserCarbinePractice
- Zipties
+ - SyringeGun #Goobstation
dynamicRecipes:
- BoxBeanbag
- BoxShotgunIncendiary
@@ -842,6 +843,7 @@
- ClothingHeadHelmetInsulated
- ShellSoulbreaker
- WeaponXrayCannon
+ - RapidSyringeGun # Goobstation
- SecurityCyberneticEyes # Shitmed Change
- MedicalCyberneticEyes # Shitmed Change
- type: MaterialStorage
@@ -963,6 +965,7 @@
- Hemostat
- ClothingEyesGlassesChemical
- WhiteCane
+ - SyringeGun # backmen
dynamicRecipes:
- ChemicalPayload
- CryostasisBeaker
@@ -970,12 +973,14 @@
- SyringeBluespace
- SyringeCryostasis
- BluespacePillCanister # backmen
- # Shitmed Change
+ - RapidSyringeGun # backmen
+ # Shitmed Change start
- EnergyScalpel
- EnergyCautery
- AdvancedRetractor
- OmnimedTool
- MedicalCyberneticEyes
+ # Shitmed Change end
- type: Machine
board: MedicalTechFabCircuitboard
- type: StealTarget
diff --git a/Resources/Prototypes/Research/civilianservices.yml b/Resources/Prototypes/Research/civilianservices.yml
index df194c27e7d..c93af79b1fd 100644
--- a/Resources/Prototypes/Research/civilianservices.yml
+++ b/Resources/Prototypes/Research/civilianservices.yml
@@ -188,6 +188,19 @@
recipeUnlocks:
- CargoTelepadMachineCircuitboard
+# GoobStation - Why civilian? Because fuck you.
+- type: technology
+ id: MedicalDefense
+ name: research-technology-medical-defense
+ icon:
+ sprite: _Goobstation/Objects/Weapons/Guns/Cannons/syringe_gun.rsi
+ state: rapid-syringe-gun
+ discipline: CivilianServices
+ tier: 2
+ cost: 10000
+ recipeUnlocks:
+ - RapidSyringeGun
+
# Tier 3
- type: technology
diff --git a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml
index 46847fde32f..bfa2be1d0d7 100644
--- a/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml
+++ b/Resources/Prototypes/Roles/Jobs/Medical/chief_medical_officer.yml
@@ -60,7 +60,7 @@
equipment:
id: CMOPDA
ears: ClothingHeadsetCMO
- belt: ClothingBeltMedicalFilled
+ belt: ClothingBeltMilitaryWebbingCMOFilled # Goobstation
storage:
back:
- Flash
diff --git a/Resources/Prototypes/_Backmen/Catalog/uplink_catalog.yml b/Resources/Prototypes/_Backmen/Catalog/uplink_catalog.yml
index ebc087b4b7d..4db1d6f8d6b 100644
--- a/Resources/Prototypes/_Backmen/Catalog/uplink_catalog.yml
+++ b/Resources/Prototypes/_Backmen/Catalog/uplink_catalog.yml
@@ -162,3 +162,22 @@
Telecrystal: 10
categories:
- UplinkDeception
+
+- type: listing
+ id: UplinkDartSyringeGun
+ name: uplink-dart-syringe-gun-name
+ description: uplink-dart-syringe-gun-desc
+ icon: { sprite: /Textures/_Goobstation/Objects/Weapons/Guns/Cannons/syringe_gun.rsi, state: dart-syringe-gun }
+ productEntity: DartSyringeGun
+ cost:
+ Telecrystal: 30 # goob
+ categories:
+ - UplinkChemicals
+ conditions:
+ - !type:BuyerJobCondition
+ whitelist:
+ - MedicalDoctor
+ - MedicalIntern
+ - Psychologist
+ - Chemist
+ - Paramedic
diff --git a/Resources/Prototypes/_Backmen/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml b/Resources/Prototypes/_Backmen/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml
new file mode 100644
index 00000000000..55faf16a199
--- /dev/null
+++ b/Resources/Prototypes/_Backmen/Entities/Objects/Weapons/Guns/pneumatic_cannon.yml
@@ -0,0 +1,84 @@
+- type: entity
+ name: syringe gun
+ parent: [ BaseStorageItem, BaseMedicalContraband ]
+ id: SyringeGun
+ description: A gun that allows you to fire syringes and instantly inject their contents on a target.
+ components:
+ - type: Sprite
+ sprite: _Goobstation/Objects/Weapons/Guns/Cannons/syringe_gun.rsi
+ layers:
+ - state: syringe-gun
+ - type: Storage
+ maxItemSize: Tiny
+ grid:
+ - 0,0,0,0
+ whitelist:
+ tags:
+ - SyringeGunAmmo
+ - type: Gun
+ fireRate: 1
+ soundGunshot:
+ path: /Audio/Weapons/Guns/Gunshots/syringe_gun.ogg
+ soundEmpty:
+ path: /Audio/Weapons/Guns/Empty/empty.ogg
+ clumsyProof: true
+ - type: ContainerAmmoProvider
+ container: storagebase
+ - type: Item
+ size: Large
+ shape:
+ - 0,0,4,0
+ - type: ContainerContainer
+ containers:
+ storagebase: !type:Container
+ ents: []
+ - type: SyringeGun
+
+
+- type: entity
+ name: rapid syringe gun
+ parent: SyringeGun
+ id: RapidSyringeGun
+ description: An upgraded version of the syringe gun featuring a faster fire rate and a bigger magazine.
+ components:
+ - type: Sprite
+ sprite: _Goobstation/Objects/Weapons/Guns/Cannons/syringe_gun.rsi
+ layers:
+ - state: rapid-syringe-gun
+ - type: Storage
+ maxItemSize: Tiny
+ grid:
+ - 0,0,2,1
+ whitelist:
+ tags:
+ - SyringeGunAmmo
+ - type: Gun
+ fireRate: 1.5
+
+- type: entity
+ name: dart syringe gun
+ parent: [ SyringeGun, BaseSyndicateContraband ]
+ id: DartSyringeGun
+ description: An illegally modified version of the syringe gun that allows projectiles to pierce through armor.
+ components:
+ - type: Sprite
+ sprite: _Goobstation/Objects/Weapons/Guns/Cannons/syringe_gun.rsi
+ layers:
+ - state: dart-syringe-gun
+ - type: Storage
+ maxItemSize: Tiny
+ grid:
+ - 0,0,0,0
+ whitelist:
+ tags:
+ - SyringeGunAmmo
+ - type: Gun
+ fireRate: 1
+ - type: Item
+ size: Small
+ shape:
+ - 0,0,1,0
+ - type: SyringeGun
+ pierceArmor: true
+
+# TODO: Add the proper dart gun that regenerates every 25s, and draws from a 100u reservoir
diff --git a/Resources/Prototypes/_Backmen/Recipes/Lathes/medical.yml b/Resources/Prototypes/_Backmen/Recipes/Lathes/medical.yml
new file mode 100644
index 00000000000..ca3b606cd57
--- /dev/null
+++ b/Resources/Prototypes/_Backmen/Recipes/Lathes/medical.yml
@@ -0,0 +1,21 @@
+- type: latheRecipe
+ id: SyringeGun
+ result: SyringeGun
+ completetime: 5
+ materials:
+ Steel: 500
+ Glass: 500
+ Plastic: 500
+ Gold: 100
+ Plasma: 100
+
+- type: latheRecipe
+ id: RapidSyringeGun
+ result: RapidSyringeGun
+ completetime: 5
+ materials:
+ Steel: 1000
+ Glass: 1000
+ Plastic: 1000
+ Gold: 200
+ Plasma: 200
diff --git a/Resources/Prototypes/_Goobstation/Catalog/Fills/Belt/belts.yml b/Resources/Prototypes/_Goobstation/Catalog/Fills/Belt/belts.yml
new file mode 100644
index 00000000000..d1ee38ff8d1
--- /dev/null
+++ b/Resources/Prototypes/_Goobstation/Catalog/Fills/Belt/belts.yml
@@ -0,0 +1,18 @@
+- type: entity
+ parent: ClothingBeltMilitaryWebbingCMO
+ id: ClothingBeltMilitaryWebbingCMOFilled
+ name: chief medical officer's chest rig
+ description: "A medical chest rig with deep pockets, for use by paramedics and health professionals."
+ components:
+ - type: StorageFill
+ contents:
+ - id: EnergyCautery
+ - id: EnergyScalpel
+ - id: AdvancedRetractor
+ - id: BoneGel
+ - id: Brutepack
+ - id: Ointment
+ - id: Bloodpack
+ - id: Gauze
+ - id: EmergencyMedipen
+ amount: 3
diff --git a/Resources/Prototypes/_Goobstation/Catalog/Fills/Boxes/medical.yml b/Resources/Prototypes/_Goobstation/Catalog/Fills/Boxes/medical.yml
new file mode 100644
index 00000000000..0b61ac4811e
--- /dev/null
+++ b/Resources/Prototypes/_Goobstation/Catalog/Fills/Boxes/medical.yml
@@ -0,0 +1,14 @@
+- type: entity
+ name: pax syringe box
+ parent: BoxCardboard
+ id: BoxSyringePax
+ description: A box full of tranquilizer syringes.
+ components:
+ - type: StorageFill
+ contents:
+ - id: SyringePax
+ amount: 6
+ - type: Sprite
+ layers:
+ - state: box
+ - state: syringe
diff --git a/Resources/Prototypes/_Goobstation/Entities/Clothing/Belt/belts.yml b/Resources/Prototypes/_Goobstation/Entities/Clothing/Belt/belts.yml
new file mode 100644
index 00000000000..40aa058dd3e
--- /dev/null
+++ b/Resources/Prototypes/_Goobstation/Entities/Clothing/Belt/belts.yml
@@ -0,0 +1,16 @@
+- type: entity
+ parent: ClothingBeltStorageBase
+ id: ClothingBeltMilitaryWebbingCMO
+ name: chief medical officer's chest rig
+ description: A medical chest rig with deep pockets, for use by paramedics and health professionals.
+ components:
+ - type: Sprite
+ sprite: _Goobstation/Clothing/Belt/cmowebbing.rsi
+ - type: Clothing
+ sprite: _Goobstation/Clothing/Belt/cmowebbing.rsi
+ - type: Item
+ size: Large
+ - type: Storage
+ maxItemSize: Normal
+ grid:
+ - 0,0,6,2
diff --git a/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/healing.yml b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/healing.yml
new file mode 100644
index 00000000000..1e7254228b1
--- /dev/null
+++ b/Resources/Prototypes/_Goobstation/Entities/Objects/Specific/Medical/healing.yml
@@ -0,0 +1,15 @@
+# I am making a grave mistake aren't I?
+- type: entity
+ suffix: pax
+ parent: PrefilledSyringe
+ id: SyringePax
+ components:
+ - type: Label
+ currentLabel: reagent-name-pax
+ - type: SolutionContainerManager
+ solutions:
+ injector:
+ maxVol: 15
+ reagents:
+ - ReagentId: Pax
+ Quantity: 15
diff --git a/Resources/Textures/_Goobstation/Clothing/Belt/cmowebbing.rsi/equipped-BELT.png b/Resources/Textures/_Goobstation/Clothing/Belt/cmowebbing.rsi/equipped-BELT.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4c86299461116f8e28c480fc8a81e5a6a10f489
GIT binary patch
literal 1600
zcmV-G2EX}i?bsb|cl{Qqc^$E|YnqCr~6OL?^G>i9yht*s%
zC43_6*X4l1x0bFn_|4*MgTE}+T^w0*;`NJKmab{Z8PU`7<*8V6
z|36P7GdcW`(F6H@P4{{wP#XUPQQ
zFMR+2010qNS#tmY3labT3lag+-G2N400ekRL_t(|0qt5%XcIvcp7f7mTclu#u1FyV
ziNscFs?vk_Qx!q*@8ngl9>tRs1o5UvPl6u2^d<_uD8&{JqNEn8hu|S4)HcQlQQK;<
z*mb^5UKl4ook=#q;2YS!&d%HSz4_+NY}ogN;KmFv1Iz$3zzi@0%m6cB&cN=&7hKZr
z>gp2cLzcQouUc8kriur2;?~MTuJshuI)CkA^@w8@JEB}9~ctJce4U#0QwmByXjj1I1e%}
z#Ff5df64Jwk7#j!Tf-~-ReqLE+Dn(Od6V^|oV?nH1*}qKOVy8pV37Uj_;oJ=@1MR|
zkhq`ylD0N(bZS!QgZ;@J%VJcrT~1Oo*oNX}p6fp75dfd6!8VEjFpqr)3E*;a`SXGp
z8OrI=`+KvAZ8lDJfQd%f@P{IRdD1LF^w3ro-WTlZdpM_I
z{#Shqbnn{h!Zsa-WCf9lh=Y&m`0D~TjaQP!$}mn7Zjs0DhI;(w5op{`0xCJ*@G&(C
z2%JI`660!LT|LroS{aQ-Tbsdo>1T(HpT?6)rBa16zy_cZx^mKiNF>rJu{s^cY3=Rp
zZIk}4n_wIL5CVWSDiVnVu78e*nVA{*w1x?XLLuXG&4i$))A{cSXu1_+hnWFpfEi#0
zm;q*h8DIvO0cL<1Ujf$$ME%SQ5H3mN2aq5ce|VQ}3HWHUC{_eu^2p3k@?l)&$B~Yb4N-xQl53U7fMTr;
zlLiJQM=*Ix!{M{Mxp0FzI-%
zWJdRubaZJDp?Z&+rtOl0k2vl
zCgvS%g_u_;rFx=IKpivrzf^W<-Z?L(WLeJOsH{wp+mE)Si9KD%C_Ah_M12$_U`5m#
z0qjj0_gliYidBBUo4ZgG0g)3I3v&zzS+61+_GUv`4$iArD#kN^GuK1_fN=)Anwb_~
zGoSJ@RqT&XcL>Xqv(whK05!WoWiqNEym#^XA?bH^ShuHQ0aNt_|CjPn*HQb%u_A$?
zyP+RAa0oSeSQWJ{fI#YT2%=DeFiZKP-y>gG`ptmM8u$2Zv(fgd`W+xAjvPEveURc4rPGXu;3Gr$Zm1I$2q2L1rfYaq}T*$6NI00001ljwEP)i?bsb|cl{Qqc^$E|YnqCr~6OL?^G>i9yht*s%
zC43_6*X4l1x0bFn_|4*MgTE}+T^w0*;`NJKmab{Z8PU`7<*8V6
z|36P7GdcW`(F6H@P4{{wP#XUPQQ
zFMR+2010qNS#tmY3labT3lag+-G2N400Le~L_t(o3GGxnXcSQtJ=qNw64ws|$&w}5
zXh5?NRI*J_Rt<q_
zVW0QB$sHG*eZB!3Wgg7TojYgFJ@35tE|8AYfz*N2fq&6~?ZYQcobGn{IIQM6HSm41
zNMCUe;lGK{{HNDXI(+#O3m|b&ui;v0TU4VrpU0No0*;P9#K!J?l=lg|l`7fR{vpF6
zjioP|0!e6x<`+M{_2y0FfEMo?*p2zQsD2c13Fd=$@;+pIMR+S^6|VoOGZ*mY{VSRB
z+7_@3N@GwO+>gnL>+szNnMl58K=RVyK5<~yUXTUgta)j1Pbv%ZUILvxXHF4xf}?FL
z9{ISS-dVD^TkF}L&aWUN0?G?H%=9c0a3c|GbqE8`lOmh{F9Bw!TSXL=M_Tn-ok+Vncu+a}N-}ky$H4LXx|V6;F=h!oUC0oh~GyN{Uay
gonli5{x1i90y4_+$k2LV2mk;807*qoM6N<$g7S*y3jhEB
literal 0
HcmV?d00001
diff --git a/Resources/Textures/_Goobstation/Clothing/Belt/cmowebbing.rsi/inhand-left.png b/Resources/Textures/_Goobstation/Clothing/Belt/cmowebbing.rsi/inhand-left.png
new file mode 100644
index 0000000000000000000000000000000000000000..44d6249e402f3a58c25a97d687cb5bfd3d2bb664
GIT binary patch
literal 1085
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV9d*Ob`Ho)PG(@xm{>Y-ueVd8
zNW1*j4g5zJwso+vceAl-b{sP}aa8Jx!s?^df4Q#ceb-W4>*(ElL160_(=YN@q_&8$
zI10LK+4_BJ%bjzfj-0mBzt3yGUtQP!-B$mGa^=>9FDwfKbY5O8II(+D#8<2Pg$ax0
z&Ce~#%IMzMY7zVRd0>{R98=i(ccrq)22;&KHhkqgzhYLL&^+P3oT(<=-&@+R#u%yA
zD80GGe|vvrW814Q-f=m;U!7Uk*IX>06?*xPt?AiYk`{3fcHQ`te`-$Je%JNeOzs<2
zls)*gY^f%D!B%eN^HD+m*Hqhes@0g~#UJ<`xM0h(#x(8fo#%fzAKm`sQeIHOA{_KS
z@;`G?N%~2aC;GL(2;eO6h%9Dc;1&X5#!GkW{xC2wm3q23hEy=Vo#p5)9Vl=-eY2d6
z>Fb3@#4;CoOjh#EnLKH-oKjqC4WGUH!AraAcpR(5HZFJY*D?vy*rM8cr8!f7?-iT-
zZ;TSAZ_g|Ho@)D}ULfuBy?y`B{P|Q?JVWsi1ET;=)X45~VB_4^pSP}Cbv9Oh)4QKj
zZ(IJ~G5?l(>E6|=;ud`U+JD>9+H1Y&)aO1|oTmNU=Vx=e?&fNdiMqNMd2X*{SaBtK
zN%Hc1_4$YX3DwRo6`dM(???5fELTgvS{vV{nm@jul-;c~{z
zq)9uQVp6tF`jfQSwfcO_qX*?%pDJcg{$-$gzBuU^u_WgNTZ70Xm$;R#|a_gG;wu~>@5wlH9u6>fT
zSG_o;*7fk5HA}aK-Dmu)f2-^Mori{Rz6<@#N%AJM7;DVtVfMEz}T|?lxtZeLKHY^z=o6
zxaW03J2ZBGFw$6hJWXcTK`Dldp&>K8B%{CNM^`@CQRyV5k@D_aZFy`ovw~yC-qS04
zx6XPepCtRv?O`3u{b|j0EmFVdQ&MBb@09Xz35&!@I
literal 0
HcmV?d00001
diff --git a/Resources/Textures/_Goobstation/Clothing/Belt/cmowebbing.rsi/inhand-right.png b/Resources/Textures/_Goobstation/Clothing/Belt/cmowebbing.rsi/inhand-right.png
new file mode 100644
index 0000000000000000000000000000000000000000..9f10abb50b92061413e41e7eba7e7622d9001c65
GIT binary patch
literal 1018
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV9d*Ob`Ho)PG(@xm{>Y-ueVd8
zNW1*j4g5zJwso+vceAl-b{sP}aa8Jx!s?^df4Q#ceb-W4>*(ElL160_(=YN@q_&8$
zI10LK+4_BJ%bjzfj-0mBzt3yGUtQP!-B$mGa^=>9FDwfKbY5O8II(+D#8<2Pg$ax0
z&Ce~#%IMzMY7zVRd0>{R98=i(ccrq)22;&KHhkqgzhYLL&^+P3oT(<=-&@+R#u%yA
zD80GGe|vvrW814Q-f=m;U!7Uk*IX>06?*xPt?AiYk`{3fcHQ`te`-$Je%JNeOzs<2
zls)*gY^f%D!B%eN^HD+m*Hqhes@0g~#UJ<`xM0h(#x(8fo#%fzAKm`sQeIHOA{_KS
z@;`G?N%~2aC;GL(2;eO6h%9Dc;1&X5#!GkW{xC2w8F{)mhEy=VoweJG*-@nJe46f>
z5?z&~#H3`ULtRogy}CQrPI&&olBJfhmggY5z(uWurA?i!6^c$5)^ee%HJXG>1%u>{JTUC8jMtaFKf)xMp6!E^RSsrfqI
zoa%dB&UN$qiO(LduRiVEwVpBi+)3WYX&qvm%8&D6COqrW^AP>>D67*?%qMC2@lDT{
za|-^=mG^z5k&}7<+n&7_xA*(8+cG|w#W=O?U5VM5`+I&@R>xk`lGw7l-oW77
zMurv2KUBI^Lq0Z2Ntb=#i3!lzIZ?&++X^P%RcQ^4<#rPnbsK0JF?_qaPIAMwJ+l~Z
zewIj2X}=kAYIgNko>#TEelg4~R#obp#i+mc?T+vFQf(a`Y>eqmKHHFIYzU0i3u+(O
ZkI5Zo-0+rZJupczc)I$ztaD0e0ss#2#M}S?
literal 0
HcmV?d00001
diff --git a/Resources/Textures/_Goobstation/Clothing/Belt/cmowebbing.rsi/meta.json b/Resources/Textures/_Goobstation/Clothing/Belt/cmowebbing.rsi/meta.json
new file mode 100644
index 00000000000..ef35db1d751
--- /dev/null
+++ b/Resources/Textures/_Goobstation/Clothing/Belt/cmowebbing.rsi/meta.json
@@ -0,0 +1,26 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/c838ba21dae97db345e0113f99596decd1d66039 and modified by emisse for ss14. Further modified by TJohnson",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "icon"
+ },
+ {
+ "name": "equipped-BELT",
+ "directions": 4
+ },
+ {
+ "name": "inhand-left",
+ "directions": 4
+ },
+ {
+ "name": "inhand-right",
+ "directions": 4
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Resources/Textures/_Goobstation/Objects/Weapons/Guns/Cannons/syringe_gun.rsi/dart-syringe-gun.png b/Resources/Textures/_Goobstation/Objects/Weapons/Guns/Cannons/syringe_gun.rsi/dart-syringe-gun.png
new file mode 100644
index 0000000000000000000000000000000000000000..4ba496709508ec781dd4a821f789569444d46521
GIT binary patch
literal 287
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|3<7*YTn`*L
z@Snkjmsilx$i^=$-pbrAE;>P3Nu!{)=HtsdN6#Hyx@py3OY6ltdbYfLX)J=yn@(X78j|vV1bUOp(8a-VcLo9mVPH^NqtiZ!^^475>ickLUe=Eew6m&KEs`oR7
zLvoSXP8C1oPhZz#x*&h4Yihu2fw?)Y>tU=vuv
V-0iKmN&@H@22WQ%mvv4FO#qP*cU%Af
literal 0
HcmV?d00001
diff --git a/Resources/Textures/_Goobstation/Objects/Weapons/Guns/Cannons/syringe_gun.rsi/inhand-left.png b/Resources/Textures/_Goobstation/Objects/Weapons/Guns/Cannons/syringe_gun.rsi/inhand-left.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c23139337785203b81b838148213b1e2c394c21
GIT binary patch
literal 769
zcmV+c1OEJpP)Px%yGcYrRCt{2n!Rh=P!z?FO1AQbXHbiVEN)RCXh{_4kYwys$mop8)Hz!_B*tV)
z`yZrR){cRY(Ls*}ipiPM5n8Gk5Ddj+M%7lHyw2#<|5i_O(#PL5NzV8D7Wm$G-u{->H-~pgF
z0AgyP1<;b`87+)fieR4SH$Df^JU+xxEh@g79tp-r0B|k*>gsC5eKW6ld`Ksi3ih(9
z;mj-;kmoss5J-|_C&{APlp*nc=6u;9RdV!CbAK&pm
z!pn%|Rmx9Kru!+-BBGdD08ogJ>J9YgqajBQrz}1Q0#dh^P9}19A8{f6b)^E}`rb8h
z<$@p}Aq0dF#c%C)d*T=qkASwfgx&Q`^!q4=yoq6}3hCwLW$`|7SIx0T`Q2TJ!LPVF
zky26^hQ($p?hRZ{T%?qw>cOzNg?1JeSIG6OO-e~>vmV^Fc;{^GY(HM{48t%C!!QiP
zFbu;m)66*k7dr0|GKKH^7{!DKYrrVI2!N&j0NbQ#>N*8?I9n`H*lKXPFV48@1x9K>
zOf9sCjG0hgk-p8iOY+(cFx}u(KIc&_f>>UiD28?enin1Hu5Y64E$KdWfm)GnUUU%E
z8xxzL9Vw-eHN^5c)xAD-;uX40xJ&%hBZM9kT=gPoV-gb{%!+hb$im{vP%+cci=drx
z1lbaAbuOT~!K-t#L-(!D&Emt}Cv^Px%)k#D_RCt{2nlVq?P!Pxet~x}jJiNhF9`ULNg
z!!QiPFfSBCw*fj>D^;nuyoAM-B3|h>MhC^^CG6~Oqy76_w<)t{y}n7!(m+igdoeZ005?G0sws9&vl|~5fK3RMj6L-7e}8D
zNA!#(K`G_Pcb;kBE{c!qE>6B2jh*xQ{tx|rAN_tGg+gH%1$o9d%Gecc3@*UlVPf
zxDX10!02>3V}H!k?9jC>xO@9BE47I>$GV$B2pX)qSm^Zd)>^>kkADDw_n7|~!mQLt
zHoqm0fG~qq7w+CZy0&%mOabtyHJoDR3CD5Bw(X%^4~Yj7Y=)F4g%AV)U$3tL++?Hn!j!<>c0;j1n)U#O38BfSaj2b4*jvJZvl+
z$07Am(K%CeJ3;MTY}=m70Tb5&ak*Vv)6VWT0MPlLzxa9jeP%h~cJZb^8S9ROX?b!4
zC{!dYt`yT6l3^HzVHk#C7=~dOMjz_En{GR@;L+FO;kw{+BvxG@?^WW5i1kiT^$fgt
zo@*Y6O;q7QH6Ueu?X0eos8KT9K@ukGN^y&bJZfb!_LDkA%}R}q>+bM4i#v3`(J5`F
zc7R!_k-N8#lZ$rdm15s0<6vV8Cl~F^t}zv=^+bqlD#hV3wN!qSkhT+YC0>zM&p>z#
z)69wZFi&wpUaQPwgoUh?s*j3UD^=&B<0Ms*2+}1!wf=x8lJpELt`za{!>6%sZiZnp
ZP3Nu!{)=HtsdN6#G<6p&iFX_e*9y}Z`8I`bFHq@-Os
za-h#|ia5{&p^_lKV21zbAnstB9Z+4Xo`NR0*oxvThT?^bZCSGQh;m>dhRMZzTRGV3*(mivFgSRr9O_Gzz
zK^^L_eUr7(8A5T-G@yGywq5BYUa<
literal 0
HcmV?d00001
diff --git a/Resources/Textures/_Goobstation/Objects/Weapons/Guns/Cannons/syringe_gun.rsi/syringe-gun.png b/Resources/Textures/_Goobstation/Objects/Weapons/Guns/Cannons/syringe_gun.rsi/syringe-gun.png
new file mode 100644
index 0000000000000000000000000000000000000000..5ac09c0077c87bd0edb3adca86f817ceaf5e1ff5
GIT binary patch
literal 288
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|%mREuTn`*L
z@Snkjmsilx$i^=$-pbrAE;>P3Nu!{)=HtsdN6#G<6p&iFX_e*9y*l$3^IF@=q@-Os
zazJ&P*F>NRLM1_d!3_V=LEOPMJD_Zpr;B5VMep1Gi+rsLJkA?ad7l3Ne?9lk>Wm(L
zwS5&GiCa?7OtHI{va57r!&?XOro5ZSYYwPrwzX(3TJzZ`AU4dNy_Q+z
T;4({4STK0H`njxgN@xNAqcD3a
literal 0
HcmV?d00001
From 34dbf7973c569a372d99f8a4b2387fcfaaa95a0a Mon Sep 17 00:00:00 2001
From: Roudenn
Date: Sat, 25 Jan 2025 12:23:37 +0300
Subject: [PATCH 2/3] locale
---
Resources/Locale/ru-RU/backmen/entities/syringe_gun.ftl | 6 ++++++
.../entities/objects/specific/medical/healing.ftl | 3 +++
2 files changed, 9 insertions(+)
create mode 100644 Resources/Locale/ru-RU/backmen/entities/syringe_gun.ftl
diff --git a/Resources/Locale/ru-RU/backmen/entities/syringe_gun.ftl b/Resources/Locale/ru-RU/backmen/entities/syringe_gun.ftl
new file mode 100644
index 00000000000..632524f44b7
--- /dev/null
+++ b/Resources/Locale/ru-RU/backmen/entities/syringe_gun.ftl
@@ -0,0 +1,6 @@
+ent-DartSyringeGun = дротиковый шприцемёт
+ .desc = Нелегально модифицированная версия шприцемёта которая позволяет пробивать броню.
+ent-SyringeGun = шприцемёт
+ .desc = Девайс, позволяющий выстреливать шприцами и моментально вводить их содержимое в цель.
+ent-RapidSyringeGun = улучшенный шприцемёт
+ .desc = Улучшенная версия шприцемёта с более быстрой скорострельностью и большой вместимостью шприцов.
diff --git a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/medical/healing.ftl b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/medical/healing.ftl
index f9fbd6b518b..06644ae1451 100644
--- a/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/medical/healing.ftl
+++ b/Resources/Locale/ru-RU/ss14-ru/prototypes/entities/objects/specific/medical/healing.ftl
@@ -171,3 +171,6 @@ ent-SyringeRomerol = { ent-PrefilledSyringe }
ent-SyringeStimulants = { ent-PrefilledSyringe }
.desc = { ent-PrefilledSyringe.desc }
.suffix = Стимулятор
+ent-SyringePax = { ent-PrefilledSyringe }
+ .desc = { ent-PrefilledSyringe.desc }
+ .suffix = Пакс
From e60aec8957ce7c273c73892b08d75618ae0bf0f2 Mon Sep 17 00:00:00 2001
From: Kayzel <43700376+KayzelW@users.noreply.github.com>
Date: Sat, 25 Jan 2025 17:13:08 +0300
Subject: [PATCH 3/3] Update
Content.Server/_Goobstation/Weapons/Ranged/SyringeGunSystem.cs
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---
Content.Server/_Goobstation/Weapons/Ranged/SyringeGunSystem.cs | 2 ++
1 file changed, 2 insertions(+)
diff --git a/Content.Server/_Goobstation/Weapons/Ranged/SyringeGunSystem.cs b/Content.Server/_Goobstation/Weapons/Ranged/SyringeGunSystem.cs
index 78b5cf481a5..e557f1481d5 100644
--- a/Content.Server/_Goobstation/Weapons/Ranged/SyringeGunSystem.cs
+++ b/Content.Server/_Goobstation/Weapons/Ranged/SyringeGunSystem.cs
@@ -17,11 +17,13 @@ public override void Initialize()
private void OnFire(Entity gun, ref AmmoShotEvent args)
{
foreach (var projectile in args.FiredProjectiles)
+ {
if (TryComp(projectile, out SolutionInjectOnEmbedComponent? inject))
{
inject.Shot = true;
inject.PierceArmor = gun.Comp.PierceArmor;
}
+ }
}
}