namespace Content.Shared.EntityEffects.Effects.StatusEffects;
-// TODO: When Electrocution is moved to new Status, make this use StatusEffectsContainerComponent.
/// <summary>
/// Electrocutes this entity for a given amount of damage and time.
/// The shock damage applied by this effect is modified by scale.
{
var effect = args.Effect;
- _electrocution.TryDoElectrocution(entity, null, (int)(args.Scale * effect.ShockDamage), effect.ElectrocuteTime, effect.Refresh, ignoreInsulation: effect.BypassInsulation);
+ _electrocution.TryDoElectrocution(entity,
+ null,
+ (int)(args.Scale * effect.ShockDamage),
+ effect.ElectrocuteTime,
+ effect.Refresh,
+ siemensCoefficient: effect.SiemensCoefficient,
+ ignoreInsulation: effect.BypassInsulation);
}
}
/// <summary>
/// Time we electrocute this entity
/// </summary>
- [DataField] public TimeSpan ElectrocuteTime = TimeSpan.FromSeconds(2);
+ [DataField]
+ public TimeSpan ElectrocuteTime = TimeSpan.FromSeconds(2);
/// <summary>
/// Shock damage we apply to the entity.
/// </summary>
- [DataField] public int ShockDamage = 5;
+ [DataField]
+ public int ShockDamage = 5;
/// <summary>
/// Do we refresh the duration? Or add more duration if it already exists.
/// </summary>
- [DataField] public bool Refresh = true;
+ [DataField]
+ public bool Refresh = true;
/// <summary>
/// Should we by bypassing insulation?
/// </summary>
- [DataField] public bool BypassInsulation = true;
+ [DataField]
+ public bool BypassInsulation = true;
+
+ /// <summary>
+ /// How much electricity is being passed through the body basically. Lower means less oomph.
+ /// </summary>
+ [DataField]
+ public float SiemensCoefficient = 1f;
public override string EntityEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
- => Loc.GetString("entity-effect-guidebook-electrocute", ("chance", Probability), ("time", ElectrocuteTime.TotalSeconds));
+ => Loc.GetString("entity-effect-guidebook-electrocute", ("chance", Probability), ("time", ElectrocuteTime.TotalSeconds), ("stuns", SiemensCoefficient > 0.5f));
}