This commit is contained in:
Janet Blackquill
2025-11-21 00:32:28 -05:00
parent 340f6b02b3
commit d1d939a898
53 changed files with 577 additions and 475 deletions

View File

@@ -5,27 +5,26 @@ using Robust.Shared.Prototypes;
namespace Content.Shared._Offbrand.EntityEffects;
public sealed partial class ModifyHeartDamage : EntityEffect
public sealed partial class ModifyHeartDamage : EntityEffectBase<ModifyHeartDamage>
{
[DataField(required: true)]
public FixedPoint2 Amount;
protected override string ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
public override string? EntityEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
{
if (Amount < FixedPoint2.Zero)
return Loc.GetString("reagent-effect-guidebook-modify-heart-damage-heals", ("chance", Probability), ("amount", -Amount));
return Loc.GetString("entity-effect-guidebook-modify-heart-damage-heals", ("chance", Probability), ("amount", -Amount));
else
return Loc.GetString("reagent-effect-guidebook-modify-heart-damage-deals", ("chance", Probability), ("amount", Amount));
}
public override void Effect(EntityEffectBaseArgs args)
{
var scale = FixedPoint2.New(1);
if (args is EntityEffectReagentArgs reagentArgs)
scale = reagentArgs.Scale;
args.EntityManager.System<HeartSystem>()
.ChangeHeartDamage(args.TargetEntity, Amount * scale);
return Loc.GetString("entity-effect-guidebook-modify-heart-damage-deals", ("chance", Probability), ("amount", Amount));
}
}
public sealed class ModifyHeartDamageEntityEffectSystem : EntityEffectSystem<HeartrateComponent, ModifyHeartDamage>
{
[Dependency] private readonly HeartSystem _heart = default!;
protected override void Effect(Entity<HeartrateComponent> ent, ref EntityEffectEvent<ModifyHeartDamage> args)
{
_heart.ChangeHeartDamage(ent.AsNullable(), args.Effect.Amount * args.Scale);
}
}