using Content.Shared.EntityEffects;
using Content.Shared.Mood;
using JetBrains.Annotations;
using Robust.Shared.Prototypes;
namespace Content.Server.EntityEffects.Effects;
///
/// Adds a moodlet to an entity.
///
[UsedImplicitly]
public sealed partial class ChemAddMoodlet : EntityEffect
{
protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
{
var protoMan = IoCManager.Resolve();
return Loc.GetString("reagent-effect-guidebook-add-moodlet",
("amount", protoMan.Index(MoodPrototype.Id).MoodChange),
("timeout", protoMan.Index(MoodPrototype.Id).Timeout));
}
///
/// The mood prototype to be applied to the using entity.
///
[DataField(required: true)]
public ProtoId MoodPrototype = default!;
public override void Effect(EntityEffectBaseArgs args)
{
if (args is not EntityEffectReagentArgs _)
return;
var entityManager = IoCManager.Resolve();
var ev = new MoodEffectEvent(MoodPrototype);
entityManager.EventBus.RaiseLocalEvent(args.TargetEntity, ev);
}
}