using Content.Shared.Damage.Prototypes;
using Content.Shared.FixedPoint;
using Robust.Shared.GameStates;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Set;
namespace Content.Shared.Traits.Assorted.Components;
///
/// This is used for the Self-Aware trait to enhance the information received from HealthExaminableSystem.
///
[RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
public sealed partial class SelfAwareComponent : Component
{
//
// Damage types that an entity is able to precisely analyze like a health analyzer when they examine themselves.
//
[DataField(required: true, customTypeSerializer:typeof(PrototypeIdHashSetSerializer)), AutoNetworkedField]
public HashSet AnalyzableTypes = default!;
//
// Damage groups that an entity is able to detect the presence of when they examine themselves.
//
[DataField(required: true, customTypeSerializer:typeof(PrototypeIdHashSetSerializer)), AutoNetworkedField]
public HashSet DetectableGroups = default!;
//
// The thresholds for determining the examine text of DetectableGroups for certain amounts of damage.
// These are calculated as a percentage of the entity's critical threshold.
//
public List Thresholds = new()
{ FixedPoint2.New(0.10), FixedPoint2.New(0.25), FixedPoint2.New(0.40), FixedPoint2.New(0.60) };
}