Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
// SPDX-License-Identifier: MIT

using Content.Shared.Damage;
using Content.Shared.FixedPoint;
using Robust.Shared.Audio;
using Robust.Shared.GameStates;

Expand Down Expand Up @@ -70,4 +71,18 @@ public sealed partial class ItemToggleMeleeWeaponComponent : Component
/// </summary>
[ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField]
public bool DeactivatedSecret = false;

// Funky

/// <summary>
/// The factor of stamina damage, proportional to blunt damage dealt, done by the item when activated.
/// </summary>
[ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField]
public FixedPoint2? ActivatedBluntStaminaDamageFactor = null;

/// <summary>
/// The factor of stamina damage, proportional to blunt damage dealt, done by the item when deactivated.
/// </summary>
[ViewVariables(VVAccess.ReadWrite), DataField, AutoNetworkedField]
public FixedPoint2? DeactivatedBluntStaminaDamageFactor = null;
}
16 changes: 16 additions & 0 deletions Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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
{
Expand Down Expand Up @@ -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));
}
}
}
}
Original file line number Diff line number Diff line change
@@ -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
Binary file not shown.
Binary file not shown.
14 changes: 14 additions & 0 deletions Resources/Audio/_Funkystation/Weapons/attributions.yml
Original file line number Diff line number Diff line change
@@ -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/"
Binary file not shown.
Binary file not shown.
4 changes: 2 additions & 2 deletions Resources/Locale/en-US/datasets/figurines.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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!
Expand Down
2 changes: 1 addition & 1 deletion Resources/Locale/en-US/research/technologies.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 2 additions & 1 deletion Resources/Locale/en-US/store/uplink-catalog.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -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!
Expand Down
4 changes: 2 additions & 2 deletions Resources/Prototypes/Alerts/alerts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
11 changes: 6 additions & 5 deletions Resources/Prototypes/Catalog/Fills/Crates/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion Resources/Prototypes/Catalog/Fills/Items/belt.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@
id: BeltSecurityEntityTable
table: !type:AllSelector
children:
- id: Stunbaton
- id: Nightstick # Funky
- id: Handcuffs
amount: 2
- id: HoloprojectorSecurity
Expand Down
5 changes: 1 addition & 4 deletions Resources/Prototypes/Catalog/Fills/Lockers/heads.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -400,8 +399,6 @@
- id: HoloprojectorSecurity
- id: RubberStampHos
- id: BoxHoSCircuitboards
- id: WeaponDisabler
- id: WeaponTaser
- id: WantedListCartridge
- id: DrinkHosFlask
- id: PlushieLizardJobHeadofsecurity
Expand Down
6 changes: 1 addition & 5 deletions Resources/Prototypes/Catalog/Fills/Lockers/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,6 @@
table: !type:AllSelector
children:
- id: FlashlightSeclite
- id: WeaponDisabler
- id: WeaponTaser
- id: ClothingBeltSecurityFilled
- id: Flash
- id: ClothingEyesGlassesSecurity
Expand Down Expand Up @@ -122,8 +120,6 @@
children:
- id: FlashlightSeclite
prob: 0.8
- id: WeaponDisabler
- id: WeaponTaser
- id: ClothingUniformJumpsuitSecGrey
prob: 0.3
- id: ClothingHeadHelmetBasic
Expand Down Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion Resources/Prototypes/Datasets/ion_storm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,7 @@
- MINING TOOLS
- MONKEYS
- MULTITOOLS
- NIGHTSTICKS
- ORES
- OXYGEN TANKS
- PACKETS
Expand Down Expand Up @@ -744,7 +745,6 @@
- SPACESUITS
- SPESOS
- STEEL SHEETS
- STUN BATONS
- SUITS
- SUNGLASSES
- SWORDS
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,6 @@
- BoxHandcuff
- BoxFlashbang
- TearGasGrenade
- WeaponDisabler
- Stunbaton
rareChance: 0.05
prototypes:
- Flash
Expand All @@ -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
Expand Down Expand Up @@ -87,7 +85,6 @@
- ClothingOuterArmorRiot
- ClothingOuterArmorBulletproof
# - WeaponSubMachineGunWt550
- WeaponDisabler
- WeaponPistolMk58
- WeaponRifleLecter
- WeaponSubMachineGunDrozd
Expand All @@ -114,7 +111,6 @@
rareChance: 0.05
prototypes:
# - WeaponSubMachineGunWt550
- WeaponDisabler
- WeaponPistolMk58
- WeaponRifleLecter
- WeaponSubMachineGunDrozd
Expand Down Expand Up @@ -148,4 +144,4 @@
- ClothingOuterArmorRiot
- ClothingOuterArmorBulletproof
chance: 0.95
offset: 0.0
offset: 0.0
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,6 @@
- SecurityExplosives
- SecurityAmmo
- SecurityWeapons
- SecurityDisablers
- type: EmagLatheRecipes
emagStaticPacks:
- SyndicateAmmoStatic
Expand Down
6 changes: 0 additions & 6 deletions Resources/Prototypes/Magic/event_spells.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
7 changes: 0 additions & 7 deletions Resources/Prototypes/Recipes/Lathes/Packs/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@
id: SecurityWeaponsStatic
recipes:
- Flash
- Stunbaton
- CombatKnife
- RiotShield

Expand Down Expand Up @@ -139,9 +138,3 @@
- WeaponLaserCarbine
- WeaponXrayCannon
- WeaponTemperatureGun

- type: latheRecipePack
id: SecurityDisablers
recipes:
- WeaponDisabler
- WeaponDisablerSMG
2 changes: 0 additions & 2 deletions Resources/Prototypes/Research/arsenal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@
- MagazineShotgunBeanbag
- BoxShellTranquilizer
- BoxBeanbag
- WeaponDisabler

- type: technology
id: UraniumMunitions
Expand Down Expand Up @@ -120,7 +119,6 @@
- Truncheon
- TelescopicShield
- HoloprojectorSecurity
- WeaponDisablerSMG

- type: technology
id: ExplosiveTechnology
Expand Down
Loading
Loading