Disposable turret explodes when empty (#18175)

* turret go boom

* fix ammo

* universal function name

* Also explodes when destroyed

* comment added

* Triggerwhenemptycomponent added

* comment adjusted

* Updated uplink description

* Moved to own event file

* file namespace

* rerun tests

---------

Co-authored-by: Slava0135 <super.novalskiy_0135@inbox.ru>
This commit is contained in:
Arendian
2023-08-01 21:38:22 +02:00
committed by GitHub
parent 78c66cca75
commit 4cd70b241c
8 changed files with 47 additions and 20 deletions

View File

@@ -22,7 +22,7 @@ using Robust.Shared.Physics.Events;
using Robust.Shared.Physics.Systems;
using Content.Shared.Mobs;
using Content.Shared.Mobs.Components;
using Robust.Shared.Player;
using Content.Shared.Weapons.Ranged.Events;
namespace Content.Server.Explosion.EntitySystems
{
@@ -77,6 +77,7 @@ namespace Content.Server.Explosion.EntitySystems
SubscribeLocalEvent<TriggerImplantActionComponent, ActivateImplantEvent>(OnImplantTrigger);
SubscribeLocalEvent<TriggerOnStepTriggerComponent, StepTriggeredEvent>(OnStepTriggered);
SubscribeLocalEvent<TriggerOnSlipComponent, SlipEvent>(OnSlipTriggered);
SubscribeLocalEvent<TriggerWhenEmptyComponent, OnEmptyGunShotEvent>(OnEmptyTriggered);
SubscribeLocalEvent<SpawnOnTriggerComponent, TriggerEvent>(OnSpawnTrigger);
SubscribeLocalEvent<DeleteOnTriggerComponent, TriggerEvent>(HandleDeleteTrigger);
@@ -186,6 +187,11 @@ namespace Content.Server.Explosion.EntitySystems
Trigger(uid, args.Slipped);
}
private void OnEmptyTriggered(EntityUid uid, TriggerWhenEmptyComponent component, ref OnEmptyGunShotEvent args)
{
Trigger(uid, args.EmptyGun);
}
public bool Trigger(EntityUid trigger, EntityUid? user = null)
{
var triggerEvent = new TriggerEvent(trigger, user);