From 40eecdd78ac3b76322d8d95a8f4a7ef81b6fb98d Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Wed, 6 Jul 2022 18:06:12 +1000 Subject: [PATCH] Stamina damage (#9230) --- .../Components/ActiveStaminaComponent.cs | 10 + .../Damage/Components/StaminaComponent.cs | 47 ++++ .../StaminaDamageOnCollideComponent.cs | 13 ++ .../Components/StaminaDamageOnHitComponent.cs | 8 + .../Events/StaminaDamageOnHitAttemptEvent.cs | 10 + .../Damage/Systems/StaminaSystem.cs | 221 ++++++++++++++++++ Content.Server/Flash/FlashSystem.cs | 51 ++-- .../Components/StunbatonComponent.cs | 16 +- .../{ => Systems}/StunOnCollideSystem.cs | 0 .../Stunnable/{ => Systems}/StunSystem.cs | 0 .../{ => Systems}/StunbatonSystem.cs | 106 +++------ .../Weapon/Ranged/Systems/GunSystem.cs | 5 + Content.Shared/Alert/AlertCategory.cs | 1 + Content.Shared/Alert/AlertType.cs | 1 + Content.Shared/Alert/AlertsSystem.cs | 2 +- .../StatusEffect/StatusEffectsComponent.cs | 2 +- .../Weapons/Ranged/HitscanPrototype.cs | 3 + .../Audio/Weapons/Guns/Gunshots/license.txt | 3 + .../Audio/Weapons/Guns/Gunshots/taser2.ogg | Bin 0 -> 8189 bytes Resources/Locale/en-US/damage/stamina.ftl | 1 + .../components/stunbaton-component.ftl | 4 +- Resources/Maps/bagel.yml | 17 -- Resources/Maps/marathon.yml | 24 -- Resources/Maps/nss_pillar.yml | 44 ---- Resources/Maps/splitstation.yml | 12 - Resources/Prototypes/Alerts/alerts.yml | 12 + .../Catalog/Fills/Boxes/ammunition.yml | 44 ---- .../Catalog/Fills/Boxes/security.yml | 26 --- .../VendingMachines/Inventories/ammo.yml | 4 - Resources/Prototypes/Damage/types.yml | 50 ++-- .../Entities/Mobs/Species/human.yml | 1 + .../Guns/Ammunition/Boxes/caseless_rifle.yml | 15 -- .../Weapons/Guns/Ammunition/Boxes/magnum.yml | 15 -- .../Weapons/Guns/Ammunition/Boxes/pistol.yml | 15 -- .../Weapons/Guns/Ammunition/Boxes/rifle.yml | 15 -- .../Ammunition/Cartridges/caseless_rifle.yml | 8 - .../Ammunition/Cartridges/light_rifle.yml | 8 - .../Guns/Ammunition/Cartridges/magnum.yml | 8 - .../Guns/Ammunition/Cartridges/pistol.yml | 8 - .../Guns/Ammunition/Cartridges/rifle.yml | 8 - .../Guns/Ammunition/Cartridges/shotgun.yml | 14 -- .../Ammunition/Magazines/caseless_rifle.yml | 17 -- .../Guns/Ammunition/Magazines/light_rifle.yml | 14 -- .../Guns/Ammunition/Magazines/magnum.yml | 14 -- .../Guns/Ammunition/Magazines/pistol.yml | 28 --- .../Guns/Ammunition/Magazines/rifle.yml | 14 -- .../Ammunition/Projectiles/caseless_rifle.yml | 11 - .../Ammunition/Projectiles/light_rifle.yml | 11 - .../Guns/Ammunition/Projectiles/magnum.yml | 11 - .../Guns/Ammunition/Projectiles/pistol.yml | 11 - .../Guns/Ammunition/Projectiles/rifle.yml | 11 - .../Guns/Ammunition/Projectiles/shotgun.yml | 19 +- .../Guns/Ammunition/SpeedLoaders/magnum.yml | 20 -- .../Guns/Ammunition/SpeedLoaders/pistol.yml | 19 -- .../Weapons/Guns/Battery/battery_guns.yml | 43 +++- .../Weapons/Guns/Projectiles/hitscan.yml | 15 -- .../Weapons/Guns/Projectiles/projectiles.yml | 44 +--- .../Objects/Weapons/Throwable/bola.yml | 5 +- .../Entities/Objects/Weapons/security.yml | 8 +- .../Prototypes/Recipes/Lathes/security.yml | 11 - .../Interface/Alerts/stamina.rsi/meta.json | 124 ++++++++++ .../Interface/Alerts/stamina.rsi/stamina0.png | Bin 0 -> 1156 bytes .../Interface/Alerts/stamina.rsi/stamina1.png | Bin 0 -> 701 bytes .../Interface/Alerts/stamina.rsi/stamina2.png | Bin 0 -> 1003 bytes .../Interface/Alerts/stamina.rsi/stamina3.png | Bin 0 -> 912 bytes .../Interface/Alerts/stamina.rsi/stamina4.png | Bin 0 -> 795 bytes .../Interface/Alerts/stamina.rsi/stamina5.png | Bin 0 -> 704 bytes .../Interface/Alerts/stamina.rsi/stamina6.png | Bin 0 -> 1241 bytes .../Boxes/caseless_rifle.rsi/flash.png | Bin 304 -> 0 bytes .../Boxes/caseless_rifle.rsi/meta.json | 3 - .../Ammunition/Boxes/magnum.rsi/flash.png | Bin 136 -> 0 bytes .../Ammunition/Boxes/magnum.rsi/meta.json | 3 - .../Ammunition/Boxes/pistol.rsi/flash.png | Bin 312 -> 0 bytes .../Ammunition/Boxes/pistol.rsi/meta.json | 3 - .../Guns/Ammunition/Boxes/rifle.rsi/flash.png | Bin 318 -> 0 bytes .../Guns/Ammunition/Boxes/rifle.rsi/meta.json | 3 - .../Casings/shotgun_shell.rsi/flash-spent.png | Bin 352 -> 0 bytes .../Casings/shotgun_shell.rsi/flash.png | Bin 332 -> 0 bytes .../Casings/shotgun_shell.rsi/meta.json | 6 - .../caseless_rifle_mag.rsi/flash.png | Bin 358 -> 0 bytes .../caseless_rifle_mag.rsi/meta.json | 3 - .../caseless_rifle_mag_short.rsi/flash.png | Bin 369 -> 0 bytes .../caseless_rifle_mag_short.rsi/meta.json | 3 - .../LightRifle/light_rifle_mag.rsi/flash.png | Bin 403 -> 0 bytes .../LightRifle/light_rifle_mag.rsi/meta.json | 3 - .../Magazine/Magnum/magnum_mag.rsi/flash.png | Bin 404 -> 0 bytes .../Magazine/Magnum/magnum_mag.rsi/meta.json | 3 - .../Magazine/Pistol/pistol_mag.rsi/flash.png | Bin 364 -> 0 bytes .../Magazine/Pistol/pistol_mag.rsi/meta.json | 3 - .../Magazine/Pistol/smg_mag.rsi/flash.png | Bin 286 -> 0 bytes .../Magazine/Pistol/smg_mag.rsi/meta.json | 3 - .../Magazine/Rifle/rifle_mag.rsi/flash.png | Bin 333 -> 0 bytes .../Magazine/Rifle/rifle_mag.rsi/meta.json | 3 - .../magnum_speed_loader.rsi/flash-1.png | Bin 2191 -> 0 bytes .../magnum_speed_loader.rsi/flash-2.png | Bin 2288 -> 0 bytes .../magnum_speed_loader.rsi/flash-3.png | Bin 2479 -> 0 bytes .../magnum_speed_loader.rsi/flash-4.png | Bin 2546 -> 0 bytes .../magnum_speed_loader.rsi/flash-5.png | Bin 2564 -> 0 bytes .../magnum_speed_loader.rsi/flash-6.png | Bin 2551 -> 0 bytes .../Magnum/magnum_speed_loader.rsi/meta.json | 18 -- .../pistol_speed_loader.rsi/flash-1.png | Bin 2173 -> 0 bytes .../pistol_speed_loader.rsi/flash-2.png | Bin 2231 -> 0 bytes .../pistol_speed_loader.rsi/flash-3.png | Bin 2426 -> 0 bytes .../pistol_speed_loader.rsi/flash-4.png | Bin 2484 -> 0 bytes .../pistol_speed_loader.rsi/flash-5.png | Bin 2479 -> 0 bytes .../pistol_speed_loader.rsi/flash-6.png | Bin 2479 -> 0 bytes .../Pistol/pistol_speed_loader.rsi/meta.json | 18 -- .../Battery/antiquelasergun.rsi/meta.json | 2 +- .../Guns/Battery/disabler.rsi/base.png | Bin 0 -> 531 bytes .../Battery/disabler.rsi/inhand-left-0.png | Bin 0 -> 315 bytes .../Battery/disabler.rsi/inhand-left-1.png | Bin 0 -> 318 bytes .../Battery/disabler.rsi/inhand-left-2.png | Bin 0 -> 304 bytes .../Battery/disabler.rsi/inhand-left-3.png | Bin 0 -> 285 bytes .../Battery/disabler.rsi/inhand-left-4.png | Bin 0 -> 275 bytes .../Battery/disabler.rsi/inhand-right-0.png | Bin 0 -> 312 bytes .../Battery/disabler.rsi/inhand-right-1.png | Bin 0 -> 316 bytes .../Battery/disabler.rsi/inhand-right-2.png | Bin 0 -> 319 bytes .../Battery/disabler.rsi/inhand-right-3.png | Bin 0 -> 296 bytes .../Battery/disabler.rsi/inhand-right-4.png | Bin 0 -> 290 bytes .../Battery/disabler.rsi/mag-unshaded-0.png | Bin 0 -> 249 bytes .../Battery/disabler.rsi/mag-unshaded-1.png | Bin 0 -> 5318 bytes .../Battery/disabler.rsi/mag-unshaded-2.png | Bin 0 -> 5309 bytes .../Battery/disabler.rsi/mag-unshaded-3.png | Bin 0 -> 5320 bytes .../Battery/disabler.rsi/mag-unshaded-4.png | Bin 0 -> 5309 bytes .../Guns/Battery/disabler.rsi/meta.json | 65 ++++++ .../projectiles_tg.rsi/impact_bullet.png | Bin 0 -> 461 bytes .../projectiles_tg.rsi/impact_laser_blue.png | Bin 0 -> 754 bytes .../Projectiles/projectiles_tg.rsi/meta.json | 37 +++ .../projectiles_tg.rsi/omnilaser.png | Bin 0 -> 275 bytes 129 files changed, 703 insertions(+), 778 deletions(-) create mode 100644 Content.Server/Damage/Components/ActiveStaminaComponent.cs create mode 100644 Content.Server/Damage/Components/StaminaComponent.cs create mode 100644 Content.Server/Damage/Components/StaminaDamageOnCollideComponent.cs create mode 100644 Content.Server/Damage/Components/StaminaDamageOnHitComponent.cs create mode 100644 Content.Server/Damage/Events/StaminaDamageOnHitAttemptEvent.cs create mode 100644 Content.Server/Damage/Systems/StaminaSystem.cs rename Content.Server/Stunnable/{ => Systems}/StunOnCollideSystem.cs (100%) rename Content.Server/Stunnable/{ => Systems}/StunSystem.cs (100%) rename Content.Server/Stunnable/{ => Systems}/StunbatonSystem.cs (54%) create mode 100644 Resources/Audio/Weapons/Guns/Gunshots/taser2.ogg create mode 100644 Resources/Locale/en-US/damage/stamina.ftl create mode 100644 Resources/Textures/Interface/Alerts/stamina.rsi/meta.json create mode 100644 Resources/Textures/Interface/Alerts/stamina.rsi/stamina0.png create mode 100644 Resources/Textures/Interface/Alerts/stamina.rsi/stamina1.png create mode 100644 Resources/Textures/Interface/Alerts/stamina.rsi/stamina2.png create mode 100644 Resources/Textures/Interface/Alerts/stamina.rsi/stamina3.png create mode 100644 Resources/Textures/Interface/Alerts/stamina.rsi/stamina4.png create mode 100644 Resources/Textures/Interface/Alerts/stamina.rsi/stamina5.png create mode 100644 Resources/Textures/Interface/Alerts/stamina.rsi/stamina6.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/flash.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/flash.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/flash.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/flash.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi/flash-spent.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi/flash.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/CaselessRifle/caseless_rifle_mag.rsi/flash.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/CaselessRifle/caseless_rifle_mag_short.rsi/flash.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_mag.rsi/flash.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Magnum/magnum_mag.rsi/flash.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/pistol_mag.rsi/flash.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/smg_mag.rsi/flash.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Rifle/rifle_mag.rsi/flash.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/flash-1.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/flash-2.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/flash-3.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/flash-4.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/flash-5.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/flash-6.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/flash-1.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/flash-2.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/flash-3.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/flash-4.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/flash-5.png delete mode 100644 Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/flash-6.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/base.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-left-0.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-left-1.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-left-2.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-left-3.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-left-4.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-right-0.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-right-1.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-right-2.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-right-3.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-right-4.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/mag-unshaded-0.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/mag-unshaded-1.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/mag-unshaded-2.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/mag-unshaded-3.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/mag-unshaded-4.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/meta.json create mode 100644 Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi/impact_bullet.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi/impact_laser_blue.png create mode 100644 Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi/meta.json create mode 100644 Resources/Textures/Objects/Weapons/Guns/Projectiles/projectiles_tg.rsi/omnilaser.png diff --git a/Content.Server/Damage/Components/ActiveStaminaComponent.cs b/Content.Server/Damage/Components/ActiveStaminaComponent.cs new file mode 100644 index 0000000000..073d394728 --- /dev/null +++ b/Content.Server/Damage/Components/ActiveStaminaComponent.cs @@ -0,0 +1,10 @@ +namespace Content.Server.Damage.Components; + +/// +/// Tracks whether an entity has ANY stamina damage for update purposes only. +/// +[RegisterComponent] +public sealed class ActiveStaminaComponent : Component +{ + +} diff --git a/Content.Server/Damage/Components/StaminaComponent.cs b/Content.Server/Damage/Components/StaminaComponent.cs new file mode 100644 index 0000000000..87e881016b --- /dev/null +++ b/Content.Server/Damage/Components/StaminaComponent.cs @@ -0,0 +1,47 @@ +using Content.Server.Damage.Systems; +using Robust.Shared.GameStates; + +namespace Content.Server.Damage.Components; + +/// +/// Add to an entity to paralyze it whenever it reaches critical amounts of Stamina DamageType. +/// +[RegisterComponent] +public sealed class StaminaComponent : Component +{ + /// + /// Have we reached peak stamina damage and been paralyzed? + /// + [ViewVariables(VVAccess.ReadWrite), DataField("critical")] + public bool Critical; + + /// + /// How much stamina reduces per second. + /// + [ViewVariables(VVAccess.ReadWrite), DataField("decay")] + public float Decay = 3f; + + /// + /// How much time after receiving damage until stamina starts decreasing. + /// + [ViewVariables(VVAccess.ReadWrite), DataField("cooldown")] + public float DecayCooldown = 5f; + + /// + /// How much stamina damage this entity has taken. + /// + [ViewVariables(VVAccess.ReadWrite), DataField("staminaDamage")] + public float StaminaDamage; + + /// + /// How much stamina damage is required to entire stam crit. + /// + [ViewVariables(VVAccess.ReadWrite), DataField("excess")] + public float CritThreshold = 100f; + + /// + /// Next time we're allowed to decrease stamina damage. Refreshes whenever the stam damage is changed. + /// + [ViewVariables(VVAccess.ReadWrite), DataField("decayAccumulator")] + public float StaminaDecayAccumulator; +} diff --git a/Content.Server/Damage/Components/StaminaDamageOnCollideComponent.cs b/Content.Server/Damage/Components/StaminaDamageOnCollideComponent.cs new file mode 100644 index 0000000000..450fb56aab --- /dev/null +++ b/Content.Server/Damage/Components/StaminaDamageOnCollideComponent.cs @@ -0,0 +1,13 @@ +using Robust.Shared.GameStates; + +namespace Content.Server.Damage.Components; + +/// +/// Applies stamina damage when colliding with an entity. +/// +[RegisterComponent] +public sealed class StaminaDamageOnCollideComponent : Component +{ + [ViewVariables(VVAccess.ReadWrite), DataField("damage")] + public float Damage = 55f; +} diff --git a/Content.Server/Damage/Components/StaminaDamageOnHitComponent.cs b/Content.Server/Damage/Components/StaminaDamageOnHitComponent.cs new file mode 100644 index 0000000000..fafe2a366f --- /dev/null +++ b/Content.Server/Damage/Components/StaminaDamageOnHitComponent.cs @@ -0,0 +1,8 @@ +namespace Content.Server.Damage.Components; + +[RegisterComponent] +public sealed class StaminaDamageOnHitComponent : Component +{ + [ViewVariables(VVAccess.ReadWrite), DataField("damage")] + public float Damage = 30f; +} diff --git a/Content.Server/Damage/Events/StaminaDamageOnHitAttemptEvent.cs b/Content.Server/Damage/Events/StaminaDamageOnHitAttemptEvent.cs new file mode 100644 index 0000000000..40bb1ae1a8 --- /dev/null +++ b/Content.Server/Damage/Events/StaminaDamageOnHitAttemptEvent.cs @@ -0,0 +1,10 @@ +namespace Content.Server.Damage.Events; + +/// +/// Attempting to apply stamina damage on a melee hit to an entity. +/// +[ByRefEvent] +public struct StaminaDamageOnHitAttemptEvent +{ + public bool Cancelled; +} diff --git a/Content.Server/Damage/Systems/StaminaSystem.cs b/Content.Server/Damage/Systems/StaminaSystem.cs new file mode 100644 index 0000000000..dc906711e2 --- /dev/null +++ b/Content.Server/Damage/Systems/StaminaSystem.cs @@ -0,0 +1,221 @@ +using Content.Server.Damage.Components; +using Content.Server.Damage.Events; +using Content.Server.Popups; +using Content.Server.Weapon.Melee; +using Content.Shared.Alert; +using Content.Shared.Rounding; +using Content.Shared.Stunnable; +using Robust.Shared.Collections; +using Robust.Shared.Physics.Dynamics; +using Robust.Shared.Player; +using Robust.Shared.Timing; + +namespace Content.Server.Damage.Systems; + +public sealed class StaminaSystem : EntitySystem +{ + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly AlertsSystem _alerts = default!; + [Dependency] private readonly PopupSystem _popup = default!; + [Dependency] private readonly SharedStunSystem _stunSystem = default!; + + private const float UpdateCooldown = 2f; + private float _accumulator; + + private const string CollideFixture = "projectile"; + + /// + /// How much of a buffer is there between the stun duration and when stuns can be re-applied. + /// + private const float StamCritBufferTime = 3f; + + private readonly List _dirtyEntities = new(); + + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnCollide); + SubscribeLocalEvent(OnHit); + SubscribeLocalEvent(OnStartup); + SubscribeLocalEvent(OnShutdown); + } + + private void OnShutdown(EntityUid uid, StaminaComponent component, ComponentShutdown args) + { + SetStaminaAlert(uid); + } + + private void OnStartup(EntityUid uid, StaminaComponent component, ComponentStartup args) + { + SetStaminaAlert(uid, component); + } + + private void OnHit(EntityUid uid, StaminaDamageOnHitComponent component, MeleeHitEvent args) + { + if (component.Damage <= 0f) return; + + var ev = new StaminaDamageOnHitAttemptEvent(); + RaiseLocalEvent(uid, ref ev); + + if (ev.Cancelled) return; + + var stamQuery = GetEntityQuery(); + var toHit = new ValueList(); + + // Split stamina damage between all eligible targets. + foreach (var ent in args.HitEntities) + { + if (!stamQuery.TryGetComponent(ent, out var stam)) continue; + toHit.Add(stam); + } + + foreach (var comp in toHit) + { + var oldDamage = comp.StaminaDamage; + TakeStaminaDamage(comp.Owner, component.Damage / toHit.Count, comp); + if (comp.StaminaDamage.Equals(oldDamage)) + { + _popup.PopupEntity(Loc.GetString("stamina-resist"), comp.Owner, Filter.Entities(args.User)); + } + } + } + + private void OnCollide(EntityUid uid, StaminaDamageOnCollideComponent component, StartCollideEvent args) + { + if (!args.OurFixture.ID.Equals(CollideFixture)) return; + + TakeStaminaDamage(args.OtherFixture.Body.Owner, component.Damage); + } + + private void SetStaminaAlert(EntityUid uid, StaminaComponent? component = null) + { + if (!Resolve(uid, ref component, false) || component.Deleted) + { + _alerts.ClearAlert(uid, AlertType.Stamina); + return; + } + + var severity = ContentHelpers.RoundToLevels(MathF.Max(0f, component.CritThreshold - component.StaminaDamage), component.CritThreshold, 7); + _alerts.ShowAlert(uid, AlertType.Stamina, (short) severity); + } + + public void TakeStaminaDamage(EntityUid uid, float value, StaminaComponent? component = null) + { + if (!Resolve(uid, ref component, false) || component.Critical) return; + + var oldDamage = component.StaminaDamage; + component.StaminaDamage = MathF.Max(0f, component.StaminaDamage + value); + + // Reset the decay cooldown upon taking damage. + if (oldDamage < component.StaminaDamage) + { + component.StaminaDecayAccumulator = component.DecayCooldown; + } + + var slowdownThreshold = component.CritThreshold / 2f; + + // If we go above n% then apply slowdown + if (oldDamage < slowdownThreshold && + component.StaminaDamage > slowdownThreshold) + { + _stunSystem.TrySlowdown(uid, TimeSpan.FromSeconds(3), true, 0.8f, 0.8f); + } + + SetStaminaAlert(uid, component); + + // Can't do it here as resetting prediction gets cooked. + _dirtyEntities.Add(uid); + + if (!component.Critical) + { + if (component.StaminaDamage >= component.CritThreshold) + { + EnterStamCrit(uid, component); + } + } + else + { + if (component.StaminaDamage < component.CritThreshold) + { + ExitStamCrit(uid, component); + } + } + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + if (!_timing.IsFirstTimePredicted) return; + + _accumulator -= frameTime; + + if (_accumulator > 0f) return; + + var stamQuery = GetEntityQuery(); + + foreach (var uid in _dirtyEntities) + { + // Don't need to RemComp as they will get handled below. + if (!stamQuery.TryGetComponent(uid, out var comp) || comp.StaminaDamage <= 0f) continue; + EnsureComp(uid); + } + + _dirtyEntities.Clear(); + _accumulator += UpdateCooldown; + + foreach (var active in EntityQuery()) + { + // Just in case we have active but not stamina we'll check and account for it. + if (!stamQuery.TryGetComponent(active.Owner, out var comp) || + comp.StaminaDamage <= 0f) + { + RemComp(active.Owner); + continue; + } + + comp.StaminaDecayAccumulator -= UpdateCooldown; + + if (comp.StaminaDecayAccumulator > 0f) continue; + + // We were in crit so come out of it and continue. + if (comp.Critical) + { + ExitStamCrit(active.Owner, comp); + continue; + } + + comp.StaminaDecayAccumulator = 0f; + TakeStaminaDamage(comp.Owner, -comp.Decay * UpdateCooldown, comp); + } + } + + private void EnterStamCrit(EntityUid uid, StaminaComponent? component = null) + { + if (!Resolve(uid, ref component) || + component.Critical) return; + + // To make the difference between a stun and a stamcrit clear + // TODO: Mask? + + component.Critical = true; + component.StaminaDamage = component.CritThreshold; + component.StaminaDecayAccumulator = 0f; + + var stunTime = TimeSpan.FromSeconds(6); + _stunSystem.TryParalyze(uid, stunTime, true); + + // Give them buffer before being able to be re-stunned + component.StaminaDecayAccumulator = (float) stunTime.TotalSeconds + StamCritBufferTime; + } + + private void ExitStamCrit(EntityUid uid, StaminaComponent? component = null) + { + if (!Resolve(uid, ref component) || + !component.Critical) return; + + component.Critical = false; + component.StaminaDamage = 0f; + SetStaminaAlert(uid, component); + } +} diff --git a/Content.Server/Flash/FlashSystem.cs b/Content.Server/Flash/FlashSystem.cs index 0e053b02b5..db79e8ab75 100644 --- a/Content.Server/Flash/FlashSystem.cs +++ b/Content.Server/Flash/FlashSystem.cs @@ -30,7 +30,6 @@ namespace Content.Server.Flash { base.Initialize(); SubscribeLocalEvent(OnFlashMeleeHit); - SubscribeLocalEvent(OnFlashUseInHand); SubscribeLocalEvent(OnFlashExamined); SubscribeLocalEvent(OnInventoryFlashAttempt); @@ -78,16 +77,6 @@ namespace Content.Server.Flash } } - private void OnFlashUseInHand(EntityUid uid, FlashComponent comp, UseInHandEvent args) - { - if (!UseFlash(comp, args.User)) - { - return; - } - - FlashArea(uid, args.User, comp.Range, comp.AoeFlashDuration, comp.SlowTo, true); - } - private bool UseFlash(FlashComponent comp, EntityUid user) { if (comp.HasUses) @@ -121,39 +110,40 @@ namespace Content.Server.Flash return false; } - public void Flash(EntityUid target, EntityUid? user, EntityUid? used, float flashDuration, float slowTo, bool displayPopup = true) + public void Flash(EntityUid target, EntityUid? user, EntityUid? used, float flashDuration, float slowTo, bool displayPopup = true, FlashableComponent? flashable = null) { + if (!Resolve(target, ref flashable, false)) return; + var attempt = new FlashAttemptEvent(target, user, used); RaiseLocalEvent(target, attempt, true); if (attempt.Cancelled) return; - if (EntityManager.TryGetComponent(target, out var flashable)) + flashable.LastFlash = _gameTiming.CurTime; + flashable.Duration = flashDuration / 1000f; // TODO: Make this sane... + Dirty(flashable); + + _stunSystem.TrySlowdown(target, TimeSpan.FromSeconds(flashDuration/1000f), true, + slowTo, slowTo); + + if (displayPopup && user != null && target != user && EntityManager.EntityExists(user.Value)) { - flashable.LastFlash = _gameTiming.CurTime; - flashable.Duration = flashDuration / 1000f; // TODO: Make this sane... - Dirty(flashable); - - _stunSystem.TrySlowdown(target, TimeSpan.FromSeconds(flashDuration/1000f), true, - slowTo, slowTo); - - if (displayPopup && user != null && target != user && EntityManager.EntityExists(user.Value)) - { - user.Value.PopupMessage(target, Loc.GetString("flash-component-user-blinds-you", - ("user", user.Value))); - } + user.Value.PopupMessage(target, Loc.GetString("flash-component-user-blinds-you", + ("user", user.Value))); } } - public void FlashArea(EntityUid source, EntityUid? user, float range, float duration, float slowTo = 0f, bool displayPopup = false, SoundSpecifier? sound = null) + public void FlashArea(EntityUid source, EntityUid? user, float range, float duration, float slowTo = 0.8f, bool displayPopup = false, SoundSpecifier? sound = null) { var transform = EntityManager.GetComponent(source); + var mapPosition = transform.MapPosition; var flashableEntities = new List(); + var flashableQuery = GetEntityQuery(); foreach (var entity in _entityLookup.GetEntitiesInRange(transform.Coordinates, range)) { - if (!EntityManager.HasComponent(entity)) + if (!flashableQuery.HasComponent(entity)) continue; flashableEntities.Add(entity); @@ -162,14 +152,15 @@ namespace Content.Server.Flash foreach (var entity in flashableEntities) { // Check for unobstructed entities while ignoring the mobs with flashable components. - if (!_interactionSystem.InRangeUnobstructed(entity, transform.MapPosition, range, CollisionGroup.Opaque, (e) => flashableEntities.Contains(e))) + if (!_interactionSystem.InRangeUnobstructed(entity, mapPosition, range, CollisionGroup.Opaque, (e) => flashableEntities.Contains(e))) continue; - Flash(entity, user, source, duration, slowTo, displayPopup); + // They shouldn't have flash removed in between right? + Flash(entity, user, source, duration, slowTo, displayPopup, flashableQuery.GetComponent(entity)); } if (sound != null) { - SoundSystem.Play(sound.GetSound(), Filter.Pvs(transform), transform.Coordinates); + SoundSystem.Play(sound.GetSound(), Filter.Pvs(transform), source); } } diff --git a/Content.Server/Stunnable/Components/StunbatonComponent.cs b/Content.Server/Stunnable/Components/StunbatonComponent.cs index 631af4b0d8..780dae688b 100644 --- a/Content.Server/Stunnable/Components/StunbatonComponent.cs +++ b/Content.Server/Stunnable/Components/StunbatonComponent.cs @@ -1,3 +1,4 @@ +using Content.Server.Stunnable.Systems; using Content.Shared.Sound; using Content.Shared.Timing; @@ -8,21 +9,6 @@ namespace Content.Server.Stunnable.Components { public bool Activated = false; - /// - /// What the is when the stun baton is active. - /// - [ViewVariables(VVAccess.ReadWrite), DataField("activeCooldown")] - public TimeSpan ActiveDelay = TimeSpan.FromSeconds(4); - - /// - /// Store what the was before being activated. - /// - public TimeSpan? OldDelay; - - [ViewVariables(VVAccess.ReadWrite)] - [DataField("paralyzeTime")] - public float ParalyzeTime { get; set; } = 5f; - [ViewVariables(VVAccess.ReadWrite)] [DataField("energyPerUse")] public float EnergyPerUse { get; set; } = 350; diff --git a/Content.Server/Stunnable/StunOnCollideSystem.cs b/Content.Server/Stunnable/Systems/StunOnCollideSystem.cs similarity index 100% rename from Content.Server/Stunnable/StunOnCollideSystem.cs rename to Content.Server/Stunnable/Systems/StunOnCollideSystem.cs diff --git a/Content.Server/Stunnable/StunSystem.cs b/Content.Server/Stunnable/Systems/StunSystem.cs similarity index 100% rename from Content.Server/Stunnable/StunSystem.cs rename to Content.Server/Stunnable/Systems/StunSystem.cs diff --git a/Content.Server/Stunnable/StunbatonSystem.cs b/Content.Server/Stunnable/Systems/StunbatonSystem.cs similarity index 54% rename from Content.Server/Stunnable/StunbatonSystem.cs rename to Content.Server/Stunnable/Systems/StunbatonSystem.cs index 60f4d30630..2dd6f67469 100644 --- a/Content.Server/Stunnable/StunbatonSystem.cs +++ b/Content.Server/Stunnable/Systems/StunbatonSystem.cs @@ -1,10 +1,11 @@ using System.Linq; +using Content.Server.Damage.Components; +using Content.Server.Damage.Events; using Content.Server.Power.Components; using Content.Server.Power.Events; using Content.Server.Speech.EntitySystems; using Content.Server.Stunnable.Components; using Content.Server.Weapon.Melee; -using Content.Server.Weapon.Melee.Components; using Content.Shared.Audio; using Content.Shared.Examine; using Content.Shared.Interaction.Events; @@ -12,55 +13,48 @@ using Content.Shared.Item; using Content.Shared.Jittering; using Content.Shared.Popups; using Content.Shared.StatusEffect; -using Content.Shared.Stunnable; using Content.Shared.Throwing; -using Content.Shared.Timing; using Robust.Server.GameObjects; using Robust.Shared.Audio; using Robust.Shared.Player; using Robust.Shared.Random; -using Robust.Shared.Timing; -namespace Content.Server.Stunnable +namespace Content.Server.Stunnable.Systems { public sealed class StunbatonSystem : EntitySystem { - [Dependency] private readonly MeleeWeaponSystem _melee = default!; - [Dependency] private readonly StunSystem _stunSystem = default!; - [Dependency] private readonly StutteringSystem _stutteringSystem = default!; - [Dependency] private readonly SharedJitteringSystem _jitterSystem = default!; - [Dependency] private readonly UseDelaySystem _useDelay = default!; - [Dependency] private readonly IGameTiming _timing = default!; - [Dependency] private readonly IRobustRandom _robustRandom = default!; - public override void Initialize() { base.Initialize(); - SubscribeLocalEvent(OnMeleeHit); SubscribeLocalEvent(OnUseInHand); - SubscribeLocalEvent(OnThrowCollide); SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnStaminaHitAttempt); + SubscribeLocalEvent(OnMeleeHit); } - private void OnMeleeHit(EntityUid uid, StunbatonComponent comp, MeleeHitEvent args) + private void OnMeleeHit(EntityUid uid, StunbatonComponent component, MeleeHitEvent args) { - if (!comp.Activated || !args.HitEntities.Any() || args.Handled || _useDelay.ActiveDelay(uid)) - return; + if (!component.Activated) return; - if (!TryComp(uid, out var battery) || !battery.TryUseCharge(comp.EnergyPerUse)) - return; + // Don't apply damage if it's activated; just do stamina damage. + args.BonusDamage -= args.BaseDamage; + } - foreach (var entity in args.HitEntities) + private void OnStaminaHitAttempt(EntityUid uid, StunbatonComponent component, ref StaminaDamageOnHitAttemptEvent args) + { + if (!component.Activated || + !TryComp(uid, out var battery) || !battery.TryUseCharge(component.EnergyPerUse)) { - StunEntity(entity, comp); - SendPowerPulse(entity, args.User, uid); + args.Cancelled = true; + return; } - _melee.SetAttackCooldown(uid, _timing.CurTime + comp.ActiveDelay); - _useDelay.BeginDelay(uid); - // No combat should occur if we successfully stunned. - args.Handled = true; + if (battery.CurrentCharge < component.EnergyPerUse) + { + SoundSystem.Play(component.SparksSound.GetSound(), Filter.Pvs(component.Owner, entityManager: EntityManager), uid, AudioHelpers.WithVariation(0.25f)); + TurnOff(component); + } } private void OnUseInHand(EntityUid uid, StunbatonComponent comp, UseInHandEvent args) @@ -75,21 +69,6 @@ namespace Content.Server.Stunnable } } - private void OnThrowCollide(EntityUid uid, StunbatonComponent comp, ThrowDoHitEvent args) - { - if (!comp.Activated) - return; - - if (!TryComp(uid, out var battery)) - return; - - if (_robustRandom.Prob(comp.OnThrowStunChance) && battery.TryUseCharge(comp.EnergyPerUse)) - { - SendPowerPulse(args.Target, args.User, uid); - StunEntity(args.Target, comp); - } - } - private void OnExamined(EntityUid uid, StunbatonComponent comp, ExaminedEvent args) { var msg = comp.Activated @@ -101,24 +80,6 @@ namespace Content.Server.Stunnable ("charge", (int)((battery.CurrentCharge/battery.MaxCharge) * 100)))); } - private void StunEntity(EntityUid entity, StunbatonComponent comp) - { - if (!EntityManager.TryGetComponent(entity, out StatusEffectsComponent? status) || !comp.Activated) return; - - SoundSystem.Play(comp.StunSound.GetSound(), Filter.Pvs(comp.Owner), comp.Owner, AudioHelpers.WithVariation(0.25f)); - _stunSystem.TryParalyze(entity, TimeSpan.FromSeconds(comp.ParalyzeTime), true, status); - - var slowdownTime = TimeSpan.FromSeconds(comp.ParalyzeTime); - _jitterSystem.DoJitter(entity, slowdownTime, true, status:status); - _stutteringSystem.DoStutter(entity, slowdownTime, true, status); - - if (!TryComp(comp.Owner, out var battery) || !(battery.CurrentCharge < comp.EnergyPerUse)) - return; - - SoundSystem.Play(comp.SparksSound.GetSound(), Filter.Pvs(comp.Owner), comp.Owner, AudioHelpers.WithVariation(0.25f)); - TurnOff(comp); - } - private void TurnOff(StunbatonComponent comp) { if (!comp.Activated) @@ -135,11 +96,6 @@ namespace Content.Server.Stunnable SoundSystem.Play(comp.SparksSound.GetSound(), Filter.Pvs(comp.Owner), comp.Owner, AudioHelpers.WithVariation(0.25f)); comp.Activated = false; - if (TryComp(comp.Owner, out var useDelay) && comp.OldDelay != null) - { - useDelay.Delay = comp.OldDelay.Value; - comp.OldDelay = null; - } } private void TurnOn(StunbatonComponent comp, EntityUid user) @@ -147,13 +103,6 @@ namespace Content.Server.Stunnable if (comp.Activated) return; - if (EntityManager.TryGetComponent(comp.Owner, out var sprite) && - EntityManager.TryGetComponent(comp.Owner, out var item)) - { - item.EquippedPrefix = "on"; - sprite.LayerSetState(0, "stunbaton_on"); - } - var playerFilter = Filter.Pvs(comp.Owner, entityManager: EntityManager); if (!TryComp(comp.Owner, out var battery) || battery.CurrentCharge < comp.EnergyPerUse) { @@ -162,14 +111,15 @@ namespace Content.Server.Stunnable return; } - SoundSystem.Play(comp.SparksSound.GetSound(), playerFilter, comp.Owner, AudioHelpers.WithVariation(0.25f)); - - comp.Activated = true; - if (TryComp(comp.Owner, out var useDelay)) + if (EntityManager.TryGetComponent(comp.Owner, out var sprite) && + EntityManager.TryGetComponent(comp.Owner, out var item)) { - comp.OldDelay = useDelay.Delay; - useDelay.Delay = comp.ActiveDelay; + item.EquippedPrefix = "on"; + sprite.LayerSetState(0, "stunbaton_on"); } + + SoundSystem.Play(comp.SparksSound.GetSound(), playerFilter, comp.Owner, AudioHelpers.WithVariation(0.25f)); + comp.Activated = true; } private void SendPowerPulse(EntityUid target, EntityUid? user, EntityUid used) diff --git a/Content.Server/Weapon/Ranged/Systems/GunSystem.cs b/Content.Server/Weapon/Ranged/Systems/GunSystem.cs index 3d7cde1f99..8d4405bd7c 100644 --- a/Content.Server/Weapon/Ranged/Systems/GunSystem.cs +++ b/Content.Server/Weapon/Ranged/Systems/GunSystem.cs @@ -1,4 +1,5 @@ using System.Linq; +using Content.Server.Damage.Systems; using Content.Server.Projectiles.Components; using Content.Server.Weapon.Melee; using Content.Server.Weapon.Ranged.Components; @@ -24,6 +25,7 @@ namespace Content.Server.Weapon.Ranged.Systems; public sealed partial class GunSystem : SharedGunSystem { [Dependency] private readonly EffectSystem _effects = default!; + [Dependency] private readonly StaminaSystem _stamina = default!; public const float DamagePitchVariation = MeleeWeaponSystem.DamagePitchVariation; @@ -116,6 +118,9 @@ public sealed partial class GunSystem : SharedGunSystem var distance = result.Distance; FireEffects(fromCoordinates, distance, entityDirection.ToAngle(), hitscan, result.HitEntity); + if (hitscan.StaminaDamage > 0f) + _stamina.TakeStaminaDamage(result.HitEntity, hitscan.StaminaDamage); + var dmg = hitscan.Damage; if (dmg != null) diff --git a/Content.Shared/Alert/AlertCategory.cs b/Content.Shared/Alert/AlertCategory.cs index db81212271..df310ca469 100644 --- a/Content.Shared/Alert/AlertCategory.cs +++ b/Content.Shared/Alert/AlertCategory.cs @@ -10,6 +10,7 @@ public enum AlertCategory Breathing, Buckled, Health, + Stamina, Piloting, Hunger, Thirst, diff --git a/Content.Shared/Alert/AlertType.cs b/Content.Shared/Alert/AlertType.cs index 2a42b20d6f..c348edca5a 100644 --- a/Content.Shared/Alert/AlertType.cs +++ b/Content.Shared/Alert/AlertType.cs @@ -28,6 +28,7 @@ Overhydrated, Thirsty, Parched, + Stamina, Pulled, Pulling, Magboots, diff --git a/Content.Shared/Alert/AlertsSystem.cs b/Content.Shared/Alert/AlertsSystem.cs index b0cfdfd11b..60a609538e 100644 --- a/Content.Shared/Alert/AlertsSystem.cs +++ b/Content.Shared/Alert/AlertsSystem.cs @@ -85,7 +85,7 @@ public abstract class AlertsSystem : EntitySystem AfterShowAlert(alertsComponent); - alertsComponent.Dirty(); + Dirty(alertsComponent); } else { diff --git a/Content.Shared/StatusEffect/StatusEffectsComponent.cs b/Content.Shared/StatusEffect/StatusEffectsComponent.cs index e412a41d76..c18c89168e 100644 --- a/Content.Shared/StatusEffect/StatusEffectsComponent.cs +++ b/Content.Shared/StatusEffect/StatusEffectsComponent.cs @@ -14,7 +14,7 @@ namespace Content.Shared.StatusEffect /// /// A list of status effect IDs to be allowed /// - [DataField("allowed", required: true)] + [DataField("allowed", required: true), Access(typeof(StatusEffectsSystem), Other = AccessPermissions.ReadExecute)] public List AllowedEffects = default!; } diff --git a/Content.Shared/Weapons/Ranged/HitscanPrototype.cs b/Content.Shared/Weapons/Ranged/HitscanPrototype.cs index 764b8c3218..2918918162 100644 --- a/Content.Shared/Weapons/Ranged/HitscanPrototype.cs +++ b/Content.Shared/Weapons/Ranged/HitscanPrototype.cs @@ -14,6 +14,9 @@ public sealed class HitscanPrototype : IPrototype, IShootable [IdDataFieldAttribute] public string ID { get; } = default!; + [ViewVariables(VVAccess.ReadWrite), DataField("staminaDamage")] + public float StaminaDamage; + [ViewVariables(VVAccess.ReadWrite), DataField("damage")] public DamageSpecifier? Damage; diff --git a/Resources/Audio/Weapons/Guns/Gunshots/license.txt b/Resources/Audio/Weapons/Guns/Gunshots/license.txt index acff754062..9b375674fc 100644 --- a/Resources/Audio/Weapons/Guns/Gunshots/license.txt +++ b/Resources/Audio/Weapons/Guns/Gunshots/license.txt @@ -1,2 +1,5 @@ atreides.ogg, c-20r.ogg, flaregun.ogg, mateba.ogg, minigun.ogg, mk58.ogg were taken from https://gitlab.com/cmdevs/colonial-warfare/-/tree/32cb5892413243cc74bb2d11df8e3085f8ef1164/sound/weapons They are licensed under CC-BY-SA 3.0 + +taser2.ogg was taken from https://github.com/tgstation/tgstation/tree/88d7dbfc105fbf40284d7b7c4587f8d23c0ac3ac +It is licensed under CC-BY-SA 3.0 \ No newline at end of file diff --git a/Resources/Audio/Weapons/Guns/Gunshots/taser2.ogg b/Resources/Audio/Weapons/Guns/Gunshots/taser2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b53f9db5c3d3768ed1f90a66efe284a1d55b6990 GIT binary patch literal 8189 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 O89ZJ6T-G@yGywpEN>QKy literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/Alerts/stamina.rsi/stamina2.png b/Resources/Textures/Interface/Alerts/stamina.rsi/stamina2.png new file mode 100644 index 0000000000000000000000000000000000000000..a3d263d7518eae46a91c3f40441e33315930d8a6 GIT binary patch literal 1003 zcmVJNRCt{2oiUEvFc3u`X1uFB7l>HKA@RD6lwkJ*91~1fSBq6^xwbz`SJ7Dmn0&(epLY`an((@ z>At=G?oyKKTa7*=NX+g6JcIQ=yI-nrwb#J`Vs;gP?)T~b8#q8raRHXyf3_Qz-G6<* z3<76`2^6zVA|0JGn3_D{HM#FB`!$Ipts)#_&#pr`xYyZ?sESqov&09Y+|Lj?`&+9za zUlz!-`!n@zp`ZP9lr@4LU2Lm39<;3Qz6SKn{-V7>=#5wl>w~KUdb+=OXUt)on5wTN zNBfOW052bl&{+L+X7^3{BZFAqYV>h{7?%Q^-F+?T;{Y+$1-R1vRr)wU%lft%=zf2F@&RJ~ z?0mpl_isDG_5J++{(ie7pI`s5ry$mci;n}C{m1HOw~KU=>Bqj4&%gB=L1H%+aJ-7g;n}EKn(c+u|5tELq0&P zj|0Sz4-o5<4-o4!g2Ye&G2{cp`Yq%GOswCL4+u>3e1M7dyV~pE05OsC0VdY(Jg$WU z#6-;p*i7F9`rS-_;4m&Q5%U2i*6%#889g6hV*TN?(@?tqnE#`ce1KR#Qa->|^esK) z`G0>w%lUv1>qC@$fQj|HqpsgdKEM|GcCvoA(9eE4A|D{uZ!sTWk@f~HkeI5&IJ&+b93Wj#1m?rW8k--6C!si2`g9F5b%?GqX=zKs6 Z`~_$WJe4kONB95$002ovPDHLkV1nv;@n8S| literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/Alerts/stamina.rsi/stamina3.png b/Resources/Textures/Interface/Alerts/stamina.rsi/stamina3.png new file mode 100644 index 0000000000000000000000000000000000000000..356916dfe0be5242dbfbc5f052a3cf387d778138 GIT binary patch literal 912 zcmeAS@N?(olHy`uVBq!ia0vp^2|(Py!3HG1+{xJmq&N#aB8wRq_>O=u<5X=vX$A&n zCr=m0kcv5P=U&Xc?I7Ty@3@Qe4)f>Ku!&LYgqhbJ`o}ff!#d3A029Ydp~~&rePti- zEl>WydTVZR$tMMSE{{Zpq%+JF|Gs|y^6&Zk?Mh0!?wd4hj`^x|=HB-E_uDsm{Jr|< zIfu|?+XnZJe|!EW)o-lwD~={e_ns$Um3@wHPZ`&1wYPtvYA6jVcBl^1K)oC@NAf|uI@n5@8j3| zAI{}Z+R@YPRczm|`Tq5MuLBp4pYPi5^4&xvEa({0Zdidw}&-i`& zwoVlMqsu8FwQu`}NW;Gk0(HL_lR(Pm*EQVmw|9869B6;Bqw2E)MLjKKI| z`oH0Wf6OsfwIr~j=f;b_Gq1W~FIy&k>f8P2|MeFDt#p6Ienqri*Sz2xzxF@<`0TGh zfsl>$yV{Z6bs6ZImq2U3FdwPYdyMHgVCaHe1(NPlFywLY`BCRka%TI&&)w$*em&$6 zO5W9z{QB(#2E)658MfVL2ZrZr`3-mKE+sUxbY#9`-|%+djy;0f7kq>58^mwV|M0ir z#hZ8RYxd5F);CyrGYy*yhvU^Qb<9q#$Le+7%(^L9K@WyGaG&2FLhNgO?;WW6PU#qJYD@< J);T3K0RWk*wg&(J literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/Alerts/stamina.rsi/stamina4.png b/Resources/Textures/Interface/Alerts/stamina.rsi/stamina4.png new file mode 100644 index 0000000000000000000000000000000000000000..d0645f4ebdb3d6fd10cc85985e86e35fd2fdde34 GIT binary patch literal 795 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 Ba1;Ol literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/flash.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/caseless_rifle.rsi/flash.png deleted file mode 100644 index b50945ba8f785ec2e11a3d7160b712bf72305449..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ@18D>ArY;~60D08M0%P64IVKn zuVfSun|5qL{+i+WyKo|k%|pR1OHz<%J=5>afV`!P-lkePt(Mf^(^_!gDZjtz@kI^GEc>8hV*d~d%mEnbP0l+XkK%AP2J diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/meta.json index 5efc1be2a8..a85b6144c4 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/magnum.rsi/meta.json @@ -13,9 +13,6 @@ { "name": "mag-1" }, - { - "name": "flash" - }, { "name": "hv" }, diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/flash.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/flash.png deleted file mode 100644 index 0698be7c2f35c7fdf630812507f74067cf8d7f72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 312 zcmV-80muG{P)=sA%bi909_g z`3xDR^uHy`auA>>4OkniFdRL5hiuD7!6+C7qhJ(_f`JDN3=9D8CUB^}bkHdP0000< KMNUMnLSTa8{en&a diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/meta.json index 5efc1be2a8..a85b6144c4 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/pistol.rsi/meta.json @@ -13,9 +13,6 @@ { "name": "mag-1" }, - { - "name": "flash" - }, { "name": "hv" }, diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/flash.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/flash.png deleted file mode 100644 index 7de6be0c898a68597407f975bcd32e47654af79d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmV-E0m1%>P)*-41)Y3Bv}pu6eU7*hmdMHSq^yr z@ioKx^(%48lVUjtkQ@at!=d?`AuuqUY|F`V04|3hi;aR&FbakaU|?VX07lYu33mqT Q!2kdN07*qoM6N<$f&~tI8~^|S diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/meta.json index 52a51b7fc7..a92a8ed5d5 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Boxes/rifle.rsi/meta.json @@ -19,9 +19,6 @@ { "name": "magb-1" }, - { - "name": "flash" - }, { "name": "hv" }, diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi/flash-spent.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Casings/shotgun_shell.rsi/flash-spent.png deleted file mode 100644 index 075ef807e62f832ad4cd3b31025e9de710992b40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 352 zcmV-m0iXVfP)T0{AB{<)8pmjDNA;3eg$hf8Upk zXRw^Nx`|GJI({^T@eCfr>fL_;Hk(b!)v}6zNKi4HPhgd5A$HrwgCM9DdlOLeYQ9QI zE}t!(y|e+vdRkuJ{T?vOGB|#~dpgsOYXgK3rIZK2A@Etn0i_i0E#jc@4G1Ah$8qX) znpkz*w(VB&#(-^nv54_Jmo)hT;8l(~#Tx^{Ftm!I!1G*O*X8E+l(#iFBiSk57_dbE y5fnNqT$igy;=Ozn=`FDXeBr zU!oVFjh|;Qn!?Lm_WlFVG>zeYCGk%MdI>iZSeI6aL)Uno=dw7OfS$?ox}>;UL^kiT z25hU$JUn&>tm_&spSgY=TgR;d5fiH;zT5CQW;$ZO)ba9!oh}w7@$4>FR0oy7w z7fH7+iyZ*(D(Mx6J+I&_QPHN#4D8yyO(pw%;$U$Fg76!+0{lhzidzGI5x(M10N)b; e0T2L#1AYMLA7rLrlI)xS0000Po*L>oB=9ji)C9?z&@bsM7*kxbwp=05KEpPv~ywjQ_>o|#7 zZ;tgz1qGE(#dQl5j(>P?P&w$W+F3?}Zc&jZ22b9s@i|e(aIy2l;oZ**PA5*An5`Mf zw?I_kB%^`+VJ9Xxd8@KEMLjK$iM;uK3r{eNyxExeaZ)PJL_tND>Fg@447(1VpJ(s9@FXMiJZ_IJCN?&Yxghs! zbx2BR5b^4swl-N|TZEb=%ZjbIJqt+l)J2{bT2so0wwB%-ng^ z(CEj9cb11)x2#ZD9_Uo0x4=x|Ls0@aL<-m$7|a>6pFQ02ehM)B7(8A5T-G@yGywn| C=8jDO diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/CaselessRifle/caseless_rifle_mag.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/CaselessRifle/caseless_rifle_mag.rsi/meta.json index 0da5f470a4..8675d7f4ab 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/CaselessRifle/caseless_rifle_mag.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/CaselessRifle/caseless_rifle_mag.rsi/meta.json @@ -10,9 +10,6 @@ { "name": "base" }, - { - "name": "flash" - }, { "name": "high_velocity" }, diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/CaselessRifle/caseless_rifle_mag_short.rsi/flash.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/CaselessRifle/caseless_rifle_mag_short.rsi/flash.png deleted file mode 100644 index 9f1109656ffc674a96ddd66477a92c16952c7331..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 369 zcmV-%0gnEOP)Lf6LrA0t!#nUq*^b)B&RopcDWAh?Q;+SrrG? P00000NkvXXu0mjfK!KL8 diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/CaselessRifle/caseless_rifle_mag_short.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/CaselessRifle/caseless_rifle_mag_short.rsi/meta.json index 0da5f470a4..8675d7f4ab 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/CaselessRifle/caseless_rifle_mag_short.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/CaselessRifle/caseless_rifle_mag_short.rsi/meta.json @@ -10,9 +10,6 @@ { "name": "base" }, - { - "name": "flash" - }, { "name": "high_velocity" }, diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_mag.rsi/flash.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/LightRifle/light_rifle_mag.rsi/flash.png deleted file mode 100644 index 837797e9307e5f40248fac1cccaefef4deacf95c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 403 zcmV;E0c`$>P)dU zX+T?5l;O*prwq={4rJ*k$pOfrpsgy(psgy3BLDsiE6Hhrh0GIlV+@D zFt;=yIYE-_fXIjt#%Ir;!7aXe`!!q+mLN%S1X*d|(v`O;79#^v9YK}@kkbM#M-U6h z&IR}!0V^lI;ix;P;s9KZfbqY*eaQaaqTlnh?HL@$s&L;MP%iJtiHe2c_^e4p-qpUz9u6hqp@pwUNw5nu!u0RUXu9Ezgo_}dpqiDi;_X9H*l z6+&R*`?#4-0RWpk$M<&2jSYZV0wQXH13;E#Fvb7?s;W9KfY#bG#vlyC=C*avqAU?e ziHF6aQyOOge;E-qdz&(_0E7@7-zLwSy-gWd0Cnx#RtwSAJnldeMbVLnkYyPrzTecp zUIDOvM<ZJpABLYs(1E)-D{cl6E0&r=Ak7Ogj-~c~)qj;PiMB#`40000=*N diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Magnum/magnum_mag.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Magnum/magnum_mag.rsi/meta.json index 542b70c21e..a3bcacb549 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Magnum/magnum_mag.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Magnum/magnum_mag.rsi/meta.json @@ -10,9 +10,6 @@ { "name": "base" }, - { - "name": "flash" - }, { "name": "high_velocity" }, diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/pistol_mag.rsi/flash.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/pistol_mag.rsi/flash.png deleted file mode 100644 index dd4541b16bb8179eda2fbdc9f48cad7836eb987b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmV-y0h9iTP)t)500su~(3 z6&Ug}8%U~#VSuFC5LaqPPZKn80GF^NUW>@h1&pIzvrz{Ov;zRtU1G9ty!vGT0000< KMNUMnLSTY7r;l_1 diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/pistol_mag.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/pistol_mag.rsi/meta.json index 542b70c21e..a3bcacb549 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/pistol_mag.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/pistol_mag.rsi/meta.json @@ -10,9 +10,6 @@ { "name": "base" }, - { - "name": "flash" - }, { "name": "high_velocity" }, diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/smg_mag.rsi/flash.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/Magazine/Pistol/smg_mag.rsi/flash.png deleted file mode 100644 index 53f842161382172fbd31d37e8be41d8cc43a3265..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 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 KMNUMnLSTYX;ybAT diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/flash-3.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/flash-3.png deleted file mode 100644 index e2997462a024a831760e39a8c0ba2c8522bb034d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2479 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 IM6N<$f*#|*0ssI2 diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/flash-5.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/flash-5.png deleted file mode 100644 index c7b19398d1eed7912378f619414d452fcab98020..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2564 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 aR^0(;Df#HR0l_5z0000w diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/flash-6.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Magnum/magnum_speed_loader.rsi/flash-6.png deleted file mode 100644 index c5c22638d84c8b34d80fe01c47f7546525af5799..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2551 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 diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/flash-2.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/flash-2.png deleted file mode 100644 index 87c172f616a7cd96d45978c50a9e647619e24da4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2231 zcmV;o2uSydP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U-|clH@21{O1&V1Oy0);|K&1dxJgxCfHTo)jf~c zo{9Y$yQ;8dtVgCKs4)NedxgJnq*OH&7Okz;h@-U9lHo$*bzCFGa(>T|?nk(Pk%#Al z1X0GAuiHBB`35<^y&&b5_g8t4aqH1r5ycnNd0XDsemi+9%IT8ReIMHWg4K87+}|{A zwU4kq+!p~D&d`@rNHbH8=QmxJ^7S=*8NVsho`~m`%aNyCKI0dj(0v2I=hX-N;={B2 z2FIo75mxBS>TPs{1ON25fE?~ix*t>wDbyrQ#G1K_H6P>)c~6()AT zna^t#r{K%DmUA|o8Z8d6<_NWi*m2V+0r5qJoQxLDGY%SXv80&{Cb9ug0G%0iq_g`P89Wt75qv& zzu?AZZvSEy2%&Xj$_HNx*APD*o7fBn`M|6Q&|<$-bf&l5%7^D1IbdpuSG|zanBzfv!fH-h+c$rGh7365zw(*Y8nVUFWVzd_!!MSDu zH7y&+Duqi$y(v=20%tDFTv=GTvDI8lcqKo3(U^+VkX%HHbwXDrmP8-kgE4 zR0xdAW&jDDHfK?(l(d=KoW+)M$e9zoV5}vVN>^xxzD_PgEhC)Zu22%S0OM(hs-FyRiY)uCw_GdzpCJmqCbj$o1)b`pq>hL zODxt{$XSM!HhoLRbY7)6%ABzh6nr$E*DZb;!}lKiV1#|^Q=3)n;vNQ$qK*o+DTdPY z#;A24Qw__Gn=kH+cX=A)3e~)u1^1@nl3RE0Z0>c1?rSuu*uqTeXaQ&#K92TX`o%k1 z;CL5$9+qI>y<=!h7Q?};JzV_4xS@odfK?9-RrPo1)v+fq2mGW(wBH9Hz#xxynTHwJ3Pi)k2od-ok?1;Nc&oaR9+ zyh3&(hRxE?FvF)rU04_noeI{zkN{^qU>hN_4Sa9|0_eM-_n5&Jgm~;#Bky7F?5a6L z0BOG<14~SwqxwWntjTM|vZMyB30pm6FwzC#HyE3#_R(HY!x}}W7-p#*EMqOi%Hsu_ z$*mstgWAqRW`!xinloGNG{LITHfug7okD@Pb$V0%cCm#2hD{$xam&<|#yUw#Ja@+T zKuLB{Zgg}!l1UASjOe^y9o7-!+)H=^uY`rtr30-s2$^D}9XSYCC_fFw^FS*n=Jvv3Eok*e*LA*m3o)yB+kD z41Wpob+=X3IWZOfA-z$e*t?t%kViXwgBG@|f@-=V!REnn*Xvv0UET%qc?`dj&AW@C zmPC-R0j0=|b`2?#$IDIpB`jn z%xy6l8pIt|`-!IT>nqwHMgOCsys*!0;a^lOVM$s?x<3E_0flKpLr_UWLm+T+Z)Rz1 zWdHzpoPCi!NW(xJ#a~-XMJooi9Y#}X1qLV$!C%Ba9Zlvb4#11Z{%x%h`|f0A4hxyoSVSU?pD zMB5Mk2fw>D3R9C#QZNSiUo7h*0t9w}X5F&Bk1eZt0{EVRE4A&fHh|er((7$4d<67w z0~gnAP1*x4cYvWMP1HqO^3n7b3c&jreNzq?xCMIFoZeddIDG&z)YbA0aBv8W7Abq( z<=x$#z5RQp)!z@R@N&Kd(fVls000JJOGiWi{{a60|De66lK=n!32;bRa{vG?BLDy{ zBLR4&KXw2B00(qQO+^Rf1r-Y@8QVoNVgLXEaY;l$R9M69mN83&PyomO&!Mf+0|^`? zI9zII?Vyj45C|=9T^!L61};u664EHtc8heAeSij!i@>3xAZ~LwsDnHD0xh=WL+^sr zd*Sl_i}0TK`@R2Dc_fM=G#LR6hYN54F2Dtt37D3hnwFh5B4Ao}s%bhDSw&R|fffAa z@wG602lbLd;>HHz4VZ2B2WMT002ovPDHLk FV1g=&BMtxn diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/flash-3.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/flash-3.png deleted file mode 100644 index 45dc0a2735a640b23942f20153b2bf332053ae88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2426 zcmV-=35E8FP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U-|umh7eu{Ld=h5&$72mLtB-$qusol(46Jx-&P) zog_crIkCr$jj@obq=E_S*I#z{AC62}Lt)X{YK=HbD=iytG+xKmrdZDJIr9Aq&oBMq z@gk#((9-o-*FE0Q&(9B}-2MHvKghW4=xr#)m#N8T_WOA|c^jg9^{4wewEF|ApTfDX zJZ`feVZA*U0T`2Ek8;S162V`!Q}Tg$Z&dF7{CoVu1G+B&eB8a^7e73s zCmffdkFe?+PIrIew|;s|lV3ba`7v|;?9tv);^*TNetS>ddtK34sR3}+JE)IP(q&|J zz)9z`ic@eg?&X{fr$&ndtWAX4L+p5HDFgAHN}9>iPV2NI4Y*kH%7QlM0mQveNpi~r zpeMkOGwm#a8ckBLGQb?6J3o9$XWr)XVKT+cGht*-Fb0la&+y*y-SfrJ-k#AX zK!mv&&Ljc@u_oeFQAXPdUt zLMpAYc-19KS6jA`Ynyi2yz7>&yKQ^0cC-4*+B z1*h(xU@kaypP2hSZ(p!B?Z_=1g1icWDHM`We!E1=iof{XHvC-!{~7xKH?)(O>A;>S z@z^ZZ7}d8Sk4x&tUTmz%yOde$g!C51Uw*X}{sCuR4edN2ZKGDAWpnhk=GwAMxMFiQ z{mG_{$|zsr&aAzle8!N~`Z#K?!6vNpeQk_`(l)R240$Sw{7#1V&eh&{p`y~8c2 zp+OLHuXB^kv8BhZx?M^0tU#h1B-prgDC=eljCI@N6ht<3R@w_YHY_TA!ISApj`^e+ z1MpTC;O4O~Q=LcH=~XF4&XP(ssx-ER}zO{x4fP zIia=BJ3oMwmQ#^FOTpSCAx($O6ZmWqrw8e{d2C4FuAp!+KzwP<)$SYnN zP5A1?Q=WvTXDKqXfx9|Na{zq0O7W0_+`@tljPNfIQesoKiAA)@z`Ebps89ojAn^9x zYuVUD)Qlx|ZU^DY)J_hR#gkG2nS$NrY`_AAxwGdEimP6UcM!9<Vl-` zJb^5;0F^-G{TVsB6`@3HY) znRp>EJ#i?iE?$XMbo@YT!k>%LpR`CBz_^3YXtwGd7J&Vp#Ss6tOaB@A7Yt#4-B6sr z0gktYe?zx(KmY&%g=s@WP)S2WAaHVTW@&6?004NLeUUv#!$2IxUt3E>D-Ko=amdg* zhy_s*N2y{FER?oFs}3fYenFFlB*n#1a4k6au~>C*an{wrRS*O}K%5+%6kVjm|0RVM zF&-TEBH7MVq}mGo)uy z^TZ)yq1eGv2eXo{5Kj|_WkscYZ`NU%^A=~NQe&-q@)rj4>PnjHG)EA}5)w#4fP@;# zsK7*&R+SV3DcX;@_=jzOl3WtG%3$PJKotr^+YkN+zq>UGQuoK31oUqM7uRh~+5;|kfT1T%)J0qJ(exGy!220} zQw|uo1$x$;-dg)OeE>4l)$$E+a0rYRDSO@J-QAtN{d=a>-w&(sa=r!8`e^_F00v@9 zM??Vs0RI60puMM)00009a7bBm001r{001r{0eGc9b^rhX2XskIMF->s6$>Z>CMU}n z00058NklJxIeq7>3`=(9N-hTF4NP5`-4*CI*~!F(4FNvRNs`sY($#6{JXU z4A`v*#e$GYCx?_2A%hhKDTrh!ltPP>n@b!@LSh9kKhh=d6mo&*$@hJC98pyjiwuJW zClZJRB7wjHvfMVym8!WA0aE%R*q)`kOs zF&qGZX9>m+d|gNZ09M{gE;z^Xo+YRS%9W}M-q%I|faUk54L61Zh+^JTI~ZCx$MQIT z6^Il5@HAULS=DT~)e_oDFtl(05XC%B?{ zQ3`!+guSJv3*M;LNMM0Rz4q%L^IyXKH7H8Qwe2{TM=vIjpYz}a zPAwqIZHQvtmaxLHJdW?v#0lTMP)TU#K)F(dEVu3cb1V;C@7n9eaDaF+0p%l2{J{Sd z;8-5c;}!to$pm!0>zWIvM5qGA;yx6m(UmL`hy?yC--BPy^u8}C`2YX_07*qoM6N<$g7ou>FaQ7m diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/flash-4.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/flash-4.png deleted file mode 100644 index 4826271b83c577ab0b063fb0438606e4e3a95e05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2484 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 diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/flash-6.png b/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/flash-6.png deleted file mode 100644 index 10648a7e0563137e3289363cdf593e890c93ed2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2479 zcmV;g2~hTlP) zaB^>EX>4U6ba`-PAZ2)IW&i+q+U-|ca^yA){O2ih1Ogxk@;H1}vV=Ckc2VO!F&y_Dta{U^9iYp8GLcDJxQqDDf#xFde`v!oIyBGZ8n`QD2 z$0g{^t^9)1Jx}^FFAp{RWD)U0Gk>&*#v>3u;kWlJd#}s8mJmlZ<=d$@SI!+4cEBm; zvy9X5Q{3A*E6x&I9AIt2)gEHULnQ{{n-WcGv}v7j(13}F7aKS&+iOyYm>e_R+UV80qAbds|I`XhlMjdVPl!+1$W}Y_7tg|gz2&I*l zuDooORae`HwJkes-Fe$CyYBX2?Pm3vwO8i;nKimu<3p6Mvv<}oZT2RDyqu_W2F5rM z7&m7C0nN@?ER+&EbIw_;EI~vWR;rUT$r%HKX%XwD2Y2txeV4ZYbbppN{uXn=srwbo z1*h%w>sl@Yji|=E2o%rhLg8D#06{A|lZrylyq}AN5P9)|K!_z{l zQB_?NwpLxykdD!4ZtV-nlV?CK;vRW~{kY9!$hfXDA-=edf^18Kcd0l8*$sfl!yk~F zeU;iq#bmf_OY!)w@ylcQFkxe%5&&94@uIrniNfk_y`nvUllyiuf)JVKi`va(a;w;m z>Np6ByR4*0nQwGFlVww1q*s#`ahqan7O2sP+YbPx#>R%)lwm1-zFEqmV=T;@sD? zsAwbG#O}~L;z+x1o>5TDu?_WE6jKun%+xN#I`*v^xub-yl6~-|!$Zgc>P$$b;2y_2 zg?@OXlYr<>oK(Np5prTVsv#VTP9y*=9}ow{{XhW2);2tB7H@7VA)xjywg<@^jS%L+ zcOsry+Hz4V!SY{b*ENQG5czkN7L-S z#p9bps&S+BaGzxaZjcXHyivG)Ud0pnCre~_O!Q^>VA+Q*Z%Yuq$fV-sA{Wmj@gPAN zMUU8fIhnUe^7XX2@651q4r z1n%|)M?R0?x;gb1lzCBdE8y2iW`{b`N@>Cw6vmkj^Pb+>2IzByQJHLnzSD${pvWEL z;|KMArEX>4Tx0C=2zkv&MmKpe$iTT4YN4ptCx$j~~71yK=4sbUc< zl(s^v4knj=L6e3g#l=x@EjakGSaoo5*44pP5ClI!oE)7LU8KbSC509-9vt`M-Mz=% zJHXqhFvaMa02I~KQ}LLP&8-T7SNJiAUPLe^GDAzG7c+1jU-$6v^)AY@+|T_v`sBR9 z0FOXC$28p}-XNaYG&Roq#35D^W#V(+gyEO_^lTK1F2KZkr>mvdLc7bNyvc8Wkt9b(W zo`Ea1?XNa~*-z5zZ7qBR^lt+f*KJMO11@)fp(jn$MO*UG^cD)h`x$*x4j8xvde)rY zTKhPC05a6o@(pls2#gjfd)?*T-JQMtd#2Uj53BHUz6H_xX#fBK24YJ`L;(K){{a7> zy{D4^000SaNLh0L04^f{04^f|c%?sf00007bV*G`2jm463nnBTu2cO000Fy6L_t(o z!|j$oNCHtDfWIfLjS3PtxP(g$4K78^4bed$v>1dH6-@>%E(IYK4N(UbL4QCJgoB`| zMF~QSl7f&H2Pp)j$<5`O?z+pN^SpAow;Vhkd>`NY9d{y^%hAo{q07q^a0Og}js;{n zt;%v*?TUabr`6cfEU~3o;)$gCuL2qz;I42_Fc88{30ng7^D*^ot;x~;F?WS~o*tgD zTf$=pKCwCjz{dEM4mXx)N5Zl|JdrfP-wM|}-n{d(gyFpEm_R&{Bp3*>`7$Cdw@!5U z&k_KYY8gq2ST5nQ3I~v+2-(J*Fv2yNsop~!ZY<&06$}my=+A6p&Qt>6wgeXo6;p}r z)Vk zrT6-M6pMM&TzLIHl+S+Q__ttjaT-O*m?rz9R_FBefR9>TKd0^4S(b({8lA`M_qBkc t(Rl#d@V4FpCtw{3xW8nsfGhA<>kImv{IZi5SHb`Q002ovPDHLkV1mNWuD$>O diff --git a/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/meta.json index f4c28a4760..cf40a0390e 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Ammunition/SpeedLoaders/Pistol/pistol_speed_loader.rsi/meta.json @@ -28,24 +28,6 @@ { "name": "base-6" }, - { - "name": "flash-1" - }, - { - "name": "flash-2" - }, - { - "name": "flash-3" - }, - { - "name": "flash-4" - }, - { - "name": "flash-5" - }, - { - "name": "flash-6" - }, { "name": "high-velocity-1" }, diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/meta.json b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/meta.json index 4aa7146472..1fe6e79dfe 100644 --- a/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/meta.json +++ b/Resources/Textures/Objects/Weapons/Guns/Battery/antiquelasergun.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "taken from tg station at commithttps://github.com/tgstation/tgstation/commit/8b7f8ba6a3327c7381967c550f185dffafd11a57", + "copyright": "taken from tg station at commit https://github.com/tgstation/tgstation/commit/8b7f8ba6a3327c7381967c550f185dffafd11a57", "size": { "x": 32, "y": 32 diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/base.png b/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/base.png new file mode 100644 index 0000000000000000000000000000000000000000..bddfe4180882967b5aecd79a31d9f5e1818efa11 GIT binary patch literal 531 zcmV+u0_^>XP)l<9#m%`dw5UR9SxRU3R>y!^HQYaK8>`PKdw(@KDHEKRSI|mS3ZS`gL zgMoSKo*XL=sXjV_$LpQ`)dw^z7nIFq`>w&(3?TW%?^)X@A*89n^<~%p>+DRZ-8w9Fhp=6EF(E5gya}H{SX-s z)vwvNN^A?jSUoDXbEp$p0!Y2j&RG4>03iO}2PND80o{6d0E0^E2w>210bBqV;2YzD VFKIZ&!0iA4002ovPDHLkV1f>o<%j?P literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-left-0.png b/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-left-0.png new file mode 100644 index 0000000000000000000000000000000000000000..fc80fcab1574c1fbe586728b95ece92a7b0ce356 GIT binary patch literal 315 zcmV-B0mS}^P)a43gvxnyBqFz@4Xx+1hLCFJKbFY3Q&Lo6rcbF>@^??hwOF&j<3dI4bbfb z1c0_VrfDCd)jGiZ?*7{v004X=lI5w)Zs!1i!Jz*KvjQlS<*9s~oMN?F-a1R9F0bBpB~Wb`ACviyuB}KJ<(_d%FO|Q#nQ?0R6eFtR4WmM!}^J7 zVHo2vm|W8sk1vnUtgcxB5X4y+F}{iEx~@~5Z?p%t$^O2C3Q)kN`2nMY!PZoKGyMPn N002ovPDHLkV1gb literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-left-1.png b/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-left-1.png new file mode 100644 index 0000000000000000000000000000000000000000..7c9b5f04b761e26d9fdbe6b5a195def27894292c GIT binary patch literal 318 zcmV-E0m1%>P)LRshSyNhGz`XUt}E+}vJoMM##P zQqPFY6B1Zl$4{E#ywQOBI7YebVLE-o=hyp2Ph?tw<>mmu^uvjhNWObL{MIg4l?a3S z=80)x7*n9%YSWkkUnWmnU$X)rh^ruEx6`HTy3YE1raiDvj`t;0fC6^SKcbexKTURq QhX4Qo07*qoM6N<$g5Bwg#Q*>R literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-left-2.png b/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-left-2.png new file mode 100644 index 0000000000000000000000000000000000000000..7011a06474f57b4442dd716ec40e768de19b18d2 GIT binary patch literal 304 zcmV-00nh%4P)YU6bA6`WDQ7r;*gFpg=Q@hD6WB~Paqjemv$)*zKir7d`1noQUaA};0&X$;U0A_9P? zJw801qtiLV%k%4RV*mgMRir3$>3UB9fH)pjutos;6lE@>uMe!(8%$@}X#{JW3x(|0 zVKAVo&l{4L!XZ=6rZO zh2zZd^89)j4FCXv7_)D8=EQvh0HkU11ses>W#8`1#rp)|tR`ec(qF z@pwz}JV{xs3I=|}pF4vBe#7(;RaJ43<=+s02I!ZF$N1)sA|AJI>+t~uvB+}P_cd+X jw)%5J=wqS)1x%Yy6=)fIxlurY00000NkvXXu0mjfW$1Yh literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-left-4.png b/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-left-4.png new file mode 100644 index 0000000000000000000000000000000000000000..338f0785d6f50ac3af80fc9fe52050ae6d4e7379 GIT binary patch literal 275 zcmV+u0qp*XP)6k=mK50N`aZsQLYf+*+(#M(-a;8;bXXr~Ft z&Nj=!vR}K3Ac{<>(CY#afB*y_009W#uK|JIXUlRKjU$yCpk=uPfU0hAHm|`n%UCVf zx7+{#U~8o=*R!fr7XSdyYd>JQ0McBpXVpFIa6Fzc9EG0|{9-jVRNC8?L#^waknFTQ zhJ%o{*zl8szH)VW0p2002ovPDHLkV1k5*a2Wsq literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-right-0.png b/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-right-0.png new file mode 100644 index 0000000000000000000000000000000000000000..750c2c06becda58cc7acfdd99489cbc3edee017e GIT binary patch literal 312 zcmV-80muG{P)IQcHcm&hxWA{m6z!QGXRe^ZE zIJDbM7`Fr0^audHXG@p4DBydRgTVs;;Nvq!nkCXVB4xub3izJo>*xjR^%j4RPe`-m zCg41BI+W&}=kQ$=q0?$%^ScrN=o^u3#!|1LIDs%2o^`&9BBWU&-2W7N%7y~~c&z2u zH;w7iPNp=bOQM=87LMaIX74jT2VrG!g6D6bj@<80r~)cbRsI1+LBQ7M@&C^N0000< KMNUMnLSTYuB#meQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-right-1.png b/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-right-1.png new file mode 100644 index 0000000000000000000000000000000000000000..81cc3ef2aad167f1379a46f2d47f715f2b4664ba GIT binary patch literal 316 zcmV-C0mJ@@P)vFyE+KcHPHA74y8+7I{7Zem+%?NZszr7$y zpTo2eD!Z}m`>5G*Rk8b3jlPCNR+bBYsgO^@CSM489Yg2;pa!br)W3; zfWP&++0vLc?bDdXv`Lgx`NDCW+T?k{J3lB5PVoO5s3Mp96RLm;l$9S}l)*poL%O~I O0000T)B6eeg%dw$I|U;L#xEB}tKpvF&p;e<(0Sv*~vr&qluUkKr+{!XB!+G<<*aYnC;e zzmO}*%i|M8BD#wyMI!#EtG}cl1VPZ5&*nVI@~sso_+Ye# Rtx^C0002ovPDHLkV1kTxkpch! literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-right-3.png b/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/inhand-right-3.png new file mode 100644 index 0000000000000000000000000000000000000000..6a6b08c6a70f3068a6e0e0b8439c7b84ad289525 GIT binary patch literal 296 zcmV+@0oVSCP)ccF}VQWSO!5K0PxiM!YMr}Pb*b)c`m>=mT%)2hr=%hKRcY#V=2X1 zcr~8sF@BBt(hvAaQtLK7)8qenS3?oSPPPogh)I&%l$TYS3)pYA)VfXkG0n=Wm~3$z ur!k++ISix9$_ZYsx6VB7ODF&VRFyNSlNoy*Bi)<;0000=d_D;$#xaE-?x@BsiH?FG)4lXA3DMVIFST;p-_72|L?VzA%hd^wd;oP|&0 zm_Fli%uheyl%&=+9n@8YaCts)uXXWxO&;W1r^NPJHub9sWzPsSj*Y`Y5!TBv& zeS{CyeA*YEGUeE(59$ub7=flV^fN9N$xg$^&!9yTZi}SH}0NedRKk+-vcsouKQp7-z>j^ eZ-ppKO#|=WH9EJg;-*`IL_A&nT-G@yGywn%4_ZwC literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/mag-unshaded-1.png b/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/mag-unshaded-1.png new file mode 100644 index 0000000000000000000000000000000000000000..d47922661fdfcf7bbe24c548e62899d4f9657449 GIT binary patch literal 5318 zcmeHKc|25m8y}{uky{DHHI1&Nnth+_yEOJfCC$t^qk~zR84RH!vP=t6DiqbtEh5r# zz5n$2y!XFmK4<2fXZb$Q^L?J*@0^qFtw%}*Fz4!iGV4(u`CSu>P<>r;OfY1blxMwfP)$BGRf&$gPLNjvl_ zI=n5yMx>AP(lJ?l{8&L#e9lnpYN>b6$1Yi%mtLwNCbWFH@a;ue;({}KQwwW+fro`p zUs}|3z8i39uGQP(!oEahc+Z$Jk4Tc|9jh;++VRUZoVby1G!e=LP ztJKeK`-KB};>#SvraGlk1sC~)&r|~QF4CDVvTSBP?Ks=JXJvP6!N4V?`RoBtT+ubAFLlVmQ%Os~9V$P$%%$MDL=R$8UcAWR* zd|^->wiq#&H%0Plv!P+*d$na=8%;<1^=pWRIra?429?M^1Eh^(fU0dePeZF?p<31T zl`5$E7F8}WS*2oEusDUL2VF{p(2aiPO*N5h|W$jkDAC=}A^ z$G!4HR;xq0I%_GVcMhEGxvQgE7WJ&tbN9`NTY|3jb4B}oQ{_zQ?ZIYqR^cVnDz5@+ z!l_(?RZ#9P$FL!%;;VH6@8(C}sqAm(-;G&c8QuD>=aX8*Ti#Z$Umbn+m$Cy!iqLM% ztoze8`z|n&NBAJN{Car4JQ`<2+-w^_r&CId= zLkqo#!9lv|i+Pa9^ z?y&!&GONmxE4#SQM7;roo!gR1lYr>nYn6`$-LG=nvP!eU7k|)dJkt}lw4ZyhB5&~d zY+duc)j1bN3z0MIy7)ac`3vXnwvLXMK=hTtgomyrv1Ljfk&bHB*5O#1(6Y zyfS;ds^Y?m`|^as;ghdt9&Ej+SvKQ(lEgE~K-VpGeUDzLMp#3!9qTHO4f^cC2Ae+eqa#LV8J4^bn1$C6B+#~mQ}enMB9pF`NE^cwhwm7p9#ZW~mUKk67Z?frN! zpg$GM-=(8kKUnZmh1%&Js=SFt<*=BYy8K%ZM$#!o;Y-E-liw- ze&4eFWz0{7j}l%swH@hYsl9Q2VA-mZDNB|`x3(}|&fF5@;g{BwZZR!<$D6GF$}7VB zOkHhj5&-xOHO%9jxLqe!ugWf((WJLUf7!wKdHt33v6)pXemk*z|A&;inp4@2nQa;m zf*e&n(suYd8R-Y5-8i1bLAyL5OdqRw=$-9p9%v*t)-G{O>3vf-c7HVTTK#a&zFBgW zF5Ib)1hpyAn|NKP{@l(#7pwYa|E7gy1Lf3>XT4kc`Iz`A(;|@uxA?4XBsOMakwpk` zzT0bm%@ozaMAv&cNHyW6Zc2=xOpJ^b_XOS*W zKQasXU-*V-2*EeLAl6bQSIEb*0U-y(%J?Gq#)v>z+sQ<1ZUiVralkN0V1s^n?oTud z0&LKM6c(N(ast;v?r~z!Kh7(F8yCT40BAc~Eo&JQ2H=BIHcG~i6iApd8?+La37;#( zI5bLWB8{*?2eEumPC_w=B4f!|JjO)^MHA7sS}1EVz+?J3yG}sBS2pOiQmKfE!^OnJ zU}H#Fp*RdjU@#asJP}7EVqgo5Bvv40%P<0onF3-Q!x@xt#gIq}2?ZzxCYvLSlG>or zupad}KfZ{?`T{SIOt1j+fs?UCI06=rXc%N7p?~y{1i;S^I6qJ#j1qG} zmuOHRHJc0paKHGAqQsHPasVz4j0E|xsRWKn_$H*A2g~P+hk}AIh%Zul!DN49DTR1n z$@(TYg+^J<lDzg-pbgNlGYy%XAfr`E0nI5T6|e;zWWlr9weC)4|8X22I4`ze;=}*-{?t z0IvZ^00?6wUsVARAM}^96?_t?6e^uWq!P$GYTiY4$YDo_b{EOA_;XbclB z2d0*-m{b@*=>b>6bP|JXsZbms6h_*h6-l8Kp2`77S&z5H9g@Hnv5J|Wn0kM3-T2k` zB8Y^PDilgNxJ)*8JcxuH4FbwQu-~|fyOu2o1K|}uF;bu9&_A?`0n%wCE{BRCQaB_< z$7yh<00M@9UD;a|`tLY_2+Ee0LJ;7Z|Y;1N<*gR-0;)9Tx7V%CBRrtt9k z#?vr(QUHO*Bv6?YG8#8gEKaeeKUZsw`yW26l?IbG0oZR`25&C#UWNOzSxxYzpzvS( zO!VPji~vLb2=ZP0{-EmzUEjsPcNzbft{-%L7X#mA{A0TQZ**yWecb^C@DorB{4#?$ zIR7mCBBaLgbaO_GDZU44kL-jcnj-gL2?C+ppg2@=7wXQ1h3ZldmW%phb)>o;bx}lx z92QYMoE-v!&JVN@bPy;#q`m8hdB~Iz|4G^MM9>M@g7zUpka>x*pz!@&v)lK$Ew z>o4LBSHEoat9zM+{PZ@PA)Xbp$BuUz-5J2?gCeVUk5;WG_r<$}@`ljEMRe~T(*40T6&U4yIZVT#LBB&CfkzJd$QzWVEh!N z+1&f(230u)#8m4Vb-O{O^&w|ZaOu04s+9|}-0y6%-^%UUq^hLHSM82A3{J!YnA&4*z0mwh;l)NxUw<3+*Pha;U6B8; z4`yVgno;toYdlRipO16jW!B%7T$>kWnA&N#a+3w(o(#$EblbI-a>LZaV`Xnt>k115 zYWMd}(=AQcp1L$mbtc=FufN?eW!_S>U+Xz{i-HMgd%Q@&?>;bq+!B$kAIH|a5YT*X zy~2Bg<;+9C{5c+PqY39Z$Q)bLlHkRgTAQiRWoqnTA$OOf0rKjhnDFvh5rpHC7-3^f zLA_mWpz;Q8Wb0oUb1vZLKPvThMdhYPk56&8nowH&u6JwXbN={qFB(CO$eA z;GMq$l`YIAylfSpY(70TCbMDTqR?fhCA&iQ{rW?=TU&b+=Er|W6MItL2+WEOO+nsh z%5V|^rZv9$U5_n*{g1y+9rrlxo7VTER!l^ZMW=mTz#_Bny;S`aB40z$Do>_ zxdN`;B{NBgOX;1vv0Zm_-6zGbVV5;~GbdW_+kUvj(Xn%Q(_1SR$Kwhk&XRdzLqT=% zeJtd0XtFdm+G9(Mu&drA>zDqDWpBg^T9jp-UvK0H;z~r`th?wW zAG~tvhQKHGMZ%>`5`&|YNrWPGurP8h?{R&#$D$u?j*>&Mxzq`@f07n=1#rq^HlCbA zIgE_k?v;XEvoX)k?#b=JluO5|8oMi~4ULIn`)N?l!+!VHm_@Gu+iYsbpH|go?(|cC zytz+a`~VofmF5=iTS4$F4m`d$sw*TusI)g#WPwvN7q~3^X?I=6#>c^$qcb0QS(r9% z_^q+t3biwLLG^~gl-zm3n+l)_*fZ&|FqeOuaL1=E+g@nZ9c`Pv^m+?hbTv{R&owTt zsYgF$*j+fDQht2ewaE!`Ok!;5=8t-*4nI2_6GCB~#aZTw0m%1=xmaj}7 zI9ycZ?`PoOvJ=x?@a#nLyyk5Q485Jk3(}nrhFzf6JTH}`Gz8Ultaq?mc<;e~4jk)q z9*y#PbmUe?`~!#I3q#KRroFnKE>`w$_qt3*<<8<3yq} zJ!QO~T~ch#3(>5qa#cRmTB3sOrru+`yDg8-^CfZDNuCwo)J*!KP zy$j5e&fc>2uhgM*CuetjvdR6$SvxPhj#_@J)O}R-muhx0d7y2uvhe*DRHRev8#l92 z!x(GY;x&xu!wAHL^sg&Q zbgkpJ5kx@%c<8Rjk>`6k^?q1jX=JdvGeH!zB^{nn| zxqYykZ8*&6w7X@NnUI`(S? z&(<@PulvJMBRitXb46I@-hN@GP#ABXVZXAitBszo8X5A7O?E?PC^HUP=ncYK;7l>R z)p6O2X?(fV0Tjr2kVAr00dIu}go|5(0_4X+YJdlc#4j!e zj({Z)Ft7$jl_*n#2^g8mMhh{9!GKhJrC6aB%VmHT6XeO`)N~XI9tS?eCsnZ7AK_)H zaTZ`cunC|7i+8|brBdwY7AiF}9tIf?=x;4l!SE9UHV{(DR zaY~6U9RVK;Ngye#s)D`Zzi{cpVsk!PXekhhr3#%DO!gO=YO(MWSzpAa9nq!pc_6U) zN8B&8Kjf}chPBvi8bi*H(}u@l&{10dG=ZEi7SME;RGyFrfGICBpf9842mUFsX-YZ(n7)D4q_O`kpz+j1ScZKkpl5x2pkRrI>IL$1mPh9 znMx!Hd7nY}E5&eCf|Adp(n1MfC?1hYCh$Q4M&L*xU`RL$366%q!w5-EWQa$mkU%FV z9h87i^Oh^6AUvI7DJX)l3YkbZpe3B=DzU4a8GW7Fa*R>2yH+L|A)`XFe<*xlG7kcf3d0H7;e8pt1W zq5|W`=LEJJ8{$WUG7$u?@bQxRAQ%75bWw;Pkwhg!7z&Xrz>ug!Ck&4VFGCVlARzJx z0wTd_ERB!oD!EXt0hN%42+kDF1}-68Hh|qYnfAK0Kk93uAuUrlczxq27#uMePocp- z90`RTPZq0P(;u>R!Tt{)E;@zJngDD!CWD&`+^eu3o7Fg9uUhqzeG}=H#pR z{YKX}y1t5muTuV2UEk>XDh9qv`CE1U-{>;=^tuDd;3psr{4#SXrSWI@MaYo1$cKS= zul???J-8E=e5deTqCy}hpVuA}cFmtW8x|U=S!|}!LnA#SbNzP*ud`v1GmGI7%x!pf zv%t*V+CtC0yL}se_ta^onRJWGl`|(^&M%ekO_DF4_+U=;Ry*^8jQIy&_pW#{V{`)I ZX>J?W;{F2j*RTr&g2nV>lzB#_{1-Vp6hQz0 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/mag-unshaded-3.png b/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/mag-unshaded-3.png new file mode 100644 index 0000000000000000000000000000000000000000..2f0c2045c29aa31b27cc9e4f8cbc88f89348be44 GIT binary patch literal 5320 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/mag-unshaded-4.png b/Resources/Textures/Objects/Weapons/Guns/Battery/disabler.rsi/mag-unshaded-4.png new file mode 100644 index 0000000000000000000000000000000000000000..1c4cd9c360188768be08cc23ce35a9079d73548a GIT binary patch literal 5309 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 VHkn8&b^|@c;OXk;vd$@?2>?cKYF7XN literal 0 HcmV?d00001