Files
tbd-station-14/Content.Shared/Delivery/DeliveryModifierSystem.cs
ScarKy0 f0472b2173 Delivery random multipliers (#36918)
* init

* review

* init

* teehee
2025-04-26 17:42:27 -04:00

31 lines
1.1 KiB
C#

using Robust.Shared.Random;
namespace Content.Shared.Delivery;
/// <summary>
/// System responsible for managing multipliers and logic for different delivery modifiers.
/// </summary>
public sealed partial class DeliveryModifierSystem : EntitySystem
{
[Dependency] private readonly IRobustRandom _random = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<DeliveryRandomMultiplierComponent, MapInitEvent>(OnRandomMultiplierMapInit);
SubscribeLocalEvent<DeliveryRandomMultiplierComponent, GetDeliveryMultiplierEvent>(OnGetRandomMultiplier);
}
private void OnRandomMultiplierMapInit(Entity<DeliveryRandomMultiplierComponent> ent, ref MapInitEvent args)
{
ent.Comp.CurrentMultiplierOffset = _random.NextFloat(ent.Comp.MinMultiplierOffset, ent.Comp.MaxMultiplierOffset);
Dirty(ent);
}
private void OnGetRandomMultiplier(Entity<DeliveryRandomMultiplierComponent> ent, ref GetDeliveryMultiplierEvent args)
{
args.AdditiveMultiplier += ent.Comp.CurrentMultiplierOffset;
}
}