* Revert "Make flare gun explode, damage and stun the player when used with the wrong ammo (#22349)"
This reverts commit
e301378114b245fa6927372f83c19868cb90b13c.
# Conflicts:
# Content.Shared/Weapons/Ranged/Components/GunComponent.cs
# Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/shotgun.yml
# Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/shotgun.yml
* Fix revert conflicts
* Update Content.Shared/Weapons/Ranged/Components/GunComponent.cs
case CartridgeAmmoComponent cartridge:
if (!cartridge.Spent)
{
- if (gun.CompatibleAmmo != null &&
- !gun.CompatibleAmmo.Exists(ammoAllowed => ammoAllowed.Equals(cartridge.Prototype))
- && user != null)
- {
- if (gun.DamageOnWrongAmmo != null)
- Damageable.TryChangeDamage(user, gun.DamageOnWrongAmmo, origin: user);
- _stun.TryParalyze(user.Value, TimeSpan.FromSeconds(3f), true);
-
- Audio.PlayPvs(new SoundPathSpecifier("/Audio/Weapons/Guns/Gunshots/bang.ogg"), gunUid);
-
- PopupSystem.PopupEntity(Loc.GetString("gun-component-wrong-ammo"), user.Value);
- _adminLogger.Add(LogType.EntityDelete, LogImpact.Medium, $"Shot wrong ammo by {ToPrettyString(user.Value)} deleted {ToPrettyString(gunUid)}");
- userImpulse = false;
-
- SetCartridgeSpent(ent!.Value, cartridge, true);
- MuzzleFlash(gunUid, cartridge, user);
- Del(gunUid);
- if (cartridge.DeleteOnSpawn)
- Del(ent.Value);
- return;
- }
if (cartridge.Count > 1)
{
var ev = new GunGetAmmoSpreadEvent(cartridge.Spread);
using Robust.Shared.Audio;
using Robust.Shared.GameStates;
using Robust.Shared.Map;
-using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
namespace Content.Shared.Weapons.Ranged.Components;
[DataField]
public bool ResetOnHandSelected = true;
- /// <summary>
- /// Type of ammo the gun can work with
- /// </summary>
- [DataField]
- public List<ProtoId<TagPrototype>>? CompatibleAmmo;
-
- /// <summary>
- /// Damage the gun deals when used with wrong ammo
- /// </summary>
- [DataField]
- public DamageSpecifier? DamageOnWrongAmmo = null;
-
/// <summary>
/// The base value for how fast the projectile moves.
/// </summary>
gun-disabled = You can't use guns!
gun-clumsy = The gun blows up in your face!
gun-set-fire-mode = Set to {$mode}
-gun-component-wrong-ammo = Wrong ammo!
# SelectiveFire
gun-SemiAuto = semi-auto
-- type: entity
+- type: entity
id: BaseShellShotgun
name: shell (.50)
parent: BaseCartridge
name: uranium shotgun shell
parent: BaseShellShotgun
components:
- - type: Sprite
- layers:
- - state: depleted-uranium
- map: [ "enum.AmmoVisualLayers.Base" ]
- - type: CartridgeAmmo
- count: 5
- spread: 6
- proto: PelletShotgunUranium
- - type: SpentAmmoVisuals
- state: "depleted-uranium"
-
+ - type: Sprite
+ layers:
+ - state: depleted-uranium
+ map: [ "enum.AmmoVisualLayers.Base" ]
+ - type: CartridgeAmmo
+ count: 5
+ spread: 6
+ proto: PelletShotgunUranium
+ - type: SpentAmmoVisuals
+ state: "depleted-uranium"
-- type: entity
+- type: entity
id: PelletShotgunSlug
name: pellet (.50 slug)
noSpawn: true
!type:PhysShapeAabb
bounds: "-0.1,-0.1,0.1,0.1"
mask:
- - BulletImpassable
- - type: Tag
- tags:
- - PelletShotgunFlare
+ - BulletImpassable
- type: Sprite
sprite: Objects/Weapons/Guns/Projectiles/projectiles2.rsi
state: buckshot-flare
selectedMode: SemiAuto
availableModes:
- SemiAuto
- compatibleAmmo:
- - PelletShotgunFlare
soundGunshot:
path: /Audio/Weapons/Guns/Gunshots/flaregun.ogg
- damageOnWrongAmmo:
- types:
- Blunt: 6.0
- type: BallisticAmmoProvider
whitelist:
tags:
- type: Tag
id: ShellShotgun
-- type: Tag
- id: PelletShotgunFlare
-
- type: Tag
id: Shiv