diff --git a/Content.Client/Entry/EntryPoint.cs b/Content.Client/Entry/EntryPoint.cs
index 7dde4557cd8008..47f11ee16164e0 100644
--- a/Content.Client/Entry/EntryPoint.cs
+++ b/Content.Client/Entry/EntryPoint.cs
@@ -106,7 +106,6 @@ public override void Init()
_prototypeManager.RegisterIgnore("gameMap");
_prototypeManager.RegisterIgnore("gameMapPool");
_prototypeManager.RegisterIgnore("lobbyBackground");
- _prototypeManager.RegisterIgnore("advertisementsPack");
_prototypeManager.RegisterIgnore("gamePreset");
_prototypeManager.RegisterIgnore("noiseChannel");
_prototypeManager.RegisterIgnore("spaceBiome");
diff --git a/Content.Server/Advertise/AdvertiseComponent.cs b/Content.Server/Advertise/AdvertiseComponent.cs
deleted file mode 100644
index f36cc7ae1e635c..00000000000000
--- a/Content.Server/Advertise/AdvertiseComponent.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-using Content.Server.Advertisements;
-using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
-
-namespace Content.Server.Advertise
-{
- [RegisterComponent, Access(typeof(AdvertiseSystem))]
- public sealed partial class AdvertiseComponent : Component
- {
- ///
- /// Minimum time in seconds to wait before saying a new ad, in seconds. Has to be larger than or equal to 1.
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("minWait")]
- public int MinimumWait { get; private set; } = 8 * 60;
-
- ///
- /// Maximum time in seconds to wait before saying a new ad, in seconds. Has to be larger than or equal
- /// to
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- [DataField("maxWait")]
- public int MaximumWait { get; private set; } = 10 * 60;
-
- ///
- /// The identifier for the advertisements pack prototype.
- ///
- [DataField("pack", customTypeSerializer:typeof(PrototypeIdSerializer), required: true)]
- public string PackPrototypeId { get; private set; } = string.Empty;
-
- ///
- /// The next time an advertisement will be said.
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- public TimeSpan NextAdvertisementTime { get; set; } = TimeSpan.Zero;
-
- ///
- /// Whether the entity will say advertisements or not.
- ///
- [ViewVariables(VVAccess.ReadWrite)]
- public bool Enabled { get; set; } = true;
- }
-}
diff --git a/Content.Server/Advertise/AdvertiseSystem.cs b/Content.Server/Advertise/AdvertiseSystem.cs
deleted file mode 100644
index ab538f3c77995b..00000000000000
--- a/Content.Server/Advertise/AdvertiseSystem.cs
+++ /dev/null
@@ -1,154 +0,0 @@
-using Content.Server.Advertisements;
-using Content.Server.Chat.Systems;
-using Content.Server.Power.Components;
-using Content.Shared.VendingMachines;
-using Robust.Shared.Prototypes;
-using Robust.Shared.Random;
-using Robust.Shared.Timing;
-
-namespace Content.Server.Advertise
-{
- public sealed class AdvertiseSystem : EntitySystem
- {
- [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
- [Dependency] private readonly IRobustRandom _random = default!;
- [Dependency] private readonly IGameTiming _gameTiming = default!;
- [Dependency] private readonly ChatSystem _chat = default!;
-
- ///
- /// The maximum amount of time between checking if advertisements should be displayed
- ///
- private readonly TimeSpan _maximumNextCheckDuration = TimeSpan.FromSeconds(15);
-
- ///
- /// The next time the game will check if advertisements should be displayed
- ///
- private TimeSpan _nextCheckTime = TimeSpan.MaxValue;
-
- public override void Initialize()
- {
- SubscribeLocalEvent(OnComponentInit);
- SubscribeLocalEvent(OnPowerChanged);
-
- SubscribeLocalEvent(OnPowerReceiverEnableChangeAttempt);
- SubscribeLocalEvent(OnVendingEnableChangeAttempt);
-
- // The component inits will lower this.
- _nextCheckTime = TimeSpan.MaxValue;
- }
-
- private void OnComponentInit(EntityUid uid, AdvertiseComponent advertise, ComponentInit args)
- {
- RefreshTimer(uid, advertise);
- }
-
- private void OnPowerChanged(EntityUid uid, AdvertiseComponent advertise, ref PowerChangedEvent args)
- {
- SetEnabled(uid, args.Powered, advertise);
- }
-
- public void RefreshTimer(EntityUid uid, AdvertiseComponent? advertise = null)
- {
- if (!Resolve(uid, ref advertise))
- return;
-
- if (!advertise.Enabled)
- return;
-
- var minDuration = Math.Max(1, advertise.MinimumWait);
- var maxDuration = Math.Max(minDuration, advertise.MaximumWait);
- var waitDuration = TimeSpan.FromSeconds(_random.Next(minDuration, maxDuration));
- var nextTime = _gameTiming.CurTime + waitDuration;
-
- advertise.NextAdvertisementTime = nextTime;
-
- _nextCheckTime = MathHelper.Min(nextTime, _nextCheckTime);
- }
-
- public void SayAdvertisement(EntityUid uid, AdvertiseComponent? advertise = null)
- {
- if (!Resolve(uid, ref advertise))
- return;
-
- if (_prototypeManager.TryIndex(advertise.PackPrototypeId, out AdvertisementsPackPrototype? advertisements))
- _chat.TrySendInGameICMessage(uid, Loc.GetString(_random.Pick(advertisements.Advertisements)), InGameICChatType.Speak, true);
- }
-
- public void SayThankYou(EntityUid uid, AdvertiseComponent? advertise = null)
- {
- if (!Resolve(uid, ref advertise))
- return;
-
- if (_prototypeManager.TryIndex(advertise.PackPrototypeId, out AdvertisementsPackPrototype? advertisements))
- {
- _chat.TrySendInGameICMessage(uid, Loc.GetString(_random.Pick(advertisements.ThankYous), ("name", Name(uid))), InGameICChatType.Speak, true);
- }
- }
-
- public void SetEnabled(EntityUid uid, bool enable, AdvertiseComponent? advertise = null)
- {
- if (!Resolve(uid, ref advertise))
- return;
-
- if (advertise.Enabled == enable)
- return;
-
- var attemptEvent = new AdvertiseEnableChangeAttemptEvent(enable);
- RaiseLocalEvent(uid, attemptEvent);
-
- if (attemptEvent.Cancelled)
- return;
-
- advertise.Enabled = enable;
- RefreshTimer(uid, advertise);
- }
-
- private static void OnPowerReceiverEnableChangeAttempt(EntityUid uid, ApcPowerReceiverComponent component, AdvertiseEnableChangeAttemptEvent args)
- {
- if(args.Enabling && !component.Powered)
- args.Cancel();
- }
-
- private static void OnVendingEnableChangeAttempt(EntityUid uid, VendingMachineComponent component, AdvertiseEnableChangeAttemptEvent args)
- {
- if(args.Enabling && component.Broken)
- args.Cancel();
- }
-
- public override void Update(float frameTime)
- {
- var curTime = _gameTiming.CurTime;
- if (_nextCheckTime > curTime)
- return;
-
- _nextCheckTime = curTime + _maximumNextCheckDuration;
-
- var query = EntityQueryEnumerator();
- while (query.MoveNext(out var uid, out var advert))
- {
- if (!advert.Enabled)
- continue;
-
- // If this isn't advertising yet
- if (advert.NextAdvertisementTime > curTime)
- {
- _nextCheckTime = MathHelper.Min(advert.NextAdvertisementTime, _nextCheckTime);
- continue;
- }
-
- SayAdvertisement(uid, advert);
- RefreshTimer(uid, advert);
- }
- }
- }
-
- public sealed class AdvertiseEnableChangeAttemptEvent : CancellableEntityEventArgs
- {
- public bool Enabling { get; }
-
- public AdvertiseEnableChangeAttemptEvent(bool enabling)
- {
- Enabling = enabling;
- }
- }
-}
diff --git a/Content.Server/Advertise/Components/AdvertiseComponent.cs b/Content.Server/Advertise/Components/AdvertiseComponent.cs
new file mode 100644
index 00000000000000..140bc6b902a710
--- /dev/null
+++ b/Content.Server/Advertise/Components/AdvertiseComponent.cs
@@ -0,0 +1,45 @@
+using Content.Server.Advertise.EntitySystems;
+using Content.Shared.Advertise;
+using Robust.Shared.Prototypes;
+using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
+
+namespace Content.Server.Advertise.Components;
+
+///
+/// Makes this entity periodically advertise by speaking a randomly selected
+/// message from a specified MessagePack into local chat.
+///
+[RegisterComponent, Access(typeof(AdvertiseSystem))]
+public sealed partial class AdvertiseComponent : Component
+{
+ ///
+ /// Minimum time in seconds to wait before saying a new ad, in seconds. Has to be larger than or equal to 1.
+ ///
+ [DataField]
+ public int MinimumWait { get; private set; } = 8 * 60;
+
+ ///
+ /// Maximum time in seconds to wait before saying a new ad, in seconds. Has to be larger than or equal
+ /// to
+ ///
+ [DataField]
+ public int MaximumWait { get; private set; } = 10 * 60;
+
+ ///
+ /// The identifier for the advertisements pack prototype.
+ ///
+ [DataField(required: true)]
+ public ProtoId Pack { get; private set; }
+
+ ///
+ /// The next time an advertisement will be said.
+ ///
+ [DataField]
+ public TimeSpan NextAdvertisementTime { get; set; } = TimeSpan.Zero;
+
+ ///
+ /// Whether the entity will say advertisements or not.
+ ///
+ [DataField]
+ public bool Enabled { get; set; } = true;
+}
diff --git a/Content.Server/Advertise/Components/SpeakOnUIClosedComponent.cs b/Content.Server/Advertise/Components/SpeakOnUIClosedComponent.cs
new file mode 100644
index 00000000000000..2a663b7f89db8c
--- /dev/null
+++ b/Content.Server/Advertise/Components/SpeakOnUIClosedComponent.cs
@@ -0,0 +1,36 @@
+using Content.Shared.Advertise;
+using Robust.Shared.Prototypes;
+
+namespace Content.Server.Advertise.Components;
+
+///
+/// Causes the entity to speak using the Chat system when its ActivatableUI is closed, optionally
+/// requiring that a Flag be set as well.
+///
+[RegisterComponent, Access(typeof(SpeakOnUIClosedSystem))]
+public sealed partial class SpeakOnUIClosedComponent : Component
+{
+ ///
+ /// The identifier for the message pack prototype containing messages to be spoken by this entity.
+ ///
+ [DataField(required: true)]
+ public ProtoId Pack { get; private set; }
+
+ ///
+ /// Is this component active? If false, no messages will be spoken.
+ ///
+ [DataField]
+ public bool Enabled = true;
+
+ ///
+ /// Should messages be spoken only if the is set (true), or every time the UI is closed (false)?
+ ///
+ [DataField]
+ public bool RequireFlag = true;
+
+ ///
+ /// State variable only used if is true. Set with .
+ ///
+ [DataField]
+ public bool Flag;
+}
diff --git a/Content.Server/Advertise/EntitySystems/AdvertiseSystem.cs b/Content.Server/Advertise/EntitySystems/AdvertiseSystem.cs
new file mode 100644
index 00000000000000..bb254d11ef0be5
--- /dev/null
+++ b/Content.Server/Advertise/EntitySystems/AdvertiseSystem.cs
@@ -0,0 +1,137 @@
+using Content.Server.Advertise.Components;
+using Content.Server.Chat.Systems;
+using Content.Server.Power.Components;
+using Content.Shared.VendingMachines;
+using Robust.Shared.Prototypes;
+using Robust.Shared.Random;
+using Robust.Shared.Timing;
+
+namespace Content.Server.Advertise.EntitySystems;
+
+public sealed class AdvertiseSystem : EntitySystem
+{
+ [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
+ [Dependency] private readonly IRobustRandom _random = default!;
+ [Dependency] private readonly IGameTiming _gameTiming = default!;
+ [Dependency] private readonly ChatSystem _chat = default!;
+
+ ///
+ /// The maximum amount of time between checking if advertisements should be displayed
+ ///
+ private readonly TimeSpan _maximumNextCheckDuration = TimeSpan.FromSeconds(15);
+
+ ///
+ /// The next time the game will check if advertisements should be displayed
+ ///
+ private TimeSpan _nextCheckTime = TimeSpan.MaxValue;
+
+ public override void Initialize()
+ {
+ SubscribeLocalEvent(OnMapInit);
+ SubscribeLocalEvent(OnPowerChanged);
+
+ SubscribeLocalEvent(OnPowerReceiverEnableChangeAttempt);
+ SubscribeLocalEvent(OnVendingEnableChangeAttempt);
+
+ // The component inits will lower this.
+ _nextCheckTime = TimeSpan.MaxValue;
+ }
+
+ private void OnMapInit(EntityUid uid, AdvertiseComponent advertise, MapInitEvent args)
+ {
+ RefreshTimer(uid, advertise);
+ }
+
+ private void OnPowerChanged(EntityUid uid, AdvertiseComponent advertise, ref PowerChangedEvent args)
+ {
+ SetEnabled(uid, args.Powered, advertise);
+ }
+
+ public void RefreshTimer(EntityUid uid, AdvertiseComponent? advertise = null)
+ {
+ if (!Resolve(uid, ref advertise))
+ return;
+
+ if (!advertise.Enabled)
+ return;
+
+ var minDuration = Math.Max(1, advertise.MinimumWait);
+ var maxDuration = Math.Max(minDuration, advertise.MaximumWait);
+ var waitDuration = TimeSpan.FromSeconds(_random.Next(minDuration, maxDuration));
+ var nextTime = _gameTiming.CurTime + waitDuration;
+
+ advertise.NextAdvertisementTime = nextTime;
+
+ _nextCheckTime = MathHelper.Min(nextTime, _nextCheckTime);
+ }
+
+ public void SayAdvertisement(EntityUid uid, AdvertiseComponent? advertise = null)
+ {
+ if (!Resolve(uid, ref advertise))
+ return;
+
+ if (_prototypeManager.TryIndex(advertise.Pack, out var advertisements))
+ _chat.TrySendInGameICMessage(uid, Loc.GetString(_random.Pick(advertisements.Messages)), InGameICChatType.Speak, hideChat: true);
+ }
+
+ public void SetEnabled(EntityUid uid, bool enable, AdvertiseComponent? advertise = null)
+ {
+ if (!Resolve(uid, ref advertise))
+ return;
+
+ if (advertise.Enabled == enable)
+ return;
+
+ var attemptEvent = new AdvertiseEnableChangeAttemptEvent(enable);
+ RaiseLocalEvent(uid, attemptEvent);
+
+ if (attemptEvent.Cancelled)
+ return;
+
+ advertise.Enabled = enable;
+ RefreshTimer(uid, advertise);
+ }
+
+ private static void OnPowerReceiverEnableChangeAttempt(EntityUid uid, ApcPowerReceiverComponent component, AdvertiseEnableChangeAttemptEvent args)
+ {
+ if (args.Enabling && !component.Powered)
+ args.Cancel();
+ }
+
+ private static void OnVendingEnableChangeAttempt(EntityUid uid, VendingMachineComponent component, AdvertiseEnableChangeAttemptEvent args)
+ {
+ if (args.Enabling && component.Broken)
+ args.Cancel();
+ }
+
+ public override void Update(float frameTime)
+ {
+ var curTime = _gameTiming.CurTime;
+ if (_nextCheckTime > curTime)
+ return;
+
+ _nextCheckTime = curTime + _maximumNextCheckDuration;
+
+ var query = EntityQueryEnumerator();
+ while (query.MoveNext(out var uid, out var advert))
+ {
+ if (!advert.Enabled)
+ continue;
+
+ // If this isn't advertising yet
+ if (advert.NextAdvertisementTime > curTime)
+ {
+ _nextCheckTime = MathHelper.Min(advert.NextAdvertisementTime, _nextCheckTime);
+ continue;
+ }
+
+ SayAdvertisement(uid, advert);
+ RefreshTimer(uid, advert);
+ }
+ }
+}
+
+public sealed class AdvertiseEnableChangeAttemptEvent(bool enabling) : CancellableEntityEventArgs
+{
+ public bool Enabling { get; } = enabling;
+}
diff --git a/Content.Server/Advertise/EntitySystems/SpeakOnUIClosedSystem.cs b/Content.Server/Advertise/EntitySystems/SpeakOnUIClosedSystem.cs
new file mode 100644
index 00000000000000..048f59b8d33b7c
--- /dev/null
+++ b/Content.Server/Advertise/EntitySystems/SpeakOnUIClosedSystem.cs
@@ -0,0 +1,58 @@
+using Content.Server.Advertise.Components;
+using Content.Server.Chat.Systems;
+using Content.Server.UserInterface;
+using Content.Shared.Advertise;
+using Robust.Shared.Prototypes;
+using Robust.Shared.Random;
+
+namespace Content.Server.Advertise;
+
+public sealed partial class SpeakOnUIClosedSystem : EntitySystem
+{
+ [Dependency] private readonly IRobustRandom _random = default!;
+ [Dependency] private readonly IPrototypeManager _prototypeManager = default!;
+ [Dependency] private readonly ChatSystem _chat = default!;
+
+ public override void Initialize()
+ {
+ base.Initialize();
+
+ SubscribeLocalEvent(OnBoundUIClosed);
+ }
+ private void OnBoundUIClosed(Entity entity, ref BoundUIClosedEvent args)
+ {
+ if (!TryComp(entity, out ActivatableUIComponent? activatable) || !args.UiKey.Equals(activatable.Key))
+ return;
+
+ if (entity.Comp.RequireFlag && !entity.Comp.Flag)
+ return;
+
+ TrySpeak((entity, entity.Comp));
+ }
+
+ public bool TrySpeak(Entity entity)
+ {
+ if (!Resolve(entity, ref entity.Comp))
+ return false;
+
+ if (!entity.Comp.Enabled)
+ return false;
+
+ if (!_prototypeManager.TryIndex(entity.Comp.Pack, out MessagePackPrototype? messagePack))
+ return false;
+
+ var message = Loc.GetString(_random.Pick(messagePack.Messages), ("name", Name(entity)));
+ _chat.TrySendInGameICMessage(entity, message, InGameICChatType.Speak, true);
+ entity.Comp.Flag = false;
+ return true;
+ }
+
+ public bool TrySetFlag(Entity entity, bool value = true)
+ {
+ if (!Resolve(entity, ref entity.Comp))
+ return false;
+
+ entity.Comp.Flag = value;
+ return true;
+ }
+}
diff --git a/Content.Server/Advertisements/AdvertisementsPackPrototype.cs b/Content.Server/Advertisements/AdvertisementsPackPrototype.cs
deleted file mode 100644
index 641ab3c56fd46c..00000000000000
--- a/Content.Server/Advertisements/AdvertisementsPackPrototype.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using Robust.Shared.Prototypes;
-
-namespace Content.Server.Advertisements
-{
- [Serializable, Prototype("advertisementsPack")]
- public sealed partial class AdvertisementsPackPrototype : IPrototype
- {
- [ViewVariables]
- [IdDataField]
- public string ID { get; private set; } = default!;
-
- [DataField("advertisements")]
- public List Advertisements { get; private set; } = new();
-
- [DataField("thankyous")]
- public List ThankYous { get; private set; } = new();
- }
-}
diff --git a/Content.Server/VendingMachines/VendingMachineSystem.cs b/Content.Server/VendingMachines/VendingMachineSystem.cs
index b5fa611a3966fc..7c9aed188fe91d 100644
--- a/Content.Server/VendingMachines/VendingMachineSystem.cs
+++ b/Content.Server/VendingMachines/VendingMachineSystem.cs
@@ -1,12 +1,11 @@
using System.Linq;
using System.Numerics;
using Content.Server.Advertise;
+using Content.Server.Advertise.Components;
using Content.Server.Cargo.Systems;
-using Content.Server.Chat.Systems;
using Content.Server.Emp;
using Content.Server.Power.Components;
using Content.Server.Power.EntitySystems;
-using Content.Server.UserInterface;
using Content.Shared.Access.Components;
using Content.Shared.Access.Systems;
using Content.Shared.Actions;
@@ -25,7 +24,6 @@
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
using Robust.Shared.Timing;
-using Robust.Shared.Utility;
namespace Content.Server.VendingMachines
{
@@ -39,7 +37,7 @@ public sealed class VendingMachineSystem : SharedVendingMachineSystem
[Dependency] private readonly ThrowingSystem _throwingSystem = default!;
[Dependency] private readonly UserInterfaceSystem _userInterfaceSystem = default!;
[Dependency] private readonly IGameTiming _timing = default!;
- [Dependency] private readonly AdvertiseSystem _advertise = default!;
+ [Dependency] private readonly SpeakOnUIClosedSystem _speakOnUIClosed = default!;
public override void Initialize()
{
@@ -58,7 +56,6 @@ public override void Initialize()
Subs.BuiEvents(VendingMachineUiKey.Key, subs =>
{
subs.Event(OnBoundUIOpened);
- subs.Event(OnBoundUIClosed);
subs.Event(OnInventoryEjectMessage);
});
@@ -114,16 +111,6 @@ private void OnBoundUIOpened(EntityUid uid, VendingMachineComponent component, B
UpdateVendingMachineInterfaceState(uid, component);
}
- private void OnBoundUIClosed(EntityUid uid, VendingMachineComponent component, BoundUIClosedEvent args)
- {
- // Only vendors that advertise will send message after dispensing
- if (component.ShouldSayThankYou && TryComp(uid, out var advertise))
- {
- _advertise.SayThankYou(uid, advertise);
- component.ShouldSayThankYou = false;
- }
- }
-
private void UpdateVendingMachineInterfaceState(EntityUid uid, VendingMachineComponent component)
{
var state = new VendingMachineInterfaceState(GetAllInventory(uid, component));
@@ -294,7 +281,10 @@ public void TryEjectVendorItem(EntityUid uid, InventoryType type, string itemId,
vendComponent.Ejecting = true;
vendComponent.NextItemToEject = entry.ID;
vendComponent.ThrowNextItem = throwItem;
- vendComponent.ShouldSayThankYou = true;
+
+ if (TryComp(uid, out SpeakOnUIClosedComponent? speakComponent))
+ _speakOnUIClosed.TrySetFlag((uid, speakComponent));
+
entry.Amount--;
UpdateVendingMachineInterfaceState(uid, vendComponent);
TryUpdateVisualState(uid, vendComponent);
diff --git a/Content.Shared/Advertise/MessagePackPrototype.cs b/Content.Shared/Advertise/MessagePackPrototype.cs
new file mode 100644
index 00000000000000..f7495d7e468e30
--- /dev/null
+++ b/Content.Shared/Advertise/MessagePackPrototype.cs
@@ -0,0 +1,14 @@
+using Robust.Shared.Prototypes;
+
+namespace Content.Shared.Advertise;
+
+[Serializable, Prototype("messagePack")]
+public sealed partial class MessagePackPrototype : IPrototype
+{
+ [ViewVariables]
+ [IdDataField]
+ public string ID { get; private set; } = default!;
+
+ [DataField]
+ public List Messages { get; private set; } = [];
+}
diff --git a/Content.Shared/VendingMachines/VendingMachineComponent.cs b/Content.Shared/VendingMachines/VendingMachineComponent.cs
index 725dc60e3bcbc7..23130bb8f39345 100644
--- a/Content.Shared/VendingMachines/VendingMachineComponent.cs
+++ b/Content.Shared/VendingMachines/VendingMachineComponent.cs
@@ -51,8 +51,6 @@ public sealed partial class VendingMachineComponent : Component
public bool Broken;
- public bool ShouldSayThankYou;
-
///
/// When true, will forcefully throw any object it dispenses
///
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/ammo.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/ammo.yml
index 6038134ea163d4..7e089a282595f4 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/ammo.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/ammo.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: AmmoVendAds
- advertisements:
+ messages:
- advertisement-ammo-1
- advertisement-ammo-2
- advertisement-ammo-3
@@ -11,5 +11,3 @@
- advertisement-ammo-8
- advertisement-ammo-9
- advertisement-ammo-10
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/atmosdrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/atmosdrobe.yml
index c5737d58bffeaa..7946c0631027e6 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/atmosdrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/atmosdrobe.yml
@@ -1,8 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: AtmosDrobeAds
- advertisements:
+ messages:
- advertisement-atmosdrobe-1
- advertisement-atmosdrobe-2
- advertisement-atmosdrobe-3
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/bardrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/bardrobe.yml
index 84501583d76668..0a21acf2cb5b45 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/bardrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/bardrobe.yml
@@ -1,7 +1,5 @@
-- type: advertisementsPack
+- type: messagePack
id: BarDrobeAds
- advertisements:
+ messages:
- advertisement-bardrobe-1
- advertisement-bardrobe-2
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/boozeomat.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/boozeomat.yml
index 943e571887009b..e6bcbbcb9c389a 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/boozeomat.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/boozeomat.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: BoozeOMatAds
- advertisements:
+ messages:
- advertisement-boozeomat-1
- advertisement-boozeomat-2
- advertisement-boozeomat-3
@@ -20,8 +20,3 @@
- advertisement-boozeomat-17
- advertisement-boozeomat-18
- advertisement-boozeomat-19
- thankyous:
- - vending-machine-thanks
- - thankyou-boozeomat-1
- - thankyou-boozeomat-2
- - thankyou-boozeomat-3
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/cargodrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/cargodrobe.yml
index fdf90a1d0d61df..f2cd38f737e200 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/cargodrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/cargodrobe.yml
@@ -1,8 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: CargoDrobeAds
- advertisements:
+ messages:
- advertisement-cargodrobe-1
- advertisement-cargodrobe-2
- advertisement-cargodrobe-3
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chang.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chang.yml
index ebfe81286b56fa..911d467e7d06d0 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chang.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chang.yml
@@ -1,12 +1,8 @@
-- type: advertisementsPack
+- type: messagePack
id: ChangAds
- advertisements:
+ messages:
- advertisement-chang-1
- advertisement-chang-2
- advertisement-chang-3
- advertisement-chang-4
- advertisement-chang-5
- thankyous:
- - vending-machine-thanks
- - thankyou-chang-1
- - thankyou-chang-2
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chefdrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chefdrobe.yml
index 2d45bd4e29ddb4..c71d8225e03169 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chefdrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chefdrobe.yml
@@ -1,8 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: ChefDrobeAds
- advertisements:
+ messages:
- advertisement-chefdrobe-1
- advertisement-chefdrobe-2
- advertisement-chefdrobe-3
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chefvend.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chefvend.yml
index 9b1edb4b5becce..d52fcf9894cf76 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chefvend.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chefvend.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: ChefvendAds
- advertisements:
+ messages:
- advertisement-chefvend-1
- advertisement-chefvend-2
- advertisement-chefvend-3
@@ -10,9 +10,3 @@
- advertisement-chefvend-7
- advertisement-chefvend-8
- advertisement-chefvend-9
- thankyous:
- - vending-machine-thanks
- - thankyou-chefvend-1
- - thankyou-chefvend-2
- - thankyou-chefvend-3
- - thankyou-chefvend-4
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chemdrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chemdrobe.yml
index 7d4508473843f9..69a37de184be8b 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chemdrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/chemdrobe.yml
@@ -1,9 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: ChemDrobeAds
- advertisements:
+ messages:
- advertisement-chemdrobe-1
- advertisement-chemdrobe-2
- advertisement-chemdrobe-3
- thankyous:
- - vending-machine-thanks
-
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/cigs.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/cigs.yml
index fe6cb1bf26a251..db3d492c459625 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/cigs.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/cigs.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: CigaretteMachineAds
- advertisements:
+ messages:
- advertisement-cigs-1
- advertisement-cigs-2
- advertisement-cigs-3
@@ -13,8 +13,3 @@
- advertisement-cigs-10
- advertisement-cigs-11
- advertisement-cigs-12
- thankyous:
- - vending-machine-thanks
- - thankyou-cigs-1
- - thankyou-cigs-2
- - thankyou-cigs-3
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/clothesmate.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/clothesmate.yml
index 5c728513b89f9f..dc109f8eb996bb 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/clothesmate.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/clothesmate.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: ClothesMateAds
- advertisements:
+ messages:
- advertisement-clothes-1
- advertisement-clothes-2
- advertisement-clothes-3
@@ -8,5 +8,3 @@
- advertisement-clothes-5
- advertisement-clothes-6
- advertisement-clothes-7
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/coffee.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/coffee.yml
index 5153040165c023..4781768cf0c57f 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/coffee.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/coffee.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: HotDrinksMachineAds
- advertisements:
+ messages:
- advertisement-coffee-1
- advertisement-coffee-2
- advertisement-coffee-3
@@ -15,9 +15,3 @@
- advertisement-coffee-12
- advertisement-coffee-13
- advertisement-coffee-14
- thankyous:
- - vending-machine-thanks
- - thankyou-coffee-1
- - thankyou-coffee-2
- - thankyou-coffee-3
- - thankyou-coffee-4
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/cola.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/cola.yml
index 862846274da6f9..d12d7eb92f4744 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/cola.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/cola.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: RobustSoftdrinksAds
- advertisements:
+ messages:
- advertisement-cola-1
- advertisement-cola-2
- advertisement-cola-3
@@ -9,9 +9,3 @@
- advertisement-cola-6
- advertisement-cola-7
- advertisement-cola-8
- thankyous:
- - vending-machine-thanks
- - thankyou-cola-1
- - thankyou-cola-2
- - thankyou-cola-3
- - thankyou-cola-4
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/condiments.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/condiments.yml
index 05dbc75887591c..d1d07df0c4e599 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/condiments.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/condiments.yml
@@ -1,11 +1,9 @@
-- type: advertisementsPack
+- type: messagePack
id: CondimentVendAds
- advertisements:
+ messages:
- advertisement-condiment-1
- advertisement-condiment-2
- advertisement-condiment-3
- advertisement-condiment-4
- advertisement-condiment-5
- advertisement-condiment-6
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/curadrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/curadrobe.yml
index b6e2d485cec0d7..47523c6e936ec8 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/curadrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/curadrobe.yml
@@ -1,8 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: CuraDrobeAds
- advertisements:
+ messages:
- advertisement-curadrobe-1
- advertisement-curadrobe-2
- advertisement-curadrobe-3
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/detdrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/detdrobe.yml
index e64b5198692227..50024ce3d99151 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/detdrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/detdrobe.yml
@@ -1,8 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: DetDrobeAds
- advertisements:
+ messages:
- advertisement-detdrobe-1
- advertisement-detdrobe-2
- advertisement-detdrobe-3
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/dinnerware.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/dinnerware.yml
index ebaba26b6f410d..ac31dc075b95cc 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/dinnerware.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/dinnerware.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: DinnerwareAds
- advertisements:
+ messages:
- advertisement-dinnerware-1
- advertisement-dinnerware-2
- advertisement-dinnerware-3
@@ -11,5 +11,3 @@
- advertisement-dinnerware-8
- advertisement-dinnerware-9
- advertisement-dinnerware-10
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/discount.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/discount.yml
index 5260e2bbcc6d7e..dce8646a60ca06 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/discount.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/discount.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: DiscountDansAds
- advertisements:
+ messages:
- advertisement-discount-1
- advertisement-discount-2
- advertisement-discount-3
@@ -10,13 +10,3 @@
- advertisement-discount-7
- advertisement-discount-8
- advertisement-discount-9
- thankyous:
- - vending-machine-thanks
- - thankyou-discount-1
- - thankyou-discount-2
- - thankyou-discount-3
- - thankyou-discount-4
- - thankyou-discount-5
- - thankyou-discount-6
- - thankyou-discount-7
- - thankyou-discount-8
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/donut.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/donut.yml
index 29ea90e7655b1c..73766aa749f9bf 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/donut.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/donut.yml
@@ -1,14 +1,8 @@
-- type: advertisementsPack
+- type: messagePack
id: DonutAds
- advertisements:
+ messages:
- advertisement-donut-1
- advertisement-donut-2
- advertisement-donut-3
- advertisement-donut-4
- advertisement-donut-5
- thankyous:
- - vending-machine-thanks
- - thankyou-donut-1
- - thankyou-donut-2
- - thankyou-donut-3
- - thankyou-donut-4
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/engidrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/engidrobe.yml
index 5d1290147eeba6..ec92fbe4dea8e8 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/engidrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/engidrobe.yml
@@ -1,10 +1,8 @@
-- type: advertisementsPack
+- type: messagePack
id: EngiDrobeAds
- advertisements:
+ messages:
- advertisement-engidrobe-1
- advertisement-engidrobe-2
- advertisement-engidrobe-3
- advertisement-engidrobe-4
- advertisement-engidrobe-5
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/fatextractor.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/fatextractor.yml
index ad100c462639fe..7619ea1856c328 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/fatextractor.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/fatextractor.yml
@@ -1,11 +1,9 @@
-- type: advertisementsPack
+- type: messagePack
id: FatExtractorFacts
- advertisements:
+ messages:
- fat-extractor-fact-1
- fat-extractor-fact-2
- fat-extractor-fact-3
- fat-extractor-fact-4
- fat-extractor-fact-5
- fat-extractor-fact-6
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/games.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/games.yml
index e640b378def7fb..1348635e1f50b0 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/games.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/games.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: GoodCleanFunAds
- advertisements:
+ messages:
- advertisement-goodcleanfun-1
- advertisement-goodcleanfun-2
- advertisement-goodcleanfun-3
@@ -11,9 +11,3 @@
- advertisement-goodcleanfun-8
- advertisement-goodcleanfun-9
- advertisement-goodcleanfun-10
- thankyous:
- - vending-machine-thanks
- - thankyou-goodcleanfun-1
- - thankyou-goodcleanfun-2
- - thankyou-goodcleanfun-3
- - thankyou-goodcleanfun-4
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/genedrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/genedrobe.yml
index 71d56bdcccc50c..722388055b9f62 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/genedrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/genedrobe.yml
@@ -1,7 +1,5 @@
-- type: advertisementsPack
+- type: messagePack
id: GeneDrobeAds
- advertisements:
+ messages:
- advertisement-genedrobe-1
- advertisement-genedrobe-2
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/happyhonk.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/happyhonk.yml
index 737ad02e291b3d..e145ebcdacbd9f 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/happyhonk.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/happyhonk.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: HappyHonkAds
- advertisements:
+ messages:
- advertisement-happyhonk-1
- advertisement-happyhonk-2
- advertisement-happyhonk-3
@@ -11,9 +11,3 @@
- advertisement-happyhonk-8
- advertisement-happyhonk-9
- advertisement-happyhonk-10
- thankyous:
- - vending-machine-thanks
- - thankyou-happyhonk-1
- - thankyou-happyhonk-2
- - thankyou-happyhonk-3
- - thankyou-happyhonk-4
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/hydrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/hydrobe.yml
index 213097db0d9534..5999c496f51fb9 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/hydrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/hydrobe.yml
@@ -1,9 +1,7 @@
-- type: advertisementsPack
+- type: messagePack
id: HyDrobeAds
- advertisements:
+ messages:
- advertisement-hydrobe-1
- advertisement-hydrobe-2
- advertisement-hydrobe-3
- advertisement-hydrobe-4
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/janidrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/janidrobe.yml
index 2d1ee1e7dfbe8e..8310136bf8fbd1 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/janidrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/janidrobe.yml
@@ -1,8 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: JaniDrobeAds
- advertisements:
+ messages:
- advertisement-janidrobe-1
- advertisement-janidrobe-2
- advertisement-janidrobe-3
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/lawdrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/lawdrobe.yml
index 5f3892d0f95ccc..a948413abde333 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/lawdrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/lawdrobe.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: LawDrobeAds
- advertisements:
+ messages:
- advertisement-lawdrobe-1
- advertisement-lawdrobe-2
- advertisement-lawdrobe-3
@@ -9,10 +9,3 @@
- advertisement-lawdrobe-6
- advertisement-lawdrobe-7
- advertisement-lawdrobe-8
- thankyous:
- - vending-machine-thanks
- - thankyou-lawdrobe-1
- - thankyou-lawdrobe-2
- - thankyou-lawdrobe-3
- - thankyou-lawdrobe-4
- - thankyou-lawdrobe-5
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/magivend.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/magivend.yml
index 5785f04bac6047..896a3853e7c448 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/magivend.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/magivend.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: MagiVendAds
- advertisements:
+ messages:
- advertisement-magivend-1
- advertisement-magivend-2
- advertisement-magivend-3
@@ -12,5 +12,3 @@
- advertisement-magivend-9
- advertisement-magivend-10
- advertisement-magivend-11
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/medidrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/medidrobe.yml
index f5744722e47622..b7b055231b82b3 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/medidrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/medidrobe.yml
@@ -1,8 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: MediDrobeAds
- advertisements:
+ messages:
- advertisement-medidrobe-1
- advertisement-medidrobe-2
- advertisement-medidrobe-3
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/megaseed.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/megaseed.yml
index 77babcf55a3126..b6e6ae098e9df6 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/megaseed.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/megaseed.yml
@@ -1,11 +1,9 @@
-- type: advertisementsPack
+- type: messagePack
id: MegaSeedAds
- advertisements:
+ messages:
- advertisement-megaseed-1
- advertisement-megaseed-2
- advertisement-megaseed-3
- advertisement-megaseed-4
- advertisement-megaseed-5
- advertisement-megaseed-6
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/nanomed.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/nanomed.yml
index 3e710bf7bee6ed..a79a4c8a6c498b 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/nanomed.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/nanomed.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: NanoMedAds
- advertisements:
+ messages:
- advertisement-nanomed-1
- advertisement-nanomed-2
- advertisement-nanomed-3
@@ -10,5 +10,3 @@
- advertisement-nanomed-7
- advertisement-nanomed-8
- advertisement-nanomed-9
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/nutrimax.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/nutrimax.yml
index 40a39336eea68a..a3ade349602b4d 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/nutrimax.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/nutrimax.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: NutriMaxAds
- advertisements:
+ messages:
- advertisement-nutrimax-1
- advertisement-nutrimax-2
- advertisement-nutrimax-3
@@ -8,7 +8,3 @@
- advertisement-nutrimax-5
- advertisement-nutrimax-6
- advertisement-nutrimax-7
- thankyous:
- - vending-machine-thanks
- - thankyou-nutrimax-1
- - thankyou-nutrimax-2
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/robodrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/robodrobe.yml
index f4a8f14fee6c49..82ece7d7632952 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/robodrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/robodrobe.yml
@@ -1,9 +1,7 @@
-- type: advertisementsPack
+- type: messagePack
id: RoboDrobeAds
- advertisements:
+ messages:
- advertisement-robodrobe-1
- advertisement-robodrobe-2
- advertisement-robodrobe-3
- advertisement-robodrobe-4
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/scidrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/scidrobe.yml
index 9a3a2243606b63..f8b125073b8506 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/scidrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/scidrobe.yml
@@ -1,8 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: SciDrobeAds
- advertisements:
+ messages:
- advertisement-scidrobe-1
- advertisement-scidrobe-2
- advertisement-scidrobe-3
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/secdrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/secdrobe.yml
index 886856c153edbe..99c2c402deebcd 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/secdrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/secdrobe.yml
@@ -1,10 +1,8 @@
-- type: advertisementsPack
+- type: messagePack
id: SecDrobeAds
- advertisements:
+ messages:
- advertisement-secdrobe-1
- advertisement-secdrobe-2
- advertisement-secdrobe-3
- advertisement-secdrobe-4
- advertisement-secdrobe-5
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/sectech.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/sectech.yml
index 8b9f9865727062..0b32ed166d52e8 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/sectech.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/sectech.yml
@@ -1,13 +1,8 @@
-- type: advertisementsPack
+- type: messagePack
id: SecTechAds
- advertisements:
+ messages:
- advertisement-sectech-1
- advertisement-sectech-2
- advertisement-sectech-3
- advertisement-sectech-4
- advertisement-sectech-5
- thankyous:
- - vending-machine-thanks
- - thankyou-sectech-1
- - thankyou-sectech-2
- - thankyou-sectech-3
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/smartfridge.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/smartfridge.yml
index e7c20761a6aea4..d92a95f70ffead 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/smartfridge.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/smartfridge.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: SmartFridgeAds
- advertisements:
+ messages:
- advertisement-smartfridge-1
- advertisement-smartfridge-2
- advertisement-smartfridge-3
@@ -9,5 +9,3 @@
- advertisement-smartfridge-6
- advertisement-smartfridge-7
- advertisement-smartfridge-8
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/snack.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/snack.yml
index c8f960d97229df..3d9b93f9c27b2a 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/snack.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/snack.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: GetmoreChocolateCorpAds
- advertisements:
+ messages:
- advertisement-snack-1
- advertisement-snack-2
- advertisement-snack-3
@@ -16,11 +16,3 @@
- advertisement-snack-13
- advertisement-snack-14
- advertisement-snack-15
- thankyous:
- - vending-machine-thanks
- - thankyou-snack-1
- - thankyou-snack-2
- - thankyou-snack-3
- - thankyou-snack-4
- - thankyou-snack-5
- - thankyou-snack-6
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/sovietsoda.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/sovietsoda.yml
index ff4957015317c2..630de1e615f092 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/sovietsoda.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/sovietsoda.yml
@@ -1,14 +1,9 @@
-- type: advertisementsPack
+- type: messagePack
id: BodaAds
- advertisements:
+ messages:
- advertisement-sovietsoda-1
- advertisement-sovietsoda-2
- advertisement-sovietsoda-3
- advertisement-sovietsoda-4
- advertisement-sovietsoda-5
- advertisement-sovietsoda-6
- thankyous:
- - vending-machine-thanks
- - thankyou-sovietsoda-1
- - thankyou-sovietsoda-2
- - thankyou-sovietsoda-3
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/syndiedrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/syndiedrobe.yml
index c9e3bbfe5c46ae..dc89d04aa0b204 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/syndiedrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/syndiedrobe.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: SyndieDrobeAds
- advertisements:
+ messages:
- advertisement-syndiedrobe-1
- advertisement-syndiedrobe-2
- advertisement-syndiedrobe-3
@@ -32,10 +32,3 @@
- advertisement-syndiedrobe-29
- advertisement-syndiedrobe-30
- advertisement-syndiedrobe-31
- thankyous:
- - vending-machine-thanks
- - thankyou-syndiedrobe-1
- - thankyou-syndiedrobe-2
- - thankyou-syndiedrobe-3
- - thankyou-syndiedrobe-4
- - thankyou-syndiedrobe-5
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/theater.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/theater.yml
index 090ec81cffbe4b..8b06cdb5172601 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/theater.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/theater.yml
@@ -1,11 +1,9 @@
-- type: advertisementsPack
+- type: messagePack
id: AutoDrobeAds
- advertisements:
+ messages:
- advertisement-theater-1
- advertisement-theater-2
- advertisement-theater-3
- advertisement-theater-4
- advertisement-theater-5
- advertisement-theater-6
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/vendomat.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/vendomat.yml
index aaa0c411336b91..31c0e0c241129f 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/vendomat.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/vendomat.yml
@@ -1,6 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: VendomatAds
- advertisements:
+ messages:
- advertisement-vendomat-1
- advertisement-vendomat-2
- advertisement-vendomat-3
@@ -8,5 +8,3 @@
- advertisement-vendomat-5
- advertisement-vendomat-6
- advertisement-vendomat-7
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/virodrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/virodrobe.yml
index a64bcd824c6275..c48f9e7d2e452e 100644
--- a/Resources/Prototypes/Catalog/VendingMachines/Advertisements/virodrobe.yml
+++ b/Resources/Prototypes/Catalog/VendingMachines/Advertisements/virodrobe.yml
@@ -1,8 +1,6 @@
-- type: advertisementsPack
+- type: messagePack
id: ViroDrobeAds
- advertisements:
+ messages:
- advertisement-virodrobe-1
- advertisement-virodrobe-2
- advertisement-virodrobe-3
- thankyous:
- - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/boozeomat.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/boozeomat.yml
new file mode 100644
index 00000000000000..e5c96887b974e5
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/boozeomat.yml
@@ -0,0 +1,7 @@
+- type: messagePack
+ id: BoozeOMatGoodbyes
+ messages:
+ - vending-machine-thanks
+ - thankyou-boozeomat-1
+ - thankyou-boozeomat-2
+ - thankyou-boozeomat-3
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/chang.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/chang.yml
new file mode 100644
index 00000000000000..a348d8fa9c18f0
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/chang.yml
@@ -0,0 +1,6 @@
+- type: messagePack
+ id: ChangGoodbyes
+ messages:
+ - vending-machine-thanks
+ - thankyou-chang-1
+ - thankyou-chang-2
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/chefvend.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/chefvend.yml
new file mode 100644
index 00000000000000..93249586e10acd
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/chefvend.yml
@@ -0,0 +1,8 @@
+- type: messagePack
+ id: ChefvendGoodbyes
+ messages:
+ - vending-machine-thanks
+ - thankyou-chefvend-1
+ - thankyou-chefvend-2
+ - thankyou-chefvend-3
+ - thankyou-chefvend-4
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/cigs.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/cigs.yml
new file mode 100644
index 00000000000000..108a34a4722ff3
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/cigs.yml
@@ -0,0 +1,7 @@
+- type: messagePack
+ id: CigaretteMachineGoodbyes
+ messages:
+ - vending-machine-thanks
+ - thankyou-cigs-1
+ - thankyou-cigs-2
+ - thankyou-cigs-3
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/coffee.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/coffee.yml
new file mode 100644
index 00000000000000..6f2aef01b8c469
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/coffee.yml
@@ -0,0 +1,8 @@
+- type: messagePack
+ id: HotDrinksMachineGoodbyes
+ messages:
+ - vending-machine-thanks
+ - thankyou-coffee-1
+ - thankyou-coffee-2
+ - thankyou-coffee-3
+ - thankyou-coffee-4
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/cola.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/cola.yml
new file mode 100644
index 00000000000000..76f00fddaf7a00
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/cola.yml
@@ -0,0 +1,8 @@
+- type: messagePack
+ id: RobustSoftdrinksGoodbyes
+ messages:
+ - vending-machine-thanks
+ - thankyou-cola-1
+ - thankyou-cola-2
+ - thankyou-cola-3
+ - thankyou-cola-4
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/discount.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/discount.yml
new file mode 100644
index 00000000000000..d3f7d89a93dddf
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/discount.yml
@@ -0,0 +1,12 @@
+- type: messagePack
+ id: DiscountDansGoodbyes
+ messages:
+ - vending-machine-thanks
+ - thankyou-discount-1
+ - thankyou-discount-2
+ - thankyou-discount-3
+ - thankyou-discount-4
+ - thankyou-discount-5
+ - thankyou-discount-6
+ - thankyou-discount-7
+ - thankyou-discount-8
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/donut.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/donut.yml
new file mode 100644
index 00000000000000..3c28741e3b6c76
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/donut.yml
@@ -0,0 +1,8 @@
+- type: messagePack
+ id: DonutGoodbyes
+ messages:
+ - vending-machine-thanks
+ - thankyou-donut-1
+ - thankyou-donut-2
+ - thankyou-donut-3
+ - thankyou-donut-4
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/games.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/games.yml
new file mode 100644
index 00000000000000..5d842619bb309d
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/games.yml
@@ -0,0 +1,8 @@
+- type: messagePack
+ id: GoodCleanFunGoodbyes
+ messages:
+ - vending-machine-thanks
+ - thankyou-goodcleanfun-1
+ - thankyou-goodcleanfun-2
+ - thankyou-goodcleanfun-3
+ - thankyou-goodcleanfun-4
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/generic.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/generic.yml
new file mode 100644
index 00000000000000..98a2d7d17a289c
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/generic.yml
@@ -0,0 +1,4 @@
+- type: messagePack
+ id: GenericVendGoodbyes
+ messages:
+ - vending-machine-thanks
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/happyhonk.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/happyhonk.yml
new file mode 100644
index 00000000000000..7859d5546340b7
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/happyhonk.yml
@@ -0,0 +1,8 @@
+- type: messagePack
+ id: HappyHonkGoodbyes
+ messages:
+ - vending-machine-thanks
+ - thankyou-happyhonk-1
+ - thankyou-happyhonk-2
+ - thankyou-happyhonk-3
+ - thankyou-happyhonk-4
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/lawdrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/lawdrobe.yml
new file mode 100644
index 00000000000000..56678c10178ec7
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/lawdrobe.yml
@@ -0,0 +1,8 @@
+- type: messagePack
+ id: LawDrobeGoodbyes
+ messages:
+ - thankyou-lawdrobe-1
+ - thankyou-lawdrobe-2
+ - thankyou-lawdrobe-3
+ - thankyou-lawdrobe-4
+ - thankyou-lawdrobe-5
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/nutrimax.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/nutrimax.yml
new file mode 100644
index 00000000000000..3568ae303142a5
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/nutrimax.yml
@@ -0,0 +1,6 @@
+- type: messagePack
+ id: NutriMaxGoodbyes
+ messages:
+ - vending-machine-thanks
+ - thankyou-nutrimax-1
+ - thankyou-nutrimax-2
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/sectech.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/sectech.yml
new file mode 100644
index 00000000000000..8909693473869c
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/sectech.yml
@@ -0,0 +1,7 @@
+- type: messagePack
+ id: SecTechGoodbyes
+ messages:
+ - vending-machine-thanks
+ - thankyou-sectech-1
+ - thankyou-sectech-2
+ - thankyou-sectech-3
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/snack.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/snack.yml
new file mode 100644
index 00000000000000..bd86e074c6bbc3
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/snack.yml
@@ -0,0 +1,10 @@
+- type: messagePack
+ id: GetmoreChocolateCorpGoodbyes
+ messages:
+ - vending-machine-thanks
+ - thankyou-snack-1
+ - thankyou-snack-2
+ - thankyou-snack-3
+ - thankyou-snack-4
+ - thankyou-snack-5
+ - thankyou-snack-6
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/sovietsoda.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/sovietsoda.yml
new file mode 100644
index 00000000000000..01ab25a7ad4a5e
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/sovietsoda.yml
@@ -0,0 +1,7 @@
+- type: messagePack
+ id: BodaGoodbyes
+ messages:
+ - vending-machine-thanks
+ - thankyou-sovietsoda-1
+ - thankyou-sovietsoda-2
+ - thankyou-sovietsoda-3
diff --git a/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/syndiedrobe.yml b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/syndiedrobe.yml
new file mode 100644
index 00000000000000..1246eb3089dda6
--- /dev/null
+++ b/Resources/Prototypes/Catalog/VendingMachines/Goodbyes/syndiedrobe.yml
@@ -0,0 +1,9 @@
+- type: messagePack
+ id: SyndieDrobeGoodbyes
+ messages:
+ - vending-machine-thanks
+ - thankyou-syndiedrobe-1
+ - thankyou-syndiedrobe-2
+ - thankyou-syndiedrobe-3
+ - thankyou-syndiedrobe-4
+ - thankyou-syndiedrobe-5
diff --git a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml
index 472f40fdcce53c..c97dc4b9dc925e 100644
--- a/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml
+++ b/Resources/Prototypes/Entities/Structures/Machines/vending_machines.yml
@@ -130,6 +130,8 @@
density: 190
- type: Advertise
pack: CondimentVendAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Speech
- type: Transform
noRot: false
@@ -147,6 +149,8 @@
normalState: normal-unshaded
- type: Advertise
pack: AmmoVendAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/ammo.rsi
@@ -174,6 +178,8 @@
loopDeny: false
- type: Advertise
pack: BoozeOMatAds
+ - type: SpeakOnUIClosed
+ pack: BoozeOMatGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/boozeomat.rsi
@@ -235,6 +241,8 @@
ejectState: eject-unshaded
- type: Advertise
pack: ChefvendAds
+ - type: SpeakOnUIClosed
+ pack: ChefvendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/chefvend.rsi
layers:
@@ -269,6 +277,8 @@
denyState: deny-unshaded
- type: Advertise
pack: CigaretteMachineAds
+ - type: SpeakOnUIClosed
+ pack: CigaretteMachineGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/cigs.rsi
@@ -295,6 +305,8 @@
denyState: deny-unshaded
- type: Advertise
pack: ClothesMateAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/clothing.rsi
@@ -325,6 +337,8 @@
denyState: deny-unshaded
- type: Advertise
pack: ClothesMateAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/winterdrobe.rsi
@@ -362,6 +376,8 @@
initialStockQuality: 0.33
- type: Advertise
pack: HotDrinksMachineAds
+ - type: SpeakOnUIClosed
+ pack: HotDrinksMachineGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/coffee.rsi
@@ -400,6 +416,8 @@
initialStockQuality: 0.33
- type: Advertise
pack: RobustSoftdrinksAds
+ - type: SpeakOnUIClosed
+ pack: RobustSoftdrinksGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/cola.rsi
@@ -579,6 +597,8 @@
initialStockQuality: 0.33
- type: Advertise
pack: RobustSoftdrinksAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/pwrgame.rsi
@@ -614,6 +634,8 @@
initialStockQuality: 0.33
- type: Advertise
pack: RobustSoftdrinksAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/gib.rsi
@@ -644,6 +666,8 @@
ejectState: eject-unshaded
- type: Advertise
pack: DinnerwareAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/dinnerware.rsi
layers:
@@ -674,6 +698,8 @@
normalState: normal-unshaded
- type: Advertise
pack: MagiVendAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/magivend.rsi
layers:
@@ -705,6 +731,8 @@
initialStockQuality: 0.33
- type: Advertise
pack: DiscountDansAds
+ - type: SpeakOnUIClosed
+ pack: DiscountDansGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/discount.rsi
@@ -767,6 +795,8 @@
ejectDelay: 0.6
- type: Advertise
pack: NanoMedAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/medical.rsi
layers:
@@ -802,6 +832,8 @@
denyState: deny-unshaded
- type: Advertise
pack: NutriMaxAds
+ - type: SpeakOnUIClosed
+ pack: NutriMaxGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/nutri.rsi
layers:
@@ -834,6 +866,8 @@
denyState: deny-unshaded
- type: Advertise
pack: SecTechAds
+ - type: SpeakOnUIClosed
+ pack: SecTechGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/sec.rsi
layers:
@@ -870,6 +904,8 @@
denyState: deny-unshaded
- type: Advertise
pack: MegaSeedAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/seeds.rsi
layers:
@@ -911,6 +947,8 @@
initialStockQuality: 0.33
- type: Advertise
pack: GetmoreChocolateCorpAds
+ - type: SpeakOnUIClosed
+ pack: GetmoreChocolateCorpGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/snack.rsi
@@ -1055,6 +1093,8 @@
initialStockQuality: 0.33
- type: Advertise
pack: BodaAds
+ - type: SpeakOnUIClosed
+ pack: BodaGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/sovietsoda.rsi
@@ -1087,6 +1127,8 @@
screenState: screen
- type: Advertise
pack: AutoDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/theater.rsi
@@ -1121,6 +1163,8 @@
denyState: deny-unshaded
- type: Advertise
pack: VendomatAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/vendomat.rsi
@@ -1152,6 +1196,8 @@
denyState: deny-unshaded
- type: Advertise
pack: VendomatAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/robotics.rsi
@@ -1216,6 +1262,8 @@
ejectDelay: 1.8
- type: Advertise
pack: GoodCleanFunAds
+ - type: SpeakOnUIClosed
+ pack: GoodCleanFunGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/games.rsi
layers:
@@ -1247,6 +1295,8 @@
initialStockQuality: 0.33
- type: Advertise
pack: ChangAds
+ - type: SpeakOnUIClosed
+ pack: ChangGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/changs.rsi
@@ -1311,6 +1361,8 @@
initialStockQuality: 0.33
- type: Advertise
pack: DonutAds
+ - type: SpeakOnUIClosed
+ pack: DonutGoodbyes
- type: Speech
- type: Sprite
sprite: Structures/Machines/VendingMachines/donut.rsi
@@ -1394,6 +1446,8 @@
normalState: normal-unshaded
- type: Advertise
pack: HyDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/hydrobe.rsi
layers:
@@ -1420,6 +1474,8 @@
normalState: normal-unshaded
- type: Advertise
pack: LawDrobeAds
+ - type: SpeakOnUIClosed
+ pack: LawDrobeGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/lawdrobe.rsi
layers:
@@ -1446,6 +1502,8 @@
normalState: normal-unshaded
- type: Advertise
pack: SecDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/secdrobe.rsi
layers:
@@ -1472,6 +1530,8 @@
normalState: normal-unshaded
- type: Advertise
pack: BarDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/bardrobe.rsi
layers:
@@ -1526,6 +1586,8 @@
normalState: normal-unshaded
- type: Advertise
pack: CargoDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/cargodrobe.rsi
layers:
@@ -1552,6 +1614,8 @@
normalState: normal-unshaded
- type: Advertise
pack: MediDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/medidrobe.rsi
layers:
@@ -1578,6 +1642,8 @@
normalState: normal-unshaded
- type: Advertise
pack: ChemDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/chemdrobe.rsi
layers:
@@ -1604,6 +1670,8 @@
normalState: normal-unshaded
- type: Advertise
pack: CuraDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/curadrobe.rsi
layers:
@@ -1630,6 +1698,8 @@
normalState: normal-unshaded
- type: Advertise
pack: AtmosDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/atmosdrobe.rsi
layers:
@@ -1656,6 +1726,8 @@
normalState: normal-unshaded
- type: Advertise
pack: EngiDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/engidrobe.rsi
layers:
@@ -1682,6 +1754,8 @@
normalState: normal-unshaded
- type: Advertise
pack: ChefDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/chefdrobe.rsi
layers:
@@ -1708,6 +1782,8 @@
normalState: normal-unshaded
- type: Advertise
pack: DetDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/detdrobe.rsi
layers:
@@ -1734,6 +1810,8 @@
normalState: normal-unshaded
- type: Advertise
pack: JaniDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/janidrobe.rsi
layers:
@@ -1760,6 +1838,8 @@
normalState: normal-unshaded
- type: Advertise
pack: SciDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/scidrobe.rsi
layers:
@@ -1786,6 +1866,8 @@
normalState: normal-unshaded
- type: Advertise
pack: SyndieDrobeAds
+ - type: SpeakOnUIClosed
+ pack: SyndieDrobeGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/syndiedrobe.rsi
layers:
@@ -1812,6 +1894,8 @@
normalState: normal-unshaded
- type: Advertise
pack: RoboDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/robodrobe.rsi
layers:
@@ -1838,6 +1922,8 @@
normalState: normal-unshaded
- type: Advertise
pack: GeneDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/genedrobe.rsi
layers:
@@ -1864,6 +1950,8 @@
normalState: normal-unshaded
- type: Advertise
pack: ViroDrobeAds
+ - type: SpeakOnUIClosed
+ pack: GenericVendGoodbyes
- type: Sprite
sprite: Structures/Machines/VendingMachines/virodrobe.rsi
layers:
@@ -1938,6 +2026,8 @@
color: "#3c5eb5"
- type: Advertise
pack: HappyHonkAds
+ - type: SpeakOnUIClosed
+ pack: HappyHonkGoodbyes
- type: AccessReader
access: [["Kitchen"], ["Theatre"]]