Delivery random multipliers (#36918)

* init

* review

* init

* teehee
This commit is contained in:
ScarKy0
2025-04-26 23:42:27 +02:00
committed by GitHub
parent 8f35bc76c2
commit f0472b2173
6 changed files with 98 additions and 20 deletions

View File

@@ -0,0 +1,30 @@
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;
}
}