From 69f5b4f27cfab6af506336872bba120fae63a8a0 Mon Sep 17 00:00:00 2001 From: Dunrab Date: Tue, 23 Jun 2026 00:37:33 -0400 Subject: [PATCH 01/14] projectiles need fixin --- .../GatheringProjectileComponent.cs | 7 + .../Components/GunUpgradeDamageComponent.cs | 32 ++- .../Ranged/Upgrades/GunUpgradeSystem.cs | 21 +- .../Weapons/GetLightAttackRangeEvent.cs | 8 + .../Weapons/MeleeWeaponRelayComponent.cs | 33 +++ .../Ranged/Events/ProjectileShotEvent.cs | 31 +++ .../Weapons/Ranged/MultishotComponent.cs | 69 +++++++ .../Components/GunUpgradeBayonetComponent.cs | 30 +++ .../Components/GunUpgradeComponent.cs | 58 ++++++ .../GunUpgradeComponentsComponent.cs | 36 ++++ .../Components/GunUpgradeFireRateComponent.cs | 34 ++++ .../GunUpgradeFlashlightComponent.cs | 30 +++ .../Components/GunUpgradePressureComponent.cs | 39 ++++ ...GunUpgradeProjectileComponentsComponent.cs | 35 ++++ .../Components/GunUpgradeSpeedComponent.cs | 34 ++++ .../GunUpgradeVampirismComponent.cs | 42 ++++ .../Components/UpgradeableWeaponComponent.cs | 35 ++++ .../WeaponUpgradeDamageComponent.cs | 20 ++ .../Components/WeaponUpgradeRangeComponent.cs | 16 ++ .../Components/WeaponUpgradeSpeedComponent.cs | 16 ++ .../SharedGunUpgradeSystem.Upgrades.cs | 131 ++++++++++++ .../Ranged/Upgrades/SharedGunUpgradeSystem.cs | 188 ++++++++++++++++++ ...asicEntityAmmoGetCooldownModifiersEvent.cs | 16 ++ .../Entities/Objects/Tools/pka_upgrade.yml | 2 +- .../Objects/Weapons/Guns/Basic/pka.yml | 114 +++++++++++ .../kinetic_pistol.rsi/animation-icon.png | Bin 0 -> 264 bytes .../Guns/Basic/kinetic_pistol.rsi/bayonet.png | Bin 0 -> 281 bytes .../kinetic_pistol.rsi/equipped-BELT.png | Bin 0 -> 1255 bytes .../equipped-SUITSTORAGE.png | Bin 0 -> 1255 bytes .../Basic/kinetic_pistol.rsi/flight-on.png | Bin 0 -> 226 bytes .../Guns/Basic/kinetic_pistol.rsi/flight.png | Bin 0 -> 173 bytes .../Guns/Basic/kinetic_pistol.rsi/icon.png | Bin 0 -> 862 bytes .../Basic/kinetic_pistol.rsi/inhand-left.png | Bin 0 -> 1082 bytes .../Basic/kinetic_pistol.rsi/inhand-right.png | Bin 0 -> 1072 bytes .../Guns/Basic/kinetic_pistol.rsi/meta.json | 51 +++++ .../kinetic_pistol.rsi/upgrade-space.png | Bin 0 -> 154 bytes .../kinetic_railgun.rsi/animation-icon.png | Bin 0 -> 206 bytes .../Basic/kinetic_railgun.rsi/bayonet.png | Bin 0 -> 236 bytes .../kinetic_railgun.rsi/equipped-BELT.png | Bin 0 -> 1535 bytes .../equipped-SUITSTORAGE.png | Bin 0 -> 1535 bytes .../Basic/kinetic_railgun.rsi/flight-on.png | Bin 0 -> 226 bytes .../Guns/Basic/kinetic_railgun.rsi/flight.png | Bin 0 -> 173 bytes .../Guns/Basic/kinetic_railgun.rsi/icon.png | Bin 0 -> 766 bytes .../Basic/kinetic_railgun.rsi/inhand-left.png | Bin 0 -> 1195 bytes .../kinetic_railgun.rsi/inhand-right.png | Bin 0 -> 1212 bytes .../Guns/Basic/kinetic_railgun.rsi/meta.json | 56 ++++++ .../wielded-inhand-left.png | Bin 0 -> 1081 bytes .../wielded-inhand-right.png | Bin 0 -> 1120 bytes .../kinetic_shotgun.rsi/animation-icon.png | Bin 0 -> 174 bytes .../Basic/kinetic_shotgun.rsi/bayonet.png | Bin 0 -> 281 bytes .../kinetic_shotgun.rsi/equipped-BELT.png | Bin 0 -> 739 bytes .../equipped-SUITSTORAGE.png | Bin 0 -> 739 bytes .../Basic/kinetic_shotgun.rsi/flight-on.png | Bin 0 -> 226 bytes .../Guns/Basic/kinetic_shotgun.rsi/flight.png | Bin 0 -> 173 bytes .../Guns/Basic/kinetic_shotgun.rsi/icon.png | Bin 0 -> 531 bytes .../Basic/kinetic_shotgun.rsi/inhand-left.png | Bin 0 -> 742 bytes .../kinetic_shotgun.rsi/inhand-right.png | Bin 0 -> 754 bytes .../Guns/Basic/kinetic_shotgun.rsi/meta.json | 59 ++++++ .../kinetic_shotgun.rsi/upgrade-space.png | Bin 0 -> 133 bytes .../wielded-inhand-left.png | Bin 0 -> 840 bytes .../wielded-inhand-right.png | Bin 0 -> 844 bytes .../Weapons/Guns/Projectiles/projectiles.yml | 99 +++++++++ 62 files changed, 1330 insertions(+), 12 deletions(-) create mode 100644 Content.Shared/_Lavaland/Weapons/GetLightAttackRangeEvent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/MeleeWeaponRelayComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Events/ProjectileShotEvent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/MultishotComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeBayonetComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeComponentsComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeFireRateComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeFlashlightComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradePressureComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeProjectileComponentsComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeSpeedComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeVampirismComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/UpgradeableWeaponComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/WeaponUpgradeDamageComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/WeaponUpgradeRangeComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/WeaponUpgradeSpeedComponent.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.Upgrades.cs create mode 100644 Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.cs create mode 100644 Content.Shared/_Lavaland/Weapons/RechargeBasicEntityAmmoGetCooldownModifiersEvent.cs create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/animation-icon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/bayonet.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/equipped-BELT.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/equipped-SUITSTORAGE.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/flight-on.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/flight.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/icon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/upgrade-space.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/animation-icon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/bayonet.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/equipped-BELT.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/equipped-SUITSTORAGE.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/flight-on.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/flight.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/icon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/wielded-inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/wielded-inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/animation-icon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/bayonet.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/equipped-BELT.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/equipped-SUITSTORAGE.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/flight-on.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/flight.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/icon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/upgrade-space.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/wielded-inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/wielded-inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Projectiles/projectiles.yml diff --git a/Content.Server/Gatherable/Components/GatheringProjectileComponent.cs b/Content.Server/Gatherable/Components/GatheringProjectileComponent.cs index 2ac8eedcd17..3d0d6c3d78e 100644 --- a/Content.Server/Gatherable/Components/GatheringProjectileComponent.cs +++ b/Content.Server/Gatherable/Components/GatheringProjectileComponent.cs @@ -11,4 +11,11 @@ public sealed partial class GatheringProjectileComponent : Component /// [ViewVariables(VVAccess.ReadWrite), DataField("amount")] public int Amount = 1; + + /// + /// Goobstation + /// The probability that the given projectile will actually be gathering + /// + [DataField] + public float Probability = 1f; } diff --git a/Content.Shared/Weapons/Ranged/Upgrades/Components/GunUpgradeDamageComponent.cs b/Content.Shared/Weapons/Ranged/Upgrades/Components/GunUpgradeDamageComponent.cs index b69c7973a03..3b02c3d04f0 100644 --- a/Content.Shared/Weapons/Ranged/Upgrades/Components/GunUpgradeDamageComponent.cs +++ b/Content.Shared/Weapons/Ranged/Upgrades/Components/GunUpgradeDamageComponent.cs @@ -1,3 +1,26 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aidenkrz +// SPDX-FileCopyrightText: 2025 Aineias1 +// SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 GoobBot +// SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Milon +// SPDX-FileCopyrightText: 2025 Piras314 +// SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> +// SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 gluesniffler +// SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 whateverusername0 +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Content.Shared._Lavaland.Weapons.Ranged.Upgrades; using Content.Shared.Damage; using Robust.Shared.GameStates; @@ -6,12 +29,15 @@ namespace Content.Shared.Weapons.Ranged.Upgrades.Components; /// /// A for increasing the damage of a gun's projectile. /// -[RegisterComponent, NetworkedComponent, Access(typeof(GunUpgradeSystem))] +[RegisterComponent, NetworkedComponent, Access(typeof(SharedGunUpgradeSystem))] public sealed partial class GunUpgradeDamageComponent : Component { + [DataField] + public DamageSpecifier? BonusDamage; + /// - /// Additional damage added onto the projectile's base damage. + /// How much should we multiply the total projectile's damage. /// [DataField] - public DamageSpecifier Damage = new(); + public float Modifier = 1f; } diff --git a/Content.Shared/Weapons/Ranged/Upgrades/GunUpgradeSystem.cs b/Content.Shared/Weapons/Ranged/Upgrades/GunUpgradeSystem.cs index cbaef3db88e..9b4780457de 100644 --- a/Content.Shared/Weapons/Ranged/Upgrades/GunUpgradeSystem.cs +++ b/Content.Shared/Weapons/Ranged/Upgrades/GunUpgradeSystem.cs @@ -1,5 +1,7 @@ using System.Linq; -using Content.Shared._DV.Weapons.Ranged.Upgrades; // DeltaV +using Content.Shared._DV.Weapons.Ranged.Upgrades; +using Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; // DeltaV +using Content.Shared.Weapons.Ranged.Upgrades.Components; using Content.Shared.Administration.Logs; using Content.Shared.Database; using Content.Shared.Examine; @@ -9,7 +11,6 @@ using Content.Shared.Tag; using Content.Shared.Weapons.Ranged.Events; using Content.Shared.Weapons.Ranged.Systems; -using Content.Shared.Weapons.Ranged.Upgrades.Components; using Content.Shared.Whitelist; using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; @@ -36,8 +37,8 @@ public override void Initialize() SubscribeLocalEvent(RelayEvent); SubscribeLocalEvent(RelayEvent); - SubscribeLocalEvent(OnFireRateRefresh); - SubscribeLocalEvent(OnSpeedRefresh); + SubscribeLocalEvent(OnFireRateRefresh); + SubscribeLocalEvent(OnSpeedRefresh); SubscribeLocalEvent(OnDamageGunShot); } @@ -106,12 +107,12 @@ private void OnAfterInteractUsing(Entity ent, ref After // End DeltaV Additions } - private void OnFireRateRefresh(Entity ent, ref GunRefreshModifiersEvent args) + private void OnFireRateRefresh(Entity ent, ref GunRefreshModifiersEvent args) { args.FireRate *= ent.Comp.Coefficient; } - private void OnSpeedRefresh(Entity ent, ref GunRefreshModifiersEvent args) + private void OnSpeedRefresh(Entity ent, ref GunRefreshModifiersEvent args) { args.ProjectileSpeed *= ent.Comp.Coefficient; } @@ -120,8 +121,12 @@ private void OnDamageGunShot(Entity ent, ref GunShotE { foreach (var (ammo, _) in args.Ammo) { - if (TryComp(ammo, out var proj)) - proj.Damage += ent.Comp.Damage; + if (!TryComp(ammo, out var projectile)) + continue; + var multiplier = 1f; + if (ent.Comp.BonusDamage != null) + projectile.Damage += ent.Comp.BonusDamage * multiplier; + projectile.Damage *= ent.Comp.Modifier; } } diff --git a/Content.Shared/_Lavaland/Weapons/GetLightAttackRangeEvent.cs b/Content.Shared/_Lavaland/Weapons/GetLightAttackRangeEvent.cs new file mode 100644 index 00000000000..ec7c51c99fe --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/GetLightAttackRangeEvent.cs @@ -0,0 +1,8 @@ +namespace Content.Goobstation.Common.Weapons; + +[ByRefEvent] +public record struct GetLightAttackRangeEvent(EntityUid? Target, EntityUid User, float Range, bool Cancel = false); + + +[ByRefEvent] +public record struct LightAttackSpecialInteractionEvent(EntityUid? Target, EntityUid User, float Range, bool Cancel = false); diff --git a/Content.Shared/_Lavaland/Weapons/MeleeWeaponRelayComponent.cs b/Content.Shared/_Lavaland/Weapons/MeleeWeaponRelayComponent.cs new file mode 100644 index 00000000000..632f23c36e6 --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/MeleeWeaponRelayComponent.cs @@ -0,0 +1,33 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aidenkrz +// SPDX-FileCopyrightText: 2025 Aineias1 +// SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 GoobBot +// SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Milon +// SPDX-FileCopyrightText: 2025 Piras314 +// SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> +// SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 gluesniffler +// SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 whateverusername0 +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Robust.Shared.GameStates; + +namespace Content.Shared._Lavaland.Weapons; + +/// +/// Allows this melee weapon to relay the damage and take it from some other sources, for example gun attachments. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class MeleeWeaponRelayComponent : Component; + +[ByRefEvent] +public record struct GetRelayMeleeWeaponEvent(EntityUid? Found = null, bool Handled = false); diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Events/ProjectileShotEvent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Events/ProjectileShotEvent.cs new file mode 100644 index 00000000000..1451cbf8cf4 --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Events/ProjectileShotEvent.cs @@ -0,0 +1,31 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aidenkrz +// SPDX-FileCopyrightText: 2025 Aineias1 +// SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 GoobBot +// SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Milon +// SPDX-FileCopyrightText: 2025 Piras314 +// SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> +// SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 gluesniffler +// SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 whateverusername0 +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace Content.Shared._Lavaland.Weapons.Ranged.Events; + +/// +/// Raised on a gun when a projectile has been fired from it. +/// +public sealed class ProjectileShotEvent : EntityEventArgs +{ + public EntityUid FiredProjectile = default!; +} + diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/MultishotComponent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/MultishotComponent.cs new file mode 100644 index 00000000000..2c47b33b9ef --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/MultishotComponent.cs @@ -0,0 +1,69 @@ +// SPDX-FileCopyrightText: 2024 BombasterDS <115770678+BombasterDS@users.noreply.github.com> +// SPDX-FileCopyrightText: 2024 Piras314 +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 BombasterDS +// SPDX-FileCopyrightText: 2025 GoobBot +// SPDX-FileCopyrightText: 2025 Misandry +// SPDX-FileCopyrightText: 2025 gus +// SPDX-FileCopyrightText: 2025 pheenty +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Robust.Shared.GameStates; + +namespace Content.Goobstation.Common.Weapons.Multishot; + +/// +/// This component allows guns to be shot with another such gun at the same time by holding them in both hands. +/// +[RegisterComponent] +[NetworkedComponent, AutoGenerateComponentState] +public sealed partial class MultishotComponent : Component +{ + /// + /// Shows that this entity is affected with multishot debuffs. + /// + [DataField, AutoNetworkedField] + public bool MultishotAffected; + + /// + /// The chance of bullet fired of the gun while dual-wielding getting its BulletImpassable fixture layer removed. + /// This effectively means that the bullet won't collide with people, but has no effect on hitscans (like lasers). + /// + [DataField] + public float MissChance = 0.2f; + + /// + /// Spread multiplier of the gun while dual-wielding. + /// + [DataField] + public float SpreadMultiplier = 1.5f; + + /// + /// Flat spread increase of the gun while dual-wielding. + /// + [DataField] + public float SpreadAddition = 5f; + + /// + /// This is Common, and we can't import DamageSpecifier here, so we shitcode it instead. + /// Amount of damage applied to hands when firing this gun with another one. Doesn't damage the shooter itself. + /// + [DataField] + public float HandDamageAmount; + + /// + /// Type of the said damage. + /// + [DataField] + public string HandDamageType = "Blunt"; + + /// + /// Stamina damage applied to the entity when firing this gun with another one. + /// + [DataField] + public float StaminaDamage; + + [DataField] + public string ExamineMessage = "multishot-component-examine"; +} diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeBayonetComponent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeBayonetComponent.cs new file mode 100644 index 00000000000..b0721d3cdce --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeBayonetComponent.cs @@ -0,0 +1,30 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aidenkrz +// SPDX-FileCopyrightText: 2025 Aineias1 +// SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 GoobBot +// SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Milon +// SPDX-FileCopyrightText: 2025 Piras314 +// SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> +// SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 gluesniffler +// SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 whateverusername0 +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Robust.Shared.GameStates; + +namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; + +/// +/// Component to indicate a valid bayonet for weapon attachment +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class GunUpgradeBayonetComponent : Component; diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeComponent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeComponent.cs new file mode 100644 index 00000000000..6dcf871df7a --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeComponent.cs @@ -0,0 +1,58 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aidenkrz +// SPDX-FileCopyrightText: 2025 Aineias1 +// SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 GoobBot +// SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Milon +// SPDX-FileCopyrightText: 2025 Piras314 +// SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> +// SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 gluesniffler +// SPDX-FileCopyrightText: 2025 pheenty +// SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 whateverusername0 +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Robust.Shared.GameStates; + + +namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; + +[Access(typeof(SharedGunUpgradeSystem))] +[RegisterComponent, NetworkedComponent] +public sealed partial class GunUpgradeLavalandComponent : Component +{ + /// + /// Literal name of this upgrade that is shown on all examine texts. + /// + [DataField(required: true)] + public LocId Name; + + /// + /// Text to use when examining the upgrade itself. + /// + [DataField] + public LocId? ExamineTextType = "gun-upgrade-examine-type-upgrade"; + + /// + /// Text template to use when examining a weapon where this upgrade is inserted to. + /// + [DataField] + public LocId? InsertedTextType = "gun-upgrade-inserted-examine-type-contains"; + + [DataField] + public int? CapacityCost; + + /// + /// If this string matches with some other weapon upgrade, it will fil to install. + /// + [DataField] + public string? UniqueGroup; +} diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeComponentsComponent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeComponentsComponent.cs new file mode 100644 index 00000000000..eae8aa60bf7 --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeComponentsComponent.cs @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aidenkrz +// SPDX-FileCopyrightText: 2025 Aineias1 +// SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 GoobBot +// SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Milon +// SPDX-FileCopyrightText: 2025 Piras314 +// SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> +// SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 gluesniffler +// SPDX-FileCopyrightText: 2025 pheenty +// SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 whateverusername0 +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; + +/// +/// Adds components when inserted and removes them when ejected from a weapon. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedGunUpgradeSystem))] +public sealed partial class GunUpgradeComponentsComponent : Component +{ + [DataField] + public ComponentRegistry Components = new(); +} diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeFireRateComponent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeFireRateComponent.cs new file mode 100644 index 00000000000..bc70e20219a --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeFireRateComponent.cs @@ -0,0 +1,34 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aidenkrz +// SPDX-FileCopyrightText: 2025 Aineias1 +// SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 GoobBot +// SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Milon +// SPDX-FileCopyrightText: 2025 Piras314 +// SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> +// SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 gluesniffler +// SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 whateverusername0 +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Robust.Shared.GameStates; + +namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; + +/// +/// A for increasing the firerate of a gun. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedGunUpgradeSystem))] +public sealed partial class GunUpgradeFireRateLavalandComponent : Component +{ + [DataField] + public float Coefficient = 1; +} diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeFlashlightComponent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeFlashlightComponent.cs new file mode 100644 index 00000000000..4c6d7bc0b6d --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeFlashlightComponent.cs @@ -0,0 +1,30 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aidenkrz +// SPDX-FileCopyrightText: 2025 Aineias1 +// SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 GoobBot +// SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Milon +// SPDX-FileCopyrightText: 2025 Piras314 +// SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> +// SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 gluesniffler +// SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 whateverusername0 +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Robust.Shared.GameStates; + +namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; + +/// +/// Component to indicate a valid flashlight for weapon attachment +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class GunUpgradeFlashlightComponent : Component; diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradePressureComponent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradePressureComponent.cs new file mode 100644 index 00000000000..f5c387512bb --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradePressureComponent.cs @@ -0,0 +1,39 @@ +// SPDX-FileCopyrightText: 2025 GoobBot +// SPDX-FileCopyrightText: 2025 pheenty +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Content.Shared.Atmos; + +namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; + +/// +/// Changes pressure modifiers on a weapon that supports them. +/// +[RegisterComponent] +public sealed partial class GunUpgradePressureComponent : Component +{ + [DataField] + public float? NewLowerBound; + + [DataField] + public float? NewUpperBound; + + [DataField] + public bool? NewApplyWhenInRange = true; + + [DataField] + public float? NewAppliedModifier = 2f; + + [ViewVariables] + public float SavedLowerBound = Atmospherics.OneAtmosphere * 0.2f; + + [ViewVariables] + public float SavedUpperBound = Atmospherics.OneAtmosphere * 0.5f; + + [ViewVariables] + public bool SavedApplyWhenInRange = true; + + [ViewVariables] + public float SavedAppliedModifier = 2f; +} diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeProjectileComponentsComponent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeProjectileComponentsComponent.cs new file mode 100644 index 00000000000..622fe25e300 --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeProjectileComponentsComponent.cs @@ -0,0 +1,35 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aidenkrz +// SPDX-FileCopyrightText: 2025 Aineias1 +// SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 GoobBot +// SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Milon +// SPDX-FileCopyrightText: 2025 Piras314 +// SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> +// SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 gluesniffler +// SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 whateverusername0 +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; + +/// +/// A for adding new components to projectiles shot by this weapon. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedGunUpgradeSystem))] +public sealed partial class GunUpgradeProjectileComponentsComponent : Component +{ + [DataField] + public ComponentRegistry Components = new(); +} diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeSpeedComponent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeSpeedComponent.cs new file mode 100644 index 00000000000..594190acdd5 --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeSpeedComponent.cs @@ -0,0 +1,34 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aidenkrz +// SPDX-FileCopyrightText: 2025 Aineias1 +// SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 GoobBot +// SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Milon +// SPDX-FileCopyrightText: 2025 Piras314 +// SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> +// SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 gluesniffler +// SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 whateverusername0 +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Robust.Shared.GameStates; + +namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; + +/// +/// A for increasing the speed of a gun's projectile. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedGunUpgradeSystem))] +public sealed partial class GunUpgradeSpeedLavalandComponent : Component +{ + [DataField] + public float Coefficient = 1; +} diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeVampirismComponent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeVampirismComponent.cs new file mode 100644 index 00000000000..3268041f956 --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeVampirismComponent.cs @@ -0,0 +1,42 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aidenkrz +// SPDX-FileCopyrightText: 2025 Aineias1 +// SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 GoobBot +// SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Milon +// SPDX-FileCopyrightText: 2025 Piras314 +// SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> +// SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 gluesniffler +// SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 whateverusername0 +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Content.Shared.Damage; +using Robust.Shared.GameStates; + +namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; + +/// +/// A for increasing the damage of a gun's projectile. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedGunUpgradeSystem))] +public sealed partial class GunUpgradeVampirismComponent : Component +{ + [DataField] + public DamageSpecifier DamageOnHit = new(); +} + +[RegisterComponent, NetworkedComponent, Access(typeof(SharedGunUpgradeSystem))] +public sealed partial class ProjectileVampirismComponent : Component +{ + [DataField] + public DamageSpecifier DamageOnHit = new(); +} \ No newline at end of file diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/UpgradeableWeaponComponent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/UpgradeableWeaponComponent.cs new file mode 100644 index 00000000000..ec2e68d985d --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/UpgradeableWeaponComponent.cs @@ -0,0 +1,35 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aidenkrz +// SPDX-FileCopyrightText: 2025 Aineias1 +// SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 GoobBot +// SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Milon +// SPDX-FileCopyrightText: 2025 Piras314 +// SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> +// SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 gluesniffler +// SPDX-FileCopyrightText: 2025 pheenty +// SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 whateverusername0 +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Robust.Shared.GameStates; + +namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; + +[RegisterComponent, NetworkedComponent, Access(typeof(SharedGunUpgradeSystem))] +public sealed partial class UpgradeableWeaponComponent : Component +{ + /// + /// If specified, upgrades that support capacity will block any new upgrades from being inserted + /// + [DataField] + public int? MaxUpgradeCapacity; +} diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/WeaponUpgradeDamageComponent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/WeaponUpgradeDamageComponent.cs new file mode 100644 index 00000000000..7aa88f1f6ce --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/WeaponUpgradeDamageComponent.cs @@ -0,0 +1,20 @@ +using Content.Shared.Damage; +using Robust.Shared.GameStates; + +namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; + +/// +/// A for increasing the damage of a gun's projectile. +/// +[RegisterComponent, NetworkedComponent, Access(typeof(SharedGunUpgradeSystem))] +public sealed partial class WeaponUpgradeDamageComponent : Component +{ + [DataField] + public DamageSpecifier? BonusDamage; + + /// + /// How much should we multiply the total projectile's damage. + /// + [DataField] + public float Modifier = 1f; +} diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/WeaponUpgradeRangeComponent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/WeaponUpgradeRangeComponent.cs new file mode 100644 index 00000000000..3b05cf8c3e1 --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/WeaponUpgradeRangeComponent.cs @@ -0,0 +1,16 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; + +/// +/// Upgrades the range of a melee weapon. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class WeaponUpgradeRangeComponent : Component +{ + [DataField] + public float? BonusRange; + + [DataField] + public float? RangeMultiplier; +} diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/WeaponUpgradeSpeedComponent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/WeaponUpgradeSpeedComponent.cs new file mode 100644 index 00000000000..2cae10739d3 --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/WeaponUpgradeSpeedComponent.cs @@ -0,0 +1,16 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; + +/// +/// Improves attack rate of melee weapon. +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class WeaponUpgradeSpeedComponent : Component +{ + [DataField] + public float? BonusAttackRate; + + [DataField] + public float? AttackRateMultiplier; +} diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.Upgrades.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.Upgrades.cs new file mode 100644 index 00000000000..517d17faa86 --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.Upgrades.cs @@ -0,0 +1,131 @@ +using Content.Goobstation.Common.Weapons; +using Content.Shared._Goobstation.Weapons.Ranged; +using Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; +using Content.Shared.Mobs.Components; +using Content.Shared.Projectiles; +using Content.Shared.Weapons.Melee.Events; +using Content.Shared.Weapons.Ranged.Events; +using Content.Shared.Weapons.Ranged.Systems; +using Content.Shared.Weapons.Ranged.Upgrades.Components; +using Robust.Shared.Containers; + +namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades; + +public abstract partial class SharedGunUpgradeSystem +{ + private void InitializeUpgrades() + { + SubscribeLocalEvent(OnCompsUpgradeInsert); + SubscribeLocalEvent(OnCompsUpgradeEject); + + SubscribeLocalEvent(OnFireRateRefresh); + SubscribeLocalEvent(OnFireRateRefreshRecharge); + + SubscribeLocalEvent(OnSpeedRefresh); + + SubscribeLocalEvent(OnDamageGunShotComps); + + SubscribeLocalEvent(OnVampirismGunShot); + SubscribeLocalEvent(OnVampirismProjectileHit); + + SubscribeLocalEvent(OnGetMeleeRelay); + + SubscribeLocalEvent(OnGetMeleeDamage); + + SubscribeLocalEvent(OnGetRange); + SubscribeLocalEvent(OnGetAttackRate); + } + + private void OnFireRateRefresh(Entity ent, ref GunRefreshModifiersEvent args) + { + args.FireRate *= ent.Comp.Coefficient; + /* + args.BurstFireRate *= ent.Comp.Coefficient; + args.BurstCooldown /= ent.Comp.Coefficient; + args.BurstFireRate /= ent.Comp.Coefficient; + */ + } + + private void OnFireRateRefreshRecharge(Entity ent, ref RechargeBasicEntityAmmoGetCooldownModifiersEvent args) + { + args.Multiplier /= ent.Comp.Coefficient; + } + + private void OnCompsUpgradeInsert(Entity ent, ref EntGotInsertedIntoContainerMessage args) + { + if (!_timing.ApplyingState && HasComp(args.Container.Owner)) + EntityManager.AddComponents(args.Container.Owner, ent.Comp.Components); + } + + private void OnCompsUpgradeEject(Entity ent, ref EntGotRemovedFromContainerMessage args) + { + if (!_timing.ApplyingState && HasComp(args.Container.Owner)) + EntityManager.RemoveComponents(args.Container.Owner, ent.Comp.Components); + } + + private void OnSpeedRefresh(Entity ent, ref GunRefreshModifiersEvent args) + { + args.ProjectileSpeed *= ent.Comp.Coefficient; + } + + private void OnDamageGunShotComps(Entity ent, ref GunShotEvent args) + { + foreach (var (ammo, _) in args.Ammo) + { + if (HasComp(ammo)) + EntityManager.AddComponents(ammo.Value, ent.Comp.Components); + } + } + + private void OnVampirismGunShot(Entity ent, ref GunShotEvent args) + { + foreach (var (ammo, _) in args.Ammo) + { + if (!HasComp(ammo)) + continue; + + var comp = EnsureComp(ammo.Value); + comp.DamageOnHit = ent.Comp.DamageOnHit; + } + } + + private void OnVampirismProjectileHit(Entity ent, ref ProjectileHitEvent args) + { + if (!HasComp(args.Target)) + return; + if (args.Shooter != null) + _damage.TryChangeDamage(args.Shooter.Value, ent.Comp.DamageOnHit); // may need to rever this shit + } + + private void OnGetMeleeRelay(Entity ent, ref GetRelayMeleeWeaponEvent args) + { + if (args.Handled) + return; + + args.Found = ent.Owner; + args.Handled = true; + } + + private void OnGetMeleeDamage(Entity ent, ref GetMeleeDamageEvent args) + { + if (ent.Comp.BonusDamage != null) + args.Damage += ent.Comp.BonusDamage; + args.Damage *= ent.Comp.Modifier; + } + + private void OnGetRange(Entity ent, ref GetLightAttackRangeEvent args) + { + if (ent.Comp.BonusRange != null) + args.Range += ent.Comp.BonusRange.Value; + if (ent.Comp.RangeMultiplier != null) + args.Range *= ent.Comp.RangeMultiplier.Value; + } + + private void OnGetAttackRate(Entity ent, ref GetMeleeAttackRateEvent args) + { + if (ent.Comp.BonusAttackRate != null) + args.Rate += ent.Comp.BonusAttackRate.Value; + if (ent.Comp.AttackRateMultiplier != null) + args.Multipliers *= ent.Comp.AttackRateMultiplier.Value; + } +} diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.cs new file mode 100644 index 00000000000..62a3b8553d1 --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.cs @@ -0,0 +1,188 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aidenkrz +// SPDX-FileCopyrightText: 2025 Aineias1 +// SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 GoobBot +// SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Milon +// SPDX-FileCopyrightText: 2025 Misandry +// SPDX-FileCopyrightText: 2025 Piras314 +// SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 SX-7 <92227810+SX-7@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> +// SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 gluesniffler +// SPDX-FileCopyrightText: 2025 gus +// SPDX-FileCopyrightText: 2025 pheenty +// SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 whateverusername0 +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +using Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; +using Content.Shared._Lavaland.Weapons.Ranged.Events; +using Content.Shared.Containers.ItemSlots; +using Content.Shared.Damage; +using Content.Shared.Examine; +using Content.Shared.Weapons.Ranged.Events; +using Content.Shared.Weapons.Ranged.Systems; +using System.Linq; +using Content.Goobstation.Common.Weapons; +//using Content.Goobstation.Common.Weapons; +using Content.Shared._Goobstation.Weapons.Ranged; +using Content.Shared.Actions; +using Content.Shared.Damage.Systems; +using Content.Shared.Weapons.Melee.Events; +using Content.Shared.Weapons.Ranged.Components; +using Robust.Shared.Containers; +using Robust.Shared.Timing; + +namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades; + +public abstract partial class SharedGunUpgradeSystem : EntitySystem +{ + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly ActionContainerSystem _actionContainer = default!; + [Dependency] private readonly SharedGunSystem _gun = default!; + [Dependency] private readonly DamageableSystem _damage = default!; + + /// + public override void Initialize() + { + SubscribeLocalEvent(OnUpgradeInserted); + SubscribeLocalEvent(OnItemSlotInsertAttemptEvent); + SubscribeLocalEvent(OnExamine); + + SubscribeLocalEvent(RelayEvent); + SubscribeLocalEvent(RelayEvent); + SubscribeLocalEvent(RelayEvent); + SubscribeLocalEvent(RelayEvent); + SubscribeLocalEvent(RelayEvent); + SubscribeLocalEvent(RelayEvent); + SubscribeLocalEvent(RelayEvent); + SubscribeLocalEvent(RelayEvent); + SubscribeLocalEvent(RelayEvent); + + //SubscribeLocalEvent(RelayGetActionEvent); + + SubscribeLocalEvent(OnUpgradeExamine); + + InitializeUpgrades(); + } + + private void RelayEvent(Entity ent, ref T args) where T : notnull + { + foreach (var upgrade in GetCurrentUpgrades(ent)) + { + RaiseLocalEvent(upgrade, ref args); + } + } + + // Because of how action container work we need that workaround for GetItemActionsEvent + /* + private void RelayGetActionEvent(Entity ent, ref GetItemActionsEvent args) + { + foreach (var upgrade in GetCurrentUpgrades(ent)) + { + var ev = new GetItemActionsEvent(_actionContainer, args.User, upgrade.Owner, isEquipping: args.isEquipping); + RaiseLocalEvent(upgrade.Owner, ev); + + if (ev.Actions.Count == 0) + continue; + + if (!args.IsEquipping) + { + _actions.RemoveProvidedActions(args.User, upgrade.Owner); + _actions.SaveActions(args.User); + continue; + } + + _actions.GrantActions(args.User, ev.Actions, upgrade.Owner); + _actions.LoadActions(args.User); + } + } + */ + private void OnExamine(Entity ent, ref ExaminedEvent args) + { + var usedCapacity = 0; + using (args.PushGroup(nameof(UpgradeableWeaponComponent))) + { + foreach (var upgrade in GetCurrentUpgrades(ent)) + { + if (upgrade.Comp.InsertedTextType != null) + args.PushMarkup(Loc.GetString(upgrade.Comp.InsertedTextType.Value, ("name", Loc.GetString(upgrade.Comp.Name)))); + if (upgrade.Comp.CapacityCost != null) + usedCapacity += upgrade.Comp.CapacityCost.Value; + } + + if (ent.Comp.MaxUpgradeCapacity != null) + args.PushMarkup(Loc.GetString("upgradeable-gun-total-remaining-capacity", ("value", ent.Comp.MaxUpgradeCapacity.Value - usedCapacity))); + } + } + + private void OnUpgradeExamine(Entity ent, ref ExaminedEvent args) + { + if (ent.Comp.ExamineTextType != null) // TODO add a list of all weapon types that this gun upgrade can be inserted to + args.PushMarkup(Loc.GetString(ent.Comp.ExamineTextType.Value, ("name", Loc.GetString(ent.Comp.Name)))); + + if (ent.Comp.CapacityCost != null) + args.PushMarkup(Loc.GetString("gun-upgrade-capacity-cost", ("value", ent.Comp.CapacityCost.Value))); + } + + private void OnUpgradeInserted(Entity ent, ref EntInsertedIntoContainerMessage args) + { + // Update some characteristics here. + if (TryComp(ent.Owner, out GunComponent? gun)) + _gun.RefreshModifiers((ent.Owner, gun)); + } + + private void OnItemSlotInsertAttemptEvent(Entity ent, ref ItemSlotInsertAttemptEvent args) + { + if (!TryComp(args.Item, out var upgradeComp) + || !TryComp(ent, out var itemSlots)) + return; + + var currentUpgrades = GetCurrentUpgrades(ent, itemSlots); + var totalCapacityCost = currentUpgrades.Sum(upgrade => upgrade.Comp.CapacityCost); + if (totalCapacityCost + upgradeComp.CapacityCost > ent.Comp.MaxUpgradeCapacity) + { + args.Cancelled = true; + return; + } + + foreach (var curUpgrade in currentUpgrades) + { + if (upgradeComp.UniqueGroup == null + || curUpgrade.Comp.UniqueGroup == null + || upgradeComp.UniqueGroup != curUpgrade.Comp.UniqueGroup) + continue; + + args.Cancelled = true; + return; + } + } + + public HashSet> GetCurrentUpgrades(Entity ent, ItemSlotsComponent? itemSlots = null) + { + if (!Resolve(ent, ref itemSlots)) + return []; + + var upgrades = new HashSet>(); + + foreach (var itemSlot in itemSlots.Slots.Values) + { + if (itemSlot is { HasItem: true, Item: { } item } + && TryComp(item, out var upgradeComp)) + upgrades.Add((item, upgradeComp)); + } + + return upgrades; + } +} diff --git a/Content.Shared/_Lavaland/Weapons/RechargeBasicEntityAmmoGetCooldownModifiersEvent.cs b/Content.Shared/_Lavaland/Weapons/RechargeBasicEntityAmmoGetCooldownModifiersEvent.cs new file mode 100644 index 00000000000..d93ab9f8b37 --- /dev/null +++ b/Content.Shared/_Lavaland/Weapons/RechargeBasicEntityAmmoGetCooldownModifiersEvent.cs @@ -0,0 +1,16 @@ +// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Aidenkrz +// SPDX-FileCopyrightText: 2025 Ilya246 <57039557+Ilya246@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 Misandry +// SPDX-FileCopyrightText: 2025 SX-7 <92227810+SX-7@users.noreply.github.com> +// SPDX-FileCopyrightText: 2025 gus +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace Content.Shared._Goobstation.Weapons.Ranged; + +// todo: get event names closer to the length of the bible +[ByRefEvent] +public record struct RechargeBasicEntityAmmoGetCooldownModifiersEvent( + float Multiplier +); \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Tools/pka_upgrade.yml b/Resources/Prototypes/Entities/Objects/Tools/pka_upgrade.yml index 4e99802c522..5f23cad6e98 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/pka_upgrade.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/pka_upgrade.yml @@ -35,7 +35,7 @@ #tags: [ GunUpgradeDamage ] # DeltaV - allow multiple examineText: gun-upgrade-examine-text-damage - type: GunUpgradeDamage - damage: + Modifier: types: Blunt: 5 # DeltaV - modkits can still exist but greatly lowering how much it does so we don't have 70 damage monster gun anymore #Structural: 15 # DeltaV - SS13 parity, 10 blunt per shot only diff --git a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml index dc7659c8e69..482330fe8d3 100644 --- a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml +++ b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml @@ -7,3 +7,117 @@ #- id: WeaponProtoKineticShotgun - Euphoria #- id: WeaponProtoKineticRepeater - Euphoria #- id: WeaponProtoKineticPistol - Euphoria + +- type: entity + name: proto-kinetic shotgun + id: WeaponProtoKineticShotgun + parent: [ BaseGunWieldable, WeaponProtoKineticAcceleratorBase, BaseCargoContraband ] + description: Fires a spread of low-damage kinetic bolts that are half as effective for mining. + components: + - type: Sprite + sprite: _Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi + layers: + - state: icon + - state: animation-icon + visible: false + map: [ "empty-icon" ] + - type: Clothing + sprite: _Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi + - type: BasicEntityAmmoProvider + proto: PelletKineticSpread #BulletKinetic # was PelletKineticSpread + - type: GunRequiresWield + - type: Item + sprite: _Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi + shape: + - 0,0,4,0 + - type: ContainerContainer + containers: + bayonet: !type:ContainerSlot + flashlight: !type:ContainerSlot + upgrade_slot_1: !type:ContainerSlot + upgrade_slot_2: !type:ContainerSlot + - type: ItemSlots + slots: + bayonet: + name: weapon-upgrade-slot-name-bayonet + priority: 5 + whitelist: + components: + - GunUpgradeBayonet + flashlight: + name: weapon-upgrade-slot-name-flashlight + priority: 4 + whitelist: + components: + - GunUpgradeFlashlight + upgrade_slot_1: + name: weapon-upgrade-slot-name-first + swap: false # can't use the swap... + priority: 3 + whitelist: + tags: + - PKAUpgrade + upgrade_slot_2: + name: weapon-upgrade-slot-name-second + swap: false + priority: 2 + whitelist: + tags: + - PKAUpgrade + +- type: entity + name: proto-kinetic repeater + id: WeaponProtoKineticRepeater + parent: [ WeaponProtoKineticAcceleratorBase, BaseCargoContraband ] + description: Fires a barrage of medium-damage kinetic bolts at a short range. + components: + - type: Sprite + sprite: _Lavaland/Objects/Weapons/Guns/Basic/kinetic_repeater.rsi + layers: + - state: icon + - type: Clothing + sprite: _Lavaland/Objects/Weapons/Guns/Basic/kinetic_repeater.rsi + - type: Gun + selectedMode: Burst + burstFireRate: 3 + burstCooldown: 1.5 + availableModes: + - Burst + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg + - type: BasicEntityAmmoProvider + proto: RapidBulletKinetic + capacity: 3 + count: 3 + - type: Item + sprite: _Lavaland/Objects/Weapons/Guns/Basic/kinetic_repeater.rsi + shape: + - 0,0,2,1 + +- type: entity + name: proto-kinetic pistol + id: WeaponProtoKineticPistol + parent: [ WeaponProtoKineticAcceleratorBase, BaseCargoContraband ] + description: Fires low-damage kinetic bolts, has a higher mod capacity. + components: + - type: Sprite + sprite: _Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi + layers: + - state: icon + - type: Clothing + sprite: _Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi + - type: BasicEntityAmmoProvider + proto: RapidBulletKinetic + - type: Gun + availableModes: + - FullAuto + - SemiAuto + - type: Multishot # Only a pistol should support that for balancing reasons + missChance: 0 + spreadAddition: 5 + - type: Item + sprite: _Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi + size: Small + shape: + - 0,0,1,0 + - 0,1,0,1 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/animation-icon.png b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/animation-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ca15598979430f02486a699e97aaeea2d7b21009 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQjEnx?oJHr&dIz4at?XAIEG|6 zzn!v?_mF{rt3I!gkZNd?gz^T4+bNu7Cs;fglNwBP7{2Hy!h|CR1$Ub#Fv3~l|7IgZWHcw*!4z;Mp;&F{KQN3WNL6567Dj{}86bXpj)b6EtAEzewK)^IT5 ze!QHN3S)uM*ZEU}C9tWxk} z;6=N;>FSU%5D^N!DR@y(=*>Vx5JWfV#So$Cjo=4%vnVbd(k+D9kF*WewMiG5#C99l z_4s;GPMg)lyeH?Y*~uRQfpgCDKJWkhpZ9s+^E`?W0ym?~X$PD}i2$b^a2h27oOZxz zxSoJrGB+uTB5km@qg?=e_`}cg4@uh8kV>m0SMLIFac&~#I5H_-iU3*MiheGV(J-H! zoi@`f0B^t5i0@D<0Lf?=fYSpJ!*&%JmShw#`s!!mgB#!Sw0GImx38hMqg`BG*~fc( zU*0Siu zt00!%AR${QSOMRmRvxR`T3D+d_7a(0V*JYFmS0VU+19-e=pII?ui9YTE+r(RVNz+8 zhTz65tM}G0IW?u6YD}<3HEUGUJ*@xjLxCHiLI*1prw1aNdH>llj*9MdEz9?<#+h_+;{wWBLTprpAM4vEzYGMFB`I5Fah1e zC^cRW^;Hl$hNYpf^!+;u!1VkgjZfB6*^%aq(K#ab@Oa_%PHnqAIcY0%MUl;l6;SN;rG;Z{B!(ieD!usocFA zfYz1}AaF>Hlm ztonTKdIh+i0Mot*?Zkyr28IZ5YSLzoYw9;aD`6Gcu3rOOPe9Rx0NlG5Fe@ZnuK?E* zP*fpcMJ8~)0!jop?SRv8JpodSpjMwxrB%*f9p7=Mp3MG%%-#XWU%!yf0`Grxl4LZ@ z`PawwduRi+{sFzc1Jd6FGwbtODSRiPx1(Jgeeg{#q?fpy`ihHl6H;@NUIRk&*Ej$7 zw+-y*_R_hvKcw%KR)F8{7sp>|;kC*M0Ale49x799uM_5j)=MC(0O`6wW;4QICt|P@ zVMi@sJ7g--e!pLU+}sLEgZ-l@TC+qfZGCMp6Nweo)bR}M1NuiddIfI%M1k+x;pR=CFNA(l4FT7KkHfiz^ZKyB?)c?Yt)do0)FwTiK2Ss)ke>KfCKD+G3x zmrL7_Ccs;%N*lEcxd^YQsF1c%^vB`tVKCI?5gw0xH>=!sar;9%tPU9N3y6$1UIpMp zXkF^rqE`TH?F~+Z)^)#`f)sE+;l5CS5tImU+5x9gBEV?}oJNTNryXz_{{mk1P|m16 Rg_i&T002ovPDHLkV1hyJSx^7~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000000000000000000000000000000000..6b475a13994cf693add2b2549a8fbfd3b7191588 GIT binary patch literal 1255 zcmVC9tWxk} z;6=N;>FSU%5D^N!DR@y(=*>Vx5JWfV#So$Cjo=4%vnVbd(k+D9kF*WewMiG5#C99l z_4s;GPMg)lyeH?Y*~uRQfpgCDKJWkhpZ9s+^E`?W0ym?~X$PD}i2$b^a2h27oOZxz zxSoJrGB+uTB5km@qg?=e_`}cg4@uh8kV>m0SMLIFac&~#I5H_-iU3*MiheGV(J-H! zoi@`f0B^t5i0@D<0Lf?=fYSpJ!*&%JmShw#`s!!mgB#!Sw0GImx38hMqg`BG*~fc( zU*0Siu zt00!%AR${QSOMRmRvxR`T3D+d_7a(0V*JYFmS0VU+19-e=pII?ui9YTE+r(RVNz+8 zhTz65tM}G0IW?u6YD}<3HEUGUJ*@xjLxCHiLI*1prw1aNdH>llj*9MdEz9?<#+h_+;{wWBLTprpAM4vEzYGMFB`I5Fah1e zC^cRW^;Hl$hNYpf^!+;u!1VkgjZfB6*^%aq(K#ab@Oa_%PHnqAIcY0%MUl;l6;SN;rG;Z{B!(ieD!usocFA zfYz1}AaF>Hlm ztonTKdIh+i0Mot*?Zkyr28IZ5YSLzoYw9;aD`6Gcu3rOOPe9Rx0NlG5Fe@ZnuK?E* zP*fpcMJ8~)0!jop?SRv8JpodSpjMwxrB%*f9p7=Mp3MG%%-#XWU%!yf0`Grxl4LZ@ z`PawwduRi+{sFzc1Jd6FGwbtODSRiPx1(Jgeeg{#q?fpy`ihHl6H;@NUIRk&*Ej$7 zw+-y*_R_hvKcw%KR)F8{7sp>|;kC*M0Ale49x799uM_5j)=MC(0O`6wW;4QICt|P@ zVMi@sJ7g--e!pLU+}sLEgZ-l@TC+qfZGCMp6Nweo)bR}M1NuiddIfI%M1k+x;pR=CFNA(l4FT7KkHfiz^ZKyB?)c?Yt)do0)FwTiK2Ss)ke>KfCKD+G3x zmrL7_Ccs;%N*lEcxd^YQsF1c%^vB`tVKCI?5gw0xH>=!sar;9%tPU9N3y6$1UIpMp zXkF^rqE`TH?F~+Z)^)#`f)sE+;l5CS5tImU+5x9gBEV?}oJNTNryXz_{{mk1P|m16 Rg_i&T002ovPDHLkV1hyJSx^7~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/flight-on.png b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/flight-on.png new file mode 100644 index 0000000000000000000000000000000000000000..f13ebdec629e44b1c48a318a7eb69de2a9bae753 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}b39!fLn2z= zUfRfc*g$~w!g_%>hlE)~+1D9GnVn*~>6|@-g-5GJ-J7Fi*ArY-_ zFYV@SFyL{$$h|0;>B*zF@dk{Scbt$}=seLO;6wJk%%q!LvaW2#K=9ka0T}`Rhk!D5BfqEg2S!Flm~9t8$ah`72lwq>81!Ad z&2DFoR_^C-w(rB)_EBtPpHIG%6fG&BzP_Gcjs)Nr$o0_&n2(Pk2&ha4QKxlCT40ps z(dl$Nv8@%_MD8mu2AQ-1C`lYSEE^-|I2tcUBEokrZe1UO+ZUCz1XWd4G}lSB0_WPQ z>DY~KNBRmh)Kv2_b|>|Hfe?KD0OUnQP^(lZ5^Nw8!lG*i*Lt5~FRPNYvcdwWSR>6f zHuouB6#@wX1RWPo!)dcq|4z?)eD!*v*UEtvKjb+;v{VgQLH?R`KwXk`&IEC6u7yUf z)>o;hk_A}C9nASl-F$V0hQ`Vg8I*#3ZL!gKDH=N+lgR{O9lAQ&@Tl(%`d?acqPaF< zXE-muEcyWEGhH8f=ENag@_kHM0U|;uJ!K+g6vdock)w0LDrTYcM8t(NX2GkagCe-idk0bb$k2}t?Z?VdhL7>ul9~?Ix;ir5PXlc^Xn4Gy~+>-LuqhjLz^twDLDRt=+h&m@fSloaXf#INe7F%q1H)Kt-wyOqa?*OFbGAglxXs3V^LqJavl(MnE0%w0 zq1NS6QkAA;jR>F^_n!>XBf=(;@(4JNV+3-3Vq$_OW_B29|8TBFI#0-5t`A%C*PONs oL~??yBKs==+l7pPjDU=Q-@iR}bOS?LcK`qY07*qoM6N<$f@^_{vj6}9 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/inhand-left.png b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..e57f58242b80bf4f23a685a3a01be50bfb53f691 GIT binary patch literal 1082 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wk0|WCL zPZ!6KiaBp*`DO%1O0?Y%7SY)fyu9?XiQ*)_;@^v>KGRd1q?2<{GO%1#M9ZgrOTdeD zc`DqyH;Z<0Jm%->)R@93p0^~3D`?@83xXj&64`}OLYFh$bW{u{iiy~Zt4=rby=1cU zy8lO;0tJ=tb? zw!#0h-h1tTO152g-D!7TF5Nozi`^6T&+D%j<;~AOH_7z%&vuV(6Q(^&TU+sapVXZ_ zm-|<3`?n|SvZFljmtP-pY&jV!4DIz97ECyHX3o-e&ex3_I=1yxC^0g8=&us+u5EZF zr@dqUD>-MKuZ;f!`{!-q+I0NHBis3W58m&Rx--9~=f15w1H)nSYb#b?Y&zYaw$(Us z#bM9yVv9d~vtnfUt}efL+q!cenNn?11uuO)ZhV`Sp|y|efq~LSi#%B?{_OKI3>Tid zZ%zX0X|DCP_$5WG=&tW*{(Z>Au$bli;@8pJs^wyjAK_W3Bzf%8r!IyGH}&5y6m^1o2<(2M*pVdvDxBa|lUM1UR$6n*Puj_e3zF;Q9c80tqjCYuJOk^wIe&8l`K(|4f zfS}=#hPKDy`#sp=`zuS#9RfvGRn@Y-T+n}Ri#3noBcI*PmmK9o_wHkI4Lmi=xtuxV zXj9v*thHC?^8G3?Rh0b_xa{h^fN0*(jZ;GXzhArYKVNu9!8&Pf{b!5`$9)du1>Q~m zP-S-Og_pPSx&M}tVYbdz&U(|kfBFCGY4zah+A6iUJZrrWE% zM>VvxwI9AM%_==E-}bSfs_M9iry@^g9~%?nMxi(*h8K2ETUJFp_<4gD7`N+w$G_VZ zr)F;;w7(N*WV!qqriN=Cy6ktAjSjeJ-$~48Y-rlqkaY41d!69&t$!L0-&^#Qec!5@ z24EE2R-U)0i1FwoefxsyBb#;YH{4Dlgd^R3@-6VDNPHb6Mw<&;$Uv9_5Yz literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/inhand-right.png b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..8df62ab64ba2f3f1351e926372b52cad6a7e2f6e GIT binary patch literal 1072 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wk0|WCT zPZ!6KiaBp*#d<`iOB}CXUlEvSv?~0Vhntm{y;=9OMVcpFWkq&vEmvw4d)CqPU~Yg! z-j&^%?Njbf+32LBJEc*4uV&uS)r~F_;&M!uu3Kj!F{On!QixYW&P?h-QKs< zAN@So_@rjf^Z) zDT^~S7iLkI>9tq#s_B9|qWVYg_)Iu*P8%radRt1-`i=aaI|)TM_zxU*@6XK4eL8u+ zRJKNB`?PCea&}c`(hpu{@TuLe-MrlD$G7LH%oi*SA58x^(NFK+2g~xXXN6nmrWpR2 z5>hpLcKwmFXRV|^wX5!vOEuidTH~TK@yWUN>xHqAi~ZBdpn119*+^RbN?tWp?0e$^<{UkjA?TgjLvpX1nJiS@$TsA|7v&Ya?Jj3wMl~?RQ;mY?%cIoKMeRlF#Tp_dk{`a;< zb9LQSl}-20|7y1AzLo2K=00V3>@4WbZ6Got7x=oe{R#gQQyi)q(EXbK)O}mI{t6qp zlP*q0ThD)YV~KnF*;7qO=ylB2oZYXkKZ^5bf2(_TXN0XV=hct|poI3dy!^~#uV1c6 z{d~awV}&Kx`iew_pXtx?_x*chl)ZXC=CW-ifqXE=_HH|7@Oo)RfTG26OkE zjml~NDL_EX<_y#Ogq#!>os@lW*78lvoQsGnn+6L05J2|4HBL3~j=b vk`K7X?=J7k`RsmB1FAXDfXnUR2}TCPjcU0eSq=Mv<}-M@`njxgN@xNAF4r;l literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/animation-icon.png b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/animation-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..85ed5fc7c60ad5b2467e4edfc09f93cf24c0cfcd GIT binary patch literal 206 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/inhand-left.png b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..4a5d5c4c485b5f44d81ea95262e12da52d713f2f GIT binary patch literal 1195 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/wielded-inhand-right.png b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_railgun.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..8c6313b623503a6a3754e6781b7ccae45e936e3b GIT binary patch literal 1120 zcmV-m1fTnfP)Px(8c9S!RCt{2nqO#JRUF5^w+_1(moU+>^lp?8Ff5KjGFW3_WN8u6Ifdbb*rxc9qQnubs)v}4DMaH}p#r88CMYaYAByklsfkCKTv8S75R9(@19 z4GevD1=(C4kFgg3aOQXy$+VTrcGzk^Gfu~z@^Uf}r=fv9@tEP@5td<5)6aetAte@buMd*ss0-0J!k!G&UXW4copGKB!~;n7g$u8#@4C?$$cgv3|?8 zO-H*_-|4H@V9sJQ_2Pry=cUNW9&)QL3I$G)C@Dof7$B<0KY2*9?1zQhWo(E>i6QCDM zxN}d3UMyke(REaw004|le6BoMTg9_@fNp0S?ic3K?QCnf9_@|T%7AEZgu0z=cDj`D z`@GcYKZN-kKLY@!^cBoJx^9WjOnFv~G&Qc);MsA~X1}hQ^{^*EZ-zT?X|{;B0uHIR zrMQIeZq7aZ9?|)6xs{RMm`jgctknN7aFbu;m48t%C!!QiPFbu=gK=_Hc@+)jJ%GEOb z-MUq!F%g=k!KklIjznqTgLkBBe%tw^z0KFK}B=!e{9k?{skGY~fe}G6gnTXS`#a&I+72X1R=^>U^ ze}`TyVessD&6!*++=Jfw2gWa7!MS~}3EQRhRoU2uy2(VGCWd2p<=D}t>Nb1`n*9Qm z&Wl3fCq>3Du$6*jrS8OV48gbi6+1o!8C`J(NcaT+K*ld%#~&clHR}CRv;kME&U10{)@(ZNW8O8h#mhlVN^#_P_%{Bj>(A^fz m_6Pjibs2_X7=~f~6Z{DhORPH~VU$Gx0000+nE>|EawE2 WYL)b>iO2)(WbkzLb6Mw<&;$U;{5#A5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/bayonet.png b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/bayonet.png new file mode 100644 index 0000000000000000000000000000000000000000..28f96dcc283cc9e4874ad46afab2cb1aeb8f3a22 GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}mpxq^Ln7SY zPPOK1Q4nZzujb)gt0s4#sYSa$U;oiUn3~l|7IgZWHcw*!4z;Mp;&F{KQN3WNL6567Dj{}86bXpj)b6EtAEzewK)^IT5 ze!QHN3S)uM*ZEU}Px%ok>JNRCt{2nn7q2K@^7nh}26I*Gs@Q>MVsu0~WJ_7!PR!g&-b;l2dLL$t}{0 zP>Ir0FJceUn?;MX;H7vFgo2fVU=eK9NFY*MEwR0BS_{_Gc#wo5B0JeP>yEzfl)&zv zf8YF>+2IYqFbrb|j^jungrwBmM=7Qg%d%uN8U+CCR3_!h^bkoQ_EU%i#mA03I&cR! zuRXxK`tIMh6Fl8BYf=ayDHA|S=fH$kQ=J17QV1c3`!C3Bw-des=q8iNa03481n8Ip zj9CT&;M>$w0Kn|t55MsT44VVCcdNL* zUTuB1yNiYpAR69qW_X5Syx9E-6 z+IJQpTFwt}0yqJj08YTam;fbg+cu&Awrz*nBg2@A?*2a&Dn7Y0q;fHJZ(bMLd}hy| zHR3N|icj-+cJZDOl~wVnJPGzWgP|^hsy|)@R4$%xY@i&=g*F9y&kuM-sXaco^$2rY z%Dw{Q*Yg8j@SK2=VqTUCX#hX_^lH|Eq3NqsNMod!_moo44?=MoBM40K$uLYf_yG?z VF$7LH7U%!~002ovPDHLkV1hDFQHcNm literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000000000000000000000000000000000..9f4e6a63f1ee456b92e8a75c7d2226ca713fcee6 GIT binary patch literal 739 zcmV<90v!E`P)Px%ok>JNRCt{2nn7q2K@^7nh}26I*Gs@Q>MVsu0~WJ_7!PR!g&-b;l2dLL$t}{0 zP>Ir0FJceUn?;MX;H7vFgo2fVU=eK9NFY*MEwR0BS_{_Gc#wo5B0JeP>yEzfl)&zv zf8YF>+2IYqFbrb|j^jungrwBmM=7Qg%d%uN8U+CCR3_!h^bkoQ_EU%i#mA03I&cR! zuRXxK`tIMh6Fl8BYf=ayDHA|S=fH$kQ=J17QV1c3`!C3Bw-des=q8iNa03481n8Ip zj9CT&;M>$w0Kn|t55MsT44VVCcdNL* zUTuB1yNiYpAR69qW_X5Syx9E-6 z+IJQpTFwt}0yqJj08YTam;fbg+cu&Awrz*nBg2@A?*2a&Dn7Y0q;fHJZ(bMLd}hy| zHR3N|icj-+cJZDOl~wVnJPGzWgP|^hsy|)@R4$%xY@i&=g*F9y&kuM-sXaco^$2rY z%Dw{Q*Yg8j@SK2=VqTUCX#hX_^lH|Eq3NqsNMod!_moo44?=MoBM40K$uLYf_yG?z VF$7LH7U%!~002ovPDHLkV1hDFQHcNm literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/flight-on.png b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/flight-on.png new file mode 100644 index 0000000000000000000000000000000000000000..f13ebdec629e44b1c48a318a7eb69de2a9bae753 GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}b39!fLn2z= zUfRfc*g$~w!g_%>hlE)~+1D9GnVn*~>6|@-g-5GJ-J7Fi*ArY-_ zFYV@SFyL{$$h|0;>B*zF@dk{Scbt$}=seLO;6wJk%%q!LvaW2#K=9kaXP)Px$%}GQ-R9J=W(oaYfQ5?YW?+cL)NoNj`68*gdmIfiD;K>e#An^_%L_`!sAYLkv z$b$$T>k@(&w}=QjJqlDj7;~_ey14_k3vKSO>+Y7&jJrb4>2(mNHFqiS(B*yL@teo| z-tYGt-hg2khGG0?!f_lX9zM_jL3xuWQ`4eevXoNWwoN=9ubcBPq?8&!DJ4W-PnW(i z*h$)}u(0IP96QVS*$=;ng)QhSBVnF zj$DqK?(6|Z$eAVjqOYe* zU+g>u!0Xxf3?0A2CF^KZcrjSpeph-y_qo%gGI^#ZZ}WEk6AMc&{ko-VOj#nLMqBEv&GKPx%ph-kQRCt{2n=xn;VHC$-Y{6Kuh*X5+1n>2(n=a?lKp{j5k~NEiQ>qRwg>C`S zC?#7Fp_A#5p#?#@IXEQJp%9liG$52nuxbiLC<%7S^jy4ntx0>0@4LGu?>8RF|K59f z@5^`j{s9mKK@bE%@CZaCO*hGTP18+6MC$b(m7MeArew^6T?9=xiHvza!tfqMBx9}K zwF8W`x^G?J35ZD1+2wzdx6yQyqO;4M7r~PeKtyU!F2MFu7^X(XyS`>>WE{4a!qA>v zfPv}+yX_CQRw!XuR9l_vnp|yljuM7N2U{zHGY)p!pOn0fvj~2S11p+tQX!WnO*dU7 zZ(|ps*IIEVu#+$3(sb#{)xHubUbfq(YRFxRs*m^Ectna!Q1+^%v<9xB4q$Gk;gFTl6GGPh($cV}Xg zU6*|gNKD_Ruitl}{$rO-8?^}CxE=uj0B&t|xM$RAcuDnGbHL|S|}0{{U3YsCrfDQgex z4OZyOD`>Tvo$Fo{-gk~}u>6k4Q-ZL;@{OTQ9udj;I6YL!1N{9DL69G(l{3`I3xaxn Y1I%Y?ZtlFsyZ`_I07*qoM6N<$g3oVFpa1{> literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/inhand-right.png b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..9eae37b784b470902e57108bb3a56b25a5396c0a GIT binary patch literal 754 zcmVPx%tVu*cRCt{2nlWe-Q5eVnX$uA+tptORKE->ztLWg8tssO#LAqvjN~?oQpj$zt z7Rgp!I@t;tS|~_2Cuxg=kPg}SB&DRFb+i*HB?--_*Vt!$5Sl@xXM$1XGo)u=H=&Nu4ANK4 zuAK!^O43(NI8!R zW3+#;@x`T;DH_)kbhx|R70bbz_J_O6G_EJ8v@+Ga9=i#hyd11)@2YqU%LJhrl*^_Y zHx7jnn&G~9JCSINa@lmpnvlz;8)`n*1W#gmehrtdT*i}!x4co+NkpPC0)T<=X-Xzi z9Wev!I-AV^M?|7AnjM>?jmahD4M-+Zv@y9vvtx6Pw1(O($WM}q6x}&@9h=pC3pQ9dN$EmY^BSqYG@jwd(e`GHak_ikeepmG2JC&xyZwr9d^r2UwLVup zK#DkBJRiqa{-tug!_o!-?>|;xmMiViC`DY!9svB(rm{YUVHk#C7=~dOhG81xS6IXK zD=|OlrLe|7>GrUOBm4+!D7geIx-qQb3Z=ptLA`NRBCH`ryq*yV(gZ84;pNy(dw_M| z@N9bz#itkW=;}Q$f8P-&1=5= zSAYHT+0z;DUxV52#?a6ikeNrh3z~-6*qR2?`}PEJ4F2;O||VwH$iV2;k4- kY$rx+J)@_KXBhSQ2@LCRkHOsOcmMzZ07*qoM6N<$f>L^3(f|Me literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/meta.json b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/meta.json new file mode 100644 index 00000000000..363a0fc2728 --- /dev/null +++ b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/meta.json @@ -0,0 +1,59 @@ +{ + "version": 2, + "license": "CC-BY-SA-3.0", + "copyright": "icon and animation-icon taken from https://github.com/Bubberstation/Bubberstation/pull/1332/commits/712c86db77c96657cd2b8cfaf6203d76f85f9649, rest made by ratyyy(github), wielded-inhand-left/wielded-inhand-right sprited by orange6775 (discord)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "bayonet" + }, + { + "name": "flight" + }, + { + "name": "flight-on" + }, + { + "name": "animation-icon", + "delays": [ + [ + 0.2, + 0.2 + ] + ] + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "equipped-BELT", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + }, + { + "name": "upgrade-space" + } + ] +} diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/upgrade-space.png b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/upgrade-space.png new file mode 100644 index 0000000000000000000000000000000000000000..414954046458f780b38f436c49521fa161b44ce7 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}_MR?|ArY;~ z2@J4h5i544$rjF6*2UngCm9D4YNQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/wielded-inhand-left.png b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..ac2a4987dbe98b51e6744c0c4af5e939df56c692 GIT binary patch literal 840 zcmV-O1GoH%P)Px&0!c(cRCt{2+D}LnQ5*;G??#XvD&Ij?m!)tNc2%%&_Oj7oSPDe2%OXL6EO;&`fvwFtk@ zWp-!Yo8RyEmVKA^0|+665JCtcgb+diFvd7zjGuJ8APA=8>uS6_;P;*AeF49Z*VTAW z9NUUjE$59l1VPXTn@vn45@3v_2Lb?oT?jy4nsmsr3;+ms4fE9gDw-Q>0f5iUFFJC) zGvN2}=EhnKjn6?6gFHOg;n3az0P@mg&bjIND~h6z({f~tW!%?fEdXN-$<7J<7<-Ru zyhAiJlJ&Xr=LGKE5#hOZNuTGbu0r3lx0snfN>Y*}0KkWaS9la##ae8~Dt7?T$Mrkw z^}_p|^#A}Fla}+1MIKai;$o-)SDrT=J3eax6h#5rMF7CI%ZaOxo3OsWg~OsU{OZ01 zPf;1v3%giY-UU#O>Dd*$eA0rpzEOB9+*tu4Y8+}ZWtn(7HJL(0jq8O+)VQtr>Gl=} zu(vpX?Htdu7GP>>O8*5DiG+S%!6pKgA|DCgKx_CDN=u3{J-Y%mnZkqi7XX0IU%zDq zm_Jwn0K~QuSl`$*O?G`_6Qw1^f99!~@5qN%k5B{67gLoT>n$yya}HSSC;0wIJDLI@#*5JCtcgb+f=nPhb$W7ZpBr!SyTv9k_G zjRB5J#H=>}0K$VE4m*7Te;Ygf5LcFETRjP;3!wE1l#jI{8XD2B4?lJv+Z)i!j*hd# zUBkTJS#PT^Am7-b-q#t$*^Pb9?4hD4*lrhb82zqaFF$R-!g3UAu^kMJ&%sk&g|@y? zl$I1DqQ>=e{e1cY@`-J98nH73DnPx&21!IgRCt{2+D}LnQ5*;G?}n&d%y*D%SpuiPttAO(FB=iV5)^`USR^PA$%6;i zOF${s=y^pK({*{qB028HeHTBZki9r6t``)79W&qn$C zT*i6(d-MCfx6WSP4 zxVhiwE%>|&n}_?13;4z{6uOA65HPVa>i_^1DScin z76Sm&e^fE! zJ};MC&eHW43;LH9UufLc;t3&y5JCtcgb+dqA%qY@jx?)&0Xw|{`#Di6M{dg_XJfxW zO|=K1fgXqPz%sW0t6l-S$Ja_+S0+%XPhl^)kJ%|i^b3drj2h3M!{F#7mJ=J8o{OU<+=89> zcdQ3x{i>>}?L}MVj%rCnwWQvsaM-yaxt#p=jjLR8Ik_SS_`^$~ymv}+Il1I=n%>oq zuR6K^tjxvrpmR5S++5_%op%tqO-1DP3zX}a+$wijkLnBUayd8QZ{;S05JCv~@BIee Wt(@@GNCeja0000 +# SPDX-FileCopyrightText: 2025 Aidenkrz +# SPDX-FileCopyrightText: 2025 Aineias1 +# SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 GoobBot +# SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Milon +# SPDX-FileCopyrightText: 2025 Piras314 +# SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> +# SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 gluesniffler +# SPDX-FileCopyrightText: 2025 thebiggestbruh +# SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com> +# SPDX-FileCopyrightText: 2025 whateverusername0 +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +- type: entity + id: RapidBulletKinetic # Used for PK repeater and pistol + name: rapid kinetic bolt + parent: BulletKinetic + categories: [ HideSpawnMenu ] + components: + - type: Projectile + damage: + types: + Blunt: 8 + - type: TimedDespawn + lifetime: 0.22 # roughly 5.5 tiles + +- type: entity + id: WeakBulletKinetic # Used for PK shotgun + categories: [ HideSpawnMenu ] + parent: RapidBulletKinetic + components: + - type: Projectile + damage: + types: + Blunt: 5 + +- type: entity + id: PelletKinetic + categories: [ HideSpawnMenu ] + parent: WeakBulletKinetic + components: + - type: GatheringProjectile + probability: 0.5 + +- type: entity + id: PelletKineticSpread + categories: [ HideSpawnMenu ] + parent: PelletKinetic + components: + - type: ProjectileSpread + proto: PelletKinetic + count: 4 + spread: 20 + +- type: entity + id: BulletCharge + name: charge bolt + parent: BaseBullet + categories: [ HideSpawnMenu ] + description: Marks a target for additional damage. + components: + - type: Reflective + reflective: + - NonEnergy + - type: Sprite + noRot: false + sprite: Objects/Weapons/Guns/Projectiles/magic.rsi + layers: + - state: chronobolt + shader: unshaded + - type: GatheringProjectile + - type: DamageMarkerOnCollide + whitelist: + components: + - MobState + damage: + types: + Blunt: 15 + Slash: 5 + effect: { sprite: /Textures/Objects/Weapons/effects.rsi, state: shield2 } + sound: /Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg + - type: Projectile + impactEffect: BulletImpactEffectKinetic + damage: + types: + Blunt: 0 + # Short lifespan + - type: TimedDespawn + lifetime: 0.4 From 81206d60aabd44ec38e1aef4ad38cf2c63cc2a8e Mon Sep 17 00:00:00 2001 From: Dunrab Date: Thu, 25 Jun 2026 20:46:44 -0400 Subject: [PATCH 02/14] new pkas will fire projectiles --- .../Entities}/Objects/Weapons/Guns/Projectiles/projectiles.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Resources/{Textures/_Lavaland => Prototypes/_Lavaland/Entities}/Objects/Weapons/Guns/Projectiles/projectiles.yml (100%) diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml similarity index 100% rename from Resources/Textures/_Lavaland/Objects/Weapons/Guns/Projectiles/projectiles.yml rename to Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml From 1b39c8414b9646ec2acd82cfbe9a60478633b6cc Mon Sep 17 00:00:00 2001 From: Dunrab Date: Thu, 25 Jun 2026 22:26:16 -0400 Subject: [PATCH 03/14] fix pistol --- .../Objects/Weapons/Guns/Basic/pka.yml | 63 +++++++++---------- .../Weapons/Guns/Projectiles/projectiles.yml | 36 ----------- 2 files changed, 30 insertions(+), 69 deletions(-) diff --git a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml index 482330fe8d3..cf4eee37d43 100644 --- a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml +++ b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml @@ -30,40 +30,16 @@ sprite: _Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi shape: - 0,0,4,0 + - type: UpgradeableGun + maxUpgradeCount: 10 # DeltaV - use cost for limiting modkits instead + whitelist: + tags: + - PKAUpgrade + - type: UpgradeableGunCost # DeltaV + maxCost: 100 - type: ContainerContainer containers: - bayonet: !type:ContainerSlot - flashlight: !type:ContainerSlot - upgrade_slot_1: !type:ContainerSlot - upgrade_slot_2: !type:ContainerSlot - - type: ItemSlots - slots: - bayonet: - name: weapon-upgrade-slot-name-bayonet - priority: 5 - whitelist: - components: - - GunUpgradeBayonet - flashlight: - name: weapon-upgrade-slot-name-flashlight - priority: 4 - whitelist: - components: - - GunUpgradeFlashlight - upgrade_slot_1: - name: weapon-upgrade-slot-name-first - swap: false # can't use the swap... - priority: 3 - whitelist: - tags: - - PKAUpgrade - upgrade_slot_2: - name: weapon-upgrade-slot-name-second - swap: false - priority: 2 - whitelist: - tags: - - PKAUpgrade + upgrades: !type:Container - type: entity name: proto-kinetic repeater @@ -93,6 +69,16 @@ sprite: _Lavaland/Objects/Weapons/Guns/Basic/kinetic_repeater.rsi shape: - 0,0,2,1 + - type: UpgradeableGun + maxUpgradeCount: 10 # DeltaV - use cost for limiting modkits instead + whitelist: + tags: + - PKAUpgrade + - type: UpgradeableGunCost # DeltaV + maxCost: 100 + - type: ContainerContainer + containers: + upgrades: !type:Container - type: entity name: proto-kinetic pistol @@ -112,7 +98,8 @@ availableModes: - FullAuto - SemiAuto - - type: Multishot # Only a pistol should support that for balancing reasons + #selectedMode: Burst # Only a pistol should support that for balancing reasons + - type: Multishot # Only a pistol should support that for balancing reasons missChance: 0 spreadAddition: 5 - type: Item @@ -121,3 +108,13 @@ shape: - 0,0,1,0 - 0,1,0,1 + - type: UpgradeableGun + maxUpgradeCount: 10 # DeltaV - use cost for limiting modkits instead + whitelist: + tags: + - PKAUpgrade + - type: UpgradeableGunCost # DeltaV + maxCost: 100 + - type: ContainerContainer + containers: + upgrades: !type:Container diff --git a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 026b07c2240..c5a4f38a648 100644 --- a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -61,39 +61,3 @@ proto: PelletKinetic count: 4 spread: 20 - -- type: entity - id: BulletCharge - name: charge bolt - parent: BaseBullet - categories: [ HideSpawnMenu ] - description: Marks a target for additional damage. - components: - - type: Reflective - reflective: - - NonEnergy - - type: Sprite - noRot: false - sprite: Objects/Weapons/Guns/Projectiles/magic.rsi - layers: - - state: chronobolt - shader: unshaded - - type: GatheringProjectile - - type: DamageMarkerOnCollide - whitelist: - components: - - MobState - damage: - types: - Blunt: 15 - Slash: 5 - effect: { sprite: /Textures/Objects/Weapons/effects.rsi, state: shield2 } - sound: /Audio/Weapons/Guns/Gunshots/kinetic_accel.ogg - - type: Projectile - impactEffect: BulletImpactEffectKinetic - damage: - types: - Blunt: 0 - # Short lifespan - - type: TimedDespawn - lifetime: 0.4 From 8034750edc4ccf2451e8135f712564f3f1d0e419 Mon Sep 17 00:00:00 2001 From: Dunrab Date: Thu, 25 Jun 2026 22:58:42 -0400 Subject: [PATCH 04/14] make upgrades work again --- .../Entities/Objects/Tools/pka_upgrade.yml | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/Resources/Prototypes/Entities/Objects/Tools/pka_upgrade.yml b/Resources/Prototypes/Entities/Objects/Tools/pka_upgrade.yml index 5f23cad6e98..d8b8be20b7a 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/pka_upgrade.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/pka_upgrade.yml @@ -31,14 +31,20 @@ color: "#a71010" - state: overlay-3 color: "#eb4c13" + # Floofstation - lavaland pka changes start - type: GunUpgrade #tags: [ GunUpgradeDamage ] # DeltaV - allow multiple examineText: gun-upgrade-examine-text-damage - type: GunUpgradeDamage - Modifier: - types: - Blunt: 5 # DeltaV - modkits can still exist but greatly lowering how much it does so we don't have 70 damage monster gun anymore - #Structural: 15 # DeltaV - SS13 parity, 10 blunt per shot only + modifier: 1.25 + #Modifier: + # types: + # Blunt: 5 # DeltaV - modkits can still exist but greatly lowering how much it does so we don't have 70 damage monster gun anymore + # #Structural: 15 # DeltaV - SS13 parity, 10 blunt per shot only + #damage: + # types: + # Blunt: 10 + # Floofstation - lavaland pka changes end - type: entity id: PKAUpgradeRange @@ -54,13 +60,17 @@ color: "#1012a7" - state: overlay-3 color: "#1373eb" + # Floofstation - lavaland pka changes start - type: GunUpgrade #tags: [ GunUpgradeRange ] # DeltaV - allow multiple examineText: gun-upgrade-examine-text-range - - type: GunUpgradeRange # DeltaV - actually change range not speed - coefficient: 1.15 # DeltaV - lowered further to account for increased base range - - type: GunUpgradeCost # DeltaV - cost: 25 + #- type: GunUpgradeRange # DeltaV - actually change range not speed + # coefficient: 1.15 # DeltaV - lowered further to account for increased base range + #- type: GunUpgradeCost # DeltaV + # cost: 25 + - type: GunUpgradeSpeed + coefficient: 1.5 + # Floofstation - lavaland pka changes end - type: entity id: PKAUpgradeFireRate @@ -81,4 +91,3 @@ examineText: gun-upgrade-examine-text-reload - type: GunUpgradeFireRate coefficient: 1.25 # DeltaV - was 1.5, SS13 parity (maths used is different but same result: 0.64s recharge time with 3 upgrades) - From 17c21fb0752b277aa6ff219c6485452a5a9d1280 Mon Sep 17 00:00:00 2001 From: Dunrab Date: Thu, 25 Jun 2026 23:19:20 -0400 Subject: [PATCH 05/14] crusher weapons too --- .../Entities/Objects/Weapons/crushers.yml | 69 +++++++++++++- .../Entities/Objects/Weapons/secondary.yml | 84 +++++++++++++++++ .../inhand-left.png | Bin 0 -> 537 bytes .../inhand-right.png | Bin 0 -> 980 bytes .../crusher_halberd-inhands.rsi/meta.json | 27 ++++++ .../wielded-inhand-left.png | Bin 0 -> 538 bytes .../wielded-inhand-right.png | Bin 0 -> 535 bytes .../crusher_halberd.rsi/equipped-BACKPACK.png | Bin 0 -> 1611 bytes .../equipped-SUITSTORAGE.png | Bin 0 -> 1611 bytes .../crusher_halberd.rsi/flashlight.png | Bin 0 -> 137 bytes .../Crushers/crusher_halberd.rsi/icon-lit.png | Bin 0 -> 145 bytes .../crusher_halberd.rsi/icon-uncharged.png | Bin 0 -> 175 bytes .../Crushers/crusher_halberd.rsi/icon.png | Bin 0 -> 1959 bytes .../Crushers/crusher_halberd.rsi/meta.json | 89 ++++++++++++++++++ .../upgrade-handle-lightweight.png | Bin 0 -> 170 bytes .../upgrade-handle-range.png | Bin 0 -> 169 bytes .../upgrade-handle-weights.png | Bin 0 -> 137 bytes .../crusher_halberd.rsi/upgrade-ice-frost.png | Bin 0 -> 370 bytes .../upgrade-lava-aspect.png | Bin 0 -> 376 bytes .../crusher_halberd.rsi/upgrade-marker.png | Bin 0 -> 357 bytes .../upgrade-rude-buster.png | Bin 0 -> 394 bytes .../crusher_halberd.rsi/upgrade-sharpness.png | Bin 0 -> 318 bytes .../inhand-left.png | Bin 0 -> 1593 bytes .../inhand-right.png | Bin 0 -> 1452 bytes .../crusher_hammer-inhands.rsi/meta.json | 27 ++++++ .../wielded-inhand-left.png | Bin 0 -> 512 bytes .../wielded-inhand-right.png | Bin 0 -> 514 bytes .../crusher_hammer.rsi/equipped-BACKPACK.png | Bin 0 -> 1408 bytes .../equipped-SUITSTORAGE.png | Bin 0 -> 1408 bytes .../crusher_hammer.rsi/flashlight.png | Bin 0 -> 163 bytes .../Crushers/crusher_hammer.rsi/icon-lit.png | Bin 0 -> 145 bytes .../crusher_hammer.rsi/icon-uncharged.png | Bin 0 -> 175 bytes .../Crushers/crusher_hammer.rsi/icon.png | Bin 0 -> 1751 bytes .../Crushers/crusher_hammer.rsi/meta.json | 88 +++++++++++++++++ .../upgrade-handle-lightweight.png | Bin 0 -> 166 bytes .../upgrade-handle-range.png | Bin 0 -> 168 bytes .../upgrade-handle-weights.png | Bin 0 -> 138 bytes .../crusher_hammer.rsi/upgrade-ice-frost.png | Bin 0 -> 253 bytes .../upgrade-lava-aspect.png | Bin 0 -> 263 bytes .../crusher_hammer.rsi/upgrade-marker.png | Bin 0 -> 308 bytes .../upgrade-rude-buster.png | Bin 0 -> 348 bytes .../crusher_hammer.rsi/upgrade-sharpness.png | Bin 0 -> 294 bytes .../equipped-HAND.png | Bin 0 -> 1364 bytes .../kinetic_claws-inhands.rsi/inhand-left.png | Bin 0 -> 438 bytes .../inhand-right.png | Bin 0 -> 561 bytes .../kinetic_claws-inhands.rsi/meta.json | 31 ++++++ .../wielded-inhand-left.png | Bin 0 -> 1364 bytes .../wielded-inhand-right.png | Bin 0 -> 1364 bytes .../Secondary/kinetic_claws.rsi/icon-lit.png | Bin 0 -> 145 bytes .../kinetic_claws.rsi/icon-uncharged.png | Bin 0 -> 163 bytes .../Secondary/kinetic_claws.rsi/icon.png | Bin 0 -> 1985 bytes .../Secondary/kinetic_claws.rsi/meta.json | 26 +++++ .../inhand-left.png | Bin 0 -> 1500 bytes .../inhand-right.png | Bin 0 -> 1716 bytes .../kinetic_machete-inhands.rsi/meta.json | 19 ++++ 55 files changed, 458 insertions(+), 2 deletions(-) create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd-inhands.rsi/inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd-inhands.rsi/inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd-inhands.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd-inhands.rsi/wielded-inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd-inhands.rsi/wielded-inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/equipped-BACKPACK.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/equipped-SUITSTORAGE.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/flashlight.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/icon-lit.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/icon-uncharged.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/icon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-handle-lightweight.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-handle-range.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-handle-weights.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-ice-frost.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-lava-aspect.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-marker.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-rude-buster.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-sharpness.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/wielded-inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/wielded-inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/equipped-BACKPACK.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/equipped-SUITSTORAGE.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/flashlight.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/icon-lit.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/icon-uncharged.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/icon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/upgrade-handle-lightweight.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/upgrade-handle-range.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/upgrade-handle-weights.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/upgrade-ice-frost.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/upgrade-lava-aspect.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/upgrade-marker.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/upgrade-rude-buster.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/upgrade-sharpness.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws-inhands.rsi/equipped-HAND.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws-inhands.rsi/inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws-inhands.rsi/inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws-inhands.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws-inhands.rsi/wielded-inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws-inhands.rsi/wielded-inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws.rsi/icon-lit.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws.rsi/icon-uncharged.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws.rsi/icon.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws.rsi/meta.json create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_machete-inhands.rsi/inhand-left.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_machete-inhands.rsi/inhand-right.png create mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_machete-inhands.rsi/meta.json diff --git a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/crushers.yml b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/crushers.yml index 52eca4eac80..4ef31ec5959 100644 --- a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/crushers.yml +++ b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/crushers.yml @@ -5,5 +5,70 @@ children: - id: WeaponCrusher - id: WeaponCrusherGlaive - #- id: WeaponCrusherHammer -Euphoria - #- id: WeaponCrusherHalberd -Euphoria + - id: WeaponCrusherHammer -Euphoria + - id: WeaponCrusherHalberd -Euphoria + +- type: entity + parent: [WeaponCrusher, BaseSecurityCargoContraband] + id: WeaponCrusherHammer + name: crusher hammer + description: A beefy, two-handed weapon that inflicts knockback and heavier damage than a crusher. + components: + - type: Sprite + sprite: _Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi + state: icon + - type: MeleeWeapon # Slower attack speed but higher damage makes it more risky and rewarding to use + attackRate: 0.6 + damage: + types: + Blunt: 12 + - type: IncreaseDamageOnWield + damage: + types: + Blunt: 13 + Structural: 15 # Breaks weak rocks effectively + - type: Item + size: Ginormous + sprite: _Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi + - type: Tool + speedModifier: 1.5 + useSound: + path: /Audio/Items/trayhit2.ogg + - type: Clothing + sprite: _Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi + quickEquip: false + slots: + - Back + - suitStorage + +- type: entity + parent: [WeaponCrusher, BaseSecurityCargoContraband] + id: WeaponCrusherHalberd + name: crusher halberd + description: A universal weapon that combines the power of a crusher and the range of a spear. + components: + - type: Sprite + sprite: _Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi + state: icon + - type: Item + size: Ginormous + sprite: _Lavaland/Objects/Weapons/Crushers/crusher_halberd-inhands.rsi + # Basically a crusher but better + - type: MeleeWeapon + range: 2.2 + damage: + types: + Slash: 6 + Blunt: 5 + - type: IncreaseDamageOnWield + damage: + types: + Piercing: 3 + Slash: 3 + Structural: 15 # Breaks weak rocks effectively + - type: Clothing + sprite: _Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi + quickEquip: false + slots: + - Back + - suitStorage diff --git a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/secondary.yml b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/secondary.yml index a4c6f259dea..8e9cd23e7ba 100644 --- a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/secondary.yml +++ b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/secondary.yml @@ -6,3 +6,87 @@ - id: WeaponCrusherDagger #- id: LavalandWeaponKineticClaws -Euphoria #- id: LavalandWeaponKineticMachete -Euphoria + +- type: entity + parent: [BaseItem, ClothingHandsBase, BaseSecurityCargoContraband] + id: LavalandWeaponKineticClaws + name: kinetic claws + description: Unleash your inner edgelord with this one-handed claw small enough to fit in your backpack. + components: + - type: Appearance + - type: Sprite + sprite: _Lavaland/Objects/Weapons/Secondary/kinetic_claws.rsi + state: icon + - type: Clothing + sprite: _Lavaland/Objects/Weapons/Secondary/kinetic_claws-inhands.rsi + - type: Item + size: Normal + sprite: _Lavaland/Objects/Weapons/Secondary/kinetic_claws-inhands.rsi + - type: MeleeWeapon + attackRate: 2.5 # "We have northstars at home" + wideAnimationRotation: -135 + damage: + types: + Slash: 7 + soundHit: + collection: AlienClaw + angle: 30 + animation: WeaponArcClaw + range: 1.1 # Awful range + mustBeEquippedToUse: true + heavyStaminaCost: 4 # No skill? + - type: Sharp + - type: Prying + - type: UseDelay + delay: 1 + - type: Fiber + fiberMaterial: fibers-kinetic + fiberColor: fibers-purple + - type: Execution + doAfterDuration: 4.0 + - type: Tool + qualities: + - Slicing + useSound: + path: /Audio/Items/Culinary/chop.ogg + - type: Scalpel # Shitmed + speed: 0.3 # awful + +- type: entity + parent: [BaseItem, BaseSecurityCargoContraband] + id: LavalandWeaponKineticMachete + name: kinetic machete + description: A smaller, one-handed variant of the crusher which allows you to attack from afar and block incoming attacks. + components: + - type: Sprite + sprite: _Lavaland/Objects/Weapons/Secondary/kinetic_machete.rsi + state: icon + - type: UseDelay + delay: 1 + - type: Appearance + - type: Sharp + - type: Execution + doAfterDuration: 4.0 + - type: DisarmMalus + - type: Prying + - type: MeleeWeapon + attackRate: 1.0 + damage: + types: + Slash: 15 + soundHit: + collection: MetalThud + angle: 0 + animation: WeaponArcThrust + range: 2 # Like a crusher, makes it possible to hit enemies without them hitting you + # TODO make it wearable on a belt/back slot + - type: Item + size: Normal + sprite: _Lavaland/Objects/Weapons/Secondary/kinetic_machete-inhands.rsi + - type: Tool + qualities: + - Slicing + useSound: + path: /Audio/Items/Culinary/chop.ogg + - type: Scalpel # Shitmed + speed: 0.55 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd-inhands.rsi/inhand-left.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd-inhands.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..3b15d9780dfaf8c79997135ba09ef677f9fa62f6 GIT binary patch literal 537 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&F%}28J29*~C-V}>(F*VhaaC1S zwYRq~EoBG|4KuPRWv?i0}rAjMY_lvMlwx~_`(Qt^Umi)Q-OIWKD(UId4b!g`<{y5WEv1m7+_1xw z-I1Z?;OqJP=VTgs^Cp{ojQ^|51a~MJ!%pVGS=JT8Aq^sOKP;~(G;&-x#2lJz=&|7I zltau{Su8ykFwL3&^s7Q6UjeId$wrQVL(HZQyh0t%y}0=QhJKAY@lgFSUWTWVw8Yd+?2F!m^5TOg@ok;)zA h*wk+Uid#6y=*xdsU~GT+@P$htF;7=Nmvv4FO#ob|&=CLt literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd-inhands.rsi/inhand-right.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd-inhands.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..5f9e55d21b7322c94c7f0c465145522982b9e1d4 GIT binary patch literal 980 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSjKx9jP7LeL$-HD>VD9sDaSW-L z^Y-rkENO3%;~(eiiT`)(mH8mm;=_|xkh(`Ll*`b6LJ)sqfkN*$#chSjdQUX3?23(9 zvc*?xV{dQbP7i@_x58PTh3kvVlky*BsJ@+FW1q0$pxj)`;w5uu9&%>_+K2)|B9z}V z9DaCVX}z6=#R*%rO;h!*|J^r7B{KW&muxc+onr+SB`LAfpb?45tr@yB4mGzfy+PuDZcSN8_p-{vEjV>wa@{N9F z-%7VsuQ~ly*ETOto9FPOrc<|O$gDfLxBlxX*>$3Otk=#giSyq2@SN4G0G4jk+2>v5 zcTO)7EZL#<{n6IYNh)2BXB>CryB78RrSp>h_$v{|TrbS8WIw_6=(D%7XV&)Hlb&ca z)!6Mf36jx&`Yc~@c|&BOjQJ#$i7G$$tv{rvleOT|{6#>2zWy3f^I+$_y@u}|t%=@m ze)edj`S-Pi?Yxb@& z+wyl`%+*_Gmp<0>t-ii#c5Kc5%SCm|zutW`-L~=NkF@6j-;^S}9-pXWaa`~$WeqTX z^4_h#GN&iCXQj__!|b)j$94dPXaCkNoi7Iz7G-g~xbSa4CRf6%nv&JQ`RiX86j^@# zR${kH*QzI7)0NRB@XC!H-Js}Md^b6EUH;3$;^;&PG1*)CoQDJYXW!lxbN|xCcc94H zS}1;5?S1+s-Ak)?HJ-Y4;@q}6_qLlVp+7mMmQK;F78Ln)F{P*QZCUhuJC|QSTzjoz z7NwkhSm68aXm<3eV-s3gjbm$8KGMB3U(xpZrnl@|H(C6Cb9jG^uX#Ct+fL6(BC>8f zzf|o#b@$8Due;BR|CqP+TI`(CO7STtPJLsz7WKSx-o1ZczpsiDN;TRmqiMy55xNb# ZesHCKQff+HC7%Y8^mO%eS?83{1OO`g&msT- literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd-inhands.rsi/meta.json b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd-inhands.rsi/meta.json new file mode 100644 index 00000000000..c634ba82a37 --- /dev/null +++ b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd-inhands.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "by alzore_ (discord) based on the proto-kinetic crusher", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd-inhands.rsi/wielded-inhand-left.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd-inhands.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..74cc6228d466a2840781f194b786f84e8288ee9a GIT binary patch literal 538 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&F%}28J29*~C-V}>F$?esakaO% zS5s394GmRQRW*v#z~YTh|Hf}i=-bA- z=t1qr^G3&K{$%Rl4*2#c0B9N#c+l2x?kMA2rBr8!-$fhuD}fZ8wo&kWR#{d#%Y@6Ys|ngOrQbBIVXt?in*$(zAi?@;}{HJvl6EH-WP zuj1XkFlRT5MV9ibd#TO;p64E&t1ta+|KsB?o*+3Bow>s};r2n_tTLGkxmLTp&h;_< zvAkX7SXCyoVCtpUj3;k?)VxvFt6*u(m*H~l`*yD-H`xr9t!cAn`T4hgb2#&wb*KLE zHSV|nFm-Qi&&|)iLdzD&H@;UY7l|p$J-(aW_-1FfLABVV&F_Cp#qAS}-6tCV-_S}E d$qhSXJ}`gPH{|>$6#F$?esaaB`O zv$wZbRaFfQ4KF_PJNj)4d{u#3 zFFiQi4Wxuhg8YL2qXULV`}Ye0?JD$iaSW-L^Y+%kNzDp84G)DDUCO%q^>2Kc>$2VL zVH{=FJ;wEZx#|bkH&rN1Us@OgG!O|KsARY-^?!B*`;2$lXWEWfs@-A@J5Vy+l&8s3 zbr!4JfvVc&uTC}noR}ec<9b8SVhiVa-JQ<@-!e#s`ZCWJKFv_+BJTX#(Rqj1vE6L~ z!n@5GU&ig$-Sho!F0X9W)KB)pot@j4-@ohk(!0T8{;^w!a%Yt|KLRz2W+` z*E_4t-<$L&zV2P|H|);8)GsTMoQBS{;9l@dVA;A`Y%{X@7QR~L+fb2K9y4M6HpU~C zmV76|ZZBJ~PIbYmTRS*Hb@y_+uj+2NVt0XG@k;!Ui!~EgpJNOXK6uT};LFwE2m7Y2 z{k6%-W5N=jyj0sk_DCz Y*eg;EG{cTB14TW9r>mdKI;Vst01kZN;s5{u literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/equipped-BACKPACK.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..2e8d6f03cf11bb9feab46b9c8ddd443af926eb16 GIT binary patch literal 1611 zcmV-R2DJH!P)Px*1xZ9fRCt{2n{Q|nXB@{rXSKGpt4?UCX_yRlq#7bAk&X4m;wm=^8)7#^@!d9w z5S;B84&1A5FXjse&Oa1d+zSPZLu|T^f_lywh3e3vqeeVV3llwRWKi8oi?H5aoOfPg z(q7saPr1*VkmsIz^8Nmv|94LW9H1x)fNp*d1OkGS`$~zTD7x*d5C{Yu-RHkJsZo|?L{ZdLRTV^0)FnxxtE($#i^!R1-eek= zWtpnU2Q;tWf+R__wY9zQ=C3GiZ2q= zWVZQ<%34yXl&M_@tU%cPE;O4GJZ<`r8PUeZMgWq@WXTQAMq68(kgfZ(ufOBOi4$m= z#>3lxBCX$IX4h3!6=JcN6$GmbBoYa$-=|V3n%8fkYVrZWV35U!4|CyA7x8#p&!ORk z5C{YWb4oV5tSrm?mmX*F;ll)jL2KMfrBc>-kVqslJXo`UnPF(47fmzLn%8e(XrPx1 z>2bD)BK%+*T}$XSFZQ)a#a}7_+d~l!jtodxLw>_GsSS|I`mp>pVsLv~|*vS6Q9W<@m$S=2#14aPO`Hj4R>-lS5Q50ga7(G2b&rI35cCfB# z-k-j17&?GqsA=6s(&;o8|1lO{W&q+1qW;?{HD}Gwg`B&=LJ&ofa5xOW=gniBJUgcU z_-o-)<@F7d{Jp%ETi+W2xb?^JjO(W>Ao^NV-?VKx00&PQ)7^Z`gNs_gv8@#VY(6w) zB)pM%J^E%;*EEfAIBW)*xdb{J*95>ae8>2>ba4>B-_KW@KVtc^3cacZ^qPt#OmmZK*G~yw;X_8m6uR@T4r^+TC$huUc6g!A~e!08CU>C7Dd(^ZA6P z8jaSLdQP4lE4ZAKXUAx5si&z%!{_q}6P2~V(?EN8czAetczAet%nwH!l$|@#A3a(_ zP0bbd>~YaEgd7yA)zMy{zh9)R>}~q{-SaXeABAdlv>lctiT3t(fEWHEWHt)b>Zm!} zACyWxoRpog=j5vl4*K+x-*qZF*-WR<;$19owKqMP^i|TKM-*f zU)0Wip5v7cz=z+wH*21P0+8>lotv<0Z2j^=aSBxwMR(KrpxKDW<9gOh-ua;@N^uK( z&Je~B=J^447WkYgq{18xg1yz%*1@BffvFWDz17u@@;VBDd0Omc z!l`D*)1c4io3ofwQ;61AdLiTlM*%ppH^QzB)6ZK=(b%nG zi7F*a#0DO!_lj4bD2lrMk5g_Z8jb4a{~kO%JUl!+JUl$|@IU6n?oLl_0zv=)002ov JPDHLkV1kLb4&?v< literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000000000000000000000000000000000..2e8d6f03cf11bb9feab46b9c8ddd443af926eb16 GIT binary patch literal 1611 zcmV-R2DJH!P)Px*1xZ9fRCt{2n{Q|nXB@{rXSKGpt4?UCX_yRlq#7bAk&X4m;wm=^8)7#^@!d9w z5S;B84&1A5FXjse&Oa1d+zSPZLu|T^f_lywh3e3vqeeVV3llwRWKi8oi?H5aoOfPg z(q7saPr1*VkmsIz^8Nmv|94LW9H1x)fNp*d1OkGS`$~zTD7x*d5C{Yu-RHkJsZo|?L{ZdLRTV^0)FnxxtE($#i^!R1-eek= zWtpnU2Q;tWf+R__wY9zQ=C3GiZ2q= zWVZQ<%34yXl&M_@tU%cPE;O4GJZ<`r8PUeZMgWq@WXTQAMq68(kgfZ(ufOBOi4$m= z#>3lxBCX$IX4h3!6=JcN6$GmbBoYa$-=|V3n%8fkYVrZWV35U!4|CyA7x8#p&!ORk z5C{YWb4oV5tSrm?mmX*F;ll)jL2KMfrBc>-kVqslJXo`UnPF(47fmzLn%8e(XrPx1 z>2bD)BK%+*T}$XSFZQ)a#a}7_+d~l!jtodxLw>_GsSS|I`mp>pVsLv~|*vS6Q9W<@m$S=2#14aPO`Hj4R>-lS5Q50ga7(G2b&rI35cCfB# z-k-j17&?GqsA=6s(&;o8|1lO{W&q+1qW;?{HD}Gwg`B&=LJ&ofa5xOW=gniBJUgcU z_-o-)<@F7d{Jp%ETi+W2xb?^JjO(W>Ao^NV-?VKx00&PQ)7^Z`gNs_gv8@#VY(6w) zB)pM%J^E%;*EEfAIBW)*xdb{J*95>ae8>2>ba4>B-_KW@KVtc^3cacZ^qPt#OmmZK*G~yw;X_8m6uR@T4r^+TC$huUc6g!A~e!08CU>C7Dd(^ZA6P z8jaSLdQP4lE4ZAKXUAx5si&z%!{_q}6P2~V(?EN8czAetczAet%nwH!l$|@#A3a(_ zP0bbd>~YaEgd7yA)zMy{zh9)R>}~q{-SaXeABAdlv>lctiT3t(fEWHEWHt)b>Zm!} zACyWxoRpog=j5vl4*K+x-*qZF*-WR<;$19owKqMP^i|TKM-*f zU)0Wip5v7cz=z+wH*21P0+8>lotv<0Z2j^=aSBxwMR(KrpxKDW<9gOh-ua;@N^uK( z&Je~B=J^447WkYgq{18xg1yz%*1@BffvFWDz17u@@;VBDd0Omc z!l`D*)1c4io3ofwQ;61AdLiTlM*%ppH^QzB)6ZK=(b%nG zi7F*a#0DO!_lj4bD2lrMk5g_Z8jb4a{~kO%JUl!+JUl$|@IU6n?oLl_0zv=)002ov JPDHLkV1kLb4&?v< literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/flashlight.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/flashlight.png new file mode 100644 index 0000000000000000000000000000000000000000..a80d04c7b04ed52d652c0d22e94781e875ec2862 GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}&YmugArY-_ z&u`>pP~dU77(6F1M#Z|*``D>C#nu<~UnlyjJaFB5vV6O$Ro*sv{&Y3_pZ~fl`a0Hs hc;O}Z9cVzqejhh$-jgdG9vA?544$rjF6*2UngEssE*1a) literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/icon-lit.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/icon-lit.png new file mode 100644 index 0000000000000000000000000000000000000000..54e91bfa7038682d05df17156e76d9fd487e0c35 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}-kvUwArY-_ z&u!#wFc5GKZ10?qCtsG}za%GRvx5|u-r4%K-T9mu3DgTe~DWM4fPZ~Q} literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/icon.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..77181f316c15332ee25025e4c5f3d5ae2708a2a0 GIT binary patch literal 1959 zcmV;Y2Uz%tP)Px+VM#y<&%2i`8Ld9*Qs#Q~`rgqw5)p!zuNfS(|Kd9No+rhYY%f>p_ExuHnd?dO z`PIc=Cl*iH{m(CJ<7XXf2n${G{4r`Ujcu)R3kCU5P_R7f-9BAMun6RL%%!yGOK5SO zqe_1k34q#~AU|&j;=QvCUDr*r_4NioBoeX5DT+ck9Hy?WPO$o(d(BNj!E*NLI-9@Y z|1rh0Q>#6K165!{d3|_=rCK zGuX$r_1jo5bDY}0ULfAGkWwcc>->}%@ga`=_V@hrRDyHO+2G-Dm_#DM?w<41$KuGc zOmZL@9JxL6>L&?Uyr$f!tgNJ_riPDm7rok=>;u5@$)DB(*MapUFZBXv0a%seq_ieU z^-?Fh9`n$A=QQi^5RFDB<=Fz?H#$nHzmLNY<{`^6g@uJEih_To-|%|9$g)gLO%3zr z&9m19fTOBqqM>Q?Z9jH9Y5PN-2*mBC5s5^yz}qiJ_{T#o0)YSkp->1>6tTb+Md8Tt zBSOP38tCrsCaOen%WfP1!H07IDA(XeYsUfjUMy=3^4jm3vO9rPf1eHB+uKWP{Si}8 z#+Yz841*x8kw~S|r923Z;KMlt|9uBA!GF?|3&69BpgOHO(`U-0yL--a_`$qM;1$7I z+qXz)nua7v24JTk8jTt`7Pu7!D*}HQnW&CTAI$s%c)eab=K!tsM|fiIK|-Mr;c%FW zU@gY5il%7<0s&-MX3wrY20(dvxdD)qsp#1s&*%HUDx5aVQD<})gj_JpRI~z5>^*2l=g@G1#X2BtK}~O+rdht* z?Z)r-8vt!>Z32LE00Y1$si!3qvN4?lPh_8ZVPDlsrmWyKB2c<9rlFnT4CrM%}Bf+X2# zG-O$x_K=cg*;a3_fx^NmWI zAj`544u=g37?>6uK&V-?kPu0G#nuKZDBik0PxM{HVCQruNudX9~XA) z*paDHmI7&&La2iPLg2&g*|u1xb=nRTW8+ z3{e#Aec|((z?94Ct^yBnJwa-r3%_gB*uEv7H$Kcq*L8~LYc%&_m!c#|09ft+$7Zl# za>p0OVAInFaE+fgwr|O2fwYvtvt4xd-$1=K0S+)SGQ!Bn$g~rGd1W5n$2QW}*Y}wO za;A2ixt*ZBz1;?X>u3k3x)K1w*lLwokKCWKO-~=VuW?xften5`VZIH1b9SCEFwa!J zcnQpUgnJSxEiJu20_|@#GxWiEo>{hxsv^mFW#=7yJ|DWS)7*;0f3NaJgJGHa1bP$Z3atX{sAd)0jJ!5Y%x~xqj6I9s0ZJXWo!3BGG7+rluzR ze*b+(!O_^*#Gf1AGhW#_Ip=dh_~9>q%`(>7l^*d(SnHv-Tm$y2zzj18el26OY zZgfPNdtojJ-9t%U{Msh;Yv!?hT^}NP@xndTSm0GvRd!$7uC}`kHwmsOq))wy=jl P`xrc3{an^LB{Ts5G%PpB literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-handle-range.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-handle-range.png new file mode 100644 index 0000000000000000000000000000000000000000..ec4c6d97ea51ab30015ce22734f1eec5e4abaa38 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}$(}BbArY-_ zuk7YMV8Fo=Fe!C{L~rFD_TW1LagC~T%(_y-|1H^ZJ?IAuo1l`C(xUyVwr-Pse`m2$ z!&Ajwj3Hl7`DiZ9dFe8J_k3Q5eC=a~cbfE#CwEx_s(Jiq_| literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-handle-weights.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-handle-weights.png new file mode 100644 index 0000000000000000000000000000000000000000..93adba1c4ea1db3ccce5aa83122e4fad5c53617f GIT binary patch literal 137 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}&YmugArY-_ zFKpyxaO7Zie7(EC!Rvo)AY1ss$qTvjmN#zIVFW6ZxRG~z@68{}D$-W1+G6{tykSXS i$5-)Vg4Z7%Fy?zPf&cu@qRomxbqt=aelF{r5}E*>$uG(P literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-ice-frost.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-ice-frost.png new file mode 100644 index 0000000000000000000000000000000000000000..41e9c231acc9f03fe1bfbf4016cbba512944cb58 GIT binary patch literal 370 zcmV-&0ge8NP)Px$EJ;K`R9J=Wma%FAK@f(2#l}J~<&Y4(TALKXK5(Q8_yU1@g?o@CkSDkoI1o~$ zu}KwD*l4kpawuCSkbq5KEIcGyTyD+@mtwzm`R5;IcmBHuln7JHvnAkOK7fD_-F+f? z`~t?qMv<=Yunf^;&d<{p+^P*M9I$r4+vw!Fr3h2YWGst?*JHWn7&4YIdX*QdqB$l^ zEhEmvg(^);tB{&`G?~lqy*J>dLommkSZ|G-ndf&H)9&sQE0@Nik%%6mK>kLQ201t$`7uNdH{ QtN;K207*qoM6N<$f_5sQQUCw| literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-lava-aspect.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-lava-aspect.png new file mode 100644 index 0000000000000000000000000000000000000000..6026e27e6352389b12c41f37a7c8226e0daf2ae1 GIT binary patch literal 376 zcmV-;0f+vHP)Px$GD$>1R9J=Wm9b8QKoEw10ZR&sBPRvdSXlZ7np|nTSWsHi@fbXT-O>62XF_?2 zzJaBQ6&5SGi;Yx-<;FrO$a$v&Yp~d_|L33mcV`w*giHb|V~51dqAK)BrV)vmML+2d zdK;$^)sMF@G8^k$;Q9R+XZKIN>;BIC>(pG`!}$qYvqcj(SJy?eg-imfLZ4lzOIpeb zDKnR8#J=}^u^a3T#4C)+@vTvzEpZE!2|A{!PbHTp?^YmJU zH_F(d(b(fRK#PTv226K~&7|nRin~(A4jGxQ%>s?ev+q=4y80q+O^U|rm_Je4;flYr{gvh~VGV-JV(m%&C}qtR$I|C literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-marker.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-marker.png new file mode 100644 index 0000000000000000000000000000000000000000..066144d799dd6917789d77720e8b70a83d7ae4ac GIT binary patch literal 357 zcmV-r0h<1aP)Px$A4x<(RA_&-K`~ZG|#V;aZcP8B&olF>*++=Yu zagoVIa}ETg3Px$L`g(JRA_F7}^l+AgvYutl0?Wl`HQ)@60!rK~WUNA_*c7>Cb{(TweYs5_kSA$R#9p zdU==r$BliNJS4tZ98I1ChlvP@B@1$q^~uRhCWy%TBvr@q$@UBQEEtXp4*NbSTieI~ zNy?VPzRz%6;Ip`$c!Dnze1Y-^cA1Dvf7u9{)_S(&Z@e>L1R!%f&m=dkcj4c#^foLj z`CE^`x#|N(9Qigr6B5fbDB7x8`Dc-Nf2)pMR{oO@0KQ1C&P))Q1_iIXXY1Xs>YqjM zvNETy@d%hIZ<5dPJa$bjmi(*oa~gG}O69x6roZ+#pi1St#J0cI#(V1gnc4|()%pM8 ozxv^Dfos2_D2k#eilW>JzW{>JGPj?~YXATM07*qoM6N<$g2$4whyVZp literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-sharpness.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_halberd.rsi/upgrade-sharpness.png new file mode 100644 index 0000000000000000000000000000000000000000..0ceb76f94cf72755ac487e71da2e778279ee9c4b GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^2|(Py!3HG1+{xJmq!^2X+?^QKos)S9qmDM+)OOk!HjB_n&AnJi+Li5|HNA+Y+@>y=1UbcHn zi}jNmanbKDO@2S=v2C}wz`0NNneAUpVuq@JAR{I1IM>QsPPdA9yk6{T4-^cNPAC=quo=XK(%^FTa!5W}l?FTOIS|&+&>u w#nw3qe?IizKOiD~zopr0A!7Q>i_@% literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/inhand-left.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..17fdb31c988834573d9617438959f3d2ce1db59f GIT binary patch literal 1593 zcmZ{ldpy%?9LIlS8A?|4YBd^lQmt}HSsT^JrE!{>HJ3_MRM?`7*`~x|F*@1Al!cJH zYA2#xdO7B3<-Cg2-i@9xgylm)S=ESfVDlI#ZZ8KM&ZQM*1OOQ;WOY2-gF* zKOiq(6_}Ztgdcx;aC;rnQS6sPJ*)D8Mzx4%=^?p5|B%SUy&;EAOm;y|CJ#XHIe zw6K?QWaVYV7I?VM2!k{@(vQnf{1NBmyEVyqULk)Yd*}a$WoAyXwbbG!{315*#UN3?Qh6k#2wfjoQ zoq-ys2eWrmsTWT-oUX*)NqZ6uysd-a<#n_YbH8e;ZyoJ6TctO8Gn{jwC!!KOR$Yj( zGngXwLLPhe&$TZ!yPMDS-K8OYOiTLSIK#`rBnCk4`3l5LA6VM=DmPC3v~K_Lpa=79 zJ%Z^nzBe#1*LaDMta7ZCM;3K|EY5<0x6U;z1N?)6+)dq>EY><8YW7n=e-j&%VLOOc znBct}rnOa>&LYv5bxXYMheQmFutPlRQ->(;20%&M(9*2AL@^t$q+Nu43b z*FmJlhqBFj$n9-?ZR>#GuJS-1(=7wq^z`)2IkK`>;p4H7Ixg&S;b|X1f^8B0t?6Se znVRWYTI4?amV^vyr*k!1{4!2>_*tdxvK1+ooFTvY12y_D3;cjqrW-sZ#O&~niJd3% za4x)u>KWGJkjay6xW&bX?T=r2OvAPc)?i&fhQ!(;f_ox5#x|Xa-OeSQamp&aekKm{ z;u@{Wx@@F2_gU>PB@|@kQs37kx?QaUbv6IyYJ{4fMXqouOr%z3KRstn>x_RsI$CP? z`qZcu#{NjZY^e+bmaKQXGUr(e18| z-M}3mPy@v+^5QL4VL5j(+5Oa6+1V5@uhTQB{_HnxjbnurbSUCzEb*i{ek~Uc#+!f3 zJqpbR64`OYcegdf!dIxGi|=imnD=v{g)!T{+6Q^AG5$ukGxqwPsa6}(?QSu6qCBMs z9u8&7yTo3Xy`$o%JW^hWLMlv#Lmk<5^ZO(7IjC1x_jNn6yQ<2?x}PQ{-p|jdm|w?z zIP{2!rNH~K#V*A+{|e@tcn&JLMUp1W%!cbUPfj}KaAy6^@p6(SVQ7s4TXk~fGwh*A zIz0?w6pB_&+q;T#m4sm*@QsJt`UwjQZ|S{-W{y^^kcowP=+H&g@Lx^d_aqVlV|PcI zK~y5ldv;3JB#1JDsnu%Ve5mx3X?PyJ{su$;Urz0n1^2(~)Lo87f(XvAdapH!Pd+Al zu7X}VerC>ZccffPu;AjG_D*nyGzzZ6#ua?dhRp#E7r=gN^#9!&X~QLzwn(cLs@O*l zS%=ENU?-}P+Trt8OfEa=t+pwmpaTLnUAor-m4+%_{5UIT-bo9rE)CXxTSoRA$8{t> zv9QJrDUGXleeG!+D<_u=KkhbG8N14&jdQ^{5S=?}h2IEcOz@Nc<3%hM*8{DLqdV6c#o){V zo56)$1UOU~T6=qwNgq^nYSyuqHxNf7BpJ32~B$xg!N|m$_yX3U>he7{yA9xSra3~ T*^xHzF8~N`MAsUZ;H19+p@jNC literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/inhand-right.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..9d1fb0e632d446c18437059481e4586dbdc79604 GIT binary patch literal 1452 zcmZ{kdpOez7{`CEL$#EmBG<`%#nWL=?zObZE$5)z*`e0vekqq3TgY;2O=?19Ip@rs zk-2OUJCa;8OLMo9%SeX~%31y0`99Bk`Q!cLectEueKTB~F6@&#CIb1%O07wNR;kLise6-AGVU&@FK&#bIPGqRl4Es~<9|{T& zrAksOq5cB3@S%`dlk?zn;1NU+DOW$MAl%N;o}o;T>vThtU#bVlt7bB5#{Mcb-;k&*fhs{es!vPLa}BdNXbowvqqBD*5)$b^rMhEhPE&sHZoFjAlT6F_qfLgT~!+ zI&5V&IFU~ru|%kFN*VWg@64Z2&eElHX^`w$Lxf^SQ$W;MhNi56_Mqp*%X&!B5G69- z59P4&7W@sHT&PQ4XQ2)lUJG6gh^k<`Ci%x2Lg}Z3*2hq*9|pC`(E9Ddt3qcxiO-XG z-CKENY_;3k;z#+<~!Zi1(UUqi2;N|*_JCea5yvead<0<~V zK}~vjRP3r+WAV%c(a6D$h+P$X%w5z#lAAXgqLkR-Fp6(A$lvp>sjhOF5h0H2Tx@P( z@nUQ13@{ZPbQn!7(x3B6{_kewQp~)uXkZ6m-QAHbmfz>N=XbIEIQnn(YN=rir_C;ys8JL~Q zTAAqL@g%Kxzer^7?u^I48nE_yTn+ibq0>SG(e}^4MDGDlRM=Ib8LoZC&YI$avD_|; zM&W*I<~ZA}r-vbhM&N5!V@>P$3h_xH?cSYD*N( z*Cm)x8xb5E(i>^fl{-#J0&6(y{EPxdbF*H%5I-_>960eL#weHTleWo%odhtZ0p$jC#PFfMUDHKvas?J4NcC7Tse7B+;no4pM zjE*W2)Y$?-Ff`#KFZjXeO$#WX#KE`VPJ%Zg!Ua~7&4J^+<3|s=+y8(%LgkLnr-`Jb zM%%`$$ccgK|3FLl=U^KwIZj?;*vd|iLyHIa}By} Zfod$8aEt4*EYbS~kmsG?RcHMP{{h_ltp5N2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/meta.json b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/meta.json new file mode 100644 index 00000000000..b90f854785c --- /dev/null +++ b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/meta.json @@ -0,0 +1,27 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from fluffy frontier at commit https://github.com/Fluffy-Frontier/FluffySTG/pull/3293/commits/498811256ce8f64609c8c4195cec08801aed6147", + "size": { + "x": 64, + "y": 64 + }, + "states": [ + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "wielded-inhand-left", + "directions": 4 + }, + { + "name": "wielded-inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/wielded-inhand-left.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/wielded-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..8836f9f2b4aef5a277b17b4986f2d72ba97c4bac GIT binary patch literal 512 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&F%}28J29*~C-V}>F$?esakaO% zS5s394GmRQRW*Nq-F)4hKExM7}?5e|4)zIu=cX7 z;KEC>{PxGaCiyR@GBEo8SpaAp5-13C=t<0&DUi&sFjYRjc$unl0y2G~Nn=(VTG-KG&T{d4V-KLaV=5jk+?TVV;W_;{~ z(X>ump1Wb6EOQ^mZ8J8Fke=45q_2IU*yvJT_$4{UOIMB`iNCk5SHm~%vK-?h6IbJ3 zmRshFIXujt(SNt%K-{g>`}!D>T!+E5*ioWa_}IoUecvo|_i%>gw>V}kE@xEIIxp8` z{%ZZjeC9OK*eZ^q{|CaqS4J#;?V5G{P_5u}(I4;Z_%&~x&3^Bwx@!~D`uo3kmoK!e zk{4KRd^hCmMFy?&jlr=jXD^1=i6hzg!Td4%$-PFmHY#g5fP_6={an^LB{Ts5A(6yq literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/wielded-inhand-right.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer-inhands.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..061fa8888c1ba8a80c61076a59e8c1ac13501445 GIT binary patch literal 514 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&F%}28J29*~C-V}>F$?esaaB`O zv$wZbRaFfQ4KF_PJNj)4d{u#3 zFFiQi4Wxuhg8YL2qXULV`}Ye0?TYbqaSW-L^Y+%kzGed+*TAGRZ6>om{kOLkxb<=o zuT8l_=+f7*s@9fXI=eb{zdU@A5ojU;G~_cr337TpZBjq0kEPR$?c(40V-6amg$8`G zSaI5|D&ftfDbsfa#+xv0xT4);dHNjVj&6qU%?xGziJbn=gc3aemzR9Cq0* zJpRb8dPC@5)`)bDS6>=jml@?jK;n}`3y8p?@tzlDOVq#`I_-g%6eI$z?Z27?&=VcVT_dM5Hkg%t#pUXO@geCww CveC-` literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/equipped-BACKPACK.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/equipped-BACKPACK.png new file mode 100644 index 0000000000000000000000000000000000000000..ec98c966ddad54c65ec3506adbcec72b74017d09 GIT binary patch literal 1408 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/icon.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a40c3abed24aa735a081d8f73f5df12b0a11df5c GIT binary patch literal 1751 zcmV;|1}OQ7P)Px*kx4{BR9J=Gmv2m4=M~0(mvyA5VFi*HY#5y~t}r%ENS8lsA3$kEmW_;*XqGxD zRZEs88VX@;)j^_dz?N#Qy0jrlS=m}Ki4UxDTeK)aS)Hgft-v-h;DG;hH?0(GUxQ6j z(k>&(wB3EU+>0Ilw2Ag<=hL`~DZeRaI30IGs*RCKFbx6+n?BNmva0ojGA|{gwKqumKI$2B!E$)gyeSN)RHk%2BLUeR= z2zA*RN|~^NQRNmNtuD~lX(Tiv%aOQi1+=Kk&QQwNT5x?D;Np#0J$qS}?}|j)y@1=& zQOblBoE-DA&i)f2S$dPnq!W>4SqDFT`ZT@0y-GnrY06&rq`<>gGyjr8%GX7+0Pw}_ ze=8bza%gH)RaMd0*a$!%5TK#qS3)E*4lJX<*;n^3NnqF?V(d1;us_7GKZGPnf+R_T zmT_`aRaI#n0f5C~p{AxnsjRG2mL;(Lna*WNXkoY8m7*M!q8t=ZtKMq0BFl0Lcpwk} zpuN2vr_;$BPZtS`66k8K)t_Ti@h=4*Iq%?L>v6U{UXOBBLL;FaM>rhT*K6Q?EfvDn zW;crxn25?L&&#PWa^AtV$Ll$9;sk!bpM$N(QLajq*l!7+d~#Lr`~8GMA;RG>PNx&6 z)5*v?O~Te@H%rz)OSfBBp{3isB)I1HX0utZ`cNp8vgWbkZ|fwq%*{VMrh_j^;7%2m ziujuZ*CE6vAr_keAQFiHaJ0{}Wai5{VN16=r4ViDC>tNhVDHK-PL6qX z3kDY0?8g@d$Z<=&?Rbe&>q?$_awprrU%mk2OUH3bx0|kfQ%dHpPt~3tyN!S(k$eH! z5Pg6VZcuG0;qzb+wx|Su{(Kt%FCLxWyR5YAtIdK}Ug=$s`PgmM#*@LNpoHZI2Z&F> zr9hAuMn44L@{kKDC?N$Udb)ckD=nj}v<&zPv!JrFQn@zx0S9c~(I;OrxF-Ga_Ew_u zETf~Nyr1|Rb;b%V1%l)m)-V}Qkhq>8dnXKarS3m}TbVoO?ay?kfEx@3;_*1w20sAM z&m88@{o?-pPjod96Zo^oD4;L`Wdk3a*~h$Mq+ zz|THgD`Vmv>1fk(evL1uxv zCKj8(mJ^X5(T9D5C$XyN?e1^yHXV(aba#J)2ajfDXC^7B;%w419e%Se$KK?+KURX>}9 zm^UQ=Q?5aslKh^+eD%uJ_TERVvy`w-^ZvO=Tvy%CCR(@@2=er{T?}}JFquqDU!Q+> zP0LLGnvh)WcDtRwzNBX6a5!jcYMLjIr+ULcJd25_j4{`Mi@(ezvsVu|Xg{{@3KUm5J{()IuV002ovPDHLkV1i{-Vfg?6 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/meta.json b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/meta.json new file mode 100644 index 00000000000..12fe7280f69 --- /dev/null +++ b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/meta.json @@ -0,0 +1,88 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from fluffy frontier at commit https://github.com/Fluffy-Frontier/FluffySTG/pull/3293/commits/498811256ce8f64609c8c4195cec08801aed6147", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-lit" + }, + { + "name": "icon-uncharged", + "delays": [ + [ + 0.3, + 0.3 + ] + ] + }, + { + "name": "flashlight" + }, + { + "name": "equipped-BACKPACK", + "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + }, + { + "name": "upgrade-marker", + "delays": [ + [ + 0.2, + 0.2 + ] + ] + }, + { + "name": "upgrade-rude-buster", + "delays": [ + [ + 0.2, + 0.2 + ] + ] + }, + { + "name": "upgrade-lava-aspect" + }, + { + "name": "upgrade-ice-frost" + }, + { + "name": "upgrade-sharpness", + "delays": [ + [ + 6, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "upgrade-handle-weights" + }, + { + "name": "upgrade-handle-range" + }, + { + "name": "upgrade-handle-lightweight" + } + ] +} diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/upgrade-handle-lightweight.png b/Resources/Textures/_Lavaland/Objects/Weapons/Crushers/crusher_hammer.rsi/upgrade-handle-lightweight.png new file mode 100644 index 0000000000000000000000000000000000000000..222019ae884c63a89610adda4f7bcb667feed1ec GIT binary patch literal 166 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 NfqqEe4xhNo{{Z8FWlR77 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws-inhands.rsi/inhand-left.png b/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws-inhands.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..1cb891ff68f18938e880436df5f96c5cf5d0f5e7 GIT binary patch literal 438 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSjKx9jP7LeL$-D%z3p`yMLn`LH zy=&<8#X*AYf&alr@trzl)e{(h&rx9C^hrU^Q9mJ3{f*`}t{lbggIhO9td7uVdbI!K z3>$yb*n8iVnJ?E00u4n04mmr-7hW=?+m6Vj`$*ptq`&7O9^X2cw_g9-7{mZaBPhLn7f_SVe2^wjLK*~ia)vNtK66*9m1HM{B5M&GsP9eqn9RKIJ!<2~Tx z`}N!RWw*Fd+=a^d5mos6&1|cuvv-#k?&Mp#GB_@*d&Mo0yIHc=w|{Rg)6Xk?vni@a zHZh>~{_^(Kf&1d`@NaniE!kZnDd0&opgxD<(WhT6fvGv&G@6 z$;`Vs&%QUOemB{C|B1abQ=%FZ&}7QOrG zPTq^Z#&G7f>zp~Ud+k2&tK8f1c=7(p`>Lukf97tR64cfH%FtK+@s|MGWm7Jln|@}S zZuYIKTV>Y2OqpY4A9lJa?EPH*EZ;tcHTSIFDs)F}e$8NF8@Z{Tb4kMgs9U${*2kW* z{LP=cl?BE9V2+*AYriYLImOq$oqN19`%LWoUL|gIhF0N*L!1r|Sr!y91z0d@%wZ7m zW8lIe{C($3zIwm?OC3%7s!Y0pE}wn-ciI0-mlvGwzPu&>>$XiyHuq!QU5*r7$Y1>X z+MDFPz3d5b`j4KxdG&Rt%F?U9pZ(l%`J~0#`ICR!hu=1{6|b<8%nvDEzPH?=sFU$U zRBiOn6A3xeP1|yRJnQ84u)VrmW(<9hy04=H?N3 zZEY%>ni6QBps~TUWTs|lCTs?{YJ#Yfiy*B10lnCreP+I&=f!vCdGWk>O3xwvp(eH_ zAP@)|7~mVe=|!K<*l3e{FPv!8wq*DOMjCG_&p6>a2(%Rv=zBIY8@o8oBU+!e9#Fem z_&#zpIu?$u)sI4wk8bsId&C@mR%ri#F&3vn;F3QSnt$yQ-D+oXxwRhEu01b3iTos_ z4ZV~o<(wfoAnBv17@Qhw(eLi2Tg<&dU;VFeYXQ?}v`Jk~bx3zboh}u3)2+0I^2WWo zPjtOyXBEU?WRaX5~IP6PQp?QNRZ5IS3b$-W;z0^fU?}b$3+)L zNO2BS)jflZ2Y&oSlc!V;?Je%tuVDoTf${POTz&!m17C9`XP;y|D(lKA;M~xz8zY>F z99N+L7K8$>OS8wHi%mAtk4#+RFxorv(b}{djCPNv)`{Zy58GZl{AyPO0vmq`vk`WM zulVxNb+)cF7LLG}mR4ogCD!Ag!vq0J-Qgc<5L6=8|8v#BXbg%dR^{f}`I_vTw|a`t z&gogO>eSrw+Wyhzj0}ENxU>q;Ax+}6qGm7qJY}OKgiO{@R!UCG?87J?tZe4)g3T22 zUmmxl>~g`g)hfC^Otw8igAa_QH4)xb^kAJyj?P&TAvk~7Flb#RPsA{5uz}DB7PU;_>N7uFGtNP*O+wDKmsf3P~p| zpynuDNnPqARR4@GR`8!5-uu9s0tA}7l31+*MeAr27en?y5TP5`tOHPS?5sQ`}sOvSICfJ#9{S!q%mZ z5}blN{E0P;Ioas9tLnAJGF#nALq@QKAvn$Zkr`lbVC&@-v1OU-lu6W!JCuf*ctcI$ z2%`Y&vZIPeO6~N#mQqRfES^VA6~BF1WwoDJB1}l*xg`_uxYTJaeRqt!6T<->u0gze z2)D&cyaX+t?ANmMw`fetL))^pdk+2=H24&BN-9^5Q47nt3Qo~6z3Gy0{dhR*7l`Zq zpZEN+%D8xx#qE~d&yxDY$FDS;;`U5G6`9lz&pzuJP%44RrBMWg*UUbCh^+5eSUeh= zE!RrHdQ>9B<-jOMDy?$t({6MXXSNiJxQp}OAP=ILX1Y!fgDkjF^tWwf>=SbxA2IhH zMa!`Kq*&Wq&U}ubyT30r`!m-NgUTuqQ_&+OZ#tR4%)i{8xZU7F&^GwYRTwX-WpgG$ NfqqEe4xhNo{{Z8FWlR77 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws-inhands.rsi/wielded-inhand-right.png b/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws-inhands.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..bfb2234d08fba97b8bde9a6b9278e4733bb66c80 GIT binary patch literal 1364 zcmb`H=~L1P9L8Cu%$3EvEa}j#hO*0C^DHq}$7{sA3S>nQ84u)VrmW(<9hy04=H?N3 zZEY%>ni6QBps~TUWTs|lCTs?{YJ#Yfiy*B10lnCreP+I&=f!vCdGWk>O3xwvp(eH_ zAP@)|7~mVe=|!K<*l3e{FPv!8wq*DOMjCG_&p6>a2(%Rv=zBIY8@o8oBU+!e9#Fem z_&#zpIu?$u)sI4wk8bsId&C@mR%ri#F&3vn;F3QSnt$yQ-D+oXxwRhEu01b3iTos_ z4ZV~o<(wfoAnBv17@Qhw(eLi2Tg<&dU;VFeYXQ?}v`Jk~bx3zboh}u3)2+0I^2WWo zPjtOyXBEU?WRaX5~IP6PQp?QNRZ5IS3b$-W;z0^fU?}b$3+)L zNO2BS)jflZ2Y&oSlc!V;?Je%tuVDoTf${POTz&!m17C9`XP;y|D(lKA;M~xz8zY>F z99N+L7K8$>OS8wHi%mAtk4#+RFxorv(b}{djCPNv)`{Zy58GZl{AyPO0vmq`vk`WM zulVxNb+)cF7LLG}mR4ogCD!Ag!vq0J-Qgc<5L6=8|8v#BXbg%dR^{f}`I_vTw|a`t z&gogO>eSrw+Wyhzj0}ENxU>q;Ax+}6qGm7qJY}OKgiO{@R!UCG?87J?tZe4)g3T22 zUmmxl>~g`g)hfC^Otw8igAa_QH4)xb^kAJyj?P&TAvk~7Flb#RPsA{5uz}DB7PU;_>N7uFGtNP*O+wDKmsf3P~p| zpynuDNnPqARR4@GR`8!5-uu9s0tA}7l31+*MeAr27en?y5TP5`tOHPS?5sQ`}sOvSICfJ#9{S!q%mZ z5}blN{E0P;Ioas9tLnAJGF#nALq@QKAvn$Zkr`lbVC&@-v1OU-lu6W!JCuf*ctcI$ z2%`Y&vZIPeO6~N#mQqRfES^VA6~BF1WwoDJB1}l*xg`_uxYTJaeRqt!6T<->u0gze z2)D&cyaX+t?ANmMw`fetL))^pdk+2=H24&BN-9^5Q47nt3Qo~6z3Gy0{dhR*7l`Zq zpZEN+%D8xx#qE~d&yxDY$FDS;;`U5G6`9lz&pzuJP%44RrBMWg*UUbCh^+5eSUeh= zE!RrHdQ>9B<-jOMDy?$t({6MXXSNiJxQp}OAP=ILX1Y!fgDkjF^tWwf>=SbxA2IhH zMa!`Kq*&Wq&U}ubyT30r`!m-NgUTuqQ_&+OZ#tR4%)i{8xZU7F&^GwYRTwX-WpgG$ NfqqEe4xhNo{{Z8FWlR77 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws.rsi/icon-lit.png b/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws.rsi/icon-lit.png new file mode 100644 index 0000000000000000000000000000000000000000..f51d7d18e19d72925ce09cc9d0c23aecaf933a1d GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}-kvUwArY-_ z&u!#wFc4u5Z10@#&+g5Ec@sBHJj;~n*|OvME(`A;%)9e;AIq^0JE9u9_GQg()85;r qle{iD*F0^kE%dx4#SS#c?m6RyHTG>feM0kqJO)o!KbLh*2~7aasWVIf literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws.rsi/icon-uncharged.png b/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws.rsi/icon-uncharged.png new file mode 100644 index 0000000000000000000000000000000000000000..cff3cfc67395b51eb1f951a8758e957ea37489dd GIT binary patch literal 163 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVDaPU;cPEB*=VV?2IkBEDjv*P1 zZ?7NZJP^R);<)ypT#mxk8&B6C+Gch=Mwo?jk7h!w4aY1-hBl8)eN&dqWs=prxwP+2 z=7xQY3_o<|b5+et_`Wd$XwshG(CYPtp)cnw{wkDxn2~|u!&Tn)nJQst_WBzFr5QY3 L{an^LB{Ts54e>bu literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws.rsi/icon.png b/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3be7d73e8fc26e4366bbd67af72b57b091d9e595 GIT binary patch literal 1985 zcmV;y2R`_TP)@(pGB>%Su}uKl&O21a}DtHj2vFWp{BAnMk1W_0C!EbC=QO z|IW;v`}xlAcg{Wc-1~y^rYGXvgsE_9L$Lm#nJ9eXK|Hhg1-8u{0E@0>!P=DV_=w4jor@OPW6Loc`d2Ia#gWp`BPEdH* zzgV&EMNFPN8O{rXC^sE}xz>ipp)Q2|8^+)kj|BrVpp6EmqypQ{G+;ug4&mY9=1#@)`&&1sa#OQ$2$Gr zfke?v%2<)3h3od#cCJY%&`1Oc(e}=QNzK+SP`x0=uT@JamlmL=vJn*(l?-e!yv!s> z5rKVk{8J<(Cm=I3lXV<(A5twP5>#?>ACi|mwq7nPH(k}-KwbzYAOT1PVSw8O5Hbr=I<*#~lFNUY{&%u-g~#X(A^{yO zr-O7ZnV*HO?mkH8>%U}o`+C9U9%OK`j!psv;WOKJGMUJxS@`w0UO7EI9R$w6Wo2k- zX<;HnLa*23uTfp{wN3}=(T)vceZdZ=8|F9P0t%mIw{Cp209l)ER;FUn&`^W1Er}@F zRKyuEvU?UX`cKR0O`$kA)ti};l9CwQ;c%d>t&Nq^T9U2XcF7I(M>W2uBPNEY@W%Vz zEElwFLm~bSxeh%IN8xU*#~P&{e=!oK)BE{!Xq7ewdNF!j9Cm-WOYWZ#uiPDG{L=9= zR)>s1c~dj8v$HX8-aPCp-va$Ti_zZR&gq$C5GwP8?O% z5I9*c!09{MTJo&8s4lBhD{0lLr?^8koq!3`X2Q~|f!;nEAp>?U#=W1b;B-BI++>5s zum$OwP`vwRFUC*3O9iK`AW<$V&7n_sYkUF8P?6Hbcu;C;BA@?b$By$&Mofv!kM{F; zrubDXShktLDbV8Ms z#HPkVtJSi8vEO6}#Q@dU63G{wUOV*o5Y~JC9MWuDvjVGke8H9v_e51yl^SpY+-|q~ z?Ykf$9xP<2uLSRFI>dbf7h>A?C7>A#lgWfVd-kZ?aJN26A>;J~fm6U06clKvtwg`P zdEq6jRqiUWog$_Cf{*zl#E*dVi1v2m1bdGgy?o-7M+k`muCe@G%Wc{QFZdNt=p!6# zJzY|x2Vz0s<`YhCTaKSsNlih_xbi@5vmVY}JdJWNYj0*K_Hk*8^ zp$S=8S^QuX{lfVP>aAyOwt^nE<~Q!-v6}A>vmQ}GGOpm!OS)j$0zU$L8D&fvkN1CU z;E7J<2|%Uod@%1j#X!=H|8Oo4G4Yk9+fPZ3?v$Lr@mmdnbHLGq=yDlSGMq07iZ5T0 zrX=6S{k-Hn^&{gZ1CP-*5cqI1{XwB>psk*NFN%$A+$V66_o<&SNqI&qLL{yw(hb@; zY$*K>Uy!Q~bm|YM+!-Nxd~0I&BoYp1{jq-^Jrp+JEaB%v7JT#ny zMAi#gym&D;#Uimi>H?pJ0HONicSqTJ`Xjm;@YTK-V}4141`ixKfEn3|oWbO--*Lg+ z$(H+yx#9)BF@4Dg0tqz7r$ESz_$X{%>GeXOk7zECcSid5|2^ONM`J((htK~9Ie^2} Taka6e00000NkvXXu0mjfX@$n> literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws.rsi/meta.json b/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws.rsi/meta.json new file mode 100644 index 00000000000..bbb1ac9984a --- /dev/null +++ b/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_claws.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from fluffy frontier at commit https://github.com/Fluffy-Frontier/FluffySTG/pull/3293/commits/498811256ce8f64609c8c4195cec08801aed6147", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "icon-lit" + }, + { + "name": "icon-uncharged", + "delays": [ + [ + 0.3, + 0.3 + ] + ] + } + ] +} diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_machete-inhands.rsi/inhand-left.png b/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_machete-inhands.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..77eb2b41ea9a85e7ac3e2861f172151c2cf8fdd6 GIT binary patch literal 1500 zcmZ`(Z8Q@K7@nG%uaJ+Gdzn+$sL?IAG4eGjMzhG*iMCNrAGNP_j!N3=l$`V=XtVDd%9|<8mIyQ01cFz zi?;$(zcpxwVs<(N_bUK+)fwdjQdA=7LM8y9OhLIIed4k6G)%;h)1IdneXqeXyGfk* zkKAqX1n=gTV zS~A5f%h1#tHX>hLT4#0iykvMr$5-^+36oylv>9bvW5!+=LY6s}+?7HkfyCpr z@9)4LUd4DEgJirCO?Ia7C1WgRe@iosW_WC$1?(@C7^XP1Opv`yO^{BPofWZe29(8k zv`?M3BWKSS0fDe5fmrN|D?5W5!%4w8gNCO{otMx&CBj(B{G*v)Ti(X`EkAbLY)E(p z?2&rGGI~LSwP=}M##As2iC-7Ru^JjCW8fUyxRJ*y`H8}Otgs;Y5gF)xM5&iqH0Q;u zFG-#Lvk!}2577xI0l8~-CZn^AhS8TvUOjLQQ>|A5*Qgh-T_9m3tfd(k3>M0+si#2` z-Y|mNKODjqG3#-*21q9;sDhi>S=|PEE~U<64B@6f^7)1*I!icXu3_Q=4mVNaEi#%=J~3gH5Hdc5r!{`7Bq8!`pU4i!2_H@iw%7uwCaGK zPOkjGo4!^Rx39VsNb4=M@q`DTU==m;iJrSlh$8-LZKGn|u~3Np@({=#m(0R}=8=Q@ z&#ilOQHmE$O#D!MH!XX}Kx;C3r4rUX9oU))9o(mLJ+Q+?Bf48QiU#wx6^uoHHvrO#KedS!XoIbB{H0t z=6anXAyXhXlSIVyz>@8iLEu%yNwWYjf-%}VCTT}`+&{F~Y%c7h6BZHf$Jf~*+wvTP zr`~s-u~vvES3Ypm3TanMgih@4y0XMsy zm+vK}_h=t%z$p}i%$mu8mlLAS|81kar4hdiXA7rpb@0&TNulo~uh^nNlO9>`c^4?= ztG!6H7kK`J{M0MH#=`fnIYi6+)bFywGHP+q)Aj;D4XlDRHQ?A?wc5en#oj%xZHktq zoth9SLmr0+_`~+iw%!@KBLASaUkFC@sV4csHPqFBwRkQl>Zsk*32!(zN}cS{>tCu* z8Sk?&M)dI279x4LXqKdI22#^TxSs`SGthNKa_|)2(VI=yUmKY_3WOG=t!EQyg5&#< z??b{7<#|kmE+(FRNkb6J&Sn&)PWvy0eS{jX>E%I+pF*_;sv@i-=7_R$Zggq2m6&C# zV(#AGt+s5>A#=th5cxt-OlkK^DZ4F(Ef2HPL(-2G&W07Mins=#PI$U7objap0DKRjs{jB1 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_machete-inhands.rsi/inhand-right.png b/Resources/Textures/_Lavaland/Objects/Weapons/Secondary/kinetic_machete-inhands.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..aae15dd777b75ba5372aa8da0349cd20308f59d7 GIT binary patch literal 1716 zcmb_deKZpa6rY``rPPKf&&Oy{jY%ah3MpyNXQP_WFr~G!$IPmyNUtnPGQ#mOqNp*Y zQ`9g^vsacaEEFkiQ}*Sf8Jmyiozp+>y#9RmoO^%2bM86!kKg&-d#?rhd+Y0&>Hz=% zebmAI=p{`1C&9~>YP(x>=MsR3o~U5(Qlx-mDFDDSJZk^m;IonPQdYdVmr;h=I;VW! zEwfz2#`~wQ8N*{JFYm4?Z(5O;v;$TITu}yq>+ui*k5Qv$z?FQ#I3O9S3tvvD*?R{w z-Pl$5wt-BRC}dr-nXt{>D#bt%v3080{n2Qbk*)~{2G9X}0DzD*z`yCGDzJ?8xHQi_ z(Z-9G0^9Qid)*#%$DnDkU3*AMpzrpgy`KvwD+fqxVupr4x=AI{trWKN=UU_o9iQ3-;c=y0egn<5Tj>2usZChLUO+RIr zWAR^If2i#d3p^fT%vgLtA|8(=Up}fdWoDJmH1)49hOps{aJ&71d7u5G&^pcP&vZpu zgh%JPl=M`GsJOUlh2+CKRjSqr__gQBOr18HJu#8+-FCUJV+tS6DG%RF8QUDK(W9`ToNEYh%M!ND(g2 ziZO!dlBhve57w91`JqJ={G>@1`|wqYD`tHVAAfOHj>28w!jQh(dycA&u5Z#+89)fz z;onWMKXtj}V3fj@$iH@QR6eeO%FrV;oQ)4pDHckgGc~bQ(RJoP@h92PsiQSWiKVBibH&__*ihxWk zZI=iuFt!od1Id1M#OpVT^5>orB1@Bi`+jx44L*30BJ&MCa1xp`cg?`0!88ms4T`6_ z@Twdd-_V_-9qHuL&{YZH#LTSRxuz_=j9AS=&Mmar{ zWv(pO`2Eh{R;t;8ss5uq-mbHnTEoL8;`UI`KC1hHW@?v?Z^H@FZp~G_9*AHtIyixV z3Ad8?82hN{i>#t?QGJws4*Ks@%oe^@( z4 Date: Thu, 25 Jun 2026 23:20:13 -0400 Subject: [PATCH 06/14] forgot to update this --- .../_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml index cf4eee37d43..40a18198aa3 100644 --- a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml +++ b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml @@ -4,9 +4,9 @@ table: !type:GroupSelector children: - id: WeaponProtoKineticAccelerator - #- id: WeaponProtoKineticShotgun - Euphoria - #- id: WeaponProtoKineticRepeater - Euphoria - #- id: WeaponProtoKineticPistol - Euphoria + - id: WeaponProtoKineticShotgun - Euphoria + - id: WeaponProtoKineticRepeater - Euphoria + - id: WeaponProtoKineticPistol - Euphoria - type: entity name: proto-kinetic shotgun @@ -24,7 +24,7 @@ - type: Clothing sprite: _Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi - type: BasicEntityAmmoProvider - proto: PelletKineticSpread #BulletKinetic # was PelletKineticSpread + proto: PelletKineticSpread - type: GunRequiresWield - type: Item sprite: _Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi From 7ea97d4d4980c429ab672c853e2ee8c4cad43a2f Mon Sep 17 00:00:00 2001 From: Dunrab Date: Thu, 25 Jun 2026 23:26:04 -0400 Subject: [PATCH 07/14] fix linter errors --- Resources/Locale/en-US/_Lavaland/salvage/fibers.ftl | 1 + .../_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml | 6 +++--- .../_Lavaland/Entities/Objects/Weapons/crushers.yml | 4 ++-- .../_Lavaland/Entities/Objects/Weapons/secondary.yml | 5 ++--- 4 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 Resources/Locale/en-US/_Lavaland/salvage/fibers.ftl diff --git a/Resources/Locale/en-US/_Lavaland/salvage/fibers.ftl b/Resources/Locale/en-US/_Lavaland/salvage/fibers.ftl new file mode 100644 index 00000000000..e66f3d0c88d --- /dev/null +++ b/Resources/Locale/en-US/_Lavaland/salvage/fibers.ftl @@ -0,0 +1 @@ +fibers-kinetic = kinetic diff --git a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml index 40a18198aa3..0b762b48bb9 100644 --- a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml +++ b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/Guns/Basic/pka.yml @@ -4,9 +4,9 @@ table: !type:GroupSelector children: - id: WeaponProtoKineticAccelerator - - id: WeaponProtoKineticShotgun - Euphoria - - id: WeaponProtoKineticRepeater - Euphoria - - id: WeaponProtoKineticPistol - Euphoria + - id: WeaponProtoKineticShotgun + - id: WeaponProtoKineticRepeater + - id: WeaponProtoKineticPistol - type: entity name: proto-kinetic shotgun diff --git a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/crushers.yml b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/crushers.yml index 4ef31ec5959..e0e26dea943 100644 --- a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/crushers.yml +++ b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/crushers.yml @@ -5,8 +5,8 @@ children: - id: WeaponCrusher - id: WeaponCrusherGlaive - - id: WeaponCrusherHammer -Euphoria - - id: WeaponCrusherHalberd -Euphoria + - id: WeaponCrusherHammer + - id: WeaponCrusherHalberd - type: entity parent: [WeaponCrusher, BaseSecurityCargoContraband] diff --git a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/secondary.yml b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/secondary.yml index 8e9cd23e7ba..290f6146f52 100644 --- a/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/secondary.yml +++ b/Resources/Prototypes/_Lavaland/Entities/Objects/Weapons/secondary.yml @@ -4,8 +4,8 @@ table: !type:GroupSelector children: - id: WeaponCrusherDagger - #- id: LavalandWeaponKineticClaws -Euphoria - #- id: LavalandWeaponKineticMachete -Euphoria + - id: LavalandWeaponKineticClaws + - id: LavalandWeaponKineticMachete - type: entity parent: [BaseItem, ClothingHandsBase, BaseSecurityCargoContraband] @@ -34,7 +34,6 @@ animation: WeaponArcClaw range: 1.1 # Awful range mustBeEquippedToUse: true - heavyStaminaCost: 4 # No skill? - type: Sharp - type: Prying - type: UseDelay From 3d8f317245fe1120223d38c0729f19b4d0f12394 Mon Sep 17 00:00:00 2001 From: Dunrab Date: Thu, 25 Jun 2026 23:37:56 -0400 Subject: [PATCH 08/14] few comment updates --- .../Ranged/Events/GunRefreshModifiersEvent.cs | 4 ++- .../Weapons/Ranged/Systems/SharedGunSystem.cs | 4 ++- .../Components/GunUpgradeDamageComponent.cs | 25 ++----------------- .../SharedGunUpgradeSystem.Upgrades.cs | 4 +-- .../Ranged/Upgrades/SharedGunUpgradeSystem.cs | 4 +-- 5 files changed, 11 insertions(+), 30 deletions(-) diff --git a/Content.Shared/Weapons/Ranged/Events/GunRefreshModifiersEvent.cs b/Content.Shared/Weapons/Ranged/Events/GunRefreshModifiersEvent.cs index 0ad79bd74af..1290a6eacff 100644 --- a/Content.Shared/Weapons/Ranged/Events/GunRefreshModifiersEvent.cs +++ b/Content.Shared/Weapons/Ranged/Events/GunRefreshModifiersEvent.cs @@ -19,5 +19,7 @@ public record struct GunRefreshModifiersEvent( Angle MinAngle, int ShotsPerBurst, float FireRate, - float ProjectileSpeed + float ProjectileSpeed, + float BurstFireRate, // Goobstation + float BurstCooldown // Goobstation ); diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index ce969899806..f2e5b18e8e8 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -594,7 +594,9 @@ public void RefreshModifiers(Entity gun) comp.MinAngle, comp.ShotsPerBurst, comp.FireRate, - comp.ProjectileSpeed + comp.ProjectileSpeed, + comp.BurstFireRate, + comp.BurstCooldown ); // Begin DeltaV additions diff --git a/Content.Shared/Weapons/Ranged/Upgrades/Components/GunUpgradeDamageComponent.cs b/Content.Shared/Weapons/Ranged/Upgrades/Components/GunUpgradeDamageComponent.cs index 3b02c3d04f0..d0743937155 100644 --- a/Content.Shared/Weapons/Ranged/Upgrades/Components/GunUpgradeDamageComponent.cs +++ b/Content.Shared/Weapons/Ranged/Upgrades/Components/GunUpgradeDamageComponent.cs @@ -1,25 +1,3 @@ -// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com> -// SPDX-FileCopyrightText: 2025 Aidenkrz -// SPDX-FileCopyrightText: 2025 Aineias1 -// SPDX-FileCopyrightText: 2025 FaDeOkno <143940725+FaDeOkno@users.noreply.github.com> -// SPDX-FileCopyrightText: 2025 GoobBot -// SPDX-FileCopyrightText: 2025 McBosserson <148172569+McBosserson@users.noreply.github.com> -// SPDX-FileCopyrightText: 2025 Milon -// SPDX-FileCopyrightText: 2025 Piras314 -// SPDX-FileCopyrightText: 2025 Rouden <149893554+Roudenn@users.noreply.github.com> -// SPDX-FileCopyrightText: 2025 Ted Lukin <66275205+pheenty@users.noreply.github.com> -// SPDX-FileCopyrightText: 2025 TheBorzoiMustConsume <197824988+TheBorzoiMustConsume@users.noreply.github.com> -// SPDX-FileCopyrightText: 2025 Unlumination <144041835+Unlumy@users.noreply.github.com> -// SPDX-FileCopyrightText: 2025 coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> -// SPDX-FileCopyrightText: 2025 deltanedas <39013340+deltanedas@users.noreply.github.com> -// SPDX-FileCopyrightText: 2025 deltanedas <@deltanedas:kde.org> -// SPDX-FileCopyrightText: 2025 gluesniffler <159397573+gluesniffler@users.noreply.github.com> -// SPDX-FileCopyrightText: 2025 gluesniffler -// SPDX-FileCopyrightText: 2025 username <113782077+whateverusername0@users.noreply.github.com> -// SPDX-FileCopyrightText: 2025 whateverusername0 -// -// SPDX-License-Identifier: AGPL-3.0-or-later - using Content.Shared._Lavaland.Weapons.Ranged.Upgrades; using Content.Shared.Damage; using Robust.Shared.GameStates; @@ -29,13 +7,14 @@ namespace Content.Shared.Weapons.Ranged.Upgrades.Components; /// /// A for increasing the damage of a gun's projectile. /// -[RegisterComponent, NetworkedComponent, Access(typeof(SharedGunUpgradeSystem))] +[RegisterComponent, NetworkedComponent, Access(typeof(SharedGunUpgradeSystem))] // Goobstation - Swapped from GunUpgradeSystem to SharedGunUpgradeSystem public sealed partial class GunUpgradeDamageComponent : Component { [DataField] public DamageSpecifier? BonusDamage; /// + /// Goobstation /// How much should we multiply the total projectile's damage. /// [DataField] diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.Upgrades.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.Upgrades.cs index 517d17faa86..ae627260045 100644 --- a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.Upgrades.cs +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.Upgrades.cs @@ -39,11 +39,9 @@ private void InitializeUpgrades() private void OnFireRateRefresh(Entity ent, ref GunRefreshModifiersEvent args) { args.FireRate *= ent.Comp.Coefficient; - /* args.BurstFireRate *= ent.Comp.Coefficient; args.BurstCooldown /= ent.Comp.Coefficient; args.BurstFireRate /= ent.Comp.Coefficient; - */ } private void OnFireRateRefreshRecharge(Entity ent, ref RechargeBasicEntityAmmoGetCooldownModifiersEvent args) @@ -94,7 +92,7 @@ private void OnVampirismProjectileHit(Entity ent, if (!HasComp(args.Target)) return; if (args.Shooter != null) - _damage.TryChangeDamage(args.Shooter.Value, ent.Comp.DamageOnHit); // may need to rever this shit + _damage.TryChangeDamage(args.Shooter.Value, ent.Comp.DamageOnHit); // may need to revert this shit } private void OnGetMeleeRelay(Entity ent, ref GetRelayMeleeWeaponEvent args) diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.cs index 62a3b8553d1..29c4f632068 100644 --- a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.cs +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/SharedGunUpgradeSystem.cs @@ -34,7 +34,6 @@ using Content.Shared.Weapons.Ranged.Systems; using System.Linq; using Content.Goobstation.Common.Weapons; -//using Content.Goobstation.Common.Weapons; using Content.Shared._Goobstation.Weapons.Ranged; using Content.Shared.Actions; using Content.Shared.Damage.Systems; @@ -70,7 +69,7 @@ public override void Initialize() SubscribeLocalEvent(RelayEvent); SubscribeLocalEvent(RelayEvent); - //SubscribeLocalEvent(RelayGetActionEvent); + //SubscribeLocalEvent(RelayGetActionEvent); // Floofstation - not doing upgrade pull outs yet SubscribeLocalEvent(OnUpgradeExamine); @@ -85,6 +84,7 @@ private void RelayEvent(Entity ent, ref T args) w } } + // Floofstation - we are not doing upgrade pulling out yet (pull out game weak) // Because of how action container work we need that workaround for GetItemActionsEvent /* private void RelayGetActionEvent(Entity ent, ref GetItemActionsEvent args) From deb20c28ccfbe85be4e599683c9af8da419b9a9d Mon Sep 17 00:00:00 2001 From: Dunrab Date: Thu, 25 Jun 2026 23:44:00 -0400 Subject: [PATCH 09/14] forgot these comments as well --- Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs | 2 ++ .../Weapons/Ranged/Upgrades/GunUpgradeSystem.cs | 9 +++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs index f2e5b18e8e8..84ca6ddaf9b 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs @@ -594,9 +594,11 @@ public void RefreshModifiers(Entity gun) comp.MinAngle, comp.ShotsPerBurst, comp.FireRate, + // Goobstation Lavaland PKAs Start comp.ProjectileSpeed, comp.BurstFireRate, comp.BurstCooldown + // Goobstation Lavaland PKAs end ); // Begin DeltaV additions diff --git a/Content.Shared/Weapons/Ranged/Upgrades/GunUpgradeSystem.cs b/Content.Shared/Weapons/Ranged/Upgrades/GunUpgradeSystem.cs index 9b4780457de..df9338d4c42 100644 --- a/Content.Shared/Weapons/Ranged/Upgrades/GunUpgradeSystem.cs +++ b/Content.Shared/Weapons/Ranged/Upgrades/GunUpgradeSystem.cs @@ -1,6 +1,5 @@ using System.Linq; -using Content.Shared._DV.Weapons.Ranged.Upgrades; -using Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; // DeltaV +using Content.Shared._DV.Weapons.Ranged.Upgrades; // DeltaV using Content.Shared.Weapons.Ranged.Upgrades.Components; using Content.Shared.Administration.Logs; using Content.Shared.Database; @@ -37,8 +36,8 @@ public override void Initialize() SubscribeLocalEvent(RelayEvent); SubscribeLocalEvent(RelayEvent); - SubscribeLocalEvent(OnFireRateRefresh); - SubscribeLocalEvent(OnSpeedRefresh); + SubscribeLocalEvent(OnFireRateRefresh); + SubscribeLocalEvent(OnSpeedRefresh); SubscribeLocalEvent(OnDamageGunShot); } @@ -121,12 +120,14 @@ private void OnDamageGunShot(Entity ent, ref GunShotE { foreach (var (ammo, _) in args.Ammo) { + // Goobstation - Lavaland PKAs Start if (!TryComp(ammo, out var projectile)) continue; var multiplier = 1f; if (ent.Comp.BonusDamage != null) projectile.Damage += ent.Comp.BonusDamage * multiplier; projectile.Damage *= ent.Comp.Modifier; + // Goobstation - Lavaland PKAs Start } } From 1b9ac796361c0d4e94c09a8c4b46244812fb29c5 Mon Sep 17 00:00:00 2001 From: Dunrab Date: Fri, 26 Jun 2026 09:52:23 -0400 Subject: [PATCH 10/14] add missing upgrade and loot, remove unsued flashlight upgrade comp --- .../_Lavaland/Body/CursedHeartComponent.cs | 19 ++++ .../CursedHeartGrantComponent.cs} | 11 +- .../_Lavaland/Body/CursedHeartSystem.cs | 105 ++++++++++++++++++ .../GunUpgradeVampirismComponent.cs | 3 +- .../Locale/en-US/weapons/ranged/upgrades.ftl | 1 + .../Spawners/Random/lavaland_loot.yml | 29 +++++ .../Objects/Specific/loot.rsi/crystal.png | Bin 0 -> 1948 bytes .../Specific/loot.rsi/cursed_heart.png | Bin 0 -> 345 bytes .../Objects/Specific/loot.rsi/meta.json | 24 ++++ 9 files changed, 183 insertions(+), 9 deletions(-) create mode 100644 Content.Shared/_Lavaland/Body/CursedHeartComponent.cs rename Content.Shared/_Lavaland/{Weapons/Ranged/Upgrades/Components/GunUpgradeFlashlightComponent.cs => Body/CursedHeartGrantComponent.cs} (82%) create mode 100644 Content.Shared/_Lavaland/Body/CursedHeartSystem.cs create mode 100644 Resources/Prototypes/_Lavaland/Entities/Spawners/Random/lavaland_loot.yml create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/loot.rsi/crystal.png create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/loot.rsi/cursed_heart.png create mode 100644 Resources/Textures/_Lavaland/Objects/Specific/loot.rsi/meta.json diff --git a/Content.Shared/_Lavaland/Body/CursedHeartComponent.cs b/Content.Shared/_Lavaland/Body/CursedHeartComponent.cs new file mode 100644 index 00000000000..455e270bb80 --- /dev/null +++ b/Content.Shared/_Lavaland/Body/CursedHeartComponent.cs @@ -0,0 +1,19 @@ +using Content.Shared.Actions; +using Robust.Shared.GameStates; + +namespace Content.Shared._Lavaland.Body; + +[RegisterComponent, NetworkedComponent] +[AutoGenerateComponentState] +public sealed partial class CursedHeartComponent : Component +{ + [AutoNetworkedField] + public EntityUid? PumpActionEntity; + + public TimeSpan LastPump = TimeSpan.Zero; + + [DataField] + public float MaxDelay = 5f; +} + +public sealed partial class PumpHeartActionEvent : InstantActionEvent; diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeFlashlightComponent.cs b/Content.Shared/_Lavaland/Body/CursedHeartGrantComponent.cs similarity index 82% rename from Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeFlashlightComponent.cs rename to Content.Shared/_Lavaland/Body/CursedHeartGrantComponent.cs index 4c6d7bc0b6d..bffc194617e 100644 --- a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeFlashlightComponent.cs +++ b/Content.Shared/_Lavaland/Body/CursedHeartGrantComponent.cs @@ -19,12 +19,7 @@ // // SPDX-License-Identifier: AGPL-3.0-or-later -using Robust.Shared.GameStates; +namespace Content.Shared._Lavaland.Body; -namespace Content.Shared._Lavaland.Weapons.Ranged.Upgrades.Components; - -/// -/// Component to indicate a valid flashlight for weapon attachment -/// -[RegisterComponent, NetworkedComponent] -public sealed partial class GunUpgradeFlashlightComponent : Component; +[RegisterComponent] +public sealed partial class CursedHeartGrantComponent : Component; \ No newline at end of file diff --git a/Content.Shared/_Lavaland/Body/CursedHeartSystem.cs b/Content.Shared/_Lavaland/Body/CursedHeartSystem.cs new file mode 100644 index 00000000000..36e24e225e2 --- /dev/null +++ b/Content.Shared/_Lavaland/Body/CursedHeartSystem.cs @@ -0,0 +1,105 @@ +using Content.Shared.Actions; +using Content.Shared.Damage; +using Content.Shared.Damage.Prototypes; +using Content.Shared.Interaction.Events; +using Content.Shared.Mobs; +using Content.Shared.Mobs.Components; +using Content.Shared.Mobs.Systems; +using Content.Shared.Popups; +using Robust.Shared.Audio; +using Robust.Shared.Audio.Systems; +using Robust.Shared.Prototypes; +using Robust.Shared.Timing; +using Content.Shared._Shitmed.Targeting; // Shitmed Change +using Content.Shared.Damage.Systems; // Shitmed Change +namespace Content.Shared._Lavaland.Body; + +// TODO: Use Shitmed instead of Shitcode +public sealed class CursedHeartSystem : EntitySystem +{ + [Dependency] private readonly SharedActionsSystem _actions = default!; + [Dependency] private readonly SharedAudioSystem _audio = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + [Dependency] private readonly DamageableSystem _damage = default!; + //[Dependency] private readonly BloodstreamSystem _bloodstream = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly IPrototypeManager _proto = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnShutdown); + SubscribeLocalEvent(OnPump); + + SubscribeLocalEvent(OnUseInHand); + } + + public override void Update(float frameTime) + { + base.Update(frameTime); + + var query = EntityQueryEnumerator(); + while (query.MoveNext(out var uid, out var comp, out var state)) + { + if (state.CurrentState is MobState.Critical or MobState.Dead) + continue; + + if (_timing.CurTime < comp.LastPump + TimeSpan.FromSeconds(comp.MaxDelay)) + continue; + + Damage(uid); + comp.LastPump = _timing.CurTime; + } + } + + private void Damage(EntityUid uid) + { + // TODO: WHY BLOODSTREAM IS NOT IN SHARED RAAAAAGH + //_bloodstream.TryModifyBloodLevel(uid, -50, spill: false); + _damage.TryChangeDamage(uid, new DamageSpecifier(_proto.Index("Airloss"), 50), true, false); + _popup.PopupEntity(Loc.GetString("popup-cursed-heart-damage"), uid, uid, PopupType.MediumCaution); + } + + private void OnMapInit(EntityUid uid, CursedHeartComponent comp, MapInitEvent args) + { + _actions.AddAction(uid, ref comp.PumpActionEntity, "ActionPumpCursedHeart"); + } + + private void OnShutdown(EntityUid uid, CursedHeartComponent comp, ComponentShutdown args) + { + _actions.RemoveAction(uid, comp.PumpActionEntity); + } + + private void OnPump(EntityUid uid, CursedHeartComponent comp, PumpHeartActionEvent args) + { + if (args.Handled) + return; + + args.Handled = true; + _audio.PlayGlobal(new SoundPathSpecifier("/Audio/_Lavaland/heartbeat.ogg"), uid); + _damage.TryChangeDamage(uid, new DamageSpecifier(_proto.Index("Brute"), -5), true, false, targetPart: TargetBodyPart.All); // Shitmed Change + _damage.TryChangeDamage(uid, new DamageSpecifier(_proto.Index("Airloss"), -5), true, false, targetPart: TargetBodyPart.All); // Shitmed Change + _damage.TryChangeDamage(uid, new DamageSpecifier(_proto.Index("Burn"), -8), true, false, targetPart: TargetBodyPart.All); // Shitmed Change + //_bloodstream.TryModifyBloodLevel(uid, 17); + comp.LastPump = _timing.CurTime; + } + + private void OnUseInHand(EntityUid uid, CursedHeartGrantComponent comp, UseInHandEvent args) + { + if (HasComp(args.User)) + { + _popup.PopupEntity(Loc.GetString("popup-cursed-heart-already-cursed"), args.User, args.User, PopupType.MediumCaution); + args.Handled = true; + return; + } + + _audio.PlayGlobal(new SoundPathSpecifier("/Audio/_Lavaland/heartbeat.ogg"), args.User); + var heart = EnsureComp(args.User); + heart.LastPump = _timing.CurTime; + QueueDel(uid); + args.Handled = true; + } +} diff --git a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeVampirismComponent.cs b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeVampirismComponent.cs index 3268041f956..4798b06cad5 100644 --- a/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeVampirismComponent.cs +++ b/Content.Shared/_Lavaland/Weapons/Ranged/Upgrades/Components/GunUpgradeVampirismComponent.cs @@ -19,6 +19,7 @@ // // SPDX-License-Identifier: AGPL-3.0-or-later + using Content.Shared.Damage; using Robust.Shared.GameStates; @@ -39,4 +40,4 @@ public sealed partial class ProjectileVampirismComponent : Component { [DataField] public DamageSpecifier DamageOnHit = new(); -} \ No newline at end of file +} diff --git a/Resources/Locale/en-US/weapons/ranged/upgrades.ftl b/Resources/Locale/en-US/weapons/ranged/upgrades.ftl index c766b1e6672..90cfddce330 100644 --- a/Resources/Locale/en-US/weapons/ranged/upgrades.ftl +++ b/Resources/Locale/en-US/weapons/ranged/upgrades.ftl @@ -5,3 +5,4 @@ gun-upgrade-popup-insert = Inserted {THE($upgrade)} into {THE($gun)}! gun-upgrade-examine-text-damage = This has upgraded [color=#ec9b2d][bold]damage.[/bold][/color] gun-upgrade-examine-text-range = This has upgraded [color=#2decec][bold]range.[/bold][/color] gun-upgrade-examine-text-reload = This has upgraded [color=#bbf134][bold]fire rate.[/bold][/color] +gun-upgrade-vampirism-name = This has upgraded [color=crimson][bold]vampirism[/bold][/color] diff --git a/Resources/Prototypes/_Lavaland/Entities/Spawners/Random/lavaland_loot.yml b/Resources/Prototypes/_Lavaland/Entities/Spawners/Random/lavaland_loot.yml new file mode 100644 index 00000000000..590e459a017 --- /dev/null +++ b/Resources/Prototypes/_Lavaland/Entities/Spawners/Random/lavaland_loot.yml @@ -0,0 +1,29 @@ +- type: entity + id: LavalandCursedHeart + parent: BaseHumanOrgan + name: heart + description: "I feel bad for the heartless bastard who lost this." + components: + - type: Sprite + sprite: _Lavaland/Objects/Specific/loot.rsi + state: cursed_heart + - type: Item + size: Small + - type: CursedHeartGrant + +- type: entity + id: LavalandVampirismCrystal + parent: BasePKAUpgrade + name: Vamprisim Crystal + components: + - type: Sprite + sprite: _Lavaland/Objects/Specific/loot.rsi + state: crystal + - type: GunUpgrade + examineText: gun-upgrade-vampirism-name + - type: GunUpgradeVampirism + damageOnHit: + types: + Slash: -1.5 + Piercing: -1.5 + Blunt: -1.5 diff --git a/Resources/Textures/_Lavaland/Objects/Specific/loot.rsi/crystal.png b/Resources/Textures/_Lavaland/Objects/Specific/loot.rsi/crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..1bc3a8555dcf552a64c3de3c7c473c5f16f19083 GIT binary patch literal 1948 zcmbVMZEO=|9Di!J0fTOp;TV&|<0i5f+q+)d(O%ZU)>d1gV|Gn8hQVI%o^~f~@3_0I z-3+?U0UM%O2=5xghe7azFAz~%V^W=RP1Q3ycgB{mqO zL}jxC7Y2jl7iy{srG$TAV5dL0>e9%$kqJ;Rcz!JZeT}9b>)QC%#%gWBpIz^zo_4){ zHUGfa>hkNa7%Qta-@n~^t#bJnwgaiuWiWoxNK}Cx=8KvW?p-HF@9MCwS3N`Kp)Gmi zlWVqr_G#}mul_-a{^Z=-^RS2WJzMDg7tU&G=bYKAIljhUv-$yLyR|q_3Xev1SC+N6 zw^!Sa-dJ&@I%Pit;NsWSiF4i@KNw%<4#u+}KL3t8Oo1_N z|9!iD>8YKeh(0uT=(YAh0i>uUC6g5s`zuCAuAknWO5H4OoEYAhVp2s~?Np$D|G{P2 zcY5o!-=4CAk#p-F3A=9Qp}?+aUK?;9DJeOj(;Wifo1&uQOP7w6mF)pwbkU-B0r+^q zf{F6-vGQ_+o#&kY3tDuFzo}(v#seI;@onn4=vglVP;^#(HG67`o&_ME;sb3;n{O@6 z3Na(Y2_a}q#zcfhSzDD98Fmv?un>&!aR+|yQ*5+%*oPq=~tFhL= znk-gqrQK+%HCycV7cq)7*$C1`n9K%KEo~ubio&uFj?`gToy3J{zw4!}I<#}(9f~5- z1d&K2j0v+*kRpW1ZnqO8MNpIhAq;YNTw#)ixLlDT$%u2kd@Io9@X_=7FsW@>k%!-x+-6ACXP!>8R7P`BTnH8!xBJGqQqX<$! z5TerwYo0b4Lw$@AWXCF7`8X#ewU1E)xeG?>tj3YaL`VyDfv8q!RYWCrRJ zI6mAx8`Ns0Da&I}R6QJ{F#ihXSUN07F$Vd}$CwBt#CQb9a*?E+LR65DVq~2;ZH3QA zd*iag#98QdIdJ5*k>@$u%$dzrONcbEA<}GMSc}bI3$3&o*s#UMgiYa)#hSbC64*{P zxzqQ#|9O9%#G@`_qEF0|ZU(h8>e9tQdw3b8tve^qmUs)?JVTTfMtLkNbtiLMp!wV~hz~Gg literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Specific/loot.rsi/cursed_heart.png b/Resources/Textures/_Lavaland/Objects/Specific/loot.rsi/cursed_heart.png new file mode 100644 index 0000000000000000000000000000000000000000..b0ce3d09398d35fed912bc70c4ba0f86712ededb GIT binary patch literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I3?%1nZ+ru!7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`0(2Ka=y#;^MHj^V#~)R{bnsf!pcGwcSLGxL(9C6Hn-3Gxg64+acU-pp=5 zAA&)s%K;QS({+Va$eJsbBfR& cu``v-s~^Qx6uRF`1^R-))78&qol`;+0MikG%K!iX literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Lavaland/Objects/Specific/loot.rsi/meta.json b/Resources/Textures/_Lavaland/Objects/Specific/loot.rsi/meta.json new file mode 100644 index 00000000000..b51d9292569 --- /dev/null +++ b/Resources/Textures/_Lavaland/Objects/Specific/loot.rsi/meta.json @@ -0,0 +1,24 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation at at https://github.com/tgstation/tgstation/commit/40d89d11ea4a5cb81d61dc1018b46f4e7d32c62a", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "crystal" + }, + { + "name": "cursed_heart", + "delays": [ + [ + 0.1, + 0.1, + 0.2 + ] + ] + } + ] +} From 288f67d8a711e96c9c137edfb83d4210320773ad Mon Sep 17 00:00:00 2001 From: Dunrab Date: Fri, 26 Jun 2026 10:17:34 -0400 Subject: [PATCH 11/14] forgor the action --- .../_Lavaland/Actions/cursed_heart.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 Resources/Prototypes/_Lavaland/Actions/cursed_heart.yml diff --git a/Resources/Prototypes/_Lavaland/Actions/cursed_heart.yml b/Resources/Prototypes/_Lavaland/Actions/cursed_heart.yml new file mode 100644 index 00000000000..7eebbfeb2a7 --- /dev/null +++ b/Resources/Prototypes/_Lavaland/Actions/cursed_heart.yml @@ -0,0 +1,17 @@ +- type: entity + parent: BaseAction + id: ActionPumpCursedHeart + name: Heartbeat + description: Pump your own blood to live! + categories: [ HideSpawnMenu ] + components: + - type: Action + icon: + sprite: _Lavaland/Objects/Specific/Lavaland/loot.rsi + state: cursed_heart + checkCanInteract: false + checkConsciousness: false + itemIconStyle: BigAction + useDelay: 1 + - type: InstantAction + event: !type:PumpHeartActionEvent From a182411accdbb341b2220f1846e25dc02beac5ee Mon Sep 17 00:00:00 2001 From: Dunrab Date: Fri, 26 Jun 2026 10:24:47 -0400 Subject: [PATCH 12/14] not my day, cant remember basic rsi paths --- Resources/Prototypes/_Lavaland/Actions/cursed_heart.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/_Lavaland/Actions/cursed_heart.yml b/Resources/Prototypes/_Lavaland/Actions/cursed_heart.yml index 7eebbfeb2a7..9fcc963972e 100644 --- a/Resources/Prototypes/_Lavaland/Actions/cursed_heart.yml +++ b/Resources/Prototypes/_Lavaland/Actions/cursed_heart.yml @@ -7,7 +7,7 @@ components: - type: Action icon: - sprite: _Lavaland/Objects/Specific/Lavaland/loot.rsi + sprite: _Lavaland/Objects/Specific/loot.rsi state: cursed_heart checkCanInteract: false checkConsciousness: false From b4d9558a8f23dec8a4003f5043e93b1da35564ca Mon Sep 17 00:00:00 2001 From: Dunrab Date: Sun, 28 Jun 2026 00:38:59 -0400 Subject: [PATCH 13/14] add pkas to research, salvvend and the crushers to salvvend --- .../Inventories/salvage_points.yml | 15 ++++++-- .../_DV/Recipes/Lathes/Packs/logistics.yml | 5 +++ Resources/Prototypes/_DV/Research/arsenal.yml | 5 +++ .../_Lavaland/Recipies/Lathes/salvage.yml | 37 +++++++++++++++++++ 4 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 Resources/Prototypes/_Lavaland/Recipies/Lathes/salvage.yml diff --git a/Resources/Prototypes/_DV/Catalog/VendingMachines/Inventories/salvage_points.yml b/Resources/Prototypes/_DV/Catalog/VendingMachines/Inventories/salvage_points.yml index 2a852e50da2..4c3e3980402 100644 --- a/Resources/Prototypes/_DV/Catalog/VendingMachines/Inventories/salvage_points.yml +++ b/Resources/Prototypes/_DV/Catalog/VendingMachines/Inventories/salvage_points.yml @@ -47,7 +47,17 @@ cost: 3500 - id: PKAUpgradeDamage cost: 5000 - #BEGIN floofstation addtions + #BEGIN floofstation addtions + - id: PKAUpgradeFireRate + cost: 5000 + - id: LavalandWeaponKineticMachete + cost: 750 + - id: LavalandWeaponKineticClaws + cost: 750 + - id: WeaponCrusherHammer + cost: 1000 + - id: WeaponCrusherHalberd + cost: 1000 - id: WeaponSniperMosin cost: 5000 - id: WeaponPistolForged @@ -79,6 +89,5 @@ # TODO: mining drone stuff - id: MedicalTrackingImplanter cost: 10000 - - id: LavalandJaunter + - id: LavalandJaunter cost: 2500 - \ No newline at end of file diff --git a/Resources/Prototypes/_DV/Recipes/Lathes/Packs/logistics.yml b/Resources/Prototypes/_DV/Recipes/Lathes/Packs/logistics.yml index 8beacc5b63d..dae91ebedb8 100644 --- a/Resources/Prototypes/_DV/Recipes/Lathes/Packs/logistics.yml +++ b/Resources/Prototypes/_DV/Recipes/Lathes/Packs/logistics.yml @@ -27,6 +27,11 @@ - WeaponProtoKineticAccelerator - PKAUpgradeDamage - PKAUpgradeRange + # Floofstation additions start + - WeaponProtoKineticPistol + - WeaponProtoKineticRepeater + - WeaponProtoKineticShotgun + # Floofstation additions end - type: latheRecipePack id: SalvageHardsuits diff --git a/Resources/Prototypes/_DV/Research/arsenal.yml b/Resources/Prototypes/_DV/Research/arsenal.yml index 0f20e3bda2a..85697d771ba 100644 --- a/Resources/Prototypes/_DV/Research/arsenal.yml +++ b/Resources/Prototypes/_DV/Research/arsenal.yml @@ -12,6 +12,11 @@ recipeUnlocks: - WeaponProtoKineticAccelerator - ShuttleGunKineticCircuitboard + # Floofstation additions start + - WeaponProtoKineticPistol + - WeaponProtoKineticRepeater + - WeaponProtoKineticShotgun + # Floofstation additions end # These are roundstart but not replenishable for salvage # Tier 2 diff --git a/Resources/Prototypes/_Lavaland/Recipies/Lathes/salvage.yml b/Resources/Prototypes/_Lavaland/Recipies/Lathes/salvage.yml new file mode 100644 index 00000000000..e762707d46e --- /dev/null +++ b/Resources/Prototypes/_Lavaland/Recipies/Lathes/salvage.yml @@ -0,0 +1,37 @@ +# pka variants +- type: latheRecipe + id: WeaponProtoKineticPistol + result: WeaponProtoKineticPistol + categories: + - Weapons + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Silver: 100 + Plasma: 500 + +- type: latheRecipe + id: WeaponProtoKineticRepeater # strongest one so most expensive + result: WeaponProtoKineticRepeater + categories: + - Weapons + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Silver: 100 + Plasma: 500 + Uranium: 500 + +- type: latheRecipe + id: WeaponProtoKineticShotgun + result: WeaponProtoKineticShotgun + categories: + - Weapons + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Silver: 100 + Plasma: 500 From 019e7a0fd9b944b55606b201c601971c61a620a8 Mon Sep 17 00:00:00 2001 From: Dunrab Date: Mon, 29 Jun 2026 09:38:56 -0400 Subject: [PATCH 14/14] remove sprite states from pkas we wont be using --- .../Guns/Basic/kinetic_pistol.rsi/bayonet.png | Bin 281 -> 0 bytes .../Guns/Basic/kinetic_pistol.rsi/flight-on.png | Bin 226 -> 0 bytes .../Guns/Basic/kinetic_pistol.rsi/flight.png | Bin 173 -> 0 bytes .../Guns/Basic/kinetic_pistol.rsi/meta.json | 9 --------- .../Guns/Basic/kinetic_repeater.rsi/bayonet.png | Bin 281 -> 0 bytes .../Guns/Basic/kinetic_repeater.rsi/flight-on.png | Bin 226 -> 0 bytes .../Guns/Basic/kinetic_repeater.rsi/flight.png | Bin 173 -> 0 bytes .../Guns/Basic/kinetic_repeater.rsi/meta.json | 10 +--------- .../Guns/Basic/kinetic_shotgun.rsi/bayonet.png | Bin 281 -> 0 bytes .../Guns/Basic/kinetic_shotgun.rsi/flight-on.png | Bin 226 -> 0 bytes .../Guns/Basic/kinetic_shotgun.rsi/flight.png | Bin 173 -> 0 bytes .../Guns/Basic/kinetic_shotgun.rsi/meta.json | 9 --------- 12 files changed, 1 insertion(+), 27 deletions(-) delete mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/bayonet.png delete mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/flight-on.png delete mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/flight.png delete mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_repeater.rsi/bayonet.png delete mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_repeater.rsi/flight-on.png delete mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_repeater.rsi/flight.png delete mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/bayonet.png delete mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/flight-on.png delete mode 100644 Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_shotgun.rsi/flight.png diff --git a/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/bayonet.png b/Resources/Textures/_Lavaland/Objects/Weapons/Guns/Basic/kinetic_pistol.rsi/bayonet.png deleted file mode 100644 index 28f96dcc283cc9e4874ad46afab2cb1aeb8f3a22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}mpxq^Ln7SY zPPOK1Q4nZzujb)gt0s4#sYSa$U;oiUn3~l|7IgZWHcw*!4z;Mp;&F{KQN3WNL6567Dj{}86bXpj)b6EtAEzewK)^IT5 ze!QHN3S)uM*ZEU}hlE)~+1D9GnVn*~>6|@-g-5GJ-J7Fi*ArY-_ zFYV@SFyL{$$h|0;>B*zF@dk{Scbt$}=seLO;6wJk%%q!LvaW2#K=9ka3~l|7IgZWHcw*!4z;Mp;&F{KQN3WNL6567Dj{}86bXpj)b6EtAEzewK)^IT5 ze!QHN3S)uM*ZEU}hlE)~+1D9GnVn*~>6|@-g-5GJ-J7Fi*ArY-_ zFYV@SFyL{$$h|0;>B*zF@dk{Scbt$}=seLO;6wJk%%q!LvaW2#K=9ka3~l|7IgZWHcw*!4z;Mp;&F{KQN3WNL6567Dj{}86bXpj)b6EtAEzewK)^IT5 ze!QHN3S)uM*ZEU}hlE)~+1D9GnVn*~>6|@-g-5GJ-J7Fi*ArY-_ zFYV@SFyL{$$h|0;>B*zF@dk{Scbt$}=seLO;6wJk%%q!LvaW2#K=9ka