From a7990bc06aa91602a28d074d326b0f8c5d2f3019 Mon Sep 17 00:00:00 2001
From: Spatison <137375981+Spatison@users.noreply.github.com>
Date: Thu, 26 Sep 2024 04:56:42 +0300
Subject: [PATCH] =?UTF-8?q?[Port]=20Small=20Energy=20Crossbow=20/=20=D0=9C?=
=?UTF-8?q?=D0=B0=D0=BB=D0=B5=D0=BD=D1=8C=D0=BA=D0=B8=D0=B9=20=D0=AD=D0=BD?=
=?UTF-8?q?=D0=B5=D1=80=D0=B3=D0=B5=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA?=
=?UTF-8?q?=D0=B8=D0=B9=20=D0=90=D1=80=D0=B1=D0=B0=D0=BB=D0=B5=D1=82=20(#6?=
=?UTF-8?q?0)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* add: ebow
* RU Loc
* Update BlurOnCollideComponent.cs
* test
---
.../Components/BlurryVisionComponent.cs | 4 +-
.../Collision/Blur/BlurOnCollideComponent.cs | 8 ++++
.../Collision/Blur/BlurOnCollideSystem.cs | 37 ++++++++++++++++++
.../Knockdown/KnockdownOnCollideComponent.cs | 10 +++++
.../Knockdown/KnockdownOnCollideSystem.cs | 33 ++++++++++++++++
.../en-US/_white/store/uplink-catalog.ftl | 5 ++-
.../objects/weapons/guns/battery/ebow.ftl | 2 +
.../ru-RU/_white/store/uplink-catalog.ftl | 5 ++-
.../_White/Catalog/uplink_catalog.yml | 17 ++++++++
.../Weapons/Guns/Battery/mini_ebow.yml | 36 +++++++++++++++++
.../Weapons/Guns/Projectiles/bolts..yml | 31 +++++++++++++++
Resources/Prototypes/status_effects.yml | 7 +++-
.../Guns/Battery/mini-ebow.rsi/bolt.png | Bin 0 -> 4819 bytes
.../Guns/Battery/mini-ebow.rsi/empty.png | Bin 0 -> 548 bytes
.../Guns/Battery/mini-ebow.rsi/icon.png | Bin 0 -> 616 bytes
.../Battery/mini-ebow.rsi/inhand-left.png | Bin 0 -> 352 bytes
.../Battery/mini-ebow.rsi/inhand-right.png | Bin 0 -> 356 bytes
.../Guns/Battery/mini-ebow.rsi/meta.json | 28 +++++++++++++
.../Guns/Projectiles/ebolt.rsi/bullet.png | Bin 0 -> 182 bytes
.../Guns/Projectiles/ebolt.rsi/meta.json | 14 +++++++
20 files changed, 232 insertions(+), 5 deletions(-)
create mode 100644 Content.Shared/_White/Collision/Blur/BlurOnCollideComponent.cs
create mode 100644 Content.Shared/_White/Collision/Blur/BlurOnCollideSystem.cs
create mode 100644 Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideComponent.cs
create mode 100644 Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideSystem.cs
create mode 100644 Resources/Locale/ru-RU/_white/prototypes/entities/objects/weapons/guns/battery/ebow.ftl
create mode 100644 Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Battery/mini_ebow.yml
create mode 100644 Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Projectiles/bolts..yml
create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/bolt.png
create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/empty.png
create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/icon.png
create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/inhand-left.png
create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/inhand-right.png
create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/meta.json
create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Projectiles/ebolt.rsi/bullet.png
create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Projectiles/ebolt.rsi/meta.json
diff --git a/Content.Shared/Eye/Blinding/Components/BlurryVisionComponent.cs b/Content.Shared/Eye/Blinding/Components/BlurryVisionComponent.cs
index faff4b9e52..bebc9ac697 100644
--- a/Content.Shared/Eye/Blinding/Components/BlurryVisionComponent.cs
+++ b/Content.Shared/Eye/Blinding/Components/BlurryVisionComponent.cs
@@ -15,13 +15,13 @@ public sealed partial class BlurryVisionComponent : Component
/// Amount of "blurring". Also modifies examine ranges.
///
[ViewVariables(VVAccess.ReadWrite), DataField("magnitude"), AutoNetworkedField]
- public float Magnitude;
+ public float Magnitude = 4f; // WD EDIT
///
/// Exponent that controls the magnitude of the effect.
///
[ViewVariables(VVAccess.ReadWrite), DataField("correctionPower"), AutoNetworkedField]
- public float CorrectionPower;
+ public float CorrectionPower = 2f; // WD EDIT
public const float MaxMagnitude = 6;
public const float DefaultCorrectionPower = 2f;
diff --git a/Content.Shared/_White/Collision/Blur/BlurOnCollideComponent.cs b/Content.Shared/_White/Collision/Blur/BlurOnCollideComponent.cs
new file mode 100644
index 0000000000..95685e3051
--- /dev/null
+++ b/Content.Shared/_White/Collision/Blur/BlurOnCollideComponent.cs
@@ -0,0 +1,8 @@
+namespace Content.Shared._White.Collision.Blur;
+
+[RegisterComponent]
+public sealed partial class BlurOnCollideComponent : Component
+{
+ [DataField]
+ public float BlurTime = 10f;
+}
diff --git a/Content.Shared/_White/Collision/Blur/BlurOnCollideSystem.cs b/Content.Shared/_White/Collision/Blur/BlurOnCollideSystem.cs
new file mode 100644
index 0000000000..257dc5bd74
--- /dev/null
+++ b/Content.Shared/_White/Collision/Blur/BlurOnCollideSystem.cs
@@ -0,0 +1,37 @@
+using Content.Shared.Eye.Blinding.Components;
+using Content.Shared.Projectiles;
+using Content.Shared.StatusEffect;
+using Content.Shared.Throwing;
+
+namespace Content.Shared._White.Collision.Blur;
+
+public sealed class BlurOnCollideSystem : EntitySystem
+{
+ [Dependency] private readonly StatusEffectsSystem _statusEffects = default!;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnProjectileHit);
+ SubscribeLocalEvent(OnEntityHit);
+ }
+
+ private void OnEntityHit(Entity ent, ref ThrowDoHitEvent args)
+ {
+ ApplyEffects(args.Target, ent.Comp);
+ }
+
+ private void OnProjectileHit(Entity ent, ref ProjectileHitEvent args)
+ {
+ ApplyEffects(args.Target, ent.Comp);
+ }
+
+ private void ApplyEffects(EntityUid target, BlurOnCollideComponent component)
+ {
+ _statusEffects.TryAddStatusEffect(target,
+ "BlurryVision",
+ TimeSpan.FromSeconds(component.BlurTime),
+ true);
+ }
+}
diff --git a/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideComponent.cs b/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideComponent.cs
new file mode 100644
index 0000000000..20ed5f8dce
--- /dev/null
+++ b/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideComponent.cs
@@ -0,0 +1,10 @@
+using Content.Shared._White.Standing;
+
+namespace Content.Shared._White.Collision.Knockdown;
+
+[RegisterComponent]
+public sealed partial class KnockdownOnCollideComponent : Component
+{
+ [DataField]
+ public DropHeldItemsBehavior Behavior = DropHeldItemsBehavior.NoDrop;
+}
diff --git a/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideSystem.cs b/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideSystem.cs
new file mode 100644
index 0000000000..dafce97c2e
--- /dev/null
+++ b/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideSystem.cs
@@ -0,0 +1,33 @@
+using Content.Shared._White.Standing;
+using Content.Shared.Projectiles;
+using Content.Shared.Throwing;
+
+namespace Content.Shared._White.Collision.Knockdown;
+
+public sealed class KnockdownOnCollideSystem : EntitySystem
+{
+ [Dependency] private readonly SharedLayingDownSystem _layingDown = default!;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnProjectileHit);
+ SubscribeLocalEvent(OnEntityHit);
+ }
+
+ private void OnEntityHit(Entity ent, ref ThrowDoHitEvent args)
+ {
+ ApplyEffects(args.Target, ent.Comp);
+ }
+
+ private void OnProjectileHit(Entity ent, ref ProjectileHitEvent args)
+ {
+ ApplyEffects(args.Target, ent.Comp);
+ }
+
+ private void ApplyEffects(EntityUid target, KnockdownOnCollideComponent component)
+ {
+ _layingDown.TryLieDown(target, null, null, component.Behavior);
+ }
+}
diff --git a/Resources/Locale/en-US/_white/store/uplink-catalog.ftl b/Resources/Locale/en-US/_white/store/uplink-catalog.ftl
index 44ce8ca0fa..b4edcee7dd 100644
--- a/Resources/Locale/en-US/_white/store/uplink-catalog.ftl
+++ b/Resources/Locale/en-US/_white/store/uplink-catalog.ftl
@@ -2,4 +2,7 @@
uplink-emp-flashlight-desc = A rechargeable device disguised as a flashlight designed to disrupt electronic systems. Useful for disrupting communications, security's energy weapons, and APCs when you're in a tight spot.
uplink-betrayal-knife-name = Betrayal dagger
-uplink-betrayal-knife-desc = The betrayal dagger allows the user to teleport a short distance, and also causes significant damage when stabbed in the back.
\ No newline at end of file
+uplink-betrayal-knife-desc = The betrayal dagger allows the user to teleport a short distance, and also causes significant damage when stabbed in the back.
+
+uplink-ebow-name = Small energy crossbow
+uplink-ebow-desc = A fairly quiet weapon that automatically reloads and stuns. It goes well with other types of weapons.
\ No newline at end of file
diff --git a/Resources/Locale/ru-RU/_white/prototypes/entities/objects/weapons/guns/battery/ebow.ftl b/Resources/Locale/ru-RU/_white/prototypes/entities/objects/weapons/guns/battery/ebow.ftl
new file mode 100644
index 0000000000..a8c7d268f7
--- /dev/null
+++ b/Resources/Locale/ru-RU/_white/prototypes/entities/objects/weapons/guns/battery/ebow.ftl
@@ -0,0 +1,2 @@
+ent-EnergyCrossbowMini = Mаленький энергетический арбалет
+ .desc = Стреляет энергетическими болтами, которые отравляют и оглушают цель.
\ No newline at end of file
diff --git a/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl b/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl
index 5953a18549..025ac86b8e 100644
--- a/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl
+++ b/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl
@@ -2,4 +2,7 @@
uplink-emp-flashlight-desc = Замаскированное под фонарик устройство. При ударе выпускает ЭМИ, поражающий электрические устройства.
uplink-betrayal-knife-name = Предательский кинжал
-uplink-betrayal-knife-desc = Предательский кинжал позволяет пользователю телепортироваться на короткое расстояние, а также наносит значительные повреждения при ударе в спину.
\ No newline at end of file
+uplink-betrayal-knife-desc = Предательский кинжал позволяет пользователю телепортироваться на короткое расстояние, а также наносит значительные повреждения при ударе в спину.
+
+uplink-ebow-name = Маленький энергетический арбалет
+uplink-ebow-desc = Довольно тихое оружие, которое автоматически перезаряжается и оглушает. Хорошо сочетается с другими видами оружия.
\ No newline at end of file
diff --git a/Resources/Prototypes/_White/Catalog/uplink_catalog.yml b/Resources/Prototypes/_White/Catalog/uplink_catalog.yml
index 4c1e4b0a60..43f9330c03 100644
--- a/Resources/Prototypes/_White/Catalog/uplink_catalog.yml
+++ b/Resources/Prototypes/_White/Catalog/uplink_catalog.yml
@@ -24,3 +24,20 @@
tags:
- NukeOpsUplink
saleLimit: 1
+
+- type: listing
+ id: UplinkMiniEbow
+ name: uplink-ebow-name
+ description: uplink-ebow-desc
+ icon: { sprite: /Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi, state: icon }
+ productEntity: EnergyCrossbowMini
+ cost:
+ Telecrystal: 10
+ categories:
+ - UplinkWeapons
+ conditions:
+ - !type:StoreWhitelistCondition
+ blacklist:
+ tags:
+ - NukeOpsUplink
+ saleLimit: 1
\ No newline at end of file
diff --git a/Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Battery/mini_ebow.yml b/Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Battery/mini_ebow.yml
new file mode 100644
index 0000000000..e6309f652b
--- /dev/null
+++ b/Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Battery/mini_ebow.yml
@@ -0,0 +1,36 @@
+- type: entity
+ name: small energy crossbow
+ description: Shoots energy bolts that poison and stun the target.
+ parent: BaseItem
+ id: EnergyCrossbowMini
+ components:
+ - type: Sprite
+ sprite: _White/Objects/Weapons/Guns/Battery/mini-ebow.rsi
+ state: icon
+ - type: Item
+ size: Small
+ sprite: _White/Objects/Weapons/Guns/Battery/mini-ebow.rsi
+ - type: Clothing
+ slots:
+ - Belt
+ - type: Gun
+ resetOnHandSelected: false
+ fireRate: 0.4
+ soundGunshot:
+ path: /Audio/Weapons/click.ogg
+ - type: RechargeBasicEntityAmmo
+ rechargeCooldown: 1.5
+ rechargeSound:
+ path: /Audio/Weapons/Guns/MagIn/revolver_magin.ogg
+ - type: BasicEntityAmmoProvider
+ proto: BoltEnergyCrossbow
+ capacity: 1
+ count: 1
+ - type: AmmoCounter
+ - type: GenericVisualizer
+ visuals:
+ enum.AmmoVisuals.HasAmmo:
+ base:
+ True: { state: icon }
+ False: { state: empty }
+ - type: Appearance
diff --git a/Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Projectiles/bolts..yml b/Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Projectiles/bolts..yml
new file mode 100644
index 0000000000..4bf6ad8722
--- /dev/null
+++ b/Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Projectiles/bolts..yml
@@ -0,0 +1,31 @@
+- type: entity
+ name: energy crossbow bolt
+ parent: BaseBullet
+ id: BoltEnergyCrossbow
+ noSpawn: true
+ components:
+ - type: Sprite
+ sprite: _White/Objects/Weapons/Guns/Projectiles/ebolt.rsi
+ state: bullet
+ - type: Ammo
+ muzzleFlash: null
+ - type: Projectile
+ impactEffect: null
+ damage:
+ types:
+ Poison: 15
+ - type: Reflective
+ reflective:
+ - Energy
+ - type: Fixtures
+ fixtures:
+ projectile:
+ shape:
+ !type:PhysShapeAabb
+ bounds: "-0.1,-0.2,0.1,0.2"
+ hard: false
+ mask:
+ - Opaque
+ - type: KnockdownOnCollide
+ behavior: AlwaysDrop
+ - type: BlurOnCollide
\ No newline at end of file
diff --git a/Resources/Prototypes/status_effects.yml b/Resources/Prototypes/status_effects.yml
index 37da86f6a8..0c29d79d5c 100644
--- a/Resources/Prototypes/status_effects.yml
+++ b/Resources/Prototypes/status_effects.yml
@@ -60,8 +60,13 @@
- type: statusEffect
id: StaminaModifier
-# WD EDIT
+# WD EDIT START
- type: statusEffect
id: RecentlyBlocked
alwaysAllowed: true
alert: RecentlyBlocked
+
+- type: statusEffect
+ id: BlurryVision
+ alwaysAllowed: true
+# WD EDIT END
diff --git a/Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/bolt.png b/Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/bolt.png
new file mode 100644
index 0000000000000000000000000000000000000000..70451918e4ff871d1c89cc764d505d1302965103
GIT binary patch
literal 4819
zcmeHKX;c&05^g{RcR&~s8EhjeTPNu(kVGO|05cfb6&w^holb~kBWWPuHiLTHK~xkR
z7&j0Y6czO;qBst2C{F>`QE>r5+yKwviQ+QvCZOVZ^T%`E{3GXdy8BkuS5;rtt>mr=
zofR~4nEfyaf<_8w2*SY~He41%z_%_ftqX$86lsysWH^=rYqV;qTtUEOs)m3Gy<7@G
z`a3VT&D+}SJYwa8m;lWyT3j%
zt4GH!F0k9Zy(q8YXSddzik(dtQnT}~S*29bs!nviuXAkwe*F|*mnVCQ65j96Z#R{N
zgbDZBFGV^(+EwMMV%J1Hqd_8gNhksdncN{EF
zOSqBHc}>UCA8>26YMtn0uFbj(#dw;#6t`U&XC}WDH6qpKwENHg^WQ#QN<_1^mAq=%
zY3|x>e@Zp_>Jdtu|KpmPr}L{6qYDm{C~hsw<@Q81UwD1KD3bH*${#Io`}0vV5AA&oog(d2D_6YSlI2i&0(0xy^Sy0J*pwkj#GU-*k4o9uXl;pX9932LBq7n(@_I{)EoEHB{vttCPpb9BA&6bE
z^Hn>i=i8vz6(zRkH~s__Pjq#z$7%xy1@R!;oGaE9=}?JwRhC15^=;09l2>E)@V8{w
zJJe-Vk8p~#rquctL$lYf{eagWTD5jQk+qwl=bfv#}zPO3M(yYkZZXw`gw<(O%EG~EAK3MTZd8vD9@e)5A$ouwHmmow{v
z+Ww+O29*-SM$KC6voFNEImW7X$=0gfyylaa^gBXaf3OI7Sy0_N)6B$`T`PUl4%^S$
z9@0^lmu;2LDBb1O&6T(W(=6Xn#=M+T&N7`of8Y5UhSUAp^w@bjCJI}NZ}!-o>RPdI
zf=-Z!-svpd{pN7_{2ir^8k>$wJGM^PW$-_#t9xbVva>I^@6COicYD1z%UKFRCd=ji
z{-HvD|4;i4?6$lmS^OE*J`U&NBGyrCS0!5}UJT85U%i&R?rO8kuh@2O61}2p_;!|)
z3pFD>;mn!LbH6QLcerd+Svvg2q^a$3K^tZAN1Dr#)vq2NpU~0HZ@+KiclZ*kRAyR7
z-mNXzB&MEreO*NvWMbt6U#w-cI=PH|@G2=2itA|dy8PF@9k>q?J;Gx3*~7JTWz)!}
zT+!W!Cqo9IK6am>b6YC3k9u^}0gp>=QZJq7C}(oV^Qq
zEyKB)QCEJSd-R8SPgN9OUu7~;BdNdt*RuFx$ZfU~>?-xCj
zwJwi;`zZ@IVaIQr=ly2F`}UizvqWjaM^2V$iFuh}J5$ESvmKtiyPY_9s!!**;|?RnG_Hr-=qeU}$xLQfYBx*51
z)hjh%OhS;Cw_bzc2?Pm?37K5Qr*u@FroeIupE8FnqKh>CM7(@PnwE%2n-z(tCE#2M
z#e4cNFFg+cCz9SF2zHCMH%Vk$egT$l*`%DK#R|XLyyaj|IR7O^<14D3wlADrx;K
zbYws>0Ofl>tfu
zpgg1~lf%Ts2r0qs*wvph_M-g{CtgN{eq#XG
z^{#>O0;U!1^SJ8c%s}Hm`01;~Kj;BK4><{
zztJ`9%Ylbbfqy|M;5f5k%ZAC|C^SSI93(IvilDdtmCL}>P|b`O9R!U!Yq(6Z-A0WE
zi{_+I6ky&u*mMjRrP;4kf+eO<;2RlT{jzSNEd*N%&Qw~m{H(_cC;9o9Sz6St|DgVN
pAoRQJEyMBf{)hvGMe9r;mB&oSL8h;^>@YJp6b8%^l=&@4|1T?GCd&W-
literal 0
HcmV?d00001
diff --git a/Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/empty.png b/Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/empty.png
new file mode 100644
index 0000000000000000000000000000000000000000..799e188ec829ff1cc8c42a40c84db10b1d4140c9
GIT binary patch
literal 548
zcmV+<0^9wGP)pD>RJ;3LgAJG<6nt)zoZs6YM2(*_ma?_uJW-%{Bb9MF0^%V1QgM
z=VY^4=yto(#Q{(}lgU7-RKm~^fe7Ua>h(I5%Vi;mKmcpmhTcOD)E8A4B9sc4jsZ84
zA_NiI6ig-)zR#}W9IQO_dJwLMjN~HqR=@gR5Bv~=8)oQ*K^aV(zQqb#k4)#6=gI%B)_L6
zTknfSbh!{*0Mj&~-|s`a-9DZm@7&jBlli)?!&|FGe5@4DJOOA^6$%BgZ5vjr6(kY~
zn9t`ho6R7dPD5w#&hoA8$??k2J~kCW@$Glc2iP~mFvyAk)JFg}FgC6vNe6p=-#!UI
zQ51;9V)(;hd*sA>S3v&@_y#l@4G8=Y;Rmt&qtS@QWZgg2oqWqiR79K$Kn+iiwp=bf
zbMP4!5%&dHEEcSbarWJIWnF`+tHR>G0P%R7RRG8FSW^WN=K|0%bj5#iHsX$`I2XW6
m)NMh;eE}|E5kLeG0sI19#PxaD%#;-X0000u!vbcyT66;f~0
zEMBQpSQ)z5@_xV<6J0RCIcLxnARdpS+ipLLJv}}G?*R3aic~s{e!p+`{fsZRm2>my
zxG$q4z<4}{s;X$UTKkD^&r9Atdi*h^u~qe(|5g(w7T
z?$p@7!$Na^OlP;T>gE*^OZvNw*J>D=iykq15)@YOwU}`>55ocm>4qBu5Bh-?*Lu1*
zhIkxLPLN<-+~C$QvGXR2$3_Wb!=!Kpfs_MGK?f2<6dGb(H|=8XC<^yGkk~F6%-Ero
zWPD)Zfdh?_9!AC%4}u;rEsd06v)bc!P(vc{zzxP@hvM8AigjZcuNgJ1WI1>&%*{Z3
ug|fwsQyghxYUL88K}Qk03aYBPE1U9cXy16iYh57&d(3@00001bW%=J06^y0W&i*HZF*E#bVOxyV{&P5
zbZKvH004NLQ&wYE63;>`28-Uml
z;EwzF3g1HHjpvgO;}XjMAoZU7GpHBuKvNyp+=Ue<3p6JGeuGS+0fR?N@^0}
z)S;{dBN3Y?o2n(@rk>3hjUy)*D~B3KqU?xLe0u{o(+F}%Q49|N0000VS)*8>L*aJDiC9$+Z{$e{I+
zVb5zHhJL2cf9x6j7(M>nn+sINSQ6wH%;50sMjDXg>FMGaqA@W!VS!?Ti+F-kEH~Q$
zgJ#KC2UkYl14kHq58MROBEGD%S4quk*e$(^p?w$IEQcz#Sqs{an^LB{Ts5VjwtH
literal 0
HcmV?d00001
diff --git a/Resources/Textures/_White/Objects/Weapons/Guns/Projectiles/ebolt.rsi/meta.json b/Resources/Textures/_White/Objects/Weapons/Guns/Projectiles/ebolt.rsi/meta.json
new file mode 100644
index 0000000000..8436af22e0
--- /dev/null
+++ b/Resources/Textures/_White/Objects/Weapons/Guns/Projectiles/ebolt.rsi/meta.json
@@ -0,0 +1,14 @@
+{
+ "version": 1,
+ "license": "CC-BY-SA-3.0",
+ "copyright": "See copyright for above folder (Weapons/Guns/Projectiles)",
+ "size": {
+ "x": 32,
+ "y": 32
+ },
+ "states": [
+ {
+ "name": "bullet"
+ }
+ ]
+}