Separate "thank you" messages from general ads (#25867)
* Separated "thank you" messages from general ads * Moved MessagePackPrototype to shared, cleaned up AdvertiseComponent, and actually killed AdvertisementsPackPrototype. +More suggests changes. * Rename PackPrototypeID to Pack in both components.
This commit is contained in:
@@ -106,7 +106,6 @@ namespace Content.Client.Entry
|
|||||||
_prototypeManager.RegisterIgnore("gameMap");
|
_prototypeManager.RegisterIgnore("gameMap");
|
||||||
_prototypeManager.RegisterIgnore("gameMapPool");
|
_prototypeManager.RegisterIgnore("gameMapPool");
|
||||||
_prototypeManager.RegisterIgnore("lobbyBackground");
|
_prototypeManager.RegisterIgnore("lobbyBackground");
|
||||||
_prototypeManager.RegisterIgnore("advertisementsPack");
|
|
||||||
_prototypeManager.RegisterIgnore("gamePreset");
|
_prototypeManager.RegisterIgnore("gamePreset");
|
||||||
_prototypeManager.RegisterIgnore("noiseChannel");
|
_prototypeManager.RegisterIgnore("noiseChannel");
|
||||||
_prototypeManager.RegisterIgnore("spaceBiome");
|
_prototypeManager.RegisterIgnore("spaceBiome");
|
||||||
|
|||||||
@@ -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
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Minimum time in seconds to wait before saying a new ad, in seconds. Has to be larger than or equal to 1.
|
|
||||||
/// </summary>
|
|
||||||
[ViewVariables(VVAccess.ReadWrite)]
|
|
||||||
[DataField("minWait")]
|
|
||||||
public int MinimumWait { get; private set; } = 8 * 60;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Maximum time in seconds to wait before saying a new ad, in seconds. Has to be larger than or equal
|
|
||||||
/// to <see cref="MinimumWait"/>
|
|
||||||
/// </summary>
|
|
||||||
[ViewVariables(VVAccess.ReadWrite)]
|
|
||||||
[DataField("maxWait")]
|
|
||||||
public int MaximumWait { get; private set; } = 10 * 60;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// The identifier for the advertisements pack prototype.
|
|
||||||
/// </summary>
|
|
||||||
[DataField("pack", customTypeSerializer:typeof(PrototypeIdSerializer<AdvertisementsPackPrototype>), required: true)]
|
|
||||||
public string PackPrototypeId { get; private set; } = string.Empty;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// The next time an advertisement will be said.
|
|
||||||
/// </summary>
|
|
||||||
[ViewVariables(VVAccess.ReadWrite)]
|
|
||||||
public TimeSpan NextAdvertisementTime { get; set; } = TimeSpan.Zero;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Whether the entity will say advertisements or not.
|
|
||||||
/// </summary>
|
|
||||||
[ViewVariables(VVAccess.ReadWrite)]
|
|
||||||
public bool Enabled { get; set; } = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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!;
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// The maximum amount of time between checking if advertisements should be displayed
|
|
||||||
/// </summary>
|
|
||||||
private readonly TimeSpan _maximumNextCheckDuration = TimeSpan.FromSeconds(15);
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// The next time the game will check if advertisements should be displayed
|
|
||||||
/// </summary>
|
|
||||||
private TimeSpan _nextCheckTime = TimeSpan.MaxValue;
|
|
||||||
|
|
||||||
public override void Initialize()
|
|
||||||
{
|
|
||||||
SubscribeLocalEvent<AdvertiseComponent, ComponentInit>(OnComponentInit);
|
|
||||||
SubscribeLocalEvent<AdvertiseComponent, PowerChangedEvent>(OnPowerChanged);
|
|
||||||
|
|
||||||
SubscribeLocalEvent<ApcPowerReceiverComponent, AdvertiseEnableChangeAttemptEvent>(OnPowerReceiverEnableChangeAttempt);
|
|
||||||
SubscribeLocalEvent<VendingMachineComponent, AdvertiseEnableChangeAttemptEvent>(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<AdvertiseComponent>();
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
45
Content.Server/Advertise/Components/AdvertiseComponent.cs
Normal file
45
Content.Server/Advertise/Components/AdvertiseComponent.cs
Normal file
@@ -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;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Makes this entity periodically advertise by speaking a randomly selected
|
||||||
|
/// message from a specified MessagePack into local chat.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, Access(typeof(AdvertiseSystem))]
|
||||||
|
public sealed partial class AdvertiseComponent : Component
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Minimum time in seconds to wait before saying a new ad, in seconds. Has to be larger than or equal to 1.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public int MinimumWait { get; private set; } = 8 * 60;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Maximum time in seconds to wait before saying a new ad, in seconds. Has to be larger than or equal
|
||||||
|
/// to <see cref="MinimumWait"/>
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public int MaximumWait { get; private set; } = 10 * 60;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The identifier for the advertisements pack prototype.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public ProtoId<MessagePackPrototype> Pack { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The next time an advertisement will be said.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public TimeSpan NextAdvertisementTime { get; set; } = TimeSpan.Zero;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Whether the entity will say advertisements or not.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public bool Enabled { get; set; } = true;
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
using Content.Shared.Advertise;
|
||||||
|
using Robust.Shared.Prototypes;
|
||||||
|
|
||||||
|
namespace Content.Server.Advertise.Components;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Causes the entity to speak using the Chat system when its ActivatableUI is closed, optionally
|
||||||
|
/// requiring that a Flag be set as well.
|
||||||
|
/// </summary>
|
||||||
|
[RegisterComponent, Access(typeof(SpeakOnUIClosedSystem))]
|
||||||
|
public sealed partial class SpeakOnUIClosedComponent : Component
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The identifier for the message pack prototype containing messages to be spoken by this entity.
|
||||||
|
/// </summary>
|
||||||
|
[DataField(required: true)]
|
||||||
|
public ProtoId<MessagePackPrototype> Pack { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Is this component active? If false, no messages will be spoken.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public bool Enabled = true;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Should messages be spoken only if the <see cref="Flag"/> is set (true), or every time the UI is closed (false)?
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public bool RequireFlag = true;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// State variable only used if <see cref="RequireFlag"/> is true. Set with <see cref="SpeakOnUIClosedSystem.TrySetFlag"/>.
|
||||||
|
/// </summary>
|
||||||
|
[DataField]
|
||||||
|
public bool Flag;
|
||||||
|
}
|
||||||
137
Content.Server/Advertise/EntitySystems/AdvertiseSystem.cs
Normal file
137
Content.Server/Advertise/EntitySystems/AdvertiseSystem.cs
Normal file
@@ -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!;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The maximum amount of time between checking if advertisements should be displayed
|
||||||
|
/// </summary>
|
||||||
|
private readonly TimeSpan _maximumNextCheckDuration = TimeSpan.FromSeconds(15);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The next time the game will check if advertisements should be displayed
|
||||||
|
/// </summary>
|
||||||
|
private TimeSpan _nextCheckTime = TimeSpan.MaxValue;
|
||||||
|
|
||||||
|
public override void Initialize()
|
||||||
|
{
|
||||||
|
SubscribeLocalEvent<AdvertiseComponent, MapInitEvent>(OnMapInit);
|
||||||
|
SubscribeLocalEvent<AdvertiseComponent, PowerChangedEvent>(OnPowerChanged);
|
||||||
|
|
||||||
|
SubscribeLocalEvent<ApcPowerReceiverComponent, AdvertiseEnableChangeAttemptEvent>(OnPowerReceiverEnableChangeAttempt);
|
||||||
|
SubscribeLocalEvent<VendingMachineComponent, AdvertiseEnableChangeAttemptEvent>(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<AdvertiseComponent>();
|
||||||
|
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;
|
||||||
|
}
|
||||||
@@ -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<SpeakOnUIClosedComponent, BoundUIClosedEvent>(OnBoundUIClosed);
|
||||||
|
}
|
||||||
|
private void OnBoundUIClosed(Entity<SpeakOnUIClosedComponent> 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<SpeakOnUIClosedComponent?> 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<SpeakOnUIClosedComponent?> entity, bool value = true)
|
||||||
|
{
|
||||||
|
if (!Resolve(entity, ref entity.Comp))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
entity.Comp.Flag = value;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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<string> Advertisements { get; private set; } = new();
|
|
||||||
|
|
||||||
[DataField("thankyous")]
|
|
||||||
public List<string> ThankYous { get; private set; } = new();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,12 +1,11 @@
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
using Content.Server.Advertise;
|
using Content.Server.Advertise;
|
||||||
|
using Content.Server.Advertise.Components;
|
||||||
using Content.Server.Cargo.Systems;
|
using Content.Server.Cargo.Systems;
|
||||||
using Content.Server.Chat.Systems;
|
|
||||||
using Content.Server.Emp;
|
using Content.Server.Emp;
|
||||||
using Content.Server.Power.Components;
|
using Content.Server.Power.Components;
|
||||||
using Content.Server.Power.EntitySystems;
|
using Content.Server.Power.EntitySystems;
|
||||||
using Content.Server.UserInterface;
|
|
||||||
using Content.Shared.Access.Components;
|
using Content.Shared.Access.Components;
|
||||||
using Content.Shared.Access.Systems;
|
using Content.Shared.Access.Systems;
|
||||||
using Content.Shared.Actions;
|
using Content.Shared.Actions;
|
||||||
@@ -25,7 +24,6 @@ using Robust.Shared.Audio;
|
|||||||
using Robust.Shared.Prototypes;
|
using Robust.Shared.Prototypes;
|
||||||
using Robust.Shared.Random;
|
using Robust.Shared.Random;
|
||||||
using Robust.Shared.Timing;
|
using Robust.Shared.Timing;
|
||||||
using Robust.Shared.Utility;
|
|
||||||
|
|
||||||
namespace Content.Server.VendingMachines
|
namespace Content.Server.VendingMachines
|
||||||
{
|
{
|
||||||
@@ -39,7 +37,7 @@ namespace Content.Server.VendingMachines
|
|||||||
[Dependency] private readonly ThrowingSystem _throwingSystem = default!;
|
[Dependency] private readonly ThrowingSystem _throwingSystem = default!;
|
||||||
[Dependency] private readonly UserInterfaceSystem _userInterfaceSystem = default!;
|
[Dependency] private readonly UserInterfaceSystem _userInterfaceSystem = default!;
|
||||||
[Dependency] private readonly IGameTiming _timing = default!;
|
[Dependency] private readonly IGameTiming _timing = default!;
|
||||||
[Dependency] private readonly AdvertiseSystem _advertise = default!;
|
[Dependency] private readonly SpeakOnUIClosedSystem _speakOnUIClosed = default!;
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
{
|
{
|
||||||
@@ -58,7 +56,6 @@ namespace Content.Server.VendingMachines
|
|||||||
Subs.BuiEvents<VendingMachineComponent>(VendingMachineUiKey.Key, subs =>
|
Subs.BuiEvents<VendingMachineComponent>(VendingMachineUiKey.Key, subs =>
|
||||||
{
|
{
|
||||||
subs.Event<BoundUIOpenedEvent>(OnBoundUIOpened);
|
subs.Event<BoundUIOpenedEvent>(OnBoundUIOpened);
|
||||||
subs.Event<BoundUIClosedEvent>(OnBoundUIClosed);
|
|
||||||
subs.Event<VendingMachineEjectMessage>(OnInventoryEjectMessage);
|
subs.Event<VendingMachineEjectMessage>(OnInventoryEjectMessage);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -114,16 +111,6 @@ namespace Content.Server.VendingMachines
|
|||||||
UpdateVendingMachineInterfaceState(uid, component);
|
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<AdvertiseComponent>(uid, out var advertise))
|
|
||||||
{
|
|
||||||
_advertise.SayThankYou(uid, advertise);
|
|
||||||
component.ShouldSayThankYou = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void UpdateVendingMachineInterfaceState(EntityUid uid, VendingMachineComponent component)
|
private void UpdateVendingMachineInterfaceState(EntityUid uid, VendingMachineComponent component)
|
||||||
{
|
{
|
||||||
var state = new VendingMachineInterfaceState(GetAllInventory(uid, component));
|
var state = new VendingMachineInterfaceState(GetAllInventory(uid, component));
|
||||||
@@ -294,7 +281,10 @@ namespace Content.Server.VendingMachines
|
|||||||
vendComponent.Ejecting = true;
|
vendComponent.Ejecting = true;
|
||||||
vendComponent.NextItemToEject = entry.ID;
|
vendComponent.NextItemToEject = entry.ID;
|
||||||
vendComponent.ThrowNextItem = throwItem;
|
vendComponent.ThrowNextItem = throwItem;
|
||||||
vendComponent.ShouldSayThankYou = true;
|
|
||||||
|
if (TryComp(uid, out SpeakOnUIClosedComponent? speakComponent))
|
||||||
|
_speakOnUIClosed.TrySetFlag((uid, speakComponent));
|
||||||
|
|
||||||
entry.Amount--;
|
entry.Amount--;
|
||||||
UpdateVendingMachineInterfaceState(uid, vendComponent);
|
UpdateVendingMachineInterfaceState(uid, vendComponent);
|
||||||
TryUpdateVisualState(uid, vendComponent);
|
TryUpdateVisualState(uid, vendComponent);
|
||||||
|
|||||||
14
Content.Shared/Advertise/MessagePackPrototype.cs
Normal file
14
Content.Shared/Advertise/MessagePackPrototype.cs
Normal file
@@ -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<LocId> Messages { get; private set; } = [];
|
||||||
|
}
|
||||||
@@ -51,8 +51,6 @@ namespace Content.Shared.VendingMachines
|
|||||||
|
|
||||||
public bool Broken;
|
public bool Broken;
|
||||||
|
|
||||||
public bool ShouldSayThankYou;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// When true, will forcefully throw any object it dispenses
|
/// When true, will forcefully throw any object it dispenses
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: AmmoVendAds
|
id: AmmoVendAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-ammo-1
|
- advertisement-ammo-1
|
||||||
- advertisement-ammo-2
|
- advertisement-ammo-2
|
||||||
- advertisement-ammo-3
|
- advertisement-ammo-3
|
||||||
@@ -11,5 +11,3 @@
|
|||||||
- advertisement-ammo-8
|
- advertisement-ammo-8
|
||||||
- advertisement-ammo-9
|
- advertisement-ammo-9
|
||||||
- advertisement-ammo-10
|
- advertisement-ammo-10
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: AtmosDrobeAds
|
id: AtmosDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-atmosdrobe-1
|
- advertisement-atmosdrobe-1
|
||||||
- advertisement-atmosdrobe-2
|
- advertisement-atmosdrobe-2
|
||||||
- advertisement-atmosdrobe-3
|
- advertisement-atmosdrobe-3
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: BarDrobeAds
|
id: BarDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-bardrobe-1
|
- advertisement-bardrobe-1
|
||||||
- advertisement-bardrobe-2
|
- advertisement-bardrobe-2
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: BoozeOMatAds
|
id: BoozeOMatAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-boozeomat-1
|
- advertisement-boozeomat-1
|
||||||
- advertisement-boozeomat-2
|
- advertisement-boozeomat-2
|
||||||
- advertisement-boozeomat-3
|
- advertisement-boozeomat-3
|
||||||
@@ -20,8 +20,3 @@
|
|||||||
- advertisement-boozeomat-17
|
- advertisement-boozeomat-17
|
||||||
- advertisement-boozeomat-18
|
- advertisement-boozeomat-18
|
||||||
- advertisement-boozeomat-19
|
- advertisement-boozeomat-19
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
- thankyou-boozeomat-1
|
|
||||||
- thankyou-boozeomat-2
|
|
||||||
- thankyou-boozeomat-3
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: CargoDrobeAds
|
id: CargoDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-cargodrobe-1
|
- advertisement-cargodrobe-1
|
||||||
- advertisement-cargodrobe-2
|
- advertisement-cargodrobe-2
|
||||||
- advertisement-cargodrobe-3
|
- advertisement-cargodrobe-3
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,12 +1,8 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: ChangAds
|
id: ChangAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-chang-1
|
- advertisement-chang-1
|
||||||
- advertisement-chang-2
|
- advertisement-chang-2
|
||||||
- advertisement-chang-3
|
- advertisement-chang-3
|
||||||
- advertisement-chang-4
|
- advertisement-chang-4
|
||||||
- advertisement-chang-5
|
- advertisement-chang-5
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
- thankyou-chang-1
|
|
||||||
- thankyou-chang-2
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: ChefDrobeAds
|
id: ChefDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-chefdrobe-1
|
- advertisement-chefdrobe-1
|
||||||
- advertisement-chefdrobe-2
|
- advertisement-chefdrobe-2
|
||||||
- advertisement-chefdrobe-3
|
- advertisement-chefdrobe-3
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: ChefvendAds
|
id: ChefvendAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-chefvend-1
|
- advertisement-chefvend-1
|
||||||
- advertisement-chefvend-2
|
- advertisement-chefvend-2
|
||||||
- advertisement-chefvend-3
|
- advertisement-chefvend-3
|
||||||
@@ -10,9 +10,3 @@
|
|||||||
- advertisement-chefvend-7
|
- advertisement-chefvend-7
|
||||||
- advertisement-chefvend-8
|
- advertisement-chefvend-8
|
||||||
- advertisement-chefvend-9
|
- advertisement-chefvend-9
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
- thankyou-chefvend-1
|
|
||||||
- thankyou-chefvend-2
|
|
||||||
- thankyou-chefvend-3
|
|
||||||
- thankyou-chefvend-4
|
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: ChemDrobeAds
|
id: ChemDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-chemdrobe-1
|
- advertisement-chemdrobe-1
|
||||||
- advertisement-chemdrobe-2
|
- advertisement-chemdrobe-2
|
||||||
- advertisement-chemdrobe-3
|
- advertisement-chemdrobe-3
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: CigaretteMachineAds
|
id: CigaretteMachineAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-cigs-1
|
- advertisement-cigs-1
|
||||||
- advertisement-cigs-2
|
- advertisement-cigs-2
|
||||||
- advertisement-cigs-3
|
- advertisement-cigs-3
|
||||||
@@ -13,8 +13,3 @@
|
|||||||
- advertisement-cigs-10
|
- advertisement-cigs-10
|
||||||
- advertisement-cigs-11
|
- advertisement-cigs-11
|
||||||
- advertisement-cigs-12
|
- advertisement-cigs-12
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
- thankyou-cigs-1
|
|
||||||
- thankyou-cigs-2
|
|
||||||
- thankyou-cigs-3
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: ClothesMateAds
|
id: ClothesMateAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-clothes-1
|
- advertisement-clothes-1
|
||||||
- advertisement-clothes-2
|
- advertisement-clothes-2
|
||||||
- advertisement-clothes-3
|
- advertisement-clothes-3
|
||||||
@@ -8,5 +8,3 @@
|
|||||||
- advertisement-clothes-5
|
- advertisement-clothes-5
|
||||||
- advertisement-clothes-6
|
- advertisement-clothes-6
|
||||||
- advertisement-clothes-7
|
- advertisement-clothes-7
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: HotDrinksMachineAds
|
id: HotDrinksMachineAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-coffee-1
|
- advertisement-coffee-1
|
||||||
- advertisement-coffee-2
|
- advertisement-coffee-2
|
||||||
- advertisement-coffee-3
|
- advertisement-coffee-3
|
||||||
@@ -15,9 +15,3 @@
|
|||||||
- advertisement-coffee-12
|
- advertisement-coffee-12
|
||||||
- advertisement-coffee-13
|
- advertisement-coffee-13
|
||||||
- advertisement-coffee-14
|
- advertisement-coffee-14
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
- thankyou-coffee-1
|
|
||||||
- thankyou-coffee-2
|
|
||||||
- thankyou-coffee-3
|
|
||||||
- thankyou-coffee-4
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: RobustSoftdrinksAds
|
id: RobustSoftdrinksAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-cola-1
|
- advertisement-cola-1
|
||||||
- advertisement-cola-2
|
- advertisement-cola-2
|
||||||
- advertisement-cola-3
|
- advertisement-cola-3
|
||||||
@@ -9,9 +9,3 @@
|
|||||||
- advertisement-cola-6
|
- advertisement-cola-6
|
||||||
- advertisement-cola-7
|
- advertisement-cola-7
|
||||||
- advertisement-cola-8
|
- advertisement-cola-8
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
- thankyou-cola-1
|
|
||||||
- thankyou-cola-2
|
|
||||||
- thankyou-cola-3
|
|
||||||
- thankyou-cola-4
|
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: CondimentVendAds
|
id: CondimentVendAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-condiment-1
|
- advertisement-condiment-1
|
||||||
- advertisement-condiment-2
|
- advertisement-condiment-2
|
||||||
- advertisement-condiment-3
|
- advertisement-condiment-3
|
||||||
- advertisement-condiment-4
|
- advertisement-condiment-4
|
||||||
- advertisement-condiment-5
|
- advertisement-condiment-5
|
||||||
- advertisement-condiment-6
|
- advertisement-condiment-6
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: CuraDrobeAds
|
id: CuraDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-curadrobe-1
|
- advertisement-curadrobe-1
|
||||||
- advertisement-curadrobe-2
|
- advertisement-curadrobe-2
|
||||||
- advertisement-curadrobe-3
|
- advertisement-curadrobe-3
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: DetDrobeAds
|
id: DetDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-detdrobe-1
|
- advertisement-detdrobe-1
|
||||||
- advertisement-detdrobe-2
|
- advertisement-detdrobe-2
|
||||||
- advertisement-detdrobe-3
|
- advertisement-detdrobe-3
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: DinnerwareAds
|
id: DinnerwareAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-dinnerware-1
|
- advertisement-dinnerware-1
|
||||||
- advertisement-dinnerware-2
|
- advertisement-dinnerware-2
|
||||||
- advertisement-dinnerware-3
|
- advertisement-dinnerware-3
|
||||||
@@ -11,5 +11,3 @@
|
|||||||
- advertisement-dinnerware-8
|
- advertisement-dinnerware-8
|
||||||
- advertisement-dinnerware-9
|
- advertisement-dinnerware-9
|
||||||
- advertisement-dinnerware-10
|
- advertisement-dinnerware-10
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: DiscountDansAds
|
id: DiscountDansAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-discount-1
|
- advertisement-discount-1
|
||||||
- advertisement-discount-2
|
- advertisement-discount-2
|
||||||
- advertisement-discount-3
|
- advertisement-discount-3
|
||||||
@@ -10,13 +10,3 @@
|
|||||||
- advertisement-discount-7
|
- advertisement-discount-7
|
||||||
- advertisement-discount-8
|
- advertisement-discount-8
|
||||||
- advertisement-discount-9
|
- 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
|
|
||||||
|
|||||||
@@ -1,14 +1,8 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: DonutAds
|
id: DonutAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-donut-1
|
- advertisement-donut-1
|
||||||
- advertisement-donut-2
|
- advertisement-donut-2
|
||||||
- advertisement-donut-3
|
- advertisement-donut-3
|
||||||
- advertisement-donut-4
|
- advertisement-donut-4
|
||||||
- advertisement-donut-5
|
- advertisement-donut-5
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
- thankyou-donut-1
|
|
||||||
- thankyou-donut-2
|
|
||||||
- thankyou-donut-3
|
|
||||||
- thankyou-donut-4
|
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: EngiDrobeAds
|
id: EngiDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-engidrobe-1
|
- advertisement-engidrobe-1
|
||||||
- advertisement-engidrobe-2
|
- advertisement-engidrobe-2
|
||||||
- advertisement-engidrobe-3
|
- advertisement-engidrobe-3
|
||||||
- advertisement-engidrobe-4
|
- advertisement-engidrobe-4
|
||||||
- advertisement-engidrobe-5
|
- advertisement-engidrobe-5
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: FatExtractorFacts
|
id: FatExtractorFacts
|
||||||
advertisements:
|
messages:
|
||||||
- fat-extractor-fact-1
|
- fat-extractor-fact-1
|
||||||
- fat-extractor-fact-2
|
- fat-extractor-fact-2
|
||||||
- fat-extractor-fact-3
|
- fat-extractor-fact-3
|
||||||
- fat-extractor-fact-4
|
- fat-extractor-fact-4
|
||||||
- fat-extractor-fact-5
|
- fat-extractor-fact-5
|
||||||
- fat-extractor-fact-6
|
- fat-extractor-fact-6
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: GoodCleanFunAds
|
id: GoodCleanFunAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-goodcleanfun-1
|
- advertisement-goodcleanfun-1
|
||||||
- advertisement-goodcleanfun-2
|
- advertisement-goodcleanfun-2
|
||||||
- advertisement-goodcleanfun-3
|
- advertisement-goodcleanfun-3
|
||||||
@@ -11,9 +11,3 @@
|
|||||||
- advertisement-goodcleanfun-8
|
- advertisement-goodcleanfun-8
|
||||||
- advertisement-goodcleanfun-9
|
- advertisement-goodcleanfun-9
|
||||||
- advertisement-goodcleanfun-10
|
- advertisement-goodcleanfun-10
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
- thankyou-goodcleanfun-1
|
|
||||||
- thankyou-goodcleanfun-2
|
|
||||||
- thankyou-goodcleanfun-3
|
|
||||||
- thankyou-goodcleanfun-4
|
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: GeneDrobeAds
|
id: GeneDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-genedrobe-1
|
- advertisement-genedrobe-1
|
||||||
- advertisement-genedrobe-2
|
- advertisement-genedrobe-2
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: HappyHonkAds
|
id: HappyHonkAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-happyhonk-1
|
- advertisement-happyhonk-1
|
||||||
- advertisement-happyhonk-2
|
- advertisement-happyhonk-2
|
||||||
- advertisement-happyhonk-3
|
- advertisement-happyhonk-3
|
||||||
@@ -11,9 +11,3 @@
|
|||||||
- advertisement-happyhonk-8
|
- advertisement-happyhonk-8
|
||||||
- advertisement-happyhonk-9
|
- advertisement-happyhonk-9
|
||||||
- advertisement-happyhonk-10
|
- advertisement-happyhonk-10
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
- thankyou-happyhonk-1
|
|
||||||
- thankyou-happyhonk-2
|
|
||||||
- thankyou-happyhonk-3
|
|
||||||
- thankyou-happyhonk-4
|
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: HyDrobeAds
|
id: HyDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-hydrobe-1
|
- advertisement-hydrobe-1
|
||||||
- advertisement-hydrobe-2
|
- advertisement-hydrobe-2
|
||||||
- advertisement-hydrobe-3
|
- advertisement-hydrobe-3
|
||||||
- advertisement-hydrobe-4
|
- advertisement-hydrobe-4
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: JaniDrobeAds
|
id: JaniDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-janidrobe-1
|
- advertisement-janidrobe-1
|
||||||
- advertisement-janidrobe-2
|
- advertisement-janidrobe-2
|
||||||
- advertisement-janidrobe-3
|
- advertisement-janidrobe-3
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: LawDrobeAds
|
id: LawDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-lawdrobe-1
|
- advertisement-lawdrobe-1
|
||||||
- advertisement-lawdrobe-2
|
- advertisement-lawdrobe-2
|
||||||
- advertisement-lawdrobe-3
|
- advertisement-lawdrobe-3
|
||||||
@@ -9,10 +9,3 @@
|
|||||||
- advertisement-lawdrobe-6
|
- advertisement-lawdrobe-6
|
||||||
- advertisement-lawdrobe-7
|
- advertisement-lawdrobe-7
|
||||||
- advertisement-lawdrobe-8
|
- advertisement-lawdrobe-8
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
- thankyou-lawdrobe-1
|
|
||||||
- thankyou-lawdrobe-2
|
|
||||||
- thankyou-lawdrobe-3
|
|
||||||
- thankyou-lawdrobe-4
|
|
||||||
- thankyou-lawdrobe-5
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: MagiVendAds
|
id: MagiVendAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-magivend-1
|
- advertisement-magivend-1
|
||||||
- advertisement-magivend-2
|
- advertisement-magivend-2
|
||||||
- advertisement-magivend-3
|
- advertisement-magivend-3
|
||||||
@@ -12,5 +12,3 @@
|
|||||||
- advertisement-magivend-9
|
- advertisement-magivend-9
|
||||||
- advertisement-magivend-10
|
- advertisement-magivend-10
|
||||||
- advertisement-magivend-11
|
- advertisement-magivend-11
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: MediDrobeAds
|
id: MediDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-medidrobe-1
|
- advertisement-medidrobe-1
|
||||||
- advertisement-medidrobe-2
|
- advertisement-medidrobe-2
|
||||||
- advertisement-medidrobe-3
|
- advertisement-medidrobe-3
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: MegaSeedAds
|
id: MegaSeedAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-megaseed-1
|
- advertisement-megaseed-1
|
||||||
- advertisement-megaseed-2
|
- advertisement-megaseed-2
|
||||||
- advertisement-megaseed-3
|
- advertisement-megaseed-3
|
||||||
- advertisement-megaseed-4
|
- advertisement-megaseed-4
|
||||||
- advertisement-megaseed-5
|
- advertisement-megaseed-5
|
||||||
- advertisement-megaseed-6
|
- advertisement-megaseed-6
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: NanoMedAds
|
id: NanoMedAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-nanomed-1
|
- advertisement-nanomed-1
|
||||||
- advertisement-nanomed-2
|
- advertisement-nanomed-2
|
||||||
- advertisement-nanomed-3
|
- advertisement-nanomed-3
|
||||||
@@ -10,5 +10,3 @@
|
|||||||
- advertisement-nanomed-7
|
- advertisement-nanomed-7
|
||||||
- advertisement-nanomed-8
|
- advertisement-nanomed-8
|
||||||
- advertisement-nanomed-9
|
- advertisement-nanomed-9
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: NutriMaxAds
|
id: NutriMaxAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-nutrimax-1
|
- advertisement-nutrimax-1
|
||||||
- advertisement-nutrimax-2
|
- advertisement-nutrimax-2
|
||||||
- advertisement-nutrimax-3
|
- advertisement-nutrimax-3
|
||||||
@@ -8,7 +8,3 @@
|
|||||||
- advertisement-nutrimax-5
|
- advertisement-nutrimax-5
|
||||||
- advertisement-nutrimax-6
|
- advertisement-nutrimax-6
|
||||||
- advertisement-nutrimax-7
|
- advertisement-nutrimax-7
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
- thankyou-nutrimax-1
|
|
||||||
- thankyou-nutrimax-2
|
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: RoboDrobeAds
|
id: RoboDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-robodrobe-1
|
- advertisement-robodrobe-1
|
||||||
- advertisement-robodrobe-2
|
- advertisement-robodrobe-2
|
||||||
- advertisement-robodrobe-3
|
- advertisement-robodrobe-3
|
||||||
- advertisement-robodrobe-4
|
- advertisement-robodrobe-4
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: SciDrobeAds
|
id: SciDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-scidrobe-1
|
- advertisement-scidrobe-1
|
||||||
- advertisement-scidrobe-2
|
- advertisement-scidrobe-2
|
||||||
- advertisement-scidrobe-3
|
- advertisement-scidrobe-3
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: SecDrobeAds
|
id: SecDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-secdrobe-1
|
- advertisement-secdrobe-1
|
||||||
- advertisement-secdrobe-2
|
- advertisement-secdrobe-2
|
||||||
- advertisement-secdrobe-3
|
- advertisement-secdrobe-3
|
||||||
- advertisement-secdrobe-4
|
- advertisement-secdrobe-4
|
||||||
- advertisement-secdrobe-5
|
- advertisement-secdrobe-5
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,13 +1,8 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: SecTechAds
|
id: SecTechAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-sectech-1
|
- advertisement-sectech-1
|
||||||
- advertisement-sectech-2
|
- advertisement-sectech-2
|
||||||
- advertisement-sectech-3
|
- advertisement-sectech-3
|
||||||
- advertisement-sectech-4
|
- advertisement-sectech-4
|
||||||
- advertisement-sectech-5
|
- advertisement-sectech-5
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
- thankyou-sectech-1
|
|
||||||
- thankyou-sectech-2
|
|
||||||
- thankyou-sectech-3
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: SmartFridgeAds
|
id: SmartFridgeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-smartfridge-1
|
- advertisement-smartfridge-1
|
||||||
- advertisement-smartfridge-2
|
- advertisement-smartfridge-2
|
||||||
- advertisement-smartfridge-3
|
- advertisement-smartfridge-3
|
||||||
@@ -9,5 +9,3 @@
|
|||||||
- advertisement-smartfridge-6
|
- advertisement-smartfridge-6
|
||||||
- advertisement-smartfridge-7
|
- advertisement-smartfridge-7
|
||||||
- advertisement-smartfridge-8
|
- advertisement-smartfridge-8
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: GetmoreChocolateCorpAds
|
id: GetmoreChocolateCorpAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-snack-1
|
- advertisement-snack-1
|
||||||
- advertisement-snack-2
|
- advertisement-snack-2
|
||||||
- advertisement-snack-3
|
- advertisement-snack-3
|
||||||
@@ -16,11 +16,3 @@
|
|||||||
- advertisement-snack-13
|
- advertisement-snack-13
|
||||||
- advertisement-snack-14
|
- advertisement-snack-14
|
||||||
- advertisement-snack-15
|
- 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
|
|
||||||
|
|||||||
@@ -1,14 +1,9 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: BodaAds
|
id: BodaAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-sovietsoda-1
|
- advertisement-sovietsoda-1
|
||||||
- advertisement-sovietsoda-2
|
- advertisement-sovietsoda-2
|
||||||
- advertisement-sovietsoda-3
|
- advertisement-sovietsoda-3
|
||||||
- advertisement-sovietsoda-4
|
- advertisement-sovietsoda-4
|
||||||
- advertisement-sovietsoda-5
|
- advertisement-sovietsoda-5
|
||||||
- advertisement-sovietsoda-6
|
- advertisement-sovietsoda-6
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
- thankyou-sovietsoda-1
|
|
||||||
- thankyou-sovietsoda-2
|
|
||||||
- thankyou-sovietsoda-3
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: SyndieDrobeAds
|
id: SyndieDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-syndiedrobe-1
|
- advertisement-syndiedrobe-1
|
||||||
- advertisement-syndiedrobe-2
|
- advertisement-syndiedrobe-2
|
||||||
- advertisement-syndiedrobe-3
|
- advertisement-syndiedrobe-3
|
||||||
@@ -32,10 +32,3 @@
|
|||||||
- advertisement-syndiedrobe-29
|
- advertisement-syndiedrobe-29
|
||||||
- advertisement-syndiedrobe-30
|
- advertisement-syndiedrobe-30
|
||||||
- advertisement-syndiedrobe-31
|
- advertisement-syndiedrobe-31
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
- thankyou-syndiedrobe-1
|
|
||||||
- thankyou-syndiedrobe-2
|
|
||||||
- thankyou-syndiedrobe-3
|
|
||||||
- thankyou-syndiedrobe-4
|
|
||||||
- thankyou-syndiedrobe-5
|
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: AutoDrobeAds
|
id: AutoDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-theater-1
|
- advertisement-theater-1
|
||||||
- advertisement-theater-2
|
- advertisement-theater-2
|
||||||
- advertisement-theater-3
|
- advertisement-theater-3
|
||||||
- advertisement-theater-4
|
- advertisement-theater-4
|
||||||
- advertisement-theater-5
|
- advertisement-theater-5
|
||||||
- advertisement-theater-6
|
- advertisement-theater-6
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: VendomatAds
|
id: VendomatAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-vendomat-1
|
- advertisement-vendomat-1
|
||||||
- advertisement-vendomat-2
|
- advertisement-vendomat-2
|
||||||
- advertisement-vendomat-3
|
- advertisement-vendomat-3
|
||||||
@@ -8,5 +8,3 @@
|
|||||||
- advertisement-vendomat-5
|
- advertisement-vendomat-5
|
||||||
- advertisement-vendomat-6
|
- advertisement-vendomat-6
|
||||||
- advertisement-vendomat-7
|
- advertisement-vendomat-7
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
- type: advertisementsPack
|
- type: messagePack
|
||||||
id: ViroDrobeAds
|
id: ViroDrobeAds
|
||||||
advertisements:
|
messages:
|
||||||
- advertisement-virodrobe-1
|
- advertisement-virodrobe-1
|
||||||
- advertisement-virodrobe-2
|
- advertisement-virodrobe-2
|
||||||
- advertisement-virodrobe-3
|
- advertisement-virodrobe-3
|
||||||
thankyous:
|
|
||||||
- vending-machine-thanks
|
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
- type: messagePack
|
||||||
|
id: BoozeOMatGoodbyes
|
||||||
|
messages:
|
||||||
|
- vending-machine-thanks
|
||||||
|
- thankyou-boozeomat-1
|
||||||
|
- thankyou-boozeomat-2
|
||||||
|
- thankyou-boozeomat-3
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
- type: messagePack
|
||||||
|
id: ChangGoodbyes
|
||||||
|
messages:
|
||||||
|
- vending-machine-thanks
|
||||||
|
- thankyou-chang-1
|
||||||
|
- thankyou-chang-2
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
- type: messagePack
|
||||||
|
id: ChefvendGoodbyes
|
||||||
|
messages:
|
||||||
|
- vending-machine-thanks
|
||||||
|
- thankyou-chefvend-1
|
||||||
|
- thankyou-chefvend-2
|
||||||
|
- thankyou-chefvend-3
|
||||||
|
- thankyou-chefvend-4
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
- type: messagePack
|
||||||
|
id: CigaretteMachineGoodbyes
|
||||||
|
messages:
|
||||||
|
- vending-machine-thanks
|
||||||
|
- thankyou-cigs-1
|
||||||
|
- thankyou-cigs-2
|
||||||
|
- thankyou-cigs-3
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
- type: messagePack
|
||||||
|
id: HotDrinksMachineGoodbyes
|
||||||
|
messages:
|
||||||
|
- vending-machine-thanks
|
||||||
|
- thankyou-coffee-1
|
||||||
|
- thankyou-coffee-2
|
||||||
|
- thankyou-coffee-3
|
||||||
|
- thankyou-coffee-4
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
- type: messagePack
|
||||||
|
id: RobustSoftdrinksGoodbyes
|
||||||
|
messages:
|
||||||
|
- vending-machine-thanks
|
||||||
|
- thankyou-cola-1
|
||||||
|
- thankyou-cola-2
|
||||||
|
- thankyou-cola-3
|
||||||
|
- thankyou-cola-4
|
||||||
@@ -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
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
- type: messagePack
|
||||||
|
id: DonutGoodbyes
|
||||||
|
messages:
|
||||||
|
- vending-machine-thanks
|
||||||
|
- thankyou-donut-1
|
||||||
|
- thankyou-donut-2
|
||||||
|
- thankyou-donut-3
|
||||||
|
- thankyou-donut-4
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
- type: messagePack
|
||||||
|
id: GoodCleanFunGoodbyes
|
||||||
|
messages:
|
||||||
|
- vending-machine-thanks
|
||||||
|
- thankyou-goodcleanfun-1
|
||||||
|
- thankyou-goodcleanfun-2
|
||||||
|
- thankyou-goodcleanfun-3
|
||||||
|
- thankyou-goodcleanfun-4
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
- type: messagePack
|
||||||
|
id: GenericVendGoodbyes
|
||||||
|
messages:
|
||||||
|
- vending-machine-thanks
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
- type: messagePack
|
||||||
|
id: HappyHonkGoodbyes
|
||||||
|
messages:
|
||||||
|
- vending-machine-thanks
|
||||||
|
- thankyou-happyhonk-1
|
||||||
|
- thankyou-happyhonk-2
|
||||||
|
- thankyou-happyhonk-3
|
||||||
|
- thankyou-happyhonk-4
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
- type: messagePack
|
||||||
|
id: LawDrobeGoodbyes
|
||||||
|
messages:
|
||||||
|
- thankyou-lawdrobe-1
|
||||||
|
- thankyou-lawdrobe-2
|
||||||
|
- thankyou-lawdrobe-3
|
||||||
|
- thankyou-lawdrobe-4
|
||||||
|
- thankyou-lawdrobe-5
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
- type: messagePack
|
||||||
|
id: NutriMaxGoodbyes
|
||||||
|
messages:
|
||||||
|
- vending-machine-thanks
|
||||||
|
- thankyou-nutrimax-1
|
||||||
|
- thankyou-nutrimax-2
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
- type: messagePack
|
||||||
|
id: SecTechGoodbyes
|
||||||
|
messages:
|
||||||
|
- vending-machine-thanks
|
||||||
|
- thankyou-sectech-1
|
||||||
|
- thankyou-sectech-2
|
||||||
|
- thankyou-sectech-3
|
||||||
@@ -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
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
- type: messagePack
|
||||||
|
id: BodaGoodbyes
|
||||||
|
messages:
|
||||||
|
- vending-machine-thanks
|
||||||
|
- thankyou-sovietsoda-1
|
||||||
|
- thankyou-sovietsoda-2
|
||||||
|
- thankyou-sovietsoda-3
|
||||||
@@ -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
|
||||||
@@ -130,6 +130,8 @@
|
|||||||
density: 190
|
density: 190
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: CondimentVendAds
|
pack: CondimentVendAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Transform
|
- type: Transform
|
||||||
noRot: false
|
noRot: false
|
||||||
@@ -147,6 +149,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: AmmoVendAds
|
pack: AmmoVendAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/ammo.rsi
|
sprite: Structures/Machines/VendingMachines/ammo.rsi
|
||||||
@@ -174,6 +178,8 @@
|
|||||||
loopDeny: false
|
loopDeny: false
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: BoozeOMatAds
|
pack: BoozeOMatAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: BoozeOMatGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/boozeomat.rsi
|
sprite: Structures/Machines/VendingMachines/boozeomat.rsi
|
||||||
@@ -235,6 +241,8 @@
|
|||||||
ejectState: eject-unshaded
|
ejectState: eject-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: ChefvendAds
|
pack: ChefvendAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: ChefvendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/chefvend.rsi
|
sprite: Structures/Machines/VendingMachines/chefvend.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -269,6 +277,8 @@
|
|||||||
denyState: deny-unshaded
|
denyState: deny-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: CigaretteMachineAds
|
pack: CigaretteMachineAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: CigaretteMachineGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/cigs.rsi
|
sprite: Structures/Machines/VendingMachines/cigs.rsi
|
||||||
@@ -295,6 +305,8 @@
|
|||||||
denyState: deny-unshaded
|
denyState: deny-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: ClothesMateAds
|
pack: ClothesMateAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/clothing.rsi
|
sprite: Structures/Machines/VendingMachines/clothing.rsi
|
||||||
@@ -325,6 +337,8 @@
|
|||||||
denyState: deny-unshaded
|
denyState: deny-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: ClothesMateAds
|
pack: ClothesMateAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/winterdrobe.rsi
|
sprite: Structures/Machines/VendingMachines/winterdrobe.rsi
|
||||||
@@ -362,6 +376,8 @@
|
|||||||
initialStockQuality: 0.33
|
initialStockQuality: 0.33
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: HotDrinksMachineAds
|
pack: HotDrinksMachineAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: HotDrinksMachineGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/coffee.rsi
|
sprite: Structures/Machines/VendingMachines/coffee.rsi
|
||||||
@@ -400,6 +416,8 @@
|
|||||||
initialStockQuality: 0.33
|
initialStockQuality: 0.33
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: RobustSoftdrinksAds
|
pack: RobustSoftdrinksAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: RobustSoftdrinksGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/cola.rsi
|
sprite: Structures/Machines/VendingMachines/cola.rsi
|
||||||
@@ -579,6 +597,8 @@
|
|||||||
initialStockQuality: 0.33
|
initialStockQuality: 0.33
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: RobustSoftdrinksAds
|
pack: RobustSoftdrinksAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/pwrgame.rsi
|
sprite: Structures/Machines/VendingMachines/pwrgame.rsi
|
||||||
@@ -614,6 +634,8 @@
|
|||||||
initialStockQuality: 0.33
|
initialStockQuality: 0.33
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: RobustSoftdrinksAds
|
pack: RobustSoftdrinksAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/gib.rsi
|
sprite: Structures/Machines/VendingMachines/gib.rsi
|
||||||
@@ -644,6 +666,8 @@
|
|||||||
ejectState: eject-unshaded
|
ejectState: eject-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: DinnerwareAds
|
pack: DinnerwareAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/dinnerware.rsi
|
sprite: Structures/Machines/VendingMachines/dinnerware.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -674,6 +698,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: MagiVendAds
|
pack: MagiVendAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/magivend.rsi
|
sprite: Structures/Machines/VendingMachines/magivend.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -705,6 +731,8 @@
|
|||||||
initialStockQuality: 0.33
|
initialStockQuality: 0.33
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: DiscountDansAds
|
pack: DiscountDansAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: DiscountDansGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/discount.rsi
|
sprite: Structures/Machines/VendingMachines/discount.rsi
|
||||||
@@ -767,6 +795,8 @@
|
|||||||
ejectDelay: 0.6
|
ejectDelay: 0.6
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: NanoMedAds
|
pack: NanoMedAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/medical.rsi
|
sprite: Structures/Machines/VendingMachines/medical.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -802,6 +832,8 @@
|
|||||||
denyState: deny-unshaded
|
denyState: deny-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: NutriMaxAds
|
pack: NutriMaxAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: NutriMaxGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/nutri.rsi
|
sprite: Structures/Machines/VendingMachines/nutri.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -834,6 +866,8 @@
|
|||||||
denyState: deny-unshaded
|
denyState: deny-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: SecTechAds
|
pack: SecTechAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: SecTechGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/sec.rsi
|
sprite: Structures/Machines/VendingMachines/sec.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -870,6 +904,8 @@
|
|||||||
denyState: deny-unshaded
|
denyState: deny-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: MegaSeedAds
|
pack: MegaSeedAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/seeds.rsi
|
sprite: Structures/Machines/VendingMachines/seeds.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -911,6 +947,8 @@
|
|||||||
initialStockQuality: 0.33
|
initialStockQuality: 0.33
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: GetmoreChocolateCorpAds
|
pack: GetmoreChocolateCorpAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GetmoreChocolateCorpGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/snack.rsi
|
sprite: Structures/Machines/VendingMachines/snack.rsi
|
||||||
@@ -1055,6 +1093,8 @@
|
|||||||
initialStockQuality: 0.33
|
initialStockQuality: 0.33
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: BodaAds
|
pack: BodaAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: BodaGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/sovietsoda.rsi
|
sprite: Structures/Machines/VendingMachines/sovietsoda.rsi
|
||||||
@@ -1087,6 +1127,8 @@
|
|||||||
screenState: screen
|
screenState: screen
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: AutoDrobeAds
|
pack: AutoDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/theater.rsi
|
sprite: Structures/Machines/VendingMachines/theater.rsi
|
||||||
@@ -1121,6 +1163,8 @@
|
|||||||
denyState: deny-unshaded
|
denyState: deny-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: VendomatAds
|
pack: VendomatAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/vendomat.rsi
|
sprite: Structures/Machines/VendingMachines/vendomat.rsi
|
||||||
@@ -1152,6 +1196,8 @@
|
|||||||
denyState: deny-unshaded
|
denyState: deny-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: VendomatAds
|
pack: VendomatAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/robotics.rsi
|
sprite: Structures/Machines/VendingMachines/robotics.rsi
|
||||||
@@ -1216,6 +1262,8 @@
|
|||||||
ejectDelay: 1.8
|
ejectDelay: 1.8
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: GoodCleanFunAds
|
pack: GoodCleanFunAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GoodCleanFunGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/games.rsi
|
sprite: Structures/Machines/VendingMachines/games.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1247,6 +1295,8 @@
|
|||||||
initialStockQuality: 0.33
|
initialStockQuality: 0.33
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: ChangAds
|
pack: ChangAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: ChangGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/changs.rsi
|
sprite: Structures/Machines/VendingMachines/changs.rsi
|
||||||
@@ -1311,6 +1361,8 @@
|
|||||||
initialStockQuality: 0.33
|
initialStockQuality: 0.33
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: DonutAds
|
pack: DonutAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: DonutGoodbyes
|
||||||
- type: Speech
|
- type: Speech
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/donut.rsi
|
sprite: Structures/Machines/VendingMachines/donut.rsi
|
||||||
@@ -1394,6 +1446,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: HyDrobeAds
|
pack: HyDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/hydrobe.rsi
|
sprite: Structures/Machines/VendingMachines/hydrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1420,6 +1474,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: LawDrobeAds
|
pack: LawDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: LawDrobeGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/lawdrobe.rsi
|
sprite: Structures/Machines/VendingMachines/lawdrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1446,6 +1502,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: SecDrobeAds
|
pack: SecDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/secdrobe.rsi
|
sprite: Structures/Machines/VendingMachines/secdrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1472,6 +1530,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: BarDrobeAds
|
pack: BarDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/bardrobe.rsi
|
sprite: Structures/Machines/VendingMachines/bardrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1526,6 +1586,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: CargoDrobeAds
|
pack: CargoDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/cargodrobe.rsi
|
sprite: Structures/Machines/VendingMachines/cargodrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1552,6 +1614,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: MediDrobeAds
|
pack: MediDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/medidrobe.rsi
|
sprite: Structures/Machines/VendingMachines/medidrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1578,6 +1642,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: ChemDrobeAds
|
pack: ChemDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/chemdrobe.rsi
|
sprite: Structures/Machines/VendingMachines/chemdrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1604,6 +1670,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: CuraDrobeAds
|
pack: CuraDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/curadrobe.rsi
|
sprite: Structures/Machines/VendingMachines/curadrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1630,6 +1698,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: AtmosDrobeAds
|
pack: AtmosDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/atmosdrobe.rsi
|
sprite: Structures/Machines/VendingMachines/atmosdrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1656,6 +1726,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: EngiDrobeAds
|
pack: EngiDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/engidrobe.rsi
|
sprite: Structures/Machines/VendingMachines/engidrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1682,6 +1754,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: ChefDrobeAds
|
pack: ChefDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/chefdrobe.rsi
|
sprite: Structures/Machines/VendingMachines/chefdrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1708,6 +1782,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: DetDrobeAds
|
pack: DetDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/detdrobe.rsi
|
sprite: Structures/Machines/VendingMachines/detdrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1734,6 +1810,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: JaniDrobeAds
|
pack: JaniDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/janidrobe.rsi
|
sprite: Structures/Machines/VendingMachines/janidrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1760,6 +1838,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: SciDrobeAds
|
pack: SciDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/scidrobe.rsi
|
sprite: Structures/Machines/VendingMachines/scidrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1786,6 +1866,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: SyndieDrobeAds
|
pack: SyndieDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: SyndieDrobeGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/syndiedrobe.rsi
|
sprite: Structures/Machines/VendingMachines/syndiedrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1812,6 +1894,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: RoboDrobeAds
|
pack: RoboDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/robodrobe.rsi
|
sprite: Structures/Machines/VendingMachines/robodrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1838,6 +1922,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: GeneDrobeAds
|
pack: GeneDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/genedrobe.rsi
|
sprite: Structures/Machines/VendingMachines/genedrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1864,6 +1950,8 @@
|
|||||||
normalState: normal-unshaded
|
normalState: normal-unshaded
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: ViroDrobeAds
|
pack: ViroDrobeAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: GenericVendGoodbyes
|
||||||
- type: Sprite
|
- type: Sprite
|
||||||
sprite: Structures/Machines/VendingMachines/virodrobe.rsi
|
sprite: Structures/Machines/VendingMachines/virodrobe.rsi
|
||||||
layers:
|
layers:
|
||||||
@@ -1938,6 +2026,8 @@
|
|||||||
color: "#3c5eb5"
|
color: "#3c5eb5"
|
||||||
- type: Advertise
|
- type: Advertise
|
||||||
pack: HappyHonkAds
|
pack: HappyHonkAds
|
||||||
|
- type: SpeakOnUIClosed
|
||||||
|
pack: HappyHonkGoodbyes
|
||||||
- type: AccessReader
|
- type: AccessReader
|
||||||
access: [["Kitchen"], ["Theatre"]]
|
access: [["Kitchen"], ["Theatre"]]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user