Fix cream pie bomb when eaten or sliced (#25928)

* fix bomb activation when eaten

* no swap / no eject

* activate when sliced
This commit is contained in:
Vyacheslav Kovalevsky
2024-03-13 11:36:08 +03:00
committed by GitHub
parent 855def1fba
commit 0d0edbba4a
4 changed files with 22 additions and 4 deletions

View File

@@ -1,12 +1,11 @@
using Content.Server.Chemistry.Containers.EntitySystems; using Content.Server.Chemistry.Containers.EntitySystems;
using Content.Server.Explosion.Components;
using Content.Server.Explosion.EntitySystems; using Content.Server.Explosion.EntitySystems;
using Content.Server.Fluids.EntitySystems; using Content.Server.Fluids.EntitySystems;
using Content.Server.Nutrition.Components; using Content.Server.Nutrition.Components;
using Content.Server.Popups; using Content.Server.Popups;
using Content.Shared.Containers.ItemSlots; using Content.Shared.Containers.ItemSlots;
using Content.Shared.Explosion.Components; using Content.Shared.Explosion.Components;
using Content.Shared.Interaction; using Content.Shared.Nutrition;
using Content.Shared.Nutrition.Components; using Content.Shared.Nutrition.Components;
using Content.Shared.Nutrition.EntitySystems; using Content.Shared.Nutrition.EntitySystems;
using Content.Shared.Rejuvenate; using Content.Shared.Rejuvenate;
@@ -32,7 +31,10 @@ namespace Content.Server.Nutrition.EntitySystems
{ {
base.Initialize(); base.Initialize();
SubscribeLocalEvent<CreamPieComponent, InteractUsingEvent>(OnInteractUsing); // activate BEFORE entity is deleted and trash is spawned
SubscribeLocalEvent<CreamPieComponent, ConsumeDoAfterEvent>(OnConsume, before: [typeof(FoodSystem)]);
SubscribeLocalEvent<CreamPieComponent, SliceFoodEvent>(OnSlice);
SubscribeLocalEvent<CreamPiedComponent, RejuvenateEvent>(OnRejuvenate); SubscribeLocalEvent<CreamPiedComponent, RejuvenateEvent>(OnRejuvenate);
} }
@@ -56,7 +58,12 @@ namespace Content.Server.Nutrition.EntitySystems
EntityManager.QueueDeleteEntity(uid); EntityManager.QueueDeleteEntity(uid);
} }
private void OnInteractUsing(Entity<CreamPieComponent> entity, ref InteractUsingEvent args) private void OnConsume(Entity<CreamPieComponent> entity, ref ConsumeDoAfterEvent args)
{
ActivatePayload(entity);
}
private void OnSlice(Entity<CreamPieComponent> entity, ref SliceFoodEvent args)
{ {
ActivatePayload(entity); ActivatePayload(entity);
} }

View File

@@ -1,5 +1,6 @@
using Content.Server.Chemistry.Containers.EntitySystems; using Content.Server.Chemistry.Containers.EntitySystems;
using Content.Server.Nutrition.Components; using Content.Server.Nutrition.Components;
using Content.Shared.Nutrition;
using Content.Shared.Nutrition.Components; using Content.Shared.Nutrition.Components;
using Content.Shared.Chemistry.Components; using Content.Shared.Chemistry.Components;
using Content.Shared.Examine; using Content.Shared.Examine;
@@ -66,6 +67,8 @@ namespace Content.Server.Nutrition.EntitySystems
FillSlice(sliceUid, lostSolution); FillSlice(sliceUid, lostSolution);
_audio.PlayPvs(component.Sound, transform.Coordinates, AudioParams.Default.WithVolume(-2)); _audio.PlayPvs(component.Sound, transform.Coordinates, AudioParams.Default.WithVolume(-2));
var ev = new SliceFoodEvent();
RaiseLocalEvent(uid, ref ev);
// Decrease size of item based on count - Could implement in the future // Decrease size of item based on count - Could implement in the future
// Bug with this currently is the size in a container is not updated // Bug with this currently is the size in a container is not updated

View File

@@ -53,3 +53,9 @@ public sealed partial class VapeDoAfterEvent : DoAfterEvent
public override DoAfterEvent Clone() => this; public override DoAfterEvent Clone() => this;
} }
/// <summary>
/// Raised before food is sliced
/// </summary>
[ByRefEvent]
public record struct SliceFoodEvent();

View File

@@ -156,6 +156,8 @@
path: /Audio/Weapons/Guns/Empty/empty.ogg path: /Audio/Weapons/Guns/Empty/empty.ogg
ejectSound: ejectSound:
path: /Audio/Weapons/Guns/Empty/empty.ogg path: /Audio/Weapons/Guns/Empty/empty.ogg
swap: false
disableEject: true
- type: Tag - type: Tag
tags: tags:
- Fruit - Fruit