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