From 50bc4f32274f168fd036df87c0313369811f0538 Mon Sep 17 00:00:00 2001 From: ThereDrD <88589686+ThereDrD0@users.noreply.github.com> Date: Sat, 17 Aug 2024 15:20:51 +0300 Subject: [PATCH 01/42] add new custom ghost (#632) --- .../_White/Ghosts/custom_ghosts.yml | 9 +++++++ .../Ghosts/lllkjjjklll-ghost.rsi/animated.png | Bin 0 -> 6398 bytes .../Ghosts/lllkjjjklll-ghost.rsi/meta.json | 23 ++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 Resources/Textures/White/Ghosts/lllkjjjklll-ghost.rsi/animated.png create mode 100644 Resources/Textures/White/Ghosts/lllkjjjklll-ghost.rsi/meta.json diff --git a/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml b/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml index 61d5a57bfe..187f7bbb08 100644 --- a/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml +++ b/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml @@ -429,3 +429,12 @@ alpha: 0.9 ghostName: M̷a̴r̶i̷ ghostDescription: Бежит от настоящего, возвращаясь в прошлое... + +#6mirage6 +- type: customGhost + id: lllkjjjklll-ghost + ckey: lllkjjjklll + sprite: White/Ghosts/lllkjjjklll-ghost.rsi + alpha: 0.9 + ghostName: Ярик + ghostDescription: Дробилка, маска, плащ... Все эти вещи, казалось, сроднились с ним, сопровождая его даже после смерти. diff --git a/Resources/Textures/White/Ghosts/lllkjjjklll-ghost.rsi/animated.png b/Resources/Textures/White/Ghosts/lllkjjjklll-ghost.rsi/animated.png new file mode 100644 index 0000000000000000000000000000000000000000..c8b7f7639f1d36445a9e60faee7e4ebf7b221560 GIT binary patch literal 6398 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 Date: Sat, 17 Aug 2024 15:48:05 +0300 Subject: [PATCH 02/42] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D1=82=D1=80?= =?UTF-8?q?=D0=B5=D0=BA=D0=B8=D0=BD=D0=B3=D0=B0=20=D0=BF=D0=BB=D0=B5=D0=B9?= =?UTF-8?q?=D1=82=D0=B0=D0=BC=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=20=D0=B1=D1=80=D0=B8=D0=B3=D0=BC=D0=B5=D0=B4=D0=B8=D0=BA=D0=B0?= =?UTF-8?q?=20(#631)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * playtime-tracker-fix * loadout-fix * salary-for-brigmedic * fix-salary * fix-salary --- .../Catalog/Fills/Backpacks/StarterGear/backpack.yml | 2 +- Resources/Prototypes/Roles/play_time_trackers.yml | 3 +++ Resources/Prototypes/_White/Economy/salary.yml | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/backpack.yml b/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/backpack.yml index 9ea2be60f4..d9c8850e1f 100644 --- a/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/backpack.yml +++ b/Resources/Prototypes/Catalog/Fills/Backpacks/StarterGear/backpack.yml @@ -28,7 +28,7 @@ - type: entity noSpawn: true - parent: ClothingBackpackSatchelBrigmedic + parent: ClothingBackpackBrigmedic id: ClothingBackpackBrigmedicFilled components: - type: StorageFill diff --git a/Resources/Prototypes/Roles/play_time_trackers.yml b/Resources/Prototypes/Roles/play_time_trackers.yml index 039c654f88..88c8e1c02c 100644 --- a/Resources/Prototypes/Roles/play_time_trackers.yml +++ b/Resources/Prototypes/Roles/play_time_trackers.yml @@ -164,5 +164,8 @@ - type: playTimeTracker id: JobBomzh +- type: playTimeTracker + id: JobBrigmedic + - type: playTimeTracker id: JobMaid diff --git a/Resources/Prototypes/_White/Economy/salary.yml b/Resources/Prototypes/_White/Economy/salary.yml index f0d1af2198..ea196c4da7 100644 --- a/Resources/Prototypes/_White/Economy/salary.yml +++ b/Resources/Prototypes/_White/Economy/salary.yml @@ -14,6 +14,7 @@ Bartender: 200 Botanist: 200 Boxer: 150 + Brigmedic: 250 Chaplain: 150 Chef: 200 Clown: 150 From ad5ebecbd6c57c8d5690b3e0a44da622d40ac76c Mon Sep 17 00:00:00 2001 From: RavmorganButOnCocaine Date: Sat, 17 Aug 2024 12:49:09 +0000 Subject: [PATCH 03/42] Automatic changelog update --- Resources/Changelog/ChangelogWhite.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Resources/Changelog/ChangelogWhite.yml b/Resources/Changelog/ChangelogWhite.yml index 59bf4c297a..77474d9ce6 100644 --- a/Resources/Changelog/ChangelogWhite.yml +++ b/Resources/Changelog/ChangelogWhite.yml @@ -8290,3 +8290,22 @@ id: 498 time: '2024-08-16T20:46:26.0000000+00:00' url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/629 +- author: ua_No_Name48237 + changes: + - message: "\u0424\u0438\u043A\u0441 \u0442\u0440\u0435\u043A\u0438\u043D\u0433\u0430\ + \ \u043F\u043B\u0435\u0439\u0442\u0430\u043C \u0432\u0440\u0435\u043C\u0435\u043D\ + \u0438 \u0431\u0440\u0438\u0433\u043C\u0435\u0434\u0438\u043A\u0430." + type: Fix + - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E \u0434\u0443\ + \u0431\u043B\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 \u0441\u0443\u043C\ + \u043A\u0438 \u0431\u0440\u0438\u0433\u043C\u0435\u0434\u0438\u043A\u0430 \u0432\ + \ \u0435\u0433\u043E \u043B\u043E\u0434\u0430\u0443\u0442\u0435." + type: Fix + - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E \u043E\u0442\ + \u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0437\u0430\u0440\u043F\u043B\ + \u0430\u0442\u044B \u0443 \u0431\u0440\u0438\u0433\u043C\u0435\u0434\u0438\u043A\ + \u0430" + type: Fix + id: 499 + time: '2024-08-17T12:48:05.0000000+00:00' + url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/631 From 3a6b3ee1f4d83a5a2b280457d1a93f440fbbc1f3 Mon Sep 17 00:00:00 2001 From: ThereDrD <88589686+ThereDrD0@users.noreply.github.com> Date: Sat, 17 Aug 2024 23:59:11 +0300 Subject: [PATCH 04/42] =?UTF-8?q?=D0=A8=D0=B5=D0=B9=D0=B4=D0=B5=D1=80=20?= =?UTF-8?q?=D1=83=D0=B4=D0=B0=D1=80=D0=BD=D0=BE=D0=B9=20=D0=B2=D0=BE=D0=BB?= =?UTF-8?q?=D0=BD=D1=8B=20=D0=B4=D0=BB=D1=8F=20=D0=B2=D0=B7=D1=80=D1=8B?= =?UTF-8?q?=D0=B2=D0=BE=D0=B2=20(#633)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Adds shock wave shader (#2631) Co-authored-by: DOOM Co-authored-by: Whisper <121047731+QuietlyWhisper@users.noreply.github.com> * add explosive shockwave * add shockwave to fireball * wd edit * cleanup * remove exgreande beeping sound --------- Co-authored-by: Vero <73014819+vero5123@users.noreply.github.com> Co-authored-by: Whisper <121047731+QuietlyWhisper@users.noreply.github.com> --- Content.Client/Entry/EntryPoint.cs | 4 +- .../Explosion/RMCExplosionShockWaveOverlay.cs | 90 +++++++++++++++++ .../EntitySystems/ClusterGrenadeSystem.cs | 11 ++- .../EntitySystems/ExplosionSystem.cs | 6 ++ .../Projectiles/ProjectileSystem.cs | 6 +- .../Projectiles/SharedProjectileSystem.cs | 4 +- .../Weapons/Ranged/Systems/SharedGunSystem.cs | 2 +- .../Explosion/CMExplosionEffectComponent.cs | 27 +++++ .../Explosion/ExplosiveTriggeredEvent.cs | 4 + .../RMCExplosionShockWaveComponent.cs | 28 ++++++ .../Explosion/SharedCMExplosionSystem.cs | 36 +++++++ .../Weapons/Guns/Projectiles/magic.yml | 2 + .../Weapons/Guns/Projectiles/projectiles.yml | 4 + .../Objects/Weapons/Throwable/grenades.yml | 25 ++--- .../Structures/Storage/Tanks/tanks.yml | 2 + .../Objects/Weapons/Throwable/grenades.yml | 92 ++++++++++++++++++ .../Prototypes/_White/Shaders/shaders.yml | 4 + .../Effects/grenade_explosion.rsi/grenade.png | Bin 0 -> 7913 bytes .../Effects/grenade_explosion.rsi/meta.json | 26 +++++ .../shotgun_projectiles.rsi/autocannon.png | Bin 0 -> 298 bytes .../shotgun_projectiles.rsi/beanbag.png | Bin 0 -> 259 bytes .../shotgun_projectiles.rsi/buckshot.png | Bin 0 -> 212 bytes .../shotgun_projectiles.rsi/flechette.png | Bin 0 -> 298 bytes .../shotgun_projectiles.rsi/meta.json | 23 +++++ .../Objects/Weapons/shrapnel.rsi/meta.json | 55 +++++++++++ .../Weapons/shrapnel.rsi/shrapnel_bright1.png | Bin 0 -> 465 bytes .../Weapons/shrapnel.rsi/shrapnel_bright2.png | Bin 0 -> 548 bytes .../Weapons/shrapnel.rsi/shrapnel_glass.png | Bin 0 -> 206 bytes .../Weapons/shrapnel.rsi/shrapnel_human.png | Bin 0 -> 257 bytes .../Weapons/shrapnel.rsi/shrapnel_human1.png | Bin 0 -> 484 bytes .../Weapons/shrapnel.rsi/shrapnel_human2.png | Bin 0 -> 336 bytes .../Weapons/shrapnel.rsi/shrapnel_light.png | Bin 0 -> 204 bytes .../Weapons/shrapnel.rsi/shrapnel_xeno.png | Bin 0 -> 269 bytes .../Weapons/shrapnel.rsi/shrapnelshot.png | Bin 0 -> 330 bytes .../Weapons/shrapnel.rsi/shrapnelshot_bit.png | Bin 0 -> 245 bytes .../Textures/White/Shaders/shock_wave.swsl | 40 ++++++++ 36 files changed, 468 insertions(+), 23 deletions(-) create mode 100644 Content.Client/_White/Explosion/RMCExplosionShockWaveOverlay.cs create mode 100644 Content.Shared/_White/Explosion/CMExplosionEffectComponent.cs create mode 100644 Content.Shared/_White/Explosion/ExplosiveTriggeredEvent.cs create mode 100644 Content.Shared/_White/Explosion/RMCExplosionShockWaveComponent.cs create mode 100644 Content.Shared/_White/Explosion/SharedCMExplosionSystem.cs create mode 100644 Resources/Prototypes/_White/Entities/Objects/Weapons/Throwable/grenades.yml create mode 100644 Resources/Prototypes/_White/Shaders/shaders.yml create mode 100644 Resources/Textures/White/Effects/grenade_explosion.rsi/grenade.png create mode 100644 Resources/Textures/White/Effects/grenade_explosion.rsi/meta.json create mode 100644 Resources/Textures/White/Objects/Weapons/Ammunition/Projectiles/shotgun_projectiles.rsi/autocannon.png create mode 100644 Resources/Textures/White/Objects/Weapons/Ammunition/Projectiles/shotgun_projectiles.rsi/beanbag.png create mode 100644 Resources/Textures/White/Objects/Weapons/Ammunition/Projectiles/shotgun_projectiles.rsi/buckshot.png create mode 100644 Resources/Textures/White/Objects/Weapons/Ammunition/Projectiles/shotgun_projectiles.rsi/flechette.png create mode 100644 Resources/Textures/White/Objects/Weapons/Ammunition/Projectiles/shotgun_projectiles.rsi/meta.json create mode 100644 Resources/Textures/White/Objects/Weapons/shrapnel.rsi/meta.json create mode 100644 Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnel_bright1.png create mode 100644 Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnel_bright2.png create mode 100644 Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnel_glass.png create mode 100644 Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnel_human.png create mode 100644 Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnel_human1.png create mode 100644 Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnel_human2.png create mode 100644 Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnel_light.png create mode 100644 Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnel_xeno.png create mode 100644 Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnelshot.png create mode 100644 Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnelshot_bit.png create mode 100644 Resources/Textures/White/Shaders/shock_wave.swsl diff --git a/Content.Client/Entry/EntryPoint.cs b/Content.Client/Entry/EntryPoint.cs index 328c3e6e06..6478973a22 100644 --- a/Content.Client/Entry/EntryPoint.cs +++ b/Content.Client/Entry/EntryPoint.cs @@ -1,7 +1,6 @@ using Content.Client._White.Chat; using Content.Client._White.JoinQueue; using Content.Client._White.Jukebox; -using Content.Client._White.Overlays; using Content.Client._White.Reputation; using Content.Client._White.Sponsors; using Content.Client._White.Stalin; @@ -10,7 +9,6 @@ using Content.Client.Administration.Managers; using Content.Client.Changelog; using Content.Client.Chat.Managers; using Content.Client.Eui; -using Content.Client.Flash; using Content.Client.Fullscreen; using Content.Client.GhostKick; using Content.Client.Guidebook; @@ -26,6 +24,7 @@ using Content.Client.Radiation.Overlays; using Content.Client.Replay; using Content.Client.Screenshot; using Content.Client.Singularity; +using Content.Client._White.Explosion; using Content.Client.Stylesheets; using Content.Client.Viewport; using Content.Client.Voting; @@ -179,6 +178,7 @@ namespace Content.Client.Entry _parallaxManager.LoadDefaultParallax(); _overlayManager.AddOverlay(new SingularityOverlay()); + _overlayManager.AddOverlay(new ExplosionShockWaveOverlay()); _overlayManager.AddOverlay(new RadiationPulseOverlay()); // _overlayManager.AddOverlay(new GrainOverlay()); // _overlayManager.AddOverlay(new AtmOverlay()); diff --git a/Content.Client/_White/Explosion/RMCExplosionShockWaveOverlay.cs b/Content.Client/_White/Explosion/RMCExplosionShockWaveOverlay.cs new file mode 100644 index 0000000000..aa8efedc31 --- /dev/null +++ b/Content.Client/_White/Explosion/RMCExplosionShockWaveOverlay.cs @@ -0,0 +1,90 @@ +using Robust.Client.Graphics; +using Robust.Shared.Enums; +using Robust.Shared.Prototypes; +using System.Numerics; +using Content.Shared._White.Explosion; + +namespace Content.Client._White.Explosion; + +public sealed class ExplosionShockWaveOverlay : Overlay, IEntityEventSubscriber +{ + [Dependency] private readonly IEntityManager _entMan = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + + private SharedTransformSystem? _xformSystem; + + public override OverlaySpace Space => OverlaySpace.WorldSpace; + public override bool RequestScreenTexture => true; + + private readonly ShaderInstance _shader; + + /// + /// Maximum number of distortions that can be shown on screen at a time. + /// + public const int MaxCount = 30; + + public ExplosionShockWaveOverlay() + { + IoCManager.InjectDependencies(this); + _shader = _prototypeManager.Index("ShockWave").Instance().Duplicate(); + } + + private readonly Vector2[] _positions = new Vector2[MaxCount]; + private readonly float[] _falloffPower = new float[MaxCount]; + private readonly float[] _sharpness = new float[MaxCount]; + private readonly float[] _width = new float[MaxCount]; + private int _count; + protected override bool BeforeDraw(in OverlayDrawArgs args) + { + if (args.Viewport.Eye == null || _xformSystem is null && !_entMan.TrySystem(out _xformSystem)) + return false; + + var query = _entMan.EntityQueryEnumerator(); + + _count = 0; + + while (query.MoveNext(out var uid, out var distortion, out var xform)) + { + if (xform.MapID != args.MapId) + continue; + + var mapPos = _xformSystem.GetWorldPosition(uid); + + var tempCoords = args.Viewport.WorldToLocal(mapPos); + + // normalized coords, 0 - 1 plane. This is pure hell, we subtract 1 because fragment calculates from the bottom and local goes from the top of the viewport + tempCoords.Y = 1 - (tempCoords.Y / args.Viewport.Size.Y); + tempCoords.X /= args.Viewport.Size.X; + + _positions[_count] = tempCoords; + _falloffPower[_count] = distortion.FalloffPower; + _sharpness[_count] = distortion.Sharpness; + _width[_count] = distortion.Width; + _count++; + + if (_count == MaxCount) + break; + } + + return _count > 0; + } + + protected override void Draw(in OverlayDrawArgs args) + { + if (ScreenTexture == null || args.Viewport.Eye == null) + return; + + _shader?.SetParameter("renderScale", args.Viewport.RenderScale * args.Viewport.Eye.Scale); + _shader?.SetParameter("count", _count); + _shader?.SetParameter("position", _positions); + _shader?.SetParameter("falloffPower", _falloffPower); + _shader?.SetParameter("sharpness", _sharpness); + _shader?.SetParameter("width", _width); + _shader?.SetParameter("SCREEN_TEXTURE", ScreenTexture); + + var worldHandle = args.WorldHandle; + worldHandle.UseShader(_shader); + worldHandle.DrawRect(args.WorldAABB, Color.White); + worldHandle.UseShader(null); + } +} diff --git a/Content.Server/Explosion/EntitySystems/ClusterGrenadeSystem.cs b/Content.Server/Explosion/EntitySystems/ClusterGrenadeSystem.cs index 78e41c59ae..68cdbce037 100644 --- a/Content.Server/Explosion/EntitySystems/ClusterGrenadeSystem.cs +++ b/Content.Server/Explosion/EntitySystems/ClusterGrenadeSystem.cs @@ -1,14 +1,14 @@ +using System.Numerics; using Content.Server.Explosion.Components; +using Content.Server.Weapons.Ranged.Systems; +using Content.Shared.Explosion.Components; using Content.Shared.Flash.Components; using Content.Shared.Interaction; using Content.Shared.Throwing; -using Robust.Shared.Containers; -using Robust.Shared.Random; -using Content.Server.Weapons.Ranged.Systems; -using System.Numerics; -using Content.Shared.Explosion.Components; using Robust.Server.Containers; using Robust.Server.GameObjects; +using Robust.Shared.Containers; +using Robust.Shared.Random; namespace Content.Server.Explosion.EntitySystems; @@ -114,6 +114,7 @@ public sealed class ClusterGrenadeSystem : EntitySystem RaiseLocalEvent(uid, ref ev); } } + // delete the empty shell of the clusterbomb Del(uid); } diff --git a/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs b/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs index 1b34a07a8e..dddc1a53f1 100644 --- a/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs +++ b/Content.Server/Explosion/EntitySystems/ExplosionSystem.cs @@ -7,6 +7,7 @@ using Content.Server.Explosion.Components; using Content.Server.NodeContainer.EntitySystems; using Content.Server.NPC.Pathfinding; using Content.Server.Station.Systems; +using Content.Shared._White.Explosion; using Content.Shared.Audio; using Content.Shared.Armor; using Content.Shared.Camera; @@ -176,6 +177,11 @@ public sealed partial class ExplosionSystem totalIntensity ??= RadiusToIntensity((float) radius, explosive.IntensitySlope, explosive.MaxIntensity); totalIntensity ??= explosive.TotalIntensity; + // WD edit start + var ev = new ExplosiveTriggeredEvent(); + RaiseLocalEvent(uid, ref ev); + // WD edit end + QueueExplosion(uid, explosive.ExplosionType, (float) totalIntensity, diff --git a/Content.Server/Projectiles/ProjectileSystem.cs b/Content.Server/Projectiles/ProjectileSystem.cs index cbe05d1a77..9f87e79505 100644 --- a/Content.Server/Projectiles/ProjectileSystem.cs +++ b/Content.Server/Projectiles/ProjectileSystem.cs @@ -69,16 +69,18 @@ public sealed class ProjectileSystem : SharedProjectileSystem var modifiedDamage = _damageableSystem.TryChangeDamage(target, ev.Damage * DamageModifier, component.IgnoreResistances, origin: component.Shooter); var deleted = Deleted(target); - if (modifiedDamage is not null && EntityManager.EntityExists(component.Shooter)) + if (modifiedDamage is not null && (EntityManager.EntityExists(component.Shooter) || EntityManager.EntityExists(component.Weapon))) { if (modifiedDamage.Any() && !deleted) { _color.RaiseEffect(Color.Red, new List { target }, Filter.Pvs(target, entityManager: EntityManager)); } + var shooterOrWeapon = EntityManager.EntityExists(component.Shooter) ? component.Shooter!.Value : component.Weapon!.Value; + _adminLogger.Add(LogType.BulletHit, HasComp(target) ? LogImpact.Extreme : LogImpact.High, - $"Projectile {ToPrettyString(uid):projectile} shot by {ToPrettyString(component.Shooter!.Value):user} hit {otherName:target} and dealt {modifiedDamage.GetTotal():damage} damage"); + $"Projectile {ToPrettyString(uid):projectile} shot by {ToPrettyString(shooterOrWeapon):source} hit {otherName:target} and dealt {modifiedDamage.GetTotal():damage} damage"); } if (!deleted) diff --git a/Content.Shared/Projectiles/SharedProjectileSystem.cs b/Content.Shared/Projectiles/SharedProjectileSystem.cs index 5fe5c7b208..ff051d24e5 100644 --- a/Content.Shared/Projectiles/SharedProjectileSystem.cs +++ b/Content.Shared/Projectiles/SharedProjectileSystem.cs @@ -203,9 +203,9 @@ public abstract partial class SharedProjectileSystem : EntitySystem } } - public void SetShooter(EntityUid id, ProjectileComponent component, EntityUid shooterId) + public void SetShooter(EntityUid id, ProjectileComponent component, EntityUid? shooterId = null) { - if (component.Shooter == shooterId) + if (component.Shooter == shooterId || shooterId == null) return; component.Shooter = shooterId; diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index 878b6cbc3a..0502077356 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -423,7 +423,7 @@ public abstract partial class SharedGunSystem : EntitySystem Physics.SetLinearVelocity(uid, finalLinear, body: physics); var projectile = EnsureComp(uid); - Projectiles.SetShooter(uid, projectile, user ?? gunUid); + Projectiles.SetShooter(uid, projectile, user); projectile.Weapon = gunUid; TransformSystem.SetWorldRotation(uid, direction.ToWorldAngle()); diff --git a/Content.Shared/_White/Explosion/CMExplosionEffectComponent.cs b/Content.Shared/_White/Explosion/CMExplosionEffectComponent.cs new file mode 100644 index 0000000000..311384782c --- /dev/null +++ b/Content.Shared/_White/Explosion/CMExplosionEffectComponent.cs @@ -0,0 +1,27 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared._White.Explosion; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +[Access(typeof(SharedExplosionSystem))] +public sealed partial class ExplosionEffectComponent : Component +{ + [DataField, AutoNetworkedField] + public EntProtoId Explosion = "ExplosionEffectGrenade"; + + [DataField, AutoNetworkedField] + public EntProtoId ShockWave = "ExplosionEffectGrenadeShockWave"; + + [DataField, AutoNetworkedField] + public List ShrapnelEffects = new() { "ExplosionEffectShrapnel1", "ExplosionEffectShrapnel2" }; + + [DataField, AutoNetworkedField] + public int MinShrapnel = 5; + + [DataField, AutoNetworkedField] + public int MaxShrapnel = 9; + + [DataField, AutoNetworkedField] + public float ShrapnelSpeed = 5; +} diff --git a/Content.Shared/_White/Explosion/ExplosiveTriggeredEvent.cs b/Content.Shared/_White/Explosion/ExplosiveTriggeredEvent.cs new file mode 100644 index 0000000000..a42cbb7bc9 --- /dev/null +++ b/Content.Shared/_White/Explosion/ExplosiveTriggeredEvent.cs @@ -0,0 +1,4 @@ +namespace Content.Shared._White.Explosion; + +[ByRefEvent] +public readonly record struct ExplosiveTriggeredEvent; diff --git a/Content.Shared/_White/Explosion/RMCExplosionShockWaveComponent.cs b/Content.Shared/_White/Explosion/RMCExplosionShockWaveComponent.cs new file mode 100644 index 0000000000..44d14e65fa --- /dev/null +++ b/Content.Shared/_White/Explosion/RMCExplosionShockWaveComponent.cs @@ -0,0 +1,28 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared._White.Explosion +{ + [RegisterComponent, NetworkedComponent] + [AutoGenerateComponentState] + [Access(typeof(SharedExplosionSystem))] + public sealed partial class ExplosionShockWaveComponent : Component + { + /// + /// The rate at which the wave fades, lower values means it's active for longer. + /// + [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] + public float FalloffPower = 40f; + + /// + /// How sharp the wave distortion is. Higher values make the wave more pronounced. + /// + [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] + public float Sharpness = 10.0f; + + /// + /// Width of the wave. + /// + [DataField, AutoNetworkedField, ViewVariables(VVAccess.ReadWrite)] + public float Width = 0.8f; + } +} diff --git a/Content.Shared/_White/Explosion/SharedCMExplosionSystem.cs b/Content.Shared/_White/Explosion/SharedCMExplosionSystem.cs new file mode 100644 index 0000000000..9cb343aba7 --- /dev/null +++ b/Content.Shared/_White/Explosion/SharedCMExplosionSystem.cs @@ -0,0 +1,36 @@ +using Content.Shared.Throwing; +using Robust.Shared.Random; + +namespace Content.Shared._White.Explosion; + +public sealed class SharedExplosionSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly ThrowingSystem _throwing = default!; + + public override void Initialize() + { + SubscribeLocalEvent(OnExplosionEffectTriggered); + } + + private void OnExplosionEffectTriggered(EntityUid uid, ExplosionEffectComponent component, ref ExplosiveTriggeredEvent args) + { + SpawnNextToOrDrop(component.ShockWave, uid); + SpawnNextToOrDrop(component.Explosion, uid); + + if (component.MaxShrapnel <= 0) + return; + + foreach (var effect in component.ShrapnelEffects) + { + var shrapnelCount = _random.Next(component.MinShrapnel, component.MaxShrapnel); + for (var i = 0; i < shrapnelCount; i++) + { + var angle = _random.NextAngle(); + var direction = angle.ToVec().Normalized() * 10; + var shrapnel = SpawnNextToOrDrop(effect, uid); + _throwing.TryThrow(shrapnel, direction, component.ShrapnelSpeed / 10); + } + } + } +} diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/magic.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/magic.yml index e98dc0a087..535ebf6b0e 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/magic.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/magic.yml @@ -29,6 +29,8 @@ ignited: true - type: IgniteOnCollide fireStacks: 0.35 + - type: ExplosionEffect # WD + maxShrapnel: 0 - type: entity id: ProjectileAnomalyFireball diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 685b72c962..607a287909 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -743,6 +743,8 @@ totalIntensity: 150 # a ~2 tile radius intensitySlope: 5 maxIntensity: 10 + - type: ExplosionEffect # WD + maxShrapnel: 0 - type: entity id: BulletGrenadeFlash @@ -781,6 +783,8 @@ totalIntensity: 175 # about a ~6 tile radius intensitySlope: 1 maxIntensity: 10 + - type: ExplosionEffect # WD + maxShrapnel: 0 - type: entity id: BulletGrenadeEMP diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml index 0313a75868..1a1be4ac89 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/grenades.yml @@ -36,10 +36,18 @@ Primed: { state: primed } Unprimed: { state: icon } +- type: entity # WD + abstract: true + parent: GrenadeBase + id: GrenadeBaseExplosionEffect + components: + - type: ExplosionEffect + maxShrapnel: 0 + - type: entity name: explosive grenade description: Grenade that creates a small but devastating explosion. - parent: GrenadeBase + parent: GrenadeBaseExplosionEffect # WD id: ExGrenade components: - type: ExplodeOnTrigger @@ -49,13 +57,8 @@ intensitySlope: 3 totalIntensity: 120 # about a ~4 tile radius canCreateVacuum: false - - type: OnUseTimerTrigger - beepSound: - path: "/Audio/Effects/beep1.ogg" - params: - volume: 5 - initialBeepDelay: 0 - beepInterval: 2 # 2 beeps total (at 0 and 2) + - type: ExplosionEffect + maxShrapnel: 12 - type: entity name: flashbang @@ -102,7 +105,7 @@ - type: entity name: syndicate minibomb description: A syndicate-manufactured explosive used to stow destruction and cause chaos. - parent: GrenadeBase + parent: GrenadeBaseExplosionEffect # WD id: SyndieMiniBomb components: - type: Sprite @@ -235,7 +238,7 @@ - type: entity name: the nuclear option description: Please don't throw it, think of the children. - parent: GrenadeBase + parent: GrenadeBaseExplosionEffect # WD id: NuclearGrenade components: - type: Sprite @@ -326,7 +329,7 @@ - type: entity name: holy hand grenade description: O Lord, bless this thy hand grenade, that with it thou mayst blow thine enemies to tiny bits, in thy mercy. - parent: GrenadeBase + parent: GrenadeBaseExplosionEffect # WD id: HolyHandGrenade components: - type: Sprite diff --git a/Resources/Prototypes/Entities/Structures/Storage/Tanks/tanks.yml b/Resources/Prototypes/Entities/Structures/Storage/Tanks/tanks.yml index 455577a371..c820b5a236 100644 --- a/Resources/Prototypes/Entities/Structures/Storage/Tanks/tanks.yml +++ b/Resources/Prototypes/Entities/Structures/Storage/Tanks/tanks.yml @@ -35,6 +35,8 @@ explosionType: FireBomb # WD EDIT totalIntensity: 120 # ~ 5 tile radius canCreateVacuum: false + - type: ExplosionEffect # WD + maxShrapnel: 0 - type: entity id: WeldingFuelTankFull diff --git a/Resources/Prototypes/_White/Entities/Objects/Weapons/Throwable/grenades.yml b/Resources/Prototypes/_White/Entities/Objects/Weapons/Throwable/grenades.yml new file mode 100644 index 0000000000..fea6ec5ec6 --- /dev/null +++ b/Resources/Prototypes/_White/Entities/Objects/Weapons/Throwable/grenades.yml @@ -0,0 +1,92 @@ +- type: entity + id: ExplosionEffectGrenade + noSpawn: true + components: + - type: Sprite + sprite: White/Effects/grenade_explosion.rsi + state: grenade + - type: TimedDespawn + lifetime: 0.5 + +- type: entity + id: ExplosionEffectGrenadeShockWave + components: + - type: TimedDespawn + lifetime: 0.5 + - type: ExplosionShockWave + falloffPower: 30 + sharpness: 15 + width: 1.3 + +- type: entity + id: ExplosionEffectShrapnel1 + noSpawn: true + components: + - type: CollisionWake + - type: Physics + bodyType: Dynamic + fixedRotation: true + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.25,0.25,0.25" + density: 20 + mask: + - ItemMask + restitution: 0.3 + friction: 0 + - type: Sprite + sprite: White/Objects/Weapons/shrapnel.rsi + state: shrapnel_bright1 + - type: TimedDespawn + lifetime: 0.5 +# - type: DeleteOnCollide + +- type: entity + parent: ExplosionEffectShrapnel1 + id: ExplosionEffectShrapnel2 + noSpawn: true + components: + - type: Sprite + state: shrapnel_bright2 + +# Не работает каким-то хуем +- type: entity + parent: BaseBullet + id: ProjectileShrapnel + name: shrapnel + noSpawn: true + components: + - type: Sprite + sprite: White/Objects/Weapons/Ammunition/Projectiles/shotgun_projectiles.rsi + layers: + - state: buckshot + - type: Fixtures + fixtures: + projectile: + shape: + !type:PhysShapeAabb + bounds: "-0.1,-0.1,0.1,0.1" + hard: false + mask: + - Impassable + - BulletImpassable + - LowImpassable + fly-by: + shape: !type:PhysShapeCircle + radius: 1.5 + layer: + - Impassable + - MidImpassable + - HighImpassable + - LowImpassable + hard: False + - type: Projectile + damage: + types: + Piercing: 12 + deleteOnCollide: true + - type: TimedDespawn + lifetime: 0.5 diff --git a/Resources/Prototypes/_White/Shaders/shaders.yml b/Resources/Prototypes/_White/Shaders/shaders.yml new file mode 100644 index 0000000000..0f307d2742 --- /dev/null +++ b/Resources/Prototypes/_White/Shaders/shaders.yml @@ -0,0 +1,4 @@ +- type: shader + id: ShockWave + kind: source + path: "/Textures/White/Shaders/shock_wave.swsl" diff --git a/Resources/Textures/White/Effects/grenade_explosion.rsi/grenade.png b/Resources/Textures/White/Effects/grenade_explosion.rsi/grenade.png new file mode 100644 index 0000000000000000000000000000000000000000..d00b7283afd68e7e283bb54de771729592a5bbe4 GIT binary patch literal 7913 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 TV*(qn00000NkvXXu0mjfv~5lo literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Effects/grenade_explosion.rsi/meta.json b/Resources/Textures/White/Effects/grenade_explosion.rsi/meta.json new file mode 100644 index 0000000000..faef7a9557 --- /dev/null +++ b/Resources/Textures/White/Effects/grenade_explosion.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cmss13 at https://github.com/cmss13-devs/cmss13/blob/add6123ac6b3263f257e4b233ef5a8fea5d3d317/icons/effects/explosion.dmi", + "size": { + "x": 48, + "y": 48 + }, + "states": [ + { + "name": "grenade", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/White/Objects/Weapons/Ammunition/Projectiles/shotgun_projectiles.rsi/autocannon.png b/Resources/Textures/White/Objects/Weapons/Ammunition/Projectiles/shotgun_projectiles.rsi/autocannon.png new file mode 100644 index 0000000000000000000000000000000000000000..9b69b25c948a755dd1602d167c45451b4472cd6d GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DinK$vl=HlH+5aKEREV@QO1a*BfRpZi*>$36r{bv6EdY3%ks zef@$%D$Hscwh0L*tQ~l~CiAWkWKs&4rDHIQ?L-lS1-Da!(G)f503oIiJKT!|P9{Vw zVdT{C6nis7M*o{n*{U!lvI6;>1s;*b3=DinK$vl=HlH+5aE7OgV@QO1vIOhm1QDLf5B003NKEk*OK7^p z%;qNRz{}3zn7QddhDeW9!WG6V1q~uo)VO&nI09Jy*}wVm|M~g8{|ZuCE=CJ9SpIoQ z8yMK{Wmv|})8NE#N`>3N38-_veDFWx{eKR92%pp5*s9#FvsuHtMMo>)v}2!wc)+s; y`|<!lvI6;>1s;*b3=DinK$vl=HlH+5Fw@h;F(ktM?UjR^42B#m4m-Po=BeIH?Gv5P zzC7bZ`g7$*0dY<)LD9D>lIN|Ej1JxVE7QY@Vb=Psd(?XTPtA;cmgvLv{ankB=4TvI zitjx9x{hr*7JHL9{?_h=q6}xbcR%F$SD~b|NN%Edhp6hp_*%=qKuZ}sUHx3vIVCg! E0FZx1cK`qY literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Objects/Weapons/Ammunition/Projectiles/shotgun_projectiles.rsi/flechette.png b/Resources/Textures/White/Objects/Weapons/Ammunition/Projectiles/shotgun_projectiles.rsi/flechette.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fec141ec929d135350b1ff5d390f3a13ea82cd GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCiji0(?STYfC%NocV9ekY-@vF?H^?-if`LnUz4v`t5cmK#HRz$S?Rm1Tfrd z-Wv%N<1FxqEM{QfI|9OtQ?>b|fr9OxE{-7<{&)Kwg&Guim<1>N`+wX^!({2Xifb}U zj7~dE+ViB?!K&ne!Gz6xGHj=eCY+XB#rLM@z)I$we?(s&kCDr;@`%)9-(tl->ooJr zumue}WhVT(9e5z--UWLNhU*;699#!Xg&0IOsM|2y_G5Wb;?J;xL5NYifu(^<;o^eV gJ`CUfFbeEs@ad3xBXlBB0O%wJPgg&ebxsLQ0E0PaC;$Ke literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Objects/Weapons/Ammunition/Projectiles/shotgun_projectiles.rsi/meta.json b/Resources/Textures/White/Objects/Weapons/Ammunition/Projectiles/shotgun_projectiles.rsi/meta.json new file mode 100644 index 0000000000..0bbcb43c40 --- /dev/null +++ b/Resources/Textures/White/Objects/Weapons/Ammunition/Projectiles/shotgun_projectiles.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cmss13 at https://github.com/cmss13-devs/cmss13/blob/a86a9e2e57e5c00195cab704713a4962e8bc973a/icons/obj/items/weapons/projectiles.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "autocannon" + }, + { + "name": "buckshot" + }, + { + "name": "beanbag" + }, + { + "name": "flechette" + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/White/Objects/Weapons/shrapnel.rsi/meta.json b/Resources/Textures/White/Objects/Weapons/shrapnel.rsi/meta.json new file mode 100644 index 0000000000..a17dcce10c --- /dev/null +++ b/Resources/Textures/White/Objects/Weapons/shrapnel.rsi/meta.json @@ -0,0 +1,55 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from cmss13 at https://github.com/cmss13-devs/cmss13/blob/a86a9e2e57e5c00195cab704713a4962e8bc973a/icons/obj/items/weapons/projectiles.dmi", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "shrapnelshot" + }, + { + "name": "shrapnelshot_bit" + }, + { + "name": "shrapnel_glass" + }, + { + "name": "shrapnel_light" + }, + { + "name": "shrapnel_xeno" + }, + { + "name": "shrapnel_human" + }, + { + "name": "shrapnel_human1" + }, + { + "name": "shrapnel_human2" + }, + { + "name": "shrapnel_bright1", + "delays": [ + [ + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "shrapnel_bright2", + "delays": [ + [ + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnel_bright1.png b/Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnel_bright1.png new file mode 100644 index 0000000000000000000000000000000000000000..e3e8c5c8d279155448924af50caa8adaffee819d GIT binary patch literal 465 zcmV;?0WSWDP)z#v2QUVD|v+#ZT_lSOj(f^lEyL2crS_ z1lRy~JB-Dtb{NU2d4OjzeJmcp(hnpeaD+h5T?Leuy$U4H0Y~;6aK8^o+YAZ)eLxIL zUyViJd@hgWsbOg|vB!Drs0ezD6x z=3TyE6UCreh0jW92!=RapwAL!T|wOFL| z{hLppW(M^hF;3>pIGyPZ*NwB!|GwHSbkL&P$ULX(bE9zD{rEcxGS@a8na}kh z?69DWlw6=_{gqw6mKV;r{QmNj+MP9%Sf@)q=-(4{|FmjNTufcNwA|u9eym$89v53g zJ$$9Az$nUq5&!~yTnz;w3@wY96l8!>C3ocmnw1#$`p?sN$G@VE`-{P!e+^&vEpe@P z@a6i&obhS>I(2`8-^_Q?4XY3AvrpLnYVSObH~$)DEWDg^;x@C;?%Gv47T-UwJ^6mdKI;Vst0KVVx3;+NC literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnel_glass.png b/Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnel_glass.png new file mode 100644 index 0000000000000000000000000000000000000000..7c399cf53ccf433c4b06a524567abefafebdaaf5 GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5DA?fX z;uumf=j|0ot^)=fEC+bMto`Ww(Z6zXYfw?xWTBvI-Paw%^>g%?I20Nfm^dtCE}T(V z`i5~!+T!jdf|U&=3$zx<8k=rp(!G%7f1kNRaB}GdQ5}yOxeXd0D;-om9`v*ff8bM- z6x1kSB{csBZ})nIf6{gqhi~LtyxyIe2ExPVihMpi{4dz9;iNlElP{&hVcYr3UE08K#eDuJ zdR!a08}EtUI4hRQu>Tk{M{GFXhxI^9SZf&n*J@Apesy^U(D@9Wu6{1-oD!M<8MRWm literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnel_human1.png b/Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnel_human1.png new file mode 100644 index 0000000000000000000000000000000000000000..30311c9210f5363bcc5ed442ba93f7c258bf735e GIT binary patch literal 484 zcmVYE?Az@& z+z5d0`_dNz!WOr)0Fcp0JQx|!W;PapC{5v9*P(6Nu>nxpgOfuU#i?X30o7UvQ4*mN zOfdD7g%GpB1|V-PeZ=(zHH|IC1};p8Mv5cz#C02-;5Wl7a_m6_+s;=5uw>S9?I z6dvPk)1FQla8aDDbJL^+bPe(ZL3p3vK;2U3k+s?|2k8^9clY>nA}a05{w<(WFElIx zcF|SM#AFAcE&?<#nRQY#u2}){pOOeo7~q;_27;8lzzRU(`GCq(zxYT>9kCG)6xV82 aHsK$6$*c*Qbp(F^0000nwsIaM~S_Zt{b9UB1ckNfV3 z#o^+uV|@k7z6@pwwoF)efz`@{J`X>Y7eH(6Qp4Fk06?QB8w$%4NP_?*HB6w8{AnWM i4x~W_~`(9S}L5zL#aiM2#7?hNjJxptG-^M5x|4!&m zV36i4e9q=AB-v7_8FX&?%rh(Q~Eo}13r5K)V`dItgR`x-7A_KF;2iCG{hGBM`{~rOp O!r_ zY?5F7ZkKIXq+xUM(B9W?7&_K`{NKxv^7wMF*WrTS{0*mm9N^FBJ;U^(r+-mL+&{<4 zdnwXsj3vjyLtU+3>ZF6&(^EZtF9+P-cE9|cnFHU7ys6KB`k%d%+rS|3c;{^f#s$ZU zw=ptZkkoJA%q!4vsv^_^D0t%7>n5{Q9tG+3+_$C}GDvM%d6wbAGBf4}M;I*{%>R8V VPO@WejsS)OgQu&X%Q~loCIAQUf9U`K literal 0 HcmV?d00001 diff --git a/Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnelshot_bit.png b/Resources/Textures/White/Objects/Weapons/shrapnel.rsi/shrapnelshot_bit.png new file mode 100644 index 0000000000000000000000000000000000000000..1b85ff3b8fccd5ab31916c9e79a06b534261e03f GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5D7f6y z#WAE}&f6;+d7BLc+#brSid= (CurrentTime - 0.1)) { + highp float Diff = Dist - CurrentTime; + highp float ScaleDiff = 1.0 - pow(abs(Diff * sharpness[i]), width[i]); + highp float DiffTime = Diff * ScaleDiff; + highp vec2 DiffTexCoord = normalize(coord - WaveCentre); + coord += (DiffTexCoord * DiffTime) / (CurrentTime * Dist * falloffPower[i]); + highp vec4 Color = zTextureSpec(SCREEN_TEXTURE, coord); + Color += (Color * ScaleDiff) / (CurrentTime * Dist * 40.0); + COLOR = Color; + } else { + COLOR = zTextureSpec(SCREEN_TEXTURE, UV); + } + } +} From 6dffd325d3354056d6c0913546ee8fb61b6c3ee1 Mon Sep 17 00:00:00 2001 From: RavmorganButOnCocaine Date: Sat, 17 Aug 2024 21:00:15 +0000 Subject: [PATCH 05/42] Automatic changelog update --- Resources/Changelog/ChangelogWhite.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Resources/Changelog/ChangelogWhite.yml b/Resources/Changelog/ChangelogWhite.yml index 77474d9ce6..aedac0c758 100644 --- a/Resources/Changelog/ChangelogWhite.yml +++ b/Resources/Changelog/ChangelogWhite.yml @@ -8309,3 +8309,22 @@ id: 499 time: '2024-08-17T12:48:05.0000000+00:00' url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/631 +- author: ThereDrD0 + changes: + - message: "\u0412\u0437\u0440\u044B\u0432\u044B \u0442\u0435\u043F\u0435\u0440\u044C\ + \ \u0438\u043C\u0435\u044E\u0442 \u0432\u0438\u0437\u0443\u0430\u043B\u0438\u0437\ + \u0430\u0446\u0438\u044E \u0443\u0434\u0430\u0440\u043D\u043E\u0439 \u0432\u043E\ + \u043B\u043D\u044B" + type: Add + - message: "\u041D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0432\u0437\u0440\ + \u044B\u0432\u044B \u0438\u043C\u0435\u044E\u0442 \u0432\u0438\u0437\u0443\u0430\ + \u043B\u0438\u0437\u0430\u0446\u0438\u044E \u0448\u0440\u0430\u043F\u043D\u0435\ + \u043B\u0438" + type: Add + - message: "\u041E\u0441\u043A\u043E\u043B\u043E\u0447\u043D\u0430\u044F \u0433\u0440\ + \u0430\u043D\u0430\u0442\u0430 \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435\ + \ \u043F\u0438\u0449\u0438\u0442" + type: Remove + id: 500 + time: '2024-08-17T20:59:11.0000000+00:00' + url: https://api.github.com/repos/frosty-dev/ss14-core/pulls/633 From 9a3b51577629478ac7eacc6597f10995d08414f3 Mon Sep 17 00:00:00 2001 From: ThereDrD <88589686+ThereDrD0@users.noreply.github.com> Date: Sun, 18 Aug 2024 00:17:13 +0300 Subject: [PATCH 06/42] =?UTF-8?q?ThereDrD=20=D0=BA=D0=B0=D1=81=D1=82=D0=BE?= =?UTF-8?q?=D0=BC=D0=B3=D0=BE=D1=81=D1=82=20(#634)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add null name support for customghost * add custom ghost --- .../CustomGhostSpriteSystem.cs | 37 +++++++------------ .../CustomGhostSystem/CustomGhostPrototype.cs | 2 +- .../_White/Ghosts/custom_ghosts.yml | 14 +++++-- 3 files changed, 25 insertions(+), 28 deletions(-) diff --git a/Content.Server/_White/CustomGhostSpriteSystem/CustomGhostSpriteSystem.cs b/Content.Server/_White/CustomGhostSpriteSystem/CustomGhostSpriteSystem.cs index bfe87d1bc8..94e0e72ebe 100644 --- a/Content.Server/_White/CustomGhostSpriteSystem/CustomGhostSpriteSystem.cs +++ b/Content.Server/_White/CustomGhostSpriteSystem/CustomGhostSpriteSystem.cs @@ -1,7 +1,5 @@ -using Content.Server.Ghost.Components; using Content.Shared.Ghost; using Content.Shared._White.CustomGhostSystem; -using Robust.Server.GameObjects; using Robust.Server.Player; using Robust.Shared.Player; using Robust.Shared.Prototypes; @@ -19,12 +17,13 @@ public sealed class CustomGhostSpriteSystem : EntitySystem public override void Initialize() { base.Initialize(); + SubscribeLocalEvent(OnShit); } private void OnShit(EntityUid uid, GhostComponent component, PlayerAttachedEvent args) { - if(!_playerManager.TryGetSessionByEntity(uid, out var session)) + if (!_playerManager.TryGetSessionByEntity(uid, out var session)) return; TrySetCustomSprite(uid, session.Name); @@ -37,32 +36,22 @@ public sealed class CustomGhostSpriteSystem : EntitySystem foreach (var customGhostPrototype in prototypes) { - if (string.Equals(customGhostPrototype.Ckey, ckey, StringComparison.CurrentCultureIgnoreCase)) - { - _appearanceSystem.SetData(ghostUid, CustomGhostAppearance.Sprite, customGhostPrototype.CustomSpritePath.ToString()); - _appearanceSystem.SetData(ghostUid, CustomGhostAppearance.SizeOverride, customGhostPrototype.SizeOverride); + if (!string.Equals(customGhostPrototype.Ckey, ckey, StringComparison.CurrentCultureIgnoreCase)) + continue; - if(customGhostPrototype.AlphaOverride > 0) - { - _appearanceSystem.SetData(ghostUid, CustomGhostAppearance.AlphaOverride, customGhostPrototype.AlphaOverride); - } + _appearanceSystem.SetData(ghostUid, CustomGhostAppearance.Sprite, customGhostPrototype.CustomSpritePath.ToString()); + _appearanceSystem.SetData(ghostUid, CustomGhostAppearance.SizeOverride, customGhostPrototype.SizeOverride); - if (customGhostPrototype.GhostName != string.Empty) - { - _metaData.SetEntityName(ghostUid, customGhostPrototype.GhostName); - } + if (customGhostPrototype.AlphaOverride > 0) + _appearanceSystem.SetData(ghostUid, CustomGhostAppearance.AlphaOverride, customGhostPrototype.AlphaOverride); - if (customGhostPrototype.GhostDescription != string.Empty) - { - _metaData.SetEntityDescription(ghostUid, customGhostPrototype.GhostDescription); - } + if (customGhostPrototype.GhostName != string.Empty) + _metaData.SetEntityName(ghostUid, customGhostPrototype.GhostName ?? "null"); + if (customGhostPrototype.GhostDescription != string.Empty) + _metaData.SetEntityDescription(ghostUid, customGhostPrototype.GhostDescription); - - - return; - } - + return; } } } diff --git a/Content.Shared/_White/CustomGhostSystem/CustomGhostPrototype.cs b/Content.Shared/_White/CustomGhostSystem/CustomGhostPrototype.cs index 454fce7ffe..7bc492a925 100644 --- a/Content.Shared/_White/CustomGhostSystem/CustomGhostPrototype.cs +++ b/Content.Shared/_White/CustomGhostSystem/CustomGhostPrototype.cs @@ -25,7 +25,7 @@ public sealed class CustomGhostPrototype : IPrototype public float AlphaOverride { get; } = -1; [DataField("ghostName")] - public string GhostName = string.Empty; + public string? GhostName = string.Empty; [DataField("ghostDescription")] public string GhostDescription = string.Empty; diff --git a/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml b/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml index 187f7bbb08..e0ef685f8e 100644 --- a/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml +++ b/Resources/Prototypes/_White/Ghosts/custom_ghosts.yml @@ -22,13 +22,21 @@ ghostName: Winter's Scar ghostDescription: ... +#- type: customGhost +# id: animeshka-ghost +# ckey: animeshka +# sprite: White/Ghosts/animeshka-ghost.rsi +# alpha: 0.7 +# ghostName: Грабля +# ghostDescription: Ну привет уебан! + - type: customGhost id: animeshka-ghost - ckey: animeshka + ckey: theredrd sprite: White/Ghosts/animeshka-ghost.rsi alpha: 0.7 - ghostName: Грабля - ghostDescription: Ну привет уебан! + ghostName: null + ghostDescription: ... - type: customGhost id: shelupon-ghost From c28a330372ef22da1e56ede1307c8711dab6093c Mon Sep 17 00:00:00 2001 From: ThereDrD <88589686+ThereDrD0@users.noreply.github.com> Date: Mon, 19 Aug 2024 03:27:31 +0300 Subject: [PATCH 07/42] rename white dream to giedi prime (#635) --- Content.Client/Lobby/LobbyState.cs | 2 +- Content.Client/MainMenu/UI/MainMenuControl.xaml | 2 +- Content.Client/_White/Rules/RulesWikiSection.xaml | 2 +- Content.Server/Tabletop/TabletopSystem.cs | 4 ++-- Content.Shared/Chat/Prototypes/EmotePrototype.cs | 4 ++-- Resources/Locale/en-US/changelog/changelog-window.ftl | 2 +- Resources/Locale/ru-RU/changelog/changelog-window.ftl | 2 +- Resources/Locale/ru-RU/info/rules.ftl | 4 ++-- .../Prototypes/Loadouts/Miscellaneous/SelfDefenceDevices.yml | 2 +- .../Textures/Clothing/Back/Satchels/inspector.rsi/meta.json | 2 +- .../Clothing/Eyes/Glasses/inspectorglasses.rsi/meta.json | 2 +- .../Textures/Clothing/Hands/Gloves/inspector.rsi/meta.json | 2 +- Resources/Textures/Clothing/Head/Hardsuits/hop.rsi/meta.json | 3 +-- .../Textures/Clothing/Head/Hardsuits/inspector.rsi/meta.json | 4 ++-- Resources/Textures/Clothing/Head/Hats/inspector.rsi/meta.json | 2 +- .../Textures/Clothing/Head/Hats/inspectorcap.rsi/meta.json | 2 +- Resources/Textures/Clothing/Mask/inspector.rsi/meta.json | 2 +- Resources/Textures/Clothing/Neck/Cloaks/hop.rsi/meta.json | 2 +- .../Textures/Clothing/Neck/Cloaks/inspector.rsi/meta.json | 3 +-- .../Textures/Clothing/Neck/Misc/inspectorbadge.rsi/meta.json | 4 ++-- .../Clothing/Neck/mantles/inspectormantle.rsi/meta.json | 3 +-- .../OuterClothing/Coats/inspector_jacket.rsi/meta.json | 2 +- .../OuterClothing/Coats/inspector_overcoat.rsi/meta.json | 2 +- .../OuterClothing/Coats/inspector_trenchcoat.rsi/meta.json | 2 +- .../Clothing/OuterClothing/Hardsuits/hop.rsi/meta.json | 3 +-- .../Clothing/OuterClothing/Hardsuits/inspector.rsi/meta.json | 4 ++-- .../OuterClothing/WinterCoats/inspector.rsi/meta.json | 2 +- .../Textures/Clothing/Shoes/Boots/inspector.rsi/meta.json | 2 +- .../Clothing/Uniforms/Jumpskirt/inspector.rsi/meta.json | 2 +- .../Clothing/Uniforms/Jumpskirt/inspectorformal.rsi/meta.json | 2 +- .../Clothing/Uniforms/Jumpsuit/inspector.rsi/meta.json | 2 +- .../Clothing/Uniforms/Jumpsuit/inspectorformal.rsi/meta.json | 2 +- Resources/Textures/Clothing/Uniforms/Overlay.rsi/meta.json | 4 ++-- .../Objects/Specific/Security/body-camera.rsi/meta.json | 4 ++-- Resources/Textures/Structures/Storage/closet.rsi/meta.json | 2 +- Resources/Textures/White/Actions/changeling.rsi/meta.json | 2 +- Resources/Textures/White/Actions/meta.json | 2 +- .../Textures/White/Clothing/Belt/paramedwebbing.rsi/meta.json | 2 +- .../Textures/White/Clothing/Head/wizhat-alt.rsi/meta.json | 3 +-- Resources/Textures/White/Clothing/Head/wizhat.rsi/meta.json | 3 +-- .../White/Clothing/OuterClothing/impspatio.rsi/meta.json | 2 +- .../White/Clothing/OuterClothing/impspatiohelm.rsi/meta.json | 2 +- .../Textures/White/Clothing/OuterClothing/robe.rsi/meta.json | 3 +-- .../Underwear/Bottom/heads/inspector/boxers.rsi/meta.json | 2 +- .../Underwear/Bottom/heads/inspector/panties.rsi/meta.json | 2 +- .../Clothing/Underwear/Top/heads/inspector/bra.rsi/meta.json | 2 +- Resources/Textures/White/Fluff/Geraldiy/blade.rsi/meta.json | 2 +- Resources/Textures/White/Fluff/Geraldiy/stamp.rsi/meta.json | 2 +- Resources/Textures/White/Fluff/egoruch17/mantle.rsi/meta.json | 2 +- Resources/Textures/White/Fluff/egoruch17/mask.rsi/meta.json | 2 +- Resources/Textures/White/Ghosts/kreses-ghost.rsi/meta.json | 2 +- .../Textures/White/Ghosts/lllkjjjklll-ghost.rsi/meta.json | 2 +- .../White/Mobs/Customization/demon_tail.rsi/meta.json | 2 +- .../White/Mobs/Customization/egoruch17_claws.rsi/meta.json | 2 +- .../White/Mobs/Customization/warete_hair.rsi/meta.json | 2 +- .../White/Mobs/Customization/wolf_parts.rsi/meta.json | 2 +- .../Textures/White/Objects/Tools/impcrowbar.rsi/meta.json | 2 +- .../Textures/White/Objects/Tools/impscrewdriver.rsi/meta.json | 2 +- .../Textures/White/Objects/Tools/impwelder.rsi/meta.json | 2 +- .../Textures/White/Objects/Tools/impwirecutter.rsi/meta.json | 2 +- .../Textures/White/Objects/Tools/impwrench.rsi/meta.json | 2 +- Resources/manifest.yml | 2 +- 62 files changed, 70 insertions(+), 77 deletions(-) diff --git a/Content.Client/Lobby/LobbyState.cs b/Content.Client/Lobby/LobbyState.cs index a363a1f937..8de2579e60 100644 --- a/Content.Client/Lobby/LobbyState.cs +++ b/Content.Client/Lobby/LobbyState.cs @@ -244,7 +244,7 @@ namespace Content.Client.Lobby _lobby!.ServerInfo.SetInfoBlob(_gameTicker.ServerInfoBlob); } - _lobby!.LabelName.SetMarkup("[font=\"Bedstead\" size=20] White Dream [/font]"); + _lobby!.LabelName.SetMarkup("[font=\"Bedstead\" size=20] Giede Prime [/font]"); _lobby!.ChangelogLabel.SetMarkup("Список изменений:"); } diff --git a/Content.Client/MainMenu/UI/MainMenuControl.xaml b/Content.Client/MainMenu/UI/MainMenuControl.xaml index 4ce68c117b..8b3e6fa8d1 100644 --- a/Content.Client/MainMenu/UI/MainMenuControl.xaml +++ b/Content.Client/MainMenu/UI/MainMenuControl.xaml @@ -7,7 +7,7 @@ -