ChemHealEyeDamage.cs 1020 B

12345678910111213141516171819202122232425262728293031
  1. using Content.Shared.EntityEffects;
  2. using Content.Shared.Eye.Blinding.Systems;
  3. using JetBrains.Annotations;
  4. using Robust.Shared.Prototypes;
  5. namespace Content.Server.EntityEffects.Effects;
  6. /// <summary>
  7. /// Heal or apply eye damage
  8. /// </summary>
  9. [UsedImplicitly]
  10. public sealed partial class ChemHealEyeDamage : EntityEffect
  11. {
  12. /// <summary>
  13. /// How much eye damage to add.
  14. /// </summary>
  15. [DataField]
  16. public int Amount = -1;
  17. protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
  18. => Loc.GetString("reagent-effect-guidebook-cure-eye-damage", ("chance", Probability), ("deltasign", MathF.Sign(Amount)));
  19. public override void Effect(EntityEffectBaseArgs args)
  20. {
  21. if (args is EntityEffectReagentArgs reagentArgs)
  22. if (reagentArgs.Scale != 1f) // huh?
  23. return;
  24. args.EntityManager.EntitySysManager.GetEntitySystem<BlindableSystem>().AdjustEyeDamage(args.TargetEntity, Amount);
  25. }
  26. }