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; } }