using Content.Shared.Eye.Blinding.Systems; using Robust.Shared.Prototypes; namespace Content.Shared.EntityEffects.Effects.Body; /// /// Modifies eye damage by a given amount, modified by scale, floored to an integer. /// /// public sealed partial class EyeDamageEntityEffectSystem : EntityEffectSystem { [Dependency] private readonly BlindableSystem _blindable = default!; protected override void Effect(Entity entity, ref EntityEffectEvent args) { var amount = (int) Math.Floor(args.Effect.Amount * args.Scale); _blindable.AdjustEyeDamage(entity.Owner, amount); } } /// public sealed partial class EyeDamage : EntityEffectBase { /// /// The amount of eye damage we're adding or removing /// [DataField] public int Amount = -1; public override string EntityEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys) => Loc.GetString("entity-effect-guidebook-eye-damage", ("chance", Probability), ("deltasign", MathF.Sign(Amount))); }