diff --git a/Content.Shared/Item/ItemToggle/Components/ItemToggleMeleeWeaponComponent.cs b/Content.Shared/Item/ItemToggle/Components/ItemToggleMeleeWeaponComponent.cs index cd3ed5779c3..96050cec720 100644 --- a/Content.Shared/Item/ItemToggle/Components/ItemToggleMeleeWeaponComponent.cs +++ b/Content.Shared/Item/ItemToggle/Components/ItemToggleMeleeWeaponComponent.cs @@ -3,6 +3,7 @@ // SPDX-License-Identifier: MIT using Content.Shared.Damage; +using Content.Shared.FixedPoint; using Robust.Shared.Audio; using Robust.Shared.GameStates; @@ -70,4 +71,18 @@ public sealed partial class ItemToggleMeleeWeaponComponent : Component /// [ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField] public bool DeactivatedSecret = false; + + // Funky + + /// + /// The factor of stamina damage, proportional to blunt damage dealt, done by the item when activated. + /// + [ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField] + public FixedPoint2? ActivatedBluntStaminaDamageFactor = null; + + /// + /// The factor of stamina damage, proportional to blunt damage dealt, done by the item when deactivated. + /// + [ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField] + public FixedPoint2? DeactivatedBluntStaminaDamageFactor = null; } diff --git a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs index f869a130157..d70fd0380b5 100644 --- a/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs +++ b/Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs @@ -1059,6 +1059,15 @@ private void OnItemToggle(EntityUid uid, ItemToggleMeleeWeaponComponent itemTogg { meleeWeapon.Hidden = false; } + + // Funky + if (itemToggleMelee.ActivatedBluntStaminaDamageFactor != null) + { + //Setting deactivated damage to the weapon's regular value before changing it. + itemToggleMelee.DeactivatedBluntStaminaDamageFactor ??= meleeWeapon.BluntStaminaDamageFactor; + meleeWeapon.BluntStaminaDamageFactor = (FixedPoint2)itemToggleMelee.ActivatedBluntStaminaDamageFactor; + DirtyField(uid, meleeWeapon, nameof(MeleeWeaponComponent.BluntStaminaDamageFactor)); + } } else { @@ -1087,6 +1096,13 @@ private void OnItemToggle(EntityUid uid, ItemToggleMeleeWeaponComponent itemTogg { meleeWeapon.Hidden = true; } + + // Funky + if (itemToggleMelee.DeactivatedBluntStaminaDamageFactor != null) + { + meleeWeapon.BluntStaminaDamageFactor = (FixedPoint2)itemToggleMelee.DeactivatedBluntStaminaDamageFactor; + DirtyField(uid, meleeWeapon, nameof(MeleeWeaponComponent.BluntStaminaDamageFactor)); + } } } } diff --git a/Resources/Audio/_Funkystation/Effects/HitImpacts/attributions.yml b/Resources/Audio/_Funkystation/Effects/HitImpacts/attributions.yml new file mode 100644 index 00000000000..35f26609d7f --- /dev/null +++ b/Resources/Audio/_Funkystation/Effects/HitImpacts/attributions.yml @@ -0,0 +1,9 @@ +# SPDX-FileCopyrightText: 2026 W.xyz() <84605679+pirakaplant@users.noreply.github.com> +# +# SPDX-License-Identifier: MIT + + +- files: ["nightstick1.ogg", "nightstick2.ogg"] + license: "CC0-1.0" + copyright: "Created by @IamJustHereYknow (GitHub), sourced from CC0 sounds by SnowfightStudios, WasabiWielder, and User391915396 (all Freesound)." + source: "https://freesound.org/people/SnowFightStudios/sounds/669883/" # and https://freesound.org/people/WasabiWielder/sounds/323375/ and https://freesound.org/people/User391915396/sounds/370238/ but this YAML template only lets you list one source at a time diff --git a/Resources/Audio/_Funkystation/Effects/HitImpacts/nightstick1.ogg b/Resources/Audio/_Funkystation/Effects/HitImpacts/nightstick1.ogg new file mode 100644 index 00000000000..6be7be73cc6 Binary files /dev/null and b/Resources/Audio/_Funkystation/Effects/HitImpacts/nightstick1.ogg differ diff --git a/Resources/Audio/_Funkystation/Effects/HitImpacts/nightstick2.ogg b/Resources/Audio/_Funkystation/Effects/HitImpacts/nightstick2.ogg new file mode 100644 index 00000000000..f0d20f52990 Binary files /dev/null and b/Resources/Audio/_Funkystation/Effects/HitImpacts/nightstick2.ogg differ diff --git a/Resources/Audio/_Funkystation/Weapons/attributions.yml b/Resources/Audio/_Funkystation/Weapons/attributions.yml new file mode 100644 index 00000000000..a94d6d6670b --- /dev/null +++ b/Resources/Audio/_Funkystation/Weapons/attributions.yml @@ -0,0 +1,14 @@ +# SPDX-FileCopyrightText: 2026 W.xyz() <84605679+pirakaplant@users.noreply.github.com> +# +# SPDX-License-Identifier: MIT + + +- files: ["nightstick_extend.ogg"] + license: "CC-BY-4.0" + copyright: "Clipped from two sounds by @pirakaplant (GitHub): one by Tairblenn (Freesound) under CC0, the other by Brsjak (Freesound) under CC-BY-4.0." + source: "https://freesound.org/people/Brsjak/sounds/482880/" # and https://freesound.org/people/Tairblenn/sounds/538019/ but this YAML template only lets you list one source at a time + +- files: ["nightstick_retract.ogg"] + license: "CC0-1.0" + copyright: "Clipped from a sound from Tairblenn (Freesound), also under CC0, by @pirakaplant (GitHub)." + source: "https://freesound.org/people/Tairblenn/sounds/538019/" diff --git a/Resources/Audio/_Funkystation/Weapons/nightstick_extend.ogg b/Resources/Audio/_Funkystation/Weapons/nightstick_extend.ogg new file mode 100644 index 00000000000..a87eee846f7 Binary files /dev/null and b/Resources/Audio/_Funkystation/Weapons/nightstick_extend.ogg differ diff --git a/Resources/Audio/_Funkystation/Weapons/nightstick_retract.ogg b/Resources/Audio/_Funkystation/Weapons/nightstick_retract.ogg new file mode 100644 index 00000000000..e9524205811 Binary files /dev/null and b/Resources/Audio/_Funkystation/Weapons/nightstick_retract.ogg differ diff --git a/Resources/Locale/en-US/datasets/figurines.ftl b/Resources/Locale/en-US/datasets/figurines.ftl index 87e6a7a6705..dd365a4daf6 100644 --- a/Resources/Locale/en-US/datasets/figurines.ftl +++ b/Resources/Locale/en-US/datasets/figurines.ftl @@ -133,7 +133,7 @@ figurines-security-1 = I am the law! figurines-security-2 = You have violated article 1984. figurines-security-3 = Whenever I get bored I use the clown as target practice. figurines-security-4 = You have two rights: to remain silent and to cry about it. -figurines-security-5 = Harmbaton? It sure as hell harms! +figurines-security-5 = It's called a nightstick because it's gonna beat the living daylights outta you. figurines-security-6 = Space law? Never heard of it. figurines-security-7 = Random search! Hand it over. figurines-security-8 = I love donuts. @@ -202,7 +202,7 @@ figurines-clown-7 = Can I have AA? Please? figurines-clown-8 = I'm a clown, but you're the whole circus! figurines-greytider-1 = Man, this party stinks. I fucking hate these people. -figurines-greytider-2 = Uh-oh, who's lost their stunbaton? +figurines-greytider-2 = Uh-oh, who's lost their nightstick? figurines-greytider-3 = Robust. figurines-greytider-4 = I'm not me without a toolbox. figurines-greytider-5 = Grey tide station wide! diff --git a/Resources/Locale/en-US/research/technologies.ftl b/Resources/Locale/en-US/research/technologies.ftl index 62432b8dd6b..6c02e9e0632 100644 --- a/Resources/Locale/en-US/research/technologies.ftl +++ b/Resources/Locale/en-US/research/technologies.ftl @@ -28,7 +28,7 @@ research-technology-uranium-munitions = Uranium Munitions research-technology-explosive-technology = Explosive Technology research-technology-special-means = Special Means research-technology-weaponized-laser-manipulation = Weaponized Laser Manipulation -research-technology-nonlethal-ammunition = Nonlethal Ammunition +research-technology-nonlethal-ammunition = Less-Lethal Ammunition # Funky - Made name more accurate research-technology-practice-ammunition = Practice Ammunition research-technology-concentrated-laser-weaponry = Concentrated Laser Weaponry research-technology-wave-particle-harnessing = Wave Particle Harnessing diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index b7dc17dd40c..08690fcd6e9 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -244,7 +244,8 @@ uplink-observation-kit-name = Observation Kit uplink-observation-kit-desc = Includes surveillance camera monitor board and security hud disguised as sunglasses. uplink-emp-kit-name = Electrical Disruptor Kit -uplink-emp-kit-desc = The ultimate reversal on energy-based weaponry: Disables disablers, stuns stunbatons, discharges laser guns! Contains 3 EMP grenades and an EMP implanter. Note: Does not disrupt actual firearms. +# Changed the description because we don't have stun batons or disablers anymore +uplink-emp-kit-desc = The ultimate reversal on energy-based weaponry, to show those laser-losers who's in charge! Contains 3 EMP grenades and an EMP implanter. Note: Does not disrupt ballistic firearms. uplink-decoy-kit-name = Decoy Kit uplink-decoy-kit-desc = State-of-the-art distraction technology straight from RND. Comes with five realistic balloons, four decoy grenades, and some snap poppers! diff --git a/Resources/Prototypes/Alerts/alerts.yml b/Resources/Prototypes/Alerts/alerts.yml index 7657579b8ab..dcca5582d0c 100644 --- a/Resources/Prototypes/Alerts/alerts.yml +++ b/Resources/Prototypes/Alerts/alerts.yml @@ -170,8 +170,8 @@ - type: alert id: Stun icons: - - sprite: /Textures/Objects/Weapons/Melee/stunbaton.rsi #Should probably draw a proper icon - state: stunbaton_off + - sprite: /Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi # Funky - Stun batons aren't used to stun anymore. Original comment suggested making a separate icon so that's another alternative + state: icon name: alerts-stunned-name description: alerts-stunned-desc diff --git a/Resources/Prototypes/Catalog/Fills/Crates/security.yml b/Resources/Prototypes/Catalog/Fills/Crates/security.yml index 047aefe4ed8..3e32b50c181 100644 --- a/Resources/Prototypes/Catalog/Fills/Crates/security.yml +++ b/Resources/Prototypes/Catalog/Fills/Crates/security.yml @@ -45,20 +45,21 @@ - type: entity parent: CrateSecgear id: CrateSecurityNonlethal - name: nonlethals crate - description: Contains a mix of disablers, stun batons, and flashes. Requires Security access to open. + name: less-lethals crate + description: Contains a mix of nightsticks, flashes, shell guns, and beanbag shells. Requires Security access to open. components: - type: EntityTableContainerFill containers: entity_storage: !type:AllSelector children: - - id: WeaponDisabler - amount: 3 - - id: Stunbaton + - id: Nightstick amount: 3 - id: BoxFlashbang - id: Flash amount: 3 + - id: WeaponFlareGunSecurity # Funky + amount: 3 + - id: BoxBeanbag # Funky - That's 5 shots for each, plus 1 extra to squabble over # - Pepperspray # - GrenadeTeargas diff --git a/Resources/Prototypes/Catalog/Fills/Items/belt.yml b/Resources/Prototypes/Catalog/Fills/Items/belt.yml index 33eb9860fd9..5d06a69f1e7 100644 --- a/Resources/Prototypes/Catalog/Fills/Items/belt.yml +++ b/Resources/Prototypes/Catalog/Fills/Items/belt.yml @@ -83,7 +83,7 @@ id: BeltSecurityEntityTable table: !type:AllSelector children: - - id: Stunbaton + - id: Nightstick # Funky - id: Handcuffs amount: 2 - id: HoloprojectorSecurity diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml index c0623b764a7..9c5d7bc434f 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/heads.yml @@ -114,7 +114,6 @@ prob: 0.1 - id: RubberStampCaptain - id: SpaceCash1000 - - id: WeaponDisabler - id: ClothingEyesGlassesCommand - id: OrganSkeletonPersonHead # A skull to accompany your skeleton crew conditions: @@ -201,7 +200,7 @@ - id: ClothingNeckGoldmedal - id: DoorRemoteService - id: HoPIDCard - - id: WeaponDisabler + # TODO: Port mecha-cane to replace the disabler - id: ClothingEyesHudCommand - id: PlushieLizardJobHeadofpersonnel prob: 0.02 @@ -400,8 +399,6 @@ - id: HoloprojectorSecurity - id: RubberStampHos - id: BoxHoSCircuitboards - - id: WeaponDisabler - - id: WeaponTaser - id: WantedListCartridge - id: DrinkHosFlask - id: PlushieLizardJobHeadofsecurity diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/security.yml b/Resources/Prototypes/Catalog/Fills/Lockers/security.yml index c8f9845eeb1..03d98eaf499 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/security.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/security.yml @@ -76,8 +76,6 @@ table: !type:AllSelector children: - id: FlashlightSeclite - - id: WeaponDisabler - - id: WeaponTaser - id: ClothingBeltSecurityFilled - id: Flash - id: ClothingEyesGlassesSecurity @@ -122,8 +120,6 @@ children: - id: FlashlightSeclite prob: 0.8 - - id: WeaponDisabler - - id: WeaponTaser - id: ClothingUniformJumpsuitSecGrey prob: 0.3 - id: ClothingHeadHelmetBasic @@ -161,7 +157,7 @@ table: !type:AllSelector children: - id: ClothingEyesGlassesSecurity - - id: WeaponTaser + - id: WeaponTaser # Funky - We're 100% getting rid of brigmed anyway, so I'm not even going to bother touching this - id: WeaponDisabler - id: TrackingImplanter amount: 2 diff --git a/Resources/Prototypes/Datasets/ion_storm.yml b/Resources/Prototypes/Datasets/ion_storm.yml index ac5bcd6ef66..d447a4d6220 100644 --- a/Resources/Prototypes/Datasets/ion_storm.yml +++ b/Resources/Prototypes/Datasets/ion_storm.yml @@ -709,6 +709,7 @@ - MINING TOOLS - MONKEYS - MULTITOOLS + - NIGHTSTICKS - ORES - OXYGEN TANKS - PACKETS @@ -744,7 +745,6 @@ - SPACESUITS - SPESOS - STEEL SHEETS - - STUN BATONS - SUITS - SUNGLASSES - SWORDS diff --git a/Resources/Prototypes/Entities/Markers/Spawners/Random/Department/security.yml b/Resources/Prototypes/Entities/Markers/Spawners/Random/Department/security.yml index ca235d669b2..21a11aaae37 100644 --- a/Resources/Prototypes/Entities/Markers/Spawners/Random/Department/security.yml +++ b/Resources/Prototypes/Entities/Markers/Spawners/Random/Department/security.yml @@ -43,8 +43,6 @@ - BoxHandcuff - BoxFlashbang - TearGasGrenade - - WeaponDisabler - - Stunbaton rareChance: 0.05 prototypes: - Flash @@ -55,7 +53,7 @@ - SecurityWhistle - Tourniquet chance: 0.85 - + # Armory loot spawner # Automatics are a complete mess right now, so the AK-MS And WT-550 have been commented out for consistency's sake. I have no idea what role these guns are supposed to fufill. - type: entity @@ -87,7 +85,6 @@ - ClothingOuterArmorRiot - ClothingOuterArmorBulletproof # - WeaponSubMachineGunWt550 - - WeaponDisabler - WeaponPistolMk58 - WeaponRifleLecter - WeaponSubMachineGunDrozd @@ -114,7 +111,6 @@ rareChance: 0.05 prototypes: # - WeaponSubMachineGunWt550 - - WeaponDisabler - WeaponPistolMk58 - WeaponRifleLecter - WeaponSubMachineGunDrozd @@ -148,4 +144,4 @@ - ClothingOuterArmorRiot - ClothingOuterArmorBulletproof chance: 0.95 - offset: 0.0 \ No newline at end of file + offset: 0.0 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml index fd031cbfb7e..012e2f28703 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Battery/battery_guns.yml @@ -914,7 +914,7 @@ name: energy shotgun parent: [BaseWeaponBattery, BaseGunWieldable, BaseSecurityContraband] id: WeaponEnergyShotgun - description: A one-of-a-kind prototype energy weapon that uses various shotgun configurations. It offers the possibility of both lethal and non-lethal shots, making it a versatile weapon. + description: A one-of-a-kind prototype energy weapon that uses two different shotgun configurations. It offers the possibility of both focused and wide shots, making it a versatile weapon. # Funky components: - type: Sprite sprite: Objects/Weapons/Guns/Battery/energy_shotgun.rsi @@ -938,13 +938,10 @@ - type: BatteryAmmoProvider proto: BulletLaserSpreadNarrow fireCost: 80 - - type: BatteryWeaponFireModes + - type: BatteryWeaponFireModes # Funky - Removed disabler mode fireModes: - proto: BulletLaserSpreadNarrow fireCost: 80 - - proto: BulletDisablerSmgSpread - fireCost: 48 - pacifismAllowedMode: true - type: Item size: Large sprite: Objects/Weapons/Guns/Battery/inhands_64x.rsi @@ -958,7 +955,7 @@ name: energy magnum parent: [BaseWeaponBatterySmall, BaseGrandTheftContraband] id: WeaponEnergyMagnum - description: A high powered self-charging energy pistol designed for elite security personnel. It has has three firing modes allowing for either high damage, window piercing, or non-lethal disabling. + description: A high powered self-charging energy pistol designed for elite security personnel. It has has two firing modes, allowing for either high damage or window piercing. # Funky components: - type: Sprite sprite: Objects/Weapons/Guns/Battery/energy_magnum.rsi @@ -988,15 +985,12 @@ - type: BatteryAmmoProvider proto: BulletLaserMagnum fireCost: 150 - - type: BatteryWeaponFireModes + - type: BatteryWeaponFireModes # Funky - Removed disabler mode fireModes: - proto: BulletLaserMagnum fireCost: 150 - proto: BulletLaserWindowPiercingMagnum fireCost: 150 - - proto: BulletDisabler - fireCost: 62.5 - pacifismAllowedMode: true - type: BatterySelfRecharger autoRechargeRate: 48 autoRechargePauseTime: 10 diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index a5f307d74e9..196c8f784be 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -547,7 +547,6 @@ - SecurityExplosives - SecurityAmmo - SecurityWeapons - - SecurityDisablers - type: EmagLatheRecipes emagStaticPacks: - SyndicateAmmoStatic diff --git a/Resources/Prototypes/Magic/event_spells.yml b/Resources/Prototypes/Magic/event_spells.yml index 93c391c717a..130da2379d8 100644 --- a/Resources/Prototypes/Magic/event_spells.yml +++ b/Resources/Prototypes/Magic/event_spells.yml @@ -136,12 +136,6 @@ orGroup: Guns - id: WeaponDisablerPractice orGroup: Guns - - id: WeaponDisabler - orGroup: Guns - - id: WeaponDisablerSMG - orGroup: Guns - - id: WeaponTaser - orGroup: Guns - id: WeaponAntiqueLaser orGroup: Guns - id: WeaponAdvancedLaser diff --git a/Resources/Prototypes/Recipes/Lathes/Packs/security.yml b/Resources/Prototypes/Recipes/Lathes/Packs/security.yml index 90e9d0431fa..24958c556f5 100644 --- a/Resources/Prototypes/Recipes/Lathes/Packs/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/Packs/security.yml @@ -62,7 +62,6 @@ id: SecurityWeaponsStatic recipes: - Flash - - Stunbaton - CombatKnife - RiotShield @@ -139,9 +138,3 @@ - WeaponLaserCarbine - WeaponXrayCannon - WeaponTemperatureGun - -- type: latheRecipePack - id: SecurityDisablers - recipes: - - WeaponDisabler - - WeaponDisablerSMG diff --git a/Resources/Prototypes/Research/arsenal.yml b/Resources/Prototypes/Research/arsenal.yml index 441be291d05..46edc243b8c 100644 --- a/Resources/Prototypes/Research/arsenal.yml +++ b/Resources/Prototypes/Research/arsenal.yml @@ -84,7 +84,6 @@ - MagazineShotgunBeanbag - BoxShellTranquilizer - BoxBeanbag - - WeaponDisabler - type: technology id: UraniumMunitions @@ -120,7 +119,6 @@ - Truncheon - TelescopicShield - HoloprojectorSecurity - - WeaponDisablerSMG - type: technology id: ExplosiveTechnology diff --git a/Resources/Prototypes/Roles/Jobs/CentComm/emergencyresponseteam.yml b/Resources/Prototypes/Roles/Jobs/CentComm/emergencyresponseteam.yml index af8163023de..19e3317b476 100644 --- a/Resources/Prototypes/Roles/Jobs/CentComm/emergencyresponseteam.yml +++ b/Resources/Prototypes/Roles/Jobs/CentComm/emergencyresponseteam.yml @@ -68,7 +68,6 @@ ears: ClothingHeadsetAltCentCom belt: ClothingBeltMilitaryWebbingERT pocket2: CombatKnife - suitstorage: WeaponDisablerSMG storage: back: - Binoculars @@ -81,7 +80,7 @@ - MedkitCombatFilled - TelescopicShield belt: - - Stunbaton + - Truncheon # Funky - Handcuffs - Handcuffs - CrowbarRed @@ -93,7 +92,6 @@ parent: ERTLeaderGearEVA id: ERTLeaderGearArmed equipment: - pocket2: WeaponDisabler suitstorage: WeaponRifleLecterXL8 storage: back: @@ -108,7 +106,7 @@ - GrenadeShrapnel - EmpGrenade belt: - - Truncheon + - Truncheon # Funky - Handcuffs - Handcuffs - CrowbarRed @@ -338,7 +336,6 @@ ears: ClothingHeadsetAltCentCom belt: ClothingBeltMilitaryWebbingERT pocket2: CombatKnife - suitstorage: WeaponDisablerSMG storage: back: - BoxZiptie @@ -351,7 +348,7 @@ - HoloprojectorSecurity - PowerCellHigh belt: - - Stunbaton + - Truncheon # Funky - Handcuffs - Handcuffs - CrowbarRed @@ -391,7 +388,6 @@ parent: ERTSecurityGearEVA id: ERTSecurityGearArmedGrenade equipment: - pocket2: WeaponDisabler suitstorage: WeaponLauncherHydraLethal storage: back: @@ -411,7 +407,7 @@ - GrenadeFlash - MagazinePistol belt: - - Truncheon + - Truncheon # Funky - Handcuffs - Handcuffs - CrowbarRed @@ -423,7 +419,6 @@ parent: ERTSecurityGearEVA id: ERTSecurityGearArmedVanguard equipment: - pocket2: WeaponDisabler suitstorage: WeaponSubMachineGunWt550 storage: back: @@ -440,7 +435,7 @@ - MagazinePistolSubMachineGunTopMounted - MagazinePistolSubMachineGunTopMounted belt: - - Truncheon + - Truncheon # Funky - Handcuffs - Handcuffs - CrowbarRed @@ -452,7 +447,6 @@ parent: ERTSecurityGearEVA id: ERTSecurityGearArmedShotgun equipment: - pocket2: WeaponDisabler suitstorage: WeaponShotgunEnforcer storage: back: @@ -466,7 +460,7 @@ - CableDetStack - BoxDetonator belt: - - Truncheon + - Truncheon # Funky - Handcuffs - Handcuffs - CrowbarRed @@ -551,7 +545,6 @@ id: ERTMedicalGearArmed equipment: suitstorage: WeaponRifleLecter - pocket2: WeaponDisabler storage: back: - Hypospray @@ -565,7 +558,7 @@ - ClothingEyesGlassesChemical - ChemistryBottleOmnizine belt: - - Truncheon + - Truncheon # Funky - Zipties - CrowbarRed - MagazineRifle diff --git a/Resources/Prototypes/Roles/Jobs/Fun/visitors_startinggear.yml b/Resources/Prototypes/Roles/Jobs/Fun/visitors_startinggear.yml index b40595df3c1..6fdee90612e 100644 --- a/Resources/Prototypes/Roles/Jobs/Fun/visitors_startinggear.yml +++ b/Resources/Prototypes/Roles/Jobs/Fun/visitors_startinggear.yml @@ -14,11 +14,10 @@ head: ClothingHeadHatCaptain neck: ClothingNeckCloakCap id: VisitorPDA - belt: WeaponDisabler + #belt: # TODO: RG-2 back: ClothingBackpackCaptain ears: ClothingHeadsetAltCommand outerClothing: ClothingOuterArmorCaptainCarapace - pocket1: WeaponDisabler - type: startingGear id: VisitorCaptainAlt @@ -30,11 +29,10 @@ head: ClothingHeadHatCapcap neck: ClothingNeckMantleCap id: VisitorPDA - belt: WeaponDisabler + #belt: # TODO: RG-2 back: ClothingBackpackSatchelCaptain ears: ClothingHeadsetAltCommand outerClothing: ClothingOuterArmorCaptainCarapace - pocket1: WeaponDisabler - type: startingGear id: VisitorCE @@ -48,7 +46,7 @@ back: ClothingBackpackDuffelEngineering ears: ClothingHeadsetCE outerClothing: ClothingOuterVestHazard - pocket1: WeaponDisabler + #pocket1: # TODO: RG-2 - type: startingGear id: VisitorCEAlt @@ -62,7 +60,7 @@ back: ClothingBackpackSatchelEngineering ears: ClothingHeadsetCE outerClothing: ClothingOuterWinterCE - pocket1: WeaponDisabler + #pocket1: # TODO: RG-2 - type: startingGear id: VisitorCMO @@ -77,7 +75,7 @@ ears: ClothingHeadsetCMO belt: ClothingBeltMedicalFilled outerClothing: ClothingOuterCoatLabCmo - pocket1: WeaponDisabler + #pocket1: # TODO: RG-2 - type: startingGear id: VisitorCMOAlt @@ -92,7 +90,7 @@ ears: ClothingHeadsetCMO belt: ClothingBeltMedicalFilled outerClothing: ClothingOuterCoatLabCmo - pocket1: WeaponDisabler + #pocket1: # TODO: RG-2 - type: startingGear id: VisitorHOP @@ -102,11 +100,10 @@ head: ClothingHeadHatHopcap neck: ClothingNeckCloakHop id: VisitorPDA - belt: WeaponDisabler + #belt: # TODO: RG-2 back: ClothingBackpackDebug ears: ClothingHeadsetAltCommand outerClothing: ClothingOuterWinterHoP - pocket1: WeaponDisabler - type: startingGear id: VisitorHOPAlt @@ -116,11 +113,10 @@ head: ClothingHeadHatHopcap neck: ClothingNeckMantleHOP id: VisitorPDA - belt: WeaponDisabler + #belt: # TODO: RG-2 back: ClothingBackpackSatchelLeather ears: ClothingHeadsetAltCommand outerClothing: ClothingOuterWinterHoP - pocket1: WeaponDisabler - type: startingGear id: VisitorHOS @@ -136,7 +132,7 @@ ears: ClothingHeadsetAltSecurity eyes: ClothingEyesGlassesSecurity outerClothing: ClothingOuterCoatHoSTrench - pocket1: WeaponDisabler + #pocket1: # TODO: RG-2 pocket2: MagazinePistolSubMachineGunTopMounted inhand: - WeaponSubMachineGunWt550 @@ -154,7 +150,7 @@ back: ClothingBackpackSatchelLeather ears: ClothingHeadsetAltSecurity eyes: ClothingEyesGlassesSecurity - pocket1: WeaponDisabler + #pocket1: # TODO: RG-2 pocket2: MagazinePistolSubMachineGunTopMounted inhand: - WeaponSubMachineGunWt550 @@ -171,7 +167,7 @@ back: ClothingBackpackScience ears: ClothingHeadsetRD outerClothing: ClothingOuterCoatRD - pocket1: WeaponDisabler + #pocket1: # TODO: RG-2 - type: startingGear id: VisitorRDAlt @@ -185,7 +181,7 @@ back: ClothingBackpackSatchelScience ears: ClothingHeadsetRD outerClothing: ClothingOuterCoatRD - pocket1: WeaponDisabler + #pocket1: # TODO: RG-2 - type: startingGear id: VisitorQM @@ -198,7 +194,7 @@ back: ClothingBackpackCargo ears: ClothingHeadsetQM outerClothing: ClothingOuterWinterQM - pocket1: WeaponDisabler + #pocket1: # TODO: RG-2 pocket2: AppraisalTool - type: startingGear @@ -212,7 +208,7 @@ back: ClothingBackpackSatchelCargo ears: ClothingHeadsetQM outerClothing: ClothingOuterWinterQM - pocket1: WeaponDisabler + #pocket1: # TODO: RG-2 pocket2: AppraisalTool # Security @@ -337,7 +333,7 @@ ears: ClothingHeadsetSecurity eyes: ClothingEyesGlassesSecurity outerClothing: ClothingOuterCoatWarden - pocket1: WeaponDisabler + #pocket1: # TODO: RG-2 pocket2: Zipties inhand: - FlashlightSeclite @@ -356,7 +352,7 @@ ears: ClothingHeadsetSecurity eyes: ClothingEyesGlassesSecurity outerClothing: ClothingOuterWinterWarden - pocket1: WeaponDisabler + #pocket1: # TODO: RG-2 pocket2: Zipties inhand: - FlashlightSeclite @@ -1681,7 +1677,7 @@ back: ClothingBackpackDuffelEngineering #ears: # No headsets. outerClothing: ClothingOuterVestHazard - pocket1: WeaponDisabler + #pocket1: # TODO: RG-2 - type: startingGear id: ChallengeVictimCEAlt @@ -1695,7 +1691,7 @@ back: ClothingBackpackSatchelEngineering #ears: # No headsets. outerClothing: ClothingOuterWinterCE - pocket1: WeaponDisabler + #pocket1: # TODO: RG-2 # CHALLENGE # carefully consider everything you add to these. These are meant for roles that are placed in survival situations where every item will be a resource. @@ -1708,7 +1704,7 @@ head: ClothingHeadHatHopcap neck: ClothingNeckCloakHop id: VisitorPDA - belt: WeaponDisabler + #belt: # TODO: RG-2 back: ClothingBackpackDebug #ears: #No headsets. outerClothing: ClothingOuterWinterHoP @@ -1721,7 +1717,7 @@ head: ClothingHeadHatHopcap neck: ClothingNeckMantleHOP id: VisitorPDA - belt: WeaponDisabler + #belt: # TODO: RG-2 back: ClothingBackpackSatchelLeather #ears: #No headsets. outerClothing: ClothingOuterWinterHoP diff --git a/Resources/Prototypes/_Funkystation/Entities/Objects/Weapons/Melee/nightstick.yml b/Resources/Prototypes/_Funkystation/Entities/Objects/Weapons/Melee/nightstick.yml new file mode 100644 index 00000000000..2d6e11de086 --- /dev/null +++ b/Resources/Prototypes/_Funkystation/Entities/Objects/Weapons/Melee/nightstick.yml @@ -0,0 +1,64 @@ +- type: entity + name: nightstick + parent: [BaseItem, BaseSecurityContraband] + id: Nightstick + description: A collapsible baton designed to beat troublemakers into submission. + components: + - type: Sprite + sprite: _Funkystation/Objects/Weapons/Melee/nightstick.rsi + layers: + - state: nightstick_handle + - state: nightstick_extend + visible: false + map: [ "extend" ] + - type: MeleeWeapon + wideAnimationRotation: -135 + damage: + types: + Blunt: 5 + soundHit: + collection: MetalThud + - type: Item + size: Small + - type: ItemToggle + soundActivate: + path: /Audio/_Funkystation/Weapons/nightstick_extend.ogg + soundDeactivate: + path: /Audio/_Funkystation/Weapons/nightstick_retract.ogg + - type: ItemToggleSize + activatedSize: Normal + activatedShape: + - 0,0,0,3 + - type: ItemToggleMeleeWeapon + activatedDamage: + types: + Blunt: 12 + activatedSoundOnHit: + collection: Nightstick + activatedBluntStaminaDamageFactor: 2.5 + - type: ToggleableVisuals + spriteLayer: extend + inhandVisuals: + left: + - state: inhand-left-extend + right: + - state: inhand-right-extend + - type: UseDelay + delay: 0.2 + - type: Tag + tags: + - Truncheon + - type: Clothing + sprite: _Funkystation/Objects/Weapons/Melee/nightstick.rsi + quickEquip: false + slots: + - Belt + - type: DisarmMalus + malus: 0.225 + - type: Appearance + - type: StaticPrice + price: 80 + - type: GuideHelp + guides: + - Security + - Antagonists diff --git a/Resources/Prototypes/_Funkystation/SoundCollections/hit_impacts.yml b/Resources/Prototypes/_Funkystation/SoundCollections/hit_impacts.yml new file mode 100644 index 00000000000..88888ca64b2 --- /dev/null +++ b/Resources/Prototypes/_Funkystation/SoundCollections/hit_impacts.yml @@ -0,0 +1,5 @@ +- type: soundCollection + id: Nightstick + files: + - /Audio/_Funkystation/Effects/HitImpacts/nightstick1.ogg + - /Audio/_Funkystation/Effects/HitImpacts/nightstick2.ogg diff --git a/Resources/ServerInfo/Guidebook/Security/Security.xml b/Resources/ServerInfo/Guidebook/Security/Security.xml index 452d75458f5..cb2338aeea4 100644 --- a/Resources/ServerInfo/Guidebook/Security/Security.xml +++ b/Resources/ServerInfo/Guidebook/Security/Security.xml @@ -15,11 +15,10 @@ They face [textlink="Syndicate Agents" link="Traitors"], [textlink="Nuclear Oper ## Gear -First we have non-lethals a step above simply telling someone to cooperate with instructions. Both the stunbaton and disabler are capable of limiting the movement of an assailant, whereas handcuffs can be applied to deny a criminal free movement and access to their hands. Cuffs will also shove the person down if your [color=red]harm mode[/color] is active during uncuff. +First we have less-lethals, a step above simply telling someone to cooperate with instructions. The nightstick is capable of limiting the movement of an assailant, whereas handcuffs can be applied to deny a criminal free movement and access to their hands. Cuffs will also shove the person down if your [color=red]harm mode[/color] is active during uncuff. - + - ## Flashes diff --git a/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/equipped-BELT.png b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/equipped-BELT.png new file mode 100644 index 00000000000..5426912bf99 Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/equipped-BELT.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/icon.png b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/icon.png new file mode 100644 index 00000000000..92dc0d23098 Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/icon.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/inhand-left-extend.png b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/inhand-left-extend.png new file mode 100644 index 00000000000..71fb042aa37 Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/inhand-left-extend.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/inhand-left.png b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/inhand-left.png new file mode 100644 index 00000000000..c374f80d6d7 Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/inhand-left.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/inhand-right-extend.png b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/inhand-right-extend.png new file mode 100644 index 00000000000..86d342f105d Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/inhand-right-extend.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/inhand-right.png b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/inhand-right.png new file mode 100644 index 00000000000..23780621954 Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/inhand-right.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/meta.json b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/meta.json new file mode 100644 index 00000000000..024c7fa08a5 --- /dev/null +++ b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/meta.json @@ -0,0 +1,40 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "By AraiMaia for Funky Station", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "nightstick_extend" + }, + { + "name": "nightstick_handle" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-right-extend", + "directions": 4 + }, + { + "name": "inhand-left-extend", + "directions": 4 + }, + { + "name": "equipped-BELT", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/nightstick_extend.png b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/nightstick_extend.png new file mode 100644 index 00000000000..bde834d1d86 Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/nightstick_extend.png differ diff --git a/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/nightstick_handle.png b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/nightstick_handle.png new file mode 100644 index 00000000000..fd2f82e8b8b Binary files /dev/null and b/Resources/Textures/_Funkystation/Objects/Weapons/Melee/nightstick.rsi/nightstick_handle.png differ diff --git a/Resources/migration.yml b/Resources/migration.yml index 44b657536a3..3c92dca20b0 100644 --- a/Resources/migration.yml +++ b/Resources/migration.yml @@ -860,3 +860,6 @@ TowelColorYellow: null TowelColorMaroon: null TowelColorSilver: null TowelColorMime: null + +# TODO: When the RG-2 and its safe are ported over, uncomment the line below and add a timestamp. +#GunSafeDisabler: GunSafePistolRg2